diff --git a/DEPS b/DEPS
index 5c4b72e..9947851 100644
--- a/DEPS
+++ b/DEPS
@@ -105,7 +105,7 @@
   # 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': '7c42e01cedb95e052751d3136901851e2be25e6e',
+  'skia_revision': 'f13375c925bf18a832119d4e6ba42e805000a00e',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -117,7 +117,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': 'f26b27e2953513bb16d002ba3c742cab7f94bd71',
+  'angle_revision': '7a4f6b8c7d5eafe55158e999bd3d8d424c570ead',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling build tools
   # and whatever else without interference from each other.
@@ -129,7 +129,7 @@
   # 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': '032b3bed2b1888f1226e1d940fe41e9a09d2336c',
+  'pdfium_revision': 'b2b00c31f48c86a1bde7f3e6c07752d1c9195cea',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling openmax_dl
   # and whatever else without interference from each other.
@@ -165,7 +165,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': 'e8964a2cd3755b66acf9b7e3fe9e8aa9dd15ef2e',
+  'catapult_revision': 'ba76717a8d18da91240f0c0a2dcb4a3aa2794f7c',
   # 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 @@
   },
 
   'src/ios/third_party/material_components_ios/src': {
-      'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + '3a50c7a3b2f4ec760d2d2405b6b9787e5493c049',
+      'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + '10aa5899c7886cb165f2e8bd4e9d490ddd9b8bb4',
       'condition': 'checkout_ios',
   },
 
@@ -307,7 +307,7 @@
   },
 
   'src/ios/third_party/material_internationalization_ios/src': {
-      'url': Var('chromium_git') + '/external/github.com/material-foundation/material-internationalization-ios.git' + '@' + '8f28a55c7f35b95a587bba01a8467ea470647873',
+      'url': Var('chromium_git') + '/external/github.com/material-foundation/material-internationalization-ios.git' + '@' + 'c62f2cacaba48f8901ad811f23c2cbc9581364aa',
       'condition': 'checkout_ios',
   },
 
@@ -563,7 +563,7 @@
 
   # Build tools for Chrome OS. Note: This depends on third_party/pyelftools.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'f8268f7ccb655e300527e2374056fb3b4be1a658',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '4b90891429276fd084d34711a611e1131b9dab69',
       'condition': 'checkout_linux',
   },
 
@@ -588,7 +588,7 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'dd765da4dff7cd169eee0243214034b12fd2ae6b',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '85f5e7ccd1af327cf210e696f782a1533d625b3c',
 
   'src/third_party/devtools-node-modules':
     Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'),
@@ -938,7 +938,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' +  'ee3986dc7034c863e4f76b1a25398708badafdba',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' +  'ca77050d3e6585a78d164288677a25ddc90aeab6',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + 'ac0d98b5cee6c024b0cffeb4f8f45b6fc5ccdb78',
@@ -1019,7 +1019,7 @@
     Var('chromium_git') + '/external/smhasher.git' + '@' + 'e87738e57558e0ec472b2fc3a643b838e5b6e88f',
 
   'src/third_party/snappy/src':
-    Var('chromium_git') + '/external/github.com/google/snappy.git' + '@' + 'ca37ab7fb9b718e056009babb4fea591626e5882',
+    Var('chromium_git') + '/external/github.com/google/snappy.git' + '@' + 'ea660b57d65d68d521287c903459b6dd3b2804d0',
 
   'src/third_party/sqlite4java': {
       'packages': [
@@ -1071,7 +1071,7 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '7ca87fb1d3da3b3d2060886e8c58e726d74c8219',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'f1f363fae75714a0259fac32198240f638fee7da',
+    Var('webrtc_git') + '/src.git' + '@' + 'bcdf5f1a944e0b59b04f2dc7aad7c5d0f8d5d974',
 
   'src/third_party/xdg-utils': {
       'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
@@ -1105,7 +1105,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@8859c10c2823963a2c882cd3c48309b6de4ca18b',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@ec5364ee5d5a600e5ddacda19636abf13f618962',
     'condition': 'checkout_src_internal',
   },
 
@@ -1456,7 +1456,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/android_deps/libs/com_google_android_gms_play_services_cast',
-              'version': 'version:15.0.1-cr0',
+              'version': 'version:16.0.1-cr0',
           },
       ],
       'condition': 'checkout_android',
@@ -1467,7 +1467,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework',
-              'version': 'version:15.0.1-cr0',
+              'version': 'version:16.0.1-cr0',
           },
       ],
       'condition': 'checkout_android',
@@ -1533,7 +1533,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps',
-              'version': 'version:15.0.1-cr0',
+              'version': 'version:16.0.0-cr0',
           },
       ],
       'condition': 'checkout_android',
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index 82b3157..f9d473f8 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -67,6 +67,7 @@
     "app_list/app_list_presenter_delegate_impl.h",
     "ash_export.h",
     "ash_service.h",
+    "assistant/assistant_cache_controller.h",
     "assistant/assistant_controller.h",
     "assistant/assistant_controller_observer.h",
     "assistant/assistant_interaction_controller.h",
@@ -74,6 +75,8 @@
     "assistant/assistant_screen_context_controller.h",
     "assistant/assistant_setup_controller.h",
     "assistant/assistant_ui_controller.h",
+    "assistant/model/assistant_cache_model.h",
+    "assistant/model/assistant_cache_model_observer.h",
     "assistant/model/assistant_interaction_model.h",
     "assistant/model/assistant_interaction_model_observer.h",
     "assistant/model/assistant_query.h",
@@ -109,6 +112,7 @@
     "client_image_registry.h",
     "dbus/ash_dbus_services.h",
     "dbus/display_service_provider.h",
+    "dbus/liveness_service_provider.h",
     "dbus/url_handler_service_provider.h",
     "debug.h",
     "detachable_base/detachable_base_handler.h",
@@ -187,9 +191,6 @@
     "ime/ime_controller.h",
     "ime/ime_focus_handler.h",
     "ime/ime_switch_type.h",
-    "keyboard/keyboard_ui.h",
-    "keyboard/keyboard_ui_mash.h",
-    "keyboard/keyboard_ui_observer.h",
     "keyboard/virtual_keyboard_container_layout_manager.h",
     "keyboard/virtual_keyboard_controller.h",
     "laser/laser_pointer_controller.h",
@@ -735,12 +736,14 @@
     "app_list/app_list_controller_impl.cc",
     "app_list/app_list_presenter_delegate_impl.cc",
     "ash_service.cc",
+    "assistant/assistant_cache_controller.cc",
     "assistant/assistant_controller.cc",
     "assistant/assistant_interaction_controller.cc",
     "assistant/assistant_notification_controller.cc",
     "assistant/assistant_screen_context_controller.cc",
     "assistant/assistant_setup_controller.cc",
     "assistant/assistant_ui_controller.cc",
+    "assistant/model/assistant_cache_model.cc",
     "assistant/model/assistant_interaction_model.cc",
     "assistant/model/assistant_query.cc",
     "assistant/model/assistant_response.cc",
@@ -772,6 +775,7 @@
     "client_image_registry.cc",
     "dbus/ash_dbus_services.cc",
     "dbus/display_service_provider.cc",
+    "dbus/liveness_service_provider.cc",
     "dbus/url_handler_service_provider.cc",
     "debug.cc",
     "detachable_base/detachable_base_handler.cc",
@@ -845,8 +849,6 @@
     "ime/ime_mode_indicator_view.h",
     "ime/mode_indicator_observer.cc",
     "ime/mode_indicator_observer.h",
-    "keyboard/keyboard_ui.cc",
-    "keyboard/keyboard_ui_mash.cc",
     "keyboard/virtual_keyboard_container_layout_manager.cc",
     "keyboard/virtual_keyboard_controller.cc",
     "laser/laser_pointer_controller.cc",
@@ -1609,6 +1611,8 @@
 
 copy("dbus_service_files") {
   sources = [
+    "dbus/org.chromium.DisplayService.conf",
+    "dbus/org.chromium.LivenessService.conf",
     "dbus/org.chromium.UrlHandlerService.conf",
   ]
   outputs = [
diff --git a/ash/app_list/views/search_result_suggestion_chip_view.cc b/ash/app_list/views/search_result_suggestion_chip_view.cc
index 9e728ff..6a4ac34 100644
--- a/ash/app_list/views/search_result_suggestion_chip_view.cc
+++ b/ash/app_list/views/search_result_suggestion_chip_view.cc
@@ -10,9 +10,12 @@
 #include "ash/app_list/app_list_view_delegate.h"
 #include "ash/app_list/model/search/search_result.h"
 #include "ash/public/cpp/app_list/app_list_constants.h"
+#include "ash/public/cpp/app_list/internal_app_id_constants.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/metrics/user_metrics.h"
 #include "ui/accessibility/ax_node_data.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/strings/grit/ui_strings.h"
 
 namespace app_list {
 
@@ -97,14 +100,20 @@
   if (suggestion_chip_view_) {
     suggestion_chip_view_->SetIcon(item_->icon());
     suggestion_chip_view_->SetText(item_->title());
-    return;
+  } else {
+    app_list::SuggestionChipView::Params params;
+    params.text = item_->title();
+    params.icon = item_->icon();
+    suggestion_chip_view_ = new SuggestionChipView(params, /* listener */ this);
+    AddChildView(suggestion_chip_view_);
   }
 
-  app_list::SuggestionChipView::Params params;
-  params.text = item_->title();
-  params.icon = item_->icon();
-  suggestion_chip_view_ = new SuggestionChipView(params, /* listener */ this);
-  AddChildView(suggestion_chip_view_);
+  base::string16 accessible_name = item_->title();
+  if (item_->id() == app_list::kInternalAppIdContinueReading) {
+    accessible_name = l10n_util::GetStringFUTF16(
+        IDS_APP_LIST_CONTINUE_READING_ACCESSIBILE_NAME, accessible_name);
+  }
+  suggestion_chip_view_->SetAccessibleName(accessible_name);
 }
 
 }  // namespace app_list
diff --git a/ash/app_list/views/suggestion_chip_view.cc b/ash/app_list/views/suggestion_chip_view.cc
index f05e3b81..3b14c97a 100644
--- a/ash/app_list/views/suggestion_chip_view.cc
+++ b/ash/app_list/views/suggestion_chip_view.cc
@@ -162,11 +162,6 @@
   SchedulePaint();
 }
 
-void SuggestionChipView::GetAccessibleNodeData(ui::AXNodeData* node_data) {
-  node_data->role = ax::mojom::Role::kButton;
-  node_data->SetName(GetText());
-}
-
 std::unique_ptr<views::InkDrop> SuggestionChipView::CreateInkDrop() {
   std::unique_ptr<views::InkDropImpl> ink_drop =
       Button::CreateDefaultInkDropImpl();
diff --git a/ash/app_list/views/suggestion_chip_view.h b/ash/app_list/views/suggestion_chip_view.h
index 3699191..6ae83c30 100644
--- a/ash/app_list/views/suggestion_chip_view.h
+++ b/ash/app_list/views/suggestion_chip_view.h
@@ -49,7 +49,6 @@
   void OnPaintBackground(gfx::Canvas* canvas) override;
   void OnFocus() override;
   void OnBlur() override;
-  void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
 
   // views::InkDropHost:
   std::unique_ptr<views::InkDrop> CreateInkDrop() override;
diff --git a/ash/assistant/assistant_cache_controller.cc b/ash/assistant/assistant_cache_controller.cc
new file mode 100644
index 0000000..8b4030d
--- /dev/null
+++ b/ash/assistant/assistant_cache_controller.cc
@@ -0,0 +1,75 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/assistant/assistant_cache_controller.h"
+
+#include <vector>
+
+#include "ash/shell.h"
+#include "ash/strings/grit/ash_strings.h"
+#include "ash/voice_interaction/voice_interaction_controller.h"
+#include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace ash {
+
+AssistantCacheController::AssistantCacheController()
+    : voice_interaction_binding_(this) {
+  UpdateConversationStarters();
+
+  // Bind to observe changes to screen context preference.
+  mojom::VoiceInteractionObserverPtr ptr;
+  voice_interaction_binding_.Bind(mojo::MakeRequest(&ptr));
+  Shell::Get()->voice_interaction_controller()->AddObserver(std::move(ptr));
+}
+
+AssistantCacheController::~AssistantCacheController() = default;
+
+void AssistantCacheController::AddModelObserver(
+    AssistantCacheModelObserver* observer) {
+  model_.AddObserver(observer);
+}
+
+void AssistantCacheController::RemoveModelObserver(
+    AssistantCacheModelObserver* observer) {
+  model_.RemoveObserver(observer);
+}
+
+void AssistantCacheController::OnVoiceInteractionContextEnabled(bool enabled) {
+  UpdateConversationStarters();
+}
+
+// TODO(dmblack): The conversation starter cache should receive its contents
+// from the server. Hard-coding for the time being.
+void AssistantCacheController::UpdateConversationStarters() {
+  using namespace chromeos::assistant::mojom;
+
+  std::vector<AssistantSuggestionPtr> conversation_starters;
+
+  auto AddConversationStarter = [&conversation_starters](int message_id) {
+    AssistantSuggestionPtr starter = AssistantSuggestion::New();
+    starter->text = l10n_util::GetStringUTF8(message_id);
+    conversation_starters.push_back(std::move(starter));
+  };
+
+  AddConversationStarter(IDS_ASH_ASSISTANT_CHIP_WHAT_CAN_YOU_DO);
+
+  // TODO(dmblack): Add a deep link for this chip to start a screen context
+  // query to receive back contextual cards.
+  if (Shell::Get()->voice_interaction_controller()->context_enabled())
+    AddConversationStarter(IDS_ASH_ASSISTANT_CHIP_WHATS_ON_MY_SCREEN);
+
+  AddConversationStarter(IDS_ASH_ASSISTANT_CHIP_WHATS_ON_MY_CALENDAR);
+
+  // TODO(dmblack): Shuffle these chips and limit our total chip count to four.
+  AddConversationStarter(IDS_ASH_ASSISTANT_CHIP_PLAY_MUSIC);
+  AddConversationStarter(IDS_ASH_ASSISTANT_CHIP_SEND_AN_EMAIL);
+  AddConversationStarter(IDS_ASH_ASSISTANT_CHIP_WHATS_THE_WEATHER);
+  AddConversationStarter(IDS_ASH_ASSISTANT_CHIP_IM_BORED);
+  AddConversationStarter(IDS_ASH_ASSISTANT_CHIP_OPEN_FILES);
+
+  model_.SetConversationStarters(std::move(conversation_starters));
+}
+
+}  // namespace ash
diff --git a/ash/assistant/assistant_cache_controller.h b/ash/assistant/assistant_cache_controller.h
new file mode 100644
index 0000000..7af286d
--- /dev/null
+++ b/ash/assistant/assistant_cache_controller.h
@@ -0,0 +1,51 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_ASSISTANT_ASSISTANT_CACHE_CONTROLLER_H_
+#define ASH_ASSISTANT_ASSISTANT_CACHE_CONTROLLER_H_
+
+#include "ash/assistant/model/assistant_cache_model.h"
+#include "ash/public/interfaces/voice_interaction_controller.mojom.h"
+#include "base/macros.h"
+#include "mojo/public/cpp/bindings/binding.h"
+
+namespace ash {
+
+class AssistantCacheModelObserver;
+
+class AssistantCacheController : public mojom::VoiceInteractionObserver {
+ public:
+  AssistantCacheController();
+  ~AssistantCacheController() override;
+
+  // Returns a reference to the underlying model.
+  const AssistantCacheModel* model() const { return &model_; }
+
+  // Adds/removes the specified cache model |observer|.
+  void AddModelObserver(AssistantCacheModelObserver* observer);
+  void RemoveModelObserver(AssistantCacheModelObserver* observer);
+
+ private:
+  // mojom::VoiceInteractionObserver:
+  void OnVoiceInteractionStatusChanged(
+      mojom::VoiceInteractionState state) override {}
+  void OnVoiceInteractionSettingsEnabled(bool enabled) override {}
+  void OnVoiceInteractionContextEnabled(bool enabled) override;
+  void OnVoiceInteractionHotwordEnabled(bool enabled) override {}
+  void OnVoiceInteractionSetupCompleted(bool completed) override {}
+  void OnAssistantFeatureAllowedChanged(
+      mojom::AssistantAllowedState state) override {}
+
+  void UpdateConversationStarters();
+
+  mojo::Binding<mojom::VoiceInteractionObserver> voice_interaction_binding_;
+
+  AssistantCacheModel model_;
+
+  DISALLOW_COPY_AND_ASSIGN(AssistantCacheController);
+};
+
+}  // namespace ash
+
+#endif  // ASH_ASSISTANT_ASSISTANT_CACHE_CONTROLLER_H_
diff --git a/ash/assistant/assistant_controller.cc b/ash/assistant/assistant_controller.cc
index 871f3439..972f55c 100644
--- a/ash/assistant/assistant_controller.cc
+++ b/ash/assistant/assistant_controller.cc
@@ -4,6 +4,7 @@
 
 #include "ash/assistant/assistant_controller.h"
 
+#include "ash/assistant/assistant_cache_controller.h"
 #include "ash/assistant/assistant_controller_observer.h"
 #include "ash/assistant/assistant_interaction_controller.h"
 #include "ash/assistant/assistant_notification_controller.h"
@@ -23,6 +24,7 @@
 
 AssistantController::AssistantController()
     : assistant_volume_control_binding_(this),
+      assistant_cache_controller_(std::make_unique<AssistantCacheController>()),
       assistant_interaction_controller_(
           std::make_unique<AssistantInteractionController>(this)),
       assistant_notification_controller_(
diff --git a/ash/assistant/assistant_controller.h b/ash/assistant/assistant_controller.h
index 0af7acf..8270ebc 100644
--- a/ash/assistant/assistant_controller.h
+++ b/ash/assistant/assistant_controller.h
@@ -32,6 +32,7 @@
 
 namespace ash {
 
+class AssistantCacheController;
 class AssistantInteractionController;
 class AssistantNotificationController;
 class AssistantScreenContextController;
@@ -125,6 +126,11 @@
   // Called before dtor to deregister services and avoid life cycle issues.
   void ShutDown();
 
+  AssistantCacheController* cache_controller() {
+    DCHECK(assistant_cache_controller_);
+    return assistant_cache_controller_.get();
+  }
+
   AssistantInteractionController* interaction_controller() {
     DCHECK(assistant_interaction_controller_);
     return assistant_interaction_controller_.get();
@@ -189,6 +195,8 @@
 
   mojom::WebContentsManagerPtr web_contents_manager_;
 
+  std::unique_ptr<AssistantCacheController> assistant_cache_controller_;
+
   std::unique_ptr<AssistantInteractionController>
       assistant_interaction_controller_;
 
diff --git a/ash/assistant/assistant_interaction_controller.cc b/ash/assistant/assistant_interaction_controller.cc
index cb6fefc0..a55533b6 100644
--- a/ash/assistant/assistant_interaction_controller.cc
+++ b/ash/assistant/assistant_interaction_controller.cc
@@ -234,10 +234,8 @@
       std::make_unique<AssistantCardElement>(response));
 }
 
-void AssistantInteractionController::OnSuggestionChipPressed(int id) {
-  const AssistantSuggestion* suggestion =
-      assistant_interaction_model_.response()->GetSuggestionById(id);
-
+void AssistantInteractionController::OnSuggestionChipPressed(
+    const AssistantSuggestion* suggestion) {
   // If the suggestion contains a non-empty action url, we will handle the
   // suggestion chip pressed event by launching the action url in the browser.
   if (!suggestion->action_url.is_empty()) {
diff --git a/ash/assistant/assistant_interaction_controller.h b/ash/assistant/assistant_interaction_controller.h
index 83006fa..1950bd28 100644
--- a/ash/assistant/assistant_interaction_controller.h
+++ b/ash/assistant/assistant_interaction_controller.h
@@ -94,7 +94,7 @@
   void OnDialogPlateContentsCommitted(const std::string& text) override;
 
   // Invoked on suggestion chip pressed event.
-  void OnSuggestionChipPressed(int id);
+  void OnSuggestionChipPressed(const AssistantSuggestion* suggestion);
 
  private:
   void StartTextInteraction(const std::string text);
diff --git a/ash/assistant/model/assistant_cache_model.cc b/ash/assistant/model/assistant_cache_model.cc
new file mode 100644
index 0000000..b3ff4749
--- /dev/null
+++ b/ash/assistant/model/assistant_cache_model.cc
@@ -0,0 +1,61 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/assistant/model/assistant_cache_model.h"
+
+#include "ash/assistant/model/assistant_cache_model_observer.h"
+
+namespace ash {
+
+AssistantCacheModel::AssistantCacheModel() = default;
+
+AssistantCacheModel::~AssistantCacheModel() = default;
+
+void AssistantCacheModel::AddObserver(AssistantCacheModelObserver* observer) {
+  observers_.AddObserver(observer);
+}
+
+void AssistantCacheModel::RemoveObserver(
+    AssistantCacheModelObserver* observer) {
+  observers_.RemoveObserver(observer);
+}
+
+void AssistantCacheModel::SetConversationStarters(
+    std::vector<AssistantSuggestionPtr> conversation_starters) {
+  conversation_starters_.clear();
+  conversation_starters_.swap(conversation_starters);
+
+  NotifyConversationStartersChanged();
+}
+
+const chromeos::assistant::mojom::AssistantSuggestion*
+AssistantCacheModel::GetConversationStarterById(int id) const {
+  // We consider the index of a conversation starter within our backing vector
+  // to be its unique id.
+  DCHECK_GE(id, 0);
+  DCHECK_LT(id, static_cast<int>(conversation_starters_.size()));
+  return conversation_starters_.at(id).get();
+}
+
+std::map<int, const chromeos::assistant::mojom::AssistantSuggestion*>
+AssistantCacheModel::GetConversationStarters() const {
+  std::map<int, const AssistantSuggestion*> conversation_starters;
+
+  // We use index within our backing vector to represent unique id.
+  int id = 0;
+  for (const AssistantSuggestionPtr& starter : conversation_starters_)
+    conversation_starters[id++] = starter.get();
+
+  return conversation_starters;
+};
+
+void AssistantCacheModel::NotifyConversationStartersChanged() {
+  const std::map<int, const AssistantSuggestion*> conversation_starters =
+      GetConversationStarters();
+
+  for (AssistantCacheModelObserver& observer : observers_)
+    observer.OnConversationStartersChanged(conversation_starters);
+}
+
+}  // namespace ash
diff --git a/ash/assistant/model/assistant_cache_model.h b/ash/assistant/model/assistant_cache_model.h
new file mode 100644
index 0000000..98ccfd64
--- /dev/null
+++ b/ash/assistant/model/assistant_cache_model.h
@@ -0,0 +1,54 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_ASSISTANT_MODEL_ASSISTANT_CACHE_MODEL_H_
+#define ASH_ASSISTANT_MODEL_ASSISTANT_CACHE_MODEL_H_
+
+#include <map>
+#include <vector>
+
+#include "base/macros.h"
+#include "base/observer_list.h"
+#include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
+
+namespace ash {
+
+class AssistantCacheModelObserver;
+
+class AssistantCacheModel {
+ public:
+  using AssistantSuggestion = chromeos::assistant::mojom::AssistantSuggestion;
+  using AssistantSuggestionPtr =
+      chromeos::assistant::mojom::AssistantSuggestionPtr;
+
+  AssistantCacheModel();
+  ~AssistantCacheModel();
+
+  // Adds/removes the specified cache model |observer|.
+  void AddObserver(AssistantCacheModelObserver* observer);
+  void RemoveObserver(AssistantCacheModelObserver* observer);
+
+  // Sets the cache of conversation starters.
+  void SetConversationStarters(
+      std::vector<AssistantSuggestionPtr> conversation_starters);
+
+  // Returns the conversation starter uniquely identified by |id|.
+  const AssistantSuggestion* GetConversationStarterById(int id) const;
+
+  // Returns all cached conversation starters, mapped to a unique id.
+  std::map<int, const AssistantSuggestion*> GetConversationStarters() const;
+
+ private:
+  void NotifyConversationStartersChanged();
+
+  std::vector<AssistantSuggestionPtr> conversation_starters_;
+
+  base::ObserverList<AssistantCacheModelObserver>::Unchecked observers_;
+
+  DISALLOW_COPY_AND_ASSIGN(AssistantCacheModel);
+};
+
+}  // namespace ash
+
+#endif  // ASH_ASSISTANT_MODEL_ASSISTANT_CACHE_MODEL_H_
diff --git a/ash/assistant/model/assistant_cache_model_observer.h b/ash/assistant/model/assistant_cache_model_observer.h
new file mode 100644
index 0000000..7c09ce3e
--- /dev/null
+++ b/ash/assistant/model/assistant_cache_model_observer.h
@@ -0,0 +1,30 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_ASSISTANT_MODEL_ASSISTANT_CACHE_MODEL_OBSERVER_H_
+#define ASH_ASSISTANT_MODEL_ASSISTANT_CACHE_MODEL_OBSERVER_H_
+
+#include <map>
+
+#include "base/macros.h"
+#include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
+
+namespace ash {
+
+// An observer which receives notification of changes to the Assistant cache.
+class AssistantCacheModelObserver {
+ public:
+  using AssistantSuggestion = chromeos::assistant::mojom::AssistantSuggestion;
+
+  // Invoked when the cache of conversation starters has changed.
+  virtual void OnConversationStartersChanged(
+      const std::map<int, const AssistantSuggestion*>& conversation_starters) {}
+
+ protected:
+  virtual ~AssistantCacheModelObserver() = default;
+};
+
+}  // namespace ash
+
+#endif  // ASH_ASSISTANT_MODEL_ASSISTANT_CACHE_MODEL_OBSERVER_H_
diff --git a/ash/assistant/model/assistant_response.h b/ash/assistant/model/assistant_response.h
index a094295..e597b586 100644
--- a/ash/assistant/model/assistant_response.h
+++ b/ash/assistant/model/assistant_response.h
@@ -37,8 +37,7 @@
   // interaction.
   void AddSuggestions(std::vector<AssistantSuggestionPtr> suggestions);
 
-  // Returns the suggestion uniquely identified by |id|, or |nullptr| if no
-  // matching suggestion exists.
+  // Returns the suggestion uniquely identified by |id|.
   const AssistantSuggestion* GetSuggestionById(int id) const;
 
   // Returns all suggestions belongs to the response, mapped to a unique id.
diff --git a/ash/assistant/ui/main_stage/suggestion_container_view.cc b/ash/assistant/ui/main_stage/suggestion_container_view.cc
index 3a00aa0..b38c9e8 100644
--- a/ash/assistant/ui/main_stage/suggestion_container_view.cc
+++ b/ash/assistant/ui/main_stage/suggestion_container_view.cc
@@ -6,8 +6,10 @@
 
 #include <memory>
 
+#include "ash/assistant/assistant_cache_controller.h"
 #include "ash/assistant/assistant_controller.h"
 #include "ash/assistant/assistant_interaction_controller.h"
+#include "ash/assistant/assistant_ui_controller.h"
 #include "ash/assistant/model/assistant_response.h"
 #include "ash/assistant/ui/assistant_ui_constants.h"
 #include "base/strings/utf_string_conversions.h"
@@ -32,11 +34,15 @@
 
   // The Assistant controller indirectly owns the view hierarchy to which
   // SuggestionContainerView belongs so is guaranteed to outlive it.
+  assistant_controller_->cache_controller()->AddModelObserver(this);
   assistant_controller_->interaction_controller()->AddModelObserver(this);
+  assistant_controller_->ui_controller()->AddModelObserver(this);
 }
 
 SuggestionContainerView::~SuggestionContainerView() {
+  assistant_controller_->ui_controller()->RemoveModelObserver(this);
   assistant_controller_->interaction_controller()->RemoveModelObserver(this);
+  assistant_controller_->cache_controller()->RemoveModelObserver(this);
 }
 
 gfx::Size SuggestionContainerView::CalculatePreferredSize() const {
@@ -63,13 +69,33 @@
       views::BoxLayout::CrossAxisAlignment::CROSS_AXIS_ALIGNMENT_END);
 }
 
+void SuggestionContainerView::OnConversationStartersChanged(
+    const std::map<int, const AssistantSuggestion*>& conversation_starters) {
+  // TODO(dmblack): If UI is visible, we may want to animate this transition.
+  OnSuggestionsCleared();
+  OnSuggestionsChanged(conversation_starters);
+}
+
 void SuggestionContainerView::OnResponseChanged(
     const AssistantResponse& response) {
-  OnResponseCleared();
+  has_received_response_ = true;
 
+  OnSuggestionsCleared();
+  OnSuggestionsChanged(response.GetSuggestions());
+}
+
+void SuggestionContainerView::OnResponseCleared() {
+  // Note that we don't reset |has_received_response_| here because that refers
+  // to whether we've received a response during the current Assistant UI
+  // session, not whether we are currently displaying a response.
+  OnSuggestionsCleared();
+}
+
+void SuggestionContainerView::OnSuggestionsChanged(
+    const std::map<int, const AssistantSuggestion*>& suggestions) {
   using AssistantSuggestion = chromeos::assistant::mojom::AssistantSuggestion;
   for (const std::pair<int, const AssistantSuggestion*>& suggestion :
-       response.GetSuggestions()) {
+       suggestions) {
     // We will use the same identifier by which the Assistant interaction model
     // uniquely identifies a suggestion to uniquely identify its corresponding
     // suggestion chip view.
@@ -108,7 +134,7 @@
   }
 }
 
-void SuggestionContainerView::OnResponseCleared() {
+void SuggestionContainerView::OnSuggestionsCleared() {
   // Abort any download requests in progress.
   download_request_weak_factory_.InvalidateWeakPtrs();
 
@@ -126,8 +152,38 @@
 
 void SuggestionContainerView::ButtonPressed(views::Button* sender,
                                             const ui::Event& event) {
+  const AssistantSuggestion* suggestion = nullptr;
+
+  // If we haven't yet received a query response, the suggestion chip that was
+  // pressed was a conversation starter.
+  if (!has_received_response_) {
+    suggestion = assistant_controller_->cache_controller()
+                     ->model()
+                     ->GetConversationStarterById(sender->id());
+  } else {
+    // Otherwise, the suggestion chip belonged to the interaction response.
+    suggestion = assistant_controller_->interaction_controller()
+                     ->model()
+                     ->response()
+                     ->GetSuggestionById(sender->id());
+  }
+
+  // TODO(dmblack): Use a delegate pattern here similar to CaptionBar.
   assistant_controller_->interaction_controller()->OnSuggestionChipPressed(
-      static_cast<app_list::SuggestionChipView*>(sender)->id());
+      suggestion);
+}
+
+void SuggestionContainerView::OnUiVisibilityChanged(bool visible,
+                                                    AssistantSource source) {
+  if (visible) {
+    // Show conversation starters at the beginning of an Assistant session.
+    OnConversationStartersChanged(assistant_controller_->cache_controller()
+                                      ->model()
+                                      ->GetConversationStarters());
+  } else {
+    // Reset view state.
+    has_received_response_ = false;
+  }
 }
 
 }  // namespace ash
diff --git a/ash/assistant/ui/main_stage/suggestion_container_view.h b/ash/assistant/ui/main_stage/suggestion_container_view.h
index 180db84..5705306cf 100644
--- a/ash/assistant/ui/main_stage/suggestion_container_view.h
+++ b/ash/assistant/ui/main_stage/suggestion_container_view.h
@@ -8,7 +8,9 @@
 #include <map>
 
 #include "ash/app_list/views/suggestion_chip_view.h"
+#include "ash/assistant/model/assistant_cache_model_observer.h"
 #include "ash/assistant/model/assistant_interaction_model_observer.h"
+#include "ash/assistant/model/assistant_ui_model_observer.h"
 #include "ash/assistant/ui/assistant_scroll_view.h"
 #include "base/macros.h"
 #include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
@@ -22,10 +24,14 @@
 // laying out SuggestionChipViews in response to Assistant interaction model
 // suggestion events.
 class SuggestionContainerView : public AssistantScrollView,
+                                public AssistantCacheModelObserver,
                                 public AssistantInteractionModelObserver,
+                                public AssistantUiModelObserver,
                                 public views::ButtonListener {
  public:
   using AssistantSuggestion = chromeos::assistant::mojom::AssistantSuggestion;
+  using AssistantSuggestionPtr =
+      chromeos::assistant::mojom::AssistantSuggestionPtr;
 
   explicit SuggestionContainerView(AssistantController* assistant_controller);
   ~SuggestionContainerView() override;
@@ -35,16 +41,28 @@
   int GetHeightForWidth(int width) const override;
   void OnContentsPreferredSizeChanged(views::View* content_view) override;
 
+  // AssistantCacheModelObserver:
+  void OnConversationStartersChanged(
+      const std::map<int, const AssistantSuggestion*>& conversation_starters)
+      override;
+
   // AssistantInteractionModelObserver:
   void OnResponseChanged(const AssistantResponse& response) override;
   void OnResponseCleared() override;
 
+  // AssistantUiModelObserver:
+  void OnUiVisibilityChanged(bool visible, AssistantSource source) override;
+
   // views::ButtonListener:
   void ButtonPressed(views::Button* sender, const ui::Event& event) override;
 
  private:
   void InitLayout();
 
+  void OnSuggestionsChanged(
+      const std::map<int, const AssistantSuggestion*>& suggestions);
+  void OnSuggestionsCleared();
+
   // Invoked on suggestion chip icon downloaded event.
   void OnSuggestionChipIconDownloaded(int id, const gfx::ImageSkia& icon);
 
@@ -55,6 +73,10 @@
   // identifies the view's underlying suggestion.
   std::map<int, app_list::SuggestionChipView*> suggestion_chip_views_;
 
+  // True if we have received a query response during this Assistant UI session,
+  // false otherwise.
+  bool has_received_response_ = false;
+
   // Weak pointer factory used for image downloading requests.
   base::WeakPtrFactory<SuggestionContainerView> download_request_weak_factory_;
 
diff --git a/ash/content/content_gpu_interface_provider.cc b/ash/content/content_gpu_interface_provider.cc
index 2980c7d4..e9a29fe7 100644
--- a/ash/content/content_gpu_interface_provider.cc
+++ b/ash/content/content_gpu_interface_provider.cc
@@ -24,7 +24,7 @@
   void BindGpuRequestOnGpuTaskRunner(ui::mojom::GpuRequest request) {
     // The GPU task runner is bound to the IO thread.
     DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-    auto gpu_client = content::GpuClient::Create(
+    auto gpu_client = content::CreateGpuClient(
         std::move(request),
         base::BindOnce(&InterfaceBinderImpl::OnGpuClientConnectionError, this),
         content::BrowserThread::GetTaskRunnerForThread(
@@ -42,14 +42,14 @@
   friend class base::RefCountedThreadSafe<InterfaceBinderImpl>;
   ~InterfaceBinderImpl() = default;
 
-  void OnGpuClientConnectionError(content::GpuClient* client) {
+  void OnGpuClientConnectionError(viz::GpuClient* client) {
     base::EraseIf(
         gpu_clients_,
-        base::UniquePtrMatcher<content::GpuClient, base::OnTaskRunnerDeleter>(
+        base::UniquePtrMatcher<viz::GpuClient, base::OnTaskRunnerDeleter>(
             client));
   }
 
-  std::vector<std::unique_ptr<content::GpuClient, base::OnTaskRunnerDeleter>>
+  std::vector<std::unique_ptr<viz::GpuClient, base::OnTaskRunnerDeleter>>
       gpu_clients_;
 
   DISALLOW_COPY_AND_ASSIGN(InterfaceBinderImpl);
diff --git a/ash/dbus/ash_dbus_services.cc b/ash/dbus/ash_dbus_services.cc
index b65fa11f..81dd44d3 100644
--- a/ash/dbus/ash_dbus_services.cc
+++ b/ash/dbus/ash_dbus_services.cc
@@ -5,6 +5,7 @@
 #include "ash/dbus/ash_dbus_services.h"
 
 #include "ash/dbus/display_service_provider.h"
+#include "ash/dbus/liveness_service_provider.h"
 #include "ash/dbus/url_handler_service_provider.h"
 #include "ash/public/cpp/config.h"
 #include "ash/shell.h"
@@ -26,17 +27,21 @@
     initialized_dbus_thread_ = true;
   }
 
-  url_handler_service_ = chromeos::CrosDBusService::Create(
-      chromeos::kUrlHandlerServiceName,
-      dbus::ObjectPath(chromeos::kUrlHandlerServicePath),
-      chromeos::CrosDBusService::CreateServiceProviderList(
-          std::make_unique<UrlHandlerServiceProvider>()));
-
   display_service_ = chromeos::CrosDBusService::Create(
       chromeos::kDisplayServiceName,
       dbus::ObjectPath(chromeos::kDisplayServicePath),
       chromeos::CrosDBusService::CreateServiceProviderList(
           std::make_unique<DisplayServiceProvider>()));
+  liveness_service_ = chromeos::CrosDBusService::Create(
+      chromeos::kLivenessServiceName,
+      dbus::ObjectPath(chromeos::kLivenessServicePath),
+      chromeos::CrosDBusService::CreateServiceProviderList(
+          std::make_unique<LivenessServiceProvider>()));
+  url_handler_service_ = chromeos::CrosDBusService::Create(
+      chromeos::kUrlHandlerServiceName,
+      dbus::ObjectPath(chromeos::kUrlHandlerServicePath),
+      chromeos::CrosDBusService::CreateServiceProviderList(
+          std::make_unique<UrlHandlerServiceProvider>()));
 }
 
 void AshDBusServices::EmitAshInitialized() {
@@ -47,6 +52,7 @@
 
 AshDBusServices::~AshDBusServices() {
   display_service_.reset();
+  liveness_service_.reset();
   url_handler_service_.reset();
   if (initialized_dbus_thread_) {
     chromeos::DBusThreadManager::Shutdown();
diff --git a/ash/dbus/ash_dbus_services.h b/ash/dbus/ash_dbus_services.h
index 10668b1..4f91a6c 100644
--- a/ash/dbus/ash_dbus_services.h
+++ b/ash/dbus/ash_dbus_services.h
@@ -28,8 +28,9 @@
 
  private:
   bool initialized_dbus_thread_{false};
-  std::unique_ptr<chromeos::CrosDBusService> url_handler_service_;
   std::unique_ptr<chromeos::CrosDBusService> display_service_;
+  std::unique_ptr<chromeos::CrosDBusService> liveness_service_;
+  std::unique_ptr<chromeos::CrosDBusService> url_handler_service_;
 
   DISALLOW_COPY_AND_ASSIGN(AshDBusServices);
 };
diff --git a/chromeos/dbus/services/liveness_service_provider.cc b/ash/dbus/liveness_service_provider.cc
similarity index 81%
rename from chromeos/dbus/services/liveness_service_provider.cc
rename to ash/dbus/liveness_service_provider.cc
index 82b8774..ba00716 100644
--- a/chromeos/dbus/services/liveness_service_provider.cc
+++ b/ash/dbus/liveness_service_provider.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromeos/dbus/services/liveness_service_provider.h"
+#include "ash/dbus/liveness_service_provider.h"
 
 #include "base/bind.h"
 #include "dbus/bus.h"
 #include "dbus/message.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 
-namespace chromeos {
+namespace ash {
 
 LivenessServiceProvider::LivenessServiceProvider() : weak_ptr_factory_(this) {}
 
@@ -18,7 +18,8 @@
 void LivenessServiceProvider::Start(
     scoped_refptr<dbus::ExportedObject> exported_object) {
   exported_object->ExportMethod(
-      kLivenessServiceInterface, kLivenessServiceCheckLivenessMethod,
+      chromeos::kLivenessServiceInterface,
+      chromeos::kLivenessServiceCheckLivenessMethod,
       base::Bind(&LivenessServiceProvider::CheckLiveness,
                  weak_ptr_factory_.GetWeakPtr()),
       base::Bind(&LivenessServiceProvider::OnExported,
@@ -29,8 +30,7 @@
                                          const std::string& method_name,
                                          bool success) {
   if (!success) {
-    LOG(ERROR) << "Failed to export " << interface_name << "."
-               << method_name;
+    LOG(ERROR) << "Failed to export " << interface_name << "." << method_name;
   }
 }
 
@@ -40,4 +40,4 @@
   response_sender.Run(dbus::Response::FromMethodCall(method_call));
 }
 
-}  // namespace chromeos
+}  // namespace ash
diff --git a/chromeos/dbus/services/liveness_service_provider.h b/ash/dbus/liveness_service_provider.h
similarity index 74%
rename from chromeos/dbus/services/liveness_service_provider.h
rename to ash/dbus/liveness_service_provider.h
index 75092a3..5500447a 100644
--- a/chromeos/dbus/services/liveness_service_provider.h
+++ b/ash/dbus/liveness_service_provider.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 CHROMEOS_DBUS_SERVICES_LIVENESS_SERVICE_PROVIDER_H_
-#define CHROMEOS_DBUS_SERVICES_LIVENESS_SERVICE_PROVIDER_H_
+#ifndef ASH_DBUS_LIVENESS_SERVICE_PROVIDER_H_
+#define ASH_DBUS_LIVENESS_SERVICE_PROVIDER_H_
 
 #include <string>
 
@@ -11,7 +11,6 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "chromeos/chromeos_export.h"
 #include "chromeos/dbus/services/cros_dbus_service.h"
 #include "dbus/exported_object.h"
 
@@ -19,27 +18,27 @@
 class MethodCall;
 }
 
-namespace chromeos {
+namespace ash {
 
 // This class exports a "CheckLiveness" D-Bus method that the session manager
 // calls periodically to confirm that Chrome's UI thread is responsive to D-Bus
 // messages.  It can be tested with the following command:
 //
 // % dbus-send --system --type=method_call --print-reply
-//     --dest=org.chromium.LibCrosService
-//     /org/chromium/LibCrosService
-//     org.chromium.LibCrosServiceInterface.CheckLiveness
+//     --dest=org.chromium.LivenessService
+//     /org/chromium/LivenessService
+//     org.chromium.LivenessServiceInterface.CheckLiveness
 //
 // -> method return sender=:1.9 -> dest=:1.27 reply_serial=2
 //
 // (An empty response should be returned.)
-class CHROMEOS_EXPORT LivenessServiceProvider
-    : public CrosDBusService::ServiceProviderInterface {
+class LivenessServiceProvider
+    : public chromeos::CrosDBusService::ServiceProviderInterface {
  public:
   LivenessServiceProvider();
   ~LivenessServiceProvider() override;
 
-  // CrosDBusService::ServiceProviderInterface overrides:
+  // chromeos::CrosDBusService::ServiceProviderInterface overrides:
   void Start(scoped_refptr<dbus::ExportedObject> exported_object) override;
 
  private:
@@ -60,6 +59,6 @@
   DISALLOW_COPY_AND_ASSIGN(LivenessServiceProvider);
 };
 
-}  // namespace chromeos
+}  // namespace ash
 
-#endif  // CHROMEOS_DBUS_SERVICES_LIVENESS_SERVICE_PROVIDER_H_
+#endif  // ASH_DBUS_LIVENESS_SERVICE_PROVIDER_H_
diff --git a/chromeos/dbus/services/org.chromium.DisplayService.conf b/ash/dbus/org.chromium.DisplayService.conf
similarity index 100%
rename from chromeos/dbus/services/org.chromium.DisplayService.conf
rename to ash/dbus/org.chromium.DisplayService.conf
diff --git a/chromeos/dbus/services/org.chromium.LivenessService.conf b/ash/dbus/org.chromium.LivenessService.conf
similarity index 100%
rename from chromeos/dbus/services/org.chromium.LivenessService.conf
rename to ash/dbus/org.chromium.LivenessService.conf
diff --git a/ash/keyboard/keyboard_ui.cc b/ash/keyboard/keyboard_ui.cc
deleted file mode 100644
index 5bb18a38..0000000
--- a/ash/keyboard/keyboard_ui.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/keyboard/keyboard_ui.h"
-
-#include <memory>
-
-#include "ash/accessibility/accessibility_controller.h"
-#include "ash/accessibility/accessibility_observer.h"
-#include "ash/keyboard/keyboard_ui_observer.h"
-#include "ash/shell.h"
-#include "ui/keyboard/keyboard_controller.h"
-
-namespace ash {
-
-class KeyboardUIImpl : public KeyboardUI, public AccessibilityObserver {
- public:
-  KeyboardUIImpl() : enabled_(false) {
-    Shell::Get()->accessibility_controller()->AddObserver(this);
-  }
-
-  ~KeyboardUIImpl() override {
-    if (Shell::HasInstance() && Shell::Get()->accessibility_controller())
-      Shell::Get()->accessibility_controller()->RemoveObserver(this);
-  }
-
-  void ShowInDisplay(const display::Display& display) override {
-    auto* controller = keyboard::KeyboardController::Get();
-    // Keyboard may not always be enabled. https://crbug.com/749989
-    if (!controller->enabled())
-      return;
-    controller->ShowKeyboardInDisplay(display);
-  }
-  void Hide() override {
-    // Do nothing as this is called from ash::Shell, which also calls through
-    // to the appropriate keyboard functions.
-  }
-  bool IsEnabled() override {
-    return Shell::Get()->accessibility_controller()->IsVirtualKeyboardEnabled();
-  }
-
-  // AccessibilityObserver:
-  void OnAccessibilityStatusChanged() override {
-    bool enabled = IsEnabled();
-    if (enabled_ == enabled)
-      return;
-
-    enabled_ = enabled;
-    for (auto& observer : *observers())
-      observer.OnKeyboardEnabledStateChanged(enabled);
-  }
-
- private:
-  bool enabled_;
-
-  DISALLOW_COPY_AND_ASSIGN(KeyboardUIImpl);
-};
-
-KeyboardUI::~KeyboardUI() = default;
-
-// static
-std::unique_ptr<KeyboardUI> KeyboardUI::Create() {
-  return std::make_unique<KeyboardUIImpl>();
-}
-
-void KeyboardUI::AddObserver(KeyboardUIObserver* observer) {
-  observers_.AddObserver(observer);
-}
-
-void KeyboardUI::RemoveObserver(KeyboardUIObserver* observer) {
-  observers_.RemoveObserver(observer);
-}
-
-KeyboardUI::KeyboardUI() = default;
-
-}  // namespace ash
diff --git a/ash/keyboard/keyboard_ui.h b/ash/keyboard/keyboard_ui.h
deleted file mode 100644
index fa17e19..0000000
--- a/ash/keyboard/keyboard_ui.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_KEYBOARD_KEYBOARD_UI_H_
-#define ASH_KEYBOARD_KEYBOARD_UI_H_
-
-#include <memory>
-
-#include "ash/ash_export.h"
-#include "base/macros.h"
-#include "base/observer_list.h"
-
-namespace display {
-class Display;
-}
-
-namespace ash {
-
-class KeyboardUIObserver;
-
-// KeyboardUI wraps the appropriate keyboard ui depending upon whether ash is
-// running in mus or non-mus.
-class ASH_EXPORT KeyboardUI {
- public:
-  virtual ~KeyboardUI();
-
-  static std::unique_ptr<KeyboardUI> Create();
-
-  virtual void ShowInDisplay(const display::Display& display) = 0;
-  virtual void Hide() = 0;
-
-  // Returns true if the keyboard is enabled.
-  virtual bool IsEnabled() = 0;
-
-  void AddObserver(KeyboardUIObserver* observer);
-  void RemoveObserver(KeyboardUIObserver* observer);
-
-  // Applist also queries this for bounds. If app list remains in ash then
-  // we need to plumb bounds through here too.
-
- protected:
-  KeyboardUI();
-
-  base::ObserverList<KeyboardUIObserver>::Unchecked* observers() {
-    return &observers_;
-  }
-
- private:
-  base::ObserverList<KeyboardUIObserver>::Unchecked observers_;
-};
-
-}  // namespace ash
-
-#endif  // ASH_KEYBOARD_KEYBOARD_UI_H_
diff --git a/ash/keyboard/keyboard_ui_mash.cc b/ash/keyboard/keyboard_ui_mash.cc
deleted file mode 100644
index 9a232bb..0000000
--- a/ash/keyboard/keyboard_ui_mash.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/keyboard/keyboard_ui_mash.h"
-
-#include <memory>
-
-#include "ash/keyboard/keyboard_ui_observer.h"
-#include "services/service_manager/public/cpp/connector.h"
-
-namespace ash {
-
-KeyboardUIMash::KeyboardUIMash(service_manager::Connector* connector)
-    : is_enabled_(false), observer_binding_(this) {
-  // TODO: chrome should register the keyboard interface with ash.
-  // http://crbug.com/683289.
-}
-
-KeyboardUIMash::~KeyboardUIMash() = default;
-
-// static
-std::unique_ptr<KeyboardUI> KeyboardUIMash::Create(
-    service_manager::Connector* connector) {
-  return std::make_unique<KeyboardUIMash>(connector);
-}
-
-void KeyboardUIMash::Hide() {
-  if (keyboard_)
-    keyboard_->Hide();
-}
-
-void KeyboardUIMash::ShowInDisplay(const display::Display& display) {
-  // TODO(yhanada): Send display id after adding a display_id argument to
-  // |Keyboard::Show()| in keyboard.mojom. See crbug.com/585253.
-  if (keyboard_)
-    keyboard_->Show();
-}
-
-bool KeyboardUIMash::IsEnabled() {
-  return is_enabled_;
-}
-
-void KeyboardUIMash::OnKeyboardStateChanged(bool is_enabled,
-                                            bool is_visible,
-                                            uint64_t display_id,
-                                            const gfx::Rect& bounds) {
-  if (is_enabled_ == is_enabled)
-    return;
-
-  is_enabled_ = is_enabled;
-  for (auto& observer : *observers())
-    observer.OnKeyboardEnabledStateChanged(is_enabled);
-}
-
-}  // namespace ash
diff --git a/ash/keyboard/keyboard_ui_mash.h b/ash/keyboard/keyboard_ui_mash.h
deleted file mode 100644
index c6337d6..0000000
--- a/ash/keyboard/keyboard_ui_mash.h
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_KEYBOARD_KEYBOARD_UI_MASH_H_
-#define ASH_KEYBOARD_KEYBOARD_UI_MASH_H_
-
-#include <stdint.h>
-
-#include <memory>
-
-#include "ash/keyboard/keyboard_ui.h"
-#include "base/macros.h"
-#include "mojo/public/cpp/bindings/binding.h"
-#include "ui/keyboard/keyboard.mojom.h"
-
-namespace service_manager {
-class Connector;
-}
-namespace display {
-class Display;
-}
-
-namespace ash {
-
-class KeyboardUIMash : public KeyboardUI,
-                       public keyboard::mojom::KeyboardObserver {
- public:
-  // |connector| may be null in tests.
-  explicit KeyboardUIMash(service_manager::Connector* connector);
-  ~KeyboardUIMash() override;
-
-  static std::unique_ptr<KeyboardUI> Create(
-      service_manager::Connector* connector);
-
-  // KeyboardUI:
-  void Hide() override;
-  void ShowInDisplay(const display::Display& display) override;
-  bool IsEnabled() override;
-
-  // keyboard::mojom::KeyboardObserver:
-  void OnKeyboardStateChanged(bool is_enabled,
-                              bool is_visible,
-                              uint64_t display_id,
-                              const gfx::Rect& bounds) override;
-
- private:
-  bool is_enabled_;
-
-  // May be null during tests.
-  keyboard::mojom::KeyboardPtr keyboard_;
-  mojo::Binding<keyboard::mojom::KeyboardObserver> observer_binding_;
-
-  DISALLOW_COPY_AND_ASSIGN(KeyboardUIMash);
-};
-
-}  // namespace ash
-
-#endif  // ASH_KEYBOARD_KEYBOARD_UI_MASH_H_
diff --git a/ash/keyboard/keyboard_ui_observer.h b/ash/keyboard/keyboard_ui_observer.h
deleted file mode 100644
index a12305ea..0000000
--- a/ash/keyboard/keyboard_ui_observer.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_KEYBOARD_KEYBOARD_UI_OBSERVER_H_
-#define ASH_KEYBOARD_KEYBOARD_UI_OBSERVER_H_
-
-#include "ash/ash_export.h"
-#include "base/macros.h"
-
-namespace ash {
-
-class ASH_EXPORT KeyboardUIObserver {
- public:
-  virtual void OnKeyboardEnabledStateChanged(bool new_enabled) = 0;
-
- protected:
-  virtual ~KeyboardUIObserver() {}
-};
-
-}  // namespace ash
-
-#endif  // ASH_KEYBOARD_KEYBOARD_UI_OBSERVER_H_
diff --git a/ash/keyboard/virtual_keyboard_controller.cc b/ash/keyboard/virtual_keyboard_controller.cc
index 47ebe93..cc4ed450 100644
--- a/ash/keyboard/virtual_keyboard_controller.cc
+++ b/ash/keyboard/virtual_keyboard_controller.cc
@@ -8,7 +8,6 @@
 
 #include "ash/accessibility/accessibility_controller.h"
 #include "ash/ime/ime_controller.h"
-#include "ash/keyboard/keyboard_ui.h"
 #include "ash/public/cpp/config.h"
 #include "ash/root_window_controller.h"
 #include "ash/session/session_controller.h"
@@ -51,7 +50,6 @@
 void MoveKeyboardToDisplayInternal(const display::Display& display) {
   // Remove the keyboard from curent root window controller
   TRACE_EVENT0("vk", "MoveKeyboardToDisplayInternal");
-  Shell::Get()->keyboard_ui()->Hide();
   RootWindowController::ForWindow(
       keyboard::KeyboardController::Get()->GetRootWindow())
       ->DeactivateKeyboard(keyboard::KeyboardController::Get());
diff --git a/ash/login/ui/lock_contents_view.cc b/ash/login/ui/lock_contents_view.cc
index 4f7313f..305a524 100644
--- a/ash/login/ui/lock_contents_view.cc
+++ b/ash/login/ui/lock_contents_view.cc
@@ -1631,21 +1631,27 @@
 }
 
 void LockContentsView::RegisterAccelerators() {
-  // TODO: Add more accelerators that are applicable to login screen.
-  accel_map_[ui::Accelerator(ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN)] =
-      AcceleratorAction::kShowFeedback;
+  // Accelerators that apply on login and lock:
   accel_map_[ui::Accelerator(ui::VKEY_RIGHT, 0)] =
       AcceleratorAction::kFocusNextUser;
   accel_map_[ui::Accelerator(ui::VKEY_LEFT, 0)] =
       AcceleratorAction::kFocusPreviousUser;
 
-  // Show reset conflicts with rotate screen when --ash-dev-shortcuts is passed.
-  // Favor --ash-dev-shortcuts since that is explicitly added.
-  if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
-          switches::kAshDeveloperShortcuts)) {
-    accel_map_[ui::Accelerator(
-        ui::VKEY_R, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN |
-                        ui::EF_ALT_DOWN)] = AcceleratorAction::kShowResetScreen;
+  // Login-only accelerators:
+  if (screen_type_ == LockScreen::ScreenType::kLogin) {
+    accel_map_[ui::Accelerator(ui::VKEY_I,
+                               ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN)] =
+        AcceleratorAction::kShowFeedback;
+
+    // Show reset conflicts with rotate screen when --ash-dev-shortcuts is
+    // passed. Favor --ash-dev-shortcuts since that is explicitly added.
+    if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
+            switches::kAshDeveloperShortcuts)) {
+      accel_map_[ui::Accelerator(ui::VKEY_R, ui::EF_CONTROL_DOWN |
+                                                 ui::EF_SHIFT_DOWN |
+                                                 ui::EF_ALT_DOWN)] =
+          AcceleratorAction::kShowResetScreen;
+    }
   }
 
   AcceleratorController* controller = Shell::Get()->accelerator_controller();
diff --git a/ash/login/ui/lock_contents_view_unittest.cc b/ash/login/ui/lock_contents_view_unittest.cc
index 72e5f9c..ec9750a8 100644
--- a/ash/login/ui/lock_contents_view_unittest.cc
+++ b/ash/login/ui/lock_contents_view_unittest.cc
@@ -1821,7 +1821,7 @@
 
 TEST_F(LockContentsViewUnitTest, PowerwashShortcutSendsMojoCall) {
   auto* contents = new LockContentsView(
-      mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLock,
+      mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLogin,
       data_dispatcher(),
       std::make_unique<FakeLoginDetachableBaseModel>(data_dispatcher()));
   SetUserCount(1);
diff --git a/ash/message_center/message_list_view.cc b/ash/message_center/message_list_view.cc
index 8d305ad..c90fa9ea 100644
--- a/ash/message_center/message_list_view.cc
+++ b/ash/message_center/message_list_view.cc
@@ -427,12 +427,11 @@
 }
 
 bool MessageListView::IsValidChild(const views::View* child) const {
-  return child->visible() &&
-         deleting_views_.find(const_cast<views::View*>(child)) ==
+  return deleting_views_.find(const_cast<views::View*>(child)) ==
              deleting_views_.end() &&
          deleted_when_done_.find(const_cast<views::View*>(child)) ==
              deleted_when_done_.end() &&
-         !base::ContainsValue(clearing_all_views_, child);
+         !base::ContainsValue(clearing_all_views_, child) && child->visible();
 }
 
 void MessageListView::DoUpdateIfPossible() {
diff --git a/ash/shelf/app_list_shelf_item_delegate.cc b/ash/shelf/app_list_shelf_item_delegate.cc
index 3ecd8caa..8379d790 100644
--- a/ash/shelf/app_list_shelf_item_delegate.cc
+++ b/ash/shelf/app_list_shelf_item_delegate.cc
@@ -44,7 +44,8 @@
 
   // End overview mode.
   if (Shell::Get()->window_selector_controller()->IsSelecting()) {
-    Shell::Get()->window_selector_controller()->ToggleOverview();
+    Shell::Get()->window_selector_controller()->ToggleOverview(
+        /*use_slide_animation=*/true);
     back_action = false;
   }
 
diff --git a/ash/shell.cc b/ash/shell.cc
index 31fff9a0..04d77eeb 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -55,7 +55,6 @@
 #include "ash/host/ash_window_tree_host_init_params.h"
 #include "ash/ime/ime_controller.h"
 #include "ash/ime/ime_focus_handler.h"
-#include "ash/keyboard/keyboard_ui.h"
 #include "ash/keyboard/virtual_keyboard_controller.h"
 #include "ash/laser/laser_pointer_controller.h"
 #include "ash/login/login_screen_controller.h"
@@ -500,7 +499,6 @@
 }
 
 void Shell::DisableKeyboard() {
-  keyboard_ui_->Hide();
   if (keyboard_controller_->enabled()) {
     for (auto* const controller : GetAllRootWindowControllers())
       controller->DeactivateKeyboard(keyboard_controller_.get());
@@ -1246,8 +1244,6 @@
       display_configurator_.get(), display_manager_.get(),
       std::make_unique<display::DefaultTouchTransformSetter>());
 
-  keyboard_ui_ = KeyboardUI::Create();
-
   // |system_tray_model_| should be available before
   // |system_notification_controller_| is initialized and Shelf is created by
   // WindowTreeHostManager::InitHosts.
diff --git a/ash/shell.h b/ash/shell.h
index e9f2d74..582216dd 100644
--- a/ash/shell.h
+++ b/ash/shell.h
@@ -133,7 +133,6 @@
 class ImmersiveHandlerFactoryAsh;
 class KeyAccessibilityEnabler;
 class KeyboardBrightnessControlDelegate;
-class KeyboardUI;
 class LaserPointerController;
 class LocaleNotificationController;
 class LockStateController;
@@ -423,7 +422,6 @@
   KeyboardBrightnessControlDelegate* keyboard_brightness_control_delegate() {
     return keyboard_brightness_control_delegate_.get();
   }
-  KeyboardUI* keyboard_ui() { return keyboard_ui_.get(); }
   LaserPointerController* laser_pointer_controller() {
     return laser_pointer_controller_.get();
   }
@@ -753,7 +751,6 @@
   std::unique_ptr<ImmersiveContextAsh> immersive_context_;
   std::unique_ptr<KeyboardBrightnessControlDelegate>
       keyboard_brightness_control_delegate_;
-  std::unique_ptr<KeyboardUI> keyboard_ui_;
   std::unique_ptr<keyboard::KeyboardController> keyboard_controller_;
   std::unique_ptr<LocaleNotificationController> locale_notification_controller_;
   std::unique_ptr<LoginScreenController> login_screen_controller_;
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index 1056fbe..72eb9315 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">የግቤት ስልቶች በእርስዎ አስተዳዳሪ ይዋቀራሉ።</translation>
 <translation id="1747827819627189109">በማያ ገጽ ላይ የቁልፍ ሰሌዳ ነቅቷል</translation>
 <translation id="1761222317188459878">የአውታረ መረብ ግንኙነትን አብራ ወይም አጥፋ። <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">ማያ ገጼ ላይ ምን አለ?</translation>
 <translation id="1823873187264960516">ኤተርኔት፦ <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">ረዳት (በመጫን ላይ...)</translation>
 <translation id="1841545962859478868">የመሣሪያው አስተዳዳሪ የሚከተሉትን ሊከታተል ይችላል፦</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">ግንኑነት ያክሉ</translation>
 <translation id="2961963223658824723">የሆነ ስህተት ተከስቷል። በጥቂት ሰከንዶች ውስጥ እንደገና ይሞክሩ።</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">ሁሉንም የማሳወቂያ ይዘቶች አሳይ</translation>
 <translation id="2995447421581609334">የCast መሣሪያዎችን አሳይ።</translation>
 <translation id="2996462380875591307">የተተከለ ማጉያ ነቅቷል። እንደገና እንዲጠፋ አድርጎ ለመቀያየር Ctrl+ፍለጋ+D ይጫኑ።</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> በ<ph name="DOMAIN" /> የሚቀናበር ይፋዊ ክፍለ ጊዜ ነው</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">መሣሪያዎች</translation>
 <translation id="4659419629803378708">ChromeVox ነቅቷል</translation>
 <translation id="4734965478015604180">አግድማዊ</translation>
+<translation id="476166673298332917">የዚህ መሣሪያ አስተዳዳሪ የይለፍ ቃላት እና የተግባቦት ጨምሮ የሁሉንም እንቅስቃሴ መዳረሻ አለው።</translation>
 <translation id="4776917500594043016">የ<ph name="USER_EMAIL_ADDRESS" /> ይለፍ ቃል</translation>
 <translation id="479989351350248267">ፈልግ</translation>
 <translation id="4804818685124855865">ግንኙነት አቋርጥ</translation>
 <translation id="4849058404725798627">ነገርየውን ከቁልፍ ሰሌዳ ትኩረት ጋር አድምቅ</translation>
 <translation id="4872237917498892622">Alt+Search ወይም Shift</translation>
 <translation id="4890187583552566966">Google ረዳቱ በአስተዳዳሪዎ ተሰናክሏል።</translation>
+<translation id="4893522937062257019">በማያ ገጽ ቁልፉ ላይ</translation>
 <translation id="4895488851634969361">ባትሪው ሙሉ ነው።</translation>
 <translation id="490375751687810070">አቀባዊ</translation>
 <translation id="4905614135390995787">ባለከፍተኛ ንፅፅር ሁነታ የሚቀይረው አቋራጭ ተለውጧል። እባክዎ በ<ph name="OLD_SHORTCUT" /> ምትክ <ph name="NEW_SHORTCUT" />ን ይጠቀሙ።</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">የተደራሽነት ቅንብሮች</translation>
 <translation id="5313326810920013265">የብሉቱዝ ቅንብሮች</translation>
 <translation id="5331975486040154427">USB-C መሣሪያ (የግራ ጎን ኋላ ወደብ)</translation>
+<translation id="5379115545237091094">በጣም ብዙ ሙከራዎች</translation>
 <translation id="5397578532367286026">የዚህ ተጠቃሚ አጠቃቀም እና ታሪክ በchrome.com ላይ በአስተዳዳሪ (<ph name="MANAGER_EMAIL" />) ሊገመገም ይችላል።</translation>
 <translation id="5430931332414098647">ቅጽበታዊ እንደ ሞደም መሰካት</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">እንደገና ጀምር</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">የአቋራጭ ተመልካች</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">በርቷል</translation>
 <translation id="592343074608792716">ይህ Chromebook እና የእርስዎ ስልክ በራስ-ሰር ይገናኛሉ</translation>
 <translation id="5947494881799873997">አድህር</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">አስጀማሪ መመሪያ</translation>
 <translation id="6981982820502123353">ተደራሽነት</translation>
 <translation id="698231206551913481">አንዴ ይህ ተጠቃሚ ከተወገደ በኋላ ከዚህ ተጠቃሚ ጋር የተጎዳኙ ሁሉም ፋይሎች እና አካባቢያዊ ውሂብ በቋሚነት ይሰረዛሉ።</translation>
+<translation id="7007100238996585961">በሌላ መሣሪያ ላይ ምላሽ በመስጠት ላይ</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> ላይ ተመልሰው ይምጡ።</translation>
 <translation id="7029814467594812963">ከክፍለ-ጊዜ ውጣ</translation>
 <translation id="7037152028959403492">የከፍተኛ ንጽጽር አቋራጩን ተጭነዋል። ሊያበሩት ይፈልጋሉ?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">የአውታረ መረብ ግንኙነት ተቀይሯል</translation>
 <translation id="742594950370306541">ካሜራ ስራ ላይ ነው።</translation>
 <translation id="743058460480092004">ካሜራና ማይክራፎን ስራ ላይ ናቸው።</translation>
+<translation id="7497767806359279797">ቋንቋ እና ቁልፍ ሰሌዳን ይምረጡ</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">አውታረ መረብ ክትትል የሚደረግበት ሊሆን ይችላል</translation>
 <translation id="7536035074519304529">የአይፒ አድራሻ፦ <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">ብሬይል እና ChromeVox ነቅተዋል</translation>
 <translation id="7593891976182323525">Search ወይም Shift</translation>
 <translation id="7604942372593434070">የአሰሳ እንቅስቃሴዎን ይድረሱ</translation>
+<translation id="7642778300616172920">አደጋ ሊያስከትል የሚችል ይዘትን ደብቅ</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ባለቤት)</translation>
 <translation id="7647488630410863958">የእርስዎን ማሳወቂያዎች ለማየት መሣሪያውን ይክፈቱ</translation>
 <translation id="7649070708921625228">እገዛ</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">ከ<ph name="NETWORK_NAME" /> ጋር በመገናኘት ላይ...</translation>
 <translation id="7842569679327885685">ማስጠንቀቂያ፦ የሙከራ ባህሪ</translation>
 <translation id="7846634333498149051">የቁልፍ ሰሌዳ</translation>
+<translation id="7886277072580235377">የእርስዎ የበይነመረብ ክፍለ-ጊዜ ዘግተው ሲወጡ ይጸዳል። <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">ከግላዊነት ጋር የተገናኙ ቅንብሮችን ይቆጣጠሩ</translation>
 <translation id="7904094684485781019">የዚህ መለያ አስተዳዳሪ ባለብዙ መለያ መግባትን ከልክሏል።</translation>
 <translation id="7933084174919150729">Google ረዳቱ ለዋናው መገለጫ ብቻ የሚገኝ ነው።</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />፦ ዳግም በማገናኘት ላይ...</translation>
 <translation id="8513108775083588393">በራስ ሰር አሽከርክር</translation>
 <translation id="8517041960877371778">የእርሰዎ <ph name="DEVICE_TYPE" /> እንደበራ ኃይል መሙላት አይችሉ ይሆናል።</translation>
+<translation id="8592141010104017453">በጭራሽ ማሳወቂያዎችን አታሳይ</translation>
 <translation id="8627191004499078455">ከ<ph name="DEVICE_NAME" /> ጋር ተገናኝቷል</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> ይቀራል</translation>
 <translation id="8649101189709089199">ለመናገር-ይምረጡ</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 09ced91bd..ca3b253 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">تتم تهيئة طرق الإدخال بواسطة المشرف.</translation>
 <translation id="1747827819627189109">تم تفعيل لوحة المفاتيح على الشاشة</translation>
 <translation id="1761222317188459878">تبديل الاتصال بالشبكة. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">ما العناصر التي تظهر على شاشتي؟</translation>
 <translation id="1823873187264960516">الإيثرنت: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">المساعد (جارٍ التحميل...)</translation>
 <translation id="1841545962859478868">قد يراقب مشرف الجهاز ما يلي:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">إضافة اتصال</translation>
 <translation id="2961963223658824723">حدث خطأ. يُرجى إعادة المحاولة خلال بضع ثوانٍ.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">عرض كل محتوى الإشعارات</translation>
 <translation id="2995447421581609334">عرض أجهزة البث.</translation>
 <translation id="2996462380875591307">‏تم تفعيل المكبّر. يمكنك إيقافه بالضغط على Ctrl+Search+D مرة أخرى.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> هي جلسة عامة يديرها <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">الأجهزة</translation>
 <translation id="4659419629803378708">‏تم تفعيل ChromeVox</translation>
 <translation id="4734965478015604180">أفقي</translation>
+<translation id="476166673298332917">يمكن لمشرف هذا الجهاز الوصول إلى جميع الأنشطة، بما في ذلك كلمات المرور والاتصالات.</translation>
 <translation id="4776917500594043016">كلمة مرور <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">بحث</translation>
 <translation id="4804818685124855865">قطع الاتصال</translation>
 <translation id="4849058404725798627">تمييز الكائن باستخدام تركيز لوحة المفاتيح</translation>
 <translation id="4872237917498892622">‏Alt+مفتاح البحث أو Shift</translation>
 <translation id="4890187583552566966">‏تم إيقاف مساعد Google من قِبل المشرف.</translation>
+<translation id="4893522937062257019">على شاشة التأمين</translation>
 <translation id="4895488851634969361">البطارية مملوءة.</translation>
 <translation id="490375751687810070">عمودي</translation>
 <translation id="4905614135390995787">تم تغيير اختصار تشغيل وضع التباين العالي. يُرجى استخدام <ph name="NEW_SHORTCUT" /> بدلاً من <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">إعدادات إمكانية الدخول</translation>
 <translation id="5313326810920013265">إعدادات البلوتوث</translation>
 <translation id="5331975486040154427">‏جهاز USB-C (المنفذ الخلفي الأيسر)</translation>
+<translation id="5379115545237091094">محاولات كثيرة جدًا</translation>
 <translation id="5397578532367286026">‏يُمكن للمدير مراجعة الاستخدام والسجل الخاص بهذا المستخدم (<ph name="MANAGER_EMAIL" />) على chrome.com.</translation>
 <translation id="5430931332414098647">التوصيل الفوري</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">إعادة التشغيل</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">عارض الاختصارات</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">تشغيل</translation>
 <translation id="592343074608792716">‏سيتم الربط تلقائيًا بين جهاز Chromebook هذا وهاتفك.</translation>
 <translation id="5947494881799873997">التراجع عن الإجراء</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">البدء</translation>
 <translation id="6981982820502123353">إمكانية الدخول</translation>
 <translation id="698231206551913481">سيتم حذف جميع الملفات والبيانات المحلية المرتبطة بهذا المستخدم نهائيًا بمجرد إزالة هذا المستخدم.</translation>
+<translation id="7007100238996585961">جارٍ الرد على جهاز آخر</translation>
 <translation id="7015766095477679451">يمكنك العودة لاستخدام الجهاز في <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">إنهاء الجلسة</translation>
 <translation id="7037152028959403492">لقد ضغطت على اختصار التباين العالي. هل ترغب في تفعيله؟</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">تم تبديل اتصال الشبكة</translation>
 <translation id="742594950370306541">الكاميرا قيد الاستخدام.</translation>
 <translation id="743058460480092004">الكاميرا والميكروفون قيد الاستخدام.</translation>
+<translation id="7497767806359279797">اختيار اللغة ولوحة المفاتيح</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">قد تكون الشبكة خاضعة للمراقبة</translation>
 <translation id="7536035074519304529">‏عنوان IP: ‏<ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">‏تم تفعيل Braille وChromeVox</translation>
 <translation id="7593891976182323525">‏مفتاح البحث أو Shift</translation>
 <translation id="7604942372593434070">الدخول إلى نشاط التصفح</translation>
+<translation id="7642778300616172920">إخفاء المحتوى الحسّاس</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (المالك)</translation>
 <translation id="7647488630410863958">إلغاء قفل الجهاز لعرض الإشعارات</translation>
 <translation id="7649070708921625228">مساعدة</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">جارٍ الاتصال بشبكة <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">تحذير: ميزة تجريبية</translation>
 <translation id="7846634333498149051">لوحة المفاتيح</translation>
+<translation id="7886277072580235377">سيتم محو جلسة الإنترنت عند تسجيل الخروج. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">معالجة الإعدادات المتعلقة بالخصوصية</translation>
 <translation id="7904094684485781019">لقد حظر مشرف هذا الحساب إمكانية الدخول المتعدد.</translation>
 <translation id="7933084174919150729">‏لا يتوفر مساعد Google إلا للملف الشخصي الأساسي.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" /> : جارٍ إعادة الاتصال ...</translation>
 <translation id="8513108775083588393">التدوير تلقائي</translation>
 <translation id="8517041960877371778">قد يتعذر شحن <ph name="DEVICE_TYPE" /> أثناء التشغيل.</translation>
+<translation id="8592141010104017453">عدم عرض الإشعارات على الإطلاق</translation>
 <translation id="8627191004499078455">تم الاتصال بجهاز <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">يتبقى <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">سماع الاختيار</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb
index 7779c08..53e5b40 100644
--- a/ash/strings/ash_strings_bg.xtb
+++ b/ash/strings/ash_strings_bg.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Методите на въвеждане са конфигурирани от администратора ви.</translation>
 <translation id="1747827819627189109">Екранната клавиатура е активирана</translation>
 <translation id="1761222317188459878">Превключване на връзката с мрежа. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Какво има на екрана ми?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Асистент (зарежда се...)</translation>
 <translation id="1841545962859478868">Администраторът на устройството може да наблюдава следното:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Добавяне на връзка</translation>
 <translation id="2961963223658824723">Нещо се обърка. Опитайте отново след няколко секунди.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Показване на цялото съдържание от известията</translation>
 <translation id="2995447421581609334">Показване на устройствата за предаване.</translation>
 <translation id="2996462380875591307">Лупата в прикрепен режим е активирана. За да я изключите, натиснете отново Ctrl + клавиш „Търсене“ + D.</translation>
 <translation id="2999742336789313416">„<ph name="DISPLAY_NAME" />“ е обществена сесия, управлявана от <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Устройства</translation>
 <translation id="4659419629803378708">Активирахте ChromeVox</translation>
 <translation id="4734965478015604180">Хоризонтална ориентация</translation>
+<translation id="476166673298332917">Администраторът на това устройство има достъп до цялата активност, включително паролите и комуникациите.</translation>
 <translation id="4776917500594043016">Парола за <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Изключване</translation>
 <translation id="4849058404725798627">Открояване на обекта, върху който е фокусът от клавиатурата</translation>
 <translation id="4872237917498892622">„Alt + търсене“ или „Shift“</translation>
 <translation id="4890187583552566966">Администраторът ви е деактивирал Google Асистент.</translation>
+<translation id="4893522937062257019">На заключения екран</translation>
 <translation id="4895488851634969361">Батерията е пълна.</translation>
 <translation id="490375751687810070">Вертикална ориентация</translation>
 <translation id="4905614135390995787">Клавишната комбинация за превключване на режима на висок контраст е променена. Моля, използвайте <ph name="NEW_SHORTCUT" /> вместо <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Настройки за достъпност</translation>
 <translation id="5313326810920013265">Настройки за Bluetooth</translation>
 <translation id="5331975486040154427">Устройство с USB-C (задният ляв порт)</translation>
+<translation id="5379115545237091094">Твърде много опити</translation>
 <translation id="5397578532367286026">Данните за употребата и историята на този потребител могат да се преглеждат от мениджъра (<ph name="MANAGER_EMAIL" />) на адрес chrome.com.</translation>
 <translation id="5430931332414098647">Незабавен тетъринг</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Рестартиране</translation>
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911533659001334206">Визуализатор на клавишните комбинации</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Включено</translation>
 <translation id="592343074608792716">Този Chromebook и телефонът ви ще се свържат автоматично</translation>
 <translation id="5947494881799873997">Възстановяване</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Първи стъпки</translation>
 <translation id="6981982820502123353">Достъпност</translation>
 <translation id="698231206551913481">След като този потребител бъде премахнат, всички свързани с него файлове и локални данни ще се изтрият за постоянно.</translation>
+<translation id="7007100238996585961">Отговаря се на друго устройство</translation>
 <translation id="7015766095477679451">Ще бъда отново на ваше разположение в <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Изход от сесията</translation>
 <translation id="7037152028959403492">Използвахте клавишната комбинация за режима на висок контраст. Искате ли да го включите?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Преминахте към друга мрежа</translation>
 <translation id="742594950370306541">Камерата се използва.</translation>
 <translation id="743058460480092004">Камерата и микрофонът се използват.</translation>
+<translation id="7497767806359279797">Избор на език и клавиатура</translation>
 <translation id="7510334386202674593">Ctrl + Shift + L</translation>
 <translation id="7526573455193969409">Мрежата може да е под наблюдение</translation>
 <translation id="7536035074519304529">IP адрес: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Активирахте функцията за брайлово писмо и ChromeVox</translation>
 <translation id="7593891976182323525">„търсене“ или „Shift“</translation>
 <translation id="7604942372593434070">Достъп до активността ви при сърфиране</translation>
+<translation id="7642778300616172920">Скриване на поверителното съдържание</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (собственик)</translation>
 <translation id="7647488630410863958">Отключете устройството, за да прегледате известията си</translation>
 <translation id="7649070708921625228">Помощ</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Установява се връзка (<ph name="NETWORK_NAME" />)</translation>
 <translation id="7842569679327885685">Предупреждение: Експериментална функция</translation>
 <translation id="7846634333498149051">Клавиатура</translation>
+<translation id="7886277072580235377">Сесията ви за интернет ще бъде изчистена, когато излезете от профила си. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Манипулиране на свързаните с поверителността настройки</translation>
 <translation id="7904094684485781019">Администраторът на този профил е забранил централизирания вход.</translation>
 <translation id="7933084174919150729">Google Асистент е налице само за основния потребителски профил.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Установява се повторна връзка...</translation>
 <translation id="8513108775083588393">Автоматична ориентация</translation>
 <translation id="8517041960877371778">Възможно е вашият <ph name="DEVICE_TYPE" /> да не се зарежда, докато е включен.</translation>
+<translation id="8592141010104017453">Известията въобще да не се показват</translation>
 <translation id="8627191004499078455">Установена е връзка (<ph name="DEVICE_NAME" />)</translation>
 <translation id="8639760480004882931">Батерия: <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Прочитане на глас</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index ec0e403..58204a2 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Els mètodes d'introducció estan configurats per l'administrador.</translation>
 <translation id="1747827819627189109">Teclat en pantalla activat</translation>
 <translation id="1761222317188459878">Activa o desactiva la connexió a la xarxa. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Què hi ha a la pantalla?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistent (s'està carregant...)</translation>
 <translation id="1841545962859478868">És possible que l'administrador del dispositiu supervisi el següent:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Afegeix una connexió</translation>
 <translation id="2961963223658824723">S'ha produït un error. Torna-ho a provar d'aquí a uns quants segons.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Mostra tot el contingut de les notificacions</translation>
 <translation id="2995447421581609334">Mostra els dispositius d'emissió</translation>
 <translation id="2996462380875591307">La lupa acoblada està activada. Torna a prémer Ctrl+Cerca+D per desactivar-la.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> és una sessió pública gestionada per <ph name="DOMAIN" />.</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Dispositius</translation>
 <translation id="4659419629803378708">S'ha activat ChromeVox</translation>
 <translation id="4734965478015604180">Horitzontal</translation>
+<translation id="476166673298332917">L'administrador d'aquest dispositiu té accés a tota l'activitat, incloses les contrasenyes i les comunicacions.</translation>
 <translation id="4776917500594043016">Contrasenya per a <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">cerca</translation>
 <translation id="4804818685124855865">Desconnecta</translation>
 <translation id="4849058404725798627">Ressalta l'objecte amb el focus del teclat</translation>
 <translation id="4872237917498892622">Alt+Cerca o Maj</translation>
 <translation id="4890187583552566966">L'administrador ha desactivat l'Assistent de Google.</translation>
+<translation id="4893522937062257019">A la pantalla de bloqueig</translation>
 <translation id="4895488851634969361">La bateria està carregada.</translation>
 <translation id="490375751687810070">Vertical</translation>
 <translation id="4905614135390995787">La drecera per activar/desactivar el mode d'alt contrast ha canviat. A partir d'ara, utilitza <ph name="NEW_SHORTCUT" /> en lloc de la drecera <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Configuració d'accessibilitat</translation>
 <translation id="5313326810920013265">Configuració del Bluetooth</translation>
 <translation id="5331975486040154427">Dispositiu USB-C (port posterior esquerre)</translation>
+<translation id="5379115545237091094">Massa intents</translation>
 <translation id="5397578532367286026">El gestor (<ph name="MANAGER_EMAIL" />) pot revisar l'ús i l'historial d'aquest usuari a chrome.com.</translation>
 <translation id="5430931332414098647">Compartició de xarxa instantània</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Reinicia</translation>
 <translation id="5901316534475909376">Maj + Esc</translation>
 <translation id="5911533659001334206">Visualitzador de dreceres</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Activat</translation>
 <translation id="592343074608792716">Aquest Chromebook i el teu telèfon es connectaran automàticament</translation>
 <translation id="5947494881799873997">Reverteix</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Comença</translation>
 <translation id="6981982820502123353">Accessibilitat</translation>
 <translation id="698231206551913481">Tots els fitxers i les dades locals associats amb aquest usuari se suprimiran definitivament quan aquest usuari se suprimeixi.</translation>
+<translation id="7007100238996585961">S'està responent en un altre dispositiu</translation>
 <translation id="7015766095477679451">Pots tornar a aquesta hora: <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Tanca la sessió</translation>
 <translation id="7037152028959403492">Has premut la drecera de l'alt contrast. Vols activar-lo?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">S'ha canviat la connexió de xarxa</translation>
 <translation id="742594950370306541">La càmera s'està utilitzant.</translation>
 <translation id="743058460480092004">La càmera i el micròfon s'estan utilitzant.</translation>
+<translation id="7497767806359279797">Tria l'idioma i el teclat</translation>
 <translation id="7510334386202674593">Ctrl + Maj + L</translation>
 <translation id="7526573455193969409">És possible que la xarxa estigui supervisada</translation>
 <translation id="7536035074519304529">Adreça IP: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">S'ha activat el braille i ChromeVox</translation>
 <translation id="7593891976182323525">Cerca o Maj</translation>
 <translation id="7604942372593434070">Accedeix a l'activitat de navegació</translation>
+<translation id="7642778300616172920">Amaga el contingut sensible</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (propietari)</translation>
 <translation id="7647488630410863958">Desbloqueja el dispositiu per veure les notificacions</translation>
 <translation id="7649070708921625228">Ajuda</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">S'està connectant a <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Advertiment: funció experimental</translation>
 <translation id="7846634333498149051">Teclat</translation>
+<translation id="7886277072580235377">Les dades de la sessió a Internet s'esborraran en tancar-la. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipular la configuració relacionada amb la privadesa</translation>
 <translation id="7904094684485781019">L'administrador d'aquest compte no ha permès l'inici de sessió múltiple.</translation>
 <translation id="7933084174919150729">L'Assistent de Google només està disponible per al perfil principal.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: s'està tornant a connectar…</translation>
 <translation id="8513108775083588393">Rotació automàtica</translation>
 <translation id="8517041960877371778">És possible que el dispositiu <ph name="DEVICE_TYPE" /> no es carregui mentre està encès.</translation>
+<translation id="8592141010104017453">No mostris cap notificació</translation>
 <translation id="8627191004499078455">Connectat a <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Queda un <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Escolta la selecció</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index e7f17364..02c2b9e 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Metody zadávání nastavuje váš administrátor.</translation>
 <translation id="1747827819627189109">Softwarová klávesnice je aktivována</translation>
 <translation id="1761222317188459878">Přepnout připojení k síti. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Co je na obrazovce?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Asistent (načítání...)</translation>
 <translation id="1841545962859478868">Správce zařízení může sledovat toto:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Přidat připojení</translation>
 <translation id="2961963223658824723">Něco se pokazilo. Zkuste to znovu za několik minut.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Zobrazit veškerý obsah oznámení</translation>
 <translation id="2995447421581609334">Zobrazit zařízení Cast.</translation>
 <translation id="2996462380875591307">Zadokovaná lupa je zapnutá. Vypnete ji opětovným stisknutím kombinace kláves Ctrl+Hledat+D.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> je veřejná relace spravovaná doménou <ph name="DOMAIN" />.</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Zařízení</translation>
 <translation id="4659419629803378708">Funkce ChromeVox je zapnutá</translation>
 <translation id="4734965478015604180">Na šířku</translation>
+<translation id="476166673298332917">Administrátor tohoto zařízení má přístup k veškeré aktivitě včetně hesel a komunikace.</translation>
 <translation id="4776917500594043016">Heslo pro účet <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Odpojit</translation>
 <translation id="4849058404725798627">Zvýraznit objekt se zaměřením pro zadávání</translation>
 <translation id="4872237917498892622">Alt + Vyhledávání nebo Shift</translation>
 <translation id="4890187583552566966">Váš administrátor Asistenta Google zakázal.</translation>
+<translation id="4893522937062257019">Na obrazovce uzamčení</translation>
 <translation id="4895488851634969361">Baterie je plně nabita.</translation>
 <translation id="490375751687810070">Na výšku</translation>
 <translation id="4905614135390995787">Zkratka k přepínání režimu vysokého kontrastu se změnila. Namísto zkratky <ph name="OLD_SHORTCUT" /> používejte zkratku <ph name="NEW_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Nastavení usnadnění přístupu</translation>
 <translation id="5313326810920013265">Nastavení Bluetooth</translation>
 <translation id="5331975486040154427">Zařízení USB Type-C (levý zadní port)</translation>
+<translation id="5379115545237091094">Příliš mnoho pokusů</translation>
 <translation id="5397578532367286026">Údaje o využití a historii tohoto uživatele si správce (<ph name="MANAGER_EMAIL" />) může prohlédnout na webu chrome.com.</translation>
 <translation id="5430931332414098647">Dynamický tethering</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Restartovat</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Prohlížeč klávesových zkratek</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> <ph name="MAIL" /></translation>
 <translation id="5916664084637901428">Zapnuto</translation>
 <translation id="592343074608792716">Tenhle Chromebook a váš telefon se automaticky spojí</translation>
 <translation id="5947494881799873997">Vrátit zpět</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Začínáme</translation>
 <translation id="6981982820502123353">Usnadnění</translation>
 <translation id="698231206551913481">Po odebrání tohoto uživatele budou trvale smazány všechny soubory a místní data, která jsou k němu přiřazena.</translation>
+<translation id="7007100238996585961">Odpověď je sdělována na jiném zařízení</translation>
 <translation id="7015766095477679451">Vraťte se v <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Ukončit relaci</translation>
 <translation id="7037152028959403492">Stiskli jste klávesovou zkratku pro vysoký kontrast. Chcete ho zapnout?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Přepnuto na jinou síť</translation>
 <translation id="742594950370306541">Kamera je používána.</translation>
 <translation id="743058460480092004">Kamera a mikrofon jsou používány.</translation>
+<translation id="7497767806359279797">Vybrat jazyk a klávesnici</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Síť může být sledována</translation>
 <translation id="7536035074519304529">IP adresa: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Jsou zapnuty funkce Braille a ChromeVox</translation>
 <translation id="7593891976182323525">Vyhledávání nebo Shift</translation>
 <translation id="7604942372593434070">Přistupovat k vaší aktivitě prohlížení</translation>
+<translation id="7642778300616172920">Skrýt citlivý obsah</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (vlastník)</translation>
 <translation id="7647488630410863958">Chcete-li zobrazit oznámení, odemkněte zařízení</translation>
 <translation id="7649070708921625228">Nápověda</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Připojování k síti <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Upozornění: Experimentální funkce</translation>
 <translation id="7846634333498149051">Klávesnice</translation>
+<translation id="7886277072580235377">Když se odhlásíte, vaše relace internetu se vymaže. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipulovat s nastavením týkajícím se ochrany soukromí</translation>
 <translation id="7904094684485781019">Správce tohoto účtu zakázal vícenásobné přihlášení.</translation>
 <translation id="7933084174919150729">Asistent Google je k dispozici pouze pro primární profil.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Obnovování připojení...</translation>
 <translation id="8513108775083588393">Automatické otáčení</translation>
 <translation id="8517041960877371778">Je možné, že když bude zařízení <ph name="DEVICE_TYPE" /> zapnuté, nebude se nabíjet.</translation>
+<translation id="8592141010104017453">Oznámení vůbec nezobrazovat</translation>
 <translation id="8627191004499078455">Připojeno k zařízení <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Zbývá <ph name="PERCENTAGE" /> %</translation>
 <translation id="8649101189709089199">Poslech vybraného textu</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index d0ba810..751025a 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Indtastningsmetoder konfigureres af din administrator.</translation>
 <translation id="1747827819627189109">Skærmtastaturet er aktiveret</translation>
 <translation id="1761222317188459878">Slå netværksforbindelse til eller fra. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Hvad vises der på min skærm?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistent (indlæser...)</translation>
 <translation id="1841545962859478868">Administratoren af enheden kan overvåge følgende:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Tilføj forbindelse</translation>
 <translation id="2961963223658824723">Der opstod en fejl. Prøv igen om et par sekunder.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Vis alt indhold i underretninger</translation>
 <translation id="2995447421581609334">Vis Cast-enheder.</translation>
 <translation id="2996462380875591307">Fastgjort lupvindue er aktiveret. Tryk på Ctrl+Søg+D igen for at deaktivere tilstanden.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> er en offentlig session administreret af <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Enheder</translation>
 <translation id="4659419629803378708">ChromeVox er aktiveret</translation>
 <translation id="4734965478015604180">Vandret</translation>
+<translation id="476166673298332917">Administratoren af denne enhed har adgang til al aktivitet, herunder adgangskoder og kommunikation.</translation>
 <translation id="4776917500594043016">Adgangskode for <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">søg</translation>
 <translation id="4804818685124855865">Afbryd</translation>
 <translation id="4849058404725798627">Fremhæv element med tastaturfokus</translation>
 <translation id="4872237917498892622">Alt+Søg eller Shift</translation>
 <translation id="4890187583552566966">Google Assistent er deaktiveret af din administrator.</translation>
+<translation id="4893522937062257019">På låseskærmen</translation>
 <translation id="4895488851634969361">Batteriet er helt opladet.</translation>
 <translation id="490375751687810070">Lodret</translation>
 <translation id="4905614135390995787">Genvejen til at aktivere eller deaktivere tilstanden Høj kontrast er ændret. Brug <ph name="NEW_SHORTCUT" /> i stedet for <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Indstillinger for hjælpefunktioner</translation>
 <translation id="5313326810920013265">Indstillinger for Bluetooth</translation>
 <translation id="5331975486040154427">USB-C-enhed (porten bagpå i venstre side)</translation>
+<translation id="5379115545237091094">For mange forsøg</translation>
 <translation id="5397578532367286026">Denne brugers forbrug og historik kan ses af administratoren (<ph name="MANAGER_EMAIL" />) på chrome.com.</translation>
 <translation id="5430931332414098647">Øjeblikkelig netdeling</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Genstart</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Genvejsviser</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Til</translation>
 <translation id="592343074608792716">Denne Chromebook og din telefon forbindes automatisk</translation>
 <translation id="5947494881799873997">Fortryd</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Kom godt i gang</translation>
 <translation id="6981982820502123353">Hjælpefunktioner</translation>
 <translation id="698231206551913481">Alle filer og lokale data, der er knyttet til denne bruger, slettes permanent, når brugeren fjernes.</translation>
+<translation id="7007100238996585961">Svarer på en anden enhed</translation>
 <translation id="7015766095477679451">Vend tilbage kl. <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Afslut session</translation>
 <translation id="7037152028959403492">Du trykkede på genvejen for høj kontrast. Vil du aktivere indstillingen?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">Der blev skiftet netværksforbindelse</translation>
 <translation id="742594950370306541">Kameraet er i brug.</translation>
 <translation id="743058460480092004">Kamera og mikrofon er i brug.</translation>
+<translation id="7497767806359279797">Vælg sprog og tastatur</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Netværket kan være overvåget</translation>
 <translation id="7536035074519304529">IP-adresse: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Braille og ChromeVox er aktiveret</translation>
 <translation id="7593891976182323525">Søg eller Shift</translation>
 <translation id="7604942372593434070">Adgang til din browseraktivitet</translation>
+<translation id="7642778300616172920">Skjul følsomt indhold</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ejer)</translation>
 <translation id="7647488630410863958">Lås enheden op for at se dine underretninger</translation>
 <translation id="7649070708921625228">Hjælp</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Opretter forbindelse til <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Advarsel! Eksperimentel funktion</translation>
 <translation id="7846634333498149051">Tastatur</translation>
+<translation id="7886277072580235377">Din internetsession ryddes, når du logger ud. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipulere indstillinger til beskyttelse af personlige oplysninger</translation>
 <translation id="7904094684485781019">Administratoren for denne konto tillader ikke samlet login fra flere konti.</translation>
 <translation id="7933084174919150729">Google Assistent kan kun bruges via den primære profil.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Genopretter forbindelsen...</translation>
 <translation id="8513108775083588393">Roter automatisk</translation>
 <translation id="8517041960877371778">Din <ph name="DEVICE_TYPE" /> kan muligvis ikke oplades, mens den er tændt.</translation>
+<translation id="8592141010104017453">Vis slet ingen underretninger</translation>
 <translation id="8627191004499078455">Forbundet til <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> tilbage</translation>
 <translation id="8649101189709089199">Tekstoplæsning</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index a17063c..c35ae6a4 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Die Eingabemethoden werden von Ihrem Administrator konfiguriert.</translation>
 <translation id="1747827819627189109">Bildschirmtastatur aktiviert</translation>
 <translation id="1761222317188459878">Netzwerkverbindung aktivieren/deaktivieren. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Was wird auf meinem Bildschirm angezeigt?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistant (wird geladen…)</translation>
 <translation id="1841545962859478868">Der Geräteadministrator überwacht eventuell Folgendes:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Verbindung hinzufügen</translation>
 <translation id="2961963223658824723">Ein Fehler ist aufgetreten. Bitte versuchen Sie es in ein paar Sekunden noch einmal.</translation>
 <translation id="2963773877003373896">Mod3</translation>
+<translation id="2992931425024192067">Gesamten Benachrichtigungsinhalt anzeigen</translation>
 <translation id="2995447421581609334">Übertragungsgeräte anzeigen.</translation>
 <translation id="2996462380875591307">Angedockte Lupe aktiviert. Drücken Sie Strg + Suchtaste + D, um sie zu deaktivieren.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> ist eine öffentliche Sitzung, die von <ph name="DOMAIN" /> verwaltet wird.</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Geräte</translation>
 <translation id="4659419629803378708">ChromeVox aktiviert</translation>
 <translation id="4734965478015604180">Horizontal</translation>
+<translation id="476166673298332917">Der Administrator dieses Geräts hat Zugriff auf sämtliche Aktivitäten, einschließlich Passwörtern und Kommunikation.</translation>
 <translation id="4776917500594043016">Passwort für <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">Suchen</translation>
 <translation id="4804818685124855865">Verbindung trennen</translation>
 <translation id="4849058404725798627">Objekt mit Tastaturfokus hervorheben</translation>
 <translation id="4872237917498892622">Alt+Suchen oder Umschalttaste</translation>
 <translation id="4890187583552566966">Google Assistant wurde von Ihrem Administrator deaktiviert.</translation>
+<translation id="4893522937062257019">Auf dem Sperrbildschirm</translation>
 <translation id="4895488851634969361">Akku ist vollständig geladen.</translation>
 <translation id="490375751687810070">Vertikal</translation>
 <translation id="4905614135390995787">Die Tastenkombination zum Deaktivieren des Modus mit hohem Kontrast hat sich geändert. Bitte drücken Sie <ph name="NEW_SHORTCUT" /> statt <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Zugänglichkeitseinstellungen</translation>
 <translation id="5313326810920013265">Bluetooth-Einstellungen</translation>
 <translation id="5331975486040154427">USB-C-Gerät (Port hinten links)</translation>
+<translation id="5379115545237091094">Zu viele Versuche</translation>
 <translation id="5397578532367286026">Die Nutzung und der Verlauf des Nutzers sind für den Manager (<ph name="MANAGER_EMAIL" />) unter chrome.com einsehbar.</translation>
 <translation id="5430931332414098647">Instant Tethering</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Neu starten</translation>
 <translation id="5901316534475909376">Umschalttaste + Esc</translation>
 <translation id="5911533659001334206">Tastenkombinationsanzeige</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">An</translation>
 <translation id="592343074608792716">Dieses Chromebook und Ihr Smartphone werden automatisch miteinander verbunden</translation>
 <translation id="5947494881799873997">Rückgängig machen</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Erste Schritte</translation>
 <translation id="6981982820502123353">Bedienungshilfen</translation>
 <translation id="698231206551913481">Durch das Entfernen des Nutzers werden alle mit ihm verknüpften Dateien und lokalen Daten endgültig gelöscht.</translation>
+<translation id="7007100238996585961">Antwort auf einem anderen Gerät</translation>
 <translation id="7015766095477679451">Um <ph name="COME_BACK_TIME" /> können Sie weitermachen.</translation>
 <translation id="7029814467594812963">Sitzung beenden</translation>
 <translation id="7037152028959403492">Sie haben die Tastenkombination für hohen Kontrast gedrückt. Möchten Sie ihn aktivieren?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Netzwerkverbindung gewechselt</translation>
 <translation id="742594950370306541">Kamera wird verwendet.</translation>
 <translation id="743058460480092004">Kamera und Mikrofon werden verwendet.</translation>
+<translation id="7497767806359279797">Sprache und Tastatur auswählen</translation>
 <translation id="7510334386202674593">Strg + Umschalttaste + L</translation>
 <translation id="7526573455193969409">Das Netzwerk wird möglicherweise überwacht</translation>
 <translation id="7536035074519304529">IP-Adresse: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Braille und ChromeVox sind aktiviert</translation>
 <translation id="7593891976182323525">Suchen oder Umschalttaste</translation>
 <translation id="7604942372593434070">Auf Ihre Browseraktivitäten zugreifen</translation>
+<translation id="7642778300616172920">Vertrauliche Inhalte ausblenden</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (Eigentümer)</translation>
 <translation id="7647488630410863958">Gerät entsperren, um Benachrichtigungen zu sehen</translation>
 <translation id="7649070708921625228">Hilfe</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Verbindung zu <ph name="NETWORK_NAME" /> wird hergestellt</translation>
 <translation id="7842569679327885685">Achtung: Experimentelle Funktion</translation>
 <translation id="7846634333498149051">Tastatur</translation>
+<translation id="7886277072580235377">Ihre Internetsitzung wird gelöscht, sobald Sie sich abmelden. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Datenschutzeinstellungen bearbeiten</translation>
 <translation id="7904094684485781019">Der Administrator dieses Kontos hat keine Mehrfachanmeldung zugelassen.</translation>
 <translation id="7933084174919150729">Google Assistant ist nur für das Hauptprofil verfügbar.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Verbindung wird wiederhergestellt...</translation>
 <translation id="8513108775083588393">Automatisch drehen</translation>
 <translation id="8517041960877371778">Ihr <ph name="DEVICE_TYPE" /> wird möglicherweise nicht aufgeladen, wenn es eingeschaltet ist.</translation>
+<translation id="8592141010104017453">Keine Benachrichtigungen anzeigen</translation>
 <translation id="8627191004499078455">Verbunden mit <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> verbleibend</translation>
 <translation id="8649101189709089199">Vorlesen</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb
index a78a785..f842ae9e 100644
--- a/ash/strings/ash_strings_el.xtb
+++ b/ash/strings/ash_strings_el.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Οι μέθοδοι εισαγωγής έχουν διαμορφωθεί από τον διαχειριστή σας.</translation>
 <translation id="1747827819627189109">Το πληκτρολόγιο οθόνης είναι ενεργοποιημένο</translation>
 <translation id="1761222317188459878">Εναλλαγή σύνδεσης δικτύου. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Τι υπάρχει στην οθόνη μου;</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Βοηθός (φόρτωση…)</translation>
 <translation id="1841545962859478868">Ο διαχειριστής της συσκευής μπορεί να παρακολουθεί τα παρακάτω:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Προσθήκη σύνδεσης</translation>
 <translation id="2961963223658824723">Δυστυχώς, παρουσιάστηκε κάποιο πρόβλημα. Δοκιμάστε ξανά σε λίγα δευτερόλεπτα.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Εμφάνιση όλου του περιεχομένου ειδοποιήσεων</translation>
 <translation id="2995447421581609334">Εμφάνιση συσκευών μετάδοσης.</translation>
 <translation id="2996462380875591307">Ο Μεγεθυντικός φακός σε παράθυρο ενεργοποιήθηκε. Πατήστε Ctrl+Αναζήτηση+D ξανά για να τον απενεργοποιήσετε.</translation>
 <translation id="2999742336789313416">Το <ph name="DISPLAY_NAME" /> είναι μια δημόσια περίοδος σύνδεσης που διαχειρίζεται το <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Συσκευές</translation>
 <translation id="4659419629803378708">Το ChromeVox ενεργοποιήθηκε</translation>
 <translation id="4734965478015604180">Οριζόντια περιστροφή</translation>
+<translation id="476166673298332917">Ο διαχειριστής αυτής της συσκευής έχει πρόσβαση σε όλη τη δραστηριότητα, συμπεριλαμβανομένων των κωδικών πρόσβασης και της επικοινωνίας.</translation>
 <translation id="4776917500594043016">Κωδικός πρόσβασης για <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Αποσύνδεση</translation>
 <translation id="4849058404725798627">Επισήμανση αντικειμένου με εστίαση στο πληκτρολόγιο</translation>
 <translation id="4872237917498892622">Alt+Search ή Shift</translation>
 <translation id="4890187583552566966">Ο Βοηθός Google είναι απενεργοποιημένος από τον διαχειριστή σας.</translation>
+<translation id="4893522937062257019">Στην οθόνη κλειδώματος</translation>
 <translation id="4895488851634969361">Η μπαταρία είναι πλήρης.</translation>
 <translation id="490375751687810070">Κατακόρυφη περιστροφή</translation>
 <translation id="4905614135390995787">Η συντόμευση για την εναλλαγή της Λειτουργίας υψηλής αντίθεσης άλλαξε. Χρησιμοποιήστε τη συντόμευση <ph name="NEW_SHORTCUT" /> αντί για τη συντόμευση <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Ρυθμίσεις προσβασιμότητας</translation>
 <translation id="5313326810920013265">Ρυθμίσεις Bluetooth</translation>
 <translation id="5331975486040154427">Συσκευή USB-C (πίσω αριστερή θύρα)</translation>
+<translation id="5379115545237091094">Πάρα πολλές προσπάθειες</translation>
 <translation id="5397578532367286026">Ο διαχειριστής (<ph name="MANAGER_EMAIL" />) μπορεί να ελέγξει τη χρήση και το ιστορικό αυτού του χρήστη στη διεύθυνση chrome.com.</translation>
 <translation id="5430931332414098647">Άμεση σύνδεση</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Επανεκκίνηση</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Πρόγραμμα προβολής συντομεύσεων</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Ενεργό</translation>
 <translation id="592343074608792716">Αυτό το Chromebook και το τηλέφωνό σας θα συνδέονται αυτόματα</translation>
 <translation id="5947494881799873997">Επαναφορά</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Έναρξη</translation>
 <translation id="6981982820502123353">Προσβασιμότητα</translation>
 <translation id="698231206551913481">Όλα τα αρχεία και τα τοπικά δεδομένα που σχετίζονται με τον χρήστη θα διαγραφούν οριστικά μόλις καταργηθεί ο χρήστης.</translation>
+<translation id="7007100238996585961">Απάντηση σε άλλη συσκευή</translation>
 <translation id="7015766095477679451">Επιστρέψτε ξανά στις <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Έξοδος από συνεδρία</translation>
 <translation id="7037152028959403492">Πατήσατε τη συντόμευση για την υψηλή αντίθεση. Θέλετε να την ενεργοποιήσετε;</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Έγινε εναλλαγή της σύνδεσης δικτύου</translation>
 <translation id="742594950370306541">Η κάμερα δεν χρησιμοποιείται.</translation>
 <translation id="743058460480092004">Η κάμερα και το μικρόφωνο χρησιμοποιούνται.</translation>
+<translation id="7497767806359279797">Επιλογή γλώσσας και πληκτρολογίου</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Το δίκτυο ενδέχεται να παρακολουθείται</translation>
 <translation id="7536035074519304529">Διεύθυνση IP: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Το Braille και το ChromeVox ενεργοποιήθηκαν</translation>
 <translation id="7593891976182323525">Search ή Shift</translation>
 <translation id="7604942372593434070">Πρόσβαση στη δραστηριότητα περιήγησής σας</translation>
+<translation id="7642778300616172920">Απόκρυψη ευαίσθητου περιεχομένου</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (κάτοχος)</translation>
 <translation id="7647488630410863958">Ξεκλειδώστε τη συσκευή για να δείτε τις ειδοποιήσεις σας</translation>
 <translation id="7649070708921625228">Βοήθεια</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Σύνδεση στο δίκτυο <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Προειδοποίηση: Πειραματική λειτουργία</translation>
 <translation id="7846634333498149051">Πληκτρολόγιο</translation>
+<translation id="7886277072580235377">Η περίοδος σύνδεσής σας στο διαδίκτυο θα διαγραφεί μόλις αποσυνδεθείτε. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Διαχείριση ρυθμίσεων σχετικά με το απόρρητο</translation>
 <translation id="7904094684485781019">Ο διαχειριστής αυτού του λογαριασμού δεν έχει επιτρέψει τις πολλαπλές συνδέσεις.</translation>
 <translation id="7933084174919150729">Ο Βοηθός Google είναι διαθέσιμος μόνο για το κύριο προφίλ.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Επανασύνδεση…</translation>
 <translation id="8513108775083588393">Αυτόματη περιστροφή</translation>
 <translation id="8517041960877371778">Δεν είναι δυνατή η φόρτιση της συσκευής <ph name="DEVICE_TYPE" /> ενώ είναι ενεργοποιημένη.</translation>
+<translation id="8592141010104017453">Να μην εμφανίζονται ειδοποιήσεις</translation>
 <translation id="8627191004499078455">Συνδέθηκε στη συσκευή <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Απομένει <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Επιλέξτε για αυτόματη ανάγνωση</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
index f3e7274..8b6fb3c 100644
--- a/ash/strings/ash_strings_es-419.xtb
+++ b/ash/strings/ash_strings_es-419.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Tu administrador configura los métodos de entrada.</translation>
 <translation id="1747827819627189109">Teclado en pantalla habilitado</translation>
 <translation id="1761222317188459878">Activar o desactivar la conexión de red: <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">¿Qué hay en mi pantalla?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Asistente (cargando…)</translation>
 <translation id="1841545962859478868">Es posible que el administrador de dispositivos supervise lo siguiente:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Agregar conexión</translation>
 <translation id="2961963223658824723">Se produjo un error. Vuelve a intentarlo en unos segundos.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Mostrar todo el contenido de notificaciones</translation>
 <translation id="2995447421581609334">Mostrar dispositivos de transmisión</translation>
 <translation id="2996462380875591307">Se habilitó la lupa con vista acoplada. Presiona Ctrl+Buscar+D de nuevo para desactivarla.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> es una sesión pública administrada por <ph name="DOMAIN" />.</translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Dispositivos</translation>
 <translation id="4659419629803378708">Se habilitó ChromeVox</translation>
 <translation id="4734965478015604180">Horizontal</translation>
+<translation id="476166673298332917">El administrador de este dispositivo tiene acceso a toda la actividad, incluidas las contraseñas y comunicaciones.</translation>
 <translation id="4776917500594043016">Contraseña para <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Desconectar</translation>
 <translation id="4849058404725798627">Resaltar el objeto con el enfoque del teclado</translation>
 <translation id="4872237917498892622">Alt+tecla de búsqueda o Mayús</translation>
 <translation id="4890187583552566966">Tu administrador inhabilitó el Asistente de Google.</translation>
+<translation id="4893522937062257019">En la pantalla bloqueada</translation>
 <translation id="4895488851634969361">La batería está completa.</translation>
 <translation id="490375751687810070">Vertical</translation>
 <translation id="4905614135390995787">Se cambió el acceso directo para activar o desactivar el Modo de contraste alto. Usa <ph name="NEW_SHORTCUT" /> en lugar de <ph name="OLD_SHORTCUT" />.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Configuración de accesibilidad</translation>
 <translation id="5313326810920013265">Configuración de Bluetooth</translation>
 <translation id="5331975486040154427">Dispositivo USB-C (puerto lateral izquierdo trasero)</translation>
+<translation id="5379115545237091094">Realizaste demasiados intentos</translation>
 <translation id="5397578532367286026">El administrador (<ph name="MANAGER_EMAIL" />) puede revisar el uso y el historial de este usuario en la página chrome.com.</translation>
 <translation id="5430931332414098647">Conexión instantánea mediante dispositivo portátil</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Reiniciar</translation>
 <translation id="5901316534475909376">Mayúscula + Esc</translation>
 <translation id="5911533659001334206">Visualizador de combinaciones de teclas</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Activada</translation>
 <translation id="592343074608792716">La Chromebook y el teléfono se conectarán automáticamente</translation>
 <translation id="5947494881799873997">Revertir</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Comenzar</translation>
 <translation id="6981982820502123353">Accesibilidad</translation>
 <translation id="698231206551913481">Todos los archivos y datos locales asociados a este usuario se borrarán de forma permanente una vez que se quite este usuario.</translation>
+<translation id="7007100238996585961">Se responderá en otro dispositivo</translation>
 <translation id="7015766095477679451">Regresa a las <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Salir de la sesión</translation>
 <translation id="7037152028959403492">Presionaste la combinación de teclas para activar el modo de contraste alto. ¿Quieres activarlo?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">Se cambió la conexión de red</translation>
 <translation id="742594950370306541">Cámara en uso</translation>
 <translation id="743058460480092004">Cámara y micrófono en uso</translation>
+<translation id="7497767806359279797">Elegir idioma y teclado</translation>
 <translation id="7510334386202674593">Ctrl + mayúscula + L</translation>
 <translation id="7526573455193969409">Es posible que la red esté supervisada</translation>
 <translation id="7536035074519304529">Dirección IP: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Se habilitaron el braille y ChromeVox</translation>
 <translation id="7593891976182323525">Tecla de búsqueda o Mayús</translation>
 <translation id="7604942372593434070">Se accederá a tu actividad de navegación</translation>
+<translation id="7642778300616172920">Ocultar contenido confidencial</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (propietario/a)</translation>
 <translation id="7647488630410863958">Desbloquea el dispositivo para ver tus notificaciones</translation>
 <translation id="7649070708921625228">Ayuda</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Conectando a <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Advertencia: Función experimental</translation>
 <translation id="7846634333498149051">Teclado</translation>
+<translation id="7886277072580235377">Cuando salgas, se borrarán los datos de tu sesión de Internet. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipular la configuración relacionada con la privacidad</translation>
 <translation id="7904094684485781019">El administrador de esta cuenta inhabilitó el acceso múltiple.</translation>
 <translation id="7933084174919150729">El Asistente de Google solo está disponible para el perfil principal.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Restableciendo conexión…</translation>
 <translation id="8513108775083588393">Giro automático</translation>
 <translation id="8517041960877371778">Tu <ph name="DEVICE_TYPE" /> podría no cargarse si el dispositivo está encendido.</translation>
+<translation id="8592141010104017453">No mostrar ninguna notificación</translation>
 <translation id="8627191004499078455">Conectado a <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> restante</translation>
 <translation id="8649101189709089199">Seleccionar para pronunciar</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index 33dcb9b..be73a3a 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">El administrador configura los métodos de introducción.</translation>
 <translation id="1747827819627189109">Teclado en pantalla habilitado</translation>
 <translation id="1761222317188459878">Activa o desactiva la conexión de red. <ph name="STATE_TEXT" />.</translation>
+<translation id="1812997170047690955">¿Qué hay en mi pantalla?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Asistente (cargando...)</translation>
 <translation id="1841545962859478868">Es posible que el administrador del dispositivo supervise lo siguiente:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Añadir conexión</translation>
 <translation id="2961963223658824723">Se ha producido un error. Vuelve a intentarlo en unos segundos.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Mostrar todo el contenido de las notificaciones</translation>
 <translation id="2995447421581609334">Mostrar dispositivos de transmisión</translation>
 <translation id="2996462380875591307">Se ha habilitado la lupa fijada. Pulsa Ctrl + tecla de búsqueda + D de nuevo para desactivarla.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> es una sesión pública administrada por <ph name="DOMAIN" />.</translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Dispositivos</translation>
 <translation id="4659419629803378708">ChromeVox habilitado</translation>
 <translation id="4734965478015604180">Horizontal</translation>
+<translation id="476166673298332917">El administrador de este dispositivo tiene acceso a toda la actividad, incluidas las contraseñas y las comunicaciones.</translation>
 <translation id="4776917500594043016">Contraseña de <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">buscar</translation>
 <translation id="4804818685124855865">Desvincular</translation>
 <translation id="4849058404725798627">Resaltar el objeto con el foco del teclado</translation>
 <translation id="4872237917498892622">Alt+tecla de búsqueda o Mayús</translation>
 <translation id="4890187583552566966">Tu administrador ha inhabilitado el Asistente de Google.</translation>
+<translation id="4893522937062257019">En la pantalla de bloqueo</translation>
 <translation id="4895488851634969361">La batería está llena.</translation>
 <translation id="490375751687810070">Vertical</translation>
 <translation id="4905614135390995787">La combinación de teclas para activar el modo de contraste alto ha cambiado. Utiliza <ph name="NEW_SHORTCUT" /> en lugar de <ph name="OLD_SHORTCUT" />.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Configuración de accesibilidad</translation>
 <translation id="5313326810920013265">Configuración de Bluetooth</translation>
 <translation id="5331975486040154427">Dispositivo USB tipo C (puerto trasero izquierdo)</translation>
+<translation id="5379115545237091094">Demasiados intentos</translation>
 <translation id="5397578532367286026">El administrador puede consultar el uso y el historial de este usuario (<ph name="MANAGER_EMAIL" />) en la página chrome.com.</translation>
 <translation id="5430931332414098647">Conexión compartida instantánea</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Reiniciar</translation>
 <translation id="5901316534475909376">Mayús+Esc</translation>
 <translation id="5911533659001334206">Visor de combinaciones de teclas</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Activar</translation>
 <translation id="592343074608792716">Este Chromebook y tu teléfono se conectarán automáticamente</translation>
 <translation id="5947494881799873997">Deshacer</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Empezar</translation>
 <translation id="6981982820502123353">Accesibilidad</translation>
 <translation id="698231206551913481">Una vez que se haya quitado este usuario, todos los archivos y datos asociados a él se eliminarán de forma permanente.</translation>
+<translation id="7007100238996585961">Se está respondiendo en otro dispositivo</translation>
 <translation id="7015766095477679451">Hora a la que puedes volver: <ph name="COME_BACK_TIME" /></translation>
 <translation id="7029814467594812963">Cerrar sesión</translation>
 <translation id="7037152028959403492">Has pulsado la combinación de teclas de contraste alto. ¿Quieres activarlo?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">Se ha cambiado la conexión de red</translation>
 <translation id="742594950370306541">La cámara se está utilizando.</translation>
 <translation id="743058460480092004">La cámara y el micrófono se están utilizando.</translation>
+<translation id="7497767806359279797">Seleccionar idioma y teclado</translation>
 <translation id="7510334386202674593">Ctrl+Mayús+L</translation>
 <translation id="7526573455193969409">Es posible que la red esté supervisada</translation>
 <translation id="7536035074519304529">Dirección IP: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Braille y ChromeVox están habilitados</translation>
 <translation id="7593891976182323525">Tecla de búsqueda o Mayús</translation>
 <translation id="7604942372593434070">Accede a tu actividad de navegación</translation>
+<translation id="7642778300616172920">Ocultar contenido sensible</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (propietario)</translation>
 <translation id="7647488630410863958">Desbloquear el dispositivo para ver las notificaciones</translation>
 <translation id="7649070708921625228">Ayuda</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Estableciendo conexión con <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Advertencia: Función experimental</translation>
 <translation id="7846634333498149051">Teclado</translation>
+<translation id="7886277072580235377">Tu sesión de Internet se borrará cuando la cierres. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Modificar la configuración relacionada con la privacidad</translation>
 <translation id="7904094684485781019">El administrador de esta cuenta ha inhabilitado el inicio de sesión múltiple.</translation>
 <translation id="7933084174919150729">El Asistente de Google solo está disponible en el perfil principal.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: volviendo a conectar...</translation>
 <translation id="8513108775083588393">Girar automáticamente</translation>
 <translation id="8517041960877371778">Es posible que tu <ph name="DEVICE_TYPE" /> no se cargue mientras esté encendido.</translation>
+<translation id="8592141010104017453">No mostrar notificaciones</translation>
 <translation id="8627191004499078455">Conectado a <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> restante</translation>
 <translation id="8649101189709089199">Enunciar Selección</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb
index 8ef4b7da..72d0208d 100644
--- a/ash/strings/ash_strings_et.xtb
+++ b/ash/strings/ash_strings_et.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Sisestusmeetodid seadistab teie administraator.</translation>
 <translation id="1747827819627189109">Ekraanil kuvatav klaviatuur on lubatud</translation>
 <translation id="1761222317188459878">Lülitab võrguühenduse sisse või välja. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Mis on minu ekraanil?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistent (laadimine …)</translation>
 <translation id="1841545962859478868">Seadme administraator võib jälgida järgmist:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Lisa ühendus</translation>
 <translation id="2961963223658824723">Midagi läks valesti. Proovige mõne sekundi pärast uuesti.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Kuva kogu märguande sisu</translation>
 <translation id="2995447421581609334">Kuvab ülekandeseadmed.</translation>
 <translation id="2996462380875591307">Dokitud luup on lubatud. Vajutage selle väljalülitamiseks klahvikombinatsiooni Ctrl + otsinguklahv + D.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> on avalik seanss, mida haldab <ph name="DOMAIN" /></translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Seadmed</translation>
 <translation id="4659419629803378708">ChromeVox on lubatud</translation>
 <translation id="4734965478015604180">Horisontaalne</translation>
+<translation id="476166673298332917">Seadme aministraatoril on juurdepääs kõigile tegevustele, sh paroolidele ja sidele.</translation>
 <translation id="4776917500594043016">Kasutaja <ph name="USER_EMAIL_ADDRESS" /> parool</translation>
 <translation id="479989351350248267">otsing</translation>
 <translation id="4804818685124855865">Katkesta ühendus</translation>
 <translation id="4849058404725798627">Klaviatuuri fookusega objekti esiletõstmine</translation>
 <translation id="4872237917498892622">Alt + otsinguklahv või tõstuklahv</translation>
 <translation id="4890187583552566966">Administraator on Google'i assistendi keelanud.</translation>
+<translation id="4893522937062257019">Lukustuskuval</translation>
 <translation id="4895488851634969361">Aku on täis.</translation>
 <translation id="490375751687810070">Vertikaalne</translation>
 <translation id="4905614135390995787">Suure kontrastsusega režiimi aktiveerimise otsetee on muutunud. Kasutage edaspidi otseteed <ph name="NEW_SHORTCUT" />, mitte <ph name="OLD_SHORTCUT" />.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Juurdepääsuseaded</translation>
 <translation id="5313326810920013265">Bluetoothi seaded</translation>
 <translation id="5331975486040154427">C-tüüpi USB-seade (tagumine vasakpoolne port)</translation>
+<translation id="5379115545237091094">Liiga palju katseid</translation>
 <translation id="5397578532367286026">Haldur (<ph name="MANAGER_EMAIL" />) saab kasutaja kasutusandmeid ja ajalugu vaadata aadressil chrome.com.</translation>
 <translation id="5430931332414098647">Automaatne jagamine</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Taaskäivitamine</translation>
 <translation id="5901316534475909376">Tõstuklahv + ESC</translation>
 <translation id="5911533659001334206">Otseteede vaatur</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Sees</translation>
 <translation id="592343074608792716">See Chromebook ja teie telefon ühendatakse automaatselt</translation>
 <translation id="5947494881799873997">Ennista</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Alustamine</translation>
 <translation id="6981982820502123353">Juurdepääsetavus</translation>
 <translation id="698231206551913481">Kõik selle kasutajaga seotud failid ja kohalikud andmed kustutatakse jäädavalt kohe, kui see kasutaja eemaldatakse.</translation>
+<translation id="7007100238996585961">Vastamine teises seadmes</translation>
 <translation id="7015766095477679451">Tulge tagasi kell <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Välju seansist</translation>
 <translation id="7037152028959403492">Vajutasite suure kontrastsusega režiimi otseteed. Kas soovite režiimi sisse lülitada?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">Võrguühendust vahetati</translation>
 <translation id="742594950370306541">Kaamera on kasutusel.</translation>
 <translation id="743058460480092004">Kaamera ja mikrofon on kasutusel.</translation>
+<translation id="7497767806359279797">Valige keel ja klaviatuur</translation>
 <translation id="7510334386202674593">Ctrl + Tõstuklahv + L</translation>
 <translation id="7526573455193969409">Võrku võidakse jälgida</translation>
 <translation id="7536035074519304529">IP-adress: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Punktkiri ja ChromeVox on lubatud</translation>
 <translation id="7593891976182323525">Otsinguklahv või tõstuklahv</translation>
 <translation id="7604942372593434070">Juurdepääs teie sirvimistegevustele</translation>
+<translation id="7642778300616172920">Peida tundlik sisu</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (omanik)</translation>
 <translation id="7647488630410863958">Märguannete vaatamiseks avage seade</translation>
 <translation id="7649070708921625228">Abi</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Ühenduse loomine võrguga <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Hoiatus: katseline funktsioon</translation>
 <translation id="7846634333498149051">Klaviatuur</translation>
+<translation id="7886277072580235377">Teie Interneti-seanss kustutatakse väljalogimisel. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Privaatsusega seotud seadete muutmine</translation>
 <translation id="7904094684485781019">Selle konto administraator on mitmesse kontosse sisselogimise keelanud.</translation>
 <translation id="7933084174919150729">Google'i assistent on saadaval ainult peamisel profiilil.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: uuesti ühendamine …</translation>
 <translation id="8513108775083588393">Automaatne pööramine</translation>
 <translation id="8517041960877371778">Kui seade <ph name="DEVICE_TYPE" /> on sisse lülitatud, ei pruugita seda laadida.</translation>
+<translation id="8592141010104017453">Ära kuva märguandeid üldse</translation>
 <translation id="8627191004499078455">Ühendatud seadmega <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> on jäänud</translation>
 <translation id="8649101189709089199">Vali ja kuula</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index a9c2dfc..952f253 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">روش‌های ورودی توسط سرپرستتان پیکربندی می‌شوند.</translation>
 <translation id="1747827819627189109">صفحه‌کلید روی صفحه فعال شد</translation>
 <translation id="1761222317188459878">تغییر وضعیت اتصال شبکه. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">چه چیزی در صفحه‌نمایش من نشان داده می‌شود؟</translation>
 <translation id="1823873187264960516">اترنت: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">دستیار (درحال بار کردن…)</translation>
 <translation id="1841545962859478868">سرپرست دستگاه ممکن است موارد زیر را پایش کند</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">افزودن اتصال</translation>
 <translation id="2961963223658824723">مشکلی پیش آمد. چند ثانیه دیگر دوباره امتحان کنید.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">نمایش کل محتوای اعلان</translation>
 <translation id="2995447421581609334">نمایش دستگاه‌های ارسال محتوا.</translation>
 <translation id="2996462380875591307">‏«ذره‌بین متصل» فعال شد. برای خاموش کردن آن، Ctrl+Search+D را دوباره فشار دهید.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> یک جلسه عمومی مدیریت‌شده توسط <ph name="DOMAIN" /> است</translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">دستگاه‌ها</translation>
 <translation id="4659419629803378708">‏ChromeVox فعال شد</translation>
 <translation id="4734965478015604180">افقی</translation>
+<translation id="476166673298332917">سرپرست این سیستم به همه فعالیت‌ها، ازجمله گذرواژه‌ها و ارتباطات دسترسی دارد.</translation>
 <translation id="4776917500594043016">گذرواژه <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">جستجو</translation>
 <translation id="4804818685124855865">قطع اتصال</translation>
 <translation id="4849058404725798627">برجسته کردن شیء با فوکوس صفحه‌کلید</translation>
 <translation id="4872237917498892622">‏Alt+جستجو یا Shift</translation>
 <translation id="4890187583552566966">‏سرپرستتان «دستیار Google» را غیرفعال کرده است.</translation>
+<translation id="4893522937062257019">در صفحه قفل</translation>
 <translation id="4895488851634969361">باتری پر است.</translation>
 <translation id="490375751687810070">عمودی</translation>
 <translation id="4905614135390995787">میان‌بر روشن/خاموش کردن «حالت تضاد بالا» تغییر کرده است. لطفاً به‌جای <ph name="OLD_SHORTCUT" /> از <ph name="NEW_SHORTCUT" /> استفاده کنید.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">تنظیمات دسترس‌پذیری</translation>
 <translation id="5313326810920013265">تنظیمات بلوتوث</translation>
 <translation id="5331975486040154427">‏دستگاه USB-C (درگاه عقب سمت چپ)</translation>
+<translation id="5379115545237091094">تلاش‌های ناموفق زیادی انجام شده است</translation>
 <translation id="5397578532367286026">‏میزان مصرف و سابقه این کاربر می‌تواند توسط مدیر (<ph name="MANAGER_EMAIL" />) در chrome.com بازبینی شود.</translation>
 <translation id="5430931332414098647">اتصال فوری به اینترنت با تلفن همراه</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">راه‌اندازی مجدد</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">نمایشگر میان‌بر</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">روشن</translation>
 <translation id="592343074608792716">‏این Chromebook و تلفنتان به‌طور خودکار مرتبط می‌شوند</translation>
 <translation id="5947494881799873997">برگرداندن</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">شروع به کار</translation>
 <translation id="6981982820502123353">قابلیت دسترسی</translation>
 <translation id="698231206551913481">اگر کاربر حذف شود، همه فایل‌ها و داده‌های محلی مربوط به او به‌طور دائم حذف خواهند شد.</translation>
+<translation id="7007100238996585961">درحال پاسخ دادن در دستگاه دیگر</translation>
 <translation id="7015766095477679451">ساعت <ph name="COME_BACK_TIME" /> دوباره برگردید.</translation>
 <translation id="7029814467594812963">خروج از جلسه</translation>
 <translation id="7037152028959403492">میان‌بر مربوط به کنتراست بالا را فشار دادید. می‌خواهید آن را روشن کنید؟</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">اتصال شبکه تغییریافته</translation>
 <translation id="742594950370306541">دوربین در حال استفاده است.</translation>
 <translation id="743058460480092004">دوربین و میکروفن در حال استفاده هستند.</translation>
+<translation id="7497767806359279797">انتخاب زبان و صفحه‌کلید</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">ممکن است شبکه پایش شود</translation>
 <translation id="7536035074519304529">‏نشانی IP: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">‏بریل و ChromeVox فعال هستند</translation>
 <translation id="7593891976182323525">‏جستجو یا Shift</translation>
 <translation id="7604942372593434070">دسترسی به فعالیت مرور شما</translation>
+<translation id="7642778300616172920">پنهان کردن محتوای حساس</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (مالک)</translation>
 <translation id="7647488630410863958">برای مشاهده اعلان‌هایتان، قفل دستگاه را باز کنید</translation>
 <translation id="7649070708921625228">راهنما</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">درحال اتصال به <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">هشدار: ویژگی آزمایشی</translation>
 <translation id="7846634333498149051">صفحه‌کلید</translation>
+<translation id="7886277072580235377">وقتی از سیستم خارج شوید، جلسه اینترنت پاک خواهد شد. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">دستکاری تنظیمات مربوط به حریم خصوصی</translation>
 <translation id="7904094684485781019">سرپرست این حساب اجازه ورود چندگانه به سیستم را نمی‌دهد.</translation>
 <translation id="7933084174919150729">‏«دستیار Google» فقط برای نمایه اصلی دردسترس است.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: درحال اتصال مجدد...</translation>
 <translation id="8513108775083588393">چرخش خودکار</translation>
 <translation id="8517041960877371778">ممکن است وقتی <ph name="DEVICE_TYPE" /> شما خاموش است، شارژ نشود.</translation>
+<translation id="8592141010104017453">هرگز اعلان نشان داده نشود</translation>
 <translation id="8627191004499078455">متصل به <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> باقی‌مانده</translation>
 <translation id="8649101189709089199">انتخاب برای شنیدن</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index 5a41c5e3..738af687 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Järjestelmänvalvoja on määrittänyt syöttötavat.</translation>
 <translation id="1747827819627189109">Ruutunäppäimistö otettiin käyttöön</translation>
 <translation id="1761222317188459878">Ota verkkoyhteys käyttöön tai poista se käytöstä. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Mitä näytölläni näkyy?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistant (ladataan…)</translation>
 <translation id="1841545962859478868">Laitteen järjestelmänvalvoja voi seurata näitä:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Lisää yhteys</translation>
 <translation id="2961963223658824723">Jokin meni pieleen. Yritä uudelleen parin sekunnin kuluttua.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Näytä ilmoitusten koko sisältö</translation>
 <translation id="2995447421581609334">Näytä Cast-laitteet.</translation>
 <translation id="2996462380875591307">Kiinnitetty suurennus on käytössä. Poista se käytöstä painamalla uudelleen Ctrl + haku + D.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> on julkinen käyttökerta, jota hallinnoi <ph name="DOMAIN" /></translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Laitteet</translation>
 <translation id="4659419629803378708">ChromeVox käytössä</translation>
 <translation id="4734965478015604180">Vaakasuora</translation>
+<translation id="476166673298332917">Tämän laitteen järjestelmänvalvojalla on pääsy kaikkeen toimintaan, mukaan lukien salasanoihin ja viestintään.</translation>
 <translation id="4776917500594043016">Osoitteen <ph name="USER_EMAIL_ADDRESS" /> salasana</translation>
 <translation id="479989351350248267">haku</translation>
 <translation id="4804818685124855865">Katkaise yhteys</translation>
 <translation id="4849058404725798627">Korosta tekstin syöttökohde</translation>
 <translation id="4872237917498892622">Alt + haku tai Shift</translation>
 <translation id="4890187583552566966">Järjestelmänvalvoja on poistanut Google Assistantin käytöstä.</translation>
+<translation id="4893522937062257019">Lukitusnäytöllä</translation>
 <translation id="4895488851634969361">Akku on täynnä.</translation>
 <translation id="490375751687810070">Pystysuora</translation>
 <translation id="4905614135390995787">Suuren kontrastin tilan pikanäppäin on muuttunut. Käytä uutta pikanäppäintä <ph name="NEW_SHORTCUT" /> vanhan (<ph name="OLD_SHORTCUT" />) sijaan.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Käytettävyysasetukset</translation>
 <translation id="5313326810920013265">Bluetooth-asetukset</translation>
 <translation id="5331975486040154427">C-tyypin USB-laite (vasemman sivun taaimmainen portti)</translation>
+<translation id="5379115545237091094">Liian monta yritystä</translation>
 <translation id="5397578532367286026">Hallinnoija (<ph name="MANAGER_EMAIL" />) voi tarkkailla tämän käyttäjän käyttö- ja historiatietoja osoitteessa chrome.com.</translation>
 <translation id="5430931332414098647">Yhteyden pikajakaminen</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Käynnistä uudelleen</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Pikanäppäimet</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Käytössä</translation>
 <translation id="592343074608792716">Puhelin muodostaa yhteyden Chromebookiin automaattisesti</translation>
 <translation id="5947494881799873997">Palauta</translation>
@@ -334,6 +340,7 @@
 <translation id="6972754398087986839">Aloitusopas</translation>
 <translation id="6981982820502123353">Esteettömyys</translation>
 <translation id="698231206551913481">Kun käyttäjä poistetaan, kaikki kyseiseen käyttäjään yhdistetyt tiedostot ja paikalliset tiedot poistetaan pysyvästi.</translation>
+<translation id="7007100238996585961">Toinen laite vastaa</translation>
 <translation id="7015766095477679451">Palaa kello <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Sulje käyttökerta</translation>
 <translation id="7037152028959403492">Painoit suuren kontrastin pikanäppäintä. Haluatko ottaa sen käyttöön?</translation>
@@ -355,6 +362,7 @@
 <translation id="7398254312354928459">Verkko vaihdettu</translation>
 <translation id="742594950370306541">Kamera on käytössä.</translation>
 <translation id="743058460480092004">Kamera ja mikrofoni ovat käytössä.</translation>
+<translation id="7497767806359279797">Valitse kieli ja näppäimistö</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Verkkoa saatetaan valvoa</translation>
 <translation id="7536035074519304529">IP-osoite: <ph name="ADDRESS" /></translation>
@@ -364,6 +372,7 @@
 <translation id="7569509451529460200">Pistekirjoitus ja ChromeVox käytössä</translation>
 <translation id="7593891976182323525">Haku tai Shift</translation>
 <translation id="7604942372593434070">Tarkastele selaustoimintaasi</translation>
+<translation id="7642778300616172920">Piilota arkaluontoinen sisältö</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (omistaja)</translation>
 <translation id="7647488630410863958">Katso ilmoitukset avaamalla laitteesi lukitus.</translation>
 <translation id="7649070708921625228">Ohje</translation>
@@ -379,6 +388,7 @@
 <translation id="7842211907556571265">Yhdistetään: <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Varoitus: Kokeellinen ominaisuus</translation>
 <translation id="7846634333498149051">Näppäimistö</translation>
+<translation id="7886277072580235377">Internetin käyttökertasi tyhjennetään kirjautuessasi ulos. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Muokata tietosuojaan liittyviä asetuksia</translation>
 <translation id="7904094684485781019">Tämän tilin järjestelmänvalvoja on estänyt useisiin tileihin kirjautumisen.</translation>
 <translation id="7933084174919150729">Google Assistant on käytettävissä vain ensisijaisella profiililla.</translation>
@@ -419,6 +429,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Yhdistetään uudelleen…</translation>
 <translation id="8513108775083588393">Automaattinen kääntö</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> ei välttämättä lataudu, kun se on käynnissä.</translation>
+<translation id="8592141010104017453">Älä näytä ilmoituksia lainkaan</translation>
 <translation id="8627191004499078455">Yhdistetty: <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> jäljellä</translation>
 <translation id="8649101189709089199">Teksti puhuttuna</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 3cb88fad..0c3b0a6 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Isinasaayos ng iyong administrator ang mga pamamaraan sa pag-input.</translation>
 <translation id="1747827819627189109">Naka-enable ang on-screen na keyboard</translation>
 <translation id="1761222317188459878">I-toggle ang koneksyon sa network. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Ano ang nasa screen ko?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistant (naglo-load...)</translation>
 <translation id="1841545962859478868">Maaaring subaybayan ng admin ng device ang mga sumusunod:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Magdagdag ng koneksyon</translation>
 <translation id="2961963223658824723">Nagkaproblema. Subukang muli sa loob ng ilang segundo.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Ipakita ang lahat ng content ng notification</translation>
 <translation id="2995447421581609334">Ipakita ang mga cast device.</translation>
 <translation id="2996462380875591307">Na-enable ang Naka-dock na Magnifier. Pinduting muli ang Ctrl+Search+D para i-off ito.</translation>
 <translation id="2999742336789313416">Ang <ph name="DISPLAY_NAME" /> ay isang pampublikong session na pinamamahalaan ng <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Mga Device</translation>
 <translation id="4659419629803378708">Na-enable ang ChromeVox</translation>
 <translation id="4734965478015604180">Horizontal</translation>
+<translation id="476166673298332917">May access ang administrator ng device na ito sa lahat ng aktibidad, kabilang ang mga password at komunikasyon.</translation>
 <translation id="4776917500594043016">Password para sa <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">I-disconnect</translation>
 <translation id="4849058404725798627">I-highlight ang bagay sa pamamagitan ng pag-focus ng keyboard</translation>
 <translation id="4872237917498892622">Alt+Search o Shift</translation>
 <translation id="4890187583552566966">Na-disable ng iyong administrator ang Google Assistant.</translation>
+<translation id="4893522937062257019">Sa lock screen</translation>
 <translation id="4895488851634969361">Puno na ang baterya.</translation>
 <translation id="490375751687810070">Vertical</translation>
 <translation id="4905614135390995787">Nagbago ang shortcut upang i-toggle ang High Contrast Mode. Pakigamit ang <ph name="NEW_SHORTCUT" /> sa halip na <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Mga setting ng accessibility</translation>
 <translation id="5313326810920013265">Mga setting ng Bluetooth</translation>
 <translation id="5331975486040154427">USB-C device (port sa kaliwang bahagi sa likod)</translation>
+<translation id="5379115545237091094">Masyadong maraming pagtatangka</translation>
 <translation id="5397578532367286026">Ang paggamit at kasaysayan ng user na ito ay maaaring suriin ng manager (<ph name="MANAGER_EMAIL" />) sa chrome.com.</translation>
 <translation id="5430931332414098647">Instant na Pag-tether</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">I-restart</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Shortcut viewer</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Naka-on</translation>
 <translation id="592343074608792716">Awtomatikong kokonekta ang Chromebook na ito at ang iyong telepono</translation>
 <translation id="5947494881799873997">I-revert</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Magsimula</translation>
 <translation id="6981982820502123353">Pagiging Maa-access</translation>
 <translation id="698231206551913481">Permanenteng made-delete ang lahat ng file at lokal na data na nauugnay sa user na ito kapag inalis na ang user na ito.</translation>
+<translation id="7007100238996585961">Sinasagot sa isa pang device</translation>
 <translation id="7015766095477679451">Bumalik nang <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Lumabas sa session</translation>
 <translation id="7037152028959403492">Napindot mo ang shortcut para sa mataas na contrast. Gusto mo ba itong i-on?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Lumipat ng koneksyon ng network</translation>
 <translation id="742594950370306541">Ginagamit ang camera.</translation>
 <translation id="743058460480092004">Ginagamit ang camera at mikropono.</translation>
+<translation id="7497767806359279797">Pumili ng wika at keyboard</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Maaaring sinusubaybayan ang network</translation>
 <translation id="7536035074519304529">IP address: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Na-enable ang Braille at ChromeVox</translation>
 <translation id="7593891976182323525">Search or Shift</translation>
 <translation id="7604942372593434070">I-access ang iyong aktibidad sa pag-browse</translation>
+<translation id="7642778300616172920">Itago ang sensitibong content</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (may-ari)</translation>
 <translation id="7647488630410863958">I-unlock ang device upang tingnan ang iyong mga notification</translation>
 <translation id="7649070708921625228">Tulong</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Kumokonekta sa <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Babala: Pang-eskperimentong feature</translation>
 <translation id="7846634333498149051">Keyboard</translation>
+<translation id="7886277072580235377">Maki-clear ang iyong session sa internet kapag nag-sign out ka. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipulahin ang mga setting kaugnay ng privacy</translation>
 <translation id="7904094684485781019">Hindi pinayagan ng administrator para sa account na ito ang multiple na pag-sign in.</translation>
 <translation id="7933084174919150729">Available lang ang Google Assistant para sa pangunahing profile.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Muling kumokonekta...</translation>
 <translation id="8513108775083588393">I-auto rotate</translation>
 <translation id="8517041960877371778">Maaaring hindi mag-charge ang iyong <ph name="DEVICE_TYPE" /> habang naka-on ito.</translation>
+<translation id="8592141010104017453">Huwag magpakita ng anumang notification</translation>
 <translation id="8627191004499078455">Nakakonekta sa <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> na lang ang natitira</translation>
 <translation id="8649101189709089199">Select-to-Speak</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb
index 8959de4..e62e75cb 100644
--- a/ash/strings/ash_strings_fr.xtb
+++ b/ash/strings/ash_strings_fr.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Les modes de saisie sont configurés par votre administrateur.</translation>
 <translation id="1747827819627189109">Clavier à l'écran activé</translation>
 <translation id="1761222317188459878">Activer/Désactiver la connexion réseau. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Éléments affichés à l'écran</translation>
 <translation id="1823873187264960516">Ethernet : <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistant (chargement…)</translation>
 <translation id="1841545962859478868">L'administrateur de cet appareil peut contrôler les éléments suivants :</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Ajouter une connexion</translation>
 <translation id="2961963223658824723">Une erreur s'est produite. Veuillez réessayer dans quelques secondes.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Afficher tout le contenu des notifications</translation>
 <translation id="2995447421581609334">Afficher les appareils Cast.</translation>
 <translation id="2996462380875591307">Le mode Loupe ancrée est activé. Appuyez de nouveau sur Ctrl+Recherche+D pour le désactiver.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> est une session publique gérée par <ph name="DOMAIN" /></translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Appareils</translation>
 <translation id="4659419629803378708">ChromeVox activé</translation>
 <translation id="4734965478015604180">Horizontal</translation>
+<translation id="476166673298332917">L'administrateur de cet appareil a accès à toute l'activité, y compris aux mots de passe et aux communications.</translation>
 <translation id="4776917500594043016">Mot de passe de <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">rechercher</translation>
 <translation id="4804818685124855865">Se déconnecter</translation>
 <translation id="4849058404725798627">Mettre l'objet sélectionné au clavier en surbrillance</translation>
 <translation id="4872237917498892622">Alt + Recherche ou Maj</translation>
 <translation id="4890187583552566966">L'administrateur a désactivé l'Assistant Google.</translation>
+<translation id="4893522937062257019">Sur l'écran de verrouillage</translation>
 <translation id="4895488851634969361">La batterie est pleine.</translation>
 <translation id="490375751687810070">Vertical</translation>
 <translation id="4905614135390995787">Le raccourci permettant d'activer ou de désactiver le mode Contraste élevé a été modifié. Veuillez utiliser "<ph name="NEW_SHORTCUT" />" au lieu de "<ph name="OLD_SHORTCUT" />".</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Paramètres d'accessibilité</translation>
 <translation id="5313326810920013265">Paramètres Bluetooth</translation>
 <translation id="5331975486040154427">Appareil USB de type C (port situé sur la gauche de l'appareil, à l'arrière)</translation>
+<translation id="5379115545237091094">Trop de tentatives</translation>
 <translation id="5397578532367286026">Le gestionnaire (<ph name="MANAGER_EMAIL" />) peut consulter les actions effectuées cet utilisateur, ainsi que son historique, sur chrome.com.</translation>
 <translation id="5430931332414098647">Partage de connexion instantané</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Redémarrer</translation>
 <translation id="5901316534475909376">Maj+Échap</translation>
 <translation id="5911533659001334206">Visionneuse de raccourcis</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Activé</translation>
 <translation id="592343074608792716">Ce Chromebook et votre téléphone seront associés automatiquement</translation>
 <translation id="5947494881799873997">Rétablir</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Démarrer</translation>
 <translation id="6981982820502123353">Accessibilité</translation>
 <translation id="698231206551913481">L'ensemble des données locales et des fichiers associés à cet utilisateur seront définitivement supprimés en même temps que ce dernier.</translation>
+<translation id="7007100238996585961">Réponse sur un autre appareil…</translation>
 <translation id="7015766095477679451">Revenez à <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Quitter la session</translation>
 <translation id="7037152028959403492">Vous avez utilisé le raccourci du contraste élevé. Voulez-vous l'activer ?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">La connexion réseau a été établie</translation>
 <translation id="742594950370306541">La caméra est en cours d'utilisation.</translation>
 <translation id="743058460480092004">La caméra et le micro sont en cours d'utilisation.</translation>
+<translation id="7497767806359279797">Choisir la langue et le clavier</translation>
 <translation id="7510334386202674593">Ctrl+Maj+L</translation>
 <translation id="7526573455193969409">Il est possible que le réseau soit surveillé</translation>
 <translation id="7536035074519304529">Adresse IP : <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Braille et ChromeVox activés</translation>
 <translation id="7593891976182323525">Recherche ou Maj</translation>
 <translation id="7604942372593434070">Accède à votre activité de navigation</translation>
+<translation id="7642778300616172920">Masquer le contenu sensible</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (propriétaire)</translation>
 <translation id="7647488630410863958">Déverrouiller l'appareil pour consulter vos notifications</translation>
 <translation id="7649070708921625228">Aide</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Connexion à <ph name="NETWORK_NAME" />…</translation>
 <translation id="7842569679327885685">Avertissement : Fonctionnalité expérimentale</translation>
 <translation id="7846634333498149051">Clavier</translation>
+<translation id="7886277072580235377">Votre session Internet est effacée lorsque vous vous déconnectez. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Modifier les paramètres de confidentialité</translation>
 <translation id="7904094684485781019">L'administrateur de ce compte a désactivé la connexion multicompte.</translation>
 <translation id="7933084174919150729">L'Assistant Google n'est disponible que pour le profil principal.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" /> : reconnexion…</translation>
 <translation id="8513108775083588393">Rotation automatique</translation>
 <translation id="8517041960877371778">Il est possible que votre appareil <ph name="DEVICE_TYPE" /> ne se recharge pas lorsqu'il est allumé.</translation>
+<translation id="8592141010104017453">N'afficher aucune notification</translation>
 <translation id="8627191004499078455">Connecté à <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> restant(s)</translation>
 <translation id="8649101189709089199">Sélectionner pour prononcer</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index ded37b0..1e2493d02 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">इनपुट विधियों को आपका व्यवस्थापक कॉन्फ़िगर करता है.</translation>
 <translation id="1747827819627189109">ऑन-स्‍क्रीन कीबोर्ड सक्षम है</translation>
 <translation id="1761222317188459878">नेटवर्क कनेक्शन टॉगल करें. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">मेरी स्क्रीन पर क्या है?</translation>
 <translation id="1823873187264960516">ईथरनेट: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistant (सेवा लोड हो रही है...)</translation>
 <translation id="1841545962859478868">डिवाइस व्यवस्थापक इन चीज़ों की निगरानी कर सकता है:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">कनेक्शन जोड़ें</translation>
 <translation id="2961963223658824723">कुछ गड़बड़ी हो गई. कुछ सेकंड में फिर से कोशिश करें.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">सभी सूचना सामग्री दिखाएं</translation>
 <translation id="2995447421581609334">कास्ट डिवाइस दिखाएं.</translation>
 <translation id="2996462380875591307">सामग्री को बड़ा दिखाने की डॉक की गई सुविधा चालू है. उसे बंद पर टॉगल करने के लिए Ctrl+Search+D फिर से दबाएं.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" />, <ph name="DOMAIN" /> के द्वारा प्रबंधित एक सार्वजनिक सत्र है</translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">डिवाइस</translation>
 <translation id="4659419629803378708">ChromeVox सक्षम है</translation>
 <translation id="4734965478015604180">क्षैतिज</translation>
+<translation id="476166673298332917">इस डिवाइस के एडमिन के पास सभी गतिविधियों का एक्सेस है, जिनमें पासवर्ड और संचार शामिल हैं.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> के लिए पासवर्ड</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">डिसकनेक्ट करें</translation>
 <translation id="4849058404725798627">कीबोर्ड फ़ोकस वाला ऑब्जेक्ट हाइलाइट करें</translation>
 <translation id="4872237917498892622">Alt+Search या Shift</translation>
 <translation id="4890187583552566966">आपके एडमिन ने Google Assistant को बंद कर दिया है.</translation>
+<translation id="4893522937062257019">लॉक स्क्रीन पर</translation>
 <translation id="4895488851634969361">बैटरी भरी हुई है.</translation>
 <translation id="490375751687810070">लम्बवत</translation>
 <translation id="4905614135390995787">उच्च कंट्रास्ट मोड को टॉगल करने का शॉर्टकट बदल गया है. कृपया<ph name="OLD_SHORTCUT" /> के बजाय <ph name="NEW_SHORTCUT" /> का उपयोग करें.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">पहुंच-योग्यता विकल्प</translation>
 <translation id="5313326810920013265">ब्लूटूथ सेटिंग</translation>
 <translation id="5331975486040154427">USB-C डिवाइस (बायां पिछला पोर्ट)</translation>
+<translation id="5379115545237091094">कई बार कोशिश की जा चुकी है</translation>
 <translation id="5397578532367286026">chrome.com पर इस उपयोगकर्ता के उपयोग और इतिहास से जुड़ी जानकारी की प्रबंधक (<ph name="MANAGER_EMAIL" />) समीक्षा कर सकता है.</translation>
 <translation id="5430931332414098647">इंस्टैंट टेदरिंग</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">पुन: प्रारंभ करें</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">शॉर्टकट व्यूअर</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">चालू</translation>
 <translation id="592343074608792716">यह Chromebook और आपका फ़ोन अपने आप कनेक्ट हो जाएंगे</translation>
 <translation id="5947494881799873997">वापस लाएं</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">आरंभ करें</translation>
 <translation id="6981982820502123353">पहुंच क्षमता</translation>
 <translation id="698231206551913481">इस उपयोगकर्ता को हटाए जाने पर, इससे जुड़ीं सभी फ़ाइलों और स्थानीय डेटा को हमेशा के लिए मिटा दिया जाएगा.</translation>
+<translation id="7007100238996585961">दूसरे डिवाइस पर जवाब दे रही है</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> बजे फिर से देखें.</translation>
 <translation id="7029814467594812963">सत्र से बाहर निकलें</translation>
 <translation id="7037152028959403492">आपने 'हाई कंट्रास्ट' का शॉर्टकट दबाया है. क्या आप इसे चालू करना चाहते हैं?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">नेटवर्क कनेक्शन स्विच किया गया</translation>
 <translation id="742594950370306541">कैमरे का उपयोग हो रहा है.</translation>
 <translation id="743058460480092004">कैमरे और माइक्रोफ़ोन का उपयोग हो रहा है.</translation>
+<translation id="7497767806359279797">भाषा और कीवर्ड चुनें</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">नेटवर्क की निगरानी की जा सकती है</translation>
 <translation id="7536035074519304529">आईपी पता: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">ब्रेल और ChromeVox सक्षम हैं</translation>
 <translation id="7593891976182323525">Search या Shift</translation>
 <translation id="7604942372593434070">अपनी ब्राउज़िंग गतिविधि एक्सेस करें</translation>
+<translation id="7642778300616172920">संवेदनशील सामग्री छिपाएं</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (मालिक)</translation>
 <translation id="7647488630410863958">अपने नोटिफ़िकेशन देखने के लिए डिवाइस अनलॉक करें</translation>
 <translation id="7649070708921625228">सहायता</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265"><ph name="NETWORK_NAME" /> से कनेक्ट हो रहा है</translation>
 <translation id="7842569679327885685">चेतावनी: यह फ़ीचर प्रयोग के लिए है</translation>
 <translation id="7846634333498149051">कीबोर्ड</translation>
+<translation id="7886277072580235377">जब आप साइन आउट करेंगे तो आपके इंटरनेट सत्र की जानकारी हटा दी जाएगी. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">निजता-संबंधी सेटिंग में हेरफेर करें</translation>
 <translation id="7904094684485781019">इस खाते के व्यवस्थापक ने एक से ज़्यादा साइन-इन को अक्षम कर दिया है.</translation>
 <translation id="7933084174919150729">Google Assistant सिर्फ़ प्राथमिक प्रोफ़ाइल के लिए उपलब्ध है.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: पुनः कनेक्ट कर रहा है...</translation>
 <translation id="8513108775083588393">स्क्रीन का अपने आप दिशा बदलना (अॉटो-रोटेट)</translation>
 <translation id="8517041960877371778">हो सकता है आपका <ph name="DEVICE_TYPE" /> चालू होने पर चार्ज नहीं होता हो.</translation>
+<translation id="8592141010104017453">सूचनाएं बिल्कुल न दिखाएं</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" /> से कनेक्ट है</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> शेष</translation>
 <translation id="8649101189709089199">चुनें और सुनें</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index 91c60330..63d409571 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Načine unosa konfigurira administrator.</translation>
 <translation id="1747827819627189109">Tipkovnica na zaslonu omogućena je</translation>
 <translation id="1761222317188459878">Prebacivanje mrežne veze. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Što je na mojem zaslonu?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Asistent (učitavanje...)</translation>
 <translation id="1841545962859478868">Administrator uređaja može nadzirati sljedeće:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Dodaj vezu</translation>
 <translation id="2961963223658824723">Nešto nije u redu. Pokušajte ponovno za nekoliko sekundi.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Prikaži sav sadržaj obavijesti</translation>
 <translation id="2995447421581609334">Prikaz uređaja za emitiranje.</translation>
 <translation id="2996462380875591307">Usidreno je povećalo omogućeno. Ponovo pritisnite Ctrl + Search + D da biste ga isključili.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> predstavlja javnu sesiju kojom upravlja domena <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Uređaji</translation>
 <translation id="4659419629803378708">ChromeVox omogućen</translation>
 <translation id="4734965478015604180">Vodoravno</translation>
+<translation id="476166673298332917">Administrator ovog uređaja pristupio je cjelokupnoj aktivnosti, uključujući zaporke i komunikacije.</translation>
 <translation id="4776917500594043016">Zaporka za adresu <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Prekini vezu</translation>
 <translation id="4849058404725798627">Istakni objekt fokusom na tipkovnici</translation>
 <translation id="4872237917498892622">Alt + Pretraživanje ili Shift</translation>
 <translation id="4890187583552566966">Vaš je administrator onemogućio Google asistent.</translation>
+<translation id="4893522937062257019">Na zaključanom zaslonu</translation>
 <translation id="4895488851634969361">Baterija je puna.</translation>
 <translation id="490375751687810070">Okomito</translation>
 <translation id="4905614135390995787">Promijenio se prečac za uključivanje i isključivanje načina visokog kontrasta. Upotrebljavajte <ph name="NEW_SHORTCUT" /> umjesto <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Postavke pristupačnosti</translation>
 <translation id="5313326810920013265">Postavke Bluetootha</translation>
 <translation id="5331975486040154427">USB-C uređaj (stražnji lijevi priključak)</translation>
+<translation id="5379115545237091094">Previše pokušaja</translation>
 <translation id="5397578532367286026">Upravitelj (<ph name="MANAGER_EMAIL" />) može pregledavati upotrebu i povijest tog korisnika na web-lokaciji chrome.com.</translation>
 <translation id="5430931332414098647">Automatsko modemsko povezivanje</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Ponovno pokreni</translation>
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911533659001334206">Pregled prečaca</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Uključi</translation>
 <translation id="592343074608792716">Ovaj Chromebook i vaš telefon povezat će se automatski</translation>
 <translation id="5947494881799873997">Vrati</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Početak upotrebe</translation>
 <translation id="6981982820502123353">Pristupačnost</translation>
 <translation id="698231206551913481">Sve datoteke i lokalni podaci povezani s ovim korisnikom trajno će se izbrisati nakon uklanjanja korisnika.</translation>
+<translation id="7007100238996585961">Odgovor na drugom uređaju</translation>
 <translation id="7015766095477679451">Vratite se u <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Izlazak iz sesije</translation>
 <translation id="7037152028959403492">Pritisnuli ste prečac za visoki kontrast. Želite li ga uključiti?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Promijenjena je mrežna veza</translation>
 <translation id="742594950370306541">Fotoaparat je aktivan.</translation>
 <translation id="743058460480092004">Fotoaparat i mikrofon su aktivni.</translation>
+<translation id="7497767806359279797">Odaberite jezik i tipkovnicu</translation>
 <translation id="7510334386202674593">Ctrl + Shift + L</translation>
 <translation id="7526573455193969409">Mreža se možda nadzire</translation>
 <translation id="7536035074519304529">IP adresa: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Brajica i ChromeVox omogućeni</translation>
 <translation id="7593891976182323525">Pretraživanje ili Shift</translation>
 <translation id="7604942372593434070">Pristup aktivnosti pregledavanja</translation>
+<translation id="7642778300616172920">Sakrij osjetljiv sadržaj</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (vlasnik)</translation>
 <translation id="7647488630410863958">Otključajte uređaj da biste vidjeli obavijesti</translation>
 <translation id="7649070708921625228">Pomoć</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Povezivanje s mrežom <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Upozorenje: eksperimentalna značajka</translation>
 <translation id="7846634333498149051">Tipkovnica</translation>
+<translation id="7886277072580235377">Vaša će se internetska sesija izbrisati kada se odjavite. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">rukovati postavkama koje se odnose na privatnost</translation>
 <translation id="7904094684485781019">Administrator ovog računa onemogućio je višestruku prijavu.</translation>
 <translation id="7933084174919150729">Google asistent dostupan je samo za primarni profil.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: ponovno povezivanje...</translation>
 <translation id="8513108775083588393">Automatsko zakretanje</translation>
 <translation id="8517041960877371778">Uređaj <ph name="DEVICE_TYPE" /> možda se neće puniti dok je uključen.</translation>
+<translation id="8592141010104017453">Uopće ne prikazuj obavijesti</translation>
 <translation id="8627191004499078455">Povezano s uređajem <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Preostalo <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Odabir za govor</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index ff7102dd..b2a7ce2 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">A rendszergazda állította be a beviteli módszereket.</translation>
 <translation id="1747827819627189109">Képernyő-billentyűzet bekapcsolva</translation>
 <translation id="1761222317188459878">Hálózati kapcsolat ki- és bekapcsolása. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Mi van a képernyőn?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Segéd (betöltés…)</translation>
 <translation id="1841545962859478868">Az eszköz rendszergazdája figyelheti a következőket:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Kapcsolat hozzáadása</translation>
 <translation id="2961963223658824723">Valami nem sikerült. Próbálja újra néhány másodperc múlva.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Az értesítések teljes tartalma jelenjen meg</translation>
 <translation id="2995447421581609334">Cast-eszközök megjelenítése.</translation>
 <translation id="2996462380875591307">Dokkolt nagyító bekapcsolva. A kikapcsoláshoz nyomja le ismét a Ctrl+Keresés+D billentyűparancsot.</translation>
 <translation id="2999742336789313416">A(z) <ph name="DISPLAY_NAME" /> egy <ph name="DOMAIN" /> által kezelt nyilvános munkamenet</translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Eszközök</translation>
 <translation id="4659419629803378708">ChromeVox bekapcsolva</translation>
 <translation id="4734965478015604180">Vízszintes</translation>
+<translation id="476166673298332917">Az eszköz rendszergazdája hozzáfér az összes tevékenységhez, mindennemű kommunikációhoz és a jelszavakhoz.</translation>
 <translation id="4776917500594043016">A(z) <ph name="USER_EMAIL_ADDRESS" /> fiókhoz tartozó jelszó</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Kapcsolat bontása</translation>
 <translation id="4849058404725798627">Objektum kiemelése billentyűzetfókusszal</translation>
 <translation id="4872237917498892622">Alt + Keresés vagy Shift</translation>
 <translation id="4890187583552566966">A rendszergazda letiltotta a Google Segédet.</translation>
+<translation id="4893522937062257019">A lezárási képernyőn</translation>
 <translation id="4895488851634969361">Az akkumulátor feltöltve.</translation>
 <translation id="490375751687810070">Függőleges</translation>
 <translation id="4905614135390995787">Módosult a nagy kontrasztú mód billentyűparancsa. Használja a(z) <ph name="NEW_SHORTCUT" /> billentyűparancsot a(z) <ph name="OLD_SHORTCUT" /> helyett.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Kisegítő beállítások</translation>
 <translation id="5313326810920013265">Bluetooth-beállítások</translation>
 <translation id="5331975486040154427">C típusú USB-vel kompatibilis eszköz (bal hátsó port)</translation>
+<translation id="5379115545237091094">Túl sok próbálkozás</translation>
 <translation id="5397578532367286026">A felhasználó használati adatait és előzményeit a kezelő (<ph name="MANAGER_EMAIL" />) a chrome.com webhelyen tekintheti meg.</translation>
 <translation id="5430931332414098647">Azonnali internetmegosztás</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Újraindítás</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Billentyűparancs-megjelenítő</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Be</translation>
 <translation id="592343074608792716">A Chromebook és a telefon automatikusan csatlakozik majd</translation>
 <translation id="5947494881799873997">Visszavonás</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Első lépések</translation>
 <translation id="6981982820502123353">Kisegítő lehetőségek</translation>
 <translation id="698231206551913481">A felhasználó eltávolításakor az összes hozzá tartozó fájl és helyi adat is véglegesen törlődik.</translation>
+<translation id="7007100238996585961">Válasz másik eszközön</translation>
 <translation id="7015766095477679451">Térjen vissza ekkor: <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Kilépés a munkamenetből</translation>
 <translation id="7037152028959403492">Lenyomta a nagy kontraszt billentyűparancsát. Bekapcsolja a funkciót?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">A rendszer hálózati kapcsolatot váltott</translation>
 <translation id="742594950370306541">A kamera épp használatban van.</translation>
 <translation id="743058460480092004">A kamera és a mikrofon épp használatban van.</translation>
+<translation id="7497767806359279797">Nyelv és billentyűzet kiválasztása</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Elképzelhető, hogy figyelik a hálózatot</translation>
 <translation id="7536035074519304529">IP-cím: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Braille és ChromeVox bekapcsolva</translation>
 <translation id="7593891976182323525">Keresés vagy Shift</translation>
 <translation id="7604942372593434070">A böngészési tevékenység elérése</translation>
+<translation id="7642778300616172920">Bizalmas tartalom elrejtése</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (tulajdonos)</translation>
 <translation id="7647488630410863958">Az eszköz zárolásának feloldása az értesítések megtekintéséhez</translation>
 <translation id="7649070708921625228">Súgó</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Csatlakozás a(z) <ph name="NETWORK_NAME" /> hálózathoz</translation>
 <translation id="7842569679327885685">Figyelem! Kísérleti funkció</translation>
 <translation id="7846634333498149051">Billentyűzet</translation>
+<translation id="7886277072580235377">Kijelentkezés után az internetes munkamenet törlődik. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Adatvédelemmel kapcsolatos beállítások módosítása</translation>
 <translation id="7904094684485781019">A fiók rendszergazdája letiltotta a többfiókos bejelentkezést.</translation>
 <translation id="7933084174919150729">A Google Segéd csak az elsődleges profilhoz áll rendelkezésre.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Újracsatlakozás…</translation>
 <translation id="8513108775083588393">Automatikus forgatás</translation>
 <translation id="8517041960877371778">Előfordulhat, hogy a(z) <ph name="DEVICE_TYPE" /> nem töltődik, amíg be van kapcsolva.</translation>
+<translation id="8592141010104017453">Semmilyen értesítés ne jelenjen meg</translation>
 <translation id="8627191004499078455">Csatlakozva a(z) <ph name="DEVICE_NAME" /> eszközhöz</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> maradt</translation>
 <translation id="8649101189709089199">Felolvasás</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index eba8fd2..91d6da5 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Metode masukan dikonfigurasi oleh administrator.</translation>
 <translation id="1747827819627189109">Keyboard di layar diaktifkan</translation>
 <translation id="1761222317188459878">Alihkan sambungan jaringan. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Konten apa yang ada di layar saya?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Asisten (sedang dimuat...)</translation>
 <translation id="1841545962859478868">Admin perangkat dapat memantau hal-hal berikut:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Tambahkan koneksi</translation>
 <translation id="2961963223658824723">Terjadi kesalahan. Coba lagi dalam beberapa detik.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Tampilkan semua konten notifikasi</translation>
 <translation id="2995447421581609334">Tampilkan perangkat transmisi.</translation>
 <translation id="2996462380875591307">Kaca Pembesar yang Dipasang ke Dok diaktifkan. Tekan Ctrl+Search+D lagi untuk menonaktifkannya.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> adalah sesi publik yang dikelola oleh <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Perangkat</translation>
 <translation id="4659419629803378708">ChromeVox diaktifkan</translation>
 <translation id="4734965478015604180">Horizontal</translation>
+<translation id="476166673298332917">Administrator perangkat ini memiliki akses ke semua aktivitas, termasuk sandi dan komunikasi.</translation>
 <translation id="4776917500594043016">Sandi untuk <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Putuskan</translation>
 <translation id="4849058404725798627">Sorot objek dengan fokus keyboard</translation>
 <translation id="4872237917498892622">Alt+Telusuri atau Shift</translation>
 <translation id="4890187583552566966">Asisten Google dinonaktifkan oleh administrator</translation>
+<translation id="4893522937062257019">Di layar kunci</translation>
 <translation id="4895488851634969361">Baterai penuh.</translation>
 <translation id="490375751687810070">Vertikal</translation>
 <translation id="4905614135390995787">Pintasan untuk beralih Mode Kontras Tinggi telah berubah. Gunakan <ph name="NEW_SHORTCUT" /> sebagai ganti <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Setelan aksesibilitas</translation>
 <translation id="5313326810920013265">Setelan bluetooth</translation>
 <translation id="5331975486040154427">Perangkat USB-C (port belakang sebelah kiri)</translation>
+<translation id="5379115545237091094">Terlalu sering mencoba</translation>
 <translation id="5397578532367286026">Penggunaan dan histori pengguna ini dapat ditinjau oleh pengelola (<ph name="MANAGER_EMAIL" />) di chrome.com.</translation>
 <translation id="5430931332414098647">Tethering Instan</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Mulai Ulang</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Shortcut viewer</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Aktif</translation>
 <translation id="592343074608792716">Chromebook ini dan ponsel akan terhubung otomatis</translation>
 <translation id="5947494881799873997">Kembalikan</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Mulai</translation>
 <translation id="6981982820502123353">Aksesibilitas</translation>
 <translation id="698231206551913481">Semua file dan data lokal yang dikaitkan ke pengguna ini akan dihapus secara permanen setelah pengguna ini dihapus.</translation>
+<translation id="7007100238996585961">Menjawab di perangkat lain</translation>
 <translation id="7015766095477679451">Coba lagi pukul <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Keluar dari sesi</translation>
 <translation id="7037152028959403492">Anda menekan pintasan untuk kontras tinggi. Ingin mengaktifkannya?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Koneksi jaringan dialihkan</translation>
 <translation id="742594950370306541">Kamera sedang digunakan.</translation>
 <translation id="743058460480092004">Kamera dan mikrofon sedang digunakan.</translation>
+<translation id="7497767806359279797">Pilih bahasa dan keyboard</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Jaringan mungkin dipantau</translation>
 <translation id="7536035074519304529">Alamat IP: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Braille dan ChromeVox diaktifkan</translation>
 <translation id="7593891976182323525">Telusuri atau Shift</translation>
 <translation id="7604942372593434070">Mengakses aktivitas akses internet Anda</translation>
+<translation id="7642778300616172920">Sembunyikan konten sensitif</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (pemilik)</translation>
 <translation id="7647488630410863958">Buka kunci perangkat untuk melihat notifikasi</translation>
 <translation id="7649070708921625228">Bantuan</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Menyambungkan ke <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Peringatan: Fitur eksperimental</translation>
 <translation id="7846634333498149051">Keyboard</translation>
+<translation id="7886277072580235377">Sesi internet Anda akan dihapus saat Anda logout. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Memanipulasi setelan yang terkait privasi</translation>
 <translation id="7904094684485781019">Administrator untuk akun ini menonaktifkan fitur masuk banyak akun.</translation>
 <translation id="7933084174919150729">Asisten Google hanya tersedia untuk profil utama.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Menyambungkan lagi...</translation>
 <translation id="8513108775083588393">Putar otomatis</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> Anda mungkin tidak diisi daya saat dinyalakan.</translation>
+<translation id="8592141010104017453">Jangan tampilkan notifikasi sama sekali.</translation>
 <translation id="8627191004499078455">Tersambung ke <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Sisa <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Klik untuk Diucapkan</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index e9b1ec6..86ced0f 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">I metodi di immissione vengono configurati dall'amministratore.</translation>
 <translation id="1747827819627189109">Tastiera sullo schermo attiva</translation>
 <translation id="1761222317188459878">Attiva/disattiva connessione di rete. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Cosa c'è sul mio schermo?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistente (caricamento…)</translation>
 <translation id="1841545962859478868">L'amministratore del dispositivo potrebbe monitorare i seguenti elementi:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Aggiungi connessione</translation>
 <translation id="2961963223658824723">Si è verificato un problema. Riprova tra qualche secondo.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Mostra tutti i contenuti della notifica</translation>
 <translation id="2995447421581609334">Mostra dispositivi di trasmissione.</translation>
 <translation id="2996462380875591307">Lente d'ingrandimento ancorata attivata. Premi di nuovo CTRL + tasto per la ricerca + D per disattivarla.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> è una sessione pubblica gestita da <ph name="DOMAIN" /></translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Dispositivi</translation>
 <translation id="4659419629803378708">ChromeVox attivato</translation>
 <translation id="4734965478015604180">Orizzontale</translation>
+<translation id="476166673298332917">L'amministratore di questo dispositivo ha accesso a tutte le attività, comprese password e comunicazioni.</translation>
 <translation id="4776917500594043016">Password per <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">ricerca</translation>
 <translation id="4804818685124855865">Disconnetti</translation>
 <translation id="4849058404725798627">Evidenzia oggetto con stato attivo della tastiera</translation>
 <translation id="4872237917498892622">Alt+tasto per la ricerca o Maiusc</translation>
 <translation id="4890187583552566966">L'Assistente Google è stato disattivato dall'amministratore.</translation>
+<translation id="4893522937062257019">Nella schermata di blocco</translation>
 <translation id="4895488851634969361">La batteria è carica.</translation>
 <translation id="490375751687810070">Verticale</translation>
 <translation id="4905614135390995787">La scorciatoia per attivare/disattivare la modalità ad alto contrasto è cambiata. Usa <ph name="NEW_SHORTCUT" /> anziché <ph name="OLD_SHORTCUT" />.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Impostazioni di accessibilità</translation>
 <translation id="5313326810920013265">Impostazioni Bluetooth</translation>
 <translation id="5331975486040154427">Dispositivo USB-C (porta posteriore sinistra)</translation>
+<translation id="5379115545237091094">Troppi tentativi</translation>
 <translation id="5397578532367286026">L'utilizzo e la cronologia di questo utente possono essere esaminati dal gestore (<ph name="MANAGER_EMAIL" />) su chrome.com.</translation>
 <translation id="5430931332414098647">Tethering istantaneo</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Riavvia</translation>
 <translation id="5901316534475909376">MAIUSC+ESC</translation>
 <translation id="5911533659001334206">Visualizzatore scorciatoie</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">On</translation>
 <translation id="592343074608792716">Questo Chromebook e il telefono si connetteranno automaticamente</translation>
 <translation id="5947494881799873997">Ripristina</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Inizia</translation>
 <translation id="6981982820502123353">Accessibilità</translation>
 <translation id="698231206551913481">Tutti i file e i dati locali associati a questo utente verranno eliminati definitivamente in seguito alla rimozione dell'utente.</translation>
+<translation id="7007100238996585961">Risposta su un altro dispositivo</translation>
 <translation id="7015766095477679451">Ritorna alle ore <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Esci da sessione</translation>
 <translation id="7037152028959403492">Hai premuto la scorciatoia per l'alto contrasto. Vuoi attivarlo?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">Connessione di rete automatica</translation>
 <translation id="742594950370306541">La videocamera è in uso.</translation>
 <translation id="743058460480092004">Videocamera e microfono sono in uso.</translation>
+<translation id="7497767806359279797">Scegli la lingua e la tastiera</translation>
 <translation id="7510334386202674593">CTRL+MAIUSC+L</translation>
 <translation id="7526573455193969409">La rete potrebbe essere monitorata</translation>
 <translation id="7536035074519304529">Indirizzo IP: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Braille e ChromeVox attivati</translation>
 <translation id="7593891976182323525">Tasto per la ricerca o Maiusc</translation>
 <translation id="7604942372593434070">Accedi alla tua attività di navigazione</translation>
+<translation id="7642778300616172920">Nascondi contenuti sensibili</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (proprietario)</translation>
 <translation id="7647488630410863958">Sblocca il dispositivo per visualizzare le notifiche</translation>
 <translation id="7649070708921625228">Guida</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Connessione alla rete <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Avviso: funzione sperimentale</translation>
 <translation id="7846634333498149051">Tastiera</translation>
+<translation id="7886277072580235377">La sessione verrà cancellata al momento dell'uscita dall'account. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Modifica delle impostazioni relative alla privacy</translation>
 <translation id="7904094684485781019">L'amministratore di questo account ha bloccato l'accesso simultaneo.</translation>
 <translation id="7933084174919150729">L'Assistente Google è disponibile solo per il profilo principale.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: riconnessione in corso...</translation>
 <translation id="8513108775083588393">Rotazione automatica</translation>
 <translation id="8517041960877371778">Il tuo dispositivo <ph name="DEVICE_TYPE" /> potrebbe non caricarsi mentre è acceso.</translation>
+<translation id="8592141010104017453">Non visualizzare del tutto le notifiche</translation>
 <translation id="8627191004499078455">Connesso a <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> rimanente</translation>
 <translation id="8649101189709089199">Seleziona per ascoltare</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index ff8a7380..353dc1a8 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">מנהל המערכת שלך מגדיר את שיטות הקלט.</translation>
 <translation id="1747827819627189109">המקלדת שמופיעה במסך מופעלת</translation>
 <translation id="1761222317188459878">הפעלה או השבתה של החיבור לרשת. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">מה מופיע במסך שלי?</translation>
 <translation id="1823873187264960516">אתרנט: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">‏Assistant (בטעינה...)</translation>
 <translation id="1841545962859478868">ייתכן שמנהל המכשיר עוקב אחרי:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">הוסף חיבור</translation>
 <translation id="2961963223658824723">משהו השתבש. אפשר לנסות שוב בעוד כמה שניות.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">הצגת כל תוכן ההודעות</translation>
 <translation id="2995447421581609334">‏צפייה במכשירי Cast.</translation>
 <translation id="2996462380875591307">‏הזכוכית המגדלת במצב עגינה הופעלה. כדי לכבות אותה, יש להקיש שוב על Ctrl+Search+D.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> היא הפעלה ציבורית המנוהלת על ידי <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">מכשירים</translation>
 <translation id="4659419629803378708">‏ChromeVox הופעל</translation>
 <translation id="4734965478015604180">אופקי</translation>
+<translation id="476166673298332917">למנהל המכשיר הזה יש גישה אל כל הפעילות, כולל סיסמאות ותקשורת.</translation>
 <translation id="4776917500594043016">סיסמה עבור <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">Search</translation>
 <translation id="4804818685124855865">נתק</translation>
 <translation id="4849058404725798627">הדגשה של האובייקט במיקוד המקלדת</translation>
 <translation id="4872237917498892622">‏Alt + חיפוש או Shift</translation>
 <translation id="4890187583552566966">‏Google Assistant הושבת על-ידי מנהל המערכת.</translation>
+<translation id="4893522937062257019">במסך הנעילה</translation>
 <translation id="4895488851634969361">הסוללה טעונה במלואה.</translation>
 <translation id="490375751687810070">אנכי</translation>
 <translation id="4905614135390995787">מקש הקיצור להפעלה או כיבוי של מצב ניגודיות גבוהה השתנה. השתמש ב-<ph name="NEW_SHORTCUT" /> במקום ב-<ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">הגדרות נגישות</translation>
 <translation id="5313326810920013265">‏הגדרות Bluetooth</translation>
 <translation id="5331975486040154427">‏מכשיר עם יציאת USB-C (יציאה שמאלית-אחורית)</translation>
+<translation id="5379115545237091094">יותר מדי ניסיונות</translation>
 <translation id="5397578532367286026">‏המנהל (<ph name="MANAGER_EMAIL" />) יכול לבדוק את השימוש וההיסטוריה של משתמש זה ב-chrome.com.</translation>
 <translation id="5430931332414098647">שיתוף אינטרנט מיידי בין ניידים</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">הפעל מחדש</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">מציג קיצורי הדרך</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">פועל</translation>
 <translation id="592343074608792716">‏ה-Chromebook הזה והטלפון שלך יתחברו באופן אוטומטי</translation>
 <translation id="5947494881799873997">חזרה לגרסה הקודמת</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">תחילת העבודה</translation>
 <translation id="6981982820502123353">נגישות</translation>
 <translation id="698231206551913481">כל הקבצים והנתונים המשויכים למשתמש זה יימחקו לצמיתות ברגע שהמשתמש יוסר.</translation>
+<translation id="7007100238996585961">מענה במכשיר אחר</translation>
 <translation id="7015766095477679451">אפשר לחזור בשעה <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">צא מההפעלה</translation>
 <translation id="7037152028959403492">לחצת על מקש הקיצור של ניגודיות גבוהה. להפעיל אותה?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">חיבור הרשת הוחלף</translation>
 <translation id="742594950370306541">המצלמה נמצאת בשימוש.</translation>
 <translation id="743058460480092004">המצלמה והמיקרופון נמצאים בשימוש.</translation>
+<translation id="7497767806359279797">בחירת שפה ומקלדת</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">ייתכן שהרשת מנוטרת</translation>
 <translation id="7536035074519304529">‏כתובת IP: <ph name="ADDRESS" /></translation>
@@ -363,6 +371,7 @@
 <translation id="7569509451529460200">‏כתב ברייל ו-ChromeVox מופעלים</translation>
 <translation id="7593891976182323525">‏חיפוש או Shift</translation>
 <translation id="7604942372593434070">כניסה לפעילות הגלישה שלך</translation>
+<translation id="7642778300616172920">הסתרה של תוכן רגיש</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (בעלים)</translation>
 <translation id="7647488630410863958">בטל את נעילת המכשיר כדי להציג את ההודעות</translation>
 <translation id="7649070708921625228">עזרה</translation>
@@ -378,6 +387,7 @@
 <translation id="7842211907556571265">המערכת מתחברת אל <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">אזהרה: תכונה ניסיונית</translation>
 <translation id="7846634333498149051">מקלדת</translation>
+<translation id="7886277072580235377">סשן הגלישה שלך יימחק אחרי היציאה. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">לשנות הגדרות הקשורות לפרטיות</translation>
 <translation id="7904094684485781019">מנהל החשבון הזה אסר על כניסה עם מספר חשבונות.</translation>
 <translation id="7933084174919150729">‏Google Assistant זמין רק לפרופיל ראשי.</translation>
@@ -418,6 +428,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: מתחבר מחדש...</translation>
 <translation id="8513108775083588393">סיבוב אוטומטי</translation>
 <translation id="8517041960877371778">ייתכן שה-<ph name="DEVICE_TYPE" /> לא ייטען כשהוא פועל.</translation>
+<translation id="8592141010104017453">לא להציג הודעות</translation>
 <translation id="8627191004499078455">יש חיבור אל <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">שיעור טעינה נותר - <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">הקראה</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index 104e881..395a26d 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">入力方法は管理者によって設定されています。</translation>
 <translation id="1747827819627189109">画面キーボードが有効です</translation>
 <translation id="1761222317188459878">ネットワーク接続を切り替えます。<ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">画面上のアイテムを検索します</translation>
 <translation id="1823873187264960516">イーサネット: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">アシスタント(読み込み中...)</translation>
 <translation id="1841545962859478868">デバイス管理者が次の情報を監視している可能性があります。</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">接続を追加</translation>
 <translation id="2961963223658824723">エラーが発生しました。数秒後にもう一度お試しください。</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">すべての通知内容を表示する</translation>
 <translation id="2995447421581609334">キャスト デバイスを表示します。</translation>
 <translation id="2996462380875591307">拡大鏡(ドッキング)がオンになっています。オフにするには Ctrl+検索+D キーをもう一度押します。</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> は <ph name="DOMAIN" /> が管理する公開セッションです</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">デバイス</translation>
 <translation id="4659419629803378708">ChromeVox を有効にしました</translation>
 <translation id="4734965478015604180">横</translation>
+<translation id="476166673298332917">この端末の管理者は、パスワードや通信内容を含むすべてのアクティビティにアクセスできます。</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> のパスワード</translation>
 <translation id="479989351350248267">検索</translation>
 <translation id="4804818685124855865">切断</translation>
 <translation id="4849058404725798627">キーボードのフォーカスがある項目をハイライト表示する</translation>
 <translation id="4872237917498892622">Alt+ 検索/Shift</translation>
 <translation id="4890187583552566966">Google アシスタントは管理者によって無効にされています。</translation>
+<translation id="4893522937062257019">ロック画面</translation>
 <translation id="4895488851634969361">バッテリー残量: 満。</translation>
 <translation id="490375751687810070">縦</translation>
 <translation id="4905614135390995787">ハイ コントラスト モードを切り替えるショートカットが変わりました。これまでの <ph name="OLD_SHORTCUT" /> キーではなく <ph name="NEW_SHORTCUT" /> キーを使用してください。</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">ユーザー補助の設定</translation>
 <translation id="5313326810920013265">Bluetooth 設定</translation>
 <translation id="5331975486040154427">USB-C デバイス(左奥のポート)</translation>
+<translation id="5379115545237091094">試行回数が上限を超えました</translation>
 <translation id="5397578532367286026">このユーザーの利用状況や履歴は、chrome.com で管理者(<ph name="MANAGER_EMAIL" />)によって確認されます。</translation>
 <translation id="5430931332414098647">インスタント テザリング</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">再起動</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">ショートカット ビューア</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" />(<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">オン</translation>
 <translation id="592343074608792716">この Chromebook とお使いのスマートフォンは自動的に接続されます</translation>
 <translation id="5947494881799873997">元に戻す</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">開始する</translation>
 <translation id="6981982820502123353">ユーザー補助機能</translation>
 <translation id="698231206551913481">このユーザーを削除すると、このユーザーに関連付けられているファイルとローカルデータもすべて完全に削除されます。</translation>
+<translation id="7007100238996585961">別の端末で応答があります</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> になったら利用を再開できます。</translation>
 <translation id="7029814467594812963">セッションを終了</translation>
 <translation id="7037152028959403492">ハイ コントラストのショートカットを押しました。この機能をオンにしますか?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">ネットワーク接続が切り替えられました</translation>
 <translation id="742594950370306541">カメラが使用中です。</translation>
 <translation id="743058460480092004">カメラとマイクが使用中です。</translation>
+<translation id="7497767806359279797">言語とキーボードを選択</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">ネットワークが監視されている可能性があります</translation>
 <translation id="7536035074519304529">IP アドレス: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Braille と ChromeVox が有効になっています</translation>
 <translation id="7593891976182323525">検索/Shift</translation>
 <translation id="7604942372593434070">閲覧アクティビティへのアクセス</translation>
+<translation id="7642778300616172920">プライベートな内容を表示しない</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" />(所有者)</translation>
 <translation id="7647488630410863958">デバイスのロックを解除して通知を確認してください</translation>
 <translation id="7649070708921625228">ヘルプ</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265"><ph name="NETWORK_NAME" /> に接続しています</translation>
 <translation id="7842569679327885685">警告: 試験運用版の機能</translation>
 <translation id="7846634333498149051">キーボード</translation>
+<translation id="7886277072580235377">ログアウトするとインターネット セッションは終了します。<ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">プライバシー関連設定を操作する</translation>
 <translation id="7904094684485781019">このアカウントの管理者がマルチ ログインを許可していません。</translation>
 <translation id="7933084174919150729">Google アシスタントはメインのプロフィールでのみご利用いただけます。</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: 再接続しています...</translation>
 <translation id="8513108775083588393">自動回転</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> は電源がオンのままでは充電できない可能性があります。</translation>
+<translation id="8592141010104017453">通知を一切表示しない</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" /> と接続しました</translation>
 <translation id="8639760480004882931">バッテリー残量: <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">選択して読み上げ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index fd47427..9f56f77c 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">입력 방법은 관리자가 설정합니다.</translation>
 <translation id="1747827819627189109">터치 키보드 사용 설정됨</translation>
 <translation id="1761222317188459878">네트워크 연결을 전환합니다. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">화면에 표시된 내용 찾아보기</translation>
 <translation id="1823873187264960516">이더넷: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">어시스턴트(로드 중...)</translation>
 <translation id="1841545962859478868">기기 관리자가 다음을 모니터링할 수 있습니다.</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">연결 추가</translation>
 <translation id="2961963223658824723">문제가 발생했습니다. 잠시 후 다시 시도해 주세요.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">모든 알림 내용 표시</translation>
 <translation id="2995447421581609334">전송 기기를 표시합니다.</translation>
 <translation id="2996462380875591307">고정 돋보기가 사용 설정되었습니다. 사용 중지하려면 다시 Ctrl+Search+D를 누르세요.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" />은(는) <ph name="DOMAIN" />에서 관리하는 공개 세션입니다.</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">기기</translation>
 <translation id="4659419629803378708">ChromeVox가 사용 설정됨</translation>
 <translation id="4734965478015604180">가로</translation>
+<translation id="476166673298332917">이 기기의 관리자가 비밀번호 및 커뮤니케이션을 비롯한 모든 활동에 액세스할 수 있습니다.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" />의 비밀번호</translation>
 <translation id="479989351350248267">검색</translation>
 <translation id="4804818685124855865">연결 해제</translation>
 <translation id="4849058404725798627">키보드 포커스로 개체 강조표시</translation>
 <translation id="4872237917498892622">Alt+검색 또는 Shift 키</translation>
 <translation id="4890187583552566966">관리자가 Google 어시스턴트를 사용 중지했습니다.</translation>
+<translation id="4893522937062257019">잠금 화면에서</translation>
 <translation id="4895488851634969361">배터리 충전이 완료되었습니다.</translation>
 <translation id="490375751687810070">세로</translation>
 <translation id="4905614135390995787">고대비 모드 전환 단축키가 변경되었습니다. <ph name="OLD_SHORTCUT" /> 대신 <ph name="NEW_SHORTCUT" />을(를) 사용하세요.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">접근성 설정</translation>
 <translation id="5313326810920013265">블루투스 설정</translation>
 <translation id="5331975486040154427">USB-C 기기(좌측 후면 포트)</translation>
+<translation id="5379115545237091094">시도 횟수가 너무 많음</translation>
 <translation id="5397578532367286026">관리자(<ph name="MANAGER_EMAIL" />)는 chrome.com에서 해당 사용자의 사용 및 방문 기록을 검토할 수 있습니다.</translation>
 <translation id="5430931332414098647">인스턴트 테더링</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">다시 시작</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">바로가기 뷰어</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" />(<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">사용</translation>
 <translation id="592343074608792716">Chromebook과 휴대전화가 자동으로 연결됩니다.</translation>
 <translation id="5947494881799873997">되돌리기</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">시작하기</translation>
 <translation id="6981982820502123353">접근성</translation>
 <translation id="698231206551913481">이 사용자를 제거하면 해당 사용자와 연결되어 있는 모든 파일 및 로컬 데이터가 영구적으로 삭제됩니다.</translation>
+<translation id="7007100238996585961">다른 기기에서 응답 중</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" />에 다시 사용해 주세요.</translation>
 <translation id="7029814467594812963">세션 종료</translation>
 <translation id="7037152028959403492">고대비 단축키를 누르셨습니다. 사용 설정할까요?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">네트워크 연결 전환됨</translation>
 <translation id="742594950370306541">카메라가 사용 중입니다.</translation>
 <translation id="743058460480092004">카메라와 마이크가 사용 중입니다.</translation>
+<translation id="7497767806359279797">언어 및 키보드 선택</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">네트워크가 모니터링될 수 있음</translation>
 <translation id="7536035074519304529">IP 주소: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">점자와 ChromeVox가 사용 설정되었습니다.</translation>
 <translation id="7593891976182323525">검색 또는 Shift 키</translation>
 <translation id="7604942372593434070">탐색 활동에 액세스</translation>
+<translation id="7642778300616172920">민감한 내용 숨기기</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" />(소유자)</translation>
 <translation id="7647488630410863958">기기를 잠금 해제하여 알림 보기</translation>
 <translation id="7649070708921625228">도움말</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265"><ph name="NETWORK_NAME" />에 연결 중</translation>
 <translation id="7842569679327885685">경고: 실험 기능</translation>
 <translation id="7846634333498149051">키보드</translation>
+<translation id="7886277072580235377">로그아웃하면 인터넷 세션이 삭제됩니다. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">개인정보 보호 관련 설정 조정</translation>
 <translation id="7904094684485781019">이 계정의 관리자가 멀티 로그인을 허용하지 않습니다.</translation>
 <translation id="7933084174919150729">Google 어시스턴트는 기본 프로필에서만 사용할 수 있습니다.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: 다시 연결하는 중...</translation>
 <translation id="8513108775083588393">자동 회전</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" />이(가) 켜져 있는 동안에는 충전되지 않을 수 있습니다.</translation>
+<translation id="8592141010104017453">알림 표시 안함</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" />에 연결됨</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> 남음</translation>
 <translation id="8649101189709089199">텍스트 읽어주기</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index d17960aa..87225d06 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Įvesties metodus konfigūruoja jūsų administratorius.</translation>
 <translation id="1747827819627189109">Ekrano klaviatūra įgalinta</translation>
 <translation id="1761222317188459878">Perjungti tinklo ryšį. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Kas mano ekrane?</translation>
 <translation id="1823873187264960516">Eternetas: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Padėjėjas (įkeliama...)</translation>
 <translation id="1841545962859478868">Įrenginio administratorius gali stebėti:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Pridėti ryšį</translation>
 <translation id="2961963223658824723">Deja, įvyko klaida. Bandykite dar kartą po kelių sekundžių.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Rodyti visą pranešimo turinį</translation>
 <translation id="2995447421581609334">Rodyti perdavimo įrenginius.</translation>
 <translation id="2996462380875591307">Prie doko prijungtas didintuvas įgalintas. Dar kartą paspauskite „Ctrl“ + paieškos klavišą + D, kad išjungtumėte režimą.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> yra vieša sesija, valdoma <ph name="DOMAIN" /></translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Įrenginiai</translation>
 <translation id="4659419629803378708">„ChromeVox“ įgalinta</translation>
 <translation id="4734965478015604180">Horizontaliai</translation>
+<translation id="476166673298332917">Šio įrenginio administratorius gali pasiekti visą veiklą, įskaitant slaptažodžius ir pranešimus.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> slaptažodis</translation>
 <translation id="479989351350248267">ieškoti</translation>
 <translation id="4804818685124855865">Atsijungti</translation>
 <translation id="4849058404725798627">Paryškinti objektą jį suaktyvinus klaviatūra</translation>
 <translation id="4872237917498892622">„Alt“ + paieškos arba antrojo lygio klavišas</translation>
 <translation id="4890187583552566966">„Google“ padėjėją išjungė administratorius.</translation>
+<translation id="4893522937062257019">Užrakinimo ekrane</translation>
 <translation id="4895488851634969361">Akumuliatorius visiškai įkrautas.</translation>
 <translation id="490375751687810070">Vertikaliai</translation>
 <translation id="4905614135390995787">Spartusis klavišas, kurį naudojant perjungiamas didelio kontrasto režimas, pakeistas. Naudokite <ph name="NEW_SHORTCUT" /> vietoj <ph name="OLD_SHORTCUT" />.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Pasiekiamumo nustatymai</translation>
 <translation id="5313326810920013265">„Bluetooth“ nustatymai</translation>
 <translation id="5331975486040154427">USB-C įrenginys (prievadas kairėje, užpakalinėje dalyje)</translation>
+<translation id="5379115545237091094">Per daug bandymų</translation>
 <translation id="5397578532367286026">Šio naudotojo naudojimo duomenis ir istoriją valdytojas (<ph name="MANAGER_EMAIL" />) gali peržiūrėti adresu chrome.com.</translation>
 <translation id="5430931332414098647">Momentinis įrenginio kaip modemo naudojimas</translation>
 <translation id="5431825016875453137">„OpenVPN“ / L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Paleisti iš naujo</translation>
 <translation id="5901316534475909376">„Shift“ + „Esc“</translation>
 <translation id="5911533659001334206">Sparčiųjų klavišų peržiūros programa</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Įjungta</translation>
 <translation id="592343074608792716">Šis „Chromebook“ ir telefonas bus susieti automatiškai</translation>
 <translation id="5947494881799873997">Grąžinti</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Darbo pradžia</translation>
 <translation id="6981982820502123353">Pritaikymas neįgaliesiems</translation>
 <translation id="698231206551913481">Visi failai ir su šiuo naudotoju susiję duomenys bus ištrinti visam laikui, kai šis naudotojas bus pašalintas.</translation>
+<translation id="7007100238996585961">Atsakoma naudojant kitą įrenginį</translation>
 <translation id="7015766095477679451">Grįžkite <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Išeiti iš sesijos</translation>
 <translation id="7037152028959403492">Paspaudėte didelio kontrasto spartųjį klavišą. Ar norite jį įjungti?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">Perjungtas tinklo ryšys</translation>
 <translation id="742594950370306541">Kamera naudojama.</translation>
 <translation id="743058460480092004">Kamera ir mikrofonas naudojami.</translation>
+<translation id="7497767806359279797">Pasirinkti kalbą ir klaviatūros išdėstymą</translation>
 <translation id="7510334386202674593">„Ctrl“ + „Shift“ + L</translation>
 <translation id="7526573455193969409">Tinklas gali būti stebimas</translation>
 <translation id="7536035074519304529">IP adresas: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Brailio rašmenys ir „ChromeVox“ įgalinti</translation>
 <translation id="7593891976182323525">Paieškos arba antrojo lygio klavišas</translation>
 <translation id="7604942372593434070">Prieiga prie jūsų naršymo veiklos</translation>
+<translation id="7642778300616172920">Slėpti neskelbtiną turinį</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (savininkas)</translation>
 <translation id="7647488630410863958">Atrakinkite įrenginį, kad galėtumėte peržiūrėti pranešimus</translation>
 <translation id="7649070708921625228">Žinynas</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Prisijungiama prie „<ph name="NETWORK_NAME" />“</translation>
 <translation id="7842569679327885685">Įspėjimas: eksperimentinė funkcija</translation>
 <translation id="7846634333498149051">Klaviatūra</translation>
+<translation id="7886277072580235377">Interneto sesijos duomenys bus išvalyti, kai atsijungsite. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Keisti privatumo nustatymus</translation>
 <translation id="7904094684485781019">Šios paskyros administratorius neleidžia naudoti kelių paskyrų.</translation>
 <translation id="7933084174919150729">„Google“ padėjėjas pasiekiamas tik pagrindiniame profilyje.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857">„<ph name="NAME" />“: prisijungiama iš naujo...</translation>
 <translation id="8513108775083588393">Automatiškai pasukti</translation>
 <translation id="8517041960877371778">„<ph name="DEVICE_TYPE" />“ gali nebūti kraunamas, kai yra įjungtas.</translation>
+<translation id="8592141010104017453">Visiškai nerodyti pranešimų</translation>
 <translation id="8627191004499078455">Prisijungta prie „<ph name="DEVICE_NAME" />“</translation>
 <translation id="8639760480004882931">Liko <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Teksto ištarimas</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb
index 35f1e0b..b3c8211 100644
--- a/ash/strings/ash_strings_lv.xtb
+++ b/ash/strings/ash_strings_lv.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Administrators konfigurē ievades metodes.</translation>
 <translation id="1747827819627189109">Ekrāna tastatūra iespējota</translation>
 <translation id="1761222317188459878">Pārslēgt tīkla savienojumu. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Kas ir redzams ekrānā?</translation>
 <translation id="1823873187264960516">Ethernet adrese: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Asistents (notiek ielāde...)</translation>
 <translation id="1841545962859478868">Ierīces administrators var uzraudzīt šo:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Pievienot savienojumu</translation>
 <translation id="2961963223658824723">Radās problēma. Pēc dažām sekundēm mēģiniet vēlreiz.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Rādīt visu paziņojumu saturu</translation>
 <translation id="2995447421581609334">Rādīt apraides ierīces</translation>
 <translation id="2996462380875591307">Dokotās lupas režīms ir iespējots. Lai to izslēgtu, nospiediet taustiņu kombināciju Ctrl+Search+D.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> ir publiska sesija, kas tiek pārvaldīta domēnā <ph name="DOMAIN" />.</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Ierīces</translation>
 <translation id="4659419629803378708">ChromeVox iespējots</translation>
 <translation id="4734965478015604180">Horizontāli</translation>
+<translation id="476166673298332917">Šīs ierīces administrators var piekļūt visām darbībām, tostarp parolēm un saziņas iespējām.</translation>
 <translation id="4776917500594043016">Parole e-pasta adresei <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">meklēt</translation>
 <translation id="4804818685124855865">Atvienot</translation>
 <translation id="4849058404725798627">Izcelt objektu ar tastatūras fokusu</translation>
 <translation id="4872237917498892622">Alt+Meklēt vai Shift</translation>
 <translation id="4890187583552566966">Jūsu administrators ir atspējojis Google asistentu.</translation>
+<translation id="4893522937062257019">Bloķēšanas ekrānā</translation>
 <translation id="4895488851634969361">Akumulators ir pilnībā uzlādēts.</translation>
 <translation id="490375751687810070">Vertikāli</translation>
 <translation id="4905614135390995787">Īsinājumtaustiņi, ar kuriem pārslēgt augsta kontrasta režīmu, ir mainījušies. Lūdzu, izmantojiet <ph name="NEW_SHORTCUT" />, nevis <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Pieejamības iestatījumi</translation>
 <translation id="5313326810920013265">Bluetooth iestatījumi</translation>
 <translation id="5331975486040154427">USB-C ierīce (pieslēgvieta kreisajā pusē aizmugurē)</translation>
+<translation id="5379115545237091094">Pārāk daudz mēģinājumu</translation>
 <translation id="5397578532367286026">Šī lietotāja datu lietojumu un vēsturi var pārvaldīt pārzinis (<ph name="MANAGER_EMAIL" />) vietnē chrome.com.</translation>
 <translation id="5430931332414098647">Tūlītēja piesaiste</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Restartēt</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Īsinājumtaustiņu skatīšana</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Iesl.</translation>
 <translation id="592343074608792716">Tiks automātiski izveidots šī Chromebook datora un jūsu tālruņa savienojums.</translation>
 <translation id="5947494881799873997">Atjaunot</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Sākt darbu</translation>
 <translation id="6981982820502123353">Pieejamība</translation>
 <translation id="698231206551913481">Visi faili un lokālie dati, kas ir saistīti ar šo lietotāju, tiks neatgriezeniski dzēsti, tiklīdz šis lietotājs tiks noņemts.</translation>
+<translation id="7007100238996585961">Tiek atbildēts citā ierīcē</translation>
 <translation id="7015766095477679451">Atgriezieties plkst. <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Iziet no sesijas</translation>
 <translation id="7037152028959403492">Jūs nospiedāt augsta kontrasta īsinājumtaustiņu. Vai vēlaties to ieslēgt?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Ieslēgts tīkla savienojums</translation>
 <translation id="742594950370306541">Kamera tiek lietota.</translation>
 <translation id="743058460480092004">Kamera un mikrofons tiek lietoti.</translation>
+<translation id="7497767806359279797">Izvēlēties valodu un tastatūru</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Var tikt pārraudzītas tīklā veiktās darbības</translation>
 <translation id="7536035074519304529">IP adrese: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Braila raksts un ChromeVox ir iespējoti</translation>
 <translation id="7593891976182323525">Meklēt vai Shift</translation>
 <translation id="7604942372593434070">Piekļuve jūsu pārlūkošanas darbībām</translation>
+<translation id="7642778300616172920">Paslēpt sensitīvu saturu</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (īpašnieks)</translation>
 <translation id="7647488630410863958">Atbloķējiet ierīci, lai skatītu paziņojumus.</translation>
 <translation id="7649070708921625228">Palīdzība</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Notiek savienojuma izveide ar tīklu <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Brīdinājums: šī ir eksperimentāla funkcija!</translation>
 <translation id="7846634333498149051">Tastatūra</translation>
+<translation id="7886277072580235377">Pēc izrakstīšanās jūsu interneta sesija tiks notīrīta. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipulēt ar konfidencialitāti saistītus iestatījumus</translation>
 <translation id="7904094684485781019">Šī konta administrators nav atļāvis vairākkārtēju pierakstīšanos.</translation>
 <translation id="7933084174919150729">Google asistents ir pieejams tikai galvenajam profilam.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: notiek atkārtota savienojuma izveide…</translation>
 <translation id="8513108775083588393">Automātiska pagriešana</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> ierīce, iespējams, netiks uzlādēta, kamēr tā būs ieslēgta.</translation>
+<translation id="8592141010104017453">Nerādīt paziņojumus vispār</translation>
 <translation id="8627191004499078455">Izveidots savienojums ar ierīci (<ph name="DEVICE_NAME" />)</translation>
 <translation id="8639760480004882931">Atlicis: <ph name="PERCENTAGE" />%</translation>
 <translation id="8649101189709089199">Atlasīt, lai izrunātu</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 72c4f318..6cd4f59 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">ഇൻപുട്ട് രീതികൾ കോൺഫിഗർ ചെയ്യുന്നത് നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്ററാണ്.</translation>
 <translation id="1747827819627189109">ഓൺ‌ സ്‌ക്രീൻ കീ‌ബോർഡ് പ്രവർത്തനക്ഷമമാക്കി</translation>
 <translation id="1761222317188459878">നെറ്റ്‌വർക്ക് കണക്ഷൻ മാറ്റുക. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">എന്റെ സ്‌ക്രീനിൽ എന്താണുള്ളത്?</translation>
 <translation id="1823873187264960516">ഇതർനെറ്റ്: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">സഹായി (ലോഡുചെയ്യുന്നു...)</translation>
 <translation id="1841545962859478868">ഉപകരണ അഡ്‌മിൻ ഇനിപ്പറയുന്നവ നിരീക്ഷിച്ചേക്കാം:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">കണക്ഷൻ ചേർക്കുക</translation>
 <translation id="2961963223658824723">എന്തോ കുഴപ്പം സംഭവിച്ചു. അൽപ്പസമയത്തിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">എല്ലാ അറിയിപ്പിന്റെയും ഉള്ളടക്കം കാണിക്കുക</translation>
 <translation id="2995447421581609334">കാസ്‌റ്റ് ഉപകരണങ്ങൾ കാണിക്കുക.</translation>
 <translation id="2996462380875591307">ഡോക്ക് ചെയ്‌ത മാഗ്നിഫയർ പ്രവർത്തനക്ഷമമാക്കി. ഇത് മാറ്റാൻ, കൺട്രോൾ+തിരയൽ+D വീണ്ടും അമർത്തുക.</translation>
 <translation id="2999742336789313416"><ph name="DOMAIN" /> നിയന്ത്രിക്കുന്ന എല്ലാവർക്കുമുള്ള ഒരു സെഷനാണ് <ph name="DISPLAY_NAME" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">ഉപകരണങ്ങൾ</translation>
 <translation id="4659419629803378708">ChromeVox പ്രവർത്തനക്ഷമമാക്കി</translation>
 <translation id="4734965478015604180">സമാന്തരം</translation>
+<translation id="476166673298332917">പാസ്‌വേഡുകളും ആശയവിനിമയങ്ങളും ഉൾപ്പെടെ, എല്ലാ ആക്‌റ്റിവിറ്റിയിലേക്കും ഈ ഉപകരണത്തിന്റെ അഡ്‌മിന് ആക്‌സസ് ഉണ്ട്.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> എന്നതിനായുള്ള പാസ്‌വേഡ്</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">വിച്ഛേദിക്കുക</translation>
 <translation id="4849058404725798627">കീബോർഡ് ഫോക്കസ് ഉപയോഗിച്ച് ഒബ്‌ജക്‌റ്റിനെ ഹൈലൈറ്റുചെയ്യുക</translation>
 <translation id="4872237917498892622">Alt+തിരയൽ അല്ലെങ്കിൽ Shift</translation>
 <translation id="4890187583552566966">Google സഹായിയെ നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്റർ പ്രവർത്തനരഹിതമാക്കി.</translation>
+<translation id="4893522937062257019">ലോക്ക് സ്ക്രീനിൽ</translation>
 <translation id="4895488851634969361">ബാറ്ററി ചാർജുചെയ്യൽ പൂർണ്ണമായി.</translation>
 <translation id="490375751687810070">ലംബം</translation>
 <translation id="4905614135390995787">ഉയർന്ന ദൃശ്യതീവ്രത മോഡ് ടോഗിൾ ചെയ്യാനുള്ള ‌കുറുക്കുവഴി മാറ്റി. <ph name="OLD_SHORTCUT" /> എന്നതിനുപകരം <ph name="NEW_SHORTCUT" /> ഉപയോഗിക്കുക.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">ഉപയോഗസഹായി ക്രമീകരണങ്ങൾ</translation>
 <translation id="5313326810920013265">ബ്ലൂടൂത്ത് ക്രമീകരണങ്ങൾ</translation>
 <translation id="5331975486040154427">USB-C ഉപകരണം (പുറകിൽ ഇടതുവശത്തെ പോർട്ട്)</translation>
+<translation id="5379115545237091094">നിരവധി ശ്രമങ്ങൾ</translation>
 <translation id="5397578532367286026">ഈ ഉപയോക്താവിന്റെ ഉപയോഗവും ചരിത്രവും chrome.com-ൽ മാനേജർക്ക് (<ph name="MANAGER_EMAIL" />) അവലോകനം ചെയ്യാനാകും.</translation>
 <translation id="5430931332414098647">തൽക്ഷണ ടെതറിംഗ്</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">പുനരാരംഭിക്കുക</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">ഷോട്ട്കട്ട് വ്യൂവർ</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">ഓൺ ചെയ്യുക</translation>
 <translation id="592343074608792716">ഈ Chromebook-ഉം നിങ്ങളുടെ ഫോണും സ്വമേധയാ കണക്റ്റ് ചെയ്യും</translation>
 <translation id="5947494881799873997">പഴയപടിയാക്കുക</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">ആരംഭിക്കാം</translation>
 <translation id="6981982820502123353">ഉപയോഗസഹായി</translation>
 <translation id="698231206551913481">ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുമ്പോൾ അതോടൊപ്പം അയാളുമായി ബന്ധപ്പെട്ട എല്ലാ ഫയലുകളും പ്രാദേശിക വിവരങ്ങളും ശാശ്വതമായി ഇല്ലാതാക്കപ്പെടും.</translation>
+<translation id="7007100238996585961">മറ്റൊരു ഉപകരണത്തിൽ മറുപടി നൽകുന്നു</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" />-ന് തിരികെ വരിക.</translation>
 <translation id="7029814467594812963">സെഷനിൽ നിന്ന് പുറത്തുകടക്കുക</translation>
 <translation id="7037152028959403492">നിങ്ങൾ ഉയർന്ന ദൃശ്യ തീവ്രതയ്ക്കുള്ള കുറുക്കുവഴി അമർത്തി. അത് ഓണാക്കണോ?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">നെറ്റ്‌വർക്ക് കണക്ഷൻ മാറ്റി</translation>
 <translation id="742594950370306541">ക്യാമറ ഉപയോഗത്തിലാണ്.</translation>
 <translation id="743058460480092004">ക്യാമറയും മൈക്രോഫോണും ഉപയോഗത്തിലാണ്.</translation>
+<translation id="7497767806359279797">ഭാഷയും കീബോഡും തിരഞ്ഞെടുക്കുക</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">നെറ്റ്‌വർക്ക് നിരീക്ഷിക്കപ്പെടാം</translation>
 <translation id="7536035074519304529">IP വിലാസം: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Braille, ChromeVox എന്നിവ പ്രവർത്തനക്ഷമമാക്കി</translation>
 <translation id="7593891976182323525">തിരയൽ അല്ലെങ്കിൽ Shift</translation>
 <translation id="7604942372593434070">നിങ്ങളുടെ ബ്രൗസിംഗ് ആക്‌റ്റിവിറ്റി ആക്‌സസ് ചെയ്യുക</translation>
+<translation id="7642778300616172920">സൂക്ഷ്‌മമായി കൈകാര്യം ചെയ്യേണ്ട ഉള്ളടക്കം അദൃശ്യമാക്കുക</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ഉടമ)</translation>
 <translation id="7647488630410863958">നിങ്ങളുടെ അറിയിപ്പുകൾ കാണാൻ ഉപകരണം അൺലോക്കുചെയ്യുക</translation>
 <translation id="7649070708921625228">സഹായം</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265"><ph name="NETWORK_NAME" /> നെറ്റ്‌വർക്കിലേക്ക് കണക്‌റ്റ് ചെയ്യുന്നു</translation>
 <translation id="7842569679327885685">മുന്നറിയിപ്പ്: പരീക്ഷണാത്മക ഫീച്ചർ</translation>
 <translation id="7846634333498149051">കീബോർഡ്</translation>
+<translation id="7886277072580235377">സൈൻ ഔട്ട് ചെയ്യുമ്പോൾ നിങ്ങളുടെ ഇന്റർനെറ്റ് സെഷൻ മായ്ക്കപ്പെടും. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">സ്വകാര്യത സംബന്ധിയായ ക്രമീകരണങ്ങൾ കൈകാര്യം ചെയ്യുക</translation>
 <translation id="7904094684485781019">ഈ അക്കൗണ്ടിന്റെ അഡ്‌മിനിസ്‌ട്രേറ്റർ ഒന്നിലധികം സൈൻ-ഇൻ അനുവദിക്കുന്നില്ല.</translation>
 <translation id="7933084174919150729">പ്രാഥമിക പ്രൊഫൈലിന് മാത്രമേ Google സഹായി ലഭ്യമാകൂ.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: വീണ്ടും കണക്‌റ്റുചെയ്യുന്നു...</translation>
 <translation id="8513108775083588393">സ്വയം തിരിയുക</translation>
 <translation id="8517041960877371778">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> ഓണായിരിക്കുമ്പോൾ അത് ചാർജ്ജാകാതിരിക്കാം.</translation>
+<translation id="8592141010104017453">അറിയിപ്പുകൾ ഒന്നും തന്നെ കാണിക്കരുത്</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" /> ഉപകരണത്തിലേക്ക് കണക്റ്റ് ചെയ്‌തു</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> ശേഷിക്കുന്നു</translation>
 <translation id="8649101189709089199">വായിച്ചുകേൾക്കാൻ തിരഞ്ഞെടുക്കുക</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index 5ff56fa..7cc3454e 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">तुमच्या प्रशासकाद्वारे कॉन्फिगर केलेल्या इनपुट पद्धती.</translation>
 <translation id="1747827819627189109">ऑन-स्क्रीन कीबोर्ड सक्षम</translation>
 <translation id="1761222317188459878">नेटवर्क कनेक्शन टॉगल करा. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">माझ्या स्क्रीनवर काय आहे?</translation>
 <translation id="1823873187264960516">इथरनेट: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">साहाय्यक (लोड होत आहे...)</translation>
 <translation id="1841545962859478868">डिव्हाइस प्रशासक कदाचित खालील गोष्टींचे परीक्षण करू शकतो:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">कनेक्शन जोडा</translation>
 <translation id="2961963223658824723">काहीतरी चूक झाली. काही सेकंदांनी पुन्हा प्रयत्न करा.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">सर्व सूचना आशय दाखवा</translation>
 <translation id="2995447421581609334">कास्‍ट डिव्‍हाइस दाखवा.</translation>
 <translation id="2996462380875591307">डॉक केलेले मॅग्निफायर सुरू केले. ते टॉगल करून बंद करण्यासाठी पुन्हा Ctrl+Search+D दाबा.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> हे <ph name="DOMAIN" /> द्वारे व्यवस्थापित कलेले एक सावर्जनिक सत्र आहे</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">डिव्हाइसेस</translation>
 <translation id="4659419629803378708">ChromeVox चालू केले</translation>
 <translation id="4734965478015604180">आडवा</translation>
+<translation id="476166673298332917">या डिव्हाइसच्या अॅडमिनिस्ट्रेटरकडे पासवर्ड आणि कम्युनिकेशनेसह सर्व अॅक्टिव्हिटीचा अॅक्सेस आहे.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> साठी पासवर्ड</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">‍डिस्कनेक्ट</translation>
 <translation id="4849058404725798627">कीबोर्ड फोकससह ऑब्जेक्ट हायलाइट करा</translation>
 <translation id="4872237917498892622">Alt+Search किंवा Shift</translation>
 <translation id="4890187583552566966">तुमच्या अ‍ॅडमिनिस्ट्रेटरने Google Assistant बंद केलेले आहे.</translation>
+<translation id="4893522937062257019">लॉक स्क्रीनवर</translation>
 <translation id="4895488851634969361">बॅटरी भरली आहे.</translation>
 <translation id="490375751687810070">उभा</translation>
 <translation id="4905614135390995787">उच्च तीव्रता मोड टॉगल करण्यासाठी शॉर्टकट बदलला आहे. कृपया <ph name="OLD_SHORTCUT" /> ऐवजी <ph name="NEW_SHORTCUT" /> वापरा.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">प्रवेशयोग्यता सेटिंग्ज</translation>
 <translation id="5313326810920013265">Bluetooth सेटिंग्ज</translation>
 <translation id="5331975486040154427">USB-C डिव्‍हाइस (डाव्या बाजूचे मागील पोर्ट)</translation>
+<translation id="5379115545237091094">खूप जास्त प्रयत्न</translation>
 <translation id="5397578532367286026">या वापरकर्त्याच्या वापर आणि इतिहासाचे chrome.com वरील व्यवस्थापकाद्वारे (<ph name="MANAGER_EMAIL" />) पुनरावलोकन केले जाऊ शकते.</translation>
 <translation id="5430931332414098647">झटपट टिथरिंग</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">रीस्टार्ट करा</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">शॉर्टकट दर्शक</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">चालू</translation>
 <translation id="592343074608792716">हे Chromebook आणि तुमचा फोन आपोआप कनेक्ट होतील</translation>
 <translation id="5947494881799873997">परत करा</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">प्रारंभ करा</translation>
 <translation id="6981982820502123353">प्रवेशयोग्यता</translation>
 <translation id="698231206551913481">एकदा हा वापरकर्ता काढल्यानंतर या वापरकर्त्याशी संबद्ध सर्व फायली आणि स्थानिक डेटा कायमचा हटवला जाईल.</translation>
+<translation id="7007100238996585961">दुसऱ्या डिव्हाइसवर उत्तर देत आहे</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> वाजता परत या.</translation>
 <translation id="7029814467594812963">सत्र निर्गमन करा</translation>
 <translation id="7037152028959403492">तुम्ही उच्च कॉंट्रास्टसाठीचा शॉर्टकट दाबला. तुम्हाला ते सुरू करायचे आहे का?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">नेटवर्क कनेक्शन स्विच केले</translation>
 <translation id="742594950370306541">कॅमेरा वापरात आहे.</translation>
 <translation id="743058460480092004">कॅमेरा आणि मायक्रोफोन वापरात आहेत.</translation>
+<translation id="7497767806359279797">भाषा आणि कीबोर्ड निवडा</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">नेटवर्कचे परीक्षण केले जाऊ शकते</translation>
 <translation id="7536035074519304529">IP पत्ता: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">ब्रेल आणि ChromeVox चालू केलेले आहेत</translation>
 <translation id="7593891976182323525">Search किंवा Shift</translation>
 <translation id="7604942372593434070">आपल्या ब्राउझिंग क्रियाकलापामध्ये प्रवेश करा</translation>
+<translation id="7642778300616172920">संवेदनशील आशय लपवा</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (मालक)</translation>
 <translation id="7647488630410863958">आपल्या सूचना पाहण्यासाठी डिव्हाइस अनलॉक करा</translation>
 <translation id="7649070708921625228">मदत</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265"><ph name="NETWORK_NAME" /> शी कनेक्ट करत आहे</translation>
 <translation id="7842569679327885685">चेतावणी: प्रयोगात्मक वैशिष्ट्य</translation>
 <translation id="7846634333498149051">कीबोर्ड</translation>
+<translation id="7886277072580235377">तुम्ही साइन आउट केल्यावर तुमचे इंटरनेट सेशन साफ केले जाईल. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">गोपनीयतेशी-संबद्ध सेटिंग्ज कुशलतेने हाताळा</translation>
 <translation id="7904094684485781019">या खात्याच्या प्रशासकाने एकाधिक साइन इन ची अनुमती रद्द केली आहे.</translation>
 <translation id="7933084174919150729">Google Assistant फक्त प्राथमिक प्रोफाइलवर उपलब्ध आहे.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: पुन्हा कनेक्ट करीत आहे...</translation>
 <translation id="8513108775083588393">ऑटो-रोटेट</translation>
 <translation id="8517041960877371778">आपले <ph name="DEVICE_TYPE" /> चालू केले असताना कदाचित चार्ज होणार नाही.</translation>
+<translation id="8592141010104017453">सूचना अजिबात दाखवू नका</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" /> शी कनेक्ट केले</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> शिल्लक</translation>
 <translation id="8649101189709089199">बोलण्यासाठी निवडा</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index ef4c7995..2dc214f3 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Kaedah masukan dikonfigurasi oleh pentadbir anda.</translation>
 <translation id="1747827819627189109">Papan kekunci pada skrin didayakan</translation>
 <translation id="1761222317188459878">Togol sambungan rangkaian. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Apakah yang terdapat pada skrin saya?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Pembantu (memuat...)</translation>
 <translation id="1841545962859478868">Pentadbir peranti boleh memantau perkara berikut:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Tambah sambungan</translation>
 <translation id="2961963223658824723">Maaf, kesilapan telah berlaku. Cuba lagi dalam beberapa saat.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Tunjukkan semua kandungan pemberitahuan</translation>
 <translation id="2995447421581609334">Tunjukkan peranti cast.</translation>
 <translation id="2996462380875591307">Penggadang Didok didayakan. Tekan Ctrl+Cari+D semula untuk mematikannya.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> ialah sesi awam yang diurus oleh <ph name="DOMAIN" /></translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Peranti</translation>
 <translation id="4659419629803378708">ChromeVox didayakan</translation>
 <translation id="4734965478015604180">Mendatar</translation>
+<translation id="476166673298332917">Pentadbir peranti ini mempunyai akses kepada semua aktiviti, termasuk kata laluan dan komunikasi.</translation>
 <translation id="4776917500594043016">Kata laluan untuk <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Putuskan sambungan</translation>
 <translation id="4849058404725798627">Serlahkan objek dengan fokus papan kekunci</translation>
 <translation id="4872237917498892622">Alt+Search atau Shift</translation>
 <translation id="4890187583552566966">Google Assistant dilumpuhkan oleh pentadbir anda.</translation>
+<translation id="4893522937062257019">Pada skrin kunci</translation>
 <translation id="4895488851634969361">Bateri penuh.</translation>
 <translation id="490375751687810070">Menegak</translation>
 <translation id="4905614135390995787">Pintasan untuk menogol Mod Kontras Tinggi telah ditukar. Sila gunakan <ph name="NEW_SHORTCUT" /> dan bukannya <ph name="OLD_SHORTCUT" />.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Tetapan kebolehcapaian</translation>
 <translation id="5313326810920013265">Tetapan Bluetooth</translation>
 <translation id="5331975486040154427">Peranti USB-C (port belakang sebelah kiri)</translation>
+<translation id="5379115545237091094">Terlalu banyak percubaan</translation>
 <translation id="5397578532367286026">Penggunaan dan sejarah pengguna ini boleh disemak oleh pengurus (<ph name="MANAGER_EMAIL" />) di chrome.com.</translation>
 <translation id="5430931332414098647">Penambatan Segera</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Mulakan Semula</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Paparan pintasan</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Hidupkan</translation>
 <translation id="592343074608792716">Chromebook ini dan telefon anda akan disambungkan secara automatik</translation>
 <translation id="5947494881799873997">Berbalik</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Bermula</translation>
 <translation id="6981982820502123353">Kebolehcapaian</translation>
 <translation id="698231206551913481">Semua fail dan data yang berkaitan dengan pengguna ini akan dipadamkan secara kekal selepas pengguna ini dialih keluar.</translation>
+<translation id="7007100238996585961">Menjawab menggunakan peranti lain</translation>
 <translation id="7015766095477679451">Datang semula pada <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Keluar dari sesi</translation>
 <translation id="7037152028959403492">Anda menekan pintasan untuk kontras tinggi. Adakah anda ingin menghidupkannya?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">Beralih sambungan rangkaian</translation>
 <translation id="742594950370306541">Kamera sedang digunakan.</translation>
 <translation id="743058460480092004">Kamera dan mikrofon sedang digunakan.</translation>
+<translation id="7497767806359279797">Pilih bahasa dan papan kekunci</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Rangkaian mungkin dipantau</translation>
 <translation id="7536035074519304529">Alamat IP: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Braille dan ChromeVox didayakan</translation>
 <translation id="7593891976182323525">Search atau Shift</translation>
 <translation id="7604942372593434070">Akses aktiviti penyemakan imbas anda</translation>
+<translation id="7642778300616172920">Sembunyikan kandungan sensitif</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (pemilik)</translation>
 <translation id="7647488630410863958">Buka kunci peranti untuk melihat pemberitahuan anda</translation>
 <translation id="7649070708921625228">Bantuan</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Menyambung ke <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Amaran: Ciri percubaan</translation>
 <translation id="7846634333498149051">Papan kekunci</translation>
+<translation id="7886277072580235377">Sesi Internet anda akan dipadam bersih apabila anda log keluar. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipulasi tetapan yang berkaitan privasi</translation>
 <translation id="7904094684485781019">Pentadbir akaun ini tidak membenarkan berbilang log masuk.</translation>
 <translation id="7933084174919150729">Google Assistant hanya tersedia untuk profil utama.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Menyambung semula...</translation>
 <translation id="8513108775083588393">Autoputar</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> anda mungkin tidak akan dicas semasa dihidupkan.</translation>
+<translation id="8592141010104017453">Jangan tunjukkan pemberitahuan sama sekali</translation>
 <translation id="8627191004499078455">Disambungkan ke <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Berbaki <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Pilih untuk Bercakap</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index f6b09c1..8ceb888 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Invoermethoden worden ingesteld door je beheerder.</translation>
 <translation id="1747827819627189109">Schermtoetsenbord ingeschakeld</translation>
 <translation id="1761222317188459878">Netwerkverbinding schakelen. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Wat wordt er op mijn scherm weergegeven?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistent (laden...)</translation>
 <translation id="1841545962859478868">De apparaatbeheerder kan het volgende controleren:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Verbinding toevoegen</translation>
 <translation id="2961963223658824723">Er is iets misgegaan. Probeer het over een paar seconden opnieuw.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Content van alle meldingen weergeven</translation>
 <translation id="2995447421581609334">Cast-apparaten weergeven.</translation>
 <translation id="2996462380875591307">'Gedockt vergrootglas' is ingeschakeld. Druk nogmaals op Ctrl+Zoeken+D om dit uit te schakelen.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> is een openbare sessie die wordt beheerd door <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Apparaten</translation>
 <translation id="4659419629803378708">ChromeVox ingeschakeld</translation>
 <translation id="4734965478015604180">Horizontaal</translation>
+<translation id="476166673298332917">De beheerder van dit apparaat heeft toegang tot alle activiteit, inclusief wachtwoorden en communicatie.</translation>
 <translation id="4776917500594043016">Wachtwoord voor <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">zoeken</translation>
 <translation id="4804818685124855865">Verbinding verbreken</translation>
 <translation id="4849058404725798627">Object met toetsenbordfocus markeren</translation>
 <translation id="4872237917498892622">Alt+Zoeken of Shift</translation>
 <translation id="4890187583552566966">De Google Assistent is uitgeschakeld door je beheerder.</translation>
+<translation id="4893522937062257019">Op het vergrendelingsscherm</translation>
 <translation id="4895488851634969361">De batterij is vol.</translation>
 <translation id="490375751687810070">Verticaal</translation>
 <translation id="4905614135390995787">De sneltoets om de modus voor hoog contrast in of uit te schakelen, is gewijzigd. Gebruik <ph name="NEW_SHORTCUT" /> in plaats van <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Toegankelijkheidsinstellingen</translation>
 <translation id="5313326810920013265">Bluetooth-instellingen</translation>
 <translation id="5331975486040154427">USB-C-apparaat (poort links aan de achterkant)</translation>
+<translation id="5379115545237091094">Te veel pogingen</translation>
 <translation id="5397578532367286026">Het gebruik en de geschiedenis van deze gebruiker kunnen worden bekeken door de beheerder (<ph name="MANAGER_EMAIL" />) op chrome.com.</translation>
 <translation id="5430931332414098647">Instant-tethering</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Opnieuw starten</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Sneltoetsenviewer</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Aan</translation>
 <translation id="592343074608792716">Deze Chromebook en je telefoon maken automatisch verbinding</translation>
 <translation id="5947494881799873997">Terugzetten</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Aan de slag</translation>
 <translation id="6981982820502123353">Toegankelijkheid</translation>
 <translation id="698231206551913481">Alle bestanden en lokale gegevens die zijn gekoppeld aan deze gebruiker, worden definitief verwijderd zodra deze gebruiker is verwijderd.</translation>
+<translation id="7007100238996585961">Beantwoorden op een ander apparaat</translation>
 <translation id="7015766095477679451">Kom terug om <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Sessie sluiten</translation>
 <translation id="7037152028959403492">Je hebt op de sneltoets voor hoog contrast gedrukt. Wil je deze functie inschakelen?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Overgeschakeld naar andere netwerkverbinding</translation>
 <translation id="742594950370306541">Camera is in gebruik.</translation>
 <translation id="743058460480092004">Camera en microfoon zijn in gebruik.</translation>
+<translation id="7497767806359279797">Taal en toetsenbord kiezen</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Netwerk kan worden bijgehouden</translation>
 <translation id="7536035074519304529">IP-adres: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Braille en ChromeVox zijn ingeschakeld</translation>
 <translation id="7593891976182323525">Zoeken of Shift</translation>
 <translation id="7604942372593434070">Toegang krijgen tot je browse-activiteit</translation>
+<translation id="7642778300616172920">Gevoelige content verbergen</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (eigenaar)</translation>
 <translation id="7647488630410863958">Ontgrendel het apparaat om je meldingen weer te geven</translation>
 <translation id="7649070708921625228">Help</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Verbinding maken met <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Waarschuwing: Experimentele functie</translation>
 <translation id="7846634333498149051">Toetsenbord</translation>
+<translation id="7886277072580235377">Je internetsessie wordt gewist wanneer je uitlogt. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Privacygerelateerde instellingen manipuleren</translation>
 <translation id="7904094684485781019">De beheerder van dit account heeft toegang tot meerdere accounts niet toegestaan.</translation>
 <translation id="7933084174919150729">De Google Assistent is alleen beschikbaar voor het primaire profiel.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Opnieuw verbinding maken...</translation>
 <translation id="8513108775083588393">Automatisch draaien</translation>
 <translation id="8517041960877371778">Je <ph name="DEVICE_TYPE" /> wordt mogelijk niet opgeladen terwijl deze is ingeschakeld.</translation>
+<translation id="8592141010104017453">Helemaal geen meldingen weergeven</translation>
 <translation id="8627191004499078455">Verbonden met <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> resterend</translation>
 <translation id="8649101189709089199">Selecteer om uitgesproken te worden</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index b232295..ce937ce 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Inndatametoder konfigureres av administratoren din.</translation>
 <translation id="1747827819627189109">Skjermtastaturet er aktivert</translation>
 <translation id="1761222317188459878">Slå av/på nettverkstilkobling. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Hva er på skjermen?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistent (laster inn …)</translation>
 <translation id="1841545962859478868">Enhetsadministratoren kan overvåke følgende:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Legg til forbindelse</translation>
 <translation id="2961963223658824723">Noe gikk galt. Prøv på nytt om noen sekunder.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Vis alt innhold i varsler</translation>
 <translation id="2995447421581609334">Vis Cast-enheter.</translation>
 <translation id="2996462380875591307">Dokket lupe er slått på. Trykk på Ctrl + Søk + D igjen for å slå det av.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> er en offentlig økt administrert av <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Enheter</translation>
 <translation id="4659419629803378708">ChromeVox er slått på</translation>
 <translation id="4734965478015604180">Horisontal</translation>
+<translation id="476166673298332917">Administratoren av denne enheten har tilgang til all aktivitet, inkludert passord og kommunikasjon.</translation>
 <translation id="4776917500594043016">Passord for <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">søk</translation>
 <translation id="4804818685124855865">Koble fra</translation>
 <translation id="4849058404725798627">Fremhev objektet med tastaturfokus</translation>
 <translation id="4872237917498892622">Alt + Søk eller Shift</translation>
 <translation id="4890187583552566966">Administratoren din har slått av Google-assistenten.</translation>
+<translation id="4893522937062257019">På låseskjermen</translation>
 <translation id="4895488851634969361">Batteriet er fullt.</translation>
 <translation id="490375751687810070">Vertikal</translation>
 <translation id="4905614135390995787">Hurtigtasten for å slå høykontrastmodus av eller på er endret. Bruk <ph name="NEW_SHORTCUT" /> i stedet for <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Tilgjengelighetsinnstillinger</translation>
 <translation id="5313326810920013265">Bluetooth-innstillinger</translation>
 <translation id="5331975486040154427">USB-C-enhet (porten bak på venstre side)</translation>
+<translation id="5379115545237091094">For mange forsøk</translation>
 <translation id="5397578532367286026">Bruken og loggen for denne brukeren kan gjennomgås av administratoren (<ph name="MANAGER_EMAIL" />) på chrome.com</translation>
 <translation id="5430931332414098647">Umiddelbar internettdeling</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Start på nytt</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Snarveivisning</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">På</translation>
 <translation id="592343074608792716">Denne Chromebooken og telefonen din kobles sammen automatisk</translation>
 <translation id="5947494881799873997">Tilbakestill</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Kom i gang</translation>
 <translation id="6981982820502123353">Tilgjengelighet</translation>
 <translation id="698231206551913481">Alle filer og lokale data som er tilknyttet denne brukeren, slettes permanent når brukeren fjernes.</translation>
+<translation id="7007100238996585961">Svarer på en annen enhet</translation>
 <translation id="7015766095477679451">Kom tilbake <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Avslutt økten</translation>
 <translation id="7037152028959403492">Du trykket på snarveien for høy kontrast. Vil du slå det på?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Byttet nettverkstilkobling</translation>
 <translation id="742594950370306541">Kameraet er i bruk.</translation>
 <translation id="743058460480092004">Kameraet og mikrofonen er i bruk.</translation>
+<translation id="7497767806359279797">Velg språk og tastatur</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Nettverket kan være overvåket</translation>
 <translation id="7536035074519304529">IP-adresse: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Braille og ChromeVox er slått på</translation>
 <translation id="7593891976182323525">Søk eller Shift</translation>
 <translation id="7604942372593434070">Gå til surfeaktiviteten din</translation>
+<translation id="7642778300616172920">Skjul sensitivt innhold</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (eier)</translation>
 <translation id="7647488630410863958">Lås opp enheten for å se varslene dine</translation>
 <translation id="7649070708921625228">Hjelp</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Kobler til <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Advarsel: Funksjon på forsøksstadiet</translation>
 <translation id="7846634333498149051">Tastatur</translation>
+<translation id="7886277072580235377">Internett-økten din fjernes når du logger av. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">manipulere personvernrelaterte innstillinger</translation>
 <translation id="7904094684485781019">Administratoren for denne kontoen har forbudt multipålogging.</translation>
 <translation id="7933084174919150729">Google-assistenten er bare tilgjengelig for den primære profilen.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Kobler til på nytt ...</translation>
 <translation id="8513108775083588393">Automatisk rotasjon</translation>
 <translation id="8517041960877371778">Det kan hende at din <ph name="DEVICE_TYPE" /> ikke lader når den er slått på.</translation>
+<translation id="8592141010104017453">Ikke vis varsler i det hele tatt</translation>
 <translation id="8627191004499078455">Koblet til <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> igjen</translation>
 <translation id="8649101189709089199">Tekstopplesing</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index dc9c8ca..7bf4518 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Metody wprowadzania zostały skonfigurowane przez administratora.</translation>
 <translation id="1747827819627189109">Klawiatura ekranowa włączona</translation>
 <translation id="1761222317188459878">Włącz lub wyłącz połączenie sieciowe. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Co widać na moim ekranie?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Asystent (ładuję…)</translation>
 <translation id="1841545962859478868">Administrator urządzenia może monitorować te zdarzenia:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Dodaj połączenie</translation>
 <translation id="2961963223658824723">Coś poszło nie tak. Spróbuj ponownie za kilka sekund.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Pokazuj wszystkie powiadomienia</translation>
 <translation id="2995447421581609334">Pokaż urządzenia przesyłające.</translation>
 <translation id="2996462380875591307">Lupa zadokowana została włączona. Aby ją wyłączyć, naciśnij ponownie Ctrl+Search+D.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> jest publiczną sesją zarządzaną przez <ph name="DOMAIN" /></translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Urządzenia</translation>
 <translation id="4659419629803378708">Włączono ChromeVox</translation>
 <translation id="4734965478015604180">Orientacja pozioma</translation>
+<translation id="476166673298332917">Administrator tego urządzenia ma dostęp do wszystkiego, co robisz, w tym do haseł i komunikacji.</translation>
 <translation id="4776917500594043016">Hasło dla <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Rozłącz</translation>
 <translation id="4849058404725798627">Podświetlaj obiekt wybrany za pomocą klawiatury</translation>
 <translation id="4872237917498892622">Alt+Szukaj lub Shift</translation>
 <translation id="4890187583552566966">Asystenta Google wyłączył administrator.</translation>
+<translation id="4893522937062257019">Na ekranie blokady</translation>
 <translation id="4895488851634969361">Bateria jest pełna.</translation>
 <translation id="490375751687810070">Orientacja pionowa</translation>
 <translation id="4905614135390995787">Zmieniliśmy skrót, który włącza i wyłącza tryb wysokiego kontrastu. Użyj <ph name="NEW_SHORTCUT" /> zamiast <ph name="OLD_SHORTCUT" />.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Ustawienia ułatwień dostępu</translation>
 <translation id="5313326810920013265">Ustawienia Bluetooth</translation>
 <translation id="5331975486040154427">Urządzenie USB-C (tylny port na lewym boku)</translation>
+<translation id="5379115545237091094">Zbyt wiele prób</translation>
 <translation id="5397578532367286026">Działania i historia tego użytkownika mogą być sprawdzane przez menedżera (<ph name="MANAGER_EMAIL" />) na chrome.com.</translation>
 <translation id="5430931332414098647">Instant Tethering</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Uruchom ponownie</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Przeglądarka skrótów</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Włączone</translation>
 <translation id="592343074608792716">Ten Chromebook i Twój telefon będą się łączyć automatycznie</translation>
 <translation id="5947494881799873997">Przywróć</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Rozpocznij</translation>
 <translation id="6981982820502123353">Ułatwienia dostępu</translation>
 <translation id="698231206551913481">Usunięcie tego użytkownika spowoduje trwałe usunięcie wszystkich związanych z nim plików i danych lokalnych.</translation>
+<translation id="7007100238996585961">Odpowiem na innym urządzeniu</translation>
 <translation id="7015766095477679451">Możesz wrócić o <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Zakończ sesję</translation>
 <translation id="7037152028959403492">Naciśnięto skrót wysokiego kontrastu. Czy chcesz go włączyć?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">Przełączono połączenie sieciowe</translation>
 <translation id="742594950370306541">Aparat jest używany.</translation>
 <translation id="743058460480092004">Aparat i mikrofon są używane.</translation>
+<translation id="7497767806359279797">Wybierz język i klawiaturę</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Sieć może być monitorowana</translation>
 <translation id="7536035074519304529">Adres IP: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Włączono Braille'a i ChromeVox</translation>
 <translation id="7593891976182323525">Szukaj lub Shift</translation>
 <translation id="7604942372593434070">Uzyskaj dostęp do swojej aktywności związanej z przeglądaniem</translation>
+<translation id="7642778300616172920">Ukryj informacje poufne</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (właściciel)</translation>
 <translation id="7647488630410863958">Odblokuj urządzenie, by zobaczyć swoje powiadomienia</translation>
 <translation id="7649070708921625228">Pomoc</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Łączę z siecią <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Ostrzeżenie: funkcja eksperymentalna</translation>
 <translation id="7846634333498149051">Klawiatura</translation>
+<translation id="7886277072580235377">Twoja sesja internetowa zostanie wyczyszczona, gdy się wylogujesz. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipulować ustawieniami ochrony prywatności</translation>
 <translation id="7904094684485781019">Administrator tego konta zablokował możliwość wielokrotnego logowania.</translation>
 <translation id="7933084174919150729">Asystent Google jest dostępny tylko na profilu głównym.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: ponownie łączę...</translation>
 <translation id="8513108775083588393">Autoobracanie</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> nie może się ładować, gdy jest włączony.</translation>
+<translation id="8592141010104017453">Nie pokazuj żadnych powiadomień</translation>
 <translation id="8627191004499078455">Połączono z urządzeniem <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Pozostało <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Przeczytaj na głos</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index c99406c..e72fb07 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Os métodos de entrada são configurados pelo administrador.</translation>
 <translation id="1747827819627189109">Teclado na tela ativado</translation>
 <translation id="1761222317188459878">Alternar conexão de rede. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">O que está na minha tela?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistente (carregando…)</translation>
 <translation id="1841545962859478868">O administrador do dispositivo pode monitorar o seguinte:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Adicionar conexão</translation>
 <translation id="2961963223658824723">Algo deu errado. Tente novamente em alguns segundos.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Mostrar todo o conteúdo de notificações</translation>
 <translation id="2995447421581609334">Mostrar dispositivos de transmissão.</translation>
 <translation id="2996462380875591307">Lupa ancorada ativada. Pressione Ctrl+Pesquisa+D novamente para desativá-la.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> é uma sessão pública gerenciada por <ph name="DOMAIN" /></translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Dispositivos</translation>
 <translation id="4659419629803378708">ChromeVox ativado</translation>
 <translation id="4734965478015604180">Horizontal</translation>
+<translation id="476166673298332917">O administrador deste dispositivo tem acesso a todas as atividades, inclusive às senhas e comunicações.</translation>
 <translation id="4776917500594043016">Senha para <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">pesquisar</translation>
 <translation id="4804818685124855865">Desconectar</translation>
 <translation id="4849058404725798627">Destacar objeto com o foco de teclado</translation>
 <translation id="4872237917498892622">Alt + Pesquisar ou Shift</translation>
 <translation id="4890187583552566966">O Google Assistente foi desativado pelo seu administrador.</translation>
+<translation id="4893522937062257019">Na tela de bloqueio</translation>
 <translation id="4895488851634969361">A bateria está carregada.</translation>
 <translation id="490375751687810070">Vertical</translation>
 <translation id="4905614135390995787">O atalho para alternar o modo de alto contraste foi alterado. Use <ph name="NEW_SHORTCUT" /> em vez de <ph name="OLD_SHORTCUT" />.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Configurações de acessibilidade</translation>
 <translation id="5313326810920013265">Configurações de Bluetooth</translation>
 <translation id="5331975486040154427">Dispositivo USB-C (porta traseira da esquerda)</translation>
+<translation id="5379115545237091094">Muitas tentativas</translation>
 <translation id="5397578532367286026">O uso e o histórico deste usuário podem ser analisados pelo administrador (<ph name="MANAGER_EMAIL" />) em chrome.com.</translation>
 <translation id="5430931332414098647">Tethering instantâneo</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Reiniciar</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Visualizador de atalhos</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Ativado</translation>
 <translation id="592343074608792716">Este Chromebook e seu smartphone serão conectados automaticamente</translation>
 <translation id="5947494881799873997">Reverter</translation>
@@ -333,6 +339,7 @@
 <translation id="6972754398087986839">Primeiros passos</translation>
 <translation id="6981982820502123353">Acessibilidade</translation>
 <translation id="698231206551913481">Todos os arquivos e dados locais associados a este usuário serão excluídos permanentemente quando o usuário for removido.</translation>
+<translation id="7007100238996585961">Respondendo em outro dispositivo</translation>
 <translation id="7015766095477679451">Volte às <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Sair da sessão</translation>
 <translation id="7037152028959403492">Você pressionou o atalho para o alto contraste. Gostaria de ativá-lo?</translation>
@@ -354,6 +361,7 @@
 <translation id="7398254312354928459">Conexão de rede alterada</translation>
 <translation id="742594950370306541">A câmera está em uso.</translation>
 <translation id="743058460480092004">A câmera e o microfone estão em uso.</translation>
+<translation id="7497767806359279797">Escolher idioma e teclado</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">A rede pode ser monitorada</translation>
 <translation id="7536035074519304529">Endereço IP: <ph name="ADDRESS" /></translation>
@@ -363,6 +371,7 @@
 <translation id="7569509451529460200">Braille e ChromeVox estão ativados</translation>
 <translation id="7593891976182323525">Pesquisar ou Shift</translation>
 <translation id="7604942372593434070">Acesse sua atividade de navegação</translation>
+<translation id="7642778300616172920">Ocultar conteúdo sensível</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (proprietário)</translation>
 <translation id="7647488630410863958">Desbloquear dispositivo para ver as notificações</translation>
 <translation id="7649070708921625228">Ajuda</translation>
@@ -378,6 +387,7 @@
 <translation id="7842211907556571265">Conectando-se a <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Aviso: recurso experimental</translation>
 <translation id="7846634333498149051">Teclado</translation>
+<translation id="7886277072580235377">Sua sessão de Internet será limpa quando você sair. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipular as configurações relacionadas à privacidade</translation>
 <translation id="7904094684485781019">O administrador desta conta bloqueou o login múltiplo.</translation>
 <translation id="7933084174919150729">O Google Assistente só está disponível para o perfil principal.</translation>
@@ -418,6 +428,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: reconectando…</translation>
 <translation id="8513108775083588393">Girar automaticamente</translation>
 <translation id="8517041960877371778">Seu <ph name="DEVICE_TYPE" /> pode não ser carregado enquanto estiver ligado.</translation>
+<translation id="8592141010104017453">Não mostrar notificações</translation>
 <translation id="8627191004499078455">Conectado a <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> restante(s)</translation>
 <translation id="8649101189709089199">Selecionar para ouvir</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index 4126ef2..3dda3d3 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Os métodos de introdução são configurados pelo gestor.</translation>
 <translation id="1747827819627189109">Teclado no ecrã ativado</translation>
 <translation id="1761222317188459878">Ativar/desativar ligação de rede. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">O que está no meu ecrã?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistente (a carregar...)</translation>
 <translation id="1841545962859478868">O gestor do dispositivo pode monitorizar o seguinte:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Adicionar ligação</translation>
 <translation id="2961963223658824723">Ocorreu um erro. Tente novamente dentro de alguns segundos.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Mostrar todo o conteúdo das notificações</translation>
 <translation id="2995447421581609334">Mostrar dispositivos de transmissão.</translation>
 <translation id="2996462380875591307">Lupa ancorada ativada. Prima Ctrl + Pesquisa + D novamente para a desativar.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> é uma sessão pública gerida por <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Dispositivos</translation>
 <translation id="4659419629803378708">ChromeVox ativado</translation>
 <translation id="4734965478015604180">Horizontal</translation>
+<translation id="476166673298332917">O administrador deste dispositivo tem acesso a toda a atividade, incluindo palavras-passe e comunicações.</translation>
 <translation id="4776917500594043016">Palavra-passe para <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Desligar</translation>
 <translation id="4849058404725798627">Realçar objeto com foco do teclado</translation>
 <translation id="4872237917498892622">Alt + Pesquisar ou Shift</translation>
 <translation id="4890187583552566966">O Assistente Google foi desativado pelo administrador.</translation>
+<translation id="4893522937062257019">No ecrã de bloqueio</translation>
 <translation id="4895488851634969361">A bateria está carregada.</translation>
 <translation id="490375751687810070">Vertical</translation>
 <translation id="4905614135390995787">O atalho para ativar/desativar o Modo de alto contraste foi alterado. Utilize <ph name="NEW_SHORTCUT" /> em vez de <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Definições de acessibilidade</translation>
 <translation id="5313326810920013265">Definições de Bluetooth</translation>
 <translation id="5331975486040154427">Dispositivo USB-C (porta traseira do lado esquerdo)</translation>
+<translation id="5379115545237091094">Demasiadas tentativas</translation>
 <translation id="5397578532367286026">A utilização e o histórico deste utilizador podem ser consultados pelo gestor (<ph name="MANAGER_EMAIL" />) em chrome.com.</translation>
 <translation id="5430931332414098647">Ligação via telemóvel instantânea</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Reiniciar</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Visualizador de atalhos</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Ativado</translation>
 <translation id="592343074608792716">O Chromebook e o telemóvel serão associados automaticamente.</translation>
 <translation id="5947494881799873997">Reverter</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Começar</translation>
 <translation id="6981982820502123353">Acessibilidade</translation>
 <translation id="698231206551913481">Todos os ficheiros e dados locais associados a este utilizador são permanentemente eliminados assim que este utilizador é removido.</translation>
+<translation id="7007100238996585961">Responder noutro dispositivo</translation>
 <translation id="7015766095477679451">Volte à(s) <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Sair da sessão</translation>
 <translation id="7037152028959403492">Premiu o atalho de alto contraste. Pretende ativá-lo?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Ligação de rede alterada</translation>
 <translation id="742594950370306541">A câmara está a ser utilizada.</translation>
 <translation id="743058460480092004">A câmara e o microfone estão a ser utilizados.</translation>
+<translation id="7497767806359279797">Escolher idioma e teclado</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">A rede pode ser monitorizada</translation>
 <translation id="7536035074519304529">Endereço IP: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">O braille e o ChromeVox estão ativados</translation>
 <translation id="7593891976182323525">Pesquisar ou Shift</translation>
 <translation id="7604942372593434070">Acesso à sua atividade de navegação</translation>
+<translation id="7642778300616172920">Ocultar conteúdo sensível</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (proprietário)</translation>
 <translation id="7647488630410863958">Desbloquear o dispositivo para ver as notificações</translation>
 <translation id="7649070708921625228">Ajuda</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">A ligar a <ph name="NETWORK_NAME" />…</translation>
 <translation id="7842569679327885685">Aviso: funcionalidade experimental</translation>
 <translation id="7846634333498149051">Teclado</translation>
+<translation id="7886277072580235377">Quando terminar sessão, a sua sessão de Internet será apagada. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipular as definições relacionadas com privacidade</translation>
 <translation id="7904094684485781019">O gestor desta conta removeu a permissão de início de sessão integrado.</translation>
 <translation id="7933084174919150729">O Assistente Google está disponível apenas no perfil principal.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: a restabelecer ligação...</translation>
 <translation id="8513108775083588393">Rotação automática</translation>
 <translation id="8517041960877371778">O <ph name="DEVICE_TYPE" /> pode não carregar enquanto estiver ligado.</translation>
+<translation id="8592141010104017453">Não mostrar qualquer notificação</translation>
 <translation id="8627191004499078455">Ligado a <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> restante</translation>
 <translation id="8649101189709089199">Selecionar para falar</translation>
@@ -445,7 +456,7 @@
 <translation id="899350903320462459">Desbloqueie o dispositivo como <ph name="LOGIN_ID" /> para realizar a ação de notificação.</translation>
 <translation id="8995603266996330174">Gerido por <ph name="DOMAIN" /></translation>
 <translation id="9029474291399787231">Atualização do Adobe Flash Player disponível</translation>
-<translation id="9056839673611986238">O dispositivo vai ser revertido</translation>
+<translation id="9056839673611986238">O dispositivo voltará à versão anterior</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation>
 <translation id="9080206825613744995">O microfone está a ser utilizado.</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index 8685816..fe03939 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Metodele de introducere a textului sunt configurate de administratorul tău.</translation>
 <translation id="1747827819627189109">Tastatură pe ecran activată</translation>
 <translation id="1761222317188459878">Comută conexiunea la rețea. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Ce este pe ecranul meu?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Asistent (se încarcă...)</translation>
 <translation id="1841545962859478868">Este posibil ca administratorul dispozitivului să monitorizeze următoarele:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Adăugați o conexiune</translation>
 <translation id="2961963223658824723">A apărut o eroare. Încearcă din nou în câteva secunde.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Afișează integral conținutul notificărilor</translation>
 <translation id="2995447421581609334">Afișează dispozitivele de proiecție.</translation>
 <translation id="2996462380875591307">Lupa andocată este activată. Apasă din nou pe Ctrl + tasta de căutare + D pentru a o dezactiva.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> este o sesiune publică gestionată de <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Dispozitive</translation>
 <translation id="4659419629803378708">ChromeVox este activat</translation>
 <translation id="4734965478015604180">Orizontal</translation>
+<translation id="476166673298332917">Administratorul acestui dispozitiv are acces la toate activitățile, inclusiv la parole și comunicații.</translation>
 <translation id="4776917500594043016">Parolă pentru <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">căutați</translation>
 <translation id="4804818685124855865">Deconectează-te</translation>
 <translation id="4849058404725798627">Evidențiază obiectul focalizat de la tastatură</translation>
 <translation id="4872237917498892622">Alt+Căutare sau Shift</translation>
 <translation id="4890187583552566966">Asistentul Google este dezactivat de administrator.</translation>
+<translation id="4893522937062257019">Pe ecranul de blocare</translation>
 <translation id="4895488851634969361">Bateria este încărcată complet.</translation>
 <translation id="490375751687810070">Vertical</translation>
 <translation id="4905614135390995787">Comanda rapidă pentru comutarea modului Contrast ridicat s-a modificat. Folosește <ph name="NEW_SHORTCUT" /> în loc de <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Setări de accesibilitate</translation>
 <translation id="5313326810920013265">Setări Bluetooth</translation>
 <translation id="5331975486040154427">Dispozitiv USB-C (portul din stânga spate)</translation>
+<translation id="5379115545237091094">Prea multe încercări</translation>
 <translation id="5397578532367286026">Datele privind utilizarea și istoricul ale acestui utilizator pot fi examinate de administrator (<ph name="MANAGER_EMAIL" />) pe chrome.com.</translation>
 <translation id="5430931332414098647">Tethering instantaneu</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Reîncepe</translation>
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911533659001334206">Vizualizatorul de comenzi rapide</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Activat</translation>
 <translation id="592343074608792716">Chromebookul și telefonul se vor conecta automat</translation>
 <translation id="5947494881799873997">Reveniți</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Începe</translation>
 <translation id="6981982820502123353">Accesibilitate</translation>
 <translation id="698231206551913481">Toate fișierele și datele locale asociate acestui utilizator vor fi șterse definitiv după eliminarea utilizatorului.</translation>
+<translation id="7007100238996585961">Răspunde pe un alt dispozitiv</translation>
 <translation id="7015766095477679451">Revino la <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Ieșiți din sesiune</translation>
 <translation id="7037152028959403492">Ai accesat comanda rapidă pentru contrast ridicat. Vrei să-l activezi?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Conexiunea la rețea a fost comutată</translation>
 <translation id="742594950370306541">Camera foto este în uz.</translation>
 <translation id="743058460480092004">Camera foto și microfonul sunt în uz.</translation>
+<translation id="7497767806359279797">Alege limba și tastatura</translation>
 <translation id="7510334386202674593">Ctrl + Shift + L</translation>
 <translation id="7526573455193969409">Este posibil ca rețeaua să fie monitorizată</translation>
 <translation id="7536035074519304529">Adresă IP: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Braille și ChromeVox sunt activate</translation>
 <translation id="7593891976182323525">Căutare sau Shift</translation>
 <translation id="7604942372593434070">Accesează activitatea de navigare</translation>
+<translation id="7642778300616172920">Ascunde conținutul sensibil</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (proprietar)</translation>
 <translation id="7647488630410863958">Deblochează dispozitivul pentru a vedea notificările</translation>
 <translation id="7649070708921625228">Ajutor</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Se conectează la <ph name="NETWORK_NAME" />…</translation>
 <translation id="7842569679327885685">Avertisment: funcție experimentală</translation>
 <translation id="7846634333498149051">Tastatură</translation>
+<translation id="7886277072580235377">Sesiunea de internet va fi anulată după ce te deconectezi. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Manipulează setările privind confidențialitatea</translation>
 <translation id="7904094684485781019">Administratorul acestui cont a dezactivat conectarea multiplă.</translation>
 <translation id="7933084174919150729">Asistentul Google este disponibil numai pentru profilul principal.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: se reconectează...</translation>
 <translation id="8513108775083588393">Rotire automată</translation>
 <translation id="8517041960877371778">Este posibil ca <ph name="DEVICE_TYPE" /> să nu se încarce cât timp este pornit.</translation>
+<translation id="8592141010104017453">Nu afișa nicio notificare</translation>
 <translation id="8627191004499078455">Conectat la <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Nivelul bateriei: <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Selectează și ascultă</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index 670a9fc..a460a01 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Способы ввода настраиваются администратором</translation>
 <translation id="1747827819627189109">Экранная клавиатура включена</translation>
 <translation id="1761222317188459878">Изменить настройки сетевого подключения. <ph name="STATE_TEXT" />.</translation>
+<translation id="1812997170047690955">Объекты на экране</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Ассистент (загрузка…)</translation>
 <translation id="1841545962859478868">Администратор устройства может просматривать следующую информацию:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Добавить подключение</translation>
 <translation id="2961963223658824723">Произошла ошибка. Повторите попытку через несколько секунд.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Показывать уведомления полностью</translation>
 <translation id="2995447421581609334">Показать устройства Google Cast</translation>
 <translation id="2996462380875591307">Закрепленная лупа включена. Чтобы отключить ее, нажмите Ctrl + Поиск + D.</translation>
 <translation id="2999742336789313416">Открытый сеанс <ph name="DISPLAY_NAME" /> выполняется в домене <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Устройства</translation>
 <translation id="4659419629803378708">Функция ChromeVox включена</translation>
 <translation id="4734965478015604180">Горизонтальная ориентация</translation>
+<translation id="476166673298332917">Администратору этого устройства доступна информация обо всех действиях, а также пароли и сообщения.</translation>
 <translation id="4776917500594043016">Пароль для адреса электронной почты <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">поиск</translation>
 <translation id="4804818685124855865">Отключиться</translation>
 <translation id="4849058404725798627">Выделять элементы, выбранные с помощью клавиатуры</translation>
 <translation id="4872237917498892622">Alt + Search или Shift</translation>
 <translation id="4890187583552566966">Администратор отключил Google Ассистента</translation>
+<translation id="4893522937062257019">Экран блокировки</translation>
 <translation id="4895488851634969361">Батарея полностью заряжена.</translation>
 <translation id="490375751687810070">Вертикальная ориентация</translation>
 <translation id="4905614135390995787">Изменились быстрые клавиши для управления режимом высокой контрастности. Используйте <ph name="NEW_SHORTCUT" /> вместо <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Настройки специальных возможностей</translation>
 <translation id="5313326810920013265">Настройки Bluetooth</translation>
 <translation id="5331975486040154427">Устройство USB-C (дальний порт слева)</translation>
+<translation id="5379115545237091094">Слишком много попыток</translation>
 <translation id="5397578532367286026">Менеджер (<ph name="MANAGER_EMAIL" />) может просматривать данные об использовании и историю этого профиля на сайте chrome.com.</translation>
 <translation id="5430931332414098647">Мгновенная точка доступа</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Перезапустить</translation>
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911533659001334206">Просмотр ярлыков</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">ВКЛ</translation>
 <translation id="592343074608792716">Chromebook и телефон будут подключены друг к другу автоматически.</translation>
 <translation id="5947494881799873997">Отменить</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Начать</translation>
 <translation id="6981982820502123353">Специальные возможности</translation>
 <translation id="698231206551913481">После удаления пользователя все связанные с ним файлы и локальные данные также будут удалены.</translation>
+<translation id="7007100238996585961">Ассистент отвечает на другом устройстве</translation>
 <translation id="7015766095477679451">Увидимся снова в <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Завершить сеанс</translation>
 <translation id="7037152028959403492">Вы нажали сочетание клавиш для высокой контрастности. Включить ее?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Установлено соединение с другой сетью</translation>
 <translation id="742594950370306541">Камера используется.</translation>
 <translation id="743058460480092004">Камера и микрофон используются.</translation>
+<translation id="7497767806359279797">Выберите язык и клавиатуру</translation>
 <translation id="7510334386202674593">Ctrl + Shift + L</translation>
 <translation id="7526573455193969409">Сеть может отслеживаться</translation>
 <translation id="7536035074519304529">IP-адрес: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Шрифт Брайля и функция ChromeVox включены</translation>
 <translation id="7593891976182323525">Search или Shift</translation>
 <translation id="7604942372593434070">Доступ к данным о посещенных веб-страницах</translation>
+<translation id="7642778300616172920">Скрыть конфиденциальные данные</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (владелец)</translation>
 <translation id="7647488630410863958">Чтобы просмотреть уведомления, разблокируйте устройство</translation>
 <translation id="7649070708921625228">Справка</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Подключение к сети "<ph name="NETWORK_NAME" />"</translation>
 <translation id="7842569679327885685">Внимание! Экспериментальная функция</translation>
 <translation id="7846634333498149051">Клавиатура</translation>
+<translation id="7886277072580235377">После выхода из аккаунта данные о ваших действиях в Интернете будут удалены. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Управление настройками конфиденциальности</translation>
 <translation id="7904094684485781019">Администратор этого аккаунта запретил множественный вход</translation>
 <translation id="7933084174919150729">Google Ассистент доступен только в основном профиле</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: повторное подключение...</translation>
 <translation id="8513108775083588393">Автоповорот</translation>
 <translation id="8517041960877371778">Не удается зарядить устройство <ph name="DEVICE_TYPE" />, пока оно включено.</translation>
+<translation id="8592141010104017453">Не показывать уведомления</translation>
 <translation id="8627191004499078455">Подключено устройство "<ph name="DEVICE_NAME" />"</translation>
 <translation id="8639760480004882931">Батарея заряжена на <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Озвучивание при нажатии</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index b4a075b..af670355 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Načine vnosa konfigurira skrbnik.</translation>
 <translation id="1747827819627189109">Zaslonska tipkovnica omogočena</translation>
 <translation id="1761222317188459878">Preklop omrežne povezave. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Kaj je na zaslonu?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Pomočnik (nalaganje ...)</translation>
 <translation id="1841545962859478868">Skrbnik naprave morda nadzira naslednje:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Dodaj povezavo</translation>
 <translation id="2961963223658824723">Prišlo je do napake. Poskusite znova čez nekaj sekund.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Pokaži vso vsebino obvestil</translation>
 <translation id="2995447421581609334">Prikaz naprav za predvajanje.</translation>
 <translation id="2996462380875591307">Zasidrana lupa je omogočena. Če jo želite izklopiti, znova pritisnite Ctrl + tipko za iskanje + D.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> je javna seja, ki jo upravlja <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Naprave</translation>
 <translation id="4659419629803378708">Omogočen je ChromeVox</translation>
 <translation id="4734965478015604180">Vodoravno</translation>
+<translation id="476166673298332917">Skrbnik te naprave ima dostop do vse dejavnosti, vključno z gesli in komunikacijami.</translation>
 <translation id="4776917500594043016">Geslo za <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Prekini povezavo</translation>
 <translation id="4849058404725798627">Označitev predmeta s fokusom na tipkovnici</translation>
 <translation id="4872237917498892622">Alt + iskanje ali Shift</translation>
 <translation id="4890187583552566966">Skrbnik je onemogočil Pomočnika Google.</translation>
+<translation id="4893522937062257019">Na zaklenjenem zaslonu</translation>
 <translation id="4895488851634969361">Akumulator je poln.</translation>
 <translation id="490375751687810070">Navpično</translation>
 <translation id="4905614135390995787">Bližnjica za preklop na visokokontrastni način se je spremenila. Uporabite <ph name="NEW_SHORTCUT" /> namesto <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Nastavitve funkcij za ljudi s posebnimi potrebami</translation>
 <translation id="5313326810920013265">Nastavitve za Bluetooth</translation>
 <translation id="5331975486040154427">Naprava USB-C (vrata levo zadaj)</translation>
+<translation id="5379115545237091094">Preveč poskusov</translation>
 <translation id="5397578532367286026">Upravitelj (<ph name="MANAGER_EMAIL" />) lahko na chrome.com pregleduje uporabo in zgodovino tega uporabnika.</translation>
 <translation id="5430931332414098647">Takojšnja povezava z internetom prek mobilnega telefona</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Znova zaženi</translation>
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911533659001334206">Pregledovalnik bližnjic</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Vklopljeno</translation>
 <translation id="592343074608792716">Ta Chromebook in telefon se bosta samodejno povezala</translation>
 <translation id="5947494881799873997">Razveljavi</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Začnite</translation>
 <translation id="6981982820502123353">Dostopnost</translation>
 <translation id="698231206551913481">Vse datoteke in lokalni podatki, povezani s tem uporabnikom, bodo trajno izbrisani, ko odstranite uporabnika.</translation>
+<translation id="7007100238996585961">Odgovor bo podan v drugi napravi</translation>
 <translation id="7015766095477679451">Vrnite se ob <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Zapusti sejo</translation>
 <translation id="7037152028959403492">Pritisnili ste bližnjico za visoki kontrast. Ali ga želite vklopiti?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Preklopljena omrežna povezava</translation>
 <translation id="742594950370306541">Kamera je v uporabi.</translation>
 <translation id="743058460480092004">Kamera in mikrofon sta v uporabi.</translation>
+<translation id="7497767806359279797">Izbira jezika in tipkovnice</translation>
 <translation id="7510334386202674593">Ctrl + Shift + L</translation>
 <translation id="7526573455193969409">Omrežje je morda nadzorovano</translation>
 <translation id="7536035074519304529">Naslov IP: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Omogočena sta braillova pisava in ChromeVox</translation>
 <translation id="7593891976182323525">Iskanje ali Shift</translation>
 <translation id="7604942372593434070">Dostop do dejavnosti brskanja</translation>
+<translation id="7642778300616172920">Skrij občutljivo vsebino</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (lastnik)</translation>
 <translation id="7647488630410863958">Če si želite ogledati obvestila, odklenite napravo</translation>
 <translation id="7649070708921625228">Pomoč</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Vzpostavljanje povezave z omrežjem <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Opozorilo: poskusna funkcija</translation>
 <translation id="7846634333498149051">Tipkovnica</translation>
+<translation id="7886277072580235377">Seja interneta bo počiščena, ko se odjavite. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Upravljajte nastavitve zasebnosti</translation>
 <translation id="7904094684485781019">Skrbnik tega računa je onemogočil prijavo z več računi.</translation>
 <translation id="7933084174919150729">Pomočnik Google je na voljo samo za primarni profil.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Vnovično vzpostavljanje povezave ...</translation>
 <translation id="8513108775083588393">Samodejni zasuk</translation>
 <translation id="8517041960877371778">Akumulator naprave <ph name="DEVICE_TYPE" /> se morda ne bo polnil, medtem ko je naprava vklopljena.</translation>
+<translation id="8592141010104017453">Ne prikazuj obvestil</translation>
 <translation id="8627191004499078455">Vzpostavljena povezava z napravo <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Še <ph name="PERCENTAGE" /> %</translation>
 <translation id="8649101189709089199">Izberite in poslušajte</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb
index e5ec0a064..1758d54 100644
--- a/ash/strings/ash_strings_sr.xtb
+++ b/ash/strings/ash_strings_sr.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Методе уноса конфигурише администратор.</translation>
 <translation id="1747827819627189109">Тастатура на екрану је омогућена</translation>
 <translation id="1761222317188459878">Укључите/искључите мрежну везу. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Шта је на екрану?</translation>
 <translation id="1823873187264960516">Етернет: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Помоћник (учитава се...)</translation>
 <translation id="1841545962859478868">Администратор уређаја може да прати следеће:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Додај везу</translation>
 <translation id="2961963223658824723">Нешто није у реду. Пробајте поново за пар секунди.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Приказуј сав садржај обавештења</translation>
 <translation id="2995447421581609334">Прегледајте уређаје за пребацивање.</translation>
 <translation id="2996462380875591307">Монтирана лупа екрана је омогућена. Притисните Ctrl + тастер за претрагу + D поново да бисте је искључили.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> је јавна сесија којом управља <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Уређаји</translation>
 <translation id="4659419629803378708">ChromeVox је омогућен</translation>
 <translation id="4734965478015604180">Хоризонтално</translation>
+<translation id="476166673298332917">Администратор овог уређаја има приступ свим активностима, укључујући лозинке и комуникацију.</translation>
 <translation id="4776917500594043016">Лозинка за <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Прекини везу</translation>
 <translation id="4849058404725798627">Истакни објекат помоћу фокуса тастатуре</translation>
 <translation id="4872237917498892622">Alt + тастер за претрагу или Shift</translation>
 <translation id="4890187583552566966">Администратор је онемогућио Google помоћник.</translation>
+<translation id="4893522937062257019">На закључаном екрану</translation>
 <translation id="4895488851634969361">Батерија је пуна.</translation>
 <translation id="490375751687810070">Вертикално</translation>
 <translation id="4905614135390995787">Пречица за укључивање и искључивање режима високог контраста је промењена. Користите <ph name="NEW_SHORTCUT" /> уместо <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Подешавања приступачности</translation>
 <translation id="5313326810920013265">Подешавања Bluetooth-а</translation>
 <translation id="5331975486040154427">Уређај са USB прикључком типа C (леви задњи порт)</translation>
+<translation id="5379115545237091094">Превише покушаја</translation>
 <translation id="5397578532367286026">Менаџер (<ph name="MANAGER_EMAIL" />) може да прегледа коришћење и историју овог корисника на chrome.com.</translation>
 <translation id="5430931332414098647">Тренутно привезивање</translation>
 <translation id="5431825016875453137">Отворени VPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Покрени поново</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Приказивач пречица</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Укључено</translation>
 <translation id="592343074608792716">Овај Chromebook и телефон ће се аутоматски повезати</translation>
 <translation id="5947494881799873997">Врати</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Започнимо</translation>
 <translation id="6981982820502123353">Приступачност</translation>
 <translation id="698231206551913481">Све датотеке и локални подаци повезани са овим корисником ће бити трајно избрисани када уклоните овог корисника.</translation>
+<translation id="7007100238996585961">Одговор се даје на другом уређају</translation>
 <translation id="7015766095477679451">Вратите се у <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Изађи из сесије</translation>
 <translation id="7037152028959403492">Притиснули сте пречицу за високи контраст. Желите ли да је укључите?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Мрежна веза је промењена</translation>
 <translation id="742594950370306541">Камера се користи.</translation>
 <translation id="743058460480092004">Камера и микрофон се користе.</translation>
+<translation id="7497767806359279797">Одаберите језик и тастатуру</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Мрежа се можда надгледа</translation>
 <translation id="7536035074519304529">IP адреса: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Брајева азбука и ChromeVox су омогућени</translation>
 <translation id="7593891976182323525">Тастер за претрагу или Shift</translation>
 <translation id="7604942372593434070">Приступите активностима прегледања</translation>
+<translation id="7642778300616172920">Сакриј осетљив садржај</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (власник)</translation>
 <translation id="7647488630410863958">Откључајте уређај да бисте прегледали обавештења</translation>
 <translation id="7649070708921625228">Помоћ</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Повезујете се са мрежом <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Упозорење: Експериментална функција</translation>
 <translation id="7846634333498149051">Тастатура</translation>
+<translation id="7886277072580235377">Интернет сесија ће бити обрисана када се одјавите. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Управљање подешавањима у вези са приватношћу</translation>
 <translation id="7904094684485781019">Администратор за овај налог је забранио вишеструко пријављивање.</translation>
 <translation id="7933084174919150729">Google помоћник је доступан само за примарни профил.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Поново се повезујете...</translation>
 <translation id="8513108775083588393">Аутоматско ротирање</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> се можда неће пунити док је укључен.</translation>
+<translation id="8592141010104017453">Не приказуј никаква обавештења</translation>
 <translation id="8627191004499078455">Повезани сте са уређајем <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Преостало је <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Изаберите за говор</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index c2e9a5a..bde17e5 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Inmatningsmetoderna konfigureras av administratören.</translation>
 <translation id="1747827819627189109">Skärmen på tangentbordet har aktiverats</translation>
 <translation id="1761222317188459878">Aktivera och inaktivera nätverksanslutning. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Vad visas på skärmen?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistent (läses in …)</translation>
 <translation id="1841545962859478868">Enhetsadministratören kan övervaka följande:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Lägg till anslutning</translation>
 <translation id="2961963223658824723">Ett fel har uppstått. Försök igen om några sekunder.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Visa allt aviseringsinnehåll</translation>
 <translation id="2995447421581609334">Visa cast-enheter</translation>
 <translation id="2996462380875591307">Dockad skärmförstoring har aktiverats. Tryck på Ctrl + Sök + D igen om du vill inaktivera funktionen.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> är en offentlig session som hanteras av <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Enheter</translation>
 <translation id="4659419629803378708">ChromeVox har aktiverats</translation>
 <translation id="4734965478015604180">Horisontell</translation>
+<translation id="476166673298332917">Enhetens administratör har tillgång till all aktivitet, inklusive lösenord och kommunikation.</translation>
 <translation id="4776917500594043016">Lösenord för <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">sök</translation>
 <translation id="4804818685124855865">Koppla från</translation>
 <translation id="4849058404725798627">Markera objekt med tangentbordsfokus</translation>
 <translation id="4872237917498892622">Alt + Sök eller Skift</translation>
 <translation id="4890187583552566966">Administratören har inaktiverat Google Assistent.</translation>
+<translation id="4893522937062257019">På låsskärmen</translation>
 <translation id="4895488851634969361">Batteriet är fullt.</translation>
 <translation id="490375751687810070">Vertikal</translation>
 <translation id="4905614135390995787">Kortkommandot för att aktivera och inaktivera högkontrastläget har ändrats. Använd <ph name="NEW_SHORTCUT" /> i stället för <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Inställningar för tillgänglighet</translation>
 <translation id="5313326810920013265">Bluetooth-inställningar</translation>
 <translation id="5331975486040154427">USB-C-enhet (bakre porten på vänster sida)</translation>
+<translation id="5379115545237091094">För många försök</translation>
 <translation id="5397578532367286026">Användning och historik för den här användaren kan granskas av den ansvarige (<ph name="MANAGER_EMAIL" />) på chrome.com.</translation>
 <translation id="5430931332414098647">Direktinternetdelning</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Starta om</translation>
 <translation id="5901316534475909376">Skift+Escape</translation>
 <translation id="5911533659001334206">Kortkommandovisare</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">På</translation>
 <translation id="592343074608792716">Denna Chromebook ansluts automatiskt till din mobil</translation>
 <translation id="5947494881799873997">Återgå</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Komma igång</translation>
 <translation id="6981982820502123353">Tillgänglighet</translation>
 <translation id="698231206551913481">Alla filer inklusive lokal data som tillhör den här användaren tas bort permanent när användaren tas bort.</translation>
+<translation id="7007100238996585961">Svarar på en annan enhet</translation>
 <translation id="7015766095477679451">Prova igen klockan <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Avsluta session</translation>
 <translation id="7037152028959403492">Du tryckte på kortkommandot för högkontrastläge. Vill du aktivera funktionen?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Bytte nätverksanslutning</translation>
 <translation id="742594950370306541">Kameran används.</translation>
 <translation id="743058460480092004">Kameran och mikrofonen används.</translation>
+<translation id="7497767806359279797">Välj språk och tangentbord</translation>
 <translation id="7510334386202674593">Ctrl+Skift+L</translation>
 <translation id="7526573455193969409">Nätverket kan vara övervakat</translation>
 <translation id="7536035074519304529">IP-adress: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Punktskrift och ChromeVox har aktiverats</translation>
 <translation id="7593891976182323525">Sök eller Skift</translation>
 <translation id="7604942372593434070">Få tillgång till webbaktiviteten</translation>
+<translation id="7642778300616172920">Dölj känsligt innehåll</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ägare)</translation>
 <translation id="7647488630410863958">Lås upp enheten om du vill visa aviseringarna</translation>
 <translation id="7649070708921625228">Hjälp</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Ansluter till <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Varning: Experimentfunktion</translation>
 <translation id="7846634333498149051">Tangentbord</translation>
+<translation id="7886277072580235377">Internetsessionen rensas när du loggar ut. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Ändra sekretessrelaterade inställningar</translation>
 <translation id="7904094684485781019">Administratören för kontot tillåter inte multiinloggning.</translation>
 <translation id="7933084174919150729">Endast den primära profilen har tillgång till Google Assistent.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: återansluter …</translation>
 <translation id="8513108775083588393">Rotera automatiskt</translation>
 <translation id="8517041960877371778">Din <ph name="DEVICE_TYPE" /> laddas eventuellt inte så länge den är på.</translation>
+<translation id="8592141010104017453">Visa inga aviseringar alls</translation>
 <translation id="8627191004499078455">Ansluten till <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> återstår</translation>
 <translation id="8649101189709089199">Textuppläsning</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index 4e3761d..6ed2a2d0 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Mbinu za kuingiza data zimewekwa na msimamizi wako.</translation>
 <translation id="1747827819627189109">Kibodi ya skrini imewashwa</translation>
 <translation id="1761222317188459878">Washa au uzime muunganisho wa mtandao. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Kuna nini kwenye skrini yangu?</translation>
 <translation id="1823873187264960516">Ethaneti: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Mratibu (inapakia...)</translation>
 <translation id="1841545962859478868">Msimamizi wa kifaa anaweza kufuatilia mambo yafuatayo:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Ongeza muunganisho</translation>
 <translation id="2961963223658824723">Hitilafu fulani imetokea. Jaribu tena baada ya sekunde chache.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Onyesha arifa za maudhui yote</translation>
 <translation id="2995447421581609334">Onyesha vifaa vinavyotuma maudhui.</translation>
 <translation id="2996462380875591307">Umewasha Kikuzaji Kilichoambatishwa. Bonyeza Ctrl+Search+D tena ili ukizime.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> ni kipindi cha kila mtu kinachodhibitiwa na <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Vifaa</translation>
 <translation id="4659419629803378708">ChromeVox imewashwa</translation>
 <translation id="4734965478015604180">Kimlalo</translation>
+<translation id="476166673298332917">Msimamizi wa kifaa hiki ana idhini ya kufikia shughuli zote, ikiwemo manenosiri na mawasiliano.</translation>
 <translation id="4776917500594043016">Nenosiri la <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">tafuta</translation>
 <translation id="4804818685124855865">Tenganisha</translation>
 <translation id="4849058404725798627">Angazia kipengee kilicholengwa kwa kibodi</translation>
 <translation id="4872237917498892622">Alt + Utafutaji au Hama</translation>
 <translation id="4890187583552566966">Programu ya Mratibu wa Google imezimwa na msimamizi wako.</translation>
+<translation id="4893522937062257019">Kwenye skrini iliyofungwa</translation>
 <translation id="4895488851634969361">Betri imejaa.</translation>
 <translation id="490375751687810070">Wima</translation>
 <translation id="4905614135390995787">Njia ya mkato ya kugeuza Hali ya Utofautishaji wa Juu imebadilika. Tafadhali tumia <ph name="NEW_SHORTCUT" /> badala ya <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Mipangilio ya ufikiaji</translation>
 <translation id="5313326810920013265">Mipangilio ya Bluetooth</translation>
 <translation id="5331975486040154427">Kifaa cha USB-C (mlango wa upande wa kushoto nyuma)</translation>
+<translation id="5379115545237091094">Umejaribu mara nyingi mno</translation>
 <translation id="5397578532367286026">Matumizi na historia ya mtumiaji huyu yanaweza kukaguliwa na msimamizi ( <ph name="MANAGER_EMAIL" /> ) kwenye chrome.com.</translation>
 <translation id="5430931332414098647">Mtandao wa Kusambazwa Papo Hapo</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Zzima na uwashe</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Kitazamaji cha njia ya mkato</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Imewashwa</translation>
 <translation id="592343074608792716">Chromebook hii na simu yako zitaunganishwa kiotomatiki</translation>
 <translation id="5947494881799873997">Rejesha</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Anza</translation>
 <translation id="6981982820502123353">Upatikanaji</translation>
 <translation id="698231206551913481">Faili na data zote zilizo kwenye kifaa zinazohusishwa na mtumiaji zitafutwa kabisa pindi tu mtumiaji huyu atakapoondolewa.</translation>
+<translation id="7007100238996585961">Hoja inajibiwa kwa kutumia kifaa kingine</translation>
 <translation id="7015766095477679451">Rejea saa <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Toka kwenye kipindi</translation>
 <translation id="7037152028959403492">Umebofya njia ya mkato ya utofautishaji wa juu. Ungependa kuuwasha?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">Imebadilisha muunganisho wa mtandao</translation>
 <translation id="742594950370306541">Kamera inatumika.</translation>
 <translation id="743058460480092004">Kamera na maikrofoni zinatumiwa.</translation>
+<translation id="7497767806359279797">Chagua lugha na kibodi</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Huenda mtandao unafuatiliwa</translation>
 <translation id="7536035074519304529">Anwani ya IP: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Breli na ChromeVox zimewashwa</translation>
 <translation id="7593891976182323525">Utafutaji au Hama</translation>
 <translation id="7604942372593434070">Fikia shughuli zako za kuvinjari</translation>
+<translation id="7642778300616172920">Ficha maudhui nyeti</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (mmiliki)</translation>
 <translation id="7647488630410863958">Fungua kifaa ili uone arifa zako</translation>
 <translation id="7649070708921625228">Usaidizi</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Inaunganisha kwenye <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Ilani: Kipengele cha majaribio</translation>
 <translation id="7846634333498149051">Kibodi</translation>
+<translation id="7886277072580235377">Kipindi chako cha intaneti kitafutwa ukiondoka kwenye akaunti. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Weka utakavyo mipangilio husika ya faragha</translation>
 <translation id="7904094684485781019">Msimamizi wa akaunti hii ameondoa uwezo wa kuingia katika akaunti nyingi kwa wakati mmoja</translation>
 <translation id="7933084174919150729">Programu ya Mratibu wa Google inapatikana kwenye wasifu wa msingi pekee.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Inaunganisha upya...</translation>
 <translation id="8513108775083588393">Zungusha kiotomatiki</translation>
 <translation id="8517041960877371778">Huenda kifaa chako cha <ph name="DEVICE_TYPE" /> kisichaji kikiwa kimewashwa.</translation>
+<translation id="8592141010104017453">Usionyeshe arifa kabisa</translation>
 <translation id="8627191004499078455">Imeunganishwa kwenye <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Imebaki <ph name="PERCENTAGE" />%</translation>
 <translation id="8649101189709089199">Chagua ili Izungumze</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index e7111aaa..1bc54390 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">உள்ளீட்டு முறைகளை உங்கள் நிர்வாகி உள்ளமைத்துள்ளார்.</translation>
 <translation id="1747827819627189109">ஆன்ஸ்க்ரீன் விசைப்பலகை இயக்கப்பட்டது</translation>
 <translation id="1761222317188459878">நெட்வொர்க் இணைப்பை நிலைமாற்றும். <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">எனது திரையில் இருப்பவையா?</translation>
 <translation id="1823873187264960516">ஈதர்நெட்: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">அசிஸ்டண்ட் (ஏற்றுகிறது...)</translation>
 <translation id="1841545962859478868">பின்வருவனவற்றைச் சாதன நிர்வாகி கண்காணிக்கக்கூடும்:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">இணைப்பைச் சேர்</translation>
 <translation id="2961963223658824723">ஏதோ தவறாகிவிட்டது. சில வினாடிகள் கழித்து மீண்டும் முயலவும்.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">எல்லா அறிவிப்பு விவரத்தையும் காட்டு</translation>
 <translation id="2995447421581609334">அனுப்பும் சாதனங்களைக் காண்பிக்கும்.</translation>
 <translation id="2996462380875591307">டாக் செய்யப்பட்ட பெரிதாக்கி இயக்கப்பட்டது. அதை முடக்க, Ctrl+Search+Dயை மீண்டும் அழுத்தவும்.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> ஆனது <ph name="DOMAIN" /> ஆல் நிர்வகிக்கப்படும் பொது அமர்வாகும்</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">சாதனங்கள்</translation>
 <translation id="4659419629803378708">ChromeVox இயக்கப்பட்டது</translation>
 <translation id="4734965478015604180">கிடைமட்டம்</translation>
+<translation id="476166673298332917">இந்தச் சாதனத்தின் நிர்வாகிக்கு கடவுச்சொற்கள், தகவல்தொடர்புகள் உட்பட அனைத்துச் செயல்பாடுகளுக்குமான அணுகல் உள்ளது.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> க்கான கடவுச்சொல்</translation>
 <translation id="479989351350248267">Search</translation>
 <translation id="4804818685124855865">தொடர்பைத் துண்டி</translation>
 <translation id="4849058404725798627">விசைப்பலகை ஃபோகஸ் மூலம் ஆப்ஜெக்ட்டைத் தனிப்படுத்து</translation>
 <translation id="4872237917498892622">Alt+Search அல்லது Shift</translation>
 <translation id="4890187583552566966">Google அசிஸ்டண்ட்டை உங்கள் நிர்வாகி முடக்கியுள்ளார்.</translation>
+<translation id="4893522937062257019">திரை பூட்டியிருக்கும்போது</translation>
 <translation id="4895488851634969361">பேட்டரி நிரம்பியது.</translation>
 <translation id="490375751687810070">செங்குத்து</translation>
 <translation id="4905614135390995787">அதிக ஒளி மாறுபாட்டுப் பயன்முறையை மாற்றும் குறுக்குவழி மாற்றப்பட்டது. <ph name="OLD_SHORTCUT" />க்குப் பதிலாக, <ph name="NEW_SHORTCUT" />ஐப் பயன்படுத்தவும்.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">அணுகல்தன்மை அமைப்புகள்</translation>
 <translation id="5313326810920013265">புளூடூத் அமைப்புகள்</translation>
 <translation id="5331975486040154427">USB-C சாதனம் (இடது பக்கம் பின்னே இருக்கும் போர்ட்)</translation>
+<translation id="5379115545237091094">அதிகபட்சம் முயன்றுவிட்டீர்கள்</translation>
 <translation id="5397578532367286026">இந்தப் பயனரின் பயன்பாடு மற்றும் வரலாறு chrome.com இன் நிர்வாகியால் (<ph name="MANAGER_EMAIL" />) மதிப்பாய்வு செய்யப்படும்.</translation>
 <translation id="5430931332414098647">உடனடி இணைப்பு முறை</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">மறுதொடக்கம்</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Shortcut viewer</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">இயக்கு</translation>
 <translation id="592343074608792716">இந்த Chromebookகும் உங்கள் ஃபோனும் தானாக இணைக்கப்படும்</translation>
 <translation id="5947494881799873997">மாற்றியமை</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">தொடங்குக</translation>
 <translation id="6981982820502123353">அணுகல் தன்மை</translation>
 <translation id="698231206551913481">இந்தப் பயனர் அகற்றப்பட்டதும், பயனருடன் தொடர்புடைய எல்லா கோப்புகளும் அகத் தரவும் நிரந்தரமாக நீக்கப்படும்.</translation>
+<translation id="7007100238996585961">மற்றொரு சாதனத்தில் பதிலளிக்கப்படுகிறது</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" />க்கு மீண்டும் சாதனத்தைப் பயன்படுத்தலாம்.</translation>
 <translation id="7029814467594812963">அமர்விலிருந்து வெளியேறவும்</translation>
 <translation id="7037152028959403492">உயர் ஒளி மாறுபாட்டின் ஷார்ட்கட்டை அழுத்தியுள்ளீர்கள். அதை இயக்க விரும்புகிறீர்களா?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">நெட்வொர்க் இணைப்பு மாற்றப்பட்டது</translation>
 <translation id="742594950370306541">கேமரா பயன்பாட்டில் உள்ளது.</translation>
 <translation id="743058460480092004">கேமராவும் மைக்ரோஃபோனும் பயன்பாட்டில் உள்ளன.</translation>
+<translation id="7497767806359279797">மொழியையும் விசைப்பலகையையும் தேர்வுசெய்யவும்</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">நெட்வொர்க் கண்காணிக்கப்படலாம்</translation>
 <translation id="7536035074519304529">IP முகவரி: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">பிரெய்லி மற்றும் ChromeVox இயக்கப்பட்டன</translation>
 <translation id="7593891976182323525">Search அல்லது Shift</translation>
 <translation id="7604942372593434070">உங்கள் உலாவல் செயல்பாட்டை அணுகலாம்</translation>
+<translation id="7642778300616172920">பாதுகாக்க வேண்டிய உள்ளடக்கத்தை மறை</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (உரிமையாளர்)</translation>
 <translation id="7647488630410863958">அறிவிப்புகளைப் பார்க்க, சாதனத்தைத் திறக்கவும்</translation>
 <translation id="7649070708921625228">உதவி</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265"><ph name="NETWORK_NAME" /> உடன் இணைக்கிறது</translation>
 <translation id="7842569679327885685">எச்சரிக்கை: சோதனை அம்சம்</translation>
 <translation id="7846634333498149051">விசைப்பலகை</translation>
+<translation id="7886277072580235377">வெளியேறும்போது உங்கள் இணைய அமர்வு அழிக்கப்படும். <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">தனியுரிமைத் தொடர்பான அமைப்புகளை கையாளலாம்</translation>
 <translation id="7904094684485781019">இந்தக் கணக்கிற்கான நிர்வாகி பல உள்நுழைவுகளை அனுமதிக்கவில்லை.</translation>
 <translation id="7933084174919150729">முதன்மைச் சுயவிவரத்திற்கு மட்டுமே Google அசிஸ்டண்ட்டைப் பயன்படுத்த முடியும்.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: மீண்டும் இணைக்கிறது...</translation>
 <translation id="8513108775083588393">தானாகச் சுழற்று</translation>
 <translation id="8517041960877371778">இயக்கப்பட்டிருக்கும் போது உங்கள் <ph name="DEVICE_TYPE" /> இல் சார்ஜ் ஏறாது.</translation>
+<translation id="8592141010104017453">ஒருபோதும் அறிவிப்புகளைக் காட்டாதே</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" /> உடன் இணைக்கப்பட்டுள்ளது</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> மீதமுள்ளது</translation>
 <translation id="8649101189709089199">பேசும் திரை</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index 70581a7..b8d039f1 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -25,6 +25,7 @@
 <translation id="1346748346194534595">కుడి</translation>
 <translation id="1351937230027495976">మెనూను కుదించు</translation>
 <translation id="1383876407941801731">శోధించు</translation>
+<translation id="1419738280318246476">నోటిఫికేషన్ చర్యను నిర్వహించడానికి పరికరాన్ని అన్‌లాక్ చేయండి</translation>
 <translation id="1467432559032391204">ఎడమ</translation>
 <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation>
 <translation id="1510238584712386396">లాంచర్</translation>
@@ -223,6 +224,7 @@
 <translation id="4918086044614829423">ఆమోదించు</translation>
 <translation id="4924411785043111640">మళ్లీ ప్రారంభించి, రీసెట్ చేయండి</translation>
 <translation id="4961318399572185831">స్క్రీన్ ప్రసారం చేయండి</translation>
+<translation id="5083553833479578423">మరిన్ని Assistant ఫీచర్‌లను అన్‌లాక్ చేయండి.</translation>
 <translation id="5136175204352732067">వేరే కీబోర్డ్ కనెక్ట్ చేయబడింది</translation>
 <translation id="5168181903108465623">Cast పరికరాలు అందుబాటులో ఉన్నాయి</translation>
 <translation id="5207949376430453814">వచన కర్సర్ గుర్తును హైలైట్ చేయి</translation>
@@ -294,6 +296,7 @@
 <translation id="6376931439017688372">బ్లూటూత్ ఆన్ చేయబడింది</translation>
 <translation id="639644700271529076">CAPS LOCK ఆపివేయబడింది</translation>
 <translation id="6406704438230478924">altgr</translation>
+<translation id="642644398083277086">అన్ని నోటిఫికేషన్‌లను క్లియర్ చేయండి</translation>
 <translation id="643147933154517414">పూర్తయింది</translation>
 <translation id="6445835306623867477"><ph name="RECEIVER_NAME" />లో <ph name="ROUTE_TITLE" /></translation>
 <translation id="6452181791372256707">తిరస్కరించు</translation>
@@ -394,9 +397,11 @@
 <translation id="8152119955266188852">పూర్తి స్క్రీన్‌ మాగ్నిఫైయర్‌కు సంబంధించిన షార్ట్‌కట్‌ను మీరు నొక్కారు. మీరు దీనిని ఆన్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="8190698733819146287">భాషలను అనుకూలీకరించి, ఇన్‌పుట్ చెయ్యి...</translation>
 <translation id="8191230140820435481">మీ అనువర్తనాలను, పొడిగింపులను మరియు థీమ్‌లను నిర్వహించండి</translation>
+<translation id="8192202700944119416">నోటిఫికేషన్‌లు దాచబడ్డాయి.</translation>
 <translation id="8261506727792406068">తొలగించు</translation>
 <translation id="8297006494302853456">బలహీనం</translation>
 <translation id="8308637677604853869">మునుపటి మెను</translation>
+<translation id="8341451174107936385"><ph name="UNLOCK_MORE_FEATURES" />  <ph name="GET_STARTED" /></translation>
 <translation id="8351131234907093545">గమనికను సృష్టించండి</translation>
 <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> కోసం ఎంపికల మెను</translation>
 <translation id="8406981827175133772">పూర్తి స్క్రీన్ మాగ్నిఫైయర్</translation>
@@ -438,6 +443,7 @@
 <translation id="8938800817013097409">USB-C పరికరం (వెనుక భాగంలో కుడి పోర్ట్)</translation>
 <translation id="8940956008527784070">బ్యాటరీ తక్కువగా ఉంది (<ph name="PERCENTAGE" />%)</translation>
 <translation id="8984179138335769204">శీఘ్ర ప్రారంభం</translation>
+<translation id="899350903320462459">నోటిఫికేషన్ చర్యను నిర్వహించడానికి <ph name="LOGIN_ID" />గా పరికరాన్ని అన్‌లాక్ చేయండి</translation>
 <translation id="8995603266996330174"><ph name="DOMAIN" /> ద్వారా నిర్వహించబడుతోంది</translation>
 <translation id="9029474291399787231">Adobe Flash Player అప్‌డేట్ అందుబాటులో ఉంది</translation>
 <translation id="9056839673611986238">పరికరం ఉపసంహరించబడుతుంది</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index 72ce4ff..f877500 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">ผู้ดูแลระบบเป็นคนกำหนดค่าวิธีการป้อนข้อมูล</translation>
 <translation id="1747827819627189109">เปิดใช้แป้นพิมพ์บนหน้าจออยู่</translation>
 <translation id="1761222317188459878">เปิด/ปิดการเชื่อมต่อเครือข่าย <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">รายการที่อยู่ในหน้าจอของฉัน</translation>
 <translation id="1823873187264960516">อีเทอร์เน็ต: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Assistant (กำลังโหลด...)</translation>
 <translation id="1841545962859478868">ผู้ดูแลระบบของอุปกรณ์อาจตรวจสอบรายการต่อไปนี้</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">เพิ่มการเชื่อมต่อ</translation>
 <translation id="2961963223658824723">เกิดข้อผิดพลาด โปรดลองอีกครั้งในอีกสักครู่</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">แสดงเนื้อหาการแจ้งเตือนทั้งหมด</translation>
 <translation id="2995447421581609334">แสดงอุปกรณ์แคสต์</translation>
 <translation id="2996462380875591307">เปิดใช้แว่นขยายหน้าจอบางส่วนแล้ว กด Ctrl+Search+D อีกครั้งเพื่อสลับเป็นปิด</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> เป็นเซสชันสาธารณะซึ่งจัดการโดย <ph name="DOMAIN" /></translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">อุปกรณ์</translation>
 <translation id="4659419629803378708">เปิดใช้ ChromeVox แล้ว</translation>
 <translation id="4734965478015604180">แนวนอน</translation>
+<translation id="476166673298332917">ผู้ดูแลระบบของอุปกรณ์นี้มีสิทธิ์เข้าถึงกิจกรรมทั้งหมด ซึ่งรวมถึงรหัสผ่านและการสื่อสาร</translation>
 <translation id="4776917500594043016">รหัสผ่านของ <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">ค้นหา</translation>
 <translation id="4804818685124855865">ตัดการเชื่อมต่อ</translation>
 <translation id="4849058404725798627">ไฮไลต์วัตถุที่มีโฟกัสแป้นพิมพ์</translation>
 <translation id="4872237917498892622">Alt+ค้นหา หรือ Shift</translation>
 <translation id="4890187583552566966">ผู้ดูแลระบบปิดใช้ Google Assistant</translation>
+<translation id="4893522937062257019">ในหน้าจอล็อก</translation>
 <translation id="4895488851634969361">แบตเตอรี่เต็ม</translation>
 <translation id="490375751687810070">แนวตั้ง</translation>
 <translation id="4905614135390995787">มีการเปลี่ยนแปลงแป้นพิมพ์ลัดสำหรับสลับโหมดคอนทราสต์สูง โปรดใช้ <ph name="NEW_SHORTCUT" /> แทน <ph name="OLD_SHORTCUT" /></translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">การตั้งค่าสำหรับการเข้าถึง</translation>
 <translation id="5313326810920013265">การตั้งค่าบลูทูธ</translation>
 <translation id="5331975486040154427">อุปกรณ์ USB-C (พอร์ตด้านหลังซ้าย)</translation>
+<translation id="5379115545237091094">ลองหลายครั้งเกินไป</translation>
 <translation id="5397578532367286026">การใช้งานและประวัติของผู้ใช้รายนี้อาจถูกตรวจสอบโดยผู้จัดการ (<ph name="MANAGER_EMAIL" />) บน chrome.com</translation>
 <translation id="5430931332414098647">การเชื่อมต่ออินเทอร์เน็ตผ่านมือถือแบบด่วน</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">ปิดแล้วเปิดอีกครั้ง</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">การดูแป้นพิมพ์ลัด</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">เปิด</translation>
 <translation id="592343074608792716">Chromebook เครื่องนี้และโทรศัพท์จะเชื่อมต่อกันโดยอัตโนมัติ</translation>
 <translation id="5947494881799873997">ย้อนกลับ</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">เริ่มต้นใช้งาน</translation>
 <translation id="6981982820502123353">การเข้าถึง</translation>
 <translation id="698231206551913481">ระบบจะลบไฟล์ทั้งหมดและข้อมูลในเครื่องที่เชื่อมโยงกับผู้ใช้รายนี้ออกอย่างถาวรหลังจากนำผู้ใช้รายนี้ออกแล้ว</translation>
+<translation id="7007100238996585961">กำลังรับสายในอุปกรณ์อื่น</translation>
 <translation id="7015766095477679451">กลับมาเมื่อถึงเวลา <ph name="COME_BACK_TIME" /></translation>
 <translation id="7029814467594812963">ออกจากเซสชัน</translation>
 <translation id="7037152028959403492">คุณกดแป้นพิมพ์ลัดสำหรับคอนทราสต์สูง จะเปิดคอนทราสต์สูงไหม</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">เปลี่ยนการเชื่อมต่อเครือข่ายแล้ว</translation>
 <translation id="742594950370306541">ใช้กล้องถ่ายรูปอยู่</translation>
 <translation id="743058460480092004">ใช้กล้องถ่ายรูปและไมโครโฟนอยู่</translation>
+<translation id="7497767806359279797">เลือกภาษาและแป้นพิมพ์</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">อาจมีการตรวจสอบเครือข่าย</translation>
 <translation id="7536035074519304529">ที่อยู่ IP: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">เปิดใช้เบรลล์และ ChromeVox แล้ว</translation>
 <translation id="7593891976182323525">ค้นหาหรือ Shift</translation>
 <translation id="7604942372593434070">เข้าถึงกิจกรรมการท่องเว็บของคุณ</translation>
+<translation id="7642778300616172920">ซ่อนเนื้อหาที่ละเอียดอ่อน</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (เจ้าของ)</translation>
 <translation id="7647488630410863958">ปลดล็อกอุปกรณ์เพื่อดูการแจ้งเตือน</translation>
 <translation id="7649070708921625228">ช่วยเหลือ</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">กำลังเชื่อมต่อ <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">คำเตือน: ฟีเจอร์ทดลอง</translation>
 <translation id="7846634333498149051">แป้นพิมพ์</translation>
+<translation id="7886277072580235377">ระบบจะล้างเซสชันอินเทอร์เน็ตของคุณเมื่อออกจากระบบ <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">จัดการการตั้งค่าที่เกี่ยวข้องกับความเป็นส่วนตัว</translation>
 <translation id="7904094684485781019">ผู้ดูแลระบบของบัญชีนี้ไม่อนุญาตการลงชื่อเข้าสู่ระบบพร้อมกันหลายบัญชี</translation>
 <translation id="7933084174919150729">Google Assistant ใช้งานได้กับโปรไฟล์หลักเท่านั้น</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: กำลังเชื่อมต่อใหม่...</translation>
 <translation id="8513108775083588393">หมุนอัตโนมัติ</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> ของคุณอาจไม่ชาร์จเมื่อเครื่องเปิดอยู่</translation>
+<translation id="8592141010104017453">ไม่ต้องแสดงการแจ้งเตือนใดๆ</translation>
 <translation id="8627191004499078455">เชื่อมต่อ<ph name="DEVICE_NAME" />แล้ว</translation>
 <translation id="8639760480004882931">เหลือ <ph name="PERCENTAGE" />%</translation>
 <translation id="8649101189709089199">เลือกเพื่อให้อ่าน</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index 66a370e2..506cdfd4 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Giriş yöntemleri, yöneticiniz tarafından yapılandırılır.</translation>
 <translation id="1747827819627189109">Dokunmatik klavye etkin</translation>
 <translation id="1761222317188459878">Ağ bağlantısını aç/kapat. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Ekranımda ne var?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Asistan (yükleniyor...)</translation>
 <translation id="1841545962859478868">Cihaz yöneticisi aşağıdakileri izleyebilir:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Bağlantı ekle</translation>
 <translation id="2961963223658824723">Bir sorun oluştu. Birkaç saniye sonra tekrar deneyin.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Bildirim içeriğinin tamamını göster</translation>
 <translation id="2995447421581609334">Yayın cihazlarını göster.</translation>
 <translation id="2996462380875591307">Yerleştirilmiş Büyüteç etkinleştirildi. Kapatmak için tekrar Ctrl+Arama+H tuşlarına basın.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" />, <ph name="DOMAIN" /> tarafından yönetilen herkese açık bir oturumdur</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Cihazlar</translation>
 <translation id="4659419629803378708">ChromeVox etkinleştirildi</translation>
 <translation id="4734965478015604180">Yatay</translation>
+<translation id="476166673298332917">Bu cihazın yöneticisinin, şifreler ve iletişimler dahil olmak üzere tüm etkinliklere erişimi var.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> için şifre</translation>
 <translation id="479989351350248267">ara</translation>
 <translation id="4804818685124855865">Bağlantıyı kes</translation>
 <translation id="4849058404725798627">Klavye odağının olduğu nesneyi vurgula</translation>
 <translation id="4872237917498892622">Alt+Arama veya Üst Karakter</translation>
 <translation id="4890187583552566966">Google Asistan, yöneticiniz tarafından devre dışı bırakıldı.</translation>
+<translation id="4893522937062257019">Kilit ekranında</translation>
 <translation id="4895488851634969361">Pil dolu.</translation>
 <translation id="490375751687810070">Dikey</translation>
 <translation id="4905614135390995787">Yüksek Kontrast Modunu açma/kapatma kısayolu değişti. Lütfen <ph name="OLD_SHORTCUT" /> yerine <ph name="NEW_SHORTCUT" /> tuşlarını kullanın.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Erişilebilirlik ayarları</translation>
 <translation id="5313326810920013265">Bluetooth ayarları</translation>
 <translation id="5331975486040154427">USB-C cihaz (sol arka bağlantı noktası)</translation>
+<translation id="5379115545237091094">Çok fazla deneme yapıldı</translation>
 <translation id="5397578532367286026">Bu kullanıcıyla ilgili kullanım ve geçmiş bilgileri, yönetici (<ph name="MANAGER_EMAIL" />) tarafından chrome.com adresinden incelenebilir.</translation>
 <translation id="5430931332414098647">Anında Tethering</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Yeniden başlat</translation>
 <translation id="5901316534475909376">Üst Karakter+Esc</translation>
 <translation id="5911533659001334206">Kısayol görüntüleyici</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Açık</translation>
 <translation id="592343074608792716">Bu Chromebook ve telefonunuz otomatik olarak bağlanacaktır</translation>
 <translation id="5947494881799873997">Geri döndür</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Başlarken</translation>
 <translation id="6981982820502123353">Erişilebilirlik</translation>
 <translation id="698231206551913481">Bu kullanıcıyla ilişkilendirilen tüm dosyalar ve yerel veriler, bu kullanıcı kaldırıldıktan sonra kalıcı olarak silinir.</translation>
+<translation id="7007100238996585961">Başka bir cihazda yanıtlama</translation>
 <translation id="7015766095477679451">Saat <ph name="COME_BACK_TIME" /> olduğunda geri gelin.</translation>
 <translation id="7029814467594812963">Oturumdan çık</translation>
 <translation id="7037152028959403492">Yüksek kontrast kısayoluna bastınız. Bu özelliği açmak istiyor musunuz?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">Ağ bağlantısı değiştirildi</translation>
 <translation id="742594950370306541">Kamera kullanımda.</translation>
 <translation id="743058460480092004">Kamera ve mikrofon kullanımda.</translation>
+<translation id="7497767806359279797">Dil ve klavye seçin</translation>
 <translation id="7510334386202674593">Ctrl + Üst Karakter + L</translation>
 <translation id="7526573455193969409">Ağ trafiği izleniyor olabilir</translation>
 <translation id="7536035074519304529">IP adresi: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Braille ve ChromeVox etkinleştirildi</translation>
 <translation id="7593891976182323525">Arama veya Üst Karakter</translation>
 <translation id="7604942372593434070">Göz atma etkinliğinize erişim sağlama</translation>
+<translation id="7642778300616172920">Hassas içeriği gizle</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (cihaz sahibi)</translation>
 <translation id="7647488630410863958">Bildirimlerinizi görüntülemek için cihazınızın kilidini açın</translation>
 <translation id="7649070708921625228">Yardım</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265"><ph name="NETWORK_NAME" /> ağına bağlanılıyor</translation>
 <translation id="7842569679327885685">Uyarı: Deneysel özellik</translation>
 <translation id="7846634333498149051">Klavye</translation>
+<translation id="7886277072580235377">Oturumu kapattığınızda internet oturumunuz temizlenecektir. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Gizlilikle ilgili ayarları değiştirme</translation>
 <translation id="7904094684485781019">Bu hesabın yöneticisi, çoklu oturum açmayı engelledi.</translation>
 <translation id="7933084174919150729">Google Asistan yalnızca birincil profilde kullanılabilir.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Yeniden bağlanılıyor...</translation>
 <translation id="8513108775083588393">Otomatik döndür</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> cihazınız açıkken şarj olmayabilir.</translation>
+<translation id="8592141010104017453">Bildirimleri hiç gösterme</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" /> cihazına bağlandı</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> kaldı</translation>
 <translation id="8649101189709089199">Seç ve Dinle</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index e097ab09..c6477eaa 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Адміністратор налаштував методи введення.</translation>
 <translation id="1747827819627189109">Екранну клавіатуру ввімкнено</translation>
 <translation id="1761222317188459878">Увімкнути/вимкнути з’єднання з мережею. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Що на моєму екрані?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Асистент (завантаження…)</translation>
 <translation id="1841545962859478868">Адміністратор пристрою може відстежувати таку інформацію:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Додати з’єднання</translation>
 <translation id="2961963223658824723">Сталася помилка. Повторіть спробу за кілька секунд.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Показувати весь вміст сповіщень</translation>
 <translation id="2995447421581609334">Показати пристрої для трансляції</translation>
 <translation id="2996462380875591307">Увімкнено закріплену лупу. Щоб вимкнути її, знову натисніть комбінацію Ctrl + клавіша пошуку + D.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> – загальнодоступний сеанс, керований доменом <ph name="DOMAIN" /></translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">Пристрої</translation>
 <translation id="4659419629803378708">ChromeVox увімкнено</translation>
 <translation id="4734965478015604180">Горизонтально</translation>
+<translation id="476166673298332917">Адміністратор цього пристрою має доступ до всієї активності, зокрема паролів і взаємодій.</translation>
 <translation id="4776917500594043016">Пароль користувача  <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">пошук</translation>
 <translation id="4804818685124855865">Від'єднатися</translation>
 <translation id="4849058404725798627">Підсвічувати об’єкт, вибраний на клавіатурі</translation>
 <translation id="4872237917498892622">Alt+клавіша пошуку або Shift</translation>
 <translation id="4890187583552566966">Ваш адміністратор вимкнув Google Асистент.</translation>
+<translation id="4893522937062257019">На екрані блокування</translation>
 <translation id="4895488851634969361">Акумулятор заряджений.</translation>
 <translation id="490375751687810070">Вертикально</translation>
 <translation id="4905614135390995787">Комбінація клавіш для керування режимом високого контрасту змінилася. Тепер це <ph name="NEW_SHORTCUT" />, а не <ph name="OLD_SHORTCUT" />.</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">Налаштування доступності</translation>
 <translation id="5313326810920013265">Налаштування Bluetooth</translation>
 <translation id="5331975486040154427">Пристрій, під’єднаний до порту USB-C (ліворуч на задній панелі)</translation>
+<translation id="5379115545237091094">Забагато спроб</translation>
 <translation id="5397578532367286026">Менеджер (<ph name="MANAGER_EMAIL" />) може переглядати дії й історію цього користувача на chrome.com.</translation>
 <translation id="5430931332414098647">Миттєва точка доступу</translation>
 <translation id="5431825016875453137">OpenVPN або L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">Перезапустити</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Засіб перегляду комбінацій клавіш</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Увімкнути</translation>
 <translation id="592343074608792716">Цей комп’ютер Chromebook і телефон підключатимуться автоматично</translation>
 <translation id="5947494881799873997">Повернути</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">Почати</translation>
 <translation id="6981982820502123353">Доступність</translation>
 <translation id="698231206551913481">Якщо видалити цього користувача, усі файли та локальні дані, зв’язані з ним, буде видалено назавжди.</translation>
+<translation id="7007100238996585961">Відповідь на іншому пристрої</translation>
 <translation id="7015766095477679451">Поверніться о <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Завершити сеанс</translation>
 <translation id="7037152028959403492">Ви натиснули комбінацію клавіш для високого контрасту. Увімкнути?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">З’єднання з мережею змінено</translation>
 <translation id="742594950370306541">Камера використовується.</translation>
 <translation id="743058460480092004">Камера та мікрофон використовуються.</translation>
+<translation id="7497767806359279797">Вибрати мову та клавіатуру</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Мережевий трафік може відстежуватися</translation>
 <translation id="7536035074519304529">ІР-адреса: <ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">Шрифт Брайля та ChromeVox увімкнено</translation>
 <translation id="7593891976182323525">Клавіша пошуку або Shift</translation>
 <translation id="7604942372593434070">Доступ до даних веб-перегляду</translation>
+<translation id="7642778300616172920">Ховати конфіденційний вміст</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (власник)</translation>
 <translation id="7647488630410863958">Розблокуйте пристрій, щоб переглянути сповіщення</translation>
 <translation id="7649070708921625228">Довідка</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">Під’єднання до мережі: <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Попередження. Експериментальна функція</translation>
 <translation id="7846634333498149051">Клавіатура</translation>
+<translation id="7886277072580235377">Коли ви вийдете з облікового запису, дані інтернет-сеансу буде стерто. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Керувати налаштуваннями, пов’язаними з конфіденційністю</translation>
 <translation id="7904094684485781019">Адміністратор цього облікового запису заборонив паралельний вхід.</translation>
 <translation id="7933084174919150729">Google Асистент доступний лише в основному профілі.</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: під’єднання…</translation>
 <translation id="8513108775083588393">Автообертання</translation>
 <translation id="8517041960877371778">Пристрій <ph name="DEVICE_TYPE" /> може не заряджатися, коли він увімкнений.</translation>
+<translation id="8592141010104017453">Узагалі не показувати сповіщення</translation>
 <translation id="8627191004499078455">Під’єднано до пристрою: <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Залишилося <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Читання з екрана</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index ee657656..1ca0309 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">Các phương thức nhập do quản trị viên của bạn định cấu hình.</translation>
 <translation id="1747827819627189109">Đã bật bàn phím ảo</translation>
 <translation id="1761222317188459878">Bật/tắt kết nối mạng. <ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">Trên màn hình của tôi có nội dung gì?</translation>
 <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">Trợ lý (đang tải...)</translation>
 <translation id="1841545962859478868">Quản trị viên thiết bị có thể theo dõi các vấn đề sau đây:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">Thêm kết nối</translation>
 <translation id="2961963223658824723">Đã xảy ra sự cố. Hãy thử lại sau vài giây.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">Hiển thị tất cả nội dung thông báo</translation>
 <translation id="2995447421581609334">Hiển thị các thiết bị truyền.</translation>
 <translation id="2996462380875591307">Đã bật tính năng Phóng to ở vị trí cố định. Hãy nhấn lại tổ hợp phím Ctrl+Search+D để tắt tính năng này.</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> là phiên công khai được quản lý bởi <ph name="DOMAIN" /></translation>
@@ -211,12 +213,14 @@
 <translation id="4628757576491864469">Thiết bị</translation>
 <translation id="4659419629803378708">Đã bật ChromeVox</translation>
 <translation id="4734965478015604180">Ngang</translation>
+<translation id="476166673298332917">Quản trị viên của thiết bị này có quyền truy cập vào mọi hoạt động, bao gồm cả mật khẩu và hoạt động giao tiếp.</translation>
 <translation id="4776917500594043016">Mật khẩu cho <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Ngắt kết nối</translation>
 <translation id="4849058404725798627">Đánh dấu đối tượng bằng tiêu điểm bàn phím</translation>
 <translation id="4872237917498892622">Alt+Search hoặc Shift</translation>
 <translation id="4890187583552566966">Quản trị viên của bạn đã tắt Trợ lý Google.</translation>
+<translation id="4893522937062257019">Trên màn hình khóa</translation>
 <translation id="4895488851634969361">Pin đầy.</translation>
 <translation id="490375751687810070">Dọc</translation>
 <translation id="4905614135390995787">Phím tắt để chuyển đổi Chế độ tương phản cao đã thay đổi. Vui lòng sử dụng <ph name="NEW_SHORTCUT" /> thay vì <ph name="OLD_SHORTCUT" />.</translation>
@@ -232,6 +236,7 @@
 <translation id="523505283826916779">Cài đặt trợ năng</translation>
 <translation id="5313326810920013265">Cài đặt Bluetooth</translation>
 <translation id="5331975486040154427">Thiết bị USB-C (cổng phía sau, bên trái)</translation>
+<translation id="5379115545237091094">Bạn đã mở khóa quá nhiều lần</translation>
 <translation id="5397578532367286026">Người quản lý (<ph name="MANAGER_EMAIL" />) trên chrome.com có thể xem lại mức sử dụng và lịch sử của người dùng này.</translation>
 <translation id="5430931332414098647">Chia sẻ kết nối tức thì</translation>
 <translation id="5431825016875453137">OpenVPN / L2TP</translation>
@@ -263,6 +268,7 @@
 <translation id="5895138241574237353">Khởi động lại</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911533659001334206">Trình xem phím tắt</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">Bật</translation>
 <translation id="592343074608792716">Chromebook này và điện thoại của bạn sẽ tự động kết nối</translation>
 <translation id="5947494881799873997">Hoàn nguyên</translation>
@@ -332,6 +338,7 @@
 <translation id="6972754398087986839">Bắt đầu</translation>
 <translation id="6981982820502123353">Truy cập</translation>
 <translation id="698231206551913481">Tất cả các tệp và dữ liệu cục bộ liên quan tới người dùng này sẽ bị xóa vĩnh viễn sau khi người dùng này bị xóa.</translation>
+<translation id="7007100238996585961">Đang trả lời trên thiết bị khác</translation>
 <translation id="7015766095477679451">Quay lại lúc <ph name="COME_BACK_TIME" />.</translation>
 <translation id="7029814467594812963">Thoát khỏi phiên</translation>
 <translation id="7037152028959403492">Bạn đã nhấn phím tắt để có độ tương phản cao. Bạn có muốn bật chế độ này không?</translation>
@@ -353,6 +360,7 @@
 <translation id="7398254312354928459">Đã chuyển kết nối mạng</translation>
 <translation id="742594950370306541">Máy ảnh đang được sử dụng.</translation>
 <translation id="743058460480092004">Máy ảnh và micrô đang được sử dụng.</translation>
+<translation id="7497767806359279797">Chọn ngôn ngữ và bàn phím</translation>
 <translation id="7510334386202674593">Ctrl+Shift+L</translation>
 <translation id="7526573455193969409">Mạng có thể được giám sát</translation>
 <translation id="7536035074519304529">Địa chỉ IP: <ph name="ADDRESS" /></translation>
@@ -362,6 +370,7 @@
 <translation id="7569509451529460200">Đã bật chữ nổi Braille và ChromeVox</translation>
 <translation id="7593891976182323525">Search hoặc Shift</translation>
 <translation id="7604942372593434070">Truy cập hoạt động duyệt web của bạn</translation>
+<translation id="7642778300616172920">Ẩn nội dung nhạy cảm</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (chủ sở hữu)</translation>
 <translation id="7647488630410863958">Mở khóa thiết bị để xem thông báo của bạn</translation>
 <translation id="7649070708921625228">Trợ giúp</translation>
@@ -377,6 +386,7 @@
 <translation id="7842211907556571265">Đang kết nối với <ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">Cảnh báo: Tính năng thử nghiệm</translation>
 <translation id="7846634333498149051">Bàn phím</translation>
+<translation id="7886277072580235377">Phiên hoạt động trên Internet của bạn sẽ bị xóa khi bạn đăng xuất. <ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">Thực hiện cài đặt liên quan đến bảo mật</translation>
 <translation id="7904094684485781019">Quản trị viên của tài khoản này đã không cho phép đăng nhập nhiều tài khoản.</translation>
 <translation id="7933084174919150729">Bạn chỉ có thể sử dụng Trợ lý Google cho hồ sơ chính.</translation>
@@ -417,6 +427,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />: Đang kết nối lại...</translation>
 <translation id="8513108775083588393">Tự động xoay</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> của bạn có thể không sạc khi được bật.</translation>
+<translation id="8592141010104017453">Không hiển thị thông báo nào</translation>
 <translation id="8627191004499078455">Đã kết nối với <ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">Còn <ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">Chọn để nói</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 464a92a..0af54af 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -46,6 +46,7 @@
 <translation id="1746730358044914197">輸入法是由你的管理員所設定。</translation>
 <translation id="1747827819627189109">螢幕小鍵盤已啟用</translation>
 <translation id="1761222317188459878">切換網路連線設定。<ph name="STATE_TEXT" /></translation>
+<translation id="1812997170047690955">我的畫面內容有什麼資訊?</translation>
 <translation id="1823873187264960516">乙太網路:<ph name="ADDRESS" /></translation>
 <translation id="1836215606488044471">小幫手 (載入中…)</translation>
 <translation id="1841545962859478868">裝置管理員可能會監控下列項目:</translation>
@@ -122,6 +123,7 @@
 <translation id="2946119680249604491">新增連線</translation>
 <translation id="2961963223658824723">發生錯誤,請於幾秒後再試一次。</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="2992931425024192067">顯示所有通知內容</translation>
 <translation id="2995447421581609334">顯示投放裝置。</translation>
 <translation id="2996462380875591307">停駐放大鏡已啟用。再次按下 Ctrl 鍵 + 搜尋鍵 + D 鍵即可停用。</translation>
 <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> 是受 <ph name="DOMAIN" /> 管理的公開工作階段</translation>
@@ -210,12 +212,14 @@
 <translation id="4628757576491864469">裝置</translation>
 <translation id="4659419629803378708">ChromeVox 已啟用</translation>
 <translation id="4734965478015604180">橫向</translation>
+<translation id="476166673298332917">這個裝置的管理員擁有所有活動的存取權限,包含存取密碼和通訊記錄的相關權限。</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> 的密碼</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">中斷連線</translation>
 <translation id="4849058404725798627">醒目顯示鍵盤焦點所在物件</translation>
 <translation id="4872237917498892622">Alt + 搜尋鍵或 Shift 鍵</translation>
 <translation id="4890187583552566966">你的管理員停用了 Google 助理。</translation>
+<translation id="4893522937062257019">螢幕鎖定時</translation>
 <translation id="4895488851634969361">電池電量已滿。</translation>
 <translation id="490375751687810070">縱向</translation>
 <translation id="4905614135390995787">切換高對比模式的快速鍵已變更,請改用 <ph name="NEW_SHORTCUT" /> (停用 <ph name="OLD_SHORTCUT" />)。</translation>
@@ -231,6 +235,7 @@
 <translation id="523505283826916779">協助工具設定</translation>
 <translation id="5313326810920013265">藍牙設定</translation>
 <translation id="5331975486040154427">USB-C 裝置 (左後方連接埠)</translation>
+<translation id="5379115545237091094">嘗試次數過多</translation>
 <translation id="5397578532367286026">管理員 (<ph name="MANAGER_EMAIL" />) 可以在 chrome.com 瞭解這名使用者的使用情形和記錄。</translation>
 <translation id="5430931332414098647">即時網路共用</translation>
 <translation id="5431825016875453137">OpenVPN/L2TP</translation>
@@ -262,6 +267,7 @@
 <translation id="5895138241574237353">重新啟動</translation>
 <translation id="5901316534475909376">Shift + Esc 鍵</translation>
 <translation id="5911533659001334206">快速鍵檢視器</translation>
+<translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
 <translation id="5916664084637901428">開啟</translation>
 <translation id="592343074608792716">這部 Chromebook 和你的手機會自動連結</translation>
 <translation id="5947494881799873997">還原</translation>
@@ -331,6 +337,7 @@
 <translation id="6972754398087986839">開始使用</translation>
 <translation id="6981982820502123353">協助工具</translation>
 <translation id="698231206551913481">將這位使用者移除後,與這位使用者相關聯的所有檔案和本機資料都會遭到永久刪除。</translation>
+<translation id="7007100238996585961">正在透過其他裝置回答問題</translation>
 <translation id="7015766095477679451"><ph name="COME_BACK_TIME" /> 裝置就會解除鎖定。</translation>
 <translation id="7029814467594812963">結束工作階段</translation>
 <translation id="7037152028959403492">你按下了高對比的快速鍵。確定要啟用這項功能嗎?</translation>
@@ -352,6 +359,7 @@
 <translation id="7398254312354928459">已切換網路連線</translation>
 <translation id="742594950370306541">攝影機正在使用中。</translation>
 <translation id="743058460480092004">攝影機和麥克風正在使用中。</translation>
+<translation id="7497767806359279797">選擇語言和鍵盤配置</translation>
 <translation id="7510334386202674593">Ctrl + Shift + L 鍵</translation>
 <translation id="7526573455193969409">網路可能會受到監控</translation>
 <translation id="7536035074519304529">IP 位址:<ph name="ADDRESS" /></translation>
@@ -361,6 +369,7 @@
 <translation id="7569509451529460200">點字模式和 ChromeVox 已啟用</translation>
 <translation id="7593891976182323525">搜尋鍵或 Shift 鍵</translation>
 <translation id="7604942372593434070">存取你的瀏覽活動</translation>
+<translation id="7642778300616172920">隱藏敏感內容</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (擁有者)</translation>
 <translation id="7647488630410863958">解鎖裝置即可查看通知</translation>
 <translation id="7649070708921625228">說明</translation>
@@ -376,6 +385,7 @@
 <translation id="7842211907556571265">正在連線至<ph name="NETWORK_NAME" /></translation>
 <translation id="7842569679327885685">警告:實驗功能</translation>
 <translation id="7846634333498149051">鍵盤</translation>
+<translation id="7886277072580235377">登出帳戶後,系統將清除你的網際網路工作階段。<ph name="LEARN_MORE" /></translation>
 <translation id="790040513076446191">操控隱私權相關設定</translation>
 <translation id="7904094684485781019">這個帳戶的管理員已禁止多重登入。</translation>
 <translation id="7933084174919150729">Google 助理僅適用於主要設定檔。</translation>
@@ -416,6 +426,7 @@
 <translation id="8484916590211895857"><ph name="NAME" />:正在重新連線...</translation>
 <translation id="8513108775083588393">自動旋轉</translation>
 <translation id="8517041960877371778"><ph name="DEVICE_TYPE" /> 在開啟時可能無法充電。</translation>
+<translation id="8592141010104017453">完全不顯示通知</translation>
 <translation id="8627191004499078455">已連線至<ph name="DEVICE_NAME" /></translation>
 <translation id="8639760480004882931">剩餘電量:<ph name="PERCENTAGE" /></translation>
 <translation id="8649101189709089199">隨選朗讀</translation>
diff --git a/ash/system/virtual_keyboard/virtual_keyboard_tray.cc b/ash/system/virtual_keyboard/virtual_keyboard_tray.cc
index 25eee5d..4ab1b6ff 100644
--- a/ash/system/virtual_keyboard/virtual_keyboard_tray.cc
+++ b/ash/system/virtual_keyboard/virtual_keyboard_tray.cc
@@ -6,7 +6,7 @@
 
 #include <algorithm>
 
-#include "ash/keyboard/keyboard_ui.h"
+#include "ash/accessibility/accessibility_controller.h"
 #include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/session/session_controller.h"
 #include "ash/shelf/shelf.h"
@@ -36,7 +36,7 @@
 
   // The Shell may not exist in some unit tests.
   if (Shell::HasInstance()) {
-    Shell::Get()->keyboard_ui()->AddObserver(this);
+    Shell::Get()->accessibility_controller()->AddObserver(this);
     Shell::Get()->AddShellObserver(this);
   }
   // Try observing keyboard controller, in case it is already constructed.
@@ -49,7 +49,7 @@
   // The Shell may not exist in some unit tests.
   if (Shell::HasInstance()) {
     Shell::Get()->RemoveShellObserver(this);
-    Shell::Get()->keyboard_ui()->RemoveObserver(this);
+    Shell::Get()->accessibility_controller()->RemoveObserver(this);
   }
 }
 
@@ -66,9 +66,14 @@
 bool VirtualKeyboardTray::PerformAction(const ui::Event& event) {
   UserMetricsRecorder::RecordUserClickOnTray(
       LoginMetricsRecorder::TrayClickTarget::kVirtualKeyboardTray);
-  Shell::Get()->keyboard_ui()->ShowInDisplay(
-      display::Screen::GetScreen()->GetDisplayNearestWindow(
-          shelf_->GetWindow()));
+
+  auto* keyboard_controller = keyboard::KeyboardController::Get();
+  // Keyboard may not always be enabled. https://crbug.com/749989
+  if (keyboard_controller->enabled()) {
+    keyboard_controller->ShowKeyboardInDisplay(
+        display::Screen::GetScreen()->GetDisplayNearestWindow(
+            shelf_->GetWindow()));
+  }
   // Normally, active status is set when virtual keyboard is shown/hidden,
   // however, showing virtual keyboard happens asynchronously and, especially
   // the first time, takes some time. We need to set active status here to
@@ -78,7 +83,9 @@
   return true;
 }
 
-void VirtualKeyboardTray::OnKeyboardEnabledStateChanged(bool new_enabled) {
+void VirtualKeyboardTray::OnAccessibilityStatusChanged() {
+  bool new_enabled =
+      Shell::Get()->accessibility_controller()->IsVirtualKeyboardEnabled();
   SetVisible(new_enabled);
   if (new_enabled) {
     // Observe keyboard controller to detect when the virtual keyboard is
diff --git a/ash/system/virtual_keyboard/virtual_keyboard_tray.h b/ash/system/virtual_keyboard/virtual_keyboard_tray.h
index b286571a..1d5d433 100644
--- a/ash/system/virtual_keyboard/virtual_keyboard_tray.h
+++ b/ash/system/virtual_keyboard/virtual_keyboard_tray.h
@@ -5,7 +5,7 @@
 #ifndef ASH_SYSTEM_VIRTUAL_KEYBOARD_VIRTUAL_KEYBOARD_TRAY_H_
 #define ASH_SYSTEM_VIRTUAL_KEYBOARD_VIRTUAL_KEYBOARD_TRAY_H_
 
-#include "ash/keyboard/keyboard_ui_observer.h"
+#include "ash/accessibility/accessibility_observer.h"
 #include "ash/session/session_observer.h"
 #include "ash/shell_observer.h"
 #include "ash/system/tray/tray_background_view.h"
@@ -20,7 +20,7 @@
 
 // TODO(sky): make this visible on non-chromeos platforms.
 class VirtualKeyboardTray : public TrayBackgroundView,
-                            public KeyboardUIObserver,
+                            public AccessibilityObserver,
                             public keyboard::KeyboardControllerObserver,
                             public ShellObserver,
                             public SessionObserver {
@@ -34,8 +34,8 @@
   void ClickedOutsideBubble() override;
   bool PerformAction(const ui::Event& event) override;
 
-  // KeyboardUIObserver:
-  void OnKeyboardEnabledStateChanged(bool new_enabled) override;
+  // AccessibilityObserver:
+  void OnAccessibilityStatusChanged() override;
 
   // keyboard::KeyboardControllerObserver:
   void OnKeyboardVisibilityStateChanged(bool is_visible) override;
diff --git a/ash/voice_interaction/voice_interaction_controller.h b/ash/voice_interaction/voice_interaction_controller.h
index 1a7355ec..931c158 100644
--- a/ash/voice_interaction/voice_interaction_controller.h
+++ b/ash/voice_interaction/voice_interaction_controller.h
@@ -44,6 +44,8 @@
 
   bool setup_completed() const { return setup_completed_; }
 
+  bool context_enabled() const { return context_enabled_; }
+
   mojom::AssistantAllowedState allowed_state() const { return allowed_state_; }
 
   bool notification_enabled() const { return notification_enabled_; }
diff --git a/ash/wm/overview/overview_animation_type.h b/ash/wm/overview/overview_animation_type.h
index 69747583..75891b5 100644
--- a/ash/wm/overview/overview_animation_type.h
+++ b/ash/wm/overview/overview_animation_type.h
@@ -30,6 +30,10 @@
   // Used to animate hiding of a window that is closed while overview mode is
   // active.
   OVERVIEW_ANIMATION_CLOSE_SELECTOR_ITEM,
+  // Used to animate windows upon entering or exiting overview mode to or from
+  // the home launcher.
+  OVERVIEW_ANIMATION_ENTER_FROM_HOME_LAUNCHER,
+  OVERVIEW_ANIMATION_EXIT_TO_HOME_LAUNCHER,
 };
 
 }  // namespace ash
diff --git a/ash/wm/overview/overview_utils.cc b/ash/wm/overview/overview_utils.cc
index 91548b4..58b2062 100644
--- a/ash/wm/overview/overview_utils.cc
+++ b/ash/wm/overview/overview_utils.cc
@@ -25,6 +25,10 @@
 
 namespace {
 
+// The transform applied to a window selector item when animating to or from the
+// home launcher.
+const gfx::Transform kShiftTransform(1, 0, 0, 1, 0, -100);
+
 // BackgroundWith1PxBorder renders a solid background color, with a one pixel
 // border with rounded corners. This accounts for the scaling of the canvas, so
 // that the border is 1 pixel thick regardless of display scaling.
@@ -102,19 +106,35 @@
   return base::FeatureList::IsEnabled(features::kOverviewSwipeToClose);
 }
 
-void FadeInWidgetOnEnter(views::Widget* widget) {
+void FadeOutWidgetAndMaybeSlideOnEnter(views::Widget* widget,
+                                       OverviewAnimationType animation_type,
+                                       bool slide) {
   aura::Window* window = widget->GetNativeWindow();
-  if (window->layer()->GetTargetOpacity() == 1.f)
+  if (window->layer()->GetTargetOpacity() == 1.f && !slide)
     return;
 
+  gfx::Transform original_transform = window->transform();
+  if (slide) {
+    // Translate the window up before sliding down to |original_transform|.
+    gfx::Transform new_transform = original_transform;
+    new_transform.ConcatTransform(kShiftTransform);
+    if (window->layer()->GetTargetOpacity() == 1.f &&
+        window->layer()->GetTargetTransform() == new_transform) {
+      return;
+    }
+    window->SetTransform(new_transform);
+  }
   window->layer()->SetOpacity(0.0f);
   ScopedOverviewAnimationSettings scoped_overview_animation_settings(
-      OVERVIEW_ANIMATION_ENTER_OVERVIEW_MODE_FADE_IN, window);
+      animation_type, window);
   window->layer()->SetOpacity(1.0f);
+  if (slide)
+    window->SetTransform(original_transform);
 }
 
-void FadeOutWidgetOnExit(std::unique_ptr<views::Widget> widget,
-                         OverviewAnimationType animation_type) {
+void FadeOutWidgetAndMaybeSlideOnExit(std::unique_ptr<views::Widget> widget,
+                                      OverviewAnimationType animation_type,
+                                      bool slide) {
   // The window selector controller may be nullptr on shutdown.
   WindowSelectorController* controller =
       Shell::Get()->window_selector_controller();
@@ -129,10 +149,9 @@
   ScopedOverviewAnimationSettings animation_settings(animation_type,
                                                      widget->GetNativeWindow());
   // CleanupAnimationObserver will delete itself (and the widget) when the
-  // opacity animation is complete.
-  // Ownership over the observer is passed to the window selector controller
-  // which has longer lifetime so that animations can continue even after the
-  // overview mode is shut down.
+  // opacity animation is complete. Ownership over the observer is passed to the
+  // window selector controller which has longer lifetime so that animations can
+  // continue even after the overview mode is shut down.
   views::Widget* widget_ptr = widget.get();
   std::unique_ptr<CleanupAnimationObserver> observer(
       new CleanupAnimationObserver(std::move(widget)));
@@ -140,6 +159,11 @@
 
   controller->AddDelayedAnimationObserver(std::move(observer));
   widget_ptr->SetOpacity(0.f);
+  if (slide) {
+    gfx::Transform new_transform = widget_ptr->GetNativeWindow()->transform();
+    new_transform.ConcatTransform(kShiftTransform);
+    widget_ptr->GetNativeWindow()->SetTransform(new_transform);
+  }
 }
 
 std::unique_ptr<views::Widget> CreateBackgroundWidget(aura::Window* root_window,
diff --git a/ash/wm/overview/overview_utils.h b/ash/wm/overview/overview_utils.h
index 0ff5006..ad1ca32c 100644
--- a/ash/wm/overview/overview_utils.h
+++ b/ash/wm/overview/overview_utils.h
@@ -27,15 +27,21 @@
 
 bool IsOverviewSwipeToCloseEnabled();
 
-// Fades |widget| to opacity one with the enter overview settings.
-void FadeInWidgetOnEnter(views::Widget* widget);
+// Fades |widget| to opacity one with the enter overview settings. Additionally
+// place |widget| closer to the top of screen and slide it down if |slide| is
+// true.
+void FadeOutWidgetAndMaybeSlideOnEnter(views::Widget* widget,
+                                       OverviewAnimationType animation_type,
+                                       bool slide);
 
 // Fades |widget| to opacity zero with animation settings depending on
 // |animation_type|. Used by several classes which need to be destroyed on
 // exiting overview, but have some widgets which need to continue animating.
-// |widget| is destroyed after finishing animation.
-void FadeOutWidgetOnExit(std::unique_ptr<views::Widget> widget,
-                         OverviewAnimationType animation_type);
+// |widget| is destroyed after finishing animation. Additionally slide |widget|
+// towards the top of screen if |slide| is true.
+void FadeOutWidgetAndMaybeSlideOnExit(std::unique_ptr<views::Widget> widget,
+                                      OverviewAnimationType animation_type,
+                                      bool slide);
 
 // Creates and returns a background translucent widget parented in
 // |root_window|'s default container and having |background_color|.
diff --git a/ash/wm/overview/overview_window_drag_controller.cc b/ash/wm/overview/overview_window_drag_controller.cc
index c37c7503b..4fdd732 100644
--- a/ash/wm/overview/overview_window_drag_controller.cc
+++ b/ash/wm/overview/overview_window_drag_controller.cc
@@ -23,10 +23,6 @@
 
 namespace {
 
-// Before dragging an overview window, the window will scale up |kPreDragScale|
-// to indicate its selection.
-constexpr float kDragWindowScale = 0.04f;
-
 // The amount of distance from the start of drag the item needs to be dragged
 // vertically for it to be closed on release.
 constexpr float kDragToCloseDistanceThresholdDp = 160.f;
@@ -173,11 +169,7 @@
 
 void OverviewWindowDragController::StartSplitViewDragMode(
     const gfx::Point& location_in_screen) {
-  // Increase the bounds of the dragged item.
-  gfx::Rect scaled_bounds(item_->target_bounds());
-  scaled_bounds.Inset(-scaled_bounds.width() * kDragWindowScale,
-                      -scaled_bounds.height() * kDragWindowScale);
-  item_->SetBounds(scaled_bounds, OVERVIEW_ANIMATION_LAY_OUT_SELECTOR_ITEMS);
+  item_->ScaleUpSelectedItem(OVERVIEW_ANIMATION_LAY_OUT_SELECTOR_ITEMS);
 
   did_move_ = true;
   current_drag_behavior_ = DragBehavior::kDragToSnap;
diff --git a/ash/wm/overview/scoped_overview_animation_settings.cc b/ash/wm/overview/scoped_overview_animation_settings.cc
index 03e86ba2..5729b1a 100644
--- a/ash/wm/overview/scoped_overview_animation_settings.cc
+++ b/ash/wm/overview/scoped_overview_animation_settings.cc
@@ -33,6 +33,8 @@
 // The time duration for widgets to fade out.
 constexpr int kFadeOutMs = 100;
 
+constexpr int kHomeLauncherTransitionMs = 250;
+
 base::TimeDelta GetAnimationDuration(OverviewAnimationType animation_type) {
   switch (animation_type) {
     case OVERVIEW_ANIMATION_NONE:
@@ -49,6 +51,9 @@
       return base::TimeDelta::FromMilliseconds(kCloseScaleMs);
     case OVERVIEW_ANIMATION_CLOSE_SELECTOR_ITEM:
       return base::TimeDelta::FromMilliseconds(kCloseFadeOutMs);
+    case OVERVIEW_ANIMATION_ENTER_FROM_HOME_LAUNCHER:
+    case OVERVIEW_ANIMATION_EXIT_TO_HOME_LAUNCHER:
+      return base::TimeDelta::FromMilliseconds(kHomeLauncherTransitionMs);
   }
   NOTREACHED();
   return base::TimeDelta();
@@ -110,10 +115,12 @@
       return nullptr;
     case OVERVIEW_ANIMATION_ENTER_OVERVIEW_MODE_FADE_IN:
     case OVERVIEW_ANIMATION_LAY_OUT_SELECTOR_ITEMS:
+    case OVERVIEW_ANIMATION_ENTER_FROM_HOME_LAUNCHER:
       return g_reporter_enter.Pointer();
     case OVERVIEW_ANIMATION_EXIT_OVERVIEW_MODE_FADE_OUT:
     case OVERVIEW_ANIMATION_RESTORE_WINDOW:
     case OVERVIEW_ANIMATION_RESTORE_WINDOW_ZERO:
+    case OVERVIEW_ANIMATION_EXIT_TO_HOME_LAUNCHER:
       return g_reporter_exit.Pointer();
     case OVERVIEW_ANIMATION_CLOSING_SELECTOR_ITEM:
     case OVERVIEW_ANIMATION_CLOSE_SELECTOR_ITEM:
@@ -165,6 +172,12 @@
       animation_settings_->SetPreemptionStrategy(
           ui::LayerAnimator::ENQUEUE_NEW_ANIMATION);
       break;
+    case OVERVIEW_ANIMATION_ENTER_FROM_HOME_LAUNCHER:
+    case OVERVIEW_ANIMATION_EXIT_TO_HOME_LAUNCHER:
+      animation_settings_->SetTweenType(gfx::Tween::FAST_OUT_SLOW_IN);
+      animation_settings_->SetPreemptionStrategy(
+          ui::LayerAnimator::REPLACE_QUEUED_ANIMATIONS);
+      break;
   }
   animation_settings_->SetTransitionDuration(
       GetAnimationDuration(animation_type));
diff --git a/ash/wm/overview/scoped_transform_overview_window.cc b/ash/wm/overview/scoped_transform_overview_window.cc
index 8fbf26214..0452767 100644
--- a/ash/wm/overview/scoped_transform_overview_window.cc
+++ b/ash/wm/overview/scoped_transform_overview_window.cc
@@ -187,7 +187,8 @@
 
 ScopedTransformOverviewWindow::~ScopedTransformOverviewWindow() = default;
 
-void ScopedTransformOverviewWindow::RestoreWindow(bool reset_transform) {
+void ScopedTransformOverviewWindow::RestoreWindow(bool reset_transform,
+                                                  bool use_slide_animation) {
   // Shadow controller may be null on shutdown.
   if (Shell::Get()->shadow_controller())
     Shell::Get()->shadow_controller()->UpdateShadowForWindow(window_);
@@ -196,8 +197,11 @@
     mask_.reset();
     // Fade out the minimized widget. This animation continues past the
     // lifetime of |this|.
-    FadeOutWidgetOnExit(std::move(minimized_widget_),
-                        OVERVIEW_ANIMATION_EXIT_OVERVIEW_MODE_FADE_OUT);
+    FadeOutWidgetAndMaybeSlideOnExit(
+        std::move(minimized_widget_),
+        use_slide_animation ? OVERVIEW_ANIMATION_EXIT_TO_HOME_LAUNCHER
+                            : OVERVIEW_ANIMATION_EXIT_OVERVIEW_MODE_FADE_OUT,
+        use_slide_animation);
     return;
   }
 
@@ -586,7 +590,9 @@
   minimized_widget_->SetBounds(bounds);
   minimized_widget_->Show();
 
-  FadeInWidgetOnEnter(minimized_widget_.get());
+  FadeOutWidgetAndMaybeSlideOnEnter(
+      minimized_widget_.get(), OVERVIEW_ANIMATION_ENTER_OVERVIEW_MODE_FADE_IN,
+      /*slide=*/false);
 }
 
 void ScopedTransformOverviewWindow::CreateAndApplyMaskAndShadow() {
diff --git a/ash/wm/overview/scoped_transform_overview_window.h b/ash/wm/overview/scoped_transform_overview_window.h
index 2b3d70ad..bf7db25 100644
--- a/ash/wm/overview/scoped_transform_overview_window.h
+++ b/ash/wm/overview/scoped_transform_overview_window.h
@@ -117,7 +117,7 @@
   // If |reset_transform| equals false, the window's transform will not be reset
   // to identity transform when exiting the overview mode. See
   // WindowSelectorItem::RestoreWindow() for details why we need this.
-  void RestoreWindow(bool reset_transform);
+  void RestoreWindow(bool reset_transform, bool use_slide_animation);
 
   // Informs the ScopedTransformOverviewWindow that the window being watched was
   // destroyed. This resets the internal window pointer.
diff --git a/ash/wm/overview/window_grid.cc b/ash/wm/overview/window_grid.cc
index 0779473..f9e8810 100644
--- a/ash/wm/overview/window_grid.cc
+++ b/ash/wm/overview/window_grid.cc
@@ -353,8 +353,9 @@
   if (shield_widget_) {
     // Fade out the shield widget. This animation continues past the lifetime
     // of |this|.
-    FadeOutWidgetOnExit(std::move(shield_widget_),
-                        OVERVIEW_ANIMATION_RESTORE_WINDOW);
+    FadeOutWidgetAndMaybeSlideOnExit(std::move(shield_widget_),
+                                     OVERVIEW_ANIMATION_RESTORE_WINDOW,
+                                     /*slide=*/false);
   }
 }
 
@@ -1042,6 +1043,11 @@
   nudge_data_.clear();
 }
 
+void WindowGrid::SlideWindowsIn() {
+  for (const auto& window_item : window_list_)
+    window_item->SlideWindowIn();
+}
+
 void WindowGrid::InitShieldWidget() {
   // TODO(varkha): The code assumes that SHELF_BACKGROUND_MAXIMIZED is
   // synonymous with a black shelf background. Update this code if that
diff --git a/ash/wm/overview/window_grid.h b/ash/wm/overview/window_grid.h
index 4eac75d..8746c48 100644
--- a/ash/wm/overview/window_grid.h
+++ b/ash/wm/overview/window_grid.h
@@ -186,6 +186,11 @@
   // Clears |nudge_data_|.
   void EndNudge();
 
+  // Called after PositionWindows when entering overview from the home launcher
+  // screen. Translates all windows vertically and animates to their final
+  // locations.
+  void SlideWindowsIn();
+
   // Returns true if the grid has no more windows.
   bool empty() const { return window_list_.empty(); }
 
diff --git a/ash/wm/overview/window_selector.cc b/ash/wm/overview/window_selector.cc
index e699aca..457321e 100644
--- a/ash/wm/overview/window_selector.cc
+++ b/ash/wm/overview/window_selector.cc
@@ -353,6 +353,10 @@
           GetDraggedWindow(window_grid->root_window(), mru_window_list);
       if (dragged_window) {
         window_grid->PositionWindows(/*animate=*/false);
+      } else if (use_slide_animation_) {
+        window_grid->PositionWindows(/*animate=*/false);
+        window_grid->SlideWindowsIn();
+        use_slide_animation_ = false;
       } else {
         window_grid->CalculateWindowListAnimationStates(
             /*selected_item=*/nullptr, OverviewTransition::kEnter);
@@ -417,7 +421,9 @@
   }
 
   // Setting focus after restoring windows' state avoids unnecessary animations.
-  ResetFocusRestoreWindow(true);
+  // No need to restore if we are sliding to the home launcher screen, as all
+  // windows will be minimized.
+  ResetFocusRestoreWindow(!use_slide_animation_);
   RemoveAllObservers();
 
   for (std::unique_ptr<WindowGrid>& window_grid : grid_list_)
diff --git a/ash/wm/overview/window_selector.h b/ash/wm/overview/window_selector.h
index 40b95d4..aa19b2d 100644
--- a/ash/wm/overview/window_selector.h
+++ b/ash/wm/overview/window_selector.h
@@ -108,7 +108,7 @@
   // Add |window| to the grid in |grid_list_| with the same root window. Does
   // nothing if the grid already contains |window|. And if |reposition| is true,
   // re-position all windows in the target window grid. If |animate| is true,
-  // re-position with animation. This function may be called in two scenarioes:
+  // re-position with animation. This function may be called in two scenarios:
   // 1) when a item in split view mode was previously snapped but should now be
   // returned to the window grid (e.g. split view divider dragged to either
   // edge, or a window is snapped to a postion that already has a snapped
@@ -175,21 +175,24 @@
 
   WindowSelectorDelegate* delegate() { return delegate_; }
 
-  int text_filter_bottom() const { return text_filter_bottom_; }
-
-  const std::vector<std::unique_ptr<WindowGrid>>& grid_list_for_testing()
-      const {
-    return grid_list_;
-  }
-
   SplitViewDragIndicators* split_view_drag_indicators() {
     return split_view_drag_indicators_.get();
   }
 
+  int text_filter_bottom() const { return text_filter_bottom_; }
+
+  bool use_slide_animation() const { return use_slide_animation_; }
+  void set_use_slide_animation(bool val) { use_slide_animation_ = val; }
+
   OverviewWindowDragController* window_drag_controller() {
     return window_drag_controller_.get();
   }
 
+  const std::vector<std::unique_ptr<WindowGrid>>& grid_list_for_testing()
+      const {
+    return grid_list_;
+  }
+
   // display::DisplayObserver:
   void OnDisplayRemoved(const display::Display& display) override;
   void OnDisplayMetricsChanged(const display::Display& display,
@@ -300,6 +303,10 @@
   // the text filtering textfield.
   int text_filter_bottom_ = 0;
 
+  // If true, slide the overview items from the top of the screen on enter or
+  // slide the overview items to the top of the screen on exit.
+  bool use_slide_animation_ = false;
+
   // The selected item when exiting overview mode. nullptr if no window
   // selected.
   WindowSelectorItem* selected_item_ = nullptr;
diff --git a/ash/wm/overview/window_selector_controller.cc b/ash/wm/overview/window_selector_controller.cc
index b9f04db..382b8be 100644
--- a/ash/wm/overview/window_selector_controller.cc
+++ b/ash/wm/overview/window_selector_controller.cc
@@ -6,6 +6,7 @@
 
 #include <vector>
 
+#include "ash/app_list/app_list_controller_impl.h"
 #include "ash/public/cpp/window_properties.h"
 #include "ash/root_window_controller.h"
 #include "ash/session/session_controller.h"
@@ -24,6 +25,7 @@
 #include "ash/wm/window_util.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/metrics/user_metrics.h"
+#include "ui/aura/client/aura_constants.h"
 #include "ui/gfx/animation/animation_delegate.h"
 #include "ui/gfx/animation/slide_animation.h"
 #include "ui/wm/core/window_util.h"
@@ -78,6 +80,28 @@
          Shell::Get()->wallpaper_controller()->IsBlurAllowed();
 }
 
+// Returns whether overview mode items should be slid in or out from the top of
+// the screen.
+bool ShouldSlideInOutOverview(const std::vector<aura::Window*>& windows) {
+  // No sliding if home launcher is not available.
+  if (!Shell::Get()
+           ->app_list_controller()
+           ->IsHomeLauncherEnabledInTabletMode()) {
+    return false;
+  }
+
+  if (windows.empty())
+    return false;
+
+  // Only slide in if all windows are minimized.
+  for (const aura::Window* window : windows) {
+    if (!wm::GetWindowState(window)->IsMinimized())
+      return false;
+  }
+
+  return true;
+}
+
 }  // namespace
 
 // Class that handles of blurring wallpaper upon entering and exiting overview
@@ -233,7 +257,11 @@
          !session_controller->IsRunningInAppMode();
 }
 
-bool WindowSelectorController::ToggleOverview() {
+bool WindowSelectorController::ToggleOverview(bool toggled_from_home_launcher) {
+  // |toggled_from_home_launcher| should only be true if we are exiting
+  // overview.
+  DCHECK(!(toggled_from_home_launcher && !IsSelecting()));
+
   auto windows = Shell::Get()->mru_window_tracker()->BuildMruWindowList();
 
   // Hidden windows will be removed by ShouldExcludeWindowFromOverview so we
@@ -247,10 +275,27 @@
                        ShouldExcludeWindowFromOverview);
   windows.resize(end - windows.begin());
 
+  // We may want to slide the overview grid in or out in some cases.
+  bool should_slide_overview =
+      toggled_from_home_launcher || ShouldSlideInOutOverview(windows);
+
   if (IsSelecting()) {
     // Do not allow ending overview if we're in single split mode.
     if (windows.empty() && Shell::Get()->IsSplitViewModeActive())
       return true;
+
+    if (toggled_from_home_launcher) {
+      // Minimize the windows without animations. Minimized widgets will get
+      // created in their place, and those widgets will be slid out of
+      // overview when the home launcher button is pressed.
+      for (aura::Window* window : windows) {
+        window->SetProperty(aura::client::kAnimationsDisabledKey, true);
+        wm::GetWindowState(window)->Minimize();
+        window->ClearProperty(aura::client::kAnimationsDisabledKey);
+      }
+    }
+
+    window_selector_->set_use_slide_animation(should_slide_overview);
     OnSelectionEnded();
   } else {
     // Don't start overview if window selection is not allowed.
@@ -258,6 +303,7 @@
       return false;
 
     window_selector_.reset(new WindowSelector(this));
+    window_selector_->set_use_slide_animation(should_slide_overview);
     Shell::Get()->NotifyOverviewModeStarting();
     window_selector_->Init(windows, hide_windows);
     if (IsBlurAllowed())
diff --git a/ash/wm/overview/window_selector_controller.h b/ash/wm/overview/window_selector_controller.h
index c3acded..03f30f5f 100644
--- a/ash/wm/overview/window_selector_controller.h
+++ b/ash/wm/overview/window_selector_controller.h
@@ -34,8 +34,11 @@
   static bool CanSelect();
 
   // Attempts to toggle overview mode and returns true if successful (showing
-  // overview would be unsuccessful if there are no windows to show).
-  bool ToggleOverview();
+  // overview would be unsuccessful if there are no windows to show). If
+  // |toggled_from_home_launcher| is true, enter/exit overview with a different
+  // animation to accommodate the home launcher. |toggled_from_home_launcher|
+  // should only be true if the home launcher button is pressed.
+  bool ToggleOverview(bool toggled_from_home_launcher = false);
 
   // Returns true if window selection mode is active.
   bool IsSelecting() const;
diff --git a/ash/wm/overview/window_selector_item.cc b/ash/wm/overview/window_selector_item.cc
index 6995c0c..14d1b009 100644
--- a/ash/wm/overview/window_selector_item.cc
+++ b/ash/wm/overview/window_selector_item.cc
@@ -121,6 +121,10 @@
 // swipe to close.
 constexpr int kSwipeToCloseCloseTranslationDp = 96;
 
+// Before dragging an overview window, the window will be scaled up
+// |kPreDragScale| to indicate its selection.
+constexpr float kDragWindowScale = 0.04f;
+
 std::unique_ptr<views::Widget> CreateBackdropWidget(aura::Window* parent) {
   auto widget = CreateBackgroundWidget(
       /*root_window=*/nullptr, ui::LAYER_TEXTURED, kBackdropColor,
@@ -494,7 +498,8 @@
 void WindowSelectorItem::RestoreWindow(bool reset_transform) {
   caption_container_view_->listener_button()->ResetListener();
   close_button_->ResetListener();
-  transform_window_.RestoreWindow(reset_transform);
+  transform_window_.RestoreWindow(reset_transform,
+                                  window_selector_->use_slide_animation());
 }
 
 void WindowSelectorItem::EnsureVisible() {
@@ -520,8 +525,12 @@
   }
   // Fade out the item widget. This animation continues past the lifetime
   // of |this|.
-  FadeOutWidgetOnExit(std::move(item_widget_),
-                      OVERVIEW_ANIMATION_EXIT_OVERVIEW_MODE_FADE_OUT);
+  const bool slide = window_selector_->use_slide_animation();
+  FadeOutWidgetAndMaybeSlideOnExit(
+      std::move(item_widget_),
+      slide ? OVERVIEW_ANIMATION_EXIT_TO_HOME_LAUNCHER
+            : OVERVIEW_ANIMATION_EXIT_OVERVIEW_MODE_FADE_OUT,
+      slide);
 }
 
 void WindowSelectorItem::PrepareForOverview() {
@@ -530,6 +539,20 @@
   UpdateHeaderLayout(HeaderFadeInMode::kEnter, OVERVIEW_ANIMATION_NONE);
 }
 
+void WindowSelectorItem::SlideWindowIn() {
+  // |transform_window_|'s |minimized_widget| is non null because this only gets
+  // called if we see the home launcher on enter (all windows are minimized).
+  DCHECK(item_widget_);
+  DCHECK(transform_window_.minimized_widget());
+
+  FadeOutWidgetAndMaybeSlideOnEnter(item_widget_.get(),
+                                    OVERVIEW_ANIMATION_ENTER_FROM_HOME_LAUNCHER,
+                                    /*slide=*/true);
+  FadeOutWidgetAndMaybeSlideOnEnter(transform_window_.minimized_widget(),
+                                    OVERVIEW_ANIMATION_ENTER_FROM_HOME_LAUNCHER,
+                                    /*slide=*/true);
+}
+
 float WindowSelectorItem::GetItemScale(const gfx::Size& size) {
   gfx::Size inset_size(size.width(), size.height() - 2 * kWindowMargin);
   return ScopedTransformOverviewWindow::GetItemScale(
@@ -714,6 +737,19 @@
   backdrop_widget_->Show();
 }
 
+gfx::Rect WindowSelectorItem::GetBoundsOfSelectedItem() {
+  ScaleUpSelectedItem(OVERVIEW_ANIMATION_NONE);
+  return transform_window_.GetTransformedBounds();
+}
+
+void WindowSelectorItem::ScaleUpSelectedItem(
+    OverviewAnimationType animation_type) {
+  gfx::Rect scaled_bounds(target_bounds());
+  scaled_bounds.Inset(-scaled_bounds.width() * kDragWindowScale,
+                      -scaled_bounds.height() * kDragWindowScale);
+  SetBounds(scaled_bounds, animation_type);
+}
+
 void WindowSelectorItem::SetDimmed(bool dimmed) {
   dimmed_ = dimmed;
   SetOpacity(dimmed ? kDimmedItemOpacity : 1.0f);
@@ -1040,7 +1076,9 @@
 
   if (!label_view_->visible()) {
     label_view_->SetVisible(true);
-    FadeInWidgetOnEnter(item_widget_.get());
+    FadeOutWidgetAndMaybeSlideOnEnter(
+        item_widget_.get(), OVERVIEW_ANIMATION_ENTER_OVERVIEW_MODE_FADE_IN,
+        false);
   }
 
   aura::Window* widget_window = item_widget_->GetNativeWindow();
diff --git a/ash/wm/overview/window_selector_item.h b/ash/wm/overview/window_selector_item.h
index 76e5b416..9a9ba9f 100644
--- a/ash/wm/overview/window_selector_item.h
+++ b/ash/wm/overview/window_selector_item.h
@@ -157,6 +157,13 @@
   void DisableBackdrop();
   void UpdateBackdropBounds();
 
+  // Returns the bounds of the selected item, which will be scaled up a little
+  // bit and header view will be hidden after being selected.
+  gfx::Rect GetBoundsOfSelectedItem();
+
+  // Increases the bounds of the dragged item.
+  void ScaleUpSelectedItem(OverviewAnimationType animation_type);
+
   // Sets if the item is dimmed in the overview. Changing the value will also
   // change the visibility of the transform windows.
   void SetDimmed(bool dimmed);
@@ -170,6 +177,10 @@
   // |item_widget_|'s creation.
   void RestackItemWidget();
 
+  // Shift the window item up and then animates it to its original spot. Used
+  // to transition from the home launcher.
+  void SlideWindowIn();
+
   // views::ButtonListener:
   void ButtonPressed(views::Button* sender, const ui::Event& event) override;
 
diff --git a/ash/wm/overview/window_selector_unittest.cc b/ash/wm/overview/window_selector_unittest.cc
index 58de64c..815b8d60 100644
--- a/ash/wm/overview/window_selector_unittest.cc
+++ b/ash/wm/overview/window_selector_unittest.cc
@@ -216,7 +216,9 @@
     return window_selector_controller()->window_selector_.get();
   }
 
-  void ToggleOverview() { window_selector_controller()->ToggleOverview(); }
+  void ToggleOverview(bool toggled_from_home_launcher = false) {
+    window_selector_controller()->ToggleOverview(toggled_from_home_launcher);
+  }
 
   aura::Window* GetOverviewWindowForMinimizedState(int index,
                                                    aura::Window* window) {
@@ -3032,6 +3034,89 @@
   EXPECT_NE(bounds3, item3->target_bounds());
 }
 
+namespace {
+
+// Test class that allows us to check what whether the last overview enter or
+// exit was using a slide animation. This is needed because the cached slide
+// animation variable may be reset or the WindowSelector object may not be
+// available after a toggle has completed.
+class TestOverviewAnimationTypeObserver : public ShellObserver {
+ public:
+  TestOverviewAnimationTypeObserver() { Shell::Get()->AddShellObserver(this); }
+  ~TestOverviewAnimationTypeObserver() override {
+    Shell::Get()->RemoveShellObserver(this);
+  }
+
+  // ShellObserver:
+  void OnOverviewModeStarting() override { UpdateLastAnimationWasSlide(); }
+  void OnOverviewModeEnding() override { UpdateLastAnimationWasSlide(); }
+
+  bool last_animation_was_slide() const { return last_animation_was_slide_; }
+
+ private:
+  void UpdateLastAnimationWasSlide() {
+    WindowSelector* selector =
+        Shell::Get()->window_selector_controller()->window_selector();
+    DCHECK(selector);
+    last_animation_was_slide_ = selector->use_slide_animation();
+  }
+
+  bool last_animation_was_slide_ = false;
+
+  DISALLOW_COPY_AND_ASSIGN(TestOverviewAnimationTypeObserver);
+};
+
+}  // namespace
+
+// Tests the slide animation for overview is never used in clamshell.
+TEST_F(WindowSelectorTest, OverviewEnterExitAnimation) {
+  TestOverviewAnimationTypeObserver observer;
+
+  const gfx::Rect bounds(200, 200);
+  std::unique_ptr<aura::Window> window1(CreateWindow(bounds));
+
+  ToggleOverview();
+  EXPECT_FALSE(observer.last_animation_was_slide());
+
+  ToggleOverview();
+  EXPECT_FALSE(observer.last_animation_was_slide());
+
+  // Even with all window minimized, there should not be a slide animation.
+  ASSERT_FALSE(IsSelecting());
+  wm::GetWindowState(window1.get())->Minimize();
+  ToggleOverview();
+  EXPECT_FALSE(observer.last_animation_was_slide());
+}
+
+// Tests the slide animation for overview is used in tablet if all windows
+// are minimized, and that if overview is exited from the home launcher all
+// windows are minimized.
+TEST_F(WindowSelectorTest, OverviewEnterExitAnimationTablet) {
+  TestOverviewAnimationTypeObserver observer;
+
+  // Ensure calls to EnableTabletModeWindowManager complete.
+  base::RunLoop().RunUntilIdle();
+  Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(true);
+  base::RunLoop().RunUntilIdle();
+
+  const gfx::Rect bounds(200, 200);
+  std::unique_ptr<aura::Window> window1(CreateWindow(bounds));
+
+  ToggleOverview();
+  EXPECT_FALSE(observer.last_animation_was_slide());
+
+  // Exit to home launcher. Slide animation should be used, and all windows
+  // should be minimized.
+  ToggleOverview(/*toggled_from_home_launcher=*/true);
+  EXPECT_TRUE(observer.last_animation_was_slide());
+  ASSERT_FALSE(IsSelecting());
+  EXPECT_TRUE(wm::GetWindowState(window1.get())->IsMinimized());
+
+  // All windows are minimized, so we should use the slide animation.
+  ToggleOverview();
+  EXPECT_TRUE(observer.last_animation_was_slide());
+}
+
 class SplitViewWindowSelectorTest : public WindowSelectorTest {
  public:
   SplitViewWindowSelectorTest() = default;
diff --git a/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc b/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc
index 60008307..dbbabd5 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc
@@ -39,9 +39,9 @@
              : nullptr;
 }
 
-// Gets the new selector item's bounds in overview grid that is displaying in
-// the same root window as |dragged_window|.
-gfx::Rect GetNewSelectorItemBounds(aura::Window* dragged_window) {
+// Gets the bounds of selected new selector item in overview grid that is
+// displaying in the same root window as |dragged_window|.
+gfx::Rect GetBoundsOfSelectedNewSelectorItem(aura::Window* dragged_window) {
   if (!Shell::Get()->window_selector_controller()->IsSelecting())
     return gfx::Rect();
 
@@ -54,7 +54,7 @@
   if (!new_selector_item)
     return gfx::Rect();
 
-  return new_selector_item->target_bounds();
+  return new_selector_item->GetBoundsOfSelectedItem();
 }
 
 // Set |transform| to |window| and its transient child windows. |transform| is
@@ -119,7 +119,8 @@
                                              /*animate=*/was_overview_open);
   }
 
-  new_selector_item_bounds_ = GetNewSelectorItemBounds(dragged_window_);
+  bounds_of_selected_new_selector_item_ =
+      GetBoundsOfSelectedNewSelectorItem(dragged_window_);
 }
 
 void TabletModeWindowDragDelegate::ContinueWindowDrag(
@@ -333,12 +334,14 @@
 
   // Calculate the desired scale along the y-axis. The scale of the window
   // during drag is based on the distance from |y_location_in_screen| to the y
-  // position of |new_selector_item_bounds_|. The dragged window will become
-  // smaller when it becomes nearer to the new selector item. And then keep the
-  // minimum scale if it has been dragged further than the new selector item.
-  float scale = static_cast<float>(new_selector_item_bounds_.height()) /
-                static_cast<float>(dragged_window_->bounds().height());
-  int y_full = new_selector_item_bounds_.y();
+  // position of |bounds_of_selected_new_selector_item_|. The dragged window
+  // will become smaller when it becomes nearer to the new selector item. And
+  // then keep the minimum scale if it has been dragged further than the new
+  // selector item.
+  float scale =
+      static_cast<float>(bounds_of_selected_new_selector_item_.height()) /
+      static_cast<float>(dragged_window_->bounds().height());
+  int y_full = bounds_of_selected_new_selector_item_.y();
   int y_diff = y_full - location_in_screen.y();
   if (y_diff >= 0)
     scale = (1.0f - scale) * y_diff / y_full + scale;
diff --git a/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.h b/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.h
index 22d8af1c..ba767177 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.h
+++ b/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.h
@@ -101,9 +101,9 @@
 
   // Overview mode will be triggered if a window is being dragged, and a new
   // selector item will be created in the overview grid. The variable stores
-  // the new selector item bounds in overview and will be used to calculate
-  // the desired window tranform during dragging.
-  gfx::Rect new_selector_item_bounds_;
+  // the bounds of the selected new selector item in overview and will be used
+  // to calculate the desired window transform during dragging.
+  gfx::Rect bounds_of_selected_new_selector_item_;
 
   // Flag to indicate whether a window is considered as moved. A window needs to
   // be dragged vertically a small amount of distance to be considered as moved.
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 1b9cb36c..9f6832d 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -294,6 +294,10 @@
     "cpu.h",
     "critical_closure.h",
     "critical_closure_internal_ios.mm",
+    "observer_list_internal.cc",
+    "observer_list_internal.h",
+    "observer_list_types.cc",
+    "observer_list_types.h",
 
     # This file depends on files from the "debug/allocator" target,
     # but this target does not depend on "debug/allocator".
@@ -867,6 +871,8 @@
     "task/sequence_manager/work_queue_sets.cc",
     "task/sequence_manager/work_queue_sets.h",
     "task/single_thread_task_runner_thread_mode.h",
+    "task/task_executor.cc",
+    "task/task_executor.h",
     "task/task_scheduler/can_schedule_sequence_observer.h",
     "task/task_scheduler/delayed_task_manager.cc",
     "task/task_scheduler/delayed_task_manager.h",
@@ -2426,6 +2432,7 @@
     "system_monitor/system_monitor_unittest.cc",
     "task/cancelable_task_tracker_unittest.cc",
     "task/lazy_task_runner_unittest.cc",
+    "task/post_task_unittest.cc",
     "task/scoped_set_task_priority_for_current_thread_unittest.cc",
     "task/sequence_manager/intrusive_heap_unittest.cc",
     "task/sequence_manager/lazily_deallocated_deque_unittest.cc",
@@ -2792,6 +2799,7 @@
       "memory/weak_ptr_unittest.nc",
       "metrics/field_trial_params_unittest.nc",
       "metrics/histogram_unittest.nc",
+      "observer_list_unittest.nc",
       "optional_unittest.nc",
       "strings/string16_unittest.nc",
       "task/task_traits_extension_unittest.nc",
diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
index 8228b2b..71309f2 100644
--- a/base/memory/weak_ptr.h
+++ b/base/memory/weak_ptr.h
@@ -268,6 +268,11 @@
   // instance isn't being re-assigned or reset() racily with this call.
   bool MaybeValid() const { return ref_.MaybeValid(); }
 
+  // Returns whether the object |this| points to has been invalidated. This can
+  // be used to distinguish a WeakPtr to a destroyed object from one that has
+  // been explicitly set to null. A null WeakPtr is always valid.
+  bool WasInvalidated() const { return ptr_ && !ref_.IsValid(); }
+
  private:
   friend class internal::SupportsWeakPtrBase;
   template <typename U> friend class WeakPtr;
diff --git a/base/memory/weak_ptr_unittest.cc b/base/memory/weak_ptr_unittest.cc
index e15d167..123a66bb 100644
--- a/base/memory/weak_ptr_unittest.cc
+++ b/base/memory/weak_ptr_unittest.cc
@@ -392,6 +392,49 @@
   EXPECT_FALSE(factory.HasWeakPtrs());
 }
 
+// Tests that WasInvalidated() is true only for invalidated WeakPtrs (not
+// nullptr) and doesn't DCHECK.
+TEST(WeakPtrTest, WasInvalidatedByFactoryDestruction) {
+  WeakPtr<int> ptr;
+  EXPECT_FALSE(ptr.WasInvalidated());
+
+  // Test |data| destroyed.
+  {
+    int data;
+    WeakPtrFactory<int> factory(&data);
+    ptr = factory.GetWeakPtr();
+
+    EXPECT_FALSE(ptr.WasInvalidated());
+  }
+  EXPECT_TRUE(ptr.WasInvalidated());  // Shouldn't tickle asan.
+  ptr = nullptr;
+  EXPECT_FALSE(ptr.WasInvalidated());
+}
+
+// As above, but testing InvalidateWeakPtrs().
+TEST(WeakPtrTest, WasInvalidatedByInvalidateWeakPtrs) {
+  int data;
+  WeakPtrFactory<int> factory(&data);
+  WeakPtr<int> ptr = factory.GetWeakPtr();
+  EXPECT_FALSE(ptr.WasInvalidated());
+  factory.InvalidateWeakPtrs();
+  EXPECT_TRUE(ptr.WasInvalidated());
+  ptr = nullptr;
+  EXPECT_FALSE(ptr.WasInvalidated());
+}
+
+// Test WasInvalidated() when assigning null before invalidating.
+TEST(WeakPtrTest, WasInvalidatedWhilstNull) {
+  int data;
+  WeakPtrFactory<int> factory(&data);
+  WeakPtr<int> ptr = factory.GetWeakPtr();
+  EXPECT_FALSE(ptr.WasInvalidated());
+  ptr = nullptr;
+  EXPECT_FALSE(ptr.WasInvalidated());
+  factory.InvalidateWeakPtrs();
+  EXPECT_FALSE(ptr.WasInvalidated());
+}
+
 TEST(WeakPtrTest, MaybeValidOnSameSequence) {
   int data;
   WeakPtrFactory<int> factory(&data);
diff --git a/base/observer_list.h b/base/observer_list.h
index 849727e..447f045a 100644
--- a/base/observer_list.h
+++ b/base/observer_list.h
@@ -17,6 +17,7 @@
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
+#include "base/observer_list_internal.h"
 #include "base/stl_util.h"
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -94,16 +95,24 @@
 // TODO(oshima): Change the default to non reentrant. https://crbug.com/812109
 template <class ObserverType,
           bool check_empty = false,
-          bool allow_reentrancy = true>
-class ObserverList
-    : public SupportsWeakPtr<
-          ObserverList<ObserverType, check_empty, allow_reentrancy>> {
+          bool allow_reentrancy = true,
+          class ObserverStorageType = internal::CheckedObserverAdapter>
+class ObserverList : public SupportsWeakPtr<ObserverList<ObserverType,
+                                                         check_empty,
+                                                         allow_reentrancy,
+                                                         ObserverStorageType>> {
  public:
-  // Temporary type alias for introducing base::CheckedObserver. Existing
-  // ObserverLists will be Unchecked during the migration.
-  // TODO(https://crbug.com/842987): Use the Unchecked storage type when that
-  // template param is added.
-  using Unchecked = ObserverList<ObserverType, check_empty, allow_reentrancy>;
+  // Allow declaring an ObserverList<...>::Unchecked that replaces the default
+  // ObserverStorageType to use raw pointers. This is required to support legacy
+  // observers that do not inherit from CheckedObserver. The majority of NEW
+  // CODE SHOULD NOT USE THIS, but it may be suited for performance-critical
+  // situations to avoid overheads of a CHECK(). Note the type can't be chosen
+  // based on ObserverType's definition because ObserverLists are often declared
+  // in headers using a forward-declare of ObserverType.
+  using Unchecked = ObserverList<ObserverType,
+                                 check_empty,
+                                 allow_reentrancy,
+                                 internal::UncheckedObserverAdapter>;
 
   // An iterator class that can be used to access the list of observers.
   class Iter {
@@ -187,20 +196,22 @@
     }
 
    private:
-    FRIEND_TEST_ALL_PREFIXES(ObserverListTest, BasicStdIterator);
-    FRIEND_TEST_ALL_PREFIXES(ObserverListTest, StdIteratorRemoveFront);
+    friend class ObserverListTestBase;
 
     ObserverType* GetCurrent() const {
       DCHECK(list_);
       DCHECK_LT(index_, clamped_max_index());
-      return list_->observers_[index_];
+      return ObserverStorageType::template Get<ObserverType>(
+          list_->observers_[index_]);
     }
 
     void EnsureValidIndex() {
       DCHECK(list_);
       const size_t max_index = clamped_max_index();
-      while (index_ < max_index && !list_->observers_[index_])
+      while (index_ < max_index &&
+             list_->observers_[index_].IsMarkedForRemoval()) {
         ++index_;
+      }
     }
 
     size_t clamped_max_index() const {
@@ -220,6 +231,7 @@
 
   using iterator = Iter;
   using const_iterator = Iter;
+  using value_type = ObserverType;
 
   const_iterator begin() const {
     // An optimization: do not involve weak pointers for empty list.
@@ -249,20 +261,22 @@
       NOTREACHED() << "Observers can only be added once!";
       return;
     }
-    observers_.push_back(obs);
+    observers_.emplace_back(ObserverStorageType(obs));
   }
 
   // Removes the given observer from this list. Does nothing if this observer is
   // not in this list.
   void RemoveObserver(const ObserverType* obs) {
     DCHECK(obs);
-    const auto it = std::find(observers_.begin(), observers_.end(), obs);
+    const auto it =
+        std::find_if(observers_.begin(), observers_.end(),
+                     [obs](const auto& o) { return o.IsEqual(obs); });
     if (it == observers_.end())
       return;
 
     DCHECK_GE(live_iterator_count_, 0);
     if (live_iterator_count_) {
-      *it = nullptr;
+      it->MarkForRemoval();
     } else {
       observers_.erase(it);
     }
@@ -270,14 +284,22 @@
 
   // Determine whether a particular observer is in the list.
   bool HasObserver(const ObserverType* obs) const {
-    return ContainsValue(observers_, obs);
+    // Client code passing null could be confused by the treatment of observers
+    // removed mid-iteration. TODO(tapted): This should probably DCHECK, but
+    // some client code currently does pass null to HasObserver().
+    if (obs == nullptr)
+      return false;
+    return std::find_if(observers_.begin(), observers_.end(),
+                        [obs](const auto& o) { return o.IsEqual(obs); }) !=
+           observers_.end();
   }
 
   // Removes all the observers from this list.
   void Clear() {
     DCHECK_GE(live_iterator_count_, 0);
     if (live_iterator_count_) {
-      std::fill(observers_.begin(), observers_.end(), nullptr);
+      for (auto& observer : observers_)
+        observer.MarkForRemoval();
     } else {
       observers_.clear();
     }
@@ -286,13 +308,12 @@
   bool might_have_observers() const { return !observers_.empty(); }
 
  private:
-  // Compacts list of observers by removing null pointers.
+  // Compacts list of observers by removing those marked for removal.
   void Compact() {
-    observers_.erase(std::remove(observers_.begin(), observers_.end(), nullptr),
-                     observers_.end());
+    EraseIf(observers_, [](const auto& o) { return o.IsMarkedForRemoval(); });
   }
 
-  std::vector<ObserverType*> observers_;
+  std::vector<ObserverStorageType> observers_;
 
   // Number of active iterators referencing this ObserverList.
   //
diff --git a/base/observer_list_internal.cc b/base/observer_list_internal.cc
new file mode 100644
index 0000000..676fd5c
--- /dev/null
+++ b/base/observer_list_internal.cc
@@ -0,0 +1,20 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/observer_list_internal.h"
+
+namespace base {
+namespace internal {
+
+CheckedObserverAdapter::CheckedObserverAdapter(const CheckedObserver* observer)
+    : weak_ptr_(observer->factory_.GetWeakPtr()) {}
+
+CheckedObserverAdapter::CheckedObserverAdapter(CheckedObserverAdapter&& other) =
+    default;
+CheckedObserverAdapter& CheckedObserverAdapter::operator=(
+    CheckedObserverAdapter&& other) = default;
+CheckedObserverAdapter::~CheckedObserverAdapter() = default;
+
+}  // namespace internal
+}  // namespace base
diff --git a/base/observer_list_internal.h b/base/observer_list_internal.h
new file mode 100644
index 0000000..14d5e22
--- /dev/null
+++ b/base/observer_list_internal.h
@@ -0,0 +1,103 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_OBSERVER_LIST_INTERNAL_H_
+#define BASE_OBSERVER_LIST_INTERNAL_H_
+
+#include "base/base_export.h"
+#include "base/logging.h"
+#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+#include "base/observer_list_types.h"
+
+namespace base {
+namespace internal {
+
+// Adapter for putting raw pointers into an ObserverList<Foo>::Unchecked.
+class BASE_EXPORT UncheckedObserverAdapter {
+ public:
+  explicit UncheckedObserverAdapter(const void* observer)
+      : ptr_(const_cast<void*>(observer)) {}
+  UncheckedObserverAdapter(UncheckedObserverAdapter&& other) = default;
+  UncheckedObserverAdapter& operator=(UncheckedObserverAdapter&& other) =
+      default;
+
+  void MarkForRemoval() { ptr_ = nullptr; }
+
+  bool IsMarkedForRemoval() const { return !ptr_; }
+  bool IsEqual(const void* rhs) const { return ptr_ == rhs; }
+
+  template <class ObserverType>
+  static ObserverType* Get(const UncheckedObserverAdapter& adapter) {
+    static_assert(
+        !std::is_base_of<CheckedObserver, ObserverType>::value,
+        "CheckedObserver classes must not use ObserverList<T>::Unchecked.");
+    return static_cast<ObserverType*>(adapter.ptr_);
+  }
+
+ private:
+  void* ptr_;
+
+  // Although copying works, disallow it to be consistent with
+  // CheckedObserverAdapter.
+  DISALLOW_COPY_AND_ASSIGN(UncheckedObserverAdapter);
+};
+
+// Adapter for CheckedObserver types so that they can use the same syntax as a
+// raw pointer when stored in the std::vector of observers in an ObserverList.
+// It wraps a WeakPtr<CheckedObserver> and allows a "null" pointer via
+// destruction to be distinguished from an observer marked for deferred removal
+// whilst an iteration is in progress.
+class BASE_EXPORT CheckedObserverAdapter {
+ public:
+  explicit CheckedObserverAdapter(const CheckedObserver* observer);
+
+  // Move-only construction and assignment is required to store this in STL
+  // types.
+  CheckedObserverAdapter(CheckedObserverAdapter&& other);
+  CheckedObserverAdapter& operator=(CheckedObserverAdapter&& other);
+  ~CheckedObserverAdapter();
+
+  void MarkForRemoval() {
+    DCHECK(weak_ptr_);
+    weak_ptr_.reset();
+  }
+
+  bool IsMarkedForRemoval() const {
+    // If |weak_ptr_| was invalidated then this attempt to iterate over the
+    // pointer is a UAF. Tip: If it's unclear where the `delete` occurred, try
+    // adding CHECK(!IsInObserverList()) to the ~CheckedObserver() (destructor)
+    // override. However, note that this is not always a bug: a destroyed
+    // observer can exist in an ObserverList so long as nothing iterates over
+    // the ObserverList before the list itself is destroyed.
+    CHECK(!weak_ptr_.WasInvalidated());
+    return weak_ptr_ == nullptr;
+  }
+
+  bool IsEqual(const CheckedObserver* rhs) const {
+    // Note that inside an iteration, ObserverList::HasObserver() may call this
+    // and |weak_ptr_| may be null due to a deferred removal, which is fine.
+    return weak_ptr_.get() == rhs;
+  }
+
+  template <class ObserverType>
+  static ObserverType* Get(const CheckedObserverAdapter& adapter) {
+    static_assert(
+        std::is_base_of<CheckedObserver, ObserverType>::value,
+        "Observers should inherit from base::CheckedObserver. "
+        "Use ObserverList<T>::Unchecked to observe with raw pointers.");
+    DCHECK(adapter.weak_ptr_);
+    return static_cast<ObserverType*>(adapter.weak_ptr_.get());
+  }
+
+ private:
+  WeakPtr<CheckedObserver> weak_ptr_;
+
+  DISALLOW_COPY_AND_ASSIGN(CheckedObserverAdapter);
+};
+
+}  // namespace internal
+}  // namespace base
+
+#endif  // BASE_OBSERVER_LIST_INTERNAL_H_
diff --git a/base/observer_list_types.cc b/base/observer_list_types.cc
new file mode 100644
index 0000000..a4441c2
--- /dev/null
+++ b/base/observer_list_types.cc
@@ -0,0 +1,16 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/observer_list_types.h"
+
+namespace base {
+
+CheckedObserver::CheckedObserver() : factory_(this) {}
+CheckedObserver::~CheckedObserver() = default;
+
+bool CheckedObserver::IsInObserverList() const {
+  return factory_.HasWeakPtrs();
+}
+
+}  // namespace base
diff --git a/base/observer_list_types.h b/base/observer_list_types.h
new file mode 100644
index 0000000..f2d9e85c
--- /dev/null
+++ b/base/observer_list_types.h
@@ -0,0 +1,49 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_OBSERVER_LIST_TYPES_H_
+#define BASE_OBSERVER_LIST_TYPES_H_
+
+#include "base/base_export.h"
+#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+
+namespace base {
+namespace internal {
+class CheckedObserverAdapter;
+}
+
+// A CheckedObserver serves as a base class for an observer interface designed
+// to be used with base::ObserverList. It helps detect potential use-after-free
+// issues that can occur when observers fail to remove themselves from an
+// observer list upon destruction.
+//
+// A CheckedObserver will CHECK() if an ObserverList iteration is attempted over
+// a destroyed Observer.
+//
+// Note that a CheckedObserver subclass must be deleted on the same thread as
+// the ObserverList(s) it is added to. This is DCHECK()ed via WeakPtr.
+class BASE_EXPORT CheckedObserver {
+ public:
+  CheckedObserver();
+
+ protected:
+  virtual ~CheckedObserver();
+
+  // Returns whether |this| is in any ObserverList. Subclasses can CHECK() this
+  // in their destructor to obtain a nicer stacktrace.
+  bool IsInObserverList() const;
+
+ private:
+  friend class internal::CheckedObserverAdapter;
+
+  // Must be mutable to allow ObserverList<const Foo>.
+  mutable WeakPtrFactory<CheckedObserver> factory_;
+
+  DISALLOW_COPY_AND_ASSIGN(CheckedObserver);
+};
+
+}  // namespace base
+
+#endif  // BASE_OBSERVER_LIST_TYPES_H_
diff --git a/base/observer_list_unittest.cc b/base/observer_list_unittest.cc
index 449aee5..4a7d3db 100644
--- a/base/observer_list_unittest.cc
+++ b/base/observer_list_unittest.cc
@@ -13,17 +13,48 @@
 namespace base {
 namespace {
 
-class Foo {
+class CheckedBase : public CheckedObserver {
  public:
   virtual void Observe(int x) = 0;
-  virtual ~Foo() = default;
+  ~CheckedBase() override = default;
   virtual int GetValue() const { return 0; }
 };
 
-class Adder : public Foo {
+class UncheckedBase {
  public:
-  explicit Adder(int scaler) : total(0), scaler_(scaler) {}
-  ~Adder() override = default;
+  virtual void Observe(int x) = 0;
+  virtual ~UncheckedBase() = default;
+  virtual int GetValue() const { return 0; }
+};
+
+// Helper for TYPED_TEST_CASE machinery to pick the ObserverList under test.
+// Keyed off the observer type since ObserverList has too many template args and
+// it gets ugly.
+template <class Foo>
+struct PickObserverList {};
+template <>
+struct PickObserverList<CheckedBase> {
+  template <class TypeParam,
+            bool check_empty = false,
+            bool allow_reentrancy = true>
+  using ObserverListType =
+      ObserverList<TypeParam, check_empty, allow_reentrancy>;
+};
+template <>
+struct PickObserverList<UncheckedBase> {
+  template <class TypeParam,
+            bool check_empty = false,
+            bool allow_reentrancy = true>
+  using ObserverListType = typename ObserverList<TypeParam,
+                                                 check_empty,
+                                                 allow_reentrancy>::Unchecked;
+};
+
+template <class Foo>
+class AdderT : public Foo {
+ public:
+  explicit AdderT(int scaler) : total(0), scaler_(scaler) {}
+  ~AdderT() override = default;
 
   void Observe(int x) override { total += x * scaler_; }
   int GetValue() const override { return total; }
@@ -34,16 +65,18 @@
   int scaler_;
 };
 
-class Disrupter : public Foo {
+template <class ObserverListType,
+          class Foo = typename ObserverListType::value_type>
+class DisrupterT : public Foo {
  public:
-  Disrupter(ObserverList<Foo>* list, Foo* doomed, bool remove_self)
+  DisrupterT(ObserverListType* list, Foo* doomed, bool remove_self)
       : list_(list), doomed_(doomed), remove_self_(remove_self) {}
-  Disrupter(ObserverList<Foo>* list, Foo* doomed)
-      : Disrupter(list, doomed, false) {}
-  Disrupter(ObserverList<Foo>* list, bool remove_self)
-      : Disrupter(list, nullptr, remove_self) {}
+  DisrupterT(ObserverListType* list, Foo* doomed)
+      : DisrupterT(list, doomed, false) {}
+  DisrupterT(ObserverListType* list, bool remove_self)
+      : DisrupterT(list, nullptr, remove_self) {}
 
-  ~Disrupter() override = default;
+  ~DisrupterT() override = default;
 
   void Observe(int x) override {
     if (remove_self_)
@@ -55,14 +88,16 @@
   void SetDoomed(Foo* doomed) { doomed_ = doomed; }
 
  private:
-  ObserverList<Foo>* list_;
+  ObserverListType* list_;
   Foo* doomed_;
   bool remove_self_;
 };
 
+template <class ObserverListType,
+          class Foo = typename ObserverListType::value_type>
 class AddInObserve : public Foo {
  public:
-  explicit AddInObserve(ObserverList<Foo>* observer_list)
+  explicit AddInObserve(ObserverListType* observer_list)
       : observer_list(observer_list), to_add_() {}
 
   void SetToAdd(Foo* to_add) { to_add_ = to_add; }
@@ -74,24 +109,89 @@
     }
   }
 
-  ObserverList<Foo>* observer_list;
+  ObserverListType* observer_list;
   Foo* to_add_;
 };
 
 }  // namespace
 
-TEST(ObserverListTest, BasicTest) {
-  ObserverList<Foo> observer_list;
-  const ObserverList<Foo>& const_observer_list = observer_list;
+class ObserverListTestBase {
+ public:
+  ObserverListTestBase() {}
+
+  template <class T>
+  const decltype(T::list_) list(const T& iter) {
+    return iter.list_;
+  }
+
+  template <class T>
+  typename T::value_type* GetCurrent(T* iter) {
+    return iter->GetCurrent();
+  }
+
+  // Override GetCurrent() for CheckedObserver. When StdIteratorRemoveFront
+  // tries to simulate a sequence to see if it "would" crash, CheckedObservers
+  // do, actually, crash with a DCHECK(). Note this check is different to the
+  // check during an observer _iteration_. Hence, DCHECK(), not CHECK().
+  CheckedBase* GetCurrent(ObserverList<CheckedBase>::iterator* iter) {
+    EXPECT_DCHECK_DEATH(return iter->GetCurrent());
+    return nullptr;
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ObserverListTestBase);
+};
+
+// Templatized test fixture that can pick between CheckedBase and UncheckedBase.
+template <class ObserverType>
+class ObserverListTest : public ObserverListTestBase, public ::testing::Test {
+ public:
+  template <class T>
+  using ObserverList =
+      typename PickObserverList<ObserverType>::template ObserverListType<T>;
+
+  using iterator = typename ObserverList<ObserverType>::iterator;
+  using const_iterator = typename ObserverList<ObserverType>::const_iterator;
+
+  ObserverListTest() {}
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ObserverListTest);
+};
+
+using ObserverTypes = ::testing::Types<CheckedBase, UncheckedBase>;
+TYPED_TEST_CASE(ObserverListTest, ObserverTypes);
+
+// TYPED_TEST causes the test parent class to be a template parameter, which
+// makes the syntax for referring to the types awkward. Create aliases in local
+// scope with clearer names. Unfortunately, we also need some trailing cruft to
+// avoid "unused local type alias" warnings.
+#define DECLARE_TYPES                                                       \
+  using Foo = TypeParam;                                                    \
+  using ObserverListFoo =                                                   \
+      typename PickObserverList<TypeParam>::template ObserverListType<Foo>; \
+  using Adder = AdderT<Foo>;                                                \
+  using Disrupter = DisrupterT<ObserverListFoo>;                            \
+  using const_iterator = typename TestFixture::const_iterator;              \
+  using iterator = typename TestFixture::iterator;                          \
+  (void)(Disrupter*)(0);                                                    \
+  (void)(Adder*)(0);                                                        \
+  (void)(const_iterator*)(0);                                               \
+  (void)(iterator*)(0);
+
+TYPED_TEST(ObserverListTest, BasicTest) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
+  const ObserverListFoo& const_observer_list = observer_list;
 
   {
-    const ObserverList<Foo>::const_iterator it1 = const_observer_list.begin();
+    const const_iterator it1 = const_observer_list.begin();
     EXPECT_EQ(it1, const_observer_list.end());
     // Iterator copy.
-    const ObserverList<Foo>::const_iterator it2 = it1;
+    const const_iterator it2 = it1;
     EXPECT_EQ(it2, it1);
     // Iterator assignment.
-    ObserverList<Foo>::const_iterator it3;
+    const_iterator it3;
     it3 = it2;
     EXPECT_EQ(it3, it1);
     EXPECT_EQ(it3, it2);
@@ -102,13 +202,13 @@
   }
 
   {
-    const ObserverList<Foo>::iterator it1 = observer_list.begin();
+    const iterator it1 = observer_list.begin();
     EXPECT_EQ(it1, observer_list.end());
     // Iterator copy.
-    const ObserverList<Foo>::iterator it2 = it1;
+    const iterator it2 = it1;
     EXPECT_EQ(it2, it1);
     // Iterator assignment.
-    ObserverList<Foo>::iterator it3;
+    iterator it3;
     it3 = it2;
     EXPECT_EQ(it3, it1);
     EXPECT_EQ(it3, it2);
@@ -128,14 +228,14 @@
   EXPECT_FALSE(const_observer_list.HasObserver(&c));
 
   {
-    const ObserverList<Foo>::const_iterator it1 = const_observer_list.begin();
+    const const_iterator it1 = const_observer_list.begin();
     EXPECT_NE(it1, const_observer_list.end());
     // Iterator copy.
-    const ObserverList<Foo>::const_iterator it2 = it1;
+    const const_iterator it2 = it1;
     EXPECT_EQ(it2, it1);
     EXPECT_NE(it2, const_observer_list.end());
     // Iterator assignment.
-    ObserverList<Foo>::const_iterator it3;
+    const_iterator it3;
     it3 = it2;
     EXPECT_EQ(it3, it1);
     EXPECT_EQ(it3, it2);
@@ -144,21 +244,21 @@
     EXPECT_EQ(it3, it1);
     EXPECT_EQ(it3, it2);
     // Iterator post increment.
-    ObserverList<Foo>::const_iterator it4 = it3++;
+    const_iterator it4 = it3++;
     EXPECT_EQ(it4, it1);
     EXPECT_EQ(it4, it2);
     EXPECT_NE(it4, it3);
   }
 
   {
-    const ObserverList<Foo>::iterator it1 = observer_list.begin();
+    const iterator it1 = observer_list.begin();
     EXPECT_NE(it1, observer_list.end());
     // Iterator copy.
-    const ObserverList<Foo>::iterator it2 = it1;
+    const iterator it2 = it1;
     EXPECT_EQ(it2, it1);
     EXPECT_NE(it2, observer_list.end());
     // Iterator assignment.
-    ObserverList<Foo>::iterator it3;
+    iterator it3;
     it3 = it2;
     EXPECT_EQ(it3, it1);
     EXPECT_EQ(it3, it2);
@@ -167,7 +267,7 @@
     EXPECT_EQ(it3, it1);
     EXPECT_EQ(it3, it2);
     // Iterator post increment.
-    ObserverList<Foo>::iterator it4 = it3++;
+    iterator it4 = it3++;
     EXPECT_EQ(it4, it1);
     EXPECT_EQ(it4, it2);
     EXPECT_NE(it4, it3);
@@ -193,9 +293,13 @@
   EXPECT_EQ(0, e.total);
 }
 
-TEST(ObserverListTest, CompactsWhenNoActiveIterator) {
-  ObserverList<const Foo> ol;
-  const ObserverList<const Foo>& col = ol;
+TYPED_TEST(ObserverListTest, CompactsWhenNoActiveIterator) {
+  DECLARE_TYPES;
+  using ObserverListConstFoo =
+      typename TestFixture::template ObserverList<const Foo>;
+
+  ObserverListConstFoo ol;
+  const ObserverListConstFoo& col = ol;
 
   const Adder a(1);
   const Adder b(2);
@@ -209,7 +313,7 @@
 
   EXPECT_TRUE(col.might_have_observers());
 
-  using It = ObserverList<const Foo>::const_iterator;
+  using It = typename ObserverListConstFoo::const_iterator;
 
   {
     It it = col.begin();
@@ -263,8 +367,9 @@
   EXPECT_FALSE(col.might_have_observers());
 }
 
-TEST(ObserverListTest, DisruptSelf) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, DisruptSelf) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1), c(1), d(-1);
   Disrupter evil(&observer_list, true);
 
@@ -287,8 +392,9 @@
   EXPECT_EQ(-10, d.total);
 }
 
-TEST(ObserverListTest, DisruptBefore) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, DisruptBefore) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1), c(1), d(-1);
   Disrupter evil(&observer_list, &b);
 
@@ -309,10 +415,11 @@
   EXPECT_EQ(-20, d.total);
 }
 
-TEST(ObserverListTest, Existing) {
-  ObserverList<Foo> observer_list(ObserverListPolicy::EXISTING_ONLY);
+TYPED_TEST(ObserverListTest, Existing) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list(ObserverListPolicy::EXISTING_ONLY);
   Adder a(1);
-  AddInObserve b(&observer_list);
+  AddInObserve<ObserverListFoo> b(&observer_list);
   Adder c(1);
   b.SetToAdd(&c);
 
@@ -333,9 +440,11 @@
   EXPECT_EQ(1, c.total);
 }
 
+template <class ObserverListType,
+          class Foo = typename ObserverListType::value_type>
 class AddInClearObserve : public Foo {
  public:
-  explicit AddInClearObserve(ObserverList<Foo>* list)
+  explicit AddInClearObserve(ObserverListType* list)
       : list_(list), added_(false), adder_(1) {}
 
   void Observe(int /* x */) override {
@@ -345,18 +454,19 @@
   }
 
   bool added() const { return added_; }
-  const Adder& adder() const { return adder_; }
+  const AdderT<Foo>& adder() const { return adder_; }
 
  private:
-  ObserverList<Foo>* const list_;
+  ObserverListType* const list_;
 
   bool added_;
-  Adder adder_;
+  AdderT<Foo> adder_;
 };
 
-TEST(ObserverListTest, ClearNotifyAll) {
-  ObserverList<Foo> observer_list;
-  AddInClearObserve a(&observer_list);
+TYPED_TEST(ObserverListTest, ClearNotifyAll) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
+  AddInClearObserve<ObserverListFoo> a(&observer_list);
 
   observer_list.AddObserver(&a);
 
@@ -367,9 +477,10 @@
       << "Adder should observe once and have sum of 1.";
 }
 
-TEST(ObserverListTest, ClearNotifyExistingOnly) {
-  ObserverList<Foo> observer_list(ObserverListPolicy::EXISTING_ONLY);
-  AddInClearObserve a(&observer_list);
+TYPED_TEST(ObserverListTest, ClearNotifyExistingOnly) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list(ObserverListPolicy::EXISTING_ONLY);
+  AddInClearObserve<ObserverListFoo> a(&observer_list);
 
   observer_list.AddObserver(&a);
 
@@ -380,21 +491,23 @@
       << "Adder should not observe, so sum should still be 0.";
 }
 
+template <class ObserverListType,
+          class Foo = typename ObserverListType::value_type>
 class ListDestructor : public Foo {
  public:
-  explicit ListDestructor(ObserverList<Foo>* list) : list_(list) {}
+  explicit ListDestructor(ObserverListType* list) : list_(list) {}
   ~ListDestructor() override = default;
 
   void Observe(int x) override { delete list_; }
 
  private:
-  ObserverList<Foo>* list_;
+  ObserverListType* list_;
 };
 
-
-TEST(ObserverListTest, IteratorOutlivesList) {
-  ObserverList<Foo>* observer_list = new ObserverList<Foo>;
-  ListDestructor a(observer_list);
+TYPED_TEST(ObserverListTest, IteratorOutlivesList) {
+  DECLARE_TYPES;
+  ObserverListFoo* observer_list = new ObserverListFoo;
+  ListDestructor<ObserverListFoo> a(observer_list);
   observer_list->AddObserver(&a);
 
   for (auto& observer : *observer_list)
@@ -405,14 +518,14 @@
   // this test has failed.  See http://crbug.com/85296.
 }
 
-TEST(ObserverListTest, BasicStdIterator) {
-  using FooList = ObserverList<Foo>;
-  FooList observer_list;
+TYPED_TEST(ObserverListTest, BasicStdIterator) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
 
   // An optimization: begin() and end() do not involve weak pointers on
   // empty list.
-  EXPECT_FALSE(observer_list.begin().list_);
-  EXPECT_FALSE(observer_list.end().list_);
+  EXPECT_FALSE(this->list(observer_list.begin()));
+  EXPECT_FALSE(this->list(observer_list.end()));
 
   // Iterate over empty list: no effect, no crash.
   for (auto& i : observer_list)
@@ -425,8 +538,7 @@
   observer_list.AddObserver(&c);
   observer_list.AddObserver(&d);
 
-  for (FooList::iterator i = observer_list.begin(), e = observer_list.end();
-       i != e; ++i)
+  for (iterator i = observer_list.begin(), e = observer_list.end(); i != e; ++i)
     i->Observe(1);
 
   EXPECT_EQ(1, a.total);
@@ -435,9 +547,9 @@
   EXPECT_EQ(-1, d.total);
 
   // Check an iteration over a 'const view' for a given container.
-  const FooList& const_list = observer_list;
-  for (FooList::const_iterator i = const_list.begin(), e = const_list.end();
-       i != e; ++i) {
+  const ObserverListFoo& const_list = observer_list;
+  for (const_iterator i = const_list.begin(), e = const_list.end(); i != e;
+       ++i) {
     EXPECT_EQ(1, std::abs(i->GetValue()));
   }
 
@@ -445,8 +557,9 @@
     EXPECT_EQ(1, std::abs(o.GetValue()));
 }
 
-TEST(ObserverListTest, StdIteratorRemoveItself) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, StdIteratorRemoveItself) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1), c(1), d(-1);
   Disrupter disrupter(&observer_list, true);
 
@@ -468,8 +581,9 @@
   EXPECT_EQ(-11, d.total);
 }
 
-TEST(ObserverListTest, StdIteratorRemoveBefore) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, StdIteratorRemoveBefore) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1), c(1), d(-1);
   Disrupter disrupter(&observer_list, &b);
 
@@ -491,8 +605,9 @@
   EXPECT_EQ(-11, d.total);
 }
 
-TEST(ObserverListTest, StdIteratorRemoveAfter) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, StdIteratorRemoveAfter) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1), c(1), d(-1);
   Disrupter disrupter(&observer_list, &c);
 
@@ -514,8 +629,9 @@
   EXPECT_EQ(-11, d.total);
 }
 
-TEST(ObserverListTest, StdIteratorRemoveAfterFront) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, StdIteratorRemoveAfterFront) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1), c(1), d(-1);
   Disrupter disrupter(&observer_list, &a);
 
@@ -537,8 +653,9 @@
   EXPECT_EQ(-11, d.total);
 }
 
-TEST(ObserverListTest, StdIteratorRemoveBeforeBack) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, StdIteratorRemoveBeforeBack) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1), c(1), d(-1);
   Disrupter disrupter(&observer_list, &d);
 
@@ -560,9 +677,10 @@
   EXPECT_EQ(0, d.total);
 }
 
-TEST(ObserverListTest, StdIteratorRemoveFront) {
-  using FooList = ObserverList<Foo>;
-  FooList observer_list;
+TYPED_TEST(ObserverListTest, StdIteratorRemoveFront) {
+  DECLARE_TYPES;
+  using iterator = typename TestFixture::iterator;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1), c(1), d(-1);
   Disrupter disrupter(&observer_list, true);
 
@@ -573,12 +691,12 @@
   observer_list.AddObserver(&d);
 
   bool test_disruptor = true;
-  for (FooList::iterator i = observer_list.begin(), e = observer_list.end();
-       i != e; ++i) {
+  for (iterator i = observer_list.begin(), e = observer_list.end(); i != e;
+       ++i) {
     i->Observe(1);
     // Check that second call to i->Observe() would crash here.
     if (test_disruptor) {
-      EXPECT_FALSE(i.GetCurrent());
+      EXPECT_FALSE(this->GetCurrent(&i));
       test_disruptor = false;
     }
   }
@@ -592,8 +710,9 @@
   EXPECT_EQ(-11, d.total);
 }
 
-TEST(ObserverListTest, StdIteratorRemoveBack) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, StdIteratorRemoveBack) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1), c(1), d(-1);
   Disrupter disrupter(&observer_list, true);
 
@@ -615,8 +734,9 @@
   EXPECT_EQ(-11, d.total);
 }
 
-TEST(ObserverListTest, NestedLoop) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, NestedLoop) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1), c(1), d(-1);
   Disrupter disrupter(&observer_list, true);
 
@@ -639,8 +759,9 @@
   EXPECT_EQ(-15, d.total);
 }
 
-TEST(ObserverListTest, NonCompactList) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, NonCompactList) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1);
 
   Disrupter disrupter1(&observer_list, true);
@@ -667,8 +788,9 @@
   EXPECT_EQ(-13, b.total);
 }
 
-TEST(ObserverListTest, BecomesEmptyThanNonEmpty) {
-  ObserverList<Foo> observer_list;
+TYPED_TEST(ObserverListTest, BecomesEmptyThanNonEmpty) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
   Adder a(1), b(-1);
 
   Disrupter disrupter1(&observer_list, true);
@@ -699,9 +821,11 @@
   EXPECT_EQ(-12, b.total);
 }
 
-TEST(ObserverListTest, AddObserverInTheLastObserve) {
-  ObserverList<Foo> observer_list;
-  AddInObserve a(&observer_list);
+TYPED_TEST(ObserverListTest, AddObserverInTheLastObserve) {
+  DECLARE_TYPES;
+  ObserverListFoo observer_list;
+
+  AddInObserve<ObserverListFoo> a(&observer_list);
   Adder b(-1);
 
   a.SetToAdd(&b);
@@ -731,11 +855,12 @@
 };
 
 #if DCHECK_IS_ON()
-TEST(ObserverListTest, NonReentrantObserverList) {
-  using ::testing::_;
-
-  ObserverList<Foo, /*check_empty=*/false, /*allow_reentrancy=*/false>
-      non_reentrant_observer_list;
+TYPED_TEST(ObserverListTest, NonReentrantObserverList) {
+  DECLARE_TYPES;
+  using NonReentrantObserverListFoo = typename PickObserverList<
+      Foo>::template ObserverListType<Foo, /*check_empty=*/false,
+                                      /*allow_reentrancy=*/false>;
+  NonReentrantObserverListFoo non_reentrant_observer_list;
   Adder a(1);
   non_reentrant_observer_list.AddObserver(&a);
 
@@ -749,10 +874,12 @@
   });
 }
 
-TEST(ObserverListTest, ReentrantObserverList) {
-  using ::testing::_;
-
-  ReentrantObserverList<Foo> reentrant_observer_list;
+TYPED_TEST(ObserverListTest, ReentrantObserverList) {
+  DECLARE_TYPES;
+  using ReentrantObserverListFoo = typename PickObserverList<
+      Foo>::template ObserverListType<Foo, /*check_empty=*/false,
+                                      /*allow_reentrancy=*/true>;
+  ReentrantObserverListFoo reentrant_observer_list;
   Adder a(1);
   reentrant_observer_list.AddObserver(&a);
   bool passed = false;
@@ -767,4 +894,119 @@
 }
 #endif
 
+class TestCheckedObserver : public CheckedObserver {
+ public:
+  explicit TestCheckedObserver(int* count) : count_(count) {}
+
+  void Observe() { ++(*count_); }
+
+ private:
+  int* count_;
+
+  DISALLOW_COPY_AND_ASSIGN(TestCheckedObserver);
+};
+
+// A second, identical observer, used to test multiple inheritance.
+class TestCheckedObserver2 : public CheckedObserver {
+ public:
+  explicit TestCheckedObserver2(int* count) : count_(count) {}
+
+  void Observe() { ++(*count_); }
+
+ private:
+  int* count_;
+
+  DISALLOW_COPY_AND_ASSIGN(TestCheckedObserver2);
+};
+
+using CheckedObserverListTest = ::testing::Test;
+
+// Test Observers that CHECK() when a UAF might otherwise occur.
+TEST_F(CheckedObserverListTest, CheckedObserver) {
+  // See comments below about why this is unique_ptr.
+  auto list = std::make_unique<ObserverList<TestCheckedObserver>>();
+  int count1 = 0;
+  int count2 = 0;
+  TestCheckedObserver l1(&count1);
+  list->AddObserver(&l1);
+  {
+    TestCheckedObserver l2(&count2);
+    list->AddObserver(&l2);
+    for (auto& observer : *list)
+      observer.Observe();
+    EXPECT_EQ(1, count1);
+    EXPECT_EQ(1, count2);
+  }
+  {
+    auto it = list->begin();
+    it->Observe();
+    // For CheckedObservers, a CHECK() occurs when advancing the iterator. (On
+    // calling the observer method would be too late since the pointer would
+    // already be null by then).
+    EXPECT_CHECK_DEATH(it++);
+
+    // On the non-death fork, no UAF occurs since the deleted observer is never
+    // notified, but also the observer list still has |l2| in it. Check that.
+    list->RemoveObserver(&l1);
+    EXPECT_TRUE(list->might_have_observers());
+
+    // Now (in the non-death fork()) there's a problem. To delete |it|, we need
+    // to compact the list, but that needs to iterate, which would CHECK again.
+    // We can't remove |l2| (it's null). But we can delete |list|, which makes
+    // the weak pointer in the iterator itself null.
+    list.reset();
+  }
+  EXPECT_EQ(2, count1);
+  EXPECT_EQ(1, count2);
+}
+
+class MultiObserver : public TestCheckedObserver,
+                      public TestCheckedObserver2,
+                      public AdderT<UncheckedBase> {
+ public:
+  MultiObserver(int* checked_count, int* two_count)
+      : TestCheckedObserver(checked_count),
+        TestCheckedObserver2(two_count),
+        AdderT(1) {}
+};
+
+// Test that observers behave as expected when observing multiple interfaces
+// with different traits.
+TEST_F(CheckedObserverListTest, MultiObserver) {
+  // Observe two checked observer lists. This is to ensure the WeakPtrFactory
+  // in CheckedObserver can correctly service multiple ObserverLists.
+  ObserverList<TestCheckedObserver> checked_list;
+  ObserverList<TestCheckedObserver2> two_list;
+
+  ObserverList<UncheckedBase>::Unchecked unsafe_list;
+
+  int counts[2] = {};
+
+  auto observer = std::make_unique<MultiObserver>(&counts[0], &counts[1]);
+  two_list.AddObserver(observer.get());
+  checked_list.AddObserver(observer.get());
+  unsafe_list.AddObserver(observer.get());
+
+  auto iterate_over = [](auto* list) {
+    for (auto& observer : *list)
+      observer.Observe();
+  };
+  iterate_over(&two_list);
+  iterate_over(&checked_list);
+  for (auto& observer : unsafe_list)
+    observer.Observe(10);
+
+  EXPECT_EQ(10, observer->GetValue());
+  for (const auto& count : counts)
+    EXPECT_EQ(1, count);
+
+  unsafe_list.RemoveObserver(observer.get());  // Avoid a use-after-free.
+
+  observer.reset();
+  EXPECT_CHECK_DEATH(iterate_over(&checked_list));
+
+  for (const auto& count : counts)
+    EXPECT_EQ(1, count);
+}
+
 }  // namespace base
diff --git a/base/observer_list_unittest.nc b/base/observer_list_unittest.nc
new file mode 100644
index 0000000..3643cd0
--- /dev/null
+++ b/base/observer_list_unittest.nc
@@ -0,0 +1,38 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This is a "No Compile Test" suite.
+// http://dev.chromium.org/developers/testing/no-compile-tests
+
+#include <type_traits>
+
+#include "base/observer_list.h"
+
+namespace base {
+
+#if defined(NCTEST_CHECKED_OBSERVER_USING_UNCHECKED_LIST)  // [r"fatal error: static_assert failed due to requirement '!std::is_base_of<CheckedObserver, Observer>::value' \"CheckedObserver classes must not use ObserverList<T>::Unchecked.\""]
+
+void WontCompile() {
+  struct Observer : public CheckedObserver {
+    void OnObserve() {}
+  };
+  ObserverList<Observer>::Unchecked list;
+  for (auto& observer: list)
+    observer.OnObserve();
+}
+
+#elif defined(NCTEST_UNCHECKED_OBSERVER_USING_CHECKED_LIST)  // [r"fatal error: static_assert failed due to requirement 'std::is_base_of<CheckedObserver, UncheckedObserver>::value' \"Observers should inherit from base::CheckedObserver. Use ObserverList<T>::Unchecked to observe with raw pointers.\""]
+
+void WontCompile() {
+  struct UncheckedObserver {
+    void OnObserve() {}
+  };
+  ObserverList<UncheckedObserver> list;
+  for (auto& observer: list)
+    observer.OnObserve();
+}
+
+#endif
+
+}  // namespace base
diff --git a/base/task/post_task.cc b/base/task/post_task.cc
index a12b7dd4..e9fc844 100644
--- a/base/task/post_task.cc
+++ b/base/task/post_task.cc
@@ -8,6 +8,7 @@
 
 #include "base/logging.h"
 #include "base/task/scoped_set_task_priority_for_current_thread.h"
+#include "base/task/task_executor.h"
 #include "base/task/task_scheduler/task_scheduler.h"
 #include "base/threading/post_task_and_reply_impl.h"
 
@@ -40,92 +41,88 @@
                               {internal::GetTaskPriorityForCurrentThread()});
 }
 
-}  // namespace
-
-void PostTask(const Location& from_here, OnceClosure task) {
-  PostDelayedTask(from_here, std::move(task), TimeDelta());
-}
-
-void PostDelayedTask(const Location& from_here,
-                     OnceClosure task,
-                     TimeDelta delay) {
-  PostDelayedTaskWithTraits(from_here, TaskTraits(), std::move(task), delay);
-}
-
-void PostTaskAndReply(const Location& from_here,
-                      OnceClosure task,
-                      OnceClosure reply) {
-  PostTaskWithTraitsAndReply(from_here, TaskTraits(), std::move(task),
-                             std::move(reply));
-}
-
-void PostTaskWithTraits(const Location& from_here,
-                        const TaskTraits& traits,
-                        OnceClosure task) {
-  PostDelayedTaskWithTraits(from_here, traits, std::move(task), TimeDelta());
-}
-
-void PostDelayedTaskWithTraits(const Location& from_here,
-                               const TaskTraits& traits,
-                               OnceClosure task,
-                               TimeDelta delay) {
+TaskExecutor* GetTaskExecutorForTraits(const TaskTraits& traits) {
   DCHECK(TaskScheduler::GetInstance())
       << "Ref. Prerequisite section of post_task.h.\n\n"
          "Hint: if this is in a unit test, you're likely merely missing a "
          "base::test::ScopedTaskEnvironment member in your fixture.\n";
-  TaskScheduler::GetInstance()->PostDelayedTaskWithTraits(
-      from_here, GetTaskTraitsWithExplicitPriority(traits), std::move(task),
-      std::move(delay));
+  TaskExecutor* executor = GetRegisteredTaskExecutorForTraits(traits);
+  return executor ? executor : TaskScheduler::GetInstance();
 }
 
-void PostTaskWithTraitsAndReply(const Location& from_here,
+}  // namespace
+
+bool PostTask(const Location& from_here, OnceClosure task) {
+  return PostDelayedTask(from_here, std::move(task), TimeDelta());
+}
+
+bool PostDelayedTask(const Location& from_here,
+                     OnceClosure task,
+                     TimeDelta delay) {
+  return PostDelayedTaskWithTraits(from_here, TaskTraits(), std::move(task),
+                                   delay);
+}
+
+bool PostTaskAndReply(const Location& from_here,
+                      OnceClosure task,
+                      OnceClosure reply) {
+  return PostTaskWithTraitsAndReply(from_here, TaskTraits(), std::move(task),
+                                    std::move(reply));
+}
+
+bool PostTaskWithTraits(const Location& from_here,
+                        const TaskTraits& traits,
+                        OnceClosure task) {
+  return PostDelayedTaskWithTraits(from_here, traits, std::move(task),
+                                   TimeDelta());
+}
+
+bool PostDelayedTaskWithTraits(const Location& from_here,
+                               const TaskTraits& traits,
+                               OnceClosure task,
+                               TimeDelta delay) {
+  const TaskTraits adjusted_traits = GetTaskTraitsWithExplicitPriority(traits);
+  return GetTaskExecutorForTraits(adjusted_traits)
+      ->PostDelayedTaskWithTraits(from_here, adjusted_traits, std::move(task),
+                                  delay);
+}
+
+bool PostTaskWithTraitsAndReply(const Location& from_here,
                                 const TaskTraits& traits,
                                 OnceClosure task,
                                 OnceClosure reply) {
-  PostTaskAndReplyWithTraitsTaskRunner(traits).PostTaskAndReply(
+  return PostTaskAndReplyWithTraitsTaskRunner(traits).PostTaskAndReply(
       from_here, std::move(task), std::move(reply));
 }
 
 scoped_refptr<TaskRunner> CreateTaskRunnerWithTraits(const TaskTraits& traits) {
-  DCHECK(TaskScheduler::GetInstance())
-      << "Ref. Prerequisite section of post_task.h.\n\n"
-         "Hint: if this is in a unit test, you're likely merely missing a "
-         "base::test::ScopedTaskEnvironment member in your fixture.\n";
-  return TaskScheduler::GetInstance()->CreateTaskRunnerWithTraits(
-      GetTaskTraitsWithExplicitPriority(traits));
+  const TaskTraits adjusted_traits = GetTaskTraitsWithExplicitPriority(traits);
+  return GetTaskExecutorForTraits(adjusted_traits)
+      ->CreateTaskRunnerWithTraits(adjusted_traits);
 }
 
 scoped_refptr<SequencedTaskRunner> CreateSequencedTaskRunnerWithTraits(
     const TaskTraits& traits) {
-  DCHECK(TaskScheduler::GetInstance())
-      << "Ref. Prerequisite section of post_task.h.\n\n"
-         "Hint: if this is in a unit test, you're likely merely missing a "
-         "base::test::ScopedTaskEnvironment member in your fixture.\n";
-  return TaskScheduler::GetInstance()->CreateSequencedTaskRunnerWithTraits(
-      GetTaskTraitsWithExplicitPriority(traits));
+  const TaskTraits adjusted_traits = GetTaskTraitsWithExplicitPriority(traits);
+  return GetTaskExecutorForTraits(adjusted_traits)
+      ->CreateSequencedTaskRunnerWithTraits(adjusted_traits);
 }
 
 scoped_refptr<SingleThreadTaskRunner> CreateSingleThreadTaskRunnerWithTraits(
     const TaskTraits& traits,
     SingleThreadTaskRunnerThreadMode thread_mode) {
-  DCHECK(TaskScheduler::GetInstance())
-      << "Ref. Prerequisite section of post_task.h.\n\n"
-         "Hint: if this is in a unit test, you're likely merely missing a "
-         "base::test::ScopedTaskEnvironment member in your fixture.\n";
-  return TaskScheduler::GetInstance()->CreateSingleThreadTaskRunnerWithTraits(
-      GetTaskTraitsWithExplicitPriority(traits), thread_mode);
+  const TaskTraits adjusted_traits = GetTaskTraitsWithExplicitPriority(traits);
+  return GetTaskExecutorForTraits(adjusted_traits)
+      ->CreateSingleThreadTaskRunnerWithTraits(adjusted_traits, thread_mode);
 }
 
 #if defined(OS_WIN)
 scoped_refptr<SingleThreadTaskRunner> CreateCOMSTATaskRunnerWithTraits(
     const TaskTraits& traits,
     SingleThreadTaskRunnerThreadMode thread_mode) {
-  DCHECK(TaskScheduler::GetInstance())
-      << "Ref. Prerequisite section of post_task.h.\n\n"
-         "Hint: if this is in a unit test, you're likely merely missing a "
-         "base::test::ScopedTaskEnvironment member in your fixture.\n";
-  return TaskScheduler::GetInstance()->CreateCOMSTATaskRunnerWithTraits(
-      GetTaskTraitsWithExplicitPriority(traits), thread_mode);
+  const TaskTraits adjusted_traits = GetTaskTraitsWithExplicitPriority(traits);
+  return GetTaskExecutorForTraits(adjusted_traits)
+      ->CreateCOMSTATaskRunnerWithTraits(adjusted_traits, thread_mode);
 }
 #endif  // defined(OS_WIN)
 
diff --git a/base/task/post_task.h b/base/task/post_task.h
index 278cf42..7a29593d 100644
--- a/base/task/post_task.h
+++ b/base/task/post_task.h
@@ -24,43 +24,44 @@
 
 namespace base {
 
-// This is the interface to post tasks to the TaskScheduler.
+// This is the interface to post tasks.
 //
-// To post a simple one-off task with default traits:
-//     PostTask(FROM_HERE, Bind(...));
+// To post a simple one-off task with default traits: PostTask(FROM_HERE,
+//     Bind(...));
 //
 // To post a high priority one-off task to respond to a user interaction:
-//     PostTaskWithTraits(
-//         FROM_HERE,
-//         {TaskPriority::USER_BLOCKING},
-//         Bind(...));
+//     PostTaskWithTraits(FROM_HERE, {TaskPriority::USER_BLOCKING}, Bind(...));
 //
 // To post tasks that must run in sequence with default traits:
 //     scoped_refptr<SequencedTaskRunner> task_runner =
-//         CreateSequencedTaskRunnerWithTraits(TaskTraits());
+//     CreateSequencedTaskRunnerWithTraits(TaskTraits());
 //     task_runner.PostTask(FROM_HERE, Bind(...));
 //     task_runner.PostTask(FROM_HERE, Bind(...));
 //
 // To post tasks that may block, must run in sequence and can be skipped on
-// shutdown:
-//     scoped_refptr<SequencedTaskRunner> task_runner =
-//         CreateSequencedTaskRunnerWithTraits(
-//             {MayBlock(), TaskShutdownBehavior::SKIP_ON_SHUTDOWN});
-//     task_runner.PostTask(FROM_HERE, Bind(...));
-//     task_runner.PostTask(FROM_HERE, Bind(...));
+// shutdown: scoped_refptr<SequencedTaskRunner> task_runner =
+// CreateSequencedTaskRunnerWithTraits({MayBlock(),
+// TaskShutdownBehavior::SKIP_ON_SHUTDOWN}); task_runner.PostTask(FROM_HERE,
+// Bind(...)); task_runner.PostTask(FROM_HERE, Bind(...));
 //
-// The default traits apply to tasks that:
-//     (1) don't block (ref. MayBlock() and WithBaseSyncPrimitives()),
-//     (2) prefer inheriting the current priority to specifying their own, and
-//     (3) can either block shutdown or be skipped on shutdown
-//         (TaskScheduler implementation is free to choose a fitting default).
-// Explicit traits must be specified for tasks for which these loose
-// requirements are not sufficient.
+// The default traits apply to tasks that: (1) don't block (ref. MayBlock() and
+//     WithBaseSyncPrimitives()), (2) prefer inheriting the current priority to
+//     specifying their own, and (3) can either block shutdown or be skipped on
+//     shutdown (implementation is free to choose a fitting default). Explicit
+//     traits must be specified for tasks for which these loose requirements are
+//     not sufficient.
 //
-// Tasks posted through functions below will run on threads owned by the
-// registered TaskScheduler (i.e. not on the main thread). Tasks posted through
-// functions below with a delay may be coalesced (i.e. delays may be adjusted to
-// reduce the number of wakeups and hence power consumption).
+// Tasks posted with only traits defined in base/task/task_traits.h run on
+// threads owned by the registered TaskScheduler (i.e. not on the main thread).
+// An embedder (e.g. Chrome) can define additional traits to make tasks run on
+// threads of their choosing. TODO(https://crbug.com/863341): Make this a
+// reality.
+//
+// Tasks posted with the same traits will be scheduled in the order they were
+// posted. IMPORTANT: Please note however that, unless the traits imply a
+// single thread or sequence, this doesn't guarantee any *execution ordering*
+// for tasks posted in a given order (being scheduled first doesn't mean it will
+// run first -- could run in parallel or have its physical thread preempted).
 //
 // Prerequisite: A TaskScheduler must have been registered for the current
 // process via TaskScheduler::SetInstance() before the functions below are
@@ -69,40 +70,30 @@
 // have to worry about this. You will encounter DCHECKs or nullptr dereferences
 // if this is violated. For tests, prefer base::test::ScopedTaskEnvironment.
 
-// Posts |task| to the TaskScheduler. Calling this is equivalent to calling
-// PostTaskWithTraits with plain TaskTraits.
-BASE_EXPORT void PostTask(const Location& from_here, OnceClosure task);
+// Equivalent to calling PostTaskWithTraits with default TaskTraits.
+BASE_EXPORT bool PostTask(const Location& from_here, OnceClosure task);
 
-// Posts |task| to the TaskScheduler. |task| will not run before |delay|
-// expires. Calling this is equivalent to calling PostDelayedTaskWithTraits with
-// plain TaskTraits.
+// Equivalent to calling PostDelayedTaskWithTraits with default TaskTraits.
 //
 // Use PostDelayedTaskWithTraits to specify a BEST_EFFORT priority if the task
 // doesn't have to run as soon as |delay| expires.
-BASE_EXPORT void PostDelayedTask(const Location& from_here,
+BASE_EXPORT bool PostDelayedTask(const Location& from_here,
                                  OnceClosure task,
                                  TimeDelta delay);
 
-// Posts |task| to the TaskScheduler and posts |reply| on the caller's execution
-// context (i.e. same sequence or thread and same TaskTraits if applicable) when
-// |task| completes. Calling this is equivalent to calling
-// PostTaskWithTraitsAndReply with plain TaskTraits. Can only be called when
-// SequencedTaskRunnerHandle::IsSet().
-BASE_EXPORT void PostTaskAndReply(const Location& from_here,
+// Equivalent to calling PostTaskWithTraitsAndReply with default TaskTraits.
+BASE_EXPORT bool PostTaskAndReply(const Location& from_here,
                                   OnceClosure task,
                                   OnceClosure reply);
 
-// Posts |task| to the TaskScheduler and posts |reply| with the return value of
-// |task| as argument on the caller's execution context (i.e. same sequence or
-// thread and same TaskTraits if applicable) when |task| completes. Calling this
-// is equivalent to calling PostTaskWithTraitsAndReplyWithResult with plain
-// TaskTraits. Can only be called when SequencedTaskRunnerHandle::IsSet().
+// Equivalent to calling PostTaskWithTraitsAndReplyWithResult with default
+// TaskTraits.
 template <typename TaskReturnType, typename ReplyArgType>
-void PostTaskAndReplyWithResult(const Location& from_here,
+bool PostTaskAndReplyWithResult(const Location& from_here,
                                 OnceCallback<TaskReturnType()> task,
                                 OnceCallback<void(ReplyArgType)> reply) {
-  PostTaskWithTraitsAndReplyWithResult(from_here, TaskTraits(), std::move(task),
-                                       std::move(reply));
+  return PostTaskWithTraitsAndReplyWithResult(
+      from_here, TaskTraits(), std::move(task), std::move(reply));
 }
 
 // Callback version of PostTaskAndReplyWithResult above.
@@ -111,44 +102,48 @@
 // overload resolution.
 // TODO(tzik): Update all callers of the Callback version to use OnceCallback.
 template <typename TaskReturnType, typename ReplyArgType>
-void PostTaskAndReplyWithResult(const Location& from_here,
+bool PostTaskAndReplyWithResult(const Location& from_here,
                                 Callback<TaskReturnType()> task,
                                 Callback<void(ReplyArgType)> reply) {
-  PostTaskAndReplyWithResult(
+  return PostTaskAndReplyWithResult(
       from_here, OnceCallback<TaskReturnType()>(std::move(task)),
       OnceCallback<void(ReplyArgType)>(std::move(reply)));
 }
 
-// Posts |task| with specific |traits| to the TaskScheduler.
-BASE_EXPORT void PostTaskWithTraits(const Location& from_here,
+// Posts |task| with specific |traits|. Returns false if the task definitely
+// won't run because of current shutdown state.
+BASE_EXPORT bool PostTaskWithTraits(const Location& from_here,
                                     const TaskTraits& traits,
                                     OnceClosure task);
 
-// Posts |task| with specific |traits| to the TaskScheduler. |task| will not run
-// before |delay| expires.
+// Posts |task| with specific |traits|. |task| will not run before |delay|
+// expires. Returns false if the task definitely won't run because of current
+// shutdown state.
 //
 // Specify a BEST_EFFORT priority via |traits| if the task doesn't have to run
 // as soon as |delay| expires.
-BASE_EXPORT void PostDelayedTaskWithTraits(const Location& from_here,
+BASE_EXPORT bool PostDelayedTaskWithTraits(const Location& from_here,
                                            const TaskTraits& traits,
                                            OnceClosure task,
                                            TimeDelta delay);
 
-// Posts |task| with specific |traits| to the TaskScheduler and posts |reply| on
-// the caller's execution context (i.e. same sequence or thread and same
-// TaskTraits if applicable) when |task| completes. Can only be called when
+// Posts |task| with specific |traits| and posts |reply| on the caller's
+// execution context (i.e. same sequence or thread and same TaskTraits if
+// applicable) when |task| completes. Returns false if the task definitely won't
+// run because of current shutdown state. Can only be called when
 // SequencedTaskRunnerHandle::IsSet().
-BASE_EXPORT void PostTaskWithTraitsAndReply(const Location& from_here,
+BASE_EXPORT bool PostTaskWithTraitsAndReply(const Location& from_here,
                                             const TaskTraits& traits,
                                             OnceClosure task,
                                             OnceClosure reply);
 
-// Posts |task| with specific |traits| to the TaskScheduler and posts |reply|
-// with the return value of |task| as argument on the caller's execution context
-// (i.e. same sequence or thread and same TaskTraits if applicable) when |task|
-// completes. Can only be called when SequencedTaskRunnerHandle::IsSet().
+// Posts |task| with specific |traits| and posts |reply| with the return value
+// of |task| as argument on the caller's execution context (i.e. same sequence
+// or thread and same TaskTraits if applicable) when |task| completes. Returns
+// false if the task definitely won't run because of current shutdown state. Can
+// only be called when SequencedTaskRunnerHandle::IsSet().
 template <typename TaskReturnType, typename ReplyArgType>
-void PostTaskWithTraitsAndReplyWithResult(
+bool PostTaskWithTraitsAndReplyWithResult(
     const Location& from_here,
     const TaskTraits& traits,
     OnceCallback<TaskReturnType()> task,
@@ -168,11 +163,11 @@
 // overload resolution.
 // TODO(tzik): Update all callers of the Callback version to use OnceCallback.
 template <typename TaskReturnType, typename ReplyArgType>
-void PostTaskWithTraitsAndReplyWithResult(const Location& from_here,
+bool PostTaskWithTraitsAndReplyWithResult(const Location& from_here,
                                           const TaskTraits& traits,
                                           Callback<TaskReturnType()> task,
                                           Callback<void(ReplyArgType)> reply) {
-  PostTaskWithTraitsAndReplyWithResult(
+  return PostTaskWithTraitsAndReplyWithResult(
       from_here, traits, OnceCallback<TaskReturnType()>(std::move(task)),
       OnceCallback<void(ReplyArgType)>(std::move(reply)));
 }
@@ -190,7 +185,9 @@
 // Returns a SingleThreadTaskRunner whose PostTask invocations result in
 // scheduling tasks using |traits| on a thread determined by |thread_mode|. See
 // base/task/single_thread_task_runner_thread_mode.h for |thread_mode| details.
-// Tasks run on a single thread in posting order.
+// If |traits| identifies an existing thread,
+// SingleThreadTaskRunnerThreadMode::SHARED must be used. Tasks run on a single
+// thread in posting order.
 //
 // If all you need is to make sure that tasks don't run concurrently (e.g.
 // because they access a data structure which is not thread-safe), use
@@ -209,12 +206,14 @@
 // scheduling tasks using |traits| in a COM Single-Threaded Apartment on a
 // thread determined by |thread_mode|. See
 // base/task/single_thread_task_runner_thread_mode.h for |thread_mode| details.
-// Tasks run in the same Single-Threaded Apartment in posting order for the
-// returned SingleThreadTaskRunner. There is not necessarily a one-to-one
-// correspondence between SingleThreadTaskRunners and Single-Threaded
-// Apartments. The implementation is free to share apartments or create new
-// apartments as necessary. In either case, care should be taken to make sure
-// COM pointers are not smuggled across apartments.
+// If |traits| identifies an existing thread,
+// SingleThreadTaskRunnerThreadMode::SHARED must be used. Tasks run in the same
+// Single-Threaded Apartment in posting order for the returned
+// SingleThreadTaskRunner. There is not necessarily a one-to-one correspondence
+// between SingleThreadTaskRunners and Single-Threaded Apartments. The
+// implementation is free to share apartments or create new apartments as
+// necessary. In either case, care should be taken to make sure COM pointers are
+// not smuggled across apartments.
 BASE_EXPORT scoped_refptr<SingleThreadTaskRunner>
 CreateCOMSTATaskRunnerWithTraits(const TaskTraits& traits,
                                  SingleThreadTaskRunnerThreadMode thread_mode =
diff --git a/base/task/post_task_unittest.cc b/base/task/post_task_unittest.cc
new file mode 100644
index 0000000..467fdcb0
--- /dev/null
+++ b/base/task/post_task_unittest.cc
@@ -0,0 +1,189 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/task/post_task.h"
+
+#include "base/bind_helpers.h"
+#include "base/task/task_executor.h"
+#include "base/task/test_task_traits_extension.h"
+#include "base/test/scoped_task_environment.h"
+#include "base/test/test_simple_task_runner.h"
+#include "build/build_config.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using ::testing::_;
+using ::testing::Invoke;
+using ::testing::Return;
+
+namespace base {
+
+namespace {
+
+class MockTaskExecutor : public TaskExecutor {
+ public:
+  MockTaskExecutor() {
+    ON_CALL(*this, PostDelayedTaskWithTraitsMock(_, _, _, _))
+        .WillByDefault(Invoke([this](const Location& from_here,
+                                     const TaskTraits& traits,
+                                     OnceClosure& task, TimeDelta delay) {
+          return runner_->PostDelayedTask(from_here, std::move(task), delay);
+        }));
+    ON_CALL(*this, CreateTaskRunnerWithTraits(_))
+        .WillByDefault(Return(runner_));
+    ON_CALL(*this, CreateSequencedTaskRunnerWithTraits(_))
+        .WillByDefault(Return(runner_));
+    ON_CALL(*this, CreateSingleThreadTaskRunnerWithTraits(_, _))
+        .WillByDefault(Return(runner_));
+#if defined(OS_WIN)
+    ON_CALL(*this, CreateCOMSTATaskRunnerWithTraits(_, _))
+        .WillByDefault(Return(runner_));
+#endif  // defined(OS_WIN)
+  }
+
+  // TaskExecutor:
+  // Helper because gmock doesn't support move-only types.
+  bool PostDelayedTaskWithTraits(const Location& from_here,
+                                 const TaskTraits& traits,
+                                 OnceClosure task,
+                                 TimeDelta delay) override {
+    return PostDelayedTaskWithTraitsMock(from_here, traits, task, delay);
+  }
+  MOCK_METHOD4(PostDelayedTaskWithTraitsMock,
+               bool(const Location& from_here,
+                    const TaskTraits& traits,
+                    OnceClosure& task,
+                    TimeDelta delay));
+  MOCK_METHOD1(CreateTaskRunnerWithTraits,
+               scoped_refptr<TaskRunner>(const TaskTraits& traits));
+  MOCK_METHOD1(CreateSequencedTaskRunnerWithTraits,
+               scoped_refptr<SequencedTaskRunner>(const TaskTraits& traits));
+  MOCK_METHOD2(CreateSingleThreadTaskRunnerWithTraits,
+               scoped_refptr<SingleThreadTaskRunner>(
+                   const TaskTraits& traits,
+                   SingleThreadTaskRunnerThreadMode thread_mode));
+#if defined(OS_WIN)
+  MOCK_METHOD2(CreateCOMSTATaskRunnerWithTraits,
+               scoped_refptr<SingleThreadTaskRunner>(
+                   const TaskTraits& traits,
+                   SingleThreadTaskRunnerThreadMode thread_mode));
+#endif  // defined(OS_WIN)
+
+  TestSimpleTaskRunner* runner() const { return runner_.get(); }
+
+ private:
+  scoped_refptr<TestSimpleTaskRunner> runner_ =
+      MakeRefCounted<TestSimpleTaskRunner>();
+
+  DISALLOW_COPY_AND_ASSIGN(MockTaskExecutor);
+};
+
+}  // namespace
+
+class PostTaskTestWithExecutor : public ::testing::Test {
+ public:
+  void SetUp() override {
+    RegisterTaskExecutor(TestTaskTraitsExtension::kExtensionId, &executor_);
+  }
+
+  void TearDown() override {
+    UnregisterTaskExecutorForTesting(TestTaskTraitsExtension::kExtensionId);
+  }
+
+ protected:
+  testing::StrictMock<MockTaskExecutor> executor_;
+  test::ScopedTaskEnvironment scoped_task_environment_;
+};
+
+TEST_F(PostTaskTestWithExecutor, PostTaskToTaskScheduler) {
+  // Tasks without extension should not go to the TestTaskExecutor.
+  EXPECT_TRUE(PostTask(FROM_HERE, DoNothing()));
+  EXPECT_FALSE(executor_.runner()->HasPendingTask());
+
+  EXPECT_TRUE(PostTaskWithTraits(FROM_HERE, {MayBlock()}, DoNothing()));
+  EXPECT_FALSE(executor_.runner()->HasPendingTask());
+
+  // Task runners without extension should not be the executor's.
+  auto task_runner = CreateTaskRunnerWithTraits({});
+  EXPECT_NE(executor_.runner(), task_runner);
+  auto sequenced_task_runner = CreateSequencedTaskRunnerWithTraits({});
+  EXPECT_NE(executor_.runner(), sequenced_task_runner);
+  auto single_thread_task_runner = CreateSingleThreadTaskRunnerWithTraits({});
+  EXPECT_NE(executor_.runner(), single_thread_task_runner);
+#if defined(OS_WIN)
+  auto comsta_task_runner = CreateCOMSTATaskRunnerWithTraits({});
+  EXPECT_NE(executor_.runner(), comsta_task_runner);
+#endif  // defined(OS_WIN)
+}
+
+TEST_F(PostTaskTestWithExecutor, PostTaskToTaskExecutor) {
+  // Tasks with extension should go to the executor.
+  {
+    TaskTraits traits = {TestExtensionBoolTrait()};
+    TaskTraits traits_with_explicit_priority =
+        TaskTraits::Override(traits, {TaskPriority::USER_VISIBLE});
+    EXPECT_CALL(executor_, PostDelayedTaskWithTraitsMock(
+                               _, traits_with_explicit_priority, _, _))
+        .Times(1);
+    EXPECT_TRUE(PostTaskWithTraits(FROM_HERE, traits, DoNothing()));
+    EXPECT_TRUE(executor_.runner()->HasPendingTask());
+    executor_.runner()->ClearPendingTasks();
+  }
+
+  {
+    TaskTraits traits = {MayBlock(), TestExtensionBoolTrait()};
+    TaskTraits traits_with_explicit_priority =
+        TaskTraits::Override(traits, {TaskPriority::USER_VISIBLE});
+    EXPECT_CALL(executor_, PostDelayedTaskWithTraitsMock(
+                               _, traits_with_explicit_priority, _, _))
+        .Times(1);
+    EXPECT_TRUE(PostTaskWithTraits(FROM_HERE, traits, DoNothing()));
+    EXPECT_TRUE(executor_.runner()->HasPendingTask());
+    executor_.runner()->ClearPendingTasks();
+  }
+
+  {
+    TaskTraits traits = {TestExtensionEnumTrait::kB, TestExtensionBoolTrait()};
+    TaskTraits traits_with_explicit_priority =
+        TaskTraits::Override(traits, {TaskPriority::USER_VISIBLE});
+    EXPECT_CALL(executor_, PostDelayedTaskWithTraitsMock(
+                               _, traits_with_explicit_priority, _, _))
+        .Times(1);
+    EXPECT_TRUE(PostTaskWithTraits(FROM_HERE, traits, DoNothing()));
+    EXPECT_TRUE(executor_.runner()->HasPendingTask());
+    executor_.runner()->ClearPendingTasks();
+  }
+
+  // Task runners with extension should be the executor's.
+  {
+    TaskTraits traits = {TestExtensionBoolTrait()};
+    TaskTraits traits_with_explicit_priority =
+        TaskTraits::Override(traits, {TaskPriority::USER_VISIBLE});
+    EXPECT_CALL(executor_,
+                CreateTaskRunnerWithTraits(traits_with_explicit_priority))
+        .Times(1);
+    auto task_runner = CreateTaskRunnerWithTraits(traits);
+    EXPECT_EQ(executor_.runner(), task_runner);
+    EXPECT_CALL(executor_, CreateSequencedTaskRunnerWithTraits(
+                               traits_with_explicit_priority))
+        .Times(1);
+    auto sequenced_task_runner = CreateSequencedTaskRunnerWithTraits(traits);
+    EXPECT_EQ(executor_.runner(), sequenced_task_runner);
+    EXPECT_CALL(executor_, CreateSingleThreadTaskRunnerWithTraits(
+                               traits_with_explicit_priority, _))
+        .Times(1);
+    auto single_thread_task_runner =
+        CreateSingleThreadTaskRunnerWithTraits(traits);
+    EXPECT_EQ(executor_.runner(), single_thread_task_runner);
+#if defined(OS_WIN)
+    EXPECT_CALL(executor_, CreateCOMSTATaskRunnerWithTraits(
+                               traits_with_explicit_priority, _))
+        .Times(1);
+    auto comsta_task_runner = CreateCOMSTATaskRunnerWithTraits(traits);
+    EXPECT_EQ(executor_.runner(), comsta_task_runner);
+#endif  // defined(OS_WIN)
+  }
+}
+
+}  // namespace base
diff --git a/base/task/task_executor.cc b/base/task/task_executor.cc
new file mode 100644
index 0000000..e98f716
--- /dev/null
+++ b/base/task/task_executor.cc
@@ -0,0 +1,57 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/task/task_executor.h"
+
+#include "base/no_destructor.h"
+#include "base/task/task_traits.h"
+#include "base/task/task_traits_extension.h"
+
+namespace base {
+
+namespace {
+
+// Maps TaskTraits extension IDs to registered TaskExecutors. Index |n|
+// corresponds to id |n - 1|.
+using TaskExecutorMap =
+    std::array<TaskExecutor*, TaskTraitsExtensionStorage::kMaxExtensionId>;
+TaskExecutorMap* GetTaskExecutorMap() {
+  static NoDestructor<TaskExecutorMap> executors(TaskExecutorMap{});
+  return executors.get();
+}
+
+static_assert(
+    TaskTraitsExtensionStorage::kInvalidExtensionId == 0,
+    "TaskExecutorMap depends on 0 being an invalid TaskTraits extension ID");
+
+}  // namespace
+
+void RegisterTaskExecutor(uint8_t extension_id, TaskExecutor* task_executor) {
+  DCHECK_NE(extension_id, TaskTraitsExtensionStorage::kInvalidExtensionId);
+  DCHECK_LE(extension_id, TaskTraitsExtensionStorage::kMaxExtensionId);
+  DCHECK_EQ((*GetTaskExecutorMap())[extension_id - 1], nullptr);
+
+  (*GetTaskExecutorMap())[extension_id - 1] = task_executor;
+}
+
+void UnregisterTaskExecutorForTesting(uint8_t extension_id) {
+  DCHECK_NE(extension_id, TaskTraitsExtensionStorage::kInvalidExtensionId);
+  DCHECK_LE(extension_id, TaskTraitsExtensionStorage::kMaxExtensionId);
+  DCHECK_NE((*GetTaskExecutorMap())[extension_id - 1], nullptr);
+
+  (*GetTaskExecutorMap())[extension_id - 1] = nullptr;
+}
+
+TaskExecutor* GetRegisteredTaskExecutorForTraits(const TaskTraits& traits) {
+  uint8_t extension_id = traits.extension_id();
+  if (extension_id != TaskTraitsExtensionStorage::kInvalidExtensionId) {
+    TaskExecutor* executor = (*GetTaskExecutorMap())[extension_id - 1];
+    DCHECK(executor);
+    return executor;
+  }
+
+  return nullptr;
+}
+
+}  // namespace base
\ No newline at end of file
diff --git a/base/task/task_executor.h b/base/task/task_executor.h
new file mode 100644
index 0000000..70d8abca
--- /dev/null
+++ b/base/task/task_executor.h
@@ -0,0 +1,85 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_TASK_TASK_EXECUTOR_H_
+#define BASE_TASK_TASK_EXECUTOR_H_
+
+#include <stdint.h>
+
+#include "base/base_export.h"
+#include "base/memory/ref_counted.h"
+#include "base/sequenced_task_runner.h"
+#include "base/single_thread_task_runner.h"
+#include "base/task/single_thread_task_runner_thread_mode.h"
+#include "base/task_runner.h"
+#include "build/build_config.h"
+
+namespace base {
+
+class Location;
+class TaskTraits;
+
+// A TaskExecutor can execute Tasks with a specific TaskTraits extension id. To
+// handle Tasks posted via the //base/task/post_task.h API, the TaskExecutor
+// should be registered by calling RegisterTaskExecutor().
+class BASE_EXPORT TaskExecutor {
+ public:
+  virtual ~TaskExecutor() = default;
+
+  // Posts |task| with a |delay| and specific |traits|. |delay| can be zero. For
+  // one off tasks that don't require a TaskRunner. Returns false if the task
+  // definitely won't run because of current shutdown state.
+  virtual bool PostDelayedTaskWithTraits(const Location& from_here,
+                                         const TaskTraits& traits,
+                                         OnceClosure task,
+                                         TimeDelta delay) = 0;
+
+  // Returns a TaskRunner whose PostTask invocations result in scheduling tasks
+  // using |traits|. Tasks may run in any order and in parallel.
+  virtual scoped_refptr<TaskRunner> CreateTaskRunnerWithTraits(
+      const TaskTraits& traits) = 0;
+
+  // Returns a SequencedTaskRunner whose PostTask invocations result in
+  // scheduling tasks using |traits|. Tasks run one at a time in posting order.
+  virtual scoped_refptr<SequencedTaskRunner>
+  CreateSequencedTaskRunnerWithTraits(const TaskTraits& traits) = 0;
+
+  // Returns a SingleThreadTaskRunner whose PostTask invocations result in
+  // scheduling tasks using |traits|. Tasks run on a single thread in posting
+  // order. If |traits| identifies an existing thread,
+  // SingleThreadTaskRunnerThreadMode::SHARED must be used.
+  virtual scoped_refptr<SingleThreadTaskRunner>
+  CreateSingleThreadTaskRunnerWithTraits(
+      const TaskTraits& traits,
+      SingleThreadTaskRunnerThreadMode thread_mode) = 0;
+
+#if defined(OS_WIN)
+  // Returns a SingleThreadTaskRunner whose PostTask invocations result in
+  // scheduling tasks using |traits| in a COM Single-Threaded Apartment. Tasks
+  // run in the same Single-Threaded Apartment in posting order for the returned
+  // SingleThreadTaskRunner. If |traits| identifies an existing thread,
+  // SingleThreadTaskRunnerThreadMode::SHARED must be used.
+  virtual scoped_refptr<SingleThreadTaskRunner>
+  CreateCOMSTATaskRunnerWithTraits(
+      const TaskTraits& traits,
+      SingleThreadTaskRunnerThreadMode thread_mode) = 0;
+#endif  // defined(OS_WIN)
+};
+
+// Register a TaskExecutor with the //base/task/post_task.h API in the current
+// process for tasks subsequently posted with a TaskTraits extension with the
+// given |extension_id|. All executors need to be registered before any tasks
+// are posted with |extension_id|. Only one executor per |extension_id| is
+// supported.
+void BASE_EXPORT RegisterTaskExecutor(uint8_t extension_id,
+                                      TaskExecutor* task_executor);
+void BASE_EXPORT UnregisterTaskExecutorForTesting(uint8_t extension_id);
+
+// Determines whether a registered TaskExecutor will handle tasks with the given
+// |traits| and, if so, returns a pointer to it. Otherwise, returns |nullptr|.
+TaskExecutor* GetRegisteredTaskExecutorForTraits(const TaskTraits& traits);
+
+}  // namespace base
+
+#endif  // BASE_TASK_TASK_EXECUTOR_H_
diff --git a/base/task/task_scheduler/task_scheduler.h b/base/task/task_scheduler/task_scheduler.h
index d739ee5f..3ae573b 100644
--- a/base/task/task_scheduler/task_scheduler.h
+++ b/base/task/task_scheduler/task_scheduler.h
@@ -16,6 +16,7 @@
 #include "base/single_thread_task_runner.h"
 #include "base/strings/string_piece.h"
 #include "base/task/single_thread_task_runner_thread_mode.h"
+#include "base/task/task_executor.h"
 #include "base/task/task_scheduler/scheduler_worker_pool_params.h"
 #include "base/task/task_traits.h"
 #include "base/task_runner.h"
@@ -35,7 +36,6 @@
 namespace base {
 
 class HistogramBase;
-class Location;
 class SchedulerWorkerObserver;
 
 // Interface for a task scheduler and static methods to manage the instance used
@@ -49,7 +49,7 @@
 // Note: All TaskScheduler users should go through base/task/post_task.h instead
 // of this interface except for the one callsite per process which manages the
 // process's instance.
-class BASE_EXPORT TaskScheduler {
+class BASE_EXPORT TaskScheduler : public TaskExecutor {
  public:
   struct BASE_EXPORT InitParams {
     enum class SharedWorkerPoolEnvironment {
@@ -82,7 +82,7 @@
   // Destroying a TaskScheduler is not allowed in production; it is always
   // leaked. In tests, it should only be destroyed after JoinForTesting() has
   // returned.
-  virtual ~TaskScheduler() = default;
+  ~TaskScheduler() override = default;
 
   // Allows the task scheduler to create threads and run tasks following the
   // |init_params| specification.
@@ -96,46 +96,6 @@
       const InitParams& init_params,
       SchedulerWorkerObserver* scheduler_worker_observer = nullptr) = 0;
 
-  // Posts |task| with a |delay| and specific |traits|. |delay| can be zero.
-  // For one off tasks that don't require a TaskRunner.
-  virtual void PostDelayedTaskWithTraits(const Location& from_here,
-                                         const TaskTraits& traits,
-                                         OnceClosure task,
-                                         TimeDelta delay) = 0;
-
-  // Returns a TaskRunner whose PostTask invocations result in scheduling tasks
-  // using |traits|. Tasks may run in any order and in parallel.
-  virtual scoped_refptr<TaskRunner> CreateTaskRunnerWithTraits(
-      const TaskTraits& traits) = 0;
-
-  // Returns a SequencedTaskRunner whose PostTask invocations result in
-  // scheduling tasks using |traits|. Tasks run one at a time in posting order.
-  virtual scoped_refptr<SequencedTaskRunner>
-  CreateSequencedTaskRunnerWithTraits(const TaskTraits& traits) = 0;
-
-  // Returns a SingleThreadTaskRunner whose PostTask invocations result in
-  // scheduling tasks using |traits|. Tasks run on a single thread in posting
-  // order.
-  virtual scoped_refptr<SingleThreadTaskRunner>
-  CreateSingleThreadTaskRunnerWithTraits(
-      const TaskTraits& traits,
-      SingleThreadTaskRunnerThreadMode thread_mode) = 0;
-
-#if defined(OS_WIN)
-  // Returns a SingleThreadTaskRunner whose PostTask invocations result in
-  // scheduling tasks using |traits| in a COM Single-Threaded Apartment. Tasks
-  // run in the same Single-Threaded Apartment in posting order for the returned
-  // SingleThreadTaskRunner. There is not necessarily a one-to-one
-  // correspondence between SingleThreadTaskRunners and Single-Threaded
-  // Apartments. The implementation is free to share apartments or create new
-  // apartments as necessary. In either case, care should be taken to make sure
-  // COM pointers are not smuggled across apartments.
-  virtual scoped_refptr<SingleThreadTaskRunner>
-  CreateCOMSTATaskRunnerWithTraits(
-      const TaskTraits& traits,
-      SingleThreadTaskRunnerThreadMode thread_mode) = 0;
-#endif  // defined(OS_WIN)
-
   // Returns a vector of all histograms available in this task scheduler.
   virtual std::vector<const HistogramBase*> GetHistograms() const = 0;
 
diff --git a/base/task/task_scheduler/task_scheduler_impl.cc b/base/task/task_scheduler/task_scheduler_impl.cc
index 4903625..a502538 100644
--- a/base/task/task_scheduler/task_scheduler_impl.cc
+++ b/base/task/task_scheduler/task_scheduler_impl.cc
@@ -177,13 +177,13 @@
   }
 }
 
-void TaskSchedulerImpl::PostDelayedTaskWithTraits(const Location& from_here,
+bool TaskSchedulerImpl::PostDelayedTaskWithTraits(const Location& from_here,
                                                   const TaskTraits& traits,
                                                   OnceClosure task,
                                                   TimeDelta delay) {
   // Post |task| as part of a one-off single-task Sequence.
   const TaskTraits new_traits = SetUserBlockingPriorityIfNeeded(traits);
-  GetWorkerPoolForTraits(new_traits)
+  return GetWorkerPoolForTraits(new_traits)
       ->PostTaskWithSequence(
           Task(from_here, std::move(task), new_traits, delay),
           MakeRefCounted<Sequence>());
diff --git a/base/task/task_scheduler/task_scheduler_impl.h b/base/task/task_scheduler/task_scheduler_impl.h
index f435059..5570cef 100644
--- a/base/task/task_scheduler/task_scheduler_impl.h
+++ b/base/task/task_scheduler/task_scheduler_impl.h
@@ -64,7 +64,16 @@
   // TaskScheduler:
   void Start(const TaskScheduler::InitParams& init_params,
              SchedulerWorkerObserver* scheduler_worker_observer) override;
-  void PostDelayedTaskWithTraits(const Location& from_here,
+  std::vector<const HistogramBase*> GetHistograms() const override;
+  int GetMaxConcurrentNonBlockedTasksWithTraitsDeprecated(
+      const TaskTraits& traits) const override;
+  void Shutdown() override;
+  void FlushForTesting() override;
+  void FlushAsyncForTesting(OnceClosure flush_callback) override;
+  void JoinForTesting() override;
+
+  // TaskExecutor:
+  bool PostDelayedTaskWithTraits(const Location& from_here,
                                  const TaskTraits& traits,
                                  OnceClosure task,
                                  TimeDelta delay) override;
@@ -80,13 +89,6 @@
       const TaskTraits& traits,
       SingleThreadTaskRunnerThreadMode thread_mode) override;
 #endif  // defined(OS_WIN)
-  std::vector<const HistogramBase*> GetHistograms() const override;
-  int GetMaxConcurrentNonBlockedTasksWithTraitsDeprecated(
-      const TaskTraits& traits) const override;
-  void Shutdown() override;
-  void FlushForTesting() override;
-  void FlushAsyncForTesting(OnceClosure flush_callback) override;
-  void JoinForTesting() override;
 
  private:
   // Returns the worker pool that runs Tasks with |traits|.
diff --git a/base/task/task_traits.h b/base/task/task_traits.h
index 0d5e16f..1a6c52a 100644
--- a/base/task/task_traits.h
+++ b/base/task/task_traits.h
@@ -156,20 +156,20 @@
             class CheckArgumentsAreValidBaseTraits = std::enable_if_t<
                 trait_helpers::AreValidTraits<ValidTrait, ArgTypes...>::value>>
   constexpr TaskTraits(ArgTypes... args)
-      : priority_set_explicitly_(
-            trait_helpers::HasArgOfType<TaskPriority, ArgTypes...>::value),
-        priority_(trait_helpers::GetValueFromArgList(
+      : priority_(trait_helpers::GetValueFromArgList(
             trait_helpers::EnumArgGetter<TaskPriority,
                                          TaskPriority::USER_VISIBLE>(),
             args...)),
-        shutdown_behavior_set_explicitly_(
-            trait_helpers::HasArgOfType<TaskShutdownBehavior,
-                                        ArgTypes...>::value),
         shutdown_behavior_(trait_helpers::GetValueFromArgList(
             trait_helpers::EnumArgGetter<
                 TaskShutdownBehavior,
                 TaskShutdownBehavior::SKIP_ON_SHUTDOWN>(),
             args...)),
+        priority_set_explicitly_(
+            trait_helpers::HasArgOfType<TaskPriority, ArgTypes...>::value),
+        shutdown_behavior_set_explicitly_(
+            trait_helpers::HasArgOfType<TaskShutdownBehavior,
+                                        ArgTypes...>::value),
         may_block_(trait_helpers::GetValueFromArgList(
             trait_helpers::BooleanArgGetter<MayBlock>(),
             args...)),
@@ -200,6 +200,20 @@
   constexpr TaskTraits(const TaskTraits& other) = default;
   TaskTraits& operator=(const TaskTraits& other) = default;
 
+  // TODO(eseckler): Default the comparison operator once C++20 arrives.
+  bool operator==(const TaskTraits& other) const {
+    static_assert(24 == sizeof(TaskTraits),
+                  "Update comparison operator when TaskTraits change");
+    return priority_set_explicitly_ == other.priority_set_explicitly_ &&
+           priority_ == other.priority_ &&
+           shutdown_behavior_set_explicitly_ ==
+               other.shutdown_behavior_set_explicitly_ &&
+           shutdown_behavior_ == other.shutdown_behavior_ &&
+           may_block_ == other.may_block_ &&
+           with_base_sync_primitives_ == other.with_base_sync_primitives_ &&
+           extension_ == other.extension_;
+  }
+
   // Returns TaskTraits constructed by combining |left| and |right|. If a trait
   // is specified in both |left| and |right|, the returned TaskTraits will have
   // the value from |right|. Note that extension traits are not merged: any
@@ -248,23 +262,23 @@
 
  private:
   constexpr TaskTraits(const TaskTraits& left, const TaskTraits& right)
-      : priority_set_explicitly_(left.priority_set_explicitly_ ||
-                                 right.priority_set_explicitly_),
+      : extension_(right.extension_.extension_id !=
+                           TaskTraitsExtensionStorage::kInvalidExtensionId
+                       ? right.extension_
+                       : left.extension_),
         priority_(right.priority_set_explicitly_ ? right.priority_
                                                  : left.priority_),
-        shutdown_behavior_set_explicitly_(
-            left.shutdown_behavior_set_explicitly_ ||
-            right.shutdown_behavior_set_explicitly_),
         shutdown_behavior_(right.shutdown_behavior_set_explicitly_
                                ? right.shutdown_behavior_
                                : left.shutdown_behavior_),
+        priority_set_explicitly_(left.priority_set_explicitly_ ||
+                                 right.priority_set_explicitly_),
+        shutdown_behavior_set_explicitly_(
+            left.shutdown_behavior_set_explicitly_ ||
+            right.shutdown_behavior_set_explicitly_),
         may_block_(left.may_block_ || right.may_block_),
         with_base_sync_primitives_(left.with_base_sync_primitives_ ||
-                                   right.with_base_sync_primitives_),
-        extension_(right.extension_.extension_id !=
-                           TaskTraitsExtensionStorage::kInvalidExtensionId
-                       ? right.extension_
-                       : left.extension_) {}
+                                   right.with_base_sync_primitives_) {}
 
   // Helper constructor which selects those arguments from |args| that are
   // indicated by the index_sequence and forwards them to the public
@@ -276,14 +290,14 @@
             std::get<Indices>(std::forward<std::tuple<ArgTypes...>>(args))...) {
   }
 
-  bool priority_set_explicitly_;
+  // Ordered for packing.
+  TaskTraitsExtensionStorage extension_;
   TaskPriority priority_;
-  bool shutdown_behavior_set_explicitly_;
   TaskShutdownBehavior shutdown_behavior_;
+  bool priority_set_explicitly_;
+  bool shutdown_behavior_set_explicitly_;
   bool may_block_;
   bool with_base_sync_primitives_;
-
-  TaskTraitsExtensionStorage extension_;
 };
 
 // Returns string literals for the enums defined in this file. These methods
diff --git a/base/task/task_traits_extension.h b/base/task/task_traits_extension.h
index 2147cd5c..ad381883 100644
--- a/base/task/task_traits_extension.h
+++ b/base/task/task_traits_extension.h
@@ -134,11 +134,15 @@
   inline TaskTraitsExtensionStorage& operator=(
       const TaskTraitsExtensionStorage& other) = default;
 
+  inline bool operator==(const TaskTraitsExtensionStorage& other) const;
+
   enum ExtensionId : uint8_t {
     kInvalidExtensionId = 0,
     // The embedder is responsible for assigning the remaining values uniquely.
     kFirstEmbedderExtensionId = 1,
-    kMaxExtensionId = 255
+    // Maximum number of extension types is artificially limited to support
+    // super efficient TaskExecutor lookup in post_task.cc.
+    kMaxExtensionId = 4
   };
 
   // Identifies the type of extension. See ExtensionId enum above.
@@ -167,6 +171,15 @@
 inline constexpr TaskTraitsExtensionStorage::TaskTraitsExtensionStorage(
     const TaskTraitsExtensionStorage& other) = default;
 
+// TODO(eseckler): Default the comparison operator once C++20 arrives.
+inline bool TaskTraitsExtensionStorage::operator==(
+    const TaskTraitsExtensionStorage& other) const {
+  static_assert(
+      9 == sizeof(TaskTraitsExtensionStorage),
+      "Update comparison operator when TaskTraitsExtensionStorage changes");
+  return extension_id == other.extension_id && data == other.data;
+}
+
 // Default implementation of MakeTaskTraitsExtension template function, which
 // doesn't accept any traits and does not create an extension.
 template <class Unused = void>
diff --git a/base/test/gtest_util.h b/base/test/gtest_util.h
index df2bce92..3f11c76f9 100644
--- a/base/test/gtest_util.h
+++ b/base/test/gtest_util.h
@@ -41,6 +41,29 @@
 #endif
 // DCHECK_IS_ON() && defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
 
+// As above, but for CHECK().
+#if defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
+
+// Official builds will CHECK, but also eat stream parameters. So match "".
+#if defined(OFFICIAL_BUILD) && defined(NDEBUG)
+#define EXPECT_CHECK_DEATH(statement) EXPECT_DEATH(statement, "")
+#define ASSERT_CHECK_DEATH(statement) ASSERT_DEATH(statement, "")
+#else
+#define EXPECT_CHECK_DEATH(statement) EXPECT_DEATH(statement, "Check failed")
+#define ASSERT_CHECK_DEATH(statement) ASSERT_DEATH(statement, "Check failed")
+#endif  // defined(OFFICIAL_BUILD) && defined(NDEBUG)
+
+#else  // defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
+
+// Note GTEST_UNSUPPORTED_DEATH_TEST takes a |regex| only to see whether it is a
+// valid regex. It is never evaluated.
+#define EXPECT_CHECK_DEATH(statement) \
+  GTEST_UNSUPPORTED_DEATH_TEST(statement, "", )
+#define ASSERT_CHECK_DEATH(statement) \
+  GTEST_UNSUPPORTED_DEATH_TEST(statement, "", return )
+
+#endif  // defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
+
 namespace base {
 
 class FilePath;
diff --git a/base/threading/platform_thread_unittest.cc b/base/threading/platform_thread_unittest.cc
index 10c45bccf..fb5634b 100644
--- a/base/threading/platform_thread_unittest.cc
+++ b/base/threading/platform_thread_unittest.cc
@@ -218,86 +218,97 @@
 
 namespace {
 
-const ThreadPriority kThreadPriorityTestValues[] = {
-// The order should be higher to lower to cover as much cases as possible on
-// Linux trybots running without CAP_SYS_NICE permission.
-#if !defined(OS_ANDROID)
-    // PlatformThread::GetCurrentThreadPriority() on Android does not support
-    // REALTIME_AUDIO case. See http://crbug.com/505474.
-    ThreadPriority::REALTIME_AUDIO,
-#endif
-    ThreadPriority::DISPLAY,
-    // This redundant BACKGROUND priority is to test backgrounding from other
-    // priorities, and unbackgrounding.
-    ThreadPriority::BACKGROUND,
-    ThreadPriority::NORMAL,
-    ThreadPriority::BACKGROUND};
+constexpr ThreadPriority kAllThreadPriorities[] = {
+    ThreadPriority::REALTIME_AUDIO, ThreadPriority::DISPLAY,
+    ThreadPriority::NORMAL, ThreadPriority::BACKGROUND};
 
 class ThreadPriorityTestThread : public FunctionTestThread {
  public:
-  explicit ThreadPriorityTestThread(ThreadPriority priority)
-      : priority_(priority) {}
+  explicit ThreadPriorityTestThread() = default;
   ~ThreadPriorityTestThread() override = default;
 
  private:
   void RunTest() override {
-    // Confirm that the current thread's priority is as expected.
-    EXPECT_EQ(ThreadPriority::NORMAL,
-              PlatformThread::GetCurrentThreadPriority());
+#if !defined(OS_ANDROID)
+    // TODO(fdoray): PlatformThread::CanIncreaseCurrentThreadPriority()
+    // incorrectly returns false on Android. There should be a cross-POSIX
+    // implementation of this method that checks RLIMIT_NICE to determine
+    // whether it is possible to increase thread priority.
+    // https://crbug.com/872820
+    if (PlatformThread::CanIncreaseCurrentThreadPriority()) {
+#endif
+      // On platforms that support increasing thread priority, test transition
+      // between every possible pair of priorities.
+      for (auto first_priority : kAllThreadPriorities) {
+        for (auto second_priority : kAllThreadPriorities) {
+          PlatformThread::SetCurrentThreadPriority(first_priority);
+          EXPECT_EQ(first_priority, PlatformThread::GetCurrentThreadPriority());
 
-    // Alter and verify the current thread's priority.
-    PlatformThread::SetCurrentThreadPriority(priority_);
-    EXPECT_EQ(priority_, PlatformThread::GetCurrentThreadPriority());
+          PlatformThread::SetCurrentThreadPriority(second_priority);
+          EXPECT_EQ(second_priority,
+                    PlatformThread::GetCurrentThreadPriority());
+        }
+      }
+#if !defined(OS_ANDROID)
+    } else {
+      // On platforms that don't support increasing thread priority, the only
+      // valid transition is NORMAL -> BACKGROUND (it isn't possible to get a
+      // thread running with a higher priority than NORMAL).
+      EXPECT_EQ(ThreadPriority::NORMAL,
+                PlatformThread::GetCurrentThreadPriority());
+
+      // Verify that transition to DISPLAY or REALTIME_AUDIO is impossible.
+      PlatformThread::SetCurrentThreadPriority(ThreadPriority::DISPLAY);
+      EXPECT_EQ(ThreadPriority::NORMAL,
+                PlatformThread::GetCurrentThreadPriority());
+      PlatformThread::SetCurrentThreadPriority(ThreadPriority::REALTIME_AUDIO);
+      EXPECT_EQ(ThreadPriority::NORMAL,
+                PlatformThread::GetCurrentThreadPriority());
+
+      // Verify that transition to BACKGROUND is possible.
+      PlatformThread::SetCurrentThreadPriority(ThreadPriority::BACKGROUND);
+      EXPECT_EQ(ThreadPriority::BACKGROUND,
+                PlatformThread::GetCurrentThreadPriority());
+
+      // Verify that transition to NORMAL, DISPLAY or REALTIME_AUDIO is
+      // impossible.
+      PlatformThread::SetCurrentThreadPriority(ThreadPriority::NORMAL);
+      EXPECT_EQ(ThreadPriority::BACKGROUND,
+                PlatformThread::GetCurrentThreadPriority());
+      PlatformThread::SetCurrentThreadPriority(ThreadPriority::DISPLAY);
+      EXPECT_EQ(ThreadPriority::BACKGROUND,
+                PlatformThread::GetCurrentThreadPriority());
+      PlatformThread::SetCurrentThreadPriority(ThreadPriority::REALTIME_AUDIO);
+      EXPECT_EQ(ThreadPriority::BACKGROUND,
+                PlatformThread::GetCurrentThreadPriority());
+    }
+#endif  // !defined(OS_ANDROID)
   }
 
-  const ThreadPriority priority_;
-
   DISALLOW_COPY_AND_ASSIGN(ThreadPriorityTestThread);
 };
 
 }  // namespace
-
 // Test changing a created thread's priority (which has different semantics on
 // some platforms).
 #if defined(OS_FUCHSIA)
 // TODO(crbug.com/851759): Thread priorities are not implemented in Fuchsia.
-#define MAYBE_ThreadPriorityCurrentThread DISABLED_ThreadPriorityCurrentThread
+#define MAYBE_SetCurrentThreadPriority DISABLED_SetCurrentThreadPriority
 #else
-#define MAYBE_ThreadPriorityCurrentThread ThreadPriorityCurrentThread
+#define MAYBE_SetCurrentThreadPriority SetCurrentThreadPriority
 #endif
-TEST(PlatformThreadTest, MAYBE_ThreadPriorityCurrentThread) {
-  const bool increase_priority_allowed =
-      PlatformThread::CanIncreaseCurrentThreadPriority();
+TEST(PlatformThreadTest, MAYBE_SetCurrentThreadPriority) {
+  ThreadPriorityTestThread thread;
+  PlatformThreadHandle handle;
 
-// Bump the priority in order to verify that new threads are started with normal
-// priority. Skip this on Mac since this platform doesn't allow changing the
-// priority of the main thread. Also skip this on platforms that don't allow
-// increasing the priority of a thread.
-#if !defined(OS_MACOSX)
-  if (increase_priority_allowed)
-    PlatformThread::SetCurrentThreadPriority(ThreadPriority::DISPLAY);
-#endif
+  ASSERT_FALSE(thread.IsRunning());
+  ASSERT_TRUE(PlatformThread::Create(0, &thread, &handle));
+  thread.WaitForTerminationReady();
+  ASSERT_TRUE(thread.IsRunning());
 
-  // Toggle each supported priority on the thread and confirm it affects it.
-  for (size_t i = 0; i < arraysize(kThreadPriorityTestValues); ++i) {
-    if (!increase_priority_allowed &&
-        kThreadPriorityTestValues[i] >
-            PlatformThread::GetCurrentThreadPriority()) {
-      continue;
-    }
-
-    ThreadPriorityTestThread thread(kThreadPriorityTestValues[i]);
-    PlatformThreadHandle handle;
-
-    ASSERT_FALSE(thread.IsRunning());
-    ASSERT_TRUE(PlatformThread::Create(0, &thread, &handle));
-    thread.WaitForTerminationReady();
-    ASSERT_TRUE(thread.IsRunning());
-
-    thread.MarkForTermination();
-    PlatformThread::Join(handle);
-    ASSERT_FALSE(thread.IsRunning());
-  }
+  thread.MarkForTermination();
+  PlatformThread::Join(handle);
+  ASSERT_FALSE(thread.IsRunning());
 }
 
 // This tests internal PlatformThread APIs used under some POSIX platforms,
diff --git a/base/trace_event/trace_config.cc b/base/trace_event/trace_config.cc
index 9d6a9d4..153c9b9 100644
--- a/base/trace_event/trace_config.cc
+++ b/base/trace_event/trace_config.cc
@@ -31,6 +31,7 @@
 
 // String parameters that can be used to parse the trace config string.
 const char kRecordModeParam[] = "record_mode";
+const char kTraceBufferSizeInEvents[] = "trace_buffer_size_in_events";
 const char kEnableSystraceParam[] = "enable_systrace";
 const char kEnableArgumentFilterParam[] = "enable_argument_filter";
 
@@ -287,6 +288,7 @@
     return *this;
 
   record_mode_ = rhs.record_mode_;
+  trace_buffer_size_in_events_ = rhs.trace_buffer_size_in_events_;
   enable_systrace_ = rhs.enable_systrace_;
   enable_argument_filter_ = rhs.enable_argument_filter_;
   category_filter_ = rhs.category_filter_;
@@ -326,6 +328,8 @@
     DLOG(ERROR) << "Attempting to merge trace config with a different "
                 << "set of options.";
   }
+  DCHECK_EQ(trace_buffer_size_in_events_, config.trace_buffer_size_in_events_)
+      << "Cannot change trace buffer size";
 
   category_filter_.Merge(config.category_filter_);
   memory_dump_config_.Merge(config.memory_dump_config_);
@@ -337,6 +341,7 @@
 
 void TraceConfig::Clear() {
   record_mode_ = RECORD_UNTIL_FULL;
+  trace_buffer_size_in_events_ = 0;
   enable_systrace_ = false;
   enable_argument_filter_ = false;
   category_filter_.Clear();
@@ -347,6 +352,7 @@
 
 void TraceConfig::InitializeDefault() {
   record_mode_ = RECORD_UNTIL_FULL;
+  trace_buffer_size_in_events_ = 0;
   enable_systrace_ = false;
   enable_argument_filter_ = false;
 }
@@ -365,6 +371,9 @@
       record_mode_ = RECORD_AS_MUCH_AS_POSSIBLE;
     }
   }
+  int buffer_size = 0;
+  trace_buffer_size_in_events_ =
+      dict.GetInteger(kTraceBufferSizeInEvents, &buffer_size) ? buffer_size : 0;
 
   bool val;
   enable_systrace_ = dict.GetBoolean(kEnableSystraceParam, &val) ? val : false;
@@ -403,6 +412,7 @@
     category_filter_.InitializeFromString(category_filter_string);
 
   record_mode_ = RECORD_UNTIL_FULL;
+  trace_buffer_size_in_events_ = 0;
   enable_systrace_ = false;
   enable_argument_filter_ = false;
   if (!trace_options_string.empty()) {
@@ -535,6 +545,8 @@
                   TraceConfig::TraceRecordModeToStr(record_mode_));
   dict->SetBoolean(kEnableSystraceParam, enable_systrace_);
   dict->SetBoolean(kEnableArgumentFilterParam, enable_argument_filter_);
+  if (trace_buffer_size_in_events_ > 0)
+    dict->SetInteger(kTraceBufferSizeInEvents, trace_buffer_size_in_events_);
 
   category_filter_.ToDict(dict.get());
   process_filter_config_.ToDict(dict.get());
diff --git a/base/trace_event/trace_config.h b/base/trace_event/trace_config.h
index b1d809b..e3be39d 100644
--- a/base/trace_event/trace_config.h
+++ b/base/trace_event/trace_config.h
@@ -226,10 +226,16 @@
   TraceConfig& operator=(const TraceConfig& rhs);
 
   TraceRecordMode GetTraceRecordMode() const { return record_mode_; }
+  size_t GetTraceBufferSizeInEvents() const {
+    return trace_buffer_size_in_events_;
+  }
   bool IsSystraceEnabled() const { return enable_systrace_; }
   bool IsArgumentFilterEnabled() const { return enable_argument_filter_; }
 
   void SetTraceRecordMode(TraceRecordMode mode) { record_mode_ = mode; }
+  void SetTraceBufferSizeInEvents(size_t size) {
+    trace_buffer_size_in_events_ = size;
+  }
   void EnableSystrace() { enable_systrace_ = true; }
   void EnableArgumentFilter() { enable_argument_filter_ = true; }
 
@@ -304,6 +310,7 @@
   std::string ToTraceOptionsString() const;
 
   TraceRecordMode record_mode_;
+  size_t trace_buffer_size_in_events_ = 0;  // 0 specifies default size
   bool enable_systrace_ : 1;
   bool enable_argument_filter_ : 1;
 
diff --git a/base/trace_event/trace_config_unittest.cc b/base/trace_event/trace_config_unittest.cc
index efdbffb..9fb3753 100644
--- a/base/trace_event/trace_config_unittest.cc
+++ b/base/trace_event/trace_config_unittest.cc
@@ -60,7 +60,8 @@
     "}"
     "]"
     "},"
-    "\"record_mode\":\"record-continuously\""
+    "\"record_mode\":\"record-continuously\","
+    "\"trace_buffer_size_in_events\":100"
     "}";
 
 void CheckDefaultTraceConfigBehavior(const TraceConfig& tc) {
@@ -348,6 +349,7 @@
   EXPECT_EQ(RECORD_CONTINUOUSLY, custom_tc.GetTraceRecordMode());
   EXPECT_TRUE(custom_tc.IsSystraceEnabled());
   EXPECT_TRUE(custom_tc.IsArgumentFilterEnabled());
+  EXPECT_EQ(100u, custom_tc.GetTraceBufferSizeInEvents());
   EXPECT_STREQ(
       "included,inc_pattern*,"
       "disabled-by-default-cc,disabled-by-default-memory-infra,"
diff --git a/base/trace_event/trace_event_unittest.cc b/base/trace_event/trace_event_unittest.cc
index a413ee5..6f791ef 100644
--- a/base/trace_event/trace_event_unittest.cc
+++ b/base/trace_event/trace_event_unittest.cc
@@ -2699,6 +2699,16 @@
   TraceLog::GetInstance()->SetDisabled();
 }
 
+TEST_F(TraceEventTestFixture, ConfigTraceBufferLimit) {
+  const size_t kLimit = 2048;
+  TraceConfig config(kRecordAllCategoryFilter, RECORD_UNTIL_FULL);
+  config.SetTraceBufferSizeInEvents(kLimit);
+  TraceLog::GetInstance()->SetEnabled(config, TraceLog::RECORDING_MODE);
+  TraceBuffer* buffer = TraceLog::GetInstance()->trace_buffer();
+  EXPECT_EQ(kLimit, buffer->Capacity());
+  TraceLog::GetInstance()->SetDisabled();
+}
+
 void BlockUntilStopped(WaitableEvent* task_start_event,
                        WaitableEvent* task_stop_event) {
   task_start_event->Signal();
diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc
index 23d84ad..0f66912 100644
--- a/base/trace_event/trace_log.cc
+++ b/base/trace_event/trace_log.cc
@@ -625,7 +625,11 @@
     if (!(modes_to_enable & RECORDING_MODE) || already_recording)
       return;
 
-    if (new_options != old_options) {
+    // Discard events if new trace options are different. Reducing trace buffer
+    // size is not supported while already recording, so only replace trace
+    // buffer if we were not already recording.
+    if (new_options != old_options ||
+        (trace_config_.GetTraceBufferSizeInEvents() && !already_recording)) {
       subtle::NoBarrier_Store(&trace_options_, new_options);
       UseNextTraceBuffer();
     }
@@ -1718,20 +1722,26 @@
 TraceBuffer* TraceLog::CreateTraceBuffer() {
   HEAP_PROFILER_SCOPED_IGNORE;
   InternalTraceOptions options = trace_options();
+  const size_t config_buffer_chunks =
+      trace_config_.GetTraceBufferSizeInEvents() / kTraceBufferChunkSize;
   if (options & kInternalRecordContinuously) {
     return TraceBuffer::CreateTraceBufferRingBuffer(
-        kTraceEventRingBufferChunks);
+        config_buffer_chunks > 0 ? config_buffer_chunks
+                                 : kTraceEventRingBufferChunks);
   }
   if (options & kInternalEchoToConsole) {
     return TraceBuffer::CreateTraceBufferRingBuffer(
-        kEchoToConsoleTraceEventBufferChunks);
+        config_buffer_chunks > 0 ? config_buffer_chunks
+                                 : kEchoToConsoleTraceEventBufferChunks);
   }
   if (options & kInternalRecordAsMuchAsPossible) {
     return TraceBuffer::CreateTraceBufferVectorOfSize(
-        kTraceEventVectorBigBufferChunks);
+        config_buffer_chunks > 0 ? config_buffer_chunks
+                                 : kTraceEventVectorBigBufferChunks);
   }
   return TraceBuffer::CreateTraceBufferVectorOfSize(
-      kTraceEventVectorBufferChunks);
+      config_buffer_chunks > 0 ? config_buffer_chunks
+                               : kTraceEventVectorBufferChunks);
 }
 
 #if defined(OS_WIN)
diff --git a/base/trace_event/trace_log.h b/base/trace_event/trace_log.h
index 6cb4e5c..f41d070 100644
--- a/base/trace_event/trace_log.h
+++ b/base/trace_event/trace_log.h
@@ -369,6 +369,7 @@
                            ConvertTraceConfigToInternalOptions);
   FRIEND_TEST_ALL_PREFIXES(TraceEventTestFixture,
                            TraceRecordAsMuchAsPossibleMode);
+  FRIEND_TEST_ALL_PREFIXES(TraceEventTestFixture, ConfigTraceBufferLimit);
 
   friend class base::NoDestructor<TraceLog>;
 
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
index dd1a248..0483921 100644
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
@@ -2332,9 +2332,6 @@
                                  "secondary_abi_loadable_modules",
                                  "uncompress_shared_libraries",
                                ])
-        if (!defined(uncompress_shared_libraries)) {
-          uncompress_shared_libraries = _load_library_from_apk
-        }
         _dex_target = "//build/android/incremental_install:bootstrap_java__dex"
         deps = _incremental_deps + [
                  ":${_incremental_compile_resources_target_name}",
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 63b346e..bb79907 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -1897,6 +1897,9 @@
   #   shared_resources_whitelist_target: Optional name of a target specifying
   #     an input R.txt file that lists the resources that can be exported
   #     by the APK when shared_resources or app_as_shared_lib is defined.
+  #   uncompress_shared_libraries: True if shared libraries should be stored
+  #     uncompressed in the APK. Must be unset or true if load_library_from_apk
+  #     is set to true.
   template("android_apk_or_module") {
     forward_variables_from(invoker, [ "testonly" ])
 
@@ -2014,6 +2017,15 @@
            "load_library_from_apk requires use_chromium_linker " +
                "or requires_sdk_api_level_23")
 
+    # Make sure that uncompress_shared_libraries is set to true if
+    # load_library_from_apk is true.
+    if (defined(invoker.uncompress_shared_libraries)) {
+      _uncompress_shared_libraries = invoker.uncompress_shared_libraries
+      assert(!_load_library_from_apk || _uncompress_shared_libraries)
+    } else {
+      _uncompress_shared_libraries = _load_library_from_apk
+    }
+
     # The dependency that makes the chromium linker, if any is needed.
     _native_libs_deps = []
     _shared_libraries_is_valid =
@@ -2299,7 +2311,6 @@
                                "loadable_modules",
                                "no_build_hooks",
                                "secondary_abi_loadable_modules",
-                               "uncompress_shared_libraries",
                              ])
       if (_is_bundle_module) {
         type = "android_app_bundle_module"
@@ -2352,6 +2363,8 @@
       }
 
       extra_shared_libraries = _extra_native_libs
+
+      uncompress_shared_libraries = _uncompress_shared_libraries
     }
 
     # TODO(cjhopman): This is only ever needed to calculate the list of tests to
@@ -2530,7 +2543,6 @@
                                [
                                  "public_deps",
                                  "shared_resources",
-                                 "uncompress_shared_libraries",
                                  "write_asset_list",
                                ])
         packaged_resources_path = _packaged_resources_path
@@ -2590,6 +2602,8 @@
                                  "native_lib_placeholders",
                                  "secondary_native_lib_placeholders",
                                ])
+
+        uncompress_shared_libraries = _uncompress_shared_libraries
       }
     } else {
       # placeholder native libraries never go into bundles, since they are
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 3b5d8e6c..43bd05c5 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -550,22 +550,34 @@
       cxx11_override = use_cxx11
     }
 
-    # Since we build with -std=c* and not -std=gnu*, _GNU_SOURCE will not be
-    # defined by the compiler.  However, lots of code relies on the non-standard
-    # features that _GNU_SOURCE enables, so define it manually.
-    defines += [ "_GNU_SOURCE" ]
+    if (is_clang) {
+      standard_prefix = "c"
 
-    cflags_c += [ "-std=c11" ]
+      # Since we build with -std=c* and not -std=gnu*, _GNU_SOURCE will not be
+      # defined by the compiler.  However, lots of code relies on the
+      # non-standard features that _GNU_SOURCE enables, so define it manually.
+      defines += [ "_GNU_SOURCE" ]
+
+      if (is_nacl) {
+        # Undefine __STRICT_ANSI__ to get non-standard features which would
+        # otherwise not be enabled by NaCl's sysroots.
+        cflags += [ "-U__STRICT_ANSI__" ]
+      }
+    } else {
+      # Gcc does not support ##__VA_ARGS__ when in standards-conforming mode,
+      # but we use this feature in several places in Chromium.
+      # TODO(thomasanderson): Replace usages of ##__VA_ARGS__ with the
+      # standard-compliant __VA_OPT__ added by C++20, and switch the gcc build
+      # to -std=c*.
+      standard_prefix = "gnu"
+    }
+
+    cflags_c += [ "-std=${standard_prefix}11" ]
     if (cxx11_override) {
       # Override Chromium's default for projects that wish to stay on C++11.
-      cflags_cc += [ "-std=c++11" ]
+      cflags_cc += [ "-std=${standard_prefix}++11" ]
     } else {
-      cflags_cc += [ "-std=c++14" ]
-    }
-    if (is_nacl) {
-      # Undefine __STRICT_ANSI__ to get non-standard features which would
-      # otherwise not be enabled by NaCl's sysroots.
-      cflags += [ "-U__STRICT_ANSI__" ]
+      cflags_cc += [ "-std=${standard_prefix}++14" ]
     }
   } else if (!is_win && !is_nacl) {
     if (target_os == "android") {
diff --git a/build/fuchsia/sdk.sha1 b/build/fuchsia/sdk.sha1
index 941313b5..17a7837 100644
--- a/build/fuchsia/sdk.sha1
+++ b/build/fuchsia/sdk.sha1
@@ -1 +1 @@
-b53dcb41c231e0290aac26395d57b8e30fbd6a0a
\ No newline at end of file
+d51912eb17078683d4860e2f3f1f700af4640a2c
\ No newline at end of file
diff --git a/cc/mojo_embedder/async_layer_tree_frame_sink.cc b/cc/mojo_embedder/async_layer_tree_frame_sink.cc
index ebaee44..5d44490 100644
--- a/cc/mojo_embedder/async_layer_tree_frame_sink.cc
+++ b/cc/mojo_embedder/async_layer_tree_frame_sink.cc
@@ -133,12 +133,12 @@
         local_surface_id_provider_->GetLocalSurfaceIdForFrame(frame);
   } else {
     if (local_surface_id_ == last_submitted_local_surface_id_) {
-      CHECK_EQ(last_submitted_device_scale_factor_,
-               frame.device_scale_factor());
-      CHECK_EQ(last_submitted_size_in_pixels_.height(),
-               frame.size_in_pixels().height());
-      CHECK_EQ(last_submitted_size_in_pixels_.width(),
-               frame.size_in_pixels().width());
+      DCHECK_EQ(last_submitted_device_scale_factor_,
+                frame.device_scale_factor());
+      DCHECK_EQ(last_submitted_size_in_pixels_.height(),
+                frame.size_in_pixels().height());
+      DCHECK_EQ(last_submitted_size_in_pixels_.width(),
+                frame.size_in_pixels().width());
     }
   }
 
diff --git a/cc/test/layer_tree_pixel_resource_test.cc b/cc/test/layer_tree_pixel_resource_test.cc
index 9c5aa1b9..0050c722 100644
--- a/cc/test/layer_tree_pixel_resource_test.cc
+++ b/cc/test/layer_tree_pixel_resource_test.cc
@@ -110,6 +110,12 @@
   RunPixelTest(test_type_, content_root, file_name);
 }
 
+void LayerTreeHostPixelResourceTest::RunPixelResourceTest(
+    scoped_refptr<Layer> content_root,
+    const SkBitmap& expected_bitmap) {
+  RunPixelTest(test_type_, content_root, expected_bitmap);
+}
+
 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest()
     : LayerTreeHostPixelResourceTest(::testing::get<0>(GetParam()),
                                      ::testing::get<1>(GetParam())) {}
diff --git a/cc/test/layer_tree_pixel_resource_test.h b/cc/test/layer_tree_pixel_resource_test.h
index 653a0a17..543e5c6 100644
--- a/cc/test/layer_tree_pixel_resource_test.h
+++ b/cc/test/layer_tree_pixel_resource_test.h
@@ -28,6 +28,8 @@
 
   void RunPixelResourceTest(scoped_refptr<Layer> content_root,
                             base::FilePath file_name);
+  void RunPixelResourceTest(scoped_refptr<Layer> content_root,
+                            const SkBitmap& expected_bitmap);
 
  protected:
   PixelResourceTestCase test_case_;
diff --git a/cc/test/layer_tree_pixel_test.cc b/cc/test/layer_tree_pixel_test.cc
index 72fc6b8..b2b8c3db 100644
--- a/cc/test/layer_tree_pixel_test.cc
+++ b/cc/test/layer_tree_pixel_test.cc
@@ -116,6 +116,14 @@
 }
 
 void LayerTreePixelTest::AfterTest() {
+  // Bitmap comparison.
+  if (ref_file_.empty()) {
+    EXPECT_TRUE(
+        MatchesBitmap(*result_bitmap_, expected_bitmap_, *pixel_comparator_));
+    return;
+  }
+
+  // File comparison.
   base::FilePath test_data_dir;
   EXPECT_TRUE(
       base::PathService::Get(viz::Paths::DIR_TEST_DATA, &test_data_dir));
@@ -201,6 +209,17 @@
   RunTest(CompositorMode::THREADED);
 }
 
+void LayerTreePixelTest::RunPixelTest(PixelTestType test_type,
+                                      scoped_refptr<Layer> content_root,
+                                      const SkBitmap& expected_bitmap) {
+  test_type_ = test_type;
+  content_root_ = content_root;
+  readback_target_ = nullptr;
+  ref_file_ = base::FilePath();
+  expected_bitmap_ = expected_bitmap;
+  RunTest(CompositorMode::THREADED);
+}
+
 void LayerTreePixelTest::RunSingleThreadedPixelTest(
     PixelTestType test_type,
     scoped_refptr<Layer> content_root,
diff --git a/cc/test/layer_tree_pixel_test.h b/cc/test/layer_tree_pixel_test.h
index fe2e75d..e96c555b 100644
--- a/cc/test/layer_tree_pixel_test.h
+++ b/cc/test/layer_tree_pixel_test.h
@@ -70,6 +70,9 @@
   void RunPixelTest(PixelTestType type,
                     scoped_refptr<Layer> content_root,
                     base::FilePath file_name);
+  void RunPixelTest(PixelTestType type,
+                    scoped_refptr<Layer> content_root,
+                    const SkBitmap& expected_bitmap);
 
   void RunSingleThreadedPixelTest(PixelTestType test_type,
                                   scoped_refptr<Layer> content_root,
@@ -105,6 +108,7 @@
   scoped_refptr<Layer> content_root_;
   Layer* readback_target_;
   base::FilePath ref_file_;
+  SkBitmap expected_bitmap_;
   std::unique_ptr<SkBitmap> result_bitmap_;
   std::vector<scoped_refptr<TextureLayer>> texture_layers_;
   int pending_texture_mailbox_callbacks_;
diff --git a/cc/test/pixel_test_utils.cc b/cc/test/pixel_test_utils.cc
index 43e70df..41ce88fd8 100644
--- a/cc/test/pixel_test_utils.cc
+++ b/cc/test/pixel_test_utils.cc
@@ -49,14 +49,9 @@
                                bitmap);
 }
 
-bool MatchesPNGFile(const SkBitmap& gen_bmp, base::FilePath ref_img_path,
-                    const PixelComparator& comparator) {
-  SkBitmap ref_bmp;
-  if (!ReadPNGFile(ref_img_path, &ref_bmp)) {
-    LOG(ERROR) << "Cannot read reference image: " << ref_img_path.value();
-    return false;
-  }
-
+bool MatchesBitmap(const SkBitmap& gen_bmp,
+                   const SkBitmap& ref_bmp,
+                   const PixelComparator& comparator) {
   // Check if images size matches
   if (gen_bmp.width() != ref_bmp.width() ||
       gen_bmp.height() != ref_bmp.height()) {
@@ -83,4 +78,16 @@
   return compare;
 }
 
+bool MatchesPNGFile(const SkBitmap& gen_bmp,
+                    base::FilePath ref_img_path,
+                    const PixelComparator& comparator) {
+  SkBitmap ref_bmp;
+  if (!ReadPNGFile(ref_img_path, &ref_bmp)) {
+    LOG(ERROR) << "Cannot read reference image: " << ref_img_path.value();
+    return false;
+  }
+
+  return MatchesBitmap(gen_bmp, ref_bmp, comparator);
+}
+
 }  // namespace cc
diff --git a/cc/test/pixel_test_utils.h b/cc/test/pixel_test_utils.h
index 81d20ce..ac3ed38 100644
--- a/cc/test/pixel_test_utils.h
+++ b/cc/test/pixel_test_utils.h
@@ -31,6 +31,12 @@
                     base::FilePath ref_img_path,
                     const PixelComparator& comparator);
 
+// Compares two bitmaps using the given PixelComparator, and returns true if the
+// comparator returns a match.
+bool MatchesBitmap(const SkBitmap& gen_bmp,
+                   const SkBitmap& ref_bmp,
+                   const PixelComparator& comparator);
+
 }  // namespace cc
 
 #endif  // CC_TEST_PIXEL_TEST_UTILS_H_
diff --git a/cc/trees/layer_tree_host_pixeltest_blending.cc b/cc/trees/layer_tree_host_pixeltest_blending.cc
index 2682c2a2..93dee1a 100644
--- a/cc/trees/layer_tree_host_pixeltest_blending.cc
+++ b/cc/trees/layer_tree_host_pixeltest_blending.cc
@@ -9,6 +9,8 @@
 #include "cc/layers/solid_color_layer.h"
 #include "cc/paint/paint_image.h"
 #include "cc/paint/paint_image_builder.h"
+#include "cc/paint/render_surface_filters.h"
+#include "cc/paint/skia_paint_canvas.h"
 #include "cc/test/layer_tree_pixel_resource_test.h"
 #include "cc/test/pixel_comparator.h"
 #include "components/viz/test/test_layer_tree_frame_sink.h"
@@ -53,7 +55,6 @@
     0x00000000   // transparent
 };
 
-const int kBlendModesCount = arraysize(kBlendModes);
 const int kCSSTestColorsCount = arraysize(kCSSTestColors);
 
 using RenderPassOptions = uint32_t;
@@ -62,13 +63,23 @@
 const uint32_t kUseColorMatrix = 1 << 2;
 const uint32_t kForceShaders = 1 << 3;
 
-class LayerTreeHostBlendingPixelTest : public LayerTreeHostPixelResourceTest {
+class LayerTreeHostBlendingPixelTest
+    : public LayerTreeHostPixelResourceTest,
+      public ::testing::WithParamInterface<
+          ::testing::tuple<PixelResourceTestCase, SkBlendMode>> {
  public:
   LayerTreeHostBlendingPixelTest()
       : force_antialiasing_(false), force_blending_with_shaders_(false) {
     pixel_comparator_.reset(new FuzzyPixelOffByOneComparator(true));
   }
 
+  PixelResourceTestCase resource_type() const {
+    return ::testing::get<0>(GetParam());
+  }
+  SkBlendMode current_blend_mode() const {
+    return ::testing::get<1>(GetParam());
+  }
+
  protected:
   std::unique_ptr<viz::TestLayerTreeFrameSink> CreateLayerTreeFrameSink(
       const viz::RendererSettings& renderer_settings,
@@ -85,62 +96,7 @@
         worker_context_provider);
   }
 
-  void RunBlendingWithRootPixelTestType(PixelResourceTestCase type) {
-    const int kLaneWidth = 2;
-    const int kLaneHeight = kLaneWidth;
-    const int kRootWidth = (kBlendModesCount + 2) * kLaneWidth;
-    const int kRootHeight = 2 * kLaneWidth + kLaneHeight;
-    InitializeFromTestCase(type);
-
-    scoped_refptr<SolidColorLayer> background =
-        CreateSolidColorLayer(gfx::Rect(kRootWidth, kRootHeight), kCSSOrange);
-
-    // Orange child layers will blend with the green background
-    for (int i = 0; i < kBlendModesCount; ++i) {
-      gfx::Rect child_rect(
-          (i + 1) * kLaneWidth, kLaneWidth, kLaneWidth, kLaneHeight);
-      scoped_refptr<SolidColorLayer> green_lane =
-          CreateSolidColorLayer(child_rect, kCSSGreen);
-      background->AddChild(green_lane);
-      green_lane->SetBlendMode(kBlendModes[i]);
-    }
-
-    RunPixelResourceTest(
-        background,
-        base::FilePath(FILE_PATH_LITERAL("blending_with_root.png")));
-  }
-
-  void RunBlendingWithTransparentPixelTestType(PixelResourceTestCase type) {
-    const int kLaneWidth = 2;
-    const int kLaneHeight = 3 * kLaneWidth;
-    const int kRootWidth = (kBlendModesCount + 2) * kLaneWidth;
-    const int kRootHeight = 2 * kLaneWidth + kLaneHeight;
-    InitializeFromTestCase(type);
-
-    scoped_refptr<SolidColorLayer> root =
-        CreateSolidColorLayer(gfx::Rect(kRootWidth, kRootHeight), kCSSBrown);
-
-    scoped_refptr<SolidColorLayer> background = CreateSolidColorLayer(
-        gfx::Rect(0, kLaneWidth * 2, kRootWidth, kLaneWidth), kCSSOrange);
-
-    root->AddChild(background);
-    background->SetIsRootForIsolatedGroup(true);
-
-    // Orange child layers will blend with the green background
-    for (int i = 0; i < kBlendModesCount; ++i) {
-      gfx::Rect child_rect(
-          (i + 1) * kLaneWidth, -kLaneWidth, kLaneWidth, kLaneHeight);
-      scoped_refptr<SolidColorLayer> green_lane =
-          CreateSolidColorLayer(child_rect, kCSSGreen);
-      background->AddChild(green_lane);
-      green_lane->SetBlendMode(kBlendModes[i]);
-    }
-
-    RunPixelResourceTest(
-        root, base::FilePath(FILE_PATH_LITERAL("blending_transparent.png")));
-  }
-
-  scoped_refptr<Layer> CreateColorfulBackdropLayer(int width, int height) {
+  sk_sp<SkSurface> CreateColorfulSurface(int width, int height) {
     // Draw the backdrop with horizontal lanes.
     const int kLaneWidth = width;
     const int kLaneHeight = height / kCSSTestColorsCount;
@@ -154,6 +110,11 @@
       canvas->drawRect(
           SkRect::MakeXYWH(0, i * kLaneHeight, kLaneWidth, kLaneHeight), paint);
     }
+    return backing_store;
+  }
+
+  scoped_refptr<Layer> CreateColorfulBackdropLayer(int width, int height) {
+    sk_sp<SkSurface> backing_store = CreateColorfulSurface(width, height);
     scoped_refptr<PictureImageLayer> layer = PictureImageLayer::Create();
     layer->SetIsDrawable(true);
     layer->SetBounds(gfx::Size(width, height));
@@ -167,7 +128,6 @@
   }
 
   void SetupMaskLayer(scoped_refptr<Layer> layer) {
-    const int kMaskOffset = 2;
     gfx::Size bounds = layer->bounds();
     scoped_refptr<PictureImageLayer> mask = PictureImageLayer::Create();
     mask->SetIsDrawable(true);
@@ -180,10 +140,10 @@
     SkPaint paint;
     paint.setColor(SK_ColorWHITE);
     canvas->clear(SK_ColorTRANSPARENT);
-    canvas->drawRect(SkRect::MakeXYWH(kMaskOffset, kMaskOffset,
-                                      bounds.width() - kMaskOffset * 2,
-                                      bounds.height() - kMaskOffset * 2),
-                     paint);
+    // This layer is a long skinny layer of size 2, so have the mask
+    // cover the right half of it
+    canvas->drawRect(
+        SkRect::MakeXYWH(1, 0, bounds.width() - 1, bounds.height()), paint);
     mask->SetImage(PaintImageBuilder::WithDefault()
                        .set_id(PaintImage::GetNextId())
                        .set_image(surface->makeImageSnapshot(),
@@ -203,55 +163,60 @@
                                  int lane_height,
                                  scoped_refptr<Layer> background,
                                  RenderPassOptions flags) {
-    const int kLanesCount = kBlendModesCount + 4;
-    const SkColor kMiscOpaqueColor = 0xffc86464;
-    const SkColor kMiscTransparentColor = 0x80c86464;
-    const SkBlendMode kCoeffBlendMode = SkBlendMode::kScreen;
-    const SkBlendMode kShaderBlendMode = SkBlendMode::kColorBurn;
-    // add vertical lanes with each of the blend modes
-    for (int i = 0; i < kLanesCount; ++i) {
-      gfx::Rect child_rect(i * lane_width, 0, lane_width, lane_height);
-      SkBlendMode blend_mode = SkBlendMode::kSrcOver;
-      float opacity = 1.f;
-      SkColor color = kMiscOpaqueColor;
+    gfx::Rect child_rect(lane_width, lane_height);
 
-      if (i < kBlendModesCount) {
-        blend_mode = kBlendModes[i];
-      } else if (i == kBlendModesCount) {
-        blend_mode = kCoeffBlendMode;
-        opacity = 0.5f;
-      } else if (i == kBlendModesCount + 1) {
-        blend_mode = kCoeffBlendMode;
-        color = kMiscTransparentColor;
-      } else if (i == kBlendModesCount + 2) {
-        blend_mode = kShaderBlendMode;
-        opacity = 0.5f;
-      } else if (i == kBlendModesCount + 3) {
-        blend_mode = kShaderBlendMode;
-        color = kMiscTransparentColor;
-      }
-      scoped_refptr<SolidColorLayer> lane =
-          CreateSolidColorLayer(child_rect, color);
-      lane->SetBlendMode(blend_mode);
-      lane->SetOpacity(opacity);
-      lane->SetForceRenderSurfaceForTesting(true);
-      // Layers with kDstIn blend mode with a mask is not supported.
-      if (flags & kUseMasks)
-        SetupMaskLayer(lane);
-      if (flags & kUseColorMatrix) {
-        SetupColorMatrix(lane);
-      }
-      background->AddChild(lane);
+    scoped_refptr<SolidColorLayer> lane =
+        CreateSolidColorLayer(child_rect, misc_opaque_color_);
+    lane->SetBlendMode(current_blend_mode());
+    lane->SetForceRenderSurfaceForTesting(true);
+
+    // Layers with kDstIn blend mode with a mask is not supported.
+    if (flags & kUseMasks)
+      SetupMaskLayer(lane);
+    if (flags & kUseColorMatrix) {
+      SetupColorMatrix(lane);
     }
+    background->AddChild(lane);
   }
 
-  void RunBlendingWithRenderPass(PixelResourceTestCase type,
-                                 const base::FilePath::CharType* expected_path,
-                                 RenderPassOptions flags) {
-    const int kLaneWidth = 8;
-    const int kRootWidth = kLaneWidth * (kBlendModesCount + 4);
-    const int kRootHeight = kLaneWidth * kCSSTestColorsCount;
-    InitializeFromTestCase(type);
+  SkBitmap CreateBlendingWithRenderPassExpected(int width,
+                                                int height,
+                                                RenderPassOptions flags) {
+    // Should match RunBlendingWithRenderPass.
+    sk_sp<SkSurface> surface = CreateColorfulSurface(width, height);
+
+    SkPaint paint;
+    paint.setBlendMode(current_blend_mode());
+    paint.setColor(misc_opaque_color_);
+
+    SkRect rect;
+    if (flags & kUseMasks) {
+      rect = SkRect::MakeXYWH(1, 0, width - 1, height);
+    } else {
+      rect = SkRect::MakeWH(width, height);
+    }
+    surface->getCanvas()->drawRect(rect, paint);
+
+    SkBitmap expected;
+    expected.allocN32Pixels(width, height);
+    SkCanvas canvas(expected);
+    canvas.clear(SK_ColorWHITE);
+    canvas.drawImage(surface->makeImageSnapshot(), 0, 0);
+
+    return expected;
+  }
+
+  void RunBlendingWithRenderPass(RenderPassOptions flags) {
+    const int kRootWidth = 2;
+    const int kRootHeight = kRootWidth * kCSSTestColorsCount;
+    InitializeFromTestCase(resource_type());
+
+    // Force shaders only applies to gl renderer.
+    if (test_type_ != PIXEL_TEST_GL && flags & kForceShaders)
+      return;
+
+    SCOPED_TRACE(test_type_ == PIXEL_TEST_GL ? "GL" : "Software");
+    SCOPED_TRACE(SkBlendMode_Name(current_blend_mode()));
 
     scoped_refptr<SolidColorLayer> root = CreateSolidColorLayer(
         gfx::Rect(kRootWidth, kRootHeight), SK_ColorWHITE);
@@ -261,21 +226,20 @@
     background->SetIsRootForIsolatedGroup(true);
     root->AddChild(background);
 
-    CreateBlendingColorLayers(kLaneWidth, kRootHeight, background.get(), flags);
+    CreateBlendingColorLayers(kRootWidth, kRootHeight, background.get(), flags);
 
     this->force_antialiasing_ = (flags & kUseAntialiasing);
     this->force_blending_with_shaders_ = (flags & kForceShaders);
 
     if ((flags & kUseAntialiasing) && (test_type_ == PIXEL_TEST_GL)) {
-      // Anti aliasing causes differences up to 8 pixels at the edges.
-      int large_error_allowed = 8;
       // Blending results might differ with one pixel.
+      // Don't allow large errors here, only off by ones.
+      // However, large error still has to be specified to satisfy
+      // the pixel comparator so set it equivalent to small errors.
+      int large_error_allowed = 1;
       int small_error_allowed = 1;
-      // Most of the errors are one pixel errors.
-      float percentage_pixels_small_error = 13.2f;
-      // Because of anti-aliasing, around 10% of pixels (at the edges) have
-      // bigger errors (from small_error_allowed + 1 to large_error_allowed).
-      float percentage_pixels_error = 22.5f;
+      float percentage_pixels_small_error = 35.0f;
+      float percentage_pixels_error = 35.0f;
       // The average error is still close to 1.
       float average_error_allowed_in_bad_pixels = 1.4f;
 
@@ -288,247 +252,192 @@
                                    small_error_allowed));
     }
 
-    RunPixelResourceTest(root, base::FilePath(expected_path));
+    RunPixelResourceTest(root, CreateBlendingWithRenderPassExpected(
+                                   kRootWidth, kRootHeight, flags));
   }
 
   bool force_antialiasing_;
   bool force_blending_with_shaders_;
+  SkColor misc_opaque_color_ = 0xffc86464;
 };
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRoot_GL) {
-  RunBlendingWithRootPixelTestType(ZERO_COPY);
+INSTANTIATE_TEST_CASE_P(B,
+                        LayerTreeHostBlendingPixelTest,
+                        ::testing::Combine(::testing::Values(SOFTWARE,
+                                                             ZERO_COPY),
+                                           ::testing::ValuesIn(kBlendModes)));
+
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRoot) {
+  const int kRootWidth = 2;
+  const int kRootHeight = 2;
+  InitializeFromTestCase(resource_type());
+
+  scoped_refptr<SolidColorLayer> background =
+      CreateSolidColorLayer(gfx::Rect(kRootWidth, kRootHeight), kCSSOrange);
+
+  // Orange child layers will blend with the green background
+  gfx::Rect child_rect(0, 0, kRootWidth, kRootHeight);
+  scoped_refptr<SolidColorLayer> green_lane =
+      CreateSolidColorLayer(child_rect, kCSSGreen);
+  background->AddChild(green_lane);
+  green_lane->SetBlendMode(current_blend_mode());
+
+  SkBitmap expected;
+  expected.allocN32Pixels(kRootWidth, kRootHeight);
+  SkCanvas canvas(expected);
+  canvas.drawColor(kCSSOrange);
+  SkPaint paint;
+  paint.setBlendMode(current_blend_mode());
+  paint.setColor(kCSSGreen);
+  canvas.drawRect(SkRect::MakeWH(kRootWidth, kRootHeight), paint);
+
+  RunPixelResourceTest(background, expected);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRoot_Software) {
-  RunBlendingWithRootPixelTestType(SOFTWARE);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithBackgroundFilter) {
-  const int kLaneWidth = 2;
-  const int kLaneHeight = kLaneWidth;
-  const int kRootWidth = (kBlendModesCount + 2) * kLaneWidth;
-  const int kRootHeight = 2 * kLaneWidth + kLaneHeight;
-  InitializeFromTestCase(ZERO_COPY);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithBackgroundFilter) {
+  const int kRootWidth = 2;
+  const int kRootHeight = 2;
+  InitializeFromTestCase(resource_type());
 
   scoped_refptr<SolidColorLayer> background =
       CreateSolidColorLayer(gfx::Rect(kRootWidth, kRootHeight), kCSSOrange);
 
   // Orange child layers have a background filter set and they will blend with
   // the green background
-  for (int i = 0; i < kBlendModesCount; ++i) {
-    gfx::Rect child_rect(
-        (i + 1) * kLaneWidth, kLaneWidth, kLaneWidth, kLaneHeight);
-    scoped_refptr<SolidColorLayer> green_lane =
-        CreateSolidColorLayer(child_rect, kCSSGreen);
-    background->AddChild(green_lane);
+  gfx::Rect child_rect(0, 0, kRootWidth, kRootHeight);
+  scoped_refptr<SolidColorLayer> green_lane =
+      CreateSolidColorLayer(child_rect, kCSSGreen);
+  background->AddChild(green_lane);
+  FilterOperations filters;
+  filters.Append(FilterOperation::CreateGrayscaleFilter(.75));
+  green_lane->SetBackgroundFilters(filters);
+  green_lane->SetBlendMode(current_blend_mode());
 
-    FilterOperations filters;
-    filters.Append(FilterOperation::CreateGrayscaleFilter(.75));
-    green_lane->SetBackgroundFilters(filters);
-    green_lane->SetBlendMode(kBlendModes[i]);
-  }
+  SkBitmap expected;
+  expected.allocN32Pixels(kRootWidth, kRootHeight);
+  SkCanvas canvas(expected);
+  SkiaPaintCanvas paint_canvas(&canvas);
+  PaintFlags grayscale;
+  grayscale.setColor(kCSSOrange);
 
-  RunPixelResourceTest(
-      background, base::FilePath(FILE_PATH_LITERAL("blending_and_filter.png")));
+  sk_sp<PaintFilter> paint_filter = RenderSurfaceFilters::BuildImageFilter(
+      filters, gfx::SizeF(kRootWidth, kRootHeight));
+  grayscale.setImageFilter(paint_filter);
+  paint_canvas.drawRect(SkRect::MakeWH(kRootWidth, kRootHeight), grayscale);
+
+  PaintFlags blend_green;
+  blend_green.setBlendMode(current_blend_mode());
+  blend_green.setColor(kCSSGreen);
+  paint_canvas.drawRect(SkRect::MakeWH(kRootWidth, kRootHeight), blend_green);
+
+  RunPixelResourceTest(background, expected);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithTransparent_GL) {
-  RunBlendingWithTransparentPixelTestType(ZERO_COPY);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithTransparent) {
+  const int kRootWidth = 2;
+  const int kRootHeight = 2;
+  InitializeFromTestCase(resource_type());
+
+  // Intermediate layer here that should be ignored because of the isolated
+  // group.
+  scoped_refptr<SolidColorLayer> root =
+      CreateSolidColorLayer(gfx::Rect(kRootWidth, kRootHeight), kCSSBrown);
+
+  scoped_refptr<SolidColorLayer> background =
+      CreateSolidColorLayer(gfx::Rect(kRootWidth, kRootHeight), kCSSOrange);
+
+  root->AddChild(background);
+  background->SetIsRootForIsolatedGroup(true);
+
+  // Orange child layers will blend with the green background
+  gfx::Rect child_rect(kRootWidth, kRootHeight);
+  scoped_refptr<SolidColorLayer> green_lane =
+      CreateSolidColorLayer(child_rect, kCSSGreen);
+  background->AddChild(green_lane);
+  green_lane->SetBlendMode(current_blend_mode());
+
+  SkBitmap expected;
+  expected.allocN32Pixels(kRootWidth, kRootHeight);
+  SkCanvas canvas(expected);
+  canvas.drawColor(kCSSOrange);
+  SkPaint paint;
+  paint.setBlendMode(current_blend_mode());
+  paint.setColor(kCSSGreen);
+  canvas.drawRect(SkRect::MakeWH(kRootWidth, kRootHeight), paint);
+
+  RunPixelResourceTest(root, expected);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithTransparent_Software) {
-  RunBlendingWithTransparentPixelTestType(SOFTWARE);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRenderPass) {
+  RunBlendingWithRenderPass(0);
 }
 
-// Tests for render passes
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPass_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass.png"), 0);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassAA) {
+  RunBlendingWithRenderPass(kUseAntialiasing);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPass_Software) {
-  RunBlendingWithRenderPass(SOFTWARE,
-                            FILE_PATH_LITERAL("blending_render_pass.png"), 0);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassColorMatrix) {
+  RunBlendingWithRenderPass(kUseColorMatrix);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassAA_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass.png"),
-                            kUseAntialiasing);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassWithMask) {
+  RunBlendingWithRenderPass(kUseMasks);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassAA_Software) {
-  RunBlendingWithRenderPass(SOFTWARE,
-                            FILE_PATH_LITERAL("blending_render_pass.png"),
-                            kUseAntialiasing);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassColorMatrixAA) {
+  RunBlendingWithRenderPass(kUseAntialiasing | kUseColorMatrix);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassWithMask_GL) {
-  RunBlendingWithRenderPass(
-      ZERO_COPY, FILE_PATH_LITERAL("blending_render_pass_mask.png"), kUseMasks);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassWithMaskAA) {
+  RunBlendingWithRenderPass(kUseMasks | kUseAntialiasing);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassWithMask_Software) {
-  RunBlendingWithRenderPass(
-      SOFTWARE, FILE_PATH_LITERAL("blending_render_pass_mask.png"), kUseMasks);
+TEST_P(LayerTreeHostBlendingPixelTest,
+       BlendingWithRenderPassWithMaskColorMatrix) {
+  RunBlendingWithRenderPass(kUseMasks | kUseColorMatrix);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassWithMaskAA_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kUseAntialiasing);
+TEST_P(LayerTreeHostBlendingPixelTest,
+       BlendingWithRenderPassWithMaskColorMatrixAA) {
+  RunBlendingWithRenderPass(kUseMasks | kUseAntialiasing | kUseColorMatrix);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassWithMaskAA_Software) {
-  RunBlendingWithRenderPass(SOFTWARE,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kUseAntialiasing);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassShaders) {
+  RunBlendingWithRenderPass(kForceShaders);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassColorMatrix_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass.png"),
-                            kUseColorMatrix);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassShadersAA) {
+  RunBlendingWithRenderPass(kUseAntialiasing | kForceShaders);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassColorMatrix_Software) {
-  RunBlendingWithRenderPass(
-      SOFTWARE, FILE_PATH_LITERAL("blending_render_pass.png"), kUseColorMatrix);
+TEST_P(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassShadersWithMask) {
+  RunBlendingWithRenderPass(kUseMasks | kForceShaders);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassColorMatrixAA_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass.png"),
-                            kUseAntialiasing | kUseColorMatrix);
+TEST_P(LayerTreeHostBlendingPixelTest,
+       BlendingWithRenderPassShadersWithMaskAA) {
+  RunBlendingWithRenderPass(kUseMasks | kUseAntialiasing | kForceShaders);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassColorMatrixAA_Software) {
-  RunBlendingWithRenderPass(SOFTWARE,
-                            FILE_PATH_LITERAL("blending_render_pass.png"),
-                            kUseAntialiasing | kUseColorMatrix);
+TEST_P(LayerTreeHostBlendingPixelTest,
+       BlendingWithRenderPassShadersColorMatrix) {
+  RunBlendingWithRenderPass(kUseColorMatrix | kForceShaders);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassWithMaskColorMatrix_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kUseColorMatrix);
+TEST_P(LayerTreeHostBlendingPixelTest,
+       BlendingWithRenderPassShadersColorMatrixAA) {
+  RunBlendingWithRenderPass(kUseAntialiasing | kUseColorMatrix | kForceShaders);
 }
 
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassWithMaskColorMatrix_Software) {
-  RunBlendingWithRenderPass(SOFTWARE,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kUseColorMatrix);
+TEST_P(LayerTreeHostBlendingPixelTest,
+       BlendingWithRenderPassShadersWithMaskColorMatrix) {
+  RunBlendingWithRenderPass(kUseMasks | kUseColorMatrix | kForceShaders);
 }
 
-// Often times out on Windows 10. See: https://crbug.com/870236.
-#if defined(OS_WIN)
-#define MAYBE_BlendingWithRenderPassWithMaskColorMatrixAA_GL \
-  DISABLED_BlendingWithRenderPassWithMaskColorMatrixAA_GL
-#else
-#define MAYBE_BlendingWithRenderPassWithMaskColorMatrixAA_GL \
-  BlendingWithRenderPassWithMaskColorMatrixAA_GL
-#endif
-TEST_F(LayerTreeHostBlendingPixelTest,
-       MAYBE_BlendingWithRenderPassWithMaskColorMatrixAA_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kUseAntialiasing | kUseColorMatrix);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassWithMaskColorMatrixAA_Software) {
-  RunBlendingWithRenderPass(SOFTWARE,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kUseAntialiasing | kUseColorMatrix);
-}
-
-// Tests for render passes forcing shaders for all the blend modes.
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassShaders_GL) {
-  RunBlendingWithRenderPass(
-      ZERO_COPY, FILE_PATH_LITERAL("blending_render_pass.png"), kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassShadersAA_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass.png"),
-                            kUseAntialiasing | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassShadersWithMask_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassShadersWithMask_GL_TextureRect) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassShadersWithMaskAA_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kUseAntialiasing | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassShadersWithMaskAA_GL_TextureRect) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kUseAntialiasing | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassShadersColorMatrix_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass.png"),
-                            kUseColorMatrix | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassShadersColorMatrixAA_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass.png"),
-                            kUseAntialiasing | kUseColorMatrix | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassShadersWithMaskColorMatrix_GL) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kUseColorMatrix | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
-       BlendingWithRenderPassShadersWithMaskColorMatrix_GL_TextureRect) {
-  RunBlendingWithRenderPass(ZERO_COPY,
-                            FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-                            kUseMasks | kUseColorMatrix | kForceShaders);
-}
-
-// Often times out on Windows 10. See: https://crbug.com/870236.
-#if defined(OS_WIN)
-#define MAYBE_BlendingWithRenderPassShadersWithMaskColorMatrixAA_GL \
-  DISABLED_BlendingWithRenderPassShadersWithMaskColorMatrixAA_GL
-#else
-#define MAYBE_BlendingWithRenderPassShadersWithMaskColorMatrixAA_GL \
-  BlendingWithRenderPassShadersWithMaskColorMatrixAA_GL
-#endif
-TEST_F(LayerTreeHostBlendingPixelTest,
-       MAYBE_BlendingWithRenderPassShadersWithMaskColorMatrixAA_GL) {
-  RunBlendingWithRenderPass(
-      ZERO_COPY, FILE_PATH_LITERAL("blending_render_pass_mask.png"),
-      kUseMasks | kUseAntialiasing | kUseColorMatrix | kForceShaders);
+TEST_P(LayerTreeHostBlendingPixelTest,
+       BlendingWithRenderPassShadersWithMaskColorMatrixAA) {
+  RunBlendingWithRenderPass(kUseMasks | kUseAntialiasing | kUseColorMatrix |
+                            kForceShaders);
 }
 
 }  // namespace
diff --git a/cc/trees/render_frame_metadata.h b/cc/trees/render_frame_metadata.h
index e86ff1ef..5f15602 100644
--- a/cc/trees/render_frame_metadata.h
+++ b/cc/trees/render_frame_metadata.h
@@ -57,7 +57,8 @@
   // The device scale factor used to generate a CompositorFrame.
   float device_scale_factor = 1.f;
 
-  // The size of the viewport used to generate a CompositorFrame.
+  // The size of the viewport used to generate a CompositorFrame. Equivalent to
+  // the size of the root render pass.
   gfx::Size viewport_size_in_pixels;
 
   // The last viz::LocalSurfaceId used to submit a CompositorFrame.
diff --git a/chrome/VERSION b/chrome/VERSION
index b882253..cc47d2a 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=70
 MINOR=0
-BUILD=3529
+BUILD=3530
 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index f2a2f773..794cfac4 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -227,7 +227,7 @@
     "//components/autofill/android:autofill_java",
     "//components/background_task_scheduler:background_task_scheduler_java",
     "//components/bookmarks/common/android:bookmarks_java",
-    "//components/contextual_search:mojo_bindings_java",
+    "//components/contextual_search/content:mojo_bindings_java",
     "//components/crash/android:java",
     "//components/dom_distiller/content/browser/android:dom_distiller_content_java",
     "//components/dom_distiller/core/android:dom_distiller_core_java",
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
index f355bfb..698faa1 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
@@ -5,6 +5,7 @@
 package org.chromium.chrome.browser.feed;
 
 import android.content.Context;
+import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.graphics.Canvas;
 import android.graphics.Color;
@@ -44,6 +45,8 @@
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.util.ViewUtils;
+import org.chromium.chrome.browser.widget.displaystyle.HorizontalDisplayStyle;
+import org.chromium.chrome.browser.widget.displaystyle.MarginResizer;
 import org.chromium.chrome.browser.widget.displaystyle.UiConfig;
 
 import java.util.Arrays;
@@ -58,6 +61,7 @@
     private final StreamLifecycleManager mStreamLifecycleManager;
     private final Stream mStream;
 
+    private UiConfig mUiConfig;
     private FrameLayout mRootView;
     private SectionHeaderView mSectionHeaderView;
     private FeedImageLoader mImageLoader;
@@ -72,22 +76,15 @@
     }
 
     private static class BasicStreamConfiguration implements StreamConfiguration {
-        private final Resources mResources;
-        private final int mPadding;
-
-        public BasicStreamConfiguration(Resources resources) {
-            mResources = resources;
-            mPadding = mResources.getDimensionPixelSize(
-                    R.dimen.content_suggestions_card_modern_margin);
-        }
+        public BasicStreamConfiguration() {}
 
         @Override
         public int getPaddingStart() {
-            return mPadding;
+            return 0;
         }
         @Override
         public int getPaddingEnd() {
-            return mPadding;
+            return 0;
         }
         @Override
         public int getPaddingTop() {
@@ -101,18 +98,23 @@
 
     private static class BasicCardConfiguration implements CardConfiguration {
         private final Resources mResources;
+        private final UiConfig mUiConfig;
         private final int mCornerRadius;
         private final Drawable mCardBackground;
-        private final int mCardMarginBottom;
+        private final int mCardMargin;
+        private final int mCardWideMargin;
 
-        public BasicCardConfiguration(Resources resources) {
+        public BasicCardConfiguration(Resources resources, UiConfig uiConfig) {
             mResources = resources;
+            mUiConfig = uiConfig;
             mCornerRadius = mResources.getDimensionPixelSize(
                     R.dimen.content_suggestions_card_modern_corner_radius);
             mCardBackground = ApiCompatibilityUtils.getDrawable(
                     mResources, R.drawable.content_card_modern_background);
-            mCardMarginBottom = mResources.getDimensionPixelSize(
+            mCardMargin = mResources.getDimensionPixelSize(
                     R.dimen.content_suggestions_card_modern_margin);
+            mCardWideMargin =
+                    mResources.getDimensionPixelSize(R.dimen.ntp_wide_card_lateral_margins);
         }
 
         @Override
@@ -127,19 +129,21 @@
 
         @Override
         public int getCardBottomMargin() {
-            return mCardMarginBottom;
+            return mCardMargin;
         }
 
         @Override
         public int getCardStartMargin() {
-            // TODO(twellington): implement this method.
-            return 0;
+            return mUiConfig.getCurrentDisplayStyle().horizontal == HorizontalDisplayStyle.WIDE
+                    ? mCardWideMargin
+                    : mCardMargin;
         }
 
         @Override
         public int getCardEndMargin() {
-            // TODO(twellington): implement this method.
-            return 0;
+            return mUiConfig.getCurrentDisplayStyle().horizontal == HorizontalDisplayStyle.WIDE
+                    ? mCardWideMargin
+                    : mCardMargin;
         }
     }
 
@@ -158,6 +162,21 @@
     }
 
     /**
+     * Provides the additional capabilities needed for the {@link FeedNewTabPage} container view.
+     */
+    private class RootView extends FrameLayout {
+        public RootView(Context context) {
+            super(context);
+        }
+
+        @Override
+        protected void onConfigurationChanged(Configuration newConfig) {
+            super.onConfigurationChanged(newConfig);
+            mUiConfig.updateDisplayStyle();
+        }
+    }
+
+    /**
      * Constructs a new FeedNewTabPage.
      *
      * @param activity The containing {@link ChromeActivity}.
@@ -180,8 +199,8 @@
         FeedStreamScope streamScope =
                 feedProcessScope
                         .createFeedStreamScopeBuilder(activity, mImageLoader, actionApi,
-                                new BasicStreamConfiguration(activity.getResources()),
-                                new BasicCardConfiguration(activity.getResources()),
+                                new BasicStreamConfiguration(),
+                                new BasicCardConfiguration(activity.getResources(), mUiConfig),
                                 new BasicSnackbarApi(), new FeedBasicLogging(),
                                 new StubOfflineIndicatorApi())
                         .build();
@@ -194,6 +213,12 @@
         mSectionHeaderView = (SectionHeaderView) inflater.inflate(
                 R.layout.new_tab_page_snippets_expandable_header, null);
 
+        // TODO(huayinz): Add MarginResizer for sign-in promo under issue 860051 or 860043,
+        // depending on which one lands first.
+        int wideMargin = mSectionHeaderView.getResources().getDimensionPixelSize(
+                R.dimen.ntp_wide_card_lateral_margins);
+        MarginResizer.createAndAttach(mSectionHeaderView, mUiConfig, 0, wideMargin);
+
         mMediator = new FeedNewTabPageMediator(this,
                 new SnapScrollHelper(mNewTabPageManager, mNewTabPageLayout, mStream.getView()));
 
@@ -209,7 +234,7 @@
         mNewTabPageLayout.initialize(mNewTabPageManager, mTab, mTileGroupDelegate,
                 mSearchProviderHasLogo,
                 TemplateUrlService.getInstance().isDefaultSearchEngineGoogle(), mMediator,
-                contextMenuManager, new UiConfig(mRootView));
+                contextMenuManager, mUiConfig);
 
         mStream.getView().setBackgroundColor(Color.WHITE);
         mRootView.addView(mStream.getView());
@@ -221,10 +246,11 @@
     @Override
     protected void initializeMainView(Context context) {
         int topPadding = context.getResources().getDimensionPixelOffset(R.dimen.tab_strip_height);
-        mRootView = new FrameLayout(context);
+        mRootView = new RootView(context);
         mRootView.setLayoutParams(new FrameLayout.LayoutParams(
                 FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
         mRootView.setPadding(0, topPadding, 0, 0);
+        mUiConfig = new UiConfig(mRootView);
     }
 
     @Override
diff --git a/chrome/android/java/res/layout/control_container.xml b/chrome/android/java/res/layout/control_container.xml
index 9695ca7..8470dd5 100644
--- a/chrome/android/java/res/layout/control_container.xml
+++ b/chrome/android/java/res/layout/control_container.xml
@@ -14,7 +14,7 @@
         android:id="@+id/toolbar_container"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
-        <ViewStub
+        <org.chromium.ui.AsyncViewStub
             android:id="@+id/toolbar_stub"
             android:layout_width="match_parent"
             android:layout_marginTop="@dimen/tab_strip_height"
diff --git a/chrome/android/java/res/layout/experimental_explore_sites_category_tile_view.xml b/chrome/android/java/res/layout/experimental_explore_sites_category_tile_view.xml
index 98f0e0b..d456217 100644
--- a/chrome/android/java/res/layout/experimental_explore_sites_category_tile_view.xml
+++ b/chrome/android/java/res/layout/experimental_explore_sites_category_tile_view.xml
@@ -4,7 +4,7 @@
      found in the LICENSE file. -->
 
 <!-- An explore sites section tile. -->
-<org.chromium.chrome.browser.explore_sites.ExploreSitesCategoryTileView
+<org.chromium.chrome.browser.explore_sites.ExperimentalExploreSitesCategoryTileView
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
@@ -28,4 +28,4 @@
         android:layout_height="wrap_content"
         android:gravity="center_horizontal"
         android:textAppearance="@style/BlackCaptionDefault" />
-</org.chromium.chrome.browser.explore_sites.ExploreSitesCategoryTileView>
+</org.chromium.chrome.browser.explore_sites.ExperimentalExploreSitesCategoryTileView>
diff --git a/chrome/android/java/res/values/attrs.xml b/chrome/android/java/res/values/attrs.xml
index 27a0da9..6bd3f3f 100644
--- a/chrome/android/java/res/values/attrs.xml
+++ b/chrome/android/java/res/values/attrs.xml
@@ -95,4 +95,12 @@
         <!-- drawableTint wasn't added in Android until API level 23. -->
         <attr name="chromeDrawableTint" format="color"/>
     </declare-styleable>
+
+    <declare-styleable name="AsyncViewStub">
+        <!-- Supply an identifier for the layout resource to inflate when the AsyncViewStub
+             becomes visible or when forced to do so. The layout resource must be a
+             valid reference to a layout. -->
+        <attr name="layout" format="reference" />
+        <attr name="autoInflate" format="boolean" />
+    </declare-styleable>
 </resources>
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 682a7b5c..7261710 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -544,8 +544,8 @@
             mToolbarManager = new ToolbarManager(this, toolbarContainer, mAppMenuHandler,
                     mAppMenuPropertiesDelegate, getCompositorViewHolder().getInvalidator(),
                     urlFocusChangedCallback);
-            mFindToolbarManager = new FindToolbarManager(
-                    this, mToolbarManager.getActionModeController().getActionModeCallback());
+            mFindToolbarManager =
+                    new FindToolbarManager(this, mToolbarManager.getActionModeControllerCallback());
             mAppMenuHandler.addObserver(new AppMenuObserver() {
                 @Override
                 public void onMenuVisibilityChanged(boolean isVisible) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
index 1163058..8cea401 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -221,6 +221,7 @@
     public static final String HOMEPAGE_TILE = "HomepageTile";
     public static final String HORIZONTAL_TAB_SWITCHER_ANDROID = "HorizontalTabSwitcherAndroid";
     public static final String INCOGNITO_STRINGS = "IncognitoStrings";
+    public static final String INFLATE_TOOLBAR_ON_BACKGROUND_THREAD = "BackgroundToolbarInflation";
     public static final String INTEREST_FEED_CONTENT_SUGGESTIONS = "InterestFeedContentSuggestions";
     public static final String LANGUAGES_PREFERENCE = "LanguagesPreference";
     public static final String LONG_PRESS_BACK_FOR_HISTORY = "LongPressBackForHistory";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
index 0188837..12166d1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
@@ -210,14 +210,6 @@
             @Override
             public void onLayoutChange(View v, int left, int top, int right, int bottom,
                     int oldLeft, int oldTop, int oldRight, int oldBottom) {
-                // Have content pick up the size and browser control information when the content
-                // view got laid out. Successive calls with the same values are ignored by
-                // ViewAndroid that stores the size.
-                View view = getContentView();
-                if (view != null) {
-                    Point viewportSize = getViewportSize();
-                    setSize(getWebContents(), view, viewportSize.x, viewportSize.y);
-                }
                 onViewportChanged();
 
                 // If there's an event that needs to occur after the keyboard is hidden, post
@@ -1039,6 +1031,8 @@
         if (tab.getView() == null) return;
         tab.setTopControlsHeight(getTopControlsHeightPixels(), controlsResizeView());
         tab.setBottomControlsHeight(getBottomControlsHeightPixels());
+        Point viewportSize = getViewportSize();
+        setSize(webContents, tab.getView(), viewportSize.x, viewportSize.y);
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
index 446efbf..2f84f9e0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
@@ -137,6 +137,13 @@
     private static final String NTP_BUTTON_VARIANT_KEY = "ntp_button_variant";
 
     /**
+     * Whether or not to inflate the ChromeTabbedActivity toolbar on a background thread async.
+     * Default value is false.
+     */
+    public static final String INFLATE_TOOLBAR_ON_BACKGROUND_THREAD_KEY =
+            "inflate_toolbar_on_background_thread";
+
+    /**
      * Whether or not the bottom toolbar is enabled.
      * Default value is false.
      */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
index 5e56a84..b200f6e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
@@ -1699,6 +1699,8 @@
         if (!(getActivity() instanceof ChromeTabbedActivity)) return;
 
         View anchorView = getActivity().getToolbarManager().getMenuButton();
+        if (anchorView == null) return;
+
         ViewRectProvider rectProvider = new ViewRectProvider(anchorView);
         TextBubble textBubble =
                 new TextBubble(getActivity(), anchorView, R.string.iph_data_saver_detail_text,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
index 42c203e0..9d805a2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
@@ -111,7 +111,7 @@
             @StringRes int accessibilityStringId, View anchorView, AppMenuHandler appMenuHandler,
             ChromeTabbedActivity activity) {
         // Activity was destroyed; don't show IPH.
-        if (activity.isActivityDestroyed()) return;
+        if (activity.isActivityDestroyed() || anchorView == null) return;
 
         assert(stringId != 0 && accessibilityStringId != 0);
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarControlContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarControlContainer.java
index d301643..f669eb4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarControlContainer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarControlContainer.java
@@ -20,12 +20,16 @@
 import org.chromium.chrome.browser.compositor.layouts.eventfilter.EdgeSwipeHandler;
 import org.chromium.chrome.browser.compositor.resources.ResourceFactory;
 import org.chromium.chrome.browser.contextualsearch.SwipeRecognizer;
+import org.chromium.chrome.browser.util.FeatureUtilities;
 import org.chromium.chrome.browser.util.ViewUtils;
 import org.chromium.chrome.browser.widget.ClipDrawableProgressBar.DrawingInfo;
 import org.chromium.chrome.browser.widget.ControlContainer;
 import org.chromium.chrome.browser.widget.ToolbarProgressBar;
 import org.chromium.chrome.browser.widget.ViewResourceFrameLayout;
+import org.chromium.ui.AsyncViewProvider;
+import org.chromium.ui.AsyncViewStub;
 import org.chromium.ui.UiUtils;
+import org.chromium.ui.base.DeviceFormFactor;
 import org.chromium.ui.resources.dynamics.ViewResourceAdapter;
 
 /**
@@ -85,29 +89,42 @@
     @Override
     public void initWithToolbar(int toolbarLayoutId) {
         try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) {
-            ViewStub toolbarStub = (ViewStub) findViewById(R.id.toolbar_stub);
-            toolbarStub.setLayoutResource(toolbarLayoutId);
-            toolbarStub.inflate();
-
-            mToolbar = (Toolbar) findViewById(R.id.toolbar);
             mToolbarContainer =
                     (ToolbarViewResourceFrameLayout) findViewById(R.id.toolbar_container);
-            mToolbarContainer.setToolbar(mToolbar);
+            View viewStub = findViewById(R.id.toolbar_stub);
+            if (viewStub instanceof AsyncViewStub) {
+                AsyncViewStub toolbarStub = (AsyncViewStub) viewStub;
+                toolbarStub.setLayoutResource(toolbarLayoutId);
+                if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(getContext())) {
+                    toolbarStub.inflate(false);
+                } else {
+                    toolbarStub.inflate(FeatureUtilities.shouldInflateToolbarOnBackgroundThread());
+                }
+                AsyncViewProvider<ToolbarLayout> toolbarProvider =
+                        AsyncViewProvider.of(toolbarStub, R.id.toolbar);
+                toolbarProvider.whenLoaded(this ::onToolbarInflationComplete);
+            } else {
+                ViewStub toolbarStub = (ViewStub) viewStub;
+                toolbarStub.setLayoutResource(toolbarLayoutId);
+                toolbarStub.inflate();
 
-            if (mToolbar instanceof ToolbarTablet) {
-                // On tablet, draw a fake tab strip and toolbar until the compositor is ready to
-                // draw
-
-                // the real tab strip. (On phone, the toolbar is made entirely of Android views,
-                // which
-                // are already initialized.)
-                setBackgroundResource(R.drawable.toolbar_background);
+                onToolbarInflationComplete(findViewById(R.id.toolbar));
             }
-
-            assert mToolbar != null;
         }
     }
 
+    private void onToolbarInflationComplete(ToolbarLayout toolbar) {
+        mToolbar = toolbar;
+        mToolbarContainer.setToolbar(mToolbar);
+        if (mToolbar instanceof ToolbarTablet) {
+            // On tablet, draw a fake tab strip and toolbar until the compositor is
+            // ready to draw the real tab strip. (On phone, the toolbar is made entirely
+            // of Android views, which are already initialized.)
+            setBackgroundResource(R.drawable.toolbar_background);
+        }
+        assert mToolbar != null;
+    }
+
     @Override
     public boolean gatherTransparentRegion(Region region) {
         // Reset the translation on the control container before attempting to compute the
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 42b3efe..c9eabe1 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
@@ -12,6 +12,7 @@
 import android.os.SystemClock;
 import android.support.annotation.DrawableRes;
 import android.support.annotation.IntDef;
+import android.support.annotation.Nullable;
 import android.support.annotation.StringRes;
 import android.support.graphics.drawable.VectorDrawableCompat;
 import android.support.v4.content.ContextCompat;
@@ -64,7 +65,6 @@
 import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener;
 import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
 import org.chromium.chrome.browser.partnercustomizations.HomepageManager.HomepageStateListener;
-import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.search_engines.TemplateUrl;
@@ -96,6 +96,7 @@
 import org.chromium.content_public.browser.NavigationController;
 import org.chromium.content_public.browser.NavigationEntry;
 import org.chromium.content_public.browser.WebContents;
+import org.chromium.ui.AsyncViewProvider;
 import org.chromium.ui.UiUtils;
 import org.chromium.ui.base.PageTransition;
 import org.chromium.ui.widget.ViewRectProvider;
@@ -154,7 +155,9 @@
      */
     private static final int MINIMUM_LOAD_PROGRESS = 5;
 
-    private final ToolbarLayout mToolbar;
+    private final AsyncViewProvider<ToolbarLayout> mToolbarProvider;
+    @Nullable
+    private ToolbarLayout mToolbar;
     private final ToolbarControlContainer mControlContainer;
 
     private BottomToolbarCoordinator mBottomToolbarCoordinator;
@@ -166,20 +169,22 @@
     private Profile mCurrentProfile;
     private BookmarkBridge mBookmarkBridge;
     private TemplateUrlServiceObserver mTemplateUrlObserver;
-    private final LocationBar mLocationBar;
+    @Nullable
+    private LocationBar mLocationBar;
     private FindToolbarManager mFindToolbarManager;
-    private final AppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
+    private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
     private OverviewModeBehavior mOverviewModeBehavior;
     private LayoutManager mLayoutManager;
 
-    private final TabObserver mTabObserver;
-    private final BookmarkBridge.BookmarkModelObserver mBookmarksObserver;
-    private final FindToolbarObserver mFindToolbarObserver;
-    private final OverviewModeObserver mOverviewModeObserver;
-    private final SceneChangeObserver mSceneChangeObserver;
+    private TabObserver mTabObserver;
+    private BookmarkBridge.BookmarkModelObserver mBookmarksObserver;
+    private FindToolbarObserver mFindToolbarObserver;
+    private OverviewModeObserver mOverviewModeObserver;
+    private SceneChangeObserver mSceneChangeObserver;
     private final ActionBarDelegate mActionBarDelegate;
-    private final ActionModeController mActionModeController;
-    private final LoadProgressSimulator mLoadProgressSimulator;
+    private ActionModeController mActionModeController;
+    private final ToolbarActionModeCallback mToolbarActionModeCallback;
+    private LoadProgressSimulator mLoadProgressSimulator;
     private final Callback<Boolean> mUrlFocusChangedCallback;
     private final Handler mHandler = new Handler();
     private final ChromeActivity mActivity;
@@ -202,7 +207,8 @@
     private HomepageStateListener mHomepageStateListener = new HomepageStateListener() {
         @Override
         public void onHomepageStateUpdated() {
-            mToolbar.onHomeButtonUpdate(HomepageManager.isHomepageEnabled());
+            mToolbarProvider.whenLoaded(
+                    (toolbar) -> toolbar.onHomeButtonUpdate(HomepageManager.isHomepageEnabled()));
         }
     };
 
@@ -232,18 +238,22 @@
                 activity.supportsModernDesign() && FeatureUtilities.isChromeModernDesignEnabled());
         mControlContainer = controlContainer;
         assert mControlContainer != null;
-
-        mToolbar = controlContainer.findViewById(R.id.toolbar);
-
-        mToolbar.setPaintInvalidator(invalidator);
-        if (activity.getBottomSheet() != null) mToolbar.setBottomSheet(activity.getBottomSheet());
-
-        mActionModeController = new ActionModeController(activity, mActionBarDelegate);
-        mActionModeController.setCustomSelectionActionModeCallback(
-                new ToolbarActionModeCallback());
-        mActionModeController.setTabStripHeight(mToolbar.getTabStripHeight());
         mUrlFocusChangedCallback = urlFocusChangedCallback;
 
+        mToolbarActionModeCallback = new ToolbarActionModeCallback();
+
+        mToolbarProvider = AsyncViewProvider.of(controlContainer, R.id.toolbar_stub, R.id.toolbar);
+        mToolbarProvider.whenLoaded((toolbar)
+                                            -> onToolbarInflationComplete(toolbar, menuHandler,
+                                                    appMenuPropertiesDelegate, invalidator));
+    }
+
+    private void onToolbarInflationComplete(ToolbarLayout toolbar, final AppMenuHandler menuHandler,
+            AppMenuPropertiesDelegate appMenuPropertiesDelegate, Invalidator invalidator) {
+        mToolbar = toolbar;
+        mActionModeController = new ActionModeController(mActivity, mActionBarDelegate);
+        mActionModeController.setCustomSelectionActionModeCallback(mToolbarActionModeCallback);
+
         MenuDelegatePhone menuDelegate = new MenuDelegatePhone() {
             @Override
             public void updateReloadButtonState(boolean isLoading) {
@@ -255,22 +265,27 @@
         };
         setMenuDelegatePhone(menuDelegate);
 
+        toolbar.setPaintInvalidator(invalidator);
+        if (mActivity.getBottomSheet() != null) {
+            toolbar.setBottomSheet(mActivity.getBottomSheet());
+        }
+        mActionModeController.setTabStripHeight(toolbar.getTabStripHeight());
         mLocationBar = mToolbar.getLocationBar();
         mLocationBar.setToolbarDataProvider(mToolbarModel);
         mLocationBar.addUrlFocusChangeListener(this);
         mLocationBar.setDefaultTextEditActionModeCallback(
                 mActionModeController.getActionModeCallback());
         mLocationBar.initializeControls(
-                new WindowDelegate(activity.getWindow()), activity.getWindowAndroid());
+                new WindowDelegate(mActivity.getWindow()), mActivity.getWindowAndroid());
 
         setMenuHandler(menuHandler);
-        mToolbar.initialize(mToolbarModel, this, mAppMenuButtonHelper);
+        toolbar.initialize(mToolbarModel, this, mAppMenuButtonHelper);
 
         mAppMenuPropertiesDelegate = appMenuPropertiesDelegate;
 
         HomepageManager.getInstance().addListener(mHomepageStateListener);
 
-        mOmniboxStartupMetrics = new OmniboxStartupMetrics(activity);
+        mOmniboxStartupMetrics = new OmniboxStartupMetrics(mActivity);
 
         mTabModelSelectorObserver = new EmptyTabModelSelectorObserver() {
             @Override
@@ -427,7 +442,7 @@
             public void onContentChanged(Tab tab) {
                 mToolbar.onTabContentViewChanged();
                 if (shouldShowCursorInLocationBar()) {
-                    mToolbar.getLocationBar().showUrlBarCursorWithoutFocusAnimations();
+                    mLocationBar.showUrlBarCursorWithoutFocusAnimations();
                 }
             }
 
@@ -744,7 +759,7 @@
      * @param featureName The associated feature name.
      */
     public void showDownloadPageTextBubble(final Tab tab, String featureName) {
-        if (tab == null) return;
+        if (tab == null || mToolbar == null) return;
 
         // TODO(shaktisahu): Find out if the download menu button is enabled (crbug/712438).
         ChromeActivity activity = tab.getActivity();
@@ -794,78 +809,81 @@
             OnClickListener newTabClickHandler, OnClickListener bookmarkClickHandler,
             OnClickListener customTabsBackClickHandler, OnClickListener incognitoClickHandler) {
         assert !mInitializedWithNative;
-        mTabModelSelector = tabModelSelector;
 
-        mToolbar.setTabModelSelector(mTabModelSelector);
-        mToolbar.getLocationBar().updateVisualsForState();
-        mToolbar.getLocationBar().setUrlToPageUrl();
-        mToolbar.setBrowserControlsVisibilityDelegate(controlsVisibilityDelegate);
-        mToolbar.setOnTabSwitcherClickHandler(tabSwitcherClickHandler);
-        mToolbar.setOnNewTabClickHandler(newTabClickHandler);
-        mToolbar.setBookmarkClickHandler(bookmarkClickHandler);
-        mToolbar.setCustomTabCloseClickHandler(customTabsBackClickHandler);
-        mToolbar.setIncognitoClickHandler(incognitoClickHandler);
-        mToolbar.setLayoutUpdateHost(layoutManager);
+        mToolbarProvider.whenLoaded((toolbar) -> {
+            mTabModelSelector = tabModelSelector;
+            toolbar.setTabModelSelector(mTabModelSelector);
+            toolbar.getLocationBar().updateVisualsForState();
+            toolbar.getLocationBar().setUrlToPageUrl();
+            toolbar.setBrowserControlsVisibilityDelegate(controlsVisibilityDelegate);
+            toolbar.setOnTabSwitcherClickHandler(tabSwitcherClickHandler);
+            toolbar.setOnNewTabClickHandler(newTabClickHandler);
+            toolbar.setBookmarkClickHandler(bookmarkClickHandler);
+            toolbar.setCustomTabCloseClickHandler(customTabsBackClickHandler);
+            toolbar.setIncognitoClickHandler(incognitoClickHandler);
+            toolbar.setLayoutUpdateHost(layoutManager);
 
-        mToolbarModel.initializeWithNative();
+            toolbar.addOnAttachStateChangeListener(new OnAttachStateChangeListener() {
+                @Override
+                public void onViewDetachedFromWindow(View v) {}
 
-        mToolbar.addOnAttachStateChangeListener(new OnAttachStateChangeListener() {
-            @Override
-            public void onViewDetachedFromWindow(View v) {}
+                @Override
+                public void onViewAttachedToWindow(View v) {
+                    // As we have only just registered for notifications, any that were sent prior
+                    // to this may have been missed. Calling refreshSelectedTab in case we missed
+                    // the initial selection notification.
+                    refreshSelectedTab();
+                }
+            });
 
-            @Override
-            public void onViewAttachedToWindow(View v) {
-                // As we have only just registered for notifications, any that were sent prior to
-                // this may have been missed.
-                // Calling refreshSelectedTab in case we missed the initial selection notification.
-                refreshSelectedTab();
+            mToolbarModel.initializeWithNative();
+
+            mFindToolbarManager = findToolbarManager;
+
+            assert controlsVisibilityDelegate != null;
+            mControlsVisibilityDelegate = controlsVisibilityDelegate;
+
+            mNativeLibraryReady = false;
+
+            mFindToolbarManager.addObserver(mFindToolbarObserver);
+
+            if (overviewModeBehavior != null) {
+                mOverviewModeBehavior = overviewModeBehavior;
+                mOverviewModeBehavior.addOverviewModeObserver(mOverviewModeObserver);
             }
+            if (layoutManager != null) {
+                mLayoutManager = layoutManager;
+                mLayoutManager.addSceneChangeObserver(mSceneChangeObserver);
+            }
+
+            if (mBottomToolbarCoordinator != null) {
+                final boolean showIncognitoToggleButton =
+                        !DeviceClassManager.enableAccessibilityLayout()
+                        && ChromeFeatureList.isEnabled(
+                                   ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID)
+                        && PrefServiceBridge.getInstance().isIncognitoModeEnabled();
+                final ToolbarButtonData firstSlotTabSwitcherButtonData = showIncognitoToggleButton
+                        ? createIncognitoToggleButton(
+                                  wrapBottomToolbarClickListenerForIPH(incognitoClickHandler))
+                        : null;
+                mAppMenuButtonHelper.setOnClickRunnable(() -> recordBottomToolbarUseForIPH());
+                mBottomToolbarCoordinator.initializeWithNative(
+                        mActivity.getCompositorViewHolder().getResourceManager(),
+                        mActivity.getCompositorViewHolder().getLayoutManager(),
+                        wrapBottomToolbarClickListenerForIPH(tabSwitcherClickHandler),
+                        mAppMenuButtonHelper, mTabModelSelector, mOverviewModeBehavior,
+                        mActivity.getContextualSearchManager(), mActivity.getWindowAndroid(),
+                        firstSlotTabSwitcherButtonData,
+                        createNewTabButton(
+                                wrapBottomToolbarClickListenerForIPH(newTabClickHandler)));
+
+                Tab currentTab = tabModelSelector.getCurrentTab();
+                maybeShowDuetHelpBubble(currentTab);
+            }
+
+            onNativeLibraryReady();
+            mInitializedWithNative = true;
         });
-
-        mFindToolbarManager = findToolbarManager;
-
-        assert controlsVisibilityDelegate != null;
-        mControlsVisibilityDelegate = controlsVisibilityDelegate;
-
-        mNativeLibraryReady = false;
-
-        mFindToolbarManager.addObserver(mFindToolbarObserver);
-
-        if (overviewModeBehavior != null) {
-            mOverviewModeBehavior = overviewModeBehavior;
-            mOverviewModeBehavior.addOverviewModeObserver(mOverviewModeObserver);
-        }
-        if (layoutManager != null) {
-            mLayoutManager = layoutManager;
-            mLayoutManager.addSceneChangeObserver(mSceneChangeObserver);
-        }
-
-        if (mBottomToolbarCoordinator != null) {
-            final boolean showIncognitoToggleButton =
-                    !DeviceClassManager.enableAccessibilityLayout()
-                    && ChromeFeatureList.isEnabled(
-                               ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID)
-                    && PrefServiceBridge.getInstance().isIncognitoModeEnabled();
-            final ToolbarButtonData firstSlotTabSwitcherButtonData = showIncognitoToggleButton
-                    ? createIncognitoToggleButton(
-                              wrapBottomToolbarClickListenerForIPH(incognitoClickHandler))
-                    : null;
-            mAppMenuButtonHelper.setOnClickRunnable(() -> recordBottomToolbarUseForIPH());
-            mBottomToolbarCoordinator.initializeWithNative(
-                    mActivity.getCompositorViewHolder().getResourceManager(),
-                    mActivity.getCompositorViewHolder().getLayoutManager(),
-                    wrapBottomToolbarClickListenerForIPH(tabSwitcherClickHandler),
-                    mAppMenuButtonHelper, mTabModelSelector, mOverviewModeBehavior,
-                    mActivity.getContextualSearchManager(), mActivity.getWindowAndroid(),
-                    firstSlotTabSwitcherButtonData,
-                    createNewTabButton(wrapBottomToolbarClickListenerForIPH(newTabClickHandler)));
-
-            Tab currentTab = tabModelSelector.getCurrentTab();
-            maybeShowDuetHelpBubble(currentTab);
-        }
-
-        onNativeLibraryReady();
-        mInitializedWithNative = true;
     }
 
     /**
@@ -874,6 +892,7 @@
      */
     private void maybeShowDuetHelpBubble(Tab tab) {
         if (tab == null) return;
+        assert mToolbar != null;
         final Tracker tracker = TrackerFactory.getTrackerForProfile(tab.getProfile());
         if (tracker.shouldTriggerHelpUI(FeatureConstants.CHROME_DUET_FEATURE)) {
             ViewRectProvider provider = new ViewRectProvider(mToolbar);
@@ -891,7 +910,7 @@
      * TODO(amaralp): Only the top or bottom menu should be visible.
      */
     public void showAppMenuUpdateBadge() {
-        mToolbar.showAppMenuUpdateBadge();
+        mToolbarProvider.whenLoaded((toolbar) -> toolbar.showAppMenuUpdateBadge());
         if (mBottomToolbarCoordinator != null) {
             mBottomToolbarCoordinator.showAppMenuUpdateBadge();
         }
@@ -902,7 +921,7 @@
      * TODO(amaralp): Only the top or bottom menu should be visible.
      */
     public void removeAppMenuUpdateBadge(boolean animate) {
-        mToolbar.removeAppMenuUpdateBadge(animate);
+        mToolbarProvider.whenLoaded((toolbar) -> toolbar.removeAppMenuUpdateBadge(animate));
         if (mBottomToolbarCoordinator != null) {
             mBottomToolbarCoordinator.removeAppMenuUpdateBadge();
         }
@@ -917,6 +936,7 @@
                 && mBottomToolbarCoordinator.isShowingAppMenuUpdateBadge()) {
             return true;
         }
+        if (mToolbar == null) return false;
         return mToolbar.isShowingAppMenuUpdateBadge();
     }
 
@@ -928,14 +948,17 @@
      */
     public void enableExperimentalButton(OnClickListener onClickListener,
             @DrawableRes int drawableResId, @StringRes int contentDescriptionResId) {
-        mToolbar.enableExperimentalButton(onClickListener, drawableResId, contentDescriptionResId);
+        mToolbarProvider.whenLoaded((toolbar) -> {
+            toolbar.enableExperimentalButton(
+                    onClickListener, drawableResId, contentDescriptionResId);
+        });
     }
 
     /**
      * Disable the experimental toolbar button.
      */
     public void disableExperimentalButton() {
-        mToolbar.disableExperimentalButton();
+        mToolbarProvider.whenLoaded((t) -> t.disableExperimentalButton());
     }
 
     /**
@@ -953,6 +976,7 @@
     /**
      * @return The toolbar interface that this manager handles.
      */
+    @Nullable
     public Toolbar getToolbar() {
         return mToolbar;
     }
@@ -966,10 +990,10 @@
     }
 
     /**
-     * @return The controller for toolbar action mode.
+     * @return The callback for toolbar action mode controller.
      */
-    public ActionModeController getActionModeController() {
-        return mActionModeController;
+    public ToolbarActionModeCallback getActionModeControllerCallback() {
+        return mToolbarActionModeCallback;
     }
 
     /**
@@ -984,8 +1008,8 @@
      */
     public View getMenuButton() {
         if (mBottomToolbarCoordinator != null) return mBottomToolbarCoordinator.getMenuButton();
-
-        return mToolbar.getMenuButton();
+        if (mToolbar != null) return mToolbar.getMenuButton();
+        return null;
     }
 
     /**
@@ -997,7 +1021,8 @@
      */
     public void addCustomActionButton(
             Drawable drawable, String description, OnClickListener listener) {
-        mToolbar.addCustomActionButton(drawable, description, listener);
+        mToolbarProvider.whenLoaded(
+                (t) -> t.addCustomActionButton(drawable, description, listener));
     }
 
     /**
@@ -1009,7 +1034,8 @@
      * @see #addCustomActionButton
      */
     public void updateCustomActionButton(int index, Drawable drawable, String description) {
-        mToolbar.updateCustomActionButton(index, drawable, description);
+        mToolbarProvider.whenLoaded(
+                (t) -> t.updateCustomActionButton(index, drawable, description));
     }
 
     /**
@@ -1055,10 +1081,18 @@
             mOmniboxStartupMetrics = null;
         }
 
-        mLocationBar.removeUrlFocusChangeListener(this);
-        Tab currentTab = mToolbarModel.getTab();
-        if (currentTab != null) currentTab.removeObserver(mTabObserver);
-        mToolbar.destroy();
+        if (mToolbarProvider != null) {
+            mToolbarProvider.destroy((toolbar) -> {
+                toolbar.getLocationBar().removeUrlFocusChangeListener(this);
+                toolbar.destroy();
+            });
+        }
+
+        if (mTabObserver != null) {
+            Tab currentTab = mToolbarModel.getTab();
+            if (currentTab != null) currentTab.removeObserver(mTabObserver);
+            mTabObserver = null;
+        }
         mToolbarModel.destroy();
         mHandler.removeCallbacksAndMessages(null); // Cancel delayed tasks.
     }
@@ -1067,6 +1101,7 @@
      * Called when the orientation of the activity has changed.
      */
     public void onOrientationChange() {
+        if (mActionModeController == null) return;
         mActionModeController.showControlsOnOrientationChange();
     }
 
@@ -1075,7 +1110,7 @@
      * @param enabled Whether accessibility is enabled.
      */
     public void onAccessibilityStatusChanged(boolean enabled) {
-        mToolbar.onAccessibilityStatusChanged(enabled);
+        mToolbarProvider.whenLoaded((toolbar) -> toolbar.onAccessibilityStatusChanged(enabled));
     }
 
     private void registerTemplateUrlObserver() {
@@ -1243,10 +1278,6 @@
         if (TextUtils.isEmpty(homePageUrl) || FeatureUtilities.isNewTabPageButtonEnabled()) {
             homePageUrl = UrlConstants.NTP_URL;
         }
-        if (TextUtils.equals(ChromePreferenceManager.getInstance().getNewTabPageButtonVariant(),
-                    ToolbarLayout.NTP_BUTTON_NEWS_FEED_VARIANT)) {
-            homePageUrl = homePageUrl + UrlConstants.CONTENT_SUGGESTIONS_SUFFIX;
-        }
         currentTab.loadUrl(new LoadUrlParams(homePageUrl, PageTransition.HOME_PAGE));
     }
 
@@ -1273,6 +1304,8 @@
      */
     @Override
     public void onUrlFocusChange(boolean hasFocus) {
+        assert mToolbar != null;
+
         mToolbar.onUrlFocusChange(hasFocus);
 
         if (hasFocus) mOmniboxStartupMetrics.onUrlBarFocused();
@@ -1304,7 +1337,7 @@
 
         mCurrentThemeColor = color;
         mToolbarModel.setPrimaryColor(color);
-        mToolbar.onPrimaryColorChanged(shouldAnimate);
+        mToolbarProvider.whenLoaded((toolbar) -> toolbar.onPrimaryColorChanged(shouldAnimate));
 
         if (mBottomToolbarCoordinator != null) {
             mBottomToolbarCoordinator.setPrimaryColor(color);
@@ -1339,7 +1372,7 @@
      * {@code null}.
      */
     public void setCloseButtonDrawable(Drawable drawable) {
-        mToolbar.setCloseButtonImageResource(drawable);
+        mToolbarProvider.whenLoaded((toolbar) -> toolbar.setCloseButtonImageResource(drawable));
     }
 
     /**
@@ -1347,21 +1380,22 @@
      * @param showTitle Whether a title should be shown.
      */
     public void setShowTitle(boolean showTitle) {
-        mLocationBar.setShowTitle(showTitle);
+        mToolbarProvider.whenLoaded((toolbar) -> toolbar.getLocationBar().setShowTitle(showTitle));
     }
 
     /**
      * @see ToolbarLayout#setUrlBarHidden(boolean)
      */
     public void setUrlBarHidden(boolean hidden) {
-        mToolbar.setUrlBarHidden(hidden);
+        mToolbarProvider.whenLoaded((toolbar) -> toolbar.setUrlBarHidden(hidden));
     }
 
     /**
      * @see ToolbarLayout#getContentPublisher()
      */
     public String getContentPublisher() {
-        return mToolbar.getContentPublisher();
+        if (mToolbar != null) return mToolbar.getContentPublisher();
+        return null;
     }
 
     /**
@@ -1373,10 +1407,10 @@
      */
     public void setUrlBarFocus(boolean focused) {
         if (!isInitialized()) return;
-        boolean wasFocused = mToolbar.getLocationBar().isUrlBarFocused();
-        mToolbar.getLocationBar().setUrlBarFocus(focused);
+        boolean wasFocused = mLocationBar.isUrlBarFocused();
+        mLocationBar.setUrlBarFocus(focused);
         if (wasFocused && focused) {
-            mToolbar.getLocationBar().selectAll();
+            mLocationBar.selectAll();
         }
     }
 
@@ -1385,6 +1419,7 @@
      * change the focus state of the location bar.
      */
     public void revertLocationBarChanges() {
+        if (mToolbar == null) return;
         mLocationBar.revertChanges();
     }
 
@@ -1422,6 +1457,7 @@
      * Updates the current number of Tabs based on the TabModel this Toolbar contains.
      */
     private void updateTabCount() {
+        assert mToolbar != null;
         if (!mTabRestoreCompleted) return;
         final int numberOfTabs = mTabModelSelector.getCurrentModel().getCount();
         mToolbar.updateTabCountVisuals(numberOfTabs);
@@ -1432,6 +1468,7 @@
      * inheriting classes the chance to update the button visuals as well.
      */
     private void updateButtonStatus() {
+        assert mToolbar != null;
         Tab currentTab = mToolbarModel.getTab();
         boolean tabCrashed = currentTab != null && currentTab.isShowingSadTab();
 
@@ -1440,13 +1477,13 @@
         mToolbar.updateForwardButtonVisibility(currentTab != null && currentTab.canGoForward());
         updateReloadState(tabCrashed);
         updateBookmarkButtonStatus();
-
         if (mToolbar.getMenuButtonWrapper() != null) {
             mToolbar.getMenuButtonWrapper().setVisibility(View.VISIBLE);
         }
     }
 
     private void updateBookmarkButtonStatus() {
+        assert mToolbar != null;
         Tab currentTab = mToolbarModel.getTab();
         boolean isBookmarked = currentTab != null
                 && currentTab.getBookmarkId() != Tab.INVALID_BOOKMARK_ID;
@@ -1456,6 +1493,7 @@
     }
 
     private void updateReloadState(boolean tabCrashed) {
+        assert mToolbar != null;
         Tab currentTab = mToolbarModel.getTab();
         boolean isLoading = false;
         if (!tabCrashed) {
@@ -1469,6 +1507,7 @@
      * Triggered when the selected tab has changed.
      */
     private void refreshSelectedTab() {
+        assert mToolbar != null;
         Tab tab = null;
         if (mPreselectedTabId != Tab.INVALID_TAB_ID) {
             tab = mTabModelSelector.getTabById(mPreselectedTabId);
@@ -1517,7 +1556,7 @@
             // ensure the shield placed over the content is dismissed when switching tabs.  But if
             // needed, we will refocus the omnibox and make the cursor visible here.
             if (shouldShowCursorInLocationBar()) {
-                mToolbar.getLocationBar().showUrlBarCursorWithoutFocusAnimations();
+                mLocationBar.showUrlBarCursorWithoutFocusAnimations();
             }
         }
 
@@ -1541,6 +1580,8 @@
     }
 
     private void updateCurrentTabDisplayStatus() {
+        assert mToolbar != null;
+
         Tab tab = mToolbarModel.getTab();
         mLocationBar.setUrlToPageUrl();
 
@@ -1566,11 +1607,13 @@
     }
 
     private void updateTabLoadingState(boolean updateUrl) {
+        assert mToolbar != null;
         mLocationBar.updateLoadingState(updateUrl);
         if (updateUrl) updateButtonStatus();
     }
 
     private void updateLoadProgress(int progress) {
+        assert mToolbar != null;
         // If it's a native page, progress bar is already hidden or being hidden, so don't update
         // the value.
         // TODO(kkimlabs): Investigate back/forward navigation with native page & web content and
@@ -1586,6 +1629,7 @@
     }
 
     private void finishLoadProgress(boolean delayed) {
+        assert mToolbar != null;
         mLoadProgressSimulator.cancel();
         mToolbar.finishLoadProgress(delayed);
     }
@@ -1594,12 +1638,15 @@
      * Only start showing the progress bar if it is not already started.
      */
     private void startLoadProgress() {
+        assert mToolbar != null;
         if (mToolbar.isProgressStarted()) return;
         mToolbar.startLoadProgress();
     }
 
     public void setProgressBarEnabled(boolean enabled) {
-        mToolbar.getProgressBar().setVisibility(enabled ? View.VISIBLE : View.GONE);
+        mToolbarProvider.whenLoaded((toolbar)
+                                            -> toolbar.getProgressBar().setVisibility(
+                                                    enabled ? View.VISIBLE : View.GONE));
     }
 
     private boolean shouldShowCursorInLocationBar() {
@@ -1624,6 +1671,7 @@
      * @param shouldIgnore Whether or not the toolbar model should ignore the security level.
      */
     private void setModelShouldIgnoreSecurityLevelForSearchTerms(boolean shouldIgnore) {
+        assert mToolbar != null;
         boolean wasShowingSearchTerms = mToolbarModel.shouldDisplaySearchTerms();
         mToolbarModel.setIgnoreSecurityLevelForSearchTerms(shouldIgnore);
         if (wasShowingSearchTerms != mToolbarModel.shouldDisplaySearchTerms()) {
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 d42cc8f..b2e8136 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
@@ -56,6 +56,7 @@
     private static Boolean sIsHomepageTileEnabled;
     private static Boolean sIsNewTabPageButtonEnabled;
     private static Boolean sIsBottomToolbarEnabled;
+    private static Boolean sShouldInflateToolbarOnBackgroundThread;
 
     private static final String NTP_BUTTON_TRIAL_NAME = "NewTabPage";
     private static final String NTP_BUTTON_VARIANT_PARAM_NAME = "variation";
@@ -168,6 +169,7 @@
         cacheHomepageTileEnabled();
         cacheNewTabPageButtonEnabledAndMaybeVariant();
         cacheBottomToolbarEnabled();
+        cacheInflateToolbarOnBackgroundThread();
 
         // Propagate DONT_PREFETCH_LIBRARIES feature value to LibraryLoader. This can't
         // be done in LibraryLoader itself because it lives in //base and can't depend
@@ -233,6 +235,31 @@
     }
 
     /**
+     * Cache whether or not the toolbar should be inflated on a background thread so on next
+     * startup, the value can be made available immediately.
+     */
+    public static void cacheInflateToolbarOnBackgroundThread() {
+        boolean onBackgroundThread =
+                ChromeFeatureList.isEnabled(ChromeFeatureList.INFLATE_TOOLBAR_ON_BACKGROUND_THREAD);
+
+        ChromePreferenceManager.getInstance().writeBoolean(
+                ChromePreferenceManager.INFLATE_TOOLBAR_ON_BACKGROUND_THREAD_KEY,
+                onBackgroundThread);
+    }
+
+    public static boolean shouldInflateToolbarOnBackgroundThread() {
+        if (sShouldInflateToolbarOnBackgroundThread == null) {
+            ChromePreferenceManager prefManager = ChromePreferenceManager.getInstance();
+
+            try (StrictModeContext unused = StrictModeContext.allowDiskReads()) {
+                sShouldInflateToolbarOnBackgroundThread = prefManager.readBoolean(
+                        ChromePreferenceManager.INFLATE_TOOLBAR_ON_BACKGROUND_THREAD_KEY, false);
+            }
+        }
+        return sShouldInflateToolbarOnBackgroundThread;
+    }
+
+    /**
      * Cache whether or not the new tab page button is enabled so on next startup, the value can
      * be made available immediately.
      */
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
index f3749f75..3a8b27a 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> በChrome ውስጥ ይከፈታል። በመቀጠልዎ በChrome <ph name="BEGIN_LINK1" />አገልግሎት ውል<ph name="END_LINK1" /> እና <ph name="BEGIN_LINK2" />የግላዊነት ማስታወቂያ<ph name="END_LINK2" /> ተስማምተዋል።</translation>
 <translation id="189172778771606813">የአሰሳ መሳቢያ ዝጋ</translation>
 <translation id="1919345977826869612">ማስታወቂያዎች</translation>
+<translation id="1919950603503897840">ዕውቂያዎችን ምረጥ</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">የተመረጠው ትር</translation>
 <translation id="1938981467853765413">ግብረ መልሰ ይስጡ</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Chrome ውስጥ ይግቡ</translation>
 <translation id="32895400574683172">ማሳወቂያዎች ይፈቀዳሉ</translation>
 <translation id="3295602654194328831">መረጃ ደብቅ</translation>
+<translation id="3298243779924642547">ቀላል</translation>
 <translation id="3303414029551471755">ይዘቱን ማውረድ ይቀጥል?</translation>
 <translation id="3328801116991980348">የጣቢያ መረጃ</translation>
 <translation id="3341058695485821946">ምን ያህል ውሂብ እንዳስቀመጡ ይመልከቱ</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">አክል</translation>
 <translation id="780301667611848630">አይ፣ አመሰግናለሁ</translation>
 <translation id="7810647596859435254">ክፈት በ…</translation>
+<translation id="7821588508402923572">የእርስዎ የውሂብ ቁጠባዎች እዚህ ይታያሉ</translation>
 <translation id="7832327313660264358">ከGoogle ጋር የሚያሰምሩት ውሂብ እና ባህሪያት አይቀየሩም</translation>
 <translation id="7837721118676387834">ለአንድ የተወሰነ ጣቢያ ድምጸ-ከል የተደረጉ ቪዲዮዎችን በራስ-ሰር ማጫወትን ይፍቀዱ።</translation>
 <translation id="7846076177841592234">ምርጫ ሰርዝ</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
index 57e5dcc..724b556 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">‏سيتم فتح <ph name="APP_NAME" /> في Chrome. بالمتابعة، أنت توافق على <ph name="BEGIN_LINK1" />بنود الخدمة<ph name="END_LINK1" /> و<ph name="BEGIN_LINK2" />إشعار الخصوصية<ph name="END_LINK2" /> في Chrome.</translation>
 <translation id="189172778771606813">إغلاق لائحة التنقل</translation>
 <translation id="1919345977826869612">إعلانات</translation>
+<translation id="1919950603503897840">اختيار جهات الاتصال</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">علامة تبويب محددة</translation>
 <translation id="1938981467853765413">تقديم تعليقات</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">‏تسجيل الدخول إلى Chrome</translation>
 <translation id="32895400574683172">مسموح بالإشعارات</translation>
 <translation id="3295602654194328831">إخفاء المعلومات</translation>
+<translation id="3298243779924642547">الوضع البسيط</translation>
 <translation id="3303414029551471755">هل ترغب في الاستمرار في تنزيل المحتوى؟</translation>
 <translation id="3328801116991980348">معلومات موقع الويب</translation>
 <translation id="3341058695485821946">الاطّلاع على مقدار البيانات التي حفظتها</translation>
@@ -856,6 +858,7 @@
 <translation id="7791543448312431591">إضافة</translation>
 <translation id="780301667611848630">لا، شكرًا</translation>
 <translation id="7810647596859435254">فتح باستخدام...</translation>
+<translation id="7821588508402923572">ظهور توفير البيانات هنا</translation>
 <translation id="7832327313660264358">‏لن تتغير البيانات التي تزامنها مع Google والميزات التي تستخدمها.</translation>
 <translation id="7837721118676387834">السماح بالتشغيل التلقائي للفيديوهات المكتومة الصوت لموقع معين.</translation>
 <translation id="7846076177841592234">إلغاء التحديد</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
index fd2dece..5f67eab4 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> ще се отвори в Chrome. С продължаването си приемате <ph name="BEGIN_LINK1" />Общите условия<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />Съобщението за поверителност<ph name="END_LINK2" /> на браузъра.</translation>
 <translation id="189172778771606813">Затваряне на слоя за навигация</translation>
 <translation id="1919345977826869612">Реклами</translation>
+<translation id="1919950603503897840">Избор на контакти</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> от <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Избран раздел</translation>
 <translation id="1938981467853765413">Изпратете отзив</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Вход в Chrome</translation>
 <translation id="32895400574683172">Известията са разрешени</translation>
 <translation id="3295602654194328831">Скриване на информацията</translation>
+<translation id="3298243779924642547">Олекотена</translation>
 <translation id="3303414029551471755">Искате ли да продължите с изтеглянето на съдържанието?</translation>
 <translation id="3328801116991980348">Информация за сайта</translation>
 <translation id="3341058695485821946">Вижте колко данни сте спестили</translation>
@@ -856,6 +858,7 @@
 <translation id="7791543448312431591">Добавяне</translation>
 <translation id="780301667611848630">Не, благодаря</translation>
 <translation id="7810647596859435254">Отваряне със…</translation>
+<translation id="7821588508402923572">Тук ще се показва количеството икономисани данни</translation>
 <translation id="7832327313660264358">Данните, които синхронизирате с Google, и използваните от вас функции няма да се променят</translation>
 <translation id="7837721118676387834">Разрешаване на автоматичното възпроизвеждане на видеоклипове със заглушен звук за конкретен сайт.</translation>
 <translation id="7846076177841592234">Анулиране на избора</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
index d384c15..c6c3caa 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> s'obrirà a Chrome. En continuar, acceptes les <ph name="BEGIN_LINK1" />condicions del servei<ph name="END_LINK1" /> i l'<ph name="BEGIN_LINK2" />avís de privadesa<ph name="END_LINK2" /> de Chrome.</translation>
 <translation id="189172778771606813">Tanca el tauler de navegació</translation>
 <translation id="1919345977826869612">Anuncis</translation>
+<translation id="1919950603503897840">Selecciona contactes</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Pestanya seleccionada</translation>
 <translation id="1938981467853765413">Què et sembla?</translation>
@@ -202,9 +203,9 @@
 <translation id="2482878487686419369">Notificacions</translation>
 <translation id="2496180316473517155">Historial de navegació</translation>
 <translation id="2498359688066513246">Ajuda i suggeriments </translation>
-<translation id="2501278716633472235">Enrere</translation>
+<translation id="2501278716633472235">Torna</translation>
 <translation id="2512222046227390255">Emplena formularis automàticament</translation>
-<translation id="2513403576141822879">Per trobar més opcions relacionades amb la privadesa, la seguretat i la recopilació de dades, consulta <ph name="BEGIN_LINK" />Sincronització i serveis de Google<ph name="END_LINK" /></translation>
+<translation id="2513403576141822879">Per trobar més opcions relacionades amb la privadesa, la seguretat i la recollida de dades, consulta <ph name="BEGIN_LINK" />Sincronització i serveis de Google<ph name="END_LINK" /></translation>
 <translation id="2523184218357549926">Envia a Google els URL de les pàgines que visites</translation>
 <translation id="2526148617758225454">L'Economitzador de dades està activat. Gestioneu-lo a Configuració.</translation>
 <translation id="2532336938189706096">Visualització web</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Inicia la sessió a Chrome</translation>
 <translation id="32895400574683172">Es permeten les notificacions</translation>
 <translation id="3295602654194328831">Amaga la informació</translation>
+<translation id="3298243779924642547">Mode bàsic</translation>
 <translation id="3303414029551471755">Voleu baixar el contingut?</translation>
 <translation id="3328801116991980348">Informació del lloc web</translation>
 <translation id="3341058695485821946">Consulta la quantitat de dades que has estalviat</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Afegeix</translation>
 <translation id="780301667611848630">No, gràcies</translation>
 <translation id="7810647596859435254">Obre amb…</translation>
+<translation id="7821588508402923572">Les dades que estalviïs es mostraran aquí</translation>
 <translation id="7832327313660264358">Les dades que sincronitzis a Google i les funcions que utilitzis no canviaran</translation>
 <translation id="7837721118676387834">Permet la reproducció automàtica de vídeos silenciats d'un lloc específic.</translation>
 <translation id="7846076177841592234">Cancel·la la selecció</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
index 9b73150..f0c45cb1 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Aplikace <ph name="APP_NAME" /> se otevře v Chromu. Pokračováním vyjadřujete souhlas se <ph name="BEGIN_LINK1" />smluvními podmínkami<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />upozorněním ve věci ochrany soukromí<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Zavřít vysouvací panel navigace</translation>
 <translation id="1919345977826869612">Reklamy</translation>
+<translation id="1919950603503897840">Vyberte kontakty</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Vybraná karta</translation>
 <translation id="1938981467853765413">Odeslat zpětnou vazbu</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Přihlásit se do Chromu</translation>
 <translation id="32895400574683172">Oznámení jsou povolena</translation>
 <translation id="3295602654194328831">Skrýt informace</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Chcete pokračovat ke stažení obsahu?</translation>
 <translation id="3328801116991980348">Informace o stránkách</translation>
 <translation id="3341058695485821946">Podívejte se, kolik dat jste ušetřili</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Přidat</translation>
 <translation id="780301667611848630">Ne, děkuji</translation>
 <translation id="7810647596859435254">Otevřít v aplikaci…</translation>
+<translation id="7821588508402923572">Zde se budou zobrazovat vaše úspory dat</translation>
 <translation id="7832327313660264358">Data synchronizovaná do Googlu ani používané funkce se nezmění</translation>
 <translation id="7837721118676387834">Povolit automatické přehrávání ztlumených videí na konkrétním webu.</translation>
 <translation id="7846076177841592234">Zrušit výběr</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
index eb149a8..737f3bc 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> åbnes i Chrome. Når du fortsætter, accepterer du Chromes <ph name="BEGIN_LINK1" />servicevilkår<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />erklæring om privatliv<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Luk sidemenuen</translation>
 <translation id="1919345977826869612">Annoncer</translation>
+<translation id="1919950603503897840">Vælg kontakter</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Valgt fane</translation>
 <translation id="1938981467853765413">Giv feedback</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Log ind i Chrome</translation>
 <translation id="32895400574683172">Underretninger er tilladt</translation>
 <translation id="3295602654194328831">Skjul oplysninger</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Vil du fortsætte og downloade indholdet?</translation>
 <translation id="3328801116991980348">Webstedoplysninger</translation>
 <translation id="3341058695485821946">Se, hvor meget data du har gemt</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Tilføj</translation>
 <translation id="780301667611848630">Nej tak</translation>
 <translation id="7810647596859435254">Åbn med…</translation>
+<translation id="7821588508402923572">Din databesparelse vises her</translation>
 <translation id="7832327313660264358">De data, du synkroniserer med Google, og de funktioner, du bruger, ændres ikke</translation>
 <translation id="7837721118676387834">Tillad automatisk afspilning af videoer, hvor lyden er slået fra, for et bestemt website.</translation>
 <translation id="7846076177841592234">Annuller valg</translation>
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 2a746ed..e6c9c94 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> wird in Chrome geöffnet. Wenn Sie fortfahren, stimmen Sie den <ph name="BEGIN_LINK1" />Nutzungsbedingungen<ph name="END_LINK1" /> und <ph name="BEGIN_LINK2" />Datenschutzhinweisen<ph name="END_LINK2" /> von Chrome zu.</translation>
 <translation id="189172778771606813">Navigationsleiste schließen</translation>
 <translation id="1919345977826869612">Werbung</translation>
+<translation id="1919950603503897840">Kontakte auswählen</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> von <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Ausgewählter Tab</translation>
 <translation id="1938981467853765413">Feedback geben</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">In Chrome anmelden</translation>
 <translation id="32895400574683172">Benachrichtigungen sind erlaubt</translation>
 <translation id="3295602654194328831">Informationen ausblenden</translation>
+<translation id="3298243779924642547">Lite-Modus</translation>
 <translation id="3303414029551471755">Inhalt herunterladen?</translation>
 <translation id="3328801116991980348">Websiteinformationen</translation>
 <translation id="3341058695485821946">Sie können sich ansehen, wie viel Datenvolumen Sie einsparen</translation>
@@ -856,6 +858,7 @@
 <translation id="7791543448312431591">Hinzufügen</translation>
 <translation id="780301667611848630">Kein Interesse</translation>
 <translation id="7810647596859435254">Öffnen mit…</translation>
+<translation id="7821588508402923572">Ihre Einsparungen bei der Datennutzung werden hier angezeigt</translation>
 <translation id="7832327313660264358">Die mit Google synchronisierten Daten und die verwendeten Funktionen werden nicht geändert</translation>
 <translation id="7837721118676387834">Automatische Wiedergabe stummgeschalteter Videos für eine bestimmte Website zulassen.</translation>
 <translation id="7846076177841592234">Auswahl aufheben</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
index b4ba6222..d271f07e 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Η εφαρμογή <ph name="APP_NAME" /> θα ανοίξει στο Chrome. Εάν συνεχίσετε, συμφωνείτε με τους <ph name="BEGIN_LINK1" />Όρους Παροχής Υπηρεσιών<ph name="END_LINK1" /> και τη <ph name="BEGIN_LINK2" />Σημείωση απορρήτου<ph name="END_LINK2" /> του Chrome.</translation>
 <translation id="189172778771606813">Κλείσιμο συρταριού πλοήγησης</translation>
 <translation id="1919345977826869612">Διαφημίσεις</translation>
+<translation id="1919950603503897840">Επιλογή επαφών</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Επιλεγμένη καρτέλα</translation>
 <translation id="1938981467853765413">Στείλτε τα σχόλιά σας</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Σύνδεση στο Chrome</translation>
 <translation id="32895400574683172">Οι ειδοποιήσεις επιτρέπονται</translation>
 <translation id="3295602654194328831">Απόκρυψη πληροφοριών</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Συνέχεια για λήψη του περιεχομένου;</translation>
 <translation id="3328801116991980348">Πληροφορίες ιστοτόπου</translation>
 <translation id="3341058695485821946">Δείτε πόσα δεδομένα έχετε αποθηκεύσει</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Προσθήκη</translation>
 <translation id="780301667611848630">Όχι, ευχαριστώ</translation>
 <translation id="7810647596859435254">Άνοιγμα με…</translation>
+<translation id="7821588508402923572">Η εξοικονόμηση δεδομένων σας θα εμφανίζεται εδώ</translation>
 <translation id="7832327313660264358">Τα δεδομένα που συγχρονίζετε στο Google και οι λειτουργίες που χρησιμοποιείτε δεν θα αλλάξουν</translation>
 <translation id="7837721118676387834">Να επιτρέπεται η αυτόματη αναπαραγωγή βίντεο που έχουν τεθεί σε σίγαση για έναν συγκεκριμένο ιστότοπο.</translation>
 <translation id="7846076177841592234">Ακύρωση επιλογής</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb b/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb
index b82d07d..30122db 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> se abrirá en Chrome. Al continuar, aceptas las <ph name="BEGIN_LINK1" />Condiciones del servicio<ph name="END_LINK1" /> y el <ph name="BEGIN_LINK2" />Aviso de privacidad<ph name="END_LINK2" /> de Chrome.</translation>
 <translation id="189172778771606813">Cerrar panel lateral de navegación</translation>
 <translation id="1919345977826869612">Anuncios</translation>
+<translation id="1919950603503897840">Seleccionar contactos</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Pestaña seleccionada</translation>
 <translation id="1938981467853765413">Hacer comentarios</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Acceder a Chrome</translation>
 <translation id="32895400574683172">Las notificaciones están habilitadas</translation>
 <translation id="3295602654194328831">Ocultar información</translation>
+<translation id="3298243779924642547">Co. básica</translation>
 <translation id="3303414029551471755">¿Deseas descargar el contenido?</translation>
 <translation id="3328801116991980348">Información del sitio</translation>
 <translation id="3341058695485821946">Consulta cuántos datos redujiste</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Agregar</translation>
 <translation id="780301667611848630">No, gracias</translation>
 <translation id="7810647596859435254">Abrir con…</translation>
+<translation id="7821588508402923572">Aquí aparecerá tu ahorro de datos</translation>
 <translation id="7832327313660264358">No se modificarán los datos que sincronizas en Google ni las funciones que usas</translation>
 <translation id="7837721118676387834">Permite la reproducción automática de videos silenciados para un sitio específico.</translation>
 <translation id="7846076177841592234">Cancelar la selección</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
index aeeb08a..de42452 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> se abrirá en Chrome. Si continúas, aceptas las <ph name="BEGIN_LINK1" />condiciones de servicio<ph name="END_LINK1" /> y el <ph name="BEGIN_LINK2" />aviso de privacidad<ph name="END_LINK2" /> de Chrome.</translation>
 <translation id="189172778771606813">Cerrar panel de navegación</translation>
 <translation id="1919345977826869612">Anuncios</translation>
+<translation id="1919950603503897840">Seleccionar contactos</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Pestaña seleccionada</translation>
 <translation id="1938981467853765413">Enviar comentarios</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Iniciar sesión en Chrome</translation>
 <translation id="32895400574683172">Las notificaciones están permitidas</translation>
 <translation id="3295602654194328831">Ocultar información</translation>
+<translation id="3298243779924642547">Básico</translation>
 <translation id="3303414029551471755">¿Quieres continuar para descargar el contenido?</translation>
 <translation id="3328801116991980348">Información del sitio</translation>
 <translation id="3341058695485821946">Consulta la cantidad de datos que has ahorrado</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Añadir</translation>
 <translation id="780301667611848630">No, gracias</translation>
 <translation id="7810647596859435254">Abrir con…</translation>
+<translation id="7821588508402923572">El ahorro de datos aparecerá aquí</translation>
 <translation id="7832327313660264358">Los datos que sincronizas con Google y las funciones que utilizas no cambiarán</translation>
 <translation id="7837721118676387834">Permitir que un sitio web específico reproduzca automáticamente los vídeos silenciados.</translation>
 <translation id="7846076177841592234">Cancelar selección</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 456cfc1..18364085 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">‏<ph name="APP_NAME" /> در Chrome باز می‌شود. درصورت ادامه دادن، با <ph name="BEGIN_LINK1" />شرایط خدمات<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />اعلان حریم خصوصی<ph name="END_LINK2" /> Chrome موافقت می‌کنید.</translation>
 <translation id="189172778771606813">بستن کشوی پیمایش</translation>
 <translation id="1919345977826869612">آگهی‌ها</translation>
+<translation id="1919950603503897840">انتخاب مخاطبین</translation>
 <translation id="1923695749281512248">‎<ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" />‎</translation>
 <translation id="1933845786846280168">برگه انتخاب‌شده</translation>
 <translation id="1938981467853765413">ارائه بازخورد</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">‏ورود به Chrome</translation>
 <translation id="32895400574683172">اعلان‌ها مجاز هستند</translation>
 <translation id="3295602654194328831">پنهان کردن اطلاعات</translation>
+<translation id="3298243779924642547">ساده</translation>
 <translation id="3303414029551471755">ادامه می‌دهید و محتوا را بارگیری می‌کنید؟</translation>
 <translation id="3328801116991980348">اطلاعات سایت</translation>
 <translation id="3341058695485821946">ببینید چه مقدار داده صرفه‌جویی کرده‌اید</translation>
@@ -854,6 +856,7 @@
 <translation id="7791543448312431591">افزودن</translation>
 <translation id="780301667611848630">نه متشکرم</translation>
 <translation id="7810647596859435254">باز کردن با…</translation>
+<translation id="7821588508402923572">میزان داده صرفه‌جویی‌شده اینجا نشان داده می‌شود</translation>
 <translation id="7832327313660264358">‏داده‌هایی که با Google همگام‌سازی می‌کنید و قابلیت‌هایی که استفاده می‌کنید تغییر نخواهد کرد.</translation>
 <translation id="7837721118676387834">به پخش‌خودکار ویدیو‌های صامت‌شده برای سایتی خاص امکان دهید.</translation>
 <translation id="7846076177841592234">لغو انتخاب</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
index 05afcb0..34f3ec9 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> avautuu Chromessa. Jatkamalla hyväksyt Chromen <ph name="BEGIN_LINK1" />käyttöehdot<ph name="END_LINK1" /> ja <ph name="BEGIN_LINK2" />tietosuojailmoituksen<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Sulje navigoinnin vetopaneeli</translation>
 <translation id="1919345977826869612">Mainokset</translation>
+<translation id="1919950603503897840">Valitse kontaktit</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Valittu välilehti</translation>
 <translation id="1938981467853765413">Anna palautetta</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Kirjaudu Chromeen</translation>
 <translation id="32895400574683172">Ilmoitukset sallitaan</translation>
 <translation id="3295602654194328831">Piilota tiedot</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Jatketaanko sisällön lataamiseen?</translation>
 <translation id="3328801116991980348">Tietoja sivustosta</translation>
 <translation id="3341058695485821946">Katso, kuinka paljon dataa olet säästänyt</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Lisää</translation>
 <translation id="780301667611848630">Ei kiitos</translation>
 <translation id="7810647596859435254">Avaa sovelluksessa…</translation>
+<translation id="7821588508402923572">Datasäästösi näkyvät täällä</translation>
 <translation id="7832327313660264358">Googlen kanssa synkronoimiasi tietoja tai käyttämiäsi ominaisuuksia ei muuteta.</translation>
 <translation id="7837721118676387834">Sallii tietylle sivustolle mykistettyjen videoiden automaattisen toiston.</translation>
 <translation id="7846076177841592234">Peruuta valinta</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 0ce6410..9c4c1f27 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Bubukas ang <ph name="APP_NAME" /> sa Chrome. Sa pamamagitan ng pagpapatuloy, sumasang-ayon ka sa <ph name="BEGIN_LINK1" />Mga Tuntunin ng Serbisyo<ph name="END_LINK1" /> at <ph name="BEGIN_LINK2" />Notification ng Privacy<ph name="END_LINK2" /> ng Chrome.</translation>
 <translation id="189172778771606813">Isara ang navigation drawer</translation>
 <translation id="1919345977826869612">Mga Ad</translation>
+<translation id="1919950603503897840">Pumili ng mga contact</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Napiling Tab</translation>
 <translation id="1938981467853765413">Magbigay ng feedback</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Mag-sign in sa Chrome</translation>
 <translation id="32895400574683172">Pinapayagan ang mga notification</translation>
 <translation id="3295602654194328831">Itago ang Impormasyon</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Magpatuloy na i-download ang content?</translation>
 <translation id="3328801116991980348">Impormasyon ng site</translation>
 <translation id="3341058695485821946">Tingnan kung gaano karaming data ang iyong natipid</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Magdagdag</translation>
 <translation id="780301667611848630">Hindi salamat</translation>
 <translation id="7810647596859435254">Buksan gamit ang…</translation>
+<translation id="7821588508402923572">Lalabas dito ang mga natipid sa iyong data</translation>
 <translation id="7832327313660264358">Hindi mababago ang data na sini-sync mo sa Google at ang mga feature na ginagamit mo</translation>
 <translation id="7837721118676387834">Payagan ang pag-autoplay ng mga naka-mute na video para sa isang partikular na site.</translation>
 <translation id="7846076177841592234">Kanselahin ang pinili</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
index 47fed83..d54b83d 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> va s'ouvrir dans Chrome. En continuant, vous acceptez les <ph name="BEGIN_LINK1" />Conditions d'utilisation<ph name="END_LINK1" /> et l'<ph name="BEGIN_LINK2" />Avis de confidentialité<ph name="END_LINK2" /> de Chrome.</translation>
 <translation id="189172778771606813">Fermer le panneau de navigation</translation>
 <translation id="1919345977826869612">Annonces</translation>
+<translation id="1919950603503897840">Sélectionner des contacts</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Onglet sélectionné</translation>
 <translation id="1938981467853765413">Envoyer des commentaires</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Connectez-vous à Chrome</translation>
 <translation id="32895400574683172">Les notifications sont autorisées</translation>
 <translation id="3295602654194328831">Masquer les informations</translation>
+<translation id="3298243779924642547">Simplifié</translation>
 <translation id="3303414029551471755">Poursuivre et télécharger le contenu ?</translation>
 <translation id="3328801116991980348">Informations sur le site</translation>
 <translation id="3341058695485821946">Découvrez la quantité de données économisées</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Ajouter</translation>
 <translation id="780301667611848630">Non merci</translation>
 <translation id="7810647596859435254">Ouvrir avec…</translation>
+<translation id="7821588508402923572">Vos économies de données s'affichent ici</translation>
 <translation id="7832327313660264358">Les données que vous synchronisez avec Google et les fonctionnalités que vous utilisez ne changeront pas</translation>
 <translation id="7837721118676387834">Autoriser la lecture automatique des vidéos dont le son est coupé pour un site spécifique</translation>
 <translation id="7846076177841592234">Annuler la sélection</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 0545f58..4667087 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> Chrome में खुलेगा. जारी रखकर, आप Chrome की <ph name="BEGIN_LINK1" />सेवा की शर्तों<ph name="END_LINK1" /> और <ph name="BEGIN_LINK2" />निजता सूचना<ph name="END_LINK2" /> से सहमत होते हैं.</translation>
 <translation id="189172778771606813">मार्गदर्शक ड्रॉवर बंद करें</translation>
 <translation id="1919345977826869612">विज्ञापन</translation>
+<translation id="1919950603503897840">संपर्कों को चुनें</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">चयनित टैब</translation>
 <translation id="1938981467853765413">सुझाव दें</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Chrome में प्रवेश करें</translation>
 <translation id="32895400574683172">सूचनाओं की अनुमति है</translation>
 <translation id="3295602654194328831">जानकारी छिपाएं</translation>
+<translation id="3298243779924642547">लाइट</translation>
 <translation id="3303414029551471755">सामग्री डाउनलोड करने के लिए आगे बढ़ें?</translation>
 <translation id="3328801116991980348">साइट जानकारी</translation>
 <translation id="3341058695485821946">देखें कि आपने कितना डेटा बचाया है</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">जोड़ें</translation>
 <translation id="780301667611848630">जी नहीं, रहने दें </translation>
 <translation id="7810647596859435254">इसमें खोलें…</translation>
+<translation id="7821588508402923572">आपकी डेटा बचत यहां दिखाई देगी</translation>
 <translation id="7832327313660264358">Google में सिंक किए गए डेटा और आपके इस्तेमाल किए जा रहे फ़ीचर में कोई बदलाव नहीं होगा</translation>
 <translation id="7837721118676387834">किसी विशिष्ट साइट के लिए, म्यूट किए गए वीडियो स्वत: चलाने दें.</translation>
 <translation id="7846076177841592234">चयन हटाएं</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
index eff4e3f9..cf9ee139 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Aplikacija <ph name="APP_NAME" /> otvorit će se u Chromeu. Nastavljanjem prihvaćate Chromeove <ph name="BEGIN_LINK1" />Uvjete pružanja usluge<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />Obavijest o privatnosti<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Zatvori ladicu za navigaciju</translation>
 <translation id="1919345977826869612">Oglasi</translation>
+<translation id="1919950603503897840">Odabir kontakata</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Odabrana kartica</translation>
 <translation id="1938981467853765413">Pošalji povratne informacije</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Prijavite se u Chrome</translation>
 <translation id="32895400574683172">Obavijesti su dopuštene</translation>
 <translation id="3295602654194328831">Sakrij informacije</translation>
+<translation id="3298243779924642547">Jednostav.</translation>
 <translation id="3303414029551471755">Želite li nastaviti s preuzimanjem sadržaja?</translation>
 <translation id="3328801116991980348">Informacije o web-lokaciji</translation>
 <translation id="3341058695485821946">Pogledajte količinu ušteđenih podataka</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Dodaj</translation>
 <translation id="780301667611848630">Ne, hvala</translation>
 <translation id="7810647596859435254">Otvori aplikacijom…</translation>
+<translation id="7821588508402923572">Ovdje će se prikazati vaša ušteda podataka</translation>
 <translation id="7832327313660264358">Podaci koje sinkronizirate s Googleom i značajke koje upotrebljavate neće se promijeniti</translation>
 <translation id="7837721118676387834">Dopustite automatsku reprodukciju videozapisa s isključenim tonom za određenu web-lokaciju.</translation>
 <translation id="7846076177841592234">Poništi odabir</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
index afcd5777..6bac27d 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">A(z) <ph name="APP_NAME" /> a Chrome-ban nyílik meg. A folytatással elfogadja a Chrome <ph name="BEGIN_LINK1" />Általános Szerződési Feltételeit<ph name="END_LINK1" /> és <ph name="BEGIN_LINK2" />Adatvédelmi közleményét<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Navigációs fiók bezárása</translation>
 <translation id="1919345977826869612">Hirdetések</translation>
+<translation id="1919950603503897840">Névjegyek kiválasztása</translation>
 <translation id="1923695749281512248"><ph name="FILE_SIZE_WITH_UNITS" /> / <ph name="BYTES_DOWNLOADED_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Kiválasztott lap</translation>
 <translation id="1938981467853765413">Visszajelzés küldése</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Bejelentkezés a Chrome-ba</translation>
 <translation id="32895400574683172">Értesítések engedélyezve</translation>
 <translation id="3295602654194328831">Információk elrejtése…</translation>
+<translation id="3298243779924642547">Egyszerű</translation>
 <translation id="3303414029551471755">Biztosan letölti a tartalmat?</translation>
 <translation id="3328801116991980348">Webhelyadatok</translation>
 <translation id="3341058695485821946">Megnézheti, mennyi adatot takarított meg</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Hozzáadás</translation>
 <translation id="780301667611848630">Köszönöm, nem</translation>
 <translation id="7810647596859435254">Megnyitás ezzel:</translation>
+<translation id="7821588508402923572">Itt látható a megtakarított adatmennyiség</translation>
 <translation id="7832327313660264358">A Google-lal szinkronizált adatok köre és a használt funkciók nem fognak megváltozni</translation>
 <translation id="7837721118676387834">A némított videók automatikus lejátszásának engedélyezése az adott webhelyen.</translation>
 <translation id="7846076177841592234">Kijelölés törlése</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
index 09eddb18..61f6c50 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> akan terbuka di Chrome. Dengan melanjutkan, Anda menyetujui <ph name="BEGIN_LINK1" />Persyaratan Layanan<ph name="END_LINK1" /> dan <ph name="BEGIN_LINK2" />Pemberitahuan Privasi<ph name="END_LINK2" /> Chrome.</translation>
 <translation id="189172778771606813">Tutup panel samping navigasi</translation>
 <translation id="1919345977826869612">Iklan</translation>
+<translation id="1919950603503897840">Pilih kontak</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Tab yang Dipilih</translation>
 <translation id="1938981467853765413">Berikan masukan</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Masuk ke Chrome</translation>
 <translation id="32895400574683172">Notifikasi diizinkan</translation>
 <translation id="3295602654194328831">Sembunyikan Info</translation>
+<translation id="3298243779924642547">Ringan</translation>
 <translation id="3303414029551471755">Lanjutkan untuk mendownload konten?</translation>
 <translation id="3328801116991980348">Informasi situs</translation>
 <translation id="3341058695485821946">Lihat berapa banyak data yang dihemat</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Tambahkan</translation>
 <translation id="780301667611848630">Lain kali</translation>
 <translation id="7810647596859435254">Buka dengan...</translation>
+<translation id="7821588508402923572">Penghematan data Anda akan terlihat di sini</translation>
 <translation id="7832327313660264358">Data yang Anda sinkronkan ke Google dan fitur yang Anda gunakan tidak akan berubah</translation>
 <translation id="7837721118676387834">Izinkan pemutaran otomatis video yang dibisukan untuk situs tertentu.</translation>
 <translation id="7846076177841592234">Batalkan pilihan</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
index a584a45e..e6d5cea 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">L'app <ph name="APP_NAME" /> verrà aperta in Chrome. Se continui, accetti i <ph name="BEGIN_LINK1" />Termini di servizio<ph name="END_LINK1" /> e l'<ph name="BEGIN_LINK2" />Informativa sulla Privacy<ph name="END_LINK2" /> di Chrome.</translation>
 <translation id="189172778771606813">Chiudi riquadro di navigazione a scomparsa</translation>
 <translation id="1919345977826869612">Annunci</translation>
+<translation id="1919950603503897840">Seleziona contatti</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> di <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Scheda selezionata</translation>
 <translation id="1938981467853765413">Fornisci feedback</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Accedi a Chrome</translation>
 <translation id="32895400574683172">Le notifiche sono consentite</translation>
 <translation id="3295602654194328831">Nascondi informazioni</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Procedere al download dei contenuti?</translation>
 <translation id="3328801116991980348">Informazioni sito</translation>
 <translation id="3341058695485821946">Scopri la quantità di dati risparmiata</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Aggiungi</translation>
 <translation id="780301667611848630">No grazie</translation>
 <translation id="7810647596859435254">Apri con…</translation>
+<translation id="7821588508402923572">La quantità di dati risparmiata sarà visualizzata qui</translation>
 <translation id="7832327313660264358">I dati che sincronizzi con Google e le funzioni che utilizzi non cambieranno</translation>
 <translation id="7837721118676387834">Consenti la riproduzione automatica dei video con audio disattivato in un sito specifico.</translation>
 <translation id="7846076177841592234">Annulla selezione</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 22afe2d..9a0f244 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">‏האפליקציה <ph name="APP_NAME" /> תיפתח ב-Chrome. המשך השימוש מבטא את הסכמתך ל<ph name="BEGIN_LINK1" />תנאים ולהגבלות<ph name="END_LINK1" /> ול<ph name="BEGIN_LINK2" />הודעת הפרטיות<ph name="END_LINK2" /> של Chrome.</translation>
 <translation id="189172778771606813">סגור את חלונית ההזזה לניווט</translation>
 <translation id="1919345977826869612">מודעות</translation>
+<translation id="1919950603503897840">בחירת אנשי קשר</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">הכרטיסייה שנבחרה</translation>
 <translation id="1938981467853765413"> שליחת משוב</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">‏כניסה ל-Chrome</translation>
 <translation id="32895400574683172">יש הרשאה להצגת הודעות</translation>
 <translation id="3295602654194328831">הסתר פרטים</translation>
+<translation id="3298243779924642547">‏מצב Lite</translation>
 <translation id="3303414029551471755">האם להוריד את התוכן?</translation>
 <translation id="3328801116991980348">פרטי אתר</translation>
 <translation id="3341058695485821946">בדיקת החיסכון בצריכת נתונים</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">הוסף</translation>
 <translation id="780301667611848630">לא תודה</translation>
 <translation id="7810647596859435254">פתח באמצעות...</translation>
+<translation id="7821588508402923572">ערכי החיסכון בנתונים יופיעו כאן</translation>
 <translation id="7832327313660264358">‏הנתונים המסונכרנים עם Google והתכונות שבהן בחרת להשתמש לא ישתנו</translation>
 <translation id="7837721118676387834">אפשר הפעלה אוטומטית של סרטונים מושתקים באתר ספציפי.</translation>
 <translation id="7846076177841592234">בטל את הבחירה</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 14adcfc6..238e333 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Chrome で <ph name="APP_NAME" /> を開きます。続行すると、Chrome の<ph name="BEGIN_LINK1" />利用規約<ph name="END_LINK1" />と<ph name="BEGIN_LINK2" />プライバシーに関するお知らせ<ph name="END_LINK2" />に同意したことになります。</translation>
 <translation id="189172778771606813">操作パネルを閉じる</translation>
 <translation id="1919345977826869612">広告</translation>
+<translation id="1919950603503897840">連絡先を選択</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">選択したタブ</translation>
 <translation id="1938981467853765413">フィードバックを送信</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Chrome にログイン</translation>
 <translation id="32895400574683172">通知が許可されています</translation>
 <translation id="3295602654194328831">情報を表示しない</translation>
+<translation id="3298243779924642547">軽量版</translation>
 <translation id="3303414029551471755">コンテンツのダウンロードに進みますか?</translation>
 <translation id="3328801116991980348">サイト情報</translation>
 <translation id="3341058695485821946">データ削減量を確認できます</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">追加</translation>
 <translation id="780301667611848630">いいえ</translation>
 <translation id="7810647596859435254">アプリで開く…</translation>
+<translation id="7821588508402923572">データ節約量がここに表示されます</translation>
 <translation id="7832327313660264358">Google に同期しているデータと使用している機能は変更されません</translation>
 <translation id="7837721118676387834">特定のサイトに対し、ミュートされた動画の自動再生を許可します。</translation>
 <translation id="7846076177841592234">選択解除</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
index 8d4d3300..526085a 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" />이(가) Chrome에서 열립니다. 계속하면 Chrome의 <ph name="BEGIN_LINK1" />서비스 약관<ph name="END_LINK1" /> 및 <ph name="BEGIN_LINK2" />개인정보처리방침<ph name="END_LINK2" />에 동의하는 것으로 간주됩니다.</translation>
 <translation id="189172778771606813">탐색 창 닫기</translation>
 <translation id="1919345977826869612">광고</translation>
+<translation id="1919950603503897840">연락처 선택</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">선택된 탭</translation>
 <translation id="1938981467853765413">의견 보내기</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Chrome에 로그인</translation>
 <translation id="32895400574683172">알림이 허용되었습니다</translation>
 <translation id="3295602654194328831">정보 숨기기</translation>
+<translation id="3298243779924642547">라이트</translation>
 <translation id="3303414029551471755">콘텐츠를 다운로드하시겠습니까?</translation>
 <translation id="3328801116991980348">사이트 정보</translation>
 <translation id="3341058695485821946">저장한 데이터의 양 보기</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">추가</translation>
 <translation id="780301667611848630">아니요, 괜찮습니다.</translation>
 <translation id="7810647596859435254">연결 프로그램...</translation>
+<translation id="7821588508402923572">절약한 데이터 양이 여기에 표시됩니다</translation>
 <translation id="7832327313660264358">Google에 동기화하는 데이터 및 사용하는 기능은 변경되지 않습니다.</translation>
 <translation id="7837721118676387834">특정 사이트에서만 음소거된 동영상이 자동재생되도록 허용합니다.</translation>
 <translation id="7846076177841592234">선택 취소</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
index 95e6b4a..c19be648 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Programa „<ph name="APP_NAME" />“ bus atidaryta naršyklėje „Chrome“. Tęsdami sutinkate su „Chrome“ <ph name="BEGIN_LINK1" />paslaugų teikimo sąlygomis<ph name="END_LINK1" /> ir <ph name="BEGIN_LINK2" />privatumo pranešimu<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Uždaryti naršymo skydelį</translation>
 <translation id="1919345977826869612">Skelbimai</translation>
+<translation id="1919950603503897840">Kontaktų pasirinkimas</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> iš <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Pasirinktas skirtukas</translation>
 <translation id="1938981467853765413">Pateikti atsiliepimą</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Prisijungti prie „Chrome“</translation>
 <translation id="32895400574683172">Pranešimai leidžiami</translation>
 <translation id="3295602654194328831">Slėpti informaciją</translation>
+<translation id="3298243779924642547">Supapr.</translation>
 <translation id="3303414029551471755">Tęsti turinio atsisiuntimo procesą?</translation>
 <translation id="3328801116991980348">Svetainės informacija</translation>
 <translation id="3341058695485821946">Žr., kiek duomenų sutaupėte</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Pridėti</translation>
 <translation id="780301667611848630">Ačiū, ne</translation>
 <translation id="7810647596859435254">Atidaryti naudojant...</translation>
+<translation id="7821588508402923572">Čia bus rodoma informacija apie sutaupytus duomenis</translation>
 <translation id="7832327313660264358">Su „Google“ sinchronizuojami duomenys ir naudojamos funkcijos nepasikeis</translation>
 <translation id="7837721118676387834">Leisti automatiškai paleisti nutildytus vaizdo įrašus konkrečioje svetainėje</translation>
 <translation id="7846076177841592234">Atšaukti pasirinkimą</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
index ecb0c767..23f855acc 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Lietotne <ph name="APP_NAME" /> tiks atvērta pārlūkā Chrome. Turpinot jūs piekrītat Chrome <ph name="BEGIN_LINK1" />pakalpojumu sniegšanas noteikumiem<ph name="END_LINK1" /> un <ph name="BEGIN_LINK2" />konfidencialitātes paziņojumam<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Aizvērt navigācijas atvilktni</translation>
 <translation id="1919345977826869612">Reklāmas</translation>
+<translation id="1919950603503897840">Kontaktpersonu atlase</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> no <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Atlasītā cilne</translation>
 <translation id="1938981467853765413">Sniegt atsauksmes</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Pierakstīties pārlūkā Chrome</translation>
 <translation id="32895400574683172">Paziņojumi ir atļauti.</translation>
 <translation id="3295602654194328831">Slēpt informāciju</translation>
+<translation id="3298243779924642547">Vienkāršota</translation>
 <translation id="3303414029551471755">Vai turpināt ar satura lejupielādi?</translation>
 <translation id="3328801116991980348">Vietnes informācija</translation>
 <translation id="3341058695485821946">Uzziniet ietaupīto datu apjomu</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Pievienot</translation>
 <translation id="780301667611848630">Nē, paldies</translation>
 <translation id="7810647596859435254">Atvērt ar…</translation>
+<translation id="7821588508402923572">Šeit tiks parādīts ietaupīto datu apjoms.</translation>
 <translation id="7832327313660264358">Ar Google pakalpojumiem sinhronizētie dati un jūsu izmantotās funkcijas nemainīsies</translation>
 <translation id="7837721118676387834">Atļaut automātisku atskaņošanu videoklipiem ar izslēgtu skaņu konkrētā vietnē.</translation>
 <translation id="7846076177841592234">Atcelt atlasi</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
index 0e4d5005..fe4ce093 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> wordt geopend in Chrome. Als je doorgaat, ga je akkoord met de <ph name="BEGIN_LINK1" />Servicevoorwaarden<ph name="END_LINK1" /> en het <ph name="BEGIN_LINK2" />Privacybeleid<ph name="END_LINK2" /> van Chrome.</translation>
 <translation id="189172778771606813">Zijmenu sluiten</translation>
 <translation id="1919345977826869612">Advertenties</translation>
+<translation id="1919950603503897840">Contacten selecteren</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> van <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Geselecteerd tabblad</translation>
 <translation id="1938981467853765413">Feedback geven</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Inloggen bij Chrome</translation>
 <translation id="32895400574683172">Meldingen zijn toegestaan</translation>
 <translation id="3295602654194328831">Informatie verbergen</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Doorgaan met het downloaden van de content?</translation>
 <translation id="3328801116991980348">Site-informatie</translation>
 <translation id="3341058695485821946">Bekijk hoeveel data je hebt bespaard</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Toevoegen</translation>
 <translation id="780301667611848630">Nee, bedankt</translation>
 <translation id="7810647596859435254">Openen met…</translation>
+<translation id="7821588508402923572">Hier wordt getoond hoeveel data je bespaart</translation>
 <translation id="7832327313660264358">De gegevens die je met Google synchroniseert en de functies die je gebruikt, veranderen niet</translation>
 <translation id="7837721118676387834">Automatisch afspelen van gedempte video's toestaan voor een specifieke site.</translation>
 <translation id="7846076177841592234">Selectie opheffen</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
index 0c49f2f..3d73fcba 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> åpnes i Chrome. Ved å fortsette godtar du <ph name="BEGIN_LINK1" />vilkårene for bruk<ph name="END_LINK1" /> av Chrome og <ph name="BEGIN_LINK2" />merknaden om personvern<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Lukk uttrekksmenyen</translation>
 <translation id="1919345977826869612">Annonser</translation>
+<translation id="1919950603503897840">Velg kontakter</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Valgt fane</translation>
 <translation id="1938981467853765413">Gi tilbakemelding</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Logg på Chrome</translation>
 <translation id="32895400574683172">Varsler er tillatt</translation>
 <translation id="3295602654194328831">Skjul informasjonen</translation>
+<translation id="3298243779924642547">Forenklet</translation>
 <translation id="3303414029551471755">Vil du gå videre med å laste ned innholdet?</translation>
 <translation id="3328801116991980348">Informasjon om nettstedet</translation>
 <translation id="3341058695485821946">Se hvor mye data du har spart</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Legg til</translation>
 <translation id="780301667611848630">Nei takk</translation>
 <translation id="7810647596859435254">Åpne med…</translation>
+<translation id="7821588508402923572">Datasparingen din vises her</translation>
 <translation id="7832327313660264358">Data du synkroniserer til Google og funksjonene du bruker, endres ikke</translation>
 <translation id="7837721118676387834">Tillat automatisk avspilling av videoer med dempet lyd for et bestemt nettsted.</translation>
 <translation id="7846076177841592234">Opphev valget</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
index 5b67e2b6..9ce3e60 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> otworzy się w Chrome. Przechodząc dalej, akceptujesz <ph name="BEGIN_LINK1" />Warunki korzystania z usługi<ph name="END_LINK1" /> Chrome i <ph name="BEGIN_LINK2" />Informacje na temat ochrony prywatności<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Zamknij panel nawigacji</translation>
 <translation id="1919345977826869612">Reklamy</translation>
+<translation id="1919950603503897840">Wybierz kontakty</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Wybrana karta</translation>
 <translation id="1938981467853765413">Prześlij opinię</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Zaloguj się w Chrome</translation>
 <translation id="32895400574683172">Powiadomienia są włączone</translation>
 <translation id="3295602654194328831">Ukryj informacje</translation>
+<translation id="3298243779924642547">Lżejsza</translation>
 <translation id="3303414029551471755">Przejść do pobrania treści?</translation>
 <translation id="3328801116991980348">Informacje o witrynie</translation>
 <translation id="3341058695485821946">Sprawdź ilość zaoszczędzonych danych</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Dodaj</translation>
 <translation id="780301667611848630">Nie, dziękuję</translation>
 <translation id="7810647596859435254">Otwórz za pomocą…</translation>
+<translation id="7821588508402923572">Tutaj będą widoczne informacje o zaoszczędzonych danych</translation>
 <translation id="7832327313660264358">Dane, które synchronizujesz z Google, i funkcje, których używasz, nie zostaną zmienione</translation>
 <translation id="7837721118676387834">Zezwalaj określonej stronie na automatyczne odtwarzanie wyciszonych filmów.</translation>
 <translation id="7846076177841592234">Anuluj wybór</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb
index 8134efa..52d73d8 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">O app <ph name="APP_NAME" /> será aberto no Chrome. Ao continuar, você concorda com os <ph name="BEGIN_LINK1" />Termos de Serviço<ph name="END_LINK1" /> e o <ph name="BEGIN_LINK2" />Aviso de Privacidade<ph name="END_LINK2" /> do Chrome.</translation>
 <translation id="189172778771606813">Fechar gaveta de navegação</translation>
 <translation id="1919345977826869612">Anúncios</translation>
+<translation id="1919950603503897840">Selecionar contatos</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Guia selecionada</translation>
 <translation id="1938981467853765413">Enviar feedback</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Fazer login no Google Chrome</translation>
 <translation id="32895400574683172">Notificações são permitidas</translation>
 <translation id="3295602654194328831">Ocultar informações</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Continuar com o download do conteúdo?</translation>
 <translation id="3328801116991980348">Informações do site</translation>
 <translation id="3341058695485821946">Veja a quantidade de dados que você salvou</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Adicionar</translation>
 <translation id="780301667611848630">Não</translation>
 <translation id="7810647596859435254">Abrir com…</translation>
+<translation id="7821588508402923572">Sua economia de dados será exibida aqui</translation>
 <translation id="7832327313660264358">Os dados sincronizados com o Google e os recursos usados não serão alterados</translation>
 <translation id="7837721118676387834">Permite a reprodução automática de vídeos silenciados de um site específico.</translation>
 <translation id="7846076177841592234">Cancelar seleção</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb
index ed0b25d..1106b82 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">A aplicação <ph name="APP_NAME" /> será aberta no Chrome. Ao continuar, aceita os <ph name="BEGIN_LINK1" />Termos de Utilização<ph name="END_LINK1" /> e o <ph name="BEGIN_LINK2" />Aviso de Privacidade<ph name="END_LINK2" /> do Chrome.</translation>
 <translation id="189172778771606813">Fechar a gaveta de navegação</translation>
 <translation id="1919345977826869612">Anúncios</translation>
+<translation id="1919950603503897840">Selecionar contactos</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Separador selecionado</translation>
 <translation id="1938981467853765413">Fornecer comentário</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Iniciar sessão no Chrome</translation>
 <translation id="32895400574683172">As notificações são permitidas.</translation>
 <translation id="3295602654194328831">Ocultar informações</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Pretende transferir o conteúdo?</translation>
 <translation id="3328801116991980348">Informações do site</translation>
 <translation id="3341058695485821946">Veja a quantidade de dados que poupou.</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Adicionar</translation>
 <translation id="780301667611848630">Não, obrigado</translation>
 <translation id="7810647596859435254">Abrir com…</translation>
+<translation id="7821588508402923572">A sua poupança de dados é apresentada aqui</translation>
 <translation id="7832327313660264358">Os dados que sincroniza com o Google e as funcionalidades que utiliza não serão alterados.</translation>
 <translation id="7837721118676387834">Permitir a reprodução automática dos vídeos ignorados para um site específico.</translation>
 <translation id="7846076177841592234">Cancelar seleção</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 5068396..e40c1a6 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> se va deschide în Chrome. Continuând, ești de acord cu <ph name="BEGIN_LINK1" />Termenii și condițiile<ph name="END_LINK1" /> și <ph name="BEGIN_LINK2" />Notificarea privind confidențialitatea<ph name="END_LINK2" /> Chrome.</translation>
 <translation id="189172778771606813">Închide panoul de navigare</translation>
 <translation id="1919345977826869612">Anunțuri</translation>
+<translation id="1919950603503897840">Selectează persoane de contact</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Fila selectată</translation>
 <translation id="1938981467853765413">Trimite feedback</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Conectați-vă la Chrome</translation>
 <translation id="32895400574683172">Notificările sunt permise</translation>
 <translation id="3295602654194328831">Ascunde informațiile</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Continui pentru descărcarea conținutului?</translation>
 <translation id="3328801116991980348">Informații despre site</translation>
 <translation id="3341058695485821946">Vezi ce volum de date ai economisit</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Adaugă</translation>
 <translation id="780301667611848630">Nu, mulțumesc</translation>
 <translation id="7810647596859435254">Deschide cu…</translation>
+<translation id="7821588508402923572">Economiile de date vor apărea aici</translation>
 <translation id="7832327313660264358">Datele pe care le sincronizezi cu Google și funcțiile pe care le folosești nu se vor schimba</translation>
 <translation id="7837721118676387834">Permite unui anumit site să redea automat videoclipuri cu sunetul dezactivat.</translation>
 <translation id="7846076177841592234">Anulează selecția</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
index c4129423..068f600d 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Приложение "<ph name="APP_NAME" />" откроется в Chrome. Продолжая, вы соглашаетесь с <ph name="BEGIN_LINK1" />Условиями использования<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />Примечанием о конфиденциальности<ph name="END_LINK2" /> Chrome.</translation>
 <translation id="189172778771606813">Закрыть панель навигации</translation>
 <translation id="1919345977826869612">Реклама</translation>
+<translation id="1919950603503897840">Выбрать контакты</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> из <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Выбранная вкладка</translation>
 <translation id="1938981467853765413">Оставить отзыв</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Войдите в Chrome</translation>
 <translation id="32895400574683172">Может отправлять уведомления</translation>
 <translation id="3295602654194328831">Скрыть информацию</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Скачать?</translation>
 <translation id="3328801116991980348">Информация о сайте</translation>
 <translation id="3341058695485821946">Узнайте, сколько трафика вы сэкономили</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Добавить</translation>
 <translation id="780301667611848630">Спасибо, не надо</translation>
 <translation id="7810647596859435254">Открыть с помощью...</translation>
+<translation id="7821588508402923572">Здесь появятся данные об экономии трафика</translation>
 <translation id="7832327313660264358">Данные, которые синхронизируются с серверами Google, и используемые вами функции останутся без изменений</translation>
 <translation id="7837721118676387834">Разрешить определенному сайту автоматически воспроизводить видео без звука.</translation>
 <translation id="7846076177841592234">Отменить выбор</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
index c7a27939..74848fb747 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Aplikacija <ph name="APP_NAME" /> se bo odprla v Chromu. Če nadaljujete, se strinjate s Chromovimi <ph name="BEGIN_LINK1" />pogoji storitve<ph name="END_LINK1" /> in <ph name="BEGIN_LINK2" />pravilnikom o zasebnosti<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Zapri predal za krmarjenje</translation>
 <translation id="1919345977826869612">Oglasi</translation>
+<translation id="1919950603503897840">Izbira stikov</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Izbrani zavihek</translation>
 <translation id="1938981467853765413">Povratne informacije</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Prijava v Google Chrome</translation>
 <translation id="32895400574683172">Obvestila so dovoljena</translation>
 <translation id="3295602654194328831">Skrij informacije</translation>
+<translation id="3298243779924642547">Osn. način</translation>
 <translation id="3303414029551471755">Ali želite prenesti vsebino?</translation>
 <translation id="3328801116991980348">Podatki o mestu</translation>
 <translation id="3341058695485821946">Oglejte si, koliko prenosa podatkov ste prihranili</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Dodaj</translation>
 <translation id="780301667611848630">Ne, hvala</translation>
 <translation id="7810647596859435254">Odpiranje z aplikacijo …</translation>
+<translation id="7821588508402923572">Prihranek pri količini prenesenih podatkov bo prikazan tukaj</translation>
 <translation id="7832327313660264358">Podatki, ki jih sinhronizirate z Googlom, in funkcije, ki jih uporabljate, se ne bodo spremenili</translation>
 <translation id="7837721118676387834">Dovoli samodejno predvajanje videoposnetkov z izklopljenim zvokom za določeno spletno mesto.</translation>
 <translation id="7846076177841592234">Prekliči izbor</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
index 97d83607..5c443e1 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> ће се отворити у Chrome-у. Ако наставите, прихватате Chrome <ph name="BEGIN_LINK1" />услове коришћења услуге<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />обавештење о приватности<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Затвори фиоку за навигацију</translation>
 <translation id="1919345977826869612">Огласи</translation>
+<translation id="1919950603503897840">Изаберите контакте</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Изабране картице</translation>
 <translation id="1938981467853765413">Наведите повратне информације</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Пријављивање у Chrome</translation>
 <translation id="32895400574683172">Обавештења су дозвољена</translation>
 <translation id="3295602654194328831">Сакриј информације</translation>
+<translation id="3298243779924642547">Лагано</translation>
 <translation id="3303414029551471755">Желите ли да наставите са преузимањем садржаја?</translation>
 <translation id="3328801116991980348">Информације о сајту</translation>
 <translation id="3341058695485821946">Погледајте колико сте података уштедели</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Додај</translation>
 <translation id="780301667611848630">Не, хвала</translation>
 <translation id="7810647596859435254">Отвори помоћу…</translation>
+<translation id="7821588508402923572">Уштеда података се приказује овде</translation>
 <translation id="7832327313660264358">Подаци које синхронизујете са Google-ом и функције које користите се неће мењати</translation>
 <translation id="7837721118676387834">Дозволите аутоплеј за видео снимке са искљученим звуком за одређени сајт.</translation>
 <translation id="7846076177841592234">Откажи избор</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
index 02b35b069..72eded7 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> öppnas i Chrome. Genom att fortsätta godkänner du Chromes <ph name="BEGIN_LINK1" />användarvillkor<ph name="END_LINK1" /> och <ph name="BEGIN_LINK2" />sekretesspolicy<ph name="END_LINK2" />.</translation>
 <translation id="189172778771606813">Stäng navigeringspanelen</translation>
 <translation id="1919345977826869612">Annonser</translation>
+<translation id="1919950603503897840">Välj kontakter</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Vald flik</translation>
 <translation id="1938981467853765413">Ge feedback</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Logga in i Chrome</translation>
 <translation id="32895400574683172">Aviseringar tillåts</translation>
 <translation id="3295602654194328831">Dölj info</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Vill du ladda ned innehållet?</translation>
 <translation id="3328801116991980348">Platsinformation</translation>
 <translation id="3341058695485821946">Se hur mycket data du har sparat</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Lägg till</translation>
 <translation id="780301667611848630">Nej tack</translation>
 <translation id="7810647596859435254">Öppna med …</translation>
+<translation id="7821588508402923572">Här visas hur mycket data du har sparat</translation>
 <translation id="7832327313660264358">Ingenting ändras i fråga om vilken data som synkroniseras med Google eller vilka funktioner du använder</translation>
 <translation id="7837721118676387834">Tillåt automatisk uppspelning av videor utan ljud för en specifik webbplats.</translation>
 <translation id="7846076177841592234">Rensa val</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
index 9784aae..bcf3984 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Itafungua <ph name="APP_NAME" /> katika Chrome. Kwa kuendelea, unakubali <ph name="BEGIN_LINK1" />Sheria na Masharti<ph name="END_LINK1" /> na <ph name="BEGIN_LINK2" />Ilani ya Faragha<ph name="END_LINK2" /> ya Chrome.</translation>
 <translation id="189172778771606813">Funga droo ya kusogeza</translation>
 <translation id="1919345977826869612">Matangazo</translation>
+<translation id="1919950603503897840">Chagua anwani</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Kichupo Kilichochaguliwa</translation>
 <translation id="1938981467853765413">Toa maoni</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Ingia katika Chrome</translation>
 <translation id="32895400574683172">Arifa zinaruhusiwa</translation>
 <translation id="3295602654194328831">Ficha Maelezo</translation>
+<translation id="3298243779924642547">Nyepesi</translation>
 <translation id="3303414029551471755">Ungependa kuendelea kupakua maudhui?</translation>
 <translation id="3328801116991980348">Maelezo ya tovuti</translation>
 <translation id="3341058695485821946">Ona kiasi cha data ulichookoa</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Ongeza</translation>
 <translation id="780301667611848630">La, asante</translation>
 <translation id="7810647596859435254">Fungua ukitumia...</translation>
+<translation id="7821588508402923572">Data unayookoa itaonekana hapa</translation>
 <translation id="7832327313660264358">Data unayosawazisha kwenye Google na vipengele unavyotumia havitabadilika</translation>
 <translation id="7837721118676387834">Ruhusu uchezaji wa video kiotomatiki bila sauti kwenye tovuti mahususi.</translation>
 <translation id="7846076177841592234">Ghairi uchaguzi</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
index 77d059f..21f60df 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> จะเปิดขึ้นใน Chrome การดำเนินการต่อแสดงว่าคุณยอมรับ<ph name="BEGIN_LINK1" />ข้อกำหนดในการให้บริการ<ph name="END_LINK1" />และ<ph name="BEGIN_LINK2" />ประกาศเกี่ยวกับนโยบายความเป็นส่วนตัว<ph name="END_LINK2" />ของ Chrome</translation>
 <translation id="189172778771606813">ปิดลิ้นชักการนำทาง</translation>
 <translation id="1919345977826869612">โฆษณา</translation>
+<translation id="1919950603503897840">เลือกรายชื่อติดต่อ</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">แท็บที่เลือก</translation>
 <translation id="1938981467853765413">แสดงความคิดเห็น</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">ลงชื่อเข้าใช้ Chrome</translation>
 <translation id="32895400574683172">อนุญาตให้แสดงการแจ้งเตือน</translation>
 <translation id="3295602654194328831">ซ่อนข้อมูล</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">ต้องการดำเนินการดาวน์โหลดเนื้อหานี้ไหม</translation>
 <translation id="3328801116991980348">ข้อมูลไซต์</translation>
 <translation id="3341058695485821946">ดูปริมาณอินเทอร์เน็ตที่คุณประหยัดไปได้</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">เพิ่ม</translation>
 <translation id="780301667611848630">ไม่ ขอบคุณ</translation>
 <translation id="7810647596859435254">เปิดด้วย…</translation>
+<translation id="7821588508402923572">การประหยัดอินเทอร์เน็ตของคุณจะแสดงที่นี่</translation>
 <translation id="7832327313660264358">ข้อมูลที่คุณซิงค์กับ Google และฟีเจอร์ที่ใช้จะไม่เปลี่ยนแปลง</translation>
 <translation id="7837721118676387834">อนุญาตให้เล่นวิดีโอที่ปิดเสียงโดยอัตโนมัติสำหรับบางเว็บไซต์</translation>
 <translation id="7846076177841592234">ยกเลิกการเลือก</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
index cac94b4..b2f815bc6 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> Chrome'da açılacak. Devam ederek Chrome'un <ph name="BEGIN_LINK1" />Hizmet Şartları<ph name="END_LINK1" />'nı ve <ph name="BEGIN_LINK2" />Gizlilik Uyarısı<ph name="END_LINK2" />'nı kabul etmiş olursunuz.</translation>
 <translation id="189172778771606813">Gezinme çekmecesini kapat</translation>
 <translation id="1919345977826869612">Reklamlar</translation>
+<translation id="1919950603503897840">Kişi seçin</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" /> / <ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Seçili Sekme</translation>
 <translation id="1938981467853765413">Geri bildirim gönder</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Chrome'da oturum aç</translation>
 <translation id="32895400574683172">Bildirimlere izin veriliyor</translation>
 <translation id="3295602654194328831">Bilgileri Gizle</translation>
+<translation id="3298243779924642547">Basit</translation>
 <translation id="3303414029551471755">İçeriği indirme işlemine başlansın mı?</translation>
 <translation id="3328801116991980348">Site bilgileri</translation>
 <translation id="3341058695485821946">Ne kadar veri tasarrufu sağladığınıza bakın</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Ekle</translation>
 <translation id="780301667611848630">Hayır, teşekkürler</translation>
 <translation id="7810647596859435254">Birlikte aç…</translation>
+<translation id="7821588508402923572">Veri tasarruflarınız burada görünür</translation>
 <translation id="7832327313660264358">Google ile senkronize ettiğiniz veriler ve kullandığınız özellikler değişmez</translation>
 <translation id="7837721118676387834">Belirli bir sitenin, sesi kapatılmış videoları otomatik olarak oynatmasına izin verin.</translation>
 <translation id="7846076177841592234">Seçimi iptal et</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
index e4b8d1d4..264cdb8 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">Додаток <ph name="APP_NAME" /> відкриватиметься в Chrome. Продовжуючи, ви приймаєте <ph name="BEGIN_LINK1" />Умови використання<ph name="END_LINK1" /> та <ph name="BEGIN_LINK2" />Примітку про конфіденційність<ph name="END_LINK2" /> Chrome.</translation>
 <translation id="189172778771606813">Закрити панель навігації</translation>
 <translation id="1919345977826869612">Оголошення</translation>
+<translation id="1919950603503897840">Виберіть контакти</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Вибрана вкладка</translation>
 <translation id="1938981467853765413">Надіслати відгук</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Вхід у Chrome</translation>
 <translation id="32895400574683172">Сповіщення дозволено</translation>
 <translation id="3295602654194328831">Сховати інформацію</translation>
+<translation id="3298243779924642547">Спрощена</translation>
 <translation id="3303414029551471755">Завантажити вміст?</translation>
 <translation id="3328801116991980348">Інформація про сайт</translation>
 <translation id="3341058695485821946">Перевірте обсяг збережених даних</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Додати</translation>
 <translation id="780301667611848630">Ні, дякую</translation>
 <translation id="7810647596859435254">Відкрити за допомогою…</translation>
+<translation id="7821588508402923572">Тут буде вказано обсяг заощадженого трафіку</translation>
 <translation id="7832327313660264358">Синхронізовані з Google дані та функції, що використовуються, не зміняться.</translation>
 <translation id="7837721118676387834">Дозволити автоматичне відтворення відео з вимкненим звуком для певних сайтів.</translation>
 <translation id="7846076177841592234">Скасувати вибір</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 9ae3a2d0..4013c42 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886"><ph name="APP_NAME" /> sẽ mở trong Chrome. Bằng việc tiếp tục, bạn đồng ý với <ph name="BEGIN_LINK1" />Điều khoản dịch vụ<ph name="END_LINK1" /> và <ph name="BEGIN_LINK2" />Thông báo bảo mật<ph name="END_LINK2" /> của Chrome.</translation>
 <translation id="189172778771606813">Đóng ngăn điều hướng</translation>
 <translation id="1919345977826869612">Quảng cáo</translation>
+<translation id="1919950603503897840">Chọn mục liên hệ</translation>
 <translation id="1923695749281512248"><ph name="BYTES_DOWNLOADED_WITH_UNITS" />/<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">Tab được chọn</translation>
 <translation id="1938981467853765413">Cung cấp phản hồi</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">Đăng nhập vào Chrome</translation>
 <translation id="32895400574683172">Cho phép thông báo</translation>
 <translation id="3295602654194328831">Ẩn thông tin</translation>
+<translation id="3298243779924642547">Lite</translation>
 <translation id="3303414029551471755">Tiếp tục tải xuống nội dung?</translation>
 <translation id="3328801116991980348">Thông tin về trang web</translation>
 <translation id="3341058695485821946">Xem lượng dữ liệu bạn đã tiết kiệm được</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">Thêm</translation>
 <translation id="780301667611848630">Không, cảm ơn</translation>
 <translation id="7810647596859435254">Mở bằng…</translation>
+<translation id="7821588508402923572">Mức tiết kiệm dữ liệu sẽ hiển thị tại đây</translation>
 <translation id="7832327313660264358">Dữ liệu bạn đồng bộ hóa với Google và các tính năng bạn sử dụng sẽ không thay đổi</translation>
 <translation id="7837721118676387834">Cho phép tự động phát video bị tắt tiếng cho trang web cụ thể.</translation>
 <translation id="7846076177841592234">Hủy chọn</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 5ee5ecc..9dbee09 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
@@ -120,6 +120,7 @@
 <translation id="1891331835972267886">「<ph name="APP_NAME" />」將在 Chrome 中開啟。繼續操作即表示您同意接受 Chrome 的《<ph name="BEGIN_LINK1" />服務條款<ph name="END_LINK1" />》和《<ph name="BEGIN_LINK2" />隱私權聲明<ph name="END_LINK2" />》。</translation>
 <translation id="189172778771606813">關閉導覽匣</translation>
 <translation id="1919345977826869612">廣告</translation>
+<translation id="1919950603503897840">選取聯絡人</translation>
 <translation id="1923695749281512248">已下載:<ph name="BYTES_DOWNLOADED_WITH_UNITS" />,總大小:<ph name="FILE_SIZE_WITH_UNITS" /></translation>
 <translation id="1933845786846280168">選取的分頁</translation>
 <translation id="1938981467853765413">提供意見</translation>
@@ -291,6 +292,7 @@
 <translation id="3282568296779691940">登入 Chrome</translation>
 <translation id="32895400574683172">允許顯示通知</translation>
 <translation id="3295602654194328831">隱藏資訊</translation>
+<translation id="3298243779924642547">精簡版本</translation>
 <translation id="3303414029551471755">繼續下載這項內容?</translation>
 <translation id="3328801116991980348">網站資訊</translation>
 <translation id="3341058695485821946">查看節省的數據用量</translation>
@@ -855,6 +857,7 @@
 <translation id="7791543448312431591">新增</translation>
 <translation id="780301667611848630">不用了,謝謝</translation>
 <translation id="7810647596859435254">選擇開啟工具…</translation>
+<translation id="7821588508402923572">你省下的數據流量會顯示在這裡</translation>
 <translation id="7832327313660264358">同步處理至 Google 的資料和你所使用的功能不會有所改變</translation>
 <translation id="7837721118676387834">允許特定網站自動播放靜音的影片。</translation>
 <translation id="7846076177841592234">全部取消選取</translation>
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceTest.java
index e0748ca..0ddc3d6 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceTest.java
@@ -16,7 +16,6 @@
 import static org.chromium.chrome.browser.download.DownloadSnackbarController.INVALID_NOTIFICATION_ID;
 
 import android.app.Notification;
-import android.support.annotation.IntDef;
 import android.support.test.filters.SmallTest;
 import android.support.v4.app.ServiceCompat;
 
@@ -30,8 +29,6 @@
 import org.chromium.chrome.browser.notifications.channels.ChannelDefinitions;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -52,22 +49,14 @@
      * Mimics behavior of DownloadForegroundService except for calls to the actual service.
      */
     public static class MockDownloadForegroundService extends DownloadForegroundService {
-        @IntDef({MethodID.START_FOREGROUND, MethodID.STOP_FOREGROUND_FLAGS,
-                MethodID.RELAUNCH_NOTIFICATION})
-        @Retention(RetentionPolicy.SOURCE)
-        public @interface MethodID {
-            int START_FOREGROUND = 0;
-            int STOP_FOREGROUND_FLAGS = 1;
-            int RELAUNCH_NOTIFICATION = 2;
-        }
+        static enum MethodID { START_FOREGROUND, STOP_FOREGROUND_FLAGS, RELAUNCH_NOTIFICATION }
 
         int mTargetSdk = 20;
         int mStopForegroundFlags = -1;
         int mRelaunchedNotificationId = INVALID_NOTIFICATION_ID;
         int mNextNotificationId = INVALID_NOTIFICATION_ID;
 
-        // Used for saving MethodID values.
-        List<Integer> mMethodCalls = new ArrayList<>();
+        List<MethodID> mMethodCalls = new ArrayList<>();
 
         // Clears stored flags/boolean/id/method calls. Call between tests runs.
         void clearStoredState() {
@@ -134,7 +123,7 @@
     @Feature({"Download"})
     public void testStartForeground_sdkAtLeast24() {
         mForegroundService.mTargetSdk = 24;
-        List<Integer> expectedMethodCalls =
+        List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
                 Arrays.asList(MockDownloadForegroundService.MethodID.START_FOREGROUND);
 
         // Test the case where there is no other pinned notification and the service starts.
@@ -176,7 +165,7 @@
     @SmallTest
     @Feature({"Download"})
     public void testStartForeground_sdkLessThan24() {
-        List<Integer> expectedMethodCalls =
+        List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
                 Arrays.asList(MockDownloadForegroundService.MethodID.START_FOREGROUND);
 
         // Test the case where there is no other pinned notification and the service starts.
@@ -215,7 +204,7 @@
     @Feature({"Download"})
     public void testStopForeground_sdkAtLeast24() {
         mForegroundService.mTargetSdk = 24;
-        List<Integer> expectedMethodCalls =
+        List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
                 Arrays.asList(MockDownloadForegroundService.MethodID.STOP_FOREGROUND_FLAGS);
 
         // When the service gets stopped with request to detach but not kill notification (pause).
@@ -275,7 +264,7 @@
         boolean isNotificationHandledProperly = mForegroundService.stopDownloadForegroundService(
                 DownloadForegroundService.StopForegroundNotification.DETACH_OR_PERSIST,
                 FAKE_DOWNLOAD_ID1, mNotification);
-        List<Integer> expectedMethodCalls =
+        List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
                 Arrays.asList(MockDownloadForegroundService.MethodID.STOP_FOREGROUND_FLAGS);
         assertEquals(expectedMethodCalls, mForegroundService.mMethodCalls);
         assertEquals(ServiceCompat.STOP_FOREGROUND_DETACH, mForegroundService.mStopForegroundFlags);
@@ -334,7 +323,7 @@
         boolean isNotificationHandledProperly = mForegroundService.stopDownloadForegroundService(
                 DownloadForegroundService.StopForegroundNotification.DETACH_OR_PERSIST,
                 FAKE_DOWNLOAD_ID1, mNotification);
-        List<Integer> expectedMethodCalls =
+        List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
                 Arrays.asList(MockDownloadForegroundService.MethodID.STOP_FOREGROUND_FLAGS);
         assertEquals(expectedMethodCalls, mForegroundService.mMethodCalls);
         assertEquals(ServiceCompat.STOP_FOREGROUND_DETACH, mForegroundService.mStopForegroundFlags);
@@ -392,7 +381,7 @@
         boolean isNotificationHandledProperly = mForegroundService.stopDownloadForegroundService(
                 DownloadForegroundService.StopForegroundNotification.DETACH_OR_PERSIST,
                 FAKE_DOWNLOAD_ID1, mNotification);
-        List<Integer> expectedMethodCalls =
+        List<MockDownloadForegroundService.MethodID> expectedMethodCalls =
                 Arrays.asList(MockDownloadForegroundService.MethodID.RELAUNCH_NOTIFICATION,
                         MockDownloadForegroundService.MethodID.STOP_FOREGROUND_FLAGS);
         assertEquals(expectedMethodCalls, mForegroundService.mMethodCalls);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadManagerServiceTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadManagerServiceTest.java
index 91527a9..3e68335 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadManagerServiceTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadManagerServiceTest.java
@@ -7,7 +7,6 @@
 import android.content.Context;
 import android.os.Handler;
 import android.os.HandlerThread;
-import android.support.annotation.IntDef;
 import android.support.test.filters.MediumTest;
 import android.support.test.filters.SmallTest;
 import android.util.Log;
@@ -38,8 +37,6 @@
 import org.chromium.content.browser.test.util.CriteriaHelper;
 import org.chromium.net.ConnectionType;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Queue;
@@ -66,23 +63,18 @@
         /**
          * The Ids of different methods in this mock object.
          */
-        @IntDef({MethodID.DOWNLOAD_SUCCESSFUL, MethodID.DOWNLOAD_FAILED, MethodID.DOWNLOAD_PROGRESS,
-                MethodID.DOWNLOAD_PAUSED, MethodID.DOWNLOAD_INTERRUPTED,
-                MethodID.CANCEL_DOWNLOAD_ID, MethodID.CLEAR_PENDING_DOWNLOADS})
-        @Retention(RetentionPolicy.SOURCE)
-        public @interface MethodID {
-            int DOWNLOAD_SUCCESSFUL = 0;
-            int DOWNLOAD_FAILED = 1;
-            int DOWNLOAD_PROGRESS = 2;
-            int DOWNLOAD_PAUSED = 3;
-            int DOWNLOAD_INTERRUPTED = 4;
-            int CANCEL_DOWNLOAD_ID = 5;
-            int CLEAR_PENDING_DOWNLOADS = 6;
+        static enum MethodID {
+            DOWNLOAD_SUCCESSFUL,
+            DOWNLOAD_FAILED,
+            DOWNLOAD_PROGRESS,
+            DOWNLOAD_PAUSED,
+            DOWNLOAD_INTERRUPTED,
+            CANCEL_DOWNLOAD_ID,
+            CLEAR_PENDING_DOWNLOADS
         }
 
-        // Use MethodID for Integer values.
-        private final Queue<Pair<Integer, Object>> mExpectedCalls =
-                new ConcurrentLinkedQueue<Pair<Integer, Object>>();
+        private final Queue<Pair<MethodID, Object>> mExpectedCalls =
+                new ConcurrentLinkedQueue<Pair<MethodID, Object>>();
 
         public MockDownloadNotifier() {
             expect(MethodID.CLEAR_PENDING_DOWNLOADS, null);
@@ -93,7 +85,7 @@
             this();
         }
 
-        public MockDownloadNotifier expect(@MethodID int method, Object param) {
+        public MockDownloadNotifier expect(MethodID method, Object param) {
             mExpectedCalls.clear();
             mExpectedCalls.add(getMethodSignature(method, param));
             return this;
@@ -109,21 +101,21 @@
                     });
         }
 
-        public MockDownloadNotifier andThen(@MethodID int method, Object param) {
+        public MockDownloadNotifier andThen(MethodID method, Object param) {
             mExpectedCalls.add(getMethodSignature(method, param));
             return this;
         }
 
-        static Pair<Integer, Object> getMethodSignature(@MethodID int methodId, Object param) {
-            return new Pair<Integer, Object>(methodId, param);
+        static Pair<MethodID, Object> getMethodSignature(MethodID methodId, Object param) {
+            return new Pair<MethodID, Object>(methodId, param);
         }
 
-        void assertCorrectExpectedCall(@MethodID int methodId, Object param, boolean matchParams) {
+        void assertCorrectExpectedCall(MethodID methodId, Object param, boolean matchParams) {
             Log.w("MockDownloadNotifier", "Called: " + methodId);
             Assert.assertFalse("Unexpected call:, no call expected, but got: " + methodId,
                     mExpectedCalls.isEmpty());
-            Pair<Integer, Object> actual = getMethodSignature(methodId, param);
-            Pair<Integer, Object> expected = mExpectedCalls.poll();
+            Pair<MethodID, Object> actual = getMethodSignature(methodId, param);
+            Pair<MethodID, Object> expected = mExpectedCalls.poll();
             Assert.assertEquals("Unexpected call", expected.first, actual.first);
             if (matchParams) {
                 Assert.assertTrue(
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java
index b6d445ff1..bfcd2778 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java
@@ -6,7 +6,6 @@
 
 import android.content.Context;
 import android.content.SharedPreferences;
-import android.support.annotation.IntDef;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
 
@@ -29,8 +28,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.SocketTimeoutException;
@@ -75,8 +72,7 @@
         private TimestampPair mTimestampsOnRegisterNewRequest;
         private TimestampPair mTimestampsOnSaveState;
 
-        MockOmahaDelegate(
-                Context context, DeviceType deviceType, @InstallSource int installSource) {
+        MockOmahaDelegate(Context context, DeviceType deviceType, InstallSource installSource) {
             mContext = context;
             mIsOnTablet = deviceType == DeviceType.TABLET;
             mIsInForeground = true;
@@ -147,40 +143,11 @@
         }
     }
 
-    @IntDef({InstallSource.SYSTEM_IMAGE, InstallSource.ORGANIC})
-    @Retention(RetentionPolicy.SOURCE)
-    private @interface InstallSource {
-        int SYSTEM_IMAGE = 0;
-        int ORGANIC = 1;
-    }
-
-    @IntDef({ServerResponse.SUCCESS, ServerResponse.FAILURE})
-    @Retention(RetentionPolicy.SOURCE)
-    private @interface ServerResponse {
-        int SUCCESS = 0;
-        int FAILURE = 1;
-    }
-
-    @IntDef({ConnectionStatus.RESPONDS, ConnectionStatus.TIMES_OUT})
-    @Retention(RetentionPolicy.SOURCE)
-    private @interface ConnectionStatus {
-        int RESPONDS = 0;
-        int TIMES_OUT = 1;
-    }
-
-    @IntDef({InstallEvent.SEND, InstallEvent.DONT_SEND})
-    @Retention(RetentionPolicy.SOURCE)
-    private @interface InstallEvent {
-        int SEND = 0;
-        int DONT_SEND = 1;
-    }
-
-    @IntDef({PostStatus.DUE, PostStatus.NOT_DUE})
-    @Retention(RetentionPolicy.SOURCE)
-    private @interface PostStatus {
-        int DUE = 0;
-        int NOT_DUE = 1;
-    }
+    private enum InstallSource { SYSTEM_IMAGE, ORGANIC }
+    private enum ServerResponse { SUCCESS, FAILURE }
+    private enum ConnectionStatus { RESPONDS, TIMES_OUT }
+    private enum InstallEvent { SEND, DONT_SEND }
+    private enum PostStatus { DUE, NOT_DUE }
 
     private AdvancedMockContext mContext;
     private MockOmahaDelegate mDelegate;
@@ -192,7 +159,7 @@
     }
 
     private MockOmahaBase createOmahaBase(
-            @ServerResponse int response, @ConnectionStatus int status, DeviceType deviceType) {
+            ServerResponse response, ConnectionStatus status, DeviceType deviceType) {
         MockOmahaBase omahaClient = new MockOmahaBase(mDelegate, response, status, deviceType);
         return omahaClient;
     }
@@ -216,8 +183,8 @@
         private final boolean mConnectionTimesOut;
         private final boolean mIsOnTablet;
 
-        public MockOmahaBase(OmahaDelegate delegate, @ServerResponse int serverResponse,
-                @ConnectionStatus int connectionStatus, DeviceType deviceType) {
+        public MockOmahaBase(OmahaDelegate delegate, ServerResponse serverResponse,
+                ConnectionStatus connectionStatus, DeviceType deviceType) {
             super(delegate);
             mSendValidResponse = serverResponse == ServerResponse.SUCCESS;
             mConnectionTimesOut = connectionStatus == ConnectionStatus.TIMES_OUT;
@@ -621,9 +588,9 @@
             mConnectionTimesOut = connectionTimesOut;
 
             if (sendValidResponse) {
-                mHTTPResponseCode = HttpURLConnection.HTTP_OK; // 200
+                mHTTPResponseCode = 200;
             } else {
-                mHTTPResponseCode = HttpURLConnection.HTTP_NOT_FOUND; // 404
+                mHTTPResponseCode = 404;
             }
         }
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsSheetVisibilityChangeObserverTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsSheetVisibilityChangeObserverTest.java
index 46229e2..340154cf 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsSheetVisibilityChangeObserverTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsSheetVisibilityChangeObserverTest.java
@@ -7,8 +7,10 @@
 import static org.junit.Assert.assertEquals;
 
 import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
+import static org.chromium.chrome.browser.suggestions.SuggestionsSheetVisibilityChangeObserverTest.TestVisibilityChangeObserver.Event.Hidden;
+import static org.chromium.chrome.browser.suggestions.SuggestionsSheetVisibilityChangeObserverTest.TestVisibilityChangeObserver.Event.InitialReveal;
+import static org.chromium.chrome.browser.suggestions.SuggestionsSheetVisibilityChangeObserverTest.TestVisibilityChangeObserver.Event.StateChange;
 
-import android.support.annotation.IntDef;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.espresso.Espresso;
 import android.support.test.espresso.action.ViewActions;
@@ -27,7 +29,6 @@
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.ntp.NtpUiCaptureTestData;
-import org.chromium.chrome.browser.suggestions.SuggestionsSheetVisibilityChangeObserverTest.TestVisibilityChangeObserver.Event;
 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
 import org.chromium.chrome.test.BottomSheetTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
@@ -35,8 +36,6 @@
 import org.chromium.chrome.test.util.browser.suggestions.SuggestionsDependenciesRule;
 import org.chromium.ui.test.util.UiRestriction;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.concurrent.TimeoutException;
 
 /**
@@ -76,16 +75,16 @@
     public void testHomeSheetVisibilityOnWebPage() {
         // Pull sheet to half. We use the animated variants to be closer to user triggered events.
         mActivityRule.setSheetState(BottomSheet.SheetState.HALF, true);
-        mObserver.expectEvents(Event.INITIAL_REVEAL, Event.STATE_CHANGE);
+        mObserver.expectEvents(InitialReveal, StateChange);
         mEventReporter.surfaceOpenedHelper.waitForCallback();
 
         // Pull sheet to full.
         mActivityRule.setSheetState(BottomSheet.SheetState.FULL, true);
-        mObserver.expectEvents(Event.STATE_CHANGE);
+        mObserver.expectEvents(StateChange);
 
         // close
         Espresso.pressBack();
-        mObserver.expectEvents(Event.HIDDEN, Event.STATE_CHANGE, Event.STATE_CHANGE);
+        mObserver.expectEvents(Hidden, StateChange, StateChange);
     }
 
     @Test
@@ -120,26 +119,19 @@
 
         // Changing the state of the sheet closes the omnibox suggestions and shows the home sheet.
         mActivityRule.setSheetState(BottomSheet.SheetState.HALF, true);
-        mObserver.expectEvents(Event.INITIAL_REVEAL, Event.STATE_CHANGE);
+        mObserver.expectEvents(InitialReveal, StateChange);
         mEventReporter.surfaceOpenedHelper.waitForCallback();
 
         // Back closes the bottom sheet.
         Espresso.pressBack();
-        mObserver.expectEvents(Event.HIDDEN, Event.STATE_CHANGE, Event.STATE_CHANGE);
+        mObserver.expectEvents(Hidden, StateChange, StateChange);
         assertEquals(BottomSheet.SheetState.PEEK, mActivityRule.getBottomSheet().getSheetState());
 
         mEventReporter.surfaceOpenedHelper.verifyCallCount();
     }
 
     static class TestVisibilityChangeObserver extends SuggestionsSheetVisibilityChangeObserver {
-        @IntDef({Event.INITIAL_REVEAL, Event.SHOWN, Event.HIDDEN, Event.STATE_CHANGE})
-        @Retention(RetentionPolicy.SOURCE)
-        public @interface Event {
-            int INITIAL_REVEAL = 0;
-            int SHOWN = 1;
-            int HIDDEN = 2;
-            int STATE_CHANGE = 3;
-        }
+        public enum Event { InitialReveal, Shown, Hidden, StateChange }
 
         private final ChromeActivity mActivity;
 
@@ -175,19 +167,19 @@
             mStateChangedHelper.notifyCalled();
         }
 
-        public void expectEvents(@Event int... events) {
-            for (@Event int e : events) {
+        public void expectEvents(Event... events) {
+            for (Event e : events) {
                 switch (e) {
-                    case Event.INITIAL_REVEAL:
+                    case InitialReveal:
                         mInitialRevealHelper.waitForCallback();
                         break;
-                    case Event.SHOWN:
+                    case Shown:
                         mShownHelper.waitForCallback();
                         break;
-                    case Event.HIDDEN:
+                    case Hidden:
                         mHiddenHelper.waitForCallback();
                         break;
-                    case Event.STATE_CHANGE:
+                    case StateChange:
                         mStateChangedHelper.waitForCallback();
                         break;
                 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/EmulatedVrController.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/EmulatedVrController.java
index eb0fddaa..78e7ea34 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/EmulatedVrController.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/EmulatedVrController.java
@@ -6,14 +6,11 @@
 
 import android.content.Context;
 import android.os.SystemClock;
-import android.support.annotation.IntDef;
 
 import com.google.vr.testframework.controller.ControllerTestApi;
 
 import org.junit.Assert;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -26,15 +23,7 @@
  *   - PairedControllerAddress: "FOO"
  */
 public class EmulatedVrController {
-    @IntDef({ScrollDirection.UP, ScrollDirection.DOWN, ScrollDirection.LEFT, ScrollDirection.RIGHT})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface ScrollDirection {
-        int UP = 0;
-        int DOWN = 1;
-        int LEFT = 2;
-        int RIGHT = 3;
-    }
-
+    public enum ScrollDirection { UP, DOWN, LEFT, RIGHT }
     private static final int FIRST_INPUT_DELAY_MS = 500;
     private final ControllerTestApi mApi;
     private boolean mHaveSentInputSinceEnteringVr;
@@ -136,23 +125,23 @@
      * @param speed how long to wait between steps in the scroll, with higher
      *        numbers resulting in a faster scroll.
      */
-    public void scroll(@ScrollDirection int direction, int steps, int speed) {
+    public void scroll(ScrollDirection direction, int steps, int speed) {
         float startX, startY, endX, endY;
         startX = startY = endX = endY = 0.5f;
         switch (direction) {
-            case ScrollDirection.UP:
+            case UP:
                 startY = 0.1f;
                 endY = 0.9f;
                 break;
-            case ScrollDirection.DOWN:
+            case DOWN:
                 startY = 0.9f;
                 endY = 0.1f;
                 break;
-            case ScrollDirection.LEFT:
+            case LEFT:
                 startX = 0.1f;
                 endX = 0.9f;
                 break;
-            case ScrollDirection.RIGHT:
+            case RIGHT:
                 startX = 0.9f;
                 endX = 0.1f;
                 break;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserNavigationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserNavigationTest.java
index 9aa203fa..96f6a97f 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserNavigationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserNavigationTest.java
@@ -11,7 +11,6 @@
 import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_VIEWER_DAYDREAM;
 
 import android.graphics.PointF;
-import android.support.annotation.IntDef;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.MediumTest;
 
@@ -44,8 +43,6 @@
 import org.chromium.content.browser.test.util.DOMUtils;
 import org.chromium.content_public.browser.WebContents;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.concurrent.TimeoutException;
 
@@ -75,28 +72,9 @@
     private static final String TEST_PAGE_WEBXR_URL =
             WebXrVrTestFramework.getFileUrlForHtmlTestFile("test_navigation_webxr_page");
 
-    @IntDef({Page.PAGE_2D, Page.PAGE_2D_2, Page.PAGE_WEBVR, Page.PAGE_WEBXR})
-    @Retention(RetentionPolicy.SOURCE)
-    private @interface Page {
-        int PAGE_2D = 0;
-        int PAGE_2D_2 = 1;
-        int PAGE_WEBVR = 2;
-        int PAGE_WEBXR = 3;
-    }
-
-    @IntDef({PresentationMode.NON_PRESENTING, PresentationMode.PRESENTING})
-    @Retention(RetentionPolicy.SOURCE)
-    private @interface PresentationMode {
-        int NON_PRESENTING = 0;
-        int PRESENTING = 1;
-    }
-
-    @IntDef({FullscreenMode.NON_FULLSCREENED, FullscreenMode.FULLSCREENED})
-    @Retention(RetentionPolicy.SOURCE)
-    private @interface FullscreenMode {
-        int NON_FULLSCREENED = 0;
-        int FULLSCREENED = 1;
-    }
+    private enum Page { PAGE_2D, PAGE_2D_2, PAGE_WEBVR, PAGE_WEBXR }
+    private enum PresentationMode { NON_PRESENTING, PRESENTING }
+    private enum FullscreenMode { NON_FULLSCREENED, FULLSCREENED }
 
     @Before
     public void setUp() throws Exception {
@@ -106,15 +84,15 @@
         VrBrowserTransitionUtils.forceEnterVrBrowserOrFail(POLL_TIMEOUT_LONG_MS);
     }
 
-    private String getUrl(@Page int page) {
+    private String getUrl(Page page) {
         switch (page) {
-            case Page.PAGE_2D:
+            case PAGE_2D:
                 return TEST_PAGE_2D_URL;
-            case Page.PAGE_2D_2:
+            case PAGE_2D_2:
                 return TEST_PAGE_2D_2_URL;
-            case Page.PAGE_WEBVR:
+            case PAGE_WEBVR:
                 return TEST_PAGE_WEBVR_URL;
-            case Page.PAGE_WEBXR:
+            case PAGE_WEBXR:
                 return TEST_PAGE_WEBXR_URL;
             default:
                 throw new UnsupportedOperationException("Don't know page type " + page);
@@ -126,7 +104,7 @@
      * {@link ChromeActivityTestRule#loadUrl loadUrl} but makes sure page initiates the
      * navigation. This is desirable since we are testing navigation transitions end-to-end.
      */
-    private void navigateTo(final @Page int to) throws InterruptedException {
+    private void navigateTo(final Page to) throws InterruptedException {
         ChromeTabUtils.waitForTabPageLoaded(mTestRule.getActivity().getActivityTab(), () -> {
             mVrBrowserTestFramework.runJavaScriptOrFail(
                     "window.location.href = '" + getUrl(to) + "';", POLL_TIMEOUT_SHORT_MS);
@@ -140,8 +118,8 @@
         Assert.assertTrue("Failed to enter fullscreen", DOMUtils.isFullscreen(webContents));
     }
 
-    private void assertState(WebContents wc, @Page int page, @PresentationMode int presentationMode,
-            @FullscreenMode int fullscreenMode) throws InterruptedException, TimeoutException {
+    private void assertState(WebContents wc, Page page, PresentationMode presentationMode,
+            FullscreenMode fullscreenMode) throws InterruptedException, TimeoutException {
         Assert.assertTrue("Browser is not in VR", VrShellDelegate.isInVr());
         Assert.assertEquals("Browser is not on correct web site", getUrl(page), wc.getVisibleUrl());
         Assert.assertEquals("Browser's presentation mode does not match expectation",
@@ -214,7 +192,7 @@
         impl2dToWeb(Page.PAGE_WEBXR, mWebXrVrTestFramework);
     }
 
-    private void impl2dToWeb(@Page int page, WebXrVrTestFramework framework)
+    private void impl2dToWeb(Page page, WebXrVrTestFramework framework)
             throws InterruptedException, TimeoutException {
         framework.loadUrlAndAwaitInitialization(TEST_PAGE_2D_URL, PAGE_LOAD_TIMEOUT_S);
 
@@ -247,7 +225,7 @@
         impl2dFullscreenToWeb(Page.PAGE_WEBXR, mWebXrVrTestFramework);
     }
 
-    private void impl2dFullscreenToWeb(@Page int page, WebXrVrTestFramework framework)
+    private void impl2dFullscreenToWeb(Page page, WebXrVrTestFramework framework)
             throws InterruptedException, TimeoutException {
         framework.loadUrlAndAwaitInitialization(TEST_PAGE_2D_URL, PAGE_LOAD_TIMEOUT_S);
         enterFullscreenOrFail(framework.getFirstTabWebContents());
@@ -281,7 +259,7 @@
         webTo2dImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
     }
 
-    private void webTo2dImpl(@Page int page, WebXrVrTestFramework framework)
+    private void webTo2dImpl(Page page, WebXrVrTestFramework framework)
             throws InterruptedException, TimeoutException {
         framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
 
@@ -314,7 +292,7 @@
         webToWebImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
     }
 
-    private void webToWebImpl(@Page int page, WebXrVrTestFramework framework)
+    private void webToWebImpl(Page page, WebXrVrTestFramework framework)
             throws InterruptedException, TimeoutException {
         framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
 
@@ -347,7 +325,7 @@
         webPresentingTo2dImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
     }
 
-    private void webPresentingTo2dImpl(@Page int page, WebXrVrTestFramework framework)
+    private void webPresentingTo2dImpl(Page page, WebXrVrTestFramework framework)
             throws InterruptedException, TimeoutException {
         framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
         framework.enterSessionWithUserGestureOrFail();
@@ -381,7 +359,7 @@
         webPresentingToWebImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
     }
 
-    private void webPresentingToWebImpl(@Page int page, WebXrVrTestFramework framework)
+    private void webPresentingToWebImpl(Page page, WebXrVrTestFramework framework)
             throws InterruptedException, TimeoutException {
         framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
         framework.enterSessionWithUserGestureOrFail();
@@ -415,7 +393,7 @@
         webFullscreenTo2dImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
     }
 
-    private void webFullscreenTo2dImpl(@Page int page, WebXrVrTestFramework framework)
+    private void webFullscreenTo2dImpl(Page page, WebXrVrTestFramework framework)
             throws InterruptedException, TimeoutException {
         framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
         enterFullscreenOrFail(framework.getFirstTabWebContents());
@@ -449,7 +427,7 @@
         webFullscreenToWebImpl(Page.PAGE_WEBXR, mWebXrVrTestFramework);
     }
 
-    private void webFullscreenToWebImpl(@Page int page, WebXrVrTestFramework framework)
+    private void webFullscreenToWebImpl(Page page, WebXrVrTestFramework framework)
             throws InterruptedException, TimeoutException {
         framework.loadUrlAndAwaitInitialization(getUrl(page), PAGE_LOAD_TIMEOUT_S);
         enterFullscreenOrFail(framework.getFirstTabWebContents());
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/XrTestFramework.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/XrTestFramework.java
index 1e84bff..ace155cd 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/XrTestFramework.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/XrTestFramework.java
@@ -15,9 +15,10 @@
 import org.chromium.chrome.browser.UrlConstants;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.test.ChromeActivityTestRule;
+import org.chromium.content.browser.test.RenderFrameHostTestExt;
 import org.chromium.content.browser.test.util.CriteriaHelper;
 import org.chromium.content.browser.test.util.JavaScriptUtils;
-import org.chromium.content_public.browser.RenderFrameHost;
+import org.chromium.content.browser.test.util.WebContentsUtils;
 import org.chromium.content_public.browser.WebContents;
 
 import java.lang.annotation.Retention;
@@ -345,12 +346,12 @@
 
     private static String runJavaScriptInFrameInternal(
             String js, int timeout, final WebContents webContents, boolean failOnTimeout) {
-        final AtomicReference<RenderFrameHost> rfh = new AtomicReference<RenderFrameHost>();
-        ThreadUtils.runOnUiThreadBlocking(() -> { rfh.set(webContents.getFocusedFrame()); });
-        Assert.assertTrue("Did not get a focused frame", rfh.get() != null);
+        RenderFrameHostTestExt rfh = ThreadUtils.runOnUiThreadBlockingNoException(
+                () -> new RenderFrameHostTestExt(WebContentsUtils.getFocusedFrame(webContents)));
+        Assert.assertTrue("Did not get a focused frame", rfh != null);
         final CountDownLatch latch = new CountDownLatch(1);
         final AtomicReference<String> result = new AtomicReference<String>();
-        rfh.get().executeJavaScriptForTests(js, (String r) -> {
+        rfh.executeJavaScriptForTests(js, (String r) -> {
             result.set(r);
             latch.countDown();
         });
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/ChromeTabbedActivityVrTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/ChromeTabbedActivityVrTestRule.java
index c3b6baa..b7855b4 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/ChromeTabbedActivityVrTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/ChromeTabbedActivityVrTestRule.java
@@ -37,7 +37,7 @@
     }
 
     @Override
-    public @SupportedActivity int getRestriction() {
+    public SupportedActivity getRestriction() {
         return SupportedActivity.CTA;
     }
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/ChromeTabbedActivityXrTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/ChromeTabbedActivityXrTestRule.java
index 742be80..d90cbcc 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/ChromeTabbedActivityXrTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/ChromeTabbedActivityXrTestRule.java
@@ -28,7 +28,7 @@
     }
 
     @Override
-    public @SupportedActivity int getRestriction() {
+    public SupportedActivity getRestriction() {
         return SupportedActivity.CTA;
     }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/CustomTabActivityVrTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/CustomTabActivityVrTestRule.java
index d1fc3d5b..8e6d51be 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/CustomTabActivityVrTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/CustomTabActivityVrTestRule.java
@@ -41,7 +41,7 @@
     }
 
     @Override
-    public @SupportedActivity int getRestriction() {
+    public SupportedActivity getRestriction() {
         return SupportedActivity.CCT;
     }
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/CustomTabActivityXrTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/CustomTabActivityXrTestRule.java
index 493d448..690c725 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/CustomTabActivityXrTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/CustomTabActivityXrTestRule.java
@@ -31,7 +31,7 @@
     }
 
     @Override
-    public @SupportedActivity int getRestriction() {
+    public SupportedActivity getRestriction() {
         return SupportedActivity.CCT;
     }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/HeadTrackingMode.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/HeadTrackingMode.java
index 8fc90b4..060c8f7 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/HeadTrackingMode.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/HeadTrackingMode.java
@@ -4,8 +4,6 @@
 
 package org.chromium.chrome.browser.vr.rules;
 
-import android.support.annotation.IntDef;
-
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -32,19 +30,16 @@
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
 public @interface HeadTrackingMode {
-    @IntDef({SupportedMode.FROZEN, SupportedMode.SWEEP, SupportedMode.ROTATE,
-            SupportedMode.CIRCLE_STRAFE, SupportedMode.MOTION_SICKNESS})
-    @Retention(RetentionPolicy.RUNTIME)
-    public @interface SupportedMode {
-        int FROZEN = 0; // Locked looking straight forward.
-        int SWEEP = 1; // Rotates back and forth horizontally in a 180 degree arc.
-        int ROTATE = 2; // Rotates 360 degrees.
-        int CIRCLE_STRAFE = 3; // Rotates 360 degrees, and if 6DOF is supported, changes position.
-        int MOTION_SICKNESS = 4; // Moves in a figure-eight-like pattern.
+    public enum SupportedMode {
+        FROZEN, // Locked looking straight forward.
+        SWEEP, // Rotates back and forth horizontally in a 180 degree arc.
+        ROTATE, // Rotates 360 degrees.
+        CIRCLE_STRAFE, // Rotates 360 degrees, and if 6DOF is supported, changes position.
+        MOTION_SICKNESS // Moves in a figure-eight-like pattern.
     }
 
     /**
      * @return The supported mode.
      */
-    public @SupportedMode int value();
+    public SupportedMode value();
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/WebappActivityVrTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/WebappActivityVrTestRule.java
index d4ec32cb..8b5a199 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/WebappActivityVrTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/WebappActivityVrTestRule.java
@@ -35,7 +35,7 @@
     }
 
     @Override
-    public @SupportedActivity int getRestriction() {
+    public SupportedActivity getRestriction() {
         return SupportedActivity.WAA;
     }
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/WebappActivityXrTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/WebappActivityXrTestRule.java
index 76078ff..57193f4 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/WebappActivityXrTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/WebappActivityXrTestRule.java
@@ -29,7 +29,7 @@
     }
 
     @Override
-    public @SupportedActivity int getRestriction() {
+    public SupportedActivity getRestriction() {
         return SupportedActivity.WAA;
     }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrActivityRestriction.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrActivityRestriction.java
index 93bf892..e3a16063 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrActivityRestriction.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrActivityRestriction.java
@@ -4,8 +4,6 @@
 
 package org.chromium.chrome.browser.vr.rules;
 
-import android.support.annotation.IntDef;
-
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -27,18 +25,15 @@
 @Target({ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
 public @interface XrActivityRestriction {
-    @IntDef({SupportedActivity.CTA, SupportedActivity.CCT, SupportedActivity.WAA,
-            SupportedActivity.ALL})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface SupportedActivity {
-        int CTA = 0; // ChromeTabbedActivity/Normal Chrome
-        int CCT = 1; // CustomTabActivity/Chrome Custom Tab
-        int WAA = 2; // WebappActivity/Progressive Web App
-        int ALL = 3; // Run in all of the above
+    public enum SupportedActivity {
+        CTA, // ChromeTabbedActivity/Normal Chrome
+        CCT, // CustomTabActivity/Chrome Custom Tab
+        WAA, // WebappActivity/Progressive Web App
+        ALL // Run in all of the above
     }
 
     /**
      * @return A list of activity restrictions.
      */
-    public @SupportedActivity int[] value();
+    public SupportedActivity[] value();
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrActivityRestrictionRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrActivityRestrictionRule.java
index f23208b..ffb6c02 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrActivityRestrictionRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrActivityRestrictionRule.java
@@ -17,9 +17,9 @@
  * one of the supported Activity types for the test.
  */
 public class XrActivityRestrictionRule implements TestRule {
-    private @SupportedActivity int mCurrentRestriction;
+    private SupportedActivity mCurrentRestriction;
 
-    public XrActivityRestrictionRule(@SupportedActivity int currentRestriction) {
+    public XrActivityRestrictionRule(SupportedActivity currentRestriction) {
         mCurrentRestriction = currentRestriction;
     }
 
@@ -35,8 +35,7 @@
             return generateIgnoreStatement();
         }
 
-        @SupportedActivity
-        int[] activities = annotation.value();
+        SupportedActivity[] activities = annotation.value();
         for (int i = 0; i < activities.length; i++) {
             if (activities[i] == mCurrentRestriction || activities[i] == SupportedActivity.ALL) {
                 return base;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrTestRule.java
index 87b373b..35809e0f 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/rules/XrTestRule.java
@@ -15,5 +15,5 @@
      * @return The XrActivityRestriction.SupportedActivity that this rule is restricted to running
      *         in.
      */
-    public @SupportedActivity int getRestriction();
+    public SupportedActivity getRestriction();
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/HeadTrackingUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/HeadTrackingUtils.java
index b06237f4..1c9daf5 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/HeadTrackingUtils.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/HeadTrackingUtils.java
@@ -148,7 +148,7 @@
      * @param rule The VrTestRule used by the current test case.
      * @param mode The HeadTrackingMode.SupportedMode value to set the fake head tracker mode to.
      */
-    public static void applyHeadTrackingMode(VrTestRule rule, @SupportedMode int mode) {
+    public static void applyHeadTrackingMode(VrTestRule rule, SupportedMode mode) {
         applyHeadTrackingModeInternal(rule, mode);
         // TODO(bsheedy): Remove this sleep if the head tracking service ever exposes a way to be
         // notified when a setting has been applied.
@@ -194,24 +194,24 @@
         InstrumentationRegistry.getContext().startService(typeIntent);
     }
 
-    public static String supportedModeToString(@SupportedMode int mode) {
+    public static String supportedModeToString(SupportedMode mode) {
         switch (mode) {
-            case SupportedMode.FROZEN:
+            case FROZEN:
                 return "frozen";
-            case SupportedMode.SWEEP:
+            case SWEEP:
                 return "sweep";
-            case SupportedMode.ROTATE:
+            case ROTATE:
                 return "rotate";
-            case SupportedMode.CIRCLE_STRAFE:
+            case CIRCLE_STRAFE:
                 return "circle_strafe";
-            case SupportedMode.MOTION_SICKNESS:
+            case MOTION_SICKNESS:
                 return "motion_sickness";
             default:
                 return "unknown_mode";
         }
     }
 
-    private static void applyHeadTrackingModeInternal(VrTestRule rule, @SupportedMode int mode) {
+    private static void applyHeadTrackingModeInternal(VrTestRule rule, SupportedMode mode) {
         restartHeadTrackingServiceIfNecessary(rule);
         // Set the fake tracker mode to the given value.
         Intent modeIntent = new Intent(ACTION_SET_FAKE_TRACKER_MODE);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/VrInfoBarUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/VrInfoBarUtils.java
index 53862a6..c510bfd 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/VrInfoBarUtils.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/VrInfoBarUtils.java
@@ -7,16 +7,12 @@
 import static org.chromium.chrome.browser.vr.XrTestFramework.POLL_CHECK_INTERVAL_SHORT_MS;
 import static org.chromium.chrome.browser.vr.XrTestFramework.POLL_TIMEOUT_SHORT_MS;
 
-import android.support.annotation.IntDef;
-
 import org.chromium.base.ThreadUtils;
 import org.chromium.chrome.browser.infobar.InfoBar;
 import org.chromium.chrome.test.ChromeActivityTestRule;
 import org.chromium.chrome.test.util.InfoBarUtil;
 import org.chromium.content.browser.test.util.CriteriaHelper;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.List;
 
 /**
@@ -24,12 +20,8 @@
  * a high level.
  */
 public class VrInfoBarUtils {
-    @IntDef({Button.PRIMARY, Button.SECONDARY})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface Button {
-        int PRIMARY = 0;
-        int SECONDARY = 1;
-    }
+    public enum Button { PRIMARY, SECONDARY }
+    ;
 
     /**
      * Determines whether InfoBars are present in the current activity.
@@ -51,12 +43,12 @@
      * @param rule The ChromeActivityTestRule to get the InfoBars from.
      */
     @SuppressWarnings("unchecked")
-    public static void clickInfoBarButton(final @Button int button, ChromeActivityTestRule rule) {
+    public static void clickInfoBarButton(final Button button, ChromeActivityTestRule rule) {
         if (!isInfoBarPresent(rule)) return;
         final List<InfoBar> infoBars = rule.getInfoBars();
         ThreadUtils.runOnUiThreadBlocking(() -> {
             switch (button) {
-                case Button.PRIMARY:
+                case PRIMARY:
                     InfoBarUtil.clickPrimaryButton(infoBars.get(0));
                     break;
                 default:
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/XrTestRuleUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/XrTestRuleUtils.java
index 4bb3f4f..7ff4463 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/XrTestRuleUtils.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/XrTestRuleUtils.java
@@ -83,15 +83,15 @@
      * @param activity The SupportedActivity value to convert to a String.
      * @return A String representation of the activity.
      */
-    public static String supportedActivityToString(@SupportedActivity int activity) {
+    public static String supportedActivityToString(SupportedActivity activity) {
         switch (activity) {
-            case SupportedActivity.CTA:
+            case CTA:
                 return "ChromeTabbedActivity";
-            case SupportedActivity.CCT:
+            case CCT:
                 return "CustomTabActivity";
-            case SupportedActivity.WAA:
+            case WAA:
                 return "WebappActivity";
-            case SupportedActivity.ALL:
+            case ALL:
                 return "AllActivities";
             default:
                 return "UnknownActivity";
diff --git a/chrome/android/modules/vr/vr_module_tmpl.gni b/chrome/android/modules/vr/vr_module_tmpl.gni
index fbe0a95..5e413e6 100644
--- a/chrome/android/modules/vr/vr_module_tmpl.gni
+++ b/chrome/android/modules/vr/vr_module_tmpl.gni
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//base/android/linker/config.gni")
 import("//build/config/android/rules.gni")
 import("//device/vr/buildflags/buildflags.gni")
 
@@ -30,5 +31,6 @@
       "//chrome/browser/android/vr:java",
     ]
     proguard_enabled = !is_java_debug
+    uncompress_shared_libraries = chromium_linker_supported
   }
 }
diff --git a/chrome/android/profiles/newest.txt b/chrome/android/profiles/newest.txt
index 37f038ec..335c9bd 100644
--- a/chrome/android/profiles/newest.txt
+++ b/chrome/android/profiles/newest.txt
@@ -1 +1 @@
-chromeos-chrome-amd64-70.0.3528.0_rc-r1.afdo.bz2
\ No newline at end of file
+chromeos-chrome-amd64-70.0.3529.0_rc-r1.afdo.bz2
\ 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 c739505..ea039b4 100644
--- a/chrome/app/resources/chromium_strings_am.xtb
+++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">በሚተዳደር መለያ እየገቡ ነው፣ እና አስተዳዳሪው በእርስዎ Chromium መገለጫ ላይ ቁጥጥር እየሰጡት ነው። እንደ እርስዎ  መተግበሪያዎች፣ ዕልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌሎች ቅንብሮች ያሉ የእርስዎ Chromium ውሂብ እስከ መጨረሻው ከ<ph name="USER_NAME" /> ጋር የተያያዙ ይሆናሉ። ይህን ውሂብ በGoogle የመለያዎች Dashboard አማካኝነት ሊሰርዙት ይችላሉ፣ ነገር ግን ይህን ውሂብ ከሌላ መለያ ጋር ሊያጎዳኙት አይችሉም። <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromiumን በማዘመን ላይ (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">አዲስ የChromium ስሪት አለ።</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb
index ba5aeca2..e2f1bea 100644
--- a/chrome/app/resources/chromium_strings_ar.xtb
+++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">‏أنت تسجل الدخول باستخدام حساب يخضع للإدارة وتتيح للمشرف إمكانية التحكم في ملفك الشخصي على Chromium. وستكون بياناتك في Chromium مثل تطبيقاتك وإشاراتك المرجعية وسجلك وكلمات المرور التابعة لك والإعدادات الأخرى مرتبطة دائمًا بالمستخدم <ph name="USER_NAME" />. ستتمكن من حذف هذه البيانات عبر لوحة تحكم حسابات Google، ولكنك لن تتمكن من إقران هذه البيانات بحساب آخر. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">‏جارٍ تحديث Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">‏يتوفر إصدار جديد من Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_bg.xtb b/chrome/app/resources/chromium_strings_bg.xtb
index 1c7948c1..6066459 100644
--- a/chrome/app/resources/chromium_strings_bg.xtb
+++ b/chrome/app/resources/chromium_strings_bg.xtb
@@ -116,6 +116,7 @@
 <translation id="5358375970380395591">Влизате с управляван профил и давате на администратора му контрол над потребителския си профил в Chromium. Данните ви там, като например приложения, отметки, история, пароли и други настройки, ще се свържат за постоянно с/ъс <ph name="USER_NAME" />. Ще можете да ги изтриете чрез таблото за управление на Google Профили, но не и да ги свържете с друг профил. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium се актуализира (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Налице е нова версия на Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb
index 2b88a4b..eb3e501d 100644
--- a/chrome/app/resources/chromium_strings_ca.xtb
+++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Esteu a punt d'iniciar la sessió amb un compte gestionat i d'atorgar el control del vostre perfil de Chromium a l'administrador corresponent. Les dades de Chromium, com ara aplicacions, adreces d'interès, historial, contrasenyes i altres configuracions, s'enllaçaran permanentment amb <ph name="USER_NAME" />. Podreu suprimir aquestes dades mitjançant el Tauler de Comptes de Google, però no les podreu associar amb un altre compte. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">S'està actualitzant Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Hi ha disponible una versió nova de Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb
index c871f73..caa191aa 100644
--- a/chrome/app/resources/chromium_strings_cs.xtb
+++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">Přihlašujete se pomocí spravovaného účtu a poskytujete jeho správci kontrolu nad vaším profilem prohlížeče Chromium. Vaše údaje prohlížeče Chromium, například aplikace, záložky, historie, hesla a jiná nastavení, budou trvale přidružena k účtu <ph name="USER_NAME" />. Tyto údaje budete moci smazat pomocí Hlavního panelu v Účtech Google, ale nebudete je moci přidružit k jinému účtu. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Aktualizace prohlížeče Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">K dispozici je nová verze prohlížeče Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb
index d32a3fa..ae6543b 100644
--- a/chrome/app/resources/chromium_strings_da.xtb
+++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Du er ved at logge ind med en administreret konto og giver dens administrator kontrol over din profil i Chromium. Dine Chromium-data, f.eks. dine apps, bogmærker, historikdata, adgangskoder og andre indstillinger, knyttes permanent til <ph name="USER_NAME" />. Du kan slette disse data via betjeningspanelet for Google Konti, men du kan ikke knytte disse data til en anden konto. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Opdaterer Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Der er en ny version af Chromium til rådighed.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_de.xtb b/chrome/app/resources/chromium_strings_de.xtb
index 5936469..c86efed 100644
--- a/chrome/app/resources/chromium_strings_de.xtb
+++ b/chrome/app/resources/chromium_strings_de.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Sie melden sich mit einem verwalteten Konto an und ermöglichen dessen Administrator Zugriff auf Ihr Chromium-Profil. Ihre Chromium-Daten, wie Apps, Lesezeichen, Verlauf, Passwörter und andere Einstellungen, werden dauerhaft mit <ph name="USER_NAME" /> verknüpft. Sie können diese Daten über das Google Konten-Dashboard löschen, aber nicht mit einem anderen Konto verknüpfen. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium wird aktualisiert (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Eine neue Version von Chromium ist verfügbar.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb
index 7c67490..fd9bcc2 100644
--- a/chrome/app/resources/chromium_strings_el.xtb
+++ b/chrome/app/resources/chromium_strings_el.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Είστε συνδεδεμένοι με έναν διαχειριζόμενο λογαριασμό και παραχωρείτε στο διαχειριστή του τον έλεγχο του προφίλ σας στο Chromium. Τα δεδομένα σας στο Chromium, όπως οι εφαρμογές, οι σελιδοδείκτες, το ιστορικό, οι κωδικοί πρόσβασης και άλλες ρυθμίσεις θα συνδεθούν μόνιμα με το όνομα χρήστη <ph name="USER_NAME" />. Θα έχετε τη δυνατότητα να διαγράψετε αυτά τα δεδομένα μέσω του Πίνακα ελέγχου των Λογαριασμών Google, αλλά δεν θα μπορείτε να τα συσχετίσετε με άλλο λογαριασμό. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Ενημέρωση του Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Μια νέα έκδοση του Chromium είναι διαθέσιμη.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_es-419.xtb b/chrome/app/resources/chromium_strings_es-419.xtb
index 6166006..9f3e406 100644
--- a/chrome/app/resources/chromium_strings_es-419.xtb
+++ b/chrome/app/resources/chromium_strings_es-419.xtb
@@ -116,6 +116,7 @@
 <translation id="5358375970380395591">Estás por acceder con una cuenta administrada, lo que significa que proporcionarás al administrador el control sobre tu perfil de Chromium. Tus datos de Chromium, como las aplicaciones, los favoritos, el historial, las contraseñas y otros parámetros de configuración quedarán vinculados a <ph name="USER_NAME" /> de forma permanente. Podrás eliminar estos datos a través del Panel de control de Cuentas de Google, pero no podrás asociarlos a otra cuenta. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Actualizando Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Hay una nueva versión de Chromium disponible.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_es.xtb b/chrome/app/resources/chromium_strings_es.xtb
index 596b47d..463fcae96 100644
--- a/chrome/app/resources/chromium_strings_es.xtb
+++ b/chrome/app/resources/chromium_strings_es.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">Vas a iniciar sesión con una cuenta gestionada, lo que significa que proporcionarás a su administrador control sobre tu perfil de Chromium. Tus datos de Chromium como, por ejemplo, tus aplicaciones, tus marcadores, tu historial, tus contraseñas y otras opciones se vincularán de forma permanente a la cuenta <ph name="USER_NAME" />. Podrás eliminar estos datos a través del Panel de control de cuentas de Google, pero no podrás asociarlos a otra cuenta. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Actualizando Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Hay una nueva versión de Chromium disponible.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_et.xtb b/chrome/app/resources/chromium_strings_et.xtb
index c753164..6ecfbbbf 100644
--- a/chrome/app/resources/chromium_strings_et.xtb
+++ b/chrome/app/resources/chromium_strings_et.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Logite sisse hallatud kontoga ja annate selle administraatorile üle Chromiumi profiili juhtimise. Teie Chromiumi andmed, näiteks rakendused, järjehoidjad, ajalugu, paroolid ja muud seaded seotakse jäädavalt kasutajaga <ph name="USER_NAME" />. Saate need andmed kustutada Google'i kontode juhtpaneeli kaudu, kuid te ei saa neid seostada teise kontoga. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromiumi värskendamine (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Chromiumi uus versioon on saadaval.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb
index a043061..f84671e 100644
--- a/chrome/app/resources/chromium_strings_fa.xtb
+++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -117,6 +117,7 @@
 <translation id="5358375970380395591">‏شما با حساب مدیریت‌شده وارد سیستم می‌شوید و به سرپرست آن اجازه کنترل بر نمایه Chromium خود را می‌دهید. داده‌های Chromium شما شامل برنامه‌ها، نشانک‌ها، سابقه، گذرواژه‌ها و سایر تنظیمات برای همیشه به <ph name="USER_NAME" /> مرتبط خواهد شد. می‌توانید این داده‌ها را از طریق داشبورد حساب‌های Google حذف کنید اما نمی‌توانید این داده‌ها را به حساب دیگری مرتبط سازید. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">‏درحال به‌روزرسانی Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">‏نسخه جدیدی از Chromium موجود است.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_fi.xtb b/chrome/app/resources/chromium_strings_fi.xtb
index 71c8416..fce002327 100644
--- a/chrome/app/resources/chromium_strings_fi.xtb
+++ b/chrome/app/resources/chromium_strings_fi.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Olet kirjautumassa sisään hallinnoidulla tilillä ja antamassa tilin järjestelmänvalvojalle oikeuden hallita Chromium-profiiliasi. Chromium-tietosi, kuten sovelluksesi, kirjanmerkkisi, historiasi, salasanasi ja muut asetuksesi, yhdistetään pysyvästi käyttäjätiliin <ph name="USER_NAME" />. Voit poistaa nämä tiedot Google-tilien Hallintapaneelissa, mutta et voi liittää tietoja toiseen tiliin. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Päivitetään Chromiumia (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Chromiumista on saatavilla uusi versio.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb
index 2db2998..996bda6 100644
--- a/chrome/app/resources/chromium_strings_fil.xtb
+++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">Nagsa-sign in ka gamit ang isang pinamamahalaang account at nagbibigay sa administrator nito ng kontrol sa iyong profile sa Chromium. Permanenteng mauugnay ang iyong data sa Chromium, gaya ng iyong apps, mga bookmark, kasaysayan, password, at iba pang mga setting sa <ph name="USER_NAME" />. Matatanggal mo ang data na ito sa Google Accounts Dashboard, ngunit hindi mo maiuugnay ang data na ito sa isa pang account. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Ina-update ang Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">May available na isang bagong bersyon ng Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb
index 1f07df6..3da2d5cd 100644
--- a/chrome/app/resources/chromium_strings_fr.xtb
+++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -119,6 +119,7 @@
 <translation id="5358375970380395591">Vous vous connectez avec un compte géré et donnez le contrôle de votre profil Chromium à son administrateur. Vos données Chromium, telles que les applications, les favoris, l'historique, les mots de passe et les autres paramètres, vont être définitivement associées à <ph name="USER_NAME" />. Vous pouvez supprimer ces données via le tableau de bord des comptes Google, mais vous ne pouvez pas les associer à un autre compte. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Mise à jour de Chromium (<ph name="PROGRESS_PERCENT" />)…</translation>
 <translation id="5398878173008909840">Une nouvelle version de Chromium est disponible.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb
index 72dd125..c55e5f4 100644
--- a/chrome/app/resources/chromium_strings_hi.xtb
+++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">आप प्रबंधित खाते से प्रवेश कर रहे हैं और उसके व्यवस्थापक को अपनी क्रोमियम प्रोफ़ाइल पर नियंत्रण दे रहे हैं. आपका क्रोमियम डेटा, जैसे आपके ऐप्स , बुकमार्क, इतिहास, पासवर्ड, औऱ अन्य सेटिंग स्थायी रूप से <ph name="USER_NAME" /> से जुड़ जाएंगी. आप Google खाता डैशबोर्ड के माध्यम से इस डेटा को हटा सकेंगे, लेकिन आप किसी अन्य खाते से इस डेटा को संबद्ध नहीं कर सकेंगे. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">क्रोमियम अपडेट हो रहा है (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">क्रोमियम का एक नया वर्शन उपलब्ध है.</translation>
+<translation id="5416696090975899932">अगर क्रोमियम के साथ आने वाला पीडीएफ़ व्यूअर मौजूद न हो, तो क्रोमियम प्रिंट की झलक नहीं दिखा पाएगा.</translation>
 <translation id="5427571867875391349">क्रोमियम को अपने डिफ़ॉल्ट ब्राउज़र के रूप में सेट करें</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - क्रोमियम बीटा</translation>
 <translation id="5466153949126434691">क्रोमियम अपने आप अपडेट हो जाता है ताकि आपके पास हमेशा सबसे नवीनतम वर्शन रहे. जब यह डाउनलोड पूर्ण हो जाता है, तो क्रोमियम पुन: प्रारंभ होगा और आप आगे बढ़ जाएंगे.</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb
index 2e5c1f27..4e0aa50 100644
--- a/chrome/app/resources/chromium_strings_hr.xtb
+++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Prijavljujete se upravljanim računom i dajete administratoru kontrolu nad svojim profilom u sustavu Chromium. Vaši podaci u sustavu Chromium, primjerice, aplikacije, oznake, povijest, zaporke i ostale postavke, trajno će se povezati s korisnikom <ph name="USER_NAME" />. Moći ćete izbrisati te podatke putem Nadzorne ploče Google računa, ali ih nećete moći povezati s nekim drugim računom. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Ažuriranje Chromiuma (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Dostupna je nova verzija preglednika Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index dcf6a7f5..fabea94 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Kezelt fiókkal jelentkezik be, és annak adminisztrátora számára hozzáférést biztosít Chromium-profiljához. Chromium-adatait – például alkalmazásait, könyvjelzőit, előzményeit, jelszavait és más beállításait – a rendszer véglegesen társítja a(z) <ph name="USER_NAME" /> fiókhoz. Ezen adatokat a Google-fiók Irányítópultján törölheti, de más fiókhoz nem társíthatja őket. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">A Chromium frissítése (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Elérhető a Chromium új verziója.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb
index cb49acc..93d747f1 100644
--- a/chrome/app/resources/chromium_strings_id.xtb
+++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Anda masuk dengan akun yang dikelola dan memberikan administratornya kontrol atas profil Chromium Anda. Data Chromium Anda, seperti aplikasi, bookmark, histori, sandi, dan setelan lain selamanya akan dikaitkan ke <ph name="USER_NAME" />. Anda dapat menghapus data ini melalui Dasbor Akun Google, namun Anda tidak akan dapat mengaitkan data ini dengan akun yang lain. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Memperbarui Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Tersedia Chromium versi baru.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_it.xtb b/chrome/app/resources/chromium_strings_it.xtb
index f9cdb97..f8f801a 100644
--- a/chrome/app/resources/chromium_strings_it.xtb
+++ b/chrome/app/resources/chromium_strings_it.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Stai per accedere con un account gestito e per dare al relativo amministratore il controllo del tuo profilo Chromium. I tuoi dati di Chromium, come app, Preferiti, cronologia, password e altre impostazioni, verranno collegati definitivamente a <ph name="USER_NAME" />. Potrai eliminare questi dati tramite la Dashboard di Google Account, ma non potrai associare questi dati a un altro account. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Aggiornamento di Chromium in corso (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">È disponibile una nuova versione di Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb
index a734d60d..1059a3a 100644
--- a/chrome/app/resources/chromium_strings_iw.xtb
+++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -116,6 +116,7 @@
 <translation id="5358375970380395591">‏אתה נכנס עם חשבון מנוהל ונותן למנהל המערכת שלו שליטה על הפרופיל שלך ב-Chromium. הנתונים שלך ב-Chromium, כגון יישומים, סימניות, היסטוריה, סיסמאות והגדרות אחרות ייקשרו באופן קבוע ל-<ph name="USER_NAME" />. תוכל למחוק את הנתונים האלה באמצעות לוח הבקרה של חשבונות Google, אבל לא תוכל לשייך את הנתונים האלה לחשבון אחר. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">‏מעדכן את Chromium‏ (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">‏גרסה חדשה של Chromium זמינה כעת.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb
index 00d7a1f..5c28619e 100644
--- a/chrome/app/resources/chromium_strings_ja.xtb
+++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">現在、管理対象アカウントでログインしており、あなたの Chromium プロフィールを管理者が制御できる状態になっています。あなたの Chromium データ(アプリ、ブックマーク、履歴、パスワードなどの設定)は永続的に <ph name="USER_NAME" /> に関連付けられます。このデータは Google アカウントのダッシュボードを介して削除できますが、このデータを別のアカウントに関連付けることはできなくなります。<ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium を更新しています(<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Chromium の最新バージョンをぜひお試しください。</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_ko.xtb b/chrome/app/resources/chromium_strings_ko.xtb
index 27e38b6..852d81c2 100644
--- a/chrome/app/resources/chromium_strings_ko.xtb
+++ b/chrome/app/resources/chromium_strings_ko.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">관리 계정으로 로그인하고 Chromium 프로필에 대한 관리자 제어권을 부여하려고 합니다. 앱, 북마크, 방문 기록, 비밀번호 및 기타 설정 등 Chromium 데이터가 <ph name="USER_NAME" /> 계정에 영구적으로 연결됩니다. 이후 이 데이터를 Google 계정 대시보드에서 삭제할 수는 있지만 다른 계정에 연결할 수는 없습니다. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium 업데이트 중(<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Chromium의 새 버전이 출시되었습니다.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index 69d33656..8d2a240 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">Prisijungiate su valdoma paskyra ir leidžiate jos administratoriui valdyti jūsų „Chromium“ profilį. „Chromium“ duomenys, pvz., programos, žymės, istorija, slaptažodžiai ir kiti nustatymai, bus visam laikui susieti su <ph name="USER_NAME" />. Galėsite ištrinti šiuos duomenis naudodami „Google“ paskyrų informacijos suvestinę, bet negalėsite susieti šių duomenų su kita paskyra. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Atnaujinama „Chromium“ (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Pasiekiama nauja „Chromium“ versija.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb
index 08d90e36..d2d8e05 100644
--- a/chrome/app/resources/chromium_strings_lv.xtb
+++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Jūs pierakstāties ar pārvaldītu kontu, kura administrators var kontrolēt jūsu profilu. Jūsu Chromium dati, piemēram, lietotnes, grāmatzīmes, vēsture, paroles un citi iestatījumi, tiks neatgriezeniski saistīti ar lietotāju <ph name="USER_NAME" />. Varēsiet dzēst šos datus, izmantojot Google kontu informācijas paneli, taču nevarēsiet šos datus saistīt ar citu kontu. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Notiek Chromium atjaunināšana (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Pieejama jauna Chromium versija.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index 11db3cf..ec1f325 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">നിങ്ങൾ ഒരു നിയന്ത്രിത അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്‌ത് അതിന്റെ അഡ്‌മിനിസ്‌ട്രേറ്റർക്ക് നിങ്ങളുടെ Chromium പ്രൊഫൈലിന്റെ നിയന്ത്രണം നൽകുന്നു. നിങ്ങളുടെ അപ്ലിക്കേഷനുകൾ, ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ, മറ്റ് ക്രമീകരണങ്ങൾ എന്നിവ പോലെയുള്ള Chromium ഡാറ്റ <ph name="USER_NAME" /> എന്നതുമായി ശാശ്വതമായി ബന്ധിപ്പിച്ചതായിത്തീരും. Google അക്കൗണ്ട്സ് ഡാഷ്‌ബോർഡ് വഴി നിങ്ങൾക്ക് ഈ ഡാറ്റ ഇല്ലാതാക്കാനാകുമെങ്കിലും, ഈ ഡാറ്റ മറ്റൊരു അക്കൗണ്ടുമായി ബന്ധപ്പെടുത്താനാകില്ല. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium അപ്‌ഡേറ്റുചെയ്യുന്നു, (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Chromium-ത്തിന്റെ ഒരു പുതിയ പതിപ്പ് ലഭ്യമാണ്.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index 9fbbe01d..d69f0ca 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -119,6 +119,7 @@
 <translation id="5358375970380395591">आपण एका व्यवस्थापित खात्यासह साइन इन करत आहात आणि आपल्या Chromium प्रोफाईलवर त्याच्या प्रशासकास नियंत्रण देत आहात. आपला Chromium डेटा, जसे की आपले अॅप्स, बुकमार्क, इतिहास, पासवर्ड आणि अन्य सेटिंग्ज <ph name="USER_NAME" /> वर कायमच्या बद्ध होतील. आपण Google खाती डॅशबोर्डद्वारे हा डेटा हटविण्यात सक्षम व्हाल, परंतु आपण दुसर्‍या खात्यासह हा डेटा संबद्ध करण्यात सक्षम होणार नाही. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium अपडेट करीत आहे (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Chromium ची नवीन आवृत्ती उपलब्ध आहे.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb
index aa4f67e..aae8db7 100644
--- a/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Anda log masuk menggunakan akaun yang terurus dan memberikan pentadbirnya kawalan ke atas profil Chromium anda. Data Chromium anda, seperti apl, penanda halaman, sejarah, kata laluan dan tetapan anda yang lain akan terikat kepada <ph name="USER_NAME" /> secara kekal. Anda akan dapat memadamkan data ini melalui Papan Pemuka Akaun Google, tetapi anda tidak akan dapat mengaitkan data ini dengan akaun lain. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Mengemas kini Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Terdapat versi baharu Chromium tersedia.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb
index a5a49e6..841b75da 100644
--- a/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">Je logt in op een beheerd account waarmee de eigenaar van dat account beheer krijgt over je Chromium-profiel. Je Chromium-gegevens zoals je apps, bladwijzers, geschiedenis, wachtwoorden en andere instellingen worden permanent gekoppeld aan <ph name="USER_NAME" />. Je kunt deze gegevens verwijderen via het Google Accounts Dashboard, maar je kunt deze gegevens niet koppelen aan een ander account.<ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium updaten (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Er is een nieuwe versie van Chromium beschikbaar.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb
index 2d1db5d..f9d8eb5 100644
--- a/chrome/app/resources/chromium_strings_no.xtb
+++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Du logger deg på med en administrert konto og gir tilhørende administratorer kontroll over Chromium-profilen din. Chromium-dataene dine, slik som apper, bokmerker, loggen, passord og andre innstillinger, knyttes permanent til <ph name="USER_NAME" />. Du kan slette disse dataene via oversikten for Google-kontoer, men du kan ikke knytte disse dataene til en annen konto. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Oppdaterer Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">En nyere versjon av Chromium er tilgjengelig.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb
index d7a5be8..7f6388cd 100644
--- a/chrome/app/resources/chromium_strings_pl.xtb
+++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -116,6 +116,7 @@
 <translation id="5358375970380395591">Logujesz się na zarządzane konto i przekazujesz jego administratorowi kontrolę nad swoim profilem Chromium. Twoje dane Chromium, takie jak aplikacje, zakładki, historia, hasła i inne ustawienia, zostaną trwale powiązane z użytkownikiem <ph name="USER_NAME" />. Będzie można je usunąć w Panelu kont Google, ale nie będzie można ich powiązać z innym kontem. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Aktualizuję Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Pojawiła się nowa wersja Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb
index f2e14b5..ab192d6c 100644
--- a/chrome/app/resources/chromium_strings_pt-BR.xtb
+++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -116,6 +116,7 @@
 <translation id="5358375970380395591">Você está fazendo login com uma conta gerenciada e concedendo ao administrador da conta o controle sobre seu perfil do Chromium. Seus dados do Chromium, como aplicativos, favoritos, histórico, senhas e outras configurações serão permanentemente vinculados a <ph name="USER_NAME" />. Você pode excluir esses dados pelo painel das Contas do Google, mas não pode associá-los a outra conta. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Atualizando o Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Há uma nova versão do Chromium disponível.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb
index 88ce67b..5023f1a 100644
--- a/chrome/app/resources/chromium_strings_pt-PT.xtb
+++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Está a iniciar sessão com uma conta gerida e a permitir que o gestor controle o seu perfil do Chromium. Os seus dados do Chromium, como aplicações, marcadores, histórico, palavras-passe e outras definições, ficarão associados definitivamente a <ph name="USER_NAME" />. Poderá eliminar estes dados através do Painel de Controlo das Contas Google, mas não poderá associá-los a outra conta. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">A atualizar o Chromium (<ph name="PROGRESS_PERCENT" />)…</translation>
 <translation id="5398878173008909840">Está disponível uma nova versão do Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb
index 8cf6755..52eb8a6 100644
--- a/chrome/app/resources/chromium_strings_ro.xtb
+++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Vă conectați cu un cont gestionat și îi permiteți administratorului acestuia controlul asupra profilului dvs. Chromium. Datele Chromium, cum ar fi aplicațiile, marcajele, istoricul, parolele și alte setări vor fi asociate definitiv cu <ph name="USER_NAME" />. Veți putea să ștergeți aceste date prin intermediul Tabloului de bord pentru Conturi Google, însă nu veți putea să asociați aceste date cu alt cont. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium se actualizează (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Este disponibilă o nouă versiune Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb
index e7c922d..e7040ce 100644
--- a/chrome/app/resources/chromium_strings_ru.xtb
+++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -116,6 +116,7 @@
 <translation id="5358375970380395591">Выполнив вход в управляемый аккаунт, вы предоставляете администратору право контролировать настройки вашего профиля Chromium. Ваши данные Chromium (приложения, закладки, история, пароли и другие настройки) будут временно связаны с аккаунтом <ph name="USER_NAME" />. Эти данные можно удалить в Личном кабинете Google, но их нельзя связать с другим аккаунтом. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Обновление Chromium (<ph name="PROGRESS_PERCENT" />)…</translation>
 <translation id="5398878173008909840">Доступна новая версия Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb
index bf606df..03a090d7 100644
--- a/chrome/app/resources/chromium_strings_sl.xtb
+++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -121,6 +121,7 @@
 <translation id="5358375970380395591">Prijavljate se z upravljanim računom in s tem njegovemu skrbniku omogočate nadzor vašega profila v Chromiumu. Vaši podatki v Chromiumu, kot so aplikacije, zaznamki, zgodovina, gesla in druge nastavitve, bodo postali trajno povezani z uporabnikom <ph name="USER_NAME" />. Te podatke boste lahko izbrisali na nadzorni plošči za Google Račune, vendar jih ne boste mogli povezati z drugim računom. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Posodabljanje Chromiuma (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Na voljo je nova različica Chromiuma.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb
index 8bceaad..8536b57f 100644
--- a/chrome/app/resources/chromium_strings_sr.xtb
+++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">Пријављујете се помоћу налога којим се управља и дајете његовом администратору контролу над Chromium профилом. Chromium подаци, као што су апликације, обележивачи, историја, лозинке и друга подешавања, биће трајно повезани са налогом <ph name="USER_NAME" />. Моћи ћете да избришете те податке преко Контролне табле Google налога, али нећете моћи да их повежете са неким другим налогом. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Ажурирање Chromium-а (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Доступна је нова верзија Chromium-а.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb
index 50e7e46..3c080b71 100644
--- a/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">Du loggar in med ett hanterat konto och ger dess administratör kontroll över din Chromium-profil. Dina uppgifter i Chromium, t.ex. dina appar, bokmärken, din historik, ditt lösenord och andra inställningar, kopplas då permanent till <ph name="USER_NAME" />. Du kommer att kunna ta bort dessa uppgifter via instrumentpanelen i Google Konton, men du kommer inte att kunna koppla dem till något annat konto. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium uppdateras (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Det finns en ny version av Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb
index 90e9e06..e8b323cd 100644
--- a/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -120,6 +120,7 @@
 <translation id="5358375970380395591">Unaingia katika akaunti inayodhibitiwa na kumpa msimamizi wa akaunti hiyo udhibiti wa wasifu wako kwenye Chromium. Data yako ya Chromium, kama vile programu zako, alamisho, historia, manenosiri, na mipangilio miingine itahusishwa na <ph name="USER_NAME" /> kabisa. Utaweza kufuta data hii kupitia Dashibodi ya Akaunti za Google, lakini hutaweza  kuunganisha data hii na akaunti nyingine. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Inasasisha Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Kuna toleo jipya la Chromium linalopatikana.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb
index b270a230..9d87922 100644
--- a/chrome/app/resources/chromium_strings_ta.xtb
+++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">நீங்கள் நிர்வகிக்கப்படும் கணக்கு மூலம் உள்நுழைகிறீர்கள், மேலும் அதன் நிர்வாகிக்கு உங்கள் Chromium சுயவிவரத்தின் கட்டுப்பாட்டை வழங்குகிறீர்கள். உங்கள் பயன்பாடுகள், புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் போன்ற உங்கள் Chromium தரவு மற்றும் பிற அமைப்புகள் நிரந்தரமாக <ph name="USER_NAME" /> உடன் இணைக்கப்படும். இந்தத் தரவை Google கணக்குகளின் டாஷ்போர்டு வழியாக நீக்க முடியும், ஆனால் இந்தத் தரவை வேறொரு கணக்குடன் தொடர்புபடுத்த முடியாது. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromiumஐப் புதுப்பிக்கிறது (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Chromium இன் புதிய பதிப்பு கிடைக்கிறது.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index 9adb2f35..09f4732 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">คุณกำลังลงชื่อเข้าใช้ด้วยบัญชีที่จัดการ และให้การควบคุมระดับผู้ดูแลระบบของบัญชีดังกล่าวเหนือโปรไฟล์ Chromium ของคุณ ข้อมูล Chromium เช่น แอป บุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และการตั้งค่าอื่นๆ จะเชื่อมโยงอย่างถาวรกับ <ph name="USER_NAME" /> คุณจะสามารถลบข้อมูลนี้ผ่านทางแผงควบคุมบัญชี Google แต่คุณจะไม่สามารถเชื่อมโยงข้อมูลนี้กับบัญชีอื่น <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">กำลังอัปเดต Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Chromium รุ่นใหม่พร้อมให้ใช้งานแล้ว</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb
index d74bc501..a81024f 100644
--- a/chrome/app/resources/chromium_strings_tr.xtb
+++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -116,6 +116,7 @@
 <translation id="5358375970380395591">Yönetilen bir hesapla oturum açıyor ve hesabın yöneticisine Chromium profilinizi denetleme izni veriyorsunuz. Uygulamalarınız, yer işaretleriniz, geçmişiniz, şifreleriniz ve diğer ayarlarınız gibi Chromium verileriniz kalıcı olarak <ph name="USER_NAME" /> ile bağlantılandırılacaktır. Google Hesapları Hesap Özeti'ni kullanarak bu verileri silebilecek, ancak bu verileri başka bir hesapla ilişkilendiremeyeceksiniz. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium güncelleniyor (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Chromium'un yeni bir sürümü çıktı.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb
index fd0fb2e..524219a 100644
--- a/chrome/app/resources/chromium_strings_uk.xtb
+++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Ви входите, використовуючи дані облікового запису, яким керує адміністратор. Адміністратор може контролювати ваш профіль Chromium. Ваші дані Chromium, як-от програми, закладки, історія, паролі й інші налаштування, буде назавжди пов’язано з обліковим записом <ph name="USER_NAME" />. Ці дані можна видалити на інформаційній панелі Облікових записів Google, але ви не зможете пов’язати їх з іншим обліковим записом. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Chromium оновлюється (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Доступна нова версія Chromium.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb
index 36832d7..95213d2 100644
--- a/chrome/app/resources/chromium_strings_vi.xtb
+++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">Bạn đang đăng nhập bằng tài khoản được quản lý và cấp cho quản trị viên của tài khoản quyền kiểm soát cấu hình Chromium của bạn. Dữ liệu Chromium của bạn, chẳng hạn như ứng dụng, dấu trang, lịch sử, mật khẩu và các cài đặt khác sẽ vĩnh viễn được liên kết với <ph name="USER_NAME" />. Bạn có thể xóa dữ liệu này thông qua Trang tổng quan của tài khoản Google nhưng không thể liên kết dữ liệu này với tài khoản khác. <ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">Đang cập nhật Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">Hiện đã có phiên bản Chromium mới.</translation>
+<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>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb
index 9f5de5c7..2477f4a 100644
--- a/chrome/app/resources/chromium_strings_zh-TW.xtb
+++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -118,6 +118,7 @@
 <translation id="5358375970380395591">你已登入管理化環境下的帳戶,並將管理控制權授予你的 Chromium 設定檔。你的 Chromium 資料 (例如應用程式、書籤、記錄、密碼和其他設定) 均將永久與 <ph name="USER_NAME" /> 建立關聯。你可以透過 Google 帳戶資訊主頁刪除這些資料,但你無法將這些資料與其他帳戶建立關聯。<ph name="LEARN_MORE" /></translation>
 <translation id="5386450000063123300">正在更新 Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
 <translation id="5398878173008909840">新版 Chromium 現已推出。</translation>
+<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>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 39958d7b..8abbf9ff 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">ነገርየው በሚለወጥበት ጊዜ በቁልፍ ሰሌዳ ትኩረት አድምቅ</translation>
 <translation id="1173894706177603556">ዳግም ሰይም</translation>
 <translation id="1174073918202301297">አቋራጭ ታክሏል</translation>
-<translation id="1174808551768282258">በእርስዎ ስልክ የእርስዎን Chromebook ይክፈቱ። <ph name="LINK_BEGIN" />ተጨማሪ ለመረዳት።<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;አትም…</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" />ን በመቅዳት ላይ</translation>
 <translation id="1177138678118607465">Google ፍለጋን፣ ማስታወቂያን እና ሌሎች የGoogle አገልግሎቶችን ግላዊነት ለማላበስ ሲባል የእርስዎን የአሰሳ ታሪክ ሊጠቀም ይችል ይሆናል። ይህንን በማናቸውም ጊዜ በmyaccount.google.com/activitycontrols/search ላይ መለወጥ ይችላሉ።</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">ለአፍታ አቁም</translation>
 <translation id="1181037720776840403">አስወግድ</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" />ን በአካባቢያዊ መሸጎጫ ላይ መጫን አልተቻለም።</translation>
-<translation id="1183378459020939734">የደህንነት ቁልፍዎን ለማጣመር ዝግጁ ነዎት?</translation>
 <translation id="1185924365081634987">እንዲሁም ይህን የአውታረ መረብ ስህተት ለማስተካከል <ph name="GUEST_SIGNIN_LINK_START" />እንደ እንግዳ ሆነው ለማሰስ<ph name="GUEST_SIGNIN_LINK_END" /> መሞከርም ይችላሉ።</translation>
 <translation id="1186771945450942097">ጎጂ ሶፍትዌርን ያስወግዱ</translation>
 <translation id="1187722533808055681">ከመቦዘን ማንቂያዎች</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">ምንም የብሉቱዝ መሣሪያዎች አልተገኙም</translation>
 <translation id="1306606229401759371">ቅንብሮችን ቀይር</translation>
 <translation id="1307559529304613120">ውይ!  ስርዓቱ የዚህ መሣሪያ የረጅም ጊዜ ኤ ፒ አይ መዳረሻ ማስመሰያ ማከማቸት አልቻለም።</translation>
+<translation id="1307931752636661898">የLinux ፋይሎችን መመልከት አልተቻለም</translation>
 <translation id="1313405956111467313">ራስ-ሰር የተኪ ውቅር</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">የእርስዎ እልባቶች፣ ታሪክ እና ሌሎች ቅንብሮች ወደ የእርስዎ Google መለያ እንዲመሳሰሉ ይደረጋሉ።</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">የመዳፊት እና የመዳሰሻ መሣሪያ ቅንብሮችን ክፈት</translation>
 <translation id="1531004739673299060">የመተግበሪያ መስኮት</translation>
 <translation id="15373452373711364">ትልቅ የመዳፊት ጠቋሚ</translation>
+<translation id="1538729222189715449">የLinux ፋይሎችን በመክፈት ላይ...</translation>
 <translation id="1540605929960647700">የማሳያ ሁነታውን ያንቁ</translation>
 <translation id="1543284117603151572">ከEdge ላይ የመጣ</translation>
 <translation id="1545177026077493356">ራስ-ሰር የኪዮስክ ሁነታ</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">የንክኪ ኤችዩዲ ሁነታን ለውጥ</translation>
 <translation id="1784849162047402014">መሣሪያ ያለው ባዶ ቦታ ዝቅተኛ ነው</translation>
 <translation id="1786636458339910689">የቡድን Drives</translation>
-<translation id="1792161662640298233">የደህንነት ቁልፍዎን በማረጋገጥ ላይ</translation>
 <translation id="1792619191750875668">የተቀጠለ ማሳያ</translation>
 <translation id="1794791083288629568">እኛ ይህን ችግር እንድንፈታው ለማገዝ ግብረመልስ ይላኩ።</translation>
 <translation id="1795214765651529549">የታወቀ ገጽታን ተጠቀም</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">እንኳን ደህና መጡ!</translation>
 <translation id="1914326953223720820">አገልግሎትን በትን</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">በመለያ ቅንብሮችዎ ላይ የሚወሰን ሆኖ የእርስዎ ረዳት ተሞክሮ እንደ የድር ውጤቶች፣ ቀልዶች እና አካባቢያዊ መረጃ ባሉ ነገሮች ሊገደብ ይችላል።</translation>
 <translation id="1916502483199172559">ነባሪ ቀይ አምሳያ</translation>
 <translation id="1918141783557917887">&amp;አሳንስ</translation>
 <translation id="1919345977826869612">ማስታወቂያዎች</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">በ<ph name="PEPPER_PLUGIN_DOMAIN" /> ላይ ያለው <ph name="PEPPER_PLUGIN_NAME" /> ኮምፒውተርዎን መድረስ ይፈልጋል</translation>
 <translation id="2178614541317717477">CA Compromise</translation>
 <translation id="218070003709087997">ስንት ቅጂዎች መታተም እንዳለባቸው ለማመላከት ቁጥር ይጠቀሙ (ከ1 እስከ 999)።</translation>
+<translation id="2184515124301515068">Chrome ጣቢያዎች መቼ ድምጽን ማጫወት እንደሚችሉ እንዲመርጥ ይፍቀዱ (የሚመከር)</translation>
 <translation id="2187895286714876935">የአገልጋይ ዕውቅና ማረጋገጫ ስህተት</translation>
 <translation id="2187906491731510095">ቅጥያዎች ተዘምነዋል</translation>
 <translation id="2188881192257509750"><ph name="APPLICATION" /> ክፈት</translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">ውሂብዎን በተወሰኑ ድር ጣቢያዎች ላይ ያነብባል እና ይቀይራል</translation>
 <translation id="2242687258748107519">የፋይል መረጃ</translation>
 <translation id="2243194103992005307">መተግበሪያዎችን ለማስወገድ ወደ ቅንብሮች &gt; መተግበሪያዎች ወይም የመተግበሪያ አስተዳዳሪ ይሂዱ። ከዚያ ለማራገፍ የሚፈልጉትን መተግበሪያ መታ ያድርጉ (መተግበሪያውን ለማግኘት ወደ ቀኝ ወይም ወደ ግራ ማንሸራተት ሊኖርብዎት ይችላል)። ከዚያ አራግፍ ወይም አሰናክል የሚለውን መታ ያድርጉ።</translation>
+<translation id="224940702122312781">ይህ ገጽ ብዙ ውሂብ ይጠቀማል።</translation>
 <translation id="2249605167705922988">ለምሳሌ፦ 1-5፣ 8፣ 11-13</translation>
 <translation id="2251218783371366160">በስርዓት መመልከቻ ክፈት</translation>
 <translation id="225163402930830576">አውታረ መረቦችን አድስ</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">አውታረ መረብ አዋቅር</translation>
 <translation id="230927227160767054">ይህ ገጽ የአገልግሎት ተቆጣጣሪ ለመጫን ይፈልጋል።</translation>
 <translation id="2309620859903500144">ይህ ጣቢያ የእርስዎን እንቅስቃሴ ወይም የብርሃን ዳሳሾችን እንዳይደርስ አግዷል።</translation>
-<translation id="2311075084924370935">ከእርስዎ ቀን መቁጠሪያ፣ አስታዋሾች፣ በረራዎች እና ተጨማሪ ነገሮች ጋር እርስዎን ለማገዝ የእርስዎ ረዳት ድር እና መተግበሪያ እንቅስቃሴን፣ የመሣሪያ መረጃን፣ የድምፅና ኦዲዮ እንቅስቃሴ ቅንብሮችን ይፈልጋል።</translation>
+<translation id="2315414688463285945">የLinux ፋይሎችን ማዋቀር ላይ ስህተት። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="2315821125498993513">ወደ ስልክ ማገናኘት አልተቻለም። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት።<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">አይ፣ አመሰግናለሁ</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% ተከናውኗል</translation>
 <translation id="2318143611928805047">የወረቀት መጠን</translation>
 <translation id="2318817390901984578">የAndroid መተግበሪያዎችን ለመጠቀም የእርስዎን <ph name="DEVICE_TYPE" /> ኃይል ይሙሉ እና ያዘምኑ።</translation>
 <translation id="2318923050469484167">የአሁኑ ማንነት የማያሳውቅ ክፍለ-ጊዜ ብቻ (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">የእርስዎን የደህንነት ቁልፍ ከ<ph name="APP_NAME" /> ጋር ይጠቀሙ</translation>
 <translation id="2322193970951063277">ራስጌዎች እና ግርጌዎች</translation>
 <translation id="2325650632570794183">ይህ ፋይል አይነት አይደገፍም። የዚህ አይነት ፋይል መክፈት የሚችል መተግበሪያን ለማግኘት እባክዎ Chrome የድር ሱቁን ይጎብኙ።</translation>
 <translation id="2326931316514688470">&amp;መተግበሪያን ዳግም ጫን</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">ፋይል አጋራን ያክሉ</translation>
 <translation id="2367972762794486313">መተግበሪያዎችን አሳይ</translation>
 <translation id="2369536625682139252">ከኩኪዎች በስተቀር ሁሉም በ<ph name="SITE" /> የተከማቸው ውሂብ ይሰረዛል።</translation>
-<translation id="237058345584060620">ቁልፍዎን ተጠቅመው ወደ መለያዎ ለመግባት ከዚህ መሣሪያ ጋር ያጣምሩት</translation>
 <translation id="2371076942591664043">&amp;ሲጠናቀቅ ክፈት</translation>
 <translation id="2377319039870049694">ወደ የዝርዝር እይታ ቀይር</translation>
 <translation id="2377667304966270281">ከባድ ስህተቶች</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">የእርስዎን ስልክ ማግኘት አልተቻለም። የእርስዎ <ph name="DEVICE_TYPE" /> ብሉቱዝ መብራቱን ያረጋግጡ። &lt;a&gt;የበለጠ ለመረዳት&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;አቃፊ አክል...</translation>
 <translation id="249113932447298600">ይቅርታ፣ መሣሪያ <ph name="DEVICE_LABEL" /> በአሁኑ ጊዜ አይደገፍም።</translation>
-<translation id="2492040222276243256">በደህንነት ቁልፍዎ ላይ ያለውን አዝራር ቢያንስ ለ5 ሰከንዶች ተጭነው ይያዙት</translation>
 <translation id="2493021387995458222">«በአንድ ጊዜ አንድ ቃል»ን ይመርጣል</translation>
 <translation id="249303669840926644">ምዝገባን ማጠናቀቅ አልተቻለም</translation>
 <translation id="2495777824269688114">ተጨማሪ ባህሪዎችን ወይም መልሶችን ያግኙ። ለእገዛ «?» ን ይምረጡ።</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">አጠቃላይ፦ <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">ረጅም</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (የመሣሪያ ስርዓት <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">ይህ ትር ማያ ገጽዎን እያጋራ ነው።</translation>
 <translation id="2586657967955657006">የቅንጥብ ሰሌዳ</translation>
 <translation id="2586672484245266891">እባክዎ ያጠረ ዩአርኤል ያስገቡ</translation>
 <translation id="2587922270115112871">ክትትል የሚደረግበት ተጠቃሚ መፍጠር የGoogle መለያ አይፈጥርም፣ እና ቅንብሮቻቸው 
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> <ph name="USAGE" /> ሜባ የዲስክ ቦታ እየተጠቀመ ነው።</translation>
 <translation id="2633212996805280240">«<ph name="EXTENSION_NAME" />» ይወገድ?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> ጭነቱን ሊያጠናቅቅ አልቻለም፣ ግን ከዲስክ ምስሉ መሄዱን ይቀጥላል።</translation>
-<translation id="2633326789677284179">በቁልፍዎ ጀርባ ላይ የታተመውን ስም ያግኙ</translation>
 <translation id="2635276683026132559">መፈረም</translation>
 <translation id="2636625531157955190">Chrome ምስሉን ሊደርስበት አልቻለም።</translation>
 <translation id="2638087589890736295">ስምረትን ለመጀመር የይለፍ ሐረግ ያስፈልጋል</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> አክል...</translation>
 <translation id="2874343608108773609">የእርስዎን የይለፍ ቃላት በሁሉም መሣሪያዎችዎ ላይ ለማግኘት ወደ Chrome ይግቡ።</translation>
 <translation id="2875698561019555027">(Chrome ስህተት ገጾች)</translation>
-<translation id="2876441201733326392">የዩኤስቢ ደህንነት ቁልፍ ይጠቀሙ</translation>
 <translation id="288042212351694283">ሁለገብ 2ኛ ደረጃ መሣሪያዎችዎን ይደርስባቸዋል</translation>
 <translation id="2881966438216424900">ለመጨረሻ ጊዜ የተደረሰው፦</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> ዳግም ይጀምርና ለጊዜው ዳግም ይዘጋጃል።</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">ስም-አልባ ሆነው ሪፖርት ያድርጉ</translation>
 <translation id="2984337792991268709">ዛሬ <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">ይህ ገጽ የMIDI መሳሪያዎችን ሙሉ በሙሉ ከመቆጣጠር ታግዷል።</translation>
-<translation id="2988599644347283908">ማስታወሻ፦ እነዚህ ቅንብሮች የሚቆጣጠሩት ውሂብ ሊቀመጥ እና ለእርስዎ ግላዊነት የተላበሱ ተሞክሮዎችን እና ጠቃሚ ማስታወቂያዎችን ለማቅረብ በሚገቡበት በማንኛውም የGoogle አገልግሎት ውስጥ ጥቅም ላይ ሊውሉ ይችላሉ። በaccount.google.com ላይ ውሂብዎን ማየት፣ መሰረዝ እና ቅንብሮችዎን መለወጥ ይችላሉ።</translation>
 <translation id="2989474696604907455">አልተያያዘም</translation>
 <translation id="2989786307324390836">DER-encoded binary፣ ነጠላ ሰርቲፊኬት</translation>
 <translation id="2993517869960930405">የመተግበሪያ መረጃ</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">የትሮች ድምጸ-ከል አንሳ</translation>
 <translation id="3053013834507634016">የሰርቲፊኬት ቁልፍ ጠቀሜታ</translation>
 <translation id="3057861065630527966">የእርስዎን ፎቶዎች እና ቪዲዮዎች በምትኬ ያስቀምጡ</translation>
-<translation id="3059313675706898490">የAndroid መልዕክቶች</translation>
 <translation id="3060379269883947824">ለመናገር-ይምረጡን ያንቁ</translation>
 <translation id="3061707000357573562">የመጠገኛ አገልግሎት</translation>
 <translation id="3064410671692449875">በቂ ያልሆነ ውሂብ</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">ውጫዊ የcrx ፋይል ወደ <ph name="TEMP_CRX_FILE" /> መቅዳት አልተቻለም።</translation>
 <translation id="3090871774332213558">«<ph name="DEVICE_NAME" />» ተጣምሯል</translation>
 <translation id="3101709781009526431">ቀን እና ሰዓት</translation>
-<translation id="3104900172193317662">የእርስዎን የደህንነት ቁልፍ አጠቃቀም ይፍቀዱ</translation>
 <translation id="310671807099593501">ጣቢያ ብሉቱዝን እየተጠቀመ ነው</translation>
 <translation id="3115128645424181617">የእርስዎን ስልክ ማግኘት አልተቻለም። በቅርብ ርቀት ላይ የሚችል መሆኑንና ብሉቱዝ መብራቱን ያረጋግጡ።</translation>
 <translation id="3115147772012638511">መሸጎጫ በመጠበቅ ላይ…</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">‹የሰርቲፊኬቱ አካል አይደለም›</translation>
 <translation id="3254434849914415189">ለ<ph name="FILE_TYPE" /> ፋይሎች ነባሪውን መተግበሪያ ይምረጡ፦</translation>
 <translation id="3254516606912442756">ራስ-ሰር ሰዓት ሰቅ ማግኘት ተሰናክሏል</translation>
-<translation id="3254772308201947812">አዎ፣ ገብቼያለሁ</translation>
 <translation id="3264544094376351444">Sans-Serif ቅርጸ ቁምፊ፦</translation>
 <translation id="3264547943200567728">የእርስዎን የChromebox አውታረ መረብ ማቀናበር አልተሳካም</translation>
 <translation id="3264582393905923483">አውድ</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">ደርድር በ</translation>
 <translation id="3737274407993947948">Linuxን በመጫን ላይ ስህተት...</translation>
 <translation id="3737536731758327622">የእርስዎ ውርዶች እዚህ ይታያሉ</translation>
-<translation id="3738671331307774213">የእርስዎን ማንነት ማረጋገጥ የግል ውሂብዎን ለመጠበቅ ያግዛል</translation>
 <translation id="3738924763801731196"><ph name="OID" />፦</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> ይከፈት?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> አሁን በአስተዳዳሪ መሥሪያው ውስጥ ይታያል</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />፦ ማሳመር ባለበት ቆሟል</translation>
 <translation id="3860381078714302691">እንኳን ወደ Hangouts Meet በደህና መጡ</translation>
+<translation id="3861241522664181545">ገጽ ባለበት ቆሟል።</translation>
 <translation id="3862134173397075045">እንኳን ወደ በChrome ውስጥ የCast ተሞክሮ በደህና መጡ!</translation>
 <translation id="3862788408946266506">የ«kiosk_only» ዝርዝር ሰነድ አይነታ ያለው መተግበሪያ በChrome OS ኪዮስክ ሁኔታ ላይ መጫን አለበት።</translation>
 <translation id="3865414814144988605">የምስል ጥራት</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">ይህን ለማብራት፣ የእርስዎን የስምረት ግዢ ለማስወገድ <ph name="BEGIN_LINK" />ስምረትን ዳግም ያቀናብሩ<ph name="END_LINK" /></translation>
 <translation id="3878840326289104869">ቁጥጥር ላይ ያለ ተጠቃሚ በመፍጠር ላይ</translation>
 <translation id="3879748587602334249">የማውረድ አቀናባሪ</translation>
-<translation id="3880709822663530586">የደህንነት ቁልፍዎ የሚሠራው የመሣሪያዎ ብሉቱዝ ሲበራ ብቻ ነው</translation>
 <translation id="3888550877729210209">ማስታወሻዎችን በ<ph name="LOCK_SCREEN_APP_NAME" /> በመውሰድ ላይ</translation>
 <translation id="3892414795099177503">OpenVPN / L2TP ያክሉ...</translation>
 <translation id="3893536212201235195">የተደራሽነት ቅንብሮችዎን ያነብባል እና ይቀይራል</translation>
@@ -2068,6 +2059,7 @@
 <translation id="4096824249111507322">ደህንነቱ የተጠበቀ ሞዱል እየተዘጋጀ ነው፣ እባክዎ ይጠብቁ (ይሄ ጥቂት ደቂቃዎችን ሊወስድ ይችላል)...</translation>
 <translation id="4099060993766194518">ነባሪ የፍለጋ ፕሮግራም ወደነበረበት ይመለስ?</translation>
 <translation id="4100733287846229632">የመሣሪያው ቦታ እጅግ በጣም ዝቅተኛ ነው</translation>
+<translation id="4103091233824664032">የማያ ገጽ ቁልፍ እና በመለያ መግባትን ለማዋቀር የይለፍ ቃልዎን ያስገቡ</translation>
 <translation id="4104163789986725820">ወደ &amp;ውጪ ላክ...</translation>
 <translation id="4105563239298244027">ከGoogle Drive ጋር 1 ቴባ ነጻ ያግኙ</translation>
 <translation id="4107048419833779140">የማከማቻ መሣሪያዎችን ለይተው ይወቁ እና ያስወጡ</translation>
@@ -2088,7 +2080,6 @@
 <translation id="4136203100490971508">ፀሐይ ስትወጣ የማታ ብርሃን በራስ-ሰር ይጠፋል</translation>
 <translation id="4138267921960073861">በመግቢያ ገጹ ላይ የተጠቃሚ ስሞች እና ፎቶዎችን አሳይ</translation>
 <translation id="4144218403971135344">የተሻለ ጥራት ያለውን ቪዲዮ ያግኙ እና የባትሪ ዕድሜ ይቆጥቡ። ቪዲዮ በእርስዎ የCast-የነቃ ማያ ገጽ ላይ ብቻ ይጫወታል።</translation>
-<translation id="414599683948988413">ከዩኤስቢ ጋር የእርስዎን የደህንነት ቁልፍ ይጠቀሙ</translation>
 <translation id="4146026355784316281">ሁልጊዜ ከሥርዓት ተመልካች ጋር ክፈት</translation>
 <translation id="4146785383423576110">ዳግም አዘጋጅ እና አጽዳ</translation>
 <translation id="4147897805161313378">Google ፎቶዎች</translation>
@@ -2223,6 +2214,7 @@
 <translation id="4394049700291259645">አሰናክል</translation>
 <translation id="4400367121200150367">የይለፍ ቃላትን በጭራሽ የማያስቀምጡ ድር ጣቢያዎች እዚህ ይታያሉ</translation>
 <translation id="4400632832271803360">የላይኛው ረድፍ ቁልፎች ባህሪን ለመቀየር የማስጀመሪያ ቁልፉን ይያዙ</translation>
+<translation id="4405117686468554883">*.jpeg፣ *.jpg፣ *.png</translation>
 <translation id="4408599188496843485">እ&amp;ገዛ</translation>
 <translation id="4409697491990005945">ህዳጎች</translation>
 <translation id="4411578466613447185">የኮድ ፈራሚ</translation>
@@ -2271,6 +2263,7 @@
 <translation id="4480590691557335796">Chrome በእርስዎ ኮምፒውተር ላይ ጎጂ ሶፍትዌርን ማግኘት እና ማስወገድ ይችላል</translation>
 <translation id="4481530544597605423">ያልተጣመሩ መሣሪያዎች</translation>
 <translation id="4482194545587547824">Google ፍለጋን እና ሌሎች የGoogle አገልግሎቶችን ግላዊነት ለማላበስ የአሰሳ ታሪክዎን ሊጠቀም ይችላል</translation>
+<translation id="4493287891836751813">ከGoogle ረዳትዎ ጋር ይተዋወቁ</translation>
 <translation id="4495419450179050807">በዚህ ገጽ ላይ አታሳይ</translation>
 <translation id="4499718683476608392">በአንዲት ጠቅታ ቅጾችን ለመሙላት የክሬዲት ካርድ ራስ-ሙላን ያንቁ</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ተበላሽቷል</translation>
@@ -2431,6 +2424,7 @@
 <translation id="474217410105706308">ትር ላይ ድምጸ-ከል አድርግ</translation>
 <translation id="4742746985488890273">መደርደሪያ ላይ ሰካ</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />እንዴት መተግበሪያዎችን ማዘመን እንደሚቻል ይረዱ<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">መልዕክቶች</translation>
 <translation id="4746971725921104503">ያንን ስም የያዘ ተጠቃሚ አስቀድመው እያስተዳደሩ ያሉ ይመስላሉ። <ph name="LINK_START" /><ph name="USER_DISPLAY_NAME" />ን ወደዚህ መሣሪያ ማስመጣት<ph name="LINK_END" /> ይፈልጋሉ?</translation>
 <translation id="4748762018725435655">የChrome የድር መደብር ቅጥያ ያስፈልገዋል</translation>
 <translation id="4750394297954878236">የአስተያየት ጥቆማዎች</translation>
@@ -2472,6 +2466,7 @@
 <translation id="4821935166599369261">&amp;መገለጫ መስራት ነቅቷል</translation>
 <translation id="4823484602432206655">የተጠቃሚ እና የመሣሪያ ቅንብሮችን ያንብቡ እና ይለውጡ</translation>
 <translation id="4823651846660089135">መሣሪያው ተነባቢ-ብቻ ነው</translation>
+<translation id="4823955295535347797">የእርስዎ ማያ ገጽ በሚበራበት ጊዜ እርስዎ በማናቸውም ጊዜ «Ok Google» ሲሉ የእርስዎን ረዳት ይድረሱበት።</translation>
 <translation id="4828937774870308359">የአውስትራሊያ</translation>
 <translation id="4829768588131278040">ፒን ያዋቅሩ</translation>
 <translation id="4830502475412647084">የስርዓተ ክወና ዝማኔን በመጫን ላይ</translation>
@@ -2512,6 +2507,7 @@
 <translation id="4876273079589074638">መሐንዲሶቻችን ይህን ስንክል እንዲመረምሩና እንዲጠግኑት ያግዟቸው። ከቻሉ የተከተሏቸውን ደረጃዎች በሙሉ በትክክል ይግለጹ። ምንም አይረባም የሚባል ዝርዝር የለም!</translation>
 <translation id="4876895919560854374">ማያ ገጹን ይከፍተዋል እና ይዘገዋል</translation>
 <translation id="4877017884043316611">ከChromebox ጋር ያጣምሩ</translation>
+<translation id="4879491255372875719">ራስ-ሰር (ነባሪ)</translation>
 <translation id="4880214202172289027">የድምጽ ተንሸራታች</translation>
 <translation id="4880328057631981605">የመዳረሻ ነጥብ ስም</translation>
 <translation id="4880520557730313061">በራስ-ጠግን</translation>
@@ -2665,7 +2661,6 @@
 <translation id="5099354524039520280">ላይ</translation>
 <translation id="5100114659116077956">የቅርብ ጊዜ ባህሪያትን ለእርስዎ ለማምጣት የእርስዎ Chromebox መዘመን አለበት።</translation>
 <translation id="5101042277149003567">ሀሉንም እልባቶች ክፈት</translation>
-<translation id="5104546332954397226">የእርስዎን ስልክ እንደ ደህንነት ቁልፍ ይጠቀሙ</translation>
 <translation id="5105855035535475848">ትሮችን ይሰኩ</translation>
 <translation id="5108967062857032718">ቅንብሮች - የAndroid መተግበሪያዎችን አስወግድ</translation>
 <translation id="5109044022078737958">ሚያ</translation>
@@ -2796,7 +2791,6 @@
 <translation id="5288678174502918605">የተ&amp;ዘጋውን ትር ዳግም ክፈት</translation>
 <translation id="52912272896845572">የግል ቁልፍ ፋይል ልክ አይደለም።</translation>
 <translation id="529175790091471945">ይህን መሣሪያ ቅርጸት ይስሩለት</translation>
-<translation id="5292195676005197571">አብዛኛዎቹን ቁልፎችን ለመጠቀም አዝራሩን በቀላሉ ይጫኑት</translation>
 <translation id="5293170712604732402">ቅንብሮች ወደ የመጀመሪያቸው ነባሪዎች መልሳቸው</translation>
 <translation id="5297082477358294722">የይለፍ ቃል ተቀምጧል። የተቀመጡ የይለፍ ቃላትን በእርስዎ <ph name="SAVED_PASSWORDS_STORE" /> ይመልከቱ እና ያስተዳድሩ።</translation>
 <translation id="5298219193514155779">ገጽታ የተፈጠረው በ</translation>
@@ -2822,6 +2816,7 @@
 <translation id="532776649628038357">እስማማለሁ</translation>
 <translation id="532943162177641444">ይህ መሣሪያ ሊጠቀሙበት የሚችልበት የተንቀሳቃሽ ስልክ መገናኛ ነጥብ ለማቀናበር በእርስዎ <ph name="PHONE_NAME" /> ላይ ያለውን ማሳወቂያ መታ ያድርጉ።</translation>
 <translation id="5329858601952122676">&amp;ሠርዝ</translation>
+<translation id="5329945517224105597">የእርስዎ ረዳት ይበልጥ ተዛማጅ የአስተያየት ጥቆማዎችን እና በማያ ገጽዎ ላይ ካለው ነገር ጋር ተዛማጅ የሆኑ እርምጃዎችን ሊያቀርብ ይችላል። ይህን በረዳት ቅንብሮች ውስጥ መለወጥ ይችላሉ።</translation>
 <translation id="5330145655348521461">እነዚህ ፋይሎች በተለየ ዴስክቶፕ ላይ ተከፍተዋል። ለማየት ወደ <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) ይውሰዱት።</translation>
 <translation id="5330512191124428349">መረጃ ያግኙ</translation>
 <translation id="5331069282670671859">በዚህ ምድብ ውስጥ የዕውቅና ማረጋገጫዎች የሉዎትም</translation>
@@ -2866,7 +2861,6 @@
 <translation id="5390100381392048184">ጣቢያዎች ድምጽ እንዲያጫውቱ ፍቀድ</translation>
 <translation id="5390284375844109566">በመረጃ ጠቋሚ የተሰናዳ የውሂብ ጎታ</translation>
 <translation id="5390743329570580756">ላክ ለ</translation>
-<translation id="5392327114396848796">ውስጠ-ግንቡ የደህንነት ቁልፍ ይጠቀሙ</translation>
 <translation id="5397794290049113714">እርስዎ</translation>
 <translation id="5398572795982417028">ከወሰን ውጪ ያለ ገጽ ማጣቀሻ፣ ገደቡ <ph name="MAXIMUM_PAGE" /> ነው</translation>
 <translation id="5398772614898833570">ማስታወቂያዎች ታግደዋል</translation>
@@ -3074,6 +3068,7 @@
    <ph name="LINE_BREAKS" />
    በማህደር ወይም ምናባዊ ዲስክ ላይ ያሉ ሁሉንም ፋይሎች ይዝጉ፣ ከዚያ እንደገና ይሞክሩ።</translation>
 <translation id="5687326903064479980">የጊዜ ሰቅ</translation>
+<translation id="568824803367507355">«Ok Google»ን ማወቅ</translation>
 <translation id="5689516760719285838">አካባቢ</translation>
 <translation id="56907980372820799">ውሂብ አገናኝ</translation>
 <translation id="5691511426247308406">ቤተሰብ</translation>
@@ -3171,7 +3166,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - ካሜራ ወይም ማይክራፎን በመቅረጽ ላይ ነው</translation>
 <translation id="5835754902560991078">እጅግ በጣም አጭር (0.6 ሴ)</translation>
 <translation id="5838456317242088717">የአሁኑ ማንነት የማያሳውቅ ክፍለ-ጊዜ</translation>
-<translation id="5842053879378944309">የዩእስቢ ደህንነት ቁልፉን ከ<ph name="APP_NAME" /> ጋር ይጠቀሙ</translation>
 <translation id="5842497610951477805">ብሉቱዝን አንቃ</translation>
 <translation id="5843250171025351504">የእርስዎ መሣሪያ በእርስዎ አስተዳዳሪ በተጠቀሰው ዝቅተኛ የደንበኛ ስሪት ከእንግዲህ ተገዢ አይደለም። በመለያ ለመግባት እባክዎ ያዘምኑት።</translation>
 <translation id="5846929185714966548">ትር 4</translation>
@@ -3488,7 +3482,6 @@
 <translation id="6317318380444133405">ከአሁን በኋላ አይደገፍም።</translation>
 <translation id="6317369057005134371">የመተግበሪያ መስኮትን በመጠበቅ ላይ...</translation>
 <translation id="6318407754858604988">ማውረድ ተጀምሯል</translation>
-<translation id="6322653941595359182">ከእርስዎ Chromebook ሆነው የጽሑፍ መልዕክቶችን ይላኩ እና ይቀበሉ</translation>
 <translation id="6324916366299863871">አቋራጭን ያርትዑ</translation>
 <translation id="6325191661371220117">ራስ-አስጀምርን አሰናክል</translation>
 <translation id="6326175484149238433">ከChrome አስወግድ</translation>
@@ -3532,6 +3525,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />የስርዓት መረጃ<ph name="END_LINK1" /> እና <ph name="BEGIN_LINK2" />ልኬቶች<ph name="END_LINK2" /> ይላኩ</translation>
 <translation id="6397094776139756010">ስምረት እና ግላዊነት ማላበሻ አማራጮች</translation>
 <translation id="6397592254427394018">&amp;ሁሉንም እልባቶች ማንነትን በስውር መስኮት ክፈት</translation>
+<translation id="639777613761517128">ፋይሎችን በ$1 ለመክፈት መጀመሪያ ወደ የLinux ፋይሎች አቃፊው ይቅዱ።</translation>
 <translation id="6398715114293939307">Google Play መደብርን አስወግድ</translation>
 <translation id="6398765197997659313">ከሙሉ ማሳያ መስኮት ይውጡ</translation>
 <translation id="6399774419735315745">ሰላይ</translation>
@@ -3557,7 +3551,6 @@
 <translation id="642282551015776456">ይህ ስም የፋይል ወይም አቃፊ ስም ሆኖ ሊያገለግል አይችልም።</translation>
 <translation id="642469772702851743">ይህ መሣሪያ (SN፦ <ph name="SERIAL_NUMBER" />) በዋና ባለቤቱ ተቆልፎ ነበር።</translation>
 <translation id="6426200009596957090">የChromeVox ቅንብሮችን ክፈት</translation>
-<translation id="6427415464407526111">የእርስዎን የደህንነት ቁልፍ ይምረጡ</translation>
 <translation id="6429384232893414837">የማዘመን ስህተት</translation>
 <translation id="6430814529589430811">Base64-encoded ASCII፣ ነጠላ ሰርቲፊኬት</translation>
 <translation id="6431217872648827691">ከ<ph name="TIME" /> ጀምሮ ሁሉም ውሂብዎ በGoogle ይለፍ ቃልዎ
@@ -3715,7 +3708,6 @@
 <translation id="6655190889273724601">የገንቢ ሁነት</translation>
 <translation id="6655458902729017087">መለያዎችን ደብቅ</translation>
 <translation id="6657585470893396449">የይለፍ ቃል፦</translation>
-<translation id="6658023813581644008">በመለያ ለመግባት Smart Lockን ለማቀናበር የእርስዎን የይለፍ ቃል ያስገቡ</translation>
 <translation id="6659213950629089752">ይህ ገጽ በ«<ph name="NAME" />» ቅጥያው ነው የጎላው</translation>
 <translation id="6659594942844771486">ትር</translation>
 <translation id="6664237456442406323">የአጋጣሚ ነገር ሆኖ ኮምፒውተርዎ በተበላሸ የሃርድዌር መታወቂያ ነው የተዋቀረው። ይሄ Chrome ስርዓተ ክወና በቅርብ ጊዜዎቹ የደህንነት ጥገናዎች እንዳይዘመን ያግደዋል፣ እና የእርስዎ ኮምፒውተር <ph name="BEGIN_BOLD" />ለተንኮል-አዘል ጥቃቶች የተጋለጠ ሊሆን ይችላል<ph name="END_BOLD" />።</translation>
@@ -3851,7 +3843,6 @@
 <translation id="6885771755599377173">የሥርዓት መረጃ ቅድመ-ዕይታ</translation>
 <translation id="6886871292305414135">አገናኙን በአዲስ &amp;ትር ክፈት</translation>
 <translation id="6892812721183419409">እንደ <ph name="USER" /> ሆነው አገናኙን ይክፈቱ</translation>
-<translation id="6896398788631624004">የደህንነት ቁልፍዎን ይሰኩትና ያግብሩት</translation>
 <translation id="6896758677409633944">ቅዳ</translation>
 <translation id="6898440773573063262">አሁን የኪዮስክ መተግበሪያዎች በዚህ መሣሪያ ላይ ወደ ራስ-ጀምር መዋቀር ይችላሉ።</translation>
 <translation id="6898699227549475383">ድርጅት (O)</translation>
@@ -3870,6 +3861,7 @@
 <translation id="6915804003454593391">ተጠቃሚ፦</translation>
 <translation id="6916590542764765824">ቅጥያዎችን አስተዳድር</translation>
 <translation id="6920989436227028121">እንደ መደበኛ ትር ክፈት</translation>
+<translation id="6921709132208495314">በዚህ ገጽ ላይ ውሂብ መጠቀም ያቁሙ</translation>
 <translation id="6922128026973287222">Google የውሂብ አስቀማጭን በመጠቀም በበለጠ ፍጥነት ውሂብ ያስቀምጡ እና ያስሱ። የበለጠ ለመረዳት ጠቅ ያድርጉ።</translation>
 <translation id="6923132443355966645">ይሸብልሉ / ጠቅ ያድርጉ</translation>
 <translation id="6930242544192836755">ጊዜ</translation>
@@ -3892,6 +3884,7 @@
 <translation id="6965382102122355670">እሺ</translation>
 <translation id="6965648386495488594">ወደብ</translation>
 <translation id="6965978654500191972">መሣሪያ</translation>
+<translation id="6968288415730398122">ማያ ገጽ መቆለፊያን ለማዋቀር የይለፍ ቃልዎን ያስገቡ</translation>
 <translation id="6970480684834282392">የጀማሪ አይነት</translation>
 <translation id="6970856801391541997">የተወሰኑ ገጾችን አትም</translation>
 <translation id="6972180789171089114">ኦዲዮ/ቪዲዮ</translation>
@@ -3902,6 +3895,7 @@
 <translation id="6978121630131642226">የፍለጋ ፕሮግራሞች</translation>
 <translation id="6978611942794658017">ይህ ፋይል የተሰራው የWindows ሶፍትዌር ለሚጠቀም ተኮ ነው። ይሄ Chrome OSን ከሚያሄደው መሣሪያዎ ጋር ተኳሃኝ አይደለም። አግባብ የሆነውን ተተኪ መተግበሪያ ለማግኘት እባክዎ የChrome ድር መደብሩን ይፈልጉ።</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">ድምጸ-ከል አድርግ (ነባሪ)</translation>
 <translation id="6979737339423435258">የምንጊዜም</translation>
 <translation id="6980462514016882061">Google ፍለጋን፣ ማስታወቂያዎችን እና ሌሎች የGoogle አገልግሎቶችን ግላዊነት ለማላበስ ሲል የአሰሳ ታሪክዎን ሊጠቀም ይችላል።</translation>
 <translation id="6981982820502123353">ተደራሽነት</translation>
@@ -4050,6 +4044,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />ይህ የመሣሪያዎ እና እንዴት እንደሚጠቀሙበት አጠቃላይ መረጃ (እንደ የባትሪ ደረጃ፣ የመተግበሪያ አጠቃቀም እና የአውታረ መረብ ተገናኝነት ያለ) ነው። ውሂቡ የGoogle ምርቶችን እና አገልግሎቶችን ለሁሉም ሰው ለማሻሻል ጥቅም ላይ ይውላል። አንዳንድ የተዋሃደ መረጃ እንደ የAndroid ገንቢዎች ያሉ አገሮች እንዲሁም መተግበሪያዎቻቸውን እና ምርቶቻቸውን እንዲያሻሽሉ ያግዛል።<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ይህን ባህሪ ማጥፋት መሣሪያዎ እንደ የስርዓት ዝማኔዎች እና ደህንነት ላሉ መሠረታዊ አገልግሎቶች የሚያስፈልግ መረጃ የመላክ አቅሙ ላይ ተጽዕኖ የለውም።<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />ይህን ባህሪ ከቅንብሮች &gt; Google ሆነው መቆጣጠር ይችላሉ። ከምናሌው አጠቃቀም እና ምርመራን ይምረጡ።<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">በዚህ መሣሪያ ላይ መጠቀም የሚቻሉ <ph name="NUMBER_OF_APPS" /> መተግበሪያዎችን ከመለያዎ አግኝተናል።</translation>
 <translation id="7199158086730159431">እ&amp;ገዛ አግኝ</translation>
 <translation id="7200083590239651963">ውቅረትን ይምረጡ</translation>
 <translation id="720110658997053098">ይህን መሣሪያ እስከመጨረሻው በኪዮስክ ሁነታ አቆየው</translation>
@@ -4070,7 +4065,6 @@
 <translation id="7228523857728654909">ማያ ገጽ መቆለፊያ እና በመለያ መግባት</translation>
 <translation id="7229570126336867161">ኢቪዲኦ ያስፈልጋል</translation>
 <translation id="7230787553283372882">የእርስዎን የጽሑፍ መጠን ያብጁ</translation>
-<translation id="7231589788477569369">ከእነዚህ ቅንብሮች ጋር ሙሉውን የረዳት ተሞክሮ ያግኙ</translation>
 <translation id="7232750842195536390">ዳግም መሰየም አልተሳካም</translation>
 <translation id="7234406375359457793">ማፈናጠጥ ላይ ስህተት። የተገለጸው ማጋራት የሚደገፍ አይደለም።</translation>
 <translation id="7238585580608191973">SHA-256 የጣት አሻራ</translation>
@@ -4080,7 +4074,6 @@
 <translation id="7243632151880336635">አጽዳና ዘግተህ ውጣ</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ምርጥ)</translation>
 <translation id="7246339268451149667">የጣት አሻራ መክፈቻ ይንቃ?</translation>
-<translation id="7246489301073081944">ለመውጣት |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| ይያዙ</translation>
 <translation id="7246947237293279874">የኤፍቲፒ ተኪ</translation>
 <translation id="725109152065019550">ይቅርታ፣ አስተዳዳሪዎ በመለያዎ ላይ ውጫዊ ማከማቻን አሰናክሏል።</translation>
 <translation id="7253521419891527137">&amp;ተጨማሪ ይወቁ</translation>
@@ -4233,7 +4226,6 @@
 <translation id="7489605380874780575">ብቁነትን አረጋግጥ</translation>
 <translation id="749028671485790643">ሰው <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">የማክ አድራሻ</translation>
-<translation id="7490950320178383728">የደህንነት ቁልፍ ከብሉቱዝ ጋር አብረው ይጠቀሙበት</translation>
 <translation id="7491962110804786152">TAB</translation>
 <translation id="7493386493263658176">የ<ph name="EXTENSION_NAME" /> ቅጥያ እንደ የይለፍ ቃላት እና የክሬዲት ካርድ ቁጥሮች ያለ የሚተይቡትን ጽሑፍ ሁሉ ሊሰበስብ ይችላል። ይህን ቅጥያ መጠቀም ይፈልጋሉ?</translation>
 <translation id="7494065396242762445">የWindows ቅንብሮችን ክፈት</translation>
@@ -4483,7 +4475,6 @@
 <translation id="7850851215703745691">እነዚህ የDrive ፋይሎች ገና አልተጋሩም</translation>
 <translation id="7851457902707056880">በመለያ መግባት ለመለያው ባለቤት ብቻ ተገድቧል። እባክዎ ዳግም ያስነሱና በባለቤቱ መለያ ይግቡ። ማሽኑ በ30 ሰከንዶች ውስጥ ዳግም ይነሳል።</translation>
 <translation id="7851716364080026749">የካሜራ እና ማይክሮፎን መዳረሻ ሁልጊዜ አግድ</translation>
-<translation id="7851816139220202929">ከNFC ጋር የእርስዎን የደህንነት ቁልፍ ይጠቀሙ</translation>
 <translation id="7853747251428735">ተጨማሪ መሣሪያዎ&amp;ች</translation>
 <translation id="7856006446339184955">የስርዓት ውሂብ ይላኩ። ይህ መሣሪያ በአሁኑ ጊዜ የምርመራ እና የመሣሪያ እ3ና የመተግበሪያ አጠቃቀም ውሂብን በራስ-ሰር ወደ Google ይልካል። ይህ <ph name="BEGIN_LINK1" />ቅንብር<ph name="END_LINK1" /> በባለቤቱ አስገዳጅነት ያለው እንዲሆን ይደረጋል። ተጨማሪ የድር እና የመተግበሪያ እንቅስቃሴን ካበሩ ይህ መረጃ በእኔ እንቅስቃሴ ውስጥ ማቀናበር እንዲችሉ በእርስዎ መለያ ላይ ይከማቻል። <ph name="BEGIN_LINK2" />የበለጠ ለመረዳት<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">ለየት ያሉትን ያክሉ</translation>
@@ -4566,6 +4557,7 @@
 <translation id="7973962044839454485">PPP ማረጋገጫ በተሳሳተ የተጠቃሚ ስም ወይም የይለፍ ቃል ምክንያት አልተሳካም</translation>
 <translation id="7974566588408714340"><ph name="EXTENSIONNAME" />ን መጠቀም እንደገና ይሞክሩ</translation>
 <translation id="7974936243149753750">ትርፍ ቅኝት</translation>
+<translation id="79766959863778284">XR የተነጠለ የመሣሪያ አገልግሎት</translation>
 <translation id="7977551819349545646">Chromeboxን በማዘመን ላይ...</translation>
 <translation id="7978412674231730200">የግል ቁልፍ</translation>
 <translation id="7978450511781612192">ይህ ከእርስዎ የGoogle መለያዎች ዘግተው እንዲወጡ ያደርግዎታል። የእርስዎ እልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ተጨማሪ ነገሮች ከእንግዲህ አይሰምሩም።</translation>
@@ -4621,7 +4613,6 @@
 <translation id="8030656706657716245">አታሚ አክል</translation>
 <translation id="8032244173881942855">ትሩን cast ማድረግ አልተቻለም።</translation>
 <translation id="8033827949643255796">ተመርጧል</translation>
-<translation id="8033958968890501070">ጊዜው አልቋል</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{ሁሉንም በ&amp;ማንነት የማያሳውቅ መስኮት ውስጥ ክፈት}=1{&amp;ማንነትን በማያሳውቅ መስኮት ውስጥ ክፈት}one{ሁሉንም (#) በ&amp;ማንነት የማያሳውቅ መስኮት ውስጥ ክፈት}other{ሁሉንም (#) በ&amp;ማንነት የማያሳውቅ መስኮት ውስጥ ክፈት}}</translation>
 <translation id="8037117027592400564">ተሰብስቦ በተሰራ ንግግር አማካኝነት ሁሉንም የተነገሩ ጽሑፎች ያነብባል</translation>
 <translation id="8037357227543935929">ጠይቅ (ነባሪ)</translation>
@@ -4794,6 +4785,7 @@
 <translation id="8320459152843401447">የእርስዎ ሙሉ ማያ ገጽ</translation>
 <translation id="8322814362483282060">ይህ ገጽ ማይክሮፎንዎን እንዳይደርስበት ታግዷል።</translation>
 <translation id="8326478304147373412">PKCS #7፣ የሰርቲፊኬት ሰንሰለት</translation>
+<translation id="8327039559959785305">የLinux ፋይሎችን ማፈናጠጥ ላይ ስህተት። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="8329978297633540474">ስነጣ አልባ ጽሑፍ</translation>
 <translation id="8335587457941836791">ከመደርደሪያ ንቀል</translation>
 <translation id="8336153091935557858">ትላንትና <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4844,7 +4836,6 @@
 <translation id="8425213833346101688">ለውጥ</translation>
 <translation id="8425492902634685834">ከተግባር አሞሌ ጋር አጣብቅ</translation>
 <translation id="8425755597197517046">ለ&amp;ጥፍ እና ፈልግ</translation>
-<translation id="8426117172745886547">ከ(<ph name="KEY_EQUIVALENT" />) ከመውጣት በፊት አስጠንቅቅ</translation>
 <translation id="8426713856918551002">በማንቃት ላይ</translation>
 <translation id="8427292751741042100">በማንኛውም አስተናጋጅ ላይ ተከትቷል</translation>
 <translation id="8428213095426709021">ቅንብሮች</translation>
@@ -4932,7 +4923,6 @@
 <translation id="8551388862522347954">ፍቃዶች</translation>
 <translation id="8553342806078037065">ሌሎች ሰዎችን አቀናብር</translation>
 <translation id="8554899698005018844">ምንም ቋንቋ</translation>
-<translation id="8557347704037207368">ማሳወቂያዎችን ከAndroid Web Messages ለእርስዎ ይልካል</translation>
 <translation id="855773602626431402">በማጠሪያ ያልተቀመጠ ተሰኪ በዚህ ገጽ ላይ እንዳይሄድ ታግዷል።</translation>
 <translation id="8557930019681227453">ዝርዝር ሰነድ</translation>
 <translation id="8559694214572302298">ምስል ከጽምጽ ጋር አዛምዶ አንባቢ</translation>
@@ -5045,6 +5035,7 @@
 <translation id="8714154114375107944">የድጋፍ መጨረሻ</translation>
 <translation id="8714838604780058252">የጀርባ ግራፊክስ</translation>
 <translation id="8715480913140015283">የጀርባ ትር ካሜራዎን እየተጠቀመ ነው</translation>
+<translation id="8716931980467311658">ከዚህ <ph name="DEVICE_TYPE" /> በእርስዎ Linux ፋይሎች አቃፊ ውስጥ ያሉ ሁሉም የLinux መተግበሪያዎች እና ውሂብ ይሰረዙ?</translation>
 <translation id="8719653885894320876"><ph name="PLUGIN_NAME" />ን ማውረድ አልተሳካም</translation>
 <translation id="8723829621484579639">ማንነት የማያሳውቁ ንዑስ ክፈፎች ለ፦ <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;በአቃፊ ውስጥ አሳይ</translation>
@@ -5208,7 +5199,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ተበላሽቷል</translation>
 <translation id="8983677657449185470">የጥንቃቄ አሰሳ እንዲሻሻል ያግዙ</translation>
 <translation id="8984654317541110628">የፋይል ማጋራት ዩአርኤል</translation>
-<translation id="8984872292925913496">ባለ6-አኃዝ ፒኑን በቁልፍዎ ጀርባ ላይ ያግኙት</translation>
 <translation id="8986362086234534611">እርሳ</translation>
 <translation id="8986494364107987395">የአጠቃቀም ስታስቲክስ እና የብልሽት ሪፖርቶች በራስ ሰር ወደ Google ይላኩ።</translation>
 <translation id="8987927404178983737">ወር</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index a9a5f1ba..3782efa0 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">تمييز الكائن باستخدام تركيز لوحة المفاتيح عندما يتغير</translation>
 <translation id="1173894706177603556">إعادة تسمية</translation>
 <translation id="1174073918202301297">تمت إضافة الاختصار</translation>
-<translation id="1174808551768282258">‏يمكنك إلغاء قفل جهاز Chromebook باستخدام هاتفك.<ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">ط&amp;باعة...</translation>
 <translation id="117624967391683467">جارٍ نسخ <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">‏قد تستخدم Google سجلّ التصفح لتخصيص البحث والإعلانات وخدمات Google الأخرى. يمكنك تغيير ذلك في أي وقت على myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">تعليق</translation>
 <translation id="1181037720776840403">إزالة</translation>
 <translation id="1183237619868651138">تعذّر تثبيت <ph name="EXTERNAL_CRX_FILE" /> في ذاكرة التخزين المؤقت المحلية.</translation>
-<translation id="1183378459020939734">هل أنت مستعد لإقران مفتاح الأمان؟</translation>
 <translation id="1185924365081634987">يمكنك أيضا أن تجرّب <ph name="GUEST_SIGNIN_LINK_START" />التصفح كضيف<ph name="GUEST_SIGNIN_LINK_END" /> لإصلاح هذا الخطأ في الشبكة.</translation>
 <translation id="1186771945450942097">إزالة البرامج الضارة</translation>
 <translation id="1187722533808055681">عمليات التنشيط من الوضع بعيد</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">لم يتم العثور على أي أجهزة بلوتوث</translation>
 <translation id="1306606229401759371">تغيير الإعدادات</translation>
 <translation id="1307559529304613120">عفوًا! تعذّر النظام في تخزين الرمز المميز للدخول طويل المدى إلى واجهة برمجة التطبيقات على هذا الجهاز.</translation>
+<translation id="1307931752636661898">‏يتعذّر عرض ملفات نظام التشغيل Linux</translation>
 <translation id="1313405956111467313">تهيئة تلقائية للخادم الوكيل</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">‏ستتم مزامنة الإشارات المرجعية والسجل وغير ذلك من الإعدادات مع حسابك على Google.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">فتح إعدادات الجهاز للماوس ولوحة اللمس</translation>
 <translation id="1531004739673299060">نافذة التطبيق</translation>
 <translation id="15373452373711364">مؤشر الماوس الكبير</translation>
+<translation id="1538729222189715449">‏جارٍ فتح ملفات نظام التشغيل Linux...</translation>
 <translation id="1540605929960647700">تفعيل الوضع التجريبي</translation>
 <translation id="1543284117603151572">‏تم الاستيراد من شبكة Edge</translation>
 <translation id="1545177026077493356">وضع الكشك التلقائي</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">‏تغيير وضع HUD للمس</translation>
 <translation id="1784849162047402014">مساحة القرص الموجودة على الجهاز منخفضة.</translation>
 <translation id="1786636458339910689">‏مساحات Drive المشتركة</translation>
-<translation id="1792161662640298233">التحقُّق من مفتاح الأمان</translation>
 <translation id="1792619191750875668">شاشة تم توسيعها</translation>
 <translation id="1794791083288629568">يمكنك إرسال تعليقات لمساعدتنا في إصلاح هذه المشكلة.</translation>
 <translation id="1795214765651529549">استخدام المظهر الكلاسيكي</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">مرحبًا!</translation>
 <translation id="1914326953223720820">خدمة "فك الضغط"</translation>
 <translation id="1915073950770830761">الكاناري</translation>
-<translation id="1915543339027206592">‏استنادًا إلى إعدادات حسابك، قد تقتصر تجربة استخدام "مساعد Google" على خدمات محدودة مثل نتائج البحث على الويب والنُكات والمعلومات المحلّية.</translation>
 <translation id="1916502483199172559">الصورة الرمزية التلقائية الحمراء</translation>
 <translation id="1918141783557917887">أص&amp;غر</translation>
 <translation id="1919345977826869612">إعلانات</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">يريد <ph name="PEPPER_PLUGIN_NAME" /> الموجود على <ph name="PEPPER_PLUGIN_DOMAIN" /> الوصول إلى جهاز الكمبيوتر.</translation>
 <translation id="2178614541317717477">‏اختراق المرجع المصدق (CA)</translation>
 <translation id="218070003709087997">استخدم رقمًا للإشارة إلى عدد النُسخ المطلوب طباعتها (من 1 إلى 999).</translation>
+<translation id="2184515124301515068">‏السماح لمتصفِّح Chrome باختيار الوقت الذي يمكن للمواقع الإلكترونية تشغيل الصوت فيه (مُوصى به)</translation>
 <translation id="2187895286714876935">خط استيراد شهادة الخادم</translation>
 <translation id="2187906491731510095">تم تحديث الإضافات.</translation>
 <translation id="2188881192257509750">فتح <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">قراءة بياناتك وتغييرها على عدد من المواقع</translation>
 <translation id="2242687258748107519">معلومات الملف</translation>
 <translation id="2243194103992005307">لإزالة التطبيقات، انتقل إلى "الإعدادات" &gt; "التطبيقات" أو "مدير التطبيقات"، ثم انقر على التطبيق الذي تريد إلغاء تثبيته (قد تحتاج إلى التمرير سريعًا لليمين أو اليسار للعثور على التطبيق)، ثم انقر على "إلغاء التثبيت" أو "إيقاف".</translation>
+<translation id="224940702122312781">ستسخدم هذه الصفحة الكثير من البيانات.</translation>
 <translation id="2249605167705922988">مثال: 1-5، 8، 11-13</translation>
 <translation id="2251218783371366160">فتح باستخدام عارض النظام</translation>
 <translation id="225163402930830576">تحديث الشبكات</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">تهيئة الشبكة</translation>
 <translation id="230927227160767054">تريد هذه الصفحة تثبيت معالج الخدمة.</translation>
 <translation id="2309620859903500144">تم حظر هذا الموقع من الوصول إلى أجهزة استشعار الإضاءة أو الحركة.</translation>
-<translation id="2311075084924370935">‏لمساعدتك في استخدام التقويم والتذكيرات والرحلات الجوية وغيرها من الخدمات، يحتاج "مساعد Google" للوصول إلى إعدادات "النشاط على الويب وفي التطبيقات" و"معلومات الجهاز" و"نشاط الصوت والإعدادات الصوتية".</translation>
+<translation id="2315414688463285945">‏حدث خطأ أثناء تهيئة ملفات نظام التشغيل Linux. يُرجى إعادة المحاولة.</translation>
 <translation id="2315821125498993513">تعذَّر الربط مع هاتفك. <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">لا، شكرًا</translation>
 <translation id="2317842250900878657">تم إكمال <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">حجم الورق</translation>
 <translation id="2318817390901984578">‏لاستخدام تطبيقات Android، اشحن جهاز <ph name="DEVICE_TYPE" /> وحدِّثه.</translation>
 <translation id="2318923050469484167">جلسة التصفح المتخفي الحالية (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">استخدام مفتاح الأمان مع <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">الرؤوس والتذييلات</translation>
 <translation id="2325650632570794183">‏نوع الملف هذا غير متوافق. يُرجى الانتقال إلى سوق Chrome الإلكتروني للعثور على تطبيق يمكنه فتح هذا النوع من الملفات.</translation>
 <translation id="2326931316514688470">&amp;إعادة تحميل التطبيق</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">إضافة "مشاركة ملف"</translation>
 <translation id="2367972762794486313">إظهار التطبيقات</translation>
 <translation id="2369536625682139252">سيتم حذف جميع البيانات المُخزَّنة بواسطة <ph name="SITE" /> باستثناء ملفات تعريف الارتباط.</translation>
-<translation id="237058345584060620">يمكنك إقران مفتاحك بهذا الجهاز حتى تتمكن من استخدامه لتسجيل الدخول إلى حسابك.</translation>
 <translation id="2371076942591664043">فتح الملفّ عند &amp;انتهاء التحميل</translation>
 <translation id="2377319039870049694">تبديل إلى عرض القائمة</translation>
 <translation id="2377667304966270281">الأخطاء الجسيمة</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">‏تعذّر العثور على هاتفك. تأكد من تشغيل البلوتوث لجهاز <ph name="DEVICE_TYPE" />. &lt;a&gt;مزيد من المعلومات&lt;/a&gt;</translation>
 <translation id="2489918096470125693">إضافة &amp;مجلد...</translation>
 <translation id="249113932447298600">عذرًا، لا يتوفر الجهاز <ph name="DEVICE_LABEL" /> في الوقت الحالي.</translation>
-<translation id="2492040222276243256">اضغط مع الاستمرار على الزر في مفتاح الأمان لمدة لا تقل عن 5 ثوانٍ.</translation>
 <translation id="2493021387995458222">تحديد "كلمة تلو الأخرى"</translation>
 <translation id="249303669840926644">تعذر إكمال التسجيل</translation>
 <translation id="2495777824269688114">اسكتشاف المزيد من الميزات أو الحصول على إجابات. اختر "؟" للحصول على مساعدة.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">الإجمالي: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">طويل</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (النظام الأساسي <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">تشارك علامة التبويب هذه شاشتك.</translation>
 <translation id="2586657967955657006">الحافظة</translation>
 <translation id="2586672484245266891">‏يُرجى إدخال عنوان URL أقصر.</translation>
 <translation id="2587922270115112871">‏لا يؤدي إنشاء مستخدم يخضع للإدارة إلى إنشاء حساب Google، ولن تنتقل الإعدادات والبيانات التابعة له إلى الأجهزة الأخرى التي تستخدم مزامنة Chrome. يسري المستخدم الذي يخضع للإدارة فقط على هذا الجهاز.</translation>
@@ -1090,7 +1088,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> يستخدم <ph name="USAGE" /> ميغابايت من مساحة القرص.</translation>
 <translation id="2633212996805280240">هل تريد إزالة "<ph name="EXTENSION_NAME" />"؟</translation>
 <translation id="263325223718984101">تعذر على <ph name="PRODUCT_NAME" /> إكمال التثبيت، ولكن ستتم متابعة تشغيله من صورته على القرص.</translation>
-<translation id="2633326789677284179">ارجِع إلى الاسم المطبوع على الجزء الخلفي من مفتاحك</translation>
 <translation id="2635276683026132559">التوقيع</translation>
 <translation id="2636625531157955190">‏لا يستطيع Chrome الدخول إلى الصورة.</translation>
 <translation id="2638087589890736295">عبارة المرور مطلوبة لبدء المزامنة</translation>
@@ -1258,7 +1255,6 @@
 <translation id="287286579981869940">جارٍ إضافة <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">‏للحصول على كلمات المرور على جميع أجهزتك، يُرجى تسجيل الدخول إلى Chrome.</translation>
 <translation id="2875698561019555027">‏(صفحات الخطأ في Chrome)</translation>
-<translation id="2876441201733326392">‏استخدام مفتاح أمان USB</translation>
 <translation id="288042212351694283">الوصول إلى أجهزة العامل الثاني العالمي</translation>
 <translation id="2881966438216424900">تاريخ آخر دخول:</translation>
 <translation id="2882943222317434580">ستتم إعادة تشغيل <ph name="IDS_SHORT_PRODUCT_NAME" /> وإعادة تعيينه بعد وهلة.</translation>
@@ -1326,7 +1322,6 @@
 <translation id="2982970937345031">إرسال التقرير بدون الكشف عن هويتك</translation>
 <translation id="2984337792991268709">اليوم <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">‏تم حظر هذه الصفحة من التحكم تحكمًا كاملاً في أجهزة MIDI.</translation>
-<translation id="2988599644347283908">‏ملاحظة: قد يتم حفظ البيانات التي تتحكَّم فيها هذه الإعدادات واستخدامها في أي من خدمات Google التي تسجّل الدخول إليها، وذلك لمنحك تجارب مُخصّصة وعرض إعلانات تناسبك. ويمكنك الاطِّلاع على بياناتك وحذفها وتغيير إعداداتك على account.google.com.</translation>
 <translation id="2989474696604907455">غير متصل</translation>
 <translation id="2989786307324390836">‏حفظ شهادة واحدة بتشفير DER ثنائي</translation>
 <translation id="2993517869960930405">معلومات التطبيق</translation>
@@ -1379,7 +1374,6 @@
 <translation id="304826556400666995">إلغاء تجاهل علامات التبويب</translation>
 <translation id="3053013834507634016">استخدام مفتاح الشهادة</translation>
 <translation id="3057861065630527966">نسخ الصور والفيديوهات احتياطيًا</translation>
-<translation id="3059313675706898490">‏رسائل Android</translation>
 <translation id="3060379269883947824">تفعيل سماع الاختيار</translation>
 <translation id="3061707000357573562">خدمة رمز التصحيح</translation>
 <translation id="3064410671692449875">بيانات غير كافية</translation>
@@ -1408,7 +1402,6 @@
 <translation id="3090819949319990166">‏لا يمكن نسخ ملف CRX الخارجي إلى <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">تم إقران "<ph name="DEVICE_NAME" />"</translation>
 <translation id="3101709781009526431">التاريخ والوقت</translation>
-<translation id="3104900172193317662">السماح باستخدام مفتاح الأمان</translation>
 <translation id="310671807099593501">يستخدم موقع الويب البلوتوث.</translation>
 <translation id="3115128645424181617">تعذّر العثور على هاتفك. تأكد من أنه في متناول يديك وأنّ البلوتوث قيد التشغيل.</translation>
 <translation id="3115147772012638511">في انتظار ذاكرة التخزين المؤقت ...</translation>
@@ -1492,7 +1485,6 @@
 <translation id="3251759466064201842">&lt;ليس جزءًا من الشهادة&gt;</translation>
 <translation id="3254434849914415189">اختر التطبيق التلقائي لملفات <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">تم إيقاف الرصد التلقائي للمنطقة الزمنية</translation>
-<translation id="3254772308201947812">نعم، أنا موافق</translation>
 <translation id="3264544094376351444">‏خط Sans-serif</translation>
 <translation id="3264547943200567728">‏تعذّر إعداد شبكة Chromebox</translation>
 <translation id="3264582393905923483">السياق</translation>
@@ -1814,7 +1806,6 @@
 <translation id="3735740477244556633">ترتيب بحسب</translation>
 <translation id="3737274407993947948">‏حدث خطأ أثناء تثبيت نظام تشغيل Linux...</translation>
 <translation id="3737536731758327622">تظهر تنزيلاتك هنا</translation>
-<translation id="3738671331307774213">يساعد إثبات هويتك في حماية بياناتك الخاصة.</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">هل ترغب في فتح <ph name="APPLICATION" />؟</translation>
 <translation id="3741158646617793859">سيظهر <ph name="DEVICE_NAME" /> الآن في وحدة تحكم المشرف</translation>
@@ -1908,6 +1899,7 @@
 <translation id="3857773447683694438">أبجد هوز حطي كلمن سعفص قرشت</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: تم إيقاف المزامنة مؤقتًا</translation>
 <translation id="3860381078714302691">‏مرحبًا بك في Hangouts Meet</translation>
+<translation id="3861241522664181545">تم إيقاف تحميل الصفحة مؤقتًا.</translation>
 <translation id="3862134173397075045">‏مرحبًا بكم في تجربة الإرسال في Chrome!</translation>
 <translation id="3862788408946266506">‏يجب تثبيت التطبيق الذي يحمل سمة البيان "kiosk_only" في وضع الكشك على نظام تشغيل Chrome.</translation>
 <translation id="3865414814144988605">درجة الدقة</translation>
@@ -1922,7 +1914,6 @@
 <translation id="3873315167136380065">لتفعيل هذا الإعداد، يمكنك <ph name="BEGIN_LINK" />إعادة ضبط المزامنة<ph name="END_LINK" /> لإزالة عبارة مرور المزامنة.</translation>
 <translation id="3878840326289104869">إنشاء مستخدم يخضع للإدارة</translation>
 <translation id="3879748587602334249">تطبيق إدارة التنزيل</translation>
-<translation id="3880709822663530586">لا يعمل مفتاح الأمان إلا عند تفعيل البلوتوث على جهازك.</translation>
 <translation id="3888550877729210209">تسجيل الملاحظات من خلال <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">‏إضافة OpenVPN / L2TP...</translation>
 <translation id="3893536212201235195">قراءة وتغيير إعدادات إمكانية الوصول</translation>
@@ -2065,6 +2056,7 @@
 <translation id="4096824249111507322">يتم حاليًا تحضيرالوحدة الآمنة، يُرجى الانتظار (قد يستغرق ذلك بضع دقائق)...</translation>
 <translation id="4099060993766194518">هل تريد استعادة محرك البحث التلقائي؟</translation>
 <translation id="4100733287846229632">المساحة على الجهاز منخفضة للغاية</translation>
+<translation id="4103091233824664032">يُرجى إدخال كلمة مرورك لتهيئة قفل الشاشة وتسجيل الدخول</translation>
 <translation id="4104163789986725820">ت&amp;صدير...</translation>
 <translation id="4105563239298244027">‏احصل على 1 تيرابايت مجانًا مع Google Drive</translation>
 <translation id="4107048419833779140">تحديد أجهزة التخزين وإخراجها</translation>
@@ -2085,7 +2077,6 @@
 <translation id="4136203100490971508">سيتم إيقاف الإضاءة الليلية تلقائيًا عند شروق الشمس.</translation>
 <translation id="4138267921960073861">عرض أسماء المستخدمين والصور على شاشة تسجيل الدخول</translation>
 <translation id="4144218403971135344">‏يمكنك الحصول على فيديو بجودة أفضل والحفاظ على عمر البطارية. ولن يتم تشغيل الفيديو إلا على شاشة تعمل بتكنولوجيا Google Cast.</translation>
-<translation id="414599683948988413">‏استخدام مفتاح الأمان مع USB</translation>
 <translation id="4146026355784316281">افتح دائمًا باستخدام عرض النظام</translation>
 <translation id="4146785383423576110">إعادة التعيين وإزالة البرامج الضارة</translation>
 <translation id="4147897805161313378">‏صور Google‏‏</translation>
@@ -2220,6 +2211,7 @@
 <translation id="4394049700291259645">إيقاف</translation>
 <translation id="4400367121200150367">ستظهر هنا مواقع الويب التي لا يتم حفظ كلمات المرور لها مطلقًا</translation>
 <translation id="4400632832271803360">‏اضغط على مفتاح Launcher باستمرار لتبديل سلوك مفاتيح الصف العلوي</translation>
+<translation id="4405117686468554883">‏jpeg.* وjpg.* وpng.*</translation>
 <translation id="4408599188496843485">م&amp;ساعدة</translation>
 <translation id="4409697491990005945">الهوامش</translation>
 <translation id="4411578466613447185">موقّع الشفرة</translation>
@@ -2268,6 +2260,7 @@
 <translation id="4480590691557335796">‏يمكن لـ Chrome العثور على البرامج الضارة على جهاز الكمبيوتر وإزالتها.</translation>
 <translation id="4481530544597605423">الأجهزة التي تم إلغاء إقرانها</translation>
 <translation id="4482194545587547824">‏قد يستخدم Google سجل التصفح لتخصيص البحث وخدمات Google الأخرى.</translation>
+<translation id="4493287891836751813">‏التعرُّف على "مساعد Google"</translation>
 <translation id="4495419450179050807">عدم الظهور في هذه الصفحة</translation>
 <translation id="4499718683476608392">تفعيل الملء التلقائي لبطاقة الائتمان لملء النماذج بنقرة واحدة</translation>
 <translation id="4500114933761911433">تعطّل <ph name="PLUGIN_NAME" />.</translation>
@@ -2428,6 +2421,7 @@
 <translation id="474217410105706308">تجاهل علامة التبويب</translation>
 <translation id="4742746985488890273">تثبيت في الرف</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />التعرّف على كيفية تحديث التطبيقات<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">الرسائل</translation>
 <translation id="4746971725921104503">يبدو أنك تدير مستخدم بهذا الاسم فعلاً. هل تريد <ph name="LINK_START" />استيراد <ph name="USER_DISPLAY_NAME" /> إلى هذا الجهاز<ph name="LINK_END" />؟</translation>
 <translation id="4748762018725435655">‏يلزم إضافة من سوق Chrome الإلكتروني</translation>
 <translation id="4750394297954878236">الاقتراحات</translation>
@@ -2469,6 +2463,7 @@
 <translation id="4821935166599369261">&amp;التوصيف مفعّل</translation>
 <translation id="4823484602432206655">قراءة إعدادات المستخدم والجهاز وتغييرها</translation>
 <translation id="4823651846660089135">الجهاز للقراءة فقط</translation>
+<translation id="4823955295535347797">‏يمكنك الوصول إلى "مساعد Google" في أي وقت تقول فيه "OK Google" عندما تكون شاشتك في وضع التشغيل.</translation>
 <translation id="4828937774870308359">أسترالي</translation>
 <translation id="4829768588131278040">إعداد رقم التعريف الشخصي</translation>
 <translation id="4830502475412647084">جارٍ تثبيت تحديث لنظام التشغيل</translation>
@@ -2509,6 +2504,7 @@
 <translation id="4876273079589074638">ساعد مهندسينا في تحري هذا العطل وإصلاحه. واسرد الخطوات الدقيقة إذا كان ذلك ممكنًا. لا توجد تفاصيل صغيرة جدًا!</translation>
 <translation id="4876895919560854374">قفل الشاشة وإلغاء قفلها</translation>
 <translation id="4877017884043316611">‏الاقتران مع جهاز Chromebox</translation>
+<translation id="4879491255372875719">الإعداد التلقائي (تلقائي)</translation>
 <translation id="4880214202172289027">شريط تمرير مستوى الصوت</translation>
 <translation id="4880328057631981605">اسم نقطة الدخول</translation>
 <translation id="4880520557730313061">إصلاح تلقائي</translation>
@@ -2661,7 +2657,6 @@
 <translation id="5099354524039520280">لأعلى</translation>
 <translation id="5100114659116077956">‏لكي تحصل على أحدث العناصر، يلزم تحديث Chromebox.</translation>
 <translation id="5101042277149003567">فتح  جميع الإشارات المرجعية</translation>
-<translation id="5104546332954397226">استخدام الهاتف كـ "مفتاح أمان"</translation>
 <translation id="5105855035535475848">تثبيت علامات التبويب</translation>
 <translation id="5108967062857032718">‏الإعدادات - إزالة تطبيقات Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2792,7 +2787,6 @@
 <translation id="5288678174502918605">إ&amp;عادة فتح علامة التبويب المغلقة</translation>
 <translation id="52912272896845572">ملف المفتاح الخاص غير صالح.</translation>
 <translation id="529175790091471945">لتهيئة هذا الجهاز</translation>
-<translation id="5292195676005197571">لاستخدام معظم المفاتيح، ما عليك سوى الضغط على الزر</translation>
 <translation id="5293170712604732402">استعادة الإعدادات إلى الوضع التلقائي الأصلي</translation>
 <translation id="5297082477358294722">تم حفظ كلمة المرور. يمكنك عرض كلمات المرور المحفوظة وإدارتها في <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">مظهر أنشأه</translation>
@@ -2818,6 +2812,7 @@
 <translation id="532776649628038357">أوافق</translation>
 <translation id="532943162177641444">يُرجى نقر الإشعار على جهاز <ph name="PHONE_NAME" /> لإعداد نقطة اتصال الجوّال التي يمكن لهذا الجهاز استخدامها.</translation>
 <translation id="5329858601952122676">&amp;حذف</translation>
+<translation id="5329945517224105597">‏يمكن أن يوفر "مساعد Google" اقتراحات أكثر صلة وإجراءات محددة متعلِّقة بالمحتوى المعروض على شاشتك. ويمكنك تغيير هذا من خلال إعدادات "مساعد Google".</translation>
 <translation id="5330145655348521461">تم فتح هذه الملفات على جهاز سطح مكتب آخر. يمكنك الانتقال إلى <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) للاطلاع عليها.</translation>
 <translation id="5330512191124428349">الحصول على معلومات</translation>
 <translation id="5331069282670671859">ليس لديك أي شهادات في هذه الفئة</translation>
@@ -2862,7 +2857,6 @@
 <translation id="5390100381392048184">السماح للمواقع بتشغيل الصوت</translation>
 <translation id="5390284375844109566">قاعدة بيانات مفهرسة</translation>
 <translation id="5390743329570580756">الإرسال إلى</translation>
-<translation id="5392327114396848796">استخدام "مفتاح أمان" مُدمَج</translation>
 <translation id="5397794290049113714">أنت</translation>
 <translation id="5398572795982417028">مرجع صفحة خارج الحدود المفروضة، الحد الأقصى هو <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">تم حظر الإعلانات</translation>
@@ -3070,6 +3064,7 @@
    <ph name="LINE_BREAKS" />
    يُرجى إغلاق جميع الملفات في الأرشيف أو القرص الافتراضي، ثم إعادة المحاولة.</translation>
 <translation id="5687326903064479980">المنطقة الزمنية</translation>
+<translation id="568824803367507355">‏رصد عبارة "Ok Google"</translation>
 <translation id="5689516760719285838">الموقع</translation>
 <translation id="56907980372820799">ربط البيانات</translation>
 <translation id="5691511426247308406">العائلة</translation>
@@ -3167,7 +3162,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - تسجيل الكاميرا أو الميكروفون</translation>
 <translation id="5835754902560991078">قصير للغاية (0.6 ثانية)</translation>
 <translation id="5838456317242088717">جلسة التصفح المتخفي الحالية</translation>
-<translation id="5842053879378944309">‏استخدام مفتاح أمان USB مع التطبيق <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">تفعيل البلوتوث</translation>
 <translation id="5843250171025351504">لم يعد جهازك متوافقًا مع الحد الأدنى لإصدار البرنامج المحدد من قِبل مشرفك. يُرجى التحديث لتسجيل الدخول.</translation>
 <translation id="5846929185714966548">علامة التبويب 4</translation>
@@ -3486,7 +3480,6 @@
 <translation id="6317318380444133405">الطابعة ليست مدعومة بعد الآن.</translation>
 <translation id="6317369057005134371">جارٍ انتظار نافذة التطبيق...</translation>
 <translation id="6318407754858604988">بدأ التنزيل</translation>
-<translation id="6322653941595359182">‏إرسال رسائل نصيّة واستلامها من جهاز Chromebook</translation>
 <translation id="6324916366299863871">تعديل الاختصار</translation>
 <translation id="6325191661371220117">إيقاف التشغيل التلقائي</translation>
 <translation id="6326175484149238433">‏إزالة من Chrome</translation>
@@ -3530,6 +3523,7 @@
 <translation id="6395423953133416962">إرسال <ph name="BEGIN_LINK1" />معلومات النظام<ph name="END_LINK1" /> و<ph name="BEGIN_LINK2" />المقاييس<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">خيارات التخصيص والمزامنة</translation>
 <translation id="6397592254427394018">فتح جميع الإشارات المرجعية في ن&amp;افذة التصفح المتخفي</translation>
+<translation id="639777613761517128">‏لفتح الملفات باستخدام دولار واحد، يمكنك النَّسخ أولاً إلى مجلد ملفات نظام التشغيل Linux.</translation>
 <translation id="6398715114293939307">‏إزالة متجر Google Play</translation>
 <translation id="6398765197997659313">إنهاء وضع ملء الشاشة</translation>
 <translation id="6399774419735315745">الجاسوسة</translation>
@@ -3555,7 +3549,6 @@
 <translation id="642282551015776456">لا يمكن استخدام هذا الاسم كملف باسم مجلد</translation>
 <translation id="642469772702851743">أقفل المالك هذا الجهاز (الرقم التسلسلي: <ph name="SERIAL_NUMBER" />).</translation>
 <translation id="6426200009596957090">‏فتح إعدادات Chromevox</translation>
-<translation id="6427415464407526111">اختيار مفتاح الأمان</translation>
 <translation id="6429384232893414837">خطأ في التحديث</translation>
 <translation id="6430814529589430811">‏حفظ شهادة واحدة بتشفير ASCII المرمّز باستخدام Base64</translation>
 <translation id="6431217872648827691">‏تم تشفير جميع البيانات باستخدام كلمة مرور Google بدءًا من
@@ -3713,7 +3706,6 @@
 <translation id="6655190889273724601">وضع مطوّر البرامج</translation>
 <translation id="6655458902729017087">إخفاء الحسابات</translation>
 <translation id="6657585470893396449">كلمة المرور</translation>
-<translation id="6658023813581644008">‏لإعداد Smart Lock لتسجيل الدخول، يُرجى إدخال كلمة المرور.</translation>
 <translation id="6659213950629089752">تم تكبير/تصغير هذه الصفحة عبر إضافة "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">علامة تبويب</translation>
 <translation id="6664237456442406323">‏للأسف، تمت تهيئة جهاز الكمبيوتر باستخدام معرف جهاز غير صحيح. وهذا يمنع تحديث نظام التشغيل Chrome بأحدث إصلاحات الأمان، وقد يكون جهاز الكمبيوتر <ph name="BEGIN_BOLD" />عرضة للهجمات الضارة<ph name="END_BOLD" />.</translation>
@@ -3849,7 +3841,6 @@
 <translation id="6885771755599377173">معاينة معلومات النظام</translation>
 <translation id="6886871292305414135">فتح الرابط في &amp;علامة تبويب جديدة</translation>
 <translation id="6892812721183419409">فتح الرابط كـ <ph name="USER" /></translation>
-<translation id="6896398788631624004">توصيل مفتاح الأمان وتفعيله</translation>
 <translation id="6896758677409633944">نسخ</translation>
 <translation id="6898440773573063262">الآن، يمكن تهيئة تطبيقات الكشك للبدء التلقائي على هذا الجهاز.</translation>
 <translation id="6898699227549475383">‏المؤسسة (O)</translation>
@@ -3868,6 +3859,7 @@
 <translation id="6915804003454593391">المستخدم:</translation>
 <translation id="6916590542764765824">إدارة الإضافات</translation>
 <translation id="6920989436227028121">فتح كعلامة تبويب عادية</translation>
+<translation id="6921709132208495314">إيقاف استخدام البيانات في هذه الصفحة</translation>
 <translation id="6922128026973287222">‏حفظ البيانات والاستمتاع بتصفح أسرع باستخدام ميزة توفير البيانات في Google. يمكن النقر للتعرف على المزيد من المعلومات.</translation>
 <translation id="6923132443355966645">التمرير / النقر على</translation>
 <translation id="6930242544192836755">المدة</translation>
@@ -3890,6 +3882,7 @@
 <translation id="6965382102122355670">موافق</translation>
 <translation id="6965648386495488594">المنفذ</translation>
 <translation id="6965978654500191972">جهاز</translation>
+<translation id="6968288415730398122">أدخل كلمة المرور لتهيئة قفل الشاشة</translation>
 <translation id="6970480684834282392">نوع التشغيل</translation>
 <translation id="6970856801391541997">طباعة صفحات محددة</translation>
 <translation id="6972180789171089114">صوت/فيديو</translation>
@@ -3900,6 +3893,7 @@
 <translation id="6978121630131642226">محرّكات البحث</translation>
 <translation id="6978611942794658017">‏تم تصميم هذا الملف لأجهزة الكمبيوتر باستخدام برنامج Windows. هذا غير متوافق مع جهازك الذي يعمل بنظام التشغيل Chrome OS. يُرجى البحث في سوق Chrome الإلكتروني للحصول على تطبيق بديل مناسب.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">كتم الصوت (تلقائي)</translation>
 <translation id="6979737339423435258">جميع الأوقات</translation>
 <translation id="6980462514016882061">‏قد تستخدم Google سجل التصفح لتخصيص البحث، والإعلانات، وخدمات Google الأخرى</translation>
 <translation id="6981982820502123353">إمكانية الدخول</translation>
@@ -4048,6 +4042,7 @@
 <translation id="7197160646667308890">‏<ph name="BEGIN_PARAGRAPH1" />هذه معلومات عامة عن جهازك وكيفية استخدامه (مثل مستوى طاقة البطارية واستخدام التطبيقات وجودة اتصال الشبكة). وسيتم استخدام هذه البيانات في تحسين منتجات Google وخدماتها للجميع. كما تساعد بعض المعلومات المُجمعّة الشركاء، مثل مطوِّري برامج Android، على تحسين تطبيقاتهم ومنتجاتهم أيضًا.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />لا يؤثر إيقاف هذه الميزة في إمكانية جهازك لإرسال المعلومات اللازمة للخدمات الأساسية، مثل تحديثات النظام والأمان.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />يمكنك التحكُّم في هذه الميزة من "الإعدادات" &gt; Google. يمكنك بعد ذلك اختيار "الاستخدام وبيانات التشخيص" من القائمة.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">لقد عثرنا على <ph name="NUMBER_OF_APPS" /> من التطبيقات من حسابك التي يمكن استخدامها على هذا الجهاز.</translation>
 <translation id="7199158086730159431">الحصول على مساعدة</translation>
 <translation id="7200083590239651963">اختيار تهيئة</translation>
 <translation id="720110658997053098">تشغيل هذا الجهاز في وضع الكشك دائمًا</translation>
@@ -4068,7 +4063,6 @@
 <translation id="7228523857728654909">قفل الشاشة وتسجيل الدخول</translation>
 <translation id="7229570126336867161">‏يلزم توفر EVDO</translation>
 <translation id="7230787553283372882">تخصيص حجم النَّص</translation>
-<translation id="7231589788477569369">‏الحصول على تجربة "مساعد Google" الكاملة باستخدام هذه الإعدادات</translation>
 <translation id="7232750842195536390">تعذّرت إعادة التسمية</translation>
 <translation id="7234406375359457793">حدث خطأ في تحميل المشاركة. المشاركة المُحدَّدة غير متاحة.</translation>
 <translation id="7238585580608191973">‏بصمة أصبع SHA-256</translation>
@@ -4078,7 +4072,6 @@
 <translation id="7243632151880336635">المحو والخروج</translation>
 <translation id="7245628041916450754">‏<ph name="WIDTH" /> x <ph name="HEIGHT" /> (الأفضل)</translation>
 <translation id="7246339268451149667">هل ترغب في تفعيل إلغاء القفل باستخدام بصمة الإصبع؟</translation>
-<translation id="7246489301073081944">يُرجى الضغط مع الاستمرار على |<ph name="ACCELERATOR1" />| و|<ph name="ACCELERATOR2" />| و|<ph name="ACCELERATOR3" />| للخروج</translation>
 <translation id="7246947237293279874">الخادم الوكيل لبروتوكول نقل الملفات</translation>
 <translation id="725109152065019550">عذرًا، أوقف المشرف التخزين الخارجي بحسابك.</translation>
 <translation id="7253521419891527137">&amp;مزيد من المعلومات</translation>
@@ -4231,7 +4224,6 @@
 <translation id="7489605380874780575">تحقق من الأهلية</translation>
 <translation id="749028671485790643">الشخص <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">‏عنوان MAC</translation>
-<translation id="7490950320178383728">استخدام مفتاح الأمان عبر البلوتوث</translation>
 <translation id="7491962110804786152">علامة تبويب</translation>
 <translation id="7493386493263658176">يمكن أن تجمع إضافة <ph name="EXTENSION_NAME" /> كل النصوص التي تكتبها، بما في ذلك المعلومات الشخصية مثل كلمات المرور وأرقام بطاقات الائتمان. هل تريد استخدام هذه الإضافة؟</translation>
 <translation id="7494065396242762445">‏فتح إعدادات Windows</translation>
@@ -4482,7 +4474,6 @@
 <translation id="7850851215703745691">‏لم تتم مشاركة ملفات Drive هذه بعد</translation>
 <translation id="7851457902707056880">تم تقييد تسجيل الدخول على مالك الحساب فقط. يُرجى إعادة التشغيل وتسجيل الدخول باستخدام حساب المالك. ستتم إعادة تشغيل الجهاز خلال 30 ثانية.</translation>
 <translation id="7851716364080026749">حظر الدخول إلى الكاميرا والميكروفون دومًا</translation>
-<translation id="7851816139220202929">‏استخدام مفتاح الأمان عبر NFC</translation>
 <translation id="7853747251428735">المزيد من الأد&amp;وات</translation>
 <translation id="7856006446339184955">‏إرسال بيانات النظام. يُرسِل هذا الجهاز حاليًا بيانات التشخيص وبيانات استخدام الجهاز والتطبيق تلقائيًا إلى Google. ويفرض المالك هذا <ph name="BEGIN_LINK1" />الإعداد<ph name="END_LINK1" />. في حال تفعيل "نشاط ويب وتطبيقات" إضافي، سيتم حفظ هذه المعلومات مع حسابك حتى تتمكَّن من إدارتها في "نشاطي". <ph name="BEGIN_LINK2" />مزيد من المعلومات<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">إضافة استثناء</translation>
@@ -4565,6 +4556,7 @@
 <translation id="7973962044839454485">‏تعذّرت مصادقة PPP نظرًا لوجود خطأ في اسم المستخدم أو كلمة المرور</translation>
 <translation id="7974566588408714340">إعادة المحاولة باستخدام <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">الخروج عن إطار الشاشة</translation>
+<translation id="79766959863778284">‏خدمة جهاز تم عزلها عن XR</translation>
 <translation id="7977551819349545646">‏جارٍ تحديث جهاز Chromebox...</translation>
 <translation id="7978412674231730200">مفتاح خاص</translation>
 <translation id="7978450511781612192">‏سيؤدي ذلك إلى تسجيل خروجك من حساباتك على Google. ولن تتم بعد ذلك مزامنة الإشارات المرجعية والسجلّ وكلمات المرور والمزيد.</translation>
@@ -4615,7 +4607,6 @@
 <translation id="8030656706657716245">إضافة طابعة</translation>
 <translation id="8032244173881942855">يتعذّر إرسال علامة التبويب.</translation>
 <translation id="8033827949643255796">تم التحديد</translation>
-<translation id="8033958968890501070">انتهاء المهلة</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{فتح الكل في &amp;نافذة التصفح المتخفي}=1{فتح في &amp;نافذة التصفح المتخفي}two{فتح كلا العنوانين (#) في &amp;نافذة التصفح المتخفي}few{فتح كل الـ (#) عناوين في &amp;نافذة التصفح المتخفي}many{فتح كل الـ (#) عنوانًا في &amp;نافذة التصفح المتخفي}other{فتح كل الـ (#) عنوان في &amp;نافذة التصفح المتخفي}}</translation>
 <translation id="8037117027592400564">قراءة جميع النصوص المنطوقة باستخدام الكلام المركب</translation>
 <translation id="8037357227543935929">الطلب (تلقائي)</translation>
@@ -4788,6 +4779,7 @@
 <translation id="8320459152843401447">شاشتك بأكملها</translation>
 <translation id="8322814362483282060">تم حظر دخول هذه الصفحة إلى الميكروفون التابع لك.</translation>
 <translation id="8326478304147373412">‏PKCS #7، سلسلة شهادات</translation>
+<translation id="8327039559959785305">‏حدث خطأ أثناء تثبيت ملفات نظام التشغيل Linux. يُرجى إعادة المحاولة.</translation>
 <translation id="8329978297633540474">نص عادي</translation>
 <translation id="8335587457941836791">إزالة التثبيت من الرف</translation>
 <translation id="8336153091935557858">الأمس <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4838,7 +4830,6 @@
 <translation id="8425213833346101688">تغيير</translation>
 <translation id="8425492902634685834">التثبيت على شريط المهام</translation>
 <translation id="8425755597197517046">ل&amp;صق وبحث</translation>
-<translation id="8426117172745886547">التحذير قبل الخروج (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">جارٍ التمكين</translation>
 <translation id="8427292751741042100">مضمن في أي مضيف</translation>
 <translation id="8428213095426709021">الإعدادات</translation>
@@ -4926,7 +4917,6 @@
 <translation id="8551388862522347954">التراخيص</translation>
 <translation id="8553342806078037065">إدارة الأشخاص الآخرين</translation>
 <translation id="8554899698005018844">بدون لغة</translation>
-<translation id="8557347704037207368">‏إرسال الإشعارات إليك من "رسائل ويب Android"</translation>
 <translation id="855773602626431402">تم منع تشغيل مكون إضافي غير محمي على هذه الصفحة.</translation>
 <translation id="8557930019681227453">البيان</translation>
 <translation id="8559694214572302298">أداة فك تشفير الصور</translation>
@@ -5039,6 +5029,7 @@
 <translation id="8714154114375107944">إيقاف الدعم</translation>
 <translation id="8714838604780058252">رسومات الخلفية</translation>
 <translation id="8715480913140015283">هناك علامة تبويب خلفية تستخدم الكاميرا</translation>
+<translation id="8716931980467311658">‏هل تريد حذف جميع تطبيقات نظام التشغيل Linux والبيانات الواردة في مجلد ملفات نظام التشغيل Linux من جهاز <ph name="DEVICE_TYPE" /> هذا؟</translation>
 <translation id="8719653885894320876">تعذّر تنزيل <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">التصفح المتخفي للإطارات الفرعية لـ: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;عرض في المجلد</translation>
@@ -5202,7 +5193,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - تعطُّل</translation>
 <translation id="8983677657449185470">المساعدة في تحسين التصفُّح الآمن</translation>
 <translation id="8984654317541110628">‏عنوان URL لخادم مشاركة الملفات</translation>
-<translation id="8984872292925913496">ارجِع إلى رقم التعريف الشخصي المكوَّن من 6 أرقام في الجزء الخلفي من المفتاح</translation>
 <translation id="8986362086234534611">حذف</translation>
 <translation id="8986494364107987395">‏إرسال إحصائيات الاستخدام وتقارير الأعطال إلى Google تلقائيًا</translation>
 <translation id="8987927404178983737">شهر</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index b75d528..8ea0eff 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Открояване на елемента, върху който е фокусирана клавиатурата, когато той се промени</translation>
 <translation id="1173894706177603556">Преименуване</translation>
 <translation id="1174073918202301297">Прекият път бе добавен</translation>
-<translation id="1174808551768282258">Отключвайте своя Chromebook посредством телефона си. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" />.</translation>
 <translation id="1175364870820465910">&amp;Печат...</translation>
 <translation id="117624967391683467">„<ph name="FILE_NAME" />“ се копира...</translation>
 <translation id="1177138678118607465">Може да използваме историята ви на сърфиране, за да персонализираме търсенето, рекламите и други услуги на Google. В състояние сте да промените това по всяко време на адрес myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Пауза</translation>
 <translation id="1181037720776840403">Премахване</translation>
 <translation id="1183237619868651138">„<ph name="EXTERNAL_CRX_FILE" />“ не може да се инсталира в локалния кеш.</translation>
-<translation id="1183378459020939734">Готови ли сте да сдвоите ключа си за сигурност?</translation>
 <translation id="1185924365081634987">Може също да опитате <ph name="GUEST_SIGNIN_LINK_START" />да сърфирате като гост<ph name="GUEST_SIGNIN_LINK_END" />, за да се отстрани тази грешка в мрежата.</translation>
 <translation id="1186771945450942097">Премахнете опасния софтуер</translation>
 <translation id="1187722533808055681">Събуждания при неактивност</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Няма намерени устройства с Bluetooth</translation>
 <translation id="1306606229401759371">Промяна на настройките</translation>
 <translation id="1307559529304613120">Ами сега!  Системата не успя да съхрани дългосрочното означение за достъп на това устройство до приложния програмен интерфейс (API).</translation>
+<translation id="1307931752636661898">Файловете за Linux не могат да бъдат показани</translation>
 <translation id="1313405956111467313">Автоматична конфигурация на прокси сървър</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Вашите отметки, история и други настройки ще се синхронизират с профила ви в Google.</translation>
@@ -364,6 +363,7 @@
 <translation id="1530838837447122178">Отваряне на настройките за мишката и сензорния панел</translation>
 <translation id="1531004739673299060">Прозорец на приложението</translation>
 <translation id="15373452373711364">Голям курсор на мишката</translation>
+<translation id="1538729222189715449">Файловете за Linux се отварят...</translation>
 <translation id="1540605929960647700">Активиране на демонстрационния режим</translation>
 <translation id="1543284117603151572">Импортирани от Edge</translation>
 <translation id="1545177026077493356">Автоматичен павилионен режим</translation>
@@ -539,7 +539,6 @@
 <translation id="1782530111891678861">Промяна на режима на дисплея за точките на докосване</translation>
 <translation id="1784849162047402014">Дисковото пространство на устройството е малко</translation>
 <translation id="1786636458339910689">Екипни дискове</translation>
-<translation id="1792161662640298233">Ключът за сигурност се потвърждава</translation>
 <translation id="1792619191750875668">Разширен екран</translation>
 <translation id="1794791083288629568">Изпращане на отзиви, за да ни помогнете да отстраним този проблем.</translation>
 <translation id="1795214765651529549">Използване на класическата тема</translation>
@@ -622,7 +621,6 @@
 <translation id="1910721550319506122">Добре дошли!</translation>
 <translation id="1914326953223720820">Услуга за разкомпресиране</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">В зависимост от настройките на профила ви работата ви с Асистент може да е ограничена до определени неща, като например резултати от мрежата, шеги и местна информация.</translation>
 <translation id="1916502483199172559">Стандартен червен аватар</translation>
 <translation id="1918141783557917887">&amp;По-малък</translation>
 <translation id="1919345977826869612">Реклами</translation>
@@ -791,6 +789,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> от <ph name="PEPPER_PLUGIN_DOMAIN" /> иска да осъществи достъп до компютъра ви</translation>
 <translation id="2178614541317717477">Компрометиране на сертифициращия орган</translation>
 <translation id="218070003709087997">Използвайте число, за да укажете колко копия да се отпечатат (от 1 до 999).</translation>
+<translation id="2184515124301515068">Нека Chrome избира кога сайтовете да могат да възпроизвеждат звук (препоръчително)</translation>
 <translation id="2187895286714876935">Грешка при импортирането на сертификат на сървър</translation>
 <translation id="2187906491731510095">Разширенията бяха актуализирани</translation>
 <translation id="2188881192257509750">Отваряне на <ph name="APPLICATION" /></translation>
@@ -835,6 +834,7 @@
 <translation id="2241053333139545397">Четене и промяна на данните ви в няколко уебсайта.</translation>
 <translation id="2242687258748107519">Информация за файла</translation>
 <translation id="2243194103992005307">За да премахнете приложения, отворете „Настройки“ &gt; „Приложения“ или мениджъра на приложенията. Докоснете това, което искате да деинсталирате (може да се наложи да прекарате пръст надясно или наляво, за да го намерите). Докоснете „Деинсталиране“ или „Деактивиране“.</translation>
+<translation id="224940702122312781">Тази страница ще използва много данни.</translation>
 <translation id="2249605167705922988">напр. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Отваряне със системния визуализатор</translation>
 <translation id="225163402930830576">Опресняване на мрежите</translation>
@@ -875,14 +875,13 @@
 <translation id="2307462900900812319">Конфигуриране на мрежата</translation>
 <translation id="230927227160767054">Тази страница иска да инсталира манипулатор на услуги.</translation>
 <translation id="2309620859903500144">Достъпът на този сайт до сензорите ви за движение или светлина е блокиран.</translation>
-<translation id="2311075084924370935">За да ви помага с календара, напомнянията, полетите и още много други неща, Асистент се нуждае от настройките „Активност в мрежата и приложенията“, „Информация за устройството“ и „Гласова и аудиоактивност“.</translation>
+<translation id="2315414688463285945">При конфигурирането на файловете за Linux възникна грешка. Моля, опитайте отново.</translation>
 <translation id="2315821125498993513">Не можа да се установи връзка с телефона. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" />.</translation>
 <translation id="2316129865977710310">Не, благодаря</translation>
 <translation id="2317842250900878657">Завършено: <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Размер на хартията</translation>
 <translation id="2318817390901984578">За да използвате приложения за Android, заредете и актуализирайте своя <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Текущата сесия в режим „инкогнито“ (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Използване на ключа ви за сигурност с(ъс) <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Горен и долен колонтитул</translation>
 <translation id="2325650632570794183">Този файлов тип не се поддържа. Моля, посетете уеб магазина на Chrome, за да намерите приложение, което може да отвори съответния тип.</translation>
 <translation id="2326931316514688470">&amp;Презареждане на приложението</translation>
@@ -916,7 +915,6 @@
 <translation id="2367199180085172140">Добавяне на споделяне на файл</translation>
 <translation id="2367972762794486313">Показване на приложенията</translation>
 <translation id="2369536625682139252">Ще бъдат изтрити всички съхранявани от <ph name="SITE" /> данни освен „бисквитките“.</translation>
-<translation id="237058345584060620">Сдвоете ключа си с това устройство, за да можете да използвате ключа за вход в профила си</translation>
 <translation id="2371076942591664043">Отваряне &amp;след изтегляне</translation>
 <translation id="2377319039870049694">Превключване към списъчен изглед</translation>
 <translation id="2377667304966270281">Съществени грешки</translation>
@@ -983,7 +981,6 @@
 <translation id="248861575772995840">Телефонът ви не може да бъде намерен. Уверете се, че функцията за Bluetooth на вашия <ph name="DEVICE_TYPE" /> е включена. &lt;a&gt;Научете повече&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Добавяне на &amp;папка...</translation>
 <translation id="249113932447298600">За съжаление понастоящем устройството <ph name="DEVICE_LABEL" /> не се поддържа.</translation>
-<translation id="2492040222276243256">Натиснете бутона на ключа си за сигурност и го задръжте поне 5 секунди</translation>
 <translation id="2493021387995458222">Избиране на дума по дума</translation>
 <translation id="249303669840926644">Регистрацията не можа да завърши</translation>
 <translation id="2495777824269688114">Открийте още функции или получете отговори. Изберете „?“ за помощ.</translation>
@@ -1053,6 +1050,7 @@
 <translation id="2580924999637585241">Общо: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Дълго</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (платформа <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Чрез този раздел се споделя екранът ви.</translation>
 <translation id="2586657967955657006">Буферна памет</translation>
 <translation id="2586672484245266891">Моля, въведете по-кратък URL адрес</translation>
 <translation id="2587922270115112871">Създаването на контролиран потребител не създава профил в Google и настройките
@@ -1088,7 +1086,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> използва <ph name="USAGE" /> МБ място на диска.</translation>
 <translation id="2633212996805280240">Да се премахне ли „<ph name="EXTENSION_NAME" />“?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> не успя да завърши инсталацията, но ще продължи да работи от образа си на диска.</translation>
-<translation id="2633326789677284179">Намерете името, отпечатано на гърба на ключа</translation>
 <translation id="2635276683026132559">Подписване</translation>
 <translation id="2636625531157955190">Chrome няма достъп до изображението.</translation>
 <translation id="2638087589890736295">За стартиране на синхронизирането е необходим пропуск</translation>
@@ -1256,7 +1253,6 @@
 <translation id="287286579981869940">Добавяне на <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Влезте в Chrome, за да получите паролите си на всичките си устройства.</translation>
 <translation id="2875698561019555027">(Страници с грешки в Chrome)</translation>
-<translation id="2876441201733326392">Използване на USB ключ за сигурност</translation>
 <translation id="288042212351694283">Да осъществява достъп до устройствата ви, използвани като универсален втори фактор за удостоверяване.</translation>
 <translation id="2881966438216424900">Последен достъп:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> незабавно ще се рестартира и настройките му ще се нулират</translation>
@@ -1324,7 +1320,6 @@
 <translation id="2982970937345031">Подаване на анонимен сигнал</translation>
 <translation id="2984337792991268709">Днес, <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Пълният контрол над MIDI устройствата е блокиран за тази страница.</translation>
-<translation id="2988599644347283908">Забележка: За да получавате персонализирана практическа работа и полезни реклами, контролираните от тези настройки данни може да се запазват и използват от всяка услуга на Google, в която сте влезли в профила си. В състояние сте да преглеждате и изтривате данните си и да променяте настройките си на адрес account.google.com.</translation>
 <translation id="2989474696604907455">не е свързано</translation>
 <translation id="2989786307324390836">DER кодирано двоично, единичен сертификат</translation>
 <translation id="2993517869960930405">Информация за приложението</translation>
@@ -1377,7 +1372,6 @@
 <translation id="304826556400666995">Включване отново на звука на разделите</translation>
 <translation id="3053013834507634016">Използване на ключа на сертификата</translation>
 <translation id="3057861065630527966">Създаване на резервни копия на снимките и видеоклиповете ви</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Активиране на функцията Прочитане на глас</translation>
 <translation id="3061707000357573562">Услуга за корекции</translation>
 <translation id="3064410671692449875">Недостатъчно данни</translation>
@@ -1406,7 +1400,6 @@
 <translation id="3090819949319990166">Външният crx файл не може да се копира в/ъв „<ph name="TEMP_CRX_FILE" />“.</translation>
 <translation id="3090871774332213558">Успешно сдвояване на <ph name="DEVICE_NAME" /></translation>
 <translation id="3101709781009526431">Дата и час</translation>
-<translation id="3104900172193317662">Разрешаване на използването на ключа ви за сигурност</translation>
 <translation id="310671807099593501">Сайтът използва Bluetooth</translation>
 <translation id="3115128645424181617">Телефонът ви не може да бъде намерен. Уверете се, че е подръка и че функцията за Bluetooth е включена.</translation>
 <translation id="3115147772012638511">Кешът се изчаква...</translation>
@@ -1490,7 +1483,6 @@
 <translation id="3251759466064201842">&lt;Не е част от сертификата&gt;</translation>
 <translation id="3254434849914415189">Избиране на приложението по подразбиране за файлове от тип <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Автоматичното установяване на часовата зона е деактивирано</translation>
-<translation id="3254772308201947812">Да, приемам</translation>
 <translation id="3264544094376351444">Безсерифен шрифт</translation>
 <translation id="3264547943200567728">Настройването на мрежата на вашия Chromebox не бе успешно</translation>
 <translation id="3264582393905923483">Контекст</translation>
@@ -1814,7 +1806,6 @@
 <translation id="3735740477244556633">Сортиране по</translation>
 <translation id="3737274407993947948">Грешка при инсталирането на Linux...</translation>
 <translation id="3737536731758327622">Изтеглените от вас неща ще се показват тук</translation>
-<translation id="3738671331307774213">Потвърждаването на самоличността ви помага за защитата на частните ви данни</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Да се отвори ли <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859">„<ph name="DEVICE_NAME" />“ вече ще се показва в Admin console</translation>
@@ -1909,6 +1900,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: синхронизирането е на пауза</translation>
 <translation id="3860381078714302691">Добре дошли в Hangouts Meet</translation>
+<translation id="3861241522664181545">Страницата е поставена на пауза.</translation>
 <translation id="3862134173397075045">Представяме ви функцията за предаване в Chrome!</translation>
 <translation id="3862788408946266506">Приложенията с атрибут „kiosk_only“ в манифеста трябва да бъдат инсталирани в павилионния режим на Chrome OS</translation>
 <translation id="3865414814144988605">Разделителна способност</translation>
@@ -1923,7 +1915,6 @@
 <translation id="3873315167136380065">За да включите тази настройка, <ph name="BEGIN_LINK" />нулирайте синхронизирането<ph name="END_LINK" />, така че да премахнете съответния си пропуск</translation>
 <translation id="3878840326289104869">Създаване на контролиран потребител</translation>
 <translation id="3879748587602334249">Мениджър на изтеглянията</translation>
-<translation id="3880709822663530586">Ключът ви за сигурност работи само когато сте включили Bluetooth на устройството си</translation>
 <translation id="3888550877729210209">Водене на бележки с/ъс <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Добавяне на OpenVPN/L2TP...</translation>
 <translation id="3893536212201235195">Да чете и променя настройките ви за достъпност</translation>
@@ -2069,6 +2060,7 @@
 <translation id="4096824249111507322">Модулът за сигурност се подготвя. Моля, изчакайте (това може да отнеме няколко минути)...</translation>
 <translation id="4099060993766194518">Да се възстанови ли основната търсеща машина?</translation>
 <translation id="4100733287846229632">Мястото на устройството е критично малко</translation>
+<translation id="4103091233824664032">Въведете паролата си, за да конфигурирате заключването на екрана и влизането в профила</translation>
 <translation id="4104163789986725820">Екс&amp;портиране...</translation>
 <translation id="4105563239298244027">Получете 1 ТБ безплатно с Google Диск</translation>
 <translation id="4107048419833779140">Идентифициране и изваждане на устройства за съхранение</translation>
@@ -2089,7 +2081,6 @@
 <translation id="4136203100490971508">Нощното осветление ще се изключи автоматично по изгрев</translation>
 <translation id="4138267921960073861">Потребителските имена и снимките да се показват на екрана за вход</translation>
 <translation id="4144218403971135344">Гледайте видео с по-добро качество и удължете живота на батерията. Видеото ще се възпроизвежда само на екрана ви, поддържащ Cast.</translation>
-<translation id="414599683948988413">Използване на ключа ви за сигурност чрез USB</translation>
 <translation id="4146026355784316281">Отваряне винаги със системния визуализатор</translation>
 <translation id="4146785383423576110">Нулиране на настройките и почистване</translation>
 <translation id="4147897805161313378">Google Снимки</translation>
@@ -2224,6 +2215,7 @@
 <translation id="4394049700291259645">Деактивиране</translation>
 <translation id="4400367121200150367">Тук ще се покажат сайтовете, паролата за които никога не се запазва</translation>
 <translation id="4400632832271803360">Натиснете и задръжте клавиша за стартовия панел, за да промените поведението на клавишите от най-горния ред.</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">Помо&amp;щ</translation>
 <translation id="4409697491990005945">Полета</translation>
 <translation id="4411578466613447185">Подписване на код</translation>
@@ -2272,6 +2264,7 @@
 <translation id="4480590691557335796">Chrome може да намери опасния софтуер на компютъра ви и да го премахне</translation>
 <translation id="4481530544597605423">Несдвоени устройства</translation>
 <translation id="4482194545587547824">Възможно е да използваме историята ви на сърфиране, за да персонализираме търсенето и други услуги на Google</translation>
+<translation id="4493287891836751813">Запознайте се с Google Асистент</translation>
 <translation id="4495419450179050807">Да не се показва на тази страница</translation>
 <translation id="4499718683476608392">Активирайте автоматичното попълване на кредитни карти, за да ги въвеждате във формуляри само с едно кликване</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> претърпя срив</translation>
@@ -2432,6 +2425,7 @@
 <translation id="474217410105706308">Спиране на звука на раздела</translation>
 <translation id="4742746985488890273">Фиксиране в лавицата</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Научете как да актуализирате приложения<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Messages</translation>
 <translation id="4746971725921104503">Изглежда, че вече управлявате потребител с това име. Искате ли <ph name="LINK_START" />да импортирате <ph name="USER_DISPLAY_NAME" /> на устройството<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Изисква се разширение от уеб магазина на Chrome</translation>
 <translation id="4750394297954878236">Предложения</translation>
@@ -2473,6 +2467,7 @@
 <translation id="4821935166599369261">&amp;Профилирането е активирано</translation>
 <translation id="4823484602432206655">Четене и промяна на настройките на потребителите и устройството</translation>
 <translation id="4823651846660089135">Устройството е само за четене</translation>
+<translation id="4823955295535347797">Осъществявайте достъп до Асистент всеки път, когато кажете „Ok Google“ при включен екран.</translation>
 <translation id="4828937774870308359">Обратно</translation>
 <translation id="4829768588131278040">Настройване на ПИН</translation>
 <translation id="4830502475412647084">Актуализацията на операционната система се инсталира</translation>
@@ -2513,6 +2508,7 @@
 <translation id="4876273079589074638">Помогнете на инженерите ни да открият и отстранят причината за този срив. Ако е възможно, посочете точните стъпки. Всяка подробност е важна!</translation>
 <translation id="4876895919560854374">Заключване и отключване на екрана</translation>
 <translation id="4877017884043316611">Сдвояване с Chromebox</translation>
+<translation id="4879491255372875719">Автоматично (стандартно)</translation>
 <translation id="4880214202172289027">Плъзгач за силата на звука</translation>
 <translation id="4880328057631981605">Име на точката за достъп</translation>
 <translation id="4880520557730313061">Автокоригиране</translation>
@@ -2666,7 +2662,6 @@
 <translation id="5099354524039520280">нагоре</translation>
 <translation id="5100114659116077956">За да получите най-новите функции, вашият Chromebox трябва да се актуализира.</translation>
 <translation id="5101042277149003567">Отваряне на всички отметки</translation>
-<translation id="5104546332954397226">Използване на телефона ви като ключ за сигурност</translation>
 <translation id="5105855035535475848">Фиксиране на разделите</translation>
 <translation id="5108967062857032718">Настройки – Премахване на приложенията за Android</translation>
 <translation id="5109044022078737958">Мия</translation>
@@ -2797,7 +2792,6 @@
 <translation id="5288678174502918605">По&amp;вторно отваряне на затворения раздел</translation>
 <translation id="52912272896845572">Файлът с личен ключ е невалиден.</translation>
 <translation id="529175790091471945">Форматиране на това устройство</translation>
-<translation id="5292195676005197571">За да използвате повечето ключове, трябва само да натиснете бутона</translation>
 <translation id="5293170712604732402">Възстановяване на настройките към първоначалните им стандартни стойности</translation>
 <translation id="5297082477358294722">Паролата е запазена. Преглеждайте и управлявайте запазените пароли в <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Темата е създадена от</translation>
@@ -2823,6 +2817,7 @@
 <translation id="532776649628038357">Приемам</translation>
 <translation id="532943162177641444">Докоснете известието на телефона си <ph name="PHONE_NAME" />, за да настроите мобилната точка за достъп, която да може да се използва от това устройство.</translation>
 <translation id="5329858601952122676">&amp;Изтриване</translation>
+<translation id="5329945517224105597">Асистент може да ви дава по-подходящи предложения и конкретни действия, свързани с това, което е на екрана ви. Можете да промените това от настройките му.</translation>
 <translation id="5330145655348521461">Тези файлове се отвориха на друг работен плот. Преминете към <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />), за да ги прегледате.</translation>
 <translation id="5330512191124428349">Получаване на информация</translation>
 <translation id="5331069282670671859">Нямате сертификати от тази категория</translation>
@@ -2867,7 +2862,6 @@
 <translation id="5390100381392048184">Разрешаване на сайтовете да възпроизвеждат звук</translation>
 <translation id="5390284375844109566">Индексирана база от данни</translation>
 <translation id="5390743329570580756">Изпращане за</translation>
-<translation id="5392327114396848796">Използване на вграден ключ за сигурност</translation>
 <translation id="5397794290049113714">Вие</translation>
 <translation id="5398572795982417028">Посочената страница е извън обхват. Ограничението е <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Рекламите са блокирани</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Затворете всички файлове от архива или виртуалния диск и опитайте отново.</translation>
 <translation id="5687326903064479980">Часова зона</translation>
+<translation id="568824803367507355">Откриване на „Ok Google“</translation>
 <translation id="5689516760719285838">Местоположение</translation>
 <translation id="56907980372820799">Свързване на данните</translation>
 <translation id="5691511426247308406">Семейство</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – записва се чрез камерата или микрофона</translation>
 <translation id="5835754902560991078">изключително кратко (0,6 сек)</translation>
 <translation id="5838456317242088717">Текущата сесия в режим „инкогнито“</translation>
-<translation id="5842053879378944309">Използване на USB ключ за сигурност с(ъс) <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Активиране на Bluetooth</translation>
 <translation id="5843250171025351504">Устройството ви вече не отговаря на посочените от администратора ви изисквания за минимална версия на клиентската програма. Моля, актуализирайте я, за да влезете.</translation>
 <translation id="5846929185714966548">Раздел 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Вече не се поддържа.</translation>
 <translation id="6317369057005134371">Прозорецът на приложението се изчаква...</translation>
 <translation id="6318407754858604988">Изтеглянето започна</translation>
-<translation id="6322653941595359182">Изпращайте и получавайте SMS съобщения от своя Chromebook</translation>
 <translation id="6324916366299863871">Редактиране на прекия път</translation>
 <translation id="6325191661371220117">Деактивиране на автоматичното стартиране</translation>
 <translation id="6326175484149238433">Премахване от Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Изпращане на <ph name="BEGIN_LINK1" />системна информация<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />показатели<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Опции за синхронизиране и персонализиране</translation>
 <translation id="6397592254427394018">Отваряне на всички отметки в прозорец в режим „&amp;инкогнито“</translation>
+<translation id="639777613761517128">За да отваряте файлове с(ъс) $1, първо копирайте в папката с файлове на Linux.</translation>
 <translation id="6398715114293939307">Премахване на Google Play Магазин</translation>
 <translation id="6398765197997659313">Изход от цял екран</translation>
 <translation id="6399774419735315745">Шпионин</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Това име не може да се използва като име на файл или на папка</translation>
 <translation id="642469772702851743">Това устройство (сериен № <ph name="SERIAL_NUMBER" />) бе заключено от собственика.</translation>
 <translation id="6426200009596957090">Отваряне на настройките на ChromeVox</translation>
-<translation id="6427415464407526111">Избиране на ключ за сигурност</translation>
 <translation id="6429384232893414837">Грешка при актуализирането</translation>
 <translation id="6430814529589430811">ASCII с кодиране Base64, единичен сертификат</translation>
 <translation id="6431217872648827691">Всички данни бяха шифровани с паролата ви за Google на
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Режим за програмисти</translation>
 <translation id="6655458902729017087">Скриване на профилите</translation>
 <translation id="6657585470893396449">Парола</translation>
-<translation id="6658023813581644008">За да настроите Smart Lock за влизане в профила, въведете паролата си</translation>
 <translation id="6659213950629089752">Мащабът на тази страница бе променен от разширението <ph name="NAME" /></translation>
 <translation id="6659594942844771486">Раздел</translation>
 <translation id="6664237456442406323">За съжаление компютърът ви е конфигуриран с неправилно образуван идентификационен номер на хардуера. Това не позволява на Chrome OS да се актуализира с най-новите корекции за сигурност и машината ви <ph name="BEGIN_BOLD" />може да е уязвима към злонамерени атаки<ph name="END_BOLD" />.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Преглед на системната информация</translation>
 <translation id="6886871292305414135">О&amp;тваряне на връзката в нов раздел</translation>
 <translation id="6892812721183419409">Отваряне на връзката като <ph name="USER" /></translation>
-<translation id="6896398788631624004">Включете ключа си за сигурност и го активирайте</translation>
 <translation id="6896758677409633944">Копиране</translation>
 <translation id="6898440773573063262">Сега приложенията в павилионен режим могат да се конфигурират да стартират автоматично на това устройство.</translation>
 <translation id="6898699227549475383">Организация (О)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Потребител:</translation>
 <translation id="6916590542764765824">Управление на разширенията</translation>
 <translation id="6920989436227028121">Отваряне като нормален раздел</translation>
+<translation id="6921709132208495314">Спиране на използването на данни на тази страница</translation>
 <translation id="6922128026973287222">Използвайте по-малко данни и сърфирайте по-бързо посредством Google Икономия на данни. Кликнете, за да научите повече.</translation>
 <translation id="6923132443355966645">Превъртане/кликване</translation>
 <translation id="6930242544192836755">Продължителност</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Порт</translation>
 <translation id="6965978654500191972">Устройство</translation>
+<translation id="6968288415730398122">Въведете паролата си, за да конфигурирате заключването на екрана</translation>
 <translation id="6970480684834282392">Тип стартиране</translation>
 <translation id="6970856801391541997">Отпечатване на конкретни страници</translation>
 <translation id="6972180789171089114">Аудио/видео</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Търсещи машини</translation>
 <translation id="6978611942794658017">Този файл е предназначен за компютри със софтуер Windows и не е съвместим с устройството ви с Chrome OS. Моля, потърсете в уеб магазина на Chrome подходящо приложение със същата функционалност.</translation>
 <translation id="6979158407327259162">Google Диск</translation>
+<translation id="6979440798594660689">Заглушаване (стандартно)</translation>
 <translation id="6979737339423435258">За цялото време</translation>
 <translation id="6980462514016882061">Възможно е да използваме историята ви на сърфиране, за да персонализираме търсенето, рекламите и други услуги на Google</translation>
 <translation id="6981982820502123353">Достъпност</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Това е обща информация за устройството ви и начините, по които го използвате (например ниво на батерията, използване на приложения и свързаност с мрежи). Тя служи за подобряване на продуктите и услугите ни за всички потребители. Част от обобщената информация ще помогне и на партньорите ни – например програмисти за Android – да направят приложенията и продуктите си по-добри.<ph name="END_PARAGRAPH1" />
 <ph name="BEGIN_PARAGRAPH2" />Изключването на тази функция няма да засегне възможността на устройството ви да изпраща информацията, необходима за получаването на основни услуги, като системни актуализации и подобрения в сигурността.<ph name="END_PARAGRAPH2" />
 <ph name="BEGIN_PARAGRAPH3" />Можете да контролирате тази функция от „Настройки“ &gt; „Google“. Изберете „Употреба и диагностика“ от менюто.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Открихме <ph name="NUMBER_OF_APPS" /> приложения от профила ви, които могат да се използват на това устройство.</translation>
 <translation id="7199158086730159431">Получаване на помощ</translation>
 <translation id="7200083590239651963">Избиране на конфигурация</translation>
 <translation id="720110658997053098">Това устройство да е постоянно в павилионен режим</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Заключване на екрана и влизане в профила</translation>
 <translation id="7229570126336867161">Необходим е EVDO</translation>
 <translation id="7230787553283372882">Персонализирайте размера на текста</translation>
-<translation id="7231589788477569369">Възползвайте се пълноценно от Асистент чрез тези настройки</translation>
 <translation id="7232750842195536390">Преименуването не бе успешно</translation>
 <translation id="7234406375359457793">Възникна грешка при свързването на посочения дял. Той не се поддържа.</translation>
 <translation id="7238585580608191973">Пръстов отпечатък SHA-256</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Изчистване и изход</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (най-добро)</translation>
 <translation id="7246339268451149667">Да се активира ли отключването с отпечатък?</translation>
-<translation id="7246489301073081944">Натиснете и задръжте |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| + |<ph name="ACCELERATOR3" />| за изход</translation>
 <translation id="7246947237293279874">FTP прокси сървър</translation>
 <translation id="725109152065019550">За съжаление администраторът ви е деактивирал външното хранилище за профила ви.</translation>
 <translation id="7253521419891527137">&amp;Научете повече</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Проверка дали отговаряте на условията</translation>
 <translation id="749028671485790643">Човек <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC адрес</translation>
-<translation id="7490950320178383728">Използване на ключа ви за сигурност чрез Bluetooth</translation>
 <translation id="7491962110804786152">раздел</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> може да събира целия въведен от вас текст, включително лични данни, като пароли и номера на кредитни карти. Искате ли да използвате това разширение?</translation>
 <translation id="7494065396242762445">Отваряне на настройките на Windows</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">Тези файлове в Диск още не са споделени</translation>
 <translation id="7851457902707056880">Влизането е ограничено само до профила на собственика. Моля, рестартирайте и влезте с този профил. Машината ще се рестартира автоматично след 30 секунди.</translation>
 <translation id="7851716364080026749">Достъпът до камерата и микрофона да се блокира винаги</translation>
-<translation id="7851816139220202929">Използване на ключа ви за сигурност чрез КБП</translation>
 <translation id="7853747251428735">Още инструмен&amp;ти</translation>
 <translation id="7856006446339184955">Изпращане на системни данни. Понастоящем до Google автоматично се изпращат диагностична информация и данни за употребата на устройството и приложенията. Тази <ph name="BEGIN_LINK1" />настройка<ph name="END_LINK1" /> е наложена от собственика. Ако сте включили Допълнителна активност в мрежата и приложенията, съответната информация ще се съхранява в профила ви, така че можете да я управлявате от „Моята активност“. <ph name="BEGIN_LINK2" />Научете повече<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Добавяне на изключение</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">Удостоверяването през PPP не бе успешно поради неправилно потребителско име или парола</translation>
 <translation id="7974566588408714340">Нов опит посредством <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Допълнителна област</translation>
+<translation id="79766959863778284">Услуга за изолирани устройства за XR</translation>
 <translation id="7977551819349545646">Chromebox се актуализира...</translation>
 <translation id="7978412674231730200">Личен ключ</translation>
 <translation id="7978450511781612192">Така ще излезете от профилите си в Google. Вашите отметки, история, пароли и др. повече няма да се синхронизират.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Добавяне на принтер</translation>
 <translation id="8032244173881942855">Предаването на раздела не е възможно.</translation>
 <translation id="8033827949643255796">откроени</translation>
-<translation id="8033958968890501070">Времето за изчакване изтече</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Отваряне на всички в прозорец в режим „&amp;инкогнито“}=1{Отваряне в прозорец в режим „&amp;инкогнито“}other{Отваряне на всички (#) в прозорец в режим „&amp;инкогнито“}}</translation>
 <translation id="8037117027592400564">Четене на целия текст, произнесен посредством синтезирания говор</translation>
 <translation id="8037357227543935929">Извеждане на запитване (по подразбиране)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Целият ви екран</translation>
 <translation id="8322814362483282060">Достъпът на тази страница до микрофона ви е блокиран.</translation>
 <translation id="8326478304147373412">PKCS 7, верига сертификати</translation>
+<translation id="8327039559959785305">При свързването на файловете за Linux възникна грешка. Моля, опитайте отново.</translation>
 <translation id="8329978297633540474">Неформатиран текст</translation>
 <translation id="8335587457941836791">Освобождаване от лавицата</translation>
 <translation id="8336153091935557858">Вчера, <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">Промяна</translation>
 <translation id="8425492902634685834">Фиксиране в лентата на задачите</translation>
 <translation id="8425755597197517046">Поставяне и търсе&amp;не</translation>
-<translation id="8426117172745886547">Извеждане на предупреждение преди изход (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Активира се</translation>
 <translation id="8427292751741042100">вградена в който и да е хост</translation>
 <translation id="8428213095426709021">Настройки</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">Лицензи</translation>
 <translation id="8553342806078037065">Управление на другите хора</translation>
 <translation id="8554899698005018844">Без език</translation>
-<translation id="8557347704037207368">Изпращане на известия до вас от Android Web Messages</translation>
 <translation id="855773602626431402">На тази страница бе предотвратено изпълняването на приставка извън тестова среда.</translation>
 <translation id="8557930019681227453">Манифест</translation>
 <translation id="8559694214572302298">Декодиране на изображения</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">Край на поддръжката</translation>
 <translation id="8714838604780058252">Фонова графика</translation>
 <translation id="8715480913140015283">Раздел на заден план използва камерата ви</translation>
+<translation id="8716931980467311658">Да се изтрият ли всички приложения за Linux и данни в папката с файлове за Linux от това устройство <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Изтеглянето на <ph name="PLUGIN_NAME" /> не бе успешно</translation>
 <translation id="8723829621484579639">Подрамки в режим „инкогнито“ за: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Показване в папката</translation>
@@ -5206,7 +5197,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – възникна срив</translation>
 <translation id="8983677657449185470">Помощ за подобряването на Безопасно сърфиране</translation>
 <translation id="8984654317541110628">URL адрес за споделяне на файлове</translation>
-<translation id="8984872292925913496">Намерете шестцифрения ПИН на гърба на ключа си</translation>
 <translation id="8986362086234534611">Забравяне</translation>
 <translation id="8986494364107987395">Автоматично изпращане до Google на статистически данни за използването на Chrome и сигнали за сривове</translation>
 <translation id="8987927404178983737">Месец</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 3b4e3a1..1a4652d 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">বস্তুটি যখন পরিবর্তিত হয় তখন কীবোর্ড ফোকাসের মাধ্যমে একে হাইলাইট করুন</translation>
 <translation id="1173894706177603556">পুনঃনামকরণ</translation>
 <translation id="1174073918202301297">শর্টকাট যোগ করা হয়েছে</translation>
-<translation id="1174808551768282258">আপনার ফোন ব্যবহার করে Chromebook আনলক করুন। <ph name="LINK_BEGIN" />আরও জানুন।<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;প্রিন্ট...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> অনুলিপি করা হচ্ছে...</translation>
 <translation id="1177138678118607465">সার্চ, বিজ্ঞাপন এবং অন্যান্য Google পরিষেবাগুলি আপনার মতো করে সাজানোর জন্য Google আপনার ব্রাউজিং ইতিহাস ব্যবহার করতে পারে। আপনি এটি যেকোনও সময়ে myaccount.google.com/activitycontrols/search থেকে পরিবর্তন করতে পারেন</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">বিরতি</translation>
 <translation id="1181037720776840403">সরান</translation>
 <translation id="1183237619868651138">স্থানীয় ক্যাশে-এর মধ্যে <ph name="EXTERNAL_CRX_FILE" /> ইনস্টল করা যায়নি৷</translation>
-<translation id="1183378459020939734">আপনি কি আপনার নিরাপত্তা কী পেয়ার করতে প্রস্তুত?</translation>
 <translation id="1185924365081634987">এছাড়াও, এই নেটওয়ার্ক ত্রুটি সমাধান করতে আপনি <ph name="GUEST_SIGNIN_LINK_START" />অতিথি হিসেবে ব্রাউজ করতে পারেন<ph name="GUEST_SIGNIN_LINK_END" />।</translation>
 <translation id="1186771945450942097">ক্ষতিকর সফ্টওয়্যার সরান</translation>
 <translation id="1187722533808055681">নিষ্ক্রিয়তা সময়ের সমাপ্তি</translation>
@@ -541,7 +539,6 @@
 <translation id="1782530111891678861">টাচ HUD মোড পরিবর্তন করুন</translation>
 <translation id="1784849162047402014">ডিভাইসে ডিস্কের জায়গা কম আছে</translation>
 <translation id="1786636458339910689">টিম ড্রাইভ</translation>
-<translation id="1792161662640298233">আপনার নিরাপত্তা কী যাচাই করা হচ্ছে</translation>
 <translation id="1792619191750875668">প্রসারিত প্রদর্শন</translation>
 <translation id="1794791083288629568">এই সমস্যা ঠিক করতে আমাদের সহায়তা করতে প্রতিক্রিয়া পাঠান।</translation>
 <translation id="1795214765651529549">ক্লাসিক ব্যবহার করুন</translation>
@@ -624,7 +621,6 @@
 <translation id="1910721550319506122">স্বাগতম!</translation>
 <translation id="1914326953223720820">পরিষেবা আনজিপ করুন</translation>
 <translation id="1915073950770830761">ক্যানারি</translation>
-<translation id="1915543339027206592">আপনার অ্যাকাউন্ট সেটিংসের উপর নির্ভর করে অ্যাসিস্ট্যান্টের অভিজ্ঞতা শুধুমাত্র ওয়েবের ফলাফল, জোকস, স্থানীয় তথ্য ইত্যাদির মধ্যে সীমাবদ্ধ থাকতে পারে।</translation>
 <translation id="1916502483199172559">ডিফল্ট লাল রঙের অবতার</translation>
 <translation id="1918141783557917887">&amp;ক্ষুদ্রতর</translation>
 <translation id="1919345977826869612">বিজ্ঞাপন</translation>
@@ -877,14 +873,12 @@
 <translation id="2307462900900812319">নেটওয়ার্ক কনফিগার করুন</translation>
 <translation id="230927227160767054">এই পৃষ্ঠাটি একটি পরিষেবা নিয়ন্ত্রক ইনস্টল করতে চায়৷</translation>
 <translation id="2309620859903500144">এই সাইটটি আপনার মোশন এবং লাইট সেন্সর অ্যাক্সেস করতে পারবে না।</translation>
-<translation id="2311075084924370935">আপনার ক্যালেন্ডার, রিমাইন্ডার, ফ্লাইট ও আরও অনেক কিছুর ব্যাপারে সাহায্য করার জন্য অ্যাসিস্ট্যান্টের ওয়েব ও অ্যাপে অ্যাক্টিভিটি, ডিভাইসের তথ্য এবং ভয়েস ও অডিও অ্যাক্টিভিটি সেটিংসের অ্যাক্সেস প্রয়োজন।</translation>
 <translation id="2315821125498993513">ফোনের সাথে কানেক্ট করা যায়নি। <ph name="LINK_BEGIN" />আরও জানুন।<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">না, ধন্যবাদ</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% হয়েছে</translation>
 <translation id="2318143611928805047">কাগজের আকার</translation>
 <translation id="2318817390901984578">Android অ্যাপ ব্যবহার করতে, আপনার <ph name="DEVICE_TYPE" /> চার্জ ও আপডেট করতে।</translation>
 <translation id="2318923050469484167">বর্তমান ছদ্মবেশী সেশন (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128"><ph name="APP_NAME" />-এ আপনার নিরাপত্তা কী ব্যবহার করুন</translation>
 <translation id="2322193970951063277">শিরোলেখ এবং পাদলেখ</translation>
 <translation id="2325650632570794183">এই ফাইলের প্রকারটি সমর্থিত নয়৷ এই ধরনের ফাইল খুলতে পারে এমন অ্যাপ খুঁজে পেতে Chrome ওয়েব স্টোরে যান।</translation>
 <translation id="2326931316514688470">&amp;অ্যাপ্লিকেশান আবার লোড করুন</translation>
@@ -918,7 +912,6 @@
 <translation id="2367199180085172140">ফাইল শেয়ার যোগ করুন</translation>
 <translation id="2367972762794486313">অ্যাপ্লিকেশানগুলি দেখান</translation>
 <translation id="2369536625682139252">কুকি ছাড়া <ph name="SITE" />-এর স্টোর করা সমস্ত ডেটা মুছে দেওয়া হবে।</translation>
-<translation id="237058345584060620">এই ডিভাইসের সাথে আপনার কী পেয়ার করুন যাতে আপনার অ্যাকাউন্টে সাইন-ইন করার সময় আপনি এটি ব্যবহার করতে পারেন</translation>
 <translation id="2371076942591664043">&amp;সম্পন্ন হলে খুলুন</translation>
 <translation id="2377319039870049694">তালিকা দৃশ্যে যান</translation>
 <translation id="2377667304966270281">হার্ড ফল্ট</translation>
@@ -985,7 +978,6 @@
 <translation id="248861575772995840">আপনার ফোন খুঁজে পাওয়া যাচ্ছে না। নিশ্চিত করুন আপনার <ph name="DEVICE_TYPE" /> এর ব্লুটুথ চালু আছে। &lt;a&gt;আরও জানুন&lt;/a&gt;</translation>
 <translation id="2489918096470125693">ফোল্ডার যুক্ত &amp;করুন...</translation>
 <translation id="249113932447298600">দুঃখিত, <ph name="DEVICE_LABEL" /> ডিভাইসটি এই মুহুর্তে সমর্থিত নয়৷</translation>
-<translation id="2492040222276243256">অন্তত ৫ সেকেন্ড আপনার 'নিরাপত্তা কী' বোতামটি টিপে ধরে রাখুন</translation>
 <translation id="2493021387995458222">"একসাথে একটি শব্দ" বেছে নিন</translation>
 <translation id="249303669840926644">নিবন্ধন সম্পূর্ণ করতে পারেনি</translation>
 <translation id="2495777824269688114">আরও বৈশিষ্ট্যের বিষয়ে জানুন অথবা উত্তর পান। সহায়তার জন্য "?" বোতামটি বেছে নিন।</translation>
@@ -1091,7 +1083,6 @@
 <translation id="2633199387167390344"><ph name="NAME" />, <ph name="USAGE" /> MB ডিস্কের স্থান ব্যবহার করছে৷</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />" সরাবেন?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> ইনস্টলেশন সম্পূর্ণ করতে পারেনি, তবে এটির ডিস্ক ছবি থেকে চালনা চলতে থাকবে৷</translation>
-<translation id="2633326789677284179">আপনার কীয়ের পিছনে প্রিন্ট করা নামটি খুঁজুন</translation>
 <translation id="2635276683026132559">স্বাক্ষর করা</translation>
 <translation id="2636625531157955190">Chrome এই ছবিটি অ্যাক্সেস করতে পারে না৷</translation>
 <translation id="2638087589890736295">সিঙ্ক শুরু করতে পাসফ্রেজ প্রয়োজন</translation>
@@ -1260,7 +1251,6 @@
 <translation id="287286579981869940">যোগ করুন <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">আপনার সব ডিভাইসে নিজের পাসওয়ার্ড পেতে, Chrome এ সাইন-ইন করুন।</translation>
 <translation id="2875698561019555027">(Chrome এর ত্রুটি পৃষ্ঠাগুলি)</translation>
-<translation id="2876441201733326392">ইউএসবি নিরাপত্তা কী ব্যবহার করুন</translation>
 <translation id="288042212351694283">আপনার ইউনিভার্সাল ২য় ফ্যাক্টর ডিভাইসগুলির অ্যাক্সেস রয়েছে</translation>
 <translation id="2881966438216424900">অন্তিমবার অ্যক্সেস করা হয়েছে:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> আবার চালু হবে এবং তাৎক্ষণিকভাবে আবার সেট হবে</translation>
@@ -1328,7 +1318,6 @@
 <translation id="2982970937345031">নাম ছাড়া প্রতিবেদন করুন</translation>
 <translation id="2984337792991268709">আজ <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">MIDI ডিভাইসগুলির সম্পূর্ণ নিয়ন্ত্রণ থেকে এই পৃষ্ঠাটিকে অবরুদ্ধ করা হয়েছে৷</translation>
-<translation id="2988599644347283908">দ্রষ্টব্য: যে ডেটা এই সেটিংসের মাধ্যমে নিয়ন্ত্রণ করা হয় তা সেভ করা হতে পারে এবং আপনার জন্য ব্যক্তিগতকৃত অভিজ্ঞতা এবং প্রয়োজনীয় বিজ্ঞাপনগুলি প্রদান করতে আপনি যে সকল Google পরিষেবাতে সাইন-ইন করে আছেন সেখানে ব্যবহার করা হতে পারে। আপনি আপনার ডেটা দেখতে পারেন, মুছে ফেলতে পারেন এবং account.google.com-এ আপনার সেটিংস পরিবর্তন করতে পারেন।</translation>
 <translation id="2989474696604907455">সংযুক্ত নয়</translation>
 <translation id="2989786307324390836">DER-এনকোডেড বাইনারি, একক শংসাপত্র</translation>
 <translation id="2993517869960930405">অ্যাপ্লিকেশানের তথ্য</translation>
@@ -1381,7 +1370,6 @@
 <translation id="304826556400666995">ট্যাবগুলি সশব্দ করুন</translation>
 <translation id="3053013834507634016">শংসাপত্র কী ব্যবহার</translation>
 <translation id="3057861065630527966">আপনার ফটো ও ভিডিওগুলির ব্যাকআপ নিন</translation>
-<translation id="3059313675706898490">Android মেসেজ</translation>
 <translation id="3060379269883947824">'বাছুন ও শুনুন' চালু করুন</translation>
 <translation id="3061707000357573562">প্যাচ পরিষেবা</translation>
 <translation id="3064410671692449875">অপর্যাপ্ত ডেটা</translation>
@@ -1410,7 +1398,6 @@
 <translation id="3090819949319990166"><ph name="TEMP_CRX_FILE" /> এ বহিরাগত crx ফাইলটি অনুলিপি করতে পারবেন না৷</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" যুক্ত করা হয়েছে</translation>
 <translation id="3101709781009526431">তারিখ এবং সময়</translation>
-<translation id="3104900172193317662">আপনার নিরাপত্তা কী ব্যবহার করার অনুমতি দিন</translation>
 <translation id="310671807099593501">সাইটটি ব্লুটুথ ব্যবহার করছে</translation>
 <translation id="3115128645424181617">আপনার ফোন খুঁজে পাওয়া যায়নি। এটি সহজে ব্যবহার করা যায় এবং বুলুটুথ চালু রয়েছে সেটি নিশ্চিত করুন।</translation>
 <translation id="3115147772012638511">ক্যাশের অপেক্ষা করা হচ্ছে...</translation>
@@ -1494,7 +1481,6 @@
 <translation id="3251759466064201842">&lt;শংসাপত্রের অংশ নয়&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> ফাইলের জন্য ডিফল্ট অ্যাপ্লিকেশন বেছে নিন:</translation>
 <translation id="3254516606912442756">টাইম জোন নিজে থেকে শনাক্ত করার বিকল্পটি অক্ষম করা আছে</translation>
-<translation id="3254772308201947812">হ্যাঁ, আমি রাজি</translation>
 <translation id="3264544094376351444">Sans-Serif হরফ</translation>
 <translation id="3264547943200567728">আপনার Chromebox এর নেটওয়ার্ক স্থাপন করতে ব্যর্থ হয়েছে</translation>
 <translation id="3264582393905923483">প্রসঙ্গ</translation>
@@ -1814,7 +1800,6 @@
 <translation id="3735740477244556633">এই অনুসারে সাজান</translation>
 <translation id="3737274407993947948">Linux ইনস্টল করার সময় সমস্যা হচ্ছে...</translation>
 <translation id="3737536731758327622">আপনার ডাউনলোডগুলি এখানে দেখা যাবে</translation>
-<translation id="3738671331307774213">আপনার পরিচয় যাচাই করলে তা আপনার ব্যক্তিগত ডেটা রক্ষা করতে সহায়তা করে</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> খুলবেন?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> এখন অ্যাডমিন কনসোলে প্রদর্শিত হবে</translation>
@@ -1922,7 +1907,6 @@
 <translation id="3873315167136380065">এটি চালু করতে, আপনার সিঙ্ক পাসফ্রেজটি সরিয়ে দিতে <ph name="BEGIN_LINK" />সিঙ্ক রিসেট করুন<ph name="END_LINK" /></translation>
 <translation id="3878840326289104869">তত্ত্বাবধানে থাকা ব্যবহারকারী তৈরি করা হচ্ছে</translation>
 <translation id="3879748587602334249">ডাউনলোড ম্যানেজার</translation>
-<translation id="3880709822663530586">আপনার ডিভাইসের ব্লুটুথ চালু থাকলেই কেবলমাত্র নিরাপত্তা কী কাজ করে</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ব্যবহার করে নোট নেওয়া হচ্ছে</translation>
 <translation id="3892414795099177503">OpenVPN / L2TP যোগ করুন...</translation>
 <translation id="3893536212201235195">আপনার অ্যাক্সেসিবিলিটি সেটিংস পড়ুন ও পরিবর্তন করুন</translation>
@@ -2067,6 +2051,7 @@
 <translation id="4096824249111507322">নিরাপদ মডিউল তৈরি করা হচ্ছে, অনুগ্রহ করে অপেক্ষা করুন (কয়েক মিনিট সময় লাগতে পারে)...</translation>
 <translation id="4099060993766194518">ডিফল্ট সার্চ ইঞ্জিন পুনরুদ্ধার করবেন?</translation>
 <translation id="4100733287846229632">ডিভাইসের স্থান আশংকাজনকভাবে কম</translation>
+<translation id="4103091233824664032">স্ক্রিন লক এবং সাইন-ইন কনফিগার করার জন্য আপনার পাসওয়ার্ড লিখুন</translation>
 <translation id="4104163789986725820">র&amp;প্তানি...</translation>
 <translation id="4105563239298244027">Google ড্রাইভের সাথে বিনামূল্যে ১ TB পান</translation>
 <translation id="4107048419833779140">স্টোরেজ ডিভাইসগুলি শনাক্ত করে সরিয়ে দিন</translation>
@@ -2087,7 +2072,6 @@
 <translation id="4136203100490971508">সূর্যোদয়ের সময় নাইট লাইট নিজে থেকেই বন্ধ হয়ে যাবে</translation>
 <translation id="4138267921960073861">সাইন-ইন স্ক্রিনে ব্যবহারকারীর নামগুলি এবং ফটো দেখান</translation>
 <translation id="4144218403971135344">আরও উন্নত মানের ভিডিও পান এবং ব্যাটারি সাশ্রয় করুন। শুধুমাত্র আপনার Cast চালু আছে এমন স্ক্রিনে ভিডিও চলবে</translation>
-<translation id="414599683948988413">USB এর মাধ্যমে আপনার নিরাপত্তা কী ব্যবহার করুন</translation>
 <translation id="4146026355784316281">সর্বদা সিস্টেম নিরীক্ষকের সাথে খুলুন</translation>
 <translation id="4146785383423576110">রিসেট এবং সাফ করুন</translation>
 <translation id="4147897805161313378">Google ফটো</translation>
@@ -2430,6 +2414,7 @@
 <translation id="474217410105706308">ট্যাব মিউট করুন</translation>
 <translation id="4742746985488890273">শেল্ফে পিন করুন</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />অ্যাপ্লিকেশন কীভাবে আপডেট করতে হয় তা জানুন<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">বার্তাগুলি</translation>
 <translation id="4746971725921104503">দেখে মনে হচ্ছে আপনি ইতিমধ্যে এই নাম দিয়ে একটি ব্যবহারকারীকে পরিচালনা করছেন৷ আপনি কি  <ph name="LINK_START" /> <ph name="USER_DISPLAY_NAME" /> এই ডিভাইসে আমদানি করতে চান<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Chrome ওয়েব স্টোর থেকে এক্সটেনশন প্রয়োজন</translation>
 <translation id="4750394297954878236">প্রস্তাবনা</translation>
@@ -2663,7 +2648,6 @@
 <translation id="5099354524039520280">উপরে</translation>
 <translation id="5100114659116077956">সর্বশেষ বৈশিষ্ট্যগুলি আপনার কাছে নিয়ে আসতে, আপনার Chromebox আপডেট করতে হবে৷</translation>
 <translation id="5101042277149003567">সকল বুকমার্ক খুলুন</translation>
-<translation id="5104546332954397226">নিরাপত্তা কী হিসেবে আপনার ফোন ব্যবহার করুন</translation>
 <translation id="5105855035535475848">ট্যাবগুলি পিন করুন</translation>
 <translation id="5108967062857032718">সেটিংস - Android অ্যাপ্লিকেশানগুলি সরান</translation>
 <translation id="5109044022078737958">মিয়া</translation>
@@ -2793,7 +2777,6 @@
 <translation id="5288678174502918605">বন্ধ হওয়া ট্যাব পুনরায়&amp;খুলুন</translation>
 <translation id="52912272896845572">ব্যক্তিগত কী ফাইলটি অবৈধ৷</translation>
 <translation id="529175790091471945">এই ডিভাইসটি ফর্ম্যাট করুন</translation>
-<translation id="5292195676005197571">বেশিরভাগ কী ব্যবহার করতে শুধু বোতামে প্রেস করুন</translation>
 <translation id="5293170712604732402">সেটিংসকে তাদের মূল ডিফল্টে পুনঃস্থাপন করুন</translation>
 <translation id="5297082477358294722">পাসওয়ার্ড সেভ করা হয়েছে। <ph name="SAVED_PASSWORDS_STORE" />-এ সেভ করা পাসওয়ার্ড দেখুন এবং ম্যানেজ করুন।</translation>
 <translation id="5298219193514155779">থিম তৈরি করেছেন</translation>
@@ -2863,7 +2846,6 @@
 <translation id="5390100381392048184">সাউন্ডটি প্লে করার জন্য সাইটগুলিতে অনুমতি দিন</translation>
 <translation id="5390284375844109566">সূচিবদ্ধ ডেটাবেস</translation>
 <translation id="5390743329570580756">এর জন্য পাঠান</translation>
-<translation id="5392327114396848796">একটি বিল্ট-ইন নিরাপত্তা কী ব্যবহার করুন</translation>
 <translation id="5397794290049113714">আপনি</translation>
 <translation id="5398572795982417028">পৃষ্ঠা সীমার বাইরের উল্লেখ, সীমা হলো <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">বিজ্ঞাপন ব্লক করা হয়েছে</translation>
@@ -3169,7 +3151,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - ক্যামেরা বা মাইক্রোফোন রেকর্ডিং</translation>
 <translation id="5835754902560991078">অত্যন্ত অল্প সময় (০.৬সে.)</translation>
 <translation id="5838456317242088717">বর্তমান ছদ্মবেশী সেশন</translation>
-<translation id="5842053879378944309"><ph name="APP_NAME" /> এর সাথে ইউএসবি নিরাপত্তা কী ব্যবহার করুন</translation>
 <translation id="5842497610951477805">ব্লুটুথ সক্ষম</translation>
 <translation id="5843250171025351504">আপনার প্রশাসকের মাধ্যমে নির্দিষ্ট ন্যূনতম ক্লায়েন্ট সংস্করণের সাথে আপনার ডিভাইসের সাথে আর সঙ্গতিশীল নয় অনুগ্রহ করে লগ-ইন আপডেট করুন।</translation>
 <translation id="5846929185714966548">ট্যাব ৪</translation>
@@ -3488,7 +3469,6 @@
 <translation id="6317318380444133405">আর সমর্থিত নয়৷</translation>
 <translation id="6317369057005134371">অ্যাপ্লিকেশন উইন্ডোর জন্য অপেক্ষা করা হচ্ছে...</translation>
 <translation id="6318407754858604988">ডাউনলোড শুরু হয়েছে</translation>
-<translation id="6322653941595359182">Chromebook থেকে টেক্সট মেসেজ পাঠান ও পান</translation>
 <translation id="6324916366299863871">শর্টকার্ট এডিট করুন</translation>
 <translation id="6325191661371220117">স্বয়ংক্রিয় লঞ্চ অক্ষম করুন</translation>
 <translation id="6326175484149238433">Chrome থেকে সরান</translation>
@@ -3557,7 +3537,6 @@
 <translation id="642282551015776456">ফাইল বা ফোল্ডারের নাম হিসাবে নামটি ব্যবহৃত নাও হতে পারে</translation>
 <translation id="642469772702851743">এই ডিভাইসের (SN: <ph name="SERIAL_NUMBER" />) মালিক এটি লক করেছেন।</translation>
 <translation id="6426200009596957090">ChromeVox এর সেটিংস খুলুন</translation>
-<translation id="6427415464407526111">আপনার নিরাপত্তা কী বেছে নিন</translation>
 <translation id="6429384232893414837">আপডেট করতে সমস্যা হয়েছে</translation>
 <translation id="6430814529589430811">Base64-এনকোডেড ASCII, একক শংসাপত্র</translation>
 <translation id="6431217872648827691">আপনার Google পাসওয়ার্ডের মাধ্যমে <ph name="TIME" /> তারিখ অনুযায়ী সমস্ত ডেটা এনক্রিপটেড হয়েছে</translation>
@@ -3714,7 +3693,6 @@
 <translation id="6655190889273724601">ডেভেলপার মোড</translation>
 <translation id="6655458902729017087">অ্যাকাউন্টগুলি লুকান</translation>
 <translation id="6657585470893396449">পাসওয়ার্ড</translation>
-<translation id="6658023813581644008">সাইন-ইনের জন্য Smart Lock সেট-আপ করতে আপনার পাসওয়ার্ড লিখুন</translation>
 <translation id="6659213950629089752">"<ph name="NAME" />" এক্সটেনশান দ্বারা এই পৃষ্ঠাটি জুম করা হয়েছে</translation>
 <translation id="6659594942844771486">ট্যাব</translation>
 <translation id="6664237456442406323">দুর্ভাগ্যবশত, আপনার কম্পিউটার একটি ত্রুটিপূর্ণ হার্ডওয়্যার ID এর মাধ্যমে কনফিগার করা হয়েছে৷ এটি Chrome OS কে সাম্প্রতিক সুরক্ষা সমাধানে আপডেট করা থেকে বিরত করেছে এবং আপনার কম্পিউটার <ph name="BEGIN_BOLD" />অনিষ্টকারী আক্রমণগুলির ফলে অরক্ষিত হতে পারে<ph name="END_BOLD" />৷</translation>
@@ -3850,7 +3828,6 @@
 <translation id="6885771755599377173">সিস্টেম তথ্যের পূর্বরূপ</translation>
 <translation id="6886871292305414135">নতুন &amp;ট্যাবে লিঙ্ক খুলুন</translation>
 <translation id="6892812721183419409"><ph name="USER" /> হিসেবে লিঙ্ক খুলুন</translation>
-<translation id="6896398788631624004">আপনার নিরাপত্তা কী প্লাগ ইন করুন এবং এটি চালু করুন</translation>
 <translation id="6896758677409633944">অনুলিপি</translation>
 <translation id="6898440773573063262">Kiosk অ্যাপ্লিকেশানগুলিকে এখন এই ডিভাইসে স্বয়ংক্রিয়ভাবে লঞ্চ করতে কনফিগার করা যাবে৷</translation>
 <translation id="6898699227549475383">সংস্থা (O)</translation>
@@ -3891,6 +3868,7 @@
 <translation id="6965382102122355670">ঠিক আছে</translation>
 <translation id="6965648386495488594">পোর্ট</translation>
 <translation id="6965978654500191972">ডিভাইস</translation>
+<translation id="6968288415730398122">স্ক্রিন লক কনফিগার করতে আপনার পাসওয়ার্ড লিখুন</translation>
 <translation id="6970480684834282392">প্রারম্ভিক প্রকার</translation>
 <translation id="6970856801391541997">প্রিন্ট নির্দিষ্ট পৃষ্ঠাসমূহ</translation>
 <translation id="6972180789171089114">অডিও/ভিডিও</translation>
@@ -4069,7 +4047,6 @@
 <translation id="7228523857728654909">স্ক্রিন লক এবং সাইন-ইন</translation>
 <translation id="7229570126336867161">EVDO এর প্রয়োজন</translation>
 <translation id="7230787553283372882">আপনার পাঠ্যের আকার কাস্টমাইজ করুন</translation>
-<translation id="7231589788477569369">এই সেটিংসের সাহায্যে অ্যাসিস্ট্যান্টের সম্পূর্ণ অভিজ্ঞতা লাভ করুন</translation>
 <translation id="7232750842195536390">নাম পরিবর্তন করা যায়নি</translation>
 <translation id="7234406375359457793">শেয়ার মাউন্ট করা যায়নি। নির্দিষ্ট শেয়ারটি সমর্থিত নয়।</translation>
 <translation id="7238585580608191973">SHA-256 আঙুলের ছাপ</translation>
@@ -4079,7 +4056,6 @@
 <translation id="7243632151880336635">সাফ করে প্রস্থান করুন</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (সর্বোত্তম)</translation>
 <translation id="7246339268451149667">আঙ্গুলের ছাপ দিয়ে আনলক সক্ষম করবেন?</translation>
-<translation id="7246489301073081944">বেরিয়ে যাওয়ার জন্য |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| ধরে থাকুন</translation>
 <translation id="7246947237293279874">FTP প্রক্সী</translation>
 <translation id="725109152065019550">দুঃখিত, আপনার প্রশাসক আপনার অ্যাকাউন্টে বাহ্যিক সঞ্চয়স্থান অক্ষম করেছে৷</translation>
 <translation id="7253521419891527137">এবং আরও জানুন</translation>
@@ -4232,7 +4208,6 @@
 <translation id="7489605380874780575">যোগ্যতার পরীক্ষা করুন</translation>
 <translation id="749028671485790643">ব্যক্তি <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC ঠিকানা</translation>
-<translation id="7490950320178383728">ব্লুটুথ এর মাধ্যমে আপনার নিরাপত্তা কী ব্যবহার করুন</translation>
 <translation id="7491962110804786152">ট্যাব</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> এক্সটেনশান হয়ত ব্যক্তিগত ডেটা যেমন পাসওয়ার্ড ও ক্রেডিট কার্ড নম্বরগুলি সহ আপনি যা টাইপ করেন সেসব পাঠ্য সংগ্রহ করতে পারে। আপনি কি এই এক্সটেনশান ব্যবহার করতে চান?</translation>
 <translation id="7494065396242762445">Windows সেটিংস খুলুন</translation>
@@ -4481,7 +4456,6 @@
 <translation id="7850851215703745691">এই ড্রাইভ ফাইলগুলি এখনো শেয়ার করা হয়নি</translation>
 <translation id="7851457902707056880">শুধুমাত্র মালিক অ্যাকউন্টে প্রবেশ সীমাবদ্ধ করা হয়েছে৷ দয়া করে পুনরায় বুট করে মালিক অ্যাকউন্ট দিয়ে প্রবেশ করুন৷ মেশিনটি 30 সেকেন্ডের মধ্যে স্বয়ংক্রিয় ভাবে পুনরায় বুট হবে৷</translation>
 <translation id="7851716364080026749">সর্বদা ক্যামেরা এবং মাইক্রোফোনের অ্যাক্সেস অবরুদ্ধ করুন</translation>
-<translation id="7851816139220202929">NFC এর মাধ্যমে আপনার নিরাপত্তা কী ব্যবহার করুন</translation>
 <translation id="7853747251428735">আরও সর&amp;ঞ্জাম</translation>
 <translation id="7856006446339184955">সিস্টেম ডেটা পাঠান। এই ডিভাইসটি বর্তমানে Google-এ ডায়গনস্টিক ও ব্যবহারের ডেটা পাঠাবে। এই <ph name="BEGIN_LINK1" />সেটিংসটি<ph name="END_LINK1" /> মালিকের দ্বারা জারি করা হয়। আপনি যদি অতিরিক্ত ওয়েব ও অ্যাপ অ্যাক্টিভিটি চালু করে থাকেন, তাহলে এই তথ্যটি আপনার অ্যাকাউন্টে সেভ করা হবে, যাতে আপনি আমার অ্যাক্টিভিটিতে সেটি পরিচালনা করতে পারেন। <ph name="BEGIN_LINK2" />আরও জানুন<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">ব্যতিক্রম যোগ করুন</translation>
@@ -4614,7 +4588,6 @@
 <translation id="8030656706657716245">প্রিন্টার জুড়ুন</translation>
 <translation id="8032244173881942855">ট্যাব কাস্ট করতে অক্ষম৷</translation>
 <translation id="8033827949643255796">নির্বাচিত</translation>
-<translation id="8033958968890501070">সময় শেষ হয়ে গেছে</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{সবগুলি &amp;ছদ্মবেশী উইন্ডোতে খুলুন}=1{&amp;ছদ্মবেশী উইন্ডোতে খুলুন}one{সবগুলিকে (#টি) &amp;ছদ্মবেশী উইন্ডোতে খুলুন}other{সবগুলিকে (#টি) &amp;ছদ্মবেশী উইন্ডোতে খুলুন}}</translation>
 <translation id="8037117027592400564">সিন্থেসাইজড স্পিচ ব্যবহার করে কথিত সব পাঠ্য পড়ুন</translation>
 <translation id="8037357227543935929">জিজ্ঞাসা করুন (ডিফল্ট)</translation>
@@ -4838,7 +4811,6 @@
 <translation id="8425213833346101688">পরিবর্তন</translation>
 <translation id="8425492902634685834">কার্যদন্ডে পিন করুন</translation>
 <translation id="8425755597197517046">আট&amp;কান এবং খুঁজুন</translation>
-<translation id="8426117172745886547">ছেড়ে যাওয়ার আগে সাবধান করুন (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">সক্ষম করা হচ্ছে</translation>
 <translation id="8427292751741042100">অন্য কোনও হোস্টে এম্বেড করা হয়েছে</translation>
 <translation id="8428213095426709021">সেটিংস</translation>
@@ -4926,7 +4898,6 @@
 <translation id="8551388862522347954">লাইসেন্সগুলি</translation>
 <translation id="8553342806078037065">অন্যান্য ব্যক্তিদের পরিচালনা করুন</translation>
 <translation id="8554899698005018844">কোনও ভাষা নেই</translation>
-<translation id="8557347704037207368">Android ওয়েব মেসেজ থেকে বিজ্ঞপ্তি পাঠানো হয়</translation>
 <translation id="855773602626431402">এই পৃষ্ঠাটিতে একটি আনস্যান্ডবক্সড প্লাগ ইন চালু করা থেকে আটকানো হয়েছিল৷</translation>
 <translation id="8557930019681227453">ম্যানিফেস্ট</translation>
 <translation id="8559694214572302298">ছবি সঙ্কেতমোচক</translation>
@@ -5202,7 +5173,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ক্র্যাশ করেছে</translation>
 <translation id="8983677657449185470">নিরাপদ ব্রাউজিং বৈশিষ্ট্যটি আরও উন্নত করে তুলতে সাহায্য করুন</translation>
 <translation id="8984654317541110628">ফাইল শেয়ার করার ইউআরএল</translation>
-<translation id="8984872292925913496">আপনার কীয়ের পিছনে ৬ সংখ্যার পিনটি খুঁজুন</translation>
 <translation id="8986362086234534611">ভুলে যান</translation>
 <translation id="8986494364107987395">ব্যবহারের পরিসংখ্যান এবং ক্র্যাশ প্রতিবেদনগুলি স্বয়ংক্রিয়ভাবে Google-এ পাঠান</translation>
 <translation id="8987927404178983737">মাস</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 436ac9f..46ce158 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Ressalta l'objecte amb el focus del teclat quan canviï</translation>
 <translation id="1173894706177603556">Canvia el nom</translation>
 <translation id="1174073918202301297">La drecera s'ha afegit</translation>
-<translation id="1174808551768282258">Desbloqueja el dispositiu Chromebook amb el telèfon. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Imprimeix...</translation>
 <translation id="117624967391683467">S'està copiant <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">És possible que Google utilitzi el teu historial de navegació per personalitzar la Cerca, els anuncis i altres serveis de Google. Pots canviar aquesta opció sempre que vulguis des de myaccount.google.com/activitycontrols/search.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Posa en pausa</translation>
 <translation id="1181037720776840403">Suprimeix</translation>
 <translation id="1183237619868651138">No es pot instal·lar <ph name="EXTERNAL_CRX_FILE" /> a la memòria cau local.</translation>
-<translation id="1183378459020939734">Estàs a punt per vincular la clau de seguretat?</translation>
 <translation id="1185924365081634987">També podeu provar de <ph name="GUEST_SIGNIN_LINK_START" />navegar com a convidat<ph name="GUEST_SIGNIN_LINK_END" /> per corregir aquest error de xarxa.</translation>
 <translation id="1186771945450942097">Suprimeix el programari maliciós</translation>
 <translation id="1187722533808055681">Activacions en estat de repòs</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">No s'ha trobat cap dispositiu Bluetooth</translation>
 <translation id="1306606229401759371">Canvia la configuració</translation>
 <translation id="1307559529304613120">El sistema no ha pogut emmagatzemar un testimoni d'accés a l'API de llarg termini per a aquest dispositiu.</translation>
+<translation id="1307931752636661898">No es poden mostrar fitxers de Linux</translation>
 <translation id="1313405956111467313">Configuració automàtica del servidor intermediari</translation>
 <translation id="131364520783682672">Bloq Maj</translation>
 <translation id="1313705515580255288">Se sincronitzaran les adreces d'interès, l'historial i la configuració amb el vostre compte de Google</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Obre la configuració del ratolí i del ratolí tàctil</translation>
 <translation id="1531004739673299060">Finestra de l'aplicació</translation>
 <translation id="15373452373711364">Cursor del ratolí gran</translation>
+<translation id="1538729222189715449">S'estan obrint els fitxers de Linux...</translation>
 <translation id="1540605929960647700">Activa el mode de demostració</translation>
 <translation id="1543284117603151572">Importades d'Edge</translation>
 <translation id="1545177026077493356">Mode quiosc automàtic</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Canvia al mode HUD tàctil</translation>
 <translation id="1784849162047402014">Queda poc espai al disc del dispositiu</translation>
 <translation id="1786636458339910689">Unitats d'equip</translation>
-<translation id="1792161662640298233">S'està verificant la clau de seguretat</translation>
 <translation id="1792619191750875668">Pantalla ampliada</translation>
 <translation id="1794791083288629568">Envia suggeriments per ajudar-nos a solucionar el problema.</translation>
 <translation id="1795214765651529549">Utilitza el tema clàssic</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Us donem la benvinguda</translation>
 <translation id="1914326953223720820">Descomprimeix el servei</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">En funció de la configuració del compte, la teva experiència amb l'Assistent es pot veure limitada a contingut com ara resultats web, acudits i informació local.</translation>
 <translation id="1916502483199172559">Avatar vermell predeterminat</translation>
 <translation id="1918141783557917887">&amp;Més petit</translation>
 <translation id="1919345977826869612">Anuncis</translation>
@@ -686,7 +684,7 @@
 <translation id="2006638907958895361">Obre l'enllaç a <ph name="APP" /></translation>
 <translation id="2007404777272201486">Informa d'un problema...</translation>
 <translation id="2016430552235416146">Tradicional</translation>
-<translation id="2017334798163366053">Desactiva la recopilació de dades de rendiment</translation>
+<translation id="2017334798163366053">Desactiva la recollida de dades de rendiment</translation>
 <translation id="2017836877785168846">Esborra l'historial i les complecions automàtiques a la barra d'adreces.</translation>
 <translation id="2018352199541442911">El teu dispositiu d'emmagatzematge extern no és compatible en aquests moments.</translation>
 <translation id="2019718679933488176">&amp;Obre l'àudio en una pestanya nova</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">El connector <ph name="PEPPER_PLUGIN_NAME" /> del lloc web <ph name="PEPPER_PLUGIN_DOMAIN" /> vol accedir a l'ordinador</translation>
 <translation id="2178614541317717477">Compromís de CA</translation>
 <translation id="218070003709087997">Utilitza un número per indicar quantes còpies vols imprimir (entre 1 i 999).</translation>
+<translation id="2184515124301515068">Deixa que Chrome triï quan permetre que els llocs web reprodueixin so (opció recomanada)</translation>
 <translation id="2187895286714876935">Error d'importació del certificat del servidor</translation>
 <translation id="2187906491731510095">S'han actualitzat les extensions</translation>
 <translation id="2188881192257509750">Obre <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Llegir i modificar les dades d'una sèrie de llocs web</translation>
 <translation id="2242687258748107519">Informació del fitxer</translation>
 <translation id="2243194103992005307">Per suprimir una aplicació, ves a Configuració &gt; Aplicacions o Gestor d'aplicacions. A continuació, toca l'aplicació que vulguis desinstal·lar (és possible que hagis de lliscar cap a la dreta o cap a l'esquerra per trobar-la). Tot seguit, toca Desinstal·la o Desactiva.</translation>
+<translation id="224940702122312781">Aquesta pàgina farà servir moltes dades.</translation>
 <translation id="2249605167705922988">p. ex. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Obre amb el lector del sistema</translation>
 <translation id="225163402930830576">Actualitza les xarxes</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Configura la xarxa</translation>
 <translation id="230927227160767054">Aquesta pàgina vol instal·lar un gestor de serveis.</translation>
 <translation id="2309620859903500144">Aquest lloc web no té permís per accedir als sensors de llum o moviment.</translation>
-<translation id="2311075084924370935">Per ajudar-te amb el calendari, els recordatoris, els vols i altres informacions, l'Assistent necessita que activis les opcions de configuració Activitat al web i en aplicacions, Informació dels dispositius i Activitat de veu i d'àudio.</translation>
+<translation id="2315414688463285945">S'ha produït un error en configurar els fitxers de Linux. Torna-ho a provar.</translation>
 <translation id="2315821125498993513">No s'ha pogut connectar amb el telèfon. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">No, gràcies</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% complet</translation>
 <translation id="2318143611928805047">Mida del paper</translation>
 <translation id="2318817390901984578">Per utilitzar les aplicacions d'Android, canvia i actualitza el dispositiu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Sessió d'incògnit actual (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Utilitza la clau de seguretat amb <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Capçalera i peu de pàgina</translation>
 <translation id="2325650632570794183">Aquest tipus de fitxer no és compatible. Visiteu Chrome Web Store per trobar una aplicació que pugui obrir aquest tipus de fitxer.</translation>
 <translation id="2326931316514688470">&amp;Tornar a carregar l'aplicació</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Afegeix un nou ús compartit de fitxers</translation>
 <translation id="2367972762794486313">Mostra les aplicacions</translation>
 <translation id="2369536625682139252">Se suprimiran totes les dades que <ph name="SITE" /> hagi emmagatzemat, tret de les galetes.</translation>
-<translation id="237058345584060620">Vincula la teva clau amb aquest dispositiu per poder utilitzar-la per iniciar la sessió al teu compte</translation>
 <translation id="2371076942591664043">Obre quan &amp;acabi</translation>
 <translation id="2377319039870049694">Canvia a la visualització de llista</translation>
 <translation id="2377667304966270281">Errors greus</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">No es troba el telèfon. Comprova que <ph name="DEVICE_TYPE" /> tingui el Bluetooth activat. &lt;a&gt;Més informació&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Afegeix una &amp;carpeta...</translation>
 <translation id="249113932447298600">El dispositiu <ph name="DEVICE_LABEL" /> no és compatible en aquests moments.</translation>
-<translation id="2492040222276243256">Mantén premut el botó de la clau de seguretat durant 5 segons com a mínim</translation>
 <translation id="2493021387995458222">Selecciona "una paraula cada vegada"</translation>
 <translation id="249303669840926644">El registre no s'ha pogut completar</translation>
 <translation id="2495777824269688114">Descobreix més funcions o obtén respostes. Selecciona ? per obtenir ajuda.</translation>
@@ -999,7 +996,7 @@
 <translation id="2499747912851752301">S'estan exportant les contrasenyes...</translation>
 <translation id="2500471369733289700">S'ha bloquejat per protegir la teva privadesa</translation>
 <translation id="2501173422421700905">Certificat retingut</translation>
-<translation id="2501278716633472235">Enrere</translation>
+<translation id="2501278716633472235">Torna</translation>
 <translation id="2501797496290880632">Escriviu una drecera</translation>
 <translation id="2502441965851148920">Les actualitzacions automàtiques estan activades. En canvi, el vostre administrador ha desactivat les manuals.</translation>
 <translation id="2505324914378689427">{SCREEN_INDEX,plural, =1{Pantalla #}other{Pantalla #}}</translation>
@@ -1008,7 +1005,7 @@
 <translation id="2509495747794740764">El valor de l'escala ha d'oscil·lar entre 10 i 200.</translation>
 <translation id="2509566264613697683">8x</translation>
 <translation id="2512222046227390255">Emplena formularis automàticament</translation>
-<translation id="2513403576141822879">Per trobar més opcions relacionades amb la privadesa, la seguretat i la recopilació de dades, consulta <ph name="BEGIN_LINK" />Sincronització i serveis de Google<ph name="END_LINK" /></translation>
+<translation id="2513403576141822879">Per trobar més opcions relacionades amb la privadesa, la seguretat i la recollida de dades, consulta <ph name="BEGIN_LINK" />Sincronització i serveis de Google<ph name="END_LINK" /></translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2517472476991765520">Cerca</translation>
 <translation id="2518024842978892609">Utilitzar els certificats de client</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Total: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Llarg</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (plataforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Aquesta pestanya comparteix la teva pantalla.</translation>
 <translation id="2586657967955657006">Porta-retalls</translation>
 <translation id="2586672484245266891">Introdueix un URL més curt</translation>
 <translation id="2587922270115112871">En crear un usuari supervisat no es crea un compte de Google, i la seva configuració i les seves dades no passaran a altres dispositius amb la sincronització de Chrome. Actualment, un usuari supervisat només aplica la instal·lació de Chrome en aquest dispositiu.</translation>
@@ -1090,7 +1088,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> està utilitzant <ph name="USAGE" /> MB d'espai de disc.</translation>
 <translation id="2633212996805280240">Voleu eliminar "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> no ha pogut completar la instal·lació, però es continuarà executant des de la imatge de disc.</translation>
-<translation id="2633326789677284179">Cerca el nom imprès a la part posterior de la clau</translation>
 <translation id="2635276683026132559">Signatura</translation>
 <translation id="2636625531157955190">Chrome no pot accedir a la imatge.</translation>
 <translation id="2638087589890736295">Cal una frase de contrasenya per iniciar la sincronització</translation>
@@ -1258,7 +1255,6 @@
 <translation id="287286579981869940">Afegeix <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Inicia la sessió a Chrome per tenir les contrasenyes en tots els teus dispositius.</translation>
 <translation id="2875698561019555027">(Pàgines d'error de Chrome)</translation>
-<translation id="2876441201733326392">Utilitza la clau de seguretat USB</translation>
 <translation id="288042212351694283">Accés als dispositius Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Darrer accés:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> es reiniciarà i es restablirà temporalment.</translation>
@@ -1326,7 +1322,6 @@
 <translation id="2982970937345031">Informa'n de manera anònima</translation>
 <translation id="2984337792991268709">Avui a les <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">S'ha bloquejat el control total d'aquesta pàgina sobre els dispositius MIDI.</translation>
-<translation id="2988599644347283908">Nota: qualsevol servei de Google en què hagis iniciat la sessió pot desar i utilitzar les dades controlades per aquestes opcions de configuració per oferir-te experiències personalitzades i anuncis útils. Pots veure les teves dades, suprimir-les i modificar les opcions de configuració a account.google.com.</translation>
 <translation id="2989474696604907455">no connectat</translation>
 <translation id="2989786307324390836">Binari codificat amb DER, certificat únic</translation>
 <translation id="2993517869960930405">Informació de l'aplicació</translation>
@@ -1379,7 +1374,6 @@
 <translation id="304826556400666995">Deixa de silenciar les pestanyes</translation>
 <translation id="3053013834507634016">Ús de claus de certificat</translation>
 <translation id="3057861065630527966">Crea una còpia de seguretat de les fotos i dels vídeos</translation>
-<translation id="3059313675706898490">Missatges Android</translation>
 <translation id="3060379269883947824">Activa Escolta la selecció</translation>
 <translation id="3061707000357573562">Servei de pedaç</translation>
 <translation id="3064410671692449875">Dades insuficients</translation>
@@ -1408,7 +1402,6 @@
 <translation id="3090819949319990166">No es pot copiar el fitxer crx extern a <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" vinculat</translation>
 <translation id="3101709781009526431">Data i hora</translation>
-<translation id="3104900172193317662">Permet que s'utilitzi la teva clau de seguretat</translation>
 <translation id="310671807099593501">El lloc web està utilitzant el Bluetooth</translation>
 <translation id="3115128645424181617">No es troba el telèfon. Comprova que sigui a prop i que tingui el Bluetooth activat.</translation>
 <translation id="3115147772012638511">Esperant la memòria cau...</translation>
@@ -1492,7 +1485,6 @@
 <translation id="3251759466064201842">&lt;No forma part del certificat&gt;</translation>
 <translation id="3254434849914415189">Tria l'aplicació predeterminada per als fitxers <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">La detecció automàtica de la zona horària està desactivada</translation>
-<translation id="3254772308201947812">Sí, ho accepto</translation>
 <translation id="3264544094376351444">Tipus de lletra Sans-serif</translation>
 <translation id="3264547943200567728">No s'ha pogut configurar la xarxa de Chromebox</translation>
 <translation id="3264582393905923483">Context</translation>
@@ -1588,7 +1580,7 @@
 <translation id="3405664148539009465">Personalitza els tipus de lletra</translation>
 <translation id="3405763860805964263">…</translation>
 <translation id="3406605057700382950">&amp;Mostra la Barra d'adreces d'interès</translation>
-<translation id="3407837288045706722">Per trobar més opcions relacionades amb la privadesa, la seguretat i la recopilació de dades, consulta <ph name="BEGIN_LINK" />Sincronització i personalització<ph name="END_LINK" /></translation>
+<translation id="3407837288045706722">Per trobar més opcions relacionades amb la privadesa, la seguretat i la recollida de dades, consulta <ph name="BEGIN_LINK" />Sincronització i personalització<ph name="END_LINK" /></translation>
 <translation id="3412265149091626468">Ves directament a la selecció</translation>
 <translation id="3413122095806433232">Emissors de CA: <ph name="LOCATION" /></translation>
 <translation id="3414856743105198592">Si formateu els suports extraïbles esborrareu totes les dades. Voleu continuar?</translation>
@@ -1814,7 +1806,6 @@
 <translation id="3735740477244556633">Ordena per</translation>
 <translation id="3737274407993947948">S'ha produït un error en instal·lar Linux...</translation>
 <translation id="3737536731758327622">Les baixades es mostren aquí</translation>
-<translation id="3738671331307774213">Verificar la teva identitat t'ajuda a protegir les dades privades</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Vols obrir <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> ara es mostrarà a la Consola d'administració.</translation>
@@ -1863,7 +1854,7 @@
 <translation id="3798449238516105146">Versió</translation>
 <translation id="3799201711591988491">{COUNT,plural, =0{&amp;Obre-les totes}=1{&amp;Obre l'adreça d'interès}other{&amp;Obre-les totes (#)}}</translation>
 <translation id="3800806661949714323">Mostra-ho tot (opció recomanada)</translation>
-<translation id="380408572480438692">L'activació de la recopilació de dades de rendiment ajudarà Google a millorar el sistema amb el temps. No s'enviarà cap dada fins que no empleneu un informe de comentaris (Alt-Maj-I) i les dades de rendiment. Podeu tornar a aquesta pantalla per desactivar la recopilació en qualsevol moment.</translation>
+<translation id="380408572480438692">L'activació de la recollida de dades de rendiment ajudarà Google a millorar el sistema amb el temps. No s'enviarà cap dada fins que no empleneu un informe de comentaris (Alt-Maj-I) i les dades de rendiment. Podeu tornar a aquesta pantalla per desactivar la recopilació en qualsevol moment.</translation>
 <translation id="3806965327722135869">Cerca i suprimeix programari perjudicial</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (amb identificador d'extensió "<ph name="EXTENSION_ID" />") no es permet a les pantalles d'inici de sessió.</translation>
 <translation id="3807747707162121253">&amp;Cancel·la</translation>
@@ -1908,6 +1899,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: la sincronització s'ha posat en pausa</translation>
 <translation id="3860381078714302691">Et donem la benvinguda a Hangouts Meet</translation>
+<translation id="3861241522664181545">La pàgina s'ha posat en pausa.</translation>
 <translation id="3862134173397075045">Us donem la benvinguda a l'experiència de Cast a Chrome</translation>
 <translation id="3862788408946266506">L'aplicació amb l'atribut del fitxer de manifest "kiosk_only" s'ha d'instal·lar en mode quiosc a Chrome OS</translation>
 <translation id="3865414814144988605">Resolució</translation>
@@ -1922,7 +1914,6 @@
 <translation id="3873315167136380065">Si vols activar aquesta opció, <ph name="BEGIN_LINK" />restableix la sincronització<ph name="END_LINK" /> per suprimir la frase de contrasenya de sincronització</translation>
 <translation id="3878840326289104869">S'està creant un usuari supervisat</translation>
 <translation id="3879748587602334249">Gestor de baixades</translation>
-<translation id="3880709822663530586">La clau de seguretat només funciona quan el Bluetooth del dispositiu està activat</translation>
 <translation id="3888550877729210209">Escriu notes amb <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Afegeix OpenVPN/L2TP…</translation>
 <translation id="3893536212201235195">Llegir i canviar la configuració d'accessibilitat</translation>
@@ -2067,6 +2058,7 @@
 <translation id="4096824249111507322">S'està preparant el mòdul de seguretat; espera (el procés pot tardar una estona)...</translation>
 <translation id="4099060993766194518">Vols restablir el motor de cerca predeterminat?</translation>
 <translation id="4100733287846229632">Queda molt poc espai al dispositiu</translation>
+<translation id="4103091233824664032">Introdueix la contrasenya per configurar el bloqueig de pantalla i l'inici de sessió</translation>
 <translation id="4104163789986725820">E&amp;xporta...</translation>
 <translation id="4105563239298244027">Obteniu 1 TB gratis amb Google Drive</translation>
 <translation id="4107048419833779140">Identifica i expulsa els dispositius d'emmagatzematge</translation>
@@ -2087,7 +2079,6 @@
 <translation id="4136203100490971508">La funció Llum nocturna es desactivarà automàticament quan surti el sol</translation>
 <translation id="4138267921960073861">Mostra els noms d'usuari i les fotos a la pantalla d'inici de sessió</translation>
 <translation id="4144218403971135344">Obtén una millor qualitat de vídeo i estalvia bateria. El vídeo només es reproduirà a la pantalla compatible amb Cast.</translation>
-<translation id="414599683948988413">Utilitza la clau de seguretat amb USB</translation>
 <translation id="4146026355784316281">Obrir sempre amb el visualitzador del sistema</translation>
 <translation id="4146785383423576110">Restableix i neteja</translation>
 <translation id="4147897805161313378">Google Fotos</translation>
@@ -2222,6 +2213,7 @@
 <translation id="4394049700291259645">Desactiva</translation>
 <translation id="4400367121200150367">Els llocs que no desen contrasenyes mai es mostraran aquí</translation>
 <translation id="4400632832271803360">Mantén premuda la tecla Menú d'aplicacions per canviar el comportament de les tecles de la fila superior</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg i *.png</translation>
 <translation id="4408599188496843485">A&amp;juda</translation>
 <translation id="4409697491990005945">Marges</translation>
 <translation id="4411578466613447185">Signant del codi</translation>
@@ -2270,6 +2262,7 @@
 <translation id="4480590691557335796">Chrome pot cercar programari perjudicial a l'ordinador i suprimir-lo</translation>
 <translation id="4481530544597605423">Dispositius desvinculats</translation>
 <translation id="4482194545587547824">És possible que Google utilitzi el vostre historial de navegació per personalitzar la Cerca i altres serveis de Google</translation>
+<translation id="4493287891836751813">Et presentem el teu Assistent de Google</translation>
 <translation id="4495419450179050807">No la mostris en aquesta pàgina</translation>
 <translation id="4499718683476608392">Permet que la funció Emplenament automàtic de targetes de crèdit empleni els formularis amb un sol clic</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ha fallat</translation>
@@ -2431,6 +2424,7 @@
 <translation id="474217410105706308">Silenciar la pestanya</translation>
 <translation id="4742746985488890273">Fixa al prestatge</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Obtén informació sobre com s'actualitzen les aplicacions<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Missatges</translation>
 <translation id="4746971725921104503">Sembla que ja gestioneu un usuari amb aquest nom. Volíeu <ph name="LINK_START" />importar <ph name="USER_DISPLAY_NAME" /> a aquest dispositiu<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Requereix una extensió de Chrome Web Store</translation>
 <translation id="4750394297954878236">Suggeriments</translation>
@@ -2472,6 +2466,7 @@
 <translation id="4821935166599369261">Creació de &amp;perfils activada</translation>
 <translation id="4823484602432206655">Llegir i canviar la configuració d'usuari i del dispositiu</translation>
 <translation id="4823651846660089135">El dispositiu és només de lectura</translation>
+<translation id="4823955295535347797">Accedeix a l'Assistent sempre que diguis "Ok Google" quan la pantalla estigui activada.</translation>
 <translation id="4828937774870308359">Australià</translation>
 <translation id="4829768588131278040">Configura un PIN</translation>
 <translation id="4830502475412647084">S'està instal·lant l'actualització del sistema operatiu</translation>
@@ -2512,6 +2507,7 @@
 <translation id="4876273079589074638">Ajuda els nostres enginyers a investigar i resoldre aquest error. Si pots, enumera els passos amb exactitud. Cap detall no és sobrer!</translation>
 <translation id="4876895919560854374">Bloqueja i desbloqueja la pantalla</translation>
 <translation id="4877017884043316611">Sincronització amb Chromebox</translation>
+<translation id="4879491255372875719">Automàtic (opció predeterminada)</translation>
 <translation id="4880214202172289027">Control lliscant de volum</translation>
 <translation id="4880328057631981605">Nom del punt d'accés</translation>
 <translation id="4880520557730313061">Correcció automàtica</translation>
@@ -2522,7 +2518,7 @@
 <translation id="4883178195103750615">Exporta les adreces d'interès a un fitxer HTML...</translation>
 <translation id="4883436287898674711">Tots els llocs de <ph name="WEBSITE_1" /></translation>
 <translation id="48838266408104654">&amp;Gestor de tasques</translation>
-<translation id="4883898390143004266">Ajuda les aplicacions a detectar la ubicació. Utilitza el servei d'ubicació de Google per ajudar a millorar la ubicació de les aplicacions. Google pot recopilar dades d'ubicació periòdicament i utilitzar-les de manera anònima per millorar la precisió de la ubicació i els serveis basats en la ubicació. <ph name="BEGIN_LINK1" />Obtén més informació<ph name="END_LINK1" />.</translation>
+<translation id="4883898390143004266">Ajuda les aplicacions a detectar la ubicació. Utilitza el servei d'ubicació de Google per ajudar a millorar la ubicació de les aplicacions. Google pot recollir dades d'ubicació periòdicament i utilitzar-les de manera anònima per millorar la precisió de la ubicació i els serveis basats en la ubicació. <ph name="BEGIN_LINK1" />Obtén més informació<ph name="END_LINK1" />.</translation>
 <translation id="4884740091792292473"><ph name="BEGIN_PARAGRAPH1" />Fes còpies de seguretat a Google Drive. Canvia de dispositiu o restaura'n les dades fàcilment en qualsevol moment. A la còpia de seguretat s'hi inclouen dades d'aplicacions.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Les dades de les aplicacions poden ser qualsevol tipus de dada que hagi desat una aplicació (en funció de la configuració del desenvolupador), inclòs el contingut potencialment confidencial, com ara els contactes, els missatges i les fotos.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Les dades de les còpies de seguretat no es tenen en compte per a la quota d'emmagatzematge de Drive.<ph name="END_PARAGRAPH3" />
@@ -2665,7 +2661,6 @@
 <translation id="5099354524039520280">amunt</translation>
 <translation id="5100114659116077956">Si voleu gaudir de les característiques més recents, heu d'actualitzar Chromebox.</translation>
 <translation id="5101042277149003567">Obre totes les adreces d'interès</translation>
-<translation id="5104546332954397226">Fes servir el telèfon com a clau de seguretat</translation>
 <translation id="5105855035535475848">Fixa les pestanyes</translation>
 <translation id="5108967062857032718">Configuració: suprimeix les aplicacions per a Android</translation>
 <translation id="5109044022078737958">Atleta</translation>
@@ -2797,7 +2792,6 @@
 <translation id="5288678174502918605">T&amp;orna a obrir la pestanya tancada</translation>
 <translation id="52912272896845572">El fitxer de clau privada no és vàlid.</translation>
 <translation id="529175790091471945">Formata aquest dispositiu</translation>
-<translation id="5292195676005197571">Per fer servir la majoria de les claus, només cal prémer el botó</translation>
 <translation id="5293170712604732402">Restableix la configuració als valors predeterminats originals</translation>
 <translation id="5297082477358294722">S'ha desat la contrasenya. Consulta i gestiona les contrasenyes desades al <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Tema creat per</translation>
@@ -2823,6 +2817,7 @@
 <translation id="532776649628038357">Accepto</translation>
 <translation id="532943162177641444">Toca la notificació que veuràs al telèfon <ph name="PHONE_NAME" /> per configurar el punt d'accés mòbil que pot utilitzar aquest dispositiu.</translation>
 <translation id="5329858601952122676">&amp;Suprimeix</translation>
+<translation id="5329945517224105597">L'Assistent et pot oferir suggeriments més rellevants i accions específiques relacionats amb el que es mostra a la pantalla. Pots canviar aquesta opció a la configuració de l'Assistent.</translation>
 <translation id="5330145655348521461">Aquests fitxers s'han obert en un altre escriptori. Aneu a <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) per veure'l.</translation>
 <translation id="5330512191124428349">Mostra la informació</translation>
 <translation id="5331069282670671859">No tens cap certificat en aquesta categoria</translation>
@@ -2867,7 +2862,6 @@
 <translation id="5390100381392048184">Permet que els llocs web reprodueixin so</translation>
 <translation id="5390284375844109566">Base de dades indexada</translation>
 <translation id="5390743329570580756">Envia per a</translation>
-<translation id="5392327114396848796">Fes servir una clau de seguretat integrada</translation>
 <translation id="5397794290049113714">Usuari</translation>
 <translation id="5398572795982417028">La pàgina indicada no respecta el límit de <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Anuncis bloquejats</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Tanca tots els fitxers de l'arxiu o del disc virtual i torna-ho a provar.</translation>
 <translation id="5687326903064479980">Zona horària</translation>
+<translation id="568824803367507355">Detecció d'"Ok Google"</translation>
 <translation id="5689516760719285838">Ubicació</translation>
 <translation id="56907980372820799">Enllaça les dades</translation>
 <translation id="5691511426247308406">Família</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" />: la càmera o el micròfon estan enregistrant contingut</translation>
 <translation id="5835754902560991078">extracurt (0,6 s)</translation>
 <translation id="5838456317242088717">Sessió d'incògnit actual</translation>
-<translation id="5842053879378944309">Fes servir la clau de seguretat USB amb <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Activa el Bluetooth</translation>
 <translation id="5843250171025351504">El teu dispositiu ja no disposa de la versió del client mínima especificada per l'administrador. Actualitza-la per poder iniciar la sessió.</translation>
 <translation id="5846929185714966548">Pestanya 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Ja no és compatible.</translation>
 <translation id="6317369057005134371">S'està esperant la finestra de l'aplicació...</translation>
 <translation id="6318407754858604988">S'ha iniciat la baixada</translation>
-<translation id="6322653941595359182">Envia i rep missatges de text amb Chromebook</translation>
 <translation id="6324916366299863871">Edita la drecera</translation>
 <translation id="6325191661371220117">Desactiva l'inici automàtic</translation>
 <translation id="6326175484149238433">Suprimeix de Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Envia les <ph name="BEGIN_LINK2" />mètriques<ph name="END_LINK2" /> i la <ph name="BEGIN_LINK1" />informació del sistema<ph name="END_LINK1" /></translation>
 <translation id="6397094776139756010">Opcions de sincronització i personalització</translation>
 <translation id="6397592254427394018">Obre totes les adreces d'interès en una &amp;finestra d'incògnit</translation>
+<translation id="639777613761517128">Per obrir fitxers amb $1, primer copia'ls a la carpeta de fitxers de Linux.</translation>
 <translation id="6398715114293939307">Suprimeix Google Play Store</translation>
 <translation id="6398765197997659313">Surt del mode de pantalla completa</translation>
 <translation id="6399774419735315745">Espia</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Aquest nom no es pot utilitzar com a nom de fitxer o de carpeta</translation>
 <translation id="642469772702851743">El propietari ha bloquejat aquest dispositiu (NS: <ph name="SERIAL_NUMBER" />).</translation>
 <translation id="6426200009596957090">Obre la configuració de ChromeVox</translation>
-<translation id="6427415464407526111">Selecciona la teva clau de seguretat</translation>
 <translation id="6429384232893414837">Error d'actualització</translation>
 <translation id="6430814529589430811">ASCII codificat en Base64, certificat únic</translation>
 <translation id="6431217872648827691">Totes les dades s'han encriptat amb la vostra contrasenya de Google en la data següent: <ph name="TIME" /></translation>
@@ -3632,7 +3625,7 @@
 <translation id="6530681427077572136">Envia dades del sistema. Actualment, aquest dispositiu envia automàticament a Google dades de diagnòstic i d'ús del dispositiu i de les aplicacions. Ho pots canviar en qualsevol moment des de la configuració del dispositiu. Si també has activat l'opció Activitat al web i en aplicacions, aquesta informació es desarà al teu compte perquè la puguis gestionar a La meva activitat. <ph name="BEGIN_LINK1" />Obtén més informació<ph name="END_LINK1" />.</translation>
 <translation id="6531282281159901044">Desa el fitxer perillós</translation>
 <translation id="6534583978616527129">Inicialitzeu la connexió</translation>
-<translation id="654039047105555694"><ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> activeu aquesta opció només si sabeu què esteu fent o si se us ha demanat que ho feu, ja que la recopilació de dades pot reduir el rendiment.</translation>
+<translation id="654039047105555694"><ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> activeu aquesta opció només si sabeu què esteu fent o si se us ha demanat que ho feu, ja que la recollida de dades pot reduir el rendiment.</translation>
 <translation id="654233263479157500">Utilitza un servei web per solucionar els errors de navegació</translation>
 <translation id="6544215763872433504">El navegador web de Google, pensat per a tu</translation>
 <translation id="6545665334409411530">Freqüència de repetició</translation>
@@ -3717,7 +3710,6 @@
 <translation id="6655190889273724601">Mode de desenvolupador </translation>
 <translation id="6655458902729017087">Amaga els comptes</translation>
 <translation id="6657585470893396449">Contrasenya</translation>
-<translation id="6658023813581644008">Per configurar Smart Lock per iniciar la sessió, introdueix la contrasenya</translation>
 <translation id="6659213950629089752">L'extensió <ph name="NAME" /> ha fet zoom en aquesta pàgina</translation>
 <translation id="6659594942844771486">Pestanya</translation>
 <translation id="6664237456442406323">L'ordinador està configurat amb un ID de maquinari amb un format incorrecte. Això impedeix a Chrome OS actualitzar-se amb les darreres correccions de seguretat i <ph name="BEGIN_BOLD" />pot ser que l'ordinador sigui vulnerable a atacs maliciosos<ph name="END_BOLD" />.</translation>
@@ -3853,7 +3845,6 @@
 <translation id="6885771755599377173">Previsualització de la informació del sistema</translation>
 <translation id="6886871292305414135">Obre l'enllaç en una pes&amp;tanya nova</translation>
 <translation id="6892812721183419409">Obre l'enllaç com a <ph name="USER" /></translation>
-<translation id="6896398788631624004">Connecta la clau de seguretat i activa-la</translation>
 <translation id="6896758677409633944">Copia</translation>
 <translation id="6898440773573063262">Ara, les aplicacions de quiosc es poden configurar per iniciar-se automàticament en aquest dispositiu.</translation>
 <translation id="6898699227549475383">Organització (O)</translation>
@@ -3872,6 +3863,7 @@
 <translation id="6915804003454593391">Usuari:</translation>
 <translation id="6916590542764765824">Gestiona les extensions</translation>
 <translation id="6920989436227028121">Obre-ho com a pestanya normal</translation>
+<translation id="6921709132208495314">Deixa d'utilitzar dades en aquesta pàgina</translation>
 <translation id="6922128026973287222">Deseu les dades i agilitzeu la navegació amb Economitzador de dades de Google. Feu clic per obtenir més informació.</translation>
 <translation id="6923132443355966645">Desplaça't / fes clic</translation>
 <translation id="6930242544192836755">Durada</translation>
@@ -3894,6 +3886,7 @@
 <translation id="6965382102122355670">D'acord</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Dispositiu</translation>
+<translation id="6968288415730398122">Introdueix la contrasenya per configurar el bloqueig de pantalla</translation>
 <translation id="6970480684834282392">Tipus d'inici</translation>
 <translation id="6970856801391541997">Imprimeix pàgines específiques</translation>
 <translation id="6972180789171089114">Àudio/Vídeo</translation>
@@ -3904,6 +3897,7 @@
 <translation id="6978121630131642226">Motors de cerca</translation>
 <translation id="6978611942794658017">Aquest fitxer està dissenyat per a un ordinador amb programari Windows. Això no és compatible amb el vostre dispositiu, que funciona amb Chrome OS. Cerqueu una aplicació alternativa adequada a Chrome Web Store.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Silencia (opció predeterminada)</translation>
 <translation id="6979737339423435258">Tot el període</translation>
 <translation id="6980462514016882061">És possible que Google utilitzi el vostre historial de navegació per personalitzar la Cerca, els anuncis i altres serveis de Google</translation>
 <translation id="6981982820502123353">Accessibilitat</translation>
@@ -4052,6 +4046,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Es tracta d'informació general sobre el dispositiu i sobre com el fas servir, com ara el nivell de bateria, l'ús de l'aplicació i la connectivitat de la xarxa. Les dades s'utilitzaran per millorar els productes i serveis de Google per a tots els usuaris. Part de la informació agregada també ajudarà els partners, com ara desenvolupadors d'Android, a millorar els seus productes i les seves aplicacions.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Si aquesta funció es desactiva, la possibilitat del dispositiu d'enviar la informació necessària per als serveis bàsics, com ara la seguretat i les actualitzacions del sistema, no es veurà afectada.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Pots controlar aquesta funció des de Configuració &gt; Google. Selecciona Ús i diagnòstic al menú.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Hem trobat <ph name="NUMBER_OF_APPS" /> aplicacions al compte que es poden utilitzar en aquest dispositiu.</translation>
 <translation id="7199158086730159431">Obtén a&amp;juda</translation>
 <translation id="7200083590239651963">Selecciona la configuració</translation>
 <translation id="720110658997053098">Activa permanentment el mode quiosc en aquest dispositiu</translation>
@@ -4072,7 +4067,6 @@
 <translation id="7228523857728654909">Bloqueig de pantalla i inici de sessió</translation>
 <translation id="7229570126336867161">Es necessita EVDO</translation>
 <translation id="7230787553283372882">Personalitza la mida del text</translation>
-<translation id="7231589788477569369">Gaudeix de l'experiència completa de l'Assistent amb aquestes opcions de configuració</translation>
 <translation id="7232750842195536390">S'ha produït un error en canviar el nom</translation>
 <translation id="7234406375359457793">S'ha produït un error en activar l'ús compartit especificat perquè no s'admet.</translation>
 <translation id="7238585580608191973">Empremta SHA-256</translation>
@@ -4082,7 +4076,6 @@
 <translation id="7243632151880336635">Esborra i tanca la sessió</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (millor resolució)</translation>
 <translation id="7246339268451149667">Vols activar el desbloqueig amb empremta digital?</translation>
-<translation id="7246489301073081944">Mantén premudes les tecles |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| per sortir</translation>
 <translation id="7246947237293279874">Servidor intermediari FTP</translation>
 <translation id="725109152065019550">L'administrador ha desactivat l'emmagatzematge extern al vostre compte</translation>
 <translation id="7253521419891527137">&amp;Més informació</translation>
@@ -4235,7 +4228,6 @@
 <translation id="7489605380874780575">Comprova l'aptitud</translation>
 <translation id="749028671485790643">Persona <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Adreça MAC</translation>
-<translation id="7490950320178383728">Utilitza la clau de seguretat amb Bluetooth</translation>
 <translation id="7491962110804786152">pestanya</translation>
 <translation id="7493386493263658176">És possible que l'extensió <ph name="EXTENSION_NAME" /> recopili tot el que escriviu, incloses les dades personals, com ara les contrasenyes i els números de targetes de crèdit. Voleu fer-la servir?</translation>
 <translation id="7494065396242762445">Obre la configuració de Windows</translation>
@@ -4251,7 +4243,7 @@
 <translation id="7507930499305566459">Certificat de resposta d'estat</translation>
 <translation id="7508545000531937079">Presentació de diapositives</translation>
 <translation id="7513029293694390567">Inicia la sessió automàticament als llocs web amb les credencials emmagatzemades. Si la funció està desactivada, se't demanarà sempre que confirmis les credencials per iniciar la sessió en un lloc web.</translation>
-<translation id="7515154058529101840"><ph name="BEGIN_PARAGRAPH1" />Ajuda les aplicacions a trobar la ubicació. Utilitza el servei d'ubicació de Google per ajudar a millorar la ubicació de les aplicacions. Google pot recopilar dades d'ubicació regularment i utilitzar-les de manera anònima per millorar la precisió de la ubicació i els serveis basats en la ubicació.<ph name="END_PARAGRAPH1" />
+<translation id="7515154058529101840"><ph name="BEGIN_PARAGRAPH1" />Ajuda les aplicacions a trobar la ubicació. Utilitza el servei d'ubicació de Google per ajudar a millorar la ubicació de les aplicacions. Google pot recollir dades d'ubicació regularment i utilitzar-les de manera anònima per millorar la precisió de la ubicació i els serveis basats en la ubicació.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />El servei d'ubicació de Google utilitza fonts com ara sensors, xarxes mòbils i Wi-Fi per calcular la ubicació del dispositiu. Aquest servei s'activa quan l'opció Ubicació del dispositiu està activada.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Pots desactivar la ubicació desactivant l'opció Ubicació principal del dispositiu. També pots desactivar l'ús de Wi-Fi, xarxes mòbils i sensors per calcular la ubicació a la configuració d'ubicació.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7517786267097410259">Crea una contrasenya</translation>
@@ -4483,7 +4475,6 @@
 <translation id="7850851215703745691">Aquests fitxers de Drive encara no s'han compartit</translation>
 <translation id="7851457902707056880">L'inici de sessió s'ha restringit a només el compte del propietari. Reinicieu l'ordinador i inicieu la sessió amb el compte del propietari. L'equip es reiniciarà automàticament d'aquí a 30 segons.</translation>
 <translation id="7851716364080026749">Bloqueja sempre l'accés a la càmera i al micròfon</translation>
-<translation id="7851816139220202929">Utilitza la clau de seguretat amb NFC</translation>
 <translation id="7853747251428735">Més &amp;eines</translation>
 <translation id="7856006446339184955">Envia dades del sistema. Actualment, aquest dispositiu envia automàticament a Google dades de diagnòstic i d'ús del dispositiu i de les aplicacions. El propietari ha definit aquesta <ph name="BEGIN_LINK1" />opció de configuració<ph name="END_LINK1" />. Si també has activat l'opció Activitat al web i en aplicacions, aquesta informació es desarà al teu compte perquè la puguis gestionar a La meva activitat. <ph name="BEGIN_LINK2" />Obtén més informació<ph name="END_LINK2" />.</translation>
 <translation id="7857117644404132472">Afegeix una excepció</translation>
@@ -4561,11 +4552,12 @@
 <translation id="7961015016161918242">Mai</translation>
 <translation id="7966241909927244760">C&amp;opia l'adreça de la imatge</translation>
 <translation id="7968742106503422125">Llegeix i modifica les dades que copies i enganxes</translation>
-<translation id="7968833647796919681">Activa la recopilació de dades de rendiment</translation>
+<translation id="7968833647796919681">Activa la recollida de dades de rendiment</translation>
 <translation id="7972714317346275248">PKCS #1 SHA-384 amb encriptació RSA</translation>
 <translation id="7973962044839454485">L'autenticació de PPA ha fallat perquè el nom d'usuari o la contrasenya no eren correctes</translation>
 <translation id="7974566588408714340">Torna-ho a provar amb <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Ajusta la mida</translation>
+<translation id="79766959863778284">Servei de dispositius aïllats XR</translation>
 <translation id="7977551819349545646">S'està actualitzant Chromebox...</translation>
 <translation id="7978412674231730200">Clau privada</translation>
 <translation id="7978450511781612192">Aquesta acció tancarà la sessió dels Comptes de Google. Les adreces d'interès, l'historial, les contrasenyes i altres opcions es deixaran de sincronitzar.</translation>
@@ -4616,7 +4608,6 @@
 <translation id="8030656706657716245">Afegeix una impressora</translation>
 <translation id="8032244173881942855">No es pot emetre la pestanya.</translation>
 <translation id="8033827949643255796">seleccionats</translation>
-<translation id="8033958968890501070">Temps d'espera esgotat</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Obre-les totes en una &amp;finestra d'incògnit}=1{Obre en una &amp;finestra d'incògnit}other{Obre-les totes (#) en una &amp;finestra d'incògnit}}</translation>
 <translation id="8037117027592400564">Llegeix tot el text en veu alta mitjançant una síntesi de veu</translation>
 <translation id="8037357227543935929">Pregunta (opció predeterminada)</translation>
@@ -4789,6 +4780,7 @@
 <translation id="8320459152843401447">La pantalla completa</translation>
 <translation id="8322814362483282060">Aquesta pàgina no té permís per accedir al micròfon.</translation>
 <translation id="8326478304147373412">PKCS #7, cadena de certificats</translation>
+<translation id="8327039559959785305">S'ha produït un error en activar els fitxers de Linux. Torna-ho a provar.</translation>
 <translation id="8329978297633540474">Text sense format</translation>
 <translation id="8335587457941836791">No el fixis al prestatge</translation>
 <translation id="8336153091935557858">Ahir a les <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4839,7 +4831,6 @@
 <translation id="8425213833346101688">Canvia</translation>
 <translation id="8425492902634685834">Fixa a la barra de tasques</translation>
 <translation id="8425755597197517046">En&amp;ganxa i cerca</translation>
-<translation id="8426117172745886547">Avisa abans de sortir (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">S'està activant</translation>
 <translation id="8427292751741042100">inserida en qualsevol amfitrió</translation>
 <translation id="8428213095426709021">Configuració</translation>
@@ -4927,7 +4918,6 @@
 <translation id="8551388862522347954">Llicències</translation>
 <translation id="8553342806078037065">Gestiona altres usuaris</translation>
 <translation id="8554899698005018844">Cap idioma</translation>
-<translation id="8557347704037207368">Envia les teves notificacions des de Missatges Android al web</translation>
 <translation id="855773602626431402">No s'ha pogut executar un connector de fora de la zona de proves en aquesta pàgina.</translation>
 <translation id="8557930019681227453">Fitxer de manifest</translation>
 <translation id="8559694214572302298">Descodificador d'imatges</translation>
@@ -5040,6 +5030,7 @@
 <translation id="8714154114375107944">Fi de la compatibilitat</translation>
 <translation id="8714838604780058252">Gràfics de fons</translation>
 <translation id="8715480913140015283">Una pestanya de fons està utilitzant la càmera</translation>
+<translation id="8716931980467311658">Vols suprimir totes les aplicacions per a Linux i totes les dades de la carpeta de fitxers de Linux d'aquest dispositiu <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">No s'ha pogut baixar <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Submarcs d'incògnit per a: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Mostra a la carpeta</translation>
@@ -5203,7 +5194,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: ha fallat</translation>
 <translation id="8983677657449185470">Ajuda a millorar Navegació segura</translation>
 <translation id="8984654317541110628">URL de l'ús compartit del fitxer</translation>
-<translation id="8984872292925913496">Cerca el PIN de 6 dígits a la part posterior de la clau</translation>
 <translation id="8986362086234534611">Oblida</translation>
 <translation id="8986494364107987395">Envia automàticament estadístiques d'ús i informes d'error a Google</translation>
 <translation id="8987927404178983737">Mes</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index d2aff7b..935d1b0 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Zvýraznit objekt se zaměřením pro zadávání, když se změní</translation>
 <translation id="1173894706177603556">Přejmenovat</translation>
 <translation id="1174073918202301297">Zkratka byla přidána</translation>
-<translation id="1174808551768282258">Odemykejte Chromebook pomocí telefonu. <ph name="LINK_BEGIN" />Další informace.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">Tisk...</translation>
 <translation id="117624967391683467">Kopírování souboru <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google vaši historii procházení může používat k personalizaci Vyhledávání, reklam a dalších služeb Google. Toto chování můžete kdykoliv změnit na stránce myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pozastavit</translation>
 <translation id="1181037720776840403">Odebrat</translation>
 <translation id="1183237619868651138">Soubor <ph name="EXTERNAL_CRX_FILE" /> nelze nainstalovat do místní mezipaměti.</translation>
-<translation id="1183378459020939734">Jste připraveni spárovat bezpečnostní klíč?</translation>
 <translation id="1185924365081634987">Chcete-li tuto chybu odstranit, můžete také zkusit <ph name="GUEST_SIGNIN_LINK_START" />procházení v roli hosta<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">Odstranit škodlivý software</translation>
 <translation id="1187722533808055681">Probuzení z nečinnosti</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Nebyla nalezena žádná zařízení Bluetooth</translation>
 <translation id="1306606229401759371">Změnit nastavení</translation>
 <translation id="1307559529304613120">Jejda! Systému se pro toto zařízení nepodařilo uložit token dlouhodobého přístupu k rozhraní API.</translation>
+<translation id="1307931752636661898">Soubory systému Linux nelze zobrazit</translation>
 <translation id="1313405956111467313">Automatické nastavení proxy serveru</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Záložky, historie a další nastavení budou synchronizovány s účtem Google.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Otevřít nastavení myši a touchpadu</translation>
 <translation id="1531004739673299060">Okno aplikace</translation>
 <translation id="15373452373711364">Velký kurzor myši</translation>
+<translation id="1538729222189715449">Otevírání souborů systému Linux...</translation>
 <translation id="1540605929960647700">Zapnout ukázkový režim</translation>
 <translation id="1543284117603151572">Importováno z aplikace Edge</translation>
 <translation id="1545177026077493356">Automatický režim veřejného terminálu</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Změnit režim dotykového displeje HUD</translation>
 <translation id="1784849162047402014">V zařízení dochází místo na disku</translation>
 <translation id="1786636458339910689">Týmové disky</translation>
-<translation id="1792161662640298233">Ověřování bezpečnostního klíče</translation>
 <translation id="1792619191750875668">Sekundární obrazovka</translation>
 <translation id="1794791083288629568">Odeslat zpětnou vazbu, která nám pomůže při řešení tohoto problému</translation>
 <translation id="1795214765651529549">Použít klasický motiv</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Vítejte!</translation>
 <translation id="1914326953223720820">Služba rozbalování souborů ZIP</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">V závislosti na nastavení účtu mohou být funkce Asistenta omezeny na poskytování služeb, jako jsou výsledky z internetu, vtipy a místní informace.</translation>
 <translation id="1916502483199172559">Výchozí červený avatar</translation>
 <translation id="1918141783557917887">Menší</translation>
 <translation id="1919345977826869612">Reklamy</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Plugin <ph name="PEPPER_PLUGIN_NAME" /> v doméně <ph name="PEPPER_PLUGIN_DOMAIN" /> chce získat přístup k vašemu počítači</translation>
 <translation id="2178614541317717477">Ohrožení bezpečnosti certifikační autority</translation>
 <translation id="218070003709087997">Počet kopií, které chcete vytisknout, je třeba zadat jako číslo (od 1 do 999).</translation>
+<translation id="2184515124301515068">Nechat Chrome zvolit, kdy weby mohou přehrávat zvuk (doporučeno)</translation>
 <translation id="2187895286714876935">Chyba při importu certifikátu serveru</translation>
 <translation id="2187906491731510095">Rozšíření byla aktualizována</translation>
 <translation id="2188881192257509750">Spustit aplikaci <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Čtení a úprava dat na různých webech</translation>
 <translation id="2242687258748107519">Informace o souboru</translation>
 <translation id="2243194103992005307">Chcete-li odstranit aplikace, přejděte do Nastavení &gt; Aplikace nebo Správce aplikací. Poté klepněte na aplikaci, kterou chcete odinstalovat (možná bude třeba aplikacemi listovat doprava či doleva). Následně klepněte na Odinstalovat nebo Deaktivovat.</translation>
+<translation id="224940702122312781">Tato stránka využije velké množství dat</translation>
 <translation id="2249605167705922988">např. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Otevřít pomocí systémového prohlížeče</translation>
 <translation id="225163402930830576">Aktualizovat sítě</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Konfigurovat síť</translation>
 <translation id="230927227160767054">Stránka chce instalovat obslužný nástroj služby.</translation>
 <translation id="2309620859903500144">Tomuto webu byl zablokován přístup k senzorům pohybu nebo osvětlení.</translation>
-<translation id="2311075084924370935">Aby vám Asistent mohl pomáhat s kalendářem, připomenutími, letenkami a dalšími aktivitami, potřebuje přístup k Aktivitě na webu a v aplikacích, Informacím o zařízení a Hlasové a zvukové aktivitě.</translation>
+<translation id="2315414688463285945">Při konfiguraci souborů systému Linux došlo k chybě. Zkuste to znovu.</translation>
 <translation id="2315821125498993513">K telefonu se nelze připojit. <ph name="LINK_BEGIN" />Další informace<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Ne, děkuji</translation>
 <translation id="2317842250900878657">Dokončeno <ph name="PROGRESS_PERCENT" /> %</translation>
 <translation id="2318143611928805047">Velikost papíru</translation>
 <translation id="2318817390901984578">Chcete-li používat aplikace Android, nabijte a aktualizujte své zařízení typu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Aktuální anonymní relace (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Použijte pro aplikaci <ph name="APP_NAME" /> svůj bezpečnostní klíč</translation>
 <translation id="2322193970951063277">Záhlaví a zápatí</translation>
 <translation id="2325650632570794183">Tento typ souboru není podporován. Navštivte prosím Internetový obchod Chrome, kde najdete aplikaci, ve které lze otevřít tento typ souboru.</translation>
 <translation id="2326931316514688470">Znovu načíst &amp;aplikaci</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Přidat sdílenou složku</translation>
 <translation id="2367972762794486313">Zobrazit aplikace</translation>
 <translation id="2369536625682139252">Všechna data uložená webem <ph name="SITE" /> kromě souborů cookie budou smazána</translation>
-<translation id="237058345584060620">Spárujte klíč s tímto zařízením, abyste se pomocí něj mohli přihlašovat ke svému účtu</translation>
 <translation id="2371076942591664043">Po dokončení otevřít</translation>
 <translation id="2377319039870049694">Přepnout na zobrazení seznamu</translation>
 <translation id="2377667304966270281">Chyby stránkování na disk</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Telefon nebyl nalezen. Zkontrolujte, zda je v zařízení <ph name="DEVICE_TYPE" /> zapnut Bluetooth. &lt;a&gt;Další informace&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Přidat &amp;složku...</translation>
 <translation id="249113932447298600">Je nám líto, zařízení <ph name="DEVICE_LABEL" /> není v současné době podporováno.</translation>
-<translation id="2492040222276243256">Podržte tlačítko na bezpečnostním klíči po dobu alespoň 5 sekund</translation>
 <translation id="2493021387995458222">Vybrat „po jednom slově“</translation>
 <translation id="249303669840926644">Registraci se nepodařilo dokončit</translation>
 <translation id="2495777824269688114">Objevte další funkce a najděte odpovědi. Nápovědu otevřete tlačítkem „?“.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Celkem: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Dlouhé</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (platforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Tato karta sdílí vaši obrazovku.</translation>
 <translation id="2586657967955657006">Schránka</translation>
 <translation id="2586672484245266891">Zadejte prosím kratší adresu URL</translation>
 <translation id="2587922270115112871">Vytvořením dozorovaného uživatele nebude vytvořen účet Google. Nastavení
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344">Aplikace nebo rozšíření <ph name="NAME" /> používá <ph name="USAGE" /> MB místa na disku.</translation>
 <translation id="2633212996805280240">Odstranit rozšíření <ph name="EXTENSION_NAME" />?</translation>
 <translation id="263325223718984101">Aplikace <ph name="PRODUCT_NAME" /> nemůže dokončit svou instalaci, ale bude se i nadále spouštět z bitové kopie disku.</translation>
-<translation id="2633326789677284179">Vyhledejte název uvedený na zadní části klíče</translation>
 <translation id="2635276683026132559">Podepisování</translation>
 <translation id="2636625531157955190">Chrome nemůže přistupovat k obrázku.</translation>
 <translation id="2638087589890736295">K zahájení synchronizace je potřeba heslová fráze.</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Přidat <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Chcete-li hesla synchronizovat do všech svých zařízení, přihlaste se do Chromu.</translation>
 <translation id="2875698561019555027">(Chybové stránky Chromu)</translation>
-<translation id="2876441201733326392">Použijte bezpečnostní klíč USB</translation>
 <translation id="288042212351694283">Přístup k zařízením s univerzálním druhým faktorem</translation>
 <translation id="2881966438216424900">Poslední přístup:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> se za chvíli restartuje a resetuje</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Nahlásit anonymně</translation>
 <translation id="2984337792991268709">Dnes <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">U této stránky byla zablokována úplná kontrola zařízení MIDI.</translation>
-<translation id="2988599644347283908">Poznámka: Data podřízená těmto nastavením mohou být uložena a využita v libovolné službě Google, do které jste přihlášeni, s cílem poskytovat vám přizpůsobené prostředí a užitečné reklamy. Na adrese account.google.com můžete svá data zobrazit a smazat, případně změnit nastavení.</translation>
 <translation id="2989474696604907455">nepřipojeno</translation>
 <translation id="2989786307324390836">Binární soubor kódovaný DER, jeden certifikát</translation>
 <translation id="2993517869960930405">O aplikaci</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Zapnout zvuk karet</translation>
 <translation id="3053013834507634016">Použití klíče certifikátu</translation>
 <translation id="3057861065630527966">Zálohovat fotky a videa</translation>
-<translation id="3059313675706898490">Zprávy pro Android</translation>
 <translation id="3060379269883947824">Zapnout poslech vybraného textu</translation>
 <translation id="3061707000357573562">Služba oprav</translation>
 <translation id="3064410671692449875">Nedostatek dat</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Obsah externího souboru CRX nelze zkopírovat do souboru <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Zařízení „<ph name="DEVICE_NAME" />“ bylo spárováno</translation>
 <translation id="3101709781009526431">Datum a čas</translation>
-<translation id="3104900172193317662">Povolte použití bezpečnostního klíče</translation>
 <translation id="310671807099593501">Web používá Bluetooth</translation>
 <translation id="3115128645424181617">Telefon nebyl nalezen. Zkontrolujte, zda jej máte u sebe a zda je zapnutý Bluetooth.</translation>
 <translation id="3115147772012638511">Čekání na mezipaměť</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Není součástí certifikátu&gt;</translation>
 <translation id="3254434849914415189">Vyberte pro soubory <ph name="FILE_TYPE" /> výchozí aplikaci:</translation>
 <translation id="3254516606912442756">Automatická detekce časového pásma je vypnutá</translation>
-<translation id="3254772308201947812">Ano</translation>
 <translation id="3264544094376351444">Bezpatkové písmo</translation>
 <translation id="3264547943200567728">Nastavení sítě v Chromeboxu se nezdařilo</translation>
 <translation id="3264582393905923483">Kontext</translation>
@@ -1814,7 +1806,6 @@
 <translation id="3735740477244556633">Seřadit podle</translation>
 <translation id="3737274407993947948">Při instalaci systému Linux došlo k chybě...</translation>
 <translation id="3737536731758327622">Zde se zobrazují vaše stažené soubory</translation>
-<translation id="3738671331307774213">Ověření vaší identity pomáhá ochránit vaše soukromá data</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Spustit aplikaci <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859">Zařízení <ph name="DEVICE_NAME" /> se teď bude zobrazovat v administrátorské konzoli</translation>
@@ -1908,6 +1899,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Synchronizace pozastavena</translation>
 <translation id="3860381078714302691">Vítejte ve službě Hangouts Meet</translation>
+<translation id="3861241522664181545">Stránka je pozastavená.</translation>
 <translation id="3862134173397075045">Vítá vás funkce Cast v prohlížeči Chrome!</translation>
 <translation id="3862788408946266506">Aplikace s atributem manifestu kiosk_only je třeba nainstalovat v režimu veřejného terminálu systému Chrome OS</translation>
 <translation id="3865414814144988605">Rozlišení</translation>
@@ -1922,7 +1914,6 @@
 <translation id="3873315167136380065">Chcete-li tuto funkci zapnout, <ph name="BEGIN_LINK" />resetováním synchronizace<ph name="END_LINK" /> odstraňte svou heslovou frázi pro synchronizaci</translation>
 <translation id="3878840326289104869">Vytváření dozorovaného uživatele</translation>
 <translation id="3879748587602334249">Správce stahování</translation>
-<translation id="3880709822663530586">Bezpečnostní klíč funguje, když je v zařízení zapnuté rozhraní Bluetooth.</translation>
 <translation id="3888550877729210209">Pořizování poznámek pomocí aplikace <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Přidat síť OpenVPN/L2TP...</translation>
 <translation id="3893536212201235195">Čtení a změna nastavení přístupnosti</translation>
@@ -2067,6 +2058,7 @@
 <translation id="4096824249111507322">Připravuje se modul zabezpečení. Čekejte prosím (možná i několik minut)...</translation>
 <translation id="4099060993766194518">Obnovit výchozí vyhledávač?</translation>
 <translation id="4100733287846229632">V zařízení je kriticky málo místa</translation>
+<translation id="4103091233824664032">Chcete-li nakonfigurovat zámek obrazovky a přihlášení, zadejte heslo</translation>
 <translation id="4104163789986725820">E&amp;xport...</translation>
 <translation id="4105563239298244027">Získejte 1 TB volného úložiště na Disku Google zdarma</translation>
 <translation id="4107048419833779140">Identifikovat a vysouvat úložná zařízení</translation>
@@ -2087,7 +2079,6 @@
 <translation id="4136203100490971508">Noční režim se vypne automaticky za úsvitu</translation>
 <translation id="4138267921960073861">Zobrazit na přihlašovací obrazovce uživatelská jména a fotografie</translation>
 <translation id="4144218403971135344">Získejte kvalitnější video a prodlužte životnost baterie. Video se bude přehrávat jen na obrazovce, která podporuje technologii Cast.</translation>
-<translation id="414599683948988413">Používat bezpečnostní klíč s rozhraním USB</translation>
 <translation id="4146026355784316281">Vždy otevřít pomocí systémového prohlížeče</translation>
 <translation id="4146785383423576110">Resetovat a vyčistit</translation>
 <translation id="4147897805161313378">Fotky Google</translation>
@@ -2222,6 +2213,7 @@
 <translation id="4394049700291259645">Deaktivovat</translation>
 <translation id="4400367121200150367">Zde se zobrazí weby, které nikdy neukládají heslo</translation>
 <translation id="4400632832271803360">Podržením tlačítka spouštěče přepnete chování tlačítek v horním řádku</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">&amp;Nápověda</translation>
 <translation id="4409697491990005945">Okraje</translation>
 <translation id="4411578466613447185">Slouží k podepsání kódu</translation>
@@ -2270,6 +2262,7 @@
 <translation id="4480590691557335796">Chrome na vašem počítači může vyhledat škodlivý software a odstranit jej</translation>
 <translation id="4481530544597605423">Nespárovaná zařízení</translation>
 <translation id="4482194545587547824">Google vaši historii procházení může používat k přizpůsobení Vyhledávání a dalších služeb Google.</translation>
+<translation id="4493287891836751813">Seznamte se se svým Asistentem Google</translation>
 <translation id="4495419450179050807">Nezobrazovat na této stránce</translation>
 <translation id="4499718683476608392">Zapněte automatické vyplňování platebních karet a vyplňujte webové formuláře jedním kliknutím</translation>
 <translation id="4500114933761911433">Plugin <ph name="PLUGIN_NAME" /> selhal</translation>
@@ -2430,6 +2423,7 @@
 <translation id="474217410105706308">Vypnout zvuk karty</translation>
 <translation id="4742746985488890273">Připnout k poličce</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Přečtěte si, jak aktualizovat aplikace<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Zprávy</translation>
 <translation id="4746971725921104503">Zdá se, že uživatele s tímto jménem již spravujete. Chtěli jste <ph name="LINK_START" />uživatele <ph name="USER_DISPLAY_NAME" /> importovat do tohoto zařízení<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Vyžaduje rozšíření z Internetového obchodu Chrome</translation>
 <translation id="4750394297954878236">Návrhy</translation>
@@ -2471,6 +2465,7 @@
 <translation id="4821935166599369261">&amp;Profilování povoleno</translation>
 <translation id="4823484602432206655">Čtení a změna nastavení zařízení a uživatele</translation>
 <translation id="4823651846660089135">Zařízení je pouze pro čtení</translation>
+<translation id="4823955295535347797">Když je zapnutá obrazovka, můžete Asistenta kdykoliv aktivovat vyslovením fráze „Ok Google“.</translation>
 <translation id="4828937774870308359">Opačné</translation>
 <translation id="4829768588131278040">Nastavit PIN</translation>
 <translation id="4830502475412647084">Instalace aktualizace operačního systému</translation>
@@ -2511,6 +2506,7 @@
 <translation id="4876273079589074638">Pomozte našim technikům prozkoumat toto selhání a odstranit jeho příčiny. Je-li to možné, přesně popište jednotlivé kroky. Důležité mohou být i nejmenší podrobnosti.</translation>
 <translation id="4876895919560854374">Uzamknutí a odemknutí obrazovky</translation>
 <translation id="4877017884043316611">Párování se zařízením Chromebox</translation>
+<translation id="4879491255372875719">Automatické (výchozí)</translation>
 <translation id="4880214202172289027">Posuvník hlasitosti</translation>
 <translation id="4880328057631981605">Název přístupového bodu</translation>
 <translation id="4880520557730313061">Automatická oprava</translation>
@@ -2664,7 +2660,6 @@
 <translation id="5099354524039520280">nahoru</translation>
 <translation id="5100114659116077956">Abychom vám mohli nabídnout nejnovější funkce, je potřeba Chromebox aktualizovat.</translation>
 <translation id="5101042277149003567">Otevřít všechny záložky</translation>
-<translation id="5104546332954397226">Používat jako bezpečnostní klíč váš telefon</translation>
 <translation id="5105855035535475848">Připnout karty</translation>
 <translation id="5108967062857032718">Nastavení – odstranit aplikace Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2794,7 +2789,6 @@
 <translation id="5288678174502918605">Znovu ot&amp;evřít zavřenou kartu</translation>
 <translation id="52912272896845572">Soubor soukromého klíče je neplatný.</translation>
 <translation id="529175790091471945">Naformátovat toto zařízení</translation>
-<translation id="5292195676005197571">Většinu klíčů lze použít stisknutím tlačítka</translation>
 <translation id="5293170712604732402">Obnovit nastavení na původní výchozí hodnoty</translation>
 <translation id="5297082477358294722">Heslo bylo uloženo. K zobrazení a správě uložených hesel můžete použít svůj <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Autor motivu</translation>
@@ -2820,6 +2814,7 @@
 <translation id="532776649628038357">Souhlasím</translation>
 <translation id="532943162177641444">Klepnutím na oznámení na telefonu nebo tabletu <ph name="PHONE_NAME" /> nastavte mobilní hotspot, který bude moci využít toto zařízení.</translation>
 <translation id="5329858601952122676">&amp;Smazat</translation>
+<translation id="5329945517224105597">Asistent vám může nabízet relevantnější návrhy a konkrétní akce související s obsahem na obrazovce. V nastavení Asistenta to můžete kdykoliv změnit.</translation>
 <translation id="5330145655348521461">Tyto soubory jsou otevřeny na jiné ploše. Chcete-li je zobrazit, přejděte do profilu <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />).</translation>
 <translation id="5330512191124428349">Zobrazit informace</translation>
 <translation id="5331069282670671859">Nemáte žádné certifikáty této kategorie</translation>
@@ -2864,7 +2859,6 @@
 <translation id="5390100381392048184">Povolit webům přehrávat zvuky</translation>
 <translation id="5390284375844109566">Indexovaná databáze</translation>
 <translation id="5390743329570580756">Komu odesílat</translation>
-<translation id="5392327114396848796">Používat integrovaný bezpečnostní klíč</translation>
 <translation id="5397794290049113714">Vy</translation>
 <translation id="5398572795982417028">Odkaz na stránku mimo rozsah, limit je <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Byly zablokovány reklamy</translation>
@@ -3072,6 +3066,7 @@
    <ph name="LINE_BREAKS" />
    Zavřete všechny soubory v archivu nebo na virtuálním disku a poté to zkuste znovu.</translation>
 <translation id="5687326903064479980">Časové pásmo</translation>
+<translation id="568824803367507355">Detekce příkazu „Ok Google“</translation>
 <translation id="5689516760719285838">Poloha</translation>
 <translation id="56907980372820799">Propojit data</translation>
 <translation id="5691511426247308406">Rodina</translation>
@@ -3169,7 +3164,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – probíhá záznam z fotoaparátu nebo mikrofonu</translation>
 <translation id="5835754902560991078">velmi krátká (0,6 s)</translation>
 <translation id="5838456317242088717">Aktuální anonymní relace</translation>
-<translation id="5842053879378944309">Použijte s aplikací <ph name="APP_NAME" /> bezpečnostní klíč USB</translation>
 <translation id="5842497610951477805">Aktivace Bluetooth</translation>
 <translation id="5843250171025351504">Vaše zařízení již nesplňuje podmínku minimální verze klienta určenou administrátorem. Před přihlášením proveďte aktualizaci.</translation>
 <translation id="5846929185714966548">Karta 4</translation>
@@ -3487,7 +3481,6 @@
 <translation id="6317318380444133405">Již není podporováno.</translation>
 <translation id="6317369057005134371">Čekání na okno aplikace...</translation>
 <translation id="6318407754858604988">Stahování bylo zahájeno</translation>
-<translation id="6322653941595359182">Odesílejte a přijímejte na Chromebooku textové zprávy</translation>
 <translation id="6324916366299863871">Upravit zkratku</translation>
 <translation id="6325191661371220117">Deaktivovat automatické spouštění</translation>
 <translation id="6326175484149238433">Odstranit z Chromu</translation>
@@ -3531,6 +3524,7 @@
 <translation id="6395423953133416962">Odesílat <ph name="BEGIN_LINK1" />informace o systému<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />metriky<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Možnosti synchronizace a personalizace</translation>
 <translation id="6397592254427394018">Otevřít všechny záložky v &amp;anonymním okně</translation>
+<translation id="639777613761517128">Chcete-li soubory otevřít pomocí aplikace $1, nejdříve je zkopírujte do složky souborů systému Linux.</translation>
 <translation id="6398715114293939307">Odstranit Obchod Google Play</translation>
 <translation id="6398765197997659313">Ukončit režim celé obrazovky</translation>
 <translation id="6399774419735315745">Špionka</translation>
@@ -3556,7 +3550,6 @@
 <translation id="642282551015776456">Tento název nelze použít k pojmenování souboru ani složky.</translation>
 <translation id="642469772702851743">Toto zařízení (sériové číslo: <ph name="SERIAL_NUMBER" />) vlastník uzamkl.</translation>
 <translation id="6426200009596957090">Otevřít nastavení funkce ChromeVox</translation>
-<translation id="6427415464407526111">Vyberte bezpečnostní klíč</translation>
 <translation id="6429384232893414837">Chyba aktualizace</translation>
 <translation id="6430814529589430811">Soubor ASCII kódovaný Base64, jeden certifikát</translation>
 <translation id="6431217872648827691">Všechny údaje byly zašifrovány pomocí hesla účtu Google ze dne
@@ -3714,7 +3707,6 @@
 <translation id="6655190889273724601">Režim pro vývojáře</translation>
 <translation id="6655458902729017087">Skrýt účty</translation>
 <translation id="6657585470893396449">Heslo</translation>
-<translation id="6658023813581644008">Chcete-li pro přihlášení nastavit funkci Smart Lock, zadejte heslo</translation>
 <translation id="6659213950629089752">Obsah této stránky byl přiblížen pomocí rozšíření <ph name="NAME" /></translation>
 <translation id="6659594942844771486">Karta</translation>
 <translation id="6664237456442406323">Váš počítač je bohužel nakonfigurován pomocí chybného čísla hardwaru. Systému Chrome OS to zabraňuje získat aktualizace s nejnovějšími bezpečnostními opravami, a počítač tak <ph name="BEGIN_BOLD" />může být zranitelnější vůči škodlivým úrokům<ph name="END_BOLD" />.</translation>
@@ -3850,7 +3842,6 @@
 <translation id="6885771755599377173">Náhled informací o systému</translation>
 <translation id="6886871292305414135">Otevřít odkaz na nové kar&amp;tě</translation>
 <translation id="6892812721183419409">Otevřít odkaz jako <ph name="USER" /></translation>
-<translation id="6896398788631624004">Připojte bezpečnostní klíč a aktivujte jej</translation>
 <translation id="6896758677409633944">Kopírovat</translation>
 <translation id="6898440773573063262">Aplikace veřejného terminálu lze v tomto zařízení teď nakonfigurovat na automatické spouštění.</translation>
 <translation id="6898699227549475383">Organizace (O)</translation>
@@ -3869,6 +3860,7 @@
 <translation id="6915804003454593391">Uživatel:</translation>
 <translation id="6916590542764765824">Spravovat rozšíření</translation>
 <translation id="6920989436227028121">Otevřít jako běžnou kartu</translation>
+<translation id="6921709132208495314">Přestat na této stránce využívat data</translation>
 <translation id="6922128026973287222">Pomocí Spořiče dat od Googlu můžete data ukládat a procházet rychleji. Kliknutím zobrazíte další informace.</translation>
 <translation id="6923132443355966645">Posouvání/kliknutí</translation>
 <translation id="6930242544192836755">Délka</translation>
@@ -3891,6 +3883,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Zařízení</translation>
+<translation id="6968288415730398122">Chcete-li nakonfigurovat zámek obrazovky, zadejte heslo</translation>
 <translation id="6970480684834282392">Typ spouštění</translation>
 <translation id="6970856801391541997">Tisknout konkrétní stránky</translation>
 <translation id="6972180789171089114">Zvuk/video</translation>
@@ -3901,6 +3894,7 @@
 <translation id="6978121630131642226">Vyhledávače</translation>
 <translation id="6978611942794658017">Tento soubor je určen pro počítač se softwarem Windows. S vaším zařízením se systémem Chrome OS není kompatibilní. Vyhledejte v Internetovém obchodě Chrome vhodnou náhradní aplikaci.</translation>
 <translation id="6979158407327259162">Disk Google</translation>
+<translation id="6979440798594660689">Ztlumit (výchozí)</translation>
 <translation id="6979737339423435258">Od počátku věků</translation>
 <translation id="6980462514016882061">Google vaši historii procházení může používat k personalizaci Vyhledávání, reklam a dalších služeb Google</translation>
 <translation id="6981982820502123353">Usnadnění</translation>
@@ -4049,6 +4043,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Toto jsou obecné informace o vašem zařízení a způsobu jeho používání (např. stav baterie, využití aplikací a připojení k sítím). Data budou využívána k vylepšení služeb a aplikací Google pro všechny uživatele. Některé shromážděné informace pomohou při zlepšování aplikací a služeb také našim partnerům, například vývojářům aplikací pro Android.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Vypnutí této funkce nemá vliv na schopnost zařízení odesílat informace, které potřebuje pro základní služby, jako jsou aktualizace systému a zabezpečení.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Tuto funkci můžete ovládat v Nastavení &gt; Google. Stačí v nabídce vybrat možnost Využití a diagnostika.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Ve vašem účtu jsme našli tento počet aplikací, které lze použít na tomto zařízení: <ph name="NUMBER_OF_APPS" />.</translation>
 <translation id="7199158086730159431">Zobrazit nápovědu</translation>
 <translation id="7200083590239651963">Vyberte konfiguraci</translation>
 <translation id="720110658997053098">Trvale toto zařízení ponechat v režimu veřejného terminálu</translation>
@@ -4069,7 +4064,6 @@
 <translation id="7228523857728654909">Zámek obrazovky a přihlášení</translation>
 <translation id="7229570126336867161">Je zapotřebí technologie EVDO.</translation>
 <translation id="7230787553283372882">Přizpůsobení velikosti textu</translation>
-<translation id="7231589788477569369">Zpřístupněte si pomocí těchto nastavení všechny funkce Asistenta</translation>
 <translation id="7232750842195536390">Přejmenování se nezdařilo</translation>
 <translation id="7234406375359457793">Při připojování sdílené složky došlo k chybě. Zadaná sdílená složka není podporována.</translation>
 <translation id="7238585580608191973">Digitální otisk SHA-256</translation>
@@ -4079,7 +4073,6 @@
 <translation id="7243632151880336635">Vymazat a odhlásit se</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (nejlepší)</translation>
 <translation id="7246339268451149667">Povolit odemknutí otiskem prstu?</translation>
-<translation id="7246489301073081944">Ukončíte stisknutím |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />|</translation>
 <translation id="7246947237293279874">Proxy server protokolu FTP</translation>
 <translation id="725109152065019550">Je nám líto, správce ve vašem účtu zakázal používání externích úložišť.</translation>
 <translation id="7253521419891527137">&amp;Další informace</translation>
@@ -4232,7 +4225,6 @@
 <translation id="7489605380874780575">Zkontrolovat způsobilost</translation>
 <translation id="749028671485790643">Osoba <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Adresa MAC</translation>
-<translation id="7490950320178383728">Používat bezpečnostní klíč s rozhraním Bluetooth</translation>
 <translation id="7491962110804786152">karta</translation>
 <translation id="7493386493263658176">Rozšíření <ph name="EXTENSION_NAME" /> může shromažďovat veškerý text, který napíšete, včetně osobních údajů, jako jsou hesla nebo čísla platebních karet. Chcete toto rozšíření použít?</translation>
 <translation id="7494065396242762445">Otevřít nastavení systému Windows</translation>
@@ -4480,7 +4472,6 @@
 <translation id="7850851215703745691">Tyto soubory na Disku dosud nejsou sdíleny</translation>
 <translation id="7851457902707056880">Přihlášení bylo omezeno pouze na účet vlastníka. Restartujte prosím zařízení a přihlaste se pomocí účtu vlastníka. Počítač se restartuje za 30 sekund.</translation>
 <translation id="7851716364080026749">Vždy blokovat přístup k webové kameře a mikrofonu</translation>
-<translation id="7851816139220202929">Používat bezpečnostní klíč s funkcí NFC</translation>
 <translation id="7853747251428735">&amp;Další nástroje</translation>
 <translation id="7856006446339184955">Odesílání údajů o systému. Toto zařízení v současné době do Googlu automaticky odesílá diagnostické údaje a údaje o využití zařízení a aplikací. Toto <ph name="BEGIN_LINK1" />nastavení<ph name="END_LINK1" /> je vynuceno vlastníkem. Pokud jste zapnuli další Aktivitu na webu a v aplikacích, budou uvedené údaje uloženy ve vašem účtu a budete je moci spravovat na stránce Moje aktivita. <ph name="BEGIN_LINK2" />Další informace<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Přidat výjimku</translation>
@@ -4563,6 +4554,7 @@
 <translation id="7973962044839454485">Ověření PPP se nezdařilo kvůli nesprávnému uživatelskému jménu nebo heslu</translation>
 <translation id="7974566588408714340">Zkusit znovu pomocí rozšíření <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Přesah obrazu</translation>
+<translation id="79766959863778284">Služba izolovaného zařízení XR</translation>
 <translation id="7977551819349545646">Aktualizace zařízení Chromebox...</translation>
 <translation id="7978412674231730200">Soukromý klíč</translation>
 <translation id="7978450511781612192">Tímto se odhlásíte ze svých účtů Google. Vaše záložky, historie, hesla a další údaje již nebudou synchronizovány.</translation>
@@ -4613,7 +4605,6 @@
 <translation id="8030656706657716245">Přidat tiskárnu</translation>
 <translation id="8032244173881942855">Kartu nelze odeslat.</translation>
 <translation id="8033827949643255796">vybráno</translation>
-<translation id="8033958968890501070">Vypršel časový limit</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Otevřít vše v &amp;anonymním okně}=1{Otevřít v &amp;anonymním okně}few{Otevřít vše (#) v &amp;anonymním okně}many{Otevřít vše (#) v &amp;anonymním okně}other{Otevřít vše (#) v &amp;anonymním okně}}</translation>
 <translation id="8037117027592400564">Číst veškerý text vyslovovaný pomocí syntetické řeči</translation>
 <translation id="8037357227543935929">Zeptat se (výchozí)</translation>
@@ -4786,6 +4777,7 @@
 <translation id="8320459152843401447">Celá vaše obrazovka</translation>
 <translation id="8322814362483282060">Přístup této stránky k vašemu mikrofonu je zablokován.</translation>
 <translation id="8326478304147373412">PKCS #7, řetězec certifikátu</translation>
+<translation id="8327039559959785305">Při připojování souborů systému Linux došlo k chybě. Zkuste to znovu.</translation>
 <translation id="8329978297633540474">Prostý text</translation>
 <translation id="8335587457941836791">Uvolnit z poličky</translation>
 <translation id="8336153091935557858">Včera <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4836,7 +4828,6 @@
 <translation id="8425213833346101688">Změnit</translation>
 <translation id="8425492902634685834">Připnout na hlavní panel</translation>
 <translation id="8425755597197517046">Vl&amp;ožit a vyhledat</translation>
-<translation id="8426117172745886547">Před ukončením upozornit (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Aktivování</translation>
 <translation id="8427292751741042100">vloženo na libovolném webu</translation>
 <translation id="8428213095426709021">Nastavení</translation>
@@ -4924,7 +4915,6 @@
 <translation id="8551388862522347954">Licence</translation>
 <translation id="8553342806078037065">Spravovat ostatní uživatele</translation>
 <translation id="8554899698005018844">Žádný jazyk</translation>
-<translation id="8557347704037207368">Odesílat vám oznámení ze služby Android Web Messages</translation>
 <translation id="855773602626431402">Na této stránce bylo zabráněno spuštění pluginu mimo izolovaný prostor.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Dekodér obrázků</translation>
@@ -5037,6 +5027,7 @@
 <translation id="8714154114375107944">Ukončení podpory</translation>
 <translation id="8714838604780058252">Grafika na pozadí</translation>
 <translation id="8715480913140015283">Karta na pozadí používá vaši kameru</translation>
+<translation id="8716931980467311658">Chcete z tohoto zařízení <ph name="DEVICE_TYPE" /> smazat všechny aplikace pro Linux a data ve složce souborů systému Linux?</translation>
 <translation id="8719653885894320876">Stahování pluginu <ph name="PLUGIN_NAME" /> selhalo</translation>
 <translation id="8723829621484579639">Anonymní dílčí rámce pro: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">Zobrazit ve &amp;složce</translation>
@@ -5200,7 +5191,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – selhalo</translation>
 <translation id="8983677657449185470">Pomoci zlepšovat Bezpečné prohlížení</translation>
 <translation id="8984654317541110628">Adresa URL sdílené složky</translation>
-<translation id="8984872292925913496">Šestimístný kód PIN naleznete na zadní straně klíče</translation>
 <translation id="8986362086234534611">Odstranit</translation>
 <translation id="8986494364107987395">Automaticky posílat společnosti Google statistiky používání a zprávy o selhání</translation>
 <translation id="8987927404178983737">Měsíc</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 1280b1b..3a2eb4d 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Fremhæv elementet med tastaturfokus, når det ændres.</translation>
 <translation id="1173894706177603556">Omdøb</translation>
 <translation id="1174073918202301297">Genvejen blev tilføjet</translation>
-<translation id="1174808551768282258">Lås din Chromebook op med din telefon. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" />.</translation>
 <translation id="1175364870820465910">&amp;Udskriv...</translation>
 <translation id="117624967391683467">Kopierer <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google kan bruge din browserhistorik til at tilpasse Søgning, annoncer og andre Google-tjenester. Du kan til enhver tid ændre dette på myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pause</translation>
 <translation id="1181037720776840403">Fjern</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> kan ikek indstalleres i den lokale cache.</translation>
-<translation id="1183378459020939734">Er du klar til at parre din sikkerhedsnøgle?</translation>
 <translation id="1185924365081634987">Du kan også prøve at <ph name="GUEST_SIGNIN_LINK_START" />anvende som gæst<ph name="GUEST_SIGNIN_LINK_END" /> for at udbedre denne netværksfejl.</translation>
 <translation id="1186771945450942097">Fjern skadelig software</translation>
 <translation id="1187722533808055681">Aktivering efter dvale</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Der blev ikke fundet nogen Bluetooth-enheder</translation>
 <translation id="1306606229401759371">Skift indstillinger</translation>
 <translation id="1307559529304613120">Ups! Systemet kunne ikke gemme det langfristede API-adgangstoken for denne enhed.</translation>
+<translation id="1307931752636661898">Linux-filerne kan ikke vises</translation>
 <translation id="1313405956111467313">Automatisk proxykonfiguration</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Dine bogmærker, din historik og dine andre indstillinger bliver synkroniseret med din Google-konto.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Åbn indstillingerne for mus og touchpad på enheden</translation>
 <translation id="1531004739673299060">Appvindue</translation>
 <translation id="15373452373711364">Stor musemarkør</translation>
+<translation id="1538729222189715449">Åbner Linux-filer...</translation>
 <translation id="1540605929960647700">Aktivér demotilstand</translation>
 <translation id="1543284117603151572">Importeret fra Edge</translation>
 <translation id="1545177026077493356">Automatisk terminaltilstand</translation>
@@ -539,7 +539,6 @@
 <translation id="1782530111891678861">Skift tilstand for Touch HUD</translation>
 <translation id="1784849162047402014">Der er næsten ikke mere plads på enheden</translation>
 <translation id="1786636458339910689">Fællesdrev</translation>
-<translation id="1792161662640298233">Bekræfter din sikkerhedsnøgle</translation>
 <translation id="1792619191750875668">Udvidet display</translation>
 <translation id="1794791083288629568">Send feedback for at hjælpe os med at løse problemet.</translation>
 <translation id="1795214765651529549">Brug Klassisk</translation>
@@ -622,7 +621,6 @@
 <translation id="1910721550319506122">Velkommen</translation>
 <translation id="1914326953223720820">Udpakningstjeneste</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Afhængigt af dine kontoindstillinger begrænses din brugeroplevelse i Assistent muligvis til f.eks. webresultater, vittigheder og lokale oplysninger.</translation>
 <translation id="1916502483199172559">Rød standardavatar</translation>
 <translation id="1918141783557917887">&amp;Mindre</translation>
 <translation id="1919345977826869612">Annoncer</translation>
@@ -791,6 +789,7 @@
 <translation id="2178098616815594724">Pluginnet <ph name="PEPPER_PLUGIN_NAME" /> på <ph name="PEPPER_PLUGIN_DOMAIN" /> anmoder om adgang til din computer</translation>
 <translation id="2178614541317717477">Sammensat nøglecenter</translation>
 <translation id="218070003709087997">Brug et tal til at angive, hvor mange kopier der skal udskrives (1 til 999).</translation>
+<translation id="2184515124301515068">Lad Chrome bestemme, hvornår websites må afspille lyd (anbefalet)</translation>
 <translation id="2187895286714876935">Fejl ved import af servercertifikat</translation>
 <translation id="2187906491731510095">Udvidelserne er opdateret</translation>
 <translation id="2188881192257509750">Åbn <ph name="APPLICATION" /></translation>
@@ -835,6 +834,7 @@
 <translation id="2241053333139545397">Læse og redigere dine data på en række websites</translation>
 <translation id="2242687258748107519">Filoplysninger</translation>
 <translation id="2243194103992005307">Hvis du vil fjerne apps, skal du gå til Indstillinger &gt; Apps eller Administration af apps. Tryk derefter på den app, du vil afinstallere (du skal muligvis stryge til højre eller til venstre for at finde appen). Tryk derefter på Afinstaller eller Deaktiver.</translation>
+<translation id="224940702122312781">Denne side bruger mange data.</translation>
 <translation id="2249605167705922988">f.eks. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Åbn med standardvisningsprogram</translation>
 <translation id="225163402930830576">Opdater netværk</translation>
@@ -875,14 +875,13 @@
 <translation id="2307462900900812319">Konfigurer netværk</translation>
 <translation id="230927227160767054">Denne side ønsker at installere en tjenestehåndtering.</translation>
 <translation id="2309620859903500144">Dette website er blevet blokeret fra at få adgang til dine bevægelses- eller lyssensorer.</translation>
-<translation id="2311075084924370935">Din Google-assistent skal have adgang til indstillingerne for Web- og appaktivitet, Enhedsoplysninger samt Tale- og lydaktivitet for at hjælpe dig med din kalender, dine påmindelser, dine flyrejser og meget mere.</translation>
+<translation id="2315414688463285945">Der opstod en fejl ved konfiguration af Linux-filer. Prøv igen.</translation>
 <translation id="2315821125498993513">Der kunne ikke oprettes forbindelse til telefonen. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" />.</translation>
 <translation id="2316129865977710310">Nej tak</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % udført</translation>
 <translation id="2318143611928805047">Papirstørrelse</translation>
 <translation id="2318817390901984578">Hvis du vil bruge Android-apps, skal du oplade og opdatere din <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Aktuel inkognitosession (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Brug din sikkerhedsnøgle med <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Sidehoveder og -fødder</translation>
 <translation id="2325650632570794183">Denne filtype understøttes ikke. Gå til Chrome Webshop for at finde en app, der kan åbne denne filtype.</translation>
 <translation id="2326931316514688470">&amp;Genindlæs app</translation>
@@ -916,7 +915,6 @@
 <translation id="2367199180085172140">Tilføj fildeling</translation>
 <translation id="2367972762794486313">Vis apps</translation>
 <translation id="2369536625682139252">Alle data, der lagres af <ph name="SITE" />, slettes – med undtagelse af cookies.</translation>
-<translation id="237058345584060620">Par din nøgle med denne enhed, så du kan bruge den til at logge ind på din konto</translation>
 <translation id="2371076942591664043">Åbn når &amp;færdigt</translation>
 <translation id="2377319039870049694">Skift til listevisning</translation>
 <translation id="2377667304966270281">Hårde fejl</translation>
@@ -983,7 +981,6 @@
 <translation id="248861575772995840">Din telefon blev ikke fundet. Sørg for, at Bluetooth er slået til på din <ph name="DEVICE_TYPE" />. &lt;a&gt;Få flere oplysninger&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Tilføj &amp;mappe...</translation>
 <translation id="249113932447298600">Vi beklager, men enheden <ph name="DEVICE_LABEL" /> understøttes ikke på nuværende tidspunkt.</translation>
-<translation id="2492040222276243256">Hold knappen på din sikkerhedsnøgle nede i mindst fem sekunder</translation>
 <translation id="2493021387995458222">Vælg "ord ad gangen"</translation>
 <translation id="249303669840926644">Registreringen kunne ikke fuldføres</translation>
 <translation id="2495777824269688114">Oplev flere funktioner, og find svar. Vælg "?" for at få hjælp.</translation>
@@ -1053,6 +1050,7 @@
 <translation id="2580924999637585241">I alt: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Lang</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /><ph name="PRODUCT_VERSION" /> (Platform <ph name="PLATFORM_VERSION" /> ) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Denne fane deler din skærm.</translation>
 <translation id="2586657967955657006">Udklipsholder</translation>
 <translation id="2586672484245266891">Angiv en kortere webadresse</translation>
 <translation id="2587922270115112871">Der oprettes ikke automatisk en Google-konto, når du opretter en administreret bruger, og indstillinger
@@ -1089,7 +1087,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> bruger <ph name="USAGE" /> MB diskplads.</translation>
 <translation id="2633212996805280240">Vil du fjerne "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101">Installationen af <ph name="PRODUCT_NAME" /> kunne ikke gennemføres, men vil fortsætte kørslen fra dets diskbillede.</translation>
-<translation id="2633326789677284179">Find navnet, der står på bagsiden af din nøgle</translation>
 <translation id="2635276683026132559">Signering</translation>
 <translation id="2636625531157955190">Chrome kan ikke få adgang til billedet.</translation>
 <translation id="2638087589890736295">Angiv adgangssætningen for at påbegynde synkroniseringen.</translation>
@@ -1257,7 +1254,6 @@
 <translation id="287286579981869940">Tilføj <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Log ind på Chrome for at få dine adgangskoder på alle dine enheder.</translation>
 <translation id="2875698561019555027">(Chrome-fejlsider)</translation>
-<translation id="2876441201733326392">Brug USB-sikkerhedsnøgle</translation>
 <translation id="288042212351694283">Får adgang til dine Universal 2nd Factor-enheder</translation>
 <translation id="2881966438216424900">Sidst åbnet:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> Genstart og nulstilling påbegyndes om et øjeblik</translation>
@@ -1325,7 +1321,6 @@
 <translation id="2982970937345031">Rapportér anonymt</translation>
 <translation id="2984337792991268709">I dag <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Denne side er blevet forhindret i at have fuld kontrol over MIDI-enheder.</translation>
-<translation id="2988599644347283908">Bemærk! De data, som styres af disse indstillinger, gemmes og bruges muligvis i alle Google-tjenester, hvor du er logget ind, for at give dig tilpassede oplevelser og nyttige annoncer. Du kan se og slette dine data samt ændre dine indstillinger på account.google.com.</translation>
 <translation id="2989474696604907455">ikke tilknyttet</translation>
 <translation id="2989786307324390836">DER-kodet binær, enkeltcertifikat</translation>
 <translation id="2993517869960930405">Oplysninger om appen</translation>
@@ -1378,7 +1373,6 @@
 <translation id="304826556400666995">Slå fanernes lyd til</translation>
 <translation id="3053013834507634016">Brug af certifikatnøgle</translation>
 <translation id="3057861065630527966">Sikkerhedskopiér dine billeder og videoer</translation>
-<translation id="3059313675706898490">Android Beskeder</translation>
 <translation id="3060379269883947824">Aktivér Tekstoplæsning</translation>
 <translation id="3061707000357573562">Tjeneste til programrettelse</translation>
 <translation id="3064410671692449875">Utilstrækkelige data</translation>
@@ -1407,7 +1401,6 @@
 <translation id="3090819949319990166">Ekstern crx-fil kan ikke kopieres til <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" er parret</translation>
 <translation id="3101709781009526431">Dato og klokkeslæt</translation>
-<translation id="3104900172193317662">Tillad, at din sikkerhedsnøgle anvendes</translation>
 <translation id="310671807099593501">Websitet anvender Bluetooth</translation>
 <translation id="3115128645424181617">Din telefon blev ikke fundet. Sørg for, at den er ved hånden, og at Bluetooth er slået til.</translation>
 <translation id="3115147772012638511">Venter på cache...</translation>
@@ -1491,7 +1484,6 @@
 <translation id="3251759466064201842">&lt;Ikke en del af certifikatet&gt;</translation>
 <translation id="3254434849914415189">Vælg standardappen for <ph name="FILE_TYPE" />-filer:</translation>
 <translation id="3254516606912442756">Automatisk registrering af tidszone er deaktiveret</translation>
-<translation id="3254772308201947812">Ja tak</translation>
 <translation id="3264544094376351444">Sans-serif-skrifttype</translation>
 <translation id="3264547943200567728">Netværket for din Chromebox kunne ikke konfigureres</translation>
 <translation id="3264582393905923483">Kontekst</translation>
@@ -1814,7 +1806,6 @@
 <translation id="3735740477244556633">Sortér efter</translation>
 <translation id="3737274407993947948">Der opstod en fejl under installationen af Linux...</translation>
 <translation id="3737536731758327622">Dine downloads vises her</translation>
-<translation id="3738671331307774213">Bekræftelse af din identitet hjælper med at beskytte dine personlige data</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Vil du åbne <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> vises nu i administrationskonsollen</translation>
@@ -1908,6 +1899,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Synkronisering er sat på pause</translation>
 <translation id="3860381078714302691">Velkommen til Hangouts Meet</translation>
+<translation id="3861241522664181545">Siden er sat på pause.</translation>
 <translation id="3862134173397075045">Velkommen til Cast-oplevelsen i Chrome!</translation>
 <translation id="3862788408946266506">Appen med manifestattributten "kiosk_only" skal installeres i ChromeOS-terminaltilstand</translation>
 <translation id="3865414814144988605">Opløsning</translation>
@@ -1922,7 +1914,6 @@
 <translation id="3873315167136380065">Du kan aktivere indstillingen ved at <ph name="BEGIN_LINK" />nulstille synkronisering<ph name="END_LINK" /> for at fjerne din adgangssætning til synkronisering</translation>
 <translation id="3878840326289104869">Opretter administreret bruger</translation>
 <translation id="3879748587602334249">Downloadadministrator</translation>
-<translation id="3880709822663530586">Din sikkerhedsnøgle fungerer kun, når Bluetooth er aktiveret på din enhed</translation>
 <translation id="3888550877729210209">Notetagning med <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Tilføj OpenVPN/L2TP...</translation>
 <translation id="3893536212201235195">Læse og redigere dine indstillinger for hjælpefunktioner</translation>
@@ -2068,6 +2059,7 @@
 <translation id="4096824249111507322">Sikkerhedsmodulet forberedes. Vent lidt (dette kan tage et par minutter)...</translation>
 <translation id="4099060993766194518">Vil du gendanne standardsøgemaskinen?</translation>
 <translation id="4100733287846229632">Der er næsten ikke mere plads på enheden</translation>
+<translation id="4103091233824664032">Angiv din adgangskode for at konfigurere skærmlås og login</translation>
 <translation id="4104163789986725820">E&amp;ksporter...</translation>
 <translation id="4105563239298244027">Få 1 TB gratis plads med Google Drev</translation>
 <translation id="4107048419833779140">Identificer og fjern lagerenheder</translation>
@@ -2088,7 +2080,6 @@
 <translation id="4136203100490971508">Nattelys slukkes automatisk ved solopgang</translation>
 <translation id="4138267921960073861">Vis brugernavne og billeder på loginskærmen</translation>
 <translation id="4144218403971135344">Se video i bedre kvalitet, og forlæng batteritiden. Der afspilles kun video på din Cast-kompatible skærm.</translation>
-<translation id="414599683948988413">Brug din sikkerhedsnøgle med USB</translation>
 <translation id="4146026355784316281">Åbn altid med systemets visningsprogram</translation>
 <translation id="4146785383423576110">Nulstil, og ryd op</translation>
 <translation id="4147897805161313378">Google Fotos</translation>
@@ -2223,6 +2214,7 @@
 <translation id="4394049700291259645">Deaktiver</translation>
 <translation id="4400367121200150367">Websites, som aldrig gemmer adgangskoder, vises her</translation>
 <translation id="4400632832271803360">Hold tasten Appliste nede for at skifte funktion for den øverste række taster</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">H&amp;jælp</translation>
 <translation id="4409697491990005945">Margener</translation>
 <translation id="4411578466613447185">Kodeunderskriver</translation>
@@ -2271,6 +2263,7 @@
 <translation id="4480590691557335796">Chrome kan finde og fjerne skadelig software på din computer</translation>
 <translation id="4481530544597605423">Ikke-parrede enheder</translation>
 <translation id="4482194545587547824">Google bruger muligvis din browserhistorik til at personliggøre Søgning og andre Google-tjenester</translation>
+<translation id="4493287891836751813">Sig hej til Google-assistenten</translation>
 <translation id="4495419450179050807">Vis ikke på denne side</translation>
 <translation id="4499718683476608392">Aktivér AutoFyld for kreditkort for at udfylde formularer med et enkelt klik</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> er gået ned</translation>
@@ -2431,6 +2424,7 @@
 <translation id="474217410105706308">Slå fanens lyd fra</translation>
 <translation id="4742746985488890273">Fastgør til hylde</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Se, hvordan du opdaterer apps<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Beskeder</translation>
 <translation id="4746971725921104503">Det ser ud til, at du allerede administrerer en bruger med dette navn. Prøvede du på at <ph name="LINK_START" />importere <ph name="USER_DISPLAY_NAME" /> til denne enhed<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Kræver en udvidelse fra Chrome Webshop</translation>
 <translation id="4750394297954878236">Forslag</translation>
@@ -2472,6 +2466,7 @@
 <translation id="4821935166599369261">&amp;Profilering aktiveret</translation>
 <translation id="4823484602432206655">Læs og rediger bruger- og enhedsindstillinger</translation>
 <translation id="4823651846660089135">Enheden er skrivebeskyttet</translation>
+<translation id="4823955295535347797">Få adgang til Google-assistenten, hver gang du siger "Ok Google", når skærmen er tændt.</translation>
 <translation id="4828937774870308359">Australsk</translation>
 <translation id="4829768588131278040">Konfiguration af pinkode</translation>
 <translation id="4830502475412647084">Installerer OS-opdateringen</translation>
@@ -2512,6 +2507,7 @@
 <translation id="4876273079589074638">Hjælp vores softwareudviklere med at undersøge og løse dette nedbrud. Angiv så vidt muligt præcist, hvad du gjorde. Alle detaljer er vigtige.</translation>
 <translation id="4876895919560854374">Låse skærmen/låse skærmen op</translation>
 <translation id="4877017884043316611">Par med Chromebox</translation>
+<translation id="4879491255372875719">Automatisk (standard)</translation>
 <translation id="4880214202172289027">Skydeknap til lydstyrke</translation>
 <translation id="4880328057631981605">Navn på adgangspunkt</translation>
 <translation id="4880520557730313061">Automatisk justering</translation>
@@ -2665,7 +2661,6 @@
 <translation id="5099354524039520280">op</translation>
 <translation id="5100114659116077956">For at få de nyeste funktioner skal du opdatere din Chromebox.</translation>
 <translation id="5101042277149003567">Åbn alle bogmærker</translation>
-<translation id="5104546332954397226">Brug din telefon som sikkerhedsnøgle</translation>
 <translation id="5105855035535475848">Fastgør faner</translation>
 <translation id="5108967062857032718">Indstillinger – Fjern Android-apps</translation>
 <translation id="5109044022078737958">Caroline</translation>
@@ -2796,7 +2791,6 @@
 <translation id="5288678174502918605">G&amp;enåbn lukket fane</translation>
 <translation id="52912272896845572">Den private nøglefil er ugyldig.</translation>
 <translation id="529175790091471945">Formatér denne enhed</translation>
-<translation id="5292195676005197571">På de fleste nøgler skal du bare trykke på knappen for at bruge dem</translation>
 <translation id="5293170712604732402">Gendan indstillinger til deres oprindelige standardkonfiguration</translation>
 <translation id="5297082477358294722">Adgangskoden blev gemt. Se og administrer gemte adgangskoder på din <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Tema oprettet af</translation>
@@ -2822,6 +2816,7 @@
 <translation id="532776649628038357">Jeg accepterer</translation>
 <translation id="532943162177641444">Tryk på underretningen på din <ph name="PHONE_NAME" /> for at konfigurere det mobilhotspot, der kan anvendes af denne enhed.</translation>
 <translation id="5329858601952122676">&amp;Slet</translation>
+<translation id="5329945517224105597">Assistenten kan tilbyde flere relevante forslag og specifikke handlinger i forhold til det, der vises på din skærm. Du kan ændre dette i indstillingerne for Assistent</translation>
 <translation id="5330145655348521461">Disse filer blev åbnet på en anden computer. Skift til <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) for at se dem.</translation>
 <translation id="5330512191124428349">Hent oplysninger</translation>
 <translation id="5331069282670671859">Du har ingen certifikater i denne kategori</translation>
@@ -2866,7 +2861,6 @@
 <translation id="5390100381392048184">Tillad, at websites afspiller lyd</translation>
 <translation id="5390284375844109566">Indekseret database</translation>
 <translation id="5390743329570580756">Send til</translation>
-<translation id="5392327114396848796">Brug en indbygget sikkerhedsnøgle</translation>
 <translation id="5397794290049113714">Dig</translation>
 <translation id="5398572795982417028">Sidereferencen er ugyldig. Grænsen er <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Annoncer er blokeret</translation>
@@ -3074,6 +3068,7 @@
    <ph name="LINE_BREAKS" />
    Luk alle filer i arkivet eller på den virtuelle disk, og prøv igen.</translation>
 <translation id="5687326903064479980">Tidszone</translation>
+<translation id="568824803367507355">Registrering af "Ok Google"</translation>
 <translation id="5689516760719285838">Placering</translation>
 <translation id="56907980372820799">Link data</translation>
 <translation id="5691511426247308406">Familie</translation>
@@ -3171,7 +3166,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kameraet eller mikrofonen optager</translation>
 <translation id="5835754902560991078">ekstremt kort (0,6 sek.)</translation>
 <translation id="5838456317242088717">Aktuel inkognitosession</translation>
-<translation id="5842053879378944309">Brug USB-sikkerhedsnøgle med <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Aktivering af Bluetooth</translation>
 <translation id="5843250171025351504">Din enhed overholder ikke længere det minimumskrav til klientversionen, som din administrator har angivet. Du skal opdatere, før du kan logge ind.</translation>
 <translation id="5846929185714966548">Fane 4</translation>
@@ -3490,7 +3484,6 @@
 <translation id="6317318380444133405">Understøttes ikke længere.</translation>
 <translation id="6317369057005134371">Venter på applikationsvindue...</translation>
 <translation id="6318407754858604988">Downloaden er i gang</translation>
-<translation id="6322653941595359182">Send og modtag sms-beskeder fra din Chromebook</translation>
 <translation id="6324916366299863871">Rediger genvej</translation>
 <translation id="6325191661371220117">Deaktiver Automatisk opstart</translation>
 <translation id="6326175484149238433">Fjern fra Chrome</translation>
@@ -3534,6 +3527,7 @@
 <translation id="6395423953133416962">Send <ph name="BEGIN_LINK1" />systemoplysninger<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />metrics<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Muligheder for synkronisering og tilpasning</translation>
 <translation id="6397592254427394018">Åbn alle bogmærker i &amp;inkognitovindue</translation>
+<translation id="639777613761517128">Hvis du vil åbne filer med $1, skal du først kopiere dem til mappen med Linux-filer.</translation>
 <translation id="6398715114293939307">Fjern Google Play Butik</translation>
 <translation id="6398765197997659313">Afslut fuld skærm</translation>
 <translation id="6399774419735315745">Spion</translation>
@@ -3559,7 +3553,6 @@
 <translation id="642282551015776456">Dette navn kan ikke bruges som fil- eller mappenavn</translation>
 <translation id="642469772702851743">Denne enhed (serienummer: <ph name="SERIAL_NUMBER" />) blev låst af ejeren.</translation>
 <translation id="6426200009596957090">Åbn indstillinger for ChromeVox</translation>
-<translation id="6427415464407526111">Vælg din sikkerhedsnøgle</translation>
 <translation id="6429384232893414837">Opdateringsfejl</translation>
 <translation id="6430814529589430811">Base64-kodet ASCII, enkeltcertifikat</translation>
 <translation id="6431217872648827691">Alle data blev krypteret med din Google-adgangskode den
@@ -3717,7 +3710,6 @@
 <translation id="6655190889273724601">Udviklertilstand</translation>
 <translation id="6655458902729017087">Skjul konti</translation>
 <translation id="6657585470893396449">Adgangskode</translation>
-<translation id="6658023813581644008">Angiv din adgangskode for at konfigurere Smart Lock til login</translation>
 <translation id="6659213950629089752">Udvidelsen "<ph name="NAME" />" zoomede ind på denne side.</translation>
 <translation id="6659594942844771486">Fane</translation>
 <translation id="6664237456442406323">Din computer er desværre konfigureret med et hardware-id i forkert format. Dette forhindrer Chrome OS i at opdatere med de nyeste sikkerhedsrettelser, og din computer <ph name="BEGIN_BOLD" />kan være sårbar over for ondartede angreb<ph name="END_BOLD" />.</translation>
@@ -3853,7 +3845,6 @@
 <translation id="6885771755599377173">Forhåndsvisning af systemoplysninger</translation>
 <translation id="6886871292305414135">Åbn link i ny &amp;fane</translation>
 <translation id="6892812721183419409">Åbn linket som <ph name="USER" /></translation>
-<translation id="6896398788631624004">Tilslut din sikkerhedsnøgle, og aktivér den</translation>
 <translation id="6896758677409633944">Kopiér</translation>
 <translation id="6898440773573063262">Terminalapplikationer kan nu konfigureres til at starte automatisk på enheden.</translation>
 <translation id="6898699227549475383">Organisation (O)</translation>
@@ -3872,6 +3863,7 @@
 <translation id="6915804003454593391">Bruger:</translation>
 <translation id="6916590542764765824">Administrer udvidelser</translation>
 <translation id="6920989436227028121">Åbn som almindelig fane</translation>
+<translation id="6921709132208495314">Stop med at bruge data på denne side</translation>
 <translation id="6922128026973287222">Gem dine data, og få en hurtigere browseroplevelse med Googles datasparefunktion. Klik for at få flere oplysninger.</translation>
 <translation id="6923132443355966645">Rul/klik</translation>
 <translation id="6930242544192836755">Varighed</translation>
@@ -3894,6 +3886,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Enhed</translation>
+<translation id="6968288415730398122">Angiv din adgangskode for at konfigurere skærmlåsen</translation>
 <translation id="6970480684834282392">Starttype</translation>
 <translation id="6970856801391541997">Udskriv bestemte sider</translation>
 <translation id="6972180789171089114">Lyd/video</translation>
@@ -3904,6 +3897,7 @@
 <translation id="6978121630131642226">Søgemaskiner</translation>
 <translation id="6978611942794658017">Denne fil er designet til en pc, der kører Windows-software. Den er ikke kompatibel med din enhed, der kører Chrome OS. Søg på Chrome Webshop efter en passende app.</translation>
 <translation id="6979158407327259162">Google Drev</translation>
+<translation id="6979440798594660689">Slå lyden fra (standard)</translation>
 <translation id="6979737339423435258">Alle browserdata</translation>
 <translation id="6980462514016882061">Google kan bruge din browserhistorik til at personliggøre Søgning, annoncer og andre Google-tjenester.</translation>
 <translation id="6981982820502123353">Hjælpefunktioner</translation>
@@ -4052,6 +4046,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Dette er generelle oplysninger om din enhed og om, hvordan du bruger den (f.eks. batteriniveau, appforbrug og netværksforbindelse). Dataene bruges til at forbedre Googles produkter og tjenester for alle. Visse samlede oplysninger hjælper også partnere som f.eks. Android-udviklere med at forbedre deres apps og produkter.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Hvis du deaktiverer denne funktion, påvirker det ikke enhedens evne til at sende de oplysninger, der skal bruges til vigtige tjenester som f.eks. systemopdateringer og sikkerhed.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Du kan administrere denne funktion i Indstillinger &gt; Google. Vælg Brug og diagnostik i menuen.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Vi fandt <ph name="NUMBER_OF_APPS" /> apps på din konto, der kan bruges på denne enhed.</translation>
 <translation id="7199158086730159431">Få H&amp;jælp</translation>
 <translation id="7200083590239651963">Vælg konfiguration</translation>
 <translation id="720110658997053098">Lad kiosktilstand forblive aktiveret på denne enhed</translation>
@@ -4072,7 +4067,6 @@
 <translation id="7228523857728654909">Skærmlås og login</translation>
 <translation id="7229570126336867161">EVDO mangler</translation>
 <translation id="7230787553283372882">Tilpas din tekststørrelse</translation>
-<translation id="7231589788477569369">Få den bedste brugeroplevelse i Assistent med disse indstillinger</translation>
 <translation id="7232750842195536390">Omdøbningen mislykkedes</translation>
 <translation id="7234406375359457793">Der opstod en fejl ved anvendelse af deling. Den angivne deling understøttes ikke.</translation>
 <translation id="7238585580608191973">SHA-256-fingeraftryk</translation>
@@ -4082,7 +4076,6 @@
 <translation id="7243632151880336635">Ryd, og log ud</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Bedste)</translation>
 <translation id="7246339268451149667">Vil du aktivere oplåsning med fingeraftryk?</translation>
-<translation id="7246489301073081944">Hold |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| nede for at afslutte</translation>
 <translation id="7246947237293279874">FTP-proxy</translation>
 <translation id="725109152065019550">Administratoren har desværre deaktiveret ekstern lagring på din konto.</translation>
 <translation id="7253521419891527137">&amp;Få flere oplysninger</translation>
@@ -4235,7 +4228,6 @@
 <translation id="7489605380874780575">Kontrollér berettigelse</translation>
 <translation id="749028671485790643">Person <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC-adresse</translation>
-<translation id="7490950320178383728">Brug din sikkerhedsnøgle med Bluetooth</translation>
 <translation id="7491962110804786152">fane</translation>
 <translation id="7493386493263658176">Udvidelsen <ph name="EXTENSION_NAME" /> indsamler muligvis al den tekst, du indtaster, herunder personlige oplysninger såsom adgangskoder og kreditkortnumre. Vil du bruge denne udvidelse?</translation>
 <translation id="7494065396242762445">Åbn Windows-indstillinger</translation>
@@ -4484,7 +4476,6 @@
 <translation id="7850851215703745691">Disse Drev-filer deles ikke endnu</translation>
 <translation id="7851457902707056880">Login er begrænset til ejerens konto. Genstart, og log ind med ejerens konto. Maskinen genstartes automatisk om 30 sekunder.</translation>
 <translation id="7851716364080026749">Bloker altid adgang til kamera og mikrofon</translation>
-<translation id="7851816139220202929">Brug din sikkerhedsnøgle med NFC</translation>
 <translation id="7853747251428735">Flere værktø&amp;jer</translation>
 <translation id="7856006446339184955">Send systemdata. Denne enhed sender i øjeblikket diagnostik og data om enheds- og appforbrug til Google. Denne <ph name="BEGIN_LINK1" />indstilling<ph name="END_LINK1" /> håndhæves af ejeren. Hvis du derudover har aktiveret Web- og app-aktivitet, gemmes disse oplysninger på din konto, så du kan administrere dem i Min aktivitet. <ph name="BEGIN_LINK2" />Få flere oplysninger<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Tilføj undtagelse</translation>
@@ -4567,6 +4558,7 @@
 <translation id="7973962044839454485">PPP-godkendelsen mislykkedes på grund af forkert brugernavn eller adgangskode</translation>
 <translation id="7974566588408714340">Prøv igen ved hjælp af <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Overscan</translation>
+<translation id="79766959863778284">XR Isolated Device Service</translation>
 <translation id="7977551819349545646">Chromebox opdateres...</translation>
 <translation id="7978412674231730200">Privat nøgle</translation>
 <translation id="7978450511781612192">Dermed logges du ud af dine Google-konti. Dine bogmærker, din historik, dine adgangskoder m.m. synkroniseres ikke længere.</translation>
@@ -4617,7 +4609,6 @@
 <translation id="8030656706657716245">Tilføj printeren</translation>
 <translation id="8032244173881942855">Fanen kunne ikke castes.</translation>
 <translation id="8033827949643255796">valgt</translation>
-<translation id="8033958968890501070">Timeout</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Åbn alle i &amp;inkognitovindue}=1{Åbn i &amp;inkognitovindue}one{Åbn (#) i &amp;inkognitovindue}other{Åbn alle (#) i &amp;inkognitovindue}}</translation>
 <translation id="8037117027592400564">Læs hele teksten højt ved hjælp af talesyntese</translation>
 <translation id="8037357227543935929">Spørg (standardindstilling)</translation>
@@ -4790,6 +4781,7 @@
 <translation id="8320459152843401447">Hele din skærm</translation>
 <translation id="8322814362483282060">Denne side er blokeret fra at få adgang til din mikrofon.</translation>
 <translation id="8326478304147373412">PKCS #7, certifikatkæde</translation>
+<translation id="8327039559959785305">Der opstod en fejl ved anvendelse af Linux-filer. Prøv igen.</translation>
 <translation id="8329978297633540474">Almindelig tekst</translation>
 <translation id="8335587457941836791">Frigør fra hylden</translation>
 <translation id="8336153091935557858">I går <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4840,7 +4832,6 @@
 <translation id="8425213833346101688">Skift</translation>
 <translation id="8425492902634685834">Fastgør til proceslinje</translation>
 <translation id="8425755597197517046">Ind&amp;sæt og søg</translation>
-<translation id="8426117172745886547">Advar, før der afsluttes (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Aktiverer</translation>
 <translation id="8427292751741042100">indlejret på hvilken som helst host</translation>
 <translation id="8428213095426709021">Indstillinger</translation>
@@ -4928,7 +4919,6 @@
 <translation id="8551388862522347954">Licenser</translation>
 <translation id="8553342806078037065">Administrer andre personer</translation>
 <translation id="8554899698005018844">Intet sprog</translation>
-<translation id="8557347704037207368">Sende dig underretninger fra Android Web Messages</translation>
 <translation id="855773602626431402">Et plugin, der ikke er gemt i sandbox, blev forhindret i at køre på denne side.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Værktøj til afkodning af billeder</translation>
@@ -5041,6 +5031,7 @@
 <translation id="8714154114375107944">Ophør af understøttelse</translation>
 <translation id="8714838604780058252">Baggrundsgrafik</translation>
 <translation id="8715480913140015283">En fane i baggrunden bruger dit kamera</translation>
+<translation id="8716931980467311658">Vil du slette alle Linux-apps og -data i din mappe med Linux-filer fra denne <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Download af <ph name="PLUGIN_NAME" /> mislykkedes</translation>
 <translation id="8723829621484579639">Inkognitounderrammer til: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Vis i mappe</translation>
@@ -5205,7 +5196,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – gået ned</translation>
 <translation id="8983677657449185470">Vær med til at forbedre Beskyttet browsing</translation>
 <translation id="8984654317541110628">Webadresse til fildeling</translation>
-<translation id="8984872292925913496">Find den sekscifrede pinkode på bagsiden af nøglen</translation>
 <translation id="8986362086234534611">Glem</translation>
 <translation id="8986494364107987395">Send automatisk brugsstatistikker og nedbrudsrapporter til Google</translation>
 <translation id="8987927404178983737">Måned</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 9db5eb7c..9dd7d2cb 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Objekt mit Tastaturfokus bei Änderung hervorheben</translation>
 <translation id="1173894706177603556">Umbenennen</translation>
 <translation id="1174073918202301297">Verknüpfung hinzugefügt</translation>
-<translation id="1174808551768282258">Chromebook mit Ihrem Smartphone entsperren. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Drucken...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> wird kopiert...</translation>
 <translation id="1177138678118607465">Google kann die Google-Suche, Werbung und andere Google-Dienste anhand Ihres Browserverlaufs für Sie personalisieren. Dies lässt sich jederzeit unter myaccount.google.com/activitycontrols/search ändern.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Anhalten</translation>
 <translation id="1181037720776840403">Entfernen</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> kann nicht im lokalen Cache installiert werden.</translation>
-<translation id="1183378459020939734">Bereit zum Koppeln des Sicherheitsschlüssels?</translation>
 <translation id="1185924365081634987">Sie können auch <ph name="GUEST_SIGNIN_LINK_START" />als Gast surfen<ph name="GUEST_SIGNIN_LINK_END" />, um den Netzwerkfehler zu beheben.</translation>
 <translation id="1186771945450942097">Schädliche Software entfernen</translation>
 <translation id="1187722533808055681">Inaktive Weckbefehle</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Keine Bluetooth-Geräte gefunden</translation>
 <translation id="1306606229401759371">Einstellungen ändern</translation>
 <translation id="1307559529304613120">Hoppla! Das System konnte das langfristig gültige API-Zugriffstoken für das Gerät nicht speichern.</translation>
+<translation id="1307931752636661898">Linux-Dateien können nicht angezeigt werden</translation>
 <translation id="1313405956111467313">Automatische Proxy-Konfiguration</translation>
 <translation id="131364520783682672">Feststelltaste</translation>
 <translation id="1313705515580255288">Ihre Lesezeichen, Ihr Verlauf und andere Einstellungen werden mit Ihrem Google-Konto synchronisiert.</translation>
@@ -364,6 +363,7 @@
 <translation id="1530838837447122178">Einstellungen für Maus- und Touchpadgeräte öffnen</translation>
 <translation id="1531004739673299060">Anwendungsfenster</translation>
 <translation id="15373452373711364">Großer Cursor</translation>
+<translation id="1538729222189715449">Linux-Dateien werden geöffnet…</translation>
 <translation id="1540605929960647700">Demomodus aktivieren</translation>
 <translation id="1543284117603151572">Aus Edge importiert</translation>
 <translation id="1545177026077493356">Automatischer Kioskmodus</translation>
@@ -408,7 +408,7 @@
 <translation id="1608626060424371292">Diesen Nutzer entfernen</translation>
 <translation id="1609170755653088773">Passwort mit meinem iPhone synchronisieren</translation>
 <translation id="1609862759711084604">Vorheriger Nutzer</translation>
-<translation id="1611584202130317952">Bereitstellungsverfahren unterbrochen. Bitte wenden Sie sich an den Inhaber Ihres Geräts oder an den Administrator oder versuchen Sie es noch einmal.</translation>
+<translation id="1611584202130317952">Bereitstellungsverfahren unterbrochen. Bitte wenden Sie sich an den Eigentümer Ihres Geräts oder an den Administrator oder versuchen Sie es noch einmal.</translation>
 <translation id="1611649489706141841">Weiter</translation>
 <translation id="1611704746353331382">Lesezeichen in HTML-Datei exportieren...</translation>
 <translation id="161460670679785907">Ihr Smartphone wurde nicht erkannt</translation>
@@ -539,7 +539,6 @@
 <translation id="1782530111891678861">Touch-HUD-Modus ändern</translation>
 <translation id="1784849162047402014">Gerät verfügt über wenig Speicherplatz</translation>
 <translation id="1786636458339910689">Teamablagen</translation>
-<translation id="1792161662640298233">Sicherheitsschlüssel wird geprüft</translation>
 <translation id="1792619191750875668">Erweiterter Bildschirm</translation>
 <translation id="1794791083288629568">Helfen Sie uns, dieses Problem zu beheben, indem Sie uns Feedback senden.</translation>
 <translation id="1795214765651529549">Klassisches Design verwenden</translation>
@@ -622,7 +621,6 @@
 <translation id="1910721550319506122">Willkommen!</translation>
 <translation id="1914326953223720820">Dienst entpacken</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">Je nachdem, welche Einstellungen Sie in Ihrem Konto vorgenommen haben, können Sie Google Assistant möglicherweise nur für Funktionen wie die Websuche, Witze und lokale Informationen verwenden.</translation>
 <translation id="1916502483199172559">Roter Standardavatar</translation>
 <translation id="1918141783557917887">&amp;Kleiner</translation>
 <translation id="1919345977826869612">Werbung</translation>
@@ -791,6 +789,7 @@
 <translation id="2178098616815594724">Das Plug-in <ph name="PEPPER_PLUGIN_NAME" /> auf <ph name="PEPPER_PLUGIN_DOMAIN" /> möchte auf Ihren Computer zugreifen</translation>
 <translation id="2178614541317717477">Kompromittierung der Zertifizierungsstelle</translation>
 <translation id="218070003709087997">Geben Sie eine Zahl ein, um die Anzahl der zu druckenden Exemplare festzulegen (1 bis 999).</translation>
+<translation id="2184515124301515068">Chrome die Entscheidung überlassen, wann Audioinhalte auf Websites abgespielt werden (empfohlen)</translation>
 <translation id="2187895286714876935">Fehler beim Importieren des Serverzertifikats</translation>
 <translation id="2187906491731510095">Erweiterungen wurden aktualisiert</translation>
 <translation id="2188881192257509750"><ph name="APPLICATION" /> öffnen</translation>
@@ -816,7 +815,7 @@
 <translation id="221872881068107022">Gegenläufiges Scrollen</translation>
 <translation id="2220529011494928058">Problem melden</translation>
 <translation id="2220572644011485463">PIN oder Passwort</translation>
-<translation id="2224444042887712269">Inhaber dieser Einstellung ist <ph name="OWNER_EMAIL" />.</translation>
+<translation id="2224444042887712269">Eigentümer dieser Einstellung ist <ph name="OWNER_EMAIL" />.</translation>
 <translation id="2224551243087462610">Ordnername bearbeiten</translation>
 <translation id="2226449515541314767">Dieser Website wurde keine vollständige Kontrolle über MIDI-Geräte gewährt.</translation>
 <translation id="2226720438730111184">Sagen Sie uns, was los ist</translation>
@@ -835,6 +834,7 @@
 <translation id="2241053333139545397">Eigene Daten auf verschiedenen Websites lesen und ändern</translation>
 <translation id="2242687258748107519">Dateiinformationen</translation>
 <translation id="2243194103992005307">Sie können Apps deinstallieren, indem Sie zu "Einstellungen" &gt; "Apps" gehen oder den Anwendungsmanager aufrufen. Tippen Sie dann auf die App, die Sie deinstallieren möchten, und wählen Sie "Deinstallieren" oder "Deaktivieren" aus. Möglicherweise müssen Sie nach rechts oder links wischen, um die App zu finden.</translation>
+<translation id="224940702122312781">Diese Seite verbraucht eine große Menge an Daten.</translation>
 <translation id="2249605167705922988">z. B. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Mit System Viewer öffnen</translation>
 <translation id="225163402930830576">Netzwerke aktualisieren</translation>
@@ -875,14 +875,13 @@
 <translation id="2307462900900812319">Netzwerk konfigurieren</translation>
 <translation id="230927227160767054">Diese Seite möchte einen Service-Handler installieren.</translation>
 <translation id="2309620859903500144">Diese Website darf nicht auf meine Bewegungs- oder Lichtsensoren zugreifen.</translation>
-<translation id="2311075084924370935">Damit Sie Informationen unter anderem zu Ihrem Kalender, Ihren Erinnerungen und Ihren Flügen erhalten können, benötigt Google Assistant Zugriff auf Web- &amp; App-Aktivitäten, Geräteinformationen und Sprach- &amp; Audioaktivitäten.</translation>
+<translation id="2315414688463285945">Fehler beim Konfigurieren von Linux-Dateien. Bitte versuchen Sie es noch einmal.</translation>
 <translation id="2315821125498993513">Keine Verbindung zum Smartphone möglich. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Kein Interesse</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % abgeschlossen</translation>
 <translation id="2318143611928805047">Papierformat</translation>
 <translation id="2318817390901984578">Um Android-Apps zu nutzen, müssen Sie Ihr <ph name="DEVICE_TYPE" /> aufladen und aktualisieren.</translation>
 <translation id="2318923050469484167">Aktuelle Inkognitositzung (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Sicherheitsschlüssel mit <ph name="APP_NAME" /> verwenden</translation>
 <translation id="2322193970951063277">Kopf- und Fußzeilen</translation>
 <translation id="2325650632570794183">Dieser Dateityp wird nicht unterstützt. Finden Sie im Chrome Web Store eine App, mit der Sie diesen Dateityp öffnen können.</translation>
 <translation id="2326931316514688470">App &amp;neu laden</translation>
@@ -916,7 +915,6 @@
 <translation id="2367199180085172140">Netzwerkfreigabe hinzufügen</translation>
 <translation id="2367972762794486313">Apps anzeigen</translation>
 <translation id="2369536625682139252">Alle von <ph name="SITE" /> gespeicherten Daten werden gelöscht, mit Ausnahme von Cookies.</translation>
-<translation id="237058345584060620">Koppeln Sie Ihren Schlüssel mit diesem Gerät, um sich damit in Ihrem Konto anmelden zu können</translation>
 <translation id="2371076942591664043">Nach &amp;Download öffnen</translation>
 <translation id="2377319039870049694">Zur Listenansicht wechseln</translation>
 <translation id="2377667304966270281">Harte Fehler</translation>
@@ -983,7 +981,6 @@
 <translation id="248861575772995840">Smartphone wurde nicht gefunden. Vergewissern Sie sich, dass auf Ihrem <ph name="DEVICE_TYPE" /> Bluetooth aktiviert ist. &lt;a&gt;Weitere Informationen&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;Ordner hinzufügen...</translation>
 <translation id="249113932447298600">Das Gerät <ph name="DEVICE_LABEL" /> wird derzeit nicht unterstützt.</translation>
-<translation id="2492040222276243256">Halten Sie die Taste auf Ihrem Sicherheitsschlüssel mindestens fünf Sekunden lang gedrückt</translation>
 <translation id="2493021387995458222">"Jeweils ein Wort" auswählen</translation>
 <translation id="249303669840926644">Registrierung konnte nicht abgeschlossen werden</translation>
 <translation id="2495777824269688114">Lernen Sie weitere Funktionen kennen oder erhalten Sie Antworten auf Ihre Fragen. Wählen Sie "?", um die Hilfe aufzurufen.</translation>
@@ -1053,6 +1050,7 @@
 <translation id="2580924999637585241">Gesamt: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Lang</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Plattform <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Über diesen Tab wird Ihr Bildschirm freigegeben.</translation>
 <translation id="2586657967955657006">Zwischenablage</translation>
 <translation id="2586672484245266891">Geben Sie eine kürzere URL ein</translation>
 <translation id="2587922270115112871">Beim Erstellen eines betreuten Nutzers wird kein Google-Konto erstellt und seine Einstellungen und Daten werden nicht über die Chrome-Synchronisierung auf anderen Geräten übernommen. Betreute Nutzer werden nur auf diesem Gerät eingerichtet.</translation>
@@ -1087,7 +1085,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> nutzt <ph name="USAGE" /> MB an Festplattenspeicher.</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />" entfernen?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> konnte die Installation nicht abschließen, wird jedoch weiterhin über das Datenträgerabbild ausgeführt.</translation>
-<translation id="2633326789677284179">Den Namen finden Sie auf der Rückseite Ihres Schlüssels</translation>
 <translation id="2635276683026132559">Signatur</translation>
 <translation id="2636625531157955190">Chrome kann nicht auf das Bild zugreifen.</translation>
 <translation id="2638087589890736295">Geben Sie Ihre Passphrase ein, um die Synchronisierung zu starten</translation>
@@ -1255,7 +1252,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> hinzufügen...</translation>
 <translation id="2874343608108773609">Wenn Sie Ihre Passwörter auf allen Geräten verfügbar haben möchten, melden Sie sich in Chrome an.</translation>
 <translation id="2875698561019555027">(Chrome-Fehlerseiten)</translation>
-<translation id="2876441201733326392">USB-Sicherheitsschlüssel verwenden</translation>
 <translation id="288042212351694283">Auf Ihre Universal 2nd Factor-Geräte zugreifen</translation>
 <translation id="2881966438216424900">Letzter Zugriff am:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> wird in wenigen Augenblicken neu gestartet und zurückgesetzt.</translation>
@@ -1323,7 +1319,6 @@
 <translation id="2982970937345031">Anonym melden</translation>
 <translation id="2984337792991268709">Heute <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Dieser Seite wurde keine vollständige Kontrolle über MIDI-Geräte gewährt.</translation>
-<translation id="2988599644347283908">Hinweis: Daten, die durch diese Einstellungen verwaltet werden, können gespeichert und in anderen Google-Diensten verwendet werden, in denen Sie angemeldet sind. So können wir die Nutzung für Sie personalisieren und Sie sehen relevantere Werbung. Unter account.google.com können Sie Ihre Daten sehen und löschen sowie Ihre Einstellungen ändern.</translation>
 <translation id="2989474696604907455">Nicht angeschlossen</translation>
 <translation id="2989786307324390836">DER-verschlüsselte Binärdatei, Einzelzertifikat</translation>
 <translation id="2993517869960930405">App-Info</translation>
@@ -1376,7 +1371,6 @@
 <translation id="304826556400666995">Stummschaltung der Tabs aufheben</translation>
 <translation id="3053013834507634016">Zertifikatschlüsselverwendung</translation>
 <translation id="3057861065630527966">Fotos und Videos sichern</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Vorlesen aktivieren</translation>
 <translation id="3061707000357573562">Patchdienst</translation>
 <translation id="3064410671692449875">Daten reichen nicht aus</translation>
@@ -1405,7 +1399,6 @@
 <translation id="3090819949319990166">Externe CRX-Datei konnte nicht als <ph name="TEMP_CRX_FILE" /> kopiert werden.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" ist gekoppelt</translation>
 <translation id="3101709781009526431">Datum und Uhrzeit</translation>
-<translation id="3104900172193317662">Verwendung Ihres Sicherheitsschlüssels zulassen</translation>
 <translation id="310671807099593501">Die Website verwendet Bluetooth</translation>
 <translation id="3115128645424181617">Smartphone wurde nicht gefunden. Vergewissern Sie sich, dass es sich in Reichweite befindet und dass Bluetooth aktiviert ist.</translation>
 <translation id="3115147772012638511">Warten auf den Cache...</translation>
@@ -1489,7 +1482,6 @@
 <translation id="3251759466064201842">&lt;Gehört nicht zum Zertifikat&gt;</translation>
 <translation id="3254434849914415189">Wählen Sie eine Standard-App für <ph name="FILE_TYPE" />-Dateien:</translation>
 <translation id="3254516606912442756">Automatische Zeitzonenerkennung ist deaktiviert</translation>
-<translation id="3254772308201947812">OK</translation>
 <translation id="3264544094376351444">Schriftart Sans-Serif</translation>
 <translation id="3264547943200567728">Fehler bei der Einrichtung des Chromebox-Netzwerks</translation>
 <translation id="3264582393905923483">Kontext</translation>
@@ -1703,7 +1695,7 @@
 <translation id="3574917942258583917">Inkognitomodus trotzdem beenden?</translation>
 <translation id="3576324189521867626">Installation war erfolgreich</translation>
 <translation id="3578594933904494462">Der Inhalt dieses Tabs wird geteilt.</translation>
-<translation id="357886715122934472">&lt;strong&gt;<ph name="SENDER" />&lt;/strong&gt; möchte den Drucker &lt;strong&gt;<ph name="PRINTER_NAME" />&lt;/strong&gt; für eine Gruppe freigeben, deren Inhaber Sie sind: &lt;strong&gt;<ph name="GROUP_NAME" />&lt;/strong&gt;. Falls Sie zustimmen, können alle Gruppenmitglieder diesen Drucker nutzen.</translation>
+<translation id="357886715122934472">&lt;strong&gt;<ph name="SENDER" />&lt;/strong&gt; möchte den Drucker &lt;strong&gt;<ph name="PRINTER_NAME" />&lt;/strong&gt; für eine Gruppe freigeben, deren Eigentümer Sie sind: &lt;strong&gt;<ph name="GROUP_NAME" />&lt;/strong&gt;. Falls Sie zustimmen, können alle Gruppenmitglieder diesen Drucker nutzen.</translation>
 <translation id="3580923162759633716">Profilerstellungsdienst</translation>
 <translation id="3584169441612580296">Fotos, Musik und andere Medien auf Ihrem Computer lesen und ändern</translation>
 <translation id="3587482841069643663">Alle</translation>
@@ -1812,7 +1804,6 @@
 <translation id="3735740477244556633">Sortieren nach</translation>
 <translation id="3737274407993947948">Fehler beim Installieren von Linux…</translation>
 <translation id="3737536731758327622">Hier werden Ihre Downloads angezeigt</translation>
-<translation id="3738671331307774213">Wenn Ihre Identität überprüft wird, hilft dies, Ihre private Daten zu schützen</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> öffnen?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> erscheint nun in der Admin-Konsole.</translation>
@@ -1906,6 +1897,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Synchronisierung pausiert</translation>
 <translation id="3860381078714302691">Willkommen bei Hangouts Meet</translation>
+<translation id="3861241522664181545">Seite pausiert.</translation>
 <translation id="3862134173397075045">Herzlich willkommen bei Cast in Chrome!</translation>
 <translation id="3862788408946266506">App mit Manifest-Attribut "kiosk_only" muss im Chrome OS-Kioskmodus installiert werden</translation>
 <translation id="3865414814144988605">Auflösung</translation>
@@ -1920,7 +1912,6 @@
 <translation id="3873315167136380065">Wenn Sie diese Funktion aktivieren möchten, müssen Sie die <ph name="BEGIN_LINK" />Synchronisierung zurücksetzen<ph name="END_LINK" />, um die Synchronisierungspassphrase zu entfernen</translation>
 <translation id="3878840326289104869">Betreuter Nutzer wird erstellt...</translation>
 <translation id="3879748587602334249">Download-Manager</translation>
-<translation id="3880709822663530586">Ihr Sicherheitsschlüssel funktioniert nur, wenn auf Ihrem Gerät Bluetooth aktiviert ist</translation>
 <translation id="3888550877729210209">Notizerstellung mit <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">OpenVPN/L2TP hinzufügen…</translation>
 <translation id="3893536212201235195">Einstellungen für Eingabehilfen lesen und ändern</translation>
@@ -2066,6 +2057,7 @@
 <translation id="4096824249111507322">Das Sicherheitsmodul wird vorbereitet, bitte warten (dies kann einige Minuten dauern)...</translation>
 <translation id="4099060993766194518">Standardsuchmaschine wiederherstellen?</translation>
 <translation id="4100733287846229632">Speicherplatz auf Gerät äußerst niedrig</translation>
+<translation id="4103091233824664032">Passwort eingeben, um Displaysperre und Log-in zu konfigurieren</translation>
 <translation id="4104163789986725820">E&amp;xportieren...</translation>
 <translation id="4105563239298244027">Nutzen Sie 1 TB kostenlosen Speicher bei Google Drive.</translation>
 <translation id="4107048419833779140">Speichergeräte ermitteln und auswerfen</translation>
@@ -2086,7 +2078,6 @@
 <translation id="4136203100490971508">Das Nachtlicht wird automatisch bei Sonnenaufgang deaktiviert</translation>
 <translation id="4138267921960073861">Nutzernamen und Fotos auf der Anmeldeseite anzeigen</translation>
 <translation id="4144218403971135344">Bessere Videoqualität und längere Akkulaufzeit. Videos werden nur auf Ihrem für Google Cast optimierten Gerät abgespielt.</translation>
-<translation id="414599683948988413">Meinen Sicherheitsschlüssel mit USB verwenden</translation>
 <translation id="4146026355784316281">Immer mit System Viewer öffnen</translation>
 <translation id="4146785383423576110">Zurücksetzen und bereinigen</translation>
 <translation id="4147897805161313378">Google Fotos</translation>
@@ -2221,6 +2212,7 @@
 <translation id="4394049700291259645">Deaktivieren</translation>
 <translation id="4400367121200150367">Hier werden Websites angezeigt, für die keine Passwörter gespeichert werden</translation>
 <translation id="4400632832271803360">Halten Sie die Taste "Suche" gedrückt, um die Funktion der Tasten in der obersten Reihe zu ändern</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">&amp;Hilfe</translation>
 <translation id="4409697491990005945">Ränder</translation>
 <translation id="4411578466613447185">Code-Signaturgeber</translation>
@@ -2269,6 +2261,7 @@
 <translation id="4480590691557335796">Chrome kann auf Ihrem Computer schädliche Software suchen und entfernen</translation>
 <translation id="4481530544597605423">Entkoppelte Geräte</translation>
 <translation id="4482194545587547824">Google kann die Suche und andere Google-Dienste anhand Ihres Browserverlaufs für Sie personalisieren.</translation>
+<translation id="4493287891836751813">Dein Google Assistant</translation>
 <translation id="4495419450179050807">Nicht auf dieser Seite anzeigen</translation>
 <translation id="4499718683476608392">AutoFill für Kreditkarten aktivieren, um Formulare mit nur einem Klick auszufüllen</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ist abgestürzt</translation>
@@ -2429,6 +2422,7 @@
 <translation id="474217410105706308">Tab stummschalten</translation>
 <translation id="4742746985488890273">An Ablage anheften</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Hier finden Sie Informationen zum Aktualisieren von Anwendungen<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Nachrichten</translation>
 <translation id="4746971725921104503">Offenbar wird schon ein Nutzer unter diesem Namen verwaltet. Wollten Sie <ph name="LINK_START" /><ph name="USER_DISPLAY_NAME" /> auf dieses Gerät importieren<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Erweiterung aus dem Chrome Web Store erforderlich</translation>
 <translation id="4750394297954878236">Vorschläge</translation>
@@ -2470,6 +2464,7 @@
 <translation id="4821935166599369261">&amp;Profilerstellung aktiviert</translation>
 <translation id="4823484602432206655">Nutzer- und Geräteeinstellungen lesen und ändern</translation>
 <translation id="4823651846660089135">Gerät ist schreibgeschützt</translation>
+<translation id="4823955295535347797">Bei eingeschaltetem Bildschirm steht Ihnen Google Assistant jederzeit zur Verfügung, wenn Sie "Ok Google" sagen.</translation>
 <translation id="4828937774870308359">Australisch</translation>
 <translation id="4829768588131278040">PIN erstellen</translation>
 <translation id="4830502475412647084">Betriebssystem-Update wird installiert</translation>
@@ -2510,6 +2505,7 @@
 <translation id="4876273079589074638">Unterstützen Sie unsere Entwickler beim Untersuchen und Beheben dieses Absturzes. Beschreiben Sie möglichst genau alle Schritte. Kein noch so kleines Detail ist überflüssig!</translation>
 <translation id="4876895919560854374">Bildschirm sperren und entsperren</translation>
 <translation id="4877017884043316611">Mit Chromebox koppeln</translation>
+<translation id="4879491255372875719">Automatisch (Standard)</translation>
 <translation id="4880214202172289027">Schieberegler für die Lautstärke</translation>
 <translation id="4880328057631981605">Name des Zugangspunkts</translation>
 <translation id="4880520557730313061">Autom. Korrektur</translation>
@@ -2663,7 +2659,6 @@
 <translation id="5099354524039520280">Nach oben</translation>
 <translation id="5100114659116077956">Damit Ihre Chromebox über die neuesten Funktionen verfügt, muss sie aktualisiert werden.</translation>
 <translation id="5101042277149003567">Alle Lesezeichen öffnen</translation>
-<translation id="5104546332954397226">Smartphone als Sicherheitsschlüssel verwenden</translation>
 <translation id="5105855035535475848">Tabs anheften</translation>
 <translation id="5108967062857032718">Einstellungen – Android-Apps entfernen</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2794,7 +2789,6 @@
 <translation id="5288678174502918605">Geschlossenen Tab wieder öffn&amp;en</translation>
 <translation id="52912272896845572">Private Schlüsseldatei ist ungültig.</translation>
 <translation id="529175790091471945">Gerät formatieren</translation>
-<translation id="5292195676005197571">Bei den meisten Schlüsseln genügt es, zur Verwendung die Taste drücken</translation>
 <translation id="5293170712604732402">Einstellungen auf ursprüngliche Standardwerte zurücksetzen</translation>
 <translation id="5297082477358294722">Passwort gespeichert. Gespeicherte Passwörter können Sie in Ihrem <ph name="SAVED_PASSWORDS_STORE" /> aufrufen und verwalten</translation>
 <translation id="5298219193514155779">Design von</translation>
@@ -2820,6 +2814,7 @@
 <translation id="532776649628038357">Ich stimme zu</translation>
 <translation id="532943162177641444">Tippen Sie auf die Benachrichtigung auf Ihrem <ph name="PHONE_NAME" />, um einen mobilen Hotspot einzurichten, den dieses Gerät nutzen kann.</translation>
 <translation id="5329858601952122676">&amp;Löschen</translation>
+<translation id="5329945517224105597">Google Assistant kann Ihnen bessere Vorschläge und passende Aktionen zu den Inhalten auf Ihrem Bildschirm anzeigen. Sie können dies in den Einstellungen von Assistant ändern.</translation>
 <translation id="5330145655348521461">Diese Dateien wurden auf einem anderen Desktop geöffnet. Wechseln Sie zu <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />), um sie anzusehen.</translation>
 <translation id="5330512191124428349">Informationen abrufen</translation>
 <translation id="5331069282670671859">In dieser Kategorie befinden sich keine Zertifikate</translation>
@@ -2864,7 +2859,6 @@
 <translation id="5390100381392048184">Wiedergabe von Ton auf Websites zulassen</translation>
 <translation id="5390284375844109566">Indexierte Datenbank</translation>
 <translation id="5390743329570580756">Senden für</translation>
-<translation id="5392327114396848796">Integrierten Sicherheitsschlüssel verwenden</translation>
 <translation id="5397794290049113714">Ich</translation>
 <translation id="5398572795982417028">Der Seitenbereich ist zu groß. Die maximale Seitenanzahl liegt bei <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Werbung blockiert</translation>
@@ -3072,6 +3066,7 @@
    <ph name="LINE_BREAKS" />
    Schließen Sie alle Dateien in dem Archiv bzw. auf dem virtuellen Datenträger und probieren Sie es dann noch einmal.</translation>
 <translation id="5687326903064479980">Zeitzone</translation>
+<translation id="568824803367507355">"Ok Google"-Erkennung</translation>
 <translation id="5689516760719285838">Ort</translation>
 <translation id="56907980372820799">Daten verknüpfen</translation>
 <translation id="5691511426247308406">Familie</translation>
@@ -3169,7 +3164,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – Kamera oder Mikrofon nimmt auf</translation>
 <translation id="5835754902560991078">äußerst kurz (0,6 s)</translation>
 <translation id="5838456317242088717">Aktuelle Inkognitositzung</translation>
-<translation id="5842053879378944309">USB-Sicherheitsschlüssel mit <ph name="APP_NAME" /> verwenden</translation>
 <translation id="5842497610951477805">Bluetooth aktivieren</translation>
 <translation id="5843250171025351504">Ihr Gerät entspricht nicht mehr der Mindestversion von Clients, die von Ihrem Administrator festgelegt wurde. Aktualisieren Sie das Gerät, um sich anzumelden.</translation>
 <translation id="5846929185714966548">Tab 4</translation>
@@ -3487,7 +3481,6 @@
 <translation id="6317318380444133405">Wird nicht mehr unterstützt.</translation>
 <translation id="6317369057005134371">Warten auf Anwendungsfenster...</translation>
 <translation id="6318407754858604988">Download gestartet</translation>
-<translation id="6322653941595359182">Textnachrichten auf Ihrem Chromebook senden und empfangen</translation>
 <translation id="6324916366299863871">Verknüpfung bearbeiten</translation>
 <translation id="6325191661371220117">Automatisches Starten deaktivieren</translation>
 <translation id="6326175484149238433">Aus Chrome entfernen</translation>
@@ -3531,6 +3524,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />Systeminformationen<ph name="END_LINK1" /> und <ph name="BEGIN_LINK2" />Messwerte<ph name="END_LINK2" /> senden</translation>
 <translation id="6397094776139756010">Synchronisierungs- und Personalisierungsoptionen</translation>
 <translation id="6397592254427394018">Alle Lesezeichen in &amp;Inkognito-Fenster öffnen</translation>
+<translation id="639777613761517128">Um Dateien mit "$1" zu öffnen, kopieren Sie sie zuerst in den Ordner "Linux-Dateien".</translation>
 <translation id="6398715114293939307">Google Play Store entfernen</translation>
 <translation id="6398765197997659313">Vollbildmodus beenden</translation>
 <translation id="6399774419735315745">Spionin</translation>
@@ -3556,7 +3550,6 @@
 <translation id="642282551015776456">Dieser Name darf nicht als Datei- oder Ordnername verwendet werden.</translation>
 <translation id="642469772702851743">Dieses Gerät (SN: <ph name="SERIAL_NUMBER" />) wurde vom Eigentümer gesperrt.</translation>
 <translation id="6426200009596957090">ChromeVox-Einstellungen öffnen</translation>
-<translation id="6427415464407526111">Sicherheitsschlüssel auswählen</translation>
 <translation id="6429384232893414837">Fehler beim Aktualisieren</translation>
 <translation id="6430814529589430811">Base64-codierter ASCII-Code, Einzelzertifikat</translation>
 <translation id="6431217872648827691">Die Verschlüsselung aller Daten mit Ihrem Google-Passwort erfolgte am
@@ -3714,7 +3707,6 @@
 <translation id="6655190889273724601">Entwicklermodus</translation>
 <translation id="6655458902729017087">Konten ausblenden</translation>
 <translation id="6657585470893396449">Passwort</translation>
-<translation id="6658023813581644008">Passwort eingeben, um Smart Lock für die Anmeldung einzurichten</translation>
 <translation id="6659213950629089752">Diese Seite wurde mit der Erweiterung "<ph name="NAME" />" gezoomt.</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Ihr Computer wurde mit einer ungültigen Hardware-ID konfiguriert. Daher kann Chrome OS keine aktuellen Sicherheitsupdates installieren und Ihr Computer ist <ph name="BEGIN_BOLD" />möglicherweise anfällig für schädliche Angriffe<ph name="END_BOLD" />.</translation>
@@ -3850,7 +3842,6 @@
 <translation id="6885771755599377173">Vorschau der Systeminformationen</translation>
 <translation id="6886871292305414135">Link in neuem &amp;Tab öffnen</translation>
 <translation id="6892812721183419409">Link als <ph name="USER" /> öffnen</translation>
-<translation id="6896398788631624004">Sicherheitsschlüssel einstecken und aktivieren</translation>
 <translation id="6896758677409633944">Kopieren</translation>
 <translation id="6898440773573063262">Für Kioskanwendungen kann nun das automatische Starten auf diesem Gerät konfiguriert werden.</translation>
 <translation id="6898699227549475383">Organisation (O)</translation>
@@ -3869,6 +3860,7 @@
 <translation id="6915804003454593391">Nutzer:</translation>
 <translation id="6916590542764765824">Erweiterungen verwalten</translation>
 <translation id="6920989436227028121">In normalem Tab öffnen</translation>
+<translation id="6921709132208495314">Datenverbrauch auf dieser Seite stoppen</translation>
 <translation id="6922128026973287222">Mit dem Google-Datensparmodus verbrauchen Sie weniger Daten und surfen schneller. Klicken Sie hier, um mehr zu erfahren.</translation>
 <translation id="6923132443355966645">Scrollen/Klicken</translation>
 <translation id="6930242544192836755">Dauer</translation>
@@ -3891,6 +3883,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Gerät</translation>
+<translation id="6968288415730398122">Geben Sie Ihr Passwort ein, um die Displaysperre zu konfigurieren</translation>
 <translation id="6970480684834282392">Starttyp</translation>
 <translation id="6970856801391541997">Bestimmte Seiten drucken</translation>
 <translation id="6972180789171089114">Audio/Video</translation>
@@ -3901,6 +3894,7 @@
 <translation id="6978121630131642226">Suchmaschinen</translation>
 <translation id="6978611942794658017">Diese Datei wurde für Computer entwickelt, die mit Windows-Software betrieben werden. Die Datei ist nicht kompatibel mit Ihrem Chrome OS-Gerät. Suchen Sie im Chrome Web Store nach einer geeigneten Ersatz-App.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Stummschalten (Standard)</translation>
 <translation id="6979737339423435258">Gesamte Zeit</translation>
 <translation id="6980462514016882061">Mithilfe Ihres Browserverlaufs kann Google die Suche, Werbung und andere Google-Dienste personalisieren</translation>
 <translation id="6981982820502123353">Bedienungshilfen</translation>
@@ -4049,6 +4043,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Dies sind allgemeine Informationen zu Ihrem Gerät und dessen Nutzung, zum Beispiel zum Ladestatus des Akkus, zur App-Nutzung und zur Netzwerkkonnektivität. Die Daten werden verwendet, um Google-Produkte und -Dienste für alle Nutzer zu verbessern. Einige zusammengefasste Informationen helfen auch Partnern wie Android-Entwicklern dabei, ihre Apps und Produkte zu verbessern.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Wenn Sie diese Funktion deaktivieren, kann Ihr Gerät dennoch die Informationen senden, die für wichtige Dienste wie Systemupdates und Sicherheitsmerkmale erforderlich sind.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Sie können diese Funktion unter "Einstellungen" &gt; "Google" steuern. Wählen Sie im angezeigten Menü "Nutzung &amp; Diagnose" aus.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Wir haben <ph name="NUMBER_OF_APPS" /> Apps in Ihrem Konto gefunden, die auf diesem Gerät verwendet werden können.</translation>
 <translation id="7199158086730159431">H&amp;ilfe erhalten</translation>
 <translation id="7200083590239651963">Konfiguration auswählen</translation>
 <translation id="720110658997053098">Gerät dauerhaft im Kioskmodus betreiben</translation>
@@ -4069,7 +4064,6 @@
 <translation id="7228523857728654909">Bildschirmsperre und Anmeldung</translation>
 <translation id="7229570126336867161">EVDO erforderlich</translation>
 <translation id="7230787553283372882">Textgröße anpassen</translation>
-<translation id="7231589788477569369">Mit diesen Einstellungen alle Funktionen von Assistant nutzen</translation>
 <translation id="7232750842195536390">Fehler beim Umbenennen</translation>
 <translation id="7234406375359457793">Fehler beim Bereitstellen der Freigabe. Die angegebene Freigabe wird nicht unterstützt.</translation>
 <translation id="7238585580608191973">SHA-256-Fingerabdruck</translation>
@@ -4079,7 +4073,6 @@
 <translation id="7243632151880336635">Löschen und abmelden</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (höchste Qualität)</translation>
 <translation id="7246339268451149667">Entsperren per Fingerabdruck aktivieren?</translation>
-<translation id="7246489301073081944">Zum Beenden <ph name="ACCELERATOR1" /> + <ph name="ACCELERATOR2" /> + <ph name="ACCELERATOR3" /> gedrückt halten</translation>
 <translation id="7246947237293279874">FTP-Proxy</translation>
 <translation id="725109152065019550">Ihr Administrator hat leider den externen Speicher für Ihr Konto deaktiviert.</translation>
 <translation id="7253521419891527137">&amp;Weitere Informationen</translation>
@@ -4232,7 +4225,6 @@
 <translation id="7489605380874780575">Unterstützung überprüfen</translation>
 <translation id="749028671485790643">Profil <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC-Adresse</translation>
-<translation id="7490950320178383728">Sicherheitsschlüssel mit Bluetooth verwenden</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">Die Erweiterung <ph name="EXTENSION_NAME" /> erfasst unter Umständen alle von Ihnen eingegebenen Textinhalte, einschließlich personenbezogener Daten wie Passwörter und Kreditkartennummern. Möchten Sie diese Erweiterung verwenden?</translation>
 <translation id="7494065396242762445">Windows-Einstellungen öffnen</translation>
@@ -4482,7 +4474,6 @@
 <translation id="7850851215703745691">Die Drive-Dateien wurden noch nicht geteilt.</translation>
 <translation id="7851457902707056880">Die Anmeldung ist nur über das Eigentümerkonto möglich. Bitte starten Sie das Gerät neu und melden Sie sich dann mit dem Eigentümerkonto an. Das Gerät wird in 30 Sekunden automatisch neu gestartet.</translation>
 <translation id="7851716364080026749">Zugriff auf Kamera und Mikrofon immer blockieren</translation>
-<translation id="7851816139220202929">Sicherheitsschlüssel mit NFC verwenden</translation>
 <translation id="7853747251428735">Weitere Too&amp;ls</translation>
 <translation id="7856006446339184955">Systemdaten senden. Das Gerät sendet automatisch Diagnose- sowie Geräte- und App-Nutzungsdaten an Google. Diese <ph name="BEGIN_LINK1" />Einstellung<ph name="END_LINK1" /> wird vom Eigentümer erzwungen. Wenn Sie zusätzliche Web- &amp; App-Aktivitäten aktiviert haben, werden diese Informationen in Ihrem Konto gespeichert, damit Sie sie unter "Meine Aktivitäten" verwalten können. <ph name="BEGIN_LINK2" />Weitere Informationen<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Ausnahme hinzufügen</translation>
@@ -4565,6 +4556,7 @@
 <translation id="7973962044839454485">Fehler bei PPP-Authentifizierung aufgrund eines falschen Nutzernamens oder Passworts</translation>
 <translation id="7974566588408714340">Über <ph name="EXTENSIONNAME" /> erneut versuchen</translation>
 <translation id="7974936243149753750">Overscan</translation>
+<translation id="79766959863778284">Isolierter Gerätedienst für XR</translation>
 <translation id="7977551819349545646">Chromebox wird aktualisiert...</translation>
 <translation id="7978412674231730200">Privater Schlüssel</translation>
 <translation id="7978450511781612192">Dadurch werden Sie aus Ihren Google-Konten abgemeldet. Ihre Lesezeichen, Ihr Verlauf, Ihre Passwörter usw. werden nicht mehr synchronisiert.</translation>
@@ -4615,7 +4607,6 @@
 <translation id="8030656706657716245">Drucker hinzufügen</translation>
 <translation id="8032244173881942855">Tab kann nicht gestreamt werden.</translation>
 <translation id="8033827949643255796">Ausgewählt</translation>
-<translation id="8033958968890501070">Zeitüberschreitung</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Alle in &amp;Inkognitofenster öffnen}=1{In &amp;Inkognitofenster öffnen}other{Alle (#) in &amp;Inkognitofenster öffnen}}</translation>
 <translation id="8037117027592400564">Alle mit künstlicher Sprachausgabe gesprochenen Texte lesen</translation>
 <translation id="8037357227543935929">Nachfragen (Standardeinstellung)</translation>
@@ -4676,7 +4667,7 @@
 <translation id="8131740175452115882">Bestätigen</translation>
 <translation id="8133676275609324831">&amp;In Ordner anzeigen</translation>
 <translation id="8135557862853121765"><ph name="NUM_KILOBYTES" /> KB</translation>
-<translation id="8137331602592933310">"<ph name="FILENAME" />" wurde mit Ihnen geteilt. Sie können die Datei nicht löschen, da Sie nicht der Inhaber sind.</translation>
+<translation id="8137331602592933310">"<ph name="FILENAME" />" wurde mit Ihnen geteilt. Sie können die Datei nicht löschen, da Sie nicht der Eigentümer sind.</translation>
 <translation id="8137559199583651773">Erweiterungen verwalten</translation>
 <translation id="8138082791834443598">Optional: Eingabe neuer oder Aktualisierung vorhandener Informationen für dieses Gerät.</translation>
 <translation id="813913629614996137">Initialisierung…</translation>
@@ -4788,6 +4779,7 @@
 <translation id="8320459152843401447">Mein ganzer Bildschirm</translation>
 <translation id="8322814362483282060">Diese Seite darf nicht auf Ihr Mikrofon zugreifen.</translation>
 <translation id="8326478304147373412">PKCS #7, Zertifikatkette</translation>
+<translation id="8327039559959785305">Fehler beim Bereitstellen von Linux-Dateien. Bitte versuchen Sie es noch einmal.</translation>
 <translation id="8329978297633540474">Unformatierter Text</translation>
 <translation id="8335587457941836791">Von Ablage loslösen</translation>
 <translation id="8336153091935557858">Gestern <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4839,7 +4831,6 @@
 <translation id="8425213833346101688">Ändern</translation>
 <translation id="8425492902634685834">An Taskleiste anheften</translation>
 <translation id="8425755597197517046">Einfügen und &amp;suchen</translation>
-<translation id="8426117172745886547">Vor dem Beenden warnen (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Wird aktiviert</translation>
 <translation id="8427292751741042100">auf beliebigem Host eingebettet</translation>
 <translation id="8428213095426709021">Einstellungen</translation>
@@ -4927,7 +4918,6 @@
 <translation id="8551388862522347954">Lizenzen</translation>
 <translation id="8553342806078037065">Andere Nutzer verwalten</translation>
 <translation id="8554899698005018844">Keine Sprache</translation>
-<translation id="8557347704037207368">Benachrichtigungen von Android Messages erhalten</translation>
 <translation id="855773602626431402">Ein Plug-in ohne Sandbox wurde auf dieser Seite blockiert.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Bild-Decodierer</translation>
@@ -5040,6 +5030,7 @@
 <translation id="8714154114375107944">Support eingestellt</translation>
 <translation id="8714838604780058252">Hintergrundgrafiken</translation>
 <translation id="8715480913140015283">Ein Tab im Hintergrund verwendet Ihre Kamera</translation>
+<translation id="8716931980467311658">Alle Linux-Anwendungen und Daten im Ordner "Linux-Dateien" von diesem <ph name="DEVICE_TYPE" /> löschen?</translation>
 <translation id="8719653885894320876">Fehler beim Download von <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Inkognito-Subframes für: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;In Ordner anzeigen</translation>
@@ -5203,7 +5194,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – abgestürzt</translation>
 <translation id="8983677657449185470">Bei der Optimierung von Safe Browsing helfen</translation>
 <translation id="8984654317541110628">Dateifreigabe-URL</translation>
-<translation id="8984872292925913496">Sie finden die sechsstellige PIN auf der Rückseite Ihres Schlüssels</translation>
 <translation id="8986362086234534611">Entfernen</translation>
 <translation id="8986494364107987395">Nutzungsstatistiken und Absturzberichte automatisch an Google senden</translation>
 <translation id="8987927404178983737">Monat</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 23b4ad9..80906c57 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Επισήμανση του αντικειμένου με εστίαση στο πληκτρολόγιο όταν αλλάζει</translation>
 <translation id="1173894706177603556">Μετονομασία</translation>
 <translation id="1174073918202301297">Η συντόμευση προστέθηκε</translation>
-<translation id="1174808551768282258">Ξεκλειδώστε το Chromebook με το τηλέφωνό σας. <ph name="LINK_BEGIN" />Μάθετε περισσότερα.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Εκτύπωση...</translation>
 <translation id="117624967391683467">Αντιγραφή αρχείου <ph name="FILE_NAME" />…</translation>
 <translation id="1177138678118607465">Η Google μπορεί να χρησιμοποιεί το ιστορικό περιήγησής σας για να εξατομικεύει την Αναζήτηση, τις διαφημίσεις και άλλες υπηρεσίες Google. Μπορείτε να αλλάξετε αυτήν τη ρύθμιση ανά πάσα στιγμή στο myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Παύση</translation>
 <translation id="1181037720776840403">Κατάργηση</translation>
 <translation id="1183237619868651138">Δεν είναι δυνατή η εγκατάσταση του <ph name="EXTERNAL_CRX_FILE" /> σε τοπική κρυφή μνήμη.</translation>
-<translation id="1183378459020939734">Είστε έτοιμοι για τη σύζευξη του Κλειδιού ασφαλείας σας;</translation>
 <translation id="1185924365081634987">Μπορείτε επίσης να δοκιμάσετε να <ph name="GUEST_SIGNIN_LINK_START" />περιηγηθείτε ως επισκέπτης<ph name="GUEST_SIGNIN_LINK_END" /> για να διορθώσετε αυτό το σφάλμα δικτύου.</translation>
 <translation id="1186771945450942097">Κατάργηση επιβλαβούς λογισμικού</translation>
 <translation id="1187722533808055681">Έξοδος από την κατάσταση αδράνειας</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Δεν βρέθηκαν συσκευές Bluetooth</translation>
 <translation id="1306606229401759371">Αλλαγή ρυθμίσεων</translation>
 <translation id="1307559529304613120">Ωχ!  Το σύστημα δεν κατάφερε να αποθηκεύσει το μακροπρόσθεσμο διακριτικό πρόσβασης API για αυτήν τη συσκευή.</translation>
+<translation id="1307931752636661898">Δεν είναι δυνατή η προβολή αρχείων Linux</translation>
 <translation id="1313405956111467313">Αυτόματη διαμόρφωση διακομιστή μεσολάβησης</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Οι σελιδοδείκτες, το ιστορικό και άλλες ρυθμίσεις θα συγχρονιστούν με το Λογαριασμό σας Google</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Άνοιγμα των ρυθμίσεων ποντικιού και επιφάνειας αφής της συσκευής</translation>
 <translation id="1531004739673299060">Παράθυρο εφαρμογής</translation>
 <translation id="15373452373711364">Μεγάλος δείκτης ποντικιού</translation>
+<translation id="1538729222189715449">Άνοιγμα αρχείων Linux…</translation>
 <translation id="1540605929960647700">Ενεργοποίηση λειτουργίας επίδειξης</translation>
 <translation id="1543284117603151572">Εισαγωγή από το Edge</translation>
 <translation id="1545177026077493356">Αυτόματη λειτουργία kiosk</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Αλλαγή λειτουργίας αφής HUD</translation>
 <translation id="1784849162047402014">Ο ελεύθερος χώρος στον δίσκο της συσκευής είναι περιορισμένος</translation>
 <translation id="1786636458339910689">Drive ομάδας</translation>
-<translation id="1792161662640298233">Επαλήθευση του Κλειδιού ασφαλείας σας</translation>
 <translation id="1792619191750875668">Διευρυμένη οθόνη</translation>
 <translation id="1794791083288629568">Στείλτε τα σχόλιά σας για να μας βοηθήσετε να επιλύσουμε αυτό το πρόβλημα.</translation>
 <translation id="1795214765651529549">Χρήση κλασικού</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Καλώς ορίσατε!</translation>
 <translation id="1914326953223720820">Υπηρεσία αποσυμπίεσης</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Ανάλογα με τις ρυθμίσεις του λογαριασμού σας, η εμπειρία σας με τον Βοηθό μπορεί να περιορίζεται σε ενέργειες όπως αποτελέσματα ιστού, ανέκδοτα και τοπικές πληροφορίες.</translation>
 <translation id="1916502483199172559">Προεπιλεγμένο κόκκινο avatar</translation>
 <translation id="1918141783557917887">&amp;Σμίκρυνση</translation>
 <translation id="1919345977826869612">Διαφημίσεις</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Η προσθήκη <ph name="PEPPER_PLUGIN_NAME" /> στον τομέα <ph name="PEPPER_PLUGIN_DOMAIN" /> επιθυμεί να αποκτήσει πρόσβαση στον υπολογιστή σας</translation>
 <translation id="2178614541317717477">Παραβίαση αρχής έκδοσης πιστοποιητικών</translation>
 <translation id="218070003709087997">Χρησιμοποιήστε έναν αριθμό για να υποδείξετε πόσα αντίγραφα θα εκτυπωθούν (1 ή 999).</translation>
+<translation id="2184515124301515068">Επιτρέψτε στο Chrome να επιλέξει πότε οι ιστότοποι μπορούν να αναπαράγουν ήχο (συνιστάται)</translation>
 <translation id="2187895286714876935">Σφάλμα εισαγωγής του πιστοποιητικού διακομιστή  </translation>
 <translation id="2187906491731510095">Οι επεκτάσεις ενημερώθηκαν</translation>
 <translation id="2188881192257509750">Άνοιγμα <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Διαβάστε και αλλάξτε τα δεδομένα σας σε διάφορους ιστότοπους</translation>
 <translation id="2242687258748107519">Πληροφορίες αρχείου</translation>
 <translation id="2243194103992005307">Για να καταργήσετε εφαρμογές, μεταβείτε στις Ρυθμίσεις &gt; Εφαρμογές ή Διαχείριση εφαρμογών. Έπειτα, πατήστε στην εφαρμογή που θέλετε να απεγκαταστήσετε (μπορεί να χρειαστεί να σύρετε προς τα δεξιά ή προς τα αριστερά για να βρείτε την εφαρμογή). Στη συνέχεια, πατήστε "Απεγκατάσταση" ή "Απενεργοποίηση".</translation>
+<translation id="224940702122312781">Αυτή η σελίδα θα χρησιμοποιεί πολλά δεδομένα.</translation>
 <translation id="2249605167705922988">π.χ. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Άνοιγμα με πρόγραμμα προβολής συστήματος</translation>
 <translation id="225163402930830576">Ανανέωση δικτύων</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Διαμόρφωση δικτύου</translation>
 <translation id="230927227160767054">Αυτή η σελίδα θέλει να κάνει εγκατάσταση ενός δείκτη χειρισμού υπηρεσιών.</translation>
 <translation id="2309620859903500144">Έχει αποκλειστεί η πρόσβαση αυτού του ιστοτόπου στους αισθητήρες κίνησης και φωτός.</translation>
-<translation id="2311075084924370935">Προκειμένου ο Βοηθός σας να σας βοηθήσει με το ημερολόγιο, τις υπενθυμίσεις, τις πτήσεις σας και άλλα, θα πρέπει να έχει πρόσβαση στις ρυθμίσεις "Δραστηριότητα ιστού και εφαρμογών", "Πληροφορίες συσκευής", "Δραστηριότητα φωνής και ήχου".</translation>
+<translation id="2315414688463285945">Παρουσιάστηκε σφάλμα κατά τη διαμόρφωση αρχείων Linux. Δοκιμάστε ξανά.</translation>
 <translation id="2315821125498993513">Δεν ήταν δυνατή η σύνδεση στο τηλέφωνο. <ph name="LINK_BEGIN" />Μάθετε περισσότερα.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Όχι, ευχαριστώ</translation>
 <translation id="2317842250900878657">Ολοκληρώθηκε<ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Μέγεθος χαρτιού</translation>
 <translation id="2318817390901984578">Για να χρησιμοποιήσετε εφαρμογές Android, φορτίστε και ενημερώστε τη συσκευή <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Για την τρέχουσα περίοδο λειτουργίας σε κατάσταση ανώνυμης περιήγησης ( <ph name="EMBEDDING" /> )</translation>
-<translation id="2321482478556590128">Χρήση του Κλειδιού ασφαλείας σας με την εφαρμογή <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Κεφαλίδες και υποσέλιδα</translation>
 <translation id="2325650632570794183">Αυτός ο τύπος αρχείου δεν υποστηρίζεται. Επισκεφτείτε το Chrome Web Store για να εντοπίσετε μια εφαρμογή που να μπορεί να ανοίξει αυτόν τον τύπο αρχείου.</translation>
 <translation id="2326931316514688470">Ε&amp;πανάληψη φόρτωσης εφαρμογής</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Προσθήκη κοινόχρηστου αρχείου</translation>
 <translation id="2367972762794486313">Εμφάνιση εφαρμογών</translation>
 <translation id="2369536625682139252">Όλα τα δεδομένα που αποθηκεύτηκαν από τον ιστότοπο <ph name="SITE" /> θα διαγραφούν, εκτός από τα cookie.</translation>
-<translation id="237058345584060620">Δημιουργήστε σύζευξη μεταξύ του κλειδιού σας και αυτής της συσκευής, για να μπορείτε να τη χρησιμοποιήσετε για σύνδεση στον λογαριασμό σας</translation>
 <translation id="2371076942591664043">Άνοιγμα κατά την &amp;ολοκλήρωση</translation>
 <translation id="2377319039870049694">Εναλλαγή σε προβολή λίστας</translation>
 <translation id="2377667304966270281">Σοβαρά σφάλματα</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Δεν είναι δυνατή η εύρεση του τηλεφώνου σας. Βεβαιωθείτε ότι το Bluetooth του <ph name="DEVICE_TYPE" /> είναι ενεργοποιημένο. &lt;a&gt;Μάθετε περισσότερα&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Προσθήκη &amp;φακέλου...</translation>
 <translation id="249113932447298600">Λυπούμαστε, η συσκευή <ph name="DEVICE_LABEL" /> δεν υποστηρίζεται προς το παρόν.</translation>
-<translation id="2492040222276243256">Πατήστε παρατεταμένα το κουμπί στο κλειδί ασφαλείας σας για τουλάχιστον 5 δευτερόλεπτα</translation>
 <translation id="2493021387995458222">Επιλέξτε "μία λέξη κάθε φορά"</translation>
 <translation id="249303669840926644">Αδυναμία ολοκλήρωσης εγγραφής</translation>
 <translation id="2495777824269688114">Ανακαλύψτε περισσότερες λειτουργίες ή λάβετε απαντήσεις. Επιλέξτε το στοιχείο "?" για βοήθεια.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Σύνολο: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Μακρά</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Πλατφόρμα <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Αυτή η καρτέλα μοιράζεται την οθόνη σας.</translation>
 <translation id="2586657967955657006">Πρόχειρο</translation>
 <translation id="2586672484245266891">Εισαγάγετε μια πιο σύντομη διεύθυνση URL</translation>
 <translation id="2587922270115112871">Η δημιουργία ενός εποπτευόμενου χρήστη δεν δημιουργεί νέο Λογαριασμό Google και οι ρυθμίσεις
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344">Η εφαρμογή <ph name="NAME" /> χρησιμοποιεί <ph name="USAGE" /> MB από το χώρο του δίσκου.</translation>
 <translation id="2633212996805280240">Να γίνει κατάργηση του "<ph name="EXTENSION_NAME" />";</translation>
 <translation id="263325223718984101">Το <ph name="PRODUCT_NAME" /> δεν ήταν δυνατό να ολοκληρώσει την εγκατάσταση, όμως θα συνεχίσει να εκτελείται από το είδωλο δίσκου.</translation>
-<translation id="2633326789677284179">Βρείτε το όνομα που αναγράφεται στο πίσω μέρος του κλειδιού σας</translation>
 <translation id="2635276683026132559">Υπογραφή</translation>
 <translation id="2636625531157955190">Το Chrome δεν μπορεί να αποκτήσει πρόσβαση στην εικόνα.</translation>
 <translation id="2638087589890736295">Για να ξεκινήσει ο συγχρονισμός, απαιτείται φράση πρόσβασης</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Προσθήκη <ph name="PROVIDER_NAME" />…</translation>
 <translation id="2874343608108773609">Για να έχετε πρόσβαση από όλες τις συσκευές στους κωδικούς πρόσβασής σας, συνδεθείτε στο Chrome.</translation>
 <translation id="2875698561019555027">(Σελίδες σφαλμάτων Chrome)</translation>
-<translation id="2876441201733326392">Χρήση Κλειδιού ασφαλείας USB</translation>
 <translation id="288042212351694283">Πρόσβαση στις συσκευές με Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Τελευταία πρόσβαση:</translation>
 <translation id="2882943222317434580">Θα γίνει άμεσα επανεκκίνηση και επαναφορά του <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Ανώνυμη αναφορά</translation>
 <translation id="2984337792991268709">Σήμερα <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Αυτή η σελίδα έχει αποκλειστεί από τον πλήρη έλεγχο των συσκευών MIDI.</translation>
-<translation id="2988599644347283908">Σημείωση: Τα δεδομένα που ελέγχονται από αυτές τις ρυθμίσεις μπορεί να αποθηκευτούν και να χρησιμοποιηθούν σε οποιαδήποτε υπηρεσία Google στην οποία είστε συνδεδεμένοι, προκειμένου να σας παρέχει εξατομικευμένες εμπειρίες και χρήσιμες διαφημίσεις. Μπορείτε να δείτε τα δεδομένα σας, να τα διαγράψετε και να αλλάξετε τις ρυθμίσεις σας στη διεύθυνση account.google.com.</translation>
 <translation id="2989474696604907455">αποσυνδεδεμένη</translation>
 <translation id="2989786307324390836">Κωδικοποιημένο δυαδικό DER, πιστοποιητικό</translation>
 <translation id="2993517869960930405">Πληροφορίες εφαρμογής</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Κατάργηση σίγασης καρτελών</translation>
 <translation id="3053013834507634016">Χρήση κλειδιού πιστοποιητικού</translation>
 <translation id="3057861065630527966">Δημιουργία αντιγράφων ασφαλείας για τις φωτογραφίες και τα βίντεό σας</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Ενεργοποίηση λειτουργίας "Επιλέξτε για εκφώνηση"</translation>
 <translation id="3061707000357573562">Υπηρεσία ενημέρωσης κώδικα</translation>
 <translation id="3064410671692449875">Ανεπαρκή δεδομένα</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Δεν είναι δυνατή η αντιγραφή του εξωτερικού αρχείου crx στο <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Έγινε σύζευξη της συσκευής "<ph name="DEVICE_NAME" />"</translation>
 <translation id="3101709781009526431">Ημερομηνία και ώρα</translation>
-<translation id="3104900172193317662">Επιτρέψτε τη χρήση του Κλειδιού ασφαλείας σας</translation>
 <translation id="310671807099593501">Ο ιστότοπος χρησιμοποιεί bluetooth</translation>
 <translation id="3115128645424181617">Δεν είναι δυνατή η εύρεση του τηλεφώνου σας. Βεβαιωθείτε ότι είναι διαθέσιμο και ότι το Bluetooth είναι ενεργοποιημένο.</translation>
 <translation id="3115147772012638511">Αναμονή για προσωρινή μνήμη...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Δεν είναι μέρος πιστοποιητικού&gt;</translation>
 <translation id="3254434849914415189">Επιλέξτε την προεπιλεγμένη εφαρμογή για τα αρχεία <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Ο αυτόματος εντοπισμός ζώνης ώρας είναι απενεργοποιημένος</translation>
-<translation id="3254772308201947812">Ναι, συμφωνώ</translation>
 <translation id="3264544094376351444">Γραμματοσειρά Sans-serif</translation>
 <translation id="3264547943200567728">Η ρύθμιση του δικτύου του Chromebox σας απέτυχε</translation>
 <translation id="3264582393905923483">Περιβάλλον</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Ταξινόμηση κατά</translation>
 <translation id="3737274407993947948">Σφάλμα εγκατάστασης Linux…</translation>
 <translation id="3737536731758327622">Οι λήψεις σας εμφανίζονται εδώ</translation>
-<translation id="3738671331307774213">Η επαλήθευση της ταυτότητάς σας συμβάλλει στην προστασία των προσωπικών δεδομένων σας</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Άνοιγμα <ph name="APPLICATION" />;</translation>
 <translation id="3741158646617793859">Το <ph name="DEVICE_NAME" /> θα εμφανίζεται πλέον στην Κονσόλα διαχειριστή</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Ο συγχρονισμός τέθηκε σε παύση</translation>
 <translation id="3860381078714302691">Καλώς ήρθατε στο Hangouts Meet</translation>
+<translation id="3861241522664181545">Η σελίδα τέθηκε σε παύση.</translation>
 <translation id="3862134173397075045">Καλώς ήρθατε στην εμπειρία Μετάδοσης στο Chrome!</translation>
 <translation id="3862788408946266506">Θα πρέπει να εγκατασταθεί μια εφαρμογή με χαρακτηριστικό μανιφέστου "kiosk_only" στη λειτουργία kiosk του Chrome OS</translation>
 <translation id="3865414814144988605">Ανάλυση</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Για ενεργοποίηση, <ph name="BEGIN_LINK" />κάντε επαναφορά στον συγχρονισμό<ph name="END_LINK" />, ώστε να καταργηθεί η φράση πρόσβασης συγχρονισμού</translation>
 <translation id="3878840326289104869">Δημιουργία εποπτευόμενου χρήστη</translation>
 <translation id="3879748587602334249">Διαχείριση λήψεων</translation>
-<translation id="3880709822663530586">Το Κλειδί ασφαλείας λειτουργεί μόνο όταν το Bluetooth της συσκευής σας είναι ενεργό</translation>
 <translation id="3888550877729210209">Λήψη σημειώσεων με την εφαρμογή <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Προσθήκη OpenVPN / L2TP…</translation>
 <translation id="3893536212201235195">Ανάγνωση και αλλαγή των ρυθμίσεων προσβασιμότητας</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Η ασφαλής λειτουργική μονάδα προετοιμάζεται. Περιμένετε (η διαδικασία μπορεί να διαρκέσει λίγα λεπτά)…</translation>
 <translation id="4099060993766194518">Επαναφορά προεπιλεγμένης μηχανής αναζήτησης;</translation>
 <translation id="4100733287846229632">Ο ελεύθερος χώρος της συσκευής είναι οριακός</translation>
+<translation id="4103091233824664032">Εισαγάγετε τον κωδικό πρόσβασής σας για να διαμορφώσετε το κλείδωμα της οθόνης και τη σύνδεση</translation>
 <translation id="4104163789986725820">Ε&amp;ξαγωγή...</translation>
 <translation id="4105563239298244027">Αποκτήστε δωρεάν 1 TB με το Google Drive</translation>
 <translation id="4107048419833779140">Ταυτοποίηση και κατάργηση συσκευών αποθηκευτικού χώρου</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Ο Νυχτερινός φωτισμός θα απενεργοποιείται αυτόματα κατά την ανατολή του ηλίου</translation>
 <translation id="4138267921960073861">Εμφάνιση ονομάτων χρηστών και φωτογραφιών στην οθόνη σύνδεσης</translation>
 <translation id="4144218403971135344">Απολαύστε βίντεο καλύτερης ποιότητας και εξοικονομήστε μπαταρία. Το βίντεο θα αναπαράγεται μόνο στην οθόνη σας με δυνατότητα Cast.</translation>
-<translation id="414599683948988413">Χρήση του Κλειδιού ασφαλείας σας με USB</translation>
 <translation id="4146026355784316281">Άνοιγμα πάντα με πρόγραμμα προβολής συστήματος</translation>
 <translation id="4146785383423576110">Επαναφορά και διαγραφή επιβλαβούς λογισμικού</translation>
 <translation id="4147897805161313378">Φωτογραφίες Google</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Απενεργοποίηση</translation>
 <translation id="4400367121200150367">Οι ιστότοποι που δεν αποθηκεύουν ποτέ κωδικούς πρόσβασης θα εμφανίζονται εδώ</translation>
 <translation id="4400632832271803360">Πατήστε παρατεταμένα το πλήκτρο Εφαρμογής εκκίνησης, για να αλλάξετε τη συμπεριφορά των πλήκτρων της επάνω σειράς</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">Β&amp;οήθεια</translation>
 <translation id="4409697491990005945">Περιθώρια</translation>
 <translation id="4411578466613447185">Υπηρεσία υπογραφής κώδικα</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Το Chrome μπορεί να εντοπίσει και να καταργήσει επιβλαβές λογισμικό από τον υπολογιστή σας</translation>
 <translation id="4481530544597605423">Συσκευές στις οποίες διακόπηκε η σύζευξη</translation>
 <translation id="4482194545587547824">Η Google μπορεί να χρησιμοποιεί το ιστορικό περιήγησής σας για να εξατομικεύει την Αναζήτηση και άλλες υπηρεσίες Google</translation>
+<translation id="4493287891836751813">Γνωρίστε τον Βοηθό Google</translation>
 <translation id="4495419450179050807">Να μην γίνεται εμφάνιση σε αυτήν τη σελίδα</translation>
 <translation id="4499718683476608392">Ενεργοποίηση Αυτόματης συμπλήρωσης στοιχείων πιστωτικής κάρτας για τη συμπλήρωση φορμών με ένα μόνο κλικ</translation>
 <translation id="4500114933761911433">Η προσθήκη <ph name="PLUGIN_NAME" /> παρουσίασε σφάλμα</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Σίγαση καρτέλας</translation>
 <translation id="4742746985488890273">Καρφίτσωμα στο ράφι</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Μάθετε πώς μπορείτε να ενημερώνετε τις εφαρμογές<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Μηνύματα</translation>
 <translation id="4746971725921104503">Φαίνεται πως διαχειρίζεστε ήδη κάποιον χρήστη με αυτό το όνομα. Θέλατε να <ph name="LINK_START" />εισαγάγετε τον χρήστη <ph name="USER_DISPLAY_NAME" /> σε αυτήν τη συσκευή<ph name="LINK_END" />;</translation>
 <translation id="4748762018725435655">Απαιτείται επέκταση από το Chrome Web Store</translation>
 <translation id="4750394297954878236">Προτάσεις</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">Ενεργοποιημένη &amp;δυνατότητα δημιουργίας προφίλ</translation>
 <translation id="4823484602432206655">Ανάγνωση και αλλαγή των ρυθμίσεων χρήστη και συσκευής</translation>
 <translation id="4823651846660089135">Η συσκευή είναι μόνο για ανάγνωση</translation>
+<translation id="4823955295535347797">Μεταβείτε στον Βοηθό σας οποιαδήποτε στιγμή λέγοντας "OK Google" ενώ η οθόνη σας είναι ενεργή.</translation>
 <translation id="4828937774870308359">Αυστραλός</translation>
 <translation id="4829768588131278040">Ρύθμιση PIN</translation>
 <translation id="4830502475412647084">Εγκατάσταση ενημέρωσης λειτουργικού συστήματος</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Βοηθήστε τους τεχνικούς μας να ερευνήσουν και να διορθώσουν αυτό το σφάλμα. Παραθέστε με ακρίβεια τα βήματα που ακολουθήσατε, αν αυτό είναι δυνατόν. Όλες οι λεπτομέρειες είναι σημαντικές!</translation>
 <translation id="4876895919560854374">Κλείδωμα και ξεκλείδωμα της οθόνης</translation>
 <translation id="4877017884043316611">Σύζευξη με Chromebox</translation>
+<translation id="4879491255372875719">Αυτόματος (προεπιλογή)</translation>
 <translation id="4880214202172289027">Ρυθμιστικό έντασης ήχου</translation>
 <translation id="4880328057631981605">Όνομα σημείου πρόσβασης</translation>
 <translation id="4880520557730313061">Αυτόματη επιδιόρθωση</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">επάνω</translation>
 <translation id="5100114659116077956">Προκειμένου να εμφανιστούν οι τελευταίες λειτουργίες, θα πρέπει το Chromebox σας να ενημερωθεί.</translation>
 <translation id="5101042277149003567">Άνοιγμα όλων των σελιδοδεικτών</translation>
-<translation id="5104546332954397226">Χρήση του τηλεφώνου σας ως Κλειδιού ασφαλείας</translation>
 <translation id="5105855035535475848">Καρφίτσωμα καρτελών</translation>
 <translation id="5108967062857032718">Ρυθμίσεις - Κατάργηση εφαρμογών Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">Εκ νέου ά&amp;νοιγμα κλειστής καρτέλας</translation>
 <translation id="52912272896845572">Το ιδιωτικό κλειδί δεν είναι έγκυρο.</translation>
 <translation id="529175790091471945">Μορφοποίηση αυτής της συσκευής</translation>
-<translation id="5292195676005197571">Για να χρησιμοποιήσετε τα περισσότερα κλειδιά, απλώς πατήστε το κουμπί</translation>
 <translation id="5293170712604732402">Επαναφορά των ρυθμίσεων στις αρχικές προεπιλογές</translation>
 <translation id="5297082477358294722">Ο κωδικός πρόσβασης αποθηκεύτηκε. Δείτε και διαχειριστείτε τους αποθηκευμένους κωδικούς πρόσβασης στον <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Το θέμα δημιουργήθηκε από τον/την</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Συμφωνώ</translation>
 <translation id="532943162177641444">Πατήστε στην ειδοποίηση στο τηλέφωνο <ph name="PHONE_NAME" /> για να ρυθμίσετε το σημείο πρόσβασης Wi-Fi για κινητά που μπορεί να χρησιμοποιηθεί από αυτήν τη συσκευή.</translation>
 <translation id="5329858601952122676">&amp;Διαγραφή</translation>
+<translation id="5329945517224105597">Ο Βοηθός μπορεί να προσφέρει περισσότερες σχετικές προτάσεις και συγκεκριμένες ενέργειες για το περιεχόμενο της οθόνης σας. Μπορείτε να τροποποιήσετε αυτήν τη λειτουργία από τις ρυθμίσεις του Βοηθού.</translation>
 <translation id="5330145655348521461">Αυτά τα αρχεία άνοιξαν σε διαφορετικό προφίλ. Μεταφερθείτε στο προφίλ <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) για να τα δείτε.</translation>
 <translation id="5330512191124428349">Λήψη πληροφοριών</translation>
 <translation id="5331069282670671859">Δεν έχετε πιστοποιητικά σε αυτήν την κατηγορία</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Να επιτρέπεται στους ιστοτόπους να αναπαράγουν ήχο</translation>
 <translation id="5390284375844109566">Ευρετηριασμένη βάση δεδομένων</translation>
 <translation id="5390743329570580756">Αποστολή για</translation>
-<translation id="5392327114396848796">Χρήση ενσωματωμένου Κλειδιού ασφαλείας</translation>
 <translation id="5397794290049113714">Εσείς</translation>
 <translation id="5398572795982417028">Η αναφορά της σελίδας βρίσκεται εκτός ορίων, το όριο είναι <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Αποκλείστηκαν διαφημίσεις</translation>
@@ -3077,6 +3071,7 @@
    <ph name="LINE_BREAKS" />
    Κλείστε όλα τα αρχεία στο αρχείο ή τον εικονικό δίσκο και προσπαθήστε ξανά.</translation>
 <translation id="5687326903064479980">Ζώνη ώρας</translation>
+<translation id="568824803367507355">Ανίχνευση "Ok Google"</translation>
 <translation id="5689516760719285838">Τοποθεσία</translation>
 <translation id="56907980372820799">Σύνδεση δεδομένων</translation>
 <translation id="5691511426247308406">Οικογένεια</translation>
@@ -3174,7 +3169,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Εγγραφή κάμερας ή μικροφώνου</translation>
 <translation id="5835754902560991078">πάρα πολύ μικρή (0,6 δ.)</translation>
 <translation id="5838456317242088717">Τρέχουσα περίοδος λειτουργίας σε κατάσταση ανώνυμης περιήγησης</translation>
-<translation id="5842053879378944309">Χρήση του Κλειδιού ασφαλείας USB με την εφαρμογή <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Ενεργοποίηση Bluetooth</translation>
 <translation id="5843250171025351504">Η συσκευή σας δεν συμμορφώνεται πλέον με την ελάχιστη έκδοση εφαρμογής πελάτη που έχει οριστεί από τον διαχειριστή σας. Πραγματοποιήστε ενημέρωση για να συνδεθείτε.</translation>
 <translation id="5846929185714966548">Καρτέλα 4</translation>
@@ -3492,7 +3486,6 @@
 <translation id="6317318380444133405">Δεν υποστηρίζεται πλέον</translation>
 <translation id="6317369057005134371">Αναμονή για το παράθυρο της εφαρμογής…</translation>
 <translation id="6318407754858604988">Η λήψη ξεκίνησε</translation>
-<translation id="6322653941595359182">Στείλτε και λάβετε μηνύματα κειμένου μέσω του Chromebook</translation>
 <translation id="6324916366299863871">Επεξεργασία συντόμευσης</translation>
 <translation id="6325191661371220117">Απενεργοποίηση αυτόματης εκκίνησης</translation>
 <translation id="6326175484149238433">Κατάργηση από το Chrome</translation>
@@ -3536,6 +3529,7 @@
 <translation id="6395423953133416962">Αποστολή <ph name="BEGIN_LINK1" />πληροφοριών συστήματος<ph name="END_LINK1" /> και <ph name="BEGIN_LINK2" />μετρήσεων<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Επιλογές συγχρονισμού και εξατομίκευσης</translation>
 <translation id="6397592254427394018">Άνοιγμα όλων των σελιδοδεικτών σε παράθυρο για &amp;ανώνυμη περιήγηση</translation>
+<translation id="639777613761517128">Προκειμένου να ανοίξετε αρχεία χρησιμοποιώντας την εφαρμογή $1, πρώτα αντιγράψτε τα στον φάκελο "Αρχεία Linux".</translation>
 <translation id="6398715114293939307">Κατάργηση Google Play Store</translation>
 <translation id="6398765197997659313">Έξοδος από πλήρη οθόνη</translation>
 <translation id="6399774419735315745">Κατάσκοπος</translation>
@@ -3561,7 +3555,6 @@
 <translation id="642282551015776456">Αυτό το όνομα δεν μπορεί να χρησιμοποιηθεί ως όνομα αρχείου ή φακέλου</translation>
 <translation id="642469772702851743">Αυτή η συσκευή (σειριακός αριθμός: <ph name="SERIAL_NUMBER" />) κλειδώθηκε από τον κάτοχο.</translation>
 <translation id="6426200009596957090">Άνοιγμα ρυθμίσεων ChromeVox</translation>
-<translation id="6427415464407526111">Επιλέξτε το Κλειδί ασφαλείας σας</translation>
 <translation id="6429384232893414837">Σφάλμα ενημέρωσης</translation>
 <translation id="6430814529589430811">ASCII με κωδικοποίηση Base64, πιστοποιητικό</translation>
 <translation id="6431217872648827691">Όλα τα δεδομένα κρυπτογραφήθηκαν με τον κωδικό πρόσβασής σας Google στις
@@ -3719,7 +3712,6 @@
 <translation id="6655190889273724601">Λειτουργία για προγραμματιστές</translation>
 <translation id="6655458902729017087">Απόκρυψη λογαριασμών</translation>
 <translation id="6657585470893396449">Κωδικός πρόσβασης</translation>
-<translation id="6658023813581644008">Για να ρυθμίσετε το Smart Lock για σύνδεση, εισαγάγετε τον κωδικό πρόσβασής σας</translation>
 <translation id="6659213950629089752">Έγινε εστίαση σε αυτήν τη σελίδα από την επέκταση "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Καρτέλα</translation>
 <translation id="6664237456442406323">Δυστυχώς, ο υπολογιστής σας έχει διαμορφωθεί με ένα εσφαλμένο αναγνωριστικό υλικού. Αυτό παρεμποδίζει την ενημέρωση του Chrome OS με τις πιο πρόσφατες επιδιορθώσεις ασφαλείας και ο υπολογιστής σας <ph name="BEGIN_BOLD" />ενδέχεται να είναι ευάλωτος σε κακόβουλες επιθέσεις<ph name="END_BOLD" />.</translation>
@@ -3855,7 +3847,6 @@
 <translation id="6885771755599377173">Προεπισκόπηση πληροφοριών συστήματος</translation>
 <translation id="6886871292305414135">Άνοιγμα συνδέσμου σε νέα καρτέ&amp;λα</translation>
 <translation id="6892812721183419409">Άνοιγμα συνδέσμου ως <ph name="USER" /></translation>
-<translation id="6896398788631624004">Συνδέστε το Κλειδί ασφαλείας σας και ενεργοποιήστε το</translation>
 <translation id="6896758677409633944">Αντιγραφή</translation>
 <translation id="6898440773573063262">Είναι πλέον δυνατή η διαμόρφωση της αυτόματης εκκίνησης των εφαρμογών kiosk σε αυτήν τη συσκευή.</translation>
 <translation id="6898699227549475383">Οργάνωση (O)</translation>
@@ -3874,6 +3865,7 @@
 <translation id="6915804003454593391">Χρήστης</translation>
 <translation id="6916590542764765824">Διαχείριση επεκτάσεων</translation>
 <translation id="6920989436227028121">Άνοιγμα ως κανονικής καρτέλας</translation>
+<translation id="6921709132208495314">Διακοπή χρήσης δεδομένων σε αυτήν τη σελίδα</translation>
 <translation id="6922128026973287222">Εξοικονομήστε δεδομένα και περιηγηθείτε πιο γρήγορα με την Εξοικονόμηση δεδομένων Google. Κάντε κλικ για να μάθετε περισσότερα.</translation>
 <translation id="6923132443355966645">Κύλιση/κλικ</translation>
 <translation id="6930242544192836755">Διάρκεια</translation>
@@ -3896,6 +3888,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Θύρα</translation>
 <translation id="6965978654500191972">Συσκευή</translation>
+<translation id="6968288415730398122">Εισαγάγετε τον κωδικό πρόσβασής σας για να διαμορφώσετε το κλείδωμα της οθόνης</translation>
 <translation id="6970480684834282392">Τύπος εκκίνησης</translation>
 <translation id="6970856801391541997">Εκτύπωση συγκεκριμένων σελίδων</translation>
 <translation id="6972180789171089114">Ήχος/Βίντεο</translation>
@@ -3906,6 +3899,7 @@
 <translation id="6978121630131642226">Μηχανές αναζήτησης</translation>
 <translation id="6978611942794658017">Αυτό το αρχείο έχει σχεδιαστεί για έναν υπολογιστή ο οποίος χρησιμοποιεί λογισμικό Windows. Δεν είναι συμβατό με τη συσκευή σας η οποία χρησιμοποιεί Chrome OS. Αναζήτηστε μια κατάλληλη εφαρμογή αντικατάστασης στο Chrome Web Store.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Σίγαση (προεπιλογή)</translation>
 <translation id="6979737339423435258">Από την αρχή</translation>
 <translation id="6980462514016882061">Η Google μπορεί να χρησιμοποιεί το ιστορικό περιήγησής σας για την εξατομίκευση της Αναζήτησης, των διαφημίσεων και άλλων υπηρεσιών Google</translation>
 <translation id="6981982820502123353">Προσβασιμότητα</translation>
@@ -4054,6 +4048,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Πρόκειται για γενικές πληροφορίες σχετικά με τη συσκευή σας και τον τρόπο με τον οποίο τη χρησιμοποιείτε (όπως είναι το επίπεδο της μπαταρίας, η χρήση των εφαρμογών και η συνδεσιμότητα δικτύου). Τα δεδομένα θα χρησιμοποιούνται για τη βελτίωση των προϊόντων και των υπηρεσιών της Google για όλους. Επιπλέον, ορισμένες συγκεντρωτικές πληροφορίες θα βοηθήσουν τους συνεργάτες μας, όπως τους προγραμματιστές Android, να βελτιώσουν τις εφαρμογές και τα προϊόντα τους.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Η απενεργοποίηση αυτής της λειτουργίας δεν επηρεάζει τη δυνατότητα της συσκευής να στέλνει τις απαραίτητες πληροφορίες για βασικές υπηρεσίες, όπως είναι οι ενημερώσεις συστήματος και η ασφάλεια.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Μπορείτε να ελέγχετε αυτήν τη λειτουργία από το μενού Ρυθμίσεις &gt; Google. Επιλέξτε Χρήση και διαγνωστικά από το μενού.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Εντοπίσαμε <ph name="NUMBER_OF_APPS" /> εφαρμογές από τον λογαριασμό σας, η χρήση των οποίων δεν είναι δυνατή σε αυτήν τη συσκευή.</translation>
 <translation id="7199158086730159431">Λάβετε β&amp;οήθεια</translation>
 <translation id="7200083590239651963">Επιλογή διαμόρφωσης</translation>
 <translation id="720110658997053098">Μόνιμη διατήρηση της παρούσας συσκευής σε λειτουργία Kiosk</translation>
@@ -4074,7 +4069,6 @@
 <translation id="7228523857728654909">Κλείδωμα οθόνης και σύνδεση</translation>
 <translation id="7229570126336867161">Απαιτείται EVDO</translation>
 <translation id="7230787553283372882">Προσαρμόστε το μέγεθος του κειμένου σας</translation>
-<translation id="7231589788477569369">Απολαύστε την πλήρη εμπειρία του Βοηθού με αυτές τις ρυθμίσεις</translation>
 <translation id="7232750842195536390">Η μετονομασία απέτυχε</translation>
 <translation id="7234406375359457793">Σφάλμα κατά την προσάρτηση του συστήματος κοινοποίησης. Το καθορισμένο σύστημα κοινοποίησης δεν υποστηρίζεται.</translation>
 <translation id="7238585580608191973">Αποτύπωμα SHA-256</translation>
@@ -4084,7 +4078,6 @@
 <translation id="7243632151880336635">Διαγραφή και αποσύνδεση</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (βέλτιστη)</translation>
 <translation id="7246339268451149667">Θέλετε να ενεργοποιήσετε το ξεκλείδωμα με δακτυλικό αποτύπωμα;</translation>
-<translation id="7246489301073081944">Κρατήστε πατημένα τα πλήκτρα |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| για έξοδο</translation>
 <translation id="7246947237293279874">Διακομιστής μεσολάβησης FTP</translation>
 <translation id="725109152065019550">Λυπούμαστε, ο διαχειριστής σας έχει απενεργοποιήσει τον εξωτερικό χώρο αποθήκευσης στον λογαριασμό σας.</translation>
 <translation id="7253521419891527137">&amp;Μάθετε περισσότερα</translation>
@@ -4237,7 +4230,6 @@
 <translation id="7489605380874780575">Έλεγχος καταλληλότητας</translation>
 <translation id="749028671485790643">Άτομο <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Διεύθυνση MAC</translation>
-<translation id="7490950320178383728">Χρήση του Κλειδιού ασφαλείας σας με Bluetooth</translation>
 <translation id="7491962110804786152">καρτέλα</translation>
 <translation id="7493386493263658176">Η επέκταση <ph name="EXTENSION_NAME" /> μπορεί να συλλέγει όλο το κείμενο που πληκτρολογείτε, συμπεριλαμβανομένων προσωπικών δεδομένων, όπως κωδικών πρόσβασης και αριθμών πιστωτικών καρτών. Θέλετε να χρησιμοποιήσετε αυτήν την επέκταση;</translation>
 <translation id="7494065396242762445">Άνοιγμα Ρυθμίσεων Windows</translation>
@@ -4487,7 +4479,6 @@
 <translation id="7850851215703745691">Αυτά τα αρχεία του Drive δεν έχουν κοινοποιηθεί ακόμα</translation>
 <translation id="7851457902707056880">Η σύνδεση έχει περιοριστεί μόνο στο λογαριασμό κατόχου. Κάντε επανεκκίνηση και συνδεθείτε με το λογαριασμό κατόχου. Ο υπολογιστής θα κάνει αυτόματη επανεκκίνηση σε 30 δευτερόλεπτα.</translation>
 <translation id="7851716364080026749">Να αποκλείεται πάντα η πρόσβαση στην κάμερα και στο μικρόφωνο</translation>
-<translation id="7851816139220202929">Χρήση του Κλειδιού ασφαλείας σας με NFC</translation>
 <translation id="7853747251428735">Περισσότερα Ε&amp;ργαλεία</translation>
 <translation id="7856006446339184955">Αποστολή δεδομένων συστήματος. Αυτή η συσκευή στέλνει αυτήν τη στιγμή αυτόματα διαγνωστικά δεδομένα και δεδομένα χρήσης της συσκευής και της εφαρμογής στην Google. Αυτή η <ph name="BEGIN_LINK1" />ρύθμιση<ph name="END_LINK1" /> επιβάλλεται από τον κάτοχο. Εάν έχετε ενεργοποιήσει την επιπλέον Δραστηριότητα ιστού και εφαρμογών, αυτές οι πληροφορίες θα αποθηκεύονται στον λογαριασμό σας, έτσι ώστε να μπορείτε να τις διαχειριστείτε στην ενότητα "Η δραστηριότητά μου". <ph name="BEGIN_LINK2" />Μάθετε περισσότερα<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Προσθήκη εξαίρεσης</translation>
@@ -4570,6 +4561,7 @@
 <translation id="7973962044839454485">Αποτυχία ελέγχου ταυτότητας PPP λόγω εσφαλμένου ονόματος χρήστη ή κωδικού πρόσβασης</translation>
 <translation id="7974566588408714340">Επανάληψη προσπάθειας με χρήση <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Υπερσάρωση</translation>
+<translation id="79766959863778284">Υπηρεσία απομονωμένης συσκευής XR</translation>
 <translation id="7977551819349545646">Ενημέρωση του Chromebox…</translation>
 <translation id="7978412674231730200">Ιδιωτικό κλειδί</translation>
 <translation id="7978450511781612192">Με αυτήν την ενέργεια, θα αποσυνδεθείτε από τους Λογαριασμούς σας Google. Οι σελιδοδείκτες, το ιστορικό, οι κωδικοί πρόσβασης και άλλες ρυθμίσεις δεν θα συγχρονίζονται πλέον.</translation>
@@ -4620,7 +4612,6 @@
 <translation id="8030656706657716245">Προσθήκη εκτυπωτή</translation>
 <translation id="8032244173881942855">Δεν είναι δυνατή η μετάδοση της καρτέλας.</translation>
 <translation id="8033827949643255796">επιλεγμένο</translation>
-<translation id="8033958968890501070">Λήξη ορίου χρόνου</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Άνοιγμα όλων σε παράθυρο για &amp;ανώνυμη περιήγηση}=1{Άνοιγμα σε παράθυρο για &amp;ανώνυμη περιήγηση}other{Άνοιγμα όλων (#) σε παράθυρο για &amp;ανώνυμη περιήγηση}}</translation>
 <translation id="8037117027592400564">Ανάγνωση όλου του κειμένου που εκφωνείται με χρήση ομιλίας σύνθεσης</translation>
 <translation id="8037357227543935929">Να γίνεται ερώτηση (προεπιλογή)</translation>
@@ -4793,6 +4784,7 @@
 <translation id="8320459152843401447">Ολόκληρη η οθόνη σας</translation>
 <translation id="8322814362483282060">Αυτή η σελίδα δεν έχει πρόσβαση στο μικρόφωνό σας.</translation>
 <translation id="8326478304147373412">PKCS #7, αλυσίδα πιστοποιητικού</translation>
+<translation id="8327039559959785305">Σφάλμα τοποθέτησης αρχείων Linux. Δοκιμάστε ξανά.</translation>
 <translation id="8329978297633540474">Απλό κείμενο</translation>
 <translation id="8335587457941836791">Ξεκαρφίτσωμα από το ράφι</translation>
 <translation id="8336153091935557858">Χθες <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4843,7 +4835,6 @@
 <translation id="8425213833346101688">Αλλαγή</translation>
 <translation id="8425492902634685834">Καρφίτσωμα στη γραμμή εργασιών</translation>
 <translation id="8425755597197517046">Επικό&amp;λληση και αναζήτηση</translation>
-<translation id="8426117172745886547">Προειδοποίηση πριν από την έξοδο (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Γίνεται ενεργοποίηση</translation>
 <translation id="8427292751741042100">ενσωματωμένο σε οποιονδήποτε κεντρικό υπολογιστή</translation>
 <translation id="8428213095426709021">Ρυθμίσεις</translation>
@@ -4931,7 +4922,6 @@
 <translation id="8551388862522347954">Άδειες</translation>
 <translation id="8553342806078037065">Διαχείριση άλλων ατόμων</translation>
 <translation id="8554899698005018844">Καμία γλώσσα</translation>
-<translation id="8557347704037207368">Να λαμβάνετε ειδοποιήσεις από τα Μηνύματα ιστού Android</translation>
 <translation id="855773602626431402">Παρεμποδίστηκε η εκτέλεση μιας προσθήκης εκτός περιβάλλοντος δοκιμών σε αυτήν τη σελίδα.</translation>
 <translation id="8557930019681227453">Μανιφέστο</translation>
 <translation id="8559694214572302298">Εργαλείο αποκωδικοποίησης εικόνων</translation>
@@ -5044,6 +5034,7 @@
 <translation id="8714154114375107944">Τέλος υποστήριξης</translation>
 <translation id="8714838604780058252">Γραφικά φόντου</translation>
 <translation id="8715480913140015283">Η καρτέλα "Ιστορικό" χρησιμοποιεί την κάμερά σας</translation>
+<translation id="8716931980467311658">Να διαγραφούν όλες οι εφαρμογές και τα δεδομένα Linux που περιέχονται στον φάκελο αρχεία Linux από αυτήν τη συσκευή <ph name="DEVICE_TYPE" />;</translation>
 <translation id="8719653885894320876">Η λήψη της προσθήκης <ph name="PLUGIN_NAME" /> απέτυχε</translation>
 <translation id="8723829621484579639">Υποπλαίσια ανώνυμης περιήγησης για: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Εμφάνιση στο φάκελο</translation>
@@ -5205,7 +5196,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Παρουσίασε σφάλμα</translation>
 <translation id="8983677657449185470">Συμβάλλετε στη βελτίωση της Ασφαλούς περιήγησης</translation>
 <translation id="8984654317541110628">URL κοινής χρήσης αρχείου</translation>
-<translation id="8984872292925913496">Βρείτε τον 6ψήφιο αριθμό PIN που βρίσκεται στο πίσω μέρος του κλειδιού σας</translation>
 <translation id="8986362086234534611">Διαγραφή από τη μνήμη</translation>
 <translation id="8986494364107987395">Αυτόματη αποστολή στατιστικών στοιχείων χρήσης και αναφορών σφαλμάτων στην Google</translation>
 <translation id="8987927404178983737">Μήνας</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 0854d02..8a54154d 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Highlight the object with keyboard focus when it changes</translation>
 <translation id="1173894706177603556">Rename</translation>
 <translation id="1174073918202301297">Shortcut added</translation>
-<translation id="1174808551768282258">Unlock your Chromebook with your phone. <ph name="LINK_BEGIN" />Find out more.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Print...</translation>
 <translation id="117624967391683467">Copying <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google may use your browsing history to personalise Search, ads and other Google services. You can change this at anytime at myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pause</translation>
 <translation id="1181037720776840403">Remove</translation>
 <translation id="1183237619868651138">Can't install <ph name="EXTERNAL_CRX_FILE" /> in local cache.</translation>
-<translation id="1183378459020939734">Ready to pair your security key?</translation>
 <translation id="1185924365081634987">You may also try to <ph name="GUEST_SIGNIN_LINK_START" />browse as guest<ph name="GUEST_SIGNIN_LINK_END" /> to fix this network error.</translation>
 <translation id="1186771945450942097">Remove harmful software</translation>
 <translation id="1187722533808055681">Idle wake ups</translation>
@@ -544,7 +542,6 @@
 <translation id="1782530111891678861">Change touch HUD mode</translation>
 <translation id="1784849162047402014">Device is low on disk space</translation>
 <translation id="1786636458339910689">Team Drives</translation>
-<translation id="1792161662640298233">Verifying your security key</translation>
 <translation id="1792619191750875668">Extended display</translation>
 <translation id="1794791083288629568">Send feedback to help us fix this issue.</translation>
 <translation id="1795214765651529549">Use Classic</translation>
@@ -627,7 +624,6 @@
 <translation id="1910721550319506122">Welcome!</translation>
 <translation id="1914326953223720820">Unzip Service</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">Depending on your account settings, your Assistant experience may be limited to things like web results, jokes and local info.</translation>
 <translation id="1916502483199172559">Default red avatar</translation>
 <translation id="1918141783557917887">&amp;Smaller</translation>
 <translation id="1919345977826869612">Ads</translation>
@@ -882,7 +878,6 @@
 <translation id="2307462900900812319">Configure network</translation>
 <translation id="230927227160767054">This page wants to install a service handler.</translation>
 <translation id="2309620859903500144">This site has been blocked from accessing your motion or light sensors.</translation>
-<translation id="2311075084924370935">To help you with your calendar, reminders, flights and more, your Assistant needs the Web &amp; App Activity, Device Information, Voice &amp; Audio Activity settings.</translation>
 <translation id="2315414688463285945">Error configuring Linux files. Please try again.</translation>
 <translation id="2315821125498993513">Couldn't connect to phone. <ph name="LINK_BEGIN" />Find out more.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">No, thank you</translation>
@@ -890,7 +885,6 @@
 <translation id="2318143611928805047">Paper size</translation>
 <translation id="2318817390901984578">To use Android apps, charge &amp; update your <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Current incognito session (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Use your security key with <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Headers and footers</translation>
 <translation id="2325650632570794183">This file type is not supported. Please visit the Chrome Web Store to find an app that can open this type of file.</translation>
 <translation id="2326931316514688470">&amp;Reload app</translation>
@@ -924,7 +918,6 @@
 <translation id="2367199180085172140">Add File Share</translation>
 <translation id="2367972762794486313">Show apps</translation>
 <translation id="2369536625682139252">All data stored by <ph name="SITE" /> will be deleted, except for cookies.</translation>
-<translation id="237058345584060620">Pair your key to this device so that you can use it to sign into your account</translation>
 <translation id="2371076942591664043">Open when &amp;done</translation>
 <translation id="2377319039870049694">Switch to list view</translation>
 <translation id="2377667304966270281">Hard Faults</translation>
@@ -991,7 +984,6 @@
 <translation id="248861575772995840">Can’t find your phone. Make sure that your <ph name="DEVICE_TYPE" />'s Bluetooth is turned on. &lt;a&gt;Learn more&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Add &amp;Folder...</translation>
 <translation id="249113932447298600">Sorry, the device <ph name="DEVICE_LABEL" /> is not supported at this time.</translation>
-<translation id="2492040222276243256">Press and hold the button on your security key for at least 5 seconds</translation>
 <translation id="2493021387995458222">Select "word at a time"</translation>
 <translation id="249303669840926644">Could not complete registration</translation>
 <translation id="2495777824269688114">Discover more features or get answers. Select '?' for help.</translation>
@@ -1096,7 +1088,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> is using <ph name="USAGE" /> MB of disk space.</translation>
 <translation id="2633212996805280240">Remove "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> couldn't complete installation, but will continue to run from its disk image.</translation>
-<translation id="2633326789677284179">Find the name printed on the back of your key</translation>
 <translation id="2635276683026132559">Signing</translation>
 <translation id="2636625531157955190">Chrome cannot access the image.</translation>
 <translation id="2638087589890736295">Passphrase required to start sync</translation>
@@ -1264,7 +1255,6 @@
 <translation id="287286579981869940">Add <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">To get your passwords on all your devices, sign in to Chrome.</translation>
 <translation id="2875698561019555027">(Chrome error pages)</translation>
-<translation id="2876441201733326392">Use USB Security Key</translation>
 <translation id="288042212351694283">Access your Universal 2nd Factor devices</translation>
 <translation id="2881966438216424900">Last accessed:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> will restart and reset momentarily</translation>
@@ -1332,7 +1322,6 @@
 <translation id="2982970937345031">Report anonymously</translation>
 <translation id="2984337792991268709">Today <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">This page has been blocked from having full control of MIDI devices.</translation>
-<translation id="2988599644347283908">Note: The data that these settings control may be saved and used in any Google service where you are signed in to give you personalised experiences and useful ads. You can see your data, delete it and change your settings at account.google.com.</translation>
 <translation id="2989474696604907455">not attached</translation>
 <translation id="2989786307324390836">DER-encoded binary, single certificate</translation>
 <translation id="2993517869960930405">App Info</translation>
@@ -1385,7 +1374,6 @@
 <translation id="304826556400666995">Unmute Tabs</translation>
 <translation id="3053013834507634016">Certificate Key Usage</translation>
 <translation id="3057861065630527966">Backup your photos and videos</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Enable Select to Speak</translation>
 <translation id="3061707000357573562">Patch Service</translation>
 <translation id="3064410671692449875">Insufficient data</translation>
@@ -1414,7 +1402,6 @@
 <translation id="3090819949319990166">Can't copy external crx file to <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" paired</translation>
 <translation id="3101709781009526431">Date and time</translation>
-<translation id="3104900172193317662">Allow the use of your security key</translation>
 <translation id="310671807099593501">Site is using Bluetooth</translation>
 <translation id="3115128645424181617">Can’t find your phone. Make sure that it’s handy and Bluetooth is turned on.</translation>
 <translation id="3115147772012638511">Waiting for cache...</translation>
@@ -1498,7 +1485,6 @@
 <translation id="3251759466064201842">&lt;Not Part Of Certificate&gt;</translation>
 <translation id="3254434849914415189">Choose the default app for <ph name="FILE_TYPE" /> files:</translation>
 <translation id="3254516606912442756">Automatic time zone detection is disabled</translation>
-<translation id="3254772308201947812">Yes, I'm in</translation>
 <translation id="3264544094376351444">Sans-serif font</translation>
 <translation id="3264547943200567728">Failed to set up your Chromebox's network</translation>
 <translation id="3264582393905923483">Context</translation>
@@ -1821,7 +1807,6 @@
 <translation id="3735740477244556633">Sort by</translation>
 <translation id="3737274407993947948">Error installing Linux...</translation>
 <translation id="3737536731758327622">Your downloads appear here</translation>
-<translation id="3738671331307774213">Verifying your identity helps protect your private data</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Open <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> will now appear in the Admin Console</translation>
@@ -1930,7 +1915,6 @@
 <translation id="3873315167136380065">To turn this on, <ph name="BEGIN_LINK" />reset sync<ph name="END_LINK" /> to remove your sync passphrase</translation>
 <translation id="3878840326289104869">Creating supervised user</translation>
 <translation id="3879748587602334249">Download manager</translation>
-<translation id="3880709822663530586">Your security key only works when your device's Bluetooth is on</translation>
 <translation id="3888550877729210209">Taking notes with <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Add OpenVPN/L2TP...</translation>
 <translation id="3893536212201235195">Read and change your accessibility settings</translation>
@@ -2076,6 +2060,7 @@
 <translation id="4096824249111507322">Secure module is being prepared, please wait (this may take a few minutes)...</translation>
 <translation id="4099060993766194518">Restore default search engine?</translation>
 <translation id="4100733287846229632">Device space critically low</translation>
+<translation id="4103091233824664032">Enter your password to configure screen lock and sign-in</translation>
 <translation id="4104163789986725820">E&amp;xport...</translation>
 <translation id="4105563239298244027">Get 1 TB free with Google Drive</translation>
 <translation id="4107048419833779140">Identify and eject storage devices</translation>
@@ -2096,7 +2081,6 @@
 <translation id="4136203100490971508">Night Light will turn off automatically at sunrise</translation>
 <translation id="4138267921960073861">Show usernames and photos on the sign-in screen</translation>
 <translation id="4144218403971135344">Get better quality video and save battery life. Video will play only on your Cast-enabled screen.</translation>
-<translation id="414599683948988413">Use your Security Key with USB</translation>
 <translation id="4146026355784316281">Always Open With System Viewer</translation>
 <translation id="4146785383423576110">Reset and clean up</translation>
 <translation id="4147897805161313378">Google Photos</translation>
@@ -2441,6 +2425,7 @@
 <translation id="474217410105706308">Mute Tab</translation>
 <translation id="4742746985488890273">Pin to Shelf</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Find out how to update applications<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Messages</translation>
 <translation id="4746971725921104503">Looks like you're already managing a user by that name. Did you want to <ph name="LINK_START" />import <ph name="USER_DISPLAY_NAME" /> to this device<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Requires extension from the Chrome Web Store</translation>
 <translation id="4750394297954878236">Suggestions</translation>
@@ -2677,7 +2662,6 @@
 <translation id="5099354524039520280">up</translation>
 <translation id="5100114659116077956">In order to bring you the latest features, your Chromebox needs to update.</translation>
 <translation id="5101042277149003567">Open all bookmarks</translation>
-<translation id="5104546332954397226">Use your phone as a Security Key</translation>
 <translation id="5105855035535475848">Pin tabs</translation>
 <translation id="5108967062857032718">Settings – Remove Android apps</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2808,7 +2792,6 @@
 <translation id="5288678174502918605">R&amp;eopen Closed Tab</translation>
 <translation id="52912272896845572">Private key file is invalid.</translation>
 <translation id="529175790091471945">Format this device</translation>
-<translation id="5292195676005197571">To use most keys, simply press the button</translation>
 <translation id="5293170712604732402">Restore settings to their original defaults</translation>
 <translation id="5297082477358294722">Password saved. View and manage saved passwords in your <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Theme created by</translation>
@@ -2879,7 +2862,6 @@
 <translation id="5390100381392048184">Allow sites to play sound</translation>
 <translation id="5390284375844109566">Indexed Database</translation>
 <translation id="5390743329570580756">Send for</translation>
-<translation id="5392327114396848796">Use a built-in Security Key</translation>
 <translation id="5397794290049113714">You</translation>
 <translation id="5398572795982417028">Out of bounds page reference, limit is <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Ads blocked</translation>
@@ -3185,7 +3167,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – Camera or microphone recording</translation>
 <translation id="5835754902560991078">extremely short (0.6s)</translation>
 <translation id="5838456317242088717">Current incognito session</translation>
-<translation id="5842053879378944309">Use USB Security Key with <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Bluetooth enable</translation>
 <translation id="5843250171025351504">Your device is no longer compliant with the minimum client version specified by your admin. Please update to log in.</translation>
 <translation id="5846929185714966548">Tab 4</translation>
@@ -3503,7 +3484,6 @@
 <translation id="6317318380444133405">No longer supported.</translation>
 <translation id="6317369057005134371">Waiting for application window...</translation>
 <translation id="6318407754858604988">Download started</translation>
-<translation id="6322653941595359182">Send and receive text messages from your Chromebook</translation>
 <translation id="6324916366299863871">Edit shortcut</translation>
 <translation id="6325191661371220117">Disable auto-launch</translation>
 <translation id="6326175484149238433">Remove from Chrome</translation>
@@ -3573,7 +3553,6 @@
 <translation id="642282551015776456">This name may not be used as a file or folder name</translation>
 <translation id="642469772702851743">This device (SN: <ph name="SERIAL_NUMBER" />) was locked by the owner.</translation>
 <translation id="6426200009596957090">Open ChromeVox settings</translation>
-<translation id="6427415464407526111">Select your security key</translation>
 <translation id="6429384232893414837">Update error</translation>
 <translation id="6430814529589430811">Base64-encoded ASCII, single certificate</translation>
 <translation id="6431217872648827691">All data was encrypted with your Google password as of
@@ -3731,7 +3710,6 @@
 <translation id="6655190889273724601">Developer mode</translation>
 <translation id="6655458902729017087">Hide Accounts</translation>
 <translation id="6657585470893396449">Password</translation>
-<translation id="6658023813581644008">To set up Smart Lock for sign-in, enter your password</translation>
 <translation id="6659213950629089752">This page was zoomed by the "<ph name="NAME" />" extension</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Unfortunately, your computer is configured with a malformed hardware ID. This prevents Chrome OS from updating with the latest security fixes and your computer <ph name="BEGIN_BOLD" />may be vulnerable to malicious attacks<ph name="END_BOLD" />.</translation>
@@ -3867,7 +3845,6 @@
 <translation id="6885771755599377173">System information preview</translation>
 <translation id="6886871292305414135">Open link in new &amp;tab</translation>
 <translation id="6892812721183419409">Open Link as <ph name="USER" /></translation>
-<translation id="6896398788631624004">Plug in your Security Key and activate it</translation>
 <translation id="6896758677409633944">Copy</translation>
 <translation id="6898440773573063262">Kiosk applications can now be configured to auto-launch on this device.</translation>
 <translation id="6898699227549475383">Organisation (O)</translation>
@@ -3909,6 +3886,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Device</translation>
+<translation id="6968288415730398122">Enter your password to configure screen lock</translation>
 <translation id="6970480684834282392">Startup type</translation>
 <translation id="6970856801391541997">Print Specific Pages</translation>
 <translation id="6972180789171089114">Audio/Video</translation>
@@ -4089,7 +4067,6 @@
 <translation id="7228523857728654909">Screen lock and sign-in</translation>
 <translation id="7229570126336867161">Need EVDO</translation>
 <translation id="7230787553283372882">Customise your text size</translation>
-<translation id="7231589788477569369">Get the full Assistant experience with these settings</translation>
 <translation id="7232750842195536390">Renaming failed</translation>
 <translation id="7234406375359457793">Error mounting share. The specified share is not supported.</translation>
 <translation id="7238585580608191973">SHA-256 Fingerprint</translation>
@@ -4099,7 +4076,6 @@
 <translation id="7243632151880336635">Clear and Sign Out</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Best)</translation>
 <translation id="7246339268451149667">Enable Fingerprint unlock?</translation>
-<translation id="7246489301073081944">Hold |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| to exit</translation>
 <translation id="7246947237293279874">FTP Proxy</translation>
 <translation id="725109152065019550">Sorry, your administrator has disabled external storage on your account.</translation>
 <translation id="7253521419891527137">&amp;Learn More</translation>
@@ -4252,7 +4228,6 @@
 <translation id="7489605380874780575">Check eligibility</translation>
 <translation id="749028671485790643">Person <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC address</translation>
-<translation id="7490950320178383728">Use your Security Key with Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> extension may collect all the text you type, including personal data like passwords and credit card numbers. Do you want to use this extension?</translation>
 <translation id="7494065396242762445">Open Windows Settings</translation>
@@ -4502,7 +4477,6 @@
 <translation id="7850851215703745691">These Drive files aren't shared yet</translation>
 <translation id="7851457902707056880">Sign-in has been restricted to the owner account only. Please reboot and sign in with the owner account. The machine will auto reboot in 30 seconds.</translation>
 <translation id="7851716364080026749">Always block camera and microphone access</translation>
-<translation id="7851816139220202929">Use your Security Key with NFC</translation>
 <translation id="7853747251428735">More Too&amp;ls</translation>
 <translation id="7856006446339184955">Send system data. This device currently automatically sends diagnostic and device and app usage data to Google. This <ph name="BEGIN_LINK1" />setting<ph name="END_LINK1" /> is enforced by the owner. If you turned on additional Web &amp; App Activity, this information will be stored with your account so that you can manage it in My Activity. <ph name="BEGIN_LINK2" />Learn More<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Add exception</translation>
@@ -4636,7 +4610,6 @@
 <translation id="8030656706657716245">Add Printer</translation>
 <translation id="8032244173881942855">Unable to cast tab.</translation>
 <translation id="8033827949643255796">selected</translation>
-<translation id="8033958968890501070">Time out</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Open all in &amp;incognito window}=1{Open in &amp;incognito window}other{Open all (#) in &amp;incognito window}}</translation>
 <translation id="8037117027592400564">Read all text spoken using synthesised speech</translation>
 <translation id="8037357227543935929">Ask (default)</translation>
@@ -4860,7 +4833,6 @@
 <translation id="8425213833346101688">Change</translation>
 <translation id="8425492902634685834">Pin to task bar</translation>
 <translation id="8425755597197517046">Pa&amp;ste and Search</translation>
-<translation id="8426117172745886547">Warn before exiting (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Enabling</translation>
 <translation id="8427292751741042100">embedded on any host</translation>
 <translation id="8428213095426709021">Settings</translation>
@@ -4948,7 +4920,6 @@
 <translation id="8551388862522347954">Licences</translation>
 <translation id="8553342806078037065">Manage other people</translation>
 <translation id="8554899698005018844">No language</translation>
-<translation id="8557347704037207368">Send you notifications from Android Web Messages</translation>
 <translation id="855773602626431402">An unsandboxed plug-in was prevented from running on this page.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Image Decoder</translation>
@@ -5225,7 +5196,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – Crashed</translation>
 <translation id="8983677657449185470">Help improve Safe Browsing</translation>
 <translation id="8984654317541110628">File Share URL</translation>
-<translation id="8984872292925913496">Find the 6-digit PIN on the back of your key</translation>
 <translation id="8986362086234534611">Forget</translation>
 <translation id="8986494364107987395">Automatically send usage statistics and crash reports to Google</translation>
 <translation id="8987927404178983737">Month</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 15024123..68ef801 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Destacar el objeto con el enfoque del teclado cuando cambia</translation>
 <translation id="1173894706177603556">Cambiar nombre</translation>
 <translation id="1174073918202301297">Acceso directo agregado</translation>
-<translation id="1174808551768282258">Desbloquea tu Chromebook con el teléfono. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">Im&amp;primir...</translation>
 <translation id="117624967391683467">Copiando <ph name="FILE_NAME" />…</translation>
 <translation id="1177138678118607465">Es posible que Google use tu historial de navegación para personalizar Búsqueda, los anuncios y otros servicios de Google. Puedes cambiar esta configuración en cualquier momento en myaccount.google.com.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Detener</translation>
 <translation id="1181037720776840403">Eliminar</translation>
 <translation id="1183237619868651138">No se puede instalar <ph name="EXTERNAL_CRX_FILE" /> en la memoria caché local.</translation>
-<translation id="1183378459020939734">¿Estás listo para sincronizar la llave de seguridad?</translation>
 <translation id="1185924365081634987">También puedes intentar <ph name="GUEST_SIGNIN_LINK_START" />navegar como invitado<ph name="GUEST_SIGNIN_LINK_END" /> para solucionar este error de red.</translation>
 <translation id="1186771945450942097">Quitar software dañino</translation>
 <translation id="1187722533808055681">Reactivaciones</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">No se encontraron dispositivos Bluetooth</translation>
 <translation id="1306606229401759371">Cambiar la configuración</translation>
 <translation id="1307559529304613120">El sistema no pudo obtener un token de acceso a la API a largo plazo para este dispositivo.</translation>
+<translation id="1307931752636661898">No se pueden ver los archivos de Linux</translation>
 <translation id="1313405956111467313">Configuración automática de proxy</translation>
 <translation id="131364520783682672">Bloq Mayús</translation>
 <translation id="1313705515580255288">Los favoritos, el historial y demás parámetros de configuración se sincronizarán con tu cuenta de Google.</translation>
@@ -364,6 +363,7 @@
 <translation id="1530838837447122178">Abrir configuración del mouse y el panel táctil</translation>
 <translation id="1531004739673299060">Ventana de la app</translation>
 <translation id="15373452373711364">Cursor del mouse grande</translation>
+<translation id="1538729222189715449">Abriendo archivos de Linux…</translation>
 <translation id="1540605929960647700">Activar el modo de demostración</translation>
 <translation id="1543284117603151572">Importados desde Edge</translation>
 <translation id="1545177026077493356">Modo kiosco automático</translation>
@@ -539,7 +539,6 @@
 <translation id="1782530111891678861">Cambiar el modo HUD táctil</translation>
 <translation id="1784849162047402014">El dispositivo tiene poco espacio en el disco</translation>
 <translation id="1786636458339910689">Unidades de equipo</translation>
-<translation id="1792161662640298233">Verificando la llave de seguridad</translation>
 <translation id="1792619191750875668">Pantalla extendida</translation>
 <translation id="1794791083288629568">Enviar comentarios para ayudarnos a solucionar este problema</translation>
 <translation id="1795214765651529549">Usar el tema clásico</translation>
@@ -622,7 +621,6 @@
 <translation id="1910721550319506122">¡Bienvenido!</translation>
 <translation id="1914326953223720820">Servicio de descompresión</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Según la configuración de tu cuenta, es posible que el Asistente te ofrezca funciones limitadas, como resultados de la Web, información local y chistes.</translation>
 <translation id="1916502483199172559">Avatar rojo predeterminado</translation>
 <translation id="1918141783557917887">Meno&amp;r</translation>
 <translation id="1919345977826869612">Anuncios</translation>
@@ -791,6 +789,7 @@
 <translation id="2178098616815594724">El complemento <ph name="PEPPER_PLUGIN_NAME" /> del dominio <ph name="PEPPER_PLUGIN_DOMAIN" /> desea acceder a tu computadora</translation>
 <translation id="2178614541317717477">Compromiso de entidad de certificación</translation>
 <translation id="218070003709087997">Usa un número para indicar la cantidad de copias que deseas imprimir (1 a 999).</translation>
+<translation id="2184515124301515068">Permitir que Chrome elija cuándo los sitios pueden reproducir sonido (recomendado)</translation>
 <translation id="2187895286714876935">Error en el servidor de importación de certificado</translation>
 <translation id="2187906491731510095">Se actualizaron las extensiones</translation>
 <translation id="2188881192257509750">Abrir <ph name="APPLICATION" /></translation>
@@ -835,6 +834,7 @@
 <translation id="2241053333139545397">Leer y modificar tus datos en una serie de sitios web</translation>
 <translation id="2242687258748107519">Información del archivo</translation>
 <translation id="2243194103992005307">Para quitar apps, ve a Configuración &gt; Apps o a Administrador de aplicaciones. Luego, presiona la app que quieras desinstalar (es posible que debas deslizar el dedo hacia la derecha o la izquierda para encontrarla). A continuación, presiona Desinstalar o Inhabilitar.</translation>
+<translation id="224940702122312781">Esta página usará muchos datos.</translation>
 <translation id="2249605167705922988">p. ej. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Abrir con el lector del sistema</translation>
 <translation id="225163402930830576">Actualizar redes</translation>
@@ -875,14 +875,13 @@
 <translation id="2307462900900812319">Configurar red</translation>
 <translation id="230927227160767054">Esta página quiere instalar un controlador de servicios.</translation>
 <translation id="2309620859903500144">Este sitio no tiene permiso para acceder a los sensores de movimiento y luz.</translation>
-<translation id="2311075084924370935">Para ayudarte con tus calendarios, recordatorios, vuelos y mucho más, el Asistente debe acceder a las opciones de configuración "Actividad web y de aplicaciones", "Información del dispositivo" y "Actividad de voz y audio".</translation>
+<translation id="2315414688463285945">Se produjo un error al configurar los archivos de Linux. Vuelve a intentarlo.</translation>
 <translation id="2315821125498993513">No se pudo establecer conexión con el teléfono. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">No, gracias</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% listo</translation>
 <translation id="2318143611928805047">Tamaño del papel</translation>
 <translation id="2318817390901984578">Para usar las apps de Android, carga y actualiza tu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Sesión en modo incógnito actual (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Usar la llave de seguridad con <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Encabezados y pies de página</translation>
 <translation id="2325650632570794183">Este tipo de archivo no es compatible. Visita Chrome Web Store para buscar una aplicación que pueda abrir este tipo de archivo.</translation>
 <translation id="2326931316514688470">&amp;Volver a cargar la aplicación</translation>
@@ -916,7 +915,6 @@
 <translation id="2367199180085172140">Agregar uso compartido del archivo</translation>
 <translation id="2367972762794486313">Mostrar aplicaciones</translation>
 <translation id="2369536625682139252">Se borrarán todos los datos que almacenó <ph name="SITE" />, excepto las cookies.</translation>
-<translation id="237058345584060620">Sincroniza la llave con este dispositivo y podrás usarla para acceder a tu cuenta</translation>
 <translation id="2371076942591664043">Abrir al &amp;finalizar</translation>
 <translation id="2377319039870049694">Cambiar a la vista de lista</translation>
 <translation id="2377667304966270281">Fallos graves</translation>
@@ -983,7 +981,6 @@
 <translation id="248861575772995840">No se puede encontrar el teléfono. Asegúrate de que tu dispositivo <ph name="DEVICE_TYPE" /> tenga Bluetooth encendido. &lt;a&gt;Más información&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Agregar &amp;carpeta...</translation>
 <translation id="249113932447298600">Lo sentimos, el dispositivo <ph name="DEVICE_LABEL" /> no se admite en este momento.</translation>
-<translation id="2492040222276243256">Mantén presionado el botón de la llave de seguridad durante al menos 5 segundos</translation>
 <translation id="2493021387995458222">Selecciona "una palabra por vez"</translation>
 <translation id="249303669840926644">Error al completar el registro</translation>
 <translation id="2495777824269688114">Obtén respuestas o descubre más funciones. Selecciona "?" para obtener ayuda.</translation>
@@ -1053,6 +1050,7 @@
 <translation id="2580924999637585241">Total: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Larga</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (plataforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Esta pestaña está compartiendo tu pantalla.</translation>
 <translation id="2586657967955657006">Portapapeles</translation>
 <translation id="2586672484245266891">Ingresa una URL más corta</translation>
 <translation id="2587922270115112871">Al crear un usuario supervisado, no se crea una cuenta de Google,
@@ -1088,7 +1086,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> está utilizando <ph name="USAGE" /> MB de espacio en el disco.</translation>
 <translation id="2633212996805280240">¿Quieres eliminar "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> no pudo completar la instalación, pero se continuará ejecutando desde la imagen de disco.</translation>
-<translation id="2633326789677284179">Busca el nombre impreso en la parte posterior de la llave</translation>
 <translation id="2635276683026132559">Firmando</translation>
 <translation id="2636625531157955190">Chrome no puede acceder a la imagen.</translation>
 <translation id="2638087589890736295">Se requiere la frase de contraseña para iniciar la sincronización</translation>
@@ -1256,7 +1253,6 @@
 <translation id="287286579981869940">Agregar <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Para obtener tus contraseñas en todos los dispositivos, accede a Chrome.</translation>
 <translation id="2875698561019555027">(Páginas de error de Chrome)</translation>
-<translation id="2876441201733326392">Usar la llave de seguridad USB</translation>
 <translation id="288042212351694283">Accede a tus dispositivos U2F (Universal 2nd Factor).</translation>
 <translation id="2881966438216424900">Último acceso:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> se reiniciará y se restablecerá en un momento.</translation>
@@ -1324,7 +1320,6 @@
 <translation id="2982970937345031">Informar de forma anónima</translation>
 <translation id="2984337792991268709">Hoy a las <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Se bloqueó esta página para que no tenga el control total de los dispositivos MIDI.</translation>
-<translation id="2988599644347283908">Nota: Es posible que se guarden y usen los datos de estas opciones de configuración en cualquier servicio de Google al que hayas accedido para ofrecerte experiencias personalizadas y anuncios relevantes. Puedes ver y borrar la información, y cambiar estas opciones en account.google.com.</translation>
 <translation id="2989474696604907455">no conectado</translation>
 <translation id="2989786307324390836">Certificado binario único con codificación DER</translation>
 <translation id="2993517869960930405">Información de la aplicación</translation>
@@ -1377,7 +1372,6 @@
 <translation id="304826556400666995">Activar sonido de las pestañas</translation>
 <translation id="3053013834507634016">Uso de la clave del certificado</translation>
 <translation id="3057861065630527966">Crea una copia de seguridad de tus fotos y videos.</translation>
-<translation id="3059313675706898490">Mensajes Android</translation>
 <translation id="3060379269883947824">Habilitar Seleccionar para pronunciar</translation>
 <translation id="3061707000357573562">Aplicar parche al servicio</translation>
 <translation id="3064410671692449875">Datos insuficientes</translation>
@@ -1406,7 +1400,6 @@
 <translation id="3090819949319990166">No se puede copiar el archivo crx externo a <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" sincronizado</translation>
 <translation id="3101709781009526431">Fecha y hora</translation>
-<translation id="3104900172193317662">Permitir el uso de la llave de seguridad</translation>
 <translation id="310671807099593501">El sitio está usando la conexión Bluetooth</translation>
 <translation id="3115128645424181617">No se puede encontrar el teléfono. Asegúrate de que esté cerca y de que Bluetooth esté activado.</translation>
 <translation id="3115147772012638511">Esperando caché...</translation>
@@ -1490,7 +1483,6 @@
 <translation id="3251759466064201842">&lt;No forma parte de un certificado&gt;</translation>
 <translation id="3254434849914415189">Seleccionar la aplicación predeterminada para los archivos <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Se inhabilitó la detección automática de la zona horaria</translation>
-<translation id="3254772308201947812">Acepto</translation>
 <translation id="3264544094376351444">Fuente Sans-serif</translation>
 <translation id="3264547943200567728">Error al configurar la red de Chromebox</translation>
 <translation id="3264582393905923483">Contexto</translation>
@@ -1813,7 +1805,6 @@
 <translation id="3735740477244556633">Ordenar por</translation>
 <translation id="3737274407993947948">Se produjo un error al instalar Linux…</translation>
 <translation id="3737536731758327622">Tus descargas aparecen aquí</translation>
-<translation id="3738671331307774213">Para proteger tus datos privados, verifica tu identidad</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">¿Abrir <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> aparecerá ahora en la Consola del administrador.</translation>
@@ -1907,6 +1898,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Se pausó la sincronización</translation>
 <translation id="3860381078714302691">Bienvenido a Meet de Hangouts</translation>
+<translation id="3861241522664181545">Se pausó la página.</translation>
 <translation id="3862134173397075045">¡Bienvenido a la experiencia de transmisión en Chrome!</translation>
 <translation id="3862788408946266506">Se debe instalar la app con el atributo del manifiesto "kiosk_only" en el modo kiosco del Sistema operativo Chrome</translation>
 <translation id="3865414814144988605">Resolución</translation>
@@ -1921,7 +1913,6 @@
 <translation id="3873315167136380065">A fin de activar esta opción, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /> para quitar la frase de contraseña de sincronización</translation>
 <translation id="3878840326289104869">Creando usuario supervisado</translation>
 <translation id="3879748587602334249">Administrador de descargas</translation>
-<translation id="3880709822663530586">La llave de seguridad solo funciona cuando está activada la conexión Bluetooth de tu dispositivo</translation>
 <translation id="3888550877729210209">Tomar notas con <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Agregar OpenVPN/L2TP…</translation>
 <translation id="3893536212201235195">Leer y cambiar la configuración de accesibilidad</translation>
@@ -2067,6 +2058,7 @@
 <translation id="4096824249111507322">Se está preparando el módulo de seguridad. Espera (esta acción tardará algunos minutos)…</translation>
 <translation id="4099060993766194518">¿Deseas restaurar el motor de búsqueda predeterminado?</translation>
 <translation id="4100733287846229632">Hay muy poco espacio en el dispositivo</translation>
+<translation id="4103091233824664032">Ingresa tu contraseña para configurar el bloqueo de pantalla y acceder</translation>
 <translation id="4104163789986725820">E&amp;xportar...</translation>
 <translation id="4105563239298244027">Obtén 1 TB gratuito con Google Drive</translation>
 <translation id="4107048419833779140">Identificar y expulsar los dispositivos de almacenamiento</translation>
@@ -2087,7 +2079,6 @@
 <translation id="4136203100490971508">La Luz nocturna se desactivará automáticamente al amanecer</translation>
 <translation id="4138267921960073861">Mostrar nombres de usuarios y fotos en la pantalla de inicio</translation>
 <translation id="4144218403971135344">Obtén videos de mejor calidad y extiende la duración de la batería. El video solo se reproducirá en tu pantalla compatible con Cast.</translation>
-<translation id="414599683948988413">Usa tu llave de seguridad con USB</translation>
 <translation id="4146026355784316281">Abrir siempre con el visualizador del sistema</translation>
 <translation id="4146785383423576110">Restablecer y limpiar</translation>
 <translation id="4147897805161313378">Google Fotos</translation>
@@ -2222,6 +2213,7 @@
 <translation id="4394049700291259645">Inhabilitar</translation>
 <translation id="4400367121200150367">Aquí aparecerán los sitios que nunca guardan las contraseñas</translation>
 <translation id="4400632832271803360">Mantén presionada la tecla de Launcher para cambiar el comportamiento de las teclas en la fila superior</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">A&amp;yuda</translation>
 <translation id="4409697491990005945">Márgenes</translation>
 <translation id="4411578466613447185">Firmante del código</translation>
@@ -2270,6 +2262,7 @@
 <translation id="4480590691557335796">Chrome puede buscar software dañino en tu computadora y quitarlo</translation>
 <translation id="4481530544597605423">Dispositivos no sincronizados</translation>
 <translation id="4482194545587547824">Es posible que Google use tu historial de navegación para personalizar Búsqueda y otros servicios de Google</translation>
+<translation id="4493287891836751813">Conoce a tu Asistente de Google</translation>
 <translation id="4495419450179050807">No mostrar en esta página</translation>
 <translation id="4499718683476608392">Habilita Autocompletar datos de tarjetas de crédito para llenar formularios con un solo clic</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> se bloqueó</translation>
@@ -2430,6 +2423,7 @@
 <translation id="474217410105706308">Silenciar pestaña</translation>
 <translation id="4742746985488890273">Fijar en la biblioteca</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Obtener información sobre cómo actualizar las aplicaciones<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Mensajes</translation>
 <translation id="4746971725921104503">Parece que ese nombre ya pertenece a un usuario que administras. ¿Quieres <ph name="LINK_START" />importar a <ph name="USER_DISPLAY_NAME" /> a este dispositivo<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Requiere una extensión de Chrome Web Store</translation>
 <translation id="4750394297954878236">Sugerencias</translation>
@@ -2471,6 +2465,7 @@
 <translation id="4821935166599369261">&amp;Perfiles activados</translation>
 <translation id="4823484602432206655">Leer y cambiar la configuración del dispositivo y del usuario</translation>
 <translation id="4823651846660089135">El dispositivo es de solo lectura</translation>
+<translation id="4823955295535347797">Di "Ok Google" con la pantalla activada para acceder al Asistente en cualquier momento.</translation>
 <translation id="4828937774870308359">Australiano</translation>
 <translation id="4829768588131278040">Configurar PIN</translation>
 <translation id="4830502475412647084">Instalando la actualización del SO</translation>
@@ -2511,6 +2506,7 @@
 <translation id="4876273079589074638">¡Ayuda a que nuestros ingenieros investiguen y solucionen este fallo! Enumera los pasos exactos si es posible. No omitas ningún detalle.</translation>
 <translation id="4876895919560854374">Bloquear y desbloquear la pantalla</translation>
 <translation id="4877017884043316611">Sincronizar con la Chromebox</translation>
+<translation id="4879491255372875719">Automático (predeterminado)</translation>
 <translation id="4880214202172289027">Control deslizante del volumen</translation>
 <translation id="4880328057631981605">Nombre de punto de acceso</translation>
 <translation id="4880520557730313061">Autocorrección</translation>
@@ -2664,7 +2660,6 @@
 <translation id="5099354524039520280">arriba</translation>
 <translation id="5100114659116077956">La Chromebox tiene que actualizarse para poder ofrecerte las últimas funciones.</translation>
 <translation id="5101042277149003567">Abrir todos los favoritos</translation>
-<translation id="5104546332954397226">Usa tu teléfono como llave de seguridad</translation>
 <translation id="5105855035535475848">Marcar pestañas</translation>
 <translation id="5108967062857032718">Configuración - Quitar las apps de Android</translation>
 <translation id="5109044022078737958">Victoria</translation>
@@ -2795,7 +2790,6 @@
 <translation id="5288678174502918605">Volv&amp;er a abrir una pestaña cerrada</translation>
 <translation id="52912272896845572">Archivo de clave privada no válido</translation>
 <translation id="529175790091471945">Formatear este dispositivo</translation>
-<translation id="5292195676005197571">Para usar la mayoría de las llaves, solo debes presionar el botón</translation>
 <translation id="5293170712604732402">Permite restaurar la configuración a los valores predeterminados originales</translation>
 <translation id="5297082477358294722">Se guardó la contraseña. Puedes ver y administrar las contraseñas guardadas en tu <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Tema creado por</translation>
@@ -2821,6 +2815,7 @@
 <translation id="532776649628038357">Acepto</translation>
 <translation id="532943162177641444">Presiona la notificación en tu <ph name="PHONE_NAME" /> para configurar la zona móvil que puede usar este dispositivo.</translation>
 <translation id="5329858601952122676">&amp;Suprimir</translation>
+<translation id="5329945517224105597">Tu Asistente puede ofrecer sugerencias más relevantes y acciones específicas relacionadas con el contenido de tu pantalla. Puedes modificar esta opción en la configuración del Asistente.</translation>
 <translation id="5330145655348521461">Estos archivos están abiertos en otro escritorio. Ve a <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) para visualizarlos.</translation>
 <translation id="5330512191124428349">Obtener información</translation>
 <translation id="5331069282670671859">No tienes certificados en esta categoría</translation>
@@ -2865,7 +2860,6 @@
 <translation id="5390100381392048184">Permitir que los sitios reproduzcan sonido</translation>
 <translation id="5390284375844109566">Base de datos indexada</translation>
 <translation id="5390743329570580756">Enviar para</translation>
-<translation id="5392327114396848796">Usa una llave de seguridad incorporada</translation>
 <translation id="5397794290049113714">Tú</translation>
 <translation id="5398572795982417028">Referencia de página fuera de los límites; el valor máximo es <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Anuncios bloqueados</translation>
@@ -3073,6 +3067,7 @@
    <ph name="LINE_BREAKS" />
    Cierra todos los elementos en un archivo o disco virtual, y vuelve a intentarlo.</translation>
 <translation id="5687326903064479980">Zona horaria</translation>
+<translation id="568824803367507355">Detección de "Ok Google"</translation>
 <translation id="5689516760719285838">Ubicación</translation>
 <translation id="56907980372820799">Vincular datos</translation>
 <translation id="5691511426247308406">Familia</translation>
@@ -3170,7 +3165,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" />: La cámara o el micrófono están grabando</translation>
 <translation id="5835754902560991078">extremadamente corto (0.6 s)</translation>
 <translation id="5838456317242088717">Sesión en modo incógnito actual</translation>
-<translation id="5842053879378944309">Usar tu llave de seguridad USB con <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Activación de Bluetooth</translation>
 <translation id="5843250171025351504">Tu dispositivo ya no cumple con la versión mínima del cliente que especificó el administrador. Actualiza la versión para poder acceder.</translation>
 <translation id="5846929185714966548">Pestaña 4</translation>
@@ -3488,7 +3482,6 @@
 <translation id="6317318380444133405">Ya no es compatible.</translation>
 <translation id="6317369057005134371">Esperando ventana de la aplicación…</translation>
 <translation id="6318407754858604988">Comenzó la descarga</translation>
-<translation id="6322653941595359182">Enviar y recibir mensajes de texto en tu Chromebook</translation>
 <translation id="6324916366299863871">Editar acceso directo</translation>
 <translation id="6325191661371220117">Inhabilitar inicio automático</translation>
 <translation id="6326175484149238433">Eliminar de Chrome</translation>
@@ -3532,6 +3525,7 @@
 <translation id="6395423953133416962">Enviar <ph name="BEGIN_LINK1" />información del sistema<ph name="END_LINK1" /> y <ph name="BEGIN_LINK2" />métricas<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Opciones de personalización y sincronización</translation>
 <translation id="6397592254427394018">Abrir todos los favoritos en una ventana de &amp;incógnito</translation>
+<translation id="639777613761517128">Para abrir archivos con $1, primero cópialos a la carpeta Archivos de Linux.</translation>
 <translation id="6398715114293939307">Quitar Google Play Store</translation>
 <translation id="6398765197997659313">Salir de pantalla completa</translation>
 <translation id="6399774419735315745">Espía</translation>
@@ -3557,7 +3551,6 @@
 <translation id="642282551015776456">Este nombre no se puede utilizar como archivo del nombre de la carpeta</translation>
 <translation id="642469772702851743">El propietario bloqueó este dispositivo (NS: <ph name="SERIAL_NUMBER" />).</translation>
 <translation id="6426200009596957090">Abrir configuración de ChromeVox</translation>
-<translation id="6427415464407526111">Seleccionar la llave de seguridad</translation>
 <translation id="6429384232893414837">Error en la actualización</translation>
 <translation id="6430814529589430811">Certificado único ASCII con codificación Base64</translation>
 <translation id="6431217872648827691">Todos los datos se encriptaron con tu contraseña de Google desde el día
@@ -3715,7 +3708,6 @@
 <translation id="6655190889273724601">Modo de programador</translation>
 <translation id="6655458902729017087">Ocultar cuentas</translation>
 <translation id="6657585470893396449">Contraseña</translation>
-<translation id="6658023813581644008">A fin de configurar Smart Lock para acceder a tu cuenta, ingresa tu contraseña</translation>
 <translation id="6659213950629089752">La extensión "<ph name="NAME" />" hizo zoom en esta página</translation>
 <translation id="6659594942844771486">Pestaña</translation>
 <translation id="6664237456442406323">Desafortunadamente, la computadora está configurada con un identificador de hardware incorrecto. Esto impide que el Sistema operativo Chrome se actualice con las últimas correcciones de seguridad, y la computadora <ph name="BEGIN_BOLD" />puede quedar vulnerable a ataques maliciosos<ph name="END_BOLD" />.</translation>
@@ -3851,7 +3843,6 @@
 <translation id="6885771755599377173">Vista previa de la información del sistema</translation>
 <translation id="6886871292305414135">Abrir enlace en una pes&amp;taña nueva</translation>
 <translation id="6892812721183419409">Abrir vínculo como <ph name="USER" /></translation>
-<translation id="6896398788631624004">Conecta la llave de seguridad y actívala</translation>
 <translation id="6896758677409633944">Copiar</translation>
 <translation id="6898440773573063262">Ahora se pueden configurar las aplicaciones del kiosco para que se inicien de forma automática en este dispositivo.</translation>
 <translation id="6898699227549475383">Organización (O)</translation>
@@ -3870,6 +3861,7 @@
 <translation id="6915804003454593391">Usuario:</translation>
 <translation id="6916590542764765824">Administrar extensiones</translation>
 <translation id="6920989436227028121">Abrir como pestaña regular</translation>
+<translation id="6921709132208495314">Dejar de usar datos en esta página</translation>
 <translation id="6922128026973287222">Guarda los datos y explóralos más rápidamente con la extensión Ahorro de datos de Google. Haz clic aquí para obtener más información.</translation>
 <translation id="6923132443355966645">Desplazar/Hacer clic</translation>
 <translation id="6930242544192836755">Duración</translation>
@@ -3892,6 +3884,7 @@
 <translation id="6965382102122355670">Aceptar</translation>
 <translation id="6965648386495488594">Puerto</translation>
 <translation id="6965978654500191972">Dispositivo</translation>
+<translation id="6968288415730398122">Ingresa tu contraseña para configurar el bloqueo de pantalla</translation>
 <translation id="6970480684834282392">Tipo de inicio</translation>
 <translation id="6970856801391541997">Imprimir páginas específicas</translation>
 <translation id="6972180789171089114">Audio/video</translation>
@@ -3902,6 +3895,7 @@
 <translation id="6978121630131642226">Motores de búsqueda</translation>
 <translation id="6978611942794658017">Este archivo está diseñado para computadoras que utilizan software de Windows, por lo que no es compatible con tu dispositivo, el cual ejecuta el Sistema operativo Chrome. Busca una aplicación equivalente adecuada en Chrome Web Store.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Silenciar (predeterminado)</translation>
 <translation id="6979737339423435258">Todos</translation>
 <translation id="6980462514016882061">Es posible que Google use tu historial de navegación para personalizar Búsqueda, Ads y otros servicios de Google</translation>
 <translation id="6981982820502123353">Accesibilidad</translation>
@@ -4050,6 +4044,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Esto es información general sobre tu dispositivo y la manera en que lo usas (como el nivel de batería, el uso de las apps y la conectividad de red). Se usarán los datos para mejorar los productos y servicios de Google para todos. Parte de la información agregada también permitirá que los socios, como los desarrolladores de Android, mejoren sus apps y productos.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Si desactivas esta función, tu dispositivo podrá seguir enviando la información necesaria para servicios fundamentales, como actualizaciones y seguridad del sistema.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Puedes controlar esta función en Configuración &gt; Google. En el menú, selecciona Uso y diagnóstico.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Encontramos <ph name="NUMBER_OF_APPS" /> apps de tu cuenta que pueden usarse en este dispositivo.</translation>
 <translation id="7199158086730159431">Obtener ayuda</translation>
 <translation id="7200083590239651963">Seleccionar configuración</translation>
 <translation id="720110658997053098">Mantener este dispositivo en modo kiosco de forma permanente</translation>
@@ -4070,7 +4065,6 @@
 <translation id="7228523857728654909">Bloqueo de pantalla y acceso</translation>
 <translation id="7229570126336867161">Se necesita EVDO</translation>
 <translation id="7230787553283372882">Personaliza el tamaño del texto</translation>
-<translation id="7231589788477569369">Disfruta de la experiencia completa del Asistente con estas opciones de configuración</translation>
 <translation id="7232750842195536390">No se pudo cambiar el nombre</translation>
 <translation id="7234406375359457793">Se produjo un error al activar el recurso compartido porque no es compatible.</translation>
 <translation id="7238585580608191973">Huella digital SHA-256</translation>
@@ -4080,7 +4074,6 @@
 <translation id="7243632151880336635">Borrar y salir</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (la mejor resolución)</translation>
 <translation id="7246339268451149667">¿Deseas habilitar el desbloqueo mediante huella digital?</translation>
-<translation id="7246489301073081944">Mantén presionado |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| para salir</translation>
 <translation id="7246947237293279874">Proxy FTP</translation>
 <translation id="725109152065019550">Tu administrador inhabilitó el almacenamiento externo en tu cuenta.</translation>
 <translation id="7253521419891527137">&amp;Más información</translation>
@@ -4233,7 +4226,6 @@
 <translation id="7489605380874780575">Comprobar disponibilidad</translation>
 <translation id="749028671485790643">Persona <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Dirección MAC</translation>
-<translation id="7490950320178383728">Usa tu llave de seguridad con Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">Es posible que la extensión <ph name="EXTENSION_NAME" /> recopile todo el texto que escribas, lo que incluye datos personales como contraseñas y número de tarjetas de crédito. ¿Deseas usar esta extensión?</translation>
 <translation id="7494065396242762445">Abrir la configuración de Windows</translation>
@@ -4483,7 +4475,6 @@
 <translation id="7850851215703745691">Estos archivos de Drive aún no están compartidos</translation>
 <translation id="7851457902707056880">El acceso se restringió únicamente a la cuenta del propietario. Reinicia el sistema y accede con la cuenta del propietario. El equipo se reiniciará automáticamente en 30 segundos.</translation>
 <translation id="7851716364080026749">Siempre bloquear el acceso a la cámara y al micrófono</translation>
-<translation id="7851816139220202929">Usa tu llave de seguridad con NFC</translation>
 <translation id="7853747251428735">&amp;Más herramientas</translation>
 <translation id="7856006446339184955">Envía los datos del sistema. Este dispositivo envía datos de diagnóstico y uso del dispositivo y de apps a Google automáticamente. El propietario aplica esta <ph name="BEGIN_LINK1" />configuración<ph name="END_LINK1" />. Si activaste la función adicional de Actividad web y de aplicaciones, esta información se almacenará con tu cuenta para que puedas administrarla en Mi actividad. <ph name="BEGIN_LINK2" />Más información<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Agregar excepción</translation>
@@ -4566,6 +4557,7 @@
 <translation id="7973962044839454485">Falló la autenticación de PPP debido a un nombre de usuario o una contraseña incorrectos.</translation>
 <translation id="7974566588408714340">Volver a intentarlo con <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Desajuste de dimensiones</translation>
+<translation id="79766959863778284">Servicio de dispositivos aislados XR</translation>
 <translation id="7977551819349545646">Actualizando la Chromebox…</translation>
 <translation id="7978412674231730200">Clave privada</translation>
 <translation id="7978450511781612192">Con esta acción, saldrás de tus cuentas de Google. Ya no se sincronizarán tus favoritos, historial ni contraseñas, entre otros datos.</translation>
@@ -4616,7 +4608,6 @@
 <translation id="8030656706657716245">Agregar impresora</translation>
 <translation id="8032244173881942855">No se puede transmitir la pestaña</translation>
 <translation id="8033827949643255796">seleccionados</translation>
-<translation id="8033958968890501070">Se agotó el tiempo de espera</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Abrir todo en una ventana de &amp;incógnito}=1{Abrir en una ventana de &amp;incógnito}other{Abrir todo (#) en una ventana de &amp;incógnito}}</translation>
 <translation id="8037117027592400564">Leer todo el texto hablado con la síntesis de voz</translation>
 <translation id="8037357227543935929">Preguntar (predeterminado)</translation>
@@ -4789,6 +4780,7 @@
 <translation id="8320459152843401447">Tu pantalla completa</translation>
 <translation id="8322814362483282060">Esta página no tiene permiso para acceder al micrófono.</translation>
 <translation id="8326478304147373412">PKCS N. º 7, cadena de certificados</translation>
+<translation id="8327039559959785305">Se produjo un error al montar archivos de Linux. Vuelve a intentarlo.</translation>
 <translation id="8329978297633540474">Texto sin formato</translation>
 <translation id="8335587457941836791">No fijar en la biblioteca</translation>
 <translation id="8336153091935557858">Ayer a las <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4840,7 +4832,6 @@
 <translation id="8425213833346101688">Cambiar</translation>
 <translation id="8425492902634685834">Asociar a la barra de tareas</translation>
 <translation id="8425755597197517046">Pe&amp;gar y buscar</translation>
-<translation id="8426117172745886547">Mostrar una advertencia antes de salir (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Habilitando</translation>
 <translation id="8427292751741042100">incorporada en cualquier host</translation>
 <translation id="8428213095426709021">Configuración</translation>
@@ -4928,7 +4919,6 @@
 <translation id="8551388862522347954">Licencias</translation>
 <translation id="8553342806078037065">Administrar otras personas</translation>
 <translation id="8554899698005018844">Ningún idioma</translation>
-<translation id="8557347704037207368">Envía tus notificaciones desde "Android Web Messages"</translation>
 <translation id="855773602626431402">Se impidió que un complemento no incluido en la zona de pruebas se ejecutara en la página.</translation>
 <translation id="8557930019681227453">Manifiesto</translation>
 <translation id="8559694214572302298">Decodificador de imágenes</translation>
@@ -5041,6 +5031,7 @@
 <translation id="8714154114375107944">Fin de la compatibilidad</translation>
 <translation id="8714838604780058252">Gráficos en segundo plano</translation>
 <translation id="8715480913140015283">La pestaña en segundo plano está usando tu cámara</translation>
+<translation id="8716931980467311658">¿Quieres borrar todos los datos y las apps de Linux que se encuentran en tu carpeta Archivos de Linux de este <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Se produjo un error al descargar <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Submarcos incógnito para: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">Mo&amp;strar en carpeta</translation>
@@ -5204,7 +5195,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: Falló</translation>
 <translation id="8983677657449185470">Ayudar a mejorar la Navegación segura</translation>
 <translation id="8984654317541110628">URL de archivo compartido</translation>
-<translation id="8984872292925913496">Busca el PIN de seis dígitos que se encuentra en la parte posterior de la llave</translation>
 <translation id="8986362086234534611">Borrar</translation>
 <translation id="8986494364107987395">Enviar automáticamente estadísticas de uso e informes sobre fallos a Google</translation>
 <translation id="8987927404178983737">Mes</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 59a5fb7..a9c9c0c 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Resaltar el objeto con el foco del teclado cuando cambie</translation>
 <translation id="1173894706177603556">Cambiar nombre</translation>
 <translation id="1174073918202301297">Se ha añadido el acceso directo</translation>
-<translation id="1174808551768282258">Desbloquea tu Chromebook con tu teléfono. Consulta <ph name="LINK_BEGIN" />más información<ph name="LINK_END" />.</translation>
 <translation id="1175364870820465910">Im&amp;primir...</translation>
 <translation id="117624967391683467">Copiando <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Es posible que Google use tu historial de navegación para personalizar los anuncios de búsqueda y otros servicios de Google. Puedes cambiar esta opción en cualquier momento en la página myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pausar</translation>
 <translation id="1181037720776840403">Eliminar</translation>
 <translation id="1183237619868651138">No se puede instalar <ph name="EXTERNAL_CRX_FILE" /> en la memoria caché local.</translation>
-<translation id="1183378459020939734">¿Todo listo para vincular tu llave de seguridad?</translation>
 <translation id="1185924365081634987">También puedes intentar <ph name="GUEST_SIGNIN_LINK_START" />navegar como invitado<ph name="GUEST_SIGNIN_LINK_END" /> para solucionar el problema de red.</translation>
 <translation id="1186771945450942097">Elimina el software dañino</translation>
 <translation id="1187722533808055681">Activación inactiva</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">No se han encontrado dispositivos Bluetooth</translation>
 <translation id="1306606229401759371">Cambiar configuración</translation>
 <translation id="1307559529304613120">¡Vaya! El sistema no ha podido almacenar el token de acceso a la API a largo plazo para este dispositivo.</translation>
+<translation id="1307931752636661898">No se pueden ver archivos de Linux</translation>
 <translation id="1313405956111467313">Configuración de proxy automática</translation>
 <translation id="131364520783682672">Bloq Mayús</translation>
 <translation id="1313705515580255288">Tus marcadores, tu historial y otras opciones se sincronizarán con tu cuenta de Google.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Abrir la configuración del ratón y del panel táctil</translation>
 <translation id="1531004739673299060">Ventana de la aplicación</translation>
 <translation id="15373452373711364">Cursor del ratón grande</translation>
+<translation id="1538729222189715449">Abriendo archivos de Linux...</translation>
 <translation id="1540605929960647700">Habilitar modo de demostración</translation>
 <translation id="1543284117603151572">Importado desde Edge</translation>
 <translation id="1545177026077493356">Modo kiosco automático</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Cambia el modo HUD táctil</translation>
 <translation id="1784849162047402014">Queda poco espacio en el disco del dispositivo</translation>
 <translation id="1786636458339910689">Unidades de equipo</translation>
-<translation id="1792161662640298233">Verificando la llave de seguridad</translation>
 <translation id="1792619191750875668">Pantalla extendida</translation>
 <translation id="1794791083288629568">Envíanos un comentario para ayudarnos a solucionar el problema.</translation>
 <translation id="1795214765651529549">Utilizar tema clásico</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">¡Te damos la bienvenida!</translation>
 <translation id="1914326953223720820">Servicio de descompresión</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Según como tengas configurada tu cuenta, la experiencia con el Asistente se verá limitada a funciones como resultados web, chistes o información local.</translation>
 <translation id="1916502483199172559">Avatar rojo predeterminado</translation>
 <translation id="1918141783557917887">Meno&amp;r</translation>
 <translation id="1919345977826869612">Anuncios</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">El complemento <ph name="PEPPER_PLUGIN_NAME" /> de <ph name="PEPPER_PLUGIN_DOMAIN" /> quiere acceder a tu ordenador</translation>
 <translation id="2178614541317717477">Compromiso de entidad emisora de certificados</translation>
 <translation id="218070003709087997">Usa un número para indicar cuántas copias quieres imprimir (entre 1 y 999).</translation>
+<translation id="2184515124301515068">Permitir que Chrome elija cuándo los sitios web pueden reproducir sonidos (recomendado)</translation>
 <translation id="2187895286714876935">Error de importación del certificado de servidor</translation>
 <translation id="2187906491731510095">Se han actualizado las extensiones</translation>
 <translation id="2188881192257509750">Abrir <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Leer y modificar tus datos en una serie de sitios web</translation>
 <translation id="2242687258748107519">Información del archivo</translation>
 <translation id="2243194103992005307">Para desinstalar aplicaciones, accede a Ajustes &gt; Aplicaciones o Administrador de aplicaciones. A continuación, toca la aplicación que quieras desinstalar (es posible que tengas que deslizar el dedo hacia la derecha o hacia la izquierda para encontrar la aplicación) y toca Desinstalar o Inhabilitar.</translation>
+<translation id="224940702122312781">Esta página consumirá una gran cantidad de datos.</translation>
 <translation id="2249605167705922988">p. ej. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Abrir con visor del sistema</translation>
 <translation id="225163402930830576">Actualizar redes</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Configurar red</translation>
 <translation id="230927227160767054">Esta página quiere instalar un controlador de servicios</translation>
 <translation id="2309620859903500144">Esta página no tiene permiso para acceder a los sensores de luz y movimiento.</translation>
-<translation id="2311075084924370935">Para que el Asistente te ayude con el calendario, los recordatorios y los vuelos, entre otras cosas, debes definir los ajustes Actividad en la Web y en Aplicaciones, Información del dispositivo y Actividad de Voz y Audio.</translation>
+<translation id="2315414688463285945">No se han podido configurar los archivos de Linux. Inténtalo de nuevo.</translation>
 <translation id="2315821125498993513">No se ha podido establecer conexión con el teléfono. Consulta <ph name="LINK_BEGIN" />más información<ph name="LINK_END" />.</translation>
 <translation id="2316129865977710310">No, gracias</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% completado</translation>
 <translation id="2318143611928805047">Tamaño del papel</translation>
 <translation id="2318817390901984578">Para usar aplicaciones de Android, carga y actualiza tu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Sesión de incógnito actual (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Usar la llave de seguridad con <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Encabezado y pie de página</translation>
 <translation id="2325650632570794183">No se admite este tipo de archivo. Accede a Chrome Web Store para buscar una aplicación que pueda abrir este tipo de archivo.</translation>
 <translation id="2326931316514688470">&amp;Volver a cargar aplicación</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Añadir uso compartido de archivo</translation>
 <translation id="2367972762794486313">Mostrar aplicaciones</translation>
 <translation id="2369536625682139252">Se eliminarán todos los datos que almacena <ph name="SITE" />, excepto las cookies.</translation>
-<translation id="237058345584060620">Vincula la llave con este dispositivo y podrás usarla para iniciar sesión en tu cuenta</translation>
 <translation id="2371076942591664043">Abrir al &amp;finalizar</translation>
 <translation id="2377319039870049694">Cambiar a vista de lista</translation>
 <translation id="2377667304966270281">Fallos graves</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">No se encuentra tu teléfono. Asegúrate de que el Bluetooth esté activado en tu <ph name="DEVICE_TYPE" />. &lt;a&gt;Más información&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Añadir &amp;carpeta...</translation>
 <translation id="249113932447298600">Lo sentimos, pero el dispositivo <ph name="DEVICE_LABEL" /> no se admite en este momento.</translation>
-<translation id="2492040222276243256">Mantén pulsado el botón de la llave de seguridad durante al menos 5 segundos</translation>
 <translation id="2493021387995458222">Seleccionar "palabra por palabra"</translation>
 <translation id="249303669840926644">No se ha podido completar el registro</translation>
 <translation id="2495777824269688114">Descubre más funciones o consigue respuestas. Selecciona ? para obtener ayuda.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Total: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Largo</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (plataforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Esta pestaña está compartiendo tu pantalla.</translation>
 <translation id="2586657967955657006">Portapapeles</translation>
 <translation id="2586672484245266891">Introduce una URL más corta</translation>
 <translation id="2587922270115112871">Al crear un usuario supervisado, no se crea una cuenta de Google, y sus datos
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> utiliza <ph name="USAGE" /> MB del espacio en disco.</translation>
 <translation id="2633212996805280240">¿Quieres eliminar "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> no ha podido completar la instalación, pero se seguirá ejecutando desde la imagen de disco.</translation>
-<translation id="2633326789677284179">Encuentra el nombre impreso en la parte posterior de la llave</translation>
 <translation id="2635276683026132559">Firma</translation>
 <translation id="2636625531157955190">Chrome no puede acceder a la imagen.</translation>
 <translation id="2638087589890736295">Se necesita una frase de contraseña para iniciar la sincronización</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Añadir <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Inicia sesión en Chrome para tener tus contraseñas en todos tus dispositivos.</translation>
 <translation id="2875698561019555027">(Páginas de error de Chrome)</translation>
-<translation id="2876441201733326392">Usar llave de seguridad USB</translation>
 <translation id="288042212351694283">Acceso a tus dispositivos U2F (Universal 2nd Factor)</translation>
 <translation id="2881966438216424900">Último acceso:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> se reiniciará y se restablecerá momentáneamente</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Enviar de forma anónima</translation>
 <translation id="2984337792991268709">Hoy a las <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Se ha bloqueado esta página para que no tenga un control absoluto de los dispositivos MIDI.</translation>
-<translation id="2988599644347283908">Nota: Los datos de estos ajustes se pueden guardar y usar en cualquier servicio de Google en el que hayas iniciado sesión para ofrecerte experiencias personalizadas y anuncios relevantes. Puedes ver, eliminar y cambiar estos ajustes en la página account.google.com.</translation>
 <translation id="2989474696604907455">no conectado</translation>
 <translation id="2989786307324390836">DER binario codificado, certificado único</translation>
 <translation id="2993517869960930405">Información de la aplicación</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Activar sonido de pestañas</translation>
 <translation id="3053013834507634016">Uso de claves de certificado</translation>
 <translation id="3057861065630527966">Realiza copias de seguridad de tus fotos y vídeos</translation>
-<translation id="3059313675706898490">Mensajes Android</translation>
 <translation id="3060379269883947824">Habilitar Enunciar Selección</translation>
 <translation id="3061707000357573562">Aplicar parche a servicio</translation>
 <translation id="3064410671692449875">Datos insuficientes</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">No se puede copiar el archivo crx externo en <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558"><ph name="DEVICE_NAME" /> vinculado</translation>
 <translation id="3101709781009526431">Fecha y hora</translation>
-<translation id="3104900172193317662">Permitir que se utilice tu llave de seguridad</translation>
 <translation id="310671807099593501">El sitio web está usando el Bluetooth</translation>
 <translation id="3115128645424181617">No se encuentra tu teléfono. Asegúrate de que lo tienes cerca y de que el Bluetooth está activado.</translation>
 <translation id="3115147772012638511">Esperando caché...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;No incluido en el certificado&gt;</translation>
 <translation id="3254434849914415189">Elegir la aplicación predeterminada para los archivos <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Se ha inhabilitado la detección automática de la zona horaria</translation>
-<translation id="3254772308201947812">Sí, acepto</translation>
 <translation id="3264544094376351444">Fuente Sans-serif</translation>
 <translation id="3264547943200567728">Error al configurar la red del Chromebox</translation>
 <translation id="3264582393905923483">Contexto</translation>
@@ -1814,7 +1806,6 @@
 <translation id="3735740477244556633">Ordenar por</translation>
 <translation id="3737274407993947948">No se ha podido instalar Linux...</translation>
 <translation id="3737536731758327622">Tus descargas aparecen en esta sección</translation>
-<translation id="3738671331307774213">Verifica tu identidad para proteger tus datos privados</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">¿Abrir <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> aparecerá ahora en la Consola del administrador</translation>
@@ -1908,6 +1899,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sincronización en pausa</translation>
 <translation id="3860381078714302691">Te damos la bienvenida a Hangouts Meet</translation>
+<translation id="3861241522664181545">Se ha pausado la página.</translation>
 <translation id="3862134173397075045">Te damos la bienvenida a la experiencia Cast en Chrome</translation>
 <translation id="3862788408946266506">La aplicación con el atributo del archivo de manifiesto "kiosk_only" se debe instalar en el modo kiosco de Chrome OS</translation>
 <translation id="3865414814144988605">Resolución</translation>
@@ -1922,7 +1914,6 @@
 <translation id="3873315167136380065">Para activar esta opción, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /> para eliminar tu frase de contraseña de sincronización</translation>
 <translation id="3878840326289104869">Creando usuario supervisado</translation>
 <translation id="3879748587602334249">Administrador de descargas</translation>
-<translation id="3880709822663530586">La llave de seguridad solo funciona cuando la conexión Bluetooth del dispositivo está activada</translation>
 <translation id="3888550877729210209">Tomando notas con <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Añadir OpenVPN / L2TP...</translation>
 <translation id="3893536212201235195">Leer y cambiar tu configuración de accesibilidad</translation>
@@ -2067,6 +2058,7 @@
 <translation id="4096824249111507322">Se está preparando el módulo seguro. Este proceso tardar unos minutos...</translation>
 <translation id="4099060993766194518">¿Restaurar el motor de búsqueda predeterminado?</translation>
 <translation id="4100733287846229632">Queda muy poco espacio en el dispositivo</translation>
+<translation id="4103091233824664032">Introduce tu contraseña para configurar el bloqueo de pantalla y el inicio de sesión</translation>
 <translation id="4104163789986725820">E&amp;xportar...</translation>
 <translation id="4105563239298244027">Consigue 1 TB gratis con Google Drive</translation>
 <translation id="4107048419833779140">Identificar y expulsar dispositivos de almacenamiento</translation>
@@ -2087,7 +2079,6 @@
 <translation id="4136203100490971508">La luz nocturna se desactivará automáticamente al amanecer</translation>
 <translation id="4138267921960073861">Mostrar nombres de usuario y fotos en la pantalla de inicio de sesión</translation>
 <translation id="4144218403971135344">Disfruta de una mejor calidad de vídeo y ahorra batería. El vídeo se reproducirá solo en tu pantalla compatible con Google Cast.</translation>
-<translation id="414599683948988413">Utilizar la llave de seguridad con USB</translation>
 <translation id="4146026355784316281">Abrir siempre con el visor del sistema</translation>
 <translation id="4146785383423576110">Recuperar ajustes y borrar</translation>
 <translation id="4147897805161313378">Google Fotos</translation>
@@ -2222,6 +2213,7 @@
 <translation id="4394049700291259645">Inhabilitar</translation>
 <translation id="4400367121200150367">Los sitios web de los que nunca se guarda la contraseña aparecerán aquí</translation>
 <translation id="4400632832271803360">Mantén pulsado el menú de aplicaciones para cambiar el comportamiento de las teclas de la fila superior</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">Ay&amp;uda</translation>
 <translation id="4409697491990005945">Márgenes</translation>
 <translation id="4411578466613447185">Firmante del código</translation>
@@ -2270,6 +2262,7 @@
 <translation id="4480590691557335796">Chrome puede encontrar software dañino en tu ordenador y eliminarlo</translation>
 <translation id="4481530544597605423">Dispositivos desvinculados</translation>
 <translation id="4482194545587547824">Google puede utilizar tu historial de navegación para personalizar la Búsqueda y otros servicios de Google</translation>
+<translation id="4493287891836751813">Te presentamos a tu Asistente de Google</translation>
 <translation id="4495419450179050807">No mostrar en esta página</translation>
 <translation id="4499718683476608392">Habilita la función de autocompletar tarjetas de crédito para rellenar formularios web con un solo clic</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ha fallado</translation>
@@ -2430,6 +2423,7 @@
 <translation id="474217410105706308">Silenciar pestaña</translation>
 <translation id="4742746985488890273">Fijar en la estantería</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Cómo actualizar aplicaciones<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Mensajes</translation>
 <translation id="4746971725921104503">Parece que ya tienes un usuario administrado con ese nombre. ¿Querías <ph name="LINK_START" />importar <ph name="USER_DISPLAY_NAME" /> en este dispositivo<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Se necesita una extensión de Chrome Web Store</translation>
 <translation id="4750394297954878236">Sugerencias</translation>
@@ -2471,6 +2465,7 @@
 <translation id="4821935166599369261">Perfiles &amp;habilitados</translation>
 <translation id="4823484602432206655">Leer y cambiar la configuración del dispositivo y del usuario</translation>
 <translation id="4823651846660089135">El dispositivo es de solo lectura</translation>
+<translation id="4823955295535347797">Accede al Asistente cuando digas "Ok Google" y la pantalla esté encendida.</translation>
 <translation id="4828937774870308359">Australiano</translation>
 <translation id="4829768588131278040">Configurar PIN</translation>
 <translation id="4830502475412647084">Instalando actualización del SO</translation>
@@ -2511,6 +2506,7 @@
 <translation id="4876273079589074638">Cuéntanos lo que ocurrió paso a paso para que nuestros ingenieros puedan investigar y solucionar el error. Cualquier detalle es importante.</translation>
 <translation id="4876895919560854374">Bloquear y desbloquear la pantalla</translation>
 <translation id="4877017884043316611">Vincular con Chromebox</translation>
+<translation id="4879491255372875719">Automático (predeterminado)</translation>
 <translation id="4880214202172289027">Control deslizante de volumen</translation>
 <translation id="4880328057631981605">Nombre de punto de acceso</translation>
 <translation id="4880520557730313061">Ajuste automático</translation>
@@ -2663,7 +2659,6 @@
 <translation id="5099354524039520280">arriba</translation>
 <translation id="5100114659116077956">Debes actualizar tu Chromebox para poder disfrutar de las últimas funciones.</translation>
 <translation id="5101042277149003567">Abrir todos los marcadores</translation>
-<translation id="5104546332954397226">Utilizar tu teléfono como llave de seguridad</translation>
 <translation id="5105855035535475848">Fijar pestañas</translation>
 <translation id="5108967062857032718">Configuración - Quitar aplicaciones de Android</translation>
 <translation id="5109044022078737958">Atleta</translation>
@@ -2794,7 +2789,6 @@
 <translation id="5288678174502918605">Volv&amp;er a abrir pestaña cerrada</translation>
 <translation id="52912272896845572">El archivo de clave privada no es válido.</translation>
 <translation id="529175790091471945">Formatear este dispositivo</translation>
-<translation id="5292195676005197571">Para utilizar la mayoría de las llaves, solo tienes que pulsar el botón</translation>
 <translation id="5293170712604732402">Restaura los valores predeterminados originales de la configuración</translation>
 <translation id="5297082477358294722">Se ha guardado la contraseña. Consulta y gestiona las contraseñas guardadas en tu <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Tema creado por</translation>
@@ -2820,6 +2814,7 @@
 <translation id="532776649628038357">Acepto</translation>
 <translation id="532943162177641444">Toca la notificación en el <ph name="PHONE_NAME" /> para configurar el punto de acceso móvil que este dispositivo puede usar.</translation>
 <translation id="5329858601952122676">&amp;Suprimir</translation>
+<translation id="5329945517224105597">El Asistente puede ofrecer sugerencias más relevantes y acciones específicas en función de los elementos de la pantalla. Puedes cambiar estas opciones en la configuración del Asistente.</translation>
 <translation id="5330145655348521461">Estos archivos se han abierto en un escritorio diferente. Ve a <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) para verlo.</translation>
 <translation id="5330512191124428349">Obtener información</translation>
 <translation id="5331069282670671859">No tienes certificados en esta categoría</translation>
@@ -2864,7 +2859,6 @@
 <translation id="5390100381392048184">Permitir que los sitios web reproduzcan sonidos</translation>
 <translation id="5390284375844109566">Base de datos indexada</translation>
 <translation id="5390743329570580756">Enviar para</translation>
-<translation id="5392327114396848796">Utilizar una llave de seguridad integrada</translation>
 <translation id="5397794290049113714">Tú</translation>
 <translation id="5398572795982417028">La referencia de página está fuera de los límites admitidos, el límite es <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Anuncios bloqueados</translation>
@@ -3072,6 +3066,7 @@
    <ph name="LINE_BREAKS" />
    Cierra todos los archivos del archivo o disco virtual e inténtalo de nuevo.</translation>
 <translation id="5687326903064479980">Zona horaria</translation>
+<translation id="568824803367507355">Detección de "Ok Google"</translation>
 <translation id="5689516760719285838">Ubicación</translation>
 <translation id="56907980372820799">Vincular datos</translation>
 <translation id="5691511426247308406">Familia</translation>
@@ -3169,7 +3164,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" />: grabación de la cámara o del micrófono</translation>
 <translation id="5835754902560991078">extremadamente breve (0,6 s)</translation>
 <translation id="5838456317242088717">Sesión de incógnito actual</translation>
-<translation id="5842053879378944309">Usar llave de seguridad USB en <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Habilitar Bluetooth</translation>
 <translation id="5843250171025351504">Tu dispositivo ya no cumple la versión de cliente mínima especificada por el administrador. Actualízalo para iniciar sesión.</translation>
 <translation id="5846929185714966548">Pestaña 4</translation>
@@ -3487,7 +3481,6 @@
 <translation id="6317318380444133405">Ya no es compatible.</translation>
 <translation id="6317369057005134371">Esperando ventana de la aplicación...</translation>
 <translation id="6318407754858604988">Se ha iniciado la descarga</translation>
-<translation id="6322653941595359182">Envía y recibe mensajes de texto desde tu Chromebook</translation>
 <translation id="6324916366299863871">Editar acceso directo</translation>
 <translation id="6325191661371220117">Inhabilitar inicio automático</translation>
 <translation id="6326175484149238433">Desinstalar de Chrome</translation>
@@ -3531,6 +3524,7 @@
 <translation id="6395423953133416962">Enviar <ph name="BEGIN_LINK2" />métricas<ph name="END_LINK2" /> e <ph name="BEGIN_LINK1" />información del sistema<ph name="END_LINK1" /></translation>
 <translation id="6397094776139756010">Opciones de sincronización y personalización</translation>
 <translation id="6397592254427394018">Abrir todos los marcadores en una ventana de &amp;incógnito</translation>
+<translation id="639777613761517128">Para abrir los archivos con 1 $, debes copiarlos en la carpeta Archivos de Linux.</translation>
 <translation id="6398715114293939307">Quitar Google Play Store</translation>
 <translation id="6398765197997659313">Salir del modo de pantalla completa</translation>
 <translation id="6399774419735315745">Espía</translation>
@@ -3556,7 +3550,6 @@
 <translation id="642282551015776456">Este nombre no se puede utilizar como nombre de archivo de carpeta.</translation>
 <translation id="642469772702851743">El propietario ha bloqueado este dispositivo (número de serie: <ph name="SERIAL_NUMBER" />).</translation>
 <translation id="6426200009596957090">Abrir la configuración de ChromeVox</translation>
-<translation id="6427415464407526111">Seleccionar la llave de seguridad</translation>
 <translation id="6429384232893414837">Error de actualización</translation>
 <translation id="6430814529589430811">ASCII codificado en Base64, certificado único</translation>
 <translation id="6431217872648827691">Todos los datos se cifraron con tu contraseña de Google el <ph name="TIME" /></translation>
@@ -3713,7 +3706,6 @@
 <translation id="6655190889273724601">Modo de desarrollador</translation>
 <translation id="6655458902729017087">Ocultar cuentas</translation>
 <translation id="6657585470893396449">Contraseña</translation>
-<translation id="6658023813581644008">Si quieres configurar Smart Lock para iniciar sesión, introduce tu contraseña</translation>
 <translation id="6659213950629089752">Esta página fue ampliada por la extensión <ph name="NAME" /></translation>
 <translation id="6659594942844771486">Pestaña</translation>
 <translation id="6664237456442406323">Lamentablemente, tu ordenador está configurado con un identificador de hardware incorrecto. Esto impide que Chrome OS se actualice con los últimos parches de seguridad y hace que el ordenador <ph name="BEGIN_BOLD" />pueda ser vulnerable a ataques maliciosos<ph name="END_BOLD" />.</translation>
@@ -3849,7 +3841,6 @@
 <translation id="6885771755599377173">Vista previa de información del sistema</translation>
 <translation id="6886871292305414135">Abrir enlace en una pes&amp;taña nueva</translation>
 <translation id="6892812721183419409">Abrir enlace como <ph name="USER" /></translation>
-<translation id="6896398788631624004">Inserta tu llave de seguridad y actívala</translation>
 <translation id="6896758677409633944">Copiar</translation>
 <translation id="6898440773573063262">Ya se pueden configurar las aplicaciones del kiosco para que se inicien automáticamente en este dispositivo.</translation>
 <translation id="6898699227549475383">Organización (O)</translation>
@@ -3868,6 +3859,7 @@
 <translation id="6915804003454593391">Usuario:</translation>
 <translation id="6916590542764765824">Administrar extensiones</translation>
 <translation id="6920989436227028121">Abrir como pestaña normal</translation>
+<translation id="6921709132208495314">Detener el consumo de datos en esta página</translation>
 <translation id="6922128026973287222">Ahorra datos y navega más rápido con Ahorro de Datos de Google. Haz clic para obtener más información.</translation>
 <translation id="6923132443355966645">Desplazarse/Hacer clic</translation>
 <translation id="6930242544192836755">Duración</translation>
@@ -3890,6 +3882,7 @@
 <translation id="6965382102122355670">Aceptar</translation>
 <translation id="6965648386495488594">Puerto</translation>
 <translation id="6965978654500191972">Dispositivo</translation>
+<translation id="6968288415730398122">Introduce tu contraseña para configurar el bloqueo de pantalla</translation>
 <translation id="6970480684834282392">Tipo de inicio</translation>
 <translation id="6970856801391541997">Imprimir páginas específicas</translation>
 <translation id="6972180789171089114">Audio/Vídeo</translation>
@@ -3900,6 +3893,7 @@
 <translation id="6978121630131642226">Motores de búsqueda</translation>
 <translation id="6978611942794658017">Este archivo está diseñado para un PC que utilice software de Windows, por lo que no es compatible con tu dispositivo, que utiliza Chrome OS. Puedes buscar una aplicación equivalente adecuada en Chrome Web Store.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Silenciar (predeterminado)</translation>
 <translation id="6979737339423435258">Desde siempre</translation>
 <translation id="6980462514016882061">Google puede utilizar tu historial de navegación para personalizar la Búsqueda, los anuncios y otros servicios de Google</translation>
 <translation id="6981982820502123353">Accesibilidad</translation>
@@ -4048,6 +4042,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Esto es información general sobre el dispositivo y su uso (como el nivel de batería, el uso de las aplicaciones o la conectividad de red). La información se utilizará con el fin de mejorar los productos y servicios de Google para todo el mundo. Parte de los datos recogidos también ayudarán a nuestros partners, como los desarrolladores de Android, a mejorar sus aplicaciones y productos.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Si la opción se desactiva, esto no afectará a la capacidad del dispositivo de enviar la información necesaria para recibir servicios esenciales, como actualizaciones del sistema y funciones de seguridad..<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Puedes controlar esta función en Ajustes &gt; Google. En el menú, selecciona Uso y diagnósticos.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Hemos encontrado <ph name="NUMBER_OF_APPS" /> aplicaciones en tu cuenta que se pueden utilizar en este dispositivo.</translation>
 <translation id="7199158086730159431">Obtener a&amp;yuda</translation>
 <translation id="7200083590239651963">Seleccionar configuración</translation>
 <translation id="720110658997053098">Mantener este dispositivo en modo kiosco de forma permanente</translation>
@@ -4068,7 +4063,6 @@
 <translation id="7228523857728654909">Bloqueo de pantalla e inicio de sesión</translation>
 <translation id="7229570126336867161">Es necesario el estándar EVDO.</translation>
 <translation id="7230787553283372882">Personalizar el tamaño del texto</translation>
-<translation id="7231589788477569369">Aprovecha al máximo las posibilidades de tu Asistente</translation>
 <translation id="7232750842195536390">No se ha podido cambiar el nombre</translation>
 <translation id="7234406375359457793">No se ha podido activar el recurso compartido. El recurso especificado no es compatible.</translation>
 <translation id="7238585580608191973">Huella digital SHA-256</translation>
@@ -4078,7 +4072,6 @@
 <translation id="7243632151880336635">Borrar y cerrar sesión</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (recomendado)</translation>
 <translation id="7246339268451149667">¿Habilitar el desbloqueo con huella digital?</translation>
-<translation id="7246489301073081944">Mantén pulsado <ph name="ACCELERATOR1" /> + <ph name="ACCELERATOR2" /> + <ph name="ACCELERATOR3" /> para salir</translation>
 <translation id="7246947237293279874">Proxy de FTP</translation>
 <translation id="725109152065019550">Tu administrador ha inhabilitado el almacenamiento externo en tu cuenta.</translation>
 <translation id="7253521419891527137">&amp;Más información</translation>
@@ -4231,7 +4224,6 @@
 <translation id="7489605380874780575">Comprobar elegibilidad</translation>
 <translation id="749028671485790643">Persona <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Dirección MAC</translation>
-<translation id="7490950320178383728">Utilizar la llave de seguridad con Bluetooth</translation>
 <translation id="7491962110804786152">tabulador</translation>
 <translation id="7493386493263658176">Es posible que la extensión <ph name="EXTENSION_NAME" /> recopile todo el texto que escribes, como las contraseñas o los números de las tarjetas de crédito. ¿Quieres utilizar esta extensión?</translation>
 <translation id="7494065396242762445">Abrir configuración de Windows</translation>
@@ -4481,7 +4473,6 @@
 <translation id="7850851215703745691">Estos archivos de Drive aún no se han compartido</translation>
 <translation id="7851457902707056880">El inicio de sesión se ha restringido únicamente a la cuenta del propietario. Reinicia el sistema e inicia sesión con la cuenta del propietario. El ordenador se reiniciará automáticamente en 30 segundos.</translation>
 <translation id="7851716364080026749">Bloquear siempre el acceso a la cámara y al micrófono</translation>
-<translation id="7851816139220202929">Utilizar la llave de seguridad con NFC</translation>
 <translation id="7853747251428735">Más herramienta&amp;s</translation>
 <translation id="7856006446339184955">Enviar datos del sistema. Este dispositivo envía a Google datos de diagnósticos y uso del dispositivo y las aplicaciones automáticamente. El propietario aplica esta <ph name="BEGIN_LINK1" />configuración<ph name="END_LINK1" />. Si has activado la opción Actividad en la Web y en Aplicaciones, esta información se almacenará en tu cuenta para que puedas gestionarla en la sección Mi Actividad. <ph name="BEGIN_LINK2" />Más información<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Añadir excepción</translation>
@@ -4564,6 +4555,7 @@
 <translation id="7973962044839454485">Se ha producido un error en la autenticación de PPP porque la contraseña o el nombre de usuario son incorrectos</translation>
 <translation id="7974566588408714340">Intentar de nuevo con <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Reajuste</translation>
+<translation id="79766959863778284">Servicio de dispositivo aislado XR</translation>
 <translation id="7977551819349545646">Actualizando Chromebox…</translation>
 <translation id="7978412674231730200">Clave privada</translation>
 <translation id="7978450511781612192">Se cerrará la sesión en tus cuentas de Google. Tus marcadores, historial, contraseñas y otros elementos dejarán de sincronizarse.</translation>
@@ -4614,7 +4606,6 @@
 <translation id="8030656706657716245">Añadir impresora</translation>
 <translation id="8032244173881942855">No se puede enviar la pestaña.</translation>
 <translation id="8033827949643255796">seleccionados</translation>
-<translation id="8033958968890501070">Tiempo de espera agotado</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Abrir todas en una &amp;ventana de incógnito}=1{Abrir en una &amp;ventana de incógnito}other{Abrir (#) en una &amp;ventana de incógnito}}</translation>
 <translation id="8037117027592400564">Leer todo el texto hablado con la síntesis de voz</translation>
 <translation id="8037357227543935929">Preguntar (predeterminado)</translation>
@@ -4787,6 +4778,7 @@
 <translation id="8320459152843401447">Toda la pantalla</translation>
 <translation id="8322814362483282060">Esta página no tiene permiso para acceder al micrófono</translation>
 <translation id="8326478304147373412">PKCS #7, cadena de certificados</translation>
+<translation id="8327039559959785305">No se han podido activar los archivos de Linux. Inténtalo de nuevo.</translation>
 <translation id="8329978297633540474">Texto sin formato</translation>
 <translation id="8335587457941836791">No fijar en la estantería</translation>
 <translation id="8336153091935557858">Ayer a las <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4837,7 +4829,6 @@
 <translation id="8425213833346101688">Cambiar</translation>
 <translation id="8425492902634685834">Fijar a barra de tareas</translation>
 <translation id="8425755597197517046">&amp;Pegar y buscar</translation>
-<translation id="8426117172745886547">Avisar antes de salir (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Habilitando</translation>
 <translation id="8427292751741042100">insertado en otro host</translation>
 <translation id="8428213095426709021">Configuración</translation>
@@ -4925,7 +4916,6 @@
 <translation id="8551388862522347954">Licencias</translation>
 <translation id="8553342806078037065">Administrar otros usuarios</translation>
 <translation id="8554899698005018844">Sin idioma</translation>
-<translation id="8557347704037207368">Recibe notificaciones de mensajes de Android en la Web</translation>
 <translation id="855773602626431402">Se ha evitado que un complemento no incluido en la zona de pruebas se ejecutara en esta página.</translation>
 <translation id="8557930019681227453">Archivo de manifiesto</translation>
 <translation id="8559694214572302298">Decodificador de imágenes</translation>
@@ -5038,6 +5028,7 @@
 <translation id="8714154114375107944">Sin asistencia</translation>
 <translation id="8714838604780058252">Gráficos de fondo</translation>
 <translation id="8715480913140015283">La pestaña en segundo plano está usando la cámara</translation>
+<translation id="8716931980467311658">¿Quieres eliminar todos los datos y aplicaciones de Linux de la carpeta Archivos de Linux del <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">No se ha podido descargar <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Submarcos de incógnito de: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Mostrar en carpeta</translation>
@@ -5201,7 +5192,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: ha fallado</translation>
 <translation id="8983677657449185470">Ayudar a mejorar la función Navegación Segura</translation>
 <translation id="8984654317541110628">URL de recurso compartido</translation>
-<translation id="8984872292925913496">Busca el PIN de 6 dígitos situado en la parte trasera de la llave</translation>
 <translation id="8986362086234534611">Dejar de recordar</translation>
 <translation id="8986494364107987395">Envía automáticamente estadísticas de uso e informes sobre fallos a Google</translation>
 <translation id="8987927404178983737">Mes</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 8652ce0..ce66c50 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Kui objekt muutub, tõstetakse see klaviatuuri fookusega esile</translation>
 <translation id="1173894706177603556">Muuda nime</translation>
 <translation id="1174073918202301297">Otsetee on lisatud</translation>
-<translation id="1174808551768282258">Avage Chromebook oma telefoniga. <ph name="LINK_BEGIN" />Vaadake lisateavet.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Prindi...</translation>
 <translation id="117624967391683467">Faili <ph name="FILE_NAME" /> kopeerimine ...</translation>
 <translation id="1177138678118607465">Google võib kasutada teie sirvimisajalugu otsingu, reklaamide ja muude Google'i teenuste isikupärastamiseks. Seda saab alati muuta saidil myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Peata</translation>
 <translation id="1181037720776840403">Eemalda</translation>
 <translation id="1183237619868651138">Faili <ph name="EXTERNAL_CRX_FILE" /> ei saa kohalikku vahemällu installida.</translation>
-<translation id="1183378459020939734">Kas olete valmis oma turvavõtme sidumiseks?</translation>
 <translation id="1185924365081634987">Võrguvea parandamiseks võite proovida ka <ph name="GUEST_SIGNIN_LINK_START" />külalisena sirvimist<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">Kahjuliku tarkvara eemaldamine</translation>
 <translation id="1187722533808055681">Jõuderežiimist äratamine</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Bluetooth-seadmeid ei leitud</translation>
 <translation id="1306606229401759371">Muuda seaded</translation>
 <translation id="1307559529304613120">Vabandust! Süsteemil ei õnnestunud selle seadme pikaajalist API juurdepääsuluba salvestada.</translation>
+<translation id="1307931752636661898">Linuxi faile ei saa vaadata</translation>
 <translation id="1313405956111467313">Automaatne puhverserveri konfigureerimine</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Teie järjehoidjaid, ajalugu ja muud seaded sünkroonitakse Google'i kontoga.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Hiire ja puuteplaadi seadme seadete avamine</translation>
 <translation id="1531004739673299060">Rakenduse aken</translation>
 <translation id="15373452373711364">Suur hiirekursor</translation>
+<translation id="1538729222189715449">Linuxi failide avamine …</translation>
 <translation id="1540605929960647700">Demorežiimi lubamine</translation>
 <translation id="1543284117603151572">Imporditud teenusest Edge</translation>
 <translation id="1545177026077493356">Automaatne kioskirežiim</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Puute-HUD-režiimi muutmine</translation>
 <translation id="1784849162047402014">Seadmes on vähe kettaruumi</translation>
 <translation id="1786636458339910689">Tiimikettad</translation>
-<translation id="1792161662640298233">Turvavõtme kinnitamine</translation>
 <translation id="1792619191750875668">Lisaekraan</translation>
 <translation id="1794791083288629568">Saatke tagasisidet, et aidata meil see probleem lahendada.</translation>
 <translation id="1795214765651529549">Kasuta klassikalist</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Tere tulemast!</translation>
 <translation id="1914326953223720820">Lahtipakkimisteenus</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">Olenevalt teie konto seadetest võib assistendi kasutus piirduda üksnes näiteks veebitulemuste, naljade ja kohaliku teabega.</translation>
 <translation id="1916502483199172559">Punane vaikeavatar</translation>
 <translation id="1918141783557917887">&amp;Väiksemaks</translation>
 <translation id="1919345977826869612">Reklaamid</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> domeenil <ph name="PEPPER_PLUGIN_DOMAIN" /> soovib juurdepääsu teie arvutile</translation>
 <translation id="2178614541317717477">CA turvarike</translation>
 <translation id="218070003709087997">Kasutage numbrit, mis näitab, kui palju koopiaid printida (1 kuni 999).</translation>
+<translation id="2184515124301515068">Luba Chrome'il valida, millal saidid võivad heli esitada (soovitatav)</translation>
 <translation id="2187895286714876935">Serveri sertifikaadi impordi viga</translation>
 <translation id="2187906491731510095">Laiendused on värskendatud</translation>
 <translation id="2188881192257509750">Ava <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Andmete lugemine ja muutmine mitmel veebisaidil</translation>
 <translation id="2242687258748107519">Faili teave</translation>
 <translation id="2243194103992005307">Rakenduste eemaldamiseks avage menüü Seaded &gt; Rakendused või Rakenduste haldur. Seejärel puudutage rakendust, mille soovite desinstallida (rakenduse leidmiseks peate võib-olla paremale või vasakule pühkima). Seejärel puudutage käsku Desinstalli või Keela.</translation>
+<translation id="224940702122312781">See leht kasutab palju andmemahtu.</translation>
 <translation id="2249605167705922988">nt 1–5, 8, 11–13</translation>
 <translation id="2251218783371366160">Ava süsteemivaaturiga</translation>
 <translation id="225163402930830576">Värskenda võrke</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Seadista võrk</translation>
 <translation id="230927227160767054">Leht soovib installida teenusetöötleja.</translation>
 <translation id="2309620859903500144">Sellel saidil on juurdepääs teie liikumis- ja valgusanduritele blokeeritud.</translation>
-<translation id="2311075084924370935">Selleks et teid kalendri, meeldetuletuste, lendude ja muuga aidata, vajab assistent juurdepääsu teie veebi- ja rakendustegevuste ning seadme teabele ning hääl- ja helitoimingute seadetele.</translation>
+<translation id="2315414688463285945">Linuxi failide seadistamisel ilmnes viga. Proovige uuesti.</translation>
 <translation id="2315821125498993513">Telefoniga ei õnnestunud ühendada. <ph name="LINK_BEGIN" />Vaadake lisateavet.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Ei, aitäh</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% on valmis</translation>
 <translation id="2318143611928805047">Paberi suurus</translation>
 <translation id="2318817390901984578">Androidi rakenduste kasutamiseks laadige ja värskendage oma seadet <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Praegune inkognito seanss (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Turvavõtme kasutamine rakendusega <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Päised ja jalused</translation>
 <translation id="2325650632570794183">Seda failitüüpi ei toetata. Külastage Chrome'i veebipoodi, et leida rakendus, mis avaks seda tüüpi faili.</translation>
 <translation id="2326931316514688470">&amp;Laadi rakendus uuesti</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Lisa failide võrguhoidla</translation>
 <translation id="2367972762794486313">Rakenduste kuvamine</translation>
 <translation id="2369536625682139252">Kõik saidi <ph name="SITE" /> talletatud andmed peale küpsisefailide kustutatakse.</translation>
-<translation id="237058345584060620">Siduge oma võti selle seadmega, et saaksite seda kasutada oma kontole sisselogimiseks</translation>
 <translation id="2371076942591664043">Ava, kui on &amp;valmis</translation>
 <translation id="2377319039870049694">Lülita loendivaatele</translation>
 <translation id="2377667304966270281">Tõsised vead</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Teie telefoni ei õnnestu leida. Veenduge, et seadme <ph name="DEVICE_TYPE" /> Bluetooth oleks sisse lülitatud. &lt;a&gt;Lisateave&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Lisa &amp;kaust ...</translation>
 <translation id="249113932447298600">Kahjuks praegu seadet <ph name="DEVICE_LABEL" /> ei toetata.</translation>
-<translation id="2492040222276243256">Vajutage ja hoidke turvavõtmel olevat nuppu all vähemalt viis sekundit</translation>
 <translation id="2493021387995458222">Valib ühe sõna korraga</translation>
 <translation id="249303669840926644">Registreerimise lõpetamine ebaõnnestus</translation>
 <translation id="2495777824269688114">Avastage rohkem funktsioone või hankige vastuseid. Abi saamiseks tehke valik „?”.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Kokku: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Pikk</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (platvorm <ph name="PLATFORM_VERSION" />), <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">See vaheleht jagab teie ekraani.</translation>
 <translation id="2586657967955657006">Lõikelaud</translation>
 <translation id="2586672484245266891">Sisestage lühem URL</translation>
 <translation id="2587922270115112871">Jälgitava kasutaja loomine ei loo Google'i kontot ning kasutaja seaded ja andmed
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> kasutab <ph name="USAGE" /> MB kettaruumi.</translation>
 <translation id="2633212996805280240">Kas eemaldada „<ph name="EXTENSION_NAME" />”?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> ei suutnud installimist lõpule viia, kuid jätkab käitamist kettakujutiselt.</translation>
-<translation id="2633326789677284179">Otsige üles võtme tagaküljele prinditud nimi</translation>
 <translation id="2635276683026132559">Allkirjastamine</translation>
 <translation id="2636625531157955190">Chrome ei pääse kujutisele juurde.</translation>
 <translation id="2638087589890736295">Sünkroonimise alustamiseks on vaja parooli</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Lisa <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Selleks et hankida paroolid kõikidesse oma seadmetesse, logige Chrome'i sisse.</translation>
 <translation id="2875698561019555027">(Chrome'i vealehed)</translation>
-<translation id="2876441201733326392">Kasutage USB-turvavõtit</translation>
 <translation id="288042212351694283">Juurdepääs teie Universal 2nd Factori seadmetele</translation>
 <translation id="2881966438216424900">Viimati kasutatud:</translation>
 <translation id="2882943222317434580">Teenus <ph name="IDS_SHORT_PRODUCT_NAME" /> taaskäivitatakse ja lähtestatakse hetke pärast</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Anonüümselt teavitamine</translation>
 <translation id="2984337792991268709">Täna kell <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Sellel lehel pole lubatud MIDI-seadmeid täielikult juhtida.</translation>
-<translation id="2988599644347283908">Märkus. Andmed, mida need seaded juhivad, saab salvestada ja neid saab kasutada mis tahes Google'i teenuses, kus olete sisse logitud, et pakkuda teile isikupärastatud kasutuskogemust ja kasulikke reklaame. Saidil account.google.com on teil võimalik näha oma andmeid, neid kustutada ja muuta oma seadeid.</translation>
 <translation id="2989474696604907455">pole ühendatud</translation>
 <translation id="2989786307324390836">DER-i kodeeritud kahendsüsteem, üks sertifikaat</translation>
 <translation id="2993517869960930405">Rakenduse teave</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Vahekaartide summutuse tühistamine</translation>
 <translation id="3053013834507634016">Sertifikaadi võtme kasutus</translation>
 <translation id="3057861065630527966">Fotode ja videote varundamine</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Luba funktsioon Vali ja kuula</translation>
 <translation id="3061707000357573562">Teenuse paikamine</translation>
 <translation id="3064410671692449875">Andmeid pole piisavalt</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Välist crx-faili ei saa faili <ph name="TEMP_CRX_FILE" /> kopeerida.</translation>
 <translation id="3090871774332213558">Seade „<ph name="DEVICE_NAME" />” on seotud</translation>
 <translation id="3101709781009526431">Kuupäev ja kellaaeg</translation>
-<translation id="3104900172193317662">Turvavõtme kasutamise lubamine</translation>
 <translation id="310671807099593501">Sait kasutab Bluetoothi</translation>
 <translation id="3115128645424181617">Teie telefoni ei õnnestu leida. Veenduge, et see oleks käepärast ja Bluetooth oleks sisse lülitatud.</translation>
 <translation id="3115147772012638511">Puhvri ootel...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Ei sisaldu sertifikaadis&gt;</translation>
 <translation id="3254434849914415189">Valige vaikerakendus <ph name="FILE_TYPE" />-failide jaoks:</translation>
 <translation id="3254516606912442756">Automaatne ajavööndi tuvastamine on keelatud</translation>
-<translation id="3254772308201947812">Jah, olen nõus</translation>
 <translation id="3264544094376351444">Seriifideta font</translation>
 <translation id="3264547943200567728">Chromeboxi võrgu seadistamine ebaõnnestus</translation>
 <translation id="3264582393905923483">Kontekst</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Sortimisalus:</translation>
 <translation id="3737274407993947948">Viga Linuxi installimisel …</translation>
 <translation id="3737536731758327622">Teie allalaadimised kuvatakse siin</translation>
-<translation id="3738671331307774213">Teie identiteedi kinnitamine aitab teie privaatseid andmeid kaitsta</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Kas soovite avada rakenduse <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> kuvatakse nüüd administraatorikonsoolis</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sünkroonimine on peatatud</translation>
 <translation id="3860381078714302691">Tere tulemast teenusesse Hangouts Meet!</translation>
+<translation id="3861241522664181545">Leht on peatatud.</translation>
 <translation id="3862134173397075045">Tere tulemast Chrome'is Cast'i avastama!</translation>
 <translation id="3862788408946266506">Rakendus manifesti atribuudiga „kiosk_only” tuleb installida Chrome OS-i kioskirežiimis</translation>
 <translation id="3865414814144988605">Eraldusvõime</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Selle sisselülitamiseks <ph name="BEGIN_LINK" />lähtestage sünkroonimine<ph name="END_LINK" />, et eemaldada oma sünkroonimisparool</translation>
 <translation id="3878840326289104869">Jälgitava kasutaja loomine</translation>
 <translation id="3879748587602334249">Allalaadimishaldur</translation>
-<translation id="3880709822663530586">Teie turvavõti töötab ainult siis, kui seadme Bluetooth on sisse lülitatud</translation>
 <translation id="3888550877729210209">Märkmete tegemine rakendusega <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Lisa OpenVPN/L2TP …</translation>
 <translation id="3893536212201235195">Juurdepääsetavuse seadete lugemine ja muutmine</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Turvamoodulit valmistatakse ette, palun oodake (see võib võtta mõne minuti) …</translation>
 <translation id="4099060993766194518">Kas taastada vaikeotsingumootor?</translation>
 <translation id="4100733287846229632">Seadmes on kriitiliselt vähe kettaruumi</translation>
+<translation id="4103091233824664032">Ekraaniluku seadistamiseks ja sisselogimiseks sisestage parool</translation>
 <translation id="4104163789986725820">&amp;Ekspordi...</translation>
 <translation id="4105563239298244027">Saate Google Drive'is tasuta 1 TB vaba ruumi</translation>
 <translation id="4107048419833779140">Salvestusseadmete tuvastamine ja väljutamine</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Funktsioon Öövalgus lülitub automaatselt välja päikesetõusul</translation>
 <translation id="4138267921960073861">Kuva sisselogimisekraanil kasutajanimed ja fotod</translation>
 <translation id="4144218403971135344">Vaadake parema kvaliteediga videoid ja säästke aku tööiga. Videot esitatakse ainult Casti toega ekraanikuval.</translation>
-<translation id="414599683948988413">Kasutage oma turvavõtit USB-ga</translation>
 <translation id="4146026355784316281">Ava alati süsteemivaaturiga</translation>
 <translation id="4146785383423576110">Lähtestamine ja puhastamine</translation>
 <translation id="4147897805161313378">Google Photos</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Keela</translation>
 <translation id="4400367121200150367">Siin kuvatakse saidid, millel paroole kunagi ei salvestata</translation>
 <translation id="4400632832271803360">Ülemise rea klahvide toimingu vahetamiseks hoidke all käivitajaklahvi</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">A&amp;bi</translation>
 <translation id="4409697491990005945">Veerised</translation>
 <translation id="4411578466613447185">Koodi allkirjastaja</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome võib teie arvutist otsida kahjulikku tarkvara ja selle eemaldada</translation>
 <translation id="4481530544597605423">Sidumata seadmed</translation>
 <translation id="4482194545587547824">Google võib kasutada teie sirvimisajalugu otsingu ja teiste Google'i teenuste isikupärastamiseks</translation>
+<translation id="4493287891836751813">Tutvustame teie Google'i assistenti</translation>
 <translation id="4495419450179050807">Ära sellel lehel kuva</translation>
 <translation id="4499718683476608392">Saate lubada krediitkaardiandmete automaattäite, et täita vormid ühe klikiga</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> jooksis kokku</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Summuta vahekaart</translation>
 <translation id="4742746985488890273">Riiulile kinnitamine</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Vaadake, kuidas rakendusi värskendada<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Sõnumid</translation>
 <translation id="4746971725921104503">Tundub, et te juba haldate sellise nimega kasutajat. Kas soovisite <ph name="LINK_START" />importida kasutajat <ph name="USER_DISPLAY_NAME" /> sellesse seadmesse<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Vaja on Chrome'i veebipoest pärinevat laiendust</translation>
 <translation id="4750394297954878236">Soovitused</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Profileerimine lubatud</translation>
 <translation id="4823484602432206655">Loe ja muuda kasutaja ja seadme seadeid</translation>
 <translation id="4823651846660089135">Seade on kirjutuskaitstud</translation>
+<translation id="4823955295535347797">Pääsete assistendile alati juurde, kui ekraan on sisse lülitatud ja ütlete „Ok Google”.</translation>
 <translation id="4828937774870308359">Austraalia</translation>
 <translation id="4829768588131278040">Seadista PIN-kood</translation>
 <translation id="4830502475412647084">OS-i värskenduse installimine</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Aidake meie inseneridel seda kokkujooksmist uurida ja see parandada. Võimaluse korral loetlege täpselt tehtud toimingud. Ükski pisiasi pole liiga väike!</translation>
 <translation id="4876895919560854374">Ekraani lukustamine ja avamine</translation>
 <translation id="4877017884043316611">Seo Chromeboxiga</translation>
+<translation id="4879491255372875719">Automaatne (vaikimisi)</translation>
 <translation id="4880214202172289027">Helitugevuse liugur</translation>
 <translation id="4880328057631981605">Pääsupunkti nimi</translation>
 <translation id="4880520557730313061">Automaatparandus</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">üles</translation>
 <translation id="5100114659116077956">Uusimate funktsioonide teieni toomiseks vajab Chromebox värskendamist.</translation>
 <translation id="5101042277149003567">Ava kõik järjehoidjad</translation>
-<translation id="5104546332954397226">Kasutage oma telefoni turvavõtmena</translation>
 <translation id="5105855035535475848">Kinnita vahelehed</translation>
 <translation id="5108967062857032718">Seaded – Androidi rakenduste eemaldamine</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">Ava suletud vaheleht &amp;uuesti</translation>
 <translation id="52912272896845572">Privaatvõtme fail on kehtetu.</translation>
 <translation id="529175790091471945">Vorminda see seade</translation>
-<translation id="5292195676005197571">Enamiku võtmete kasutamiseks vajutage lihtsalt nuppu</translation>
 <translation id="5293170712604732402">Seadete taastamine algsetele vaikevalikutele</translation>
 <translation id="5297082477358294722">Parool salvestati. Vaadake ja hallake salvestatud paroole siin: <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Teema on loonud</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Nõustun</translation>
 <translation id="532943162177641444">Puudutage seadmes <ph name="PHONE_NAME" /> märguannet, et seadistada mobiilne leviala, mida see seade saab kasutada.</translation>
 <translation id="5329858601952122676">&amp;Kustuta</translation>
+<translation id="5329945517224105597">Assistent võib pakkuda asjakohasemaid soovitusi ja ekraanil kuvatuga seotud konkreetseid toiminguid. Seda saate muuta assistendi seadetes</translation>
 <translation id="5330145655348521461">Failid on avatud erinevatel töölaudadel. Faili vaatamiseks avage <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />).</translation>
 <translation id="5330512191124428349">Hangi teavet</translation>
 <translation id="5331069282670671859">Teil pole selles kategoorias sertifikaate</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Luba saitidel heli esitada</translation>
 <translation id="5390284375844109566">Indekseeritud andmebaas</translation>
 <translation id="5390743329570580756">Saada:</translation>
-<translation id="5392327114396848796">Kasutage sisseehitatud turvavõtit</translation>
 <translation id="5397794290049113714">Teie</translation>
 <translation id="5398572795982417028">Piiridest väljas olev leht, limiit on <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Reklaamid on blokeeritud</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Sulgege arhiivis või virtuaalsel kettal kõik failid ja seejärel proovige uuesti.</translation>
 <translation id="5687326903064479980">Ajavöönd</translation>
+<translation id="568824803367507355">Otsetee sõna „Ok Google” tuvastus</translation>
 <translation id="5689516760719285838">Asukoht</translation>
 <translation id="56907980372820799">Lingi andmed</translation>
 <translation id="5691511426247308406">Perekond</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kaamera või mikrofon salvestab</translation>
 <translation id="5835754902560991078">ülilühike (0,6 s)</translation>
 <translation id="5838456317242088717">Praegune inkognito seanss</translation>
-<translation id="5842053879378944309">Kasutage USB turvavõtit rakendusega <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Bluetoothi lubamine</translation>
 <translation id="5843250171025351504">Teie seade ei ühildu enam administraatori määratud kliendi minimaalse versiooniga. Värskendage sisselogimiseks.</translation>
 <translation id="5846929185714966548">Vahekaart 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Enam ei toetata.</translation>
 <translation id="6317369057005134371">Rakenduse akna ootamine ...</translation>
 <translation id="6318407754858604988">Allalaadimist alustati</translation>
-<translation id="6322653941595359182">Saatke ja võtke oma Chromebookis vastu tekstisõnumeid</translation>
 <translation id="6324916366299863871">Otsetee muutmine</translation>
 <translation id="6325191661371220117">Keela automaatne käivitamine</translation>
 <translation id="6326175484149238433">Eemalda Chrome'ist</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Saada <ph name="BEGIN_LINK1" />süsteemiteave<ph name="END_LINK1" /> ja <ph name="BEGIN_LINK2" />mõõdikud<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Sünkroonimise ja isikupärastamise valikud</translation>
 <translation id="6397592254427394018">Ava kõik järjehoidjad &amp;inkognito aknas</translation>
+<translation id="639777613761517128">Kui soovite avada faile rakendusega $1, kopeerige need esmalt Linuxi failide kausta.</translation>
 <translation id="6398715114293939307">Google Play poe eemaldamine</translation>
 <translation id="6398765197997659313">Välju täisekraanilt</translation>
 <translation id="6399774419735315745">Spioon</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Seda nime ei saa faili või kausta nimena kasutada</translation>
 <translation id="642469772702851743">Selle seadme (seerianumber: <ph name="SERIAL_NUMBER" />) lukustas omanik.</translation>
 <translation id="6426200009596957090">Ava ChromeVoxi seaded</translation>
-<translation id="6427415464407526111">Turvavõtme valimine</translation>
 <translation id="6429384232893414837">Viga värskendamisel</translation>
 <translation id="6430814529589430811">Base64 kodeeritud ASCII, üks sertifikaat</translation>
 <translation id="6431217872648827691">Kõik andmed on krüptitud teie Google'i parooliga
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Arendaja režiim</translation>
 <translation id="6655458902729017087">Peida kontod</translation>
 <translation id="6657585470893396449">Parool</translation>
-<translation id="6658023813581644008">Sisselogimiseks funktsiooni Smart Lock seadistamiseks sisestage oma parool</translation>
 <translation id="6659213950629089752">Seda lehte suumis laiendus „<ph name="NAME" />”</translation>
 <translation id="6659594942844771486">Vaheleht</translation>
 <translation id="6664237456442406323">Kahjuks on teie arvuti seadistatud vigase riistvara ID-ga. See ei lase Chrome OS-i värskendada uusimate turvaparandustega ja teie arvuti <ph name="BEGIN_BOLD" />võib pahatahtlike rünnakute osas haavatav olla<ph name="END_BOLD" />.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Süsteemiteabe eelvaade</translation>
 <translation id="6886871292305414135">Ava link uuel &amp;vahelehel</translation>
 <translation id="6892812721183419409">Ava link kasutajana <ph name="USER" /></translation>
-<translation id="6896398788631624004">Ühendage ja aktiveerige turvavõti</translation>
 <translation id="6896758677409633944">Kopeeri</translation>
 <translation id="6898440773573063262">Kioskirakendusi saab nüüd seadistada nii, et need käivituksid seadmes automaatselt.</translation>
 <translation id="6898699227549475383">Organisatsioon (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Kasutaja:</translation>
 <translation id="6916590542764765824">Laienduste haldamine</translation>
 <translation id="6920989436227028121">Ava tavalise vahelehena</translation>
+<translation id="6921709132208495314">Katkesta sel lehel andmemahu kasutamine</translation>
 <translation id="6922128026973287222">Salvestage andmeid ja sirvige kiiremini Google'i andmemahu säästjaga. Lisateabe saamiseks klõpsake.</translation>
 <translation id="6923132443355966645">Kerimine/klõpsamine</translation>
 <translation id="6930242544192836755">Kestus</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Seade</translation>
+<translation id="6968288415730398122">Ekraaniluku seadistamiseks sisestage parool</translation>
 <translation id="6970480684834282392">Käivitamistüüp</translation>
 <translation id="6970856801391541997">Prindi valitud leheküljed</translation>
 <translation id="6972180789171089114">Heli/video</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Otsingumootorid</translation>
 <translation id="6978611942794658017">See fail on mõeldud Windowsi tarkvara kasutavale arvutile. See ei ühildu Chrome OS-i käitava seadmega. Otsige sobivat asendusrakendust Chrome'i veebipoest.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Vaigista (vaikeseade)</translation>
 <translation id="6979737339423435258">Algusest</translation>
 <translation id="6980462514016882061">Google võib kasutada teie sirvimisajalugu otsingu, reklaamide ja muude Google'i teenuste isikupärastamiseks</translation>
 <translation id="6981982820502123353">Juurdepääsetavus</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />See on üldine teave teie seadme ja selle kasutamise kohta (nt aku tase, rakenduste kasutamine ja võrguühendus). Andmeid kasutatakse Google'i toodete ja teenuste täiustamiseks. Teatud koondandmed aitavad ka partneritel, näiteks Androidi arendajatel oma rakendusi ja tooteid täiustada.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Funktsiooni väljalülitamine ei mõjuta teie seadme võimet saata hädavajalike teenuste, näiteks süsteemivärskenduste ja turvafunktsioonide jaoks vajalikku teavet.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Seda funktsiooni saab juhtida jaotises Seaded &gt; Google. Tehke menüüs valik Kasutus ja diagnostika.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Leidsime teie kontolt <ph name="NUMBER_OF_APPS" /> rakendust, mida saab selles seadmes kasutada.</translation>
 <translation id="7199158086730159431">A&amp;bi hankimine</translation>
 <translation id="7200083590239651963">Seadistuse valimine</translation>
 <translation id="720110658997053098">Jäta seade püsivalt kioskirežiimile.</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Ekraanilukk ja sisselogimine</translation>
 <translation id="7229570126336867161">Vajalik EVDO</translation>
 <translation id="7230787553283372882">Teksti suuruse kohandamine</translation>
-<translation id="7231589788477569369">Nende seadete abil saate assistendi täieliku kasutuskogemuse</translation>
 <translation id="7232750842195536390">Ümbernimetamine ebaõnnestus</translation>
 <translation id="7234406375359457793">Viga jagatava üksuse ühendamisel. Määratud jagatavat üksust ei toetata.</translation>
 <translation id="7238585580608191973">SHA-256 sõrmejälg</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Kustuta ja logi välja</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (parim)</translation>
 <translation id="7246339268451149667">Kas lubada sõrmejäljega avamine?</translation>
-<translation id="7246489301073081944">Väljumiseks hoidke all klahve |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />|</translation>
 <translation id="7246947237293279874">FTP-puhverserver</translation>
 <translation id="725109152065019550">Kahjuks on teie administraator keelanud teie kontol välismäluseadme.</translation>
 <translation id="7253521419891527137">&amp;Lisateave</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Kontrolli sobilikkust</translation>
 <translation id="749028671485790643">Isik <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC-aadress</translation>
-<translation id="7490950320178383728">Kasutage turvavõtit Bluetoothiga</translation>
 <translation id="7491962110804786152">Tabulaator</translation>
 <translation id="7493386493263658176">Laiendus <ph name="EXTENSION_NAME" /> võib koguda kogu sisestatud teksti, sh isiklikud andmed, nagu paroolid ja krediitkaardinumbrid. Kas soovite seda laiendust kasutada?</translation>
 <translation id="7494065396242762445">Ava Windowsi seaded</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">Need Drive'i failid pole veel jagatud</translation>
 <translation id="7851457902707056880">Sisse saab logida vaid omaniku kontoga. Taaskäivitage seade ja logige sisse omaniku kontoga. Seade taaskäivitub automaatselt 30 sekundi pärast.</translation>
 <translation id="7851716364080026749">Blokeeri alati juurdepääs kaamerale ja mikrofonile</translation>
-<translation id="7851816139220202929">Kasutage turvavõtit NFC-ga</translation>
 <translation id="7853747251428735">Rohkem töö&amp;riistu</translation>
 <translation id="7856006446339184955">Saatke süsteemi andmeid. See seade saadab Google'ile praegu diagnostika- ja kasutusandmeid. Selle <ph name="BEGIN_LINK1" />seade<ph name="END_LINK1" /> on jõustanud omanik. Kui lülitasite sisse rohkem veebi- ja rakendustegevusi, salvestatakse see teave teie kontole, et saaksite seda hallata jaotises Minu tegevused. <ph name="BEGIN_LINK2" />Lisateave<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Lisa erand</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">PPP autentimine ebaõnnestus vale kasutajanime või parooli tõttu</translation>
 <translation id="7974566588408714340">Proovi uuesti, kasutades laiendust <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Üleskannimine</translation>
+<translation id="79766959863778284">XR-i isoleeritud seadmeteenus</translation>
 <translation id="7977551819349545646">Chromeboxi värskendamine ...</translation>
 <translation id="7978412674231730200">Privaatvõti</translation>
 <translation id="7978450511781612192">See logib teid teie Google'i kontodelt välja. Teie järjehoidjaid, ajalugu, paroole ja muud ei sünkroonita enam.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Lisa printer</translation>
 <translation id="8032244173881942855">Vahelehte ei õnnestu üle kanda.</translation>
 <translation id="8033827949643255796">valitud</translation>
-<translation id="8033958968890501070">Ajalõpp</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Ava kõik &amp;inkognito aknas}=1{Ava &amp;inkognito aknas}other{Ava kõik (#) &amp;inkognito aknas}}</translation>
 <translation id="8037117027592400564">Kogu kõnesünteesil põhineva teksti lugemine</translation>
 <translation id="8037357227543935929">Küsi (vaikimisi)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Kogu teie ekraan</translation>
 <translation id="8322814362483282060">Sellel lehel on juurdepääs teie mikrofonile blokeeritud.</translation>
 <translation id="8326478304147373412">PKCS 7, sertifikaadiahel</translation>
+<translation id="8327039559959785305">Linuxi failide ühendamisel ilmnes viga. Proovige uuesti.</translation>
 <translation id="8329978297633540474">Lihttekst</translation>
 <translation id="8335587457941836791">Riiulilt vabastamine</translation>
 <translation id="8336153091935557858">Eile kell <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4843,7 +4835,6 @@
 <translation id="8425213833346101688">Muuda</translation>
 <translation id="8425492902634685834">Kinnita tegumiribale</translation>
 <translation id="8425755597197517046">Kl&amp;eebi ja otsi</translation>
-<translation id="8426117172745886547">Hoiata enne väljumist (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Luba</translation>
 <translation id="8427292751741042100">manustatud mis tahes hostile</translation>
 <translation id="8428213095426709021">Seaded</translation>
@@ -4931,7 +4922,6 @@
 <translation id="8551388862522347954">Litsentsid</translation>
 <translation id="8553342806078037065">Teiste inimeste haldamine</translation>
 <translation id="8554899698005018844">Keel puudub</translation>
-<translation id="8557347704037207368">Märguannete saatmine teenusest Android Web Messages</translation>
 <translation id="855773602626431402">Lehel keelati liivakastist eemaldatud pistikprogrammi käitamine.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Pildi dekodeerija</translation>
@@ -5044,6 +5034,7 @@
 <translation id="8714154114375107944">Toe lõpetamine</translation>
 <translation id="8714838604780058252">Taustagraafika</translation>
 <translation id="8715480913140015283">Taustal töötav vaheleht kasutab teie kaamerat</translation>
+<translation id="8716931980467311658">Kas kustutada seadme <ph name="DEVICE_TYPE" /> kaustast Linuxi failid kõik Linuxi rakendused ja andmed?</translation>
 <translation id="8719653885894320876">Pistikprogrammi <ph name="PLUGIN_NAME" /> allalaadimine ebaõnnestus</translation>
 <translation id="8723829621484579639">Inkognito alamraamid: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Kuva kaustas</translation>
@@ -5207,7 +5198,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – jooksis kokku</translation>
 <translation id="8983677657449185470">Aidake ohutut sirvimist paremaks muuta</translation>
 <translation id="8984654317541110628">Failide jagamise URL</translation>
-<translation id="8984872292925913496">Leidke võtme tagaküljelt kuuekohaline PIN-kood</translation>
 <translation id="8986362086234534611">Unusta</translation>
 <translation id="8986494364107987395">Saada kasutusstatistika ja krahhiaruanded automaatselt Google'ile</translation>
 <translation id="8987927404178983737">kuu</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 1197de5..2364170 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">برجسته کردن شیء با فوکوس صفحه‌کلید در صورت تغییر</translation>
 <translation id="1173894706177603556">تغییر نام</translation>
 <translation id="1174073918202301297">میان‌بر اضافه شد</translation>
-<translation id="1174808551768282258">‏قفل Chromebook را با تلفنتان باز کنید. <ph name="LINK_BEGIN" />بیشتر بدانید.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;چاپ...</translation>
 <translation id="117624967391683467">درحال کپی <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">‏ممکن است Google از سابقه مرور شما برای شخصی‌سازی «جستجو»، آگهی و سایر خدمات استفاده کند. هرزمان خواستید می‌توانید این مورد را در myaccount.google.com/activitycontrols/search تغییر دهید</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">مکث</translation>
 <translation id="1181037720776840403">حذف</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> در حافظه پنهان محلی نصب نمی‌شود.</translation>
-<translation id="1183378459020939734">آماده‌اید «کلید امنیتی»تان را مرتبط کنید؟</translation>
 <translation id="1185924365081634987">همچنین می‌توانید برای برطرف کردن این خطای شبکه، <ph name="GUEST_SIGNIN_LINK_START" />به عنوان مهمان مرور کنید<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">پاک کردن نرم‌افزار مضر</translation>
 <translation id="1187722533808055681">تعداد خروج از حالت بی‌حرکت</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">هیچ دستگاه بلوتوثی یافت نشد</translation>
 <translation id="1306606229401759371">تغییر تنظیمات</translation>
 <translation id="1307559529304613120">‏متأسفیم! سیستم نتوانست کد دسترسی دراز مدت به API را برای این دستگاه ذخیره کند.</translation>
+<translation id="1307931752636661898">‏نمی‌توان فایل‌های Linux را مشاهده کرد</translation>
 <translation id="1313405956111467313">پیکربندی پراکسی خودکار</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">‏نشانک‌ها، سابقه و سایر تنظیماتتان با حساب Google شما همگام خواهند شد.</translation>
@@ -364,6 +363,7 @@
 <translation id="1530838837447122178">باز کردن تنظیمات موشواره و صفحه لمسی دستگاه</translation>
 <translation id="1531004739673299060">پنجره برنامه</translation>
 <translation id="15373452373711364">نشانگر موشواره بزرگ</translation>
+<translation id="1538729222189715449">‏درحال باز کردن فایل‌های Linux…</translation>
 <translation id="1540605929960647700">فعال کردن حالت نمایشی</translation>
 <translation id="1543284117603151572">‏وارد شده از Edge</translation>
 <translation id="1545177026077493356">حالت کیوسک خودکار</translation>
@@ -539,7 +539,6 @@
 <translation id="1782530111891678861">تغییر حالت هاد لمسی</translation>
 <translation id="1784849162047402014">فضای ذخیره‌سازی دستگاه رو به اتمام است</translation>
 <translation id="1786636458339910689">‏درایوهای گروه</translation>
-<translation id="1792161662640298233">درحال به‌تأیید رساندن کلید امنیتی</translation>
 <translation id="1792619191750875668">نمایشگر گسترده</translation>
 <translation id="1794791083288629568">برای کمک به ما در رفع این مشکل بازخورد ارسال کنید.</translation>
 <translation id="1795214765651529549">استفاده از کلاسیک</translation>
@@ -622,7 +621,6 @@
 <translation id="1910721550319506122">خوش‌آمدید!</translation>
 <translation id="1914326953223720820">سرویس خارج کردن از فشرده‌سازی</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">بسته به تنظیمات حسابتان، تجربه استفاده از «دستیار» ممکن است به چیزهایی مانند نتایج وب،‌ لطیفه و اطلاعات محلی محدود شود.</translation>
 <translation id="1916502483199172559">چهره‌نمای پیش‌فرض قرمز</translation>
 <translation id="1918141783557917887">&amp;کوچک تر</translation>
 <translation id="1919345977826869612">آگهی‌ها</translation>
@@ -791,6 +789,7 @@
 <translation id="2178098616815594724">افزایه <ph name="PEPPER_PLUGIN_NAME" /> در <ph name="PEPPER_PLUGIN_DOMAIN" /> می‌خواهد به رایانه شما دسترسی پیدا کند</translation>
 <translation id="2178614541317717477">‏بی اعتبارشدن CA</translation>
 <translation id="218070003709087997">استفاده از شماره برای نشان دادن تعداد کپی‌های چاپ (۱ تا ۹۹۹).</translation>
+<translation id="2184515124301515068">‏Chrome انتخاب کند سایت‌ها چه موقع صدا پخش کنند (توصیه‌شده)</translation>
 <translation id="2187895286714876935">خطای وارد کردن مجوز سرور</translation>
 <translation id="2187906491731510095">افزونه‌ها به‌روزرسانی شدند</translation>
 <translation id="2188881192257509750">باز کردن <ph name="APPLICATION" /></translation>
@@ -835,6 +834,7 @@
 <translation id="2241053333139545397">خواندن و تغییر داده‌هایتان در تعدادی از وب‌سایت‌ها</translation>
 <translation id="2242687258748107519">اطلاعات فایل</translation>
 <translation id="2243194103992005307">برای حذف برنامه‌ها به «تنظیمات &gt; برنامه‌ها یا مدیر برنامه» بروید. سپس روی برنامه‌ای که می‌خواهید حذف نصب شود ضربه بزنید (ممکن است برای پیدا کردن برنامه نیاز باشد صفحه را تند به راست یا چپ بکشید). سپس روی «حذف نصب» یا «غیرفعال کردن» ضربه بزنید.</translation>
+<translation id="224940702122312781">این صفحه داده زیادی مصرف می‌کند.</translation>
 <translation id="2249605167705922988">برای مثال 5-1، 8، 13-11</translation>
 <translation id="2251218783371366160">بازکردن با نظاره‌گر سیستم</translation>
 <translation id="225163402930830576">بازخوانی شبکه‌ها</translation>
@@ -875,14 +875,13 @@
 <translation id="2307462900900812319">پیکربندی شبکه</translation>
 <translation id="230927227160767054">این صفحه، می‌خواهد یک کنترل‌کننده سرویس نصب کند.</translation>
 <translation id="2309620859903500144">دسترسی این سایت به حسگرهای نور یا حرکت مسدود شده است.</translation>
-<translation id="2311075084924370935">برای اینکه «دستیار» بتواند در رابطه با تقویم، یادآوری‌ها، پروازها و غیره به شما کمک کند، به تنظیمات «فعالیت وب و برنامه»، «اطلاعات دستگاه» و «فعالیت گفتاری و شنیداری» نیاز دارد.</translation>
+<translation id="2315414688463285945">‏هنگام پیکربندی فایل‌های Linux خطایی روی داد. لطفاً دوباره امتحان کنید.</translation>
 <translation id="2315821125498993513">ارتباط با تلفن برقرار نشد. <ph name="LINK_BEGIN" />بیشتر بدانید.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">نه متشکرم</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% کامل شد</translation>
 <translation id="2318143611928805047">اندازه کاغذ</translation>
 <translation id="2318817390901984578">‏برای استفاده از برنامه‌های Android، ‏<ph name="DEVICE_TYPE" /> خود را شارژ و به‌روزرسانی کنید.</translation>
 <translation id="2318923050469484167">جلسه ناشناس کنونی (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">استفاده از کلید امنیتی با <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">سرصفحه‌ها و پانویس‌ها</translation>
 <translation id="2325650632570794183">‏این نوع فایل پشتیبانی نمی‌شود. لطفاً فروشگاه وب Chrome را بازدید کنید تا برنامه‌ای را پیدا کنید که بتواند این نوع فایل را باز کند.</translation>
 <translation id="2326931316514688470">&amp;تازه‌سازی برنامه</translation>
@@ -916,7 +915,6 @@
 <translation id="2367199180085172140">افزودن فایل هم‌رسانی</translation>
 <translation id="2367972762794486313">نمایش برنامه‌ها</translation>
 <translation id="2369536625682139252">همه داده‌هایی که <ph name="SITE" /> ذخیره کرده به‌جز کوکی‌ها حذف خواهد شد.</translation>
-<translation id="237058345584060620">کلیدتان را با این دستگاه مرتبط کنید تا بتوانید از آن برای ورود به سیستم حسابتان استفاده کنید</translation>
 <translation id="2371076942591664043">پس از &amp;تکمیل باز شود</translation>
 <translation id="2377319039870049694">جابه‌جایی به نمای فهرستی</translation>
 <translation id="2377667304966270281">خطاهای سخت‌افزاری</translation>
@@ -983,7 +981,6 @@
 <translation id="248861575772995840">‏تلفنتان پیدا نمی‌شود. مطمئن شوید بلوتوث <ph name="DEVICE_TYPE" /> روشن است. &lt;a&gt;بیشتر بدانید&lt;/a&gt;</translation>
 <translation id="2489918096470125693">افزودن &amp;پوشه...</translation>
 <translation id="249113932447298600">متأسفیم، دستگاه <ph name="DEVICE_LABEL" /> در حال حاضر پشتیبانی نمی‌شود.</translation>
-<translation id="2492040222276243256">دکمه روی «کلید امنیتی» را حداقل ۵ ثانیه فشار دهید و نگه‌دارید</translation>
 <translation id="2493021387995458222">"هر بار یک کلمه" را انتخاب کنید</translation>
 <translation id="249303669840926644">ثبت‌نام کامل نشد</translation>
 <translation id="2495777824269688114">قابلیت‌های بیشتری را کاوش کنید یا جواب‌ها را دریافت کنید. برای دریافت راهنمایی، «؟» را انتخاب کنید.</translation>
@@ -1053,6 +1050,7 @@
 <translation id="2580924999637585241">مجموع: <ph name="SHEETS_LABEL" /><ph name="NUMBER_OF_SHEETS" /></translation>
 <translation id="258095186877893873">طولانی</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (پلتفورم <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">این برگه درحال اشتراک‌گذاری صفحه‌نمایش شماست.</translation>
 <translation id="2586657967955657006">کلیپ‌بورد</translation>
 <translation id="2586672484245266891">لطفاً نشانی وب کوتاه‌تری وارد کنید</translation>
 <translation id="2587922270115112871">‏با ایجاد کاربر نظارت شده، حساب Google ایجاد نمی‌شود و تنظیمات و داده‌های آن در دستگاه‌های دیگری که دارای قابلیت همگام‌ساز Chrome هستند اعمال نمی‌شود. کاربر نظارت شده فقط در این دستگاه اعمال می‌شود.</translation>
@@ -1087,7 +1085,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> از <ph name="USAGE" /> مگابایت فضای دیسک را استفاده می‌کند.</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />" حذف شود؟</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> نمی‌تواند نصب را کامل انجام دهد، اما از تصویر دیسک خود همچنان اجرا می‌کند.</translation>
-<translation id="2633326789677284179">نام چاپ‌شده در پشت کلیدتان را پیدا کنید</translation>
 <translation id="2635276683026132559">امضا</translation>
 <translation id="2636625531157955190">‏Chrome نمی‌تواند به تصویر دسترسی پیدا کند.</translation>
 <translation id="2638087589890736295">برای شروع همگام‌سازی به عبارت عبور نیاز است</translation>
@@ -1255,7 +1252,6 @@
 <translation id="287286579981869940">افزودن <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">‏برای اینکه گذرواژه‌هایتان را در همه دستگاه‌ها دریافت کنید، به سیستم Chrome وارد شوید.</translation>
 <translation id="2875698561019555027">‏(صفحه‌های خطای Chrome)</translation>
-<translation id="2876441201733326392">‏استفاده از کلید امنیتی USB</translation>
 <translation id="288042212351694283">‏دسترسی به دستگاه‌های Universal 2nd Factor شما</translation>
 <translation id="2881966438216424900">آخرین دسترسی:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> راه‌اندازی مجدد و به صورت لحظه‌ای بازنشانی می‌شود</translation>
@@ -1323,7 +1319,6 @@
 <translation id="2982970937345031">گزارش به‌صورت ناشناس</translation>
 <translation id="2984337792991268709">امروز <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">‏این صفحه از داشتن کنترل کامل دستگاه‌های MIDI ممانعت شده است.</translation>
-<translation id="2988599644347283908">‏توجه: ممکن است داده‌هایی که این تنظیمات کنترل می‌کند با هدف ارائه تجربه شخصی‌شده و آگهی‌های مفید ذخیره شود و در هر سرویس Google که در آن به سیستم وارد شده‌اید استفاده شود. می‌توانید در account.google.com داده‌هایتان را ببینید، حذف کنید و تنظیماتتان را تغییر دهید.</translation>
 <translation id="2989474696604907455">متصل نیست</translation>
 <translation id="2989786307324390836">‏DER- رمزگذاری دودویی، تک گواهی</translation>
 <translation id="2993517869960930405">اطلاعات برنامه</translation>
@@ -1376,7 +1371,6 @@
 <translation id="304826556400666995">وصل کردن صدای برگه‌ها</translation>
 <translation id="3053013834507634016">کاربرد کلید گواهی</translation>
 <translation id="3057861065630527966">از عکس‌ها و ویدئوهایتان پشتیبان بگیرید</translation>
-<translation id="3059313675706898490">‏پیام‌های Android</translation>
 <translation id="3060379269883947824">فعال کردن «انتخاب برای شنیدن»</translation>
 <translation id="3061707000357573562">سرویس وصله</translation>
 <translation id="3064410671692449875">داده ناکافی</translation>
@@ -1405,7 +1399,6 @@
 <translation id="3090819949319990166">‏فایل خارجی crx در <ph name="TEMP_CRX_FILE" /> کپی نمی‌شود.</translation>
 <translation id="3090871774332213558">«<ph name="DEVICE_NAME" />» مرتبط شد</translation>
 <translation id="3101709781009526431">تاریخ و ساعت</translation>
-<translation id="3104900172193317662">اجازه استفاده از «کلید امنیتی» شما</translation>
 <translation id="310671807099593501">سایت درحال استفاده از بلوتوث شما است</translation>
 <translation id="3115128645424181617">تلفنتان پیدا نمی‌شود. مطمئن شوید در دسترس است و بلوتوث روشن است.</translation>
 <translation id="3115147772012638511">منتظر حافظهٔ پنهان...</translation>
@@ -1489,7 +1482,6 @@
 <translation id="3251759466064201842">&lt;جزئی از گواهی نیست&gt;</translation>
 <translation id="3254434849914415189">برنامه پیش‌فرض را برای فایل‌های <ph name="FILE_TYPE" /> انتخاب کنید:</translation>
 <translation id="3254516606912442756">تشخیص خودکار منطقه زمانی غیرفعال شده است</translation>
-<translation id="3254772308201947812">بله، موافقم</translation>
 <translation id="3264544094376351444">‏قلم Sans-Serif</translation>
 <translation id="3264547943200567728">‏راه‌اندازی شبکه Chromebox شما ناموفق بود</translation>
 <translation id="3264582393905923483">زمینه</translation>
@@ -1812,7 +1804,6 @@
 <translation id="3735740477244556633">مرتب کردن براساس</translation>
 <translation id="3737274407993947948">‏بروز خطا هنگام نصب Linux…</translation>
 <translation id="3737536731758327622">بارگیری‌هایتان در اینجا نشان داده می‌شود</translation>
-<translation id="3738671331307774213">تأیید هویت شما به محافظت از داده‌هایتان کمک می‌کند</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> باز شود؟</translation>
 <translation id="3741158646617793859">‏<ph name="DEVICE_NAME" /> اکنون در Admin Console نمایش داده خواهد شد</translation>
@@ -1906,6 +1897,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: همگام‌سازی موقتاً متوقف شد</translation>
 <translation id="3860381078714302691">‏به Hangouts Meet خوش آمدید</translation>
+<translation id="3861241522664181545">صفحه موقتاً متوقف شد.</translation>
 <translation id="3862134173397075045">‏به تجربه ارسال محتوا در Chrome خوش آمدید!</translation>
 <translation id="3862788408946266506">‏برنامه‌ای با ویژگی مانیفست «kiosk_only» باید در حالت کیوسک سیستم عامل Chrome نصب شود</translation>
 <translation id="3865414814144988605">وضوح</translation>
@@ -1920,7 +1912,6 @@
 <translation id="3873315167136380065">برای روشن کردن این گزینه، <ph name="BEGIN_LINK" />همگام‌سازی را بازنشانی کنید<ph name="END_LINK" /> تا عبارت عبور همگام‌سازی حذف شود</translation>
 <translation id="3878840326289104869">ایجاد کاربر نظارت شده</translation>
 <translation id="3879748587602334249">مدیریت بارگیری</translation>
-<translation id="3880709822663530586">«کلید امنیتی» فقط وقتی کار می‌کند که بلوتوث دستگاه روشن باشد</translation>
 <translation id="3888550877729210209">یادداشت‌برداری با <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">‏افزودن OpenVPN / L2TP…</translation>
 <translation id="3893536212201235195">خواندن و تغییر تنظیمات دسترس‌پذیری شما</translation>
@@ -2066,6 +2057,7 @@
 <translation id="4096824249111507322">مدول امن درحال آماده شدن است،‌ لطفاً منتظر بمانید (ممکن است چند دقیقه طول بکشد)…</translation>
 <translation id="4099060993766194518">موتور جستجوی پیش‌فرض بازیابی شود؟</translation>
 <translation id="4100733287846229632">فضای دستگاه خیلی کم است</translation>
+<translation id="4103091233824664032">برای پیکربندی قفل صفحه و ورود به سیستم، گذرواژه‌تان را وارد کنید</translation>
 <translation id="4104163789986725820">&amp;صادر کردن...</translation>
 <translation id="4105563239298244027">‏با Google Drive یک ترابایت فضای رایگان دریافت کنید</translation>
 <translation id="4107048419833779140">شناسایی و خارج کردن دستگاه‌های ذخیره‌سازی</translation>
@@ -2086,7 +2078,6 @@
 <translation id="4136203100490971508">«نور شب» هنگام طلوع آفتاب به‌طور خودکار خاموش می‌شود</translation>
 <translation id="4138267921960073861">نمایش نام‌های کاربری و عکس‌ها در صفحه ورود به سیستم</translation>
 <translation id="4144218403971135344">‏دریافت ویدیوی با کیفیت بهتر و افزایش ماندگاری شارژ باتری. ویدیو فقط در صفحه‌نمایش سازگار با Cast پخش خواهد شد.</translation>
-<translation id="414599683948988413">‏استفاده از کلید امنیتی با USB</translation>
 <translation id="4146026355784316281">همیشه با نظاره‌گر سیستم باز شود</translation>
 <translation id="4146785383423576110">بارنشانی و پاک کردن</translation>
 <translation id="4147897805161313378">Google Photos</translation>
@@ -2221,6 +2212,7 @@
 <translation id="4394049700291259645">غیر فعال کردن</translation>
 <translation id="4400367121200150367">سایت‌هایی که هرگز گذرواژه را ذخیره نمی‌کنند در اینجا نشان داده نخواهند شد</translation>
 <translation id="4400632832271803360">برای تغییر عملکرد کلیدهای ردیف بالا، کلید «راه‌انداز» را نگه‌دارید</translation>
+<translation id="4405117686468554883">‏‎*.jpeg،‏ ‎*.jpg،‏ ‎*.png</translation>
 <translation id="4408599188496843485">را&amp;هنما</translation>
 <translation id="4409697491990005945">حاشیه‌ها</translation>
 <translation id="4411578466613447185">امضا کننده کد</translation>
@@ -2269,6 +2261,7 @@
 <translation id="4480590691557335796">‏Chrome می‌تواند نرم‌افزار مضر را در رایانه‌تان پیدا کرده و آن را حذف کند</translation>
 <translation id="4481530544597605423">دستگاه‌های لغو ارتباط‌شده</translation>
 <translation id="4482194545587547824">‏Google ممکن است از سابقه مرورتان برای شخصی‌سازی جستجو و سایر سرویس‌های Google استفاده کند.</translation>
+<translation id="4493287891836751813">‏با «دستیار Google» خود آشنا شوید</translation>
 <translation id="4495419450179050807">در این صفحه نشان داده نشود</translation>
 <translation id="4499718683476608392">به تکمیل خودکار کارت اعتباری امکان می‌دهد فرم‌ها را با یک کلیک پر کند</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> خراب شده است</translation>
@@ -2429,6 +2422,7 @@
 <translation id="474217410105706308">بی‌صدا کردن برگه</translation>
 <translation id="4742746985488890273">پین به راه‌انداز</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />با نحوه به‌روزرسانی برنامه‌ها آشنا شوید<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">پیام‌ها</translation>
 <translation id="4746971725921104503">به نظر می‌رسد که شما از قبل در حال مدیریت کاربری با همان نام هستید. آیا مایلید <ph name="LINK_START" /><ph name="USER_DISPLAY_NAME" /> را به این دستگاه وارد کنید<ph name="LINK_END" />؟</translation>
 <translation id="4748762018725435655">‏نیازمند افزونه از فروشگاه وب Chrome است</translation>
 <translation id="4750394297954878236">پیشنهادات</translation>
@@ -2470,6 +2464,7 @@
 <translation id="4821935166599369261">&amp;ایجاد نمایه فعال شد</translation>
 <translation id="4823484602432206655">تغییر و خواندن تنظیمات کاربر و دستگاه</translation>
 <translation id="4823651846660089135">دستگاه فقط خواندنی است</translation>
+<translation id="4823955295535347797">‏هرزمان که صفحه‌نمایش روشن است با گفتن «Ok Google» به «دستیار» دسترسی داشته باشید.</translation>
 <translation id="4828937774870308359">استرالیایی</translation>
 <translation id="4829768588131278040">تنظیم پین</translation>
 <translation id="4830502475412647084">درحال نصب به‌روزرسانی سیستم‌عامل</translation>
@@ -2510,6 +2505,7 @@
 <translation id="4876273079589074638">به مهندسان ما کمک کنید این خرابی را بررسی و برطرف کنند. در صورت امکان مراحل را دقیق فهرست کنید. هیچ جزئیاتی بی‌اهمیت نیست!</translation>
 <translation id="4876895919560854374">قفل و باز کردن قفل صفحه</translation>
 <translation id="4877017884043316611">‏مرتبط‌سازی با Chromebox</translation>
+<translation id="4879491255372875719">خودکار (پیش‌فرض)</translation>
 <translation id="4880214202172289027">اسلایدر میزان صدا</translation>
 <translation id="4880328057631981605">نام نقطه دسترسی</translation>
 <translation id="4880520557730313061">تصحیح خودکار</translation>
@@ -2663,7 +2659,6 @@
 <translation id="5099354524039520280">بالا</translation>
 <translation id="5100114659116077956">‏Chromebox شما باید به‌روزرسانی شود تا آخرین ویژگی‌ها را در اختیار شما قرار دهد.</translation>
 <translation id="5101042277149003567">باز کردن همه نشانک‌ها</translation>
-<translation id="5104546332954397226">استفاده از تلفن به‌عنوان کلید امنیتی</translation>
 <translation id="5105855035535475848">پین کردن برگه‌ها</translation>
 <translation id="5108967062857032718">‏تنظیمات - حذف برنامه‌های Android</translation>
 <translation id="5109044022078737958">ورزشکار</translation>
@@ -2794,7 +2789,6 @@
 <translation id="5288678174502918605">با&amp;ز کردن مجدد برگه بسته</translation>
 <translation id="52912272896845572">فایل کلید خصوصی نامعتبر است.</translation>
 <translation id="529175790091471945">قالب‌بندی این دستگاه</translation>
-<translation id="5292195676005197571">برای استفاده از اکثر کلیدها، تنها کافی است دکمه را فشار دهید</translation>
 <translation id="5293170712604732402">بازنشانی تنظیمات به پیش‌فرض‌های اولیه آن‌ها</translation>
 <translation id="5297082477358294722">گذرواژه ذخیره شد. گذرواژه‌های ذخیره‌شده‌تان را در <ph name="SAVED_PASSWORDS_STORE" /> مشاهده و مدیریت کنید.</translation>
 <translation id="5298219193514155779">ایحاد طرح زمینه توسط</translation>
@@ -2820,6 +2814,7 @@
 <translation id="532776649628038357">موافقم</translation>
 <translation id="532943162177641444">برای تنظیم نقطه اتصال تلفن همراهی که می‌توان از آن برای این دستگاه استفاده کرد، روی اعلان در <ph name="PHONE_NAME" /> خود ضربه بزنید.</translation>
 <translation id="5329858601952122676">&amp;حذف</translation>
+<translation id="5329945517224105597">«دستیار» می‌تواند پیشنهادهای مرتبط‌تر و کنش‌های ویژه مرتبط با محتوای صفحه‌نمایش پیشنهاد دهد. می‌توانید در تنظیمات «دستیار» این مورد را تغییر دهید.</translation>
 <translation id="5330145655348521461">این فایل‌ها در میزکار دیگری باز شده‌اند. به <ph name="USER_NAME" /> ‏(<ph name="MAIL_ADDRESS" />) بروید تا آن را مشاهده کنید.</translation>
 <translation id="5330512191124428349">دریافت اطلاعات</translation>
 <translation id="5331069282670671859">گواهینامه‌ای در این دسته ندارید</translation>
@@ -2864,7 +2859,6 @@
 <translation id="5390100381392048184">پخش صدا در سایت‌ها مجاز شود</translation>
 <translation id="5390284375844109566">پایگاه داده فهرست‌بندی شده</translation>
 <translation id="5390743329570580756">ارسال برای</translation>
-<translation id="5392327114396848796">استفاده از کلید امنیتی داخلی</translation>
 <translation id="5397794290049113714">شما</translation>
 <translation id="5398572795982417028">ارجاع صفحه بیش از حد مجاز است، حداکثر مجاز <ph name="MAXIMUM_PAGE" /> است</translation>
 <translation id="5398772614898833570">آگهی‌ها مسدود شدند</translation>
@@ -3072,6 +3066,7 @@
    <ph name="LINE_BREAKS" />
    همه فایل‌های روی بایگانی یا دیسک مجازی را ببندید و سپس دوباره امتحان کنید.</translation>
 <translation id="5687326903064479980">منطقه زمانی</translation>
+<translation id="568824803367507355">‏تشخیص «Ok Google»</translation>
 <translation id="5689516760719285838">مکان</translation>
 <translation id="56907980372820799">داده‌های پیوند</translation>
 <translation id="5691511426247308406">خانواده</translation>
@@ -3169,7 +3164,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - دوربین یا میکروفون درحال ضبط کردن است</translation>
 <translation id="5835754902560991078">بسیار کوتاه (۰٫۶ ثانیه)</translation>
 <translation id="5838456317242088717">جلسه ناشناس کنونی</translation>
-<translation id="5842053879378944309">‏استفاده از کلید امنیتی USB با <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">فعال کردن بلوتوث</translation>
 <translation id="5843250171025351504">دستگاه شما دیگر با پایین‌‌ترین نسخه کارخواه مشخص‌شده توسط سرپرستتان سازگاری ندارد. لطفاً برای ورود به سیستم، آن را به‌روزرسانی کنید.</translation>
 <translation id="5846929185714966548">برگه ۴</translation>
@@ -3487,7 +3481,6 @@
 <translation id="6317318380444133405">دیگر پشتیبانی نمی‌شود.</translation>
 <translation id="6317369057005134371">در انتظار پنجره برنامه ...</translation>
 <translation id="6318407754858604988">بارگیری شروع شد</translation>
-<translation id="6322653941595359182">‏ارسال و دریافت پیام نوشتاری در Chromebook</translation>
 <translation id="6324916366299863871">ویرایش میان‌بر</translation>
 <translation id="6325191661371220117">از کار انداختن اجرای خودکار</translation>
 <translation id="6326175484149238433">‏حذف از Chrome</translation>
@@ -3531,6 +3524,7 @@
 <translation id="6395423953133416962">ارسال <ph name="BEGIN_LINK1" />اطلاعات سیستم<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />معیارها<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">گزینه‌های همگام‌سازی و شخصی‌سازی</translation>
 <translation id="6397592254427394018">باز کردن همه نشانک‌ها در پنجره &amp;ناشناس</translation>
+<translation id="639777613761517128">‏برای باز کردن فایل‌ها با $1، ابتدا آن‌ها را در پوشه فایل‌های Linux کپی کنید.</translation>
 <translation id="6398715114293939307">‏برداشتن «فروشگاه Google Play»</translation>
 <translation id="6398765197997659313">خروج از حالت تمام صفحه</translation>
 <translation id="6399774419735315745">جاسوس</translation>
@@ -3556,7 +3550,6 @@
 <translation id="642282551015776456">این نام ممکن است به‌عنوان نام فایلی از پوشه استفاده نشود</translation>
 <translation id="642469772702851743">این دستگاه (شماره سریال: <ph name="SERIAL_NUMBER" />) توسط مالک قفل شده است.</translation>
 <translation id="6426200009596957090">‏باز کردن تنظیمات ChromeVox</translation>
-<translation id="6427415464407526111">انتخاب کلید امنیتی</translation>
 <translation id="6429384232893414837">خطای به‌روزرسانی</translation>
 <translation id="6430814529589430811">‏Base64-ASCII رمزدار، تک گواهی</translation>
 <translation id="6431217872648827691">‏همه داده‌ها با گذرواژه Google شما رمزگذاری شد، زمان:
@@ -3714,7 +3707,6 @@
 <translation id="6655190889273724601">حالت برنامه‌نویس</translation>
 <translation id="6655458902729017087">پنهان‌سازی حساب‌ها</translation>
 <translation id="6657585470893396449">گذرواژه</translation>
-<translation id="6658023813581644008">‏برای راه‌اندازی Smart Lock جهت ورود به سیستم، گذرواژه‌تان را وارد کنید</translation>
 <translation id="6659213950629089752">برنامه افزودنی «<ph name="NAME" />» این صفحه را بزرگ‌نمایی کرده است</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">‏متأسفانه، رایانه شما با یک شناسه سخت‌افزار ناقص پیکربندی شده است. این موضوح سیستم عامل Chrome را از به‌روزرسانی با جدیدترین اصلاحات امنیتی باز می‌دارد که <ph name="BEGIN_BOLD" />می‌تواند رایانه شما را در برابر حملات مخرب آسیب‌پذیر نماید<ph name="END_BOLD" />.</translation>
@@ -3850,7 +3842,6 @@
 <translation id="6885771755599377173">پیش‌نمایش اطلاعات سیستم</translation>
 <translation id="6886871292305414135">باز کردن پیوند در &amp;برگه جدید</translation>
 <translation id="6892812721183419409">بازکردن پیوند به‌عنوان <ph name="USER" /></translation>
-<translation id="6896398788631624004">«کلید امنیتی» خود را وصل کنید و آن را فعال کنید</translation>
 <translation id="6896758677409633944">کپی</translation>
 <translation id="6898440773573063262">از این به بعد در این دستگاه برنامه‌های کیوسک می‌توانند برای راه‌اندازی خودکار پیکربندی شوند.</translation>
 <translation id="6898699227549475383">‏سازمان (O)</translation>
@@ -3869,6 +3860,7 @@
 <translation id="6915804003454593391">کاربر:</translation>
 <translation id="6916590542764765824">مدیریت افزونه‌ها</translation>
 <translation id="6920989436227028121">باز کردن به‌عنوان برگه عادی</translation>
+<translation id="6921709132208495314">توقف استفاده از داده در این صفحه</translation>
 <translation id="6922128026973287222">‏با «صرفه‌جویی داده Google»، مصرف داده را بهینه کرده و سریع‌تر مرور کنید. برای اطلاعات بیشتر کلیک کنید.</translation>
 <translation id="6923132443355966645">پیمایش / کلیک</translation>
 <translation id="6930242544192836755">مدت زمان</translation>
@@ -3891,6 +3883,7 @@
 <translation id="6965382102122355670">قبول</translation>
 <translation id="6965648386495488594">درگاه</translation>
 <translation id="6965978654500191972">دستگاه</translation>
+<translation id="6968288415730398122">برای پیکربندی قفل صفحه، گذرواژه‌تان را وارد کنید</translation>
 <translation id="6970480684834282392">نوع راه‌اندازی</translation>
 <translation id="6970856801391541997">صفحات خاص چاپ</translation>
 <translation id="6972180789171089114">صوتی/تصویری</translation>
@@ -3901,6 +3894,7 @@
 <translation id="6978121630131642226">موتورهای جستجو</translation>
 <translation id="6978611942794658017">‏این فایل برای رایانه‌ای که از نرم‌افزار Windows استفاده می‌کند طراحی شده است. این فایل با دستگاه شما که سیستم عامل Chrome را اجرا می‌کند، سازگار نیست. لطفاً «فروشگاه وب Chrome» را برای یک برنامه جایگزین مناسب جستجو کنید.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">بی‌صدا (پیش‌فرض)</translation>
 <translation id="6979737339423435258">همه زمان‌ها</translation>
 <translation id="6980462514016882061">‏Google ممکن است از سابقه مرور شما برای شخصی‌سازی جستجو، آگهی‌ها و سایر سرویس‌های Google استفاده کند</translation>
 <translation id="6981982820502123353">قابلیت دسترسی</translation>
@@ -4049,6 +4043,7 @@
 <translation id="7197160646667308890">‏<ph name="BEGIN_PARAGRAPH1" />این اطلاعاتی عمومی درباره دستگاه شما و نحوه استفاده‌تان از آن (مانند میزان شارژ باتری، میزان استفاده برنامه و اتصال به شبکه) است. از این داده‌ها برای بهبود محصولات و خدمات Google‌ برای همه افراد استفاده می‌شود. همچنین بعضی از اطلاعات جمع‌آوری‌شده به شرکایی مانند برنامه‌نویسان Android کمک می‌کند برنامه‌ها و محصولات خود را بهتر کنند.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />خاموش کردن این ویژگی بر قابلیت دستگاه در ارسال اطلاعات لازم برای سرویس‌های ضروری مانند به‌روزرسانی‌های سیستم و امنیت تأثیری نمی‌گذارد.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />می‌توانید این ویژگی را در «تنظیمات &gt; Google» کنترل کنید. «میزان استفاده و عیب‌یابی» را از منو انتخاب کنید.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433"><ph name="NUMBER_OF_APPS" /> برنامه از حسابتان پیدا کردیم که می‌توان در این دستگاه از آن‌ها استفاده کرد.</translation>
 <translation id="7199158086730159431">دریافت راهنمایی</translation>
 <translation id="7200083590239651963">انتخاب پیکربندی</translation>
 <translation id="720110658997053098">این دستگاه همیشه در حالت کیوسک نگه داشته شود</translation>
@@ -4069,7 +4064,6 @@
 <translation id="7228523857728654909">قفل صفحه و ورود به سیستم</translation>
 <translation id="7229570126336867161">‏EVDO مورد نیاز است</translation>
 <translation id="7230787553283372882">سفارشی کردن اندازه نوشتار</translation>
-<translation id="7231589788477569369">با این تنظیمات، تجربه کاملی از «دستیار» داشته باشید</translation>
 <translation id="7232750842195536390">تغییر نام انجام نشد</translation>
 <translation id="7234406375359457793">هنگام نشاندن دستگاه ذخیره‌سازی متصل به شبکه خطایی روی داد. دستگاه ذخیره‌سازی مشخص‌شده پشتیبانی نمی‌شود.</translation>
 <translation id="7238585580608191973">‏اثر انگشت SHA-256</translation>
@@ -4079,7 +4073,6 @@
 <translation id="7243632151880336635">پاک کردن و خروج از سیستم</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (بهترین)</translation>
 <translation id="7246339268451149667">باز کردن قفل با اثرانگشت فعال شود؟</translation>
-<translation id="7246489301073081944">برای خارج شدن، |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| را نگه دارید</translation>
 <translation id="7246947237293279874">‏پروکسی FTP</translation>
 <translation id="725109152065019550">متأسفیم، سرپرست سیستم، حافظه خارجی را برای حساب شما غیرفعال کرده است.</translation>
 <translation id="7253521419891527137">&amp;بیشتر بیاموزید</translation>
@@ -4232,7 +4225,6 @@
 <translation id="7489605380874780575">بررسی وجود شرایط لازم</translation>
 <translation id="749028671485790643">نفر <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">‏نشانی MAC</translation>
-<translation id="7490950320178383728">استفاده از کلید امنیتی با بلوتوث</translation>
 <translation id="7491962110804786152">برگه</translation>
 <translation id="7493386493263658176">ممکن است افزونه <ph name="EXTENSION_NAME" /> همه نوشتاری را که تایپ می‌کنید (از جمله داده‌های شخصی مانند گذرواژه‌ها و شماره کارت‌های اعتباری) جمع‌آوری کند. می‌خواهید از این افزونه استفاده کنید؟</translation>
 <translation id="7494065396242762445">‏باز کردن تنظیمات Windows</translation>
@@ -4482,7 +4474,6 @@
 <translation id="7850851215703745691">‏این فایل‌های Drive هنوز به اشتراک گذاشته نشده‌اند</translation>
 <translation id="7851457902707056880">ورود به سیستم فقط محدود به حساب مالک است. لطفاً سیستم را دوباره راه‌اندازی کنید و با حساب مالک به سیستم وارد شوید. دستگاه به صورت خودکار بعد از ۳۰ ثانیه دوباره راه‌اندازی می‌شود.</translation>
 <translation id="7851716364080026749">همیشه دسترسی به دوربین و میکروفون مسدود شود</translation>
-<translation id="7851816139220202929">‏استفاده از کلید امنیتی با NFC</translation>
 <translation id="7853747251428735">‏ابزارهای بیشتر (‎&amp;L)</translation>
 <translation id="7856006446339184955">‏ارسال داده‌های سیستم. درحال‌حاضر این دستگاه داده‌های عیب‌یابی و میزان استفاده دستگاه و برنامه را به‌طور خودکار به Google‌ ارسال می‌کند. این <ph name="BEGIN_LINK1" />تنظیمات<ph name="END_LINK1" /> توسط مالک اعمال می‌شود. اگر «فعالیت وب و برنامه» تکمیلی را روشن کرده باشید، این اطلاعات در حسابتان ذخیره خواهد شد تا بتوانید آن‌ها را در «فعالیت من» مدیریت کنید. <ph name="BEGIN_LINK2" />بیشتر بدانید<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">افزودن استثنا</translation>
@@ -4565,6 +4556,7 @@
 <translation id="7973962044839454485">‏احراز هویت PPP به دلیل نام کاربری یا گذرواژه نادرست انجام نشد</translation>
 <translation id="7974566588408714340">تلاش مجدد با <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">تصویر بزرگ‌تر از صفحه</translation>
+<translation id="79766959863778284">‏سرویس دستگاه جداشده با XR</translation>
 <translation id="7977551819349545646">‏در حال به‌روزرسانی Chromebox...</translation>
 <translation id="7978412674231730200">کلید خصوصی</translation>
 <translation id="7978450511781612192">‏با این کار از سیستم حساب Google خود خارج می‌شوید. نشانک‌ها، سابقه، گذرواژه‌ها و سایر موارد دیگر همگام‌سازی نمی‌شوند.</translation>
@@ -4615,7 +4607,6 @@
 <translation id="8030656706657716245">افزودن چاپگر</translation>
 <translation id="8032244173881942855">ارسال محتوای برگه امکان‌پذیر نیست.</translation>
 <translation id="8033827949643255796">انتخاب شد</translation>
-<translation id="8033958968890501070">پایان مهلت زمانی</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{باز کردن همه در پنجره ناشناس}=1{باز کردن در پنجره ناشناس}one{باز کردن همه (#) در پنجره ناشناس}other{باز کردن همه (#) در پنجره ناشناس}}</translation>
 <translation id="8037117027592400564">خواندن همه نوشتار با استفاده از گفتار تجزیه و تحلیل شده</translation>
 <translation id="8037357227543935929">درخواست (پیش‌فرض)</translation>
@@ -4788,6 +4779,7 @@
 <translation id="8320459152843401447">کل صفحه‌تان</translation>
 <translation id="8322814362483282060">این صفحه از دسترسی به میکروفون شما بازداشته شده است.</translation>
 <translation id="8326478304147373412">‏PKCS #7، زنجیره گواهی</translation>
+<translation id="8327039559959785305">‏هنگام نشاندن فایل‌های Linux خطایی روی داد. لطفاً دوباره امتحان کنید.</translation>
 <translation id="8329978297633540474">نوشتار ساده</translation>
 <translation id="8335587457941836791">جدا کردن از راه‌انداز</translation>
 <translation id="8336153091935557858">دیروز <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4838,7 +4830,6 @@
 <translation id="8425213833346101688">تغییر</translation>
 <translation id="8425492902634685834">کوچک کردن در نوار وظیفه</translation>
 <translation id="8425755597197517046">جا&amp;گذاری و جستجو</translation>
-<translation id="8426117172745886547">هشدار قبل از خروج (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">فعال کردن</translation>
 <translation id="8427292751741042100">جاسازی‌شده در هر میزبانی</translation>
 <translation id="8428213095426709021">تنظیمات</translation>
@@ -4926,7 +4917,6 @@
 <translation id="8551388862522347954">مجوزها</translation>
 <translation id="8553342806078037065">مدیریت افراد دیگر</translation>
 <translation id="8554899698005018844">زبانی موجود نیست</translation>
-<translation id="8557347704037207368">‏ارسال اعلان‌هایی از پیام‌های وب Android به شما</translation>
 <translation id="855773602626431402">از اجرای یک افزایه آزمایشی نشده در این صفحه جلوگیری شد.</translation>
 <translation id="8557930019681227453">مانیفست</translation>
 <translation id="8559694214572302298">کدگشای تصویر</translation>
@@ -5039,6 +5029,7 @@
 <translation id="8714154114375107944">پایان دوره پشتیبانی</translation>
 <translation id="8714838604780058252">گرافیک‌های پس‌زمینه</translation>
 <translation id="8715480913140015283">برگه پس‌زمینه درحال استفاده از دوربین است</translation>
+<translation id="8716931980467311658">‏آیا همه برنامه‌های Linux و داده‌های موجود در پوشه فایل‌های Linux این <ph name="DEVICE_TYPE" /> حذف شود؟</translation>
 <translation id="8719653885894320876"><ph name="PLUGIN_NAME" /> بارگیری نشد</translation>
 <translation id="8723829621484579639">قاب‌های فرعی ناشناس برای: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;نمایش در پوشه</translation>
@@ -5202,7 +5193,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - خراب شد</translation>
 <translation id="8983677657449185470">کمک به بهبود مرور ایمن</translation>
 <translation id="8984654317541110628">نشانی وب دستگاه ذخیره‌سازی متصل به شبکه</translation>
-<translation id="8984872292925913496">کد پین ۶ رقمی را در پشت کلیدتان پیدا کنید</translation>
 <translation id="8986362086234534611">فراموش شود</translation>
 <translation id="8986494364107987395">‏ارسال خودکار آمار کاربرد و گزارش‌های خرابی به Google</translation>
 <translation id="8987927404178983737">ماه</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 43aab333..5f0a1da 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Korosta tekstin syöttökohde, kun se muuttuu.</translation>
 <translation id="1173894706177603556">Muuta nimeä</translation>
 <translation id="1174073918202301297">Pikanäppäin lisätty</translation>
-<translation id="1174808551768282258">Avaa Chromebookin lukitus puhelimella. <ph name="LINK_BEGIN" />Lisätietoja<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">Tulo&amp;sta...</translation>
 <translation id="117624967391683467">Kopioidaan tiedostoa <ph name="FILE_NAME" />…</translation>
 <translation id="1177138678118607465">Google voi käyttää selaushistoriaasi Haun, mainosten ja muiden Googlen palveluiden muokkaamiseen. Voit muuttaa asetuksiasi koska tahansa osoitteessa myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Tauko</translation>
 <translation id="1181037720776840403">Poista</translation>
 <translation id="1183237619868651138">Kohdetta <ph name="EXTERNAL_CRX_FILE" /> ei voi asentaa paikalliseen välimuistiin.</translation>
-<translation id="1183378459020939734">Oletko valmis yhdistämään suojausavaimen laitepariksi?</translation>
 <translation id="1185924365081634987">Voit myös kokeilla korjata verkkovirheen <ph name="GUEST_SIGNIN_LINK_START" />vierasselauksen<ph name="GUEST_SIGNIN_LINK_END" /> avulla.</translation>
 <translation id="1186771945450942097">Poista haittaohjelmia</translation>
 <translation id="1187722533808055681">Käyttämätön-tilasta palautumiset</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Bluetooth-laitteita ei löytynyt</translation>
 <translation id="1306606229401759371">Muuta asetuksia</translation>
 <translation id="1307559529304613120">Hups! Järjestelmä ei voinut tallentaa laitteelle pitkäaikaista API-käyttötunnusta.</translation>
+<translation id="1307931752636661898">Linux-tiedostoja ei voi näyttää</translation>
 <translation id="1313405956111467313">Automaattinen välityspalvelimen määritys</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Kirjanmerkkisi, historiasi ja muut asetukset synkronoidaan Google-tiliisi.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Avaa hiiren ja ohjauslevyn laiteasetukset</translation>
 <translation id="1531004739673299060">Sovellusikkuna</translation>
 <translation id="15373452373711364">Suuri hiiren osoitin</translation>
+<translation id="1538729222189715449">Avataan Linux-tiedostoja…</translation>
 <translation id="1540605929960647700">Ota esittelytila käyttöön</translation>
 <translation id="1543284117603151572">Edgestä tuodut</translation>
 <translation id="1545177026077493356">Automaattinen kioskitila</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Muuta kosketusheijastusnäytön tilaa</translation>
 <translation id="1784849162047402014">Laitteen tallennustila on vähissä.</translation>
 <translation id="1786636458339910689">Tiimin Drivet</translation>
-<translation id="1792161662640298233">Vahvistetaan suojausavainta</translation>
 <translation id="1792619191750875668">Laajennettu näyttö</translation>
 <translation id="1794791083288629568">Lähetä palautetta, niin autat meitä korjaamaan ongelman.</translation>
 <translation id="1795214765651529549">Ota käyttöön perinteinen</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Tervetuloa!</translation>
 <translation id="1914326953223720820">Purkupalvelu</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">Tiliasetuksistasi riippuen Assistantin käyttösi voi rajoittua verkkohakutuloksiin, vitseihin ja paikallisiin tietoihin.</translation>
 <translation id="1916502483199172559">Punainen oletusavatar</translation>
 <translation id="1918141783557917887">&amp;Pienempi</translation>
 <translation id="1919345977826869612">Mainokset</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> verkkotunnuksessa <ph name="PEPPER_PLUGIN_DOMAIN" /> haluaa käyttää tietokonettasi.</translation>
 <translation id="2178614541317717477">Myöntäjäkompromissi</translation>
 <translation id="218070003709087997">Määritä tulostettavien kappaleiden määrä antamalla numero (1–999).</translation>
+<translation id="2184515124301515068">Anna Chromen valita, milloin sivustot voivat toistaa ääniä (suositus)</translation>
 <translation id="2187895286714876935">Palvelimen varmenteen tuontivirhe</translation>
 <translation id="2187906491731510095">Laajennukset päivitetty</translation>
 <translation id="2188881192257509750">Avaa <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">lukea ja muuttaa tietojasi useilla eri sivustoilla</translation>
 <translation id="2242687258748107519">Tiedoston tiedot</translation>
 <translation id="2243194103992005307">Jos haluat poistaa sovelluksia, valitse Asetukset &gt; Sovellukset tai Sovellusten hallinta. Valitse poistettava sovellus (jos sovellusta ei näy, pyyhkäise oikealle tai vasemmalle). Valitse sitten Poista tai Poista käytöstä.</translation>
+<translation id="224940702122312781">Tämä sivu käyttää paljon dataa.</translation>
 <translation id="2249605167705922988">esim. 1–5, 8, 11–13</translation>
 <translation id="2251218783371366160">Avaa järjestelmän oletussovelluksessa</translation>
 <translation id="225163402930830576">Päivitä verkot</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Määritä verkko</translation>
 <translation id="230927227160767054">Sivu haluaa asentaa palvelukäsittelijän.</translation>
 <translation id="2309620859903500144">Tältä sivustolta on estetty liikkeen- tai valontunnistimien käyttö.</translation>
-<translation id="2311075084924370935">Jos haluat apua esimerkiksi kalenterin, muistutusten ja lentojen kanssa, Assistant tarvitsee muun muassa verkko- ja sovellustoiminnan, laitetietojen sekä ääni- ja puhetoiminnan asetuksia.</translation>
+<translation id="2315414688463285945">Virhe Linux-tiedostojen määrittämisessä. Yritä uudelleen.</translation>
 <translation id="2315821125498993513">Yhteyden muodostaminen puhelimeen epäonnistui. <ph name="LINK_BEGIN" />Lisätietoja<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Ei kiitos</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % valmis</translation>
 <translation id="2318143611928805047">Paperin koko</translation>
 <translation id="2318817390901984578">Jos haluat käyttää Android-sovelluksia, lataa ja päivitä <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Nykyinen incognito-istunto (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Käytä suojausavainta sovelluksen <ph name="APP_NAME" /> kanssa</translation>
 <translation id="2322193970951063277">Ylä- ja alatunnisteet</translation>
 <translation id="2325650632570794183">Tätä tiedostotyyppiä ei tueta. Etsi tämäntyyppisiä tiedostoja avaava sovellus Chrome Web Storesta.</translation>
 <translation id="2326931316514688470">&amp;Lataa sovellus uudelleen</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Lisää jaettu tiedosto</translation>
 <translation id="2367972762794486313">Näytä sovellukset</translation>
 <translation id="2369536625682139252">Tämä poistaa evästeitä lukuun ottamatta kaiken datan, jonka <ph name="SITE" /> tallensi.</translation>
-<translation id="237058345584060620">Yhdistä tämä laite ja suojausavain laitepariksi, jotta voit käyttää avainta kirjautumiseen.</translation>
 <translation id="2371076942591664043">Avaa, kun val&amp;mis</translation>
 <translation id="2377319039870049694">Vaihda luettelonäkymään</translation>
 <translation id="2377667304966270281">Levyn sivuvirheet</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Puhelintasi ei löydy. Varmista, että laitteen <ph name="DEVICE_TYPE" /> Bluetooth on otettu käyttöön. &lt;a&gt;Lisätietoja&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Lisää kansio...</translation>
 <translation id="249113932447298600">Laitetta <ph name="DEVICE_LABEL" /> ei tueta tällä hetkellä.</translation>
-<translation id="2492040222276243256">Pidä suojausavaimen painiketta painettuna vähintään viisi sekuntia.</translation>
 <translation id="2493021387995458222">Valitse "sana kerrallaan"</translation>
 <translation id="249303669840926644">Rekisteröintiä ei voi suorittaa loppuun</translation>
 <translation id="2495777824269688114">Tutustu uusiin ominaisuuksiin ja hae vastauksia kysymyksiin valitsemalla ?.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Yhteensä: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Pitkä</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (alusta <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Tämä välilehti jakaa näyttösi.</translation>
 <translation id="2586657967955657006">Leikepöytä</translation>
 <translation id="2586672484245266891">Anna lyhyempi URL-osoite.</translation>
 <translation id="2587922270115112871">Valvotun käyttäjän luominen ei luo Google-tiliä, ja heidän asetuksensa ja
@@ -1092,7 +1090,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> käyttää <ph name="USAGE" /> Mt levytilaa.</translation>
 <translation id="2633212996805280240">Poistetaanko <ph name="EXTENSION_NAME" />?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> ei voinut suorittaa asennusta loppuun, vaan toimii edelleen levyvedoksen kautta.</translation>
-<translation id="2633326789677284179">Katso avaimen nimi sen takaa</translation>
 <translation id="2635276683026132559">Allekirjoitus</translation>
 <translation id="2636625531157955190">Chrome ei voi käyttää tätä kuvaa.</translation>
 <translation id="2638087589890736295">Synkronointi edellyttää tunnuslausetta.</translation>
@@ -1260,7 +1257,6 @@
 <translation id="287286579981869940">Lisää <ph name="PROVIDER_NAME" />…</translation>
 <translation id="2874343608108773609">Kirjaudu sisään Chromeen, niin voit käyttää salasanojasi kaikilla laitteilla.</translation>
 <translation id="2875698561019555027">(Chromen virhesivut)</translation>
-<translation id="2876441201733326392">Käytä USB-suojausavainta</translation>
 <translation id="288042212351694283">Käytä Universal 2nd Factor -laitteita</translation>
 <translation id="2881966438216424900">Viimeksi käytetty:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> käynnistyy uudelleen ja nollautuu hetkellisesti</translation>
@@ -1328,7 +1324,6 @@
 <translation id="2982970937345031">Tee nimetön ilmoitus</translation>
 <translation id="2984337792991268709">Tänään <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Tältä sivulta on estetty MIDI-laitteiden täysi käyttöoikeus.</translation>
-<translation id="2988599644347283908">Huom. Näiden asetusten määrittämää dataa voidaan tallentaa ja käyttää missä tahansa Google-palveluissa, joihin olet kirjautunut sisään sinulle räätälöityjen kokemusten ja hyödyllisten mainosten takaamiseksi. Voit nähdä dataa, poistaa sitä ja muuttaa asetuksia osoitteessa account.google.com.</translation>
 <translation id="2989474696604907455">ei yhdistetty</translation>
 <translation id="2989786307324390836">DER-koodattu binääri, yksittäinen varmenne</translation>
 <translation id="2993517869960930405">Sovelluksen tiedot</translation>
@@ -1381,7 +1376,6 @@
 <translation id="304826556400666995">Poista välilehtien mykistys</translation>
 <translation id="3053013834507634016">Varmenteen avaimen käyttö</translation>
 <translation id="3057861065630527966">Varmuuskopioi valokuvasi ja videosi.</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Ota käyttöön Teksti puhuttuna</translation>
 <translation id="3061707000357573562">Virheenkorjauspalvelu</translation>
 <translation id="3064410671692449875">Riittämättömät tiedot</translation>
@@ -1410,7 +1404,6 @@
 <translation id="3090819949319990166">Ulkoista crx-tiedostoa ei voi kopioida kohteeseen <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Laitepari muodostettu laitteen <ph name="DEVICE_NAME" /> kanssa</translation>
 <translation id="3101709781009526431">Aika ja päivämäärä</translation>
-<translation id="3104900172193317662">Salli suojausavaimen käyttö</translation>
 <translation id="310671807099593501">Sivusto käyttää Bluetoothia</translation>
 <translation id="3115128645424181617">Puhelintasi ei löydy. Varmista, että se on mukanasi ja että Bluetooth on päällä.</translation>
 <translation id="3115147772012638511">Odotetaan välimuistia...</translation>
@@ -1494,7 +1487,6 @@
 <translation id="3251759466064201842">&lt;Ei osa varmennetta&gt;</translation>
 <translation id="3254434849914415189">Valitse oletussovellus <ph name="FILE_TYPE" />-tiedostoille:</translation>
 <translation id="3254516606912442756">Automaattinen aikavyöhykkeen tunnistus poistettu käytöstä</translation>
-<translation id="3254772308201947812">Kyllä</translation>
 <translation id="3264544094376351444">Sans-Serif-kirjasin</translation>
 <translation id="3264547943200567728">Chromeboxin verkkoyhteyden määrittäminen epäonnistui.</translation>
 <translation id="3264582393905923483">Konteksti</translation>
@@ -1817,7 +1809,6 @@
 <translation id="3735740477244556633">Lajitteluperuste</translation>
 <translation id="3737274407993947948">Virhe asennettaessa Linuxia…</translation>
 <translation id="3737536731758327622">Latauksesi näkyvät täällä.</translation>
-<translation id="3738671331307774213">Henkilöllisyyden vahvistaminen auttaa suojaamaan yksityistä dataasi.</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Avataanko <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> näkyy nyt hallintakonsolissa</translation>
@@ -1911,6 +1902,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167">Synkronointi keskeytetty: <ph name="PROFILE_NAME" /></translation>
 <translation id="3860381078714302691">Tervetuloa Hangouts Meetiin</translation>
+<translation id="3861241522664181545">Sivu pysäytetty.</translation>
 <translation id="3862134173397075045">Tervetuloa käyttämään Cast-ominaisuuksia Chromessa!</translation>
 <translation id="3862788408946266506">Sovellukset, joilla on luetteloattribuutti kiosk_only, täytyy asentaa Chrome-käyttöjärjestelmän kioskitilassa.</translation>
 <translation id="3865414814144988605">Resoluutio</translation>
@@ -1925,7 +1917,6 @@
 <translation id="3873315167136380065">Jos haluat ottaa tämän käyttöön, <ph name="BEGIN_LINK" />nollaa synkronointi<ph name="END_LINK" /> poistaaksesi synkronoinnin tunnuslauseen</translation>
 <translation id="3878840326289104869">Luodaan valvottua käyttäjää</translation>
 <translation id="3879748587602334249">Latausten hallinta</translation>
-<translation id="3880709822663530586">Suojausavain toimii vain, kun laitteen Bluetooth-yhteys on käytössä.</translation>
 <translation id="3888550877729210209">Muistiinpanojen kirjoittaminen sovelluksella <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Lisää OpenVPN tai L2TP…</translation>
 <translation id="3893536212201235195">Lukea ja muokata esteettömyysasetuksiasi</translation>
@@ -2068,6 +2059,7 @@
 <translation id="4096824249111507322">Suojausmoduulia valmistellaan, odota hetki (tämä saattaa kestää muutaman minuutin)…</translation>
 <translation id="4099060993766194518">Palautetaanko oletushakukone?</translation>
 <translation id="4100733287846229632">Laitteen tallennustila on erittäin vähissä</translation>
+<translation id="4103091233824664032">Syötä salasanasi määrittääksesi näytön lukituksen ja sisäänkirjautumisen.</translation>
 <translation id="4104163789986725820">V&amp;ie...</translation>
 <translation id="4105563239298244027">1 Tt ilmaista tallennustilaa Google Drivessa</translation>
 <translation id="4107048419833779140">Tunnistaa ja poistaa tallennuslaitteet</translation>
@@ -2088,7 +2080,6 @@
 <translation id="4136203100490971508">Yövalo sammuu automaattisesti, kun aurinko nousee.</translation>
 <translation id="4138267921960073861">Näytä käyttäjänimet ja valokuvat kirjautumisruudulla</translation>
 <translation id="4144218403971135344">Katso laadukkaampia videoita ja säästä akkua. Videoita toistetaan vain Cast-yhteensopivalla näytöllä.</translation>
-<translation id="414599683948988413">Käytä USB:tä suojausavaimen kanssa</translation>
 <translation id="4146026355784316281">Avaa aina järjestelmän katselusovelluksella</translation>
 <translation id="4146785383423576110">Nollaa ja puhdista</translation>
 <translation id="4147897805161313378">Google Kuvat</translation>
@@ -2223,6 +2214,7 @@
 <translation id="4394049700291259645">Poista käytöstä</translation>
 <translation id="4400367121200150367">Tässä näytetään sivustot, jotka eivät koskaan tallenna salasanoja.</translation>
 <translation id="4400632832271803360">Pidä Käynnistysohjelma-näppäintä pohjassa, niin voit vaihtaa ylärivin näppäinten toimintaa.</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">O&amp;hje</translation>
 <translation id="4409697491990005945">Reunukset</translation>
 <translation id="4411578466613447185">Koodin allekirjoittaja</translation>
@@ -2271,6 +2263,7 @@
 <translation id="4480590691557335796">Chrome etsii haitallisia ohjelmia tietokoneestasi ja voi poistaa ne</translation>
 <translation id="4481530544597605423">Laitteet ilman paria</translation>
 <translation id="4482194545587547824">Google voi muokata hakua ja muita Googlen palveluita selaushistoriasi perusteella.</translation>
+<translation id="4493287891836751813">Tutustu Google Assistantiin</translation>
 <translation id="4495419450179050807">Älä näytä tällä sivulla</translation>
 <translation id="4499718683476608392">Ota luottokorttien automaattinen täyttö käyttöön, niin voit täyttää lomakkeita yhdellä klikkauksella</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> on kaatunut.</translation>
@@ -2431,6 +2424,7 @@
 <translation id="474217410105706308">Mykistä välilehti</translation>
 <translation id="4742746985488890273">Kiinnitä hyllyyn</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Katso, miten sovelluksia päivitetään<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Viestit</translation>
 <translation id="4746971725921104503">Näyttää siltä, että hallinnoit jo käyttäjää, jolla on sama nimi. Haluatko <ph name="LINK_START" />tuoda käyttäjän <ph name="USER_DISPLAY_NAME" /> tälle laitteelle<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Edellyttää laajennuksen lataamista Chrome Web Storesta.</translation>
 <translation id="4750394297954878236">Ehdotukset</translation>
@@ -2472,6 +2466,7 @@
 <translation id="4821935166599369261">&amp;Profilointi on käytössä</translation>
 <translation id="4823484602432206655">Lukea ja muokata käyttäjän ja laitteen asetuksia.</translation>
 <translation id="4823651846660089135">Laite on vain luku ‑tilassa.</translation>
+<translation id="4823955295535347797">Käytä Assistantia koska vain sanomalla Ok Google, kun näyttö on päällä.</translation>
 <translation id="4828937774870308359">Australialainen</translation>
 <translation id="4829768588131278040">Määritä PIN-koodi</translation>
 <translation id="4830502475412647084">Asennetaan käyttöjärjestelmäpäivitystä</translation>
@@ -2512,6 +2507,7 @@
 <translation id="4876273079589074638">Auta tiimiämme tutkimaan kaatumista ja korjaamaan virheet. Kerro toimista niin tarkasti kuin mahdollista. Kaikista yksityiskohdista on hyötyä.</translation>
 <translation id="4876895919560854374">Lukitse näyttö ja poista sen lukitus</translation>
 <translation id="4877017884043316611">Muodosta laitepari Chromeboxin kanssa</translation>
+<translation id="4879491255372875719">Automaattinen (oletus)</translation>
 <translation id="4880214202172289027">Äänenvoimakkuuden liukusäädin</translation>
 <translation id="4880328057631981605">Tukiaseman nimi</translation>
 <translation id="4880520557730313061">Automaattinen korjaus</translation>
@@ -2665,7 +2661,6 @@
 <translation id="5099354524039520280">ylös</translation>
 <translation id="5100114659116077956">Chromebox on päivitettävä, jotta saat uusimmat ominaisuudet käyttöön.</translation>
 <translation id="5101042277149003567">Avaa kaikki kirjanmerkit</translation>
-<translation id="5104546332954397226">Käytä puhelinta suojausavaimena</translation>
 <translation id="5105855035535475848">Kiinnitä välilehdet</translation>
 <translation id="5108967062857032718">Asetukset – Poista Android-sovellukset</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2796,7 +2791,6 @@
 <translation id="5288678174502918605">Avaa sulj&amp;ettu välilehti uudelleen</translation>
 <translation id="52912272896845572">Yksityinen avaintiedosto on virheellinen.</translation>
 <translation id="529175790091471945">Alusta tämä laite</translation>
-<translation id="5292195676005197571">Voit käyttää useimpia avaimia painamalla painiketta.</translation>
 <translation id="5293170712604732402">Palauta kaikki asetukset alkuperäisiksi</translation>
 <translation id="5297082477358294722">Salasana tallennettu. Katso ja ylläpidä tallennettuja salasanoja: <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Teeman loi</translation>
@@ -2822,6 +2816,7 @@
 <translation id="532776649628038357">Hyväksyn</translation>
 <translation id="532943162177641444">Avaa <ph name="PHONE_NAME" /> ja kosketa siinä näkyvää ilmoitusta, niin mobiili-hotspot määritetään tämän laitteen käyttöön.</translation>
 <translation id="5329858601952122676">&amp;Poista</translation>
+<translation id="5329945517224105597">Assistant voi näyttää osuvampia näytöllä näkyviin asioihin liittyviä ehdotuksia ja toimintoja. Voit muuttaa tätä Assistantin asetuksissa.</translation>
 <translation id="5330145655348521461">Nämä tiedostot avattiin toisella työpöydällä. Näet tiedostot siirtymällä profiiliin <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />).</translation>
 <translation id="5330512191124428349">Näytä tiedot</translation>
 <translation id="5331069282670671859">Sinulla ei ole varmenteita tässä luokassa.</translation>
@@ -2866,7 +2861,6 @@
 <translation id="5390100381392048184">Salli sivustojen toistaa ääniä</translation>
 <translation id="5390284375844109566">Indeksoitu tietokanta</translation>
 <translation id="5390743329570580756">Lähetä:</translation>
-<translation id="5392327114396848796">Käytä sisäänrakennettua suojausavainta</translation>
 <translation id="5397794290049113714">Sinä</translation>
 <translation id="5398572795982417028">Sivuviittaus on rajojen ulkopuolella. Raja on <ph name="MAXIMUM_PAGE" />.</translation>
 <translation id="5398772614898833570">Mainokset estetty</translation>
@@ -3074,6 +3068,7 @@
    <ph name="LINE_BREAKS" />
    Sulje kaikki arkistossa tai virtuaalilevyllä olevat tiedostot ja yritä uudelleen.</translation>
 <translation id="5687326903064479980">Aikavyöhyke</translation>
+<translation id="568824803367507355">Ok Google ‑tunnistus</translation>
 <translation id="5689516760719285838">Sijainti</translation>
 <translation id="56907980372820799">Yhdistä tiedot</translation>
 <translation id="5691511426247308406">Perhe</translation>
@@ -3171,7 +3166,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kamera tai mikrofoni tallentaa sisältöä</translation>
 <translation id="5835754902560991078">erittäin lyhyt (0,6 s)</translation>
 <translation id="5838456317242088717">Nykyinen incognito-istunto</translation>
-<translation id="5842053879378944309">Käytä USB-suojausavainta sovelluksen <ph name="APP_NAME" /> kanssa</translation>
 <translation id="5842497610951477805">Bluetoothin käyttöönotto</translation>
 <translation id="5843250171025351504">Laite ei ole enää yhteensopiva järjestelmänvalvojan määrittämän asiakassovelluksen vähimmäisversion kanssa. Päivitä sovellus, jotta voit kirjautua sisään.</translation>
 <translation id="5846929185714966548">Välilehti 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Ei enää tueta</translation>
 <translation id="6317369057005134371">Odotetaan sovellusikkunaa…</translation>
 <translation id="6318407754858604988">Lataus aloitettu</translation>
-<translation id="6322653941595359182">Lähetä ja vastaanota tekstiviestejä Chromebookilla</translation>
 <translation id="6324916366299863871">Muokkaa pikanäppäintä</translation>
 <translation id="6325191661371220117">Poista automaattinen käynnistys käytöstä</translation>
 <translation id="6326175484149238433">Poista Chromesta</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Lähetä <ph name="BEGIN_LINK1" />järjestelmän tiedot<ph name="END_LINK1" /> ja <ph name="BEGIN_LINK2" />tilastot<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Synkronoinnin ja räätälöinnin asetukset</translation>
 <translation id="6397592254427394018">Avaa kaikki kirjanmerkit incognito-ikkunassa</translation>
+<translation id="639777613761517128">Jos haluat avata tiedostoja sovelluksella $1, kopioi ne ensin Linux-tiedostot-kansioon.</translation>
 <translation id="6398715114293939307">Poista Google Play Kauppa</translation>
 <translation id="6398765197997659313">Poistu koko näytön tilasta</translation>
 <translation id="6399774419735315745">Vakooja</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Tätä nimeä ei voi käyttää tiedoston tai kansion nimenä.</translation>
 <translation id="642469772702851743">Omistaja on lukinnut laitteen (sarjanumero <ph name="SERIAL_NUMBER" />).</translation>
 <translation id="6426200009596957090">Avaa ChromeVox-asetukset</translation>
-<translation id="6427415464407526111">Valitse suojausavain</translation>
 <translation id="6429384232893414837">Päivitysvirhe</translation>
 <translation id="6430814529589430811">Base64-koodattu ASCII, yksittäinen varmenne</translation>
 <translation id="6431217872648827691">Kaikki tiedot salattiin Google-salasanasi avulla
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Kehittäjätila</translation>
 <translation id="6655458902729017087">Piilota tilit</translation>
 <translation id="6657585470893396449">Salasana</translation>
-<translation id="6658023813581644008">Syötä salasanasi ottaaksesi Smart Lock ‑kirjautumisen käyttöön</translation>
 <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>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Järjestelmätietojen esikatselu</translation>
 <translation id="6886871292305414135">Avaa linkki uudessa &amp;välilehdessä</translation>
 <translation id="6892812721183419409">Avaa linkki käyttäjänä <ph name="USER" /></translation>
-<translation id="6896398788631624004">Liitä suojausavain ja aktivoi se</translation>
 <translation id="6896758677409633944">Kopioi</translation>
 <translation id="6898440773573063262">Kioskisovellukset voi nyt määrittää käynnistymään automaattisesti tällä laitteella.</translation>
 <translation id="6898699227549475383">Organisaatio (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Käyttäjä:</translation>
 <translation id="6916590542764765824">Hallinnoi laajennuksia</translation>
 <translation id="6920989436227028121">Avaa tavallisella välilehdellä</translation>
+<translation id="6921709132208495314">Lopeta tämän sivun datan käyttö</translation>
 <translation id="6922128026973287222">Vähennä tiedonsiirtomäärää ja selaa nopeammin Google Data Saverin avulla. Saat lisätietoja klikkaamalla.</translation>
 <translation id="6923132443355966645">Vieritä / klikkaa</translation>
 <translation id="6930242544192836755">Kesto</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Portti</translation>
 <translation id="6965978654500191972">Laite</translation>
+<translation id="6968288415730398122">Määritä näytön lukitus antamalla salasanasi.</translation>
 <translation id="6970480684834282392">Käynnistystyyppi</translation>
 <translation id="6970856801391541997">Tulosta tietyt sivut</translation>
 <translation id="6972180789171089114">Ääni- ja videotiedostot</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Hakukoneet</translation>
 <translation id="6978611942794658017">Tämä tiedosto on tarkoitettu tietokoneelle, joka käyttää Windowsia. Se ei ole yhteensopiva Chrome-käyttöjärjestelmää käyttävän laitteesi kanssa. Etsi sopiva korvaava sovellus Chrome Web Storesta.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Mykistä (oletus)</translation>
 <translation id="6979737339423435258">Kaikki</translation>
 <translation id="6980462514016882061">Google voi muokata hakua, mainoksia ja muita Googlen palveluita selaushistoriasi perusteella.</translation>
 <translation id="6981982820502123353">Esteettömyys</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Nämä ovat yleisiä tietoja laitteesta ja sen käytöstä (esim. akun varaustaso, sovellusten käyttö ja verkkoyhteydet). Tietojen avulla parannetaan Googlen tuotteita ja palveluja kaikkien käyttäjien hyväksi. Jotkin kootuista tiedoista auttavat myös kumppaneitamme, kuten Android-kehittäjiä, parantamaan sovelluksiaan ja tuotteitaan.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Tämän ominaisuuden käytöstä poistaminen ei estä laitetta lähettämästä tietoja, joita tarvitaan olennaisten palvelujen (esim. järjestelmäpäivitysten ja suojauksen) käyttämiseen.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Voit hallinnoida tätä ominaisuutta kohdassa Asetukset &gt; Google. Valitse valikosta Käyttö‑ ja diagnostiikkatiedot.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Löysimme tililtäsi <ph name="NUMBER_OF_APPS" /> sovellusta, joita voidaan käyttää tällä laitteella.</translation>
 <translation id="7199158086730159431">Pyydä ohj&amp;eita</translation>
 <translation id="7200083590239651963">Valitse konfiguraatio</translation>
 <translation id="720110658997053098">Pidä tämä laite pysyvästi kioskitilassa</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Näytön lukitus ja sisäänkirjautuminen</translation>
 <translation id="7229570126336867161">EVDO tarvitaan</translation>
 <translation id="7230787553283372882">Muokkaa tekstin kokoa</translation>
-<translation id="7231589788477569369">Ota Assistantista kaikki irti näillä asetuksilla</translation>
 <translation id="7232750842195536390">Uudelleennimeäminen epäonnistui</translation>
 <translation id="7234406375359457793">Virhe jaon käyttöönotossa. Kyseistä jakoa ei tueta.</translation>
 <translation id="7238585580608191973">SHA-256-tunnistetiedosto</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Tyhjennä ja kirjaudu ulos</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (paras)</translation>
 <translation id="7246339268451149667">Sallitaanko lukituksen avaaminen sormenjäljellä?</translation>
-<translation id="7246489301073081944">Sulje painamalla pitkään |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />|</translation>
 <translation id="7246947237293279874">FTP-välityspalvelin</translation>
 <translation id="725109152065019550">Järjestelmänvalvoja on poistanut ulkoisen tallennustilan käytöstä tilistäsi.</translation>
 <translation id="7253521419891527137">&amp;Lisätietoja</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Tarkista kelpoisuus</translation>
 <translation id="749028671485790643">Henkilö <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC-osoite</translation>
-<translation id="7490950320178383728">Käytä Bluetoothia suojausavaimen kanssa</translation>
 <translation id="7491962110804786152">sarkain</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> voi kerätä kaiken kirjoittamasi tekstin, myös henkilökohtaiset tiedot, kuten salasanat ja luottokorttien numerot. Haluatko käyttää tätä laajennusta?</translation>
 <translation id="7494065396242762445">Avaa Windows-asetukset</translation>
@@ -4485,7 +4477,6 @@
 <translation id="7850851215703745691">Näitä Drive-tiedostoja ei ole vielä jaettu</translation>
 <translation id="7851457902707056880">Kirjautuminen on sallittu vain omistajatilillä. Käynnistä tietokone uudelleen ja kirjaudu omistajatilillä. Tietokone käynnistetään uudelleen 30 sekunnin kuluttua.</translation>
 <translation id="7851716364080026749">Estä kameran ja mikrofonin käyttö aina</translation>
-<translation id="7851816139220202929">Käytä NFC:tä suojausavaimen kanssa</translation>
 <translation id="7853747251428735">&amp;Lisää työkaluja</translation>
 <translation id="7856006446339184955">Lähetä järjestelmädataa. Tämä laite lähettää tällä hetkellä diagnostiikkadataa ja laitteen ja sovellusten käyttödataa automaattisesti Googlelle. Omistaja on ottanut tämän <ph name="BEGIN_LINK1" />asetuksen<ph name="END_LINK1" /> käyttöön. Jos olet ottanut käyttöön verkko- ja sovellustoiminnan lisäominaisuuksia, tietoja säilytetään tililläsi, joten voit hallinnoida niitä Omat tapahtumat ‑sivulla. <ph name="BEGIN_LINK2" />Lisätietoja<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Lisää poikkeus</translation>
@@ -4568,6 +4559,7 @@
 <translation id="7973962044839454485">PPP-todennus epäonnistui virheellisen käyttäjänimen tai salasanan vuoksi</translation>
 <translation id="7974566588408714340">Yritä uudelleen laajennuksella <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Yliskannaus</translation>
+<translation id="79766959863778284">XR-eristetty laitepalvelu</translation>
 <translation id="7977551819349545646">Päivitetään Chromeboxia…</translation>
 <translation id="7978412674231730200">Yksityinen avain</translation>
 <translation id="7978450511781612192">Tämä kirjaa sinut ulos Google-tileiltäsi. Kirjanmerkkejä, historiaa, salasanoja tai muita ei enää synkronoida.</translation>
@@ -4618,7 +4610,6 @@
 <translation id="8030656706657716245">Lisää tulostin</translation>
 <translation id="8032244173881942855">Välilehden suoratoisto ei onnistu</translation>
 <translation id="8033827949643255796">valittu</translation>
-<translation id="8033958968890501070">Aikakatkaisu</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Avaa kaikki incognito-ikkunassa}=1{Avaa incognito-ikkunassa}other{Avaa kaikki # incognito-ikkunassa}}</translation>
 <translation id="8037117027592400564">Käyttää kaikkea puhesynteesin avulla luettua tekstiä</translation>
 <translation id="8037357227543935929">Kysy (oletus)</translation>
@@ -4791,6 +4782,7 @@
 <translation id="8320459152843401447">Koko näyttösi</translation>
 <translation id="8322814362483282060">Tältä sivulta on estetty mikrofonin käyttö.</translation>
 <translation id="8326478304147373412">PKCS #7, varmenneketju</translation>
+<translation id="8327039559959785305">Virhe Linux-tiedostojen käyttöönotossa. Yritä uudelleen.</translation>
 <translation id="8329978297633540474">Vain teksti</translation>
 <translation id="8335587457941836791">Poista kiinnitys hyllystä</translation>
 <translation id="8336153091935557858">Eilen <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4841,7 +4833,6 @@
 <translation id="8425213833346101688">Vaihda</translation>
 <translation id="8425492902634685834">Kiinnitä tehtäväpalkkiin</translation>
 <translation id="8425755597197517046">&amp;Liitä ja hae</translation>
-<translation id="8426117172745886547">Varoita ennen sulkemista (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Otetaan käyttöön</translation>
 <translation id="8427292751741042100">verkkopalveluun upotettu</translation>
 <translation id="8428213095426709021">Asetukset</translation>
@@ -4929,7 +4920,6 @@
 <translation id="8551388862522347954">Käyttöoikeudet</translation>
 <translation id="8553342806078037065">Hallitse muita henkilöitä</translation>
 <translation id="8554899698005018844">Ei kieltä</translation>
-<translation id="8557347704037207368">Lähettää Android Web Messages ‑ilmoituksia</translation>
 <translation id="855773602626431402">Hiekkalaatikossa toimimatonta laajennusta estettiin käynnistymästä tällä sivulla.</translation>
 <translation id="8557930019681227453">Luettelo</translation>
 <translation id="8559694214572302298">Kuvien dekoodaaja</translation>
@@ -5042,6 +5032,7 @@
 <translation id="8714154114375107944">Tukiaika päättyy</translation>
 <translation id="8714838604780058252">Taustagrafiikka</translation>
 <translation id="8715480913140015283">Taustavälilehti käyttää kameraa.</translation>
+<translation id="8716931980467311658">Poistetaanko kaikki Linux-sovellukset ja Linux-tiedostokansion data laitteelta <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Laajennuksen <ph name="PLUGIN_NAME" /> lataus epäonnistui.</translation>
 <translation id="8723829621484579639">Incognito-alakehykset sivustolle <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">Näytä ka&amp;nsiossa</translation>
@@ -5205,7 +5196,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – kaatunut</translation>
 <translation id="8983677657449185470">Auta parantamaan selaussuojaa</translation>
 <translation id="8984654317541110628">Tiedostojaon URL-osoite</translation>
-<translation id="8984872292925913496">Etsi 6-numeroinen PIN-koodi avaimen takaa</translation>
 <translation id="8986362086234534611">Unohda</translation>
 <translation id="8986494364107987395">Lähetä Googlelle käyttötilastoja ja virheraportteja automaattisesti</translation>
 <translation id="8987927404178983737">Kuukausi</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 7eed8e0b..1a3f80a 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">I-highlight ang object gamit ang keyboard focus kapag nagbago ito</translation>
 <translation id="1173894706177603556">Pangalanang muli</translation>
 <translation id="1174073918202301297">Naidagdag na ang shortcut</translation>
-<translation id="1174808551768282258">I-unlock ang iyong Chromebook gamit ang telepono mo. <ph name="LINK_BEGIN" />Matuto pa.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;I-print...</translation>
 <translation id="117624967391683467">Kinokopya ang <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Maaaring gamitin ng Google ang iyong history ng pag-browse para i-personalize ang Paghahanap, mga ad, at iba pang serbisyo ng Google. Maaari mo itong baguhin anumang oras sa myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">I-pause</translation>
 <translation id="1181037720776840403">Alisin</translation>
 <translation id="1183237619868651138">Hindi ma-install ang <ph name="EXTERNAL_CRX_FILE" /> sa lokal na cache.</translation>
-<translation id="1183378459020939734">Handa ka na bang ipares ang iyong Security Key?</translation>
 <translation id="1185924365081634987">Maaari mo ring subukang <ph name="GUEST_SIGNIN_LINK_START" />mag-browse bilang bisita<ph name="GUEST_SIGNIN_LINK_END" /> upang ayusin ang error sa network na ito.</translation>
 <translation id="1186771945450942097">Alisin ang mapaminsalang software</translation>
 <translation id="1187722533808055681">Mga idle na pag-wake up</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Walang nakitang Bluetooth device</translation>
 <translation id="1306606229401759371">Baguhin ang mga setting</translation>
 <translation id="1307559529304613120">Oops!  Nabigo ang system na i-imbak ang pangmatagalang token sa pag-access sa API para sa device na ito.</translation>
+<translation id="1307931752636661898">Hindi matingnan ang mga Linux file</translation>
 <translation id="1313405956111467313">Awtomatikong proxy configuration</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Isi-sync ang iyong mga bookmark, kasaysayan, at iba pang mga setting sa iyong Google Account.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Buksan ang mga setting ng mouse at touchpad device</translation>
 <translation id="1531004739673299060">Window ng Application</translation>
 <translation id="15373452373711364">Malaking mouse cursor</translation>
+<translation id="1538729222189715449">Binubuksan ang mga Linux file...</translation>
 <translation id="1540605929960647700">I-enable ang demo mode</translation>
 <translation id="1543284117603151572">Na-import Mula Sa Edge</translation>
 <translation id="1545177026077493356">Awtomatikong Kiosk Mode</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Baguhin ang touch HUD mode</translation>
 <translation id="1784849162047402014">Kaunti na lang ang espasyo sa disk ng device</translation>
 <translation id="1786636458339910689">Mga Drive ng Team</translation>
-<translation id="1792161662640298233">Vine-verify ang iyong Security Key</translation>
 <translation id="1792619191750875668">Pinalawak na display</translation>
 <translation id="1794791083288629568">Magpadala ng feedback upang tulungan kaming ayusin ang isyung ito.</translation>
 <translation id="1795214765651529549">Gamitin ang Classic</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Maligayang pagdating!</translation>
 <translation id="1914326953223720820">I-unzip ang Serbisyo</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Depende sa mga setting ng iyong account, maaaring malimitahan ang karanasan mo sa Assistant sa mga bagay tulad ng mga resulta sa web, biro, at lokal na impormasyon.</translation>
 <translation id="1916502483199172559">Default na pulang avatar</translation>
 <translation id="1918141783557917887">&amp;Mas maliit</translation>
 <translation id="1919345977826869612">Mga Ad</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Gustong i-access ng <ph name="PEPPER_PLUGIN_NAME" /> sa <ph name="PEPPER_PLUGIN_DOMAIN" /> ang iyong computer</translation>
 <translation id="2178614541317717477">CA Compromise</translation>
 <translation id="218070003709087997">Gumamit ng numero upang maisaad kung gaano karaming kopya ang ipi-print (1 hanggang 999).</translation>
+<translation id="2184515124301515068">Hayaan ang Chrome na pumili kung kailan makakapag-play ng tunog ang mga site (inirerekomenda)</translation>
 <translation id="2187895286714876935">Error sa Pag-import ng Certificate ng Server</translation>
 <translation id="2187906491731510095">Na-update ang mga extension</translation>
 <translation id="2188881192257509750">Buksan ang <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Basahin at baguhin ang iyong data sa ilang website</translation>
 <translation id="2242687258748107519">Info ng File</translation>
 <translation id="2243194103992005307">Para mag-alis ng mga app, pumunta sa Mga Setting &gt; Mga App o Application manager. Pagkatapos ay i-tap ang app na gusto mong i-uninstall (maaaring kailanganin mong mag-swipe pakanan o pakaliwa para mahanap ang app). Pagkatapos ay i-tap ang I-uninstall o I-disable.</translation>
+<translation id="224940702122312781">Gagamit ng maraming data ang page na ito.</translation>
 <translation id="2249605167705922988">hal. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Buksan gamit ang system viewer</translation>
 <translation id="225163402930830576">I-refresh ang Mga Network</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">I-configure ang network</translation>
 <translation id="230927227160767054">Nais ng pahinang ito na mag-install ng tagapangasiwa ng serbisyo.</translation>
 <translation id="2309620859903500144">Na-block ang site na ito sa pag-access sa iyong sensor ng paggalaw o liwanag.</translation>
-<translation id="2311075084924370935">Para matulungan ka sa iyong kalendaryo, mga paalala, mga flight, at higit pa, kailangan ng iyong Assistant ang mga setting ng Aktibidad sa Web at App, Impormasyon ng Device, Aktibidad sa Boses at Audio.</translation>
+<translation id="2315414688463285945">Nagkaroon ng error sa pag-configure ng mga Linux file. Pakisubukang muli.</translation>
 <translation id="2315821125498993513">Hindi makakonekta sa telepono. <ph name="LINK_BEGIN" />Matuto pa.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Hindi, salamat</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% ang natapos</translation>
 <translation id="2318143611928805047">Sukat ng papel</translation>
 <translation id="2318817390901984578">Upang gamitin ang mga Android app, i-charge at i-update ang iyong <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Kasalukuyang incognito na session (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Gamitin ang iyong Security Key sa <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Mga header at footer</translation>
 <translation id="2325650632570794183">Hindi sinusuportahan ang uri ng file na ito. Pakibisita ang Chrome Web Store upang makahanap ng app na makakapagbukas ng ganitong uri ng file.</translation>
 <translation id="2326931316514688470">I-&amp;reload ang app</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Magdagdag ng Pagbabahagi ng File</translation>
 <translation id="2367972762794486313">Ipakita ang apps</translation>
 <translation id="2369536625682139252">Ide-delete ang lahat ng data na na-store ng <ph name="SITE" />, maliban sa cookies.</translation>
-<translation id="237058345584060620">Ipares ang iyong key sa device na ito para magamit mo ito sa pag-sign in sa iyong account.</translation>
 <translation id="2371076942591664043">Buksan kapag &amp;tapos na</translation>
 <translation id="2377319039870049694">Lumipat sa list view</translation>
 <translation id="2377667304966270281">Mga Hard Fault</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Hindi mahanap ang iyong telepono. Siguraduhing naka-on ang Bluetooth ng <ph name="DEVICE_TYPE" /> mo. &lt;a&gt;Matuto pa&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Magdagdag ng &amp;Folder...</translation>
 <translation id="249113932447298600">Paumanhin, hindi sinusuportahan ang device na <ph name="DEVICE_LABEL" /> sa oras na ito.</translation>
-<translation id="2492040222276243256">Pindutin nang matagal ang button sa iyong Security Key sa loob ng hindi bababa sa 5 segundo</translation>
 <translation id="2493021387995458222">Piliin ang "isa-isang salita"</translation>
 <translation id="249303669840926644">Hindi makumpleto ang pagpaparehistro</translation>
 <translation id="2495777824269688114">Tumuklas ng higit pang feature o makakuha ng mga sagot. Piliin ang “?” para sa tulong.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Kabuuan: <ph name="NUMBER_OF_SHEETS" /><ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Matagal</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Platform <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Ibinabahagi ng tab na ito ang iyong screen.</translation>
 <translation id="2586657967955657006">Clipboard</translation>
 <translation id="2586672484245266891">Maglagay ng mas maikling URL</translation>
 <translation id="2587922270115112871">Hindi gumagawa ng isang Google Account ang paggawa ng isang pinangangasiwaang user, at hindi susunod sa mga ito ang mga setting
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344">Gumagamit ang <ph name="NAME" /> ng <ph name="USAGE" /> MB ng disk space.</translation>
 <translation id="2633212996805280240">Alisin ang "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101">Hindi makumpleto ng <ph name="PRODUCT_NAME" /> ang pag-install, ngunit patuloy na gagana mula sa larawan ng disk nito.</translation>
-<translation id="2633326789677284179">Hanapin ang pangalang naka-print sa likod ng iyong key</translation>
 <translation id="2635276683026132559">Paglagda</translation>
 <translation id="2636625531157955190">Hindi ma-access ng Chrome ang larawan.</translation>
 <translation id="2638087589890736295">Kinakailangan ang passphrase upang masimulan ang pag-sync</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Magdagdag ng <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Upang mailagay ang iyong mga password sa lahat ng device mo, mag-sign in sa Chrome.</translation>
 <translation id="2875698561019555027">(Mga page ng error sa Chrome)</translation>
-<translation id="2876441201733326392">Gumamit ng USB Security Key</translation>
 <translation id="288042212351694283">Ina-access ang iyong mga Universal 2nd Factor device</translation>
 <translation id="2881966438216424900">Huling na-access:</translation>
 <translation id="2882943222317434580">Magre-restart at magre-reset ang <ph name="IDS_SHORT_PRODUCT_NAME" /> sa ilang sandali</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Mag-ulat nang anonymous</translation>
 <translation id="2984337792991268709">Ngayon <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Na-block ang pahinang ito mula sa pagkakaroon ng buong kontrol sa mga MIDI device.</translation>
-<translation id="2988599644347283908">Tandaan: Ang data na kinokontrol ng mga setting na ito ay maaaring i-save at gamitin sa anumang serbisyo ng Google kung saan ka naka-sign in para magbigay sa iyo ng mga naka-personalize na karanasan at kapaki-pakinabang na ad. Maaari mong tingnan ang iyong data, i-delete ito, at baguhin ang mga setting mo sa account.google.com.</translation>
 <translation id="2989474696604907455">hindi naka-attach</translation>
 <translation id="2989786307324390836">DER-encoded binary, single certificate</translation>
 <translation id="2993517869960930405">Impormasyon ng App</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Mag-unmute ng Mga Tab</translation>
 <translation id="3053013834507634016">Paggamit ng Certificate Key </translation>
 <translation id="3057861065630527966">I-back up ang iyong mga larawan at video</translation>
-<translation id="3059313675706898490">Mga Android Message</translation>
 <translation id="3060379269883947824">I-enable ang Select to Speak</translation>
 <translation id="3061707000357573562">Serbisyo sa Pag-patch</translation>
 <translation id="3064410671692449875">Hindi sapat ang data</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Hindi makopya ang external na crx file sa <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Napares na ang "<ph name="DEVICE_NAME" />"</translation>
 <translation id="3101709781009526431">Petsa at oras</translation>
-<translation id="3104900172193317662">Payagan ang paggamit ng iyong Security Key</translation>
 <translation id="310671807099593501">Gumagamit ng bluetooth ang site</translation>
 <translation id="3115128645424181617">Hindi mahanap ang iyong telepono. Siguraduhing malapit ito at naka-on ang Bluetooth.</translation>
 <translation id="3115147772012638511">Naghihintay para sa cache...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Hindi Bahagi Ng Certificate&gt;</translation>
 <translation id="3254434849914415189">Piliin ang default na app para sa mga <ph name="FILE_TYPE" /> na file:</translation>
 <translation id="3254516606912442756">Na-disable ang awtomatikong pag-detect ng time zone</translation>
-<translation id="3254772308201947812">Oo, tinatanggap ko</translation>
 <translation id="3264544094376351444">Sans-serif font</translation>
 <translation id="3264547943200567728">Hindi na-set up ang network ng iyong Chromebox</translation>
 <translation id="3264582393905923483">Konteksto</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Pagbukud-bukurin ayon sa</translation>
 <translation id="3737274407993947948">Nagkaroon ng error sa pag-install ng Linux...</translation>
 <translation id="3737536731758327622">Lalabas dito ang iyong mga download</translation>
-<translation id="3738671331307774213">Nakakatulong ang pag-verify ng iyong pagkakakilanlan sa pagprotekta sa pribado mong data</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Buksan ang <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859">Lalabas na ngayon ang <ph name="DEVICE_NAME" /> sa Admin Console</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Na-pause ang pag-sync</translation>
 <translation id="3860381078714302691">Welcome sa Hangouts Meet</translation>
+<translation id="3861241522664181545">Na-pause ang page.</translation>
 <translation id="3862134173397075045">Welcome sa karanasan sa Cast sa Chrome!</translation>
 <translation id="3862788408946266506">Naka-install dapat sa kiosk mode ng Chrome OS ang app na may 'kiosk_only' na manifest attribute</translation>
 <translation id="3865414814144988605">Resolution</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Para i-on ito, <ph name="BEGIN_LINK" />i-reset ang pag-sync<ph name="END_LINK" /> para alisin ang iyong passphrase sa pag-sync</translation>
 <translation id="3878840326289104869">Gumagawa ng pinangangasiwaang user</translation>
 <translation id="3879748587602334249">Download manager</translation>
-<translation id="3880709822663530586">Gumagana lang ang iyong Security Key kapag naka-on ang Bluetooth ng device mo</translation>
 <translation id="3888550877729210209">Nagtatala gamit ang <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Idagdag ang OpenVPN / L2TP...</translation>
 <translation id="3893536212201235195">Basahin at baguhin ang iyong mga setting ng accessibility</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Inihahanda ang secure na module, pakihintay (maaari itong abutin nang ilang minuto)...</translation>
 <translation id="4099060993766194518">I-restore ang default na search engine?</translation>
 <translation id="4100733287846229632">Sobrang kaunti na lang ang espasyo ng device</translation>
+<translation id="4103091233824664032">Ilagay ang iyong password para i-configure ang lock ng screen at pag-sign in</translation>
 <translation id="4104163789986725820">I-e&amp;xport...</translation>
 <translation id="4105563239298244027">Makakuha ng libreng 1 TB sa Google Drive</translation>
 <translation id="4107048419833779140">Kumilala at mag-eject ng mga storage device</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Awtomatikong mag-o-on ang Night Light sa pagsikat ng araw</translation>
 <translation id="4138267921960073861">Ipakita ang mga username at larawan sa screen sa pag-sign-in</translation>
 <translation id="4144218403971135344">Magkaroon ng mas magandang kalidad na video at makatipid ng baterya. Magpe-play lang ang video sa iyong screen na may naka-enable na Cast.</translation>
-<translation id="414599683948988413">Gamitin ang iyong Security Key sa USB</translation>
 <translation id="4146026355784316281">Palaging Buksan Gamit ang System Viewer</translation>
 <translation id="4146785383423576110">I-reset at linisin</translation>
 <translation id="4147897805161313378">Google Photos</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Huwag paganahin</translation>
 <translation id="4400367121200150367">Lalabas dito ang mga site na hindi kailanman nagse-save ng mga password</translation>
 <translation id="4400632832271803360">Pindutin nang matagal ang key ng Launcher upang mapalitan ang gawi ng mga key sa itaas na row</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, at *.png</translation>
 <translation id="4408599188496843485">T&amp;ulong</translation>
 <translation id="4409697491990005945">Mga Margin</translation>
 <translation id="4411578466613447185">Code Signer</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Makakahanap at makakapag-alis ang Chrome ng mapaminsalang software sa iyong computer</translation>
 <translation id="4481530544597605423">Mga hindi nakapares na device</translation>
 <translation id="4482194545587547824">Maaaring gamitin ng Google ang iyong history ng pagba-browse upang ma-personalize ang Search at iba pang mga serbisyo ng Google</translation>
+<translation id="4493287891836751813">Kilalanin ang iyong Google Assistant</translation>
 <translation id="4495419450179050807">Huwag ipakita sa pahinang ito</translation>
 <translation id="4499718683476608392">Ine-enable ang Autofill ng credit card para mapunan ang mga form sa isang pag-click</translation>
 <translation id="4500114933761911433">Nag-crash ang <ph name="PLUGIN_NAME" /></translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">I-mute ang Tab</translation>
 <translation id="4742746985488890273">I-pin sa Shelf</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Alamin kung paano i-update ang mga application<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Mga Mensahe</translation>
 <translation id="4746971725921104503">Mukhang may pinamamahalaan ka nang user na may ganoong pangalan. Ginusto mo bang <ph name="LINK_START" />i-import ang <ph name="USER_DISPLAY_NAME" /> sa device na ito<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Nangangailangan ng extension mula sa Chrome Web Store</translation>
 <translation id="4750394297954878236">Mga Suhestyon</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Pinagana ang Pag-profile</translation>
 <translation id="4823484602432206655">Basahin at baguhin ang mga setting ng user at device</translation>
 <translation id="4823651846660089135">Read-only ang device</translation>
+<translation id="4823955295535347797">I-access ang iyong Assistant anumang oras na sasabihin mo ang "Ok Google" kapag naka-on ang screen mo.</translation>
 <translation id="4828937774870308359">Australian</translation>
 <translation id="4829768588131278040">Mag-set up ng PIN</translation>
 <translation id="4830502475412647084">Ini-install ang update sa OS</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Tulungan ang aming mga engineer na siyasatin at ayusin ang pag-crash na ito. Maglista ng mga eksaktong hakbang kung maaari. Walang detalye ang masasayang!</translation>
 <translation id="4876895919560854374">I-lock at i-unlock ang screen</translation>
 <translation id="4877017884043316611">Ipares sa Chromebox</translation>
+<translation id="4879491255372875719">Awtomatiko (default)</translation>
 <translation id="4880214202172289027">Slider ng volume</translation>
 <translation id="4880328057631981605">Access point name</translation>
 <translation id="4880520557730313061">Auto-fix</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">pataas</translation>
 <translation id="5100114659116077956">Upang maibigay sa iyo ang mga pinakabagong feature, kailangang mag-update ng iyong Chromebox.</translation>
 <translation id="5101042277149003567">Buksan lahat ng mga bookmark</translation>
-<translation id="5104546332954397226">Gamitin ang iyong telepono bilang Security Key</translation>
 <translation id="5105855035535475848">I-pin ang mga tab</translation>
 <translation id="5108967062857032718">Mga Setting - Alisin ang mga Android app</translation>
 <translation id="5109044022078737958">Elma</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">M&amp;uling Buksan ang Nakasarang Tab</translation>
 <translation id="52912272896845572">Hindi wasto ang file ng private na key.</translation>
 <translation id="529175790091471945">I-format ang device na ito</translation>
-<translation id="5292195676005197571">Para magamit ang karamihan sa mga key, pindutin lang ang button</translation>
 <translation id="5293170712604732402">I-restore ang mga setting sa mga orihinal na default ng mga ito</translation>
 <translation id="5297082477358294722">Na-save ang password. Tingnan at pamahalaan ang mga naka-save na password sa iyong <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Ang tema ay nilikha ni</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Sumasang-ayon Ako</translation>
 <translation id="532943162177641444">I-tap ang notification sa iyong <ph name="PHONE_NAME" /> upang i-set up ang mobile hotspot na magagamit ng device na ito.</translation>
 <translation id="5329858601952122676">&amp;Tanggalin</translation>
+<translation id="5329945517224105597">Maaaring mag-alok ang iyong Assistant ng mga mas nauugnay na suhestyon at partikular na pagkilos na nauugnay sa nasa screen mo. Maaari mo itong baguhin sa mga setting ng Assistant</translation>
 <translation id="5330145655348521461">Ang mga file na ito na binuksan sa ibang desktop. Ilipat sa <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) upang tingnan ito.</translation>
 <translation id="5330512191124428349">Kumuha ng impormasyon</translation>
 <translation id="5331069282670671859">Wala kang certificate sa kategoryang ito</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Payagan ang mga site na mag-play ng tunog</translation>
 <translation id="5390284375844109566">Naka-index na database</translation>
 <translation id="5390743329570580756">Magpadala para sa</translation>
-<translation id="5392327114396848796">Gumamit ng built-in na Security Key</translation>
 <translation id="5397794290049113714">Ikaw</translation>
 <translation id="5398572795982417028">Lampas sa hangganan ang tinukoy na page, ang limitasyon ay <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Na-block ang mga ad</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Isara ang lahat ng file sa archive o virtual disk, pagkatapos ay subukang muli.</translation>
 <translation id="5687326903064479980">Timezone</translation>
+<translation id="568824803367507355">Pag-detect ng "Ok Google"</translation>
 <translation id="5689516760719285838">Lokasyon</translation>
 <translation id="56907980372820799">I-link ang data</translation>
 <translation id="5691511426247308406">Pamilya</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Nagre-record ang camera o mikropono</translation>
 <translation id="5835754902560991078">sobrang ikli (0.6s)</translation>
 <translation id="5838456317242088717">Kasalukuyang incognito na session</translation>
-<translation id="5842053879378944309">Gamitin ang USB Security Key sa <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">I-enable ang Bluetooth</translation>
 <translation id="5843250171025351504">Hindi na sumusunod ang iyong device sa minimum na bersyon ng client na tinukoy ng admin mo. Paki-update upang mag-log in.</translation>
 <translation id="5846929185714966548">Tab 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Hindi na sinusuportahan.</translation>
 <translation id="6317369057005134371">Hinihintay ang application window...</translation>
 <translation id="6318407754858604988">Nagsimula ang pag-download</translation>
-<translation id="6322653941595359182">Magpadala at makatanggap ng mga text message mula sa iyong Chromebook</translation>
 <translation id="6324916366299863871">I-edit ang shortcut</translation>
 <translation id="6325191661371220117">I-disable ang awtomatikong paglulunsad</translation>
 <translation id="6326175484149238433">Alisin sa Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Ipadala ang <ph name="BEGIN_LINK1" />impormasyon ng system<ph name="END_LINK1" /> at <ph name="BEGIN_LINK2" />mga sukatan<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Mga opsyon sa pag-sync at pag-personalize</translation>
 <translation id="6397592254427394018">Buksan ang lahat ng bookmark sa &amp;incognito window</translation>
+<translation id="639777613761517128">Para mabuksan ang mga file gamit ang $1, kopyahin muna sa folder ng mga Linux file.</translation>
 <translation id="6398715114293939307">Alisin ang Google Play Store</translation>
 <translation id="6398765197997659313">Lumabas sa buong screen</translation>
 <translation id="6399774419735315745">Espiya</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Hindi maaaring gamitin ang pangalang ito bilang isang pangalan ng file o folder</translation>
 <translation id="642469772702851743">Na-lock ng may-ari ang device na ito (SN: <ph name="SERIAL_NUMBER" />).</translation>
 <translation id="6426200009596957090">Buksan ang mga setting ng ChromeVox</translation>
-<translation id="6427415464407526111">Piliin ang iyong Security Key</translation>
 <translation id="6429384232893414837">Error sa pag-update</translation>
 <translation id="6430814529589430811">Base64-encoded ASCII, single certificate</translation>
 <translation id="6431217872648827691">Ang lahat ng data ay na-encrypt gamit ang iyong Google password sa oras na
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Developer mode</translation>
 <translation id="6655458902729017087">Itago ang Mga Account</translation>
 <translation id="6657585470893396449">Password</translation>
-<translation id="6658023813581644008">Para i-set up ang Smart Lock para sa pag-sign in, ilagay ang iyong password</translation>
 <translation id="6659213950629089752">Ang page na ito ay na-zoom sa pamamagitan ng extension ng "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Sa kasamaang-palad, na-configure ang iyong computer gamit ang isang hardware ID na mali ang pagkakabuo. Pinipigilan nitong mag-update ang Chrome OS upang magkaroon ng mga pinakabagong pag-aayos sa seguridad at <ph name="BEGIN_BOLD" />maaaring mawalan ng proteksyon laban sa mga nakakahamak na pag-atake<ph name="END_BOLD" /> ang iyong computer.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Preview ng Impormasyon ng System</translation>
 <translation id="6886871292305414135">Buksan ang link sa bagong &amp;tab</translation>
 <translation id="6892812721183419409">Buksan ang Link bilang <ph name="USER" /></translation>
-<translation id="6896398788631624004">I-plug in ang iyong Security Key at i-activate ito</translation>
 <translation id="6896758677409633944">Copy</translation>
 <translation id="6898440773573063262">Maaari na ngayong i-configure ang mga kiosk application na mag-auto-launch sa device na ito.</translation>
 <translation id="6898699227549475383">Samahan (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">User:</translation>
 <translation id="6916590542764765824">Pamahalaan ang Mga Extension</translation>
 <translation id="6920989436227028121">Buksan bilang regular na tab</translation>
+<translation id="6921709132208495314">Ihinto ang paggamit ng data sa page na ito</translation>
 <translation id="6922128026973287222">Mag-save ng data at mag-browse nang mas mabilis gamit ang Data Saver ng Google. I-click upang matuto nang higit pa.</translation>
 <translation id="6923132443355966645">Mag-scroll / Mag-click</translation>
 <translation id="6930242544192836755">Tagal</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Device</translation>
+<translation id="6968288415730398122">Ilagay ang iyong password upang i-configure ang lock ng screen</translation>
 <translation id="6970480684834282392">Uri ng pag-startup</translation>
 <translation id="6970856801391541997">I-print ang Mga Tiyak na Pahina</translation>
 <translation id="6972180789171089114">Audio/Video</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Mga Search Engine</translation>
 <translation id="6978611942794658017">Idinisenyo ang file na ito para sa isang PC na gumagamit ng Windows software. Hindi ito tugma sa iyong device na nagpapatakbo ng Chrome OS. Mangyaring maghanap sa Chrome Web Store ng naaangkop na pamalit na app.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">I-mute (default)</translation>
 <translation id="6979737339423435258">Lahat ng oras</translation>
 <translation id="6980462514016882061">Maaaring gamitin ng Google ang iyong history ng pagba-browse upang i-personalize ang Search, mga ad at iba pang mga serbisyo ng Google</translation>
 <translation id="6981982820502123353">Pagiging Maa-access</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Ito ay pangkaraniwang impormasyon tungkol sa iyong device at paano mo ito ginagamit (gaya ng antas ng baterya, paggamit ng app, at pagkakakonekta sa network). Gagamitin ang data para pahusayin ang mga produkto at serbisyo ng Google para sa lahat. Makakatulong rin ang ilang pinagsama-samang impormasyon sa mga partner, gaya ng mga developer ng Android, na mas mapahusay ang kanilang mga app at produkto.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Hindi maaapektuhan ng pag-off sa feature na ito ang kakayahan ng iyong device na ipadala ang impormasyong kinakailangan para sa mahahalagang serbisyo gaya ng mga update sa system at seguridad.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Maaari mong kontrolin ang feature na ito sa Mga Setting &gt; Google. Piliin ang Paggamit at mga diagnostic mula sa menu.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">May nakita kaming <ph name="NUMBER_OF_APPS" /> (na) app mula sa iyong account na maaaring gamitin sa device na ito.</translation>
 <translation id="7199158086730159431">Humingi ng Tulong</translation>
 <translation id="7200083590239651963">Pumili ng configuration</translation>
 <translation id="720110658997053098">Permanenteng panatilihin sa kiosk mode ang device na ito</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Lock ng screen at pag-sign in</translation>
 <translation id="7229570126336867161">Kailangan ng EVDO</translation>
 <translation id="7230787553283372882">I-customize ang laki ng iyong text</translation>
-<translation id="7231589788477569369">Makuha ang kumpletong karanasan sa Assistant gamit ang mga setting na ito</translation>
 <translation id="7232750842195536390">Hindi napalitan ang pangalan</translation>
 <translation id="7234406375359457793">Nagka-error sa pag-mount ng share. Hindi sinusuportahan ang isinaad na share.</translation>
 <translation id="7238585580608191973">SHA-256 Fingerprint</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">I-clear at Mag-sign Out</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Pinakamainam)</translation>
 <translation id="7246339268451149667">I-enable ang Pag-unlock gamit ang fingerprint?</translation>
-<translation id="7246489301073081944">Pindutin nang matagal ang |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| para lumabas</translation>
 <translation id="7246947237293279874">FTP Proxy</translation>
 <translation id="725109152065019550">Paumanhin, hindi pinagana ng iyong administrator ang panlabas na storage sa iyong account.</translation>
 <translation id="7253521419891527137">&amp;Matuto nang Higit Pa</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Suriin ang pagiging karapat-dapat</translation>
 <translation id="749028671485790643">Tao <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC address</translation>
-<translation id="7490950320178383728">Gamitin ang iyong Security Key sa Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">Maaaring kolektahin ng extension ng <ph name="EXTENSION_NAME" /> ang lahat ng text na ita-type mo, kabilang ang personal na data tulad ng mga password at numero ng credit card. Gusto mo bang gamitin ang extension na ito?</translation>
 <translation id="7494065396242762445">Buksan ang Mga Setting ng Windows</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">Hindi pa ibinabahagi ang mga file sa Drive na ito</translation>
 <translation id="7851457902707056880">Pinaghigpitan lang ang pag-sign in sa account ng may-ari. Mangyaring mag-reboot at mag-sign in gamit ang account ng may-ari. Awtomatikong magre-reboot ang machine sa loob ng 30 segundo.</translation>
 <translation id="7851716364080026749">Palaging i-block ang access sa camera at mikropono</translation>
-<translation id="7851816139220202929">Gamitin ang iyong Security Key sa NFC</translation>
 <translation id="7853747251428735">Higit Pang Mga Too&amp;l</translation>
 <translation id="7856006446339184955">Magpadala ng data ng system. Kasalukuyang awtomatikong nagpapadala sa Google ang device na ito ng diagnostic at data ng paggamit sa device at app. Ang may-ari ang nagpapatupad sa <ph name="BEGIN_LINK1" />setting<ph name="END_LINK1" /> na ito. Kung in-on mo ang karagdagang Aktibidad sa Web at App, iso-store ang impormasyong ito sa iyong account para mapamahalaan mo ito sa Aking Aktibidad. <ph name="BEGIN_LINK2" />Matuto Pa<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Magdagdag ng exception</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">Nabigo ang pagpapatotoo sa PPP dahil sa hindi tamang username o password</translation>
 <translation id="7974566588408714340">Subukang muli gamit ang <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Overscan</translation>
+<translation id="79766959863778284">XR Isolated Device Service</translation>
 <translation id="7977551819349545646">Ina-update ang Chromebox...</translation>
 <translation id="7978412674231730200">Private na key</translation>
 <translation id="7978450511781612192">Dahil dito, masa-sign out ka sa iyong mga Google Account. Hindi na masi-sync ang iyong mga bookmark, history, mga password, at higit pa.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Magdagdag ng Printer</translation>
 <translation id="8032244173881942855">Hindi ma-cast ang tab.</translation>
 <translation id="8033827949643255796">pinili</translation>
-<translation id="8033958968890501070">Time out</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Buksan lahat sa &amp;incognito window}=1{Buksan lahat sa &amp;incognito window}one{Buksan lahat (#) sa &amp;incognito window}other{Buksan lahat (#) sa &amp;incognito window}}</translation>
 <translation id="8037117027592400564">Basahin ang lahat ng binigkas na text gamit ang naka-synthesize na pagsasalita</translation>
 <translation id="8037357227543935929">Magtanong (default)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Ang Iyong Buong Screen</translation>
 <translation id="8322814362483282060">Na-block na ang pahinang ito sa pag-access sa iyong mikropono.</translation>
 <translation id="8326478304147373412">PKCS #7, certificate chain</translation>
+<translation id="8327039559959785305">Nagkaroon ng error sa pag-mount ng mga Linux file. Pakisubukang muli.</translation>
 <translation id="8329978297633540474">Plain text</translation>
 <translation id="8335587457941836791">I-unpin mula sa shelf</translation>
 <translation id="8336153091935557858">Kahapon <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">Baguhin</translation>
 <translation id="8425492902634685834">I-pin sa Taskbar</translation>
 <translation id="8425755597197517046">I-pa&amp;ste at Maghanap</translation>
-<translation id="8426117172745886547">Magbabala bago lumabas (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Ine-enable</translation>
 <translation id="8427292751741042100">naka-embed sa anumang host</translation>
 <translation id="8428213095426709021">Mga Setting</translation>
@@ -4931,7 +4922,6 @@
 <translation id="8551388862522347954">Mga Lisensya</translation>
 <translation id="8553342806078037065">Pamahalaan ang iba pang mga tao</translation>
 <translation id="8554899698005018844">Walang wika</translation>
-<translation id="8557347704037207368">Nagpapadala sa iyo ng mga notification mula sa Mga Mensahe sa Web ng Android</translation>
 <translation id="855773602626431402">Pinigilan ang isang hindi naka-sandbox na plugin na tumakbo sa page na ito.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Pang-decode ng Larawan</translation>
@@ -5044,6 +5034,7 @@
 <translation id="8714154114375107944">Pagtatapos ng suporta</translation>
 <translation id="8714838604780058252">Graphics sa background</translation>
 <translation id="8715480913140015283">Ginagamit ng tab sa background ang iyong camera</translation>
+<translation id="8716931980467311658">I-delete sa <ph name="DEVICE_TYPE" /> na ito ang lahat ng Linux application at data sa iyong folder ng mga Linux file?</translation>
 <translation id="8719653885894320876">Hindi na-download ang <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Mga incognito subframe para sa: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Ipakita sa Folder</translation>
@@ -5208,7 +5199,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Nag-crash</translation>
 <translation id="8983677657449185470">Tumulong na pahusayin ang Ligtas na Pag-browse</translation>
 <translation id="8984654317541110628">URL ng File Share</translation>
-<translation id="8984872292925913496">Hanapin ang 6 na digit na PIN sa likod ng iyong key</translation>
 <translation id="8986362086234534611">Kalimutan</translation>
 <translation id="8986494364107987395">Awtomatikong ipadala ang mga istatistika ng paggamit at mga ulat ng pag-crash sa Google</translation>
 <translation id="8987927404178983737">Buwan</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index e60a6646..35271d1 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Mettre en surbrillance l'objet sélectionné au clavier lorsqu'il change</translation>
 <translation id="1173894706177603556">Renommer</translation>
 <translation id="1174073918202301297">Raccourci ajouté</translation>
-<translation id="1174808551768282258">Déverrouillez votre Chromebook avec votre téléphone. <ph name="LINK_BEGIN" />En savoir plus.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">Im&amp;primer...</translation>
 <translation id="117624967391683467">Copie de <ph name="FILE_NAME" /> en cours…</translation>
 <translation id="1177138678118607465">Google peut utiliser votre historique de navigation pour personnaliser la recherche, les annonces et d'autres services Google. Vous pouvez modifier ce paramètre à tout moment sur la page myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Suspendre</translation>
 <translation id="1181037720776840403">Supprimer</translation>
 <translation id="1183237619868651138">Impossible d'installer le fichier <ph name="EXTERNAL_CRX_FILE" /> dans le cache local.</translation>
-<translation id="1183378459020939734">Prêt à associer votre clé de sécurité ?</translation>
 <translation id="1185924365081634987">Vous pouvez également essayer de <ph name="GUEST_SIGNIN_LINK_START" />naviguer en tant qu'invité<ph name="GUEST_SIGNIN_LINK_END" /> pour corriger cette erreur réseau.</translation>
 <translation id="1186771945450942097">Supprimez le logiciel malveillant</translation>
 <translation id="1187722533808055681">Sorties de veille</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Aucun appareil Bluetooth détecté</translation>
 <translation id="1306606229401759371">Modifier les paramètres</translation>
 <translation id="1307559529304613120">Échec de l'enregistrement du jeton d'accès aux API à long terme pour cet appareil.</translation>
+<translation id="1307931752636661898">Impossible d'afficher les fichiers Linux</translation>
 <translation id="1313405956111467313">Configuration automatique du proxy</translation>
 <translation id="131364520783682672">Verr. maj.</translation>
 <translation id="1313705515580255288">Vos favoris, votre historique et d'autres paramètres seront synchronisés avec votre compte Google.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Accéder aux paramètres de la souris et du pavé tactile</translation>
 <translation id="1531004739673299060">Fenêtre de l'application</translation>
 <translation id="15373452373711364">Grand curseur</translation>
+<translation id="1538729222189715449">Ouverture des fichiers Linux…</translation>
 <translation id="1540605929960647700">Activer le mode de démonstration</translation>
 <translation id="1543284117603151572">Importés depuis Edge</translation>
 <translation id="1545177026077493356">Mode Kiosque automatique</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Changer de mode pour l'affichage tête haute tactile</translation>
 <translation id="1784849162047402014">Peu d'espace disque disponible sur l'appareil</translation>
 <translation id="1786636458339910689">Drive d'équipe</translation>
-<translation id="1792161662640298233">Valider votre clé de sécurité</translation>
 <translation id="1792619191750875668">Affichage étendu</translation>
 <translation id="1794791083288629568">Envoyer des commentaires pour nous aider à résoudre ce problème.</translation>
 <translation id="1795214765651529549">Utiliser le thème classique</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Bienvenue !</translation>
 <translation id="1914326953223720820">Service de décompression de fichier</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Selon les paramètres de votre compte, l'Assistant risque de ne pouvoir vous proposer que des contenus du type résultats Web, blagues et actualités locales.</translation>
 <translation id="1916502483199172559">Avatar rouge par défaut</translation>
 <translation id="1918141783557917887">Plu&amp;s petit</translation>
 <translation id="1919345977826869612">Annonces</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Le plug-in <ph name="PEPPER_PLUGIN_NAME" /> provenant du domaine <ph name="PEPPER_PLUGIN_DOMAIN" /> demande l'accès à votre ordinateur</translation>
 <translation id="2178614541317717477">Autorité de certification compromise</translation>
 <translation id="218070003709087997">Indiquez le nombre de copies à imprimer (1 à 999).</translation>
+<translation id="2184515124301515068">Chrome détermine quand activer le son des sites (recommandé)</translation>
 <translation id="2187895286714876935">Erreur d'importation du certificat serveur</translation>
 <translation id="2187906491731510095">Extensions mises à jour</translation>
 <translation id="2188881192257509750">Ouvrir <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Accéder aux données de plusieurs sites et les modifier</translation>
 <translation id="2242687258748107519">Informations sur le fichier</translation>
 <translation id="2243194103992005307">Pour supprimer des applications, sélectionnez Paramètres &gt; Applications ou Gestionnaire d'applications, puis appuyez sur l'application que vous souhaitez désinstaller. Vous devrez peut-être balayer l'écran vers la droite ou la gauche pour localiser l'application. Ensuite, appuyez sur "Désinstaller" ou "Désactiver".</translation>
+<translation id="224940702122312781">Cette page consomme beaucoup de données.</translation>
 <translation id="2249605167705922988">par exemple : 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Ouvrir avec le lecteur système</translation>
 <translation id="225163402930830576">Actualiser les réseaux</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Configurer le réseau</translation>
 <translation id="230927227160767054">Cette page veut installer un gestionnaire de services</translation>
 <translation id="2309620859903500144">L'accès à vos capteurs de mouvement ou de lumière a été bloqué pour ce site.</translation>
-<translation id="2311075084924370935">Pour que l'assistant puisse vous aider à gérer votre agenda, vos rappels, vos vols et bien plus, vous devez activer les paramètres "Activité sur le Web et les applications", "Informations provenant des appareils" et "Activités vocales et audio".</translation>
+<translation id="2315414688463285945">Erreur lors de la configuration des fichiers Linux. Veuillez réessayer.</translation>
 <translation id="2315821125498993513">Impossible d'associer le Chromebook au téléphone. <ph name="LINK_BEGIN" />En savoir plus.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Non merci</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % terminés</translation>
 <translation id="2318143611928805047">Taille du papier</translation>
 <translation id="2318817390901984578">Pour utiliser des applications Android, rechargez et mettez à jour votre <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Session de navigation privée actuelle (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Utiliser votre clé de sécurité avec <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">En-têtes et pieds de page</translation>
 <translation id="2325650632570794183">Ce type de fichier n'est pas compatible. Veuillez accéder au Chrome Web Store pour trouver une application pouvant l'ouvrir.</translation>
 <translation id="2326931316514688470">&amp;Actualiser l'application</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Ajouter un partage de fichiers</translation>
 <translation id="2367972762794486313">Afficher les applications</translation>
 <translation id="2369536625682139252">Toutes les données stockées par <ph name="SITE" /> seront supprimées, sauf les cookies.</translation>
-<translation id="237058345584060620">Associez votre clé à cet appareil afin de pouvoir l'utiliser pour vous connecter à votre compte</translation>
 <translation id="2371076942591664043">Ouvrir une fois le téléchargement &amp;terminé</translation>
 <translation id="2377319039870049694">Passer en mode Liste</translation>
 <translation id="2377667304966270281">Défauts matériels</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Impossible de trouver votre téléphone. Assurez-vous que le Bluetooth de votre <ph name="DEVICE_TYPE" /> est activé. &lt;a&gt;En savoir plus&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Ajouter un &amp;dossier...</translation>
 <translation id="249113932447298600">Désolé, le périphérique <ph name="DEVICE_LABEL" /> n'est pas compatible pour le moment.</translation>
-<translation id="2492040222276243256">Appuyez sur le bouton situé sur votre clé de sécurité pendant au moins cinq secondes</translation>
 <translation id="2493021387995458222">Sélectionner "un mot à la fois"</translation>
 <translation id="249303669840926644">Impossible de terminer l'enregistrement</translation>
 <translation id="2495777824269688114">Découvrez d'autres fonctionnalités et obtenez des réponses à vos questions. Sélectionnez "?" pour obtenir de l'aide.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Total : <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Longue</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Plate-forme <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Votre écran est partagé par cet onglet.</translation>
 <translation id="2586657967955657006">Presse-papiers</translation>
 <translation id="2586672484245266891">Veuillez saisir une URL plus courte</translation>
 <translation id="2587922270115112871">La création d'un utilisateur supervisé n'entraîne pas la création d'un compte Google, et ses paramètres
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> utilise actuellement <ph name="USAGE" /> Mo d'espace disque.</translation>
 <translation id="2633212996805280240">Désinstaller "<ph name="EXTENSION_NAME" />" ?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> n'a pas pu terminer l'installation, mais va poursuivre son exécution à partir de son image disque.</translation>
-<translation id="2633326789677284179">Localisez le nom imprimé au dos de votre clé</translation>
 <translation id="2635276683026132559">Signature</translation>
 <translation id="2636625531157955190">Impossible d'accéder à l'image avec Google Chrome.</translation>
 <translation id="2638087589890736295">Veuillez saisir la phrase secrète pour lancer la synchronisation</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Ajouter <ph name="PROVIDER_NAME" />…</translation>
 <translation id="2874343608108773609">Connectez-vous à Chrome pour synchroniser vos mots de passe sur tous vos appareils.</translation>
 <translation id="2875698561019555027">(pages d'erreur Chrome)</translation>
-<translation id="2876441201733326392">Utiliser la clé de sécurité USB</translation>
 <translation id="288042212351694283">Accès aux appareils U2F</translation>
 <translation id="2881966438216424900">Dernier accès :</translation>
 <translation id="2882943222317434580">Dans un instant, <ph name="IDS_SHORT_PRODUCT_NAME" /> va redémarrer et être réinitialisé.</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Signaler de manière anonyme</translation>
 <translation id="2984337792991268709">Aujourd'hui à <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Le contrôle total des appareils MIDI a été bloqué pour cette page.</translation>
-<translation id="2988599644347283908">Remarque : Tout service Google auquel vous êtes connecté peut enregistrer et utiliser les données contrôlées par ces paramètres afin de vous fournir une expérience personnalisée et de vous présenter des annonces pertinentes. Vous pouvez voir vos données, les supprimer et modifier vos paramètres sur account.google.com.</translation>
 <translation id="2989474696604907455">non connecté</translation>
 <translation id="2989786307324390836">Certificat unique binaire codé DER</translation>
 <translation id="2993517869960930405">Informations relatives à l'application</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Réactiver le son des onglets</translation>
 <translation id="3053013834507634016">Utilisation de la clé du certificat</translation>
 <translation id="3057861065630527966">Sauvegarder vos photos et vos vidéos</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Activer "Sélectionner pour prononcer"</translation>
 <translation id="3061707000357573562">Service d'application de correctifs</translation>
 <translation id="3064410671692449875">Données insuffisantes</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Impossible de copier le fichier crx externe dans <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" associé.</translation>
 <translation id="3101709781009526431">Date et heure</translation>
-<translation id="3104900172193317662">Autoriser l'utilisation de votre clé de sécurité</translation>
 <translation id="310671807099593501">Le site utilise le Bluetooth</translation>
 <translation id="3115128645424181617">Impossible de trouver votre téléphone. Assurez-vous qu'il se trouve à proximité et que le Bluetooth est activé.</translation>
 <translation id="3115147772012638511">En attente de l'affichage du cache</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Ne fait pas partie du certificat&gt;</translation>
 <translation id="3254434849914415189">Sélectionnez l'application par défaut pour les fichiers <ph name="FILE_TYPE" /> :</translation>
 <translation id="3254516606912442756">Détection de fuseau horaire automatique désactivée</translation>
-<translation id="3254772308201947812">J'accepte</translation>
 <translation id="3264544094376351444">Police Sans Serif</translation>
 <translation id="3264547943200567728">Échec de la configuration de votre réseau Chromebox</translation>
 <translation id="3264582393905923483">Contexte</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Trier par</translation>
 <translation id="3737274407993947948">Erreur lors de l'installation de Linux…</translation>
 <translation id="3737536731758327622">Vos téléchargements s'affichent ici</translation>
-<translation id="3738671331307774213">La validation de votre identité contribue à protéger vos données privées</translation>
 <translation id="3738924763801731196"><ph name="OID" /> :</translation>
 <translation id="3739254215541673094">Ouvrir <ph name="APPLICATION" /> ?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> va s'afficher dans la console d'administration.</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" /> : synchronisation désactivée</translation>
 <translation id="3860381078714302691">Bienvenue dans Hangouts Meet</translation>
+<translation id="3861241522664181545">Chargement de la page suspendu.</translation>
 <translation id="3862134173397075045">Bienvenue dans l'expérience Cast sur Chrome</translation>
 <translation id="3862788408946266506">L'application dont le fichier manifeste comporte un attribut "kiosk_only" doit être installée en mode Kiosque pour Chrome OS</translation>
 <translation id="3865414814144988605">Résolution</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Pour activer cette fonctionnalité, <ph name="BEGIN_LINK" />réinitialisez la synchronisation<ph name="END_LINK" /> pour supprimer votre phrase secrète de synchronisation</translation>
 <translation id="3878840326289104869">Création de l'utilisateur supervisé en cours</translation>
 <translation id="3879748587602334249">Gestionnaire de téléchargement</translation>
-<translation id="3880709822663530586">Votre clé de sécurité ne fonctionne que lorsque le Bluetooth est activé sur votre appareil</translation>
 <translation id="3888550877729210209">Prise de notes avec <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Ajouter une connexion OpenVPN/L2TP…</translation>
 <translation id="3893536212201235195">Consulter et modifier vos paramètres d'accessibilité</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Préparation du module sécurisé en cours. Veuillez patienter, l'opération peut prendre quelques minutes…</translation>
 <translation id="4099060993766194518">Restaurer le moteur de recherche par défaut ?</translation>
 <translation id="4100733287846229632">Très peu d'espace disponible sur l'appareil</translation>
+<translation id="4103091233824664032">Saisissez votre mot de passe pour configurer le verrouillage de l'écran et la connexion</translation>
 <translation id="4104163789986725820">E&amp;xporter...</translation>
 <translation id="4105563239298244027">Profitez d'un téraoctet d'espace de stockage gratuit grâce à Google Drive</translation>
 <translation id="4107048419833779140">Identifier et exclure des périphériques de stockage</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">L'éclairage nocturne sera désactivé automatiquement au lever du soleil</translation>
 <translation id="4138267921960073861">Afficher les noms d'utilisateurs et leur photo sur la page de connexion</translation>
 <translation id="4144218403971135344">Bénéficiez d'une meilleure qualité et économisez de la batterie. La vidéo sera lue uniquement sur votre écran compatible Cast.</translation>
-<translation id="414599683948988413">Utiliser votre clé de sécurité avec USB</translation>
 <translation id="4146026355784316281">Toujours ouvrir avec le lecteur système</translation>
 <translation id="4146785383423576110">Réinitialiser et nettoyer</translation>
 <translation id="4147897805161313378">Google Photos</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Désactiver</translation>
 <translation id="4400367121200150367">Les sites pour lesquels vos mots de passe ne seront jamais enregistrés s'afficheront ici</translation>
 <translation id="4400632832271803360">Maintenir la touche du lanceur d'applications enfoncée pour modifier la fonction des touches de la rangée supérieure</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">&amp;Aide</translation>
 <translation id="4409697491990005945">Marges</translation>
 <translation id="4411578466613447185">Signataire de code</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome peut détecter et supprimer les logiciels malveillants sur votre ordinateur</translation>
 <translation id="4481530544597605423">Appareils dissociés</translation>
 <translation id="4482194545587547824">Google peut utiliser votre historique de navigation pour personnaliser la recherche et d'autres services Google.</translation>
+<translation id="4493287891836751813">Faites connaissance avec l'Assistant Google</translation>
 <translation id="4495419450179050807">Ne pas afficher sur cette page</translation>
 <translation id="4499718683476608392">Activer la saisie automatique des informations de paiement pour remplir les formulaires d'un simple clic</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> a planté</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Couper le son de l'onglet</translation>
 <translation id="4742746985488890273">Épingler sur l'étagère</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Découvrir comment mettre à jour des applications<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Messages</translation>
 <translation id="4746971725921104503">Il semble que vous gérez déjà un utilisateur portant ce nom. Vouliez-vous effectuer une <ph name="LINK_START" />importation<ph name="USER_DISPLAY_NAME" /> vers cet appareil<ph name="LINK_END" /> ?</translation>
 <translation id="4748762018725435655">Nécessite une extension du Chrome Web Store.</translation>
 <translation id="4750394297954878236">Suggestions</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Profilage activé</translation>
 <translation id="4823484602432206655">Consulter et modifier les paramètres d'utilisateur et d'appareil</translation>
 <translation id="4823651846660089135">Appareil en lecture seule</translation>
+<translation id="4823955295535347797">Accédez à l'Assistant chaque fois que vous dites "Ok Google" quand l'écran est allumé.</translation>
 <translation id="4828937774870308359">Australien</translation>
 <translation id="4829768588131278040">Configurer un code</translation>
 <translation id="4830502475412647084">Installation de la mise à jour du système d'exploitation</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Aidez nos ingénieurs à trouver l'origine de ce plantage pour y apporter une solution. Dans la mesure du possible, indiquez précisément les étapes suivies. Chaque détail compte.</translation>
 <translation id="4876895919560854374">Verrouiller et déverrouiller l'écran</translation>
 <translation id="4877017884043316611">Associer à Chromebox</translation>
+<translation id="4879491255372875719">Automatique (par défaut)</translation>
 <translation id="4880214202172289027">Curseur de volume</translation>
 <translation id="4880328057631981605">Nom du point d'accès</translation>
 <translation id="4880520557730313061">Correction automatique</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">haut</translation>
 <translation id="5100114659116077956">Pour vous permettre de bénéficier des dernières fonctionnalités, votre Chromebox doit être mise à jour.</translation>
 <translation id="5101042277149003567">Ouvrir tous les favoris</translation>
-<translation id="5104546332954397226">Utiliser votre téléphone comme clé de sécurité</translation>
 <translation id="5105855035535475848">Épingler les onglets</translation>
 <translation id="5108967062857032718">Paramètres – Supprimer des applications Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">&amp;Rouvrir l'onglet fermé</translation>
 <translation id="52912272896845572">Le fichier de clé privée est incorrect.</translation>
 <translation id="529175790091471945">Formater cet appareil</translation>
-<translation id="5292195676005197571">Pour utiliser la plupart des clés, il vous suffit d'appuyer sur le bouton</translation>
 <translation id="5293170712604732402">Restaurer les paramètres par défaut</translation>
 <translation id="5297082477358294722">Mot de passe enregistré. Affichez et gérez les mots de passe enregistrés dans votre <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Thème créé par</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">J'accepte</translation>
 <translation id="532943162177641444">Appuyez sur la notification sur votre <ph name="PHONE_NAME" /> pour configurer le point d'accès mobile qui sera utilisé par cet appareil.</translation>
 <translation id="5329858601952122676">&amp;Supprimer</translation>
+<translation id="5329945517224105597">L'Assistant peut proposer davantage de suggestions pertinentes et d'actions spécifiques liées à ce qui est affiché sur l'écran. Vous pouvez modifier cette fonctionnalité dans les paramètres de l'Assistant</translation>
 <translation id="5330145655348521461">Ces fichiers sont ouverts sur un autre bureau. Utilisez le compte de <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) pour les afficher.</translation>
 <translation id="5330512191124428349">Lire les informations</translation>
 <translation id="5331069282670671859">Vous n'avez aucun certificat dans cette catégorie</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Autoriser l'activation du son des sites</translation>
 <translation id="5390284375844109566">Base de données indexée</translation>
 <translation id="5390743329570580756">Envoyer pour</translation>
-<translation id="5392327114396848796">Utiliser une clé de sécurité intégrée</translation>
 <translation id="5397794290049113714">Vous</translation>
 <translation id="5398572795982417028">Plage de pages hors limites. Le nombre maximal de pages est <ph name="MAXIMUM_PAGE" />.</translation>
 <translation id="5398772614898833570">Annonces bloquées</translation>
@@ -3077,6 +3071,7 @@
    <ph name="LINE_BREAKS" />
    Fermez tous les fichiers de l'archive ou du disque virtuel, puis réessayez.</translation>
 <translation id="5687326903064479980">Fuseau horaire</translation>
+<translation id="568824803367507355">Détection "Ok Google"</translation>
 <translation id="5689516760719285838">Position</translation>
 <translation id="56907980372820799">Associer les données</translation>
 <translation id="5691511426247308406">Famille</translation>
@@ -3174,7 +3169,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> –  Enregistrement vidéo ou audio</translation>
 <translation id="5835754902560991078">extrêmement court (0,6 s)</translation>
 <translation id="5838456317242088717">Session de navigation privée actuelle</translation>
-<translation id="5842053879378944309">Utiliser votre clé de sécurité USB avec <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Activation du Bluetooth</translation>
 <translation id="5843250171025351504">Votre appareil n'est plus conforme à la version du client minimale spécifiée par votre administrateur. Veuillez le mettre à jour pour vous connecter.</translation>
 <translation id="5846929185714966548">Tab 4</translation>
@@ -3492,7 +3486,6 @@
 <translation id="6317318380444133405">L'imprimante est désormais incompatible.</translation>
 <translation id="6317369057005134371">Création de la fenêtre de l'application en cours…</translation>
 <translation id="6318407754858604988">Le téléchargement a commencé</translation>
-<translation id="6322653941595359182">Envoyer et recevoir des SMS depuis votre Chromebook</translation>
 <translation id="6324916366299863871">Modifier le raccourci</translation>
 <translation id="6325191661371220117">Désactiver le lancement automatique</translation>
 <translation id="6326175484149238433">Supprimer de Google Chrome</translation>
@@ -3536,6 +3529,7 @@
 <translation id="6395423953133416962">Envoyer les <ph name="BEGIN_LINK1" />informations système<ph name="END_LINK1" /> et les <ph name="BEGIN_LINK2" />statistiques<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Options de synchronisation et de personnalisation</translation>
 <translation id="6397592254427394018">Ouvrir tous les favoris dans une fenêtre de &amp;navigation privée</translation>
+<translation id="639777613761517128">Pour ouvrir un fichier avec $1, copiez-le d'abord dans le dossier "Fichiers Linux".</translation>
 <translation id="6398715114293939307">Supprimer le Google Play Store</translation>
 <translation id="6398765197997659313">Quitter le mode plein écran</translation>
 <translation id="6399774419735315745">Espionne</translation>
@@ -3561,7 +3555,6 @@
 <translation id="642282551015776456">Ce nom ne peut pas être utilisé comme nom de fichier ni de dossier.</translation>
 <translation id="642469772702851743">Le propriétaire de cet appareil (n° de série : <ph name="SERIAL_NUMBER" />) l'a verrouillé.</translation>
 <translation id="6426200009596957090">Ouvrir les paramètres ChromeVox</translation>
-<translation id="6427415464407526111">Sélectionner votre clé de sécurité</translation>
 <translation id="6429384232893414837">Erreur de mise à jour</translation>
 <translation id="6430814529589430811">Certificat unique codé Base 64 ASCII</translation>
 <translation id="6431217872648827691">Toutes les données ont été chiffrées avec votre mot de passe Google à la date suivante :
@@ -3719,7 +3712,6 @@
 <translation id="6655190889273724601">Mode développeur</translation>
 <translation id="6655458902729017087">Masquer les comptes</translation>
 <translation id="6657585470893396449">Mot de passe</translation>
-<translation id="6658023813581644008">Si vous souhaitez configurer Smart Lock pour vous connecter, saisissez votre mot de passe</translation>
 <translation id="6659213950629089752">Zoom effectué par l'extension "<ph name="NAME" />" sur cette page</translation>
 <translation id="6659594942844771486">Onglet</translation>
 <translation id="6664237456442406323">Malheureusement, votre ordinateur est configuré avec un ID matériel incorrect. Cette défaillance empêche l'installation des derniers correctifs de sécurité sur Chrome OS et rend votre ordinateur <ph name="BEGIN_BOLD" />potentiellement vulnérable aux attaques malveillantes<ph name="END_BOLD" />.</translation>
@@ -3855,7 +3847,6 @@
 <translation id="6885771755599377173">Aperçu des informations système</translation>
 <translation id="6886871292305414135">Ouvrir le lien dans un nouvel ongle&amp;t</translation>
 <translation id="6892812721183419409">Ouvrir le lien avec le compte <ph name="USER" /></translation>
-<translation id="6896398788631624004">Branchez votre clé de sécurité pour l'activer</translation>
 <translation id="6896758677409633944">Copier</translation>
 <translation id="6898440773573063262">Les applications kiosque peuvent désormais être configurées pour se lancer automatiquement sur cet appareil.</translation>
 <translation id="6898699227549475383">Organisation (O)</translation>
@@ -3874,6 +3865,7 @@
 <translation id="6915804003454593391">Utilisateur :</translation>
 <translation id="6916590542764765824">Gérer les extensions</translation>
 <translation id="6920989436227028121">Ouvrir dans un onglet standard</translation>
+<translation id="6921709132208495314">Ne plus consommer de données sur cette page</translation>
 <translation id="6922128026973287222">Sauvegardez les données et bénéficiez d'une navigation plus rapide avec l'Économiseur de données Google. Cliquez ici pour en savoir plus.</translation>
 <translation id="6923132443355966645">Défilement/Clic</translation>
 <translation id="6930242544192836755">Durée</translation>
@@ -3896,6 +3888,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Périphérique</translation>
+<translation id="6968288415730398122">Saisissez votre mot de passe pour configurer le verrouillage de l'écran</translation>
 <translation id="6970480684834282392">Type de démarrage</translation>
 <translation id="6970856801391541997">Imprimer des pages spécifiques</translation>
 <translation id="6972180789171089114">Audio/Vidéo</translation>
@@ -3906,6 +3899,7 @@
 <translation id="6978121630131642226">Moteurs de recherche</translation>
 <translation id="6978611942794658017">Ce fichier est destiné à un ordinateur utilisant un logiciel Windows. Il n'est pas compatible avec votre appareil qui exécute Chrome OS. Veuillez chercher une application de remplacement appropriée sur le Chrome Web Store.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Coupé (par défaut)</translation>
 <translation id="6979737339423435258">Toutes les périodes</translation>
 <translation id="6980462514016882061">Google peut utiliser votre historique de navigation pour personnaliser la recherche, les annonces et d'autres services Google.</translation>
 <translation id="6981982820502123353">Accessibilité</translation>
@@ -4054,6 +4048,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Il s'agit d'informations générales sur votre appareil et l'usage que vous en faites (comme le niveau de la batterie, l'utilisation des applications et la connectivité réseau). Ces données serviront à améliorer les produits et services de Google pour tous les utilisateurs. Certaines informations agrégées aideront également nos partenaires, tels que les développeurs Android, à améliorer leurs applications et leurs produits.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />La désactivation de cette fonctionnalité n'empêche pas cet appareil d'envoyer les informations nécessaires pour bénéficier de services essentiels, tels que les mises à jour du système et les fonctions de sécurité.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Pour contrôler cette fonctionnalité, accédez à Paramètres &gt; Google. Sélectionnez "Utilisation et diagnostics" dans le menu.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Vous avez la possibilité d'utiliser <ph name="NUMBER_OF_APPS" /> application(s) de votre compte sur cet appareil.</translation>
 <translation id="7199158086730159431">Obtenir de l'aid&amp;e</translation>
 <translation id="7200083590239651963">Sélectionner la configuration</translation>
 <translation id="720110658997053098">Conserver cet appareil en mode Kiosque de manière permanente</translation>
@@ -4074,7 +4069,6 @@
 <translation id="7228523857728654909">Verrouillage de l'écran et connexion</translation>
 <translation id="7229570126336867161">Technologie EvDo requise</translation>
 <translation id="7230787553283372882">Personnaliser la taille du texte</translation>
-<translation id="7231589788477569369">Profitez de toutes les fonctionnalités de l'Assistant avec ces paramètres</translation>
 <translation id="7232750842195536390">Échec du changement de nom</translation>
 <translation id="7234406375359457793">Erreur lors de l'installation du partage. Le partage indiqué n'est pas accepté.</translation>
 <translation id="7238585580608191973">Empreinte SHA-256</translation>
@@ -4084,7 +4078,6 @@
 <translation id="7243632151880336635">Effacer et se déconnecter</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (résolution optimale)</translation>
 <translation id="7246339268451149667">Activer le déverrouillage par empreinte digitale ?</translation>
-<translation id="7246489301073081944">Appuyez simultanément sur les touches |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| pour quitter</translation>
 <translation id="7246947237293279874">Proxy FTP</translation>
 <translation id="725109152065019550">Désolé, votre administrateur a désactivé les périphériques de stockage externe pour votre compte.</translation>
 <translation id="7253521419891527137">&amp;En savoir plus</translation>
@@ -4237,7 +4230,6 @@
 <translation id="7489605380874780575">Vérifier l'éligibilité</translation>
 <translation id="749028671485790643">Personne <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Adresse MAC</translation>
-<translation id="7490950320178383728">Utiliser votre clé de sécurité avec le Bluetooth</translation>
 <translation id="7491962110804786152">tabulation</translation>
 <translation id="7493386493263658176">L'extension <ph name="EXTENSION_NAME" /> peut récupérer tout le texte que vous saisissez, y compris des données personnelles telles que des mots de passe et des numéros de carte de paiement. Souhaitez-vous utiliser cette extension ?</translation>
 <translation id="7494065396242762445">Ouvrir les paramètres Windows</translation>
@@ -4487,7 +4479,6 @@
 <translation id="7850851215703745691">Ces fichiers Drive n'ont pas encore été partagés</translation>
 <translation id="7851457902707056880">La connexion a été limitée au seul compte du propriétaire. Veuillez redémarrer et vous connecter à ce compte. L'appareil redémarrera automatiquement dans 30 secondes.</translation>
 <translation id="7851716364080026749">Toujours bloquer l'accès à la caméra et au micro</translation>
-<translation id="7851816139220202929">Utiliser votre clé de sécurité avec la technologie NFC</translation>
 <translation id="7853747251428735">Plus d'outi&amp;ls</translation>
 <translation id="7856006446339184955">Envoyer les données système. Cet appareil est actuellement configuré pour envoyer automatiquement des diagnostics et des données d'utilisation à Google. Ce <ph name="BEGIN_LINK1" />paramètre<ph name="END_LINK1" /> est appliqué par le propriétaire. Si vous avez activé l'option "Activité sur le Web et les applications", ces informations seront enregistrées dans votre compte. Vous pourrez alors les gérer dans la section "Mon activité". <ph name="BEGIN_LINK2" />En savoir plus<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Ajouter une exception</translation>
@@ -4570,6 +4561,7 @@
 <translation id="7973962044839454485">Échec de l'authentification PPP en raison de la saisie d'un nom d'utilisateur ou d'un mot de passe erronés.</translation>
 <translation id="7974566588408714340">Réessayer avec "<ph name="EXTENSIONNAME" />"</translation>
 <translation id="7974936243149753750">Surbalayage</translation>
+<translation id="79766959863778284">Service Appareils isolés XR</translation>
 <translation id="7977551819349545646">Mise à jour de Chromebox en cours…</translation>
 <translation id="7978412674231730200">Clé privée</translation>
 <translation id="7978450511781612192">Vous serez déconnecté de vos comptes Google. Vos favoris, votre historique et vos mots de passe ne seront plus synchronisés.</translation>
@@ -4620,7 +4612,6 @@
 <translation id="8030656706657716245">Ajouter une imprimante</translation>
 <translation id="8032244173881942855">Impossible de caster l'onglet.</translation>
 <translation id="8033827949643255796">sélectionné</translation>
-<translation id="8033958968890501070">Délai dépassé</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Tout ouvrir dans une fenêtre de navigation &amp;privée}=1{Ouvrir dans une fenêtre de navigation &amp;privée}one{Tout ouvrir (#) dans une fenêtre de navigation &amp;privée}other{Tout ouvrir (#) dans une fenêtre de navigation &amp;privée}}</translation>
 <translation id="8037117027592400564">Accéder à l'ensemble du texte énoncé à l'aide de la synthèse vocale</translation>
 <translation id="8037357227543935929">Demander (par défaut)</translation>
@@ -4793,6 +4784,7 @@
 <translation id="8320459152843401447">L'intégralité de votre écran</translation>
 <translation id="8322814362483282060">L'accès à votre micro est bloqué pour cette page</translation>
 <translation id="8326478304147373412">PKCS #7, chaîne de certificats</translation>
+<translation id="8327039559959785305">Erreur lors de l'installation des fichiers Linux. Veuillez réessayer.</translation>
 <translation id="8329978297633540474">Texte brut</translation>
 <translation id="8335587457941836791">Retirer de l'étagère</translation>
 <translation id="8336153091935557858">Hier à <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4843,7 +4835,6 @@
 <translation id="8425213833346101688">Modifier</translation>
 <translation id="8425492902634685834">Épingler sur la barre des tâches</translation>
 <translation id="8425755597197517046">Co&amp;ller et rechercher</translation>
-<translation id="8426117172745886547">Confirmer avant de quitter (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Activation</translation>
 <translation id="8427292751741042100">intégré sur n'importe quel hôte</translation>
 <translation id="8428213095426709021">Paramètres</translation>
@@ -4931,7 +4922,6 @@
 <translation id="8551388862522347954">Licences</translation>
 <translation id="8553342806078037065">Gérer d'autres utilisateurs</translation>
 <translation id="8554899698005018844">Aucune langue</translation>
-<translation id="8557347704037207368">Vous envoyer des notifications à partir des messages Web Android</translation>
 <translation id="855773602626431402">L'exécution hors bac à sable d'un plug-in n'est pas autorisée sur cette page</translation>
 <translation id="8557930019681227453">Manifeste</translation>
 <translation id="8559694214572302298">Décodage d'images</translation>
@@ -5044,6 +5034,7 @@
 <translation id="8714154114375107944">Fin de la période de compatibilité</translation>
 <translation id="8714838604780058252">Graphiques d'arrière-plan</translation>
 <translation id="8715480913140015283">Votre appareil photo est utilisé par un onglet d'arrière-plan</translation>
+<translation id="8716931980467311658">Supprimer toutes les applications et les données Linux de votre dossier "Fichiers Linux" sur ce type d'appareil : <ph name="DEVICE_TYPE" /> ?</translation>
 <translation id="8719653885894320876">Échec du téléchargement de <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Sous-cadres de navigation privée pour : <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Afficher dans le dossier</translation>
@@ -5207,7 +5198,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – Plantage</translation>
 <translation id="8983677657449185470">Contribuer à l'amélioration de la navigation sécurisée</translation>
 <translation id="8984654317541110628">URL de partage de fichiers</translation>
-<translation id="8984872292925913496">Localisez le code à six chiffres au dos de votre clé</translation>
 <translation id="8986362086234534611">Retirer</translation>
 <translation id="8986494364107987395">Envoie automatiquement les statistiques d'utilisation et les rapports d'erreur à Google</translation>
 <translation id="8987927404178983737">Mois</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 75e18ebe7..c616667f 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">ફેરફાર થવા પર કીબોર્ડ ફોકસ વડે ઑબ્જેક્ટને હાઇલાઇટ કરો</translation>
 <translation id="1173894706177603556">નામ બદલો</translation>
 <translation id="1174073918202301297">શૉર્ટકટ ઉમેર્યો</translation>
-<translation id="1174808551768282258">તમારી Chromebookને તમારા ફોનથી અનલૉક કરો. <ph name="LINK_BEGIN" />વધુ જાણો.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;છાપો...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> કૉપિ કરી રહ્યું છે...</translation>
 <translation id="1177138678118607465">શોધ અને અન્ય Google સેવાઓને વ્યક્તિગત કરવા માટે, Google તમારા બ્રાઉઝિંગ ઇતિહાસનો ઉપયોગ કરી શકે છે. તમે આને myaccount.google.com/activitycontrols/search પર બદલી શકો છો</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">થોભો</translation>
 <translation id="1181037720776840403">દૂર કરો</translation>
 <translation id="1183237619868651138">સ્થાનિક કેશમાં <ph name="EXTERNAL_CRX_FILE" /> ને ઇન્સ્ટોલ કરી શકતાં નથી.</translation>
-<translation id="1183378459020939734">તમારી સુરક્ષા કીનું જોડાણ બનાવવા માટે તૈયાર છો?</translation>
 <translation id="1185924365081634987">આ નેટવર્ક ભૂલને સુધારવા માટે તમે <ph name="GUEST_SIGNIN_LINK_START" />અતિથિ તરીકે બ્રાઉઝ કરો<ph name="GUEST_SIGNIN_LINK_END" /> ને પણ અજમાવી શકો છો.</translation>
 <translation id="1186771945450942097">નુકસાનકારક સૉફ્ટવેર દૂર કરો</translation>
 <translation id="1187722533808055681">નિષ્ક્રિય વેકઅપ્સ</translation>
@@ -538,7 +536,6 @@
 <translation id="1782530111891678861">ટચ HUD મોડ બદલો</translation>
 <translation id="1784849162047402014">ઉપકરણમાં ડિસ્ક સ્થાન ઓછું છે</translation>
 <translation id="1786636458339910689">ટીમ ડ્રાઇવ</translation>
-<translation id="1792161662640298233">તમારી સુરક્ષા કી ચકાસાઈ રહી છે</translation>
 <translation id="1792619191750875668">વિસ્તૃત પ્રદર્શન</translation>
 <translation id="1794791083288629568">આ સમસ્યાને ઠીક કરવામાં અમારી સહાય કરવા માટે પ્રતિસાદ મોકલો.</translation>
 <translation id="1795214765651529549">ક્લાસિકનો ઉપયોગ કરો</translation>
@@ -621,7 +618,6 @@
 <translation id="1910721550319506122">સ્વાગત!</translation>
 <translation id="1914326953223720820">સેવાને અનઝિપ કરો</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">તમારી એકાઉન્ટ સેટિંગના આધારે, તમારો આસિસ્ટંટ અનુભવ વેબ પરિણામો, ટુચકાઓ અને સ્થાનિક માહિતી જેવી વસ્તુઓ સુધી મર્યાદિત હોઈ શકે.</translation>
 <translation id="1916502483199172559">ડિફોલ્ટ લાલ અવતાર</translation>
 <translation id="1918141783557917887">&amp;નાનું</translation>
 <translation id="1919345977826869612">જાહેરાતો</translation>
@@ -874,14 +870,12 @@
 <translation id="2307462900900812319">નેટવર્ક ગોઠવો</translation>
 <translation id="230927227160767054">આ પૃષ્ઠ સેવા હેન્ડલર ઇન્સ્ટોલ કરવા માગે છે.</translation>
 <translation id="2309620859903500144">આ સાઇટને તમારા મોશન અથવા લાઇટ સેન્સરને ઍક્સેસ કરવાથી બ્લૉક કરવામાં આવી છે.</translation>
-<translation id="2311075084924370935">તમને કૅલેન્ડર, રિમાઇન્ડર, ફ્લાઇટ અને બીજી ઘણી વસ્તુઓમાં સહાય કરવા માટે, તમારા આસિસ્ટંટને વેબ અને ઍપ પ્રવૃત્તિ, ઉપકરણ માહિતી, વૉઇસ અને ઑડિઓ પ્રવૃત્તિ સેટિંગની જરૂર પડે છે.</translation>
 <translation id="2315821125498993513">ફોન સાથે કનેક્ટ કરી શકાયું નથી. <ph name="LINK_BEGIN" />વધુ જાણો.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">નહીં, આભાર</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% થઈ ગયું</translation>
 <translation id="2318143611928805047">કાગળનું કદ</translation>
 <translation id="2318817390901984578">Android ઍપ્લિકેશનોનો ઉપયોગ કરવા માટે, તમારા ઉપકરણ <ph name="DEVICE_TYPE" />ને ચાર્જ અને અપડેટ કરો.</translation>
 <translation id="2318923050469484167">વર્તમાન છૂપું સત્ર (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">તમારી સુરક્ષા કીનો ઉપયોગ <ph name="APP_NAME" />ની સાથે કરો</translation>
 <translation id="2322193970951063277">હેડર્સ અને ફૂટર્સ</translation>
 <translation id="2325650632570794183">આ ફાઇલ પ્રકાર સમર્થિત નથી. આ પ્રકારની ફાઇલ ખોલી શકે તે એપ્લિકેશનને શોધવા માટે કૃપા કરીને Chrome વેબ દુકાનની મુલાકાત લો.</translation>
 <translation id="2326931316514688470">ઍપ્લિકેશન &amp;ફરીથી લોડ કરો</translation>
@@ -915,7 +909,6 @@
 <translation id="2367199180085172140">ફાઇલ શેર ઉમેરો</translation>
 <translation id="2367972762794486313">ઍપ્લિકેશનો બતાવો</translation>
 <translation id="2369536625682139252"><ph name="SITE" /> દ્વારા સ્ટોર કરેલો કુકી સિવાયનો, બધો ડેટા કાઢી નખાશે,</translation>
-<translation id="237058345584060620">આ ઉપકરણ સાથે તમારી કીનું જોડાણ કરો કે જેથી તમારા એકાઉન્ટમાં સાઇન ઇન કરવા માટે તમે તેનો ઉપયોગ કરી શકો</translation>
 <translation id="2371076942591664043">&amp;પૂર્ણ થાય ત્યારે ખોલો</translation>
 <translation id="2377319039870049694">સૂચિ દૃશ્ય પર સ્વિચ કરો</translation>
 <translation id="2377667304966270281">Hard Faults</translation>
@@ -982,7 +975,6 @@
 <translation id="248861575772995840">તમારો ફોન શોધી શકાતો નથી. ખાતરી કરો કે તમારા <ph name="DEVICE_TYPE" />નું Bluetooth ચાલુ કરેલું છે. &lt;a&gt;વધુ જાણો&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;ફોલ્ડર ઉમેરો...</translation>
 <translation id="249113932447298600">માફ કરશો, આ સમયે ઉપકરણ <ph name="DEVICE_LABEL" /> ને સપોર્ટ નથી.</translation>
-<translation id="2492040222276243256">તમારી સુરક્ષા કી પર આપેલ બટનને ઓછામાં ઓછી 5 સેકન્ડ સુધી દબાવી રાખો</translation>
 <translation id="2493021387995458222">"એક સમયે એક શબ્દ" પસંદ કરો</translation>
 <translation id="249303669840926644">નોંધણી પૂર્ણ કરી શકાઈ નથી</translation>
 <translation id="2495777824269688114">વધુ સુવિધાઓ શોધો અથવા જવાબ મેળવો. સહાય માટે "?"ને પસંદ કરો.</translation>
@@ -1087,7 +1079,6 @@
 <translation id="2633199387167390344"><ph name="NAME" />, <ph name="USAGE" /> MB ડિસ્ક સ્થાનનો ઉપયોગ કરી રહ્યાં છે.</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />" ને દૂર કરીએ?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> ઇન્સ્ટોલેશન પૂર્ણ કરી શક્યું નથી, પરંતુ તેની ડિસ્ક છબીથી ચાલુ રહી શકે છે.</translation>
-<translation id="2633326789677284179">તમારી કીની પાછળની બાજુ પર પ્રિન્ટ કરેલ નામ શોધો</translation>
 <translation id="2635276683026132559">સાઇનિંગ</translation>
 <translation id="2636625531157955190">Chrome છબી ઍક્સેસ કરી શકતું નથી.</translation>
 <translation id="2638087589890736295">સમન્વયનને પ્રારંભ કરવા માટે પાસફ્રેઝ આવશ્યક</translation>
@@ -1255,7 +1246,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> ઉમેરો...</translation>
 <translation id="2874343608108773609">તમારા બધા ઉપકરણો પર તમારા પાસવર્ડ મેળવવા માટે, Chromeમાં સાઇન ઇન કરો.</translation>
 <translation id="2875698561019555027">(Chrome ભૂલ પૃષ્ઠો)</translation>
-<translation id="2876441201733326392">USB સુરક્ષા કીનો ઉપયોગ કરો</translation>
 <translation id="288042212351694283">તમારા યુનિવર્સલ 2જા ફેક્ટરના ઉપકરણોની ઍક્સેસ</translation>
 <translation id="2881966438216424900">છેલ્લે ઍક્સેસ કર્યું:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> પુનઃપ્રારંભ થશે અને પળવારમાં ફરીથી સેટ થશે</translation>
@@ -1323,7 +1313,6 @@
 <translation id="2982970937345031">અનામ રીતે જાણ કરો</translation>
 <translation id="2984337792991268709">આજે <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">આ પૃષ્ઠ MIDI ઉપકરણોના સંપૂર્ણ નિયંત્રણથી અવરોધિત કરવામાં આવ્યું છે.</translation>
-<translation id="2988599644347283908">નોંધ: આ સેટિંગ નિયંત્રિત કરે છે તે ડેટાને તમે જ્યાં સાઇન ઇન કરતા હોય તે કોઈપણ Google સેવામાં સાચવી અને ઉપયોગમાં લઈ શકાય છે કે જેથી તમને મનગમતા અનુભવ અને ઉપયોગી જાહેરાતો આપી શકાય. તમે account.google.com પર તમારો ડેટા જોઈ શકો છો, તેને ડિલીટ કરી શકો છો અને તમારી સેટિંગ બદલી શકો છો.</translation>
 <translation id="2989474696604907455">જોડાયેલ નથી</translation>
 <translation id="2989786307324390836">DER-encoded binary, એકલ પ્રમાણપત્ર</translation>
 <translation id="2993517869960930405">ઍપ્લિકેશન માહિતી</translation>
@@ -1376,7 +1365,6 @@
 <translation id="304826556400666995">ટૅબ્સને અનમ્યૂટ કરો</translation>
 <translation id="3053013834507634016">પ્રમાણપત્ર કી ઉપયોગ</translation>
 <translation id="3057861065630527966">તમારા ફોટો અને વિડિઓઝનો બેકઅપ લો</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">સાંભળવા માટે પસંદ કરોને ચાલુ કરો</translation>
 <translation id="3061707000357573562">પૅચ સેવા</translation>
 <translation id="3064410671692449875">અપૂરતો ડેટા</translation>
@@ -1405,7 +1393,6 @@
 <translation id="3090819949319990166">બાહ્ય crx ફાઇલને <ph name="TEMP_CRX_FILE" /> પર કૉપિ કરી શકતાં નથી.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />"થી જોડી બનાવી</translation>
 <translation id="3101709781009526431">તારીખ અને સમય</translation>
-<translation id="3104900172193317662">તમારી સુરક્ષા કીના ઉપયોગની મંજૂરી આપો</translation>
 <translation id="310671807099593501">સાઇટ બ્લૂટૂથનો ઉપયોગ કરી રહી છે</translation>
 <translation id="3115128645424181617">તમારો ફોન શોધી શકાતો નથી. ખાતરી કરો કે તે હાથવગો છે અને તેનું Bluetooth ચાલુ કરેલું છે.</translation>
 <translation id="3115147772012638511">કૅશ માટે રાહ જુએ છે...</translation>
@@ -1489,7 +1476,6 @@
 <translation id="3251759466064201842">&lt;પ્રમાણપત્રનો ભાગ નથી&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> ફાઇલો માટે ડિફૉલ્ટ ઍપ્લિકેશન પસંદ કરો:</translation>
 <translation id="3254516606912442756">આપમેળે સમય ઝોન શોધવાનું બંધ છે</translation>
-<translation id="3254772308201947812">હા, હું સંમત છું</translation>
 <translation id="3264544094376351444">Sans-Serif ફૉન્ટ</translation>
 <translation id="3264547943200567728">તમારા Chromebox ના નેટવર્કને સેટ કરવામાં નિષ્ફળ થયાં</translation>
 <translation id="3264582393905923483">સંદર્ભ</translation>
@@ -1812,7 +1798,6 @@
 <translation id="3735740477244556633">આ પ્રમાણે સૉર્ટ કરો</translation>
 <translation id="3737274407993947948">Linux ઇન્સ્ટૉલ કરતી વખતે ભૂલ આવી...</translation>
 <translation id="3737536731758327622">તમારા ડાઉનલોડ્સ અહીં દેખાય છે</translation>
-<translation id="3738671331307774213">તમારી ઓળખની ચકાસણી તમારા ગોપનીય ડેટાનું રક્ષણ કરવામાં સહાય કરે છે</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> ખોલીએ?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> હવે Admin Console માં દેખાશે</translation>
@@ -1920,7 +1905,6 @@
 <translation id="3873315167136380065">આ ચાલુ કરવા માટે, તમારો સિંક પાસફ્રેઝ કાઢી નાખવા માટે <ph name="BEGIN_LINK" />સિંકને રીસેટ કરો<ph name="END_LINK" /></translation>
 <translation id="3878840326289104869">નિરીક્ષણ કરેલ વપરાશકર્તા બનાવે છે</translation>
 <translation id="3879748587602334249">ડાઉનલોડ મેનેજર</translation>
-<translation id="3880709822663530586">તમારી સુરક્ષા કી ફક્ત ત્યારે જ કામ કરે છે જ્યારે તમારા ઉપકરણનું બ્લૂટૂથ ચાલુ હોય</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> વડે નોંધ લેવી</translation>
 <translation id="3892414795099177503">OpenVPN / L2TP ઉમેરો...</translation>
 <translation id="3893536212201235195">તમારી ઍક્સેસિબિલિટી સેટિંગ્સને વાંચો અને બદલો</translation>
@@ -2066,6 +2050,7 @@
 <translation id="4096824249111507322">સુરક્ષિત મોડ્યુલ તૈયાર કરવામાં આવી રહ્યું છે, કૃપા કરીને રાહ જુઓ (તેમાં થોડીક મિનિટ લાગી શકે છે)…</translation>
 <translation id="4099060993766194518">ડિફૉલ્ટ શોધ એંજિન પુનઃસ્થાપિત કરીએ?</translation>
 <translation id="4100733287846229632">ઉપકરણ સ્થાન અત્યંત ઓછું છે</translation>
+<translation id="4103091233824664032">સ્ક્રીન લૉક ગોઠવવા અને સાઇન ઇન કરવા માટે, તમારો પાસવર્ડ દાખલ કરો</translation>
 <translation id="4104163789986725820">નિ&amp;કાસ કરો...</translation>
 <translation id="4105563239298244027">Google ડ્રાઇવ સાથે 1 TB મફત મેળવો</translation>
 <translation id="4107048419833779140">સ્ટોરેજ ઉપકરણોને ઓળખો અને તેને બહાર કાઢો</translation>
@@ -2086,7 +2071,6 @@
 <translation id="4136203100490971508">રાત્રિ પ્રકાશ સૂર્યોદય સમયે આપમેળે બંધ થઈ જશે</translation>
 <translation id="4138267921960073861">સાઇન-ઇન સ્ક્રીન પર વપરાશકર્તા નામ અને ફોટો બતાવો</translation>
 <translation id="4144218403971135344">બહેતર ક્વૉલિટીના વીડિઓ મેળવો અને બૅટરી આવરદા સાચવો. વીડિઓ માત્ર તમારી કાસ્ટ ચાલુ કરેલ હોય એવી સ્ક્રીન પર જ ચલાવવામાં આવશે.</translation>
-<translation id="414599683948988413">USB ધરાવતી તમારી સુરક્ષા કીનો ઉપયોગ કરો</translation>
 <translation id="4146026355784316281">હંમેશા સિસ્ટમ દર્શક સાથે ખોલો</translation>
 <translation id="4146785383423576110">રીસેટ કરો અને સાફ કરો</translation>
 <translation id="4147897805161313378">Google ફોટો</translation>
@@ -2429,6 +2413,7 @@
 <translation id="474217410105706308">ટૅબ મ્યૂટ કરો</translation>
 <translation id="4742746985488890273">શેલ્ફ પર પિન કરો</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />ઍપ્લિકેશનો કેવી રીતે અપલોડ કરવી તે જાણો<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">સંદેશા</translation>
 <translation id="4746971725921104503">એવું લાગે છે કે તમે પહેલાંથી જ તે નામના વપરાશકર્તાનું સંચાલન કરી રહ્યાં છે. શું તમે <ph name="LINK_START" />આ ઉપકરણ પર <ph name="USER_DISPLAY_NAME" /> ને આયાત<ph name="LINK_END" /> કરવા માગો છો?</translation>
 <translation id="4748762018725435655">Chrome વેબ દુકાનમાંથી એક્સ્ટેન્શન આવશ્યક છે</translation>
 <translation id="4750394297954878236">સૂચનો</translation>
@@ -2663,7 +2648,6 @@
 <translation id="5099354524039520280">ઉપર</translation>
 <translation id="5100114659116077956">તમારી સમક્ષ નવી સુવિધાઓ લાવવા માટે, તમારી Chromebox ને અપડેટ કરવાની જરૂર છે.</translation>
 <translation id="5101042277149003567">બધા બુકમાર્ક ખોલો</translation>
-<translation id="5104546332954397226">સુરક્ષા કી તરીકે તમારા ફોનનો ઉપયોગ કરો</translation>
 <translation id="5105855035535475848">ટૅબ્સ પિન કરો</translation>
 <translation id="5108967062857032718">સેટિંગ્સ - Android ઍપ્લિકેશનો દૂર કરો</translation>
 <translation id="5109044022078737958">મિઆ</translation>
@@ -2794,7 +2778,6 @@
 <translation id="5288678174502918605">બંધ કરેલા ટૅબ ફ&amp;રીથી ખોલો</translation>
 <translation id="52912272896845572">ખાનગી કી ફાઇલ અમાન્ય છે.</translation>
 <translation id="529175790091471945">આ ઉપકરણને ફોર્મેટ કરો</translation>
-<translation id="5292195676005197571">મોટાભાગની કીનો ઉપયોગ કરવા માટે, માત્ર બટન દબાવો</translation>
 <translation id="5293170712604732402">સેટિંગ્સને તેમના મૂળ ડિફૉલ્ટ પર પુનઃસ્થાપિત કરો</translation>
 <translation id="5297082477358294722">પાસવર્ડ સાચવ્યો. સાચવેલા પાસવર્ડ તમારા <ph name="SAVED_PASSWORDS_STORE" />માં જુઓ અને મેનેજ કરો.</translation>
 <translation id="5298219193514155779">થીમ રચનાકાર</translation>
@@ -2864,7 +2847,6 @@
 <translation id="5390100381392048184">સાઇટને અવાજ ચલાવવાની મંજૂરી આપો</translation>
 <translation id="5390284375844109566">અનુક્રમિત ડેટાબેસ</translation>
 <translation id="5390743329570580756">આ માટે મોકલો</translation>
-<translation id="5392327114396848796">બિલ્ટ-ઇન સુરક્ષા કીનો ઉપયોગ કરો</translation>
 <translation id="5397794290049113714">તમે</translation>
 <translation id="5398572795982417028">વધુ પડતો મોટો પૃષ્ઠ સંદર્ભ, મર્યાદા <ph name="MAXIMUM_PAGE" /> છે</translation>
 <translation id="5398772614898833570">જાહેરાતો અવરોધિત કરી</translation>
@@ -3171,7 +3153,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - કૅમેરા અથવા માઇક્રોફોન રેકોર્ડિંગ</translation>
 <translation id="5835754902560991078">અત્યંત ટૂંકો વિલંબ (0.6 સે)</translation>
 <translation id="5838456317242088717">વર્તમાન છૂપું સત્ર</translation>
-<translation id="5842053879378944309"><ph name="APP_NAME" /> સાથે USB સુરક્ષા કીનો ઉપયોગ કરો</translation>
 <translation id="5842497610951477805">Bluetooth સક્ષમ</translation>
 <translation id="5843250171025351504">તમારું ઉપકરણ હવે તમારા વ્યવસ્થાપક દ્વારા ઉલ્લેખિત ન્યૂનતમ ગ્રાહક વર્ઝન સાથે સુસંગત નથી. કૃપા કરીને લૉગ ઇન કરવા માટે અપડેટ કરો.</translation>
 <translation id="5846929185714966548">ટૅબ 4</translation>
@@ -3489,7 +3470,6 @@
 <translation id="6317318380444133405">હવે સમર્થિત રહ્યું નથી.</translation>
 <translation id="6317369057005134371">ઍપ્લિકેશન વિન્ડો માટે રાહ જોઇ રહ્યાં છે...</translation>
 <translation id="6318407754858604988">ડાઉનલોડ શરૂ થયું</translation>
-<translation id="6322653941595359182">તમારી Chromebookમાંથી ટેક્સ્ટ સંદેશા મોકલો અને મેળવો</translation>
 <translation id="6324916366299863871">શૉર્ટકટમાં ફેરફાર કરો</translation>
 <translation id="6325191661371220117">સ્વતઃ લોન્ચ અક્ષમ કરો</translation>
 <translation id="6326175484149238433">Chrome માંથી દૂર કરો</translation>
@@ -3558,7 +3538,6 @@
 <translation id="642282551015776456">આ નામનો ઉપયોગ ફોલ્ડર નામની કોઈ ફાઇલ તરીકે થઈ શકશે નહીં</translation>
 <translation id="642469772702851743">આ ઉપકરણ (SN: <ph name="SERIAL_NUMBER" />)ને માલિક દ્વારા લૉક કરવામાં આવ્યું હતું.</translation>
 <translation id="6426200009596957090">ChromeVox સેટિંગ્સ ખોલો</translation>
-<translation id="6427415464407526111">તમારી સુરક્ષા કી પસંદ કરો</translation>
 <translation id="6429384232893414837">અપડેટમાં ભૂલ</translation>
 <translation id="6430814529589430811">Base64-encoded ASCII, એકલ પ્રમાણપત્ર</translation>
 <translation id="6431217872648827691">આ રોજ તમારા Google પાસવર્ડ સાથે તમામ ડેટા એન્ક્રિપ્ટ કરાયો
@@ -3716,7 +3695,6 @@
 <translation id="6655190889273724601">વિકાસકર્તા મોડ</translation>
 <translation id="6655458902729017087">એકાઉન્ટ્સ છુપાવો</translation>
 <translation id="6657585470893396449">પાસવર્ડ</translation>
-<translation id="6658023813581644008">સાઇન-ઇન માટે Smart Lock સેટ અપ કરવા, તમારો પાસવર્ડ દાખલ કરો</translation>
 <translation id="6659213950629089752">"<ph name="NAME" />" એક્સ્ટેન્શન દ્વારા આ પૃષ્ઠ ઝૂમ કર્યું હતું</translation>
 <translation id="6659594942844771486">ટૅબ</translation>
 <translation id="6664237456442406323">દુર્ભાગ્યપણે, તમારું કમ્પ્યુટર દૂષિત હાર્ડવેર ID સાથે ગોઠવવમાં આવેલું છે. આ Chrome OS ને નવીનતમ સુરક્ષા સુધારાથી અપડેટ થવાથી અટકાવે છે અને તમારું કમ્પ્યુટર <ph name="BEGIN_BOLD" />દુર્ભાવનાપૂર્ણ હુમલાઓ માટે ભેદ્ય<ph name="END_BOLD" /> હોઈ શકે છે.</translation>
@@ -3852,7 +3830,6 @@
 <translation id="6885771755599377173">સિસ્ટમ માહિતી પૂર્વાવલોકન</translation>
 <translation id="6886871292305414135">લિંક નવા &amp;ટૅબમાં ખોલો</translation>
 <translation id="6892812721183419409"><ph name="USER" /> તરીકે લિંક ખોલો</translation>
-<translation id="6896398788631624004">તમારી સુરક્ષા કી પ્લગ ઇન કરો અને તેને સક્રિય કરો</translation>
 <translation id="6896758677409633944">કૉપિ કરો</translation>
 <translation id="6898440773573063262">આ ઉપકરણ પર સ્વતઃ-લોંચ થવા માટે કિઓસ્ક ઍપ્લિકેશનો હવે ગોઠવવામાં આવી શકે છે.</translation>
 <translation id="6898699227549475383">ઑર્ગેનાઇઝેશન (O)</translation>
@@ -3893,6 +3870,7 @@
 <translation id="6965382102122355670">બરાબર, સમજાઇ ગયું</translation>
 <translation id="6965648386495488594">પોર્ટ</translation>
 <translation id="6965978654500191972">ઉપકરણ</translation>
+<translation id="6968288415730398122">સ્ક્રીન લૉક ગોઠવવા માટે તમારો પાસવર્ડ દાખલ કરો</translation>
 <translation id="6970480684834282392">સ્ટાર્ટઅપ પ્રકાર</translation>
 <translation id="6970856801391541997">વિશિષ્ટ પૃષ્ઠો છાપો</translation>
 <translation id="6972180789171089114">ઑડિઓ/વીડિઓ</translation>
@@ -4071,7 +4049,6 @@
 <translation id="7228523857728654909">સ્ક્રીન લૉક અને સાઇન ઇન</translation>
 <translation id="7229570126336867161">EVDO ની જરૂર છે</translation>
 <translation id="7230787553283372882">તમારી ટેક્સ્ટના કદને કસ્ટમાઇઝ કરો</translation>
-<translation id="7231589788477569369">આ સેટિંગ વડે પૂર્ણ આસિસ્ટંટ અનુભવ મેળવો</translation>
 <translation id="7232750842195536390">નામ બદલવામાં નિષ્ફળ થયાં</translation>
 <translation id="7234406375359457793">શેર માઉન્ટ કરવામાં ભૂલ આવી. ઉલ્લેખિત શેર સમર્થિત નથી.</translation>
 <translation id="7238585580608191973">SHA-256 ફિંગરપ્રિંટ</translation>
@@ -4081,7 +4058,6 @@
 <translation id="7243632151880336635">સાફ કરો અને સાઇન આઉટ કરો</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (શ્રેષ્ઠ)</translation>
 <translation id="7246339268451149667">ફિંગરપ્રિન્ટ અનલૉક સક્ષમ કરીએ?</translation>
-<translation id="7246489301073081944">બહાર નીકળવા માટે |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| દબાવી રાખો</translation>
 <translation id="7246947237293279874">FTP પ્રોક્સી</translation>
 <translation id="725109152065019550">માફ કરશો, તમારા વ્યવસ્થાપકે તમારા એકાઉન્ટ પર બાહ્ય સ્ટોરેજને અક્ષમ કર્યું છે.</translation>
 <translation id="7253521419891527137">&amp;વધુ જાણો</translation>
@@ -4234,7 +4210,6 @@
 <translation id="7489605380874780575">યોગ્યતા તપાસો</translation>
 <translation id="749028671485790643">વ્યક્તિ <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC ઍડ્રેસ</translation>
-<translation id="7490950320178383728">બ્લૂટૂથ સાથે તમારી સુરક્ષા કીનો ઉપયોગ કરો</translation>
 <translation id="7491962110804786152">ટેબ</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> એક્સટેન્શન પાસવર્ડ્સ અને ક્રેડિટ કાર્ડ નંબર્સ સહિત, તમે ટાઇપ કરો તે બધી ટેક્સ્ટને એકત્રિત કરી શકે છે. શું તમે આ એક્સટેન્શનનો ઉપયોગ કરવા માંગો છો?</translation>
 <translation id="7494065396242762445">Windows સેટિંગ્સ ખોલો</translation>
@@ -4483,7 +4458,6 @@
 <translation id="7850851215703745691">આ ડ્રાઇવ ફાઇલો હજુ સુધી શેર કરી નથી</translation>
 <translation id="7851457902707056880">સાઇન-ઇન માત્ર માલિકનાં એકાઉન્ટ માટે જ પ્રતિબંધિત છે. કૃપા કરીને રીબૂટ કરો અને માલિકનાં એકાઉન્ટથી સાઇન ઇન કરો. મશીન 30 સેકન્ડમાં સ્વતઃ રીબૂટ થશે.</translation>
 <translation id="7851716364080026749">હંમેશા કેમેરા અને માઇક્રોફોનની ઍક્સેસને અવરોધિત કરો</translation>
-<translation id="7851816139220202929">NFC સાથે તમારી સુરક્ષા કીનો ઉપયોગ કરો</translation>
 <translation id="7853747251428735">વધુ સા&amp;ધનો</translation>
 <translation id="7856006446339184955">સિસ્ટમ ડેટા મોકલો. આ ઉપકરણ હાલમાં Googleને આપમેળે નિદાનકારી અને ઉપકરણ તથા ઍપના વપરાશનો ડેટા મોકલે છે. આ <ph name="BEGIN_LINK1" />સેટિંગ<ph name="END_LINK1" /> માલિક દ્વારા અમલમાં મૂકવામાં આવે છે. જો તમે વધારાની વેબ અને ઍપ પ્રવૃત્તિ ચાલુ કરી હશે, તો આ માહિતીનો તમારા એકાઉન્ટમાં સંગ્રહ કરવામાં આવશે, જેથી તમે તેને મારી પ્રવૃત્તિમાં મેનેજ કરી શકો. <ph name="BEGIN_LINK2" />વધુ જાણો<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">અપવાદ ઉમેરો</translation>
@@ -4611,7 +4585,6 @@
 <translation id="8030656706657716245">પ્રિન્ટર ઉમેરો</translation>
 <translation id="8032244173881942855">ટૅબને કાસ્ટ કરવામાં અસમર્થ.</translation>
 <translation id="8033827949643255796">પસંદ કરેલ</translation>
-<translation id="8033958968890501070">સમયસમાપ્તિ</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{તમામ URLને &amp;છુપી વિંડોમાં ખોલો}=1{URLને &amp;છુપી વિંડોમાં ખોલો}one{તમામ (#) URLને છુપી વિંડોમાં ખોલો}other{તમામ (#) URLને છુપી વિંડોમાં ખોલો}}</translation>
 <translation id="8037117027592400564">સિન્થેસાઇઝ કરેલ વાણીનો ઉપયોગ કરીને બધી બોલાયેલ ટેક્સ્ટને વાંચો</translation>
 <translation id="8037357227543935929">પૂછો (ડિફૉલ્ટ)</translation>
@@ -4834,7 +4807,6 @@
 <translation id="8425213833346101688">બદલો</translation>
 <translation id="8425492902634685834">ટાસ્કબારમાં પિન કરો</translation>
 <translation id="8425755597197517046">પે&amp;સ્ટ કરો અને શોધો</translation>
-<translation id="8426117172745886547">બહાર નીકળતા પહેલાં ચેતવણી આપો (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">સક્ષમ કરી રહ્યાં છીએ</translation>
 <translation id="8427292751741042100">કોઈ પણ હોસ્ટ પર એમ્બેડ કરેલ</translation>
 <translation id="8428213095426709021">સેટિંગ્સ</translation>
@@ -4922,7 +4894,6 @@
 <translation id="8551388862522347954">લાઇસેંસીસ</translation>
 <translation id="8553342806078037065">અન્ય લોકોને સંચાલિત કરો</translation>
 <translation id="8554899698005018844">કોઈ ભાષા નથી</translation>
-<translation id="8557347704037207368">Android Web Messagesમાંથી તમને નોટિફિકેશન મોકલો</translation>
 <translation id="855773602626431402">એક અનસેન્ડબૉક્સ્ડ પ્લગિનને આ પૃષ્ઠ પર ચાલવાથી અટકાવવામાં આવ્યું હતું.</translation>
 <translation id="8557930019681227453">સ્પષ્ટ</translation>
 <translation id="8559694214572302298">છબી ડીકોડર</translation>
@@ -5198,7 +5169,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ક્રેશ થયું</translation>
 <translation id="8983677657449185470">સુરક્ષિત બ્રાઉઝિંગને બહેતર બનાવવામાં સહાય કરો</translation>
 <translation id="8984654317541110628">શેર કરેલ ફાઇલ URL</translation>
-<translation id="8984872292925913496">તમારી કીની પાછળની બાજુએ 6-અંકનો પિન મેળવો</translation>
 <translation id="8986362086234534611">ભૂલી ગયા</translation>
 <translation id="8986494364107987395">ઉપયોગિતા આંકડાઓ અને ક્રેશ રિપોર્ટ્સ Google ને આપમેળે મોકલો</translation>
 <translation id="8987927404178983737">મહિનો</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 7280e3a9..0dcf7e2 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">ऑब्जेक्ट के बदलने पर उसे कीबोर्ड फ़ोकस के साथ हाइलाइट करें</translation>
 <translation id="1173894706177603556">नाम बदलें</translation>
 <translation id="1174073918202301297">शॉर्टकट जोड़ा गया</translation>
-<translation id="1174808551768282258">अपने Chromebook को अपने फ़ोन से अनलॉक करें. <ph name="LINK_BEGIN" />ज़्यादा जानें.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;प्रिंट करें...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> की कॉपी बन रही है...</translation>
 <translation id="1177138678118607465">खोज विज्ञापन और दूसरी Google सेवाओं को मनमुताबिक बनाने के लिए Google आपके ब्राउज़िंग इतिहास का इस्तेमाल कर सकता है. आप myaccount.google.com/activitycontrols/search में इसे कभी भी बदल सकते हैं</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">पॉज़ करें</translation>
 <translation id="1181037720776840403">निकालें</translation>
 <translation id="1183237619868651138">स्‍थानीय कैश में <ph name="EXTERNAL_CRX_FILE" /> इंस्‍टॉल नहीं कर सकते.</translation>
-<translation id="1183378459020939734">अपनी 'सुरक्षा चाबी' जोड़ने के लिए तैयार हैं?</translation>
 <translation id="1185924365081634987">इस नेटवर्क गड़बड़ी को ठीक करने के लिए आप <ph name="GUEST_SIGNIN_LINK_START" />अतिथि के रूप में ब्राउज़ करें<ph name="GUEST_SIGNIN_LINK_END" /> को भी आज़मा सकते हैं.</translation>
 <translation id="1186771945450942097">नुकसान पहुंचाने वाला सॉफ़्टवेयर निकालें</translation>
 <translation id="1187722533808055681">निष्क्रिय प्रोसेसर का सक्रियण</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">कोई ब्लूटूथ डिवाइस नहीं मि‍ला</translation>
 <translation id="1306606229401759371">सेटिंग बदलें</translation>
 <translation id="1307559529304613120">ओह!  सिस्टम इस डिवाइस के लिए, लंबे समय तक चलने वाला API (एपीआई) एक्सेस टोकन सेव नहीं कर सका.</translation>
+<translation id="1307931752636661898">Linux फ़ाइलें नहीं दिखाई जा सकीं</translation>
 <translation id="1313405956111467313">स्‍वचालित प्रॉक्सी कॉन्फ़िगरेशन</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">आपके बुकमार्क, इतिहास, और अन्य सेटिंग को आपके Google खाते में समन्वयित किया जाएगा</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">माउस और टचपैड डिवाइस सेटिंग खोलें</translation>
 <translation id="1531004739673299060">ऐप्लिकेशन विंडो</translation>
 <translation id="15373452373711364">बड़ा माउस कर्सर</translation>
+<translation id="1538729222189715449">Linux फ़ाइलें खुल रही हैं...</translation>
 <translation id="1540605929960647700">'डेमो मोड' चालू करें</translation>
 <translation id="1543284117603151572">Edge से आयात किया गया</translation>
 <translation id="1545177026077493356">स्वचालित किओस्क मोड</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">स्पर्श HUD मोड बदलें</translation>
 <translation id="1784849162047402014">डिवाइस पर डिस्क स्पेस कम है</translation>
 <translation id="1786636458339910689">टीम डिस्क</translation>
-<translation id="1792161662640298233">आपकी 'सुरक्षा चाबी' की पुष्टि की जा रही है</translation>
 <translation id="1792619191750875668">विस्तृत प्रदर्शन</translation>
 <translation id="1794791083288629568">इस समस्या को ठीक करने में हमारी सहायता करने के लिए फ़ीडबैक भेजें.</translation>
 <translation id="1795214765651529549">क्लासिक का उपयोग करें</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">आपका स्वागत है!</translation>
 <translation id="1914326953223720820">अनज़िप सेवा</translation>
 <translation id="1915073950770830761">कैनरी</translation>
-<translation id="1915543339027206592">आपकी खाता सेटिंग के आधार पर, आपका Assistant अनुभव वेब नतीजों, चुटकुलों और स्थानीय जानकारी जैसी चीज़ों तक ही सीमित रह सकता है.</translation>
 <translation id="1916502483199172559">डिफ़ॉल्ट लाल अवतार</translation>
 <translation id="1918141783557917887">&amp;छोटा</translation>
 <translation id="1919345977826869612">विज्ञापन</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_DOMAIN" /> पर <ph name="PEPPER_PLUGIN_NAME" /> आपके कंप्यूटर को एक्सेस करना चाहता है</translation>
 <translation id="2178614541317717477">CA समझौता</translation>
 <translation id="218070003709087997">प्रिंट की जाने वाली कॉपी की संख्या (1 से 999) दर्शाने के लिए किसी संख्या का उपयोग करें.</translation>
+<translation id="2184515124301515068">Chrome को चुनने दें कि साइटें कब आवाज़ चला सकती हैं (सुझाव)</translation>
 <translation id="2187895286714876935">सर्वर प्रमाणपत्र आयात गड़बड़ी</translation>
 <translation id="2187906491731510095">एक्सटेंशन अपडेट किए गए</translation>
 <translation id="2188881192257509750"><ph name="APPLICATION" /> खोलें</translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">कई वेबसाइटों पर अपना डेटा पढ़ें और बदलें</translation>
 <translation id="2242687258748107519">फ़ाइल जानकारी</translation>
 <translation id="2243194103992005307">ऐप्लिकेशन हटाने के लिए, सेटिंग &gt; ऐप्लिकेशन या ऐप्लिकेशन मैनेजर पर जाएं. उसके बाद उस ऐप्लिकेशन पर टैप करें जिसे आप अनइंस्टॉल करना चाहते हैं (ऐप्लिकेशन ढूंढने के लिए आपको दाएं या बाएं स्वाइप करना पड़ सकता है). उसके बाद अनइंस्टॉल करें या बंद करें पर टैप करें.</translation>
+<translation id="224940702122312781">इस पेज में बहुत ज़्यादा डेटा का इस्तेमाल होगा.</translation>
 <translation id="2249605167705922988">जैसे कि 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">सिस्टम दर्शक के साथ खोलें</translation>
 <translation id="225163402930830576">नेटवर्क रीफ्रेश करें</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">नेटवर्क कॉन्फ़िगर करें</translation>
 <translation id="230927227160767054">यह पेज सेवा हैंडलर इंस्टॉल करना चाहता है.</translation>
 <translation id="2309620859903500144">इस साइट को आपके डिवाइस के गति या रोशनी के सेंसर एक्सेस करने से ब्लॉक कर दिया गया है.</translation>
-<translation id="2311075084924370935">आपके कैलेंडर, रिमाइंडर, फ़्लाइट वगैरह में आपकी मदद करने के लिए, आपकी Assistant को वेब और ऐप्लिकेशन गतिविधि, डिवाइस की जानकारी, वॉइस और ऑडियो गतिविधि सेटिंग की ज़रूरत होती है.</translation>
+<translation id="2315414688463285945">Linux फ़ाइलें कॉन्फ़िगर करने में गड़बड़ी. कृपया फिर से कोशिश करें.</translation>
 <translation id="2315821125498993513">फ़ोन से कनेक्ट नहीं किया जा सका. <ph name="LINK_BEGIN" />ज़्यादा जानें.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">जी रहने दें</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% हो गया</translation>
 <translation id="2318143611928805047">कागज़ का आकार</translation>
 <translation id="2318817390901984578">Android ऐप्लिकेशन का उपयोग करने के लिए, अपना <ph name="DEVICE_TYPE" /> चार्ज करें और उसे अपडेट करें.</translation>
 <translation id="2318923050469484167">वर्तमान गुप्त सत्र (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128"><ph name="APP_NAME" /> के ज़रिए अपनी 'सुरक्षा चाबी' का इस्तेमाल करें</translation>
 <translation id="2322193970951063277">शीर्षलेख और पादलेख</translation>
 <translation id="2325650632570794183">इस तरह की फ़ाइल नहीं खुल सकती है. वैसा ऐप्लिकेशन जिसमें ऐसी फ़ाइल खुल सके, उसे ढूंढने के लिए कृपया 'Chrome वेब स्टोर' पर जाएं.</translation>
 <translation id="2326931316514688470">&amp;ऐप फिर लोड करें</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">File Share जोड़ें</translation>
 <translation id="2367972762794486313">ऐप्स  दिखाएं</translation>
 <translation id="2369536625682139252">कुकी को छोड़कर, <ph name="SITE" /> का स्टोर किया हुआ सारा डेटा मिटा दिया जाएगा.</translation>
-<translation id="237058345584060620">अपनी 'सुरक्षा चाबी' को इस डिवाइस से जोड़ें ताकि आप अपने खाते में साइन इन करने के लिए इसका इस्तेमाल कर सकें</translation>
 <translation id="2371076942591664043">&amp;पू्र्ण होने पर खोलें</translation>
 <translation id="2377319039870049694">'सूची की तरह देखें' पर स्विच करें</translation>
 <translation id="2377667304966270281">हार्ड फ़ॉल्ट</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">आपका फ़ोन नहीं मिल पा रहा है. पक्का करें कि आपके <ph name="DEVICE_TYPE" /> का ब्लूटूथ चालू है. &lt;a&gt;अधिक जानें&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;फ़ोल्डर जोड़ें...</translation>
 <translation id="249113932447298600">क्षमा करें, डिवाइस <ph name="DEVICE_LABEL" /> इस समय समर्थित नहीं है.</translation>
-<translation id="2492040222276243256">अपनी 'सुरक्षा चाबी' पर दिए गए बटन को पांच सेकंड तक दबाकर रखें</translation>
 <translation id="2493021387995458222">"एक बार में शब्‍द" को चुनें</translation>
 <translation id="249303669840926644">पंजीकरण पूरा नहीं किया जा सका</translation>
 <translation id="2495777824269688114">अधिक सुविधाएं खोजें या उत्तर पाएं. सहायता के लिए “?” चुनें.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">कुल: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">लंबी</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (प्‍लेटफ़ॉर्म <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">यह टैब आपकी स्क्रीन शेयर कर रहा है.</translation>
 <translation id="2586657967955657006">क्लिपबोर्ड</translation>
 <translation id="2586672484245266891">कृपया थोड़ा छोटा यूआरएल लिखें</translation>
 <translation id="2587922270115112871">'निगरानी में रखा गया उपयोगकर्ता' बनाने से कोई 'Google खाता' नहीं बनता और उसकी सेटिंग
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> डिस्क मेमोरी के <ph name="USAGE" /> एमबी का उपयोग कर रहा है.</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />" निकालें?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> स्थापना पूर्ण नहीं कर सका, लेकिन इसकी डिस्क चित्र से चलना जारी रहेगा.</translation>
-<translation id="2633326789677284179">अपनी 'सुरक्षा चाबी' के पीछे प्रिंट किया हुआ नाम देखें</translation>
 <translation id="2635276683026132559">हस्ताक्षर</translation>
 <translation id="2636625531157955190">Chrome, चित्र तक नहीं पहुंच पा रहा.</translation>
 <translation id="2638087589890736295">सिंक शुरू करने के लिए पासफ़्रेज़ की आवश्यकता होती है</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> जोड़ें...</translation>
 <translation id="2874343608108773609">अपने सभी डिवाइस पर अपने पासवर्ड पाने के लिए, Chrome में साइन इन करें.</translation>
 <translation id="2875698561019555027">(Chrome गड़बड़ी पृष्‍ठ)</translation>
-<translation id="2876441201733326392">USB सुरक्षा चाबी का इस्तेमाल करें</translation>
 <translation id="288042212351694283">अपने यूनीवर्सल सेकंड फ़ैक्टर डिवाइस एक्सेस करें</translation>
 <translation id="2881966438216424900">अंतिम बार पहुंच प्राप्त करने की तिथि:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> पुन: प्रारंभ होगा और जल्‍दी ही रीेसेट हो जाएगा</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">अनाम रूप से रिपोर्ट करें</translation>
 <translation id="2984337792991268709">आज <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">इस पेज को MIDI डिवाइस का पूर्ण नियंत्रण रखने से अवरोधित कर दिया गया है.</translation>
-<translation id="2988599644347283908">ध्यान दें: ये सेटिंग जिस डेटा को नियंत्रित करती हैं, उसे सेव किया जा सकता है और उन सभी 'Google सेवाओं' में इस्तेमाल किया जा सकता है जिनमें आप साइन इन किए हुए हैं. इस डेटा के ज़रिए आपको मनमुताबिक अनुभव देने के साथ-साथ काम के विज्ञापन दिखाए जाते हैं. आप account.google.com पर जाकर अपना डेटा देख सकते हैं, उसे मिटा सकते हैं और अपनी सेटिंग बदल सकते हैं.</translation>
 <translation id="2989474696604907455">अटैचमेंट नहीं</translation>
 <translation id="2989786307324390836">DER-एन्कोड की गई बाइनरी, एकल प्रमाणपत्र</translation>
 <translation id="2993517869960930405">ऐप्स की जानकारी</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">टैब अनम्‍यूट करें</translation>
 <translation id="3053013834507634016">प्रमाणपत्र कुंजी उपयोग</translation>
 <translation id="3057861065630527966">अपनी फ़ोटो और वीडियो का बैक अप लें</translation>
-<translation id="3059313675706898490">Android संदेश</translation>
 <translation id="3060379269883947824">चुनें और सुनें सुविधा चालू करें</translation>
 <translation id="3061707000357573562">पैच सेवा</translation>
 <translation id="3064410671692449875">अपर्याप्त डेटा</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">बाहरी crx फ़ाइल की <ph name="TEMP_CRX_FILE" /> में कॉपी नहीं बनाई जा सकती.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" युग्मित किया गया</translation>
 <translation id="3101709781009526431">दिनांक और समय</translation>
-<translation id="3104900172193317662">अपनी 'सुरक्षा चाबी' का इस्तेमाल करने दें</translation>
 <translation id="310671807099593501">साइट ब्लूटूथ का इस्तेमाल कर रही है</translation>
 <translation id="3115128645424181617">आपका फ़ोन नहीं मिल पा रहा है. पक्का करें कि वह पहुंच में है और ब्लूटूथ चालू है.</translation>
 <translation id="3115147772012638511">संचय की प्रतीक्षा कर रहा है...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;प्रमाणपत्र का भाग नहीं है&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> फ़ाइलों के लिए डिफ़ॉल्ट ऐप्स  चुनें:</translation>
 <translation id="3254516606912442756">समय क्षेत्र की अपने आप पहचान बंद है</translation>
-<translation id="3254772308201947812">हां, मैं सहमत हूं</translation>
 <translation id="3264544094376351444">Sans-serif फ़ॉन्ट</translation>
 <translation id="3264547943200567728">आपके Chromebox के नेटवर्क को सेट करने में विफल रहा</translation>
 <translation id="3264582393905923483">प्रसंग</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">इसके अनुसार क्रम से लगाएं</translation>
 <translation id="3737274407993947948">Linux इंस्टॉल करने में गड़बड़ी...</translation>
 <translation id="3737536731758327622">आपके डाउनलोड यहां दिखाई देंगे</translation>
-<translation id="3738671331307774213">अपनी पहचान की पुष्टि करने से आपको अपना निजी डेटा सुरक्षित रखने में मदद मिलती है</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> खोलना चाहते हैं?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> अब Admin Console में दिखाई देगा</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: सिंक करना रोका गया</translation>
 <translation id="3860381078714302691">Hangouts Meet में आपका स्वागत है</translation>
+<translation id="3861241522664181545">पेज रोका गया.</translation>
 <translation id="3862134173397075045">Chrome के कास्ट अनुभव में आपका स्वागत है!</translation>
 <translation id="3862788408946266506">'kiosk_only' मेनिफ़ेस्‍ट विशेषता वाला ऐप्लिकेशन Chrome OS कियोस्‍क मोड में इंस्‍टॉल किया जाना चाहिए</translation>
 <translation id="3865414814144988605">रिज़ॉल्यूशन</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">इसे चालू करने के लिए, <ph name="BEGIN_LINK" />सिंक रीसेट करें<ph name="END_LINK" /> ताकि आपका सिंक करने का लंबा पासवर्ड हटाया जा सके</translation>
 <translation id="3878840326289104869">'निगरानी में रखा गया उपयोगकर्ता' बनाना</translation>
 <translation id="3879748587602334249">डाउनलोड मैनेजर</translation>
-<translation id="3880709822663530586">आपकी 'सुरक्षा चाबी' तभी काम करती है जब आपके डिवाइस का ब्लूटूथ चालू हो</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> से नोट लेना</translation>
 <translation id="3892414795099177503">OpenVPN / L2TP जोड़ें...</translation>
 <translation id="3893536212201235195">अपनी पहुंच-योग्यता सेटिंग पढ़ें और बदलें</translation>
@@ -2069,6 +2060,7 @@
 <translation id="4096824249111507322">सुरक्षित मॉड्यूल तैयार हो रहा है, कृपया इंतज़ार करें (इसमें कुछ मिनट लग सकते हैं)...</translation>
 <translation id="4099060993766194518">डिफ़ॉल्ट खोज इंजन को बहाल करना चाहते हैं?</translation>
 <translation id="4100733287846229632">डिवाइस में बहुत ही कम स्थान बचा है</translation>
+<translation id="4103091233824664032">स्क्रीन लॉक कॉन्फ़िगर करने के लिए अपना पासवर्ड डालें और साइन इन करें</translation>
 <translation id="4104163789986725820">नि&amp;र्यात करें...</translation>
 <translation id="4105563239298244027">Google डिस्क के साथ 1 TB मुफ़्त पाएं</translation>
 <translation id="4107048419833779140">मेमोरी डिवाइसों की पहचान करें और उन्हें निकालें</translation>
@@ -2089,7 +2081,6 @@
 <translation id="4136203100490971508">सूर्योदय होने पर नाइट लाइट अपने आप बंद हो जाएगी</translation>
 <translation id="4138267921960073861">साइन-इन स्‍क्रीन पर उपयोगकर्ता नाम और फ़ोटो दिखाएं</translation>
 <translation id="4144218403971135344">बेहतर गुणवत्ता वाले वीडियो पाएं और बैटरी लाइफ़ बचाएं. वीडियो सिर्फ़ उस स्क्रीन पर चलेगा जिस पर आपने कास्ट करने की सुविधा चालू की है.</translation>
-<translation id="414599683948988413">यूएसबी के ज़रिए अपनी 'सुरक्षा चाबी' का इस्तेमाल करें</translation>
 <translation id="4146026355784316281">हमेशा सिस्‍टम व्‍यूअर से खोलें</translation>
 <translation id="4146785383423576110">रीसेट करें और साफ़ करें</translation>
 <translation id="4147897805161313378">Google फ़ोटो</translation>
@@ -2224,6 +2215,7 @@
 <translation id="4394049700291259645">बंद करें</translation>
 <translation id="4400367121200150367">वे साइटें जो कभी पासवर्ड नहीं सहेजती हैं, यहां दिखाई देंगी</translation>
 <translation id="4400632832271803360">शीर्ष-पंक्ति वाली कुंजियों का व्यवहार स्विच करने के लिए Launcher कुंजी दबाए रखें</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">स&amp;हायता</translation>
 <translation id="4409697491990005945">मार्जिन</translation>
 <translation id="4411578466613447185">कोड हस्ताक्षरकर्ता</translation>
@@ -2272,6 +2264,7 @@
 <translation id="4480590691557335796">Chrome आपके कंप्यूटर पर नुकसान पहुंचाने वाला सॉफ़्टवेयर ढूंढ सकता है और उसे हटा सकता है</translation>
 <translation id="4481530544597605423">अयुग्मित किए गए डिवाइस</translation>
 <translation id="4482194545587547824">खोज और अन्य Google सेवाओं को वैयक्तिकृत करने के लिए Google आपके ब्राउज़िंग इतिहास का उपयोग कर सकता है</translation>
+<translation id="4493287891836751813">अपनी Google Assistant से मिलें</translation>
 <translation id="4495419450179050807">इस पेज पर न दिखाएं</translation>
 <translation id="4499718683476608392">फ़ॉर्म को एक ही क्लिक में भरने के लिए, क्रेडिट कार्ड की जानकारी ऑटोमैटिक भरने की सुविधा चालू करें</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> बंद हो गया है</translation>
@@ -2432,6 +2425,7 @@
 <translation id="474217410105706308">टैब म्यूट करें</translation>
 <translation id="4742746985488890273">अलमारी से पिन करें</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />ऐप्लिकेशन अपडेट करने का तरीका जानें<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">संदेश</translation>
 <translation id="4746971725921104503">ऐसा लगता है कि आप पहले से ही उस नाम से उपयोगकर्ता को प्रबंधित कर रहे हैं. क्‍या आप <ph name="LINK_START" /><ph name="USER_DISPLAY_NAME" /> को इस डिवाइस पर लाना<ph name="LINK_END" /> चाहते थे?</translation>
 <translation id="4748762018725435655">Chrome वेब स्टोर से एक्सटेंशन की आवश्यकता है</translation>
 <translation id="4750394297954878236">सुझाव</translation>
@@ -2473,6 +2467,7 @@
 <translation id="4821935166599369261">&amp;प्रोफ़ाइलिंग सक्षम</translation>
 <translation id="4823484602432206655">उपयोगकर्ता और डिवाइस सेटिंग पढ़ें और बदलें</translation>
 <translation id="4823651846660089135">डिवाइस केवल-पढ़ने के लिए है</translation>
+<translation id="4823955295535347797">स्क्रीन चालू होने पर कभी भी "OK Google" बोलें और अपनी Assistant सेवा एक्सेस करें.</translation>
 <translation id="4828937774870308359">आस्ट्रेलियाई</translation>
 <translation id="4829768588131278040">पिन सेट करें</translation>
 <translation id="4830502475412647084">OS अपडेट इंस्टॉल किया जा रहा है</translation>
@@ -2513,6 +2508,7 @@
 <translation id="4876273079589074638">इस क्रैश की जाँच-पड़ताल करने और इसे ठीक करने में हमारे इंजीनियरों की सहायता करें. अगर हो सके तो सटीक चरणों की सूची बनाएं. कोई भी विवरण छोटा नहीं होता!</translation>
 <translation id="4876895919560854374">स्क्रीन लॉक करना और अनलॉक करना</translation>
 <translation id="4877017884043316611">Chromebox से युग्‍मित करें</translation>
+<translation id="4879491255372875719">अपने आप (डिफ़ॉल्ट)</translation>
 <translation id="4880214202172289027">वॉल्‍यूम स्‍लाइडर</translation>
 <translation id="4880328057631981605">एक्सेस प्वाइंट नाम</translation>
 <translation id="4880520557730313061">स्‍वत:एडजस्ट करें</translation>
@@ -2666,7 +2662,6 @@
 <translation id="5099354524039520280">ऊपर</translation>
 <translation id="5100114659116077956">अपने लिए नवीनतम सुविधाएं लाने के लिए, आपके Chromebox को अपडेट करना होगा.</translation>
 <translation id="5101042277149003567">सभी बुकमार्क खोलें</translation>
-<translation id="5104546332954397226">अपने फ़ोन का इस्तेमाल 'सुरक्षा चाबी' की तरह करें</translation>
 <translation id="5105855035535475848">टैब छोटा करें</translation>
 <translation id="5108967062857032718">सेटिंग - Android ऐप्लिकेशन निकालें</translation>
 <translation id="5109044022078737958">मिया</translation>
@@ -2797,7 +2792,6 @@
 <translation id="5288678174502918605">बंद किए गए टैब पु&amp;न: खोलें</translation>
 <translation id="52912272896845572">निजी कुंजी फ़ाइल अमान्य है.</translation>
 <translation id="529175790091471945">यह डिवाइस फ़ॉर्मेट करें</translation>
-<translation id="5292195676005197571">ज़्यादातर चाबियों का इस्तेमाल करने के लिए, बस बटन को दबाएं</translation>
 <translation id="5293170712604732402">सेटिंग को उनके मूल डिफ़ॉल्ट पर बहाल करें</translation>
 <translation id="5297082477358294722">पासवर्ड सेव किया गया. अपने <ph name="SAVED_PASSWORDS_STORE" /> में सेव किए गए पासवर्ड देखें और उन्हें प्रबंधित करें.</translation>
 <translation id="5298219193514155779">थीम निर्माता</translation>
@@ -2823,6 +2817,7 @@
 <translation id="532776649628038357">मैं सहमत हूं</translation>
 <translation id="532943162177641444">इस डिवाइस से उपयोग किया जा सकने वाला मोबाइल हॉटस्पॉट सेट करने के लिए अपने <ph name="PHONE_NAME" /> पर नोटिफ़िकेशन को टैप करें.</translation>
 <translation id="5329858601952122676">&amp;हटाएं</translation>
+<translation id="5329945517224105597">आपकी स्क्रीन पर मौजूद सामग्री के संबंध में आपकी Assistant ज़्यादा मिलते-जुलते सुझाव और खास कार्रवाइयां दिखा सकती है. आप इसे Assistant सेटिंग में बदल सकते हैं</translation>
 <translation id="5330145655348521461">ये फ़ाइलें किसी अलग डेस्कटॉप पर खुली हैं. उसे देखने के लिए <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />)  पर जाएं.</translation>
 <translation id="5330512191124428349">जानकारी पाएं</translation>
 <translation id="5331069282670671859">आपके पास इस श्रेणी में कोई प्रमाणपत्र नहीं है</translation>
@@ -2867,7 +2862,6 @@
 <translation id="5390100381392048184">साइटों को आवाज़ चलाने दें</translation>
 <translation id="5390284375844109566">अनुक्रमित डेटाबेस</translation>
 <translation id="5390743329570580756">इसके लिए भेजें</translation>
-<translation id="5392327114396848796">पहले से मौजूद 'सुरक्षा चाबी' का इस्तेमाल करें</translation>
 <translation id="5397794290049113714">आप</translation>
 <translation id="5398572795982417028">सीमा से बाहर के पेज का संदर्भ, सीमा <ph name="MAXIMUM_PAGE" /> की है</translation>
 <translation id="5398772614898833570">विज्ञापन ब्लॉक हैं</translation>
@@ -3075,6 +3069,7 @@
    <ph name="LINE_BREAKS" />
    संग्रह या वर्चुअल डिस्क पर मौजूद सभी फ़ाइलें बंद करें, फिर दोबारा कोशिश करें.</translation>
 <translation id="5687326903064479980">समय क्षेत्र</translation>
+<translation id="568824803367507355">"Ok Google" की पहचान</translation>
 <translation id="5689516760719285838">स्थान</translation>
 <translation id="56907980372820799">डेटा लिंक करें</translation>
 <translation id="5691511426247308406">परिवार</translation>
@@ -3172,7 +3167,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - कैमरा या माइक्रोफ़ोन रिकॉर्डिंग</translation>
 <translation id="5835754902560991078">अत्यधिक कम समय (0.6 सेकंड)</translation>
 <translation id="5838456317242088717">वर्तमान गुप्त सत्र</translation>
-<translation id="5842053879378944309"><ph name="APP_NAME" /> के साथ USB सुरक्षा चाबी का इस्तेमाल करें</translation>
 <translation id="5842497610951477805">ब्लूटूथ सक्षम</translation>
 <translation id="5843250171025351504">आपका डिवाइस अब आपके एडमिन के बताए गए न्यूनतम क्लाइंट वर्शन का अनुपालन नहीं करता है. कृपया लॉगिन करने के लिए अपडेट करें.</translation>
 <translation id="5846929185714966548">टैब 4</translation>
@@ -3490,7 +3484,6 @@
 <translation id="6317318380444133405">अब काम नहीं करता है.</translation>
 <translation id="6317369057005134371">ऐप्लिकेशन विंडो की प्रतीक्षा की जा रही है...</translation>
 <translation id="6318407754858604988">डाउनलोड शुरू हो गया</translation>
-<translation id="6322653941595359182">अपने Chromebook से मैसेज भेजें और पाएं</translation>
 <translation id="6324916366299863871">शॉर्टकट में बदलाव करें</translation>
 <translation id="6325191661371220117">ऑटो-लॉन्च बंद करें</translation>
 <translation id="6326175484149238433">Chrome से नि‍कालें</translation>
@@ -3534,6 +3527,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />सिस्टम की जानकारी<ph name="END_LINK1" /> और <ph name="BEGIN_LINK2" />मेट्रिक्स<ph name="END_LINK2" /> भेजें</translation>
 <translation id="6397094776139756010">सिंक करने और मनमुताबिक बनाने के विकल्प</translation>
 <translation id="6397592254427394018">सभी बुकमार्क &amp;गुप्त विंडो में खोलें</translation>
+<translation id="639777613761517128">$1 वाली फ़ाइलें खोलने के लिए, पहले Linux फ़ाइल फ़ोल्डर को कॉपी करें.</translation>
 <translation id="6398715114293939307">Google Play स्टोर निकालें</translation>
 <translation id="6398765197997659313">पूर्ण स्क्रीन से बाहर निकलें</translation>
 <translation id="6399774419735315745">जासूस</translation>
@@ -3559,7 +3553,6 @@
 <translation id="642282551015776456">यह नाम कि‍सी फ़ाइल या फ़ोल्‍डर के लि‍ए उपयोग नहीं कि‍या जा सकता</translation>
 <translation id="642469772702851743">इस डिवाइस (क्रमांक: <ph name="SERIAL_NUMBER" />) को मालिक ने लॉक कर दिया था.</translation>
 <translation id="6426200009596957090">ChromeVox सेटिंग खोलें</translation>
-<translation id="6427415464407526111">अपनी 'सुरक्षा चाबी' चुनें</translation>
 <translation id="6429384232893414837">अपडेट में गड़बड़ी</translation>
 <translation id="6430814529589430811">Base64 में एन्कोड किया गया ASCII, सिर्फ़ एक प्रमाणपत्र</translation>
 <translation id="6431217872648827691">आपके Google पासवर्ड के द्वारा 
@@ -3717,7 +3710,6 @@
 <translation id="6655190889273724601">डेवलपर मोड</translation>
 <translation id="6655458902729017087">खाते छिपाएं</translation>
 <translation id="6657585470893396449">पासवर्ड</translation>
-<translation id="6658023813581644008">अपना पासवर्ड डालें, ताकि आप साइन-इन के लिए Smart Lock सेट अप कर सकें</translation>
 <translation id="6659213950629089752">इस पेज को "<ph name="NAME" />" एक्सटेंशन द्वारा ज़ूम किया गया था</translation>
 <translation id="6659594942844771486">टैब</translation>
 <translation id="6664237456442406323">दुर्भाग्यवश, आपका कंप्यूटर किसी विकृत हार्डवेयर आईडी द्वारा कॉन्फ़िगर किया हुआ है. इससे Chrome OS को नवीनतम सुरक्षा सुधारों से अपडेट होने में बाधा आ रही है और आपका कंप्यूटर <ph name="BEGIN_BOLD" />दुर्भावनापूर्ण हमलों की चपेट में आ सकता है<ph name="END_BOLD" />.</translation>
@@ -3853,7 +3845,6 @@
 <translation id="6885771755599377173">सिस्टम जानकारी पूर्वावलोकन</translation>
 <translation id="6886871292305414135">नए &amp;टैब में लिंक खोलें</translation>
 <translation id="6892812721183419409">लिंक को <ph name="USER" /> के रूप में खोलें</translation>
-<translation id="6896398788631624004">अपनी सुरक्षा चाबी प्लग इन करें और उसे चालू करें</translation>
 <translation id="6896758677409633944">कॉपी बनाएं</translation>
 <translation id="6898440773573063262">किओस्क ऐप्लिकेशन अब इस डिवाइस पर स्वत: लॉन्च होने के लिए कॉन्फ़िगर किए जा सकते हैं.</translation>
 <translation id="6898699227549475383">संगठन (O)</translation>
@@ -3872,6 +3863,7 @@
 <translation id="6915804003454593391">उपयोगकर्ता:</translation>
 <translation id="6916590542764765824">एक्‍सटेंशन प्रबंधित करें</translation>
 <translation id="6920989436227028121">नियमित टैब के रूप में खोलें</translation>
+<translation id="6921709132208495314">इस पेज पर डेटा का इस्तेमाल बंद करें</translation>
 <translation id="6922128026973287222">Google डेटा बचाने के साधन का उपयोग करके डेटा बचाएं और तेज़ी से ब्राउज़ करें. और जानने के लिए क्‍लिक करें.</translation>
 <translation id="6923132443355966645">स्क्रोल / क्लिक करें</translation>
 <translation id="6930242544192836755">अवधि</translation>
@@ -3894,6 +3886,7 @@
 <translation id="6965382102122355670">ठीक है</translation>
 <translation id="6965648386495488594">पोर्ट</translation>
 <translation id="6965978654500191972">डिवाइस</translation>
+<translation id="6968288415730398122">स्क्रीन लॉक कॉन्फ़िगर करने के लिए अपना पासवर्ड डालें</translation>
 <translation id="6970480684834282392">स्टार्टअप प्रकार</translation>
 <translation id="6970856801391541997">विशेष पेज प्रिंट करें</translation>
 <translation id="6972180789171089114">ऑडियो/वीडियो</translation>
@@ -3904,6 +3897,7 @@
 <translation id="6978121630131642226">खोज इंजन</translation>
 <translation id="6978611942794658017">यह फ़ाइल PC के लिए Windows सॉफ़्टवेयर का उपयोग करके बनाई गई है. यह आपके Chrome OS चलाने वाले डिवाइस से संगत नहीं है. कृपया उचित प्रतिस्‍थापन ऐप्‍स के लिए Chrome वेब स्‍टोर खोजें.</translation>
 <translation id="6979158407327259162">Google डिस्क</translation>
+<translation id="6979440798594660689">म्यूट करें (डिफ़ॉल्ट)</translation>
 <translation id="6979737339423435258">हमेशा</translation>
 <translation id="6980462514016882061">खोज, विज्ञापन और अन्य Google सेवाओं को वैयक्तिकृत करने के लिए Google आपके ब्राउज़िंग इतिहास का उपयोग कर सकता है</translation>
 <translation id="6981982820502123353">पहुंच क्षमता</translation>
@@ -4052,6 +4046,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />यह आपके डिवाइस के बारे में और आप उसका इस्तेमाल किस तरह करते हैं, इसके बारे में आम जानकारी है (जैसे कि बैटरी लेवल, ऐप्लिकेशन का इस्तेमाल और नेटवर्क कनेक्टिविटी). इस डेटा का इस्तेमाल Google के उत्पादों और सेवाओं को सभी के लिए बेहतर बनाने में किया जाएगा. कुछ एकीकृत जानकारी से Android डेवलपर जैसे पार्टनर को सहायता मिलेगी, जिससे वे भी अपने ऐप्लिकेशन और उत्पादों को बेहतर बना सकेंगे.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />इस फ़ीचर को बंद करने से आपके डिवाइस की ओर से सिस्टम अपडेट और सुरक्षा जैसी ज़रूरी सेवाओं के लिए ज़रूरी जानकारी भेजने की सुविधा पर असर नहीं पड़ेगा.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />आप सेटिंग &gt; Google में जाकर इस फ़ीचर को नियंत्रित कर सकते हैं. मेन्यू में जाकर इस्तेमाल और निदान को चुनें.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">हमें आपके खाते से ऐसे <ph name="NUMBER_OF_APPS" /> ऐप्लिकेशन मिले हैं जिनका इस्तेमाल इस डिवाइस पर किया जा सकता है.</translation>
 <translation id="7199158086730159431">स&amp;हायता प्राप्त करें</translation>
 <translation id="7200083590239651963">कॉन्फ़िगरेशन चुनें</translation>
 <translation id="720110658997053098">इस डिवाइस को हमेशा के लिए किओस्क मोड में रखें</translation>
@@ -4072,7 +4067,6 @@
 <translation id="7228523857728654909">स्क्रीन लॉक और साइन-इन</translation>
 <translation id="7229570126336867161">EVDO की आवश्यकता है</translation>
 <translation id="7230787553283372882">अपने लेख का आकार कस्टमाइज़ करें</translation>
-<translation id="7231589788477569369">इन सेटिंग के साथ Assistant का पूरा फ़ायदा उठाएं</translation>
 <translation id="7232750842195536390">नाम नहीं बदला जा सका</translation>
 <translation id="7234406375359457793">शेयर माउंट करने में गड़बड़ी. बताया गया शेयर काम नहीं करता है.</translation>
 <translation id="7238585580608191973">SHA-256 फ़िंगरप्रिंट</translation>
@@ -4082,7 +4076,6 @@
 <translation id="7243632151880336635">साफ़ करें और प्रस्थान करें</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (श्रेष्ठ)</translation>
 <translation id="7246339268451149667">फ़िंगरप्रिंट अनलॉक सक्षम करें?</translation>
-<translation id="7246489301073081944">बाहर निकलने के लिए |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| दबाकर रखें</translation>
 <translation id="7246947237293279874">FTP प्रॉक्सी</translation>
 <translation id="725109152065019550">क्षमा करें, आपके व्यवस्थापक ने आपके खाते पर बाहरी मेमोरी को अक्षम कर दिया है.</translation>
 <translation id="7253521419891527137">&amp;अधिक जानें</translation>
@@ -4235,7 +4228,6 @@
 <translation id="7489605380874780575">योग्यता जाँचें</translation>
 <translation id="749028671485790643">व्यक्ति <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC पता</translation>
-<translation id="7490950320178383728">ब्लूटूथ के ज़रिए अपनी 'सुरक्षा चाबी' का इस्तेमाल करें</translation>
 <translation id="7491962110804786152">टैब</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> एक्सटेंशन, आपके द्वारा लिखे जाने वाले सभी लेख को एकत्र कर सकता है, जिसमें पासवर्ड और क्रेडिट कार्ड नंबर जैसा व्यक्तिगत डेटा भी शामिल है. क्या आप इस एक्सटेंशन का उपयोग करना चाहते हैं?</translation>
 <translation id="7494065396242762445">Windows सेटिंग खोलें</translation>
@@ -4485,7 +4477,6 @@
 <translation id="7850851215703745691">इन डिस्क फ़ाइलों को अभी तक शेयर नहीं किया गया है</translation>
 <translation id="7851457902707056880">साइन इन को केवल मालिक खाते तक प्रतिबंधित कर दिया गया है. कृपया रीबूट करें और मालिक खाते से साइन इन करें. मशीन 30 सेकंड में स्‍वत: रीबूट हो जाएगी.</translation>
 <translation id="7851716364080026749">कैमरा और माइक्रोफ़ोन एक्सेस हमेशा अवरुद्ध करें</translation>
-<translation id="7851816139220202929">NFC के ज़रिए अपनी 'सुरक्षा चाबी' का इस्तेमाल करें</translation>
 <translation id="7853747251428735">अधिक टू&amp;ल</translation>
 <translation id="7856006446339184955">सिस्टम डेटा भेजें. यह डिवाइस फ़िलहाल Google को निदान और डिवाइस और ऐप्लिकेशन के इस्तेमाल का डेटा अपने आप भेजता है. यह <ph name="BEGIN_LINK1" />सेटिंग<ph name="END_LINK1" /> मालिक ने लागू की है. अगर आपने अतिरिक्त वेब और ऐप्लिकेशन गतिविधि चालू की है, तो यह जानकारी आपके खाते से संग्रहित की जाएगी, ताकि आप इसे मेरी गतिविधि में जाकर प्रबंधित कर सकें. <ph name="BEGIN_LINK2" />अधिक जानें<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">अपवाद जोड़ें</translation>
@@ -4568,6 +4559,7 @@
 <translation id="7973962044839454485">किसी गलत उपयोगकर्ता नाम या पासवर्ड के कारण PPP प्रमाणीकरण विफल रहा</translation>
 <translation id="7974566588408714340"><ph name="EXTENSIONNAME" /> का उपयोग करके पुन: प्रयास करें</translation>
 <translation id="7974936243149753750">ओवरस्कैन</translation>
+<translation id="79766959863778284">XR Isolated Device Service</translation>
 <translation id="7977551819349545646">Chromebox अपडेट कर रहा है...</translation>
 <translation id="7978412674231730200">निजी कुंजी</translation>
 <translation id="7978450511781612192">इससे आप अपने Google खातों से साइन आउट हो जाएंगे. आपके बुकमार्क, इतिहास, पासवर्ड और कई चीज़ें अब सिंक नहीं की जाएंगी.</translation>
@@ -4618,7 +4610,6 @@
 <translation id="8030656706657716245">प्रिंटर जोड़ें</translation>
 <translation id="8032244173881942855">टैब कास्ट करने में असमर्थ.</translation>
 <translation id="8033827949643255796">चयनित</translation>
-<translation id="8033958968890501070">समय खत्म</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{सभी को &amp;गुप्त विंडो में खोलें}=1{&amp;गुप्त विंडों में खोलें}one{सभी (#) को &amp;गुप्त विंडो में खोलें}other{सभी (#) को &amp;गुप्त विंडो में खोलें}}</translation>
 <translation id="8037117027592400564">संश्लेषित बोली का उपयोग करके बोला गया सभी लेख पढ़ें</translation>
 <translation id="8037357227543935929">पूछें (डिफ़ॉल्ट)</translation>
@@ -4791,6 +4782,7 @@
 <translation id="8320459152843401447">आपकी पूरी स्क्रीन</translation>
 <translation id="8322814362483282060">इस पेज को आपके कैमरे और माइक्रोफ़ोन को एक्सेस करने से अवरोधित कर दिया गया है.</translation>
 <translation id="8326478304147373412">PKCS #7, प्रमाणपत्र चेन</translation>
+<translation id="8327039559959785305">Linux फ़ाइलें माउंट करने में गड़बड़ी. कृपया फिर से कोशिश करें.</translation>
 <translation id="8329978297633540474">सादा लेख</translation>
 <translation id="8335587457941836791">अलमारी से टैब बड़ी करें</translation>
 <translation id="8336153091935557858">कल <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4841,7 +4833,6 @@
 <translation id="8425213833346101688">बदलें</translation>
 <translation id="8425492902634685834">टास्कबार में पिन करें</translation>
 <translation id="8425755597197517046">चिप&amp;काएं और खोजें</translation>
-<translation id="8426117172745886547">बाहर निकलने से पहले चेतावनी दें (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">सक्षम किया जा रहा है</translation>
 <translation id="8427292751741042100">किसी भी होस्ट पर एम्बेड किया गया</translation>
 <translation id="8428213095426709021">सेटिंग</translation>
@@ -4929,7 +4920,6 @@
 <translation id="8551388862522347954">लाइसेंस</translation>
 <translation id="8553342806078037065">अन्य लोगों को प्रबंधित करें</translation>
 <translation id="8554899698005018844">कोई भाषा नहीं</translation>
-<translation id="8557347704037207368">आपको 'Android वेब मैसेज' से सूचनाएं भेजती है</translation>
 <translation id="855773602626431402">एक सैंडबॉक्‍स नहीं किए गए प्‍लग इन को इस पृष्‍ठ पर चलने से रोका गया था.</translation>
 <translation id="8557930019681227453">मेनिफेस्ट</translation>
 <translation id="8559694214572302298">चित्र डीकोडर</translation>
@@ -5042,6 +5032,7 @@
 <translation id="8714154114375107944">इस डिवाइस पर अब यह सुविधा काम नहीं करेगी</translation>
 <translation id="8714838604780058252">पृष्‍ठभूमि ग्राफ़िक</translation>
 <translation id="8715480913140015283">बैकग्राउंड टैब आपके कैमरे का इस्तेमाल कर रहा है</translation>
+<translation id="8716931980467311658">इस <ph name="DEVICE_TYPE" /> से अपने सभी Linux ऐप्लिकेशन और अपनी Linux फ़ाइलों में मौजूद डेटा मिटाना चाहते हैं?</translation>
 <translation id="8719653885894320876"><ph name="PLUGIN_NAME" /> डाउनलोड विफल रहा</translation>
 <translation id="8723829621484579639">इनके लिए गुप्त सबफ़्रेम: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">खोजकर्ता में &amp;दिखाएं</translation>
@@ -5205,7 +5196,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - क्रैश हो गया है</translation>
 <translation id="8983677657449185470">सुरक्षित ब्राउज़िंग को बेहतर बनाने में सहायता करें</translation>
 <translation id="8984654317541110628">फ़ाइल शेयर यूआरएल</translation>
-<translation id="8984872292925913496">अपनी 'सुरक्षा चाबी' के पीछे दिया गया छह अंकों वाला पिन देखें</translation>
 <translation id="8986362086234534611">भूल जाएं</translation>
 <translation id="8986494364107987395">'इस्तेमाल के आंकड़े' और 'खराबी रिपोर्ट' Google को अपने आप भेजे जाने की अनुमति दें</translation>
 <translation id="8987927404178983737">माह</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 0add4f9..45cc9820 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Istaknite objekt fokusom na tipkovnici kada se promijeni</translation>
 <translation id="1173894706177603556">Preimenuj</translation>
 <translation id="1174073918202301297">Prečac je dodan</translation>
-<translation id="1174808551768282258">Otključajte Chromebook telefonom. <ph name="LINK_BEGIN" />Saznajte više.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Ispis...</translation>
 <translation id="117624967391683467">Kopiranje datoteke <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google može upotrebljavati vašu povijest pregledavanja za prilagodbu pretraživanja, oglasa i drugih Googleovih usluga. To možete promijeniti u bilo kojem trenutku na stranici myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pauziraj</translation>
 <translation id="1181037720776840403">Ukloni</translation>
 <translation id="1183237619868651138">Nije moguća instalacija datoteke <ph name="EXTERNAL_CRX_FILE" /> u lokalnu predmemoriju.</translation>
-<translation id="1183378459020939734">Jeste li spremni za uparivanje sigurnosnog ključa?</translation>
 <translation id="1185924365081634987">Možete pokušati <ph name="GUEST_SIGNIN_LINK_START" />pregledavati kao gost<ph name="GUEST_SIGNIN_LINK_END" /> da biste riješili tu mrežnu pogrešku.</translation>
 <translation id="1186771945450942097">Uklonite štetni softver</translation>
 <translation id="1187722533808055681">Buđenja iz stanja mirovanja</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Nije pronađen nijedan Bluetooth uređaj</translation>
 <translation id="1306606229401759371">Promijeni postavke</translation>
 <translation id="1307559529304613120">Ups! Sustav nije uspio pohraniti token za dugotrajni pristup API-ju za ovaj uređaj.</translation>
+<translation id="1307931752636661898">Nije moguće pregledati Linux datoteke</translation>
 <translation id="1313405956111467313">Automatska konfiguracija proxyja</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Vaše oznake, povijest i ostale postavke sinkronizirat će se s vašim Google računom.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Otvorite postavke miša i dodirne podloge na uređaju</translation>
 <translation id="1531004739673299060">Prozor aplikacije</translation>
 <translation id="15373452373711364">Veliki pokazivač miša</translation>
+<translation id="1538729222189715449">Otvaranje Linux datoteka...</translation>
 <translation id="1540605929960647700">Omogućite demo-način</translation>
 <translation id="1543284117603151572">Uvezeno iz Edgea</translation>
 <translation id="1545177026077493356">Automatski način kioska</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Promjena načina dodirnog HUD zaslona</translation>
 <translation id="1784849162047402014">Na uređaju nema dovoljno prostora</translation>
 <translation id="1786636458339910689">Diskovi za tim</translation>
-<translation id="1792161662640298233">Potvrda sigurnosnog ključa</translation>
 <translation id="1792619191750875668">Prošireni zaslon</translation>
 <translation id="1794791083288629568">Pošaljite povratne informacije da biste nam pomogli riješiti taj problem.</translation>
 <translation id="1795214765651529549">Koristi klasičnu</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Dobro došli!</translation>
 <translation id="1914326953223720820">Usluga raspakiravanja</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Ovisno o postavkama računa, Asistent može biti ograničen na stvari kao što su web-rezultati, šale i lokalne informacije.</translation>
 <translation id="1916502483199172559">Zadani crveni avatar</translation>
 <translation id="1918141783557917887">&amp;Manji</translation>
 <translation id="1919345977826869612">Oglasi</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> na domeni <ph name="PEPPER_PLUGIN_DOMAIN" /> želi pristupiti vašem računalu</translation>
 <translation id="2178614541317717477">CA kompromis</translation>
 <translation id="218070003709087997">Upotrijebite broj kako biste odredili broj primjeraka za ispis (od 1 do 999).</translation>
+<translation id="2184515124301515068">Neka Chrome odluči kada web-lokacije mogu reproducirati zvuk (preporučeno)</translation>
 <translation id="2187895286714876935">Pogreška pri uvozu Certifikata poslužitelja</translation>
 <translation id="2187906491731510095">Proširenja ažurirana</translation>
 <translation id="2188881192257509750">Otvori aplikaciju <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">čitati i mijenjati vaše podatke na više web-lokacija</translation>
 <translation id="2242687258748107519">Informacije o datoteci</translation>
 <translation id="2243194103992005307">Za uklanjanje aplikacije idite na Postavke &gt; Aplikacije ili Upravitelj aplikacija. Zatim dodirnite aplikaciju koju želite deinstalirati (možda ćete morati prijeći prstom udesno ili ulijevo kako biste pronašli aplikaciju). Zatim dodirnite Deinstaliraj ili Onemogući.</translation>
+<translation id="224940702122312781">Ova će stranica upotrijebiti mnogo podataka.</translation>
 <translation id="2249605167705922988">npr. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Otvori u pregledniku sustava</translation>
 <translation id="225163402930830576">Osvježi mreže</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Konfiguriraj mrežu</translation>
 <translation id="230927227160767054">Ova stranica želi instalirati rukovatelja usluge.</translation>
 <translation id="2309620859903500144">Web-lokaciji je zabranjen pristup vašim senzorima pokreta ili svjetla.</translation>
-<translation id="2311075084924370935">Da bi vam pomogao s kalendarom, podsjetnicima, letovima i ostalim, Asistentu su potrebne postavke Aktivnost na webu i u aplikacijama, Informacije uređaja te Glasovna i audioaktivnost.</translation>
+<translation id="2315414688463285945">Pogreška tijekom konfiguracije Linux datoteka. Pokušajte ponovo.</translation>
 <translation id="2315821125498993513">Povezivanje s telefonom nije uspjelo. <ph name="LINK_BEGIN" />Saznajte više.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Ne, hvala</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% dovršeno</translation>
 <translation id="2318143611928805047">Veličina papira</translation>
 <translation id="2318817390901984578">Da biste upotrebljavali Android aplikacije, napunite i ažurirajte svoj <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Trenutačna anonimna sesija (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Upotreba sigurnosnog ključa kod <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Zaglavlja i podnožja</translation>
 <translation id="2325650632570794183">Ta vrsta datoteke nije podržana. Posjetite Chrome web-trgovinu da biste pronašli aplikaciju koja može otvoriti tu vrstu datoteke.</translation>
 <translation id="2326931316514688470">&amp;Ponovo učitaj aplikaciju</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Dodaj dijeljenje datoteka</translation>
 <translation id="2367972762794486313">Prikaz aplikacija</translation>
 <translation id="2369536625682139252">Izbrisat će se svi podaci koje je pohranila web-lokacija <ph name="SITE" /> osim kolačića.</translation>
-<translation id="237058345584060620">Uparite ključ s ovim uređajem da biste ga mogli upotrebljavati za prijavu na račun</translation>
 <translation id="2371076942591664043">Otvori nakon &amp;dovršetka</translation>
 <translation id="2377319039870049694">Prebaci na prikaz popisa</translation>
 <translation id="2377667304966270281">Pogreške tvrdog diska</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Telefon nije moguće pronaći. Provjerite je li na uređaju <ph name="DEVICE_TYPE" /> uključen Bluetooth. &lt;a&gt;Saznajte više&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Dodavanje &amp;mape...</translation>
 <translation id="249113932447298600">Žao nam je, uređaj <ph name="DEVICE_LABEL" /> trenutačno nije podržan.</translation>
-<translation id="2492040222276243256">Pritisnite i zadržite tipku na sigurnosnom ključu najmanje 5 sekundi</translation>
 <translation id="2493021387995458222">Odaberite opciju "jedna po jedna riječ"</translation>
 <translation id="249303669840926644">Nije bilo moguće dovršiti registraciju</translation>
 <translation id="2495777824269688114">Otkrijte više značajki ili saznajte odgovore. Odaberite "?" da biste pristupili pomoći.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Ukupno: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Dugo</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Platforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Na ovoj se kartici dijeli vaš zaslon.</translation>
 <translation id="2586657967955657006">Međuspremnik</translation>
 <translation id="2586672484245266891">Unesite kraći URL</translation>
 <translation id="2587922270115112871">Izradom nadziranog korisnika ne izrađuje se Google račun. Njegove postavke
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> upotrebljava <ph name="USAGE" /> MB prostora na disku.</translation>
 <translation id="2633212996805280240">Ukloniti uslugu "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101">Program <ph name="PRODUCT_NAME" /> nije uspio dovršiti instalaciju, ali nastavit će rad iz diskovne slike.</translation>
-<translation id="2633326789677284179">Pronađite naziv na poleđini ključa</translation>
 <translation id="2635276683026132559">Potpisivanje</translation>
 <translation id="2636625531157955190">Chrome ne može pristupiti slici.</translation>
 <translation id="2638087589890736295">Za pokretanje sinkronizacije potrebna je šifra</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Dodaj davatelja usluge <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Da biste imali svoje zaporke na svim svojim uređajima, prijavite se u Chrome.</translation>
 <translation id="2875698561019555027">(Chromeove stranice pogrešaka)</translation>
-<translation id="2876441201733326392">Upotreba USB sigurnosnog ključa</translation>
 <translation id="288042212351694283">Pristupite svojim Universal 2nd Factor uređajima</translation>
 <translation id="2881966438216424900">Posljednji pristup:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> će se odmah ponovo pokrenuti i vratiti na zadano</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Prijavi anonimno</translation>
 <translation id="2984337792991268709">Danas u <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Za tu je stranicu blokiran potpuni nadzor nad MIDI uređajima.</translation>
-<translation id="2988599644347283908">Napomena: podaci koje te postavke kontroliraju mogu se spremati i upotrebljavati na svim Googleovim uslugama na koje ste prijavljeni kako biste dobili prilagođena sučelja i korisne oglase. Svoje podatke možete pregledati i izbrisati i svoje postavke možete promijeniti na stranici account.google.com.</translation>
 <translation id="2989474696604907455">nije povezano</translation>
 <translation id="2989786307324390836">DER-binarno kodirano, jedan certifikat</translation>
 <translation id="2993517869960930405">Informacije o aplikaciji</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Uključi zvuk na karticama</translation>
 <translation id="3053013834507634016">Korištenje ključa certifikata</translation>
 <translation id="3057861065630527966">Izrada sigurnosnih kopija fotografija i videozapisa</translation>
-<translation id="3059313675706898490">Android poruke</translation>
 <translation id="3060379269883947824">Omogući Odabir za govor</translation>
 <translation id="3061707000357573562">Usluga zakrpe</translation>
 <translation id="3064410671692449875">Nema dovoljno podataka</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Nije moguće kopiranje crx datoteke u <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Upareno: "<ph name="DEVICE_NAME" />"</translation>
 <translation id="3101709781009526431">Datum i vrijeme</translation>
-<translation id="3104900172193317662">Dopustite upotrebu sigurnosnog ključa</translation>
 <translation id="310671807099593501">Web-lokacija upotrebljava Bluetooth</translation>
 <translation id="3115128645424181617">Telefon nije moguće pronaći. Provjerite je li vam pri ruci i je li uključen Bluetooth.</translation>
 <translation id="3115147772012638511">Čekanje predmemorije...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Nije dio certifikata&gt;</translation>
 <translation id="3254434849914415189">Odaberite zadanu aplikaciju za <ph name="FILE_TYPE" /> datoteke:</translation>
 <translation id="3254516606912442756">Automatsko je otkrivanje vremenske zone onemogućeno</translation>
-<translation id="3254772308201947812">Da, pristajem</translation>
 <translation id="3264544094376351444">Font Sans-serif</translation>
 <translation id="3264547943200567728">Postavljanje mreže za Chromebox nije uspjelo</translation>
 <translation id="3264582393905923483">Kontekst</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Poredaj po</translation>
 <translation id="3737274407993947948">Došlo je do pogreške prilikom instaliranja Linuxa...</translation>
 <translation id="3737536731758327622">Ovdje se prikazuju vaša preuzimanja</translation>
-<translation id="3738671331307774213">Potvrđivanjem identiteta bolje štitite svoje privatne podatke</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Želite li otvoriti aplikaciju <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> sada će se pojaviti na konzoli administratora</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sinkronizacija je pauzirana</translation>
 <translation id="3860381078714302691">Dobro došli u Hangouts Meet</translation>
+<translation id="3861241522664181545">Stranica je pauzirana.</translation>
 <translation id="3862134173397075045">Dobro došli u značajku Cast u Chromeu!</translation>
 <translation id="3862788408946266506">Aplikaciju s atributom manifesta "kiosk_only" potrebno je instalirati u načinu kioska OS-a Chrome</translation>
 <translation id="3865414814144988605">Razlučivost</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Da biste uključili tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizaciju<ph name="END_LINK" /> radi uklanjanja vaše šifre za sinkronizaciju</translation>
 <translation id="3878840326289104869">Izrada nadziranog korisnika</translation>
 <translation id="3879748587602334249">Upravitelj preuzimanja</translation>
-<translation id="3880709822663530586">Vaš sigurnosni ključ funkcionira samo kada je na vašem uređaju uključen Bluetooth</translation>
 <translation id="3888550877729210209">Izrada bilježaka pomoću aplikacije <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Dodaj OpenVPN/L2TP...</translation>
 <translation id="3893536212201235195">čitati i mijenjati vaše postavke pristupačnosti</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Sigurni se modul priprema, pričekajte (to može potrajati nekoliko minuta)...</translation>
 <translation id="4099060993766194518">Želite li vratiti zadanu tražilicu?</translation>
 <translation id="4100733287846229632">Količina prostora na uređaju kritično je mala</translation>
+<translation id="4103091233824664032">Unesite zaporku da biste konfigurirali zaključavanje zaslona i prijavljivanje</translation>
 <translation id="4104163789986725820">I&amp;zvoz...</translation>
 <translation id="4105563239298244027">Dobijte 1 TB besplatne pohrane na Google disku</translation>
 <translation id="4107048419833779140">Prepoznaj i izbaci uređaje za pohranu</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Noćno svjetlo automatski će se isključiti nakon izlaska sunca</translation>
 <translation id="4138267921960073861">Prikaži korisnička imena i fotografije na zaslonu za prijavu</translation>
 <translation id="4144218403971135344">Gledajte videozapise u boljoj kvaliteti i štedite bateriju. Videozapisi će se reproducirati samo na zaslonu koji podržava Cast.</translation>
-<translation id="414599683948988413">Upotreba sigurnosnog ključa s USB-om</translation>
 <translation id="4146026355784316281">Uvijek otvori u pregledniku sustava</translation>
 <translation id="4146785383423576110">Vrati na zadano i očisti</translation>
 <translation id="4147897805161313378">Google fotografije</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Onemogući</translation>
 <translation id="4400367121200150367">Ovdje će se pojaviti web-lokacije koje nikad ne spremaju zaporke</translation>
 <translation id="4400632832271803360">Držite tipku Pokretač da biste izmjenjivali ponašanje tipki u najvišem retku</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">P&amp;omoć</translation>
 <translation id="4409697491990005945">Margine</translation>
 <translation id="4411578466613447185">Potpisnik koda</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome može pronaći i ukloniti štetni softver na vašem računalu</translation>
 <translation id="4481530544597605423">Neupareni uređaji</translation>
 <translation id="4482194545587547824">Google može upotrebljavati vašu povijest pregledavanja za prilagodbu Pretraživanja i drugih Googleovih usluga.</translation>
+<translation id="4493287891836751813">Upoznajte svojeg Google asistenta</translation>
 <translation id="4495419450179050807">Ne prikazuj na ovoj stranici</translation>
 <translation id="4499718683476608392">Omogućuje automatsko popunjavanje obrazaca podacima o kreditnoj kartici jednim klikom</translation>
 <translation id="4500114933761911433">Srušio se dodatak <ph name="PLUGIN_NAME" /></translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Isključi zvuk kartice</translation>
 <translation id="4742746985488890273">Prikvači na policu</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Saznajte kako ažurirati aplikacije<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Poruke</translation>
 <translation id="4746971725921104503">Čini se da već upravljate korisnikom s tim imenom. Želite li <ph name="LINK_START" />uvesti korisnika <ph name="USER_DISPLAY_NAME" /> na ovaj uređaj<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Zahtijeva proširenje iz Chrome web-trgovine</translation>
 <translation id="4750394297954878236">Prijedlozi</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Profiliranje omogućeno</translation>
 <translation id="4823484602432206655">čitati i mijenjati korisničke postavke i postavke uređaja</translation>
 <translation id="4823651846660089135">Uređaj je samo za čitanje</translation>
+<translation id="4823955295535347797">Pristupite svojem Asistentu svaki put kad izgovorite "Ok Google", a zaslon je uključen.</translation>
 <translation id="4828937774870308359">Australsko (obrnuto)</translation>
 <translation id="4829768588131278040">Postavi PIN</translation>
 <translation id="4830502475412647084">Instaliranje ažuriranja OS-a</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Pomognite našim inženjerima da istraže i isprave rušenje. Navedite točne korake ako možete. Svaka je pojedinost važna!</translation>
 <translation id="4876895919560854374">zaključati i otključati zaslon</translation>
 <translation id="4877017884043316611">Upari s Chromeboxom</translation>
+<translation id="4879491255372875719">Automatski (zadano)</translation>
 <translation id="4880214202172289027">Klizač za glasnoću</translation>
 <translation id="4880328057631981605">Naziv pristupne točke</translation>
 <translation id="4880520557730313061">Automatska obrada</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">gore</translation>
 <translation id="5100114659116077956">Kako biste mogli upotrebljavati najnovije značajke, Chromebox treba ažurirati.</translation>
 <translation id="5101042277149003567">Otvori sve oznake</translation>
-<translation id="5104546332954397226">Upotreba telefona kao sigurnosnog ključa</translation>
 <translation id="5105855035535475848">Prikvači kartice</translation>
 <translation id="5108967062857032718">Postavke – uklanjanje Android aplikacija</translation>
 <translation id="5109044022078737958">Blanka</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">P&amp;onovo otvori zatvorenu karticu</translation>
 <translation id="52912272896845572">Datoteka osobnog ključa nije važeća.</translation>
 <translation id="529175790091471945">Formatiraj ovaj uređaj</translation>
-<translation id="5292195676005197571">Na većini ključeva jednostavno pritisnite tipku</translation>
 <translation id="5293170712604732402">Vraćanje postavki na njihove izvorne zadane vrijednosti</translation>
 <translation id="5297082477358294722">Zaporka je spremljena. Spremljene zaporke možete pregledati i upravljati njima ovdje: <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="5298219193514155779">Temu je stvorio autor</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Prihvaćam</translation>
 <translation id="532943162177641444">Dodirnite obavijest na telefonu <ph name="PHONE_NAME" /> da biste postavili mobilnu žarišnu točku koju može upotrebljavati ovaj uređaj.</translation>
 <translation id="5329858601952122676">&amp;Obriši</translation>
+<translation id="5329945517224105597">Asistent vam može pružiti relevantnije prijedloge i konkretne radnje povezane sa sadržajem zaslona. To možete promijeniti u postavkama Asistenta</translation>
 <translation id="5330145655348521461">Ove su datoteke otvorene na drugoj radnoj površini. Prebacite se na korisnika <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) da biste ih vidjeli.</translation>
 <translation id="5330512191124428349">Dohvati informacije</translation>
 <translation id="5331069282670671859">Nemate certifikate u toj kategoriji</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Dopusti web-lokacijama reprodukciju zvuka</translation>
 <translation id="5390284375844109566">Indeksirana baza podataka</translation>
 <translation id="5390743329570580756">Prima</translation>
-<translation id="5392327114396848796">Upotreba ugrađenog sigurnosnog ključa</translation>
 <translation id="5397794290049113714">Vi</translation>
 <translation id="5398572795982417028">Referenca na stranicu izvan je granica, a granica je <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Oglasi su blokirani</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Zatvorite sve datoteke u arhivi ili na virtualnom disku i pokušajte ponovo.</translation>
 <translation id="5687326903064479980">Vremenska zona</translation>
+<translation id="568824803367507355">Otkrivanje za "Ok Google"</translation>
 <translation id="5689516760719285838">Lokacija</translation>
 <translation id="56907980372820799">Povežite podatke</translation>
 <translation id="5691511426247308406">Obitelj</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kamera ili mikrofon snimaju</translation>
 <translation id="5835754902560991078">izuzetno kratka (0,6 s)</translation>
 <translation id="5838456317242088717">Trenutačna anonimna sesija</translation>
-<translation id="5842053879378944309">Upotreba USB sigurnosnog ključa s aplikacijom <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Omogućivanje Bluetootha</translation>
 <translation id="5843250171025351504">Vaš uređaj više nije u skladu s minimalnom verzijom klijenta koju je naveo vaš administrator. Ažurirajte ga da biste se mogli prijaviti.</translation>
 <translation id="5846929185714966548">Kartica 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Više nije podržan.</translation>
 <translation id="6317369057005134371">Čeka se prozor aplikacije...</translation>
 <translation id="6318407754858604988">Preuzimanje je započelo</translation>
-<translation id="6322653941595359182">Šaljite i primajte tekstne poruke na Chromebooku</translation>
 <translation id="6324916366299863871">Uređivanje prečaca</translation>
 <translation id="6325191661371220117">Onemogući automatsko pokretanje</translation>
 <translation id="6326175484149238433">Ukloni iz programa Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Šalji <ph name="BEGIN_LINK1" />informacije o sustavu<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />mjerne podatke<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Opcije sinkronizacije i prilagodbe</translation>
 <translation id="6397592254427394018">Otvaranje svih oznaka u anonimnom prozoru</translation>
+<translation id="639777613761517128">Da biste otvarali datoteke pomoću aplikacije $1, najprije ih kopirajte u mapu Linux datoteka.</translation>
 <translation id="6398715114293939307">Ukloni Trgovinu Google Play</translation>
 <translation id="6398765197997659313">Izađi iz cijelog zaslona</translation>
 <translation id="6399774419735315745">Špijunka</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">To ime ne može se upotrijebiti kao datoteka naziva mape</translation>
 <translation id="642469772702851743">Taj uređaj (serijski broj: <ph name="SERIAL_NUMBER" />) zaključao je vlasnik.</translation>
 <translation id="6426200009596957090">Otvori postavke ChromeVoxa</translation>
-<translation id="6427415464407526111">Odaberite svoj sigurnosni ključ</translation>
 <translation id="6429384232893414837">Pogreška pri ažuriranju</translation>
 <translation id="6430814529589430811">Base64-šifriran ASCII, jedan certifikat</translation>
 <translation id="6431217872648827691">Svi su podaci kriptirani vašom zaporkom za Google od
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Način za razvojne programere</translation>
 <translation id="6655458902729017087">Sakrij račune</translation>
 <translation id="6657585470893396449">Zaporka</translation>
-<translation id="6658023813581644008">Da biste postavili Smart Lock za prijavu, unesite zaporku</translation>
 <translation id="6659213950629089752">Stranicu je zumiralo proširenje "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Kartica</translation>
 <translation id="6664237456442406323">Nažalost, vaše je računalo konfigurirano pogrešno oblikovanim ID-om hardvera. To sprječava ažuriranje OS-a Chrome najnovijim sigurnosnim popravcima pa bi vaše računalo <ph name="BEGIN_BOLD" />moglo biti ranjivo na zlonamjerne napade<ph name="END_BOLD" />.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Pregled informacija o sustavu</translation>
 <translation id="6886871292305414135">Otvori vezu u novoj &amp;kartici</translation>
 <translation id="6892812721183419409">Otvori vezu kao <ph name="USER" /></translation>
-<translation id="6896398788631624004">Priključite sigurnosni ključ i aktivirajte ga</translation>
 <translation id="6896758677409633944">Kopiraj</translation>
 <translation id="6898440773573063262">Aplikacije kioska sada je moguće konfigurirati za automatsko pokretanje na ovom uređaju.</translation>
 <translation id="6898699227549475383">Organizacija (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Korisnik:</translation>
 <translation id="6916590542764765824">Upravljanje proširenjima</translation>
 <translation id="6920989436227028121">Otvori kao uobičajenu karticu</translation>
+<translation id="6921709132208495314">Prestanite upotrebljavati podatke na ovoj stranici</translation>
 <translation id="6922128026973287222">Štedite podatke i pregledavajte brže uz Google uštedu podataka. Kliknite za više informacija.</translation>
 <translation id="6923132443355966645">Pomicanje/klik</translation>
 <translation id="6930242544192836755">Trajanje</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">U redu</translation>
 <translation id="6965648386495488594">Priključak</translation>
 <translation id="6965978654500191972">Uređaj</translation>
+<translation id="6968288415730398122">Unesite zaporku da biste konfigurirali zaključavanje zaslona</translation>
 <translation id="6970480684834282392">Vrsta pokretanja</translation>
 <translation id="6970856801391541997">Ispis određenih stranica</translation>
 <translation id="6972180789171089114">Audiozapisi/videozapisi</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Tražilice</translation>
 <translation id="6978611942794658017">Ova je datoteka predviđena za računalo s softverom Windows. Nije kompatibilna s vašim uređajem na kojem se izvodi Chrome OS. Potražite odgovarajuću zamjensku aplikaciju u Chromeovoj web-trgovini.</translation>
 <translation id="6979158407327259162">Google disk</translation>
+<translation id="6979440798594660689">Bez zvuka (zadano)</translation>
 <translation id="6979737339423435258">Cijelo vrijeme</translation>
 <translation id="6980462514016882061">Google može upotrebljavati vašu povijest pregledavanja za prilagodbu Pretraživanja, oglasa i drugih Googleovih usluga</translation>
 <translation id="6981982820502123353">Pristupačnost</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Ovo su općenite informacije o uređaju i načinu na koji ga upotrebljavate (kao što su razina baterije, upotreba aplikacija i mrežno povezivanje). Ti će se podaci upotrebljavati za unapređivanje Googleovih proizvoda i usluga za sve korisnike. Neke skupne informacije pomoći će partnerima, na primjer razvojnim programerima Androida, da poboljšaju i svoje aplikacije i proizvode.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Isključivanje ove značajke ne utječe na mogućnost uređaja da šalje informacije potrebne za ključne usluge kao što su ažuriranja sustava i sigurnost.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Tom značajkom možete upravljati tako da otvorite Postavke &gt; Google. Na izborniku odaberite opciju Upotreba i dijagnostika.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Pronašli smo <ph name="NUMBER_OF_APPS" /> aplik. s vašeg računa koje se mogu upotrebljavati na ovom uređaju.</translation>
 <translation id="7199158086730159431">P&amp;omoć</translation>
 <translation id="7200083590239651963">Odabir konfiguracije</translation>
 <translation id="720110658997053098">Trajno zadrži uređaj u načinu kioska</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Zaključavanje zaslona i prijava</translation>
 <translation id="7229570126336867161">Potreban je EVDO</translation>
 <translation id="7230787553283372882">Prilagodba veličine teksta</translation>
-<translation id="7231589788477569369">Iskoristite sve prednosti Asistenta uz ove postavke</translation>
 <translation id="7232750842195536390">Preimenovanje nije uspjelo</translation>
 <translation id="7234406375359457793">Pogreška pri učitavanju dijeljenja. Navedeno dijeljenje nije podržano.</translation>
 <translation id="7238585580608191973">SHA-256 otisak prsta</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Izbriši i odjavi se</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (najbolje)</translation>
 <translation id="7246339268451149667">Želite li omogućiti otključavanje otiskom prsta?</translation>
-<translation id="7246489301073081944">Držite |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| + |<ph name="ACCELERATOR3" />| za zatvaranje</translation>
 <translation id="7246947237293279874">FTP proxy</translation>
 <translation id="725109152065019550">Nažalost, vaš je administrator onemogućio vanjsku pohranu na vašem računu.</translation>
 <translation id="7253521419891527137">&amp;Saznajte više</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Provjera prikladnosti</translation>
 <translation id="749028671485790643">Osoba <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC adresa</translation>
-<translation id="7490950320178383728">Upotreba sigurnosnog ključa s Bluetoothom</translation>
 <translation id="7491962110804786152">kart</translation>
 <translation id="7493386493263658176">Proširenje <ph name="EXTENSION_NAME" /> možda prikuplja cjelokupni tekst koji unesete, uključujući osobne podatke kao što su zaporke i brojevi kreditnih kartica. Želite li koristiti to proširenje?</translation>
 <translation id="7494065396242762445">Otvorite postavke Windowsa</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">Te datoteke na Disku još nisu podijeljene</translation>
 <translation id="7851457902707056880">Prijava je ograničena na vlasnički račun. Ponovo pokrenite uređaj i prijavite se vlasničkim računom. Uređaj će se automatski ponovo pokrenuti za 30 sekundi.</translation>
 <translation id="7851716364080026749">Uvijek blokiraj pristup kameri i mikrofonu</translation>
-<translation id="7851816139220202929">Upotreba sigurnosnog ključa s NFC-om</translation>
 <translation id="7853747251428735">Više a&amp;lata</translation>
 <translation id="7856006446339184955">Slanje podataka o sustavu. Trenutačno uređaj automatski šalje dijagnostičke podatke i podatke o upotrebi uređaja i aplikacija Googleu. Tu je <ph name="BEGIN_LINK1" />postavku<ph name="END_LINK1" /> nametnuo vlasnik. Ako ste uključili dodatnu Aktivnost na webu i u aplikacijama, ti će se podaci pohranjivati na vašem računu, pa možete upravljati njima na stranici Moja aktivnost. <ph name="BEGIN_LINK2" />Saznajte više<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Dodaj iznimku</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">PPP autentifikacija nije uspjela zbog netočnog korisničkog imena ili zaporke</translation>
 <translation id="7974566588408714340">Pokušaj ponovo pomoću proširenja <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Rubno područje zaslona</translation>
+<translation id="79766959863778284">XR Isolated Device Service</translation>
 <translation id="7977551819349545646">Ažuriranje Chromeboxa...</translation>
 <translation id="7978412674231730200">Osobni ključ</translation>
 <translation id="7978450511781612192">Time ćete se odjaviti s Google računa. Vaše se oznake, povijest, zaporke i druge postavke više neće sinkronizirati.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Dodajte pisač</translation>
 <translation id="8032244173881942855">Emitiranje kartice nije moguće.</translation>
 <translation id="8033827949643255796">odabrano</translation>
-<translation id="8033958968890501070">Vrijeme je isteklo</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Otvori sve u &amp;anonimnom prozoru}=1{Otvori u &amp;anonimnom prozoru}one{Otvori sve (#) u &amp;anonimnom prozoru}few{Otvori sve (#) u &amp;anonimnom prozoru}other{Otvori sve (#) u &amp;anonimnom prozoru}}</translation>
 <translation id="8037117027592400564">čitati sve tekstove izgovorene sintetiziranim govorom</translation>
 <translation id="8037357227543935929">Pitaj (zadano)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Cijeli zaslon</translation>
 <translation id="8322814362483282060">Stranici je zabranjen pristup vašem mikrofonu.</translation>
 <translation id="8326478304147373412">PKCS br. 7, lanac certifikata</translation>
+<translation id="8327039559959785305">Pogreška tijekom učitavanja Linux datoteka. Pokušajte ponovo.</translation>
 <translation id="8329978297633540474">Običan tekst</translation>
 <translation id="8335587457941836791">Otkvači s police</translation>
 <translation id="8336153091935557858">Jučer u <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4843,7 +4835,6 @@
 <translation id="8425213833346101688">Promijeni</translation>
 <translation id="8425492902634685834">Pričvrsti na alatnu traku</translation>
 <translation id="8425755597197517046">Za&amp;lijepi i pretraži</translation>
-<translation id="8426117172745886547">Upozori prije zatvaranja (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Omogućivanje</translation>
 <translation id="8427292751741042100">ugrađeno na bilo kojem hostu</translation>
 <translation id="8428213095426709021">Postavke</translation>
@@ -4931,7 +4922,6 @@
 <translation id="8551388862522347954">Licence</translation>
 <translation id="8553342806078037065">Upravljaj drugim osobama</translation>
 <translation id="8554899698005018844">Nema jezika</translation>
-<translation id="8557347704037207368">Šaljite obavijesti s Android web-poruka</translation>
 <translation id="855773602626431402">Na toj je stranici spriječeno pokretanje dodatka izvan testnog okruženja.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Dekodiranje slika</translation>
@@ -5044,6 +5034,7 @@
 <translation id="8714154114375107944">Kraj podrške</translation>
 <translation id="8714838604780058252">Pozadinska grafika</translation>
 <translation id="8715480913140015283">Pozadinska kartica upotrebljava vaš fotoaparat</translation>
+<translation id="8716931980467311658">Želite li s ovog <ph name="DEVICE_TYPE" /> uređaja izbrisati sve Linuxove aplikacije i podatke u svojoj mapi Linux datoteke?</translation>
 <translation id="8719653885894320876">Preuzimanje dodatka <ph name="PLUGIN_NAME" /> nije uspjelo</translation>
 <translation id="8723829621484579639">Anonimni podokviri za: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Prikaži u mapi</translation>
@@ -5207,7 +5198,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – kartica se srušila</translation>
 <translation id="8983677657449185470">Pomozite poboljšati Sigurno pregledavanje</translation>
 <translation id="8984654317541110628">URL za dijeljenje datoteka</translation>
-<translation id="8984872292925913496">Pronađite šesteroznamenkasti PIN sa stražnje strane ključa</translation>
 <translation id="8986362086234534611">Zaboravi</translation>
 <translation id="8986494364107987395">Automatski šalji Googleu statistiku o upotrebi i izvješća o padu programa</translation>
 <translation id="8987927404178983737">Mjesec</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index c8f9d06..a4a5f6d3 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Az elem kiemelése a billentyűzetfókusszal, ha módosul</translation>
 <translation id="1173894706177603556">Átnevezés</translation>
 <translation id="1174073918202301297">Parancsikon hozzáadva</translation>
-<translation id="1174808551768282258">A Chromebook feloldása telefonnal. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
 <translation id="1175364870820465910">&amp;Nyomtatás...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> másolása...</translation>
 <translation id="1177138678118607465">A Google felhasználhatja a keresési előzményeket a Keresés és más Google-szolgáltatások személyre szabására. Ezt bármikor módosíthatja a myaccount.google.com/activitycontrols/search címen.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Szünet</translation>
 <translation id="1181037720776840403">Eltávolítás</translation>
 <translation id="1183237619868651138">A(z) <ph name="EXTERNAL_CRX_FILE" /> nem telepíthető a helyi gyorsítótárban.</translation>
-<translation id="1183378459020939734">Készen áll a biztonsági hardverkulcs párosítására?</translation>
 <translation id="1185924365081634987">A hiba javításához kipróbálhatja a <ph name="GUEST_SIGNIN_LINK_START" />vendégként történő böngészést is<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">Kártékony szoftver eltávolítása</translation>
 <translation id="1187722533808055681">Tétlen aktiválások</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Nem található Bluetooth-eszköz</translation>
 <translation id="1306606229401759371">Beállítások módosítása</translation>
 <translation id="1307559529304613120">Hoppá! A rendszer nem tudta tárolni az eszköz hosszú távú API hozzáférési tokenjét.</translation>
+<translation id="1307931752636661898">A Linux-fájlok megtekintése nem sikerült</translation>
 <translation id="1313405956111467313">Automatikus proxykonfiguráció</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">A könyvjelzők, előzmények és más beállítások szinkronizálódnak Google-fiókjával</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Az egér és az érintőpad beállításainak megnyitása</translation>
 <translation id="1531004739673299060">Alkalmazásablak</translation>
 <translation id="15373452373711364">Nagy egérmutató</translation>
+<translation id="1538729222189715449">Linux-fájlok megnyitása…</translation>
 <translation id="1540605929960647700">Demó mód engedélyezése</translation>
 <translation id="1543284117603151572">Az Edge böngészőből importálva</translation>
 <translation id="1545177026077493356">Automatikus kioszk mód</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Érintő HUD mód váltása</translation>
 <translation id="1784849162047402014">Az eszközön kevés a lemezterület</translation>
 <translation id="1786636458339910689">Csapatmeghajtók</translation>
-<translation id="1792161662640298233">Biztonsági hardverkulcs ellenőrzése</translation>
 <translation id="1792619191750875668">Kiterjesztett kijelző</translation>
 <translation id="1794791083288629568">Küldjön visszajelzést, hogy segítsen a probléma megoldásában.</translation>
 <translation id="1795214765651529549">Klasszikus téma használata</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Üdvözöljük!</translation>
 <translation id="1914326953223720820">Kicsomagolási szolgáltatás</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Fiókbeállításaitól függően Segéd-élménye olyan funkciókra korlátozódhat, mint a webes találatok, viccek és helyi információk.</translation>
 <translation id="1916502483199172559">Alapértelmezett piros avatar</translation>
 <translation id="1918141783557917887">&amp;Kisebb</translation>
 <translation id="1919345977826869612">Hirdetések</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">A(z) <ph name="PEPPER_PLUGIN_DOMAIN" /> webhelyen található <ph name="PEPPER_PLUGIN_NAME" /> bővítmény hozzá szeretne férni a számítógéphez</translation>
 <translation id="2178614541317717477">A tanúsítványkibocsátó veszélyeztetve</translation>
 <translation id="218070003709087997">Számmal jelezze, hogy hány példányt kell nyomtatni (1–999).</translation>
+<translation id="2184515124301515068">A Chrome dönthet arról, hogy a webhelyek lejátszhatnak-e hangot (ajánlott)</translation>
 <translation id="2187895286714876935">Hiba a szervertanúsítvány importálásánál</translation>
 <translation id="2187906491731510095">Bővítmények frissítve</translation>
 <translation id="2188881192257509750">A(z) <ph name="APPLICATION" /> megnyitása</translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Adatainak olvasása és módosítása bizonyos webhelyeken</translation>
 <translation id="2242687258748107519">Fájlinformáció</translation>
 <translation id="2243194103992005307">Az alkalmazások eltávolításához lépjen a Beállítások &gt; Alkalmazások menüpontra, vagy az Alkalmazáskezelőbe. Ezt követően koppintson arra az alkalmazásra, amelyet el szeretne távolítani (előfordulhat, hogy úgy találja meg az alkalmazást, hogy gyorsan jobbra vagy balra csúsztatja az ujját), majd koppintson az Eltávolítás vagy a Letiltás gombra.</translation>
+<translation id="224940702122312781">Ez az oldal nagy adatforgalmat fog generálni.</translation>
 <translation id="2249605167705922988">pl. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Megnyitás a rendszer megtekintőjével</translation>
 <translation id="225163402930830576">Hálózatok frissítése</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Hálózat beállítása</translation>
 <translation id="230927227160767054">Ez az oldal szolgáltatáskezelőt akar telepíteni.</translation>
 <translation id="2309620859903500144">Ennél a webhelynél le van tiltva a hozzáférés a felhasználó mozgás- vagy fényérzékelőihez.</translation>
-<translation id="2311075084924370935">Segédjének szüksége van az Internetes és alkalmazástevékenységek, az Eszközadatok és a Hangtevékenységek engedélyezésére, hogy segíthessen a naptárral, az emlékeztetőkkel, a repülőjáratokkal és egyebekkel kapcsolatban.</translation>
+<translation id="2315414688463285945">Hiba történt a Linux-fájlok konfigurálása során. Próbálja újra.</translation>
 <translation id="2315821125498993513">Nem sikerült kapcsolódni a telefonhoz. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
 <translation id="2316129865977710310">Köszönöm, nem</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% kész</translation>
 <translation id="2318143611928805047">Papírméret</translation>
 <translation id="2318817390901984578">Android-alkalmazások használatához előbb töltse fel és frissítse a(z) <ph name="DEVICE_TYPE" /> eszközt.</translation>
 <translation id="2318923050469484167">Jelenlegi inkognitó munkamenet (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Biztonsági hardverkulcs használata a következő alkalmazással: <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Fejlécek és láblécek</translation>
 <translation id="2325650632570794183">Ez a fájltípus nem támogatott. Kérjük, látogasson el a Chrome Internetes áruházba olyan alkalmazás kereséséhez, amely meg tudja nyitni ezt a fájltípust.</translation>
 <translation id="2326931316514688470">Alkalmazás új&amp;ratöltése</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Fájlmegosztás hozzáadása</translation>
 <translation id="2367972762794486313">Alkalmazások megjelenítése</translation>
 <translation id="2369536625682139252">A cookie-kat kivéve a(z) <ph name="SITE" /> által tárolt minden adat törlődik.</translation>
-<translation id="237058345584060620">Párosítsa a hardverkulcsot az eszközhöz, így bejelentkezhet fiókjába</translation>
 <translation id="2371076942591664043">Megnyitás, amikor &amp;kész</translation>
 <translation id="2377319039870049694">Váltás listanézetre</translation>
 <translation id="2377667304966270281">Súlyos laphiba</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">A telefon nem található. Győződjön meg arról, hogy a <ph name="DEVICE_TYPE" /> eszközön a Bluetooth be van kapcsolva. &lt;a&gt;További információ&lt;/a&gt;.</translation>
 <translation id="2489918096470125693">Mappa &amp;hozzáadása...</translation>
 <translation id="249113932447298600">Elnézést kérünk, de a(z) <ph name="DEVICE_LABEL" /> eszköz jelenleg nem támogatott.</translation>
-<translation id="2492040222276243256">Tartsa nyomva a biztonsági hardverkulcson található gombot legalább 5 másodpercig</translation>
 <translation id="2493021387995458222">„Egyszerre egy szó” kiválasztása</translation>
 <translation id="249303669840926644">Nem sikerült befejezni a regisztrációt</translation>
 <translation id="2495777824269688114">További funkciókat fedezhet fel, illetve válaszokat kaphat. Ha segítségre van szüksége, válassza a „?” gombot.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Összesen: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Hosszú</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (<ph name="PLATFORM_VERSION" /> platform) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Ez a lap megosztja a képernyőt.</translation>
 <translation id="2586657967955657006">Vágólap</translation>
 <translation id="2586672484245266891">Rövidebb URL-t adjon meg</translation>
 <translation id="2587922270115112871">Felügyelt felhasználó létrehozásával nem hoz létre Google-fiókot, ezenkívül
@@ -1092,7 +1090,6 @@
 <translation id="2633199387167390344">A(z) <ph name="NAME" /> <ph name="USAGE" /> MB lemezterületet használ.</translation>
 <translation id="2633212996805280240">Eltávolítja a következőt: "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101">A(z) <ph name="PRODUCT_NAME" /> nem tudta befejezni a telepítést, de tovább fut a lemezképéről.</translation>
-<translation id="2633326789677284179">Keresse meg a hardverkulcs hátuljára nyomtatott nevet</translation>
 <translation id="2635276683026132559">Aláírás</translation>
 <translation id="2636625531157955190">A Chrome nem tudja elérni a képet.</translation>
 <translation id="2638087589890736295">A szinkronizálás megkezdéséhez összetett jelszó megadása szükséges</translation>
@@ -1260,7 +1257,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> hozzáadása...</translation>
 <translation id="2874343608108773609">Ha az összes eszközén szeretné elérni könyvjelzőit, jelentkezzen be a Chrome-ba.</translation>
 <translation id="2875698561019555027">(Chrome-hibaoldalak)</translation>
-<translation id="2876441201733326392">USB-s biztonsági hardverkulcs használata</translation>
 <translation id="288042212351694283">U2F (Universal 2nd Factor) eszközökhöz való hozzáférés</translation>
 <translation id="2881966438216424900">Utolsó hozzáférés ideje:</translation>
 <translation id="2882943222317434580">A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> rövidesen újraindul, és alapállapotba áll</translation>
@@ -1328,7 +1324,6 @@
 <translation id="2982970937345031">Jelentés névtelenül</translation>
 <translation id="2984337792991268709">Ma <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Ennél az oldalnál le van tiltva a MIDI-eszközökhöz való teljes hozzáférés.</translation>
-<translation id="2988599644347283908">Megjegyzés: Az ezekben a beállításokban kezelt adatokat minden olyan Google-szolgáltatás elmentheti és felhasználhatja, amelybe Ön bejelentkezett, így személyre szabott felhasználói élményt biztosíthatnak, és hasznos hirdetéseket jeleníthetnek meg. Az account.google.com oldalon tekintheti meg és törölheti adatait, illetve módosíthatja a beállításokat.</translation>
 <translation id="2989474696604907455">nincs csatlakoztatva</translation>
 <translation id="2989786307324390836">DER kódolású bináris, egyedüli tanúsítvány</translation>
 <translation id="2993517869960930405">Alkalmazásadatok</translation>
@@ -1381,7 +1376,6 @@
 <translation id="304826556400666995">Lapok némításának feloldása</translation>
 <translation id="3053013834507634016">Tanúsítványkulcs felhasználása</translation>
 <translation id="3057861065630527966">Biztonsági másolat készítése a fotókról és videókról</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Felolvasás engedélyezése</translation>
 <translation id="3061707000357573562">Javítókészlet szolgáltatás</translation>
 <translation id="3064410671692449875">Nincs elegendő adat</translation>
@@ -1410,7 +1404,6 @@
 <translation id="3090819949319990166">A külső crx-fájl nem másolható a következő helyre: <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">„<ph name="DEVICE_NAME" />” párosítva</translation>
 <translation id="3101709781009526431">Dátum és idő</translation>
-<translation id="3104900172193317662">A biztonsági hardverkulcs használatának engedélyezése</translation>
 <translation id="310671807099593501">A webhely Bluetooth-t használ</translation>
 <translation id="3115128645424181617">A telefon nem található. Győződjön meg arról, hogy kéznél van, és hogy a Bluetooth be van kapcsolva.</translation>
 <translation id="3115147772012638511">Betöltés a gyorsítótárból folyamatban...</translation>
@@ -1494,7 +1487,6 @@
 <translation id="3251759466064201842">&lt;Nem része a tanúsítványnak&gt;</translation>
 <translation id="3254434849914415189">Válassza ki az alapértelmezett alkalmazást <ph name="FILE_TYPE" />-fájlokhoz:</translation>
 <translation id="3254516606912442756">Az időzóna automatikus észlelése ki van kapcsolva</translation>
-<translation id="3254772308201947812">Igen, elfogadom</translation>
 <translation id="3264544094376351444">Talp nélküli betűtípus</translation>
 <translation id="3264547943200567728">Nem sikerült beállítani a Chromebox hálózatát</translation>
 <translation id="3264582393905923483">Kontextus</translation>
@@ -1817,7 +1809,6 @@
 <translation id="3735740477244556633">Rendezés</translation>
 <translation id="3737274407993947948">Hiba történt a Linux telepítése során…</translation>
 <translation id="3737536731758327622">Itt jelennek meg a letöltései</translation>
-<translation id="3738671331307774213">Személyazonosságának igazolásával segít privát adatainak megvédésében</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Megnyitja: <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859">A(z) <ph name="DEVICE_NAME" /> mostantól megjelenik a Kezelői konzolban</translation>
@@ -1911,6 +1902,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: a szinkronizálás szünetel</translation>
 <translation id="3860381078714302691">Üdvözli a Hangouts Meet!</translation>
+<translation id="3861241522664181545">Az oldal szüneteltetve.</translation>
 <translation id="3862134173397075045">Üdvözli a Google Cast-élmény a Chrome-ban!</translation>
 <translation id="3862788408946266506">A „kiosk_only” jegyzékattribútummal rendelkező alkalmazást kioszk módban kell telepíteni a Chrome OS rendszeren</translation>
 <translation id="3865414814144988605">Felbontás</translation>
@@ -1925,7 +1917,6 @@
 <translation id="3873315167136380065">Ennek bekapcsolásához <ph name="BEGIN_LINK" />állítsa alaphelyzetbe a szinkronizálást<ph name="END_LINK" />, hogy eltávolíthassa az összetett szinkronizálási jelszót</translation>
 <translation id="3878840326289104869">Felügyelt felhasználó létrehozása</translation>
 <translation id="3879748587602334249">Letöltéskezelő</translation>
-<translation id="3880709822663530586">A Biztonsági hardverkulcs csak akkor működik, ha a Bluetooth be van kapcsolva az eszközön</translation>
 <translation id="3888550877729210209">Jegyzetek készítése a(z) <ph name="LOCK_SCREEN_APP_NAME" /> alkalmazással</translation>
 <translation id="3892414795099177503">OpenVPN/L2TP hozzáadása…</translation>
 <translation id="3893536212201235195">Hozzáférhetőségi beállításainak olvasása és módosítása</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">A biztonsági modul előkészítése folyamatban van (és néhány percig is eltarthat) – kérjük, várjon…</translation>
 <translation id="4099060993766194518">Visszaállítja az alapértelmezett keresőmotort?</translation>
 <translation id="4100733287846229632">Az eszköz nagyon kevés szabad tárhellyel rendelkezik</translation>
+<translation id="4103091233824664032">Adja meg jelszavát a képernyőzár és bejelentkezés beállításához</translation>
 <translation id="4104163789986725820">E&amp;xportálás...</translation>
 <translation id="4105563239298244027">1 TB ingyenes tárhelyet kaphat a Google Drive-val</translation>
 <translation id="4107048419833779140">Tárolóeszközök azonosítása és kiadása</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Az Éjszakai fény automatikusan kikapcsol napkeltekor</translation>
 <translation id="4138267921960073861">Felhasználónevek és képek megjelenítése a bejelentkezési oldalon</translation>
 <translation id="4144218403971135344">Jobb videóminőséget és hosszabb akkumulátor-üzemidőt biztosít. A videókat csak a Cast-kompatibilis képernyőn játssza le a rendszer.</translation>
-<translation id="414599683948988413">A biztonsági hardverkulcs használata USB-vel</translation>
 <translation id="4146026355784316281">Megnyitás mindig a rendszer megtekintőjével</translation>
 <translation id="4146785383423576110">Visszaállítás és megtisztítás</translation>
 <translation id="4147897805161313378">Google Fotók</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Kikapcsolás</translation>
 <translation id="4400367121200150367">Itt jelennek meg azok a webhelyek, amelyeknél letiltotta a jelszavak mentését</translation>
 <translation id="4400632832271803360">A legfelső billentyűsor viselkedésének módosításához tartsa lenyomva az Indítót</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">&amp;Súgó</translation>
 <translation id="4409697491990005945">Margók</translation>
 <translation id="4411578466613447185">Kód aláírója</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">A Chrome képes a számítógépen lévő kártékony szoftverek megkeresésére és eltávolítására</translation>
 <translation id="4481530544597605423">Párosítatlan eszközök</translation>
 <translation id="4482194545587547824">A Google felhasználhatja a böngészési előzményeket a Keresés és más Google-szolgáltatások személyre szabására.</translation>
+<translation id="4493287891836751813">Ismerje meg a Google Segédet</translation>
 <translation id="4495419450179050807">Ne jelenjen meg ezen az oldalon</translation>
 <translation id="4499718683476608392">Használja a hitelkártyaadatokra vonatkozó automatikus kitöltés funkciót, amellyel az űrlapokat egyetlen kattintással kitöltheti</translation>
 <translation id="4500114933761911433">A(z) <ph name="PLUGIN_NAME" /> összeomlott</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Lap némítása</translation>
 <translation id="4742746985488890273">Rögzítés a polcra</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />További információ az alkalmazások frissítéséről<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Üzenetek</translation>
 <translation id="4746971725921104503">Úgy tűnik, hogy már felügyel egy ilyen nevű felhasználót. <ph name="LINK_START" />Importálni kívánta <ph name="USER_DISPLAY_NAME" /> felhasználót erre az eszközre<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Bővítményre van szüksége a Chrome Internetes áruházból</translation>
 <translation id="4750394297954878236">Javaslatok</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Profilozás bekapcsolva</translation>
 <translation id="4823484602432206655">A felhasználó és az eszköz beállításainak olvasása és módosítása</translation>
 <translation id="4823651846660089135">Az eszköz csak olvasható</translation>
+<translation id="4823955295535347797">Bármikor hozzáférhet Segédjéhez. Mondja bekapcsolt képernyő mellett azt, hogy „Ok Google”.</translation>
 <translation id="4828937774870308359">Ausztrál</translation>
 <translation id="4829768588131278040">PIN-kód beállítása</translation>
 <translation id="4830502475412647084">Az operációs rendszer frissítésének telepítése folyamatban</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Segítse mérnökeinket az összeomlás kivizsgálásában és kijavításában. Ha lehet, adja meg a pontos lépéseket. Nem létezik túl apró részlet!</translation>
 <translation id="4876895919560854374">A képernyő feloldása és zárolása</translation>
 <translation id="4877017884043316611">Párosítás Chromebox eszközzel</translation>
+<translation id="4879491255372875719">Automatikus (alapértelmezett)</translation>
 <translation id="4880214202172289027">Hangerőcsúszka</translation>
 <translation id="4880328057631981605">Hozzáférési pont neve</translation>
 <translation id="4880520557730313061">Automatikus javítás</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">felfelé</translation>
 <translation id="5100114659116077956">Ahhoz, hogy a legújabb funkciókat tudjuk biztosítani Önnek, frissítenie kell Chromebox eszközét.</translation>
 <translation id="5101042277149003567">Az összes könyvjelző megnyitása</translation>
-<translation id="5104546332954397226">Telefon használata biztonsági hardverkulcsként</translation>
 <translation id="5105855035535475848">Lapok rögzítése</translation>
 <translation id="5108967062857032718">Beállítások – Android-alkalmazások eltávolítása</translation>
 <translation id="5109044022078737958">Sport</translation>
@@ -2799,7 +2794,6 @@
 <translation id="5288678174502918605">Bezárt lap m&amp;egnyitása</translation>
 <translation id="52912272896845572">A privátkulcs-fájl érvénytelen.</translation>
 <translation id="529175790091471945">Az eszköz formázása</translation>
-<translation id="5292195676005197571">A legtöbb kulcs használatához elég megnyomnia a gombot</translation>
 <translation id="5293170712604732402">Beállítások visszaállítása alapértelmezettre</translation>
 <translation id="5297082477358294722">Jelszó elmentve. A mentett jelszavakat itt láthatja és kezelheti: <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="5298219193514155779">Téma készítője:</translation>
@@ -2825,6 +2819,7 @@
 <translation id="532776649628038357">Elfogadom</translation>
 <translation id="532943162177641444">Koppintson a(z) <ph name="PHONE_NAME" /> eszközére érkező értesítésre az eszköz által használható mobil hotspot beállításához.</translation>
 <translation id="5329858601952122676">&amp;Törlés</translation>
+<translation id="5329945517224105597">A Segéd a képernyő tartalmának ismeretében relevánsabb javaslatokat és megfelelőbb műveleteket ajánlhat. Ezt a viselkedést a Segéd beállításainál módosíthatja.</translation>
 <translation id="5330145655348521461">Ezek a fájlok meg vannak nyitva egy másik asztalon. A megtekintésükhöz váltson át <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) profiljára.</translation>
 <translation id="5330512191124428349">Információk megtekintése</translation>
 <translation id="5331069282670671859">Nem rendelkezik tanúsítványokkal ebben a kategóriában</translation>
@@ -2869,7 +2864,6 @@
 <translation id="5390100381392048184">A webhelyek lejátszhatnak hangokat</translation>
 <translation id="5390284375844109566">Indexelt adatbázis</translation>
 <translation id="5390743329570580756">Küldés –</translation>
-<translation id="5392327114396848796">Beépített biztonsági hardverkulcs használata</translation>
 <translation id="5397794290049113714">Ön</translation>
 <translation id="5398572795982417028">Tartományon kívüli oldalra való hivatkozás; a maximális érték <ph name="MAXIMUM_PAGE" />.</translation>
 <translation id="5398772614898833570">Hirdetések letiltva</translation>
@@ -3078,6 +3072,7 @@
    <ph name="LINE_BREAKS" />
    Zárjon be minden fájlt az archívumban vagy a virtuális lemezen, majd próbálja újra.</translation>
 <translation id="5687326903064479980">Időzóna</translation>
+<translation id="568824803367507355">„Ok Google” felismerése</translation>
 <translation id="5689516760719285838">Tartózkodási hely</translation>
 <translation id="56907980372820799">Adatok összekapcsolása</translation>
 <translation id="5691511426247308406">Család</translation>
@@ -3175,7 +3170,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – A kamera vagy a mikrofon felvételt készít</translation>
 <translation id="5835754902560991078">rendkívül rövid (0,6 mp)</translation>
 <translation id="5838456317242088717">Jelenlegi inkognitó munkamenet</translation>
-<translation id="5842053879378944309">USB-s biztonsági hardverkulcs használata a következő alkalmazással: <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Bluetooth bekapcsolása</translation>
 <translation id="5843250171025351504">Eszköze már nem felel meg a kliens adminisztrátor által meghatározott legalacsonyabb verziójának. Frissítse a klienst a bejelentkezéshez.</translation>
 <translation id="5846929185714966548">4. lap</translation>
@@ -3493,7 +3487,6 @@
 <translation id="6317318380444133405">Már nem támogatott.</translation>
 <translation id="6317369057005134371">Várakozás az alkalmazás ablakára...</translation>
 <translation id="6318407754858604988">A letöltés megkezdődött</translation>
-<translation id="6322653941595359182">Szöveges üzenetet küldhet és fogadhat a Chromebookon.</translation>
 <translation id="6324916366299863871">Billentyűparancs szerkesztése</translation>
 <translation id="6325191661371220117">Automatikus indítás tiltása</translation>
 <translation id="6326175484149238433">Eltávolítás a Chrome-ból</translation>
@@ -3537,6 +3530,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />Rendszer-információk<ph name="END_LINK1" /> és <ph name="BEGIN_LINK2" />mutatószámok<ph name="END_LINK2" /> küldése</translation>
 <translation id="6397094776139756010">Szinkronizálási és személyre szabási beállítások</translation>
 <translation id="6397592254427394018">Az összes könyvjelző megnyitása &amp;inkognitóablakban</translation>
+<translation id="639777613761517128">Ha a(z) $1 segítségével szeretne fájlokat megnyitni, először másolja át őket a Linux-fájlok mappájába.</translation>
 <translation id="6398715114293939307">A Google Play Áruház eltávolítása</translation>
 <translation id="6398765197997659313">Kilépés a teljes képernyős módból</translation>
 <translation id="6399774419735315745">Kém</translation>
@@ -3562,7 +3556,6 @@
 <translation id="642282551015776456">Ezt a nevet nem lehet mappa fájlneveként használni</translation>
 <translation id="642469772702851743">Az eszközt (sorozatszám: <ph name="SERIAL_NUMBER" />) zárolta a tulajdonos.</translation>
 <translation id="6426200009596957090">ChromeVox-beállítások megnyitása</translation>
-<translation id="6427415464407526111">Válassza ki a biztonsági hardverkulcsot</translation>
 <translation id="6429384232893414837">Frissítési hiba</translation>
 <translation id="6430814529589430811">Base64 kódolású ASCII, egyedüli tanúsítvány</translation>
 <translation id="6431217872648827691">A rendszer titkosította az összes adatot az Ön Google-jelszavával ekkortól kezdve:
@@ -3720,7 +3713,6 @@
 <translation id="6655190889273724601">Fejlesztői mód</translation>
 <translation id="6655458902729017087">Fiókok elrejtése</translation>
 <translation id="6657585470893396449">Jelszó</translation>
-<translation id="6658023813581644008">A Smart Lock bejelentkezéshez való beállításához adja meg jelszavát</translation>
 <translation id="6659213950629089752">Az oldal nagyítását a(z) „<ph name="NAME" />” bővítmény hajtotta végre</translation>
 <translation id="6659594942844771486">Lap</translation>
 <translation id="6664237456442406323">Sajnos számítógépe nem megfelelő formátumú hardverazonosítóval van konfigurálva. Emiatt a Chrome OS nem tud frissülni a legújabb biztonsági javításokkal, és számítógépét <ph name="BEGIN_BOLD" />rosszindulatú támadások érhetik<ph name="END_BOLD" />.</translation>
@@ -3856,7 +3848,6 @@
 <translation id="6885771755599377173">Rendszer-információk előnézete</translation>
 <translation id="6886871292305414135">Link megnyitása új &amp;lapon</translation>
 <translation id="6892812721183419409">Link megnyitása mint <ph name="USER" /></translation>
-<translation id="6896398788631624004">Helyezze be, majd aktiválja biztonsági hardverkulcsát</translation>
 <translation id="6896758677409633944">Másolás</translation>
 <translation id="6898440773573063262">A kioszkalkalmazások most már beállíthatók úgy, hogy automatikusan elinduljanak ezen az eszközön.</translation>
 <translation id="6898699227549475383">Szervezet (O)</translation>
@@ -3875,6 +3866,7 @@
 <translation id="6915804003454593391">Felhasználó:</translation>
 <translation id="6916590542764765824">Bővítmények kezelése</translation>
 <translation id="6920989436227028121">Megnyitás normál lapként</translation>
+<translation id="6921709132208495314">Adathasználat leállítása ennél az oldalnál</translation>
 <translation id="6922128026973287222">A Google Adatforgalom-csökkentő segítségével adatforgalmat takaríthat meg, és gyorsabban böngészhet. További információért kattintson ide.</translation>
 <translation id="6923132443355966645">Görgetés / Kattintás</translation>
 <translation id="6930242544192836755">Időtartam</translation>
@@ -3897,6 +3889,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Készülék</translation>
+<translation id="6968288415730398122">Adja meg jelszavát a képernyőzár beállításához</translation>
 <translation id="6970480684834282392">Kezdési típus</translation>
 <translation id="6970856801391541997">Adott oldalak nyomtatása</translation>
 <translation id="6972180789171089114">Hanganyag/videó</translation>
@@ -3907,6 +3900,7 @@
 <translation id="6978121630131642226">Keresők</translation>
 <translation id="6978611942794658017">Ezt a fájlt Windows-szoftvereket használó számítógéphez készítették. Nem kompatibilis az Ön Chrome OS-t futtató eszközével. A Chrome Internetes áruházban kereshet megfelelő helyettesítő alkalmazást.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Némítás (alapértelmezett)</translation>
 <translation id="6979737339423435258">Mindenkori</translation>
 <translation id="6980462514016882061">A Google felhasználhatja az Ön böngészési előzményeit a Keresés, a hirdetések és más Google-szolgáltatások személyre szabására</translation>
 <translation id="6981982820502123353">Kisegítő lehetőségek</translation>
@@ -4055,6 +4049,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Általános információk az eszközéről és annak használati módjáról (pl. az akkumulátor töltöttségi szintje, alkalmazáshasználat, továbbá hálózati kapcsolódás). Az adatokat arra használjuk fel, hogy mindenki számára javítsuk a Google termékeit és szolgáltatásait. Egyes összesített adatok arra is szolgálnak, hogy segítsenek partnereinknek, például az Android-fejlesztőknek abban, hogy ők is jobbá tegyék alkalmazásaikat és termékeiket.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />A funkció kikapcsolása nincs hatással arra, hogy eszköze elküldheti-e az alapvető szolgáltatásokhoz (pl. a rendszerfrissítésekhez és a biztonsági funkciókhoz) szükséges információkat.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Ezt a funkciót a Beállítások &gt; Google pontnál irányíthatja. Válassza ki a Használat és diagnosztika lehetőséget a menüből.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433"><ph name="NUMBER_OF_APPS" /> olyan alkalmazást találtunk a fiókjában, amely használható ezen az eszközön.</translation>
 <translation id="7199158086730159431">Súgó</translation>
 <translation id="7200083590239651963">Konfiguráció kiválasztása</translation>
 <translation id="720110658997053098">Az eszköz állandó kioszk módban tartása</translation>
@@ -4075,7 +4070,6 @@
 <translation id="7228523857728654909">Képernyőzár és bejelentkezés</translation>
 <translation id="7229570126336867161">EVDO szükséges</translation>
 <translation id="7230787553283372882">Szövegméret személyre szabása</translation>
-<translation id="7231589788477569369">Ezekkel a beállításokkal hozhatja ki a legtöbbet Segédjéből</translation>
 <translation id="7232750842195536390">Az átnevezés nem sikerült</translation>
 <translation id="7234406375359457793">Hiba történt a megosztott tároló csatlakoztatása során. A megadott megosztott tárolót nem támogatja a rendszer.</translation>
 <translation id="7238585580608191973">SHA-256 ujjlenyomat</translation>
@@ -4085,7 +4079,6 @@
 <translation id="7243632151880336635">Törlés és kijelentkezés</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> képpont (a legjobb)</translation>
 <translation id="7246339268451149667">Engedélyezi az ujjlenyomatos feloldást?</translation>
-<translation id="7246489301073081944">A kilépéshez tartsa lenyomva a következő billentyűkombinációt: |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />|</translation>
 <translation id="7246947237293279874">FTP-proxy</translation>
 <translation id="725109152065019550">Sajnos a rendszergazda letiltotta a fióknál a külső tárolóeszközt.</translation>
 <translation id="7253521419891527137">&amp;További információ</translation>
@@ -4238,7 +4231,6 @@
 <translation id="7489605380874780575">Jogosultság ellenőrzése</translation>
 <translation id="749028671485790643">Személy: <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC-cím</translation>
-<translation id="7490950320178383728">A biztonsági hardverkulcs használata Bluetooth-szal</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">A(z) <ph name="EXTENSION_NAME" /> bővítmény begyűjtheti az összes Ön által beírt szöveget, így például a személyes adatokat (jelszavakat, hitelkártyaszámokat stb.). Biztosan használni szeretné ezt a bővítményt?</translation>
 <translation id="7494065396242762445">Windows-beállítások megnyitása</translation>
@@ -4488,7 +4480,6 @@
 <translation id="7850851215703745691">Ezek a Drive-fájlok még nincsenek megosztva</translation>
 <translation id="7851457902707056880">A bejelentkezés a tulajdonos fiókjára korlátozódik. Kérjük, indítsa újra az eszközt, majd jelentkezzen be a tulajdonos fiókjával. Az eszköz 30 másodpercen belül automatikusan újraindul.</translation>
 <translation id="7851716364080026749">Mindig tiltsa a kamerához és mikrofonhoz való hozzáférést</translation>
-<translation id="7851816139220202929">A biztonsági hardverkulcs használata NFC-vel</translation>
 <translation id="7853747251428735">További esz&amp;közök</translation>
 <translation id="7856006446339184955">Rendszeradatok küldése. Ez az eszköz jelenleg diagnosztikai, továbbá eszköz- és alkalmazáshasználati adatokat küld automatikusan a Google-nak. Ezt a <ph name="BEGIN_LINK1" />beállítást<ph name="END_LINK1" /> kötelezővé tette a tulajdonos. Ha bekapcsolta a további Internetes és alkalmazástevékenységeket, akkor a rendszer tárolja ezeket az információkat a fiókjában, Ön pedig kezelheti őket a Saját tevékenységek között. <ph name="BEGIN_LINK2" />További információ<ph name="END_LINK2" />.</translation>
 <translation id="7857117644404132472">Kivétel hozzáadása</translation>
@@ -4571,6 +4562,7 @@
 <translation id="7973962044839454485">Nem sikerült a PPP-hitelesítés helytelen felhasználónév vagy jelszó miatt</translation>
 <translation id="7974566588408714340">A(z) <ph name="EXTENSIONNAME" /> használatának újrapróbálása</translation>
 <translation id="7974936243149753750">Túlpásztázás</translation>
+<translation id="79766959863778284">XR eszközizolációs szolgáltatás</translation>
 <translation id="7977551819349545646">A Chromebox frissítése…</translation>
 <translation id="7978412674231730200">Privát kulcs</translation>
 <translation id="7978450511781612192">Ezzel kijelentkezik Google-fiókjaiból. Könyvjelzőinek, előzményeinek, jelszavainak és egyéb adatainak szinkronizálása megszűnik.</translation>
@@ -4621,7 +4613,6 @@
 <translation id="8030656706657716245">Nyomtató hozzáadása</translation>
 <translation id="8032244173881942855">Nem lehet átküldeni a lapot.</translation>
 <translation id="8033827949643255796">kijelölve</translation>
-<translation id="8033958968890501070">Időtúllépés</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Összes megnyitása &amp;inkognitóablakban}=1{Megnyitás &amp;inkognitóablakban}other{Összes (#) megnyitása &amp;inkognitóablakban}}</translation>
 <translation id="8037117027592400564">Az összes szöveg felolvasása szintetizált beszéddel kimondva</translation>
 <translation id="8037357227543935929">Kérdezzen rá (alapértelmezés szerint)</translation>
@@ -4794,6 +4785,7 @@
 <translation id="8320459152843401447">A teljes képernyő</translation>
 <translation id="8322814362483282060">Az oldal nem férhet hozzá az Ön mikrofonjához.</translation>
 <translation id="8326478304147373412">PKCS #7, tanúsítványlánc</translation>
+<translation id="8327039559959785305">Hiba történt a Linux-fájlok csatlakoztatásakor. Próbálja újra.</translation>
 <translation id="8329978297633540474">Egyszerű szöveg</translation>
 <translation id="8335587457941836791">Rögzítés feloldása a polcon</translation>
 <translation id="8336153091935557858">Tegnap <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4844,7 +4836,6 @@
 <translation id="8425213833346101688">Módosítás</translation>
 <translation id="8425492902634685834">A program rögzítése a tálcán</translation>
 <translation id="8425755597197517046">Beille&amp;sztés és keresés</translation>
-<translation id="8426117172745886547">Figyelmeztetés kilépés előtt (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Engedélyezés</translation>
 <translation id="8427292751741042100">beágyazva bármilyen más gazdagépen</translation>
 <translation id="8428213095426709021">Beállítások</translation>
@@ -4932,7 +4923,6 @@
 <translation id="8551388862522347954">Licencek</translation>
 <translation id="8553342806078037065">Más személyek kezelése</translation>
 <translation id="8554899698005018844">Nincs nyelv</translation>
-<translation id="8557347704037207368">Értesítések küldése az Android Web Messages szolgáltatásból</translation>
 <translation id="855773602626431402">A rendszer megakadályozta egy nem sandbox-technológiát használó beépülő modul futását az oldalon.</translation>
 <translation id="8557930019681227453">Jegyzék</translation>
 <translation id="8559694214572302298">Képdekóder</translation>
@@ -5045,6 +5035,7 @@
 <translation id="8714154114375107944">A támogatás vége</translation>
 <translation id="8714838604780058252">Háttérgrafika</translation>
 <translation id="8715480913140015283">Az egyik háttérben lévő lap használja a kamerát</translation>
+<translation id="8716931980467311658">Törli a Linux-fájlok mappájában található összes Linux-alkalmazást és -adatot erről az eszközről (<ph name="DEVICE_TYPE" />)?</translation>
 <translation id="8719653885894320876">A(z) <ph name="PLUGIN_NAME" /> letöltése sikertelen volt</translation>
 <translation id="8723829621484579639">Inkognitó subframe a következőhöz: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Megjelenítés mappában</translation>
@@ -5208,7 +5199,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – Összeomlott</translation>
 <translation id="8983677657449185470">Segítség a Biztonságos Böngészés továbbfejlesztésében</translation>
 <translation id="8984654317541110628">Fájlmegosztás URL-címe</translation>
-<translation id="8984872292925913496">A kulcs hátulján található a 6 jegyű PIN-kód</translation>
 <translation id="8986362086234534611">Elfelejt</translation>
 <translation id="8986494364107987395">Használati statisztikák és hibajelentések automatikus küldése a Google-nak</translation>
 <translation id="8987927404178983737">hónap</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 1174b20..aaffa6f 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Sorot objek dengan fokus keyboard saat berubah</translation>
 <translation id="1173894706177603556">Ganti nama</translation>
 <translation id="1174073918202301297">Pintasan ditambahkan</translation>
-<translation id="1174808551768282258">Membuka kunci Chromebook dengan ponsel. <ph name="LINK_BEGIN" />Pelajari lebih lanjut.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Cetak...</translation>
 <translation id="117624967391683467">Menyalin <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google dapat menggunakan histori browsing untuk mempersonalisasi Penelusuran, iklan, dan layanan Google lainnya. Anda dapat mengubahnya kapan saja di myaccount.google.com/activitycontrols/search.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Jeda</translation>
 <translation id="1181037720776840403">Hapus</translation>
 <translation id="1183237619868651138">Tidak dapat memasang <ph name="EXTERNAL_CRX_FILE" /> di cache lokal.</translation>
-<translation id="1183378459020939734">Siap untuk menyambungkan Kunci Keamanan?</translation>
 <translation id="1185924365081634987">Anda juga dapat mencoba untuk <ph name="GUEST_SIGNIN_LINK_START" />menjelajahi sebagai tamu<ph name="GUEST_SIGNIN_LINK_END" /> untuk memperbaiki kesalahan jaringan ini.</translation>
 <translation id="1186771945450942097">Hapus software berbahaya</translation>
 <translation id="1187722533808055681">Bangun saat nganggur</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Perangkat Bluetooth tidak ditemukan</translation>
 <translation id="1306606229401759371">Ubah setelan</translation>
 <translation id="1307559529304613120">Ups! Sistem gagal menyimpan token akses API jangka panjang untuk perangkat ini.</translation>
+<translation id="1307931752636661898">Tidak dapat melihat file Linux</translation>
 <translation id="1313405956111467313">Konfigurasi proxy otomatis</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Bookmark, histori, dan setelan lainnya akan disinkronkan ke Akun Google.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Buka setelan perangkat touchpad dan mouse</translation>
 <translation id="1531004739673299060">Jendela Aplikasi</translation>
 <translation id="15373452373711364">Kursor mouse besar</translation>
+<translation id="1538729222189715449">Membuka file Linux...</translation>
 <translation id="1540605929960647700">Aktifkan mode demo</translation>
 <translation id="1543284117603151572">Diimpor Dari Edge</translation>
 <translation id="1545177026077493356">Mode Kios Otomatis</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Ubah mode HUD sentuhan</translation>
 <translation id="1784849162047402014">Perangkat hampir kehabisan ruang disk</translation>
 <translation id="1786636458339910689">Drive Tim</translation>
-<translation id="1792161662640298233">Memverifikasi Kunci Keamanan</translation>
 <translation id="1792619191750875668">Tampilan yang diperluas</translation>
 <translation id="1794791083288629568">Kirim masukan untuk membantu kami menyelesaikan masalah ini.</translation>
 <translation id="1795214765651529549">Gunakan Klasik</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Selamat Datang!</translation>
 <translation id="1914326953223720820">Layanan Unzip</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Bergantung pada setelan akun, pengalaman Asisten Anda dapat dibatasi untuk berbagai fungsi seperti hasil web, lelucon, dan info lokal.</translation>
 <translation id="1916502483199172559">Avatar merah default</translation>
 <translation id="1918141783557917887">&amp;Lebih kecil</translation>
 <translation id="1919345977826869612">Iklan</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Plugin <ph name="PEPPER_PLUGIN_NAME" /> di <ph name="PEPPER_PLUGIN_DOMAIN" /> ingin mengakses komputer Anda</translation>
 <translation id="2178614541317717477">CA Mencurigakan</translation>
 <translation id="218070003709087997">Gunakan angka untuk mengindikasikan jumlah salinan yang akan dicetak (1 sampai 999).</translation>
+<translation id="2184515124301515068">Izinkan Chrome memilih kapan situs dapat memutar suara (direkomendasikan)</translation>
 <translation id="2187895286714876935">Kesalahan Impor Sertifikat Server</translation>
 <translation id="2187906491731510095">Ekstensi diupdate</translation>
 <translation id="2188881192257509750">Buka <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Membaca dan mengubah data Anda di sejumlah situs web</translation>
 <translation id="2242687258748107519">Info File</translation>
 <translation id="2243194103992005307">Untuk menghapus aplikasi, buka Setelan &gt; Aplikasi atau Pengelola aplikasi. Kemudian, tap aplikasi yang ingin di-uninstal (Anda mungkin perlu menggeser ke kanan atau ke kiri untuk mencari aplikasi). Setelah itu, tap Uninstal atau Nonaktifkan.</translation>
+<translation id="224940702122312781">Halaman ini akan menggunakan banyak data.</translation>
 <translation id="2249605167705922988">misal: 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Buka menggunakan penampil sistem</translation>
 <translation id="225163402930830576">Segarkan Jaringan</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Konfigurasi jaringan</translation>
 <translation id="230927227160767054">Halaman ini ingin memasang penangan layanan.</translation>
 <translation id="2309620859903500144">Situs ini telah diblokir agar tidak dapat mengakses sensor gerakan atau sensor cahaya.</translation>
-<translation id="2311075084924370935">Untuk membantu Anda terkait kalender, pengingat, jadwal penerbangan, dan lainnya, Asisten memerlukan setelan Aktivitas Web &amp; Aplikasi, Informasi Perangkat, dan Aktivitas Suara &amp; Audio.</translation>
+<translation id="2315414688463285945">Terjadi error saat mengonfigurasi file Linux. Harap coba lagi.</translation>
 <translation id="2315821125498993513">Tidak dapat terhubung ke ponsel. <ph name="LINK_BEGIN" />Pelajari lebih lanjut.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Lain kali</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% selesai</translation>
 <translation id="2318143611928805047">Ukuran kertas</translation>
 <translation id="2318817390901984578">Untuk menggunakan aplikasi Android, isi daya baterai &amp; update <ph name="DEVICE_TYPE" /> Anda.</translation>
 <translation id="2318923050469484167">(<ph name="EMBEDDING" />) sesi penyamaran saat ini</translation>
-<translation id="2321482478556590128">Gunakan Kunci Keamanan dengan <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Header dan footer</translation>
 <translation id="2325650632570794183">Jenis file ini tidak didukung. Kunjungi Chrome Webstore untuk menemukan aplikasi yang dapat membuka jenis file ini.</translation>
 <translation id="2326931316514688470">&amp;Muat ulang aplikasi</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Tambahkan Berbagi File</translation>
 <translation id="2367972762794486313">Tampilkan aplikasi</translation>
 <translation id="2369536625682139252">Semua data yang disimpan oleh <ph name="SITE" /> akan dihapus, kecuali cookie.</translation>
-<translation id="237058345584060620">Sambungkan kunci ke perangkat ini agar dapat digunakan untuk login ke akun</translation>
 <translation id="2371076942591664043">Buka setelah &amp;selesai</translation>
 <translation id="2377319039870049694">Beralih ke tampilan daftar</translation>
 <translation id="2377667304966270281">Hard Fault</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Ponsel tidak dapat ditemukan. Pastikan Bluetooth <ph name="DEVICE_TYPE" /> Anda aktif. &lt;a&gt;Pelajari lebih lanjut&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Tambahkan &amp;Map...</translation>
 <translation id="249113932447298600">Maaf, saat ini perangkat <ph name="DEVICE_LABEL" /> tidak didukung.</translation>
-<translation id="2492040222276243256">Tekan dan tahan tombol di Kunci Keamanan minimal selama 5 detik</translation>
 <translation id="2493021387995458222">Pilih "kata saat itu"</translation>
 <translation id="249303669840926644">Tidak dapat menyelesaikan pendaftaran</translation>
 <translation id="2495777824269688114">Temukan lebih banyak fitur atau dapatkan jawaban. Pilih "?" untuk mendapatkan bantuan.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Total: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Lama</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Platform <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Tab ini membagikan layar Anda.</translation>
 <translation id="2586657967955657006">Papan klip</translation>
 <translation id="2586672484245266891">Masukkan URL yang lebih pendek</translation>
 <translation id="2587922270115112871">Dengan membuat pengguna yang dilindungi, Anda tidak membuat Akun Google, dan setelan
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> menggunakan <ph name="USAGE" /> MB ruang disk.</translation>
 <translation id="2633212996805280240">Hapus "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> tidak dapat menyelesaikan pemasangan, tetapi akan terus dijalankan dari citra diskanya.</translation>
-<translation id="2633326789677284179">Cari nama yang tercetak di bagian belakang kunci</translation>
 <translation id="2635276683026132559">Penandatanganan</translation>
 <translation id="2636625531157955190">Chrome tidak dapat mengakses gambar.</translation>
 <translation id="2638087589890736295">Perlu frasa sandi untuk memulai sinkronisasi</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Menambahkan <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Untuk mendapatkan sandi di semua perangkat Anda, login ke Chrome.</translation>
 <translation id="2875698561019555027">(Halaman kesalahan Chrome)</translation>
-<translation id="2876441201733326392">Gunakan Kunci Keamanan USB</translation>
 <translation id="288042212351694283">Akses perangkat Universal 2nd Factor Anda</translation>
 <translation id="2881966438216424900">Terakhir diakses:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> akan segera dimulai dan disetel ulang</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Laporkan secara anonim</translation>
 <translation id="2984337792991268709"><ph name="TODAY_DAYTIME" /> hari ini</translation>
 <translation id="2986010903908656993">Halaman ini diblokir karena memiliki kontrol penuh atas perangkat MIDI.</translation>
-<translation id="2988599644347283908">Catatan: Data yang dikontrol oleh setelan ini dapat disimpan dan digunakan di layanan Google mana pun tempat Anda login, untuk memberi Anda pengalaman yang dipersonalisasi dan iklan yang berguna. Anda dapat melihat data, menghapusnya, dan mengubah setelan di account.google.com.</translation>
 <translation id="2989474696604907455">tidak terlampir</translation>
 <translation id="2989786307324390836">Biner bersandiaksara DER, satu sertifikat</translation>
 <translation id="2993517869960930405">Info Aplikasi</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Nonaktifkan Tab</translation>
 <translation id="3053013834507634016">Penggunaan Kunci Sertifikat</translation>
 <translation id="3057861065630527966">Cadangkan foto dan video</translation>
-<translation id="3059313675706898490">Android Message</translation>
 <translation id="3060379269883947824">Aktifkan fitur klik untuk diucapkan</translation>
 <translation id="3061707000357573562">Layanan Patch</translation>
 <translation id="3064410671692449875">Data tidak cukup</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Tidak dapat menyalin file crx eksternal ke <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" disandingkan</translation>
 <translation id="3101709781009526431">Tanggal dan waktu</translation>
-<translation id="3104900172193317662">Izinkan penggunaan Kunci Keamanan</translation>
 <translation id="310671807099593501">Situs sedang menggunakan bluetooth</translation>
 <translation id="3115128645424181617">Ponsel tidak dapat ditemukan. Pastikan ponsel ada dalam jangkauan dan Bluetooth diaktifkan.</translation>
 <translation id="3115147772012638511">Menunggu cache...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Bukan Bagian Dari Sertifikat&gt;</translation>
 <translation id="3254434849914415189">Pilih aplikasi default untuk file <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Deteksi zona waktu otomatis dinonaktifkan</translation>
-<translation id="3254772308201947812">Ya, Saya Setuju</translation>
 <translation id="3264544094376351444">Font Sans-serif</translation>
 <translation id="3264547943200567728">Gagal menyiapkan jaringan Chromebox</translation>
 <translation id="3264582393905923483">Konteks</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Urutkan menurut</translation>
 <translation id="3737274407993947948">Error saat menginstal Linux...</translation>
 <translation id="3737536731758327622">Download Anda muncul di sini</translation>
-<translation id="3738671331307774213">Memverifikasi identitas membantu melindungi data pribadi Anda</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Buka <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859">Kini <ph name="DEVICE_NAME" /> akan ditampilkan di Konsol Admin</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Sinkronisasi dijeda</translation>
 <translation id="3860381078714302691">Selamat datang di Hangouts Meet</translation>
+<translation id="3861241522664181545">Halaman dijeda.</translation>
 <translation id="3862134173397075045">Sambutlah pengalaman Cast di Chrome!</translation>
 <translation id="3862788408946266506">Aplikasi dengan atribut manifes 'kiosk_only' harus diinstal dalam mode kios Chrome OS</translation>
 <translation id="3865414814144988605">Resolusi</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Untuk mengaktifkannya, <ph name="BEGIN_LINK" />setel ulang sinkronisasi<ph name="END_LINK" /> untuk menghapus frasa sandi sinkronisasi</translation>
 <translation id="3878840326289104869">Membuat pengguna yang dilindungi</translation>
 <translation id="3879748587602334249">Pengelola download</translation>
-<translation id="3880709822663530586">Kunci Keamanan hanya berfungsi jika Bluetooth di perangkat aktif</translation>
 <translation id="3888550877729210209">Mencatat dengan <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Tambahkan OpenVPN / L2TP...</translation>
 <translation id="3893536212201235195">Baca dan ubah setelan aksesibilitas Anda</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Modul aman sedang disiapkan, harap tunggu (proses ini mungkin membutuhkan beberapa menit)...</translation>
 <translation id="4099060993766194518">Pulihkan mesin telusur default?</translation>
 <translation id="4100733287846229632">Ruang perangkat hampir habis</translation>
+<translation id="4103091233824664032">Masukkan sandi Anda untuk mengonfigurasi kunci layar dan login</translation>
 <translation id="4104163789986725820">E&amp;kspor...</translation>
 <translation id="4105563239298244027">Dapatkan gratis 1 TB dengan Google Drive</translation>
 <translation id="4107048419833779140">Identifikasi dan keluarkan perangkat penyimpanan</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Fitur Cahaya Malam akan otomatis dinonaktifkan saat matahari terbit</translation>
 <translation id="4138267921960073861">Tampilkan nama pengguna dan foto pada layar masuk</translation>
 <translation id="4144218403971135344">Dapatkan video yang berkualitas lebih baik dan hemat baterai. Video hanya akan diputar di layar yang kompatibel untuk Cast.</translation>
-<translation id="414599683948988413">Gunakan Kunci Keamanan dengan USB</translation>
 <translation id="4146026355784316281">Selalu Buka Dengan Penampil Sistem</translation>
 <translation id="4146785383423576110">Setel ulang dan bersihkan</translation>
 <translation id="4147897805161313378">Google Foto</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Nonaktifkan</translation>
 <translation id="4400367121200150367">Situs yang tidak pernah menyimpan sandi akan muncul di sini</translation>
 <translation id="4400632832271803360">Tahan tombol Peluncur untuk mengubah perilaku tombol baris atas</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">Bantuan</translation>
 <translation id="4409697491990005945">Margin</translation>
 <translation id="4411578466613447185">Penandatangan Kode</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome dapat menemukan software berbahaya di komputer dan menghapusnya</translation>
 <translation id="4481530544597605423">Perangkat tidak tersambung</translation>
 <translation id="4482194545587547824">Google dapat menggunakan histori penjelajahan Anda untuk mempersonalisasi Penelusuran dan layanan Google lainnya</translation>
+<translation id="4493287891836751813">Perkenalkan, Asisten Google Anda</translation>
 <translation id="4495419450179050807">Jangan tampilkan pada halaman ini</translation>
 <translation id="4499718683476608392">Aktifkan IsiOtomatis kartu kredit untuk mengisi formulir dengan sekali klik</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> telah error</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Nonaktifkan Tab</translation>
 <translation id="4742746985488890273">Pin ke Rak</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Pelajari cara mengupdate aplikasi<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Pesan</translation>
 <translation id="4746971725921104503">Tampaknya Anda sudah mengelola pengguna dengan nama itu. Ingin <ph name="LINK_START" />mengimpornya <ph name="USER_DISPLAY_NAME" /> ke perangkat ini<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Mengharuskan ekstensi berasal dari Chrome Webstore</translation>
 <translation id="4750394297954878236">Saran</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Penyidikan Diaktifkan</translation>
 <translation id="4823484602432206655">Membaca dan mengubah setelan perangkat dan pengguna</translation>
 <translation id="4823651846660089135">Perangkat berstatus hanya-baca</translation>
+<translation id="4823955295535347797">Akses Asisten setiap kali Anda mengatakan "Ok Google" saat layar aktif.</translation>
 <translation id="4828937774870308359">Australia</translation>
 <translation id="4829768588131278040">Siapkan PIN</translation>
 <translation id="4830502475412647084">Menginstal update OS</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Bantu engineer kami menyelidiki dan memperbaiki error ini. Cantumkan langkah-langkah yang tepat jika Anda bisa. Tidak ada detail yang sepele.</translation>
 <translation id="4876895919560854374">Kunci dan buka kunci layar</translation>
 <translation id="4877017884043316611">Menyandingkan dengan Chromebox</translation>
+<translation id="4879491255372875719">Otomatis (default)</translation>
 <translation id="4880214202172289027">Penggeser suara</translation>
 <translation id="4880328057631981605">Nama titik akses</translation>
 <translation id="4880520557730313061">Perbaikan Otomatis</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">ke atas</translation>
 <translation id="5100114659116077956">Untuk menyajikan fitur terbaru kepada Anda, Chromebox perlu diperbarui.</translation>
 <translation id="5101042277149003567">Buka semua bookmark</translation>
-<translation id="5104546332954397226">Gunakan ponsel Anda sebagai Kunci Keamanan</translation>
 <translation id="5105855035535475848">Sematkan tab</translation>
 <translation id="5108967062857032718">Setelan - Hapus aplikasi Android</translation>
 <translation id="5109044022078737958">Susanti</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">Buka K&amp;embali Tab yang Tertutup</translation>
 <translation id="52912272896845572">File kunci pribadi tidak valid.</translation>
 <translation id="529175790091471945">Format perangkat ini</translation>
-<translation id="5292195676005197571">Untuk menggunakan sebagian besar kunci, cukup tekan tombol</translation>
 <translation id="5293170712604732402">Memulihkan setelan ke default aslinya</translation>
 <translation id="5297082477358294722">Sandi disimpan. Lihat dan kelola sandi tersimpan di <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Tema dibuat oleh</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Saya Setuju</translation>
 <translation id="532943162177641444">Tap notifikasi di <ph name="PHONE_NAME" /> Anda untuk menyiapkan hotspot seluler yang dapat digunakan oleh perangkat ini.</translation>
 <translation id="5329858601952122676">&amp;Hapus</translation>
+<translation id="5329945517224105597">Asisten dapat menawarkan saran yang lebih relevan dan tindakan tertentu terkait konten yang ada di layar. Anda dapat mengubah ini di setelan Asisten</translation>
 <translation id="5330145655348521461">File ini dibuka pada desktop yang berbeda. Pindahkan ke <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) untuk melihatnya.</translation>
 <translation id="5330512191124428349">Dapatkan info</translation>
 <translation id="5331069282670671859">Anda tidak memiliki sertifikat dalam kategori ini</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Izinkan situs untuk memutar suara</translation>
 <translation id="5390284375844109566">Basis data yang diindeks</translation>
 <translation id="5390743329570580756">Kirim untuk</translation>
-<translation id="5392327114396848796">Gunakan Kunci Keamanan built-in</translation>
 <translation id="5397794290049113714">Anda</translation>
 <translation id="5398572795982417028">Di luar referensi halaman batas, batasannya adalah <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Iklan diblokir</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Tutup semua file di arsip atau disk virtual, lalu coba lagi.</translation>
 <translation id="5687326903064479980">Zona waktu</translation>
+<translation id="568824803367507355">Deteksi "Ok Google"</translation>
 <translation id="5689516760719285838">Lokasi</translation>
 <translation id="56907980372820799">Tautkan data</translation>
 <translation id="5691511426247308406">Keluarga</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Perekaman kamera atau mikrofon</translation>
 <translation id="5835754902560991078">sangat singkat (0,6 dtk)</translation>
 <translation id="5838456317242088717">Sesi penyamaran saat ini</translation>
-<translation id="5842053879378944309">Gunakan Kunci Keamanan USB dengan <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Bluetooth aktif</translation>
 <translation id="5843250171025351504">Perangkat Anda tidak sesuai lagi dengan versi klien minimum yang ditentukan oleh admin. Harap update untuk login.</translation>
 <translation id="5846929185714966548">Tab 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Tidak didukung lagi.</translation>
 <translation id="6317369057005134371">Menunggu jendela aplikasi...</translation>
 <translation id="6318407754858604988">Download dimulai</translation>
-<translation id="6322653941595359182">Mengirim dan menerima SMS dari Chromebook</translation>
 <translation id="6324916366299863871">Edit pintasan</translation>
 <translation id="6325191661371220117">Nonaktifkan luncurkan otomatis</translation>
 <translation id="6326175484149238433">Hapus dari Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Kirim <ph name="BEGIN_LINK1" />informasi sistem<ph name="END_LINK1" /> dan <ph name="BEGIN_LINK2" />metrik<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Opsi sinkronisasi dan personalisasi</translation>
 <translation id="6397592254427394018">Buka semua bookmark di &amp;jendela penyamaran</translation>
+<translation id="639777613761517128">Untuk membuka file dengan $1, salin ke folder file Linux terlebih dahulu.</translation>
 <translation id="6398715114293939307">Hapus Google Play Store</translation>
 <translation id="6398765197997659313">Keluar dari tampilan layar penuh</translation>
 <translation id="6399774419735315745">Mata-mata</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Nama ini tidak dapat digunakan sebagai nama file atau folder</translation>
 <translation id="642469772702851743">Perangkat ini (NS: <ph name="SERIAL_NUMBER" />) dikunci oleh pemilik.</translation>
 <translation id="6426200009596957090">Buka setelan ChromeVox</translation>
-<translation id="6427415464407526111">Pilih Kunci Keamanan</translation>
 <translation id="6429384232893414837">Error update</translation>
 <translation id="6430814529589430811">ASCII bersandiaksara Base64, satu sertifikat</translation>
 <translation id="6431217872648827691">Semua data dienkripsi dengan sandi Google Anda tanggal
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Mode pengembang</translation>
 <translation id="6655458902729017087">Sembunyikan Akun</translation>
 <translation id="6657585470893396449">Sandi</translation>
-<translation id="6658023813581644008">Agar dapat menyiapkan Smart Lock untuk login, masukkan sandi</translation>
 <translation id="6659213950629089752">Halaman ini diperbesar/diperkecil oleh ekstensi "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Sayangnya, komputer Anda dikonfigurasi dengan ID hardware yang rusak. Hal ini mencegah Chrome OS memperbarui dengan perbaikan keamanan terbaru dan komputer Anda <ph name="BEGIN_BOLD" />mungkin rentan terhadap serangan berbahaya<ph name="END_BOLD" />.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Pratinjau Informasi Sistem</translation>
 <translation id="6886871292305414135">Buka link di &amp;tab baru</translation>
 <translation id="6892812721183419409">Buka Tautan sebagai <ph name="USER" /></translation>
-<translation id="6896398788631624004">Colokkan Kunci Keamanan Anda dan aktifkan</translation>
 <translation id="6896758677409633944">Salin</translation>
 <translation id="6898440773573063262">Aplikasi Kiosk sekarang dapat dikonfigurasi untuk peluncuran otomatis di perangkat ini.</translation>
 <translation id="6898699227549475383">Organisasi (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Pengguna:</translation>
 <translation id="6916590542764765824">Kelola Ekstensi</translation>
 <translation id="6920989436227028121">Buka sebagai tab biasa</translation>
+<translation id="6921709132208495314">Berhenti menggunakan data di halaman ini</translation>
 <translation id="6922128026973287222">Hemat data dan jelajahi dengan lebih cepat menggunakan Penghemat Kuota Internet Google. Klik untuk mempelajari lebih lanjut.</translation>
 <translation id="6923132443355966645">Scroll / Klik</translation>
 <translation id="6930242544192836755">Durasi</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">Oke</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Perangkat</translation>
+<translation id="6968288415730398122">Masukkan sandi Anda untuk mengonfigurasi kunci layar</translation>
 <translation id="6970480684834282392">Tipe rintisan</translation>
 <translation id="6970856801391541997">Cetak Halaman Khusus</translation>
 <translation id="6972180789171089114">Audio/Video</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Mesin Telusur</translation>
 <translation id="6978611942794658017">File ini dirancang untuk PC yang menggunakan software Windows. File ini tidak kompatibel dengan perangkat Anda yang menjalankan Chrome OS. Telusuri di Chrome Webstore untuk mendapatkan aplikasi pengganti yang sesuai.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Matikan (default)</translation>
 <translation id="6979737339423435258">Semua</translation>
 <translation id="6980462514016882061">Google dapat menggunakan histori penjelajahan Anda untuk mempersonalisasi Penelusuran, iklan, dan layanan Google lainnya</translation>
 <translation id="6981982820502123353">Aksesibilitas</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Ini adalah informasi umum tentang perangkat dan cara menggunakannya (seperti tingkat daya baterai, penggunaan aplikasi, dan konektivitas jaringan). Data akan digunakan untuk menyempurnakan produk dan layanan Google bagi semua orang. Beberapa informasi yang digabungkan akan membantu partner, seperti developer Android, membuat produk dan aplikasi mereka menjadi lebih baik.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Menonaktifkan fitur ini tidak memengaruhi kemampuan perangkat dalam mengirimkan informasi yang diperlukan untuk layanan penting seperti update sistem dan keamanan.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Anda dapat mengontrol fitur ini dari Setelan &gt; Google. Pilih Penggunaan &amp; diagnostik dari menu.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Kami menemukan <ph name="NUMBER_OF_APPS" /> aplikasi dari akun Anda yang dapat digunakan di perangkat ini.</translation>
 <translation id="7199158086730159431">Dapatkan Bantuan</translation>
 <translation id="7200083590239651963">Pilih konfigurasi</translation>
 <translation id="720110658997053098">Simpan perangkat ini dalam mode kios secara permanen</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Kunci layar dan login</translation>
 <translation id="7229570126336867161">Memerlukan EVDO</translation>
 <translation id="7230787553283372882">Menyesuaikan ukuran teks</translation>
-<translation id="7231589788477569369">Dapatkan pengalaman Asisten yang lengkap dengan setelan ini</translation>
 <translation id="7232750842195536390">Gagal mengganti nama</translation>
 <translation id="7234406375359457793">Error saat memasang URL berbagi. URL berbagi yang ditentukan tidak didukung.</translation>
 <translation id="7238585580608191973">SHA-256 Fingerprint</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Hapus dan Keluar</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Terbaik)</translation>
 <translation id="7246339268451149667">Aktifkan buka kunci dengan Sidik Jari?</translation>
-<translation id="7246489301073081944">Tekan |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| untuk keluar</translation>
 <translation id="7246947237293279874">Proxy FTP</translation>
 <translation id="725109152065019550">Maaf, administrator Anda telah menonaktifkan penyimpanan eksternal pada akun Anda.</translation>
 <translation id="7253521419891527137">&amp;Pelajari Lebih Lanjut</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Periksa kelayakan</translation>
 <translation id="749028671485790643">Orang <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Alamat MAC</translation>
-<translation id="7490950320178383728">Gunakan Kunci Keamanan dengan Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">Ekstensi <ph name="EXTENSION_NAME" /> dapat mengumpulkan semua teks yang Anda ketik, termasuk data pribadi seperti sandi dan nomor kartu kredit. Ingin menggunakan ekstensi ini?</translation>
 <translation id="7494065396242762445">Buka Setelan Windows</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">File Drive ini belum dibagikan</translation>
 <translation id="7851457902707056880">Proses masuk telah dibatasi untuk akun pemilik saja. Nyalakan ulang dan masuk dengan akun pemilik. Mesin akan memulai ulang secara otomatis dalam 30 detik.</translation>
 <translation id="7851716364080026749">Selalu blokir akses mikrofon dan kamera</translation>
-<translation id="7851816139220202929">Gunakan Kunci Keamanan dengan NFC</translation>
 <translation id="7853747251428735">Alat Lain&amp;nya</translation>
 <translation id="7856006446339184955">Kirim data sistem. Perangkat ini sedang mengirim data penggunaan perangkat dan aplikasi serta diagnostik secara otomatis ke Google. <ph name="BEGIN_LINK1" />Setelan<ph name="END_LINK1" /> ini diterapkan oleh pemilik. Jika Anda mengaktifkan Aktivitas Web &amp; Aplikasi tambahan, informasi ini akan disimpan dalam akun sehingga Anda dapat mengelolanya di Aktivitas Saya. <ph name="BEGIN_LINK2" />Pelajari Lebih Lanjut<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Tambahkan pengecualian</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">Autentifikasi PDB gagal karena nama pengguna dan sandi salah</translation>
 <translation id="7974566588408714340">Coba lagi menggunakan <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Pemindaian berlebih</translation>
+<translation id="79766959863778284">Layanan Perangkat Terisolasi XR</translation>
 <translation id="7977551819349545646">Memperbarui Chromebox...</translation>
 <translation id="7978412674231730200">Kunci pribadi</translation>
 <translation id="7978450511781612192">Tindakan ini akan membuat Anda logout dari Akun Google. Bookmark, histori, sandi, dan lainnya tidak akan disinkronkan lagi.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Tambahkan Printer</translation>
 <translation id="8032244173881942855">Tidak dapat mentransmisi tab.</translation>
 <translation id="8033827949643255796">dipilih</translation>
-<translation id="8033958968890501070">Waktu habis</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Buka semua di &amp;jendela samaran}=1{Buka di &amp;jendela samaran}other{Buka semua (#) di &amp;jendela samaran}}</translation>
 <translation id="8037117027592400564">Membaca semua teks yang diucapkan menggunakan ucapan yang disintesis</translation>
 <translation id="8037357227543935929">Tanyakan (default)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Seluruh Layar Anda</translation>
 <translation id="8322814362483282060">Halaman ini telah diblokir agar tidak dapat mengakses mikrofon Anda.</translation>
 <translation id="8326478304147373412">PKCS #7, rantai sertifikat</translation>
+<translation id="8327039559959785305">Terjadi error saat memasang file Linux. Harap coba lagi.</translation>
 <translation id="8329978297633540474">Teks biasa</translation>
 <translation id="8335587457941836791">Lepaskan pin dari rak</translation>
 <translation id="8336153091935557858"><ph name="YESTERDAY_DAYTIME" /> kemarin</translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">Ubah</translation>
 <translation id="8425492902634685834">Pasang Pin ke Taskbar</translation>
 <translation id="8425755597197517046">Tempel dan Telu&amp;suri</translation>
-<translation id="8426117172745886547">Peringatkan sebelum keluar (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Mengaktifkan</translation>
 <translation id="8427292751741042100">disematkan di host mana saja</translation>
 <translation id="8428213095426709021">Setelan</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">Lisensi</translation>
 <translation id="8553342806078037065">Kelola orang lain</translation>
 <translation id="8554899698005018844">Tidak ada bahasa</translation>
-<translation id="8557347704037207368">Mengirimi Anda notifikasi dari Android Web Messages</translation>
 <translation id="855773602626431402">Plugin yang tidak dimasukkan kotak pasir dicegah untuk dijalankan di halaman ini.</translation>
 <translation id="8557930019681227453">Manifes</translation>
 <translation id="8559694214572302298">Pendekode Gambar</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">Akhir dukungan</translation>
 <translation id="8714838604780058252">Grafis latar belakang</translation>
 <translation id="8715480913140015283">Tab background menggunakan kamera Anda</translation>
+<translation id="8716931980467311658">Hapus semua aplikasi dan data Linux di folder file Linux dari <ph name="DEVICE_TYPE" /> ini?</translation>
 <translation id="8719653885894320876">Gagal mendownload <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Subkerangka mode Penyamaran untuk: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Tampilkan dalam Folder</translation>
@@ -5206,7 +5197,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Mogok</translation>
 <translation id="8983677657449185470">Bantu sempurnakan Safe Browsing</translation>
 <translation id="8984654317541110628">URL Berbagi File</translation>
-<translation id="8984872292925913496">Lihat PIN 6 digit di bagian belakang kunci</translation>
 <translation id="8986362086234534611">Lupakan</translation>
 <translation id="8986494364107987395">Kirim statistik penggunaan dan laporan kerusakan ke Google secara otomatis</translation>
 <translation id="8987927404178983737">Bulan</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 01f1cb7..f2f1e74 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Evidenzia l'oggetto con lo stato attivo della tastiera quando cambia</translation>
 <translation id="1173894706177603556">Rinomina</translation>
 <translation id="1174073918202301297">Scorciatoia aggiunta</translation>
-<translation id="1174808551768282258">Sblocca il Chromebook con il telefono. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" />.</translation>
 <translation id="1175364870820465910">&amp;Stampa...</translation>
 <translation id="117624967391683467">Copia di <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google può utilizzare la tua cronologia di navigazione per personalizzare gli annunci associati ai risultati di ricerca e altri servizi Google. Puoi modificare l'impostazione in qualsiasi momento visitando il sito myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pausa</translation>
 <translation id="1181037720776840403">Rimuovi</translation>
 <translation id="1183237619868651138">Impossibile installare <ph name="EXTERNAL_CRX_FILE" /> nella cache locale.</translation>
-<translation id="1183378459020939734">Pronto per accoppiare il tuo token di sicurezza?</translation>
 <translation id="1185924365081634987">Puoi anche provare a <ph name="GUEST_SIGNIN_LINK_START" />navigare come ospite<ph name="GUEST_SIGNIN_LINK_END" /> per correggere questo errore di rete.</translation>
 <translation id="1186771945450942097">Rimuovi software dannoso</translation>
 <translation id="1187722533808055681">Riattivazioni</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Nessun dispositivo Bluetooth trovato</translation>
 <translation id="1306606229401759371">Modifica impostazioni</translation>
 <translation id="1307559529304613120">Spiacenti, il sistema non è riuscito a memorizzare il token di accesso all'API a lungo termine per questo dispositivo.</translation>
+<translation id="1307931752636661898">Impossibile visualizzare i file di Linux</translation>
 <translation id="1313405956111467313">Configurazione automatica del proxy</translation>
 <translation id="131364520783682672">Bloc maiusc</translation>
 <translation id="1313705515580255288">I Preferiti, la cronologia e le altre impostazioni verranno sincronizzati con il tuo account Google.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Apri le impostazioni di mouse e touchpad</translation>
 <translation id="1531004739673299060">Finestra dell'applicazione</translation>
 <translation id="15373452373711364">Puntatore del mouse grande</translation>
+<translation id="1538729222189715449">Apertura di file Linux…</translation>
 <translation id="1540605929960647700">Attiva modalità demo</translation>
 <translation id="1543284117603151572">Importati da Edge</translation>
 <translation id="1545177026077493356">Modalità kiosk automatica</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Cambia la modalità HUD Touch</translation>
 <translation id="1784849162047402014">Spazio insufficiente sul disco del dispositivo</translation>
 <translation id="1786636458339910689">Drive del team</translation>
-<translation id="1792161662640298233">Verifica del token di sicurezza</translation>
 <translation id="1792619191750875668">Display esteso</translation>
 <translation id="1794791083288629568">Invia feedback per aiutarci a risolvere questo problema.</translation>
 <translation id="1795214765651529549">Usa classico</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Benvenuto!</translation>
 <translation id="1914326953223720820">Servizio di decompressione</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">In base alle impostazioni del tuo account, l'esperienza con l'assistente potrebbe essere limitata ad ambiti quali risultati web, barzellette e informazioni locali.</translation>
 <translation id="1916502483199172559">Avatar rosso predefinito</translation>
 <translation id="1918141783557917887">Più &amp;piccolo</translation>
 <translation id="1919345977826869612">Annunci</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> su <ph name="PEPPER_PLUGIN_DOMAIN" /> vuole accedere al computer</translation>
 <translation id="2178614541317717477">Compromesso CA</translation>
 <translation id="218070003709087997">Specifica un numero per indicare la quantità di copie da stampare (da 1 a 999).</translation>
+<translation id="2184515124301515068">Consenti a Chrome di scegliere quando i siti possono riprodurre audio (opzione consigliata)</translation>
 <translation id="2187895286714876935">Errore di importazione del certificato del server</translation>
 <translation id="2187906491731510095">Estensioni aggiornate</translation>
 <translation id="2188881192257509750">Apri <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Leggere e modificare i tuoi dati su una serie di siti web</translation>
 <translation id="2242687258748107519">Info sul file</translation>
 <translation id="2243194103992005307">Per rimuovere app, accedi alle Impostazioni &gt; App o Gestione applicazioni. Tocca quindi l'app che intendi disinstallare (potresti dover scorrere verso sinistra o verso destra per trovarla), poi tocca Disinstalla o Disattiva.</translation>
+<translation id="224940702122312781">Questa pagina utilizzerà una grande quantità di dati.</translation>
 <translation id="2249605167705922988">ad es. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Apri con visualizzatore di sistema</translation>
 <translation id="225163402930830576">Aggiorna reti</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Configura rete</translation>
 <translation id="230927227160767054">Questa pagina vuole installare un gestore di servizi.</translation>
 <translation id="2309620859903500144">A questo sito è stato impedito l'accesso ai sensori di movimento o della luce.</translation>
-<translation id="2311075084924370935">Per aiutarti con impegni, promemoria, voli e altro, l'assistente dovrà accedere alle impostazioni di Attività web e app, Informazioni del dispositivo e Attività vocale e audio.</translation>
+<translation id="2315414688463285945">Errore durante la configurazione dei file Linux. Riprova.</translation>
 <translation id="2315821125498993513">Impossibile connettersi al telefono. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" />.</translation>
 <translation id="2316129865977710310">No, grazie</translation>
 <translation id="2317842250900878657">Percentuale di completamento: <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Formato carta</translation>
 <translation id="2318817390901984578">Per utilizzare le app Android, metti sotto carica il tuo dispositivo <ph name="DEVICE_TYPE" /> e aggiornalo.</translation>
 <translation id="2318923050469484167">Sessione di navigazione in incognito corrente (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Utilizza il token di sicurezza con <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Intestazioni e piè di pagina</translation>
 <translation id="2325650632570794183">Questo tipo di file non è supportato. Visita il Chrome Web Store per trovare un'applicazione in grado di aprire questo tipo di file.</translation>
 <translation id="2326931316514688470">&amp;Ricarica app</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Aggiungi Condivisione file</translation>
 <translation id="2367972762794486313">Mostra app</translation>
 <translation id="2369536625682139252">Tutti i dati archiviati dal sito <ph name="SITE" />, eccetto i cookie, verranno eliminati.</translation>
-<translation id="237058345584060620">Accoppia il tuo token a questo dispositivo per poterlo utilizzare per accedere al tuo account.</translation>
 <translation id="2371076942591664043">Apri al &amp;termine</translation>
 <translation id="2377319039870049694">Passa alla visualizzazione elenco</translation>
 <translation id="2377667304966270281">Errori hardware</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Impossibile trovare il telefono. Assicurati che sul dispositivo <ph name="DEVICE_TYPE" /> sia attivo il Bluetooth. &lt;a&gt;Ulteriori informazioni&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Aggiungi &amp;cartella...</translation>
 <translation id="249113932447298600">Spiacenti, il dispositivo <ph name="DEVICE_LABEL" /> non è al momento supportato.</translation>
-<translation id="2492040222276243256">Tieni premuto il pulsante del token di sicurezza per almeno cinque secondi</translation>
 <translation id="2493021387995458222">Seleziona "una parola per volta"</translation>
 <translation id="249303669840926644">Impossibile completare la registrazione</translation>
 <translation id="2495777824269688114">Scopri altre funzioni o ricevi risposte. Seleziona "?" per ricevere assistenza.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Totale: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Lungo</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (piattaforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Questa scheda sta condividendo il tuo schermo.</translation>
 <translation id="2586657967955657006">Appunti</translation>
 <translation id="2586672484245266891">Inserisci un URL più breve</translation>
 <translation id="2587922270115112871">La creazione di un utente supervisionato non comporta la creazione di un account Google e i relativi dati e le impostazioni non saranno disponibili su altri dispositivi grazie alla Sincronizzazione Google Chrome. Un utente supervisionato viene configurato soltanto su questo dispositivo.</translation>
@@ -1090,7 +1088,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> sta utilizzando <ph name="USAGE" /> MB di spazio su disco.</translation>
 <translation id="2633212996805280240">Rimuovere "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> non è stato in grado di completare l'installazione ma continuerà a essere eseguito dall'immagine disco.</translation>
-<translation id="2633326789677284179">Cerca il nome stampato sul retro del tuo token</translation>
 <translation id="2635276683026132559">Firma</translation>
 <translation id="2636625531157955190">Chrome non riesce ad accedere all'immagine.</translation>
 <translation id="2638087589890736295">Passphrase obbligatoria per avviare la sincronizzazione</translation>
@@ -1258,7 +1255,6 @@
 <translation id="287286579981869940">Aggiungi <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Accedi a Chrome per trovare le tue password su tutti i dispositivi.</translation>
 <translation id="2875698561019555027">(pagine di errore Chrome)</translation>
-<translation id="2876441201733326392">Usa il token di sicurezza USB</translation>
 <translation id="288042212351694283">Accesso ai tuoi dispositivi Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Ultimo accesso:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> verrà riavviato e ripristinato tra poco</translation>
@@ -1326,7 +1322,6 @@
 <translation id="2982970937345031">Segnalazione anonima</translation>
 <translation id="2984337792991268709">Oggi alle <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">A questa pagina è stato impedito il controllo totale dei dispositivi MIDI.</translation>
-<translation id="2988599644347283908">Nota: i dati controllati da queste impostazioni potrebbero essere salvati e usati in qualsiasi servizio Google a cui hai eseguito l'accesso per offrirti esperienze personalizzate e annunci utili. Puoi vedere ed eliminare i tuoi dati, nonché modificare le impostazioni all'indirizzo account.google.com.</translation>
 <translation id="2989474696604907455">non collegato</translation>
 <translation id="2989786307324390836">Binario codificato DER, singolo certificato</translation>
 <translation id="2993517869960930405">Informazioni sull'app</translation>
@@ -1379,7 +1374,6 @@
 <translation id="304826556400666995">Riattiva audio schede</translation>
 <translation id="3053013834507634016">Uso della chiave del certificato</translation>
 <translation id="3057861065630527966">Effettua il backup di foto e video</translation>
-<translation id="3059313675706898490">Android Messaggi</translation>
 <translation id="3060379269883947824">Attiva Seleziona per ascoltare</translation>
 <translation id="3061707000357573562">Servizio di applicazione patch</translation>
 <translation id="3064410671692449875">Dati insufficienti</translation>
@@ -1408,7 +1402,6 @@
 <translation id="3090819949319990166">Impossibile copiare il file crx esterno su <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" accoppiato</translation>
 <translation id="3101709781009526431">Data e ora</translation>
-<translation id="3104900172193317662">Consenti l'utilizzo del tuo token di sicurezza</translation>
 <translation id="310671807099593501">Il sito sta usando il Bluetooth</translation>
 <translation id="3115128645424181617">Impossibile trovare il telefono. Assicurati che sia a portata di mano e che il Bluetooth sia attivo.</translation>
 <translation id="3115147772012638511">In attesa di elaborazione cache...</translation>
@@ -1492,7 +1485,6 @@
 <translation id="3251759466064201842">&lt;Non parte del certificato&gt;</translation>
 <translation id="3254434849914415189">Seleziona l'applicazione predefinita per i file <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Il rilevamento automatico del fuso orario è disattivato</translation>
-<translation id="3254772308201947812">Sì, accetto</translation>
 <translation id="3264544094376351444">Carattere sans-serif</translation>
 <translation id="3264547943200567728">Configurazione della rete del Chromebox non riuscita</translation>
 <translation id="3264582393905923483">Contesto</translation>
@@ -1813,7 +1805,6 @@
 <translation id="3735740477244556633">Ordina per</translation>
 <translation id="3737274407993947948">Errore durante l'installazione di Linux...</translation>
 <translation id="3737536731758327622">I tuoi download vengono visualizzati qui</translation>
-<translation id="3738671331307774213">La verifica della tua identità aiuta a proteggere i tuoi dati privati</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Aprire <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> verrà ora visualizzato nella Console di amministrazione</translation>
@@ -1907,6 +1898,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sincronizzazione in pausa</translation>
 <translation id="3860381078714302691">Benvenuto in Hangouts Meet</translation>
+<translation id="3861241522664181545">Pagina in pausa.</translation>
 <translation id="3862134173397075045">Benvenuto nell'esperienza Cast di Chrome.</translation>
 <translation id="3862788408946266506">L'app con l'attributo del file manifest "kiosk_only" deve essere installata in modalità kiosk di Chrome OS</translation>
 <translation id="3865414814144988605">Risoluzione</translation>
@@ -1921,7 +1913,6 @@
 <translation id="3873315167136380065">Per attivare questa funzione, <ph name="BEGIN_LINK" />reimposta la sincronizzazione<ph name="END_LINK" /> per rimuovere la passphrase di sincronizzazione</translation>
 <translation id="3878840326289104869">Creazione utente supervisionato in corso</translation>
 <translation id="3879748587602334249">Gestione dei download</translation>
-<translation id="3880709822663530586">Il tuo token di sicurezza funziona soltanto quando è attivo il Bluetooth del dispositivo</translation>
 <translation id="3888550877729210209">Creazione di appunti con <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Aggiungi L2TP/VPN aperta…</translation>
 <translation id="3893536212201235195">Leggere e modificare le impostazioni di accessibilità</translation>
@@ -2067,6 +2058,7 @@
 <translation id="4096824249111507322">Preparazione del modulo per la sicurezza in corso, attendi (l'operazione potrebbe richiedere alcuni minuti)...</translation>
 <translation id="4099060993766194518">Ripristinare il motore di ricerca predefinito?</translation>
 <translation id="4100733287846229632">Lo spazio sul dispositivo sta per esaurirsi</translation>
+<translation id="4103091233824664032">Inserisci la password per configurare il blocco schermo e l'accesso</translation>
 <translation id="4104163789986725820">E&amp;sporta...</translation>
 <translation id="4105563239298244027">Ottieni 1 TB gratis con Google Drive</translation>
 <translation id="4107048419833779140">Identifica ed espelli i dispositivi di archiviazione</translation>
@@ -2087,7 +2079,6 @@
 <translation id="4136203100490971508">La funzione Luminosità notturna verrà disattivata automaticamente all'alba</translation>
 <translation id="4138267921960073861">Visualizza nomi e foto dell'utente sulla schermata di accesso</translation>
 <translation id="4144218403971135344">Migliora la qualità dei video e fai durare di più la batteria. I video verranno riprodotti soltanto sullo schermo compatibile con Google Cast.</translation>
-<translation id="414599683948988413">Utilizza il token di sicurezza con USB</translation>
 <translation id="4146026355784316281">Apri sempre con visualizzatore di sistema</translation>
 <translation id="4146785383423576110">Reimpostazione e pulizia</translation>
 <translation id="4147897805161313378">Google Foto</translation>
@@ -2222,6 +2213,7 @@
 <translation id="4394049700291259645">Disabilita</translation>
 <translation id="4400367121200150367">I siti che non salvano mai le password verranno visualizzati qui</translation>
 <translation id="4400632832271803360">Tieni premuto il tasto Avvio applicazioni per modificare la funzione dei tasti della fila superiore.</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">G&amp;uida</translation>
 <translation id="4409697491990005945">Margini</translation>
 <translation id="4411578466613447185">Certificato di firma del codice</translation>
@@ -2270,6 +2262,7 @@
 <translation id="4480590691557335796">Chrome può trovare software dannoso sul computer e rimuoverlo</translation>
 <translation id="4481530544597605423">Dispositivi disaccoppiati</translation>
 <translation id="4482194545587547824">Google può utilizzare la tua cronologia di navigazione per personalizzare la Ricerca e altri servizi Google</translation>
+<translation id="4493287891836751813">Ecco il tuo Assistente Google</translation>
 <translation id="4495419450179050807">Non visualizzare in questa pagina</translation>
 <translation id="4499718683476608392">Attiva la Compilazione automatica per la carta di credito per compilare i moduli con un singolo clic</translation>
 <translation id="4500114933761911433">Arresto anomalo di <ph name="PLUGIN_NAME" /></translation>
@@ -2430,6 +2423,7 @@
 <translation id="474217410105706308">Disattiva audio scheda</translation>
 <translation id="4742746985488890273">Fissa sullo shelf</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Scopri come aggiornare le applicazioni<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Messaggi</translation>
 <translation id="4746971725921104503">Sembra che tu gestisca già un utente con il nome indicato. Volevi <ph name="LINK_START" />importare <ph name="USER_DISPLAY_NAME" /> in questo dispositivo<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Richiede estensione dal Chrome Web Store</translation>
 <translation id="4750394297954878236">Suggerimenti</translation>
@@ -2471,6 +2465,7 @@
 <translation id="4821935166599369261">&amp;Profiling attivato</translation>
 <translation id="4823484602432206655">Lettura e modifica delle impostazioni utente e dispositivo</translation>
 <translation id="4823651846660089135">Il dispositivo è in sola lettura</translation>
+<translation id="4823955295535347797">Accedi all'assistente ogni volta che dici "Ok Google" quando lo schermo è attivo.</translation>
 <translation id="4828937774870308359">Australiano</translation>
 <translation id="4829768588131278040">Imposta il codice PIN</translation>
 <translation id="4830502475412647084">Installazione dell'aggiornamento del sistema operativo in corso</translation>
@@ -2511,6 +2506,7 @@
 <translation id="4876273079589074638">Aiuta i nostri ingegneri a effettuare accertamenti e risolvere il problema che causa l'arresto anomalo. Se puoi, elenca i passaggi esatti fornendo il maggior numero possibile di dettagli.</translation>
 <translation id="4876895919560854374">Blocco e sblocco dello schermo</translation>
 <translation id="4877017884043316611">Accoppia con Chromebox</translation>
+<translation id="4879491255372875719">Automatica (impostazione predefinita)</translation>
 <translation id="4880214202172289027">Dispositivo volume</translation>
 <translation id="4880328057631981605">Nome punto di accesso</translation>
 <translation id="4880520557730313061">Correzione automatica</translation>
@@ -2664,7 +2660,6 @@
 <translation id="5099354524039520280">su</translation>
 <translation id="5100114659116077956">Per poterti offrire le funzionalità più recenti, devi aggiornare il Chromebox.</translation>
 <translation id="5101042277149003567">Apri tutti i Preferiti</translation>
-<translation id="5104546332954397226">Utilizza il tuo telefono come token di sicurezza</translation>
 <translation id="5105855035535475848">Blocca le schede</translation>
 <translation id="5108967062857032718">Impostazioni - Rimuovi app Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2794,7 +2789,6 @@
 <translation id="5288678174502918605">Riapri sch&amp;eda chiusa</translation>
 <translation id="52912272896845572">Il file della chiave privata non è valido.</translation>
 <translation id="529175790091471945">Formatta questo dispositivo</translation>
-<translation id="5292195676005197571">Per usare la maggior parte dei token basta premere il pulsante</translation>
 <translation id="5293170712604732402">Ripristina le impostazioni predefinite originali</translation>
 <translation id="5297082477358294722">Password salvata. Visualizza e gestisci le password salvate in <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Tema creato da</translation>
@@ -2820,6 +2814,7 @@
 <translation id="532776649628038357">Accetto</translation>
 <translation id="532943162177641444">Tocca la notifica sul tuo <ph name="PHONE_NAME" /> per configurare l'hotspot mobile che può essere utilizzato per questo dispositivo.</translation>
 <translation id="5329858601952122676">&amp;Elimina</translation>
+<translation id="5329945517224105597">L'assistente può offrirti suggerimenti più pertinenti e azioni specifiche correlate agli elementi visualizzati sullo schermo. Puoi modificare questo comportamento nelle impostazioni dell'assistente</translation>
 <translation id="5330145655348521461">Questi file sono aperti su un desktop differente. Passa a <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) per visualizzarli.</translation>
 <translation id="5330512191124428349">Ottieni informazioni</translation>
 <translation id="5331069282670671859">Nessun certificato presente in questa categoria</translation>
@@ -2864,7 +2859,6 @@
 <translation id="5390100381392048184">Consenti ai siti di riprodurre l'audio</translation>
 <translation id="5390284375844109566">Database indicizzato</translation>
 <translation id="5390743329570580756">Invia per</translation>
-<translation id="5392327114396848796">Utilizza un token di sicurezza incorporato</translation>
 <translation id="5397794290049113714">Tu</translation>
 <translation id="5398572795982417028">Riferimento pagina oltre i limiti. Il limite è <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Annunci bloccati</translation>
@@ -3072,6 +3066,7 @@
    <ph name="LINE_BREAKS" />
    Chiudi tutti i file nell'archivio o sul disco virtuale e riprova.</translation>
 <translation id="5687326903064479980">Fuso orario</translation>
+<translation id="568824803367507355">Rilevamento di "Ok Google"</translation>
 <translation id="5689516760719285838">Posizione</translation>
 <translation id="56907980372820799">Collega dati</translation>
 <translation id="5691511426247308406">Famiglia</translation>
@@ -3169,7 +3164,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Registrazione tramite fotocamera o microfono in corso</translation>
 <translation id="5835754902560991078">molto breve (0,6 s)</translation>
 <translation id="5838456317242088717">Sessione di navigazione in incognito corrente</translation>
-<translation id="5842053879378944309">Usa il token di sicurezza USB con <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Bluetooth attivato</translation>
 <translation id="5843250171025351504">Il tuo dispositivo non è più conforme alla versione client minima specificata dall'amministratore. Aggiorna per accedere.</translation>
 <translation id="5846929185714966548">Scheda 4</translation>
@@ -3487,7 +3481,6 @@
 <translation id="6317318380444133405">La stampante non è più supportata.</translation>
 <translation id="6317369057005134371">In attesa della finestra dell'applicazione...</translation>
 <translation id="6318407754858604988">Download iniziato</translation>
-<translation id="6322653941595359182">Invia e ricevi SMS dal Chromebook</translation>
 <translation id="6324916366299863871">Modifica scorciatoia</translation>
 <translation id="6325191661371220117">Disattiva avvio automatico</translation>
 <translation id="6326175484149238433">Rimuovi da Chrome</translation>
@@ -3531,6 +3524,7 @@
 <translation id="6395423953133416962">Invia <ph name="BEGIN_LINK1" />informazioni di sistema<ph name="END_LINK1" /> e <ph name="BEGIN_LINK2" />metriche<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Opzioni di sincronizzazione e personalizzazione</translation>
 <translation id="6397592254427394018">Apri tutti i Preferiti nella finestra di navigazione in &amp;incognito</translation>
+<translation id="639777613761517128">Per aprire i file con $1, devi prima copiarli nella cartella File di Linux.</translation>
 <translation id="6398715114293939307">Rimuovi il Google Play Store</translation>
 <translation id="6398765197997659313">Esci da schermo intero</translation>
 <translation id="6399774419735315745">Spia</translation>
@@ -3556,7 +3550,6 @@
 <translation id="642282551015776456">Questo nome non può essere utilizzato per un file o una cartella</translation>
 <translation id="642469772702851743">Questo dispositivo (numero di serie <ph name="SERIAL_NUMBER" />) è stato bloccato dal proprietario.</translation>
 <translation id="6426200009596957090">Apri le impostazioni ChromeVox</translation>
-<translation id="6427415464407526111">Seleziona il tuo token di sicurezza</translation>
 <translation id="6429384232893414837">Errore di aggiornamento</translation>
 <translation id="6430814529589430811">ASCII con codifica Base64, singolo certificato</translation>
 <translation id="6431217872648827691">Tutti i dati sono stati criptati con la tua password Google in data
@@ -3714,7 +3707,6 @@
 <translation id="6655190889273724601">Modalità sviluppatore</translation>
 <translation id="6655458902729017087">Nascondi account</translation>
 <translation id="6657585470893396449">Password</translation>
-<translation id="6658023813581644008">Inserisci la password per configurare Smart Lock per l'accesso</translation>
 <translation id="6659213950629089752">Questa pagina è stata ingrandita con l'estensione "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">TAB</translation>
 <translation id="6664237456442406323">Purtroppo il tuo computer è configurato con un ID hardware non valido. Ciò impedisce a Chrome OS di aggiornarsi con le ultime correzioni relative alla sicurezza e il tuo computer <ph name="BEGIN_BOLD" />potrebbe essere vulnerabile ad attacchi dannosi<ph name="END_BOLD" />.</translation>
@@ -3850,7 +3842,6 @@
 <translation id="6885771755599377173">Anteprima informazioni di sistema</translation>
 <translation id="6886871292305414135">Apri link in un'altra &amp;scheda</translation>
 <translation id="6892812721183419409">Apri link come <ph name="USER" /></translation>
-<translation id="6896398788631624004">Collega il token di sicurezza e attivalo</translation>
 <translation id="6896758677409633944">Copia</translation>
 <translation id="6898440773573063262">Ora è possibile configurare l'avvio automatico delle applicazioni kiosk su questo dispositivo.</translation>
 <translation id="6898699227549475383">Organizzazione (O)</translation>
@@ -3869,6 +3860,7 @@
 <translation id="6915804003454593391">Utente:</translation>
 <translation id="6916590542764765824">Gestisci estensioni</translation>
 <translation id="6920989436227028121">Apri in una scheda normale</translation>
+<translation id="6921709132208495314">Interrompi l'utilizzo dei dati su questa pagina</translation>
 <translation id="6922128026973287222">Memorizza dati e naviga più velocemente utilizzando il servizio Risparmio dati di Google. Fai clic per avere ulteriori informazioni.</translation>
 <translation id="6923132443355966645">Scorri/fai clic</translation>
 <translation id="6930242544192836755">Durata</translation>
@@ -3891,6 +3883,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Porta</translation>
 <translation id="6965978654500191972">Dispositivo</translation>
+<translation id="6968288415730398122">Inserisci la password per configurare il blocco schermo</translation>
 <translation id="6970480684834282392">Tipo di avvio</translation>
 <translation id="6970856801391541997">Stampa pagine specifiche</translation>
 <translation id="6972180789171089114">Audio/video</translation>
@@ -3901,6 +3894,7 @@
 <translation id="6978121630131642226">Motori di ricerca</translation>
 <translation id="6978611942794658017">Questo file è supportato su PC con software Windows. Non è compatibile con il tuo dispositivo Chrome OS. Cerca sul Chrome Web Store un'app sostitutiva adatta.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Disattivazione audio (impostazione predefinita)</translation>
 <translation id="6979737339423435258">Tutto</translation>
 <translation id="6980462514016882061">Google può utilizzare la tua cronologia di navigazione per personalizzare la Ricerca, gli annunci e altri servizi Google.</translation>
 <translation id="6981982820502123353">Accessibilità</translation>
@@ -4049,6 +4043,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Si tratta di informazioni generali sul dispositivo e sulla relativa modalità di utilizzo (ad esempio il livello della batteria, l'utilizzo delle app e la connettività di rete). I dati saranno utilizzati per migliorare i prodotti e i servizi di Google per tutti. Alcune informazioni aggregate consentiranno anche ai partner, ad esempio gli sviluppatori Android, di migliorare i propri prodotti e le proprie app.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />La disattivazione di questa funzione non influisce sulla capacità del dispositivo di inviare le informazioni necessarie per i servizi essenziali quali aggiornamenti di sistema e sicurezza.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Puoi controllare questa funzione da Impostazioni &gt; Google. Seleziona Utilizzo e diagnostica dal menu.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Nel tuo account abbiamo trovato <ph name="NUMBER_OF_APPS" /> app che possono essere utilizzate su questo dispositivo.</translation>
 <translation id="7199158086730159431">Ricevi assistenza</translation>
 <translation id="7200083590239651963">Seleziona configurazione</translation>
 <translation id="720110658997053098">Mantieni definitivamente questo dispositivo in modalità kiosk</translation>
@@ -4069,7 +4064,6 @@
 <translation id="7228523857728654909">Blocco schermo e accesso</translation>
 <translation id="7229570126336867161">Occorre EVDO</translation>
 <translation id="7230787553283372882">Personalizza la dimensione del testo</translation>
-<translation id="7231589788477569369">Prova l'esperienza completa con l'assistente grazie a queste impostazioni</translation>
 <translation id="7232750842195536390">Ridenominazione non riuscita</translation>
 <translation id="7234406375359457793">Errore durante il montaggio della condivisione. La condivisione specificata non è supportata.</translation>
 <translation id="7238585580608191973">Impronta digitale SHA-256</translation>
@@ -4079,7 +4073,6 @@
 <translation id="7243632151880336635">Cancella ed esci</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (opzione migliore)</translation>
 <translation id="7246339268451149667">Attivare lo sblocco basato su impronta digitale?</translation>
-<translation id="7246489301073081944">Per uscire, tieni premuto |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />|</translation>
 <translation id="7246947237293279874">Proxy FTP</translation>
 <translation id="725109152065019550">Spiacenti, l'amministratore ha disabilitato l'archiviazione esterna per il tuo account.</translation>
 <translation id="7253521419891527137">&amp;Ulteriori informazioni</translation>
@@ -4232,7 +4225,6 @@
 <translation id="7489605380874780575">Verifica idoneità</translation>
 <translation id="749028671485790643">Persona <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Indirizzo MAC</translation>
-<translation id="7490950320178383728">Utilizza il token di sicurezza con il Bluetooth</translation>
 <translation id="7491962110804786152">Tab</translation>
 <translation id="7493386493263658176">L'estensione <ph name="EXTENSION_NAME" /> potrebbe memorizzare tutto il testo digitato, inclusi dati personali quali password e numeri di carte di credito. Vuoi utilizzare l'estensione?</translation>
 <translation id="7494065396242762445">Apri Impostazioni Windows</translation>
@@ -4480,7 +4472,6 @@
 <translation id="7850851215703745691">Questi file di Drive non sono stati ancora condivisi</translation>
 <translation id="7851457902707056880">L'accesso è consentito soltanto all'account del proprietario. Riavvia ed esegui l'accesso con l'account del proprietario. Il computer si riavvierà automaticamente tra 30 secondi.</translation>
 <translation id="7851716364080026749">Impedisci sempre l'accesso a webcam e microfono</translation>
-<translation id="7851816139220202929">Utilizza il token di sicurezza con NFC</translation>
 <translation id="7853747251428735">Altri strume&amp;nti</translation>
 <translation id="7856006446339184955">Invia dati sul sistema. Questo dispositivo invia automaticamente a Google dati diagnostici e sull'utilizzo delle app e del dispositivo. Questa <ph name="BEGIN_LINK1" />impostazione<ph name="END_LINK1" /> viene applicata dal proprietario. Se hai attivato Attività web e app, queste informazioni vengono memorizzate nel tuo account per consentirti di gestirle nella pagina Le mie attività. <ph name="BEGIN_LINK2" />Ulteriori informazioni<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Aggiungi eccezione</translation>
@@ -4563,6 +4554,7 @@
 <translation id="7973962044839454485">Autenticazione PPP non riuscita a causa di un nome utente o una password sbagliati</translation>
 <translation id="7974566588408714340">Riprova utilizzando <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Overscan</translation>
+<translation id="79766959863778284">Servizio per dispositivi XR isolati</translation>
 <translation id="7977551819349545646">Aggiornamento del Chromebox...</translation>
 <translation id="7978412674231730200">Chiave privata</translation>
 <translation id="7978450511781612192">I tuoi Account Google verranno scollegati e verrà interrotta la sincronizzazione di preferiti, cronologia, password e altro.</translation>
@@ -4613,7 +4605,6 @@
 <translation id="8030656706657716245">Aggiungi stampante</translation>
 <translation id="8032244173881942855">Impossibile trasmettere la scheda.</translation>
 <translation id="8033827949643255796">selezionati</translation>
-<translation id="8033958968890501070">Timeout</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Apri tutti in finestra di navigazione in &amp;incognito}=1{Apri in finestra di navigazione in &amp;incognito}other{Apri tutti (#) in finestra di navigazione in &amp;incognito}}</translation>
 <translation id="8037117027592400564">Lettura di tutto il testo pronunciato utilizzando la sintesi vocale</translation>
 <translation id="8037357227543935929">Chiedi (predefinita)</translation>
@@ -4786,6 +4777,7 @@
 <translation id="8320459152843401447">Il tuo intero schermo</translation>
 <translation id="8322814362483282060">A questa pagina è stato impedito l'accesso al microfono.</translation>
 <translation id="8326478304147373412">PKCS #7, catena di certificati</translation>
+<translation id="8327039559959785305">Errore durante il montaggio di file Linux. Riprova.</translation>
 <translation id="8329978297633540474">Testo normale</translation>
 <translation id="8335587457941836791">Stacca dallo shelf</translation>
 <translation id="8336153091935557858">Ieri alle <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4836,7 +4828,6 @@
 <translation id="8425213833346101688">Cambia</translation>
 <translation id="8425492902634685834">Aggiungi alla barra delle applicazioni</translation>
 <translation id="8425755597197517046">Incolla ed e&amp;segui ricerca</translation>
-<translation id="8426117172745886547">Avvisa prima di uscire (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Attivazione in corso</translation>
 <translation id="8427292751741042100">incorporata su qualsiasi host</translation>
 <translation id="8428213095426709021">Impostazioni</translation>
@@ -4924,7 +4915,6 @@
 <translation id="8551388862522347954">Licenze</translation>
 <translation id="8553342806078037065">Gestisci altre persone</translation>
 <translation id="8554899698005018844">Nessuna lingua</translation>
-<translation id="8557347704037207368">Ricevi notifiche di Android Web Messages</translation>
 <translation id="855773602626431402">È stata impedita l'esecuzione di un plug-in senza sandbox in questa pagina.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Image Decoder</translation>
@@ -5037,6 +5027,7 @@
 <translation id="8714154114375107944">Fine del supporto</translation>
 <translation id="8714838604780058252">Grafica in background</translation>
 <translation id="8715480913140015283">Una scheda in secondo piano sta usando la videocamera</translation>
+<translation id="8716931980467311658">Vuoi eliminare tutti i dati e le applicazioni Linux della cartella File di Linux da questo dispositivo <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Download di <ph name="PLUGIN_NAME" /> non riuscito</translation>
 <translation id="8723829621484579639">Frame secondari modalità di navigazione in incognito per: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">Mo&amp;stra nella cartella</translation>
@@ -5200,7 +5191,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Bloccata</translation>
 <translation id="8983677657449185470">Contribuisci a migliorare Navigazione sicura</translation>
 <translation id="8984654317541110628">URL condivisione file</translation>
-<translation id="8984872292925913496">Individua il PIN di sei cifre sul retro del token</translation>
 <translation id="8986362086234534611">Elimina</translation>
 <translation id="8986494364107987395">Invia automaticamente a Google statistiche sull'utilizzo e rapporti sugli arresti anomali</translation>
 <translation id="8987927404178983737">Mese</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 5611766..e666720f 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">הדגש את האובייקט עם מיקוד המקלדת כשהוא משתנה</translation>
 <translation id="1173894706177603556">שנה שם</translation>
 <translation id="1174073918202301297">קיצור הדרך נוסף</translation>
-<translation id="1174808551768282258">‏אפשר לבטל את נעילת ה-Chromebook באמצעות הטלפון. <ph name="LINK_BEGIN" />מידע נוסף.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">הדפס...</translation>
 <translation id="117624967391683467">מעתיק את <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">‏Google עשויה להשתמש בהיסטוריית הגלישה שלך כדי להתאים אישית את החיפוש, מודעות ושירותים נוספים של Google. אפשר לשנות את ההגדרה הזו בכתובת myaccount.google.com/activitycontrols/search.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">השהה</translation>
 <translation id="1181037720776840403">הסר</translation>
 <translation id="1183237619868651138">לא ניתן להתקין את <ph name="EXTERNAL_CRX_FILE" /> במטמון המקומי.</translation>
-<translation id="1183378459020939734">שנתחיל להתאים את מפתח האבטחה?</translation>
 <translation id="1185924365081634987">כדאי גם לנסות <ph name="GUEST_SIGNIN_LINK_START" />לגלוש כאורח<ph name="GUEST_SIGNIN_LINK_END" /> כדי לתקן את שגיאת הרשת הזו.</translation>
 <translation id="1186771945450942097">הסרת תוכנה מזיקה</translation>
 <translation id="1187722533808055681">הוצאות לא פעילות ממצב שינה</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">‏לא נמצאו התקני Bluetooth</translation>
 <translation id="1306606229401759371">שנה הגדרות</translation>
 <translation id="1307559529304613120">‏אופס! המערכת לא הצליחה לאחסן את אסימון הגישה לטווח ארוך אל ממשק ה-API עבור המכשיר הזה.</translation>
+<translation id="1307931752636661898">‏לא ניתן להציג קובצי Linux</translation>
 <translation id="1313405956111467313">‏תצורה אוטומטית של שרת proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">‏הסימניות, ההיסטוריה והגדרות נוספות יסונכרנו עם חשבון Google שלך.</translation>
@@ -364,6 +363,7 @@
 <translation id="1530838837447122178">פתח את הגדרות המכשיר של העכבר ולוח המגע</translation>
 <translation id="1531004739673299060">חלון אפליקציה</translation>
 <translation id="15373452373711364">סמן עכבר גדול</translation>
+<translation id="1538729222189715449">‏מתבצעת פתיחה של קובצי Linux...</translation>
 <translation id="1540605929960647700">הפעלת מצב הדגמה</translation>
 <translation id="1543284117603151572">‏מיובא מ-Edge</translation>
 <translation id="1545177026077493356">מצב קיוסק אוטומטי</translation>
@@ -539,7 +539,6 @@
 <translation id="1782530111891678861">‏שנה מצב HUD של ממשק המגע</translation>
 <translation id="1784849162047402014">חסר שטח אחסון בדיסק של המכשיר</translation>
 <translation id="1786636458339910689">אחסון שיתופי</translation>
-<translation id="1792161662640298233">מאמת את מפתח האבטחה</translation>
 <translation id="1792619191750875668">תצוגה מורחבת</translation>
 <translation id="1794791083288629568"> שליחת משוב כדי לעזור לנו לפתור את הבעיה.</translation>
 <translation id="1795214765651529549">השתמש בעיצוב קלאסי</translation>
@@ -622,7 +621,6 @@
 <translation id="1910721550319506122">ברוך הבא!</translation>
 <translation id="1914326953223720820">שירות לפתיחת קבצים דחוסים</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">‏בהתאם להגדרות החשבון שלך, חוויית השימוש ב-Assistant עשויה להיות מוגבלת לדברים כמו תוצאות חיפוש באינטרנט, בדיחות ומידע מקומי.</translation>
 <translation id="1916502483199172559">דמות ברירת מחדל אדומה</translation>
 <translation id="1918141783557917887">&amp;קטן יותר</translation>
 <translation id="1919345977826869612">מודעות</translation>
@@ -791,6 +789,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> ב-<ph name="PEPPER_PLUGIN_DOMAIN" /> רוצה גישה למחשב שלך</translation>
 <translation id="2178614541317717477">‏רשות האישורים (CA) בסכנה</translation>
 <translation id="218070003709087997">ציין את מספר העותקים שיש להדפיס (1 עד 999).</translation>
+<translation id="2184515124301515068">‏Chrome יחליט מתי אתרים יכולים להפעיל צלילים (מומלץ)</translation>
 <translation id="2187895286714876935">שגיאת ייבוא של אישור שרת</translation>
 <translation id="2187906491731510095">התוספים עודכנו</translation>
 <translation id="2188881192257509750">פתח את <ph name="APPLICATION" /></translation>
@@ -835,6 +834,7 @@
 <translation id="2241053333139545397">לקרוא ולשנות את הנתונים שלך במספר אתרים</translation>
 <translation id="2242687258748107519">פרטי קובץ</translation>
 <translation id="2243194103992005307">כדי להסיר אפליקציות, צריך לעבור אל 'הגדרות' &gt; 'אפליקציות' או 'מנהל אפליקציות'. לאחר מכן צריך להקיש על האפליקציה שיש להסיר (ייתכן שיהיה צורך להחליק ימינה או שמאלה כדי למצוא את האפליקציה). לסיום, יש להקיש על 'הסרת התקנה' או 'השבתה'.</translation>
+<translation id="224940702122312781">הדף הזה יצרוך הרבה נתונים.</translation>
 <translation id="2249605167705922988">למשל 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">פתח את מציג המערכת</translation>
 <translation id="225163402930830576">רענן רשתות</translation>
@@ -875,14 +875,13 @@
 <translation id="2307462900900812319">הגדר את הרשת</translation>
 <translation id="230927227160767054">דף זה מעוניין להתקין מטפל שירות.</translation>
 <translation id="2309620859903500144">נחסמה הגישה של האתר הזה אל חיישני התנועה או התאורה.</translation>
-<translation id="2311075084924370935">‏כדי לעזור לך עם היומן, התזכורות, הטיסות ועוד, ל-Assistant נדרשות הגדרות לפעילות באינטרנט ובאפליקציות, למידע מהמכשירים שלך ולפעילות קול ואודיו.</translation>
+<translation id="2315414688463285945">‏קרתה שגיאה בקביעת ההגדרה של קובצי Linux. צריך לנסות שוב.</translation>
 <translation id="2315821125498993513">לא ניתן היה להתחבר אל הטלפון. <ph name="LINK_BEGIN" />מידע נוסף.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">לא, תודה</translation>
 <translation id="2317842250900878657">%<ph name="PROGRESS_PERCENT" />הושלמו</translation>
 <translation id="2318143611928805047">גודל נייר</translation>
 <translation id="2318817390901984578">‏כדי להשתמש באפליקציות Android עליך לטעון את ה-<ph name="DEVICE_TYPE" /> ולעדכן אותו.</translation>
 <translation id="2318923050469484167">הפעלה נוכחית במצב גלישה בסתר (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">שימוש במפתח האבטחה ב-<ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">כותרות עליונות ותחתונות</translation>
 <translation id="2325650632570794183">‏סוג קובץ זה אינו נתמך. בקר בחנות האינטרנט של Chrome כדי למצוא יישום שיכול לפתוח קובץ מסוג זה.</translation>
 <translation id="2326931316514688470">&amp;טען אפליקציה מחדש</translation>
@@ -916,7 +915,6 @@
 <translation id="2367199180085172140">הוספת שיתוף קובץ</translation>
 <translation id="2367972762794486313">הצג יישומים</translation>
 <translation id="2369536625682139252">‏כל הנתונים שאוחסנו על-ידי <ph name="SITE" /> יימחקו, מלבד קובצי ה-Cookie.</translation>
-<translation id="237058345584060620">צריך להתאים את המפתח למכשיר זה כדי שניתן יהיה להשתמש בו לכניסה לחשבון</translation>
 <translation id="2371076942591664043">פתח &amp;בסיום</translation>
 <translation id="2377319039870049694">מעבר לתצוגת רשימה</translation>
 <translation id="2377667304966270281">שגיאות חמורות</translation>
@@ -983,7 +981,6 @@
 <translation id="248861575772995840">‏לא ניתן למצוא את הטלפון שלך. יש לוודא שה-Bluetooth מופעל ב-<ph name="DEVICE_TYPE" />. &lt;a&gt;מידע נוסף&lt;/a&gt;</translation>
 <translation id="2489918096470125693">הוסף &amp;תיקיה...</translation>
 <translation id="249113932447298600">מצטערים, המכשיר <ph name="DEVICE_LABEL" /> אינו נתמך בשלב זה.</translation>
-<translation id="2492040222276243256">צריך ללחוץ על הלחצן שבמפתח האבטחה לחיצה ארוכה, של 5 שניות לפחות</translation>
 <translation id="2493021387995458222">בחר "מילה אחת בכל פעם"</translation>
 <translation id="249303669840926644">לא ניתן היה להשלים את הרישום</translation>
 <translation id="2495777824269688114">הכר תכונות נוספות או קבל תשובות לשאלות. בחר '?' כדי לגשת לעזרה.</translation>
@@ -1053,6 +1050,7 @@
 <translation id="2580924999637585241">סך הכל: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">ארוכה</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (פלטפורמה <ph name="PLATFORM_VERSION" />‏) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">הכרטיסייה הזו משתפת את המסך שלך.</translation>
 <translation id="2586657967955657006">לוח</translation>
 <translation id="2586672484245266891">יש להזין כתובת אתר קצרה יותר</translation>
 <translation id="2587922270115112871">‏יצירת משתמש בפיקוח אינה גורמת ליצירת חשבון Google, וההגדרות
@@ -1088,7 +1086,6 @@
 <translation id="2633199387167390344">‏<ph name="NAME" /> משתמש ב-‎<ph name="USAGE" /> MB מנפח הדיסק.</translation>
 <translation id="2633212996805280240">להסיר את "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> לא הצליח להשלים את ההתקנה, אך ימשיך לפעול מתמונת הדיסק שלו.</translation>
-<translation id="2633326789677284179">אפשר למצוא את השם מודפס על החלק האחורי של המפתח</translation>
 <translation id="2635276683026132559">חתימה</translation>
 <translation id="2636625531157955190">‏ל-Chrome אין אפשרות לגשת לתמונה.</translation>
 <translation id="2638087589890736295">יש להזין את ביטוי הסיסמה כדי להתחיל את הסנכרון</translation>
@@ -1256,7 +1253,6 @@
 <translation id="287286579981869940">הוסף את <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">‏כדי שהסיסמאות שלך יהיו זמינות בכל המכשירים, צריך להיכנס ל-Chrome.</translation>
 <translation id="2875698561019555027">‏(דפי שגיאה ב-Chrome)</translation>
-<translation id="2876441201733326392">‏מפתח האבטחה בחיבור USB</translation>
 <translation id="288042212351694283">‏גישה למכשירי Universal 2nd Factor שלך</translation>
 <translation id="2881966438216424900">גישה אחרונה:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> יבצע אתחול ואיפוס בעוד מספר רגעים</translation>
@@ -1324,7 +1320,6 @@
 <translation id="2982970937345031">דיווח באופן אנונימי</translation>
 <translation id="2984337792991268709">היום <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">‏האפשרות לשליטה מלאה על מכשירי MIDI נחסמה עבור דף זה.</translation>
-<translation id="2988599644347283908">‏הערה: כדי לספק לך חוויה מותאמת אישית ומודעות מועילות ייתכן שהמערכת תשמור את הנתונים שנשלטים על-ידי הגדרות אלה ושייעשה בהם שימוש בכל שירות של Google שאליו התחברת. באפשרותך להציג את הנתונים שלך, למחוק אותם ולשנות את ההגדרות בכתובת account.google.com.</translation>
 <translation id="2989474696604907455">לא מחובר</translation>
 <translation id="2989786307324390836">‏בינארי בקידוד DER, אישור יחיד</translation>
 <translation id="2993517869960930405">מידע על היישום</translation>
@@ -1377,7 +1372,6 @@
 <translation id="304826556400666995">ביטול השתקת כרטיסיות</translation>
 <translation id="3053013834507634016">שימוש במפתח אישור </translation>
 <translation id="3057861065630527966">גבה את התמונות והסרטונים</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">הפעלת הקראה</translation>
 <translation id="3061707000357573562">שירות תיקון</translation>
 <translation id="3064410671692449875">אין מספיק נתונים</translation>
@@ -1406,7 +1400,6 @@
 <translation id="3090819949319990166">‏לא ניתן להעתיק קובץ crx חיצוני ל-<ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" מותאם</translation>
 <translation id="3101709781009526431">תאריך ושעה</translation>
-<translation id="3104900172193317662">אישור השימוש במפתח האבטחה</translation>
 <translation id="310671807099593501">‏האתר משתמש ב-Bluetooth</translation>
 <translation id="3115128645424181617">‏לא ניתן למצוא את הטלפון שלך. יש לוודא שהוא נמצא איתך ושהופעל בו Bluetooth.</translation>
 <translation id="3115147772012638511">ממתין למטמון...</translation>
@@ -1490,7 +1483,6 @@
 <translation id="3251759466064201842">&lt;לא חלק מהאישור&gt;</translation>
 <translation id="3254434849914415189">בחר את יישום ברירת המחדל עבור קובצי <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">זיהוי אוטומטי של אזור הזמן מושבת</translation>
-<translation id="3254772308201947812">מתאים לי</translation>
 <translation id="3264544094376351444">‏גופן Sans-Serif</translation>
 <translation id="3264547943200567728">‏נכשל הניסיון להגדיר את הרשת של ה-Chromebox</translation>
 <translation id="3264582393905923483">הקשר</translation>
@@ -1813,7 +1805,6 @@
 <translation id="3735740477244556633">מיון לפי</translation>
 <translation id="3737274407993947948">‏קרתה שגיאה בהתקנת Linux...</translation>
 <translation id="3737536731758327622">ההורדות שלך מופיעות כאן</translation>
-<translation id="3738671331307774213">אימות זהות עוזר להגן על הנתונים הפרטיים שלך</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">לפתוח את <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> יופיע כעת במסוף הניהול</translation>
@@ -1907,6 +1898,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: הסינכרון הושהה</translation>
 <translation id="3860381078714302691">‏ברכות על הצטרפותך אל Hangouts Meet</translation>
+<translation id="3861241522664181545">הדף מושהה.</translation>
 <translation id="3862134173397075045">‏ברוכים הבאים לחוויה של Cast ב-Chrome!</translation>
 <translation id="3862788408946266506">‏במצב קיוסק של Chrome OS, יש להתקין אפליקציות עם מאפיין המניפסט 'kiosk_only'</translation>
 <translation id="3865414814144988605">רזולוציה</translation>
@@ -1921,7 +1913,6 @@
 <translation id="3873315167136380065">כדי להפעיל את האפשרות הזאת, צריך <ph name="BEGIN_LINK" />לאפס את הסנכרון<ph name="END_LINK" /> כדי להסיר את ביטוי הסיסמה של הסנכרון</translation>
 <translation id="3878840326289104869">יוצר משתמש בפיקוח</translation>
 <translation id="3879748587602334249">מנהל ההורדות</translation>
-<translation id="3880709822663530586">‏מפתח האבטחה פועל רק כשה-Bluetooth במכשיר פועל</translation>
 <translation id="3888550877729210209">כתיבת הערות בעזרת <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">‏הוסף OpenVPN / L2TP...</translation>
 <translation id="3893536212201235195">קרא ושנה את הגדרות הנגישות שלך</translation>
@@ -2067,6 +2058,7 @@
 <translation id="4096824249111507322">המערכת מכינה את המודול המאובטח (פעולה זו עשויה להימשך מספר דקות), אנא המתן...</translation>
 <translation id="4099060993766194518">לשחזר את מנוע החיפוש שהוגדר כברירת המחדל?</translation>
 <translation id="4100733287846229632">שטח האחסון במכשיר כמעט נגמר</translation>
+<translation id="4103091233824664032">צריך להזין את הסיסמה כדי להגדיר את נעילת המסך ואת הכניסה</translation>
 <translation id="4104163789986725820">יי&amp;צא...</translation>
 <translation id="4105563239298244027">‏קבל ‎1TB בחינם עם Google Drive</translation>
 <translation id="4107048419833779140">לזהות ולהוציא התקני אחסון</translation>
@@ -2087,7 +2079,6 @@
 <translation id="4136203100490971508">תאורת הלילה תכבה באופן אוטומטי בשעת הזריחה</translation>
 <translation id="4138267921960073861">הצג שמות משתמשים ותמונות במסך הכניסה</translation>
 <translation id="4144218403971135344">‏שיפור איכות הווידאו וחיסכון בחיי הסוללה. תוכן וידאו יופעל רק במסך התומך ב-Cast.</translation>
-<translation id="414599683948988413">‏שימוש במפתח האבטחה באמצעות USB</translation>
 <translation id="4146026355784316281">פתח תמיד באמצעות מציג המערכת</translation>
 <translation id="4146785383423576110">איפוס וניקוי</translation>
 <translation id="4147897805161313378">‏תמונות Google</translation>
@@ -2222,6 +2213,7 @@
 <translation id="4394049700291259645">השבת</translation>
 <translation id="4400367121200150367">כאן יופיעו האתרים שאף פעם אינם שומרים סיסמאות</translation>
 <translation id="4400632832271803360">החזק את מקש מפעיל האפליקציות כדי לשנות את ההתנהגות של מקשי השורה העליונה</translation>
+<translation id="4405117686468554883">‏‎*.jpeg‏, ‎‏‎*.jpg‏, ‎*.png</translation>
 <translation id="4408599188496843485">ע&amp;זרה</translation>
 <translation id="4409697491990005945">שוליים</translation>
 <translation id="4411578466613447185">חותם קוד</translation>
@@ -2270,6 +2262,7 @@
 <translation id="4480590691557335796">‏Chrome יכול לאתר תוכנות מזיקות במחשב ולהסיר אותן</translation>
 <translation id="4481530544597605423">מכשירים לא מותאמים</translation>
 <translation id="4482194545587547824">‏Google עשויה להשתמש בהיסטוריית הגלישה שלך כדי להתאים אישית את החיפוש ושירותים אחרים של Google</translation>
+<translation id="4493287891836751813">‏היכרות עם Google Assistant</translation>
 <translation id="4495419450179050807">אל תציג בדף זה</translation>
 <translation id="4499718683476608392">התכונה 'מילוי אוטומטי' של כרטיסי אשראי יכולה למלא טפסים בקליק אחד</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> קרס</translation>
@@ -2430,6 +2423,7 @@
 <translation id="474217410105706308">השתק כרטיסייה</translation>
 <translation id="4742746985488890273">הצמד למדף</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />איך לעדכן אפליקציות<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">הודעות</translation>
 <translation id="4746971725921104503">נראה שאתה כבר מנהל משתמש בשם הזה. האם רצית <ph name="LINK_START" />לייבא את <ph name="USER_DISPLAY_NAME" /> אל המכשיר הזה<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">‏דרוש תוסף מחנות האינטרנט של Chrome</translation>
 <translation id="4750394297954878236">הצעות</translation>
@@ -2471,6 +2465,7 @@
 <translation id="4821935166599369261">&amp;יצירת פרופילים מופעלת</translation>
 <translation id="4823484602432206655">קריאה ושינוי של הגדרות המשתמש והמכשיר</translation>
 <translation id="4823651846660089135">המכשיר מוגדר לקריאה בלבד</translation>
+<translation id="4823955295535347797">‏כדי לגשת ל-Assistant צריך לומר "OK Google" כשהמסך מופעל.</translation>
 <translation id="4828937774870308359">אוסטרלית</translation>
 <translation id="4829768588131278040">‏הגדר PIN</translation>
 <translation id="4830502475412647084">‏מתקין עדכון OS</translation>
@@ -2511,6 +2506,7 @@
 <translation id="4876273079589074638">עזור למהנדסים שלנו לחקור את הקריסה הזו ולתקן אותה. מומלץ לרשום את השלבים בצורה כמה שיותר מדויקת, גם הפרטים הקטנים ביותר יכולים לעזור.</translation>
 <translation id="4876895919560854374">נעילה ושחרור של המסך</translation>
 <translation id="4877017884043316611">‏התאם ל-Chromebox</translation>
+<translation id="4879491255372875719">אוטומטי (ברירת מחדל)</translation>
 <translation id="4880214202172289027">מחוון עוצמת קול</translation>
 <translation id="4880328057631981605">‏שם נקודת גישה (APN)</translation>
 <translation id="4880520557730313061">תיקון אוטומטי</translation>
@@ -2664,7 +2660,6 @@
 <translation id="5099354524039520280">למעלה</translation>
 <translation id="5100114659116077956">‏על מנת שתקבל את התכונות החדשות ביותר, על ה-Chromebox שלך לעבור עדכון.</translation>
 <translation id="5101042277149003567">פתח את כל הסימניות</translation>
-<translation id="5104546332954397226">שימוש בטלפון כמפתח אבטחה</translation>
 <translation id="5105855035535475848">הצמד כרטיסיות</translation>
 <translation id="5108967062857032718">‏הגדרות - הסר אפליקציות Android</translation>
 <translation id="5109044022078737958">מיה</translation>
@@ -2796,7 +2791,6 @@
 <translation id="5288678174502918605">פתח &amp;מחדש את הכרטיסייה שנסגרה</translation>
 <translation id="52912272896845572">קובץ המפתח הפרטי אינו חוקי</translation>
 <translation id="529175790091471945">פרמט מכשיר זה</translation>
-<translation id="5292195676005197571">אפשר פשוט ללחוץ על הלחצן כדי להשתמש ברוב המפתחות</translation>
 <translation id="5293170712604732402">שחזר את ההגדרות לברירות המחדל המקוריות שלהן</translation>
 <translation id="5297082477358294722">הסיסמה נשמרה. אפשר להציג סיסמאות שמורות ולנהל אותן דרך <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">נושא שנוצר על ידי</translation>
@@ -2822,6 +2816,7 @@
 <translation id="532776649628038357">אני מסכים/ה</translation>
 <translation id="532943162177641444">הקש על ההודעה בטלפון <ph name="PHONE_NAME" /> כדי להגדיר את הנקודה לשיתוף אינטרנט בנייד שבה המכשיר הזה יכול להשתמש.</translation>
 <translation id="5329858601952122676">&amp;מחק</translation>
+<translation id="5329945517224105597">‏ה-Assistant יכול להציע הצעות רלוונטיות יותר ופעולות ספציפיות שקשורות למה שמופיע במסך. ניתן לשנות זאת בהגדרות ה-Assistant.</translation>
 <translation id="5330145655348521461">הקבצים האלה נפתחו בשולחן עבודה אחר. עבור אל <ph name="USER_NAME" />‏ (<ph name="MAIL_ADDRESS" />) כדי להציג אותם.</translation>
 <translation id="5330512191124428349">פרטי קובץ</translation>
 <translation id="5331069282670671859">אין לך אישורים בקטגוריה הזו</translation>
@@ -2866,7 +2861,6 @@
 <translation id="5390100381392048184">מתן הרשאה לאתרים להשמיע צלילים</translation>
 <translation id="5390284375844109566">מסד נתונים שנוסף לאינדקס</translation>
 <translation id="5390743329570580756">שלח עבור</translation>
-<translation id="5392327114396848796">שימוש במפתח אבטחה מובנה</translation>
 <translation id="5397794290049113714">אתה</translation>
 <translation id="5398572795982417028">התייחסות לדף מחוץ לטווח, המגבלה היא <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">מודעות חסומות</translation>
@@ -3074,6 +3068,7 @@
    <ph name="LINE_BREAKS" />
    צריך לסגור את כל הקבצים בארכיון או בדיסק הווירטואלי ולנסות שוב.</translation>
 <translation id="5687326903064479980">אזור זמן</translation>
+<translation id="568824803367507355">‏זיהוי של "Ok Google"</translation>
 <translation id="5689516760719285838">מיקום</translation>
 <translation id="56907980372820799">קשר נתונים</translation>
 <translation id="5691511426247308406">משפחה</translation>
@@ -3171,7 +3166,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - הקלטה במצלמה או במיקרופון</translation>
 <translation id="5835754902560991078">קצרצרה (0.6 שניות)</translation>
 <translation id="5838456317242088717">הפעלה נוכחית במצב גלישה בסתר</translation>
-<translation id="5842053879378944309">‏מפתח האבטחה בחיבור USB שכולל את <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">‏הפעלה של Bluetooth</translation>
 <translation id="5843250171025351504">המכשיר כבר לא תואם לדרישה של גירסת הלקוח המינימלית שצוינה על-ידי מנהל המערכת שלך. יש לעדכן כדי להתחבר.</translation>
 <translation id="5846929185714966548">כרטיסייה 4</translation>
@@ -3489,7 +3483,6 @@
 <translation id="6317318380444133405">התמיכה הופסקה.</translation>
 <translation id="6317369057005134371">ממתין לחלון היישום...</translation>
 <translation id="6318407754858604988">ההורדה התחילה</translation>
-<translation id="6322653941595359182">‏אפשר לשלוח ולקבל הודעות טקסט דרך ה-Chromebook</translation>
 <translation id="6324916366299863871">עריכת קיצור דרך</translation>
 <translation id="6325191661371220117">השבת הפעלה אוטומטית</translation>
 <translation id="6326175484149238433">‏הסר מ-Chrome</translation>
@@ -3533,6 +3526,7 @@
 <translation id="6395423953133416962">שלח <ph name="BEGIN_LINK1" />פרטי מערכת<ph name="END_LINK1" /> ו<ph name="BEGIN_LINK2" />ערכים<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">אפשרויות סינכרון והתאמה אישית</translation>
 <translation id="6397592254427394018">פתח את כל הסימניות בחלון &amp;גלישה בסתר</translation>
+<translation id="639777613761517128">‏כדי לפתוח קבצים בעזרת $1, קודם צריך להעתיק אל תיקיית קובצי ה-Linux.</translation>
 <translation id="6398715114293939307">‏הסרה של חנות Google Play</translation>
 <translation id="6398765197997659313">צא ממסך מלא</translation>
 <translation id="6399774419735315745">מרגלת</translation>
@@ -3558,7 +3552,6 @@
 <translation id="642282551015776456">ייתכן שלא ניתן להשתמש בשם זה כשם קובץ או תיקייה</translation>
 <translation id="642469772702851743">מכשיר זה (מספר סידורי: <ph name="SERIAL_NUMBER" />) ננעל על-ידי הבעלים.</translation>
 <translation id="6426200009596957090">‏פתח את הגדרות ChromeVox</translation>
-<translation id="6427415464407526111">בחירת מפתח האבטחה</translation>
 <translation id="6429384232893414837">שגיאת עדכון</translation>
 <translation id="6430814529589430811">‏ASCII בקידוד Base64, אישור יחיד</translation>
 <translation id="6431217872648827691">‏כל הנתונים הוצפנו באמצעות סיסמת Google שלך החל מ-
@@ -3716,7 +3709,6 @@
 <translation id="6655190889273724601">מצב פיתוח</translation>
 <translation id="6655458902729017087">הסתר חשבונות</translation>
 <translation id="6657585470893396449">סיסמה</translation>
-<translation id="6658023813581644008">‏כדי להגדיר את Smart Lock לכניסה לחשבון, צריך להזין את הסיסמה.</translation>
 <translation id="6659213950629089752">בדף זה בוצע שינוי במרחק התצוגה באמצעות התוסף "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">‏לצערנו, המחשב שלך מוגדר עם זיהוי חומרה פגום. המצב הזה מונע ממערכת ההפעלה של Chrome להתקין את עדכוני האבטחה האחרונים, וייתכן שהמחשב שלך יהיה <ph name="BEGIN_BOLD" />חשוף להתקפות זדוניות<ph name="END_BOLD" />.</translation>
@@ -3852,7 +3844,6 @@
 <translation id="6885771755599377173">תצוגה מקדימה של מידע מערכת</translation>
 <translation id="6886871292305414135">פתח קישור &amp;בכרטיסייה חדשה</translation>
 <translation id="6892812721183419409">פתח קישור בתור <ph name="USER" /></translation>
-<translation id="6896398788631624004">יש לחבר את מפתח האבטחה ולהפעיל אותו</translation>
 <translation id="6896758677409633944">העתק</translation>
 <translation id="6898440773573063262">כעת ניתן להגדיר הפעלה אוטומטית עבור יישומי קיוסק במכשיר הזה.</translation>
 <translation id="6898699227549475383">‏ארגון (O)</translation>
@@ -3871,6 +3862,7 @@
 <translation id="6915804003454593391">משתמש:</translation>
 <translation id="6916590542764765824">נהל תוספים</translation>
 <translation id="6920989436227028121">פתח ככרטיסייה רגילה</translation>
+<translation id="6921709132208495314">הפסקת השימוש בנתונים בדף הזה</translation>
 <translation id="6922128026973287222">‏חסוך בנתונים וגלוש מהר יותר באמצעות חוסך הנתונים (Data Saver) של Google. לחץ לקריאת מידע נוסף.</translation>
 <translation id="6923132443355966645">גלילה / לחיצה</translation>
 <translation id="6930242544192836755">משך החיבור</translation>
@@ -3893,6 +3885,7 @@
 <translation id="6965382102122355670">אישור</translation>
 <translation id="6965648386495488594">יציאה</translation>
 <translation id="6965978654500191972">התקן</translation>
+<translation id="6968288415730398122">הזן את הסיסמה כדי להגדיר את נעילת המסך</translation>
 <translation id="6970480684834282392">סוג הפעלה</translation>
 <translation id="6970856801391541997">הדפסת דפים ספציפיים</translation>
 <translation id="6972180789171089114">אודיו/וידאו</translation>
@@ -3903,6 +3896,7 @@
 <translation id="6978121630131642226">מנועי חיפוש</translation>
 <translation id="6978611942794658017">‏קובץ זה מיועד עבור מחשב אישי המשתמש בתוכנת Windows. הוא אינו מתאים למכשירך שעובד עם מערכת הפעלה של Chrome. חפש יישום חלופי מתאים בחנות האינטרנט של Chrome.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">השתקה (ברירת מחדל)</translation>
 <translation id="6979737339423435258">משחר ההיסטוריה</translation>
 <translation id="6980462514016882061">‏חברת Google עשויה להשתמש בהיסטוריית הגלישה שלך לצורך התאמה אישית של חיפוש Google, מודעות Google ושירותי Google אחרים</translation>
 <translation id="6981982820502123353">נגישות</translation>
@@ -4051,6 +4045,7 @@
 <translation id="7197160646667308890">‏<ph name="BEGIN_PARAGRAPH1" />זהו מידע כללי לגבי המכשיר שלך ואופן השימוש בו (כמו רמת טעינת הסוללה, שימוש באפליקציות ואיכות החיבור לרשת). הנתונים ישמשו כדי לשפר את המוצרים והשירותים של Google בשביל כולם. חלק מהמידע הנצבר יעזור גם לשותפים, כגון מפתחי Android, לשפר את האפליקציות והמוצרים שלהם.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />כיבוי התכונה הזו לא משפיע על היכולת של המכשיר לשלוח מידע הנחוץ לשירותים חיוניים, כמו עדכוני המערכת ואבטחה.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />אפשר לשלוט בתכונה הזו דרך 'הגדרות' &gt; Google. בתפריט יש לבחור באפשרות 'שימוש ואבחון'.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">מצאנו <ph name="NUMBER_OF_APPS" /> אפליקציות מהחשבון שלך שבהן אפשר להשתמש במכשיר הזה.</translation>
 <translation id="7199158086730159431">קבל עזרה</translation>
 <translation id="7200083590239651963">בחירת תצורה</translation>
 <translation id="720110658997053098">השארת המכשיר הזה במצב קיוסק באופן קבוע</translation>
@@ -4071,7 +4066,6 @@
 <translation id="7228523857728654909">נעילת מסך וכניסה</translation>
 <translation id="7229570126336867161">‏יש צורך ב-EVDO</translation>
 <translation id="7230787553283372882">התאם אישית את גודל הטקסט</translation>
-<translation id="7231589788477569369">‏הגדרות אלה יאפשרו לך ליהנות מחוויית Assistant המלאה</translation>
 <translation id="7232750842195536390">המערכת לא הצליחה לשנות את השם</translation>
 <translation id="7234406375359457793">קרתה שגיאה בטעינת התקן הרשת לשיתוף קבצים. ההתקן שצוין אינו נתמך.</translation>
 <translation id="7238585580608191973">‏טביעת אצבע SHA-256</translation>
@@ -4081,7 +4075,6 @@
 <translation id="7243632151880336635">נקה וצא</translation>
 <translation id="7245628041916450754">‏<ph name="WIDTH" /> ‏x ‏<ph name="HEIGHT" /> (הטובה ביותר)</translation>
 <translation id="7246339268451149667">להפעיל ביטול נעילה באמצעות טביעת אצבע?</translation>
-<translation id="7246489301073081944">כדי לצאת, צריך ללחוץ לחיצה ארוכה על |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />|</translation>
 <translation id="7246947237293279874">‏שרת proxy של FTP</translation>
 <translation id="725109152065019550">מצטערים, מנהל המערכת השבית את האחסון החיצוני בחשבונך.</translation>
 <translation id="7253521419891527137">&amp;למידע נוסף</translation>
@@ -4234,7 +4227,6 @@
 <translation id="7489605380874780575">בדוק כשירות</translation>
 <translation id="749028671485790643">אדם <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">‏כתובת MAC</translation>
-<translation id="7490950320178383728">‏שימוש במפתח האבטחה באמצעות Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">תוספי <ph name="EXTENSION_NAME" /> עשויים לתעד את כל הטקסט שאתה מקליד, כולל נתונים אישיים, כמו סיסמאות ומספרי כרטיס אשראי. האם ברצונך להשתמש בתוסף הזה?</translation>
 <translation id="7494065396242762445">‏פתח את הגדרות Windows</translation>
@@ -4481,7 +4473,6 @@
 <translation id="7850851215703745691">‏קובצי Drive אלו עדיין לא משותפים</translation>
 <translation id="7851457902707056880">הכניסה הוגבלה לחשבון הבעלים בלבד. בצע אתחול מחדש והיכנס באמצעות חשבון הבעלים. המחשב יבצע אתחול מחדש אוטומטי בתוך 30 שניות.</translation>
 <translation id="7851716364080026749">חסום תמיד גישה למצלמה ולמיקרופון</translation>
-<translation id="7851816139220202929">‏שימוש במפתח האבטחה באמצעות NFC</translation>
 <translation id="7853747251428735">&amp;כלים נוספים</translation>
 <translation id="7856006446339184955">‏שליחת נתוני מערכת. נכון לעכשיו, המכשיר הזה שולח אל Google באופן אוטומטי נתוני ניתוח ונתוני שימוש במכשיר ובאפליקציות. ה<ph name="BEGIN_LINK1" />הגדרה<ph name="END_LINK1" /> הזו נאכפת על-ידי הבעלים. אם הפעלת פריטים נוספים ב'פעילות באינטרנט ובאפליקציות', המידע הזה יאוחסן בחשבון כדי לאפשר לך לנהל אותו דרך 'הפעילות שלי'. <ph name="BEGIN_LINK2" />מידע נוסף<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">הוסף חריג</translation>
@@ -4564,6 +4555,7 @@
 <translation id="7973962044839454485">‏אימות PPP נכשל בשל שם משתמש או סיסמה שגויים</translation>
 <translation id="7974566588408714340">נסה שוב באמצעות <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">סריקת יתר</translation>
+<translation id="79766959863778284">‏שירות XR למכשיר מבודד</translation>
 <translation id="7977551819349545646">‏מעדכן את Chromebox...</translation>
 <translation id="7978412674231730200">מפתח פרטי</translation>
 <translation id="7978450511781612192">‏הפעולה הזאת תוציא אותך מחשבונות Google שלך. הסימניות, ההיסטוריה, הסיסמאות ופרטים אחרים יפסיקו לעבור סנכרון.</translation>
@@ -4614,7 +4606,6 @@
 <translation id="8030656706657716245">הוסף מדפסת</translation>
 <translation id="8032244173881942855">לא ניתן להעביר את הכרטיסייה.</translation>
 <translation id="8033827949643255796">מסומן</translation>
-<translation id="8033958968890501070">הזמן שהוקצב תם</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{פתח הכל בחלון &amp;גלישה בסתר}=1{פתח בחלון &amp;גלישה בסתר}two{פתח הכל (2) בחלון &amp;גלישה בסתר}many{פתח הכל (#) בחלון &amp;גלישה בסתר}other{פתח הכל (#) בחלון &amp;גלישה בסתר}}</translation>
 <translation id="8037117027592400564">קריאת כל הטקסט הנאמר באמצעות דיבור מסונתז</translation>
 <translation id="8037357227543935929">שאל (ברירת מחדל)</translation>
@@ -4787,6 +4778,7 @@
 <translation id="8320459152843401447">כל המסך שלך</translation>
 <translation id="8322814362483282060">דף זה נחסם לגישה למיקרופון שלך.</translation>
 <translation id="8326478304147373412">‏PKCS #7, שרשרת אישורים</translation>
+<translation id="8327039559959785305">‏קרתה שגיאה בטעינת קובצי ה-Linux. יש לנסות שוב.</translation>
 <translation id="8329978297633540474">טקסט רגיל</translation>
 <translation id="8335587457941836791">הסר את ההצמדה למדף</translation>
 <translation id="8336153091935557858">אתמול <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4837,7 +4829,6 @@
 <translation id="8425213833346101688">שנה</translation>
 <translation id="8425492902634685834">הצמד לשורת המשימות</translation>
 <translation id="8425755597197517046">הד&amp;בק וחפש</translation>
-<translation id="8426117172745886547">אזהרה לפני יציאה (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">מפעיל</translation>
 <translation id="8427292751741042100">מוטמע במארח כלשהו</translation>
 <translation id="8428213095426709021">הגדרות</translation>
@@ -4925,7 +4916,6 @@
 <translation id="8551388862522347954">רישיונות</translation>
 <translation id="8553342806078037065">נהל אנשים אחרים</translation>
 <translation id="8554899698005018844">לא הוגדרה שפה</translation>
-<translation id="8557347704037207368">‏שליחת הודעות אליך דרך Android Web Messages</translation>
 <translation id="855773602626431402">בדף הזה נמנעה הפעלה של פלאגין ללא ארגז חול.</translation>
 <translation id="8557930019681227453">מניפסט</translation>
 <translation id="8559694214572302298">מפענח התמונות</translation>
@@ -5038,6 +5028,7 @@
 <translation id="8714154114375107944">סיום התמיכה</translation>
 <translation id="8714838604780058252">גרפיקת רקע</translation>
 <translation id="8715480913140015283">כרטיסיית הרקע משתמשת במצלמה</translation>
+<translation id="8716931980467311658">‏למחוק את כל האפליקציות ונתוני Linux מתיקיית קובצי Linux ב-<ph name="DEVICE_TYPE" /> הזה?</translation>
 <translation id="8719653885894320876">הורדת <ph name="PLUGIN_NAME" /> נכשלה</translation>
 <translation id="8723829621484579639">תת-מסגרות במצב גלישה בסתר של: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;הצג בתיקייה</translation>
@@ -5201,7 +5192,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - קרס</translation>
 <translation id="8983677657449185470">עזרה בשיפור של גלישה בטוחה</translation>
 <translation id="8984654317541110628">כתובת אתר של התקן רשת לשיתוף קבצים</translation>
-<translation id="8984872292925913496">אפשר למצוא את קוד הגישה בן 6 הספרות בצידו האחורי של המפתח</translation>
 <translation id="8986362086234534611">שכח</translation>
 <translation id="8986494364107987395">‏שלח ל-Google דוחות קריסה וסטטיסטיקת שימוש באופן אוטומטי</translation>
 <translation id="8987927404178983737">חודש</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index f2ebb8f..1cbb6a5 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">キーボード フォーカスの移動に合わせて項目を強調表示する</translation>
 <translation id="1173894706177603556">名前を変更</translation>
 <translation id="1174073918202301297">ショートカットを追加しました</translation>
-<translation id="1174808551768282258">スマートフォンで Chromebook のロックを解除します。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">印刷(&amp;P)...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> をコピーしています...</translation>
 <translation id="1177138678118607465">検索、広告、その他の Google サービスをカスタマイズする目的で、閲覧履歴が Google に使用されることがあります。この設定は myaccount.google.com/activitycontrols/search でいつでも変更できます</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">一時停止</translation>
 <translation id="1181037720776840403">削除</translation>
 <translation id="1183237619868651138">ローカル キャッシュの <ph name="EXTERNAL_CRX_FILE" /> はインストールできません。</translation>
-<translation id="1183378459020939734">セキュリティ キーをペア設定する準備はできましたか?</translation>
 <translation id="1185924365081634987">このネットワーク エラーを解決するには、<ph name="GUEST_SIGNIN_LINK_START" />ゲストとしてブラウジング<ph name="GUEST_SIGNIN_LINK_END" />もお試しください。</translation>
 <translation id="1186771945450942097">有害なソフトウェアの削除</translation>
 <translation id="1187722533808055681">アイドル状態からの復帰</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Bluetooth デバイスが見つかりませんでした</translation>
 <translation id="1306606229401759371">設定を変更</translation>
 <translation id="1307559529304613120">このデバイスの長期 API アクセス トークンを保存できませんでした。</translation>
+<translation id="1307931752636661898">[Linux ファイル] を表示できません</translation>
 <translation id="1313405956111467313">自動プロキシ設定</translation>
 <translation id="131364520783682672">CapsLock</translation>
 <translation id="1313705515580255288">ブックマークや履歴などの設定が Google アカウントに同期されます。</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">マウスとタッチパッドのデバイス設定を開く</translation>
 <translation id="1531004739673299060">アプリケーション ウィンドウ</translation>
 <translation id="15373452373711364">大きいマウス カーソル</translation>
+<translation id="1538729222189715449">[Linux ファイル] を開いています...</translation>
 <translation id="1540605929960647700">デモモードの有効化</translation>
 <translation id="1543284117603151572">Edge からインポート</translation>
 <translation id="1545177026077493356">自動キオスク モード</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">タッチ HUD のモードを変更</translation>
 <translation id="1784849162047402014">端末のディスク空き領域が少なくなっています</translation>
 <translation id="1786636458339910689">チームドライブ</translation>
-<translation id="1792161662640298233">セキュリティ キーの確認中</translation>
 <translation id="1792619191750875668">拡張ディスプレイ</translation>
 <translation id="1794791083288629568">フィードバックを送信して問題解決に協力する。</translation>
 <translation id="1795214765651529549">クラシックを使用</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">ようこそ!</translation>
 <translation id="1914326953223720820">解凍サービス</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">アカウントの設定に応じて、アシスタントで利用できるサービスがウェブ検索、ジョーク、地域の情報など一部のみに限定される場合があります。</translation>
 <translation id="1916502483199172559">デフォルトの赤のアバター</translation>
 <translation id="1918141783557917887">縮小(&amp;S)</translation>
 <translation id="1919345977826869612">広告</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_DOMAIN" /> の <ph name="PEPPER_PLUGIN_NAME" /> プラグインから、パソコンへのアクセス許可を求められています</translation>
 <translation id="2178614541317717477">認証局が侵害された</translation>
 <translation id="218070003709087997">印刷部数を数値(1~999)で指定してください。</translation>
+<translation id="2184515124301515068">サイトで音声が再生される可能性がある場合、Chrome で自動的に許可またはブロックする(推奨)</translation>
 <translation id="2187895286714876935">サーバー証明書インポート エラー</translation>
 <translation id="2187906491731510095">拡張機能が更新されました</translation>
 <translation id="2188881192257509750"><ph name="APPLICATION" /> を開く</translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">多数のウェブサイト上にある自分のデータの読み取りと変更</translation>
 <translation id="2242687258748107519">ファイル情報</translation>
 <translation id="2243194103992005307">アプリを削除するには、まず [設定] &gt; [アプリ] または [アプリケーション管理] に移動して、アンインストールするアプリをタップします(必要に応じて、左右にスワイプしてアプリを見つけます)。次に、[アンインストール] または [無効にする] をタップします。</translation>
+<translation id="224940702122312781">このページでは大量のデータが使用されます。</translation>
 <translation id="2249605167705922988">例 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">システム ビューアで開く</translation>
 <translation id="225163402930830576">ネットワークを更新</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">ネットワークを設定</translation>
 <translation id="230927227160767054">このページはサービス ハンドラのインストールを求めています。</translation>
 <translation id="2309620859903500144">このサイトではモーション センサーまたは光センサーへのアクセスがブロックされています。</translation>
-<translation id="2311075084924370935">カレンダー、リマインダー、フライトなどの情報をアシスタントで利用するには、ウェブとアプリのアクティビティ、端末情報、音声アクティビティの設定が必要です。</translation>
+<translation id="2315414688463285945">[Linux ファイル] の設定中にエラーが発生しました。もう一度お試しください。</translation>
 <translation id="2315821125498993513">スマートフォンに接続できませんでした。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">いいえ</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% 完了</translation>
 <translation id="2318143611928805047">用紙サイズ</translation>
 <translation id="2318817390901984578">Android アプリを使用するには、<ph name="DEVICE_TYPE" /> を充電し、アップデートを行ってください。</translation>
 <translation id="2318923050469484167">現在のシークレット モード セッション(<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">「<ph name="APP_NAME" />」でセキュリティ キーを使用</translation>
 <translation id="2322193970951063277">ヘッダーとフッター</translation>
 <translation id="2325650632570794183">このファイル形式はサポートされていません。Chrome ウェブストアにアクセスして、この形式のファイルを開くことができるアプリをお探しください。</translation>
 <translation id="2326931316514688470">アプリを再読み込み(&amp;R)</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">ファイル共有を追加</translation>
 <translation id="2367972762794486313">アプリを表示</translation>
 <translation id="2369536625682139252"><ph name="SITE" /> により保存された、Cookie 以外の全データが削除されます。</translation>
-<translation id="237058345584060620">アカウントへのログインに使用できるように、キーをこの端末とペア設定します</translation>
 <translation id="2371076942591664043">ダウンロードしたら開く(&amp;D)</translation>
 <translation id="2377319039870049694">リスト表示に切り替え</translation>
 <translation id="2377667304966270281">ハードの障害数</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">スマートフォンが見つかりません。<ph name="DEVICE_TYPE" /> で Bluetooth がオンになっていることを確認してください。&lt;a&gt;詳細&lt;/a&gt;</translation>
 <translation id="2489918096470125693">フォルダを追加(&amp;F)...</translation>
 <translation id="249113932447298600">デバイス <ph name="DEVICE_LABEL" /> は現在サポートされていません。</translation>
-<translation id="2492040222276243256">セキュリティ キーのボタンを 5 秒以上押し続けます</translation>
 <translation id="2493021387995458222">「一度に 1 語」選択する</translation>
 <translation id="249303669840926644">登録を完了できませんでした</translation>
 <translation id="2495777824269688114">新しい機能を見つけたり、疑問の答えを探したりするには、[?] を選択してヘルプを表示します。</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">印刷総数: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">長い</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" />(プラットフォーム <ph name="PLATFORM_VERSION" />)<ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">このタブではデスクトップ画面が共有されます。</translation>
 <translation id="2586657967955657006">クリップボード</translation>
 <translation id="2586672484245266891">URL を短くしてください</translation>
 <translation id="2587922270115112871">監視対象ユーザーを作成しても Google アカウントは作成されません。監視対象ユーザーの設定と
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> は <ph name="USAGE" /> MB のディスク領域を使用しています。</translation>
 <translation id="2633212996805280240">「<ph name="EXTENSION_NAME" />」を削除しますか?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> のインストールを完了できませんでした。ただし、今後もディスク イメージから実行できます。</translation>
-<translation id="2633326789677284179">キーの背面に記載されている名前を確認します</translation>
 <translation id="2635276683026132559">署名</translation>
 <translation id="2636625531157955190">Chrome から画像にアクセスできません。</translation>
 <translation id="2638087589890736295">同期を開始するには、パスフレーズが必要です</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> を追加...</translation>
 <translation id="2874343608108773609">お使いのどの端末でも同じパスワードを使用するには、Chrome にログインします。</translation>
 <translation id="2875698561019555027">(Chrome エラーページ)</translation>
-<translation id="2876441201733326392">USB セキュリティ キーを使用する</translation>
 <translation id="288042212351694283">U2F(Universal 2nd Factor)デバイスにアクセスできませんでした。</translation>
 <translation id="2881966438216424900">最終アクセス日:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> の再起動とリセットを行います</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">匿名で報告</translation>
 <translation id="2984337792991268709">今日 <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">このページは MIDI デバイスのフル コントロールが許可されていません。</translation>
-<translation id="2988599644347283908">注: この設定で管理するデータは、アカウントに基づく情報や便利な広告を提供する目的で、ログインしている Google サービスに保存され、使用されることがあります。データの確認、削除、設定の変更は、account.google.com で行うことができます。</translation>
 <translation id="2989474696604907455">接続されていません</translation>
 <translation id="2989786307324390836">DER エンコード バイナリ形式の単一の証明書</translation>
 <translation id="2993517869960930405">アプリ情報</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">タブのミュートを解除</translation>
 <translation id="3053013834507634016">証明書キーの用途</translation>
 <translation id="3057861065630527966">写真や動画をバックアップします</translation>
-<translation id="3059313675706898490">Android メッセージ</translation>
 <translation id="3060379269883947824">「選択して読み上げ」を有効にする</translation>
 <translation id="3061707000357573562">サービスへのパッチの適用</translation>
 <translation id="3064410671692449875">データが不足しています</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">外部の crx ファイルは <ph name="TEMP_CRX_FILE" /> にコピーできません。</translation>
 <translation id="3090871774332213558">「<ph name="DEVICE_NAME" />」がペア設定されました</translation>
 <translation id="3101709781009526431">日時</translation>
-<translation id="3104900172193317662">セキュリティ キーの使用を許可</translation>
 <translation id="310671807099593501">サイトで Bluetooth が使用されています</translation>
 <translation id="3115128645424181617">スマートフォンが見つかりません。スマートフォンが手の届く範囲にあり、Bluetooth がオンになっていることを確認してください。</translation>
 <translation id="3115147772012638511">キャッシュを待機しています...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;証明書に含まれていません&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> ファイルのデフォルト アプリを選択:</translation>
 <translation id="3254516606912442756">タイムゾーンの自動検出が無効です</translation>
-<translation id="3254772308201947812">有効にする</translation>
 <translation id="3264544094376351444">Sans Serif フォント</translation>
 <translation id="3264547943200567728">Chromebox のネットワークを設定できませんでした</translation>
 <translation id="3264582393905923483">コンテキスト</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">並べ替え</translation>
 <translation id="3737274407993947948">Linux のインストール中にエラーが発生しました...</translation>
 <translation id="3737536731758327622">ダウンロードがここに表示されます</translation>
-<translation id="3738671331307774213">本人確認をすることで、個人データを保護できます</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> を開きますか?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> は管理コンソールに表示されます</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: 同期が一時停止されています</translation>
 <translation id="3860381078714302691">ハングアウト Meet へようこそ</translation>
+<translation id="3861241522664181545">ページの読み込みが一時停止されました。</translation>
 <translation id="3862134173397075045">Chrome のキャスト エクスペリエンスへようこそ</translation>
 <translation id="3862788408946266506">「kiosk_only」のマニフェスト属性が指定されているアプリは、Chrome OS キオスクモードでインストールする必要があります。</translation>
 <translation id="3865414814144988605">解像度</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">この設定をオンにするには、<ph name="BEGIN_LINK" />同期をリセット<ph name="END_LINK" />して同期パスフレーズを削除します</translation>
 <translation id="3878840326289104869">監視対象ユーザーを作成しています</translation>
 <translation id="3879748587602334249">ダウンロード マネージャ</translation>
-<translation id="3880709822663530586">セキュリティ キーは端末の Bluetooth がオンになっている場合にのみ機能します</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> でメモをとる</translation>
 <translation id="3892414795099177503">OpenVPN / L2TP を追加...</translation>
 <translation id="3893536212201235195">ユーザー補助設定の読み取りと変更</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">セキュア モジュールを準備しています。しばらくお待ちください。これには数分かかることがあります。</translation>
 <translation id="4099060993766194518">既定の検索エンジンに戻しますか?</translation>
 <translation id="4100733287846229632">端末の空き領域が非常に少なくなっています</translation>
+<translation id="4103091233824664032">画面ロックとログインを設定するにはパスワードを入力します</translation>
 <translation id="4104163789986725820">エクスポート(&amp;X)</translation>
 <translation id="4105563239298244027">Google ドライブは 1TB まで無料</translation>
 <translation id="4107048419833779140">ストレージ デバイスの認識と取り外し</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">読書灯は日の出時刻に自動的にオフになります</translation>
 <translation id="4138267921960073861">ログイン ページにユーザー名と写真を表示する</translation>
 <translation id="4144218403971135344">動画の品質を向上させ、バッテリー消費を抑えます。動画はキャスト対応のスクリーンでのみ再生されます。</translation>
-<translation id="414599683948988413">USB でセキュリティ キーを使用する</translation>
 <translation id="4146026355784316281">常にシステム ビューアで開く</translation>
 <translation id="4146785383423576110">リセットとクリーンアップ</translation>
 <translation id="4147897805161313378">Google フォト</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">無効にする</translation>
 <translation id="4400367121200150367">パスワードを保存していないサイトがここに表示されます</translation>
 <translation id="4400632832271803360">キーボードの最上段にあるキーの動作を切り替えるには、ランチャー キーを押したままにします</translation>
+<translation id="4405117686468554883">*.jpeg、*.jpg、*.png</translation>
 <translation id="4408599188496843485">ヘルプ(&amp;H)</translation>
 <translation id="4409697491990005945">余白</translation>
 <translation id="4411578466613447185">コードの署名者</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome で、パソコン上の有害なソフトウェアを探して削除することができます</translation>
 <translation id="4481530544597605423">ペア設定されていないデバイス</translation>
 <translation id="4482194545587547824">検索やその他の Google サービスをカスタマイズする目的で、Google が閲覧履歴を使用することがあります</translation>
+<translation id="4493287891836751813">いつでもどこでも。あなただけのGoogleアシスタント</translation>
 <translation id="4495419450179050807">このページに表示しない</translation>
 <translation id="4499718683476608392">フォームにクレジット カード情報をワンクリックで自動入力できるようにします</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> で問題が発生しました</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">タブをミュート</translation>
 <translation id="4742746985488890273">シェルフに固定</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />アプリケーションの更新方法を確認<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">メッセージ</translation>
 <translation id="4746971725921104503">既にその名前でユーザーを管理しているようです。<ph name="LINK_START" />このデバイスに <ph name="USER_DISPLAY_NAME" /> をインポート<ph name="LINK_END" />してもよろしいですか?</translation>
 <translation id="4748762018725435655">Chrome ウェブストアから拡張機能を取得する必要があります</translation>
 <translation id="4750394297954878236">候補</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">プロファイル記録の開始(&amp;P)</translation>
 <translation id="4823484602432206655">ユーザー設定とデバイス設定の読み取りと変更</translation>
 <translation id="4823651846660089135">デバイスは読み取り専用です</translation>
+<translation id="4823955295535347797">画面がオンの状態で「OK Google」と話すといつでもアシスタントにアクセスできます。</translation>
 <translation id="4828937774870308359">逆方向</translation>
 <translation id="4829768588131278040">PIN を設定</translation>
 <translation id="4830502475412647084">OS アップデートのインストール中</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">このクラッシュについて迅速に調査、解決できるよう、具体的な操作についてできるだけ詳しくご説明ください。</translation>
 <translation id="4876895919560854374">画面のロックとロック解除</translation>
 <translation id="4877017884043316611">Chromebox のペア設定</translation>
+<translation id="4879491255372875719">自動(デフォルト)</translation>
 <translation id="4880214202172289027">音量スライダー</translation>
 <translation id="4880328057631981605">アクセス ポイント名</translation>
 <translation id="4880520557730313061">自動修正</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">上</translation>
 <translation id="5100114659116077956">最新の機能を使用するには Chromebox を更新する必要があります。</translation>
 <translation id="5101042277149003567">すべてのブックマークを開く</translation>
-<translation id="5104546332954397226">スマートフォンをセキュリティ キーとして使用する</translation>
 <translation id="5105855035535475848">複数のタブを固定</translation>
 <translation id="5108967062857032718">設定 - Android アプリの削除</translation>
 <translation id="5109044022078737958">ミア</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">閉じたタブを開く(&amp;E)</translation>
 <translation id="52912272896845572">秘密鍵ファイルが無効です。</translation>
 <translation id="529175790091471945">このデバイスをフォーマット</translation>
-<translation id="5292195676005197571">ほとんどのキーはボタンを押すだけで使用できます</translation>
 <translation id="5293170712604732402">設定を元の既定値に戻します</translation>
 <translation id="5297082477358294722">パスワードが保存されました。保存パスワードの表示と管理は <ph name="SAVED_PASSWORDS_STORE" /> で行えます。</translation>
 <translation id="5298219193514155779">テーマの作成者:</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">同意する</translation>
 <translation id="532943162177641444">「<ph name="PHONE_NAME" />」で通知をタップして、この端末で使用できるモバイル アクセス ポイントを設定してください。</translation>
 <translation id="5329858601952122676">削除(&amp;D)</translation>
+<translation id="5329945517224105597">アシスタントでは、画面上のアイテムに関連したおすすめ情報や操作を提案できます。動作を変更するにはアシスタントの設定で行ってください。</translation>
 <translation id="5330145655348521461">これらのファイルは別のデスクトップで開かれます。表示するには <ph name="USER_NAME" />(<ph name="MAIL_ADDRESS" />)に移動してください。</translation>
 <translation id="5330512191124428349">情報を見る</translation>
 <translation id="5331069282670671859">このカテゴリの証明書はありません</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">音声の再生をサイトに許可する</translation>
 <translation id="5390284375844109566">Indexed Database</translation>
 <translation id="5390743329570580756">送信先</translation>
-<translation id="5392327114396848796">組み込みのセキュリティ キーを使用する</translation>
 <translation id="5397794290049113714">あなた</translation>
 <translation id="5398572795982417028">範囲外のページを参照しています。上限は <ph name="MAXIMUM_PAGE" /> です。</translation>
 <translation id="5398772614898833570">広告がブロックされました</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    アーカイブまたは仮想ディスク上のすべてのファイルを閉じてから、もう一度お試しください。</translation>
 <translation id="5687326903064479980">タイムゾーン</translation>
+<translation id="568824803367507355">「OK Google」の検出</translation>
 <translation id="5689516760719285838">現在地</translation>
 <translation id="56907980372820799">データをリンク</translation>
 <translation id="5691511426247308406">ファミリー</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - カメラまたはマイクで記録中です</translation>
 <translation id="5835754902560991078">極めて短い(0.6 秒)</translation>
 <translation id="5838456317242088717">現在のシークレット モード セッション</translation>
-<translation id="5842053879378944309">「<ph name="APP_NAME" />」で USB セキュリティ キーを使用します</translation>
 <translation id="5842497610951477805">Bluetooth 有効</translation>
 <translation id="5843250171025351504">お使いの端末は、管理者が指定した最小クライアント バージョンの要件を満たしていません。ログインするにはアップデートしてください。</translation>
 <translation id="5846929185714966548">タブ 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">サポートが終了しています。</translation>
 <translation id="6317369057005134371">アプリケーション ウィンドウを待機しています...</translation>
 <translation id="6318407754858604988">ダウンロードを開始しました</translation>
-<translation id="6322653941595359182">Chromebook でテキスト メッセージを送受信します</translation>
 <translation id="6324916366299863871">ショートカットの編集</translation>
 <translation id="6325191661371220117">自動起動を無効にする</translation>
 <translation id="6326175484149238433">Chrome から削除</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />システム情報<ph name="END_LINK1" />と<ph name="BEGIN_LINK2" />指標データ<ph name="END_LINK2" />を送信する</translation>
 <translation id="6397094776139756010">同期とカスタマイズのオプション</translation>
 <translation id="6397592254427394018">すべてのブックマークをシークレット ウィンドウで開く(&amp;I)</translation>
+<translation id="639777613761517128">$1 でファイルを開くには、まず [Linux ファイル] フォルダにコピーします。</translation>
 <translation id="6398715114293939307">Google Play ストアを削除</translation>
 <translation id="6398765197997659313">全画面表示を終了</translation>
 <translation id="6399774419735315745">スパイ</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">この名前はフォルダのファイル名として使用できません</translation>
 <translation id="642469772702851743">この端末(SN: <ph name="SERIAL_NUMBER" />)は所有者によってロックされています。</translation>
 <translation id="6426200009596957090">ChromeVox 設定を開く</translation>
-<translation id="6427415464407526111">セキュリティ キーの選択</translation>
 <translation id="6429384232893414837">更新エラー</translation>
 <translation id="6430814529589430811">Base64 エンコード ASCII 形式の単一の証明書</translation>
 <translation id="6431217872648827691">すべてのデータは次の日付に Google パスワードで暗号化されました
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">デベロッパー モード</translation>
 <translation id="6655458902729017087">アカウントを非表示にする</translation>
 <translation id="6657585470893396449">パスワード</translation>
-<translation id="6658023813581644008">ログイン用に Smart Lock を設定するには、パスワードを入力してください</translation>
 <translation id="6659213950629089752">このページには「<ph name="NAME" />」拡張機能によるズームが適用されています</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">パソコンに設定されているハードウェア ID の形式が正しくありません。このため、Chrome OS に最新のセキュリティ修正を適用することができません。お使いのパソコンは、<ph name="BEGIN_BOLD" />悪意のある攻撃を受けやすくなる可能性があります<ph name="END_BOLD" />。</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">システム情報のプレビュー</translation>
 <translation id="6886871292305414135">新しいタブで開く(&amp;T)</translation>
 <translation id="6892812721183419409"><ph name="USER" /> としてリンクを開く</translation>
-<translation id="6896398788631624004">セキュリティ キーを差し込み、有効にしてください</translation>
 <translation id="6896758677409633944">コピー</translation>
 <translation id="6898440773573063262">このデバイスでキオスク アプリケーションが自動起動するように設定できるようになりました。</translation>
 <translation id="6898699227549475383">組織(O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">ユーザー:</translation>
 <translation id="6916590542764765824">拡張機能を管理</translation>
 <translation id="6920989436227028121">通常のタブとして開く</translation>
+<translation id="6921709132208495314">このページでデータの使用を停止する</translation>
 <translation id="6922128026973287222">Google データセーバーを使うとデータの保存や閲覧が速くなります。クリックして詳細をご確認ください。</translation>
 <translation id="6923132443355966645">スクロール / クリック</translation>
 <translation id="6930242544192836755">接続時間</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">ポート</translation>
 <translation id="6965978654500191972">デバイス</translation>
+<translation id="6968288415730398122">画面ロックを設定するにはパスワードを入力します</translation>
 <translation id="6970480684834282392">起動タイプ</translation>
 <translation id="6970856801391541997">指定したページを印刷</translation>
 <translation id="6972180789171089114">音声または動画</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">検索エンジン</translation>
 <translation id="6978611942794658017">このファイルは Windows ソフトウェアを使用する PC 用に作成されています。Chrome OS を実行するデバイスとは互換性がありません。Chrome ウェブストアで代わりのアプリをお探しください。</translation>
 <translation id="6979158407327259162">Google ドライブ</translation>
+<translation id="6979440798594660689">ミュート(デフォルト)</translation>
 <translation id="6979737339423435258">全期間</translation>
 <translation id="6980462514016882061">検索、広告、その他の Google サービスをカスタマイズする目的で、Google が閲覧履歴を使用することがあります</translation>
 <translation id="6981982820502123353">ユーザー補助機能</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />これは、お使いの端末とその使用状況(電池残量、アプリの利用、ネットワーク接続など)に関する一般的な情報です。データは Google のプロダクトとサービスの改善に使用されます。また一部の集計情報は、Android デベロッパーのようなパートナーが提供するアプリやプロダクトの改善にも役立てられます。<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />この機能をオフにしても、端末でシステム アップデートやセキュリティといった重要なサービスに必要な情報が送信されなくなるわけではありません。<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />この機能は、[設定] &gt; [Google] に移動し、メニューから [使用状況と診断情報] を選択して管理できます。<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">お使いのアカウントから、この端末で使用できるアプリが <ph name="NUMBER_OF_APPS" /> 個見つかりました。</translation>
 <translation id="7199158086730159431">ヘルプ(&amp;E)</translation>
 <translation id="7200083590239651963">設定の選択</translation>
 <translation id="720110658997053098">この端末をキオスクモードに固定する</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">画面ロックとログイン</translation>
 <translation id="7229570126336867161">EVDO が必要です</translation>
 <translation id="7230787553283372882">テキストサイズをカスタマイズします</translation>
-<translation id="7231589788477569369">この設定を使うとアシスタントを最大限に活用できます</translation>
 <translation id="7232750842195536390">名前を変更できませんでした</translation>
 <translation id="7234406375359457793">共有フォルダのマウントエラー。指定された共有フォルダはサポートされていません。</translation>
 <translation id="7238585580608191973">SHA-256 指紋</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">削除してログアウト</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" />x<ph name="HEIGHT" />(最適)</translation>
 <translation id="7246339268451149667">指紋によるロック解除を有効にしますか?</translation>
-<translation id="7246489301073081944">終了するには |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| キーを押します</translation>
 <translation id="7246947237293279874">FTP プロキシ</translation>
 <translation id="725109152065019550">このアカウントでの外部ストレージの使用は、管理者によって無効にされています。</translation>
 <translation id="7253521419891527137">詳細(&amp;L)</translation>
@@ -4237,7 +4230,6 @@
 <translation id="7489605380874780575">対象かどうかチェック</translation>
 <translation id="749028671485790643">ユーザー <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC アドレス</translation>
-<translation id="7490950320178383728">Bluetooth でセキュリティ キーを使用する</translation>
 <translation id="7491962110804786152">タブ</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> 拡張機能では、パスワードやクレジット カード番号などの個人データを含むすべての入力テキストが収集される可能性があります。この拡張機能を使用しますか?</translation>
 <translation id="7494065396242762445">Windows の設定を開く</translation>
@@ -4487,7 +4479,6 @@
 <translation id="7850851215703745691">未共有のドライブ ファイル</translation>
 <translation id="7851457902707056880">ログインは所有者アカウントのみに制限されています。再起動して、所有者アカウントでログインしてください。30 秒後に自動的に再起動します。</translation>
 <translation id="7851716364080026749">カメラとマイクへのアクセスを常にブロックする</translation>
-<translation id="7851816139220202929">NFC でセキュリティ キーを使用する</translation>
 <translation id="7853747251428735">その他のツール(&amp;L)</translation>
 <translation id="7856006446339184955">システムデータを送信します。この端末では現在、診断データと端末およびアプリの使用状況データが Google に自動送信されるように設定されています。この<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />は所有者によって指定されています。これに加えて [ウェブとアプリのアクティビティ] をオンにすると、この情報がアカウントに保存され、[マイ アクティビティ] で管理できるようになります。<ph name="BEGIN_LINK2" />詳細<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">例外を追加</translation>
@@ -4570,6 +4561,7 @@
 <translation id="7973962044839454485">ユーザー名またはパスワードが正しくないため、PPP 認証に失敗しました</translation>
 <translation id="7974566588408714340">「<ph name="EXTENSIONNAME" />」で再試行</translation>
 <translation id="7974936243149753750">オーバースキャン</translation>
+<translation id="79766959863778284">XR 分離端末サービス</translation>
 <translation id="7977551819349545646">Chromebox を更新中...</translation>
 <translation id="7978412674231730200">秘密鍵</translation>
 <translation id="7978450511781612192">この操作を行うと Google アカウントからログアウトし、ブックマーク、履歴、パスワードなどの設定は同期されなくなります。</translation>
@@ -4620,7 +4612,6 @@
 <translation id="8030656706657716245">プリンタを追加</translation>
 <translation id="8032244173881942855">タブをキャストできません。</translation>
 <translation id="8033827949643255796">選択しました</translation>
-<translation id="8033958968890501070">タイムアウト</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{すべてをシークレット ウィンドウで開く(&amp;I)}=1{シークレット ウィンドウで開く(&amp;I)}other{すべて(# 件)をシークレット ウィンドウで開く(&amp;I)}}</translation>
 <translation id="8037117027592400564">合成音声で読み上げたすべてのテキストの読み取り</translation>
 <translation id="8037357227543935929">確認(デフォルト)</translation>
@@ -4793,6 +4784,7 @@
 <translation id="8320459152843401447">あなたの全画面</translation>
 <translation id="8322814362483282060">このページはマイクへのアクセスを禁止されています。</translation>
 <translation id="8326478304147373412">PKCS #7、証明書チェーン</translation>
+<translation id="8327039559959785305">[Linux ファイル] のマウント中にエラーが発生しました。もう一度お試しください。</translation>
 <translation id="8329978297633540474">テキスト</translation>
 <translation id="8335587457941836791">シェルフの固定解除</translation>
 <translation id="8336153091935557858">昨日 <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4843,7 +4835,6 @@
 <translation id="8425213833346101688">変更</translation>
 <translation id="8425492902634685834">タスクバーに固定</translation>
 <translation id="8425755597197517046">貼り付けて検索(&amp;S)</translation>
-<translation id="8426117172745886547">終了前に警告メッセージを表示する(<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">有効にしています</translation>
 <translation id="8427292751741042100">ホストに埋め込まれたページ</translation>
 <translation id="8428213095426709021">設定</translation>
@@ -4931,7 +4922,6 @@
 <translation id="8551388862522347954">ライセンス</translation>
 <translation id="8553342806078037065">他のユーザーを管理</translation>
 <translation id="8554899698005018844">言語設定なし</translation>
-<translation id="8557347704037207368">Android ウェブ メッセージからの通知を送信します</translation>
 <translation id="855773602626431402">このページでのサンドボックスの無効化プラグインの実行がブロックされました。</translation>
 <translation id="8557930019681227453">マニフェスト</translation>
 <translation id="8559694214572302298">イメージ デコーダー</translation>
@@ -5044,6 +5034,7 @@
 <translation id="8714154114375107944">サポートの終了</translation>
 <translation id="8714838604780058252">背景のグラフィック</translation>
 <translation id="8715480913140015283">バックグラウンドのタブでカメラが使用されています</translation>
+<translation id="8716931980467311658">[Linux ファイル] フォルダのすべての Linux アプリケーションとデータをこの <ph name="DEVICE_TYPE" /> から削除しますか?</translation>
 <translation id="8719653885894320876"><ph name="PLUGIN_NAME" /> をダウンロードできませんでした</translation>
 <translation id="8723829621484579639">次のシークレット サブフレーム: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">フォルダを開く(&amp;S)</translation>
@@ -5207,7 +5198,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - クラッシュしました</translation>
 <translation id="8983677657449185470">セーフ ブラウジングの改善に協力する</translation>
 <translation id="8984654317541110628">ファイル共有 URL</translation>
-<translation id="8984872292925913496">キーの背面に記載されている 6 桁の PIN を確認します</translation>
 <translation id="8986362086234534611">切断</translation>
 <translation id="8986494364107987395">使用統計データと障害レポートを Google に自動送信します</translation>
 <translation id="8987927404178983737">月</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index beb3da7..05540ded 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -114,7 +114,6 @@
 <translation id="1171135284592304528">ಆಬ್ಜೆಕ್ಟ್ ಬದಲಾದಾಗ ಕೀಬೋರ್ಡ್ ಫೋಕಸ್ ಬಳಸಿಕೊಂಡು ಅದನ್ನು ಹೈಲೈಟ್ ಮಾಡಿ</translation>
 <translation id="1173894706177603556">ಮರುಹೆಸರಿಸು</translation>
 <translation id="1174073918202301297">ಶಾರ್ಟ್‌ಕಟ್ ಸೇರಿಸಲಾಗಿದೆ</translation>
-<translation id="1174808551768282258">ನಿಮ್ಮ ಫೋನ್‌‍ನ ಮೂಲಕ ನಿಮ್ಮ Chromebook ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಿ. ಇದರ ಬಗ್ಗೆ <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;ಮುದ್ರಿಸಿ...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> ನಕಲಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="1177138678118607465">ಹುಡುಕಾಟ, ಜಾಹೀರಾತುಗಳು ಮತ್ತು ಇತರ Google ಸೇವೆಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು Google ಬಳಸಬಹುದು. ನೀವು ಇದನ್ನು myaccount.google.com/activitycontrols/search ನಲ್ಲಿ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು</translation>
@@ -122,7 +121,6 @@
 <translation id="1178581264944972037">ವಿರಾಮ</translation>
 <translation id="1181037720776840403">ತೆಗೆದುಹಾಕು</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> ಅನ್ನು ಸ್ಥಳೀಯ ಸಂಗ್ರಹದಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
-<translation id="1183378459020939734">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ಜೋಡಿಸಲು ಸಿದ್ಧರಾಗಿರುವಿರಾ?</translation>
 <translation id="1185924365081634987">ಈ ನೆಟ್‌ವರ್ಕ್‌ ದೋಷವನ್ನು ಬಗೆಹರಿಸಲು <ph name="GUEST_SIGNIN_LINK_START" />ಅತಿಥಿಯಾಗಿ ಬ್ರೌಸ್ ಮಾಡುವುದನ್ನು<ph name="GUEST_SIGNIN_LINK_END" /> ಕೂಡಾ ನೀವು ಪ್ರಯತ್ನಿಸಬಹುದು.</translation>
 <translation id="1186771945450942097">ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್‌ವೇರ್ ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="1187722533808055681">ತಟಸ್ಥದ ಎಚ್ಚರಿಸುವಿಕೆಗಳು</translation>
@@ -539,7 +537,6 @@
 <translation id="1782530111891678861">ಸ್ಪರ್ಶ HUD ಮೋಡ್ ಬದಲಾಯಿಸಿ</translation>
 <translation id="1784849162047402014">ಸಾಧನದ ಡಿಸ್ಕ್ ಸ್ಥಳಾವಕಾಶ ಕಡಿಮೆ ಇದೆ</translation>
 <translation id="1786636458339910689">ತಂಡದ ಡ್ರೈವ್‌ಗಳು</translation>
-<translation id="1792161662640298233">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="1792619191750875668">ವಿಸ್ತರಿಸಲಾದ ಪ್ರದರ್ಶನ</translation>
 <translation id="1794791083288629568">ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಲು ನಮಗೆ ಸಹಾಯ ಮಾಡುವುದಕ್ಕಾಗಿ ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸಿ.</translation>
 <translation id="1795214765651529549">ಕ್ಲಾಸಿಕ್ ಬಳಸಿ</translation>
@@ -622,7 +619,6 @@
 <translation id="1910721550319506122">ಸುಸ್ವಾಗತ!</translation>
 <translation id="1914326953223720820">ಸೇವೆಯನ್ನು ಅನ್ ಜಿಪ್ ಮಾಡಿ</translation>
 <translation id="1915073950770830761">ಕ್ಯಾನರಿ</translation>
-<translation id="1915543339027206592">ನಿಮ್ಮ ಖಾತೆಯ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಧರಿಸಿ, ನಿಮ್ಮ ಅಸಿಸ್ಟೆಂಟ್‌ನೊಂದಿಗಿನ ಅನುಭವವು, ವೆಬ್ ಫಲಿತಾಂಶಗಳು, ಜೋಕ್‌ಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಮಾಹಿತಿಯಂತಹ ಸಂಗತಿಗಳಿಗೆ ಸೀಮಿತವಾಗಿರಬಹುದು.</translation>
 <translation id="1916502483199172559">ಡಿಫಾಲ್ಟ್ ಕೆಂಪು ಅವತಾರ್</translation>
 <translation id="1918141783557917887">&amp;ಚಿಕ್ಕದು</translation>
 <translation id="1919345977826869612">ಜಾಹೀರಾತುಗಳು</translation>
@@ -875,14 +871,12 @@
 <translation id="2307462900900812319">ನೆಟ್‌ವರ್ಕ್ ಕಾನ್ಫಿಗರ್ ಮಾಡು</translation>
 <translation id="230927227160767054">ಸೇವೆ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಈ ಪುಟವು ಬಯಸುತ್ತದೆ.</translation>
 <translation id="2309620859903500144">ನಿಮ್ಮ ಚಲನೆಯ ಅಥವಾ ಲೈಟ್‌ ಸೆನ್ಸರ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸದಂತೆ ಈ ಸೈಟ್‌ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation>
-<translation id="2311075084924370935">ನಿಮ್ಮ ಕ್ಯಾಲೆಂಡರ್, ಜ್ಞಾಪನೆಗಳು, ವಿಮಾನಗಳು ಮತ್ತು ಹೆಚ್ಚಿನವುಗಳನ್ನು ಕುರಿತು ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು, ನಿಮ್ಮ ಅಸಿಸ್ಟೆಂಟ್‌ಗೆ ವೆಬ್ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಚಟುವಟಿಕೆ, ಸಾಧನದ ಮಾಹಿತಿ, ಮತ್ತು ಧ್ವನಿ ಹಾಗೂ ಆಡಿಯೋ ಚಟುವಟಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="2315821125498993513">ಫೋನ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಇದರ ಬಗ್ಗೆ <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">ಬೇಡ, ಧನ್ಯವಾದಗಳು</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % ಮುಗಿದಿದೆ</translation>
 <translation id="2318143611928805047">ಪೇಪರ್ ಗಾತ್ರ</translation>
 <translation id="2318817390901984578">Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಬಳಸಲು, ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಚಾರ್ಜ್ ಮಾಡಿ, ಅಪ್‌ಡೇಟ್ ಮಾಡಿ.</translation>
 <translation id="2318923050469484167">ಪ್ರಸ್ತುತ ಅದೃಶ್ಯ ಸೆಶನ್ (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128"><ph name="APP_NAME" /> ಜೊತೆಗೆ ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀ ಬಳಸಿ</translation>
 <translation id="2322193970951063277">ಶೀರ್ಷಿಕೆಗಳು ಮತ್ತು ಅಡಿಟಿಪ್ಪಣಿಗಳು</translation>
 <translation id="2325650632570794183">ಈ ಫೈಲ್ ಪ್ರಕಾರವು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ದಯವಿಟ್ಟು ಈ ಪ್ರಕಾರ ಫೈಲ್ ತೆರೆಯಬಹುದಾದ ಅಪ್ಲಿಕೇಶನ್ ಹುಡುಕಲು Chrome ವೆಬ್ ಅಂಗಡಿಗೆ ಭೇಟಿ ನೀಡಿ.</translation>
 <translation id="2326931316514688470">ಅಪ್ಲಿಕೇಶನ್ &amp;ಮರುಲೋಡ್ ಮಾಡಿ</translation>
@@ -916,7 +910,6 @@
 <translation id="2367199180085172140">ಫೈಲ್‌ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="2367972762794486313">ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ತೋರಿಸು</translation>
 <translation id="2369536625682139252">ಕುಕೀಗಳನ್ನು ಹೊರತುಪಡಿಸಿ, <ph name="SITE" /> ಸಂಗ್ರಹಣೆ ಮಾಡಿರುವ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುವುದು.</translation>
-<translation id="237058345584060620">ನಿಮ್ಮ ಕೀಯನ್ನು ಈ ಸಾಧನಕ್ಕೆ ಜೋಡಿಸುವುದರಿಂದ, ಅದನ್ನು ನಿಮ್ಮ ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಬಳಸಬಹುದು</translation>
 <translation id="2371076942591664043">&amp;ಮುಗಿಸಿದಾಗ ತೆರೆಯಿರಿ</translation>
 <translation id="2377319039870049694">ಪಟ್ಟಿ ವೀಕ್ಷಣೆಗೆ ಬದಲಾಯಿಸಿ</translation>
 <translation id="2377667304966270281">ಹಾರ್ಡ್ ಫಾಲ್ಟ್ಸ್</translation>
@@ -983,7 +976,6 @@
 <translation id="248861575772995840">ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗಲಿಲ್ಲ. ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಸಾಧನಗಳಲ್ಲಿ ಬ್ಲೂಟೂತ್ ಆನ್‌ ಆಗಿದೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. &lt;a&gt;ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;ಫೋಲ್ಡರ್ ಅನ್ನು ಸೇರಿಸಿ...</translation>
 <translation id="249113932447298600">ಕ್ಷಮಿಸಿ, ಈ ಸಮಯದಲ್ಲಿ <ph name="DEVICE_LABEL" /> ಸಾಧನಕ್ಕೆ ಬೆಂಬಲ ದೊರೆಯುತ್ತಿಲ್ಲ.</translation>
-<translation id="2492040222276243256">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಯ ಮೇಲಿನ ಬಟನ್ ಅನ್ನು ಕನಿಷ್ಠ 5 ಸೆಕೆಂಡುಗಳವರೆಗೆ ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ</translation>
 <translation id="2493021387995458222">"ಏಕಕಾಲಕ್ಕೆ ಒಂದು ಪದ" ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="249303669840926644">ನೋಂದಣಿ ಪೂರೈಸಲಾಗಲಿಲ್ಲ</translation>
 <translation id="2495777824269688114">ಹೆಚ್ಚಿನ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಶೋಧಿಸಿ ಅಥವಾ ಉತ್ತರಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ. ಸಹಾಯಕ್ಕಾಗಿ “?” ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ.</translation>
@@ -1088,7 +1080,6 @@
 <translation id="2633199387167390344">ಡಿಸ್ಕ್ ಸ್ಥಳಾವಕಾಶದಲ್ಲಿ <ph name="USAGE" /> MB ಅನ್ನು <ph name="NAME" /> ಬಳಸಿಕೊಳ್ಳುತ್ತಿದೆ.</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />" ಅನ್ನು ತೆಗೆದುಹಾಕುವುದೇ?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> ಸ್ಥಾಪನೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಲಿಲ್ಲ, ಆದರೆ ಇದರ ಡಿಸ್ಕ್ ಇಮೇಜ್‌ನಿಂದ ಚಾಲನೆಗೊಳ್ಳುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ.</translation>
-<translation id="2633326789677284179">ನಿಮ್ಮ ಕೀಯ ಹಿಂಭಾಗದಲ್ಲಿ ಮುದ್ರಿಸಲಾಗಿರುವ ಹೆಸರನ್ನು ಕಂಡುಕೊಳ್ಳಿ</translation>
 <translation id="2635276683026132559">ಸಹಿ ಮಾಡಲಾಗುತ್ತಿದೆ</translation>
 <translation id="2636625531157955190">Chrome ಚಿತ್ರವನ್ನು ಪ್ರವೇಶಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="2638087589890736295">ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು ಪಾಸ್‌ಫ್ರೇಸ್ ಅಗತ್ಯವಿದೆ</translation>
@@ -1256,7 +1247,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> ಸೇರಿಸಿ...</translation>
 <translation id="2874343608108773609">ನಿಮ್ಮ ಎಲ್ಲ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation>
 <translation id="2875698561019555027">(Chrome ದೋಷ ಪುಟಗಳು)</translation>
-<translation id="2876441201733326392">USB ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ಬಳಸಿ</translation>
 <translation id="288042212351694283">ನಿಮ್ಮ ಯುನಿವರ್ಸಲ್ 2ನೇ ಫ್ಯಾಕ್ಟರ್ ಸಾಧನಗಳನ್ನು ಪ್ರವೇಶಿಸಿ</translation>
 <translation id="2881966438216424900">ಕೊನೆಯ ಬಾರಿ ಪ್ರವೇಶಿಸಿರುವುದು:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> ಮರು ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಸ್ವಲ್ಪ ಸಮಯದಲ್ಲಿ ಮರು ಹೊಂದಿಸಲಾಗುತ್ತದೆ</translation>
@@ -1324,7 +1314,6 @@
 <translation id="2982970937345031">ಅನಾಮಧೇಯವಾಗಿ ವರದಿ ಮಾಡಿ</translation>
 <translation id="2984337792991268709">ಇಂದು <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">MIDI ಸಾಧನಗಳ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣ ಪಡೆಯದಿರುವಂತೆ ಈ ಪುಟವನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation>
-<translation id="2988599644347283908">ಗಮನಿಸಿ: ನಿಮಗೆ ವೈಯಕ್ತೀಕರಿಸಿದ ಅನುಭವಗಳು ಮತ್ತು ಉಪಯುಕ್ತ ಜಾಹೀರಾತುಗಳನ್ನು ನೀಡುವುದಕ್ಕಾಗಿ ಈ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಂದ ನಿಯಂತ್ರಿಸಲ್ಪಡುವ ಡೇಟಾವನ್ನು ನೀವು ಸೈನ್ ಇನ್ ಆಗಿರುವ ಯಾವುದೇ Google ಸೇವೆಗಳಲ್ಲಿ ಉಳಿಸಬಹುದು ಮತ್ತು ಬಳಸಬಹುದು. ನೀವು ನಿಮ್ಮ ಡೇಟಾವನ್ನು account.google.com ನಲ್ಲಿ ನೋಡಬಹುದು, ಅಳಿಸಬಹುದು ಮತ್ತು ಬದಲಾಯಿಸಬಹುದು.</translation>
 <translation id="2989474696604907455">ಲಗತ್ತಿಸಿಲ್ಲ</translation>
 <translation id="2989786307324390836">DER-ಎನ್‌ಕೋಡೆಡ್ ಬೈನರಿ, ಏಕ ಪ್ರಮಾಣಪತ್ರ</translation>
 <translation id="2993517869960930405">ಅಪ್ಲಿಕೇಶನ್ ಮಾಹಿತಿ</translation>
@@ -1377,7 +1366,6 @@
 <translation id="304826556400666995">ಟ್ಯಾಬ್‌ಗಳನ್ನು ಅನ್‌ಮ್ಯೂಟ್ ಮಾಡಿ</translation>
 <translation id="3053013834507634016">ಪ್ರಮಾಣಪತ್ರ ಕೀಲಿ ಬಳಕೆ</translation>
 <translation id="3057861065630527966">ನಿಮ್ಮ ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಿ</translation>
-<translation id="3059313675706898490">Android ಸಂದೇಶಗಳು</translation>
 <translation id="3060379269883947824">ಧ್ವನಿ ಆಯ್ಕೆ ಮಾಡಿ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="3061707000357573562">ಪ್ಯಾಚ್ ಸೇವೆ</translation>
 <translation id="3064410671692449875">ಸಾಕಷ್ಟು ಡೇಟಾ ಇಲ್ಲ</translation>
@@ -1406,7 +1394,6 @@
 <translation id="3090819949319990166">ಬಾಹ್ಯ crx ಫೈಲ್ ಅನ್ನು <ph name="TEMP_CRX_FILE" /> ಗೆ ನಕಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" ಜೋಡಿಸಲಾಗಿದೆ</translation>
 <translation id="3101709781009526431">ದಿನಾಂಕ  ಮತ್ತು  ಸಮಯ</translation>
-<translation id="3104900172193317662">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ಬಳಸಲು ಅನುಮತಿಸಿ</translation>
 <translation id="310671807099593501">ಬ್ಲೂಟೂತ್ ಅನ್ನು ಸೈಟ್‌ ಬಳಸುತ್ತಿದೆ</translation>
 <translation id="3115128645424181617">ನಿಮ್ಮ ಫೋನ್‌ ಹುಡುಕಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದು ಸುಲಭವಾಗಿ ಲಭ್ಯವಿರುತ್ತದೆಯೇ ಮತ್ತು ಬ್ಲೂಟೂತ್‌ ಆನ್‌ ಮಾಡಲಾಗಿದೆಯೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಕೊಳ್ಳಿ.</translation>
 <translation id="3115147772012638511">ಕ್ಯಾಶ್‌ಗಾಗಿ ನಿರೀಕ್ಷಿಸುತ್ತಿದೆ...</translation>
@@ -1490,7 +1477,6 @@
 <translation id="3251759466064201842">&lt;ಪ್ರಮಾಣಪತ್ರದ ಭಾಗವಲ್ಲ&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> ಫೈಲ್‌ಗಳಿಗಾಗಿ ಡಿಫಾಲ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಆರಿಸಿ:</translation>
 <translation id="3254516606912442756">ಸಮಯ ವಲಯವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪತ್ತೆಹಚ್ಚುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
-<translation id="3254772308201947812">ಹೌದು, ನಾನು ಒಪ್ಪಿಕೊಳ್ಳುತ್ತೇನೆ</translation>
 <translation id="3264544094376351444">Sans-Serif ಫಾಂಟ್</translation>
 <translation id="3264547943200567728">ನಿಮ್ಮ Chromebox ನ ನೆಟ್‌ವರ್ಕ್ ಹೊಂದಿಸಲು ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="3264582393905923483">ಸಂದರ್ಭ</translation>
@@ -1813,7 +1799,6 @@
 <translation id="3735740477244556633">ಈ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ</translation>
 <translation id="3737274407993947948">Linux ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುತ್ತಿರುವಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ...</translation>
 <translation id="3737536731758327622">ನಿಮ್ಮ ಡೌನ್‌ಲೋಡ್‌ಗಳು ಇಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ</translation>
-<translation id="3738671331307774213">ನಿಮ್ಮ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸುವುದರಿಂದ ನಿಮ್ಮ ಖಾಸಗಿ ಡೇಟಾವನ್ನು ರಕ್ಷಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> ತೆರೆಯುವುದೇ?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> ಈಗ ನಿರ್ವಹಣೆ ಕನ್ಸೋಲ್‌ನಲ್ಲಿ ಕಾಣಿಸುತ್ತದೆ</translation>
@@ -1921,7 +1906,6 @@
 <translation id="3873315167136380065">ಇದನ್ನು ಆನ್ ಮಾಡಲು, ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲು <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಮರುಹೊಂದಿಸಿ<ph name="END_LINK" /></translation>
 <translation id="3878840326289104869">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="3879748587602334249">ಡೌನ್‌ಲೋಡ್ ನಿರ್ವಾಹಕ</translation>
-<translation id="3880709822663530586">ನಿಮ್ಮ ಸಾಧನದ ಬ್ಲೂಟೂತ್ ಆನ್ ಇದ್ದಾಗ ಮಾತ್ರ ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀ ಕೆಲಸ ಮಾಡುತ್ತದೆ</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ಮೂಲಕ ಟಿಪ್ಪಣಿಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತಿದೆ</translation>
 <translation id="3892414795099177503">OpenVPN / L2TP ಸೇರಿಸಿ...</translation>
 <translation id="3893536212201235195">ನಿಮ್ಮ ಪ್ರವೇಶಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಓದಿ ಮತ್ತು ಬದಲಾಯಿಸಿ</translation>
@@ -2067,6 +2051,7 @@
 <translation id="4096824249111507322">ಸುಭದ್ರ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ, ಸ್ವಲ್ಪ ನಿರೀಕ್ಷಿಸಿ (ಇದಕ್ಕೆ ಕೆಲವು ನಿಮಿಷಗಳ ಕಾಲಾವಕಾಶ ಬೇಕಾಗಬಹುದು)...</translation>
 <translation id="4099060993766194518">ಡಿಫಾಲ್ಟ್ ಹುಡುಕಾಟ ಎಂಜಿನ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದೇ?</translation>
 <translation id="4100733287846229632">ಸಾಧನ ಸ್ಥಳಾವಕಾಶ ತೀರಾ ಕಡಿಮೆ ಇದೆ</translation>
+<translation id="4103091233824664032">ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ ಮತ್ತು ಸೈನ್‌ ಇನ್‌ ಮಾಡಿ</translation>
 <translation id="4104163789986725820">ರ&amp;ಫ್ತು...</translation>
 <translation id="4105563239298244027">Google ಡ್ರೈವ್‌ನೊಂದಿಗೆ 1 TB ಉಚಿತ ಪಡೆಯಿರಿ</translation>
 <translation id="4107048419833779140">ಸಂಗ್ರಹಣೆ ಸಾಧನಗಳನ್ನು ಗುರುತಿಸಿ ಮತ್ತು ತೆಗೆದುಹಾಕಿ</translation>
@@ -2087,7 +2072,6 @@
 <translation id="4136203100490971508">ನೈಟ್ ಲೈಟ್ ಸೂರ್ಯೋದಯದ ಸಮಯದಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆಫ್ ಆಗುತ್ತದೆ</translation>
 <translation id="4138267921960073861">ಬಳಕೆದಾರಹೆಸರುಗಳು ಮತ್ತು ಫೋಟೋಗಳನ್ನು ಸೈನ್-ಇನ್ ಪರದೆಯಲ್ಲಿ ತೋರಿಸು</translation>
 <translation id="4144218403971135344">ಉತ್ತಮ ಗುಣಮಟ್ಟದ ವೀಡಿಯೊ ಪಡೆಯಿರಿ ಮತ್ತು ಬ್ಯಾಟರಿ ಅವಧಿಯನ್ನು ಉಳಿಸಿ. ವೀಡಿಯೊ, ನಿಮ್ಮ Cast-ಸಕ್ರಿಯಗೊಂಡ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಮಾತ್ರ ಪ್ಲೇ ಆಗುತ್ತದೆ.</translation>
-<translation id="414599683948988413">USB ಜೊತೆಗೆ ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀ ಬಳಸಿ</translation>
 <translation id="4146026355784316281">ಯಾವಾಗಲೂ ಸಿಸ್ಟಂ ವೀಕ್ಷಕದ ಜೊತೆಗೆ ತೆರೆಯಿರಿ</translation>
 <translation id="4146785383423576110">ಮರುಹೊಂದಿಸಿ ಮತ್ತು ಸ್ವಚ್ಛಗೊಳಿಸಿ</translation>
 <translation id="4147897805161313378">Google ಫೋಟೋಗಳು</translation>
@@ -2430,6 +2414,7 @@
 <translation id="474217410105706308">ಟ್ಯಾಬ್ ಮ್ಯೂಟ್ ಮಾಡಿ</translation>
 <translation id="4742746985488890273">ಶೆಲ್ಫ್‌ಗೆ ಪಿನ್‌ ಮಾಡು</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡುವುದು ಹೇಗೆ ಎಂದು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">ಸಂದೇಶಗಳು</translation>
 <translation id="4746971725921104503">ಆ ಹೆಸರಿನ ಮೂಲಕ ನೀವು ಈಗಾಗಲೇ ಬಳಕೆದಾರರಂತೆ ನಿರ್ವಹಿಸುತ್ತಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ನೀವು <ph name="LINK_START" />ಈ ಸಾಧನಕ್ಕೆ<ph name="USER_DISPLAY_NAME" /> ಆಮದು ಮಾಡಲು ಬಯಸುವಿರಾ<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Chrome ವೆಬ್ ಅಂಗಡಿಯಿಂದ ವಿಸ್ತರಣೆ ಅಗತ್ಯವಿರುತ್ತದೆ</translation>
 <translation id="4750394297954878236">ಸಲಹೆಗಳು</translation>
@@ -2664,7 +2649,6 @@
 <translation id="5099354524039520280">ಮೇಲಕ್ಕೆ</translation>
 <translation id="5100114659116077956">ನಿಮಗೆ ಇತ್ತೀಚಿನ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನೀಡುವ ದೃಷ್ಟಿಯಿಂದ, ನಿಮ್ಮ Chromebox ನವೀಕರಿಸುವ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="5101042277149003567">ಎಲ್ಲಾ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
-<translation id="5104546332954397226">ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಸುರಕ್ಷತಾ ಕೀ ಎಂಬಂತೆ ಬಳಸಿ</translation>
 <translation id="5105855035535475848">ಪಿನ್ ಟ್ಯಾಬ್‌ಗಳು</translation>
 <translation id="5108967062857032718">ಸೆಟ್ಟಿಂಗ್‌ಗಳು - Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="5109044022078737958">ಮಿಯಾ</translation>
@@ -2797,7 +2781,6 @@
 <translation id="5288678174502918605">ಮುಚ್ಚಿದ ಟ್ಯಾಬ್ ಮರು&amp;ತೆರೆಯಿರಿ</translation>
 <translation id="52912272896845572">ಖಾಸಗಿ ಕೀಲಿ ಫೈಲ್ ಅಮಾನ್ಯವಾಗಿದೆ.</translation>
 <translation id="529175790091471945">ಈ ಸಾಧನವನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ</translation>
-<translation id="5292195676005197571">ಹೆಚ್ಚಿನ ಕೀಗಳನ್ನು ಬಳಸಲು, ಕೇವಲ ಬಟನ್ ಅನ್ನು ಒತ್ತಿರಿ</translation>
 <translation id="5293170712604732402">ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಅದರ ಮೂಲ ಡೀಫಾಲ್ಟ್‌ಗಳಿಗೆ ಮರುಸ್ಥಾಪಿಸಿ</translation>
 <translation id="5297082477358294722">ಪಾಸ್‌ವರ್ಡ್ ಉಳಿಸಲಾಗಿದೆ. ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿಮ್ಮ <ph name="SAVED_PASSWORDS_STORE" /> ನಲ್ಲಿ ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ.</translation>
 <translation id="5298219193514155779">ಇವರಿಂದ ಥೀಮ್ ರಚಿಸಲಾಗಿದೆ</translation>
@@ -2867,7 +2850,6 @@
 <translation id="5390100381392048184">ಧ್ವನಿಗಳನ್ನು ಪ್ಲೇ ಮಾಡಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಿ</translation>
 <translation id="5390284375844109566">ಸೂಚ್ಯಂಕಗೊಳಿಸಿದ ಡೇಟಾಬೇಸ್</translation>
 <translation id="5390743329570580756">ಇದಕ್ಕಾಗಿ ಕಳುಹಿಸಿ</translation>
-<translation id="5392327114396848796">ಅಂತರ್ನಿರ್ಮಿತ ಸುರಕ್ಷತಾ ಕೀ ಬಳಸಿ</translation>
 <translation id="5397794290049113714">ನೀವು</translation>
 <translation id="5398572795982417028">ಪರಿಮಿತಿಗಳಿಂದ ಹೊರಗಿರುವ ಪುಟದ ಉಲ್ಲೇಖ, ಮಿತಿ <ph name="MAXIMUM_PAGE" /> ಆಗಿದೆ</translation>
 <translation id="5398772614898833570">ಜಾಹೀರಾತುಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
@@ -3171,7 +3153,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - ಕ್ಯಾಮರಾ ಅಥವಾ ಮೈಕ್ರೊಫೋನ್ ರೆಕಾರ್ಡಿಂಗ್</translation>
 <translation id="5835754902560991078">ಅತ್ಯಂತ ಚಿಕ್ಕದು (0.6s)</translation>
 <translation id="5838456317242088717">ಪ್ರಸ್ತುತ ಅದೃಶ್ಯ ಸೆಶನ್</translation>
-<translation id="5842053879378944309"><ph name="APP_NAME" /> ಜೊತೆಗೆ ನಿಮ್ಮ USB ಸುರಕ್ಷತಾ ಕೀ ಬಳಸಿ</translation>
 <translation id="5842497610951477805">ಬ್ಲೂಟೂತ್ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="5843250171025351504">ನಿಮ್ಮ ನಿರ್ವಾಹಕರ ಮೂಲಕ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಕನಿಷ್ಠ ಕ್ಲೈಂಟ್ ಆವೃತ್ತಿಯೊಂದಿಗೆ ನಿಮ್ಮ ಸಾಧನ ಇನ್ನು ಮುಂದೆ ಅನುವರ್ತಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲು ಲಾಗಿನ್‌ ಮಾಡಿ.</translation>
 <translation id="5846929185714966548">ಟ್ಯಾಬ್ 4</translation>
@@ -3489,7 +3470,6 @@
 <translation id="6317318380444133405">ಇನ್ನು ಮುಂದೆ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="6317369057005134371">ಅಪ್ಲಿಕೇಶನ್ ವಿಂಡೋಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="6318407754858604988">ಡೌನ್‌ಲೋಡ್ ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ</translation>
-<translation id="6322653941595359182">ನಿಮ್ಮ Chromebook ನಿಂದ ಪಠ್ಯ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಿ ಮತ್ತು ಸ್ವೀಕರಿಸಿ</translation>
 <translation id="6324916366299863871">ಶಾರ್ಟ್‌ಕಟ್ ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="6325191661371220117">ಸ್ವಯಂ-ಪ್ರಾರಂಭವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="6326175484149238433">Chrome ನಿಂದ ತೆಗೆದುಹಾಕು</translation>
@@ -3558,7 +3538,6 @@
 <translation id="642282551015776456">ಈ ಹೆಸರನ್ನು ಫೋಲ್ಡರ್‌ನ ಫೈಲ್‌ನಂತೆ ಬಳಸಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="642469772702851743">ಈ ಸಾಧನವು (SN: <ph name="SERIAL_NUMBER" />) ಅದರ ಮಾಲೀಕರಿಂದ ಲಾಕ್ ಮಾಡಲ್ಪಟ್ಟಿದೆ.</translation>
 <translation id="6426200009596957090">ChromeVox ಸೆಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
-<translation id="6427415464407526111">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="6429384232893414837">ಅಪ್‌ಡೇಟ್ ದೋಷ</translation>
 <translation id="6430814529589430811">Base64-ಎನ್‌ಕೋಡ್ ಮಾಡಿದ ASCII, ಏಕ ಪ್ರಮಾಣಪತ್ರ</translation>
 <translation id="6431217872648827691"><ph name="TIME" /> ವರೆಗೆ ನಿಮ್ಮ Google ಪಾಸ್‍ವರ್ಡ್‌ ಜೊತೆ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಎನ್‍ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ</translation>
@@ -3715,7 +3694,6 @@
 <translation id="6655190889273724601">ಡೆವೆಲಪರ್ ಮೋಡ್</translation>
 <translation id="6655458902729017087">ಖಾತೆಗಳನ್ನು ಮರೆಮಾಡು</translation>
 <translation id="6657585470893396449">ಪಾಸ್‌ವರ್ಡ್</translation>
-<translation id="6658023813581644008">ಸೈನ್ ಇನ್‌ಗಾಗಿ Smart Lock ಹೊಂದಿಸಲು, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ</translation>
 <translation id="6659213950629089752">ಈ ಪುಟವನ್ನು "<ph name="NAME" />" ವಿಸ್ತರಣೆಯಿಂದ  ಝೂಮ್‌ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="6659594942844771486">ಟ್ಯಾಬ್</translation>
 <translation id="6664237456442406323">ದುರದೃಷ್ಟವಶಾತ್, ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ತಪ್ಪಾಗಿ ರಚಿಸಲಾದ ಹಾರ್ಡ್‌ವೇರ್ ID ಯೊಂದಿಗೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ. ಇದು Chrome OS ಅನ್ನು ಇತ್ತೀಚಿನ ಭದ್ರತೆ ಸರಿಪಡಿಸುವಿಕೆಗಳೊಂದಿಗೆ ನವೀಕರಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ <ph name="BEGIN_BOLD" />ದುರುದ್ದೇಶದ ದಾಳಿಗಳಿಗೆ ಗುರಿಯಾಗುವ ಸಾಧ್ಯತೆಯಿದೆ<ph name="END_BOLD" />.</translation>
@@ -3852,7 +3830,6 @@
 <translation id="6885771755599377173">ಸಿಸ್ಟಂ ಮಾಹಿತಿ ಪೂರ್ವವೀಕ್ಷಣೆ</translation>
 <translation id="6886871292305414135">ಹೊಸ &amp;ಟ್ಯಾಬ್‌ನಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಿರಿ</translation>
 <translation id="6892812721183419409">ಲಿಂಕ್ ಅನ್ನು <ph name="USER" /> ರಂತೆ ತೆರೆಯಿರಿ</translation>
-<translation id="6896398788631624004">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀ ಅನ್ನು ಪ್ಲಗ್-ಇನ್ ಮಾಡಿ ಮತ್ತು ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="6896758677409633944">ನಕಲಿಸು</translation>
 <translation id="6898440773573063262">ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಇದೀಗ ಈ ಸಾಧನದಲ್ಲಿ ಸ್ವಯಂ-ಪ್ರಾರಂಭಿಸಲು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು.</translation>
 <translation id="6898699227549475383">ಸಂಸ್ಥೆ (O)</translation>
@@ -3891,6 +3868,7 @@
 <translation id="6965382102122355670">ಸರಿ</translation>
 <translation id="6965648386495488594">ಪೋರ್ಟ್</translation>
 <translation id="6965978654500191972">ಸಾಧನ</translation>
+<translation id="6968288415730398122">ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ</translation>
 <translation id="6970480684834282392">ಸ್ಟಾರ್ಟ್ಅಪ್ ಪ್ರಕಾರ</translation>
 <translation id="6970856801391541997">ನಿರ್ದಿಷ್ಟ ಪುಟಗಳನ್ನು ಮುದ್ರಿಸಿ</translation>
 <translation id="6972180789171089114">ಆಡಿಯೋ/ವೀಡಿಯೊ</translation>
@@ -4070,7 +4048,6 @@
 <translation id="7228523857728654909">ಪರದೆ ಲಾಕ್‌ ಮತ್ತು ಸೈನ್‌ ಇನ್‌</translation>
 <translation id="7229570126336867161">EVDO ಅಗತ್ಯವಿದೆ</translation>
 <translation id="7230787553283372882">ನಿಮ್ಮ ಪಠ್ಯ ಗಾತ್ರ ಗ್ರಾಹಕೀಯಗೊಳಿಸಿ</translation>
-<translation id="7231589788477569369">ಈ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಮೂಲಕ ಸಂಪೂರ್ಣವಾದ ಅಸಿಸ್ಟೆಂಟ್ ಅನುಭವವನ್ನು ಪಡೆದುಕೊಳ್ಳಿ</translation>
 <translation id="7232750842195536390">ಮರುಹೆಸರಿಸುವಿಕೆ ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="7234406375359457793">ಹಂಚಿಕೆಯನ್ನು ಅಳವಡಿಸುವಲ್ಲಿ ದೋಷವಿದೆ. ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಹಂಚಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="7238585580608191973">SHA-256 ಬೆರಳಚ್ಚು</translation>
@@ -4080,7 +4057,6 @@
 <translation id="7243632151880336635">ತೆರವುಗೊಳಿಸು ಮತ್ತು ಸೈನ್ ಔಟ್ ಮಾಡು</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ಅತ್ಯುತ್ತಮ)</translation>
 <translation id="7246339268451149667">ಬೆರಳಚ್ಚು ಅನ್‌ಲಾಕ್ ಸಕ್ರಿಯಗೊಳಿಸುವುದೇ?</translation>
-<translation id="7246489301073081944">ನಿರ್ಗಮಿಸಲು |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| ಒತ್ತಿಹಿಡಿಯಿರಿ</translation>
 <translation id="7246947237293279874">FTP ಪ್ರಾಕ್ಸಿ</translation>
 <translation id="725109152065019550">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಖಾತೆಯಲ್ಲಿರುವ ಬಾಹ್ಯ ಸಂಗ್ರಹಣೆಯನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ.</translation>
 <translation id="7253521419891527137">&amp;ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation>
@@ -4231,7 +4207,6 @@
 <translation id="7489605380874780575">ಅರ್ಹತೆಯನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="749028671485790643">ವ್ಯಕ್ತಿ <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC ವಿಳಾಸ</translation>
-<translation id="7490950320178383728">ಬ್ಲೂಟೂತ್ ಜೊತೆಗೆ ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀ ಬಳಸಿ</translation>
 <translation id="7491962110804786152">ಟ್ಯಾಬ್</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> ವಿಸ್ತರಣೆಯು ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಸಂಖ್ಯೆಗಳಂತಹ ವೈಯಕ್ತಿಕ ಡೇಟಾ ಒಳಗೊಂಡಂತೆ ನೀವು ಟೈಪ್ ಮಾಡುವ ಎಲ್ಲಾ ಪಠ್ಯವನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು. ಈ ವಿಸ್ತರಣೆಯನ್ನು ಬಳಸಲು ನೀವು ಬಯಸುವಿರಾ?</translation>
 <translation id="7494065396242762445">ವಿಂಡೊಗಳ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
@@ -4476,7 +4451,6 @@
 <translation id="7850851215703745691">ಈ ಡ್ರೈವ್ ಫೈಲ್‌ಗಳನ್ನು ಇನ್ನೂ ಹಂಚಿಕೊಂಡಿಲ್ಲ.</translation>
 <translation id="7851457902707056880">ಮಾಲೀಕನ ಖಾತೆಗೆ ಮಾತ್ರ ಸೈನ್‌-ಇನ್‌ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ. ದಯವಿಟ್ಟು ರೀಬೂಟ್ ಮಾಡಿ ಮತ್ತು ಮಾಲೀಕರ ಖಾತೆಯೊಂದಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ. ಯಂತ್ರವು 30 ಸೆಕುಂಡುಗಳಲ್ಲಿ ಸ್ವಯಂ ರೀಬೂಟ್ ಆಗುತ್ತದೆ.</translation>
 <translation id="7851716364080026749">ಯಾವಾಗಲೂ ಕ್ಯಾಮರಾ ಹಾಗೂ ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
-<translation id="7851816139220202929">NFC ಜೊತೆಗೆ ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀ ಬಳಸಿ</translation>
 <translation id="7853747251428735">ಇನ್ನಷ್ಟು ಪರಿಕರ&amp;ಗಳು</translation>
 <translation id="7856006446339184955">ಸಿಸ್ಟಂ ಡೇಟಾ ಕಳುಹಿಸಿ. ಈ ಸಾಧನವು ಪ್ರಸ್ತುತ ಡಯಾಗ್ನೋಸ್ಟಿಕ್‌, ಸಾಧನ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುತ್ತದೆ. ಈ <ph name="BEGIN_LINK1" />ಸೆಟ್ಟಿಂಗ್‌<ph name="END_LINK1" /> ಅನ್ನು ಮಾಲೀಕರು ಜಾರಿಗೊಳಿಸಿದ್ದಾರೆ. ನೀವು ಹೆಚ್ಚುವರಿ ವೆಬ್‌ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ ಚಟುವಟಿಕೆಯನ್ನು ಆನ್‌ ಮಾಡಿದರೆ, ಈ ಮಾಹಿತಿಯು ನಿಮ್ಮ ಖಾತೆಯೊಂದಿಗೆ ಸಂಗ್ರಹವಾಗುತ್ತದೆ, ಇದರಿಂದಾಗಿ ಅದನ್ನು ನೀವು ನನ್ನ ಚಟುವಟಿಕೆಯಲ್ಲಿ ನಿರ್ವಹಿಸಬಹುದು. <ph name="BEGIN_LINK2" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">ವಿನಾಯಿತಿ ಸೇರಿಸು</translation>
@@ -4607,7 +4581,6 @@
 <translation id="8030656706657716245">ಪ್ರಿಂಟರ್ ಸೇರಿಸಿ</translation>
 <translation id="8032244173881942855">ಟ್ಯಾಬ್‌‌ಗೆ ಬಿತ್ತರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="8033827949643255796">ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ</translation>
-<translation id="8033958968890501070">ಅವಧಿ ಮೀರಿದೆ</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{&amp;ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲವನ್ನು ತೆರೆಯಿರಿ}=1{&amp;ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ}one{&amp;ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲಾ (#) ಅನ್ನು ತೆರೆಯಿರಿ}other{&amp;ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲಾ (#) ಅನ್ನು ತೆರೆಯಿರಿ}}</translation>
 <translation id="8037117027592400564">ಸಂಯೋಜನೆ ಗೊಳಿಸಿದ ಧ್ವನಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಮಾತನಾಡುವ ಎಲ್ಲಾ ಪಠ್ಯವನ್ನು ಓದಿ</translation>
 <translation id="8037357227543935929">ಕೇಳು (ಡಿಫಾಲ್ಟ್)</translation>
@@ -4831,7 +4804,6 @@
 <translation id="8425213833346101688">ಬದಲಿಸಿ</translation>
 <translation id="8425492902634685834">ಕಾರ್ಯಪಟ್ಟಿಗೆ ಪಿನ್‌ ಮಾಡು</translation>
 <translation id="8425755597197517046">ಅಂಟಿ&amp;ಸಿ ಮತ್ತು ಹುಡುಕಾಡಿ</translation>
-<translation id="8426117172745886547">ನಿರ್ಗಮಿಸುವ ಮೊದಲು ಎಚ್ಚರಿಸಿ (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="8427292751741042100">ಯಾವುದೇ ಹೋಸ್ಟ್‌ನಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="8428213095426709021">ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
@@ -4921,7 +4893,6 @@
 <translation id="8551388862522347954">ಪರವಾನಗಿಗಳು</translation>
 <translation id="8553342806078037065">ಇತರ ವ್ಯಕ್ತಿಗಳನ್ನು ನಿರ್ವಹಿಸು</translation>
 <translation id="8554899698005018844">ಭಾಷೆ ನಮೂದಿಸಿಲ್ಲ</translation>
-<translation id="8557347704037207368">Android ವೆಬ್ ಸಂದೇಶಗಳಿಂದ 'ನಿಮಗೆ ಕಳುಹಿಸುವ' ಅಧಿಸೂಚನೆಗಳು</translation>
 <translation id="855773602626431402">ಈ ಪುಟದಲ್ಲಿ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ರದ್ದುಗೊಳಿಸಿರುವ ಪ್ಲಗ್-ಇನ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವುದರಿಂದ ತಡೆಯಲಾಗಿದೆ.</translation>
 <translation id="8557930019681227453">ಮ್ಯಾನಿಫೆಸ್ಟ್</translation>
 <translation id="8559694214572302298">ಚಿತ್ರ ಡಿಕೋಡರ್</translation>
@@ -5197,7 +5168,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ಕ್ರ್ಯಾಶ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="8983677657449185470">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation>
 <translation id="8984654317541110628">ಫೈಲ್‌ ಹಂಚಿಕೊಳ್ಳುವ URL</translation>
-<translation id="8984872292925913496">ನಿಮ್ಮ ಕೀಯ ಹಿಂಬದಿಯಲ್ಲಿನ 6-ಅಂಕಿಯ ಪಿನ್ ಅನ್ನು ಕಂಡುಕೊಳ್ಳಿ</translation>
 <translation id="8986362086234534611">ಮರೆತುಹೋಗು</translation>
 <translation id="8986494364107987395">ಬಳಕೆಯ ಅಂಕಿಅಂಶಗಳನ್ನು ಮತ್ತು ಕ್ರಾಶ್ ವರದಿಗಳನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರವಾನಿಸು</translation>
 <translation id="8987927404178983737">ತಿಂಗಳು</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index b455fb80..b611b5e 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">키보드 포커스가 이동할 때 키보드 포커스가 있는 객체를 강조표시합니다.</translation>
 <translation id="1173894706177603556">이름 바꾸기</translation>
 <translation id="1174073918202301297">바로가기 추가됨</translation>
-<translation id="1174808551768282258">휴대전화로 Chromebook을 잠금 해제하세요. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">인쇄(&amp;P)</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> 복사 중...</translation>
 <translation id="1177138678118607465">검색, 광고 및 다른 Google 서비스를 맞춤설정하기 위하여 Google에서 인터넷 사용 기록을 사용할 수 있습니다. 이 설정은 언제든지 myaccount.google.com/activitycontrols/search에서 변경할 수 있습니다.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">일시중지</translation>
 <translation id="1181037720776840403">삭제</translation>
 <translation id="1183237619868651138">로컬 캐시에 <ph name="EXTERNAL_CRX_FILE" />을(를) 설치할 수 없습니다.</translation>
-<translation id="1183378459020939734">보안 키를 페어링할 준비가 되었나요?</translation>
 <translation id="1185924365081634987"><ph name="GUEST_SIGNIN_LINK_START" />손님으로 로그인<ph name="GUEST_SIGNIN_LINK_END" />하여 네트워크 오류를 수정할 수도 있습니다.</translation>
 <translation id="1186771945450942097">유해한 소프트웨어 삭제</translation>
 <translation id="1187722533808055681">유휴 상태 해제</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">블루투스 기기를 찾을 수 없습니다.</translation>
 <translation id="1306606229401759371">설정 변경</translation>
 <translation id="1307559529304613120">시스템이 이 기기에 대한 장기 API 액세스 토큰을 저장하지 못했습니다.</translation>
+<translation id="1307931752636661898">Linux 파일을 볼 수 없음</translation>
 <translation id="1313405956111467313">자동 프록시 설정</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">북마크, 방문 기록 및 기타 설정이 Google 계정에 동기화됩니다.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">마우스 및 터치패드 기기 설정 열기</translation>
 <translation id="1531004739673299060">애플리케이션 창</translation>
 <translation id="15373452373711364">큰 마우스 커서</translation>
+<translation id="1538729222189715449">Linux 파일을 여는 중...</translation>
 <translation id="1540605929960647700">데모 모드 사용</translation>
 <translation id="1543284117603151572">Edge에서 가져옴</translation>
 <translation id="1545177026077493356">자동 키오스크 모드</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">터치 HUD 모드 변경</translation>
 <translation id="1784849162047402014">기기에 디스크 저장 공간 부족</translation>
 <translation id="1786636458339910689">팀 드라이브</translation>
-<translation id="1792161662640298233">보안 키를 인증하는 중</translation>
 <translation id="1792619191750875668">확장 디스플레이</translation>
 <translation id="1794791083288629568">이 문제를 해결하는 데 도움이 되도록 의견 전송</translation>
 <translation id="1795214765651529549">기본 테마 사용</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">반갑습니다!</translation>
 <translation id="1914326953223720820">압축 해제 서비스</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">계정 설정에 따라 어시스턴트 환경이 웹 검색결과, 농담 들려주기, 지역 정보 등으로 제한될 수 있습니다.</translation>
 <translation id="1916502483199172559">기본 빨간색 아바타</translation>
 <translation id="1918141783557917887">작게(&amp;S)</translation>
 <translation id="1919345977826869612">광고</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_DOMAIN" />의 <ph name="PEPPER_PLUGIN_NAME" />에서 내 컴퓨터에 액세스하려고 합니다</translation>
 <translation id="2178614541317717477">CA 손상</translation>
 <translation id="218070003709087997">숫자로 인쇄 부수를 표시하세요(1부터 999까지).</translation>
+<translation id="2184515124301515068">소리를 재생할 수 있는 사이트를 Chrome이 결정(권장)</translation>
 <translation id="2187895286714876935">서버 인증서 가져오기 오류</translation>
 <translation id="2187906491731510095">확장 프로그램 업데이트됨</translation>
 <translation id="2188881192257509750"><ph name="APPLICATION" /> 열기</translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">여러 웹사이트의 데이터를 읽고 변경</translation>
 <translation id="2242687258748107519">파일 정보</translation>
 <translation id="2243194103992005307">앱을 삭제하려면 설정 &gt; 앱 또는 애플리케이션 관리자로 이동합니다. 그런 다음 제거하려는 앱을 탭합니다(앱을 찾으려면 오른쪽이나 왼쪽으로 스와이프해야 할 수 있음). 그런 다음 제거 또는 사용 중지를 탭합니다.</translation>
+<translation id="224940702122312781">이 페이지는 많은 양의 데이터를 사용합니다.</translation>
 <translation id="2249605167705922988">예: 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">시스템 뷰어로 열기</translation>
 <translation id="225163402930830576">네트워크 새로고침</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">네트워크 설정</translation>
 <translation id="230927227160767054">이 페이지에서 서비스 핸들러를 설치하려 합니다.</translation>
 <translation id="2309620859903500144">모션 센서 또는 조도 센서 액세스가 차단된 사이트입니다.</translation>
-<translation id="2311075084924370935">어시스턴트가 캘린더, 리마인더, 항공편 등과 관련해 도움을 드리려면 웹 및 앱 활동, 기기 정보, 음성 및 오디오 활동 설정이 필요합니다.</translation>
+<translation id="2315414688463285945">Linux 파일을 구성하는 중에 오류가 발생했습니다. 다시 시도해 보세요.</translation>
 <translation id="2315821125498993513">휴대전화에 연결할 수 없습니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">아니요, 괜찮습니다.</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% 완료</translation>
 <translation id="2318143611928805047">용지 크기</translation>
 <translation id="2318817390901984578">Android 앱을 사용하려면 <ph name="DEVICE_TYPE" />을(를) 충전하고 업데이트하세요.</translation>
 <translation id="2318923050469484167">현재 시크릿 세션(<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128"><ph name="APP_NAME" /> 앱에서 보안 키 사용</translation>
 <translation id="2322193970951063277">머리글과 바닥글</translation>
 <translation id="2325650632570794183">이 파일 형식은 지원되지 않습니다. Chrome 웹 스토어에서 이 파일 형식을 열 수 있는 앱을 검색하세요.</translation>
 <translation id="2326931316514688470">앱 새로고침(&amp;R)</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">파일 공유 추가</translation>
 <translation id="2367972762794486313">앱 표시</translation>
 <translation id="2369536625682139252"><ph name="SITE" />에서 저장한 모든 데이터가 삭제됩니다. 쿠키는 삭제되지 않습니다.</translation>
-<translation id="237058345584060620">키를 사용하여 계정에 로그인할 수 있도록 키를 이 기기와 페어링하세요.</translation>
 <translation id="2371076942591664043">완료되면 열기(&amp;D)</translation>
 <translation id="2377319039870049694">목록 보기로 전환</translation>
 <translation id="2377667304966270281">하드 결함</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">휴대전화를 찾을 수 없습니다. <ph name="DEVICE_TYPE" />의 블루투스가 사용 설정되어 있는지 확인하세요. &lt;a&gt;자세히 알아보기&lt;/a&gt;</translation>
 <translation id="2489918096470125693">폴더 추가(&amp;F)...</translation>
 <translation id="249113932447298600">죄송합니다. 현재 이 기기(<ph name="DEVICE_LABEL" />)는 지원되지 않습니다.</translation>
-<translation id="2492040222276243256">보안 키에 있는 버튼을 5초 이상 길게 누르세요.</translation>
 <translation id="2493021387995458222">'한번에 한 단어' 선택</translation>
 <translation id="249303669840926644">등록을 완료할 수 없습니다.</translation>
 <translation id="2495777824269688114">더 많은 기능을 알아보거나 궁금한 점을 해결합니다. 도움말을 보려면 '?' 아이콘을 선택하세요.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">합계: <ph name="NUMBER_OF_SHEETS" /><ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">길게</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" />(플랫폼 <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">이 탭에서 화면을 공유하는 중입니다.</translation>
 <translation id="2586657967955657006">클립보드</translation>
 <translation id="2586672484245266891">더 짧은 URL을 입력하세요.</translation>
 <translation id="2587922270115112871">관리 대상 사용자를 생성해도 Google 계정이 생성되지 않으며, 해당 사용자의 설정
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" />에서 <ph name="USAGE" />MB의 디스크 공간을 사용하고 있습니다.</translation>
 <translation id="2633212996805280240">'<ph name="EXTENSION_NAME" />'을(를) 삭제하시겠습니까?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" />에서 설치를 완료하지 못했지만 디스크 이미지에서 계속 실행됩니다.</translation>
-<translation id="2633326789677284179">키 뒷면에 인쇄된 이름을 확인하세요.</translation>
 <translation id="2635276683026132559">서명</translation>
 <translation id="2636625531157955190">Chrome에서 이미지에 액세스할 수 없습니다.</translation>
 <translation id="2638087589890736295">동기화를 시작하려면 암호가 필요합니다.</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> 추가...</translation>
 <translation id="2874343608108773609">어느 기기에서나 내 비밀번호를 사용하려면 Chrome에 로그인하세요.</translation>
 <translation id="2875698561019555027">(Chrome 오류 페이지)</translation>
-<translation id="2876441201733326392">USB 보안 키 사용</translation>
 <translation id="288042212351694283">Universal 2nd Factor 기기에 액세스</translation>
 <translation id="2881966438216424900">마지막 액세스 날짜:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" />이(가) 다시 시작되어 곧 재설정됩니다.</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">익명으로 신고하기</translation>
 <translation id="2984337792991268709">오늘 <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">이 페이지는 MIDI 기기를 완전히 제어할 수 없도록 차단되었습니다.</translation>
-<translation id="2988599644347283908">참고: 이러한 설정에서 제어되는 데이터는 사용자가 로그인한 모든 Google 서비스에 저장되어 맞춤설정된 환경 및 유용한 광고를 제공하는 데 사용될 수 있습니다. account.google.com에서 데이터를 보고 삭제하거나 설정을 변경할 수 있습니다.</translation>
 <translation id="2989474696604907455">첨부되지 않음</translation>
 <translation id="2989786307324390836">DER-인코딩 바이너리, 단일 인증서</translation>
 <translation id="2993517869960930405">앱 정보</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">탭 음소거 해제</translation>
 <translation id="3053013834507634016">인증서 키 사용</translation>
 <translation id="3057861065630527966">사진 및 동영상을 백업합니다.</translation>
-<translation id="3059313675706898490">Android 메시지</translation>
 <translation id="3060379269883947824">텍스트 읽어주기 사용</translation>
 <translation id="3061707000357573562">서비스 패치</translation>
 <translation id="3064410671692449875">데이터 부족</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">외부 crx 파일을 <ph name="TEMP_CRX_FILE" />에 복사할 수 없습니다.</translation>
 <translation id="3090871774332213558">'<ph name="DEVICE_NAME" />' 페어링됨</translation>
 <translation id="3101709781009526431">날짜 및 시간</translation>
-<translation id="3104900172193317662">보안 키를 사용하도록 허용</translation>
 <translation id="310671807099593501">사이트에서 블루투스를 사용하고 있습니다.</translation>
 <translation id="3115128645424181617">휴대전화를 찾을 수 없습니다. 휴대전화가 가까이 있고 블루투스가 사용 설정되어 있는지 확인하세요.</translation>
 <translation id="3115147772012638511">캐시를 기다리는 중...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;인증서에 속하지 않음&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> 파일의 기본 앱 선택:</translation>
 <translation id="3254516606912442756">시간대 자동설정이 사용 중지됩니다</translation>
-<translation id="3254772308201947812">예, 동의합니다</translation>
 <translation id="3264544094376351444">Sans-serif</translation>
 <translation id="3264547943200567728">Chromebox 네트워크 설정 실패</translation>
 <translation id="3264582393905923483">컨텍스트</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">정렬 기준</translation>
 <translation id="3737274407993947948">Linux 설치 오류...</translation>
 <translation id="3737536731758327622">다운로드 항목이 여기에 표시됩니다.</translation>
-<translation id="3738671331307774213">신원을 확인하면 개인 데이터를 보호하는 데 도움이 됩니다.</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" />을(를) 여시겠습니까?</translation>
 <translation id="3741158646617793859">이제 <ph name="DEVICE_NAME" />(이)가 관리 콘솔에 표시됩니다.</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: 동기화 중지됨</translation>
 <translation id="3860381078714302691">행아웃 Meet에 오신 것을 환영합니다</translation>
+<translation id="3861241522664181545">페이지가 일시중지되었습니다.</translation>
 <translation id="3862134173397075045">Chrome의 전송 환경에 오신 것을 환영합니다.</translation>
 <translation id="3862788408946266506">'kiosk_only' 매니페스트 속성을 사용하는 앱은 Chrome OS 키오스크 모드에 설치해야 합니다</translation>
 <translation id="3865414814144988605">해상도</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">사용하려면 <ph name="BEGIN_LINK" />동기화를 재설정<ph name="END_LINK" />하여 동기화 암호를 삭제하세요.</translation>
 <translation id="3878840326289104869">관리 대상 사용자 만들기</translation>
 <translation id="3879748587602334249">다운로드 관리자</translation>
-<translation id="3880709822663530586">기기의 블루투스가 사용 설정된 경우에만 보안 키가 작동합니다.</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" />(으)로 메모 작성</translation>
 <translation id="3892414795099177503">OpenVPN/L2TP 추가...</translation>
 <translation id="3893536212201235195">접근성 설정 확인 및 변경</translation>
@@ -2068,6 +2059,7 @@
 <translation id="4096824249111507322">보안 모듈을 준비 중입니다. 잠시 기다려 주세요. 몇 분 정도 걸릴 수 있습니다...</translation>
 <translation id="4099060993766194518">기본 검색 엔진을 복원하시겠습니까?</translation>
 <translation id="4100733287846229632">기기 저장 공간 매우 부족</translation>
+<translation id="4103091233824664032">비밀번호를 입력하여 화면 잠금을 설정하고 로그인하세요.</translation>
 <translation id="4104163789986725820">내보내기(&amp;X)...</translation>
 <translation id="4105563239298244027">Google 드라이브에서 1TB를 무료로 사용하세요.</translation>
 <translation id="4107048419833779140">외부 저장장치 식별 및 제거</translation>
@@ -2088,7 +2080,6 @@
 <translation id="4136203100490971508">일출 시 야간 조명이 자동으로 꺼짐</translation>
 <translation id="4138267921960073861">로그인 화면에 사용자 이름과 사진 표시</translation>
 <translation id="4144218403971135344">우수한 화질의 동영상을 감상하고 배터리를 더 오래 사용하세요. 동영상은 Cast가 지원되는 화면에서만 재생됩니다.</translation>
-<translation id="414599683948988413">USB를 통해 보안 키 사용</translation>
 <translation id="4146026355784316281">항상 시스템 뷰어로 열기</translation>
 <translation id="4146785383423576110">재설정 및 정리하기</translation>
 <translation id="4147897805161313378">Google 포토</translation>
@@ -2223,6 +2214,7 @@
 <translation id="4394049700291259645">사용 중지</translation>
 <translation id="4400367121200150367">비밀번호를 저장하지 않는 사이트가 표시됩니다.</translation>
 <translation id="4400632832271803360">맨 윗 줄 키의 동작을 전환하려면 런처 키를 길게 누르세요.</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">도움말(&amp;E)</translation>
 <translation id="4409697491990005945">여백</translation>
 <translation id="4411578466613447185">코드 서명자</translation>
@@ -2271,6 +2263,7 @@
 <translation id="4480590691557335796">Chrome이 컴퓨터에서 유해한 소프트웨어를 찾아 삭제할 수 있습니다.</translation>
 <translation id="4481530544597605423">페어링 해제된 기기</translation>
 <translation id="4482194545587547824">검색 및 다른 Google 서비스를 맞춤설정하기 위하여 Google에서 인터넷 사용 기록을 사용할 수 있습니다.</translation>
+<translation id="4493287891836751813">나만의 Google 어시스턴트를 만나보세요</translation>
 <translation id="4495419450179050807">이 페이지에 표시하지 않음</translation>
 <translation id="4499718683476608392">신용카드 자동 완성을 사용하여 클릭 한 번으로 양식을 작성합니다.</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" />이(가) 다운되었습니다</translation>
@@ -2431,6 +2424,7 @@
 <translation id="474217410105706308">탭 음소거</translation>
 <translation id="4742746985488890273">임시보관함에 고정</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />애플리케이션 업데이트 방법 알아보기<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">메시지</translation>
 <translation id="4746971725921104503">해당 이름으로 이미 사용자를 관리 중입니다. <ph name="LINK_START" /><ph name="USER_DISPLAY_NAME" />을(를) 이 기기로 가져오시겠습니까<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Chrome 웹 스토어의 확장 프로그램 필요</translation>
 <translation id="4750394297954878236">추천</translation>
@@ -2472,6 +2466,7 @@
 <translation id="4821935166599369261">프로파일링 사용(&amp;P)</translation>
 <translation id="4823484602432206655">사용자와 기기 설정 확인 및 변경</translation>
 <translation id="4823651846660089135">읽기 전용 기기</translation>
+<translation id="4823955295535347797">화면이 켜져 있을 때 "Ok Google"이라고 말하면 어시스턴트를 이용할 수 있습니다.</translation>
 <translation id="4828937774870308359">오스트레일리아</translation>
 <translation id="4829768588131278040">PIN 설정</translation>
 <translation id="4830502475412647084">OS 업데이트 설치 중</translation>
@@ -2512,6 +2507,7 @@
 <translation id="4876273079589074638">Google 엔지니어가 이 비정상 종료를 조사하고 해결할 수 있도록 도와주세요. 가능한 경우 단계를 정확히 나열해 주세요. 자세히 설명해 주시면 큰 도움이 됩니다.</translation>
 <translation id="4876895919560854374">화면 잠금 및 잠금 해제</translation>
 <translation id="4877017884043316611">Chromebox와 페어링</translation>
+<translation id="4879491255372875719">자동(기본값)</translation>
 <translation id="4880214202172289027">볼륨 슬라이더</translation>
 <translation id="4880328057631981605">액세스포인트 네임(APN)</translation>
 <translation id="4880520557730313061">자동 보정</translation>
@@ -2665,7 +2661,6 @@
 <translation id="5099354524039520280">위</translation>
 <translation id="5100114659116077956">최신 기능을 사용하려면 Chromebox를 업데이트해야 합니다.</translation>
 <translation id="5101042277149003567">모든 북마크 열기</translation>
-<translation id="5104546332954397226">휴대전화를 보안 키로 사용</translation>
 <translation id="5105855035535475848">탭 고정</translation>
 <translation id="5108967062857032718">설정 - Android 앱 삭제</translation>
 <translation id="5109044022078737958">미미</translation>
@@ -2796,7 +2791,6 @@
 <translation id="5288678174502918605">닫은 탭 다시 열기(&amp;E)</translation>
 <translation id="52912272896845572">비공개 키 파일이 잘못되었습니다.</translation>
 <translation id="529175790091471945">이 기기 포맷</translation>
-<translation id="5292195676005197571">대부분의 키는 버튼을 누르기만 하면 사용할 수 있습니다.</translation>
 <translation id="5293170712604732402">설정을 기본값으로 복원</translation>
 <translation id="5297082477358294722">비밀번호가 저장되었습니다. <ph name="SAVED_PASSWORDS_STORE" />에서 저장된 비밀번호를 보고 관리하세요.</translation>
 <translation id="5298219193514155779">테마 제작자</translation>
@@ -2822,6 +2816,7 @@
 <translation id="532776649628038357">동의</translation>
 <translation id="532943162177641444">이 기기에서 사용할 수 있는 모바일 핫스팟을 설정하려면 <ph name="PHONE_NAME" />에서 알림을 탭하세요.</translation>
 <translation id="5329858601952122676">삭제(&amp;D)</translation>
+<translation id="5329945517224105597">어시스턴트가 관련성이 더욱 높은 추천과 화면의 내용과 관련된 구체적인 작업을 제안할 수 있습니다. 이는 어시스턴트 설정에서 변경할 수 있습니다.</translation>
 <translation id="5330145655348521461">파일이 다른 데스크톱에서 열려 있습니다. 파일을 보려면 <ph name="USER_NAME" />(<ph name="MAIL_ADDRESS" />)(으)로 이동하세요.</translation>
 <translation id="5330512191124428349">정보 보기</translation>
 <translation id="5331069282670671859">이 카테고리에 인증서가 없음</translation>
@@ -2866,7 +2861,6 @@
 <translation id="5390100381392048184">사이트에서 소리를 재생하도록 허용</translation>
 <translation id="5390284375844109566">색인화된 데이터베이스</translation>
 <translation id="5390743329570580756">다음에 대해 보내기:</translation>
-<translation id="5392327114396848796">내장 보안 키 사용</translation>
 <translation id="5397794290049113714">나</translation>
 <translation id="5398572795982417028">페이지가 범위를 벗어난 경우 참고하세요. 한도는 <ph name="MAXIMUM_PAGE" />페이지입니다.</translation>
 <translation id="5398772614898833570">광고 차단됨</translation>
@@ -3074,6 +3068,7 @@
    <ph name="LINE_BREAKS" />
    아카이브 또는 가상 디스크에 있는 모든 파일을 닫은 다음 다시 시도해 보세요.</translation>
 <translation id="5687326903064479980">시간대</translation>
+<translation id="568824803367507355">'Ok Google' 감지</translation>
 <translation id="5689516760719285838">위치</translation>
 <translation id="56907980372820799">데이터 연결</translation>
 <translation id="5691511426247308406">가족</translation>
@@ -3171,7 +3166,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - 카메라 또는 마이크 녹음</translation>
 <translation id="5835754902560991078">매우 짧게(0.6초)</translation>
 <translation id="5838456317242088717">현재 시크릿 세션</translation>
-<translation id="5842053879378944309"><ph name="APP_NAME" /> 로그인 시 USB 보안 키 사용</translation>
 <translation id="5842497610951477805">블루투스 사용</translation>
 <translation id="5843250171025351504">사용 중인 기기가 더 이상 관리자가 지정한 최소 클라이언트 버전을 준수하지 않습니다. 로그인하려면 업데이트하세요.</translation>
 <translation id="5846929185714966548">탭 4</translation>
@@ -3489,7 +3483,6 @@
 <translation id="6317318380444133405">프린터가 더 이상 지원되지 않습니다.</translation>
 <translation id="6317369057005134371">애플리케이션 창을 기다리는 중...</translation>
 <translation id="6318407754858604988">다운로드가 시작되었습니다</translation>
-<translation id="6322653941595359182">Chromebook으로 SMS 보내고 받기</translation>
 <translation id="6324916366299863871">바로가기 수정</translation>
 <translation id="6325191661371220117">자동 실행 사용 안함</translation>
 <translation id="6326175484149238433">Chrome에서 삭제</translation>
@@ -3533,6 +3526,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />시스템 정보<ph name="END_LINK1" /> 및 <ph name="BEGIN_LINK2" />통계<ph name="END_LINK2" /> 전송</translation>
 <translation id="6397094776139756010">동기화 및 맞춤설정 옵션</translation>
 <translation id="6397592254427394018">모든 북마크를 시크릿 창에서 열기(&amp;I)</translation>
+<translation id="639777613761517128">$1을(를) 사용하여 파일을 열려면 먼저 파일을 Linux 파일 폴더로 복사하세요.</translation>
 <translation id="6398715114293939307">Google Play 스토어 삭제</translation>
 <translation id="6398765197997659313">전체화면 닫기</translation>
 <translation id="6399774419735315745">스파이</translation>
@@ -3558,7 +3552,6 @@
 <translation id="642282551015776456">폴더 이름의 파일으로 사용할 수 없는 이름입니다.</translation>
 <translation id="642469772702851743">소유자가 이 기기(SN: <ph name="SERIAL_NUMBER" />)를 잠갔습니다.</translation>
 <translation id="6426200009596957090">ChromeVox 설정 열기</translation>
-<translation id="6427415464407526111">보안 키 선택</translation>
 <translation id="6429384232893414837">업데이트 오류</translation>
 <translation id="6430814529589430811">Base64-인코딩 ASCII, 단일 인증서</translation>
 <translation id="6431217872648827691">Google 비밀번호로 모든 데이터가 암호화된 시기:
@@ -3716,7 +3709,6 @@
 <translation id="6655190889273724601">개발자 모드</translation>
 <translation id="6655458902729017087">계정 숨기기</translation>
 <translation id="6657585470893396449">비밀번호</translation>
-<translation id="6658023813581644008">로그인하기 위해 Smart Lock을 설정하려면 비밀번호를 입력하세요.</translation>
 <translation id="6659213950629089752">이 페이지는 '<ph name="NAME" />' 확장 프로그램으로 확대/축소되었습니다.</translation>
 <translation id="6659594942844771486">탭</translation>
 <translation id="6664237456442406323">컴퓨터가 잘못된 형식의 하드웨어 ID로 구성되어 있습니다. 이렇게 하면 Chrome OS가 최신 보안 수정사항을 업데이트할 수 없으며 컴퓨터가<ph name="BEGIN_BOLD" />악의적인 공격에 취약해 집니다<ph name="END_BOLD" />.</translation>
@@ -3852,7 +3844,6 @@
 <translation id="6885771755599377173">시스템 정보 미리보기</translation>
 <translation id="6886871292305414135">새 탭에서 링크 열기(&amp;T)</translation>
 <translation id="6892812721183419409"><ph name="USER" />(으)로 링크 열기</translation>
-<translation id="6896398788631624004">보안 키를 꽂고 활성화하세요.</translation>
 <translation id="6896758677409633944">복사</translation>
 <translation id="6898440773573063262">이제 키오스크 애플리케이션이 기기에서 자동 실행되도록 설정할 수 있습니다.</translation>
 <translation id="6898699227549475383">조직(O)</translation>
@@ -3871,6 +3862,7 @@
 <translation id="6915804003454593391">사용자:</translation>
 <translation id="6916590542764765824">확장 프로그램 관리</translation>
 <translation id="6920989436227028121">일반 탭으로 열기</translation>
+<translation id="6921709132208495314">이 페이지에서 데이터 사용 중지</translation>
 <translation id="6922128026973287222">Google 데이터 절약 모드를 사용하여 더 빠르게 데이터를 저장하고 탐색하세요. 자세히 알아보려면 클릭하세요.</translation>
 <translation id="6923132443355966645">스크롤/클릭</translation>
 <translation id="6930242544192836755">기간</translation>
@@ -3893,6 +3885,7 @@
 <translation id="6965382102122355670">확인</translation>
 <translation id="6965648386495488594">포트</translation>
 <translation id="6965978654500191972">기기</translation>
+<translation id="6968288415730398122">비밀번호를 입력하여 화면 잠금을 설정하세요.</translation>
 <translation id="6970480684834282392">시작 유형</translation>
 <translation id="6970856801391541997">특정 페이지 인쇄</translation>
 <translation id="6972180789171089114">오디오/비디오</translation>
@@ -3903,6 +3896,7 @@
 <translation id="6978121630131642226">검색엔진</translation>
 <translation id="6978611942794658017">이 파일은 Windows 소프트웨어를 사용하는 PC용으로 설계되었으며 Chrome OS를 실행하는 기기와 호환되지 않습니다. 적합한 대체 앱을 찾으려면 Chrome 웹 스토어를 검색하세요.</translation>
 <translation id="6979158407327259162">Google 드라이브</translation>
+<translation id="6979440798594660689">음소거(기본값)</translation>
 <translation id="6979737339423435258">전체 기간</translation>
 <translation id="6980462514016882061">Google에서 검색, 광고 및 다른 Google 서비스를 맞춤설정하기 위하여 내 인터넷 사용 기록을 사용할 수 있습니다.</translation>
 <translation id="6981982820502123353">접근성</translation>
@@ -4051,6 +4045,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />기기 및 기기 사용 방식에 관한 일반적인 정보입니다(예: 배터리 수준, 앱 사용, 네트워크 연결). 이 데이터는 Google 제품 및 서비스 개선에 사용되며 일부 집계 정보는 Android 개발자 등의 파트너가 앱 및 제품을 개선하도록 돕는 데도 사용됩니다.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />이 기능을 사용 중지해도 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 데는 영향을 미치지 않습니다.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />설정 &gt; Google에서 이 기능을 관리할 수 있습니다. 메뉴에서 사용 및 진단을 선택하세요.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">이 기기에서 사용할 수 있는 앱을 계정에서 <ph name="NUMBER_OF_APPS" />개 찾았습니다.</translation>
 <translation id="7199158086730159431">도움말 보기</translation>
 <translation id="7200083590239651963">설정 선택</translation>
 <translation id="720110658997053098">이 기기를 키오스크 모드로 영구 고정</translation>
@@ -4071,7 +4066,6 @@
 <translation id="7228523857728654909">화면 잠금 및 로그인</translation>
 <translation id="7229570126336867161">EVDO가 필요합니다.</translation>
 <translation id="7230787553283372882">텍스트 크기 맞춤설정</translation>
-<translation id="7231589788477569369">다음 설정으로 어시스턴트의 모든 기능을 활용하기</translation>
 <translation id="7232750842195536390">이름 변경 실패</translation>
 <translation id="7234406375359457793">공유를 마운트하는 중에 오류가 발생했습니다. 지정된 공유가 지원되지 않습니다.</translation>
 <translation id="7238585580608191973">SHA-256 지문</translation>
@@ -4081,7 +4075,6 @@
 <translation id="7243632151880336635">지우기 및 로그아웃</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" />x<ph name="HEIGHT" />(최고)</translation>
 <translation id="7246339268451149667">지문 잠금 해제를 사용하시겠습니까?</translation>
-<translation id="7246489301073081944">종료하려면 |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| 키를 길게 누르세요.</translation>
 <translation id="7246947237293279874">FTP 프록시</translation>
 <translation id="725109152065019550">관리자가 계정에서 외부 저장소를 사용 중지했습니다.</translation>
 <translation id="7253521419891527137">자세히 알아보기(&amp;L)</translation>
@@ -4234,7 +4227,6 @@
 <translation id="7489605380874780575">자격 확인</translation>
 <translation id="749028671485790643">사용자 이름 <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC 주소</translation>
-<translation id="7490950320178383728">블루투스를 통해 보안 키 사용</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> 확장 프로그램에서 비밀번호와 신용카드 번호 등의 개인정보를 포함해 입력하는 모든 텍스트를 수집할 수 있습니다. 이 확장 프로그램을 사용하시겠어요?</translation>
 <translation id="7494065396242762445">Windows 설정 열기</translation>
@@ -4484,7 +4476,6 @@
 <translation id="7850851215703745691">드라이브 파일이 아직 공유되지 않음</translation>
 <translation id="7851457902707056880">로그인이 소유자 계정으로만 제한되었습니다. 다시 부팅하여 소유자 계정으로 로그인하세요. 컴퓨터가 30초 뒤에 자동으로 다시 부팅됩니다.</translation>
 <translation id="7851716364080026749">카메라 및 마이크 액세스 항상 차단</translation>
-<translation id="7851816139220202929">NFC를 통해 보안 키 사용</translation>
 <translation id="7853747251428735">도구 더보기(&amp;L)</translation>
 <translation id="7856006446339184955">시스템 데이터를 전송합니다. 이 기기는 현재 진단과 기기 및 앱 사용 데이터를 Google로 자동 전송하고 있습니다. 이 <ph name="BEGIN_LINK1" />설정<ph name="END_LINK1" />은 소유자가 지정했습니다. 추가 웹 및 앱 활동을 사용 설정하면 이 정보가 계정에 저장되어 내 활동에서 관리할 수 있습니다. <ph name="BEGIN_LINK2" />자세히 알아보기<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">예외 추가</translation>
@@ -4567,6 +4558,7 @@
 <translation id="7973962044839454485">사용자 이름 또는 비밀번호가 잘못되어 PPP 인증에 실패했습니다.</translation>
 <translation id="7974566588408714340"><ph name="EXTENSIONNAME" />을(를) 사용하여 다시 시도</translation>
 <translation id="7974936243149753750">오버스캔</translation>
+<translation id="79766959863778284">XR 격리된 기기 서비스</translation>
 <translation id="7977551819349545646">Chromebox를 업데이트하는 중...</translation>
 <translation id="7978412674231730200">비공개 키</translation>
 <translation id="7978450511781612192">Google 계정에서 로그아웃됩니다. 북마크, 방문 기록, 비밀번호 등이 더 이상 동기화되지 않습니다.</translation>
@@ -4617,7 +4609,6 @@
 <translation id="8030656706657716245">프린터 추가</translation>
 <translation id="8032244173881942855">탭을 전송할 수 없습니다.</translation>
 <translation id="8033827949643255796">선택됨</translation>
-<translation id="8033958968890501070">시간 초과</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{시크릿 창에서 모두 열기(I)}=1{시크릿 창에서 열기(I)}other{시크릿 창에서 #개 모두 열기(I)}}</translation>
 <translation id="8037117027592400564">음성 출력 기능을 사용한 모든 음성 텍스트 조회</translation>
 <translation id="8037357227543935929">요청(기본값)</translation>
@@ -4790,6 +4781,7 @@
 <translation id="8320459152843401447">내 전체 화면</translation>
 <translation id="8322814362483282060">마이크 액세스가 차단된 페이지입니다.</translation>
 <translation id="8326478304147373412">PKCS #7, 인증서 체인</translation>
+<translation id="8327039559959785305">Linux 파일을 마운트하는 중에 오류가 발생했습니다. 다시 시도해 보세요.</translation>
 <translation id="8329978297633540474">일반 텍스트</translation>
 <translation id="8335587457941836791">임시보관함에서 고정 해제</translation>
 <translation id="8336153091935557858">어제 <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4840,7 +4832,6 @@
 <translation id="8425213833346101688">변경</translation>
 <translation id="8425492902634685834">작업 표시줄에 고정</translation>
 <translation id="8425755597197517046">붙여넣어 검색하기(&amp;S)</translation>
-<translation id="8426117172745886547">종료하기 전 경고(<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">사용 설정 중</translation>
 <translation id="8427292751741042100">모든 호스트에 삽입됨</translation>
 <translation id="8428213095426709021">설정</translation>
@@ -4928,7 +4919,6 @@
 <translation id="8551388862522347954">라이선스</translation>
 <translation id="8553342806078037065">다른 사용자 관리</translation>
 <translation id="8554899698005018844">언어가 없음</translation>
-<translation id="8557347704037207368">Android Web Messages에서 알림을 보냅니다.</translation>
 <translation id="855773602626431402">이 페이지에서 샌드박스 처리되지 않은 플러그인 실행을 차단하였습니다.</translation>
 <translation id="8557930019681227453">매니페스트</translation>
 <translation id="8559694214572302298">이미지 디코더</translation>
@@ -5041,6 +5031,7 @@
 <translation id="8714154114375107944">지원 종료</translation>
 <translation id="8714838604780058252">배경 그래픽</translation>
 <translation id="8715480913140015283">배경 탭에서 카메라를 사용 중입니다.</translation>
+<translation id="8716931980467311658">이 <ph name="DEVICE_TYPE" />에서 Linux 파일 폴더에 있는 모든 Linux 애플리케이션과 데이터를 삭제하시겠습니까?</translation>
 <translation id="8719653885894320876"><ph name="PLUGIN_NAME" />을(를) 다운로드하지 못했습니다.</translation>
 <translation id="8723829621484579639">다음 사이트의 시크릿 서브프레임: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">폴더 열기(&amp;S)</translation>
@@ -5204,7 +5195,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - 비정상 종료됨</translation>
 <translation id="8983677657449185470">세이프 브라우징 개선에 참여</translation>
 <translation id="8984654317541110628">파일 공유 URL</translation>
-<translation id="8984872292925913496">키 뒷면에서 6자리 PIN을 찾으세요.</translation>
 <translation id="8986362086234534611">저장 안함</translation>
 <translation id="8986494364107987395">사용 통계 및 비정상 종료 보고서를 Google에 자동으로 보내기</translation>
 <translation id="8987927404178983737">월</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 831c631..85f3b37 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Paryškinti objektą jį suaktyvinus klaviatūra, kai jis pasikeičia</translation>
 <translation id="1173894706177603556">Pervadinti</translation>
 <translation id="1174073918202301297">Spartusis klavišas pridėtas</translation>
-<translation id="1174808551768282258">Atrakinkite „Chromebook“ įrenginį telefonu. <ph name="LINK_BEGIN" />Sužinokite daugiau.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Spausdinti...</translation>
 <translation id="117624967391683467">Kopijuojamas failas „<ph name="FILE_NAME" />“...</translation>
 <translation id="1177138678118607465">Naudodama naršymo istoriją „Google“ gali suasmeninti Paieškos skelbimus ir kitas „Google“ paslaugas. Galite bet kada tai pakeisti apsilankę myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pristabdyti</translation>
 <translation id="1181037720776840403">Pašalinti</translation>
 <translation id="1183237619868651138">Nepavyko įdiegti „<ph name="EXTERNAL_CRX_FILE" />“ vietinėje talpykloje.</translation>
-<translation id="1183378459020939734">Pasiruošę susieti saugos raktą?</translation>
 <translation id="1185924365081634987">Taip pat galite bandyti <ph name="GUEST_SIGNIN_LINK_START" />naršyti kaip svečias<ph name="GUEST_SIGNIN_LINK_END" />, kad išspręstumėte šią tinklo klaidą.</translation>
 <translation id="1186771945450942097">Žalingos programinės įrangos pašalinimas</translation>
 <translation id="1187722533808055681">Neaktyvumo režimo nutraukimo veiksmai</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Nerasta jokių „Bluetooth“ įrenginių</translation>
 <translation id="1306606229401759371">Keisti nustatymus</translation>
 <translation id="1307559529304613120">Oi, sistemai nepavyko išsaugoti šio įrenginio ilgalaikio API prieigos kodo.</translation>
+<translation id="1307931752636661898">Nepavyko peržiūrėti „Linux“ failų</translation>
 <translation id="1313405956111467313">Automatinė tarpinio serverio konfigūracija</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Žymės, istorija ir kiti nustatymai bus sinchronizuojami su „Google“ paskyra.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Atidaryti įrenginio pelės ir jutiklinės dalies nustatymus</translation>
 <translation id="1531004739673299060">Programos langas</translation>
 <translation id="15373452373711364">Didelis pelės žymeklis</translation>
+<translation id="1538729222189715449">Atidaromi „Linux“ failai...</translation>
 <translation id="1540605929960647700">Demonstracinio režimo įgalinimas</translation>
 <translation id="1543284117603151572">Importuota iš „Edge“</translation>
 <translation id="1545177026077493356">Automatinis viešojo terminalo režimas</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Keisti jutiklinio HUD režimą</translation>
 <translation id="1784849162047402014">Mažai laisvos vietos įrenginio diske</translation>
 <translation id="1786636458339910689">Komandos Diskai</translation>
-<translation id="1792161662640298233">Saugos rakto patvirtinimas</translation>
 <translation id="1792619191750875668">Išplėstas vaizdas</translation>
 <translation id="1794791083288629568">Atsiųskite atsiliepimų, kad padėtumėte mums išspręsti šią problemą.</translation>
 <translation id="1795214765651529549">Naudoti klasikinę</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Sveiki!</translation>
 <translation id="1914326953223720820">Išpakavimo paslauga</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Atsižvelgiant į paskyros nustatymus, Padėjėjas galbūt galės pateikti tik žiniatinklio rezultatus, pokštus ir vietinę informaciją.</translation>
 <translation id="1916502483199172559">Numatytasis raudonas pseudoportretas</translation>
 <translation id="1918141783557917887">&amp;Mažesnis</translation>
 <translation id="1919345977826869612">Skelbimai</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Adresu <ph name="PEPPER_PLUGIN_DOMAIN" /> esantis papildinys „<ph name="PEPPER_PLUGIN_NAME" />“ nori pasiekti kompiuterį</translation>
 <translation id="2178614541317717477">CA pažeidimo galimybė</translation>
 <translation id="218070003709087997">Skaičiumi nurodykite, kiek kopijų spausdinti (nuo 1 iki 999).</translation>
+<translation id="2184515124301515068">Leisti „Chrome“ pasirinkti, kada svetainės gali leisti garsą (rekomenduojama)</translation>
 <translation id="2187895286714876935">Serverio sertifikato importavimo klaida</translation>
 <translation id="2187906491731510095">Plėtiniai atnaujinti</translation>
 <translation id="2188881192257509750">Atidaryti „<ph name="APPLICATION" />“</translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Skaityti ir keisti duomenis keliose svetainėse</translation>
 <translation id="2242687258748107519">Failo informacija</translation>
 <translation id="2243194103992005307">Jei norite pašalinti programas, eikite į skiltį „Nustatymai“ &gt; „Programos“ arba „Programų tvarkytuvė“. Tada palieskite programą, kurią norite pašalinti (galbūt reikės perbraukti į dešinę arba į kairę, kad rastumėte programą). Tada palieskite „Pašalinti“ arba „Išjungti“.</translation>
+<translation id="224940702122312781">Šiame puslapyje bus sunaudojama daug duomenų.</translation>
 <translation id="2249605167705922988">pvz., 1–5, 8, 11–13</translation>
 <translation id="2251218783371366160">Atidaryti naudojat sistemos peržiūros priemonę</translation>
 <translation id="225163402930830576">Atnaujinti tinklus</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Konfigūruoti tinklą</translation>
 <translation id="230927227160767054">Puslapis prašo leidimo įdiegti paslaugos doroklę.</translation>
 <translation id="2309620859903500144">Ši svetainė užblokuota, kad nebūtų naudojami judesio ar šviesos jutikliai.</translation>
-<translation id="2311075084924370935">Kad galėtų jums padėti dėl kalendoriaus, priminimų, skrydžių ir kt., Padėjėjui reikalinga prieiga prie „Žiniatinklio ir programų veiklos“, „Įrenginio informacijos“, „Balso ir garso įrašų veiklos“ nustatymų.</translation>
+<translation id="2315414688463285945">Konfigūruojant „Linux“ failus įvyko klaida. Bandykite dar kartą.</translation>
 <translation id="2315821125498993513">Nepavyko prisijungti prie telefono. <ph name="LINK_BEGIN" />Sužinokite daugiau.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Ačiū, ne</translation>
 <translation id="2317842250900878657">Atlikta: <ph name="PROGRESS_PERCENT" /> %</translation>
 <translation id="2318143611928805047">Popieriaus lapo dydis</translation>
 <translation id="2318817390901984578">Jei norite naudoti „Android“ programas, įkraukite ir atnaujinkite savo „<ph name="DEVICE_TYPE" />“.</translation>
 <translation id="2318923050469484167">Dabartinė inkognito režimo sesija (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Saugos rakto naudojimas su <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Antraštės ir poraštės</translation>
 <translation id="2325650632570794183">Šio tipo failas nepalaikomas. Apsilankykite „Chrome“ internetinėje parduotuvėje ir suraskite programą, kurią naudojant galima atidaryti šio tipo failą.</translation>
 <translation id="2326931316514688470">&amp;Įkelti programą iš naujo</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Nustatyti failo bendrinimą</translation>
 <translation id="2367972762794486313">Rodyti programas</translation>
 <translation id="2369536625682139252">Visi <ph name="SITE" /> saugomi duomenys bus ištrinti, išskyrus slapukus.</translation>
-<translation id="237058345584060620">Susiekite raktą su šiuo įrenginiu, kad jį naudodami galėtumėte prisijungti prie paskyros</translation>
 <translation id="2371076942591664043">Baigus &amp;atidaryti</translation>
 <translation id="2377319039870049694">Perjungti į sąrašo rodinį</translation>
 <translation id="2377667304966270281">Sunkūs gedimai</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Nepavyksta rasti jūsų telefono. Įsitikinkite, kad „<ph name="DEVICE_TYPE" />“ įrenginyje įjungtas „Bluetooth“. &lt;a&gt;Sužinokite daugiau&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Pridėti &amp;aplanką...</translation>
 <translation id="249113932447298600">Apgailestaujame, tačiau įrenginys <ph name="DEVICE_LABEL" /> šiuo metu nepalaikomas.</translation>
-<translation id="2492040222276243256">Paspauskite mygtuką ant saugos rakto ir palaikykite bent 5 sekundes</translation>
 <translation id="2493021387995458222">Pasirinkti „žodį tuo pat metu“</translation>
 <translation id="249303669840926644">Nepavyko užbaigti registracijos</translation>
 <translation id="2495777824269688114">Atraskite daugiau funkcijų arba gaukite atsakymus. Pasirinkite „?“, kad gautumėte pagalbos.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Iš viso: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Ilga</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_VERSION" /> versijos „<ph name="PRODUCT_NAME" />“ (platforma „<ph name="PLATFORM_VERSION" />“) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Šis skirtukas bendrina jūsų ekraną.</translation>
 <translation id="2586657967955657006">Iškarpinė</translation>
 <translation id="2586672484245266891">Įveskite trumpesnį URL</translation>
 <translation id="2587922270115112871">Sukūrus prižiūrimą naudotoją nebus sukurta „Google“ paskyra, o jo nustatymai
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> naudoja <ph name="USAGE" /> MB disko vietos.</translation>
 <translation id="2633212996805280240">Pašalinti „<ph name="EXTENSION_NAME" />“?</translation>
 <translation id="263325223718984101">„<ph name="PRODUCT_NAME" />“ nepavyko baigti diegimo, bet ji toliau bus paleista iš disko vaizdo.</translation>
-<translation id="2633326789677284179">Raskite rakto užpakalinėje dalyje užrašytą pavadinimą</translation>
 <translation id="2635276683026132559">Pasirašymas</translation>
 <translation id="2636625531157955190">„Chrome“ negali pasiekti vaizdo.</translation>
 <translation id="2638087589890736295">Norint pradėti sinchronizuoti reikalinga slaptafrazė</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Pridėti „<ph name="PROVIDER_NAME" />“...</translation>
 <translation id="2874343608108773609">Prisijunkite prie „Chrome“, kad pasiektumėte slaptažodžius visuose įrenginiuose.</translation>
 <translation id="2875698561019555027">(„Chrome“ klaidų puslapiai)</translation>
-<translation id="2876441201733326392">USB saugos rakto naudojimas</translation>
 <translation id="288042212351694283">Pasiekiami bendrieji 2 veiksnio įrenginiai</translation>
 <translation id="2881966438216424900">Paskutinį kartą pasiekta:</translation>
 <translation id="2882943222317434580">„<ph name="IDS_SHORT_PRODUCT_NAME" />“ bus iš karto paleista ir nustatyta iš naujo</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Pranešti anonimiškai</translation>
 <translation id="2984337792991268709">Šiandien <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Šis puslapis užblokuotas, kad negalėtų visiškai valdyti MIDI įrenginių.</translation>
-<translation id="2988599644347283908">Pastaba: šių nustatymų valdomi duomenys gali būti išsaugomi ir naudojami visose „Google“ paslaugose, prie kurių esate prisijungę, kad būtų galima teikti suasmenintas paslaugas ir naudingus skelbimus. Apsilankę adresu account.google.com galite peržiūrėti savo duomenis, juos ištrinti ir keisti nustatymus.</translation>
 <translation id="2989474696604907455">neprijungtas</translation>
 <translation id="2989786307324390836">DER užkoduotas dvejetainis, vienas sertifikatas</translation>
 <translation id="2993517869960930405">Programos informacija</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Įjungti garsą skirtukuose</translation>
 <translation id="3053013834507634016">Sertifikato rakto naudojimas</translation>
 <translation id="3057861065630527966">Kurkite atsargines nuotraukų ir vaizdo įrašų kopijas</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Įgalinti funkciją „Teksto ištarimas“</translation>
 <translation id="3061707000357573562">Pataisos paslauga</translation>
 <translation id="3064410671692449875">Nepakanka duomenų</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Nepavyko nukopijuoti išorinio CRX failo į „<ph name="TEMP_CRX_FILE" />“.</translation>
 <translation id="3090871774332213558">Įrenginys „<ph name="DEVICE_NAME" />“ susietas</translation>
 <translation id="3101709781009526431">Data ir laikas</translation>
-<translation id="3104900172193317662">Leiskite naudoti saugos raktą</translation>
 <translation id="310671807099593501">Svetainė naudoja „Bluetooth“</translation>
 <translation id="3115128645424181617">Nepavyksta rasti jūsų telefono. Įsitikinkite, kad jis netoliese ir įjungėte „Bluetooth“.</translation>
 <translation id="3115147772012638511">Laukiama talpyklos...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Ne sertifikato dalis&gt;</translation>
 <translation id="3254434849914415189">Keisti numatytąją <ph name="FILE_TYPE" /> failų programą:</translation>
 <translation id="3254516606912442756">Automatinis laiko juostos aptikimas išjungtas</translation>
-<translation id="3254772308201947812">Taip, sutinku</translation>
 <translation id="3264544094376351444">Šriftas „Sans-Serif“</translation>
 <translation id="3264547943200567728">Nepavyko nustatyti „Chromebox“ tinklo</translation>
 <translation id="3264582393905923483">Kontekstas</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Rūšiuoti pagal</translation>
 <translation id="3737274407993947948">Įdiegiant „Linux“ įvyko klaida...</translation>
 <translation id="3737536731758327622">Čia rodomi jūsų atsisiuntimai</translation>
-<translation id="3738671331307774213">Jei patvirtinsite savo tapatybę, galėsime efektyviau apsaugoti jūsų privačius duomenis</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Atidaryti „<ph name="APPLICATION" />“?</translation>
 <translation id="3741158646617793859">Dabar „<ph name="DEVICE_NAME" />“ bus rodomas „Admin Console“</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sinchronizavimas pristabdytas</translation>
 <translation id="3860381078714302691">Sveiki! Tai – „Hangout Meet“</translation>
+<translation id="3861241522664181545">Puslapis pristabdytas.</translation>
 <translation id="3862134173397075045">Sveiki! Tai – „Cast“ funkcijos naršyklėje „Chrome“!</translation>
 <translation id="3862788408946266506">Programa su aprašo atributu „kiosk_only“ turi būti įdiegta „Chrome“ OS viešojo terminalo režimu</translation>
 <translation id="3865414814144988605">Skyra</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Norėdami tai įjungti <ph name="BEGIN_LINK" />nustatykite sinchronizavimą iš naujo<ph name="END_LINK" />, kad pašalintumėte sinchronizavimo slaptafrazę</translation>
 <translation id="3878840326289104869">Kuriamas prižiūrimas naudotojas</translation>
 <translation id="3879748587602334249">Atsisiuntimų tvarkytuvė</translation>
-<translation id="3880709822663530586">Saugos raktas veikia, tik kai įrenginio „Bluetooth“ įjungtas</translation>
 <translation id="3888550877729210209">Užrašų kūrimas naudojant „<ph name="LOCK_SCREEN_APP_NAME" />“</translation>
 <translation id="3892414795099177503">Atidaryti „OpenVPN“ / L2TP...</translation>
 <translation id="3893536212201235195">Skaityti ir keisti pritaikymo neįgaliesiems nustatymus</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Ruošiamas saugus modulis; palaukite (tai gali užtrukti kelias minutes)...</translation>
 <translation id="4099060993766194518">Atkurti numatytąjį paieškos variklį?</translation>
 <translation id="4100733287846229632">Labai mažai vietos įrenginyje</translation>
+<translation id="4103091233824664032">Įveskite slaptažodį ir konfigūruokite ekrano užraktą bei prisijungimą</translation>
 <translation id="4104163789986725820">Eksportuoti...</translation>
 <translation id="4105563239298244027">Gaukite 1 TB nemokamai naudodami „Google“ diską</translation>
 <translation id="4107048419833779140">Identifikuoti ir pašalinti saugyklos įrenginius</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Nakties šviesa bus išjungta automatiškai saulei tekant</translation>
 <translation id="4138267921960073861">Rodyti naudotojų vardus ir nuotraukas prisijungimo ekrane</translation>
 <translation id="4144218403971135344">Gaukite kokybiškesnį vaizdo įrašą ir tausokite akumuliatoriaus energiją. Vaizdo įrašas bus leidžiamas tik su „Cast“ suderinamame įrenginyje.</translation>
-<translation id="414599683948988413">Naudokite saugos raktą su USB</translation>
 <translation id="4146026355784316281">Visada atidaryti naudojant sistemos peržiūros priemonę</translation>
 <translation id="4146785383423576110">Nustatykite iš naujo ir išvalykite</translation>
 <translation id="4147897805161313378">„Google“ nuotraukos</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Neleisti</translation>
 <translation id="4400367121200150367">Svetainės, kuriose niekada nesaugomi slaptažodžiai, bus rodomos čia</translation>
 <translation id="4400632832271803360">Laikykite paspaustą paleidimo priemonės klavišą, kad perjungtumėte viršutinės eilutės klavišų veikimą</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">P&amp;agalba</translation>
 <translation id="4409697491990005945">Paraštės</translation>
 <translation id="4411578466613447185">Kodą pasirašanti šalis</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">„Chrome“ gali rasti kenkėjišką programinę įrangą jūsų kompiuteryje ir ją pašalinti</translation>
 <translation id="4481530544597605423">Atsieti įrenginiai</translation>
 <translation id="4482194545587547824">„Google“ gali naudoti jūsų naršymo istoriją, kad suasmenintų Paiešką ir kitas „Google“ paslaugas</translation>
+<translation id="4493287891836751813">Susipažinkite su „Google“ padėjėju</translation>
 <translation id="4495419450179050807">Nerodyti šiame puslapyje</translation>
 <translation id="4499718683476608392">Įgalinamas automatinis kredito kortelės informacijos pildymas, kad būtų galima užpildyti formas vienu paspaudimu</translation>
 <translation id="4500114933761911433">Papildinys „<ph name="PLUGIN_NAME" />“ užstrigo</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Nutildyti skirtuko garsą</translation>
 <translation id="4742746985488890273">Prisegti prie lentynos</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Sužinokite, kaip atnaujinti programas<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Pranešimai</translation>
 <translation id="4746971725921104503">Panašu, kad jau tvarkote naudotoją tokiu vardu. Ar norėjote <ph name="LINK_START" />importuoti <ph name="USER_DISPLAY_NAME" /> į šį įrenginį<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Reikia plėtinio iš „Chrome“ internetinės parduotuvės</translation>
 <translation id="4750394297954878236">Pasiūlymai</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Profiliavimas įgalintas</translation>
 <translation id="4823484602432206655">Skaityti ir keisti naudotojo bei įrenginio nustatymus</translation>
 <translation id="4823651846660089135">Įrenginys yra tik skaitomas</translation>
+<translation id="4823955295535347797">Pasiekite Padėjėją bet kuriuo metu pasakę „Ok Google“, kai ekranas įjungtas.</translation>
 <translation id="4828937774870308359">Australiškas</translation>
 <translation id="4829768588131278040">Nustatyti PIN kodą</translation>
 <translation id="4830502475412647084">Įdiegiamas OS naujinys</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Padėkite mūsų inžinieriams ištirti ir ištaisyti šią strigtį. Nurodykite tikslius veiksmus, jei galite. Nėra nesvarbios informacijos!</translation>
 <translation id="4876895919560854374">Užrakinti ir atrakinti ekraną</translation>
 <translation id="4877017884043316611">Susieti su „Chromebox“</translation>
+<translation id="4879491255372875719">Automatinis (numatytasis)</translation>
 <translation id="4880214202172289027">Garsumo šliaužiklis</translation>
 <translation id="4880328057631981605">Prieigos taško pavadinimas</translation>
 <translation id="4880520557730313061">Automatinis pataisymas</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">aukštyn</translation>
 <translation id="5100114659116077956">Kad galėtumėte naudotis naujausiomis funkcijomis, „Chromebox“ reikia atnaujinti.</translation>
 <translation id="5101042277149003567">Atidaryti visas žymas</translation>
-<translation id="5104546332954397226">Naudokite telefoną kaip saugos raktą</translation>
 <translation id="5105855035535475848">Prisegti skirtukus</translation>
 <translation id="5108967062857032718">Nustatymai – „Android“ programų pašalinimas</translation>
 <translation id="5109044022078737958">Austra</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">I&amp;š naujo atidaryti uždarytą skirtuką</translation>
 <translation id="52912272896845572">Asmeninio rakto failas neteisingas.</translation>
 <translation id="529175790091471945">Formatuoti šį įrenginį</translation>
-<translation id="5292195676005197571">Dauguma raktų naudojami tiesiog paspaudus mygtuką</translation>
 <translation id="5293170712604732402">Atkurti pradinius numatytuosius nustatymus</translation>
 <translation id="5297082477358294722">Slaptažodis išsaugotas. Peržiūrėkite ir tvarkykite išsaugotus slaptažodžius <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Temą sukūrė</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Sutinku</translation>
 <translation id="532943162177641444">Palieskite pranešimą „<ph name="PHONE_NAME" />“ įrenginyje, kad nustatytumėte mobiliojo ryšio viešosios interneto prieigos tašką, kurį galima naudoti šiame įrenginyje.</translation>
 <translation id="5329858601952122676">&amp;Pašalinti</translation>
+<translation id="5329945517224105597">Padėjėjas gali pasiūlyti daugiau aktualių pasiūlymų ir konkrečių veiksmų, susijusių su ekrane esančia informacija. Tai galite pakeisti Padėjėjo nustatymuose.</translation>
 <translation id="5330145655348521461">Šie failai atidaryti kitame darbalaukyje. Perkelkite failus <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />), kad peržiūrėtumėte juos.</translation>
 <translation id="5330512191124428349">Gauti informacijos</translation>
 <translation id="5331069282670671859">Neturite jokių šios kategorijos sertifikatų</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Leisti svetainėms leisti garsą</translation>
 <translation id="5390284375844109566">Indeksuoti duomenys</translation>
 <translation id="5390743329570580756">Siųsti</translation>
-<translation id="5392327114396848796">Naudokite įtaisytą saugos raktą</translation>
 <translation id="5397794290049113714">Jūs</translation>
 <translation id="5398572795982417028">Puslapio už diapazono ribų nuoroda (apribojimas :<ph name="MAXIMUM_PAGE" />)</translation>
 <translation id="5398772614898833570">Skelbimai užblokuoti</translation>
@@ -3077,6 +3071,7 @@
    <ph name="LINE_BREAKS" />
    Uždarykite visus failus archyve ar virtualiajame diske, tada bandykite dar kartą.</translation>
 <translation id="5687326903064479980">Laiko juosta</translation>
+<translation id="568824803367507355">„Ok Google“ aptikimas</translation>
 <translation id="5689516760719285838">Vieta</translation>
 <translation id="56907980372820799">Susieti duomenis</translation>
 <translation id="5691511426247308406">Šeima</translation>
@@ -3174,7 +3169,6 @@
 <translation id="5835486486592033703">„<ph name="WINDOW_TITLE" />“ – fotoaparato ar mikrofono įrašymas</translation>
 <translation id="5835754902560991078">itin trumpa (0,6 sek.)</translation>
 <translation id="5838456317242088717">Dabartinė inkognito sesija</translation>
-<translation id="5842053879378944309">USB saugos rakto naudojimas su „<ph name="APP_NAME" />“</translation>
 <translation id="5842497610951477805">„Bluetooth“ įgalinimas</translation>
 <translation id="5843250171025351504">Įrenginys nebesuderinamas su seniausia leistina kliento versija, kurią nurodė administratorius. Atnaujinkite, kad galėtumėte prisijungti.</translation>
 <translation id="5846929185714966548">4 skirtukas</translation>
@@ -3492,7 +3486,6 @@
 <translation id="6317318380444133405">Nebepalaikoma.</translation>
 <translation id="6317369057005134371">Laukiama programos lango...</translation>
 <translation id="6318407754858604988">Atsisiuntimo procesas pradėtas</translation>
-<translation id="6322653941595359182">Siųskite ir gaukite teksto pranešimus „Chromebook“ įrenginiu</translation>
 <translation id="6324916366299863871">Redaguoti spartųjį klavišą</translation>
 <translation id="6325191661371220117">Neleisti automatinio paleidimo</translation>
 <translation id="6326175484149238433">Pašalinti iš „Chrome“</translation>
@@ -3536,6 +3529,7 @@
 <translation id="6395423953133416962">Siųsti <ph name="BEGIN_LINK1" />sistemos informaciją<ph name="END_LINK1" /> ir <ph name="BEGIN_LINK2" />metriką<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Sinchronizavimo ir suasmeninimo parinktys</translation>
 <translation id="6397592254427394018">Atidaryti visas žymes &amp;inkognito lange</translation>
+<translation id="639777613761517128">Norėdami atidaryti failus naudodami „$1“, pirmiausia nukopijuokite juos į „Linux“ failų aplanką.</translation>
 <translation id="6398715114293939307">Pašalinti „Google Play“ parduotuvę</translation>
 <translation id="6398765197997659313">Išeiti iš viso ekrano režimo</translation>
 <translation id="6399774419735315745">Slaptoji agentė</translation>
@@ -3561,7 +3555,6 @@
 <translation id="642282551015776456">Šio pavadinimo negalima naudoti kaip aplanko pavadinimo</translation>
 <translation id="642469772702851743">Šį įrenginį (serijos Nr. <ph name="SERIAL_NUMBER" />) užrakino savininkas.</translation>
 <translation id="6426200009596957090">Atidaryti „ChromeVox“ nustatymus</translation>
-<translation id="6427415464407526111">Saugos rakto pasirinkimas</translation>
 <translation id="6429384232893414837">Atnaujinimo klaida</translation>
 <translation id="6430814529589430811">„Base64“ užkoduotas ASCII, vienas sertifikatas</translation>
 <translation id="6431217872648827691">Visi duomenys užšifruoti naudojant jūsų „Google“ slaptažodį nuo
@@ -3719,7 +3712,6 @@
 <translation id="6655190889273724601">Kūrėjo režimas</translation>
 <translation id="6655458902729017087">Slėpti paskyras</translation>
 <translation id="6657585470893396449">Slaptažodis</translation>
-<translation id="6658023813581644008">Kad nustatytumėte prisijungiant taikomą „Smart Lock“, įveskite slaptažodį</translation>
 <translation id="6659213950629089752">Šio puslapio mastelį pakeitė plėtinys „<ph name="NAME" />“</translation>
 <translation id="6659594942844771486">Skirtukas</translation>
 <translation id="6664237456442406323">Deja, jūsų kompiuteris yra sukonfigūruotas naudojant netinkamai suformuotą aparatinės įrangos ID. Tai neleidžia „Chrome“ OS atnaujinti naujausiais saugos pataisymais ir jūsų kompiuteris <ph name="BEGIN_BOLD" />gali būti neatsparus kenkėjiškoms programoms<ph name="END_BOLD" />.</translation>
@@ -3855,7 +3847,6 @@
 <translation id="6885771755599377173">Sistemos informacijos peržiūra</translation>
 <translation id="6886871292305414135">Atidaryti nuorodą naujame &amp;skirtuke</translation>
 <translation id="6892812721183419409">Atidaryti nuorodą kaip <ph name="USER" /></translation>
-<translation id="6896398788631624004">Prijunkite saugos raktą ir suaktyvinkite</translation>
 <translation id="6896758677409633944">Kopijuoti</translation>
 <translation id="6898440773573063262">Dabar galima sukonfigūruoti, kad viešojo terminalo programos būtų automatiškai paleidžiamos šiame įrenginyje.</translation>
 <translation id="6898699227549475383">Organizacija (O)</translation>
@@ -3874,6 +3865,7 @@
 <translation id="6915804003454593391">Naudotojas:</translation>
 <translation id="6916590542764765824">Plėtinių tvarkymas</translation>
 <translation id="6920989436227028121">Atidaryti kaip įprastą skirtuką</translation>
+<translation id="6921709132208495314">Nustoti naudoti duomenis šiame puslapyje</translation>
 <translation id="6922128026973287222">Taupykite duomenis ir naršykite greičiau naudodami „Google“ duomenų taupymo priemonę. Jei norite sužinoti daugiau, spustelėkite.</translation>
 <translation id="6923132443355966645">Slinkti / spustelėti</translation>
 <translation id="6930242544192836755">Trukmė</translation>
@@ -3896,6 +3888,7 @@
 <translation id="6965382102122355670">Gerai</translation>
 <translation id="6965648386495488594">Prievadas</translation>
 <translation id="6965978654500191972">Įrenginys</translation>
+<translation id="6968288415730398122">Įveskite slaptažodį ir konfigūruokite ekrano užraktą</translation>
 <translation id="6970480684834282392">Paleisties tipas</translation>
 <translation id="6970856801391541997">Spausdinti konkrečius puslapius</translation>
 <translation id="6972180789171089114">Garso / vaizdo įrašai</translation>
@@ -3906,6 +3899,7 @@
 <translation id="6978121630131642226">Paieškos sistemos</translation>
 <translation id="6978611942794658017">Šis failas skirtas kompiuteriui, kuriame naudojama „Windows“ programinė įranga. Jis nesuderinamas su jūsų įrenginiu, kuriame veikia „Chrome“ OS. Ieškokite tinkamos pakaitinės programos „Chrome“ internetinėje parduotuvėje.</translation>
 <translation id="6979158407327259162">„Google“ diskas</translation>
+<translation id="6979440798594660689">Nutildyti (numatytasis)</translation>
 <translation id="6979737339423435258">Visas laikotarpis</translation>
 <translation id="6980462514016882061">„Google“ gali naudoti jūsų naršymo istoriją, kad suasmenintų Paiešką, skelbimus ir kitas „Google“ paslaugas</translation>
 <translation id="6981982820502123353">Pritaikymas neįgaliesiems</translation>
@@ -4054,6 +4048,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Tai yra pagrindinė informacija apie įrenginį ir kaip jį naudojate (pvz., akumuliatoriaus įkrovimo lygis, programų naudojimo duomenys ir tinklo ryšys). Šie duomenys bus naudojami visiems naudotojams skirtiems „Google“ produktams ir paslaugoms tobulinti. Tam tikra sukaupta informacija taip pat padės partneriams, pvz., „Android“ kūrėjams, pagerinti jų programas ir produktus.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Išjungus šią funkciją vis tiek galima siųsti įrenginio informaciją, reikalingą pagrindinėms paslaugoms, pvz., sistemos naujiniams ir saugai.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Šią funkciją galite valdyti skiltyje „Nustatymai“ &gt; „Google“. Meniu pasirinkite „Naudojimas ir diagnostika“.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Radome <ph name="NUMBER_OF_APPS" /> progr. iš jūsų paskyros, kurias galima naudoti šiame įrenginyje.</translation>
 <translation id="7199158086730159431">Gauti pagalbos</translation>
 <translation id="7200083590239651963">Konfigūracijos pasirinkimas</translation>
 <translation id="720110658997053098">Įgalinti nuolatinį šio įrenginio veikimą viešojo terminalo režimu</translation>
@@ -4074,7 +4069,6 @@
 <translation id="7228523857728654909">Ekrano užraktas ir prisijungimas</translation>
 <translation id="7229570126336867161">Reikia EVDO</translation>
 <translation id="7230787553283372882">Tinkinkite teksto dydį</translation>
-<translation id="7231589788477569369">Pasinaudokite visomis Padėjėjo funkcijomis pasirinkę šiuos nustatymus</translation>
 <translation id="7232750842195536390">Nepavyko pervardyti</translation>
 <translation id="7234406375359457793">Klaida įdedant bendrinamą objektą. Nurodytas bendrinamas objektas nepalaikomas.</translation>
 <translation id="7238585580608191973">SHA-256 kontrolinis kodas</translation>
@@ -4084,7 +4078,6 @@
 <translation id="7243632151880336635">Išvalyti ir atsijungti</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (geriausia)</translation>
 <translation id="7246339268451149667">Įgalinti atrakinimą naudojant kontrolinį kodą?</translation>
-<translation id="7246489301073081944">Palaikykite paspaudę |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| + |<ph name="ACCELERATOR3" />|, kad išeitumėte</translation>
 <translation id="7246947237293279874">FTP tarpinis serveris</translation>
 <translation id="725109152065019550">Deja, jūsų administratorius išjungė išorinę paskyros atmintinę.</translation>
 <translation id="7253521419891527137">&amp;Sužinokite daugiau</translation>
@@ -4237,7 +4230,6 @@
 <translation id="7489605380874780575">Tikrinti tinkamumą</translation>
 <translation id="749028671485790643">Asmuo <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC adresas</translation>
-<translation id="7490950320178383728">Naudokite saugos raktą su „Bluetooth“</translation>
 <translation id="7491962110804786152">Tabuliavimo klavišas</translation>
 <translation id="7493386493263658176">Plėtinys „<ph name="EXTENSION_NAME" />“ gali rinkti visą įvedamą tekstą, įskaitant asmeninius duomenis, pvz., slaptažodžius ir kredito kortelės numerius. Ar norite naudoti šį plėtinį?</translation>
 <translation id="7494065396242762445">Atidaryti „Windows“ nustatymus</translation>
@@ -4487,7 +4479,6 @@
 <translation id="7850851215703745691">Šie Disko failai dar nebendrinami</translation>
 <translation id="7851457902707056880">Prisijungti leidžiama tik naudojant savininko paskyrą. Įkelkite operacinę sistemą iš naujo ir prisijunkite naudodami savininko paskyrą. Įrenginio operacinė sistema bus automatiškai iš naujo įkelta po 30 sek.</translation>
 <translation id="7851716364080026749">Visada blokuoti prieigą prie fotoaparato ir mikrofono</translation>
-<translation id="7851816139220202929">Naudokite saugos raktą su ALR</translation>
 <translation id="7853747251428735">Daugiau įrank&amp;ių</translation>
 <translation id="7856006446339184955">Siųskite sistemos duomenis. Šiuo metu šis įrenginys automatiškai siunčia diagnostikos ir įrenginio bei programų naudojimo duomenis į sistemą „Google“. Šį <ph name="BEGIN_LINK1" />nustatymą<ph name="END_LINK1" /> priverstinai taiko savininkas. Jei įjungėte papildomą žiniatinklio ir programų veiklą, ši informacija bus saugoma jūsų paskyroje, kad galėtumėte tvarkyti ją skiltyje „Mano veikla“. <ph name="BEGIN_LINK2" />Sužinokite daugiau<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Pridėti išimtį</translation>
@@ -4570,6 +4561,7 @@
 <translation id="7973962044839454485">Nepavyko autentifikuoti PGP dėl netinkamo naudotojo vardo ar slaptažodžio</translation>
 <translation id="7974566588408714340">Dar kartą bandyti naudoti „<ph name="EXTENSIONNAME" />“</translation>
 <translation id="7974936243149753750">Sritis aplink vaizdo kraštus</translation>
+<translation id="79766959863778284">XR Isolated Device Service</translation>
 <translation id="7977551819349545646">Atnaujinamas „Chromebox“…</translation>
 <translation id="7978412674231730200">Asmeninis raktas</translation>
 <translation id="7978450511781612192">Atlikę šį veiksmą būsite atjungti nuo „Google“ paskyrų. Žymės, istorija, slaptažodžiai ir kt. nebebus sinchronizuojama.</translation>
@@ -4620,7 +4612,6 @@
 <translation id="8030656706657716245">Pridėti spausdintuvą</translation>
 <translation id="8032244173881942855">Nepavyko perduoti skirtuko.</translation>
 <translation id="8033827949643255796">pasirinkta</translation>
-<translation id="8033958968890501070">Skirtojo laiko pabaiga</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Atidaryti viską &amp;inkognito lange}=1{Atidaryti &amp;inkognito lange}one{Atidaryti viską (#) &amp;inkognito lange}few{Atidaryti viską (#) &amp;inkognito lange}many{Atidaryti viską (#) &amp;inkognito lange}other{Atidaryti viską (#) &amp;inkognito lange}}</translation>
 <translation id="8037117027592400564">Skaityti visą tekstą sintezuota kalba</translation>
 <translation id="8037357227543935929">Klausti (numatytoji parinktis)</translation>
@@ -4793,6 +4784,7 @@
 <translation id="8320459152843401447">Visas ekranas</translation>
 <translation id="8322814362483282060">Šis puslapis užblokuotas, kad nepasiektų jūsų mikrofono.</translation>
 <translation id="8326478304147373412">PKCS Nr. 7, sertifikato grandinė</translation>
+<translation id="8327039559959785305">Įdedant „Linux“ failus įvyko klaida. Bandykite dar kartą.</translation>
 <translation id="8329978297633540474">Grynasis tekstas</translation>
 <translation id="8335587457941836791">Atsegti nuo lentynos</translation>
 <translation id="8336153091935557858">Vakar <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4843,7 +4835,6 @@
 <translation id="8425213833346101688">Keisti</translation>
 <translation id="8425492902634685834">Prisegti prie užduočių juostos</translation>
 <translation id="8425755597197517046">Į&amp;klijuoti ir ieškoti</translation>
-<translation id="8426117172745886547">Įspėti prieš išeinant (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Įgalinama</translation>
 <translation id="8427292751741042100">įterpta bet kurioje priegloboje</translation>
 <translation id="8428213095426709021">Nustatymai</translation>
@@ -4931,7 +4922,6 @@
 <translation id="8551388862522347954">Licencijos</translation>
 <translation id="8553342806078037065">Tvarkyti kitus žmones</translation>
 <translation id="8554899698005018844">Kalbos nėra</translation>
-<translation id="8557347704037207368">Siųskite pranešimus naudodami „Android“ žiniatinklio pranešimų funkciją</translation>
 <translation id="855773602626431402">Uždrausta paleisti ne „smėlio dėžės“ papildinį šiame puslapyje.</translation>
 <translation id="8557930019681227453">Aprašas</translation>
 <translation id="8559694214572302298">Vaizdų dekoderis</translation>
@@ -5044,6 +5034,7 @@
 <translation id="8714154114375107944">Palaikymo nutraukimas</translation>
 <translation id="8714838604780058252">Fono grafika</translation>
 <translation id="8715480913140015283">Fone veikiančiame skirtuke naudojamas jūsų fotoaparatas</translation>
+<translation id="8716931980467311658">Ištrinti visas „Linux“ programas ir duomenis „Linux“ failų aplanke iš šio „<ph name="DEVICE_TYPE" />“ įrenginio?</translation>
 <translation id="8719653885894320876">Nepavyko atsisiųsti „<ph name="PLUGIN_NAME" />“</translation>
 <translation id="8723829621484579639">Inkognito režimo antriniai kadrai, skirti: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Rodyti aplanke</translation>
@@ -5207,7 +5198,6 @@
 <translation id="8980951173413349704">„<ph name="WINDOW_TITLE" />“ – užstrigo</translation>
 <translation id="8983677657449185470">Padėti tobulinti Saugų naršymą</translation>
 <translation id="8984654317541110628">Failo bendrinimo URL</translation>
-<translation id="8984872292925913496">Raskite 6 skaitmenų PIN kodą užpakalinėje rakto dalyje</translation>
 <translation id="8986362086234534611">Pamiršti</translation>
 <translation id="8986494364107987395">Automatiškai siųsti naudojimo statistiką ir strigčių ataskaitas „Google“</translation>
 <translation id="8987927404178983737">Mėnuo</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 1c73c4d..0ec293d0 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Izcelt objektu ar tastatūras fokusu, kad tas tiek mainīts</translation>
 <translation id="1173894706177603556">Pārdēvēt</translation>
 <translation id="1174073918202301297">Saīsne pievienota</translation>
-<translation id="1174808551768282258">Atbloķējiet savu Chromebook datoru, izmantojot tālruni. <ph name="LINK_BEGIN" />Uzziniet vairāk<ph name="LINK_END" />.</translation>
 <translation id="1175364870820465910">Drukāt...</translation>
 <translation id="117624967391683467">Notiek faila “<ph name="FILE_NAME" />” kopēšana...</translation>
 <translation id="1177138678118607465">Google var izmantot jūsu pārlūkošanas vēsturi, lai personalizētu Meklēšanu, reklāmas un citus Google pakalpojumus. Jūs jebkurā laikā to varat mainīt vietnē myaccount.google.com/activitycontrols/search.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pauzēt</translation>
 <translation id="1181037720776840403">Noņemt</translation>
 <translation id="1183237619868651138">Failu “<ph name="EXTERNAL_CRX_FILE" />” nevar instalēt lokālajā kešatmiņā.</translation>
-<translation id="1183378459020939734">Vai esat gatavs drošības atslēgas savienošanai pārī?</translation>
 <translation id="1185924365081634987">Varat arī mēģināt <ph name="GUEST_SIGNIN_LINK_START" />pārlūkot kā viesis<ph name="GUEST_SIGNIN_LINK_END" />, lai novērstu šo tīkla kļūdu.</translation>
 <translation id="1186771945450942097">Kaitīgās programmatūras noņemšana</translation>
 <translation id="1187722533808055681">Aktivizēšanas reižu skaits pēc gaidstāves režīma</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Netika atrasta neviena Bluetooth ierīce.</translation>
 <translation id="1306606229401759371">Mainīt iestatījumus</translation>
 <translation id="1307559529304613120">Hmm... Sistēmai neizdevās saglabāt šīs ierīces ilgtermiņa API piekļuves pilnvaru.</translation>
+<translation id="1307931752636661898">Nevar skatīt Linux failus</translation>
 <translation id="1313405956111467313">Automātiska starpniekservera konfigurācija</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Jūsu grāmatzīmes, vēsture un citi iestatījumi tiks sinhronizēti ar jūsu Google kontu</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Atvērt peles un skārienpaliktņa ierīces iestatījumus</translation>
 <translation id="1531004739673299060">Lietojumprogrammas logs</translation>
 <translation id="15373452373711364">Liels peles kursors</translation>
+<translation id="1538729222189715449">Notiek Linux failu atvēršana…</translation>
 <translation id="1540605929960647700">Demonstrācijas režīma iespējošana</translation>
 <translation id="1543284117603151572">Importētas no pārlūkprogrammas Edge</translation>
 <translation id="1545177026077493356">Automātiskais kioska režīms</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Mainīt pieskāriena HUD režīmu</translation>
 <translation id="1784849162047402014">Ierīces diskā ir maz vietas.</translation>
 <translation id="1786636458339910689">Komandas diski</translation>
-<translation id="1792161662640298233">Drošības atslēgas pārbaude</translation>
 <translation id="1792619191750875668">Paplašinātais attēlojums</translation>
 <translation id="1794791083288629568">Sūtīt atsauksmes, lai palīdzētu novērst šo problēmu.</translation>
 <translation id="1795214765651529549">Izmantot klasisko motīvu</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Laipni lūdzam!</translation>
 <translation id="1914326953223720820">Pakalpojums failu izgūšanai no arhīva</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">Atkarībā no jūsu konta iestatījumiem, iespējams, Asistents varēs jums nodrošināt tikai tādas funkcijas kā tīmekļa rezultātus, jokus un vietējo informāciju.</translation>
 <translation id="1916502483199172559">Noklusējuma iemiesojums sarkanā krāsā</translation>
 <translation id="1918141783557917887">Mazāks</translation>
 <translation id="1919345977826869612">Reklāmas</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Spraudnim <ph name="PEPPER_PLUGIN_NAME" /> domēnā <ph name="PEPPER_PLUGIN_DOMAIN" /> ir nepieciešama piekļuve jūsu datoram.</translation>
 <translation id="2178614541317717477">CA drošības politikas apdraudējums</translation>
 <translation id="218070003709087997">Izmantojiet skaitli, lai norādītu, cik eksemplāri jādrukā (1–999).</translation>
+<translation id="2184515124301515068">Atļaut pārlūkam Chrome izvēlēties, kad vietnēs var atskaņot skaņu (ieteicams)</translation>
 <translation id="2187895286714876935">Servera sertifikāta importēšanas kļūda</translation>
 <translation id="2187906491731510095">Paplašinājumi ir atjaunināti</translation>
 <translation id="2188881192257509750">Atvērt lietojumprogrammu <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Lasīt un mainīt jūsu datus vairākās vietnēs</translation>
 <translation id="2242687258748107519">Faila informācija</translation>
 <translation id="2243194103992005307">Lai noņemtu lietotnes, pārejiet uz sadaļu Iestatījumi &gt; Lietotnes vai Lietojumprogrammu pārvaldnieks. Pēc tam pieskarieties lietotnei, kuru vēlaties atinstalēt (iespējams, būs jāvelk pa labi vai pa kreisi, lai atrastu lietotni). Pēc tam pieskarieties vienumam Atinstalēt vai Atspējot.</translation>
+<translation id="224940702122312781">Šī lapa patērēs daudz datu.</translation>
 <translation id="2249605167705922988">piem., 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Atvēršana, izmantojot sistēmas skatītāju</translation>
 <translation id="225163402930830576">Atsvaidzināt tīklus</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Konfigurēt tīklu</translation>
 <translation id="230927227160767054">Šī lapa vēlas instalēt pakalpojumu apdarinātāju.</translation>
 <translation id="2309620859903500144">Šīs vietnes piekļuve kustību vai gaismas sensoriem ir bloķēta.</translation>
-<translation id="2311075084924370935">Lai palīdzētu jums izmantot kalendāru, atgādinājumus, informāciju par lidojumiem un citas iespējas, Asistentam ir nepieciešami iestatījumi “Darbības tīmeklī un lietotnēs”, “Informācija par ierīci”, kā arī “Balss un audio darbības”.</translation>
+<translation id="2315414688463285945">Konfigurējot Linux failus, radās kļūda. Lūdzu, mēģiniet vēlreiz.</translation>
 <translation id="2315821125498993513">Nevarēja izveidot savienojumu ar tālruni. <ph name="LINK_BEGIN" />Uzziniet vairāk<ph name="LINK_END" />.</translation>
 <translation id="2316129865977710310">Nē, paldies</translation>
 <translation id="2317842250900878657">Pabeigti: <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Papīra izmēri</translation>
 <translation id="2318817390901984578">Lai izmantotu Android lietotnes, uzlādējiet un atjauniniet savu ierīci (<ph name="DEVICE_TYPE" />).</translation>
 <translation id="2318923050469484167">Pašreizējā inkognito sesija (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Drošības atslēgas izmantošana ar lietotni <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Galvenes un kājenes</translation>
 <translation id="2325650632570794183">Šī tipa fails netiek atbalstīts. Lūdzu, apmeklējiet Chrome interneta veikalu, lai atrastu lietotni, kas var atvērt šī tipa failus.</translation>
 <translation id="2326931316514688470">&amp;Atkārtoti ielādēt lietotni</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Pievienot failu kopīgošanu</translation>
 <translation id="2367972762794486313">Rādīt lietotnes</translation>
 <translation id="2369536625682139252">Tiks izdzēsti visi vietnes <ph name="SITE" /> saglabātie dati, izņemot sīkfailus.</translation>
-<translation id="237058345584060620">Savienojiet atslēgu pārī ar šo ierīci, lai varētu pierakstīties kontā, izmantojot atslēgu.</translation>
 <translation id="2371076942591664043">Atvērt, kad esat beidzis</translation>
 <translation id="2377319039870049694">Pāriet uz saraksta skatījumu</translation>
 <translation id="2377667304966270281">Nopietnas kļūdas</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Nevar atrast tālruni. Jūsu ierīcē (<ph name="DEVICE_TYPE" />) jābūt iespējotam Bluetooth savienojumam. &lt;a&gt;Uzziniet vairāk&lt;/a&gt;.</translation>
 <translation id="2489918096470125693">Pievienot &amp;mapi...</translation>
 <translation id="249113932447298600">Diemžēl ierīce <ph name="DEVICE_LABEL" /> šobrīd netiek atbalstīta.</translation>
-<translation id="2492040222276243256">Nospiediet uz drošības atslēgas esošo pogu un turiet to nospiestu vismaz 5 sekundes.</translation>
 <translation id="2493021387995458222">Iezīmēt pa vienam vārdam</translation>
 <translation id="249303669840926644">Nevarēja pabeigt reģistrāciju</translation>
 <translation id="2495777824269688114">Atklājiet citas funkcijas vai iegūstiet atbildes. Atlasiet “?”, lai saņemtu palīdzību.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Kopā: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Ilgi</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (platforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Šī cilne kopīgo jūsu ekrānu.</translation>
 <translation id="2586657967955657006">Starpliktuve</translation>
 <translation id="2586672484245266891">Lūdzu, ievadiet īsāku vietrādi URL.</translation>
 <translation id="2587922270115112871">Izveidojot uzraudzītu lietotāju, netiek izveidots Google konts, un lietotāja iestatījumi
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> izmanto <ph name="USAGE" /> MB no diskā pieejamās vietas.</translation>
 <translation id="2633212996805280240">Vai noņemt paplašinājumu <ph name="EXTENSION_NAME" />?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> nevarēja pabeigt instalēšanu, tomēr turpinās izpildīties no diska attēla.</translation>
-<translation id="2633326789677284179">Atrodiet nosaukumu atslēgas aizmugurē.</translation>
 <translation id="2635276683026132559">Parakstīšana</translation>
 <translation id="2636625531157955190">Pārlūkprogrammā Chrome nevar piekļūt attēlam.</translation>
 <translation id="2638087589890736295">Lai sāktu sinhronizāciju, ievadiet ieejas frāzi.</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Pievienot pakalpojumu sniedzēju <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Pierakstieties pārlūkā Chrome, lai jūsu paroles būtu pieejamas visās jūsu ierīcēs.</translation>
 <translation id="2875698561019555027">(Chrome kļūdu lapas)</translation>
-<translation id="2876441201733326392">USB drošības atslēgas izmantošana</translation>
 <translation id="288042212351694283">Piekļūstiet savām Universal 2nd Factor ierīcēm</translation>
 <translation id="2881966438216424900">Pēdējoreiz piekļūts:</translation>
 <translation id="2882943222317434580">Pēc brīža <ph name="IDS_SHORT_PRODUCT_NAME" /> tiks restartēts un atiestatīts.</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Ziņot anonīmi</translation>
 <translation id="2984337792991268709">Šodien plkst. <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Šajā lapā ir bloķēta MIDI ierīču pilnīga pārvaldība.</translation>
-<translation id="2988599644347283908">Piezīme. Šo iestatījumu pārvaldītos datus var saglabāt un lietot pēc pierakstīšanās jebkurā Google pakalpojumā, lai iegūtu personalizētas lietošanas iespējas un noderīgas reklāmas. Lai skatītu vai dzēstu datus vai mainītu iestatījumus, atveriet vietni account.google.com.</translation>
 <translation id="2989474696604907455">nav pievienota</translation>
 <translation id="2989786307324390836">DER kodēts binārais fails, viens sertifikāts</translation>
 <translation id="2993517869960930405">Informācija par lietotni</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Ieslēgt ciļņu skaņu</translation>
 <translation id="3053013834507634016">Sertifikāta atslēgas lietošana</translation>
 <translation id="3057861065630527966">Dublēt fotoattēlus un videoklipus</translation>
-<translation id="3059313675706898490">Android ziņojumi</translation>
 <translation id="3060379269883947824">Iespējot funkciju “Atlasīt, lai izrunātu”</translation>
 <translation id="3061707000357573562">Ielāpu pakalpojums</translation>
 <translation id="3064410671692449875">Nepietiek datu</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Ārējo .crx failu nevar kopēt uz failu <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Izveidots savienojums pārī ar ierīci “<ph name="DEVICE_NAME" />”.</translation>
 <translation id="3101709781009526431">Datums un laiks</translation>
-<translation id="3104900172193317662">Drošības atslēgas izmantošanas atļaušana</translation>
 <translation id="310671807099593501">Vietne izmanto Bluetooth savienojumu.</translation>
 <translation id="3115128645424181617">Nevar atrast tālruni. Tam ir jābūt rokas stiepiena attālumā, un Bluetooth savienojumam jābūt ieslēgtam.</translation>
 <translation id="3115147772012638511">Gaida krtuvi...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Nav daļa no sertifikāta&gt;</translation>
 <translation id="3254434849914415189">Izvēlieties noklusējuma lietotni <ph name="FILE_TYPE" /> failu atvēršanai:</translation>
 <translation id="3254516606912442756">Automātiska laika joslu noteikšana ir atspējota</translation>
-<translation id="3254772308201947812">Jā, piekrītu</translation>
 <translation id="3264544094376351444">Sans-Serif fonts</translation>
 <translation id="3264547943200567728">Neizdevās iestatīt Chromebox tīklu</translation>
 <translation id="3264582393905923483">Konteksts</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Kārtot pēc</translation>
 <translation id="3737274407993947948">Instalējot Linux, radās kļūda...</translation>
 <translation id="3737536731758327622">Jūsu lejupielādes ir redzamas šeit.</translation>
-<translation id="3738671331307774213">Jūsu identitātes verificēšana palīdz aizsargāt jūsu privātos datus</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Vai atvērt lietojumprogrammu <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> ierīce tagad tiks rādīta administratora konsolē</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sinhronizācija ir apturēta</translation>
 <translation id="3860381078714302691">Laipni lūdzam pakalpojumā Hangouts Meet</translation>
+<translation id="3861241522664181545">Lapas ielāde ir apturēta.</translation>
 <translation id="3862134173397075045">Iepazīstiet Cast iespējas pārlūkā Chrome!</translation>
 <translation id="3862788408946266506">Lai instalētu lietotni ar manifesta atribūtu kiosk_only, ir jāizmanto Chrome OS kioska režīms.</translation>
 <translation id="3865414814144988605">Izšķirtspēja</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Lai ieslēgtu šo funkciju un noņemtu sinhronizēšanas ieejas frāzi, <ph name="BEGIN_LINK" />atiestatiet sinhronizāciju<ph name="END_LINK" />.</translation>
 <translation id="3878840326289104869">Notiek uzraudzīta lietotāja izveide</translation>
 <translation id="3879748587602334249">Lejupielāžu pārvaldnieks</translation>
-<translation id="3880709822663530586">Drošības atslēga darbojas tikai tad, ja ierīcē ir iespējots Bluetooth savienojums.</translation>
 <translation id="3888550877729210209">Piezīmju rakstīšana, izmantojot <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Pievienot OpenVPN/otrā slāņa tunelēšanas protokolu...</translation>
 <translation id="3893536212201235195">Skatīt un mainīt jūsu pieejamības iestatījumus</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Notiek drošības moduļa sagatavošana. Lūdzu, uzgaidiet (tas var ilgt dažas minūtes)...</translation>
 <translation id="4099060993766194518">Vai atjaunot noklusējuma meklētājprogrammu?</translation>
 <translation id="4100733287846229632">Ierīces diskā gandrīz nav vietas</translation>
+<translation id="4103091233824664032">Lai konfigurētu ekrāna bloķēšanu un pierakstīšanos, ievadiet savu paroli.</translation>
 <translation id="4104163789986725820">E&amp;ksportēt...</translation>
 <translation id="4105563239298244027">Izmantojot pakalpojumu Google disks, iegūsiet 1 TB lielu bezmaksas krātuvi</translation>
 <translation id="4107048419833779140">Identificēt un atvienot atmiņas ierīces</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Nakts režīms tiks automātiski izslēgts saullēktā.</translation>
 <translation id="4138267921960073861">Rādīt lietotājvārdus un fotoattēlus pierakstīšanās ekrānā</translation>
 <translation id="4144218403971135344">Iegūstiet labāku videoklipu kvalitāti un paildziniet akumulatora darbības laiku. Videoklipi tiks atskaņoti tikai Cast iespējotā ekrānā.</translation>
-<translation id="414599683948988413">Izmantojiet savu drošības atslēgu ar USB</translation>
 <translation id="4146026355784316281">Vienmēr atvērt, izmantojot sistēmas skatītāju</translation>
 <translation id="4146785383423576110">Atiestatiet un tīriet</translation>
 <translation id="4147897805161313378">Google fotoattēli</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Atspējot</translation>
 <translation id="4400367121200150367">Šeit tiks parādītas vietnes, kurās nekad netiek saglabātas paroles.</translation>
 <translation id="4400632832271803360">Turiet palaišanas programmas taustiņu, lai pārslēgtu augšējās rindas taustiņu funkcijas.</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">P&amp;alīdzība</translation>
 <translation id="4409697491990005945">Malas</translation>
 <translation id="4411578466613447185">Koda parakstītājs</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Pārlūks Chrome jūsu datorā var atrast kaitīgu programmatūru un noņemt to.</translation>
 <translation id="4481530544597605423">Pārī nesavienotās ierīces</translation>
 <translation id="4482194545587547824">Google var izmantot jūsu pārlūkošanas vēsturi, lai personalizētu Meklēšanu un citus Google pakalpojumus.</translation>
+<translation id="4493287891836751813">Iepazīstieties ar Google asistentu!</translation>
 <translation id="4495419450179050807">Nerādīt šajā lapā</translation>
 <translation id="4499718683476608392">Iespējojiet kredītkaršu automātisko aizpildi, lai varētu aizpildīt veidlapas ar vienu klikšķi</translation>
 <translation id="4500114933761911433">Spraudnis <ph name="PLUGIN_NAME" /> avarēja.</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Izslēgt cilnes skaņu</translation>
 <translation id="4742746985488890273">Piespraust plauktam</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Uzzināt, kā atjaunināt lietojumprogrammas<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Messages</translation>
 <translation id="4746971725921104503">Jūs jau pārvaldāt lietotāju ar šādu vārdu. Vai vēlaties <ph name="LINK_START" />importēt <ph name="USER_DISPLAY_NAME" /> uz šo ierīci<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Nepieciešams paplašinājums no Chrome interneta veikala</translation>
 <translation id="4750394297954878236">Ieteikumi</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">%Profilēšana iespējota</translation>
 <translation id="4823484602432206655">Lasīt un mainīt lietotāja un ierīces iestatījumus</translation>
 <translation id="4823651846660089135">Ierīce ir tikai lasāma.</translation>
+<translation id="4823955295535347797">Ja ekrāns ir ieslēgts, jebkurā brīdī varat piekļūt Asistentam, pasakot frāzi “Ok Google”.</translation>
 <translation id="4828937774870308359">Austrāliešu</translation>
 <translation id="4829768588131278040">Iestatīt PIN</translation>
 <translation id="4830502475412647084">OS atjauninājuma instalēšana</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Palīdziet mūsu inženieriem izpētīt un novērst šo avāriju. Ja varat, norādiet konkrētas darbības (jo detalizētāk, jo labāk).</translation>
 <translation id="4876895919560854374">Bloķēt un atbloķēt ekrānu</translation>
 <translation id="4877017884043316611">Savienošana pārī ar Chromebox datoru</translation>
+<translation id="4879491255372875719">Automātiski (noklusējums)</translation>
 <translation id="4880214202172289027">Skaļuma slīdnis</translation>
 <translation id="4880328057631981605">Piekļuves punkta nosaukums</translation>
 <translation id="4880520557730313061">Automātiski labot</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">uz augšu</translation>
 <translation id="5100114659116077956">Lai varētu izmantot jaunākās funkcijas, atjauniniet savu Chromebox datoru.</translation>
 <translation id="5101042277149003567">Atvērt visas grāmatzīmes</translation>
-<translation id="5104546332954397226">Izmantojiet savu tālruni kā drošības atslēgu</translation>
 <translation id="5105855035535475848">Saistītas cilnes</translation>
 <translation id="5108967062857032718">Iestatījumi — Android lietotņu noņemšana</translation>
 <translation id="5109044022078737958">Atlēte</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">Vēlr&amp;eiz atvērt aizvērto cilni</translation>
 <translation id="52912272896845572">Privātās atslēgas fails ir nederīgs.</translation>
 <translation id="529175790091471945">Formatēt šo ierīci</translation>
-<translation id="5292195676005197571">Lai izmantotu lielāko daļu atslēgu, vienkārši nospiediet pogu.</translation>
 <translation id="5293170712604732402">Atjaunot iestatījumus uz sākotnējiem noklusējuma iestatījumiem</translation>
 <translation id="5297082477358294722">Parole ir saglabāta. Skatiet un pārvaldiet saglabātās paroles šeit: <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Tematu izveidoja</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Piekrītu</translation>
 <translation id="532943162177641444">Lai iestatītu mobilo tīklāju, ko izmantot šajā ierīcē, pieskarieties paziņojumam savā tālrunī <ph name="PHONE_NAME" />.</translation>
 <translation id="5329858601952122676">Dzēst</translation>
+<translation id="5329945517224105597">Asistents var piedāvāt atbilstošākus ieteikumus un konkrētas darbības, kas saistītas ar ekrānā redzamo informāciju. Varat to mainīt Asistenta iestatījumos.</translation>
 <translation id="5330145655348521461">Šie faili tika atvērti citā darbvirsmā. Lai skatītu šo darbvirsmu, izmantojiet profilu <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />).</translation>
 <translation id="5330512191124428349">Iegūt informāciju</translation>
 <translation id="5331069282670671859">Jums nav sertifikātu šajā kategorijā</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Atļaut vietnēm atskaņot skaņu</translation>
 <translation id="5390284375844109566">Rādītājā iekļautā datu bāze</translation>
 <translation id="5390743329570580756">Sūtīt šim:</translation>
-<translation id="5392327114396848796">Izmantojiet iebūvētu drošības atslēgu</translation>
 <translation id="5397794290049113714">Jūs</translation>
 <translation id="5398572795982417028">Lapas atsauce ārpus diapazona, ierobežojums: <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Reklāmu rādīšana bloķēta</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Aizveriet visus arhīvā vai virtuālajā diskā atvērtos failus un mēģiniet vēlreiz.</translation>
 <translation id="5687326903064479980">Laika josla</translation>
+<translation id="568824803367507355">“OK Google” atpazīšana</translation>
 <translation id="5689516760719285838">Atrašanās vieta</translation>
 <translation id="56907980372820799">Saistīt datus</translation>
 <translation id="5691511426247308406">Ģimene</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> — ierakstīšana ar kameru vai mikrofonu</translation>
 <translation id="5835754902560991078">pavisam īsa (0,6 s)</translation>
 <translation id="5838456317242088717">Pašreizējā inkognito sesija</translation>
-<translation id="5842053879378944309">Drošības atslēgas izmantošana ar lietotni <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Bluetooth iespējošana</translation>
 <translation id="5843250171025351504">Jūsu ierīce vairs neatbilst minimālajai administratora norādītajai klienta versijai. Lūdzu, veiciet atjaunināšanu, lai pierakstītos.</translation>
 <translation id="5846929185714966548">4. cilne</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Vairs netiek atbalstīts.</translation>
 <translation id="6317369057005134371">Notiek lietojumprogrammas loga gaidīšana...</translation>
 <translation id="6318407754858604988">Lejupielāde ir sākta</translation>
-<translation id="6322653941595359182">Izmantojiet Chromebook datoru, lai saņemtu īsziņas draugiem un kontaktpersonām un sūtītu tās.</translation>
 <translation id="6324916366299863871">Saīsnes rediģēšana</translation>
 <translation id="6325191661371220117">Atspējot automātisko palaišanu</translation>
 <translation id="6326175484149238433">Noņemt no pārlūka Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Sūtīt <ph name="BEGIN_LINK1" />sistēmas informāciju<ph name="END_LINK1" /> un <ph name="BEGIN_LINK2" />datus<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Sinhronizēšanas un personalizēšanas opcijas</translation>
 <translation id="6397592254427394018">Atvērt visas grāmatzīmes &amp;inkognito režīma logā</translation>
+<translation id="639777613761517128">Lai atvērtu failus, izmantojot $1, vispirms kopējiet tos Linux failu mapē.</translation>
 <translation id="6398715114293939307">Noņemt Google Play veikalu</translation>
 <translation id="6398765197997659313">Iziet no pilnekrāna režīma</translation>
 <translation id="6399774419735315745">Spiedze</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Šo nosaukumu nedrīkst izmantot kā mapes nosaukuma failu</translation>
 <translation id="642469772702851743">Šo ierīci (sērijas numurs: <ph name="SERIAL_NUMBER" />) bloķēja īpašnieks.</translation>
 <translation id="6426200009596957090">Atvērt ChromeVox iestatījumus</translation>
-<translation id="6427415464407526111">Atlasiet savu drošības atslēgu</translation>
 <translation id="6429384232893414837">Atjaunināšanas kļūda</translation>
 <translation id="6430814529589430811">Base64 kodēts ASCII, viens sertifikāts</translation>
 <translation id="6431217872648827691">Datums, kad visi dati tika šifrēti, izmantojot Google paroli:
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Izstrādātāja režīms</translation>
 <translation id="6655458902729017087">Slēpt kontus</translation>
 <translation id="6657585470893396449">Parole</translation>
-<translation id="6658023813581644008">Lai iestatītu pierakstīšanos ierīcēs, izmantojot Smart Lock, ievadiet paroli</translation>
 <translation id="6659213950629089752">Šīs lapas saturs tika tālummainīts, izmantojot paplašinājumu <ph name="NAME" />.</translation>
 <translation id="6659594942844771486">Cilne</translation>
 <translation id="6664237456442406323">Diemžēl jūsu datora konfigurācijā tika izmantots nepareizi veidots aparatūras ID. Šī iemesla dēļ operētājsistēmu Chrome OS nevarēja atjaunināt, izmantojot jaunākos drošības labojumus, un jūsu dators, iespējams, <ph name="BEGIN_BOLD" />nebūs aizsargāts pret ļaunprātīgiem uzbrukumiem<ph name="END_BOLD" />.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Sistēmas informācijas priekšskatījums</translation>
 <translation id="6886871292305414135">Atvērt saiti jaunā cilnē</translation>
 <translation id="6892812721183419409">Atvērt saiti ar lietotāja <ph name="USER" /> kontu</translation>
-<translation id="6896398788631624004">Pievienojiet drošības atslēgu un aktivizējiet to.</translation>
 <translation id="6896758677409633944">Kopēt</translation>
 <translation id="6898440773573063262">Kioska lietojumprogrammas tagad var konfigurēt automātiskai palaišanai šajā ierīcē.</translation>
 <translation id="6898699227549475383">Organizācija (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Lietotājs:</translation>
 <translation id="6916590542764765824">Paplašinājumu pārvaldība</translation>
 <translation id="6920989436227028121">Atvērt kā parastu cilni</translation>
+<translation id="6921709132208495314">Pārtraukt resursu ielādi šajā lapā</translation>
 <translation id="6922128026973287222">Ietaupiet datu lietojumu un veiciet pārlūkošanu ātrāk, izmantojot Google datu lietojuma samazinātāju. Noklikšķiniet, lai uzzinātu vairāk.</translation>
 <translation id="6923132443355966645">Ritināt/klikšķināt</translation>
 <translation id="6930242544192836755">Ilgums</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">Labi</translation>
 <translation id="6965648386495488594">Ports</translation>
 <translation id="6965978654500191972">Ierīce</translation>
+<translation id="6968288415730398122">Ievadiet savu paroli, lai konfigurētu ekrāna bloķēšanu.</translation>
 <translation id="6970480684834282392">Startēšanas veids</translation>
 <translation id="6970856801391541997">Drukāt konkrētas lapas</translation>
 <translation id="6972180789171089114">Audio/video</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Meklētāji</translation>
 <translation id="6978611942794658017">Šis fails ir paredzēts datoram, kurā tiek izmantota Windows programmatūra. Tas nav saderīgs ar jūsu ierīci, kurā darbojas operētājsistēma Chrome OS. Lūdzu, meklējiet Chrome interneta veikalā atbilstošu aizstājošo lietotni.</translation>
 <translation id="6979158407327259162">Google disks</translation>
+<translation id="6979440798594660689">Izslēgt skaņu (noklusējums)</translation>
 <translation id="6979737339423435258">Visā periodā</translation>
 <translation id="6980462514016882061">Google var izmantot jūsu pārlūkošanas vēsturi, lai personalizētu Meklēšanu, reklāmas un citus Google pakalpojumus.</translation>
 <translation id="6981982820502123353">Pieejamība</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Šī ir vispārīga informācija par jūsu ierīci un tās lietošanu (piemēram, par akumulatora uzlādes līmeni, lietotņu izmantošanu un tīkla savienojamību). Šie dati tiks izmantoti, lai uzlabotu Google produktus un pakalpojumus ikvienam. Noteikta ievāktā informācija palīdzēs arī partneriem, piemēram, Android izstrādātājiem, uzlabot savas lietotnes un produktus.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Izslēdzot šo funkciju, netiek ietekmēta ierīces spēja nosūtīt informāciju, kas nepieciešama būtiskiem pakalpojumiem, piemēram, sistēmas atjauninājumiem un drošībai.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Šo funkciju varat kontrolēt sadaļā Iestatījumi &gt; Google. Izvēlnē atlasiet vienumu Lietojums un diagnostika.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Mēs atradām <ph name="NUMBER_OF_APPS" /> lietotni(-es) jūsu kontā, ko var izmantot šajā ierīcē.</translation>
 <translation id="7199158086730159431">Saņemt p&amp;alīdzību</translation>
 <translation id="7200083590239651963">Konfigurācijas atlasīšana</translation>
 <translation id="720110658997053098">Pastāvīgi turēt ierīcei ieslēgtu kioska režīmu</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Ekrāna bloķēšana un pierakstīšanās</translation>
 <translation id="7229570126336867161">Nepieciešams EVDO</translation>
 <translation id="7230787553283372882">Pielāgojiet teksta lielumu.</translation>
-<translation id="7231589788477569369">Iestatījumi maksimāli efektīvai Asistenta izmantošanai</translation>
 <translation id="7232750842195536390">Pārdēvēšana neizdevās</translation>
 <translation id="7234406375359457793">Iekļaujot kopīgošanu, radās kļūda. Norādītais kopīgošanas vienums netiek atbalstīts.</translation>
 <translation id="7238585580608191973">SHA-256 pirkstu nospiedums</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Dzēst un izrakstīties</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (labākā)</translation>
 <translation id="7246339268451149667">Vai iespējot atbloķēšanu, izmantojot pirksta nospiedumu?</translation>
-<translation id="7246489301073081944">Lai izietu, turiet nospiestus taustiņus |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />|</translation>
 <translation id="7246947237293279874">FTP starpniekserveris</translation>
 <translation id="725109152065019550">Diemžēl administrators jūsu kontā ir atspējojis ārējo krātuvi.</translation>
 <translation id="7253521419891527137">&amp;Uzziniet vairāk</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Pārbaudīt piemērotību</translation>
 <translation id="749028671485790643"><ph name="VALUE" />. persona</translation>
 <translation id="7490813197707563893">MAC adrese</translation>
-<translation id="7490950320178383728">Izmantot drošības atslēgu ar Bluetooth</translation>
 <translation id="7491962110804786152">cilne</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> var apkopot visu ievadīto tekstu, tostarp privātus datus, piemēram, paroles un kredītkaršu numurus. Vai vēlaties izmantot šo paplašinājumu?</translation>
 <translation id="7494065396242762445">Atvērt Windows iestatījumus</translation>
@@ -4485,7 +4477,6 @@
 <translation id="7850851215703745691">Šie Diska faili vēl nav kopīgoti</translation>
 <translation id="7851457902707056880">Drīkst pierakstīties tikai īpašnieka kontā. Lūdzu, atsāknējiet ierīci un pierakstieties īpašnieka kontā. Ierīce tiks automātiski atsāknēta pēc 30 sekundēm.</translation>
 <translation id="7851716364080026749">Vienmēr bloķēt piekļuvi kamerai un mikrofonam</translation>
-<translation id="7851816139220202929">Izmantot drošības atslēgu ar NFC</translation>
 <translation id="7853747251428735">Vairāk rī&amp;ku</translation>
 <translation id="7856006446339184955">Sūtīt sistēmas datus. Pašlaik no šīs ierīces Google serveriem tiek automātiski nosūtīti diagnostikas dati un dati par ierīces un lietotņu izmantošanu. Šo <ph name="BEGIN_LINK1" />iestatījumu<ph name="END_LINK1" /> ir noteicis īpašnieks. Ja esat papildus ieslēdzis opciju “Darbības tīmeklī un lietotnēs”, šī informācija tiks saglabāta jūsu kontā, lai jūs to varētu pārvaldīt sadaļā “Manas darbības”. <ph name="BEGIN_LINK2" />Uzziniet vairāk.<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Pievienot izņēmumu</translation>
@@ -4568,6 +4559,7 @@
 <translation id="7973962044839454485">PSP autentifikācija neizdevās nepareiza lietotājvārda un paroles dēļ.</translation>
 <translation id="7974566588408714340">Mēģināt vēlreiz, izmantojot paplašinājumu <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Attēla izvērse</translation>
+<translation id="79766959863778284">XR izolētas ierīces pakalpojums</translation>
 <translation id="7977551819349545646">Notiek Chromebox datora atjaunināšana...</translation>
 <translation id="7978412674231730200">Privātā atslēga</translation>
 <translation id="7978450511781612192">Tādējādi tiksiet izrakstīsiet no sava Google konta. Jūsu grāmatzīmes, vēsture, paroles, kā arī cita informācija vairs netiks sinhronizēta.</translation>
@@ -4618,7 +4610,6 @@
 <translation id="8030656706657716245">Pievienot printeri</translation>
 <translation id="8032244173881942855">Nevar apraidīt cilni.</translation>
 <translation id="8033827949643255796">atlasīti</translation>
-<translation id="8033958968890501070">Noildze</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Atvērt visas inkognito režīma logā}=1{Atvērt inkognito režīma logā}zero{Atvērt visas (#) inkognito režīma logā}one{Atvērt visas (#) inkognito režīma logā}other{Atvērt visas (#) inkognito režīma logā}}</translation>
 <translation id="8037117027592400564">Lasīt visu tekstu, kas izrunāts, izmantojot sintezēto runu</translation>
 <translation id="8037357227543935929">Vaicāt (pēc noklusējuma)</translation>
@@ -4791,6 +4782,7 @@
 <translation id="8320459152843401447">Viss jūsu ekrāns</translation>
 <translation id="8322814362483282060">Šīs lapas piekļuve jūsu mikrofonam ir bloķēta.</translation>
 <translation id="8326478304147373412">PKCS #7, sertificēšanas ķēde</translation>
+<translation id="8327039559959785305">Iekļaujot Linux failus, radās kļūda. Lūdzu, mēģiniet vēlreiz.</translation>
 <translation id="8329978297633540474">Vienkāršs teksts</translation>
 <translation id="8335587457941836791">Atspraust no plaukta</translation>
 <translation id="8336153091935557858">Vakar plkst. <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">Mainīt</translation>
 <translation id="8425492902634685834">Piespraust pie uzdevumjoslas</translation>
 <translation id="8425755597197517046">Ielīmēt un meklēt</translation>
-<translation id="8426117172745886547">Brīdināt pirms iziešanas (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Notiek iespējošana</translation>
 <translation id="8427292751741042100">iegulta jebkurā vietnē</translation>
 <translation id="8428213095426709021">Iestatījumi</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">Licences</translation>
 <translation id="8553342806078037065">Pārvaldīt citas personas</translation>
 <translation id="8554899698005018844">Nav valodas</translation>
-<translation id="8557347704037207368">Jums tiks nosūtīti paziņojumi par Android tīmekļa ziņojumiem</translation>
 <translation id="855773602626431402">Šajā lapā tika novērsta tāda spraudņa darbība, kas nav ievietots smilškastē.</translation>
 <translation id="8557930019681227453">Manifests</translation>
 <translation id="8559694214572302298">Attēlu dekodētājs</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">Atbalsta perioda beigas</translation>
 <translation id="8714838604780058252">Fona grafikas</translation>
 <translation id="8715480913140015283">Fona cilne izmanto ierīces kameru.</translation>
+<translation id="8716931980467311658">Vai dzēst visas Linux lietojumprogrammas un datus, kas ievietoti Linux failu mapē, no šīs ierīces: <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Spraudni <ph name="PLUGIN_NAME" /> neizdevās lejupielādēt</translation>
 <translation id="8723829621484579639">Inkognito apkašrāmji vietnei <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">Rādīt ma&amp;pē</translation>
@@ -5206,7 +5197,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> — avārija</translation>
 <translation id="8983677657449185470">Palīdzēt uzlabot drošo pārlūkošanu</translation>
 <translation id="8984654317541110628">Failu kopīgošanas URL</translation>
-<translation id="8984872292925913496">Atrodiet 6 ciparu PIN savas atslēgas aizmugurē.</translation>
 <translation id="8986362086234534611">Aizmirst</translation>
 <translation id="8986494364107987395">Automātiski sūtīt lietošanas statistiku un avāriju pārskatus uzņēmumam Google</translation>
 <translation id="8987927404178983737">Mēnesis</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 971b4b0..3cbcad0 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">ഒബ്‌ജക്‌റ്റ് മാറുമ്പോൾ അതിനെ കീബോർഡ് ഫോക്കസ് ഉപയോഗിച്ച് ഹൈലൈറ്റുചെയ്യുക</translation>
 <translation id="1173894706177603556">പേരുമാറ്റുക</translation>
 <translation id="1174073918202301297">കുറുക്കുവഴി ചേർത്തു</translation>
-<translation id="1174808551768282258">നിങ്ങളുടെ ഫോൺ ഉപയോഗിച്ച് നിങ്ങളുടെ Chromebook അൺലോക്ക് ചെയ്യുക. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;അച്ചടിക്കൂ...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> പകർത്തുന്നു...</translation>
 <translation id="1177138678118607465">തിരയൽ, പരസ്യങ്ങൾ, മറ്റ് Google സേവനങ്ങൾ എന്നിവ വ്യക്തിപരമാക്കാൻ, നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം Google ഉപയോഗിച്ചേക്കാം. ഏത് സമയത്തും നിങ്ങൾക്ക് ഇത് myaccount.google.com/activitycontrols/search സന്ദർശിച്ച് മാറ്റാവുന്നതാണ്</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">അല്പംനിര്‍ത്തൂ</translation>
 <translation id="1181037720776840403">നീക്കംചെയ്യൂ</translation>
 <translation id="1183237619868651138">പ്രാദേശിക കാഷെയിൽ <ph name="EXTERNAL_CRX_FILE" /> ഇൻസ്റ്റാളുചെയ്യാനാവില്ല.</translation>
-<translation id="1183378459020939734">സുരക്ഷാ കീ ജോടിയാക്കുന്നതിന് നിങ്ങൾ തയ്യാറാണോ?</translation>
 <translation id="1185924365081634987">ഈ നെറ്റ്‌വർക്ക് പിശക് പരിഹരിക്കാൻ നിങ്ങൾക്ക് <ph name="GUEST_SIGNIN_LINK_START" />അതിഥിയായി ബ്രൗസുചെയ്യുന്നതിന്<ph name="GUEST_SIGNIN_LINK_END" /> പരീക്ഷിക്കാം.</translation>
 <translation id="1186771945450942097">ദോഷകരമായ സോഫ്‌റ്റ്‌വെയർ നീക്കംചെയ്യുക</translation>
 <translation id="1187722533808055681">നിഷ്‌ക്രിയാവസ്ഥയിൽ നിന്ന് സജീവമാകൽ</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Bluetooth ഉപകരണങ്ങളൊന്നും കണ്ടില്ല</translation>
 <translation id="1306606229401759371">ക്രമീകരണങ്ങൾ മാറ്റുക</translation>
 <translation id="1307559529304613120">ക്ഷമിക്കണം!  ഈ ഉപകരണത്തിനായി ദീർഘകാല API ആക്‌സസ്സ് ടോക്കൺ സംഭരിക്കുന്നതിൽ സിസ്റ്റം പരാജയപ്പെട്ടു.</translation>
+<translation id="1307931752636661898">Linux ഫയലുകൾ കാണാനാവുന്നില്ല</translation>
 <translation id="1313405956111467313">സ്വപ്രേരിത പ്രോക്സി ക്രമീകരണം</translation>
 <translation id="131364520783682672">ക്യാപ്സ് ലോക്ക്</translation>
 <translation id="1313705515580255288">നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, മറ്റ് ക്രമീകരണങ്ങൾ എന്നിവ Google അക്കൗണ്ടുമായി സമന്വയിപ്പിക്കും.</translation>
@@ -364,6 +363,7 @@
 <translation id="1530838837447122178">മൗസ്, ടച്ച്‌പാഡ് ഉപകരണ ക്രമീകരണം തുറക്കുക</translation>
 <translation id="1531004739673299060">അപ്ലിക്കേഷൻ വിൻഡോ</translation>
 <translation id="15373452373711364">വലിയ മൗസ് കഴ്‌സർ</translation>
+<translation id="1538729222189715449">Linux ഫയലുകൾ തുറക്കുന്നു...</translation>
 <translation id="1540605929960647700">ഡെമോ മോഡ് പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="1543284117603151572">Edge-ൽ നിന്നും ഇമ്പോർട്ടുചെയ്‌തത്</translation>
 <translation id="1545177026077493356">യാന്ത്രിക കിയോസ്‌ക് മോഡ്</translation>
@@ -539,7 +539,6 @@
 <translation id="1782530111891678861">ടച്ച് HUD മോഡ് മാറ്റുക</translation>
 <translation id="1784849162047402014">ഉപകരണത്തിൽ ഡിസ്‌ക് ഇടം കുറവാണ്</translation>
 <translation id="1786636458339910689">ടീം ഡ്രൈവുകൾ</translation>
-<translation id="1792161662640298233">നിങ്ങളുടെ സുരക്ഷാ കീ പരിശോധിച്ചുറപ്പിക്കുന്നു</translation>
 <translation id="1792619191750875668">വിപുലീകരിച്ച ഡിസ്‌പ്ലേ</translation>
 <translation id="1794791083288629568">ഈ പ്രശ്‌നം പരിഹരിക്കാൻ ഞങ്ങളെ സഹായിക്കുന്നതിന് ഫീഡ്‌ബാക്ക് അയയ്‌ക്കുക.</translation>
 <translation id="1795214765651529549">ക്ലാസിക് ഉപയോഗിക്കുക</translation>
@@ -622,7 +621,6 @@
 <translation id="1910721550319506122">സ്വാഗതം!</translation>
 <translation id="1914326953223720820">അൺസിപ്പ് സേവനം</translation>
 <translation id="1915073950770830761">കാനറി</translation>
-<translation id="1915543339027206592">നിങ്ങളുടെ അക്കൗണ്ട് ക്രമീകരണത്തിന്റെ അടിസ്ഥാനത്തിൽ, വെബ് ഫലങ്ങൾ, തമാശകൾ, പ്രാദേശിക വിവരങ്ങൾ എന്നിവ പോലുള്ള കാര്യങ്ങൾക്ക് മാത്രമായി നിങ്ങളുടെ അസിസ്‌റ്റന്റ് അനുഭവം പരിമിതപ്പെടുത്താം.</translation>
 <translation id="1916502483199172559">ഡിഫോൾട്ടായ ചുവന്ന അവതാർ</translation>
 <translation id="1918141783557917887">&amp;വളരെ ചെറുത്</translation>
 <translation id="1919345977826869612">പരസ്യങ്ങള്‍</translation>
@@ -791,6 +789,7 @@
 <translation id="2178098616815594724">നിങ്ങളുടെ കമ്പ്യൂട്ടർ ആക്‌സസ് ചെയ്യാൻ <ph name="PEPPER_PLUGIN_DOMAIN" /> എന്നതിലെ <ph name="PEPPER_PLUGIN_NAME" /> ആഗ്രഹിക്കുന്നു</translation>
 <translation id="2178614541317717477">CA കോംപ്രമൈസ്</translation>
 <translation id="218070003709087997">എത്ര പകർപ്പുകൾ പ്രിന്റുചെയ്യണമെന്ന് സൂചിപ്പിക്കാൻ ഒരു നമ്പര്‍ ഉപയോഗിക്കുക (1 മുതൽ 999 വരെ).</translation>
+<translation id="2184515124301515068">സൈറ്റുകൾക്ക് എപ്പോൾ ശബ്‌ദം പ്ലേ ചെയ്യാനാവും എന്നത് (ശുപാർശ ചെയ്‌തത്) തിരഞ്ഞെടുക്കാൻ Chrome-നെ അനുവദിക്കുക</translation>
 <translation id="2187895286714876935">സെര്‍വര്‍ സാക്‍ഷ്യപത്ര ഇറക്കുമതി പിശക്</translation>
 <translation id="2187906491731510095">വിപുലീകരണങ്ങൾ അപ്‌ഡേറ്റ് ചെയ്‌തു</translation>
 <translation id="2188881192257509750"><ph name="APPLICATION" /> തുറക്കുക</translation>
@@ -835,6 +834,7 @@
 <translation id="2241053333139545397">നിരവധി വെബ്‌സൈറ്റുകളിലെ നിങ്ങളുടെ ഡാറ്റ വായിക്കുക, മാറ്റുക</translation>
 <translation id="2242687258748107519">ഫയൽ വിവരം</translation>
 <translation id="2243194103992005307">ആപ്പുകൾ നീക്കംചെയ്യാൻ, ക്രമീകരണം &gt; ആപ്പുകൾ അല്ലെങ്കിൽ ആപ്പ് മാനേജർ എന്നതിലേക്ക് പോവുക. തുടർന്ന്, അൺ ഇൻസ്‌റ്റാൾ ചെയ്യാൻ ആഗ്രഹിക്കുന്ന ആപ്പിൽ ടാപ്പ് ചെയ്യുക (ആപ്പ് കണ്ടെത്താൻ വലത്തോട്ടോ ഇടത്തോട്ടോ സ്വൈപ്പ് ചെയ്യേണ്ടതായി വന്നേക്കാം), തുടർന്ന് അൺ ഇൻസ്‌റ്റാൾ ചെയ്യുക എന്നതിലോ പ്രവർത്തനരഹിതമാക്കുക എന്നതിലോ ടാപ്പ് ചെയ്യുക.</translation>
+<translation id="224940702122312781">ഈ പേജ് ധാരാളം ഡാറ്റ ഉപയോഗിക്കും.</translation>
 <translation id="2249605167705922988">ഉദാ. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">സിസ്റ്റം വ്യൂവർ ഉപയോഗിച്ച് തുറക്കുക</translation>
 <translation id="225163402930830576">നെറ്റ്‌വർക്കുകൾ പുതുക്കുക</translation>
@@ -875,14 +875,13 @@
 <translation id="2307462900900812319">നെറ്റ്‌വർക്ക് കോൺഫിഗർ ചെയ്യുക</translation>
 <translation id="230927227160767054">ഈ പേജ് ഒരു സേവന ഹാൻഡ്‌ലർ ഇൻസ്റ്റാൾ ചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു.</translation>
 <translation id="2309620859903500144">നിങ്ങളുടെ ചലന സെൻസർ അല്ലെങ്കിൽ പ്രകാശ സെൻസർ ആക്‌സസ് ചെയ്യുന്നതിൽ നിന്ന് ഈ സൈറ്റിനെ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു.</translation>
-<translation id="2311075084924370935">കലണ്ടർ, റിമൈൻഡറുകൾ, ഫ്ലൈറ്റുകൾ, എന്നിവയും മറ്റുമായി ബന്ധപ്പെട്ട് നിങ്ങളെ സഹായിക്കാൻ, അസിസ്‌റ്റന്റിന് 'വെബ്, ആപ്പ് ആക്‌റ്റിവിറ്റി', ഉപകരണ വിവരം, വോയ്‌‌സ്, ഓഡിയോ ആക്റ്റിവിറ്റി ക്രമീകരണം എന്നിവ ആവശ്യമാണ്.</translation>
+<translation id="2315414688463285945">Linux ഫയലുകൾ കോൺഫിഗർ ചെയ്യുന്നതിൽ പിശക്. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="2315821125498993513">ഫോണിലേക്ക് കണക്‌റ്റ് ചെയ്യാനായില്ല. <ph name="LINK_BEGIN" />കൂടുതലറിയുക.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">വേണ്ട, നന്ദി</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% പൂർത്തിയായി</translation>
 <translation id="2318143611928805047">പേപ്പർ വലുപ്പം</translation>
 <translation id="2318817390901984578">Android ആപ്പുകൾ ഉപയോഗിക്കുന്നതിന്, നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> ചാർജുചെയ്‌തശേഷം അപ്‌ഡേറ്റുചെയ്യുക.</translation>
 <translation id="2318923050469484167">നിലവിലെ അദൃശ്യ സെഷൻ (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128"><ph name="APP_NAME" />-നോടൊപ്പം നിങ്ങളുടെ സുരക്ഷാ കീ ഉപയോഗിക്കുക</translation>
 <translation id="2322193970951063277">ഹെഡ്ഡറുകളും ഫൂട്ടറുകളും</translation>
 <translation id="2325650632570794183">ഈ ഫയൽ തരം പിന്തുണയ്‌ക്കുന്നില്ല. ഈ ഫയൽ തരം തുറക്കാൻ കഴിയുന്ന ഒരു അപ്ലിക്കേഷൻ കണ്ടെത്തുന്നതിന് ഒരു Chrome വെബ് സ്റ്റോർ കണ്ടെത്തുക.</translation>
 <translation id="2326931316514688470">അപ്ലിക്കേഷൻ &amp;വീണ്ടും ലോഡുചെയ്യുക</translation>
@@ -916,7 +915,6 @@
 <translation id="2367199180085172140">ഫയൽ പങ്കിടൽ ചേർക്കുക</translation>
 <translation id="2367972762794486313">അപ്ലിക്കേഷനുകൾ കാണിക്കുക</translation>
 <translation id="2369536625682139252">കുക്കികൾ ഒഴികെ, <ph name="SITE" /> സംഭരിച്ച മുഴുവൻ ഡാറ്റയും ഇല്ലാതാക്കപ്പെടും.</translation>
-<translation id="237058345584060620">നിങ്ങളുടെ അക്കൗണ്ടിലേക്ക് സൈൻ ഇൻ ചെയ്യാൻ കീ ഉപയോഗിക്കുന്നതിന് ഈ ഉപകരണവുമായി കീ ജോടിയാക്കുക</translation>
 <translation id="2371076942591664043">ചെയ്തുകഴിയുമ്പോള്‍ &amp;തുറക്കുക</translation>
 <translation id="2377319039870049694">ലിസ്റ്റ് കാഴ്‌ചയിലേക്ക് മാറുക</translation>
 <translation id="2377667304966270281">ഹാർഡ് ഫോൾട്ടുകൾ</translation>
@@ -983,7 +981,6 @@
 <translation id="248861575772995840">നിങ്ങളുടെ ഫോൺ കണ്ടെത്താനായില്ല. <ph name="DEVICE_TYPE" /> ഉപകരണത്തിന്റെ Bluetooth ഓണാണെന്ന് ഉറപ്പുവരുത്തുക. &lt;a&gt;കൂടുതലറിയുക&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;ഫോൾഡർ ചേർക്കുക...</translation>
 <translation id="249113932447298600">ക്ഷമിക്കണം, <ph name="DEVICE_LABEL" /> എന്ന ഉപകരണത്തെ ഇപ്പോൾ പിന്തുണയ്ക്കുന്നില്ല.</translation>
-<translation id="2492040222276243256">നിങ്ങളുടെ സുരക്ഷാ കീയിലെ ബട്ടൺ ചുരുങ്ങിയത് 5 സെക്കൻഡ് അമർത്തിപ്പിടിക്കുക</translation>
 <translation id="2493021387995458222">"ഒരുസമയം പദം" തിരഞ്ഞെടുക്കുക</translation>
 <translation id="249303669840926644">രജിസ്‌ട്രേഷൻ പൂർത്തിയാക്കാനായില്ല</translation>
 <translation id="2495777824269688114">കൂടുതൽ ഫീച്ചറുകൾ കണ്ടെത്തുകയോ ഉത്തരങ്ങൾ സ്വന്തമാക്കുകയോ ചെയ്യുക. സഹായത്തിനായി “?” തിരഞ്ഞെടുക്കുക.</translation>
@@ -1053,6 +1050,7 @@
 <translation id="2580924999637585241">ആകെ: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">ദൈർഘ്യമേറിയ</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (പ്ലാറ്റ്‌ഫോം <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">ഈ ടാബ് നിങ്ങളുടെ സ്‌ക്രീൻ പങ്കിടുന്നു.</translation>
 <translation id="2586657967955657006">ക്ലിപ്പ്ബോർഡ്</translation>
 <translation id="2586672484245266891">ദൈർഘ്യം കുറഞ്ഞ URL നൽകുക</translation>
 <translation id="2587922270115112871">ഒരു സൂപ്പർവൈസുചെയ്‌ത ഉപയോക്താവിനെ സൃഷ്‌ടിക്കുന്നത് Google അക്കൗണ്ട് സൃഷ്‌ടിക്കുന്നില്ല,  ഒപ്പം അവയുടെ ക്രമീകരണങ്ങളും
@@ -1088,7 +1086,6 @@
 <translation id="2633199387167390344"><ph name="NAME" />, ഡിസ്‌ക് ഇടത്തിന്റെ <ph name="USAGE" /> MB ഉപയോഗിക്കുന്നു.</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />" നീക്കംചെയ്യണോ?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> എന്നതിന് ഇന്‍സ്റ്റാളേഷന്‍ പൂര്‍ത്തിയാക്കാന്‍ കഴിഞ്ഞില്ല, എന്നാല്‍ ഇതിന്‍റെ ഡിസ്ക് ചിത്രത്തില്‍ പ്രവര്‍ത്തിക്കുന്നത് തുടരും.</translation>
-<translation id="2633326789677284179">നിങ്ങളുടെ കീയുടെ പിൻവശത്ത് അച്ചടിച്ചിട്ടുള്ള പേര് നോക്കുക</translation>
 <translation id="2635276683026132559">സൈന്‍‌ ചെയ്യുന്നു</translation>
 <translation id="2636625531157955190">Chrome-ന് ചിത്രം ആക്‌സസ്സുചെയ്യാനാവില്ല.</translation>
 <translation id="2638087589890736295">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന് പാസ്‌ഫ്രെയ്‌സ് ആവശ്യമാണ്</translation>
@@ -1256,7 +1253,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> ചേർക്കുക...</translation>
 <translation id="2874343608108773609">നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും പാസ്‍വേഡുകൾ ലഭിക്കാൻ, Chrome-ത്തിലേക്ക് സൈൻ ഇൻ ചെയ്യുക.</translation>
 <translation id="2875698561019555027">(Chrome പിശക് പേജുകൾ)</translation>
-<translation id="2876441201733326392">USB സുരക്ഷാ കീ ഉപയോഗിക്കുക</translation>
 <translation id="288042212351694283">നിങ്ങളുടെ യൂണിവേഴ്‌സൽ സെക്കൻഡ് ഫാക്‌റ്റർ ഉപകരണങ്ങൾ ആക്‌സസ്സുചെയ്യുക</translation>
 <translation id="2881966438216424900">അവസാനം ആക്‌സസുചെയ്‌തത്:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" />, തൽക്ഷണം പുനരാരംഭിച്ച് പുനഃസജ്ജമാക്കും</translation>
@@ -1324,7 +1320,6 @@
 <translation id="2982970937345031">അജ്ഞാതമായി റിപ്പോർട്ടുചെയ്യുക</translation>
 <translation id="2984337792991268709">ഇന്ന് <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">MIDI ഉപകരണങ്ങളുടെ പൂർണ്ണ നിയന്ത്രണത്തിലാകുന്നതിൽ നിന്ന് ഈ പേജ് തടഞ്ഞിരിക്കുന്നു.</translation>
-<translation id="2988599644347283908">ശ്രദ്ധിക്കുക: വ്യക്തിപരമാക്കിയ അനുഭവങ്ങളും ഉപയോഗപ്രദമായ പരസ്യങ്ങളും നിങ്ങൾക്ക് നൽകാൻ നിങ്ങൾ സൈൻ ഇൻ ചെയ്‌തിട്ടുള്ള ഏതൊരു Google സേവനത്തിലും ഈ ക്രമീകരണം കൺട്രോൾ ചെയ്യുന്ന ഡാറ്റ സംരക്ഷിച്ച്, ഉപയോഗിക്കപ്പെടാം. account.google.com സന്ദർശിച്ച്, ഡാറ്റ കാണുകയും ഇല്ലാതാക്കുകയും നിങ്ങളുടെ ക്രമീകരണം മാറ്റുകയും ചെയ്യാവുന്നതാണ്.</translation>
 <translation id="2989474696604907455">അറ്റാച്ചുചെയ്‌തില്ല</translation>
 <translation id="2989786307324390836">DER-എന്‍‌കോഡുചെയ്‌ത ബൈനറി, ഒറ്റ സര്‍‌ട്ടിഫിക്കറ്റ്</translation>
 <translation id="2993517869960930405">അപ്ലിക്കേഷൻ വിവരം</translation>
@@ -1377,7 +1372,6 @@
 <translation id="304826556400666995">ടാബുകൾ അൺമ്യൂട്ട് ചെയ്യുക</translation>
 <translation id="3053013834507634016">സര്‍‌ട്ടിഫിക്കറ്റ് കീ ഉപയോഗം</translation>
 <translation id="3057861065630527966">നിങ്ങളുടെ ഫോട്ടോകളും വീഡിയോകളും ബാക്കപ്പുചെയ്യുക</translation>
-<translation id="3059313675706898490">Android മെസേജ്</translation>
 <translation id="3060379269883947824">'വായിച്ചുകേൾക്കാൻ തിരഞ്ഞെടുക്കുക' പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="3061707000357573562">പാച്ച് സേവനം</translation>
 <translation id="3064410671692449875">ഡാറ്റ അപര്യാപ്‌തമാണ്</translation>
@@ -1406,7 +1400,6 @@
 <translation id="3090819949319990166"><ph name="TEMP_CRX_FILE" /> എന്നതിലേക്ക് ബാഹ്യ crx ഫയൽ പകർത്താനാവില്ല.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" ജോടിയാക്കി</translation>
 <translation id="3101709781009526431">തീയതിയും സമയവും</translation>
-<translation id="3104900172193317662">നിങ്ങളുടെ സുരക്ഷാ കീയുടെ ഉപയോഗം അനുവദിക്കുക</translation>
 <translation id="310671807099593501">സൈറ്റ്, bluetooth ഉപയോഗിക്കുന്നു</translation>
 <translation id="3115128645424181617">നിങ്ങളുടെ ഫോൺ കണ്ടെത്താനാകുന്നില്ല. Bluetooth ഓണാണെന്നും ഫോൺ കൈയ്യിലുണ്ടെന്നും ഉറപ്പാക്കുക.</translation>
 <translation id="3115147772012638511">കാഷെയ്ക്കായി കാത്തിരിക്കുന്നു...</translation>
@@ -1490,7 +1483,6 @@
 <translation id="3251759466064201842">&lt;സര്‍‌ട്ടിഫിക്കറ്റിന്‍റെ ഭാഗമല്ല&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> ഫയലുകൾക്കായി സ്ഥിരസ്ഥിതി അപ്ലിക്കേഷൻ തിരഞ്ഞെടുക്കുക:</translation>
 <translation id="3254516606912442756">സ്വമേധയായുള്ള സമയ മേഖല കണ്ടെത്തൽ പ്രവർത്തനരഹിതമാക്കി</translation>
-<translation id="3254772308201947812">അതെ, ഞാൻ തയ്യാറാണ്</translation>
 <translation id="3264544094376351444">സാന്‍സ്-സെരിഫ് ഫോണ്ട്</translation>
 <translation id="3264547943200567728">നിങ്ങളുടെ Chromebox-ന്റെ നെറ്റ്‌വർക്ക് സജ്ജമാക്കാനായില്ല</translation>
 <translation id="3264582393905923483">സന്ദർഭം</translation>
@@ -1813,7 +1805,6 @@
 <translation id="3735740477244556633">ഇപ്രകാരം അടുക്കുക</translation>
 <translation id="3737274407993947948">Linux ഇൻസ്‌റ്റാൾ ചെയ്യുന്നതിൽ പിശക്...</translation>
 <translation id="3737536731758327622">നിങ്ങളുടെ ഡൗൺലോഡുകൾ ഇവിടെ ദൃശ്യമാകും</translation>
-<translation id="3738671331307774213">ഐഡൻ്റിറ്റി പരിശോധിച്ച് ഉറപ്പിക്കുന്നത് നിങ്ങളുടെ സ്വകാര്യ ഡാറ്റ പരിരക്ഷിക്കാൻ സഹായിക്കുന്നു</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> തുറക്കണോ?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" />, ഇപ്പോൾ അഡ്‌മിൻ കൺസോളിൽ ദൃശ്യമാകും</translation>
@@ -1907,6 +1898,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: സമന്വയം താൽക്കാലികമായി നിർത്തി</translation>
 <translation id="3860381078714302691">Hangouts Meet-ലേക്ക് സ്വാഗതം</translation>
+<translation id="3861241522664181545">പേജ് താൽക്കാലികമായി നിർത്തി.</translation>
 <translation id="3862134173397075045">Chrome-ലെ Cast അനുഭവത്തിലേക്ക് സ്വാഗതം!</translation>
 <translation id="3862788408946266506">Chrome OS കിയോസ്‌ക് മോഡിൽ, 'kiosk_only' മാനിഫെസ്റ്റ് ആട്രിബ്യൂട്ട് ഉള്ള അപ്ലിക്കേഷൻ ഇൻസ്റ്റാൾ ചെയ്യണം</translation>
 <translation id="3865414814144988605">റെസല്യൂഷൻ</translation>
@@ -1921,7 +1913,6 @@
 <translation id="3873315167136380065">ഇത് ഓണാക്കാൻ, നിങ്ങളുടെ സമന്വയിപ്പിച്ച പാസ്‌ഫ്രെയ്‌സ് നീക്കം ചെയ്യാൻ <ph name="BEGIN_LINK" />സമന്വയം പുനഃസജ്ജമാക്കുക<ph name="END_LINK" /></translation>
 <translation id="3878840326289104869">സൂപ്പർവൈസുചെയ്‌ത ഉപയോക്താവിനെ സൃഷ്‌ടിക്കുന്നു</translation>
 <translation id="3879748587602334249">ഡൗൺലോഡ് മാനേജർ</translation>
-<translation id="3880709822663530586">നിങ്ങളുടെ ഉപകരണത്തിന്റെ Bluetooth ഓണാണെങ്കിൽ മാത്രമേ സുരക്ഷാ കീ പ്രവർത്തിക്കൂ</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ഉപയോഗിച്ച് കുറിപ്പുകൾ എടുക്കുന്നു</translation>
 <translation id="3892414795099177503">OpenVPN / L2TP ചേർക്കുക...</translation>
 <translation id="3893536212201235195">നിങ്ങളുടെ ഉപയോഗസഹായിയുടെ ക്രമീകരണങ്ങൾ വായിച്ച് മാറ്റുക</translation>
@@ -2066,6 +2057,7 @@
 <translation id="4096824249111507322">സുരക്ഷിത മൊഡ്യൂൾ തയ്യാറാക്കുന്നു, കാക്കുക (ഇതിന് ഒരൽപ്പ സമയമെടുത്തേക്കാം)...</translation>
 <translation id="4099060993766194518">ഡിഫോൾട്ട് തിരയൽ എഞ്ചിൻ പുനഃസ്ഥാപിക്കണോ?</translation>
 <translation id="4100733287846229632">ഉപകരണത്തിൽ ഇടം വളരെ കുറവാണ്</translation>
+<translation id="4103091233824664032">സ്‌ക്രീൻ ലോക്കും സൈൻ-ഇന്നും കോൺഫിഗർ ചെയ്യാൻ നിങ്ങളുടെ പാസ്‌വേഡ് നൽകുക</translation>
 <translation id="4104163789986725820">കയ&amp;റ്റുമതി ചെയ്യുക...</translation>
 <translation id="4105563239298244027">Google ഡ്രൈവിൽ 1 TB  സൗജന്യമായി നേടുക</translation>
 <translation id="4107048419833779140">സ്‌റ്റോറേജ് ​​ഉപകരണം തിരിച്ചറിഞ്ഞ് ഒഴിവാക്കുക</translation>
@@ -2086,7 +2078,6 @@
 <translation id="4136203100490971508">സൂര്യോദയ സമയത്ത് നൈറ്റ് ലൈറ്റ് സ്വമേധയാ ഓഫാകും</translation>
 <translation id="4138267921960073861">പ്രവേശന സ്ക്രീനില്‍ ഫോട്ടോകളും ഉപയോക്തൃനാമങ്ങളും  കാണിക്കുക</translation>
 <translation id="4144218403971135344">മികച്ച ഗുണമേന്മയുള്ള വീഡിയോ നേടുകയും ബാറ്ററി ലൈഫ് കൂട്ടുകയും ചെയ്യുക. നിങ്ങളുടെ Cast ചെയ്യാൻ പ്രാപ്തിയുള്ള സ്ക്രീനിൽ മാത്രം വീഡിയോ പ്ലേ ചെയ്യും.</translation>
-<translation id="414599683948988413">USB-യോടൊപ്പം നിങ്ങളുടെ സുരക്ഷാ കീ ഉപയോഗിക്കുക</translation>
 <translation id="4146026355784316281">എപ്പോഴും സിസ്‌റ്റം വ്യൂവറിൽ തുറക്കുക</translation>
 <translation id="4146785383423576110">റീസെറ്റ് ചെയ്‌ത ശേഷം മായ്ക്കുക</translation>
 <translation id="4147897805161313378">Google ഫോട്ടോസ്</translation>
@@ -2221,6 +2212,7 @@
 <translation id="4394049700291259645">അപ്രാപ്‌തമാക്കുക</translation>
 <translation id="4400367121200150367">ഇവിടെ ദൃശ്യമാകുന്ന സൈറ്റുകള്‍ ഒരിക്കലും പാസ്‌വേഡുകള്‍ സംരക്ഷിക്കില്ല</translation>
 <translation id="4400632832271803360">മുകൾ-വരിയിലെ കീകളുടെ പ്രവർത്തനരീതി മാറ്റാൻ 'ലോഞ്ചർ' കീ അമർത്തിപ്പിടിക്കുക</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">സ&amp;ഹായം</translation>
 <translation id="4409697491990005945">മാര്‍‌ജിനുകള്‍‌</translation>
 <translation id="4411578466613447185">കോഡ് സൈനര്‍</translation>
@@ -2269,6 +2261,7 @@
 <translation id="4480590691557335796">Chrome-ന് നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ ദോഷകരമായ സോഫ്‌റ്റ്‌വെയർ കണ്ടെത്താനും അത് നീക്കം ചെയ്യാനുമാവും.</translation>
 <translation id="4481530544597605423">ജോടി മാറ്റിയ ഉപകരണങ്ങൾ</translation>
 <translation id="4482194545587547824">തിരയലും മറ്റ് Google സേവനങ്ങളും വ്യക്തിപരമാക്കാൻ Google നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം ഉപയോഗിച്ചേക്കാം</translation>
+<translation id="4493287891836751813">നിങ്ങളുടെ Google അസിസ്‌റ്റന്റിനെ പരിചയപ്പെടൂ</translation>
 <translation id="4495419450179050807">ഈ പേജില്‍ കാണിക്കരുത്</translation>
 <translation id="4499718683476608392">ഒറ്റ ക്ലിക്കിൽ ഫോമുകൾ പൂരിപ്പിക്കാൻ ക്രെഡിറ്റ് കാർഡിന്റെ സ്വമേധയാ പൂരിപ്പിക്കൽ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ക്രാഷ് ചെയ്തിരിക്കുന്നു</translation>
@@ -2429,6 +2422,7 @@
 <translation id="474217410105706308">ടാബ് മ്യൂട്ടുചെയ്യുക</translation>
 <translation id="4742746985488890273">ഷെൽഫിൽ പിൻ ചെയ്യുക</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />അപ്ലിക്കേഷനുകൾ അപ്‌ഡേറ്റ് ചെയ്യുന്നത് എങ്ങനെയെന്ന് അറിയുക<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">സന്ദേശങ്ങൾ</translation>
 <translation id="4746971725921104503">നിങ്ങൾ ഇതിനകം അതേ പേരിൽ ഒരു ഉപയോക്താവിനെ നിയന്ത്രിക്കുന്നതായി തോന്നുന്നു. <ph name="LINK_START" />ഈ ഉപകരണത്തിലേക്ക് <ph name="USER_DISPLAY_NAME" /> ഇമ്പോർട്ടുചെയ്യാൻ<ph name="LINK_END" /> താൽപ്പര്യമുണ്ടോ?</translation>
 <translation id="4748762018725435655">Chrome വെബ് സ്റ്റോറിൽ നിന്നുള്ള വിപുലീകരണം ആവശ്യമാണ്</translation>
 <translation id="4750394297954878236">നിർദ്ദേശങ്ങൾ</translation>
@@ -2470,6 +2464,7 @@
 <translation id="4821935166599369261">&amp;പ്രൊഫൈലിംഗ് പ്രാപ്തമാക്കി</translation>
 <translation id="4823484602432206655">ഉപയോക്തൃ, ഉപകരണ ക്രമീകരണങ്ങൾ റീഡുചെയ്‌ത് മാറ്റുക</translation>
 <translation id="4823651846660089135">ഉപകരണം വായിക്കാൻ മാത്രമുള്ള മോഡിലാണ്</translation>
+<translation id="4823955295535347797">സ്ക്രീൻ ഓണായിരിക്കുമ്പോൾ, ഏത് സമയത്തും "Ok Google" എന്ന് പറഞ്ഞ് നിങ്ങളുടെ അസിസ്‌റ്റന്റ് ആക്‌സസ് ചെയ്യാം.</translation>
 <translation id="4828937774870308359">ഓസ്‌ട്രേലിയൻ</translation>
 <translation id="4829768588131278040">പിൻ നമ്പർ സജ്ജമാക്കുക</translation>
 <translation id="4830502475412647084">OS അപ്‌ഡേറ്റ് ഇൻസ്‌റ്റാൾ ചെയ്യുന്നു</translation>
@@ -2510,6 +2505,7 @@
 <translation id="4876273079589074638">ഈ ക്രാഷിനെ കുറിച്ച് അന്വേഷിക്കാനും അത് പരിഹരിക്കാനും ഞങ്ങളുടെ എഞ്ചിനീയർമാരെ സഹായിക്കുക. കഴിയുമെങ്കിൽ കൃത്യമായ ഘട്ടങ്ങൾ ലിസ്‌റ്റുചെയ്യുക. ഒരു വിശദാംശവും ചെറുതല്ല!</translation>
 <translation id="4876895919560854374">സ്ക്രീൻ ലോക്കുചെയ്യുക, അൺലോക്കുചെയ്യുക</translation>
 <translation id="4877017884043316611">Chromebox-മായി ജോടിയാക്കുക</translation>
+<translation id="4879491255372875719">സ്വമേധയാ (ഡിഫോൾട്ട്)</translation>
 <translation id="4880214202172289027">വോളിയം സ്ലൈഡർ</translation>
 <translation id="4880328057631981605">ആ‌ക്‌സസ് പോയിന്റിന്റെ പേര്</translation>
 <translation id="4880520557730313061">സ്വയമേവ ശരിയാക്കുക</translation>
@@ -2663,7 +2659,6 @@
 <translation id="5099354524039520280">മുകളിലേക്ക്</translation>
 <translation id="5100114659116077956">നിങ്ങൾക്ക് ഏറ്റവും പുതിയ സവിശേഷതകൾ ലഭ്യമാക്കുന്നതിന്, നിങ്ങളുടെ Chromebox അപ്ഡേറ്റുചെയ്യേണ്ടതുണ്ട്.</translation>
 <translation id="5101042277149003567">എല്ലാ ബുക്‌മാര്‍ക്കുകളും തുറക്കുക</translation>
-<translation id="5104546332954397226">നിങ്ങളുടെ ഫോൺ ഒരു സുരക്ഷാ കീ ആയി ഉപയോഗിക്കുക</translation>
 <translation id="5105855035535475848">ടാബുകള്‍ കോര്‍ക്കുക</translation>
 <translation id="5108967062857032718">ക്രമീകരണം - Android ആപ്‌സ് നീക്കംചെയ്യുക</translation>
 <translation id="5109044022078737958">മിയ</translation>
@@ -2794,7 +2789,6 @@
 <translation id="5288678174502918605">അടച്ച ടാബ് വീ&amp;ണ്ടും തുറക്കുക</translation>
 <translation id="52912272896845572">സ്വകാര്യ കീ ഫയല്‍‌ അസാധുവാണ്.</translation>
 <translation id="529175790091471945">ഈ ഉപകരണം ഫോർമാറ്റുചെയ്യുക</translation>
-<translation id="5292195676005197571">മിക്ക കീകളും ഉപയോഗിക്കുന്നതിന്, ബട്ടണിൽ അമർത്തിയാൽ മതി</translation>
 <translation id="5293170712604732402">ക്രമീകരണത്തെ അവയുടെ യഥാർത്ഥ ഡിഫോൾട്ടുകളിലേക്ക് പുനഃസ്ഥാപിക്കുക</translation>
 <translation id="5297082477358294722">പാസ്‌വേഡ് സംരക്ഷിച്ചു. നിങ്ങളുടെ <ph name="SAVED_PASSWORDS_STORE" /> എന്നതിൽ സംരക്ഷിച്ച പാസ്‌വേഡുകൾ കാണുക, മാനേജ് ചെയ്യുക.</translation>
 <translation id="5298219193514155779">തീം സൃഷ്‌ടിച്ചത്</translation>
@@ -2820,6 +2814,7 @@
 <translation id="532776649628038357">ഞാൻ സമ്മതിക്കുന്നു</translation>
 <translation id="532943162177641444">ഈ ഉപകരണത്തിന് ഉപയോഗിക്കാൻ കഴിയുന്ന മൊബൈൽ ഹോട്ട്‌സ്പോട്ട് സജ്ജമാക്കുന്നതിന് നിങ്ങളുടെ <ph name="PHONE_NAME" /> ഫോണിലെ അറിയിപ്പിൽ ടാപ്പുചെയ്യുക.</translation>
 <translation id="5329858601952122676">&amp;ഇല്ലാതാക്കൂ</translation>
+<translation id="5329945517224105597">നിങ്ങളുടെ സ്‌ക്രീനിലെ ഉള്ളടക്കവുമായി ബന്ധപ്പെട്ട കൂടുതൽ പ്രസക്തമായ നിർദ്ദേശങ്ങളും വ്യക്തമായ പ്രവർത്തനങ്ങളും നൽകാൻ അസിസ്‌റ്റന്റിനാവും. അസിസ്‌റ്റന്റ് ക്രമീകരണത്തിൽ ഇത് മാറ്റാം</translation>
 <translation id="5330145655348521461">ഈ ഫയലുകൾ മറ്റൊരു ഡെസ്‌ക്‌ടോപ്പിലാണ് തുറന്നിരിക്കുന്നത്. അത് കാണാൻ <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) എന്നതിലേക്ക് നീക്കുക.</translation>
 <translation id="5330512191124428349">വിവരം സ്വീകരിക്കുക</translation>
 <translation id="5331069282670671859">ഈ വിഭാഗത്തിൽ നിങ്ങൾക്ക് സർട്ടിഫിക്കറ്റുകളൊന്നുമില്ല</translation>
@@ -2864,7 +2859,6 @@
 <translation id="5390100381392048184">ശബ്‌ദം പ്ലേ ചെയ്യാൻ സൈറ്റുകളെ അനുവദിക്കുക</translation>
 <translation id="5390284375844109566">ഇൻഡെക്‌സ് ചെയ്‌ത ഡാറ്റാബേസ്</translation>
 <translation id="5390743329570580756">ഇതിനുവേണ്ടി അയയ്‌ക്കുക</translation>
-<translation id="5392327114396848796">ഒരു അന്തർനിർമിത സുരക്ഷാ കീ ഉപയോഗിക്കുക</translation>
 <translation id="5397794290049113714">നിങ്ങള്‍</translation>
 <translation id="5398572795982417028">പേജ് റഫറൻസ് പരിധി കവിഞ്ഞു, <ph name="MAXIMUM_PAGE" /> പേജാണ് വേണ്ട പരിധി</translation>
 <translation id="5398772614898833570">പരസ്യങ്ങൾ ബ്ലോക്കുചെയ്‌തു</translation>
@@ -3072,6 +3066,7 @@
    <ph name="LINE_BREAKS" />
    ആർക്കൈവിലെയോ വെർച്വൽ ഡിസ്‌ക്കിലെയോ എല്ലാ ഫയലുകളും അടയ്ക്കുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="5687326903064479980">സമയമേഖല</translation>
+<translation id="568824803367507355">"Ok Google" തിരിച്ചറിയൽ</translation>
 <translation id="5689516760719285838">ലൊക്കേഷൻ</translation>
 <translation id="56907980372820799">ഡാറ്റ ലിങ്കുചെയ്യുക</translation>
 <translation id="5691511426247308406">കുടുംബം</translation>
@@ -3169,7 +3164,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - ക്യാമറ അല്ലെങ്കിൽ മൈക്രോഫോൺ റെക്കോർഡിംഗ്</translation>
 <translation id="5835754902560991078">തീരെ ചെറിയത് (0.6 സെക്കൻഡ്)</translation>
 <translation id="5838456317242088717">നിലവിലെ അദൃശ്യ സെഷൻ</translation>
-<translation id="5842053879378944309"><ph name="APP_NAME" /> എന്നതിനോടൊപ്പം USB സുരക്ഷാ കീ ഉപയോഗിക്കുക</translation>
 <translation id="5842497610951477805">Bluetooth പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="5843250171025351504">അഡിമിൻ നിര്‍ദ്ദേശിച്ചിരിക്കുന്ന കുറഞ്ഞ ക്ലയന്‍റ് പതിപ്പുമായി ഇനിയങ്ങോട്ട് നിങ്ങളുടെ ഉപകരണത്തിന് അനുയോജ്യത ഉണ്ടാകില്ല. ലോഗിൻ ചെയ്യാൻ അപ്ഡേറ്റ് ചെയ്യുക.</translation>
 <translation id="5846929185714966548">ടാബ് 4</translation>
@@ -3488,7 +3482,6 @@
 <translation id="6317318380444133405">ഇനിയങ്ങോട്ട് പിന്തുണയില്ല.</translation>
 <translation id="6317369057005134371">അപ്ലിക്കേഷൻ വിൻഡോയ്‌ക്കായി കാത്തിരിക്കുന്നു...</translation>
 <translation id="6318407754858604988">ഡൗൺലോഡ് ആരംഭിച്ചു</translation>
-<translation id="6322653941595359182">നിങ്ങളുടെ Chromebook-ൽ നിന്ന് അക്ഷര സന്ദേശങ്ങൾ അയയ്ക്കുകയും സ്വീകരിക്കുകയും ചെയ്യുക</translation>
 <translation id="6324916366299863871">കുറുക്കുവഴി എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="6325191661371220117">യാന്ത്രിക സമാരംഭിക്കൽ പ്രവർത്തനരഹിതമാക്കുക</translation>
 <translation id="6326175484149238433">Chrome-ൽ നിന്ന് നീക്കം ചെയ്യുക</translation>
@@ -3532,6 +3525,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />സിസ്റ്റം വിവരങ്ങളും<ph name="END_LINK1" /> <ph name="BEGIN_LINK2" />മെട്രിക്‌സും<ph name="END_LINK2" /> അയയ്‌ക്കുക</translation>
 <translation id="6397094776139756010">സമന്വയവും വ്യക്തിപരമാക്കലും ഓപ്‌ഷനുകൾ</translation>
 <translation id="6397592254427394018">&amp;വേഷ പ്രച്ഛന്ന വിന്‍ഡോയിലെ എല്ലാ ബുക്ക്മാര്‍ക്കുകളും തുറക്കുക</translation>
+<translation id="639777613761517128">ഒരു ഡോളർ ഉപയോഗിച്ച് ഫയലുകൾ തുറക്കാൻ, ആദ്യം Linux ഫയലുകൾ ഫോൾഡറിലേക്ക് പകർത്തുക.</translation>
 <translation id="6398715114293939307">Google Play സ്‌റ്റോർ നീക്കംചെയ്യുക</translation>
 <translation id="6398765197997659313">പൂര്‍ണ്ണ സ്ക്രീനില്‍ നിന്ന് പുറത്തുകടക്കുക</translation>
 <translation id="6399774419735315745">ചാരവനിത</translation>
@@ -3557,7 +3551,6 @@
 <translation id="642282551015776456">ഈ നാമം ഒരു ഫോൾഡർ നാമത്തിന്റെ ഫയൽ ആയി ഉപയോഗിക്കരുത്</translation>
 <translation id="642469772702851743">ഉടമ ഈ ഉപകരണം (SN: <ph name="SERIAL_NUMBER" />) ലോക്ക് ചെയ്‌തിരിക്കുന്നു.</translation>
 <translation id="6426200009596957090">ChromeVox ക്രമീകരണം തുറക്കുക</translation>
-<translation id="6427415464407526111">നിങ്ങളുടെ സുരക്ഷാ കീ തിരഞ്ഞെടുക്കുക</translation>
 <translation id="6429384232893414837">അപ്‌ഡേറ്റ് ചെയ്യുന്നതിൽ പിശക്</translation>
 <translation id="6430814529589430811">Base64-എന്‍‌കോഡുചെയ്‌ത ASCII, ഒറ്റ സര്‍‌ട്ടിഫിക്കറ്റ്</translation>
 <translation id="6431217872648827691"><ph name="TIME" /> മുതൽ Google പാസ്‌വേഡ് ഉപയോഗിച്ച് എല്ലാ ഡാറ്റയും
@@ -3716,7 +3709,6 @@
 <translation id="6655190889273724601">ഡെവലപ്പര്‍ മോഡ്</translation>
 <translation id="6655458902729017087">അക്കൗണ്ടുകൾ മറയ്‌ക്കുക</translation>
 <translation id="6657585470893396449">പാസ്‌വേഡ്</translation>
-<translation id="6658023813581644008">സൈൻ ഇൻ ചെയ്യുന്നതിനായി Smart Lock സജ്ജീകരിക്കാൻ, നിങ്ങളുടെ പാസ്‌വേഡ് നൽകുക</translation>
 <translation id="6659213950629089752">"<ph name="NAME" />" വിപുലീകരണം ഉപയോഗിച്ച് ഈ പേജ് സൂം ചെയ്‌തു</translation>
 <translation id="6659594942844771486">ടാബ്</translation>
 <translation id="6664237456442406323">നിർഭാഗ്യവശാൽ, കേടായ ഒരു ഹാർഡ്‌വെയർ ID ഉപയോഗിച്ചാണ് നിങ്ങളുടെ കമ്പ്യൂട്ടർ കോൺഫിഗർ ചെയ്‌തിരിക്കുന്നത്. ഇത് ഏറ്റവും പുതിയ സുരക്ഷാ പരിഹാരങ്ങൾ അപ്‌ഡേറ്റുചെയ്യുന്നതിൽ നിന്നും Chrome OS-നെ തടയുന്നു, ഒപ്പം നിങ്ങളുടെ കമ്പ്യൂട്ടർ <ph name="BEGIN_BOLD" />ക്ഷുദ്രകരമായ ആക്രമണങ്ങളാൽ കേടാകാനുമിടയുണ്ട്<ph name="END_BOLD" />.</translation>
@@ -3852,7 +3844,6 @@
 <translation id="6885771755599377173">സിസ്‌റ്റം വിവരത്തിന്റെ പ്രിവ്യൂ</translation>
 <translation id="6886871292305414135">പുതിയ &amp;ടാബിലെ ലിങ്ക് തുറക്കുക</translation>
 <translation id="6892812721183419409">ലിങ്ക് <ph name="USER" /> എന്നതായി തുറക്കുക</translation>
-<translation id="6896398788631624004">നിങ്ങളുടെ സുരക്ഷാ കീ പ്ലഗ്-ഇൻ ചെയ്‌ത് സജീവമാക്കുക</translation>
 <translation id="6896758677409633944">പകര്‍ത്തുക</translation>
 <translation id="6898440773573063262">ഈ ഉപകരണത്തിൽ സ്വയമേവ സമാരംഭിക്കാൻ കിയോസ്‌ക് അപ്ലിക്കേഷനുകൾ ഇപ്പോൾ കോൺഫിഗർ ചെയ്യാനാകും.</translation>
 <translation id="6898699227549475383">ഓര്‍‌ഗനൈസേഷന്‍‌ (O)</translation>
@@ -3871,6 +3862,7 @@
 <translation id="6915804003454593391">ഉപയോക്താവ്:</translation>
 <translation id="6916590542764765824">വിപുലീകരണങ്ങൾ നിയന്ത്രിക്കുക</translation>
 <translation id="6920989436227028121">പതിവ് ടാബായി തുറക്കുക</translation>
+<translation id="6921709132208495314">ഈ പേജിൽ ഡാറ്റ ഉപയോഗിക്കുന്നത് നിർത്തുക</translation>
 <translation id="6922128026973287222">Google ഡാറ്റ സേവർ ഉപയോഗിച്ച് വിവരം സംരക്ഷിച്ച് വേഗത്തിൽ ബ്രൗസുചെയ്യുക. കൂടുതലറിയാൻ ക്ലിക്കുചെയ്യുക.</translation>
 <translation id="6923132443355966645">സ്ക്രോൾ ചെയ്യുക / ക്ലിക്ക് ചെയ്യുക</translation>
 <translation id="6930242544192836755">സമയ ദൈർഘ്യം</translation>
@@ -3893,6 +3885,7 @@
 <translation id="6965382102122355670">ശരി</translation>
 <translation id="6965648386495488594">പോര്‍ട്ട്</translation>
 <translation id="6965978654500191972">ഉപാധി</translation>
+<translation id="6968288415730398122">സ്‌ക്രീൻ ലോക്ക് കോൺഫിഗർ ചെയ്യാൻ പാസ്‌വേഡ് നൽകുക</translation>
 <translation id="6970480684834282392">സ്റ്റാർട്ടപ്പ് തരം</translation>
 <translation id="6970856801391541997">പ്രിന്റ് പ്രത്യേക പേജുകൾ</translation>
 <translation id="6972180789171089114">ഓഡിയോ/വീഡിയോ</translation>
@@ -3903,6 +3896,7 @@
 <translation id="6978121630131642226">സെര്‍ച്ച് എഞ്ചിനുകള്‍</translation>
 <translation id="6978611942794658017">ഈ ഫയൽ, Windows സോഫ്‌റ്റ്‌വെയർ ഉപയോഗിക്കുന്ന PC-‌യ്ക്കായി രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നു. ഇത് Chrome OS പ്രവർത്തിക്കുന്ന നിങ്ങളുടെ ഉപകരണത്തിന് അനുയോജ്യമായതല്ല. അനുയോജ്യമായ മറ്റൊരു അപ്ലിക്കേഷനായി Chrome വെബ് സ്‌റ്റോറിൽ തിരയുക.</translation>
 <translation id="6979158407327259162">Google ഡ്രൈവ്</translation>
+<translation id="6979440798594660689">മ്യൂട്ട് ചെയ്യുക (ഡിഫോൾട്ട്)</translation>
 <translation id="6979737339423435258">എല്ലാ സമയത്തും</translation>
 <translation id="6980462514016882061">തിരയലും പരസ്യങ്ങളും മറ്റ് Google സേവനങ്ങളും വ്യക്തിപരമാക്കാൻ, Google നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം ഉപയോഗിച്ചേക്കാം</translation>
 <translation id="6981982820502123353">ഉപയോഗസഹായി</translation>
@@ -4051,6 +4045,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />നിങ്ങളുടെ ഉപകരണത്തെയും നിങ്ങളത് ഉപയോഗിക്കുന്ന രീതിയെയും കുറിച്ചുള്ള പൊതുവായ വിവരങ്ങളാണിത് (ബാറ്ററി ലെവൽ, ആപ്പ് ഉപയോഗം, നെറ്റ്‌വർക്ക് കണക്‌റ്റിവിറ്റി എന്നിവ പോലെയുള്ള വിവരങ്ങൾ). എല്ലാവർക്കുമായി Google-ന്റെ ഉൽപ്പന്നങ്ങളും സേവനങ്ങളും മെച്ചപ്പെടുത്താൻ ഈ ഡാറ്റ ഉപയോഗിക്കപ്പെടും. Android ഡെവലപ്പർമാർ പോലുള്ള പങ്കാളികൾക്ക് അവരുടെ ആപ്പുകളും ഉൽപ്പന്നങ്ങളും മികച്ചതാക്കുന്നതിനും, സമാഹരിച്ച ചില വിവരങ്ങൾ, സഹായിക്കും.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />ഈ ഫീച്ചർ ഓഫാക്കുന്നത്, സിസ്റ്റം അപ്‌ഡേറ്റുകളും സുരക്ഷയും പോലുള്ള അത്യാവശ്യ സേവനങ്ങൾക്ക് ആവശ്യമായ വിവരങ്ങൾ അയയ്‌ക്കുന്നതിനുള്ള ഉപകരണത്തിന്റെ കഴിവിനെ ബാധിക്കുകയില്ല.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />നിങ്ങൾക്ക്, ക്രമീകരണം &gt; Google എന്നതിൽ നിന്ന് ഈ ഫീച്ചർ നിയന്ത്രിക്കാവുന്നതാണ്. മെനുവിൽ നിന്ന് ഉപയോഗവും ഡയഗ്നോസ്റ്റിക്‌സും തിരഞ്ഞെടുക്കുക.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">ഈ ഉപകരണത്തിൽ ഉപയോഗിക്കാവുന്ന <ph name="NUMBER_OF_APPS" /> ആപ്പുകൾ നിങ്ങളുടെ അക്കൗണ്ടിൽ നിന്ന് കണ്ടെത്തി.</translation>
 <translation id="7199158086730159431">സ&amp;ഹായം നേടുക</translation>
 <translation id="7200083590239651963">കോൺഫിഗറേഷൻ തിരഞ്ഞെടുക്കുക</translation>
 <translation id="720110658997053098">ഈ ഉപകരണം ശാശ്വതമായി കിയോസ്ക് മോഡിൽ നിലനിർത്തുക</translation>
@@ -4071,7 +4066,6 @@
 <translation id="7228523857728654909">സ്‌ക്രീൻ ലോക്കും സൈൻ-ഇന്നും</translation>
 <translation id="7229570126336867161">EVDO ആവശ്യമുണ്ട്</translation>
 <translation id="7230787553283372882">നിങ്ങളുടെ ടെക്‌സ്‌‌റ്റ് വലുപ്പം ഇഷ്‌ടാനുസൃതമാക്കുക</translation>
-<translation id="7231589788477569369">ഈ ക്രമീകരണം ഉപയോഗിച്ച് സമ്പൂർണ്ണ അസിസ്‌റ്റന്റ് അനുഭവം നേടുക</translation>
 <translation id="7232750842195536390">പേരുമാറ്റൽ പരാജയപ്പെട്ടു</translation>
 <translation id="7234406375359457793">പങ്കിടൽ മൗണ്ട് ചെയ്യുന്നതിൽ പിശക്. നിർദ്ദിഷ്‌ട പങ്കിടൽ പിന്തുണയ്ക്കുന്നില്ല.</translation>
 <translation id="7238585580608191973">SHA-256 ഫിംഗര്‍പ്രിന്‍റ്</translation>
@@ -4081,7 +4075,6 @@
 <translation id="7243632151880336635">മായ്‌ച്ച്, സൈൻ ഔട്ട് ചെയ്യുക</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (മികച്ചത്)</translation>
 <translation id="7246339268451149667">വിരലടയാളം ഉപയോഗിച്ചുള്ള അൺലോക്കുചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കണോ?</translation>
-<translation id="7246489301073081944">പുറത്ത് കടക്കാൻ |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| അമർത്തിപ്പിടിക്കുക</translation>
 <translation id="7246947237293279874">FTP പ്രോക്‌സി</translation>
 <translation id="725109152065019550">ക്ഷമിക്കണം, അഡ്‌മിനിസ്‌ട്രേറ്റർ നിങ്ങളുടെ അക്കൗണ്ടിന്റെ ബാഹ്യസംഭരണം അപ്രാപ്‌തമാക്കി.</translation>
 <translation id="7253521419891527137">&amp;കൂടുതലറിയുക</translation>
@@ -4234,7 +4227,6 @@
 <translation id="7489605380874780575">യോഗ്യത പരിശോധിക്കുക</translation>
 <translation id="749028671485790643">വ്യക്തി <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC വിലാസം</translation>
-<translation id="7490950320178383728">Bluetooth-നോടൊപ്പം നിങ്ങളുടെ സുരക്ഷാ കീ ഉപയോഗിക്കുക</translation>
 <translation id="7491962110804786152">ടാബ്</translation>
 <translation id="7493386493263658176">പാസ്‌വേഡുകൾ, ക്രെഡിറ്റ് കാർഡ് നമ്പറുകൾ എന്നിവ പോലുള്ള വ്യക്തിപരമായ വിവരങ്ങൾ ഉൾപ്പെടെ നിങ്ങൾ ടൈപ്പുചെയ്യുന്ന എല്ലാ ടെക്‌സ്‌റ്റും <ph name="EXTENSION_NAME" /> വിപുലീകരണം ശേഖരിച്ചേക്കാം. നിങ്ങൾക്ക് ഈ വിപുലീകരണം ഉപയോഗിക്കണോ?</translation>
 <translation id="7494065396242762445">Windows ക്രമീകരണം തുറക്കുക</translation>
@@ -4484,7 +4476,6 @@
 <translation id="7850851215703745691">ഈ ഡ്രൈവ് ഫയലുകൾ ഇതുവരെ പങ്കിട്ടില്ല</translation>
 <translation id="7851457902707056880">സൈൻ ഇൻ ചെയ്യുന്നത് ഉടമയുടെ അക്കൗണ്ടിനുമാത്രമായി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു. റീബൂട്ട് ചെയ്‌തതിനുശേഷം ഉടമയുടെ അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യുക. 30 സെക്കൻഡിനുള്ളിൽ മെഷീൻ സ്വയമേവ റീബൂട്ട് ചെയ്യും.</translation>
 <translation id="7851716364080026749">ക്യാമറ, മൈക്രോഫോൺ എന്നിവയുടെ ആക്‌സസ്സ് എല്ലായ്പ്പോഴും തടയുക</translation>
-<translation id="7851816139220202929">NFC-യോടൊപ്പം നിങ്ങളുടെ സുരക്ഷാ കീ ഉപയോഗിക്കുക</translation>
 <translation id="7853747251428735">കൂടുതൽ ഉപകരണങ്ങൾ</translation>
 <translation id="7856006446339184955">സിസ്റ്റം ഡാറ്റ അയയ്‌ക്കുക. ഈ ഉപകരണം നിലവിൽ Google-ന് ഡയഗ്നോസ്‌റ്റിക് ഡാറ്റയും ഉപയോഗ ഡാറ്റയും ആപ്പ് ഉപയോഗ ഡാറ്റയും സ്വമേധയാ അയയ്‌ക്കുന്നു. ഉടമയാണ് ഈ <ph name="BEGIN_LINK1" />ക്രമീകരണം<ph name="END_LINK1" /> നടപ്പാക്കിയിട്ടുള്ളത്. അധിക 'വെബ്, ആപ്പ് ആക്റ്റിവിറ്റി' ഓണാക്കിയിട്ടുണ്ടെങ്കിൽ, നിങ്ങളുടെ അക്കൗണ്ട് ഉപയോഗിച്ച് ഈ വിവരങ്ങൾ സംഭരിക്കപ്പെടും. അതിനാൽ, നിങ്ങൾക്ക് ഇത് എന്റെ ആക്റ്റിവിറ്റിയിൽ നിയന്ത്രിക്കാവുന്നതാണ്. <ph name="BEGIN_LINK2" />കൂടുതലറിയുക<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">ഒഴിവാക്കൽ ചേർക്കുക</translation>
@@ -4567,6 +4558,7 @@
 <translation id="7973962044839454485">തെറ്റായ ഉപയോക്തൃനാമമോ പാസ്‌വേഡോ കാരണം PPP പ്രാമാണീകരണം പരാജയപ്പെട്ടു</translation>
 <translation id="7974566588408714340"><ph name="EXTENSIONNAME" /> ഉപയോഗിച്ച് വീണ്ടും ശ്രമിക്കുക</translation>
 <translation id="7974936243149753750">ഓവർസ്‌കാൻ</translation>
+<translation id="79766959863778284">XR മാറ്റി നിർത്തിയ ഉപകരണ സേവനം</translation>
 <translation id="7977551819349545646">Chromebox അപ്‌ഡേറ്റുചെയ്യുന്നു...</translation>
 <translation id="7978412674231730200">സ്വകാര്യ കീ</translation>
 <translation id="7978450511781612192">ഇത് നിങ്ങളെ Google അക്കൗണ്ടുകളിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യിക്കും. നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാ‌സ്‌വേഡുകൾ എന്നിവയും മറ്റും ഇനിയങ്ങോട്ട് സമന്വയിക്കില്ല.</translation>
@@ -4617,7 +4609,6 @@
 <translation id="8030656706657716245">പ്രിന്ററുകൾ ചേർക്കുക</translation>
 <translation id="8032244173881942855">ടാബ് കാസ്‌റ്റുചെയ്യാനാവുന്നില്ല.</translation>
 <translation id="8033827949643255796">തിരഞ്ഞെടുത്തു</translation>
-<translation id="8033958968890501070">കാലഹരണപ്പെട്ടു</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{എല്ലാം &amp;അദൃശ്യ വിൻഡോയിൽ തുറക്കുക}=1{&amp;അദൃശ്യ വിൻഡോയിൽ തുറക്കുക}other{എല്ലാം (#) &amp;അദൃശ്യ വിൻഡോയിൽ തുറക്കുക}}</translation>
 <translation id="8037117027592400564">സംശ്ലേഷിച്ച സംഭാഷണം ഉപയോഗിക്കുന്ന എല്ലാ ടെക്സ്റ്റ് സംഭാഷണവും റീഡുചെയ്യുക</translation>
 <translation id="8037357227543935929">ചോദിക്കുക (ഡിഫോൾട്ട്)</translation>
@@ -4790,6 +4781,7 @@
 <translation id="8320459152843401447">നിങ്ങളുടെ മുഴുവൻ സ്‌ക്രീനും</translation>
 <translation id="8322814362483282060">നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ്സുചെയ്യുന്നതിൽ നിന്ന് ഈ പേജിനെ തടഞ്ഞിരിക്കുന്നു.</translation>
 <translation id="8326478304147373412">PKCS #7, സര്‍‌ട്ടിഫിക്കറ്റ് ചെയിന്‍‌</translation>
+<translation id="8327039559959785305">Linux ഫയലുകൾ മൗണ്ട് ചെയ്യുന്നതിൽ പിശക്. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="8329978297633540474">പ്ലെയിന്‍ വാചകം</translation>
 <translation id="8335587457941836791">ഷെൽഫിൽ നിന്ന് അൺപിൻ ചെയ്യുക</translation>
 <translation id="8336153091935557858">ഇന്നലെ <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4840,7 +4832,6 @@
 <translation id="8425213833346101688">മാറ്റുക</translation>
 <translation id="8425492902634685834">ടാസ്‌ക്ബാറില്‍‌ പിന്‍‌ ചെയ്യുക</translation>
 <translation id="8425755597197517046">ഒട്ടിക്കു&amp;കയും തിരയുകയും ചെയ്യുക</translation>
-<translation id="8426117172745886547">പുറത്തുകടക്കും മുമ്പ് മുന്നറിയിപ്പ് നല്‍കുക (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">പ്രവർത്തനസജ്ജമാക്കുന്നു</translation>
 <translation id="8427292751741042100">എല്ലാ ഹോസ്‌റ്റിലും ഉൾപ്പെടുത്തി</translation>
 <translation id="8428213095426709021">ക്രമീകരണങ്ങള്‍</translation>
@@ -4928,7 +4919,6 @@
 <translation id="8551388862522347954">ലൈസന്‍സുകള്‍</translation>
 <translation id="8553342806078037065">മറ്റുള്ളവരെ മാനേജുചെയ്യുക</translation>
 <translation id="8554899698005018844">ഭാഷയില്ല</translation>
-<translation id="8557347704037207368">Android വെബ് സന്ദേശങ്ങളിൽ നിന്നുള്ള അറിയിപ്പുകൾ നിങ്ങൾക്ക് അയയ്ക്കുന്നു</translation>
 <translation id="855773602626431402">ഈ പേജിൽ പ്രവർത്തിക്കുന്നതിൽ നിന്നും ഒരു അൺസാൻഡ്‌ബോക്‌സ് ചെയ്‌ത പ്ലഗ്-ഇൻ തടഞ്ഞു.</translation>
 <translation id="8557930019681227453">മാനിഫെസ്റ്റ്</translation>
 <translation id="8559694214572302298">ഇമേജ് ഡീകോഡർ</translation>
@@ -5041,6 +5031,7 @@
 <translation id="8714154114375107944">ഇനി പിന്തുണയ്ക്കില്ല</translation>
 <translation id="8714838604780058252">പശ്ചാത്തല ഗ്രാഫിക്സ്</translation>
 <translation id="8715480913140015283">പശ്ചാത്തല ടാബ് നിങ്ങളുടെ ക്യാമറ ഉപയോഗിക്കുന്നു</translation>
+<translation id="8716931980467311658">ഈ <ph name="DEVICE_TYPE" /> നിന്നുള്ള നിങ്ങളുടെ Linux ഫയലുകളുടെ ഫോൾഡറിലുള്ള എല്ലാ Linux ആപ്പുകളും ഡാറ്റയും ഇല്ലാതാക്കണോ?</translation>
 <translation id="8719653885894320876"><ph name="PLUGIN_NAME" /> ഡൗൺലോഡ് ചെയ്യാനായില്ല</translation>
 <translation id="8723829621484579639">ഇനിപ്പറയുന്നതിന്റെ ഇൻകോഗ്‌നിറ്റോ ഉപഫ്രെയിമുകൾ: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;ഫോള്‍ഡറില്‍ കാണിക്കുക</translation>
@@ -5203,7 +5194,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ക്രാഷായി</translation>
 <translation id="8983677657449185470">സുരക്ഷിത ബ്രൗസിംഗ് മെച്ചപ്പെടുത്താൻ സഹായിക്കുക</translation>
 <translation id="8984654317541110628">ഫയൽ പങ്കിടൽ URL</translation>
-<translation id="8984872292925913496">നിങ്ങളുടെ കീയുടെ പിൻഭാഗത്ത് 6-അക്ക ഡിജിറ്റ് പിൻ കണ്ടെത്തുക</translation>
 <translation id="8986362086234534611">മറന്നു</translation>
 <translation id="8986494364107987395">Google ലേക്ക് സ്വപ്രേരിതമായി ഉപയോഗ സ്ഥിതിവിവരക്കണക്കുകളും ക്രാഷ് റിപ്പോര്‍ട്ടുകളും അയയ്ക്കുക</translation>
 <translation id="8987927404178983737">മാസം</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 4b21ab12..a7b4460a 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">ऑब्जेक्ट बदलते तेव्हा ते कीबोर्ड फोकससह हायलाइट करा</translation>
 <translation id="1173894706177603556">नाव बदला</translation>
 <translation id="1174073918202301297">शॉर्टकट जोडला</translation>
-<translation id="1174808551768282258">तुमचे Chromebook तुमच्या फोनने अनलॉक करा. <ph name="LINK_BEGIN" />अधिक जाणून घ्या.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;मुद्रण...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> कॉपी करत आहे...</translation>
 <translation id="1177138678118607465">शोध, जाहिराती आणि इतर Google सेवा पर्सनलाइझ करण्यासाठी Google तुमचा ब्राउझिंग इतिहास वापरू शकतो. तुम्ही myaccount.google.com/activitycontrols/search येथे हे कधीही बदलू शकता</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">विराम द्या</translation>
 <translation id="1181037720776840403">काढा</translation>
 <translation id="1183237619868651138">स्थानिक कॅशेमध्ये <ph name="EXTERNAL_CRX_FILE" /> इंस्टॉल करू शकत नाही.</translation>
-<translation id="1183378459020939734">तुमची सिक्युरिटी की जोडण्यासाठी तयार आहात का?</translation>
 <translation id="1185924365081634987">आपण या नेटवर्क त्रुटीचे निराकरण करण्यासाठी <ph name="GUEST_SIGNIN_LINK_START" />अतिथी म्हणून ब्राउझ<ph name="GUEST_SIGNIN_LINK_END" /> देखील करू शकता.</translation>
 <translation id="1186771945450942097">धोकादायक सॉफ्टवेअर काढून टाका</translation>
 <translation id="1187722533808055681">निष्क्रियता समाप्त करणे</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Bluetooth डिव्हाइसेस सापडली नाहीत</translation>
 <translation id="1306606229401759371">सेटिंग्ज बदला</translation>
 <translation id="1307559529304613120">अरेरे! या डिव्हाइससाठी दीर्घ-मुदतीचे API प्रवेश टोकन संचयित करण्यात सिस्टम अयशस्वी झाली.</translation>
+<translation id="1307931752636661898">Linux फायली पाहू शकत नाही</translation>
 <translation id="1313405956111467313">स्वयंचलित प्रॉक्सी कॉन्फिगरेशन</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">आपले बुकमार्क, इतिहास आणि इतर सेटिंग्ज आपल्या Google खात्यामध्ये संकालित केल्या जातील.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">माऊस आणि टचपॅड डिव्हाइस सेटिंग्ज उघडा</translation>
 <translation id="1531004739673299060">अॅप्लिकेशन विंडो</translation>
 <translation id="15373452373711364">मोठा माउस कर्सर</translation>
+<translation id="1538729222189715449">Linux फायली सुरू करत आहे...</translation>
 <translation id="1540605929960647700">डेमो मोड सुरू करा</translation>
 <translation id="1543284117603151572">Edge वरून आयात केले</translation>
 <translation id="1545177026077493356">स्वयंचलित कियोस्क मोड</translation>
@@ -541,7 +541,6 @@
 <translation id="1782530111891678861">स्पर्श HUD मोड बदला</translation>
 <translation id="1784849162047402014">डिव्हाइसवर डिस्क स्‍थान कमी आहे</translation>
 <translation id="1786636458339910689">टीम ड्राइव्ह</translation>
-<translation id="1792161662640298233">तुमच्या सिक्युरिटी की ची पडताळणी करत आहे</translation>
 <translation id="1792619191750875668">विस्तारित प्रदर्शन</translation>
 <translation id="1794791083288629568">या समस्येचे निराकरण करण्यात आम्हाला मदत करण्यासाठी अभिप्राय पाठवा.</translation>
 <translation id="1795214765651529549">क्लासिक वापरा</translation>
@@ -624,7 +623,6 @@
 <translation id="1910721550319506122">सुस्वागतम!</translation>
 <translation id="1914326953223720820">अनझिप सेवा</translation>
 <translation id="1915073950770830761">कॅनेरी</translation>
-<translation id="1915543339027206592">तुमच्या खाते सेटिंग्जवर अवलंबून, तुमचा असिस्टंट अनुभव वेब परिणाम, विनोद आणि स्थानिक माहितीसारख्या गोष्टींपुरता मर्यादित असू शकतो.</translation>
 <translation id="1916502483199172559">डीफॉल्ट लाल अवतार</translation>
 <translation id="1918141783557917887">&amp;जरा लहान</translation>
 <translation id="1919345977826869612">जाहिराती</translation>
@@ -793,6 +791,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_DOMAIN" /> वरील <ph name="PEPPER_PLUGIN_NAME" /> ला तुमचा काँप्युटर अ‍ॅक्सेस करायचा आहे</translation>
 <translation id="2178614541317717477">CA तडजोड</translation>
 <translation id="218070003709087997">किती प्रती प्रिंट करायच्या ते सूचित करण्यासाठी संख्या वापरा (1 ते 999).</translation>
+<translation id="2184515124301515068">जेव्हा साइट आवाज प्ले करेल तेव्हा Chrome ला निवड करू दे (शिफारस केलेले)</translation>
 <translation id="2187895286714876935">सर्व्हर प्रमाणपत्र आयात एरर</translation>
 <translation id="2187906491731510095">विस्तार अपडेट केले</translation>
 <translation id="2188881192257509750"><ph name="APPLICATION" /> उघडा</translation>
@@ -837,6 +836,7 @@
 <translation id="2241053333139545397">अनेक वेबसाइटवर आपला डेटा वाचा आणि बदला</translation>
 <translation id="2242687258748107519">फाईल माहिती</translation>
 <translation id="2243194103992005307">अॅप्स काढण्यासाठी, सेटिंग्ज &gt; अॅप्स किंवा अ‍ॅप्लिकेशन व्यवस्थापकावर जा. नंतर तुम्हाला अनइंस्टॉल करायच्या असलेल्या अॅपवर टॅप करा (अॅप शोधण्‍यासाठी तुम्हाला कदाचित उजवीकडे किंवा डावीकडे स्वाइप करावे लागेल). नंतर अनइंस्टॉल करा किंंवा बंद करावर टॅप करा.</translation>
+<translation id="224940702122312781">हे पेज खूप डेटा वापरेल.</translation>
 <translation id="2249605167705922988">उदा. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">सिस्टम दर्शकासह उघडा</translation>
 <translation id="225163402930830576">नेटवर्क रिफ्रेश करा</translation>
@@ -877,14 +877,13 @@
 <translation id="2307462900900812319">नेटवर्क कॉन्फिगर करा</translation>
 <translation id="230927227160767054">हे पृष्ठ एक सेवा हँडलर इंस्टॉल करू इच्छिते.</translation>
 <translation id="2309620859903500144">या साइटला तुमचे गती किंवा प्रकाश सेन्सर अॅक्सेस करण्यापासून ब्लॉक केले गेले आहे.</translation>
-<translation id="2311075084924370935">तुमचे कॅलेंडर, रिमाइंडर, फ्लाइट आणि बऱ्याच गोष्टींबाबत तुम्हाला मदत करण्यासाठी, तुमच्या असिस्टंट ला वेब आणि अॅप अॅक्टिव्हिटी, डिव्हाइस माहिती, व्हॉइस आणि ऑडिओ अॅक्टिव्हिटी सेटिंग्जची गरज आहे.</translation>
+<translation id="2315414688463285945">Linux फायलींच्या कॉन्फिगरेशनमध्ये एरर. कृपया पुन्हा प्रयत्न करा.</translation>
 <translation id="2315821125498993513">फोनशी कनेक्ट करता आले नाही. <ph name="LINK_BEGIN" />अधिक जाणून घ्या.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">नाही, नको</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% पूर्ण झाले</translation>
 <translation id="2318143611928805047">कागदाचा आकार</translation>
 <translation id="2318817390901984578">Android अॅप्स वापरण्यासाठी, आपले <ph name="DEVICE_TYPE" /> चार्ज करा आणि अपडेट करा.</translation>
 <translation id="2318923050469484167">वर्तमान गुप्त सत्र (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128"><ph name="APP_NAME" /> सह तुमची सिक्युरिटी की वापरा</translation>
 <translation id="2322193970951063277">शीर्षक आणि अधोलेख</translation>
 <translation id="2325650632570794183">हा फाईल प्रकार समर्थित नाही. कृपया या प्रकारची फाईल उघडू शकणारा अ‍ॅप शोधण्यासाठी Chrome वेब स्टोअरला भेट द्या.</translation>
 <translation id="2326931316514688470">&amp;अ‍ॅप रीलोड करा</translation>
@@ -918,7 +917,6 @@
 <translation id="2367199180085172140">फाइल शेअर जोडा</translation>
 <translation id="2367972762794486313">अ‍ॅप्स दर्शवा</translation>
 <translation id="2369536625682139252">कुकी वगळता <ph name="SITE" /> द्वारे स्टोअर केलेला सर्व डेटा हटवला जाईल.</translation>
-<translation id="237058345584060620">या डिव्हाइसला तुमची की जोडा जेणेकरुन तुम्ही ते तुमच्या खात्यामध्ये साइन इन करण्यासाठी वापरू शकता</translation>
 <translation id="2371076942591664043">&amp;पूर्ण झाल्यानंतर उघडा</translation>
 <translation id="2377319039870049694">सूची व्‍ह्यूवर स्विच करा</translation>
 <translation id="2377667304966270281">हार्ड फॉल्ट</translation>
@@ -985,7 +983,6 @@
 <translation id="248861575772995840">तुमचा फोन आढळला नाही. तुमच्या <ph name="DEVICE_TYPE" /> चे ब्लुटूथ चालू असल्याची खात्री करा. &lt;a&gt;आणखी जाणून घ्या&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;फोल्डर जोडा...</translation>
 <translation id="249113932447298600">क्षमस्व, <ph name="DEVICE_LABEL" /> डिव्हाइस आत्ता समर्थित नाही.</translation>
-<translation id="2492040222276243256">तुमच्या सिक्युरिटी की वरील बटण कमीतकमी ५ सेकंदांपर्यंत दाबा आणि धरून ठेवा</translation>
 <translation id="2493021387995458222">"एका वेळी एक शब्द" निवडा</translation>
 <translation id="249303669840926644">नोंदणी पूर्ण करू शकलो नाही</translation>
 <translation id="2495777824269688114">आणखी वैशिष्ट्ये शोधा किंवा उत्तरे मिळवा. मदतीसाठी “?” निवडा.</translation>
@@ -1055,6 +1052,7 @@
 <translation id="2580924999637585241">एकूण: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">दीर्घ</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (प्लॅटफॉर्म <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">हा टॅब तुमची स्क्रीन शेअर करत आहे.</translation>
 <translation id="2586657967955657006">क्लिपबोर्ड</translation>
 <translation id="2586672484245266891">कृपया एक लहान URL टाका</translation>
 <translation id="2587922270115112871">पर्यवेक्षी वापरकर्ता तयार करण्याने Google खाते तयार होत नाही आणि त्यांच्या सेटिंग्ज आणि डेटा
@@ -1090,7 +1088,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> <ph name="USAGE" /> MB डिस्क स्थान वापरत आहे.</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />" काढायचे?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> स्थापना पूर्ण करू शकत नाही, परंतु ते त्याच्या डिस्क प्रतिमेवरून चालत राहील.</translation>
-<translation id="2633326789677284179">तुमच्या की च्या मागील बाजूस प्रिंट केलेले नाव शोधा</translation>
 <translation id="2635276683026132559">साइन करत आहे</translation>
 <translation id="2636625531157955190">Chrome प्रतिमेवर प्रवेश करू शकत नाही.</translation>
 <translation id="2638087589890736295">संकालन प्रारंभ करण्यासाठी सांकेतिक वाक्यांश आवश्यक आहे</translation>
@@ -1258,7 +1255,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> जोडा...</translation>
 <translation id="2874343608108773609">तुमच्या सर्व डिव्हाइसवर तुमच्या सेटिंग्ज मिळवण्यासाठी, Chrome मध्ये साइन इन करा.</translation>
 <translation id="2875698561019555027">(Chrome एरर पेज)</translation>
-<translation id="2876441201733326392">USB सिक्युरिटी की वापरा</translation>
 <translation id="288042212351694283">आपल्या सर्वंकष 2 रा घटक डिव्हाइसेसवर प्रवेश करा</translation>
 <translation id="2881966438216424900"> अखेरचा प्रवेशः</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> रीस्टार्ट होईल आणि क्षणभरात रीसेट होईल</translation>
@@ -1326,7 +1322,6 @@
 <translation id="2982970937345031">अनामिकपणे अहवाल द्या</translation>
 <translation id="2984337792991268709">आज <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">MIDI डिव्हाइसचे पूर्ण नियंत्रण असण्यापासून हे पृष्ठ अवरोधित केले गेले आहे.</translation>
-<translation id="2988599644347283908">टीप: ही सेटिंग्ज नियंत्रित करत असलेला डेटा तुम्हाला पर्सनलाइझ केलेला अनुभव आणि उपयुक्त जाहिराती देण्यासाठी सेव्ह केला जाऊ शकतो आणि तुम्ही साइन इन केलेल्या कोणत्याही Google सेवेमध्ये वापरला जाऊ शकतो. तुम्ही account.google.com येथे तुमचा डेटा पाहू शकता, तो हटवू शकता आणि तुमची सेटिंग्ज बदलू शकता.</translation>
 <translation id="2989474696604907455">संलग्न केले नाही</translation>
 <translation id="2989786307324390836">DER-एन्कोडेड बायनरी, एकल प्रमाणपत्र</translation>
 <translation id="2993517869960930405">अॅप माहिती</translation>
@@ -1379,7 +1374,6 @@
 <translation id="304826556400666995">टॅब सशब्द करा</translation>
 <translation id="3053013834507634016">प्रमाणपत्र की वापर</translation>
 <translation id="3057861065630527966">आपले फोटो आणि व्हिडिओंचा बॅकअप घ्या</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">बोलण्यासाठी निवडा सुरू करा</translation>
 <translation id="3061707000357573562">पॅच सेवा</translation>
 <translation id="3064410671692449875">अपुरा डेटा</translation>
@@ -1408,7 +1402,6 @@
 <translation id="3090819949319990166">बाह्य crx फाईल <ph name="TEMP_CRX_FILE" /> वर कॉपी करू शकत नाही.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" जोडले</translation>
 <translation id="3101709781009526431">तारीख आणि वेळ</translation>
-<translation id="3104900172193317662">तुमच्या सिक्युरिटी की च्या वापरास अनुमती द्या</translation>
 <translation id="310671807099593501">साइट ब्लूटूथ वापरत आहे</translation>
 <translation id="3115128645424181617">तुमचा फोन आढळला नाही. तो सोयीस्कर असल्याची आणि ब्लुटूथ चालू असल्याची खात्री करा.</translation>
 <translation id="3115147772012638511">कॅशेसाठी प्रतीक्षा करीत आहे...</translation>
@@ -1492,7 +1485,6 @@
 <translation id="3251759466064201842">&lt;प्रमाणपत्राचा भाग नाही&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> फायलींसाठी डीफॉल्ट अॅप्लिकेशन निवडा:</translation>
 <translation id="3254516606912442756">आपोआप टाइमझोन शोधणे बंद केले आहे</translation>
-<translation id="3254772308201947812">होय, मला मान्य आहे</translation>
 <translation id="3264544094376351444">Sans-serif font</translation>
 <translation id="3264547943200567728">आपल्या Chromebox चे नेटवर्क सेट करण्यात अयशस्वी</translation>
 <translation id="3264582393905923483">संदर्भ</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">यानुसार क्रमाने लावा</translation>
 <translation id="3737274407993947948">Linux इंस्टॉल करताना एरर...</translation>
 <translation id="3737536731758327622">आपले डाउनलोड येथे दिसतील</translation>
-<translation id="3738671331307774213">तुमची ओळख पडताळणी तुमचा खाजगी डेटा संरक्षित करण्यात मदत करेल</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> उघडायचा?</translation>
 <translation id="3741158646617793859">आता <ph name="DEVICE_NAME" /> Admin Console मध्‍ये दिसेल</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: सिंक करणे थांबवले</translation>
 <translation id="3860381078714302691">Hangouts Meetमध्ये तुमचे स्वागत आहे</translation>
+<translation id="3861241522664181545">पेज थांबवले.</translation>
 <translation id="3862134173397075045">Chrome मधील कास्ट अनुभवावर आपले स्वागत आहे!</translation>
 <translation id="3862788408946266506">'kiosk_only' मॅनिफेस्ट विशेषता असलेले अ‍ॅप Chrome OS कियोस्क मोडमध्ये इंस्टॉल केले जाणे आवश्यक आहे</translation>
 <translation id="3865414814144988605">रिझोल्यूशन</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">हे सुरू करण्यासाठी, तुमची सिंक पासफ्रेझ काढून टाकण्यासाठी <ph name="BEGIN_LINK" />सिंक रीसेट करा<ph name="END_LINK" /></translation>
 <translation id="3878840326289104869">पर्यवेक्षी वापरकर्ता तयार करत आहे</translation>
 <translation id="3879748587602334249">डाउनलोड व्यवस्थापक</translation>
-<translation id="3880709822663530586">जेव्हा तुमच्या डिव्हाइसचे ब्लूटूथ सुरू असेल तेव्हाच तुमची सिक्युरिटी की कार्य करते</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> सोबत टिपा घेणे</translation>
 <translation id="3892414795099177503">OpenVPN / L2TP जोडा...</translation>
 <translation id="3893536212201235195">आपल्या प्रवेशयोग्यता सेटिंग्ज जोडा आणि बदला</translation>
@@ -2069,6 +2060,7 @@
 <translation id="4096824249111507322">सुरक्षित मॉड्यूल तयार केले जात आहे, कृपया थांबा (यासाठी काही मिनिटे लागू शकतात)...</translation>
 <translation id="4099060993766194518">डीफॉल्ट शोध इंजिन पुनर्संचयित करायचे?</translation>
 <translation id="4100733287846229632">डिव्हाइस वरील स्थान खूप कमी आहे</translation>
+<translation id="4103091233824664032">स्क्रीन लॉक कॉन्फिगर करण्यासाठी तुमचा पासवर्ड एंटर करा आणि साइन इन करा</translation>
 <translation id="4104163789986725820">नि&amp;र्यात करा...</translation>
 <translation id="4105563239298244027">Google ड्राइव्हसह 1 TB विनामूल्य मिळवा</translation>
 <translation id="4107048419833779140">स्टोरेज डिव्हाइस ओळखा आणि बाहेर काढा</translation>
@@ -2089,7 +2081,6 @@
 <translation id="4136203100490971508">सूर्योदयाच्या वेळी रात्रीचा प्रकाश आपोआप बंद होईल</translation>
 <translation id="4138267921960073861">साइन-इन स्क्रीनवर वापरकर्ता नावे आणि फोटो दर्शवा</translation>
 <translation id="4144218403971135344">आणखी चांगल्या दर्जाचे व्हिडिओ मिळवा आणि बॅटरी लाइफ वाचवा. व्हिडिओ फक्त तुमच्या Cast सुरू केलेल्या स्क्रीनवर प्ले होईल.</translation>
-<translation id="414599683948988413">USB सह तुमची सिक्युरिटी की वापरा</translation>
 <translation id="4146026355784316281">नेहमी सिस्टम दर्शकासह उघडा</translation>
 <translation id="4146785383423576110">रीसेट करा आणि साफ करा</translation>
 <translation id="4147897805161313378">Google फोटो</translation>
@@ -2224,6 +2215,7 @@
 <translation id="4394049700291259645">अक्षम करा</translation>
 <translation id="4400367121200150367">ज्या साइट पासवर्ड सेव्ह करत नाहीत त्या येथे दिसून येतील</translation>
 <translation id="4400632832271803360">शीर्ष-पंक्ती की चे वर्तन स्विच करण्यासाठी लाँचर की धरून ठेवा.</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">मदत</translation>
 <translation id="4409697491990005945">समास</translation>
 <translation id="4411578466613447185">कोड साइनर</translation>
@@ -2272,6 +2264,7 @@
 <translation id="4480590691557335796">Chrome तुमच्या काँप्युटरवरील नुकसानकारक सॉफ्टवेअर शोधू शकते आणि ते काढू शकते</translation>
 <translation id="4481530544597605423">जोडणी वेगळी केलेली डिव्हाइस</translation>
 <translation id="4482194545587547824">शोध आणि इतर Google सेवा वैयक्तीकृत करण्यासाठी Google आपल्या ब्राउझिंग इतिहासाचा वापर करू शकते</translation>
+<translation id="4493287891836751813">Google असिस्टंटला भेटा</translation>
 <translation id="4495419450179050807">या पृष्ठावर दर्शवू नका</translation>
 <translation id="4499718683476608392">एका क्लिकमध्ये फॉर्म भरण्यासाठी क्रेडिट कार्ड ऑटोफिल सुरू करा</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> क्रॅश झाले आहे</translation>
@@ -2432,6 +2425,7 @@
 <translation id="474217410105706308">टॅब निःशब्द करा</translation>
 <translation id="4742746985488890273">शेल्फवर पिन करा</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />अॅप्लिकेशन कशी अपडेट करायची ते शिका<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">संदेश</translation>
 <translation id="4746971725921104503">आपण आधीपासूनच त्या नावाने एक वापरकर्ता व्यवस्थापित करत आहात असे दिसते. आपण या डिव्हाइसवर <ph name="LINK_START" />आयात<ph name="USER_DISPLAY_NAME" /> करू इच्छिता<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Chrome वेब स्टोअर वरून विस्तार आवश्यक आहे</translation>
 <translation id="4750394297954878236">सूचना</translation>
@@ -2473,6 +2467,7 @@
 <translation id="4821935166599369261">&amp;प्रोफाइलिंग सक्षम</translation>
 <translation id="4823484602432206655">वापरकर्ता आणि डिव्हाइस सेटिंग्ज वाचा आणि बदला</translation>
 <translation id="4823651846660089135">डिव्हाइस केवळ वाचनीय आहे</translation>
+<translation id="4823955295535347797">तुमचा असिस्टंट कधीही अॅक्सेस करण्यासाठी, तुमची स्क्रीन सुरू असताना "OK Google" म्हणा.</translation>
 <translation id="4828937774870308359">ऑस्ट्रेलियन</translation>
 <translation id="4829768588131278040">पिन सेट करा</translation>
 <translation id="4830502475412647084">OS अपडेट इंस्टॉल करत आहे</translation>
@@ -2513,6 +2508,7 @@
 <translation id="4876273079589074638">आमच्या इंजिनियरना या क्रॅशची तपासणी करून त्याचे निराकरण करण्यात मदत करा. तुम्हाला शक्य असल्यास नेमक्या पायर्‍यांची एक सूची तयार करा. कोणताही तपशील कमी लेखण्यासारखा नसतो!</translation>
 <translation id="4876895919560854374">स्क्रीन लॉक आणि अनलॉक करा</translation>
 <translation id="4877017884043316611">Chromebox ने जोडा</translation>
+<translation id="4879491255372875719">आपोआप (डीफॉल्ट)</translation>
 <translation id="4880214202172289027">व्हॉल्यूम स्लायडर</translation>
 <translation id="4880328057631981605">प्रवेशबिंदूचे नाव</translation>
 <translation id="4880520557730313061">स्वयं-निश्चित</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">वर</translation>
 <translation id="5100114659116077956">तुमच्यासाठी नवीनतम वैशिष्ट्ये आणण्यासाठी, आपला Chromebox अपडेट करण्‍याची आवश्यकता आहे.</translation>
 <translation id="5101042277149003567">सर्व बुकमार्क उघडा</translation>
-<translation id="5104546332954397226">सिक्युरिटी की म्हणून तुमचा फोन वापरा</translation>
 <translation id="5105855035535475848">पिन टॅब</translation>
 <translation id="5108967062857032718">सेटिंग्ज - Android अॅप्स काढा</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">बंद केलेले टॅब पु&amp;न्हा उघडा</translation>
 <translation id="52912272896845572">खाजगी की फाइल अवैध आहे.</translation>
 <translation id="529175790091471945">हे डीव्हाइस स्वरूपित करा</translation>
-<translation id="5292195676005197571">सर्वाधिक की वापरण्यासाठी, फक्त बटण दाबा</translation>
 <translation id="5293170712604732402">सेटिंग्ज त्यांच्या मूळ डीफॉल्टवर पुनर्संचयित करा</translation>
 <translation id="5297082477358294722">पासवर्ड सेव्ह केलेले आहेत. तुमच्या <ph name="SAVED_PASSWORDS_STORE" /> मध्ये सेव्ह केलेले पासवर्ड पाहा आणि व्यवस्थापित करा.</translation>
 <translation id="5298219193514155779">द्वारा निर्मित थीम</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">मी सहमत आहे</translation>
 <translation id="532943162177641444">तुम्ही या डिव्हाइसने वापरू शकत असलेले मोबाइल हॉटस्पॉट सेट अप करण्यासाठी तुमच्या <ph name="PHONE_NAME" />वरील सूचनेवर टॅप करा.</translation>
 <translation id="5329858601952122676">&amp;हटवा</translation>
+<translation id="5329945517224105597">तुमच्या स्क्रीनवर काय आहे त्या संबंधात तुमचा असिस्टंट अधिक उपयुक्त आणि विशेष क्रिया सुचवू शकतो. तुम्ही ही असिस्टंट सेटिंग्ज बदलू शकता</translation>
 <translation id="5330145655348521461">या फायली एका भिन्न डेस्कटॉपवर उघडलेल्या आहेत. या पाहण्यासाठी <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) वर हलवा.</translation>
 <translation id="5330512191124428349">माहिती मिळवा</translation>
 <translation id="5331069282670671859">तुमच्याकडे या श्रेणीतील कोणतीही प्रमाणपत्रे नाहीत</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">साइटना ध्वनी प्ले करण्याची परवानगी द्या</translation>
 <translation id="5390284375844109566">अनुक्रमित डेटाबेस</translation>
 <translation id="5390743329570580756">यासाठी पाठवा</translation>
-<translation id="5392327114396848796">बिल्ट-इन सिक्युरिटी की वापरा</translation>
 <translation id="5397794290049113714">आपण</translation>
 <translation id="5398572795982417028">निषिद्ध पृष्ठ संदर्भ, मर्यादा <ph name="MAXIMUM_PAGE" /> आहे</translation>
 <translation id="5398772614898833570">जाहिराती ब्लॉक केल्या</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    संग्रहण किंवा आभासी डिस्कवरील सर्व फायली बंद करा, नंतर प्रयत्न करा.</translation>
 <translation id="5687326903064479980">टाइमझोन</translation>
+<translation id="568824803367507355">"Ok Google" शोध</translation>
 <translation id="5689516760719285838">स्थान</translation>
 <translation id="56907980372820799">डेटा चा दुवा जोडा</translation>
 <translation id="5691511426247308406">कुटुंब</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - कॅमेरा किंवा मायक्रोफोन रेकॉर्डिंग</translation>
 <translation id="5835754902560991078">अत्यंत कमी (0.6s)</translation>
 <translation id="5838456317242088717">वर्तमान गुप्त सत्र</translation>
-<translation id="5842053879378944309"><ph name="APP_NAME" /> सह USB सिक्युरिटी की वापरा</translation>
 <translation id="5842497610951477805">Bluetooth सक्षम आहे</translation>
 <translation id="5843250171025351504">तुमच्या प्रशासकाने निर्दिष्ट केलेल्या किमान क्लायंट आवृत्तीसह तुमचे डिव्हाइस आता सुसंगत नाही. कृपया लॉग इन करण्यासाठी अपडेट करा.</translation>
 <translation id="5846929185714966548">टॅब 4</translation>
@@ -3492,7 +3486,6 @@
 <translation id="6317318380444133405">आता सपोर्ट करत नाही.</translation>
 <translation id="6317369057005134371">अॅप्लिकेशन विंडोसाठी प्रतीक्षा करत आहे...</translation>
 <translation id="6318407754858604988">डाउनलोड सुरू झाले</translation>
-<translation id="6322653941595359182">तुमच्या Chromebook वरून एसएमएस पाठवा आणि मिळवा</translation>
 <translation id="6324916366299863871">शॉर्टकट संपादित करा</translation>
 <translation id="6325191661371220117">स्वयं-लाँच अक्षम करा</translation>
 <translation id="6326175484149238433">Chrome मधून काढा</translation>
@@ -3536,6 +3529,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />सिस्टम माहिती<ph name="END_LINK1" /> आणि <ph name="BEGIN_LINK2" />मेट्रिक्स<ph name="END_LINK2" /> पाठवा</translation>
 <translation id="6397094776139756010">सिंक आणि पर्सनलायझेशन पर्याय</translation>
 <translation id="6397592254427394018">सर्व बुकमार्क्स &amp;गुप्त विंडो मध्ये उघडा</translation>
+<translation id="639777613761517128">$१ सह फायली उघडण्यासाठी, प्रथम Linux फायली फोल्डरमध्ये कॉपी करा.</translation>
 <translation id="6398715114293939307">Google Play स्टोअर काढा</translation>
 <translation id="6398765197997659313">पूर्ण स्क्रीनमधून निर्गमन करा</translation>
 <translation id="6399774419735315745">गुप्तचर</translation>
@@ -3561,7 +3555,6 @@
 <translation id="642282551015776456">हे नाव एखाद्या फाइल किंवा फोल्डरचे नाव म्हणून वापरले जाऊ शकत नाही</translation>
 <translation id="642469772702851743">हे डिव्हाइस (SN: <ph name="SERIAL_NUMBER" />) मालकाने लॉक केले होते.</translation>
 <translation id="6426200009596957090">ChromeVox सेटिंग्‍ज उघडा</translation>
-<translation id="6427415464407526111">तुमची सिक्युरिटी की निवडा</translation>
 <translation id="6429384232893414837">अपडेट एरर</translation>
 <translation id="6430814529589430811">Base64-encoded ASCII, एकल प्रमाणपत्र</translation>
 <translation id="6431217872648827691"><ph name="TIME" />
@@ -3720,7 +3713,6 @@
 <translation id="6655190889273724601">विकसक मोड</translation>
 <translation id="6655458902729017087">खाती लपवा</translation>
 <translation id="6657585470893396449">पासवर्ड</translation>
-<translation id="6658023813581644008">साइन-इनसाठी Smart Lock सेट करण्याकरिता, तुमचा पासवर्ड एंटर करा</translation>
 <translation id="6659213950629089752">हे पृष्ठ "<ph name="NAME" />" विस्ताराद्वारे झूम केले होते</translation>
 <translation id="6659594942844771486">टॅब</translation>
 <translation id="6664237456442406323">दुर्दैवाने, आपला कॉंप्युटर एका विकृत हार्डवेअर आयडी सह कॉन्फिगर केला आहे. हे नवीनतम सुरक्षितता निराकरणे अपडेट करण्यापासून Chrome OS ला प्रतिबंध करते आणि आपल्या कॉंप्युटरावर <ph name="BEGIN_BOLD" />दुर्भावनापूर्ण आक्रमणांमुळे सहज परिणाम होऊ शकतो<ph name="END_BOLD" />.</translation>
@@ -3856,7 +3848,6 @@
 <translation id="6885771755599377173">सिस्टम माहिती पूर्वावलोकन</translation>
 <translation id="6886871292305414135">नवीन &amp;टॅबमध्ये दुवा उघडा</translation>
 <translation id="6892812721183419409"><ph name="USER" /> म्हणून दुवा उघडा</translation>
-<translation id="6896398788631624004">तुमची सिक्युरिटी की प्लग इन करा आणि अ‍ॅक्टिव्हेट करा</translation>
 <translation id="6896758677409633944">कॉपी करा</translation>
 <translation id="6898440773573063262">कियोस्क अॅप्लिकेशन आता या डिव्हाइसवर स्वयं-लाँच करण्यासाठी कॉन्फिगर केले जाऊ शकतात.</translation>
 <translation id="6898699227549475383">संस्थात्मक (O)</translation>
@@ -3875,6 +3866,7 @@
 <translation id="6915804003454593391">वापरकर्ता:</translation>
 <translation id="6916590542764765824">विस्तार व्यवस्थापित करा</translation>
 <translation id="6920989436227028121">नियमित टॅब म्हणून वापरा</translation>
+<translation id="6921709132208495314">या पेजवर डेटा वापरणे थांबवा</translation>
 <translation id="6922128026973287222">Google डेटा बचतकर्ता वापरून डेटा सेव्ह करा आणि अधिक जलद ब्राउझ करा. अधिक जाणून घेण्यासाठी क्लिक करा.</translation>
 <translation id="6923132443355966645">स्क्रोल करा / क्लिक करा</translation>
 <translation id="6930242544192836755">कालावधी</translation>
@@ -3897,6 +3889,7 @@
 <translation id="6965382102122355670">ठीक आहे</translation>
 <translation id="6965648386495488594">पोर्ट</translation>
 <translation id="6965978654500191972">डिव्हाइस</translation>
+<translation id="6968288415730398122">स्क्रीन लॉक कॉन्फिगर करण्यासाठी आपला पासवर्ड एंटर करा</translation>
 <translation id="6970480684834282392">प्रारंभ वेळ</translation>
 <translation id="6970856801391541997">विशिष्ट पेज प्रिंट करा</translation>
 <translation id="6972180789171089114">ऑडिओ/व्हिडिओ</translation>
@@ -3907,6 +3900,7 @@
 <translation id="6978121630131642226">शोध इंजिने</translation>
 <translation id="6978611942794658017">ही फाईल Windows सॉफ्‍टवेअर वापरून PC साठी डीझाइन केली आहे. ही Chrome OS चालविणार्‍या आपल्‍या डिव्‍हाइससह सुसंगत नाही. कृपया एका योग्य प्रतिस्थापन अ‍ॅपसाठी Chrome वेब स्‍टोअर शोधा.</translation>
 <translation id="6979158407327259162">Google ड्राइव्ह</translation>
+<translation id="6979440798594660689">निःशब्द करा (डीफॉल्ट)</translation>
 <translation id="6979737339423435258">पूर्णवेळ</translation>
 <translation id="6980462514016882061">शोध, जाहिरात आणि इतर Google सेवा वैयक्तीकृत करण्यासाठी Google आपल्या ब्राउझिंग इतिहासाचा वापर करू शकते</translation>
 <translation id="6981982820502123353">प्रवेशयोग्यता</translation>
@@ -4055,6 +4049,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />ही तुमच्या डिव्हाइसबद्दल आणि तुम्ही ती कशी वापरता याविषयी सामान्य माहिती आहे (जसे की बॅटरीचा स्तर, अ‍ॅप वापर आणि नेटवर्क कनेक्टिव्हिटी). Google ची उत्पादने आणि सेवा सर्वांसाठी सुधारण्यास डेटा वापरला जाईल. काही एकत्रित माहितीची भागीदारांना मदत होईल, जसे की Android डेव्हलपर, त्यांची अ‍ॅप्स आणि उत्पादने देखील अधिक चांगली बनवतात.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />हे वैशिष्ट्य बंद केल्याने सिस्टम अपडेट आणि सुरक्षा सारख्या आवश्यक सेवांसाठी आवश्यक माहिती पाठवण्यासाठी तुमच्या डिव्हाइसच्या क्षमतेवर परिणाम होत नाही.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />तुम्ही सेटिंग्ज &gt; Google वरून हे वैशिष्ट्य नियंत्रित करू शकता. मेनूमधून वापर आणि निदान निवडा.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">आम्हाला या डिव्हाइसवर वापरता येतील अशी <ph name="NUMBER_OF_APPS" /> अॅप्स तुमच्या खात्यात सापडली आहेत.</translation>
 <translation id="7199158086730159431">म&amp;दत मिळवा</translation>
 <translation id="7200083590239651963">काँफिगरेशन निवडा</translation>
 <translation id="720110658997053098">हे डिव्हाइस कायमचे कियोस्क मोडमध्ये ठेवा</translation>
@@ -4075,7 +4070,6 @@
 <translation id="7228523857728654909">स्क्रीन लॉक आणि साइन इन</translation>
 <translation id="7229570126336867161">EVDO आवश्यक आहे</translation>
 <translation id="7230787553283372882">आपला मजकूर आकार सानुकूलित करा</translation>
-<translation id="7231589788477569369">या सेटिंग्जसोबत संपूर्ण असिस्टंट अनुभव मिळवा</translation>
 <translation id="7232750842195536390">नाव बदलण्यात अयशस्वी</translation>
 <translation id="7234406375359457793">शेअर माउंट करताना एरर आली. निर्दिष्ट शेअरला सपोर्ट नाही.</translation>
 <translation id="7238585580608191973">SHA-256 बोटाचा ठसा</translation>
@@ -4085,7 +4079,6 @@
 <translation id="7243632151880336635">साफ करा आणि साइन आउट करा</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (उत्कृष्‍ट)</translation>
 <translation id="7246339268451149667">फिंगरप्रिंट अनलॉक सक्षम करायचे?</translation>
-<translation id="7246489301073081944">बाहेर पडण्यासाठी |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| धरून ठेवा</translation>
 <translation id="7246947237293279874">FTP प्रॉक्सी</translation>
 <translation id="725109152065019550">क्षमस्व, आपल्या प्रशासकाने आपल्या खात्यावरील बाह्य संचयन अक्षम केले आहे.</translation>
 <translation id="7253521419891527137">&amp;अधिक जाणून घ्या</translation>
@@ -4238,7 +4231,6 @@
 <translation id="7489605380874780575">पात्रता तपासा</translation>
 <translation id="749028671485790643">व्यक्ती <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC पत्ता</translation>
-<translation id="7490950320178383728">तुमची सिक्युरिटी की ब्लूटूथसह वापरा</translation>
 <translation id="7491962110804786152">टॅब</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> विस्तार पासवर्ड आणि क्रेडिट कार्ड नंबर यासारख्या वैयक्तिक डेटासह आपण टाइप करता तो सर्व मजकूर गोळा करू शकतो.</translation>
 <translation id="7494065396242762445">Windows सेटिंग्ज उघडा</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">या ड्राइव्ह फायली अद्याप सामायिक केल्या नाहीत</translation>
 <translation id="7851457902707056880">साइन इन केवळ मालकाच्या खात्यावर प्रतिबंधित आहे. कृपया रिबूट करा आणि मालक खात्यासह साइन इन करा. मशीन 30 सेकंदांमध्ये स्वयं रिबूट होईल.</translation>
 <translation id="7851716364080026749">नेहमी कॅमेरा आणि मायक्रोफोन प्रवेश अवरोधित करा</translation>
-<translation id="7851816139220202929">तुमची सिक्युरिटी की NFC सह वापरा</translation>
 <translation id="7853747251428735">अधिक साध&amp;ने</translation>
 <translation id="7856006446339184955">सिस्टम डेटा पाठवा. हे डिव्हाइस सध्या आपोआप निदान आणि डिव्हाइस आणि अ‍ॅप वापर डेटा Google ला पाठवेल. ही <ph name="BEGIN_LINK1" />सेटिंग<ph name="END_LINK1" /> मालकाद्वारे लागू केली आहे. तुम्ही अतिरिक्त वेब आणि अ‍ॅप अ‍ॅक्टिव्हिटी सुरू केल्यास, ही माहिती तुमच्या खात्यासह स्टोअर केली जाईल जेणेकरून तुम्ही ती माझी अ‍ॅक्टिव्हिटीमध्ये व्यवस्थापित करू शकाल. <ph name="BEGIN_LINK2" />अधिक जाणून घ्या<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">अपवाद जोडा</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">अयोग्य वापरकर्तानावामुळे किंवा संकेतशब्दामुळे PPP प्रमाणीकरण अयशस्वी झाले</translation>
 <translation id="7974566588408714340"><ph name="EXTENSIONNAME" /> वापरून पुन्हा प्रयत्न करून पहा</translation>
 <translation id="7974936243149753750">ओव्हरस्कॅन</translation>
+<translation id="79766959863778284">XR डिव्हाइस सेवा वेगळी करते</translation>
 <translation id="7977551819349545646">Chromebox अपडेट करत आहे...</translation>
 <translation id="7978412674231730200">खाजगी की</translation>
 <translation id="7978450511781612192">हे तुम्हाला तुमच्या Google खात्यामधून साइन आउट करेल. तुमचे बुकमार्क, इतिहास, पासवर्ड आणि बरेच काही आता सिंक होणार नाही.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">प्रिंटर जोडा</translation>
 <translation id="8032244173881942855">टॅब कास्ट करण्यात अक्षम.</translation>
 <translation id="8033827949643255796">निवडलेले</translation>
-<translation id="8033958968890501070">वेळ संपली</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{सर्व गुप्त विंडोमध्ये उघडा}=1{सर्व गुप्त विंडोमध्ये उघडा}one{सर्व (#) गुप्त विंडोमध्ये उघडा}other{सर्व (#) गुप्त विंडोमध्ये उघडा}}</translation>
 <translation id="8037117027592400564">संकालित भाषण वापरून बोललेला सर्व मजकूर वाचा</translation>
 <translation id="8037357227543935929">विचारा (डीफॉल्ट)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">तुमची संपूर्ण स्क्रीन</translation>
 <translation id="8322814362483282060">या पृष्ठाला आपल्या मायक्रोफोनवर प्रवेश करण्यापासून अवरोधित केले गेले आहे.</translation>
 <translation id="8326478304147373412">PKCS #7, प्रमाणपत्र श्रृंखला</translation>
+<translation id="8327039559959785305">Linux फायलींमध्ये एरर आली. कृपया पुन्हा प्रयत्न करा.</translation>
 <translation id="8329978297633540474">साधा मजकूर</translation>
 <translation id="8335587457941836791">शेल्फपासून अनपिन करा</translation>
 <translation id="8336153091935557858">काल <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">बदल करा</translation>
 <translation id="8425492902634685834">टास्कबारवर पिन करा</translation>
 <translation id="8425755597197517046">पे&amp;स्ट करा आणि शोधा</translation>
-<translation id="8426117172745886547">बाहेर पडण्यापूर्वी चेतावणी द्या (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">चालू करत आहे</translation>
 <translation id="8427292751741042100">कोणत्याही होस्टवर एंबेड होण्यासारखे आहे</translation>
 <translation id="8428213095426709021">सेटिंग्ज</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">परवाने</translation>
 <translation id="8553342806078037065">इतर लोक व्यवस्थापित करा</translation>
 <translation id="8554899698005018844">कोणतीही भाषा नाही</translation>
-<translation id="8557347704037207368">Android वेब मेसेजेस वरून तुम्हाला सूचना पाठवते</translation>
 <translation id="855773602626431402">या पृष्ठावर चालण्यापासून सॅन्डबॉक्स न केलेल्या प्लगिनला प्रतिबंधित करण्यात आले.</translation>
 <translation id="8557930019681227453">मॅनिफेस्ट</translation>
 <translation id="8559694214572302298">इमेज डीकोडर</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">यापुढे सपोर्ट नाही</translation>
 <translation id="8714838604780058252">पार्श्वभूमी ग्राफिक्स</translation>
 <translation id="8715480913140015283">बॅकग्राउंड टॅब तुमचा कॅमेरा वापरत आहे</translation>
+<translation id="8716931980467311658">या <ph name="DEVICE_TYPE" /> वरून तुमच्या Linux फायलींच्या फोल्डरमधील सर्व Linux अॅप्लिकेशन आणि डेटा हटवायचा?</translation>
 <translation id="8719653885894320876"><ph name="PLUGIN_NAME" /> डाउनलोड करणे अयशस्वी झाले</translation>
 <translation id="8723829621484579639">यासाठी गुप्त सबफ्रेम: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">फोल्डरमध्ये &amp;दर्शवा</translation>
@@ -5207,7 +5198,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - क्रॅश झाले</translation>
 <translation id="8983677657449185470">सुरक्षित ब्राउझिंग सुधारण्यात मदत करा</translation>
 <translation id="8984654317541110628">फाइल शेअर URL</translation>
-<translation id="8984872292925913496">तुमच्या की च्या मागे दिलेला सहा अंकी पिन शोधा</translation>
 <translation id="8986362086234534611">विसरा</translation>
 <translation id="8986494364107987395">Google ला वापर आकडेवारी आणि क्रॅश अहवाल स्वयंचलितपणे पाठवा</translation>
 <translation id="8987927404178983737">महिना</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index aaffd18..e048ff8 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Serlahkan objek dengan fokus papan kekunci apabila objek berubah</translation>
 <translation id="1173894706177603556">Namakan semula</translation>
 <translation id="1174073918202301297">Pintasan ditambahkan</translation>
-<translation id="1174808551768282258">Buka kunci Chromebook dengan telefon anda. <ph name="LINK_BEGIN" />Ketahui lebih lanjut.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Cetak...</translation>
 <translation id="117624967391683467">Menyalin <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google mungkin menggunakan sejarah penyemakan imbas anda untuk memperibadikan Carian, iklan dan perkhidmatan Google yang lain. Anda boleh menukar tetapan ini pada bila-bila masa di myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Jeda</translation>
 <translation id="1181037720776840403">Alih keluar</translation>
 <translation id="1183237619868651138">Tidak boleh memasang <ph name="EXTERNAL_CRX_FILE" /> dalam cache tempatan.</translation>
-<translation id="1183378459020939734">Bersedia untuk menggandingkan Kunci Keselamatan anda?</translation>
 <translation id="1185924365081634987">Anda boleh cuba <ph name="GUEST_SIGNIN_LINK_START" />semak imbas sebagai tetamu<ph name="GUEST_SIGNIN_LINK_END" /> untuk membetulkan ralat rangkaian ini juga.</translation>
 <translation id="1186771945450942097">Alih keluar perisian berbahaya</translation>
 <translation id="1187722533808055681">Bangkit daripada melahu</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Peranti Bluetooth tidak ditemui</translation>
 <translation id="1306606229401759371">Tukar tetapan</translation>
 <translation id="1307559529304613120">Op!  Sistem gagal menyimpan token akses API jangka panjang untuk peranti ini.</translation>
+<translation id="1307931752636661898">Tidak dapat melihat fail Linux</translation>
 <translation id="1313405956111467313">Konfigurasi proksi automatik</translation>
 <translation id="131364520783682672">Kunci Huruf Besar</translation>
 <translation id="1313705515580255288">Penanda halaman, sejarah dan tetapan anda yang lain akan disegerakkan ke Akaun Google anda.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Buka tetapan peranti tetikus dan pad sentuh</translation>
 <translation id="1531004739673299060">Tetingkap Aplikasi</translation>
 <translation id="15373452373711364">Kursor tetikus besar</translation>
+<translation id="1538729222189715449">Membuka fail Linux...</translation>
 <translation id="1540605929960647700">Dayakan mod tunjuk cara</translation>
 <translation id="1543284117603151572">Diimport Daripada Edge</translation>
 <translation id="1545177026077493356">Mod Kios Automatik</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Tukar mod HUD sentuh</translation>
 <translation id="1784849162047402014">Peranti kekurangan ruang cakera</translation>
 <translation id="1786636458339910689">Drive Pasukan</translation>
-<translation id="1792161662640298233">Mengesahkan Kunci Keselamatan anda</translation>
 <translation id="1792619191750875668">Paparan lanjutan</translation>
 <translation id="1794791083288629568">Hantar maklum balas untuk membantu kami menyelesaikan isu ini.</translation>
 <translation id="1795214765651529549">Gunakan Klasik</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Selamat datang!</translation>
 <translation id="1914326953223720820">Perkhidmatan Nyahzip</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Bergantung pada tetapan akaun anda, pengalaman Assistant anda mungkin dihadkan kepada perkara seperti hasil carian web, jenaka dan maklumat setempat.</translation>
 <translation id="1916502483199172559">Avatar merah lalai</translation>
 <translation id="1918141783557917887">&amp;Lebih kecil</translation>
 <translation id="1919345977826869612">Iklan</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Pemalam <ph name="PEPPER_PLUGIN_NAME" /> di <ph name="PEPPER_PLUGIN_DOMAIN" /> ingin mengakses komputer anda</translation>
 <translation id="2178614541317717477">Tolak ansur CA</translation>
 <translation id="218070003709087997">Gunakan nombor untuk menunjukkan bilangan salinan untuk dicetak (1 hingga 999).</translation>
+<translation id="2184515124301515068">Benarkan Chrome memilih masa tapak boleh memainkan bunyi (disyorkan)</translation>
 <translation id="2187895286714876935">Ralat Import Sijil Pelayan</translation>
 <translation id="2187906491731510095">Sambungan dikemas kini</translation>
 <translation id="2188881192257509750">Buka <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Baca dan tukar data anda pada beberapa tapak web</translation>
 <translation id="2242687258748107519">Maklumat Fail</translation>
 <translation id="2243194103992005307">Untuk mengalih keluar apl, pergi ke Tetapan &gt; Apl atau Pengurus aplikasi. Kemudian, ketik apl yang ingin dinyahpasang (anda mungkin perlu meleret ke kanan atau ke kiri untuk mencari apl). Kemudian, ketik Nyahpasang atau Lumpuhkan.</translation>
+<translation id="224940702122312781">Halaman ini akan menggunakan banyak data.</translation>
 <translation id="2249605167705922988">cth. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Buka dengan pemapar sistem</translation>
 <translation id="225163402930830576">Muat Semula Rangkaian</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Konfigurasikan rangkaian</translation>
 <translation id="230927227160767054">Halaman ini mahu memasang pengendali perkhidmatan.</translation>
 <translation id="2309620859903500144">Tapak ini telah disekat daripada mengakses penderia gerakan atau cahaya anda.</translation>
-<translation id="2311075084924370935">Untuk membantu anda berkaitan kalendar, peringatan, penerbangan dan pelbagai lagi, Assistant anda memerlukan tetapan Aktiviti Web &amp; Apl, Maklumat Peranti, Aktiviti Suara &amp; Audio.</translation>
+<translation id="2315414688463285945">Ralat semasa mengkonfigurasi fail Linux. Sila cuba lagi.</translation>
 <translation id="2315821125498993513">Tidak dapat menyambung ke telefon. <ph name="LINK_BEGIN" />Ketahui lebih lanjut.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Tidak, terima kasih</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% selesai</translation>
 <translation id="2318143611928805047">Saiz kertas</translation>
 <translation id="2318817390901984578">Untuk menggunakan apl Android, cas &amp; kemas kini <ph name="DEVICE_TYPE" /> anda.</translation>
 <translation id="2318923050469484167">Sesi inkognito semasa (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Gunakan Kunci Keselamatan anda dengan <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Pengepala dan pengaki</translation>
 <translation id="2325650632570794183">Jenis fail ini tidak disokong. Sila lawati Kedai Web Chrome untuk mendapatkan apl yang boleh membuka jenis fail ini.</translation>
 <translation id="2326931316514688470">&amp;Muat semula apl</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Tambah Perkongsian Fail</translation>
 <translation id="2367972762794486313">Paparkan apl</translation>
 <translation id="2369536625682139252">Semua data yang disimpan oleh <ph name="SITE" /> akan dipadamkan, kecuali kuki.</translation>
-<translation id="237058345584060620">Gandingkan kunci anda dengan peranti ini supaya anda boleh menggunakan kunci itu untuk log masuk ke akaun anda</translation>
 <translation id="2371076942591664043">Buka apabila &amp;selesai</translation>
 <translation id="2377319039870049694">Tukar kepada paparan senarai</translation>
 <translation id="2377667304966270281">Kesalahan Keras</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Tidak dapat mencari telefon anda. Pastikan Bluetooth <ph name="DEVICE_TYPE" /> anda dihidupkan. &lt;a&gt;Ketahui lebih lanjut&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Tambah &amp;Folder...</translation>
 <translation id="249113932447298600">Maaf, peranti <ph name="DEVICE_LABEL" /> tidak disokong pada masa ini.</translation>
-<translation id="2492040222276243256">Tekan dan tahan butang pada Kunci Keselamatan anda selama sekurang-kurangnya 5 saat</translation>
 <translation id="2493021387995458222">Pilih "perkataan pada satu masa"</translation>
 <translation id="249303669840926644">Tidak dapat melengkapkan pendaftaran</translation>
 <translation id="2495777824269688114">Temui lebih banyak ciri atau dapatkan jawapan. Pilih “?” untuk mendapatkan bantuan.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Jumlah: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Lama</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Platform <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Tab ini berkongsi skrin anda.</translation>
 <translation id="2586657967955657006">Papan Keratan</translation>
 <translation id="2586672484245266891">Sila masukkan URL yang lebih pendek</translation>
 <translation id="2587922270115112871">Penghasilan pengguna diselia tidak akan mewujudkan Akaun Google dan tetapan
@@ -1092,7 +1090,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> menggunakan <ph name="USAGE" /> MB ruang cakera.</translation>
 <translation id="2633212996805280240">Alih keluar "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> tidak dapat melengkapkan pemasangan, tetapi akan terus dijalankan daripada imej cakeranya.</translation>
-<translation id="2633326789677284179">Cari nama yang dicetak pada bahagian belakang kunci anda</translation>
 <translation id="2635276683026132559">Melog</translation>
 <translation id="2636625531157955190">Chrome tidak dapat mengakses imej.</translation>
 <translation id="2638087589890736295">Ungkapan laluan diperlukan untuk memulakan penyegerakan</translation>
@@ -1260,7 +1257,6 @@
 <translation id="287286579981869940">Tambahkan <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Log masuk ke Chrome untuk mendapatkan kata laluan pada semua peranti anda.</translation>
 <translation id="2875698561019555027">(Halaman ralat Chrome)</translation>
-<translation id="2876441201733326392">Gunakan Kunci Keselamatan USB</translation>
 <translation id="288042212351694283">Mengakses peranti Universal 2nd Factor anda</translation>
 <translation id="2881966438216424900">Terakhir diakses:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> akan dimulakan semula dan ditetapkan semula buat sementara waktu</translation>
@@ -1328,7 +1324,6 @@
 <translation id="2982970937345031">Laporkan secara awanama</translation>
 <translation id="2984337792991268709">Hari ini <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Halaman ini telah disekat daripada mengawal sepenuhnya peranti MIDI.</translation>
-<translation id="2988599644347283908">Nota: Data yang dikawal oleh tetapan ini boleh disimpan dan digunakan dalam mana-mana perkhidmatan Google tempat anda log masuk untuk memberi anda pengalaman yang diperibadikan dan iklan yang berguna. Anda boleh melihat data anda, memadamkan data dan mengubah tetapan anda di account.google.com.</translation>
 <translation id="2989474696604907455">tidak dipasang</translation>
 <translation id="2989786307324390836">Binari terkod DER, sijil tunggal</translation>
 <translation id="2993517869960930405">Maklumat Apl</translation>
@@ -1381,7 +1376,6 @@
 <translation id="304826556400666995">Nyahredam Beberapa Tab</translation>
 <translation id="3053013834507634016">Penggunaan Penting Sijil</translation>
 <translation id="3057861065630527966">Sandarkan foto dan video anda</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Dayakan pilih untuk bercakap</translation>
 <translation id="3061707000357573562">Perkhidmatan Tampung</translation>
 <translation id="3064410671692449875">Data tidak mencukupi</translation>
@@ -1410,7 +1404,6 @@
 <translation id="3090819949319990166">Tidak dapat menyalin fail crx luar ke <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" digandingkan</translation>
 <translation id="3101709781009526431">Tarikh dan masa</translation>
-<translation id="3104900172193317662">Benarkan penggunaan Kunci Keselamatan anda</translation>
 <translation id="310671807099593501">Tapak sedang menggunakan bluetooth</translation>
 <translation id="3115128645424181617">Tidak dapat mencari telefon anda. Pastikan telefon tersebut ada bersama anda dan Bluetooth dihidupkan.</translation>
 <translation id="3115147772012638511">Menunggu cache...</translation>
@@ -1494,7 +1487,6 @@
 <translation id="3251759466064201842">&lt;Bukan Sebahagian Daripada Sijil&gt;</translation>
 <translation id="3254434849914415189">Pilih apl lalai untuk fail <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Pengesanan zon waktu automatik dilumpuhkan</translation>
-<translation id="3254772308201947812">Ya, Saya Setuju</translation>
 <translation id="3264544094376351444">Fon Sans-serif</translation>
 <translation id="3264547943200567728">Gagal menyediakan rangkaian Chromebox anda</translation>
 <translation id="3264582393905923483">Konteks</translation>
@@ -1817,7 +1809,6 @@
 <translation id="3735740477244556633">Isih mengikut</translation>
 <translation id="3737274407993947948">Ralat semasa memasang Linux...</translation>
 <translation id="3737536731758327622">Muat turun anda dipaparkan di sini</translation>
-<translation id="3738671331307774213">Pengesahan identiti anda dapat melindungi data peribadi anda</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Buka <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> kini akan muncul dalam Admin Console</translation>
@@ -1911,6 +1902,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elir.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Penyegerakan dijeda</translation>
 <translation id="3860381078714302691">Selamat datang ke Hangout Meet</translation>
+<translation id="3861241522664181545">Halaman dijeda.</translation>
 <translation id="3862134173397075045">Selamat datang ke pengalaman Cast dalam Chrome!</translation>
 <translation id="3862788408946266506">Apl dengan atribut manifes 'kiosk_only' mesti dipasang dalam mod kios OS Chrome OS</translation>
 <translation id="3865414814144988605">Peleraian</translation>
@@ -1925,7 +1917,6 @@
 <translation id="3873315167136380065">Untuk menghidupkan ciri ini, <ph name="BEGIN_LINK" />tetapkan semula penyegerakan<ph name="END_LINK" /> untuk mengalih keluar ungkapan laluan penyegerakan anda</translation>
 <translation id="3878840326289104869">Menghasilkan pengguna diselia</translation>
 <translation id="3879748587602334249">Pengurus muat turun</translation>
-<translation id="3880709822663530586">Kunci Keselamatan anda hanya berfungsi apabila Bluetooth peranti dihidupkan</translation>
 <translation id="3888550877729210209">Mencatat nota dengan <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Tambahkan OpenVPN / L2TP...</translation>
 <translation id="3893536212201235195">Baca dan tukar tetapan kebolehaksesan anda</translation>
@@ -2071,6 +2062,7 @@
 <translation id="4096824249111507322">Modul selamat sedang disediakan, sila tunggu (proses ini mungkin mengambil masa beberapa minit)...</translation>
 <translation id="4099060993766194518">Pulihkan enjin carian lalai?</translation>
 <translation id="4100733287846229632">Ruang peranti terlalu rendah</translation>
+<translation id="4103091233824664032">Masukkan kata laluan anda untuk mengkonfigurasi kunci skrin dan log masuk</translation>
 <translation id="4104163789986725820">E&amp;ksport...</translation>
 <translation id="4105563239298244027">Dapatkan 1 TB percuma dengan Google Drive</translation>
 <translation id="4107048419833779140">Kenal pasti dan keluarkan peranti storan</translation>
@@ -2091,7 +2083,6 @@
 <translation id="4136203100490971508">Cahaya Malam akan dimatikan secara automatik pada waktu matahari terbit</translation>
 <translation id="4138267921960073861">Paparkan nama pengguna dan foto pada skrin log masuk</translation>
 <translation id="4144218403971135344">Dapatkan video berkualiti lebih baik dan jimatkan hayat bateri. Video akan dimainkan hanya pada skrin yang berdaya Cast.</translation>
-<translation id="414599683948988413">Gunakan Kunci Keselamatan anda dengan USB</translation>
 <translation id="4146026355784316281">Sentiasa Buka dengan Alat Lihat Sistem</translation>
 <translation id="4146785383423576110">Tetapkan semula dan padam bersih</translation>
 <translation id="4147897805161313378">Google Photos</translation>
@@ -2226,6 +2217,7 @@
 <translation id="4394049700291259645">Lumpuhkan</translation>
 <translation id="4400367121200150367">Tapak yang langsung tidak menyimpan kata laluan anda kelihatan di sini</translation>
 <translation id="4400632832271803360">Tekan dan tahan kekunci Launcher untuk menukar gelagat kekunci di baris atas</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">B&amp;antuan</translation>
 <translation id="4409697491990005945">Margin</translation>
 <translation id="4411578466613447185">Penandatangan Kod</translation>
@@ -2274,6 +2266,7 @@
 <translation id="4480590691557335796">Chrome boleh mencari perisian yang berbahaya pada komputer anda dan mengalih keluar perisian tersebut</translation>
 <translation id="4481530544597605423">Peranti dinyahganding</translation>
 <translation id="4482194545587547824">Google boleh menggunakan sejarah penyemakan imbas anda untuk memperibadikan Carian dan perkhidmatan Google yang lain.</translation>
+<translation id="4493287891836751813">Temui Google Assistant anda</translation>
 <translation id="4495419450179050807">Jangan paparkan pada halaman ini</translation>
 <translation id="4499718683476608392">Dayakan Autolengkap kad kredit untuk mengisi borang dengan satu klikan</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> telah ranap</translation>
@@ -2434,6 +2427,7 @@
 <translation id="474217410105706308">Redam Tab</translation>
 <translation id="4742746985488890273">Sematkan pada Rak</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Ketahui cara mengemas kini aplikasi<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Mesej</translation>
 <translation id="4746971725921104503">Nampaknya anda sudah mengurus pengguna dengan nama tersebut. Adakah anda ingin <ph name="LINK_START" />mengimport<ph name="USER_DISPLAY_NAME" /> ke peranti ini<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Memerlukan sambungan daripada Gedung Web Chrome</translation>
 <translation id="4750394297954878236">Cadangan</translation>
@@ -2475,6 +2469,7 @@
 <translation id="4821935166599369261">&amp;Pemprofilan Didayakan</translation>
 <translation id="4823484602432206655">Baca dan tukar pengguna dan tetapan peranti</translation>
 <translation id="4823651846660089135">Peranti dalam mod baca sahaja</translation>
+<translation id="4823955295535347797">Akses Assistant pada bila-bila masa anda menyebut "Ok Google" semasa skrin anda dihidupkan.</translation>
 <translation id="4828937774870308359">Australia</translation>
 <translation id="4829768588131278040">Sediakan PIN</translation>
 <translation id="4830502475412647084">Memasang kemas kini OS</translation>
@@ -2515,6 +2510,7 @@
 <translation id="4876273079589074638">Bantu jurutera kami menyiasat dan menyelesaikan ranap ini. Senaraikan langkah sebenar jika boleh. Setiap butiran penting!</translation>
 <translation id="4876895919560854374">Kunci dan buka kunci skrin</translation>
 <translation id="4877017884043316611">Pasangkan dengan Chromebox</translation>
+<translation id="4879491255372875719">Automatik (lalai)</translation>
 <translation id="4880214202172289027">Peluncur kelantangan</translation>
 <translation id="4880328057631981605">Nama titik capaian</translation>
 <translation id="4880520557730313061">Autobaiki</translation>
@@ -2668,7 +2664,6 @@
 <translation id="5099354524039520280">ke atas</translation>
 <translation id="5100114659116077956">Demi membawakan ciri-ciri terkini kepada anda, Chromebox anda perlu mengemas kini.</translation>
 <translation id="5101042277149003567">Buka semua penanda halaman</translation>
-<translation id="5104546332954397226">Gunakan telefon anda sebagai Kunci Keselamatan</translation>
 <translation id="5105855035535475848">Pin tab</translation>
 <translation id="5108967062857032718">Tetapan - Alih keluar apl Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2799,7 +2794,6 @@
 <translation id="5288678174502918605">B&amp;uka Semula Tab Yang Ditutup</translation>
 <translation id="52912272896845572">Fail penting persendirian adalah tidak sah.</translation>
 <translation id="529175790091471945">Formatkan peranti ini</translation>
-<translation id="5292195676005197571">Untuk menggunakan kebanyakan kunci, tekan sahaja butangnya</translation>
 <translation id="5293170712604732402">Pulihkan tetapan kepada lalai asal.</translation>
 <translation id="5297082477358294722">Kata laluan disimpan. Lihat dan urus kata laluan yang disimpan dalam <ph name="SAVED_PASSWORDS_STORE" /> anda.</translation>
 <translation id="5298219193514155779">Tema dicipta oleh</translation>
@@ -2825,6 +2819,7 @@
 <translation id="532776649628038357">Saya Setuju</translation>
 <translation id="532943162177641444">Ketik pemberitahuan pada <ph name="PHONE_NAME" /> anda untuk menyediakan tempat liputan mudah alih yang boleh digunakan oleh peranti ini.</translation>
 <translation id="5329858601952122676">&amp;Padam</translation>
+<translation id="5329945517224105597">Assistant boleh menawarkan cadangan yang lebih berkaitan dan tindakan khusus yang berkaitan dengan item pada skrin anda. Anda boleh menukar perkara ini dalam tetapan Assistant.</translation>
 <translation id="5330145655348521461">Fail ini dibuka pada desktop yang berbeza. Alihkan ke <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) untuk melihat fail.</translation>
 <translation id="5330512191124428349">Dapatkan maklumat</translation>
 <translation id="5331069282670671859">Anda tiada sijil dalam kategori ini</translation>
@@ -2869,7 +2864,6 @@
 <translation id="5390100381392048184">Benarkan tapak untuk memainkan bunyi</translation>
 <translation id="5390284375844109566">Pangkalan data berindeks</translation>
 <translation id="5390743329570580756">Hantar untuk</translation>
-<translation id="5392327114396848796">Gunakan Kunci Keselamatan terbina dalam</translation>
 <translation id="5397794290049113714">Anda</translation>
 <translation id="5398572795982417028">Rujukan halaman di luar batasan, hadnya ialah <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Iklan disekat</translation>
@@ -3077,6 +3071,7 @@
    <ph name="LINE_BREAKS" />
    Tutup semua fail pada arkib atau cakera maya, kemudian cuba lagi.</translation>
 <translation id="5687326903064479980">Zon waktu</translation>
+<translation id="568824803367507355">Pengesanan "Ok Google"</translation>
 <translation id="5689516760719285838">Lokasi</translation>
 <translation id="56907980372820799">Pautkan data</translation>
 <translation id="5691511426247308406">Keluarga</translation>
@@ -3174,7 +3169,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Kamera atau mikrofon sedang merakam</translation>
 <translation id="5835754902560991078">sangat pendek (0.6s)</translation>
 <translation id="5838456317242088717">Sesi inkognito semasa</translation>
-<translation id="5842053879378944309">Gunakan Kunci Keselamatan USB dengan <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Bluetooth didayakan</translation>
 <translation id="5843250171025351504">Peranti anda sudah tidak mematuhi versi klien minimum yang ditentukan oleh pentadbir anda. Sila kemas kini untuk log masuk.</translation>
 <translation id="5846929185714966548">Tab 4</translation>
@@ -3492,7 +3486,6 @@
 <translation id="6317318380444133405">Tidak disokong lagi.</translation>
 <translation id="6317369057005134371">Menunggu tetingkap aplikasi...</translation>
 <translation id="6318407754858604988">Muat turun dimulakan</translation>
-<translation id="6322653941595359182">Hantar dan terima mesej teks daripada Chromebook anda</translation>
 <translation id="6324916366299863871">Edit pintasan</translation>
 <translation id="6325191661371220117">Lumpuhkan autolancar</translation>
 <translation id="6326175484149238433">Alih keluar dari Chrome</translation>
@@ -3536,6 +3529,7 @@
 <translation id="6395423953133416962">Hantar <ph name="BEGIN_LINK1" />maklumat sistem<ph name="END_LINK1" /> dan <ph name="BEGIN_LINK2" />metrik<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Pilihan penyegerakan dan pemperibadian</translation>
 <translation id="6397592254427394018">Buka semua penanda halaman dalam tetingkap &amp;inkognito</translation>
+<translation id="639777613761517128">Untuk membuka fail dengan $1, salin ke folder fail Linux dahulu.</translation>
 <translation id="6398715114293939307">Alih keluar Gedung Google Play</translation>
 <translation id="6398765197997659313">Keluar daripada skrin penuh</translation>
 <translation id="6399774419735315745">Perisik</translation>
@@ -3561,7 +3555,6 @@
 <translation id="642282551015776456">Nama ini tidak boleh digunakan sebagai nama fail atau folder</translation>
 <translation id="642469772702851743">Peranti ini (SN: <ph name="SERIAL_NUMBER" />) telah dikunci oleh pemiliknya.</translation>
 <translation id="6426200009596957090">Buka tetapan ChromeVox</translation>
-<translation id="6427415464407526111">Pilih Kunci Keselamatan anda</translation>
 <translation id="6429384232893414837">Ralat kemas kini</translation>
 <translation id="6430814529589430811">Base64 terkod ASCII, sijil tunggal</translation>
 <translation id="6431217872648827691">Semua data telah disulitkan dengan kata laluan Google anda bermula dari
@@ -3719,7 +3712,6 @@
 <translation id="6655190889273724601">Mod pembangun</translation>
 <translation id="6655458902729017087">Sembunyikan Akaun</translation>
 <translation id="6657585470893396449">Kata laluan</translation>
-<translation id="6658023813581644008">Untuk menyediakan Smart Lock untuk log masuk, masukkan kata laluan anda</translation>
 <translation id="6659213950629089752">Halaman ini telah dizum oleh pelanjutan "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Malangnya, komputer anda dikonfigurasi dengan ID perkakasan tidak sempurna. Hal ini menghalang OS Chrome daripada mengemas kini kepada pembetulan keselamatan terbaharu dan komputer anda <ph name="BEGIN_BOLD" />mungkin terdedah kepada serangan berniat jahat<ph name="END_BOLD" />.</translation>
@@ -3855,7 +3847,6 @@
 <translation id="6885771755599377173">Pratonton Maklumat Sistem</translation>
 <translation id="6886871292305414135">Buka pautan dalam &amp;tab baharu</translation>
 <translation id="6892812721183419409">Buka Pautan sebagai <ph name="USER" /></translation>
-<translation id="6896398788631624004">Palamkan Kunci Keselamatan anda dan aktifkannya</translation>
 <translation id="6896758677409633944">Salin</translation>
 <translation id="6898440773573063262">Aplikasi kios kini boleh dikonfigurasikan supaya autolancar pada peranti ini.</translation>
 <translation id="6898699227549475383">Organisasi (O)</translation>
@@ -3874,6 +3865,7 @@
 <translation id="6915804003454593391">Pengguna:</translation>
 <translation id="6916590542764765824">Urus Sambungan</translation>
 <translation id="6920989436227028121">Buka seperti tab biasa</translation>
+<translation id="6921709132208495314">Berhenti menggunakan data pada halaman ini</translation>
 <translation id="6922128026973287222">Simpan data dan semak imbas dengan lebih pantas menggunakan Penjimat Data Google. Klik untuk mengetahui lebih lanjut.</translation>
 <translation id="6923132443355966645">Tatal / Klik</translation>
 <translation id="6930242544192836755">Tempoh</translation>
@@ -3896,6 +3888,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Peranti</translation>
+<translation id="6968288415730398122">Masukkan kata laluan anda untuk mengkonfigurasi kunci skrin</translation>
 <translation id="6970480684834282392">Jenis pemula</translation>
 <translation id="6970856801391541997">Cetak Halaman Tertentu</translation>
 <translation id="6972180789171089114">Audio/Video</translation>
@@ -3906,6 +3899,7 @@
 <translation id="6978121630131642226">Enjin Carian</translation>
 <translation id="6978611942794658017">Fail ini direka untuk sebuah komputer yang menggunakan perisian Windows. Ini tidak serasi dengan peranti anda yang menjalankan OS Chrome. Sila cari di Kedai Web Chrome untuk mendapatkan apl ganti yang sesuai.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Redam (lalai)</translation>
 <translation id="6979737339423435258">Sepanjang masa</translation>
 <translation id="6980462514016882061">Google boleh menggunakan sejarah penyemakan imbas anda untuk memperibadikan Carian, iklan dan perkhidmatan Google yang lain.</translation>
 <translation id="6981982820502123353">Kebolehcapaian</translation>
@@ -4054,6 +4048,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Maklumat ini ialah maklumat umum tentang peranti anda dan cara anda menggunakannya, (seperti paras kuasa bateri, penggunaan apl dan kesambungan rangkaian). Data akan digunakan untuk meningkatkan produk dan perkhidmatan Google untuk semua. Sesetengah maklumat teragregat dapat membantu rakan kongsi, seperti pembangun Android, menjadikan apl dan produk mereka lebih bagus juga.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Tindakan mematikan ciri ini tidak menjejaskan keupayaan peranti anda untuk menghantar maklumat yang diperlukan bagi perkhidmatan penting seperti kemas kini dan keselamatan sistem.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Anda boleh mengawal ciri ini daripada Tetapan &gt; Google. Pilih Penggunaan &amp; diagnostik daripada menu.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Kami menemui <ph name="NUMBER_OF_APPS" /> apl daripada akaun anda yang boleh digunakan pada peranti ini.</translation>
 <translation id="7199158086730159431">Dapatkan B&amp;antuan</translation>
 <translation id="7200083590239651963">Pilih konfigurasi</translation>
 <translation id="720110658997053098">Pastikan peranti ini kekal dalam mod kios</translation>
@@ -4074,7 +4069,6 @@
 <translation id="7228523857728654909">Kunci skrin dan log masuk</translation>
 <translation id="7229570126336867161">Perlukan EVDO</translation>
 <translation id="7230787553283372882">Sesuaikan saiz teks anda</translation>
-<translation id="7231589788477569369">Dapatkan pengalaman Assistant penuh dengan tetapan ini</translation>
 <translation id="7232750842195536390">Penamaan semula gagal</translation>
 <translation id="7234406375359457793">Ralat melekapkan perkongsian. Perkongsian yang dinyatakan tidak disokong.</translation>
 <translation id="7238585580608191973">Cap jari SHA-256</translation>
@@ -4084,7 +4078,6 @@
 <translation id="7243632151880336635">Kosongkan dan Log Keluar</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Terbaik)</translation>
 <translation id="7246339268451149667">Dayakan buka kunci menggunakan Cap Jari?</translation>
-<translation id="7246489301073081944">Tekan dan tahan |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| untuk keluar</translation>
 <translation id="7246947237293279874">Proksi FTP</translation>
 <translation id="725109152065019550">Maaf, pentadbir anda telah melumpuhkan storan luar pada akaun anda.</translation>
 <translation id="7253521419891527137">&amp;Ketahui Lebih Lanjut</translation>
@@ -4237,7 +4230,6 @@
 <translation id="7489605380874780575">Semak kelayakan</translation>
 <translation id="749028671485790643"><ph name="VALUE" /> orang</translation>
 <translation id="7490813197707563893">Alamat MAC</translation>
-<translation id="7490950320178383728">Gunakan Kunci Keselamatan anda dengan Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">Sambungan <ph name="EXTENSION_NAME" /> boleh mengumpul semua teks yang anda taip, termasuk data peribadi seperti kata laluan dan nombor kad kredit. Adakah anda ingin menggunakan sambungan ini?</translation>
 <translation id="7494065396242762445">Buka Tetapan Windows</translation>
@@ -4487,7 +4479,6 @@
 <translation id="7850851215703745691">Fail Drive ini belum dikongsi lagi</translation>
 <translation id="7851457902707056880">Log masuk telah dihadkan untuk akaun pemilik sahaja. Sila mulakan semula dan log masuk dengan akaun pemilik. Mesin akan mula semula secara automatik dalam 30 saat.</translation>
 <translation id="7851716364080026749">Sentiasa halang akses kamera dan mikrofon</translation>
-<translation id="7851816139220202929">Gunakan Kunci Keselamatan anda dengan NFC</translation>
 <translation id="7853747251428735">Lagi Al&amp;atan</translation>
 <translation id="7856006446339184955">Hantar data sistem. Pada masa ini peranti ini menghantar data diagnostik dan penggunaan peranti serta apl secara automatik kepada Google. <ph name="BEGIN_LINK1" />Tetapan<ph name="END_LINK1" /> ini dikuatkuasakan oleh pemilik. Jika anda menghidupkan Aktiviti Web &amp; Apl tambahan, maklumat ini akan disimpan dengan akaun anda supaya anda dapat mengurus maklumat ini dalam Aktiviti Saya. <ph name="BEGIN_LINK2" />Ketahui Lebih Lanjut<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Tambah pengecualian</translation>
@@ -4570,6 +4561,7 @@
 <translation id="7973962044839454485">Pengesahan PPP gagal disebabkan oleh nama pengguna atau kata laluan yang salah</translation>
 <translation id="7974566588408714340">Cuba semula menggunakan <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Terlebih imbas</translation>
+<translation id="79766959863778284">Perkhidmatan Peranti Terpencil XR</translation>
 <translation id="7977551819349545646">Mengemas kini Chromebox...</translation>
 <translation id="7978412674231730200">Kunci persendirian</translation>
 <translation id="7978450511781612192">Tindakan ini akan menyebabkan anda log keluar daripada Akaun Google anda. Penanda halaman, sejarah, kata laluan dan pelbagai lagi tidak akan disegerakkan lagi.</translation>
@@ -4620,7 +4612,6 @@
 <translation id="8030656706657716245">Tambah Pencetak</translation>
 <translation id="8032244173881942855">Tidak dapat menghantar tab.</translation>
 <translation id="8033827949643255796">dipilih</translation>
-<translation id="8033958968890501070">Tamat masa</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Buka semua dalam tetingkap &amp;inkognito}=1{Buka dalam tetingkap &amp;inkognito}other{Buka semua (#) dalam tetingkap &amp;inkognito}}</translation>
 <translation id="8037117027592400564">Baca semua teks yang dituturkan menggunakan pertuturan disintesiskan</translation>
 <translation id="8037357227543935929">Tanya (lalai)</translation>
@@ -4793,6 +4784,7 @@
 <translation id="8320459152843401447">Seluruh Skrin Anda</translation>
 <translation id="8322814362483282060">Halaman ini telah disekat daripada mengakses mikrofon anda.</translation>
 <translation id="8326478304147373412">PKCS #7, rantaian sijil</translation>
+<translation id="8327039559959785305">Ralat semasa melekapkan fail Linux. Sila cuba lagi.</translation>
 <translation id="8329978297633540474">Teks biasa</translation>
 <translation id="8335587457941836791">Nyahsemat dari rak</translation>
 <translation id="8336153091935557858">Semalam <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4844,7 +4836,6 @@
 <translation id="8425213833346101688">Tukar</translation>
 <translation id="8425492902634685834">Pin ke Bar Tugas</translation>
 <translation id="8425755597197517046">Ta&amp;mpal dan Cari</translation>
-<translation id="8426117172745886547">Beri amaran sebelum keluar (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Mendayakan</translation>
 <translation id="8427292751741042100">dibenam pada mana-mana hos</translation>
 <translation id="8428213095426709021">Tetapan</translation>
@@ -4932,7 +4923,6 @@
 <translation id="8551388862522347954">Lesen</translation>
 <translation id="8553342806078037065">Urus orang lain</translation>
 <translation id="8554899698005018844">Tiada bahasa</translation>
-<translation id="8557347704037207368">Hantar pemberitahuan kepada anda daripada Mesej Web Android</translation>
 <translation id="855773602626431402">Pemalam tanpa kotak pasir telah dihalang daripada dijalankan di halaman ini.</translation>
 <translation id="8557930019681227453">Manifes</translation>
 <translation id="8559694214572302298">Penyahkod Imej</translation>
@@ -5045,6 +5035,7 @@
 <translation id="8714154114375107944">Sokongan ditamatkan</translation>
 <translation id="8714838604780058252">Grafik latar</translation>
 <translation id="8715480913140015283">Tab latar belakang menggunakan kamera anda</translation>
+<translation id="8716931980467311658">Padamkan semua apl dan data Linux dalam folder fail Linux anda daripada <ph name="DEVICE_TYPE" /> ini?</translation>
 <translation id="8719653885894320876">Muat turun <ph name="PLUGIN_NAME" /> gagal</translation>
 <translation id="8723829621484579639">Subbingkai inkognito untuk: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Paparkan dalam Folder</translation>
@@ -5208,7 +5199,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Mengalami ranap sistem</translation>
 <translation id="8983677657449185470">Bantu meningkatkan Penyemakan Imbas Selamat</translation>
 <translation id="8984654317541110628">URL Perkongsian Fail</translation>
-<translation id="8984872292925913496">Cari PIN 6 digit di bahagian belakang kunci anda</translation>
 <translation id="8986362086234534611">Lupa</translation>
 <translation id="8986494364107987395">Hantar statistik penggunaan dan laporan nahas kepada Google secara automatik</translation>
 <translation id="8987927404178983737">Bulan</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index d3082ed..20d880f 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Markeer het object met toetsenbordfocus wanneer dit wordt gewijzigd</translation>
 <translation id="1173894706177603556">Naam wijzigen</translation>
 <translation id="1174073918202301297">Snelkoppeling toegevoegd</translation>
-<translation id="1174808551768282258">Ontgrendel je Chromebook met je telefoon. <ph name="LINK_BEGIN" />Meer informatie.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Afdrukken...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> kopiëren...</translation>
 <translation id="1177138678118607465">Google kan je browsegeschiedenis gebruiken om Google Zoeken, advertenties en andere Google-services te personaliseren. Je kunt dit op elk gewenst moment wijzigen via myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Onderbreken</translation>
 <translation id="1181037720776840403">Verwijderen</translation>
 <translation id="1183237619868651138">Kan <ph name="EXTERNAL_CRX_FILE" /> niet in lokale cache installeren.</translation>
-<translation id="1183378459020939734">Klaar om je beveiligingssleutel te koppelen?</translation>
 <translation id="1185924365081634987">Je kunt ook proberen te <ph name="GUEST_SIGNIN_LINK_START" />browsen als gast<ph name="GUEST_SIGNIN_LINK_END" /> om deze netwerkfout op te lossen.</translation>
 <translation id="1186771945450942097">Schadelijke software verwijderen</translation>
 <translation id="1187722533808055681">Activeringen vanuit inactief</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Geen Bluetooth-apparaten gevonden</translation>
 <translation id="1306606229401759371">Instellingen wijzigen</translation>
 <translation id="1307559529304613120">Het opslaan van de langdurige API-toegangstoken voor dit apparaat is mislukt.</translation>
+<translation id="1307931752636661898">Kan Linux-bestanden niet weergeven</translation>
 <translation id="1313405956111467313">Automatische proxyconfiguratie</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Je bladwijzers, geschiedenis en andere instellingen worden gesynchroniseerd met je Google-account</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Muis- en touchpadinstellingen van apparaat openen</translation>
 <translation id="1531004739673299060">App-venster</translation>
 <translation id="15373452373711364">Grote muisaanwijzer</translation>
+<translation id="1538729222189715449">Linux-bestanden openen…</translation>
 <translation id="1540605929960647700">Demomodus inschakelen</translation>
 <translation id="1543284117603151572">Geïmporteerd uit Edge</translation>
 <translation id="1545177026077493356">Automatische kioskmodus</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Aanraak-HUD-modus wijzigen</translation>
 <translation id="1784849162047402014">Weinig schijfruimte beschikbaar op het apparaat</translation>
 <translation id="1786636458339910689">Drives van mijn team</translation>
-<translation id="1792161662640298233">Je beveiligingssleutel verifiëren</translation>
 <translation id="1792619191750875668">Uitgebreid scherm</translation>
 <translation id="1794791083288629568">Feedback verzenden om ons te helpen dit probleem op te lossen.</translation>
 <translation id="1795214765651529549">Klassiek thema gebruiken</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Welkom!</translation>
 <translation id="1914326953223720820">Uitpakservice</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Afhankelijk van je accountinstellingen kan de functionaliteit van je Assistent zijn beperkt tot gegevens zoals webresultaten, grapjes en lokale informatie.</translation>
 <translation id="1916502483199172559">Standaard rode avatar</translation>
 <translation id="1918141783557917887">&amp;Kleiner</translation>
 <translation id="1919345977826869612">Advertenties</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> op <ph name="PEPPER_PLUGIN_DOMAIN" /> vraagt om toegang tot je computer</translation>
 <translation id="2178614541317717477">Inbreuk op CA</translation>
 <translation id="218070003709087997">Gebruik een cijfer om aan te geven hoeveel exemplaren er moeten worden afgedrukt (1-999).</translation>
+<translation id="2184515124301515068">Chrome laten kiezen wanneer sites geluid mogen afspelen (aanbevolen)</translation>
 <translation id="2187895286714876935">Fout bij importeren van servercertificaat</translation>
 <translation id="2187906491731510095">Extensies geüpdatet</translation>
 <translation id="2188881192257509750"><ph name="APPLICATION" /> openen</translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Je gegevens lezen en wijzigen op een aantal websites</translation>
 <translation id="2242687258748107519">Bestandsinformatie</translation>
 <translation id="2243194103992005307">Als je apps wilt verwijderen, ga je naar Instellingen &gt; Apps of App-beheer. Tik op de app die je wilt verwijderen (je moet mogelijk naar rechts of links vegen om de app te vinden). Tik vervolgens op Verwijderen of Uitschakelen.</translation>
+<translation id="224940702122312781">Deze pagina gebruikt veel data.</translation>
 <translation id="2249605167705922988">bijv. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Openen met systeemviewer</translation>
 <translation id="225163402930830576">Netwerken vernieuwen</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Netwerk configureren</translation>
 <translation id="230927227160767054">Deze pagina wil een servicehandler installeren.</translation>
 <translation id="2309620859903500144">Deze site heeft geen toegang tot je bewegings- of lichtsensoren.</translation>
-<translation id="2311075084924370935">De Assistent heeft de instellingen 'Web- en app-activiteit', 'Apparaatgegevens' en 'Spraak- en audioactiviteit' nodig om je te helpen met je agenda, herinneringen, vluchten en meer.</translation>
+<translation id="2315414688463285945">Fout bij het configureren van Linux-bestanden. Probeer het opnieuw.</translation>
 <translation id="2315821125498993513">Kan geen verbinding maken met de telefoon. <ph name="LINK_BEGIN" />Meer informatie.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Nee, bedankt</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% gereed</translation>
 <translation id="2318143611928805047">Papierformaat</translation>
 <translation id="2318817390901984578">Je moet je <ph name="DEVICE_TYPE" /> opladen en updaten om Android-apps te gebruiken.</translation>
 <translation id="2318923050469484167">Huidige incognitosessie (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Je beveiligingssleutel gebruiken met <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Kop- en voettekst</translation>
 <translation id="2325650632570794183">Dit bestandstype wordt niet ondersteund. Ga naar de Chrome Web Store om een app te vinden die dit bestandstype kan openen.</translation>
 <translation id="2326931316514688470">App opnieuw &amp;laden</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">File Share toevoegen</translation>
 <translation id="2367972762794486313">Apps weergeven</translation>
 <translation id="2369536625682139252">Alle gegevens die zijn opgeslagen door <ph name="SITE" /> worden verwijderd, behalve cookies.</translation>
-<translation id="237058345584060620">Koppel je sleutel met dit apparaat zodat je de sleutel kunt gebruiken om in te loggen op je account</translation>
 <translation id="2371076942591664043">Openen wanneer geree&amp;d</translation>
 <translation id="2377319039870049694">Overschakelen naar lijstweergave</translation>
 <translation id="2377667304966270281">Harde fouten</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Kan je telefoon niet vinden. Zorg ervoor dat Bluetooth is ingeschakeld op je <ph name="DEVICE_TYPE" />. &lt;a&gt;Meer informatie&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;Map toevoegen...</translation>
 <translation id="249113932447298600">Het apparaat <ph name="DEVICE_LABEL" /> wordt momenteel niet ondersteund.</translation>
-<translation id="2492040222276243256">Druk de knop op je beveiligingssleutel ten minste vijf seconden in</translation>
 <translation id="2493021387995458222">'Eén woord tegelijk' selecteren</translation>
 <translation id="249303669840926644">Kan de registratie niet voltooien</translation>
 <translation id="2495777824269688114">Ontdek meer functies of zoek antwoorden. Selecteer '?' voor hulp.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Totaal: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Lang</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Platform <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Dit tabblad deelt je scherm.</translation>
 <translation id="2586657967955657006">Klembord</translation>
 <translation id="2586672484245266891">Geef een kortere URL op</translation>
 <translation id="2587922270115112871">Als je een gebruiker met beperkte rechten maakt, maak je geen Google-account. De instellingen
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> gebruikt <ph name="USAGE" /> MB schijfruimte.</translation>
 <translation id="2633212996805280240">Wil je '<ph name="EXTENSION_NAME" />' verwijderen?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> kan de installatie niet voltooien, maar wordt nog steeds uitgevoerd via de schijfkopie.</translation>
-<translation id="2633326789677284179">Zoek de naam op de achterkant van je sleutel</translation>
 <translation id="2635276683026132559">Ondertekening</translation>
 <translation id="2636625531157955190">Chrome heeft geen toegang tot de afbeelding.</translation>
 <translation id="2638087589890736295">Wachtwoordzin vereist om de synchronisatie te starten</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> toevoegen…</translation>
 <translation id="2874343608108773609">Log in bij Chrome om je wachtwoorden op te halen op al je apparaten.</translation>
 <translation id="2875698561019555027">(Chrome-foutpagina's)</translation>
-<translation id="2876441201733326392">USB-beveiligingssleutel gebruiken</translation>
 <translation id="288042212351694283">Toegang tot je Universal 2nd Factor-apparaten</translation>
 <translation id="2881966438216424900">Laatst geopend:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> wordt zo meteen opnieuw gestart en opnieuw ingesteld.</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Anoniem melden</translation>
 <translation id="2984337792991268709">Vandaag <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Deze pagina is geblokkeerd voor volledig beheer van MIDI-apparaten.</translation>
-<translation id="2988599644347283908">Opmerking: De gegevens die worden beheerd met deze instellingen, kunnen worden opgeslagen en gebruikt in elke Google-service waarbij je bent ingelogd om gepersonaliseerde functionaliteit en relevante advertenties te leveren. Op account.google.com kun je je gegevens bekijken en verwijderen en de instellingen wijzigen.</translation>
 <translation id="2989474696604907455">niet aangesloten</translation>
 <translation id="2989786307324390836">DER Encoded Binary, één certificaat</translation>
 <translation id="2993517869960930405">App-informatie</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Dempen tabbladen opheffen</translation>
 <translation id="3053013834507634016">Sleutelgebruik voor certificaat</translation>
 <translation id="3057861065630527966">Een back-up van je foto's en video's maken</translation>
-<translation id="3059313675706898490">Android Berichten</translation>
 <translation id="3060379269883947824">'Selecteer om uitgesproken te worden' inschakelen</translation>
 <translation id="3061707000357573562">Patchservice</translation>
 <translation id="3064410671692449875">Onvoldoende gegevens</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Kan extern crx-bestand niet kopiëren naar <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">'<ph name="DEVICE_NAME" />' gekoppeld</translation>
 <translation id="3101709781009526431">Datum en tijd</translation>
-<translation id="3104900172193317662">Toestaan dat je beveiligingssleutel wordt gebruikt</translation>
 <translation id="310671807099593501">Site gebruikt Bluetooth</translation>
 <translation id="3115128645424181617">Kan je telefoon niet vinden. Zorg ervoor dat je deze bij de hand hebt en dat Bluetooth is ingeschakeld.</translation>
 <translation id="3115147772012638511">Wachten op cache...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Geen onderdeel van certificaat&gt;</translation>
 <translation id="3254434849914415189">Kies de standaardapp voor <ph name="FILE_TYPE" />-bestanden:</translation>
 <translation id="3254516606912442756">Automatische tijdzonedetectie is uitgeschakeld</translation>
-<translation id="3254772308201947812">Ja, ik doe mee</translation>
 <translation id="3264544094376351444">Sans-Serif-lettertype</translation>
 <translation id="3264547943200567728">Kan het netwerk van je Chromebox niet instellen</translation>
 <translation id="3264582393905923483">Context</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Sorteren op</translation>
 <translation id="3737274407993947948">Fout bij installeren van Linux...</translation>
 <translation id="3737536731758327622">Je downloads worden hier weergegeven</translation>
-<translation id="3738671331307774213">Door je identiteit te verifiëren, blijven je privégegevens beter beschermd</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> openen?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> wordt nu weergegeven in de beheerdersconsole</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: synchronisatie gepauzeerd</translation>
 <translation id="3860381078714302691">Welkom bij Hangouts Meet</translation>
+<translation id="3861241522664181545">Pagina is onderbroken.</translation>
 <translation id="3862134173397075045">Welkom bij de Cast-functie in Chrome!</translation>
 <translation id="3862788408946266506">Een app met het manifestkenmerk 'kiosk_only' moet worden geïnstalleerd in de Chrome OS-kioskmodus</translation>
 <translation id="3865414814144988605">Resolutie</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Als je dit wilt inschakelen, <ph name="BEGIN_LINK" />reset je de synchronisatie<ph name="END_LINK" /> om de wachtwoordzin voor synchronisatie te verwijderen</translation>
 <translation id="3878840326289104869">Gebruiker met beperkte rechten maken</translation>
 <translation id="3879748587602334249">Downloadbeheer</translation>
-<translation id="3880709822663530586">Je beveiligingssleutel werkt alleen wanneer de Bluetooth-functie van je apparaat is ingeschakeld</translation>
 <translation id="3888550877729210209">Notities maken met <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">OpenVPN/L2TP toevoegen...</translation>
 <translation id="3893536212201235195">Je toegankelijkheidsinstellingen lezen en wijzigen</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Beveiligde module wordt voorbereid, even geduld (dit kan enkele minuten duren)...</translation>
 <translation id="4099060993766194518">Standaardzoekmachine herstellen?</translation>
 <translation id="4100733287846229632">Er is zeer weinig ruimte beschikbaar op het apparaat</translation>
+<translation id="4103091233824664032">Geef je wachtwoord op om de schermvergrendeling in te stellen en in te loggen</translation>
 <translation id="4104163789986725820">E&amp;xporteren...</translation>
 <translation id="4105563239298244027">Ontvang 1 TB gratis met Google Drive</translation>
 <translation id="4107048419833779140">Opslagapparaten identificeren en verwijderen</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Nachtverlichting wordt automatisch uitgeschakeld bij zonsopgang</translation>
 <translation id="4138267921960073861">Gebruikersnamen en foto's weergeven in het inlogscherm</translation>
 <translation id="4144218403971135344">Ontvang video van betere kwaliteit en spaar de batterij. De video wordt alleen afgespeeld op je scherm dat werkt met Cast.</translation>
-<translation id="414599683948988413">Je beveiligingssleutel gebruiken met USB</translation>
 <translation id="4146026355784316281">Altijd openen met systeemviewer</translation>
 <translation id="4146785383423576110">Resetten en opruimen</translation>
 <translation id="4147897805161313378">Google Foto's</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Uitschakelen</translation>
 <translation id="4400367121200150367">Sites die nooit wachtwoorden opslaan, worden hier weergegeven</translation>
 <translation id="4400632832271803360">Houd de Launcher-toets ingedrukt om het gedrag van de toetsen in de bovenste rij om te schakelen</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">H&amp;elp</translation>
 <translation id="4409697491990005945">Marges</translation>
 <translation id="4411578466613447185">Ondertekening van code</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome kan schadelijke software op je computer vinden en verwijderen</translation>
 <translation id="4481530544597605423">Ontkoppelde apparaten</translation>
 <translation id="4482194545587547824">Google kan je browsegeschiedenis gebruiken om Google Zoeken en andere Google-services te personaliseren</translation>
+<translation id="4493287891836751813">Ontdek de Google Assistent</translation>
 <translation id="4495419450179050807">Niet op deze pagina weergeven</translation>
 <translation id="4499718683476608392">Automatisch aanvullen van creditcardgegevens inschakelen om formulieren met één klik in te vullen</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> is gecrasht</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Tabblad dempen</translation>
 <translation id="4742746985488890273">Vastmaken aan plank</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Meer informatie over hoe je apps updatet<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Berichten</translation>
 <translation id="4746971725921104503">Het lijkt erop dat je al een gebruiker met deze naam beheert. Wil je <ph name="LINK_START" /><ph name="USER_DISPLAY_NAME" /> naar dit apparaat importeren<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Vereist een extensie uit de Chrome Web Store</translation>
 <translation id="4750394297954878236">Suggesties</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Profiling ingeschakeld</translation>
 <translation id="4823484602432206655">Gebruikers- en apparaatinstellingen lezen en wijzigen</translation>
 <translation id="4823651846660089135">Apparaat is alleen-lezen</translation>
+<translation id="4823955295535347797">Open de Assistent wanneer je scherm is ingeschakeld door 'Oké Google' te zeggen.</translation>
 <translation id="4828937774870308359">Australisch</translation>
 <translation id="4829768588131278040">Pincode instellen</translation>
 <translation id="4830502475412647084">OS-update installeren</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Help onze engineers om deze crash te onderzoeken en op te lossen. Vermeld indien mogelijk je exacte stappen: elk detail is het vermelden waard.</translation>
 <translation id="4876895919560854374">Het scherm vergrendelen en ontgrendelen</translation>
 <translation id="4877017884043316611">Koppelen met Chromebox</translation>
+<translation id="4879491255372875719">Automatisch (standaard)</translation>
 <translation id="4880214202172289027">Volumeregelaar</translation>
 <translation id="4880328057631981605">Naam van toegangspunt</translation>
 <translation id="4880520557730313061">Automatisch bewerken</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">omhoog</translation>
 <translation id="5100114659116077956">Je Chromebox moet worden bijgewerkt als je de nieuwste functies wilt gebruiken.</translation>
 <translation id="5101042277149003567">Alle bladwijzers openen</translation>
-<translation id="5104546332954397226">Gebruik je telefoon als beveiligingssleutel</translation>
 <translation id="5105855035535475848">Tabbladen vastzetten</translation>
 <translation id="5108967062857032718">Instellingen - Android-apps verwijderen</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2799,7 +2794,6 @@
 <translation id="5288678174502918605">Gesloten tabblad opni&amp;euw openen</translation>
 <translation id="52912272896845572">Privésleutelbestand is ongeldig.</translation>
 <translation id="529175790091471945">Dit apparaat formatteren</translation>
-<translation id="5292195676005197571">De meeste beveiligingssleutels hebben een knop waarop je kunt drukken om ze te gebruiken</translation>
 <translation id="5293170712604732402">Instellingen terugzetten naar de oorspronkelijke standaardwaarden</translation>
 <translation id="5297082477358294722">Het wachtwoord is opgeslagen. Bekijk en beheer opgeslagen wachtwoorden in je <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Thema gemaakt door</translation>
@@ -2825,6 +2819,7 @@
 <translation id="532776649628038357">Ik ga akkoord</translation>
 <translation id="532943162177641444">Tik op de melding op je <ph name="PHONE_NAME" /> om de mobiele hotspot in te stellen die door dit apparaat kan worden gebruikt.</translation>
 <translation id="5329858601952122676">Verwij&amp;deren</translation>
+<translation id="5329945517224105597">Je Assistent kan meer relevante suggesties en specifieke acties laten zien die gerelateerd zijn aan de content op je scherm. Dit kun je wijzigen in de Assistent-instellingen.</translation>
 <translation id="5330145655348521461">Deze bestanden zijn op een ander bureaublad geopend. Verplaats ze naar <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) om ze weer te geven.</translation>
 <translation id="5330512191124428349">Informatie ophalen</translation>
 <translation id="5331069282670671859">Je hebt geen certificaten in deze categorie</translation>
@@ -2869,7 +2864,6 @@
 <translation id="5390100381392048184">Toestaan dat sites geluid afspelen</translation>
 <translation id="5390284375844109566">Geïndexeerde database</translation>
 <translation id="5390743329570580756">Verzenden voor</translation>
-<translation id="5392327114396848796">Gebruik een ingebouwde beveiligingssleutel</translation>
 <translation id="5397794290049113714">Jij</translation>
 <translation id="5398572795982417028">Paginaverwijzing valt buiten bereik, limiet is <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Advertenties geblokkeerd</translation>
@@ -3077,6 +3071,7 @@
    <ph name="LINE_BREAKS" />
    Sluit alle bestanden op de archiveringsschijf of virtuele schijf en probeer het opnieuw.</translation>
 <translation id="5687326903064479980">Tijdzone</translation>
+<translation id="568824803367507355">'Oké Google'-detectie</translation>
 <translation id="5689516760719285838">Locatie</translation>
 <translation id="56907980372820799">Gegevens koppelen</translation>
 <translation id="5691511426247308406">Familie</translation>
@@ -3174,7 +3169,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" />: camera of microfoon neemt op</translation>
 <translation id="5835754902560991078">extreem kort (0,6 sec.)</translation>
 <translation id="5838456317242088717">Huidige incognitosessie</translation>
-<translation id="5842053879378944309">USB-beveiligingssleutel gebruiken met <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Bluetooth inschakelen</translation>
 <translation id="5843250171025351504">Je apparaat voldoet niet meer aan de minimale clientversie die is gespecificeerd door je beheerder. Voer een update uit om in te loggen.</translation>
 <translation id="5846929185714966548">Tabblad 4</translation>
@@ -3492,7 +3486,6 @@
 <translation id="6317318380444133405">Niet meer ondersteund.</translation>
 <translation id="6317369057005134371">Wachten op appvenster...</translation>
 <translation id="6318407754858604988">Download gestart</translation>
-<translation id="6322653941595359182">Sms'jes verzenden en ontvangen op je Chromebook</translation>
 <translation id="6324916366299863871">Snelkoppeling bewerken</translation>
 <translation id="6325191661371220117">Automatisch starten uitschakelen</translation>
 <translation id="6326175484149238433">Verwijderen uit Chrome</translation>
@@ -3536,6 +3529,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />Systeeminformatie<ph name="END_LINK1" /> en <ph name="BEGIN_LINK2" />statistische gegevens<ph name="END_LINK2" /> verzenden</translation>
 <translation id="6397094776139756010">Synchronisatie- en personalisatieopties</translation>
 <translation id="6397592254427394018">Alle bladwijzers openen in &amp;incognitovenster</translation>
+<translation id="639777613761517128">Als je bestanden wilt openen met $1, moet je ze eerst kopiëren naar de map met Linux-bestanden.</translation>
 <translation id="6398715114293939307">Google Play Store verwijderen</translation>
 <translation id="6398765197997659313">Volledig scherm sluiten</translation>
 <translation id="6399774419735315745">Spionne</translation>
@@ -3561,7 +3555,6 @@
 <translation id="642282551015776456">Deze naam mag niet worden gebruikt als de naam van een bestand of map.</translation>
 <translation id="642469772702851743">Dit apparaat (serienummer: <ph name="SERIAL_NUMBER" />) is vergrendeld door de eigenaar.</translation>
 <translation id="6426200009596957090">ChromeVox-instellingen openen</translation>
-<translation id="6427415464407526111">Je beveiligingssleutel selecteren</translation>
 <translation id="6429384232893414837">Updatefout</translation>
 <translation id="6430814529589430811">Base64 Encoded ASCII, één certificaat</translation>
 <translation id="6431217872648827691">Alle gegevens zijn versleuteld met je Google-wachtwoord vanaf:
@@ -3719,7 +3712,6 @@
 <translation id="6655190889273724601">Ontwikkelaarmodus</translation>
 <translation id="6655458902729017087">Accounts verbergen</translation>
 <translation id="6657585470893396449">Wachtwoord</translation>
-<translation id="6658023813581644008">Geef je wachtwoord op als je Smart Lock voor inloggen wilt instellen</translation>
 <translation id="6659213950629089752">Deze pagina is ingezoomd met de extensie '<ph name="NAME" />'</translation>
 <translation id="6659594942844771486">Tabblad</translation>
 <translation id="6664237456442406323">Je computer is geconfigureerd met een hardware-ID met een onjuiste notatie. Dit zorgt ervoor dat Chrome OS niet kan worden bijgewerkt met de nieuwste beveiligingsoplossingen, waardoor je computer <ph name="BEGIN_BOLD" />kwetsbaar kan zijn voor schadelijke aanvallen<ph name="END_BOLD" />.</translation>
@@ -3855,7 +3847,6 @@
 <translation id="6885771755599377173">Voorbeeld van systeeminformatie</translation>
 <translation id="6886871292305414135">Link openen in nieuw &amp;tabblad</translation>
 <translation id="6892812721183419409">Link openen als <ph name="USER" /></translation>
-<translation id="6896398788631624004">Sluit je beveiligingssleutel aan en activeer deze</translation>
 <translation id="6896758677409633944">Kopieer</translation>
 <translation id="6898440773573063262">Kiosk-apps kunnen nu worden geconfigureerd voor automatisch starten op dit apparaat.</translation>
 <translation id="6898699227549475383">Organisatie (O)</translation>
@@ -3874,6 +3865,7 @@
 <translation id="6915804003454593391">Gebruiker:</translation>
 <translation id="6916590542764765824">Extensies beheren</translation>
 <translation id="6920989436227028121">Openen als normaal tabblad</translation>
+<translation id="6921709132208495314">Geen data meer gebruiken op deze pagina</translation>
 <translation id="6922128026973287222">Sla gegevens op en surf sneller met Databesparing van Google. Klik voor meer informatie.</translation>
 <translation id="6923132443355966645">Scroll/klik</translation>
 <translation id="6930242544192836755">Duur</translation>
@@ -3896,6 +3888,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Poort</translation>
 <translation id="6965978654500191972">Apparaat</translation>
+<translation id="6968288415730398122">Geef je wachtwoord op om de schermvergrendeling te configureren</translation>
 <translation id="6970480684834282392">Opstarttype</translation>
 <translation id="6970856801391541997">Specifieke pagina's afdrukken</translation>
 <translation id="6972180789171089114">Audio/video</translation>
@@ -3906,6 +3899,7 @@
 <translation id="6978121630131642226">Zoekmachines</translation>
 <translation id="6978611942794658017">Dit bestand is bedoeld voor een pc met Windows-software. Dit is niet compatibel met je apparaat dat Chrome OS gebruikt. Zoek in de Chrome Web Store naar een geschikte vervangende app.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Dempen (standaard)</translation>
 <translation id="6979737339423435258">Altijd</translation>
 <translation id="6980462514016882061">Google kan je browsegeschiedenis gebruiken om Google Zoeken, advertenties en andere Google-services te personaliseren</translation>
 <translation id="6981982820502123353">Toegankelijkheid</translation>
@@ -4054,6 +4048,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Dit zijn algemene gegevens over je apparaat en hoe je het apparaat gebruikt (zoals de batterijstatus, het app-gebruik en de netwerkverbinding). De gegevens worden gebruikt om de producten en services van Google voor iedereen te verbeteren. Sommige samengevoegde gegevens helpen ook partners (zoals Android-ontwikkelaars) om hun apps en producten beter te maken.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Als je deze functie uitschakelt, kan je apparaat nog steeds de gegevens verzenden die nodig zijn voor essentiële services, zoals systeemupdates en beveiliging.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Je kunt deze functie beheren via Instellingen &gt; Google. Selecteer 'Gebruik en diagnostische gegevens' in het menu.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">We hebben in je account <ph name="NUMBER_OF_APPS" /> apps gevonden die op dit apparaat kunnen worden gebruikt.</translation>
 <translation id="7199158086730159431">H&amp;ulp vragen</translation>
 <translation id="7200083590239651963">Configuratie selecteren</translation>
 <translation id="720110658997053098">Dit apparaat permanent in kioskmodus houden</translation>
@@ -4074,7 +4069,6 @@
 <translation id="7228523857728654909">Schermvergrendeling en inloggen</translation>
 <translation id="7229570126336867161">EVDO vereist</translation>
 <translation id="7230787553283372882">Tekstgrootte aanpassen</translation>
-<translation id="7231589788477569369">Maak optimaal gebruik van de volledige Assistent-functionaliteit met deze instellingen</translation>
 <translation id="7232750842195536390">Kan naam niet wijzigen</translation>
 <translation id="7234406375359457793">Fout bij het activeren van de fileshare. De opgegeven fileshare wordt niet ondersteund.</translation>
 <translation id="7238585580608191973">SHA-256-vingerafdruk</translation>
@@ -4084,7 +4078,6 @@
 <translation id="7243632151880336635">Wissen en uitloggen</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (beste)</translation>
 <translation id="7246339268451149667">Ontgrendelen via vingerafdruk inschakelen?</translation>
-<translation id="7246489301073081944">Houd |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| ingedrukt om af te sluiten</translation>
 <translation id="7246947237293279874">FTP-proxy</translation>
 <translation id="725109152065019550">Je beheerder heeft externe opslag uitgeschakeld voor je account.</translation>
 <translation id="7253521419891527137">&amp;Meer informatie</translation>
@@ -4237,7 +4230,6 @@
 <translation id="7489605380874780575">Geschiktheid controleren</translation>
 <translation id="749028671485790643">Persoon <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC-adres</translation>
-<translation id="7490950320178383728">Je beveiligingssleutel gebruiken met Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">De extensie <ph name="EXTENSION_NAME" /> kan alle tekst verzamelen die je typt, waaronder persoonlijke gegevens zoals wachtwoorden en creditcardnummers. Wil je deze extensie gebruiken?</translation>
 <translation id="7494065396242762445">Windows-instellingen openen</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">Deze Drive-bestanden zijn nog niet gedeeld</translation>
 <translation id="7851457902707056880">Er kan alleen worden ingelogd met het account van de eigenaar. Start het apparaat opnieuw op en log in met het account van de eigenaar. Het apparaat wordt over 30 seconden automatisch opnieuw opgestart.</translation>
 <translation id="7851716364080026749">Toegang tot de camera en microfoon altijd blokkeren</translation>
-<translation id="7851816139220202929">Je beveiligingssleutel gebruiken met NFC</translation>
 <translation id="7853747251428735">Meer hu&amp;lpprogramma's</translation>
 <translation id="7856006446339184955">Systeemgegevens verzenden. Dit apparaat verzendt momenteel diagnostische en app- en gebruiksgegevens automatisch naar Google. Deze <ph name="BEGIN_LINK1" />instellingen<ph name="END_LINK1" /> wordt afgedwongen door de eigenaar. Als je 'Web- en app-activiteit' ook hebt ingeschakeld, worden deze gegevens opgeslagen in je account, zodat je ze kunt beheren in 'Mijn activiteit'. <ph name="BEGIN_LINK2" />Meer informatie<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Uitzondering toevoegen</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">PPP-verificatie mislukt wegens een onjuiste gebruikersnaam of wachtwoord</translation>
 <translation id="7974566588408714340"><ph name="EXTENSIONNAME" /> opnieuw proberen te gebruiken</translation>
 <translation id="7974936243149753750">Overscan</translation>
+<translation id="79766959863778284">Geïsoleerde XR-apparaatservice</translation>
 <translation id="7977551819349545646">Chromebox bijwerken...</translation>
 <translation id="7978412674231730200">Privésleutel</translation>
 <translation id="7978450511781612192">Hiermee word je uitgelogd van je Google-accounts. Onder meer je bladwijzers, geschiedenis en wachtwoorden worden niet meer gesynchroniseerd.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Printer toevoegen</translation>
 <translation id="8032244173881942855">Kan tabblad niet casten.</translation>
 <translation id="8033827949643255796">geselecteerd</translation>
-<translation id="8033958968890501070">Time-out</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Alles openen in &amp;incognitovenster}=1{Openen in &amp;incognitovenster}other{Alles (#) openen in &amp;incognitovenster}}</translation>
 <translation id="8037117027592400564">Alle tekst lezen die wordt gesproken met gesynthetiseerde spraak</translation>
 <translation id="8037357227543935929">Vragen (standaard)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Je volledige scherm</translation>
 <translation id="8322814362483282060">Deze pagina heeft geen toegang tot je microfoon.</translation>
 <translation id="8326478304147373412">PKCS nr. 7, certificaatketen</translation>
+<translation id="8327039559959785305">Fout bij het activeren van Linux-bestanden. Probeer het opnieuw.</translation>
 <translation id="8329978297633540474">Platte tekst</translation>
 <translation id="8335587457941836791">Losmaken van plank</translation>
 <translation id="8336153091935557858">Gisteren <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">Wijzigen</translation>
 <translation id="8425492902634685834">Vastzetten op taakbalk</translation>
 <translation id="8425755597197517046">&amp;Plakken en zoeken</translation>
-<translation id="8426117172745886547">Waarschuwen voordat er wordt afgesloten (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Inschakelen</translation>
 <translation id="8427292751741042100">ingesloten in een host</translation>
 <translation id="8428213095426709021">Instellingen</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">Licenties</translation>
 <translation id="8553342806078037065">Andere mensen beheren</translation>
 <translation id="8554899698005018844">Geen taal</translation>
-<translation id="8557347704037207368">Je meldingen sturen vanuit Android Berichten voor het web</translation>
 <translation id="855773602626431402">Er is voorkomen dat een plug-in zonder sandbox op deze pagina werd uitgevoerd.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Image Decoder</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">Einde van ondersteuningsperiode</translation>
 <translation id="8714838604780058252">Achtergrondbeelden</translation>
 <translation id="8715480913140015283">Achtergrondtabblad gebruikt je camera</translation>
+<translation id="8716931980467311658">Alle Linux-apps en -gegevens in je map met Linux-bestanden verwijderen van deze <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Kan <ph name="PLUGIN_NAME" /> niet downloaden</translation>
 <translation id="8723829621484579639">Incognitosubframes voor: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Weergeven in map</translation>
@@ -5207,7 +5198,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: gecrasht</translation>
 <translation id="8983677657449185470">Help 'Safe Browsing' te verbeteren</translation>
 <translation id="8984654317541110628">URL voor fileshare</translation>
-<translation id="8984872292925913496">Zoek de pincode van zes cijfers op de achterkant van je sleutel</translation>
 <translation id="8986362086234534611">Vergeten</translation>
 <translation id="8986494364107987395">Automatisch gebruiksstatistieken en crashrapporten naar Google verzenden</translation>
 <translation id="8987927404178983737">Maand</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 5baf09d..ccee95b 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Fremhev objektet med tastaturfokus når det endres</translation>
 <translation id="1173894706177603556">Gi nytt navn</translation>
 <translation id="1174073918202301297">Snarveien er lagt til</translation>
-<translation id="1174808551768282258">Lås opp Chromebooken med telefonen. <ph name="LINK_BEGIN" />Finn ut mer.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Skriv ut...</translation>
 <translation id="117624967391683467">Kopierer <ph name="FILE_NAME" /> ...</translation>
 <translation id="1177138678118607465">Google kan bruke nettlesingsloggen din for å gi Søk, annonser og andre Google-tjenester et personlig preg. Du kan når som helst endre dette på myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Stans midlertidig</translation>
 <translation id="1181037720776840403">Fjern</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> kan ikke installeres i lokalbufferen.</translation>
-<translation id="1183378459020939734">Er du klar til å koble til sikkerhetsnøkkelen din?</translation>
 <translation id="1185924365081634987">Du kan også prøve å <ph name="GUEST_SIGNIN_LINK_START" />surfe som gjest<ph name="GUEST_SIGNIN_LINK_END" /> for å løse denne nettverksfeilen.</translation>
 <translation id="1186771945450942097">Fjern den skadelige programvaren</translation>
 <translation id="1187722533808055681">Inaktive oppvåkninger</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Fant ingen Bluetooth-enheter</translation>
 <translation id="1306606229401759371">Endre innstillingene</translation>
 <translation id="1307559529304613120">Beklager. Systemet kunne ikke lagre noe langvarig API-tilgangstoken for denne enheten.</translation>
+<translation id="1307931752636661898">Kan ikke vise Linux-filer</translation>
 <translation id="1313405956111467313">Automatisk konfigurasjon av mellomtjener</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Bokmerkene, loggen og andre innstillinger synkroniseres til Google-kontoen din.</translation>
@@ -364,6 +363,7 @@
 <translation id="1530838837447122178">Åpne innstillingene for mus og styreflate</translation>
 <translation id="1531004739673299060">Programvindu</translation>
 <translation id="15373452373711364">Stor markør</translation>
+<translation id="1538729222189715449">Åpner Linux-filer …</translation>
 <translation id="1540605929960647700">Slå på demomodus</translation>
 <translation id="1543284117603151572">Importert fra Edge</translation>
 <translation id="1545177026077493356">Automatisk kioskmodus</translation>
@@ -539,7 +539,6 @@
 <translation id="1782530111891678861">Endre modus for berørings-HUD</translation>
 <translation id="1784849162047402014">Det er lite plass på enheten</translation>
 <translation id="1786636458339910689">Teamdisker</translation>
-<translation id="1792161662640298233">Bekrefter sikkerhetsnøkkelen din</translation>
 <translation id="1792619191750875668">Utvidet skjerm</translation>
 <translation id="1794791083288629568">Send tilbakemelding så vi kan prøve å løse problemet.</translation>
 <translation id="1795214765651529549">Bruk klassisk</translation>
@@ -622,7 +621,6 @@
 <translation id="1910721550319506122">Velkommen!</translation>
 <translation id="1914326953223720820">Utpakkingstjeneste</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Avhengig av kontoinnstillingene dine kan det hende at informasjonen du får fra assistenten, begrenses til ting som nettresultater, vitser og lokal informasjon.</translation>
 <translation id="1916502483199172559">Rødt standardbrukerbilde</translation>
 <translation id="1918141783557917887">&amp;Mindre</translation>
 <translation id="1919345977826869612">Annonser</translation>
@@ -791,6 +789,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> på <ph name="PEPPER_PLUGIN_DOMAIN" /> ber om tilgang til datamaskinen din</translation>
 <translation id="2178614541317717477">Sertifiseringsinstans-kompromiss</translation>
 <translation id="218070003709087997">Bruk et tall for å angi hvor mange eksemplarer som skal skrives ut (1–999).</translation>
+<translation id="2184515124301515068">La Chrome velge når nettsteder kan spille av lyd (anbefalt)</translation>
 <translation id="2187895286714876935">Feil ved import av tjenersertifikat</translation>
 <translation id="2187906491731510095">Utvidelser er oppdatert</translation>
 <translation id="2188881192257509750">Åpne <ph name="APPLICATION" /></translation>
@@ -835,6 +834,7 @@
 <translation id="2241053333139545397">lese og endre opplysningene dine på mange nettsteder</translation>
 <translation id="2242687258748107519">Filinformasjon</translation>
 <translation id="2243194103992005307">For å fjerne apper, gå til Innstillinger &gt; Apper eller Appstyring. Trykk deretter på appen du vil avinstallere (du må kanskje sveipe til høyre eller venstre for å finne den). Trykk deretter på Avinstaller, Deaktiver eller Slå av.</translation>
+<translation id="224940702122312781">Denne siden bruker mye data.</translation>
 <translation id="2249605167705922988">f.eks. 1–5, 8, 11–13</translation>
 <translation id="2251218783371366160">Åpne med visningsprogrammet for systemet</translation>
 <translation id="225163402930830576">Oppdater nettverk</translation>
@@ -875,14 +875,13 @@
 <translation id="2307462900900812319">Konfigurer nettverket</translation>
 <translation id="230927227160767054">Denne nettsiden ber om å få installere en behandlingssnarvei for en tjeneste.</translation>
 <translation id="2309620859903500144">Bevegelses- og lyssensorene er blokkert fra dette nettstedet.</translation>
-<translation id="2311075084924370935">For å hjelpe deg med blant annet kalenderen, påminnelser og flyreiser må assistenten din ha tilgang til innstillingene for nett- og appaktivitet, enhetsinformasjon samt tale- og lydaktivitet.</translation>
+<translation id="2315414688463285945">Feil ved konfigurering av Linux-filer. Prøv på nytt.</translation>
 <translation id="2315821125498993513">Kunne ikke koble til telefonen. <ph name="LINK_BEGIN" />Finn ut mer.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Nei takk</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % ferdig</translation>
 <translation id="2318143611928805047">Papirstørrelse</translation>
 <translation id="2318817390901984578">For å bruke Android-apper, lad og oppdater <ph name="DEVICE_TYPE" />-enheten din.</translation>
 <translation id="2318923050469484167">Denne inkognitoøkten (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Bruk sikkerhetsnøkkelen din med <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Topp- og bunntekst</translation>
 <translation id="2325650632570794183">Denne filtypen støttes ikke. Gå til Chrome Nettmarked for å finne en app som kan åpne denne filtypen.</translation>
 <translation id="2326931316514688470">&amp;Last inn appen på nytt</translation>
@@ -916,7 +915,6 @@
 <translation id="2367199180085172140">Legg til fildeling</translation>
 <translation id="2367972762794486313">Vis apper</translation>
 <translation id="2369536625682139252">Alle data som lagres av <ph name="SITE" />, blir slettet, med unntak av informasjonskapsler.</translation>
-<translation id="237058345584060620">Koble nøkkelen din til denne enheten, slik at du kan bruke den til å logge på kontoen din</translation>
 <translation id="2371076942591664043">Åpne når ne&amp;dlastingen er ferdig</translation>
 <translation id="2377319039870049694">Bytt til listevisning</translation>
 <translation id="2377667304966270281">Harde feil</translation>
@@ -983,7 +981,6 @@
 <translation id="248861575772995840">Finner ikke telefonen. Sørg for at Bluetooth er aktivert på <ph name="DEVICE_TYPE" />-enheten. &lt;a&gt;Finn ut mer&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Legg til &amp;mappe</translation>
 <translation id="249113932447298600">Beklager, men enheten <ph name="DEVICE_LABEL" /> støttes foreløpig ikke.</translation>
-<translation id="2492040222276243256">Trykk inn knappen på sikkerhetsnøkkelen i minst fem sekunder</translation>
 <translation id="2493021387995458222">Velg «ord om gangen»</translation>
 <translation id="249303669840926644">Kunne ikke fullføre registreringen</translation>
 <translation id="2495777824269688114">Oppdag flere funksjoner eller få svar. Velg «?» for å få hjelp.</translation>
@@ -1053,6 +1050,7 @@
 <translation id="2580924999637585241">Totalt: <ph name="SHEETS_LABEL" /> <ph name="NUMBER_OF_SHEETS" /></translation>
 <translation id="258095186877893873">Lang</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> – <ph name="PRODUCT_VERSION" /> (plattform <ph name="PLATFORM_VERSION" />) – <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Denne fanen deler skjermen din.</translation>
 <translation id="2586657967955657006">Utklippstavle</translation>
 <translation id="2586672484245266891">Skriv inn en kortere nettadresse</translation>
 <translation id="2587922270115112871">Når du oppretter en administrert bruker, oppretter du ikke en Google-konto, og vedkommendes innstillinger og data blir ikke kopiert til andre enheter med Chrome-synkronisering. En administrert bruker er bare tilgjengelig på denne enheten.</translation>
@@ -1087,7 +1085,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> bruker <ph name="USAGE" /> MB lagringsplass.</translation>
 <translation id="2633212996805280240">Vil du fjerne «<ph name="EXTENSION_NAME" />»?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> kan ikke fullføre installeringen, men vil fortsette å kjøre fra diskavbildningen.</translation>
-<translation id="2633326789677284179">Finn navnet som er trykt på baksiden av nøkkelen din</translation>
 <translation id="2635276683026132559">Signering</translation>
 <translation id="2636625531157955190">Chrome kan ikke få tilgang til bildet.</translation>
 <translation id="2638087589890736295">Det kreves en passordfrase for å starte synkroniseringen</translation>
@@ -1255,7 +1252,6 @@
 <translation id="287286579981869940">Legg til <ph name="PROVIDER_NAME" /></translation>
 <translation id="2874343608108773609">For å få passordene dine på alle enhetene du bruker, logg på Chrome.</translation>
 <translation id="2875698561019555027">(Chrome-feilsider)</translation>
-<translation id="2876441201733326392">Bruk USB-sikkerhetsnøkkel</translation>
 <translation id="288042212351694283">Tilgang til de universelle annenfaktorenhetene dine</translation>
 <translation id="2881966438216424900">Sist åpnet:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> startes på nytt og tilbakestilles øyeblikkelig</translation>
@@ -1323,7 +1319,6 @@
 <translation id="2982970937345031">Rapporér anonymt</translation>
 <translation id="2984337792991268709">I dag kl. <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Full kontroll over MIDI-enheter er blokkert for denne siden.</translation>
-<translation id="2988599644347283908">Merk: Dataene som kontrolleres av disse innstillingene, kan lagres og brukes i hvilken som helst Google-tjeneste der du er logget på, slik at du får en personlig tilpasset opplevelse og nyttige annonser. Du kan se og slette dataene dine samt endre innstillingene dine på account.google.com.</translation>
 <translation id="2989474696604907455">ikke tilkoblet</translation>
 <translation id="2989786307324390836">DER-kodet binært, enkelt sertifikat</translation>
 <translation id="2993517869960930405">Appinformasjon</translation>
@@ -1376,7 +1371,6 @@
 <translation id="304826556400666995">Slå på lyden for fanene</translation>
 <translation id="3053013834507634016">Bruk av sertifikatnøkkel</translation>
 <translation id="3057861065630527966">Sikkerhetskopiér bildene og videoene dine</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Slå på Tekstopplesing</translation>
 <translation id="3061707000357573562">Feilrettingstjeneste</translation>
 <translation id="3064410671692449875">Ikke nok data</translation>
@@ -1405,7 +1399,6 @@
 <translation id="3090819949319990166">Kunne ikke kopiere den eksterne crx-filen til <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">«<ph name="DEVICE_NAME" />» er tilkoblet</translation>
 <translation id="3101709781009526431">Dato og klokkeslett</translation>
-<translation id="3104900172193317662">Tillat bruk av sikkerhetsnøkkelen din</translation>
 <translation id="310671807099593501">Nettstedet bruker Bluetooth</translation>
 <translation id="3115128645424181617">Finner ikke telefonen. Sørg for at den er i nærheten, og at Bluetooth er slått på.</translation>
 <translation id="3115147772012638511">Venter på buffer...</translation>
@@ -1489,7 +1482,6 @@
 <translation id="3251759466064201842">&lt;Ikke del av sertifikat&gt;</translation>
 <translation id="3254434849914415189">Velg standardapp for <ph name="FILE_TYPE" />-filer:</translation>
 <translation id="3254516606912442756">Automatisk gjenkjenning av tidssone er deaktivert</translation>
-<translation id="3254772308201947812">Ja, den er grei</translation>
 <translation id="3264544094376351444">Uten seriffer</translation>
 <translation id="3264547943200567728">Kunne ikke konfigurere nettverket for Chromeboxen</translation>
 <translation id="3264582393905923483">Kontekst</translation>
@@ -1811,7 +1803,6 @@
 <translation id="3735740477244556633">Sortér etter</translation>
 <translation id="3737274407993947948">Feil ved installering av Linux …</translation>
 <translation id="3737536731758327622">Nedlastingene dine vises her</translation>
-<translation id="3738671331307774213">Ved å verifisere identiteten din bidrar du til å beskytte de private dataene dine.</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Vil du åpne <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859">Nå vises <ph name="DEVICE_NAME" /> i administrasjonskonsollen</translation>
@@ -1905,6 +1896,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Synkronisering er satt på pause</translation>
 <translation id="3860381078714302691">Velkommen til Hangouts Meet</translation>
+<translation id="3861241522664181545">Siden er satt på pause.</translation>
 <translation id="3862134173397075045">Velkommen til casting i Chrome!</translation>
 <translation id="3862788408946266506">Apper med manifest-attributtet «kiosk_only» må være installert i Chrome OS-kioskmodus</translation>
 <translation id="3865414814144988605">Oppløsning</translation>
@@ -1919,7 +1911,6 @@
 <translation id="3873315167136380065">For å slå dette på, <ph name="BEGIN_LINK" />tilbakestill synkroniseringen<ph name="END_LINK" /> for å fjerne passordfrasen din for synkronisering</translation>
 <translation id="3878840326289104869">Oppretter en administrert bruker</translation>
 <translation id="3879748587602334249">Nedlastingsbehandling</translation>
-<translation id="3880709822663530586">Sikkerhetsnøkkelen din fungerer bare når enhetens Bluetooth er på</translation>
 <translation id="3888550877729210209">Tar notater med <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Legg til OpenVPN/L2TP</translation>
 <translation id="3893536212201235195">lese og endre innstillingene for tilgjengelighet</translation>
@@ -2063,6 +2054,7 @@
 <translation id="4096824249111507322">Den sikre modulen klargjøres. Vent litt – dette kan ta noen få minutter.</translation>
 <translation id="4099060993766194518">Vil du gjenopprette standardsøkemotoren?</translation>
 <translation id="4100733287846229632">Det er kritisk lite plass på enheten</translation>
+<translation id="4103091233824664032">Skriv inn passordet ditt for å konfigurere skjermlåsen og påloggingen</translation>
 <translation id="4104163789986725820">E&amp;ksportér</translation>
 <translation id="4105563239298244027">Få 1 TB gratis lagring med Google Disk</translation>
 <translation id="4107048419833779140">Identifiser og løs ut lagringsenheter</translation>
@@ -2083,7 +2075,6 @@
 <translation id="4136203100490971508">Nattlys blir slått av automatisk ved soloppgang</translation>
 <translation id="4138267921960073861">Vis brukernavn og bilder på påloggingsskjermen</translation>
 <translation id="4144218403971135344">Få video med bedre kvalitet og spar batteri. Videoen spilles kun av på den Cast-kompatible skjermen.</translation>
-<translation id="414599683948988413">Bruk sikkerhetsnøkkelen din med USB</translation>
 <translation id="4146026355784316281">Åpne alltid med systemvisningsprogrammet</translation>
 <translation id="4146785383423576110">Tilbakestill og rydd opp</translation>
 <translation id="4147897805161313378">Google Foto</translation>
@@ -2218,6 +2209,7 @@
 <translation id="4394049700291259645">Slå av</translation>
 <translation id="4400367121200150367">Nettsteder som aldri lagrer passord, vises her</translation>
 <translation id="4400632832271803360">Hold Appoversikt-tasten inne for å endre funksjonene for tastene på øverste rad</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">H&amp;jelp</translation>
 <translation id="4409697491990005945">Marger</translation>
 <translation id="4411578466613447185">Kodesignatar</translation>
@@ -2266,6 +2258,7 @@
 <translation id="4480590691557335796">Chrome kan finne skadelig programvare på datamaskinen din og fjerne den</translation>
 <translation id="4481530544597605423">Frakoblede enheter</translation>
 <translation id="4482194545587547824">Google kan bruke nettlesingsloggen din for å gi Søk og andre Google-tjenester et personlig preg</translation>
+<translation id="4493287891836751813">Her er Google-assistenten din</translation>
 <translation id="4495419450179050807">Ikke vis på denne siden</translation>
 <translation id="4499718683476608392">Slå på autofyll for kredittkort for å fylle ut skjemaer med ett klikk</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> har kræsjet</translation>
@@ -2426,6 +2419,7 @@
 <translation id="474217410105706308">Slå av lyden for fanen</translation>
 <translation id="4742746985488890273">Fest til hyllen</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Finn ut hvordan du oppdaterer programmer<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Meldinger</translation>
 <translation id="4746971725921104503">Det kan virke som om du allerede administrerer en bruker med det navnet. Ville du <ph name="LINK_START" />importere <ph name="USER_DISPLAY_NAME" /> til denne enheten<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Krever utvidelse fra Chrome Nettmarked</translation>
 <translation id="4750394297954878236">Forslag</translation>
@@ -2467,6 +2461,7 @@
 <translation id="4821935166599369261">&amp;Profilering aktivert</translation>
 <translation id="4823484602432206655">lese og endre bruker- og enhetsinnstillinger</translation>
 <translation id="4823651846660089135">Enheten er skrivebeskyttet</translation>
+<translation id="4823955295535347797">Du får tilgang til assistenten din ved å si «Ok Google» når skjermen er på.</translation>
 <translation id="4828937774870308359">Australsk</translation>
 <translation id="4829768588131278040">Konfigurer en PIN-kode</translation>
 <translation id="4830502475412647084">Installerer OS-oppdateringen</translation>
@@ -2507,6 +2502,7 @@
 <translation id="4876273079589074638">Hjelp teknikerne våre med å undersøke og fikse denne feilen. Legg inn den nøyaktige fremgangsmåten om du kan. Ingen detaljer er ubetydelige.</translation>
 <translation id="4876895919560854374">låse og låse opp skjermen</translation>
 <translation id="4877017884043316611">Koble sammen med Chromebox</translation>
+<translation id="4879491255372875719">Automatisk (standard)</translation>
 <translation id="4880214202172289027">Volumbryter</translation>
 <translation id="4880328057631981605">Navn på tilgangspunkt</translation>
 <translation id="4880520557730313061">Autokorrigering</translation>
@@ -2659,7 +2655,6 @@
 <translation id="5099354524039520280">opp</translation>
 <translation id="5100114659116077956">Chromebox må oppdateres for å gi deg tilgang til de nyeste funksjonene.</translation>
 <translation id="5101042277149003567">Åpne alle bokmerker</translation>
-<translation id="5104546332954397226">Bruk telefonen din som sikkerhetsnøkkel</translation>
 <translation id="5105855035535475848">Fest faner</translation>
 <translation id="5108967062857032718">Innstillinger – Fjern Android-apper</translation>
 <translation id="5109044022078737958">Sporty</translation>
@@ -2790,7 +2785,6 @@
 <translation id="5288678174502918605">Gj&amp;enåpne den lukkede fanen</translation>
 <translation id="52912272896845572">Den private nøkkelfilen er ugyldig.</translation>
 <translation id="529175790091471945">Formatér denne enheten</translation>
-<translation id="5292195676005197571">For å bruke de fleste nøkler, bare trykk på knappen</translation>
 <translation id="5293170712604732402">Tilbakestill innstillingene til standardverdiene</translation>
 <translation id="5297082477358294722">Passordet er lagret. Se og administrer lagrede passord på <ph name="SAVED_PASSWORDS_STORE" /> din.</translation>
 <translation id="5298219193514155779">Tema opprettet av</translation>
@@ -2816,6 +2810,7 @@
 <translation id="532776649628038357">Godta</translation>
 <translation id="532943162177641444">Trykk på varselet på <ph name="PHONE_NAME" />-enheten din for å konfigurere en mobil Wi-Fi-sone denne enheten kan bruke.</translation>
 <translation id="5329858601952122676">&amp;Slett</translation>
+<translation id="5329945517224105597">Assistenten kan gi deg mer relevante forslag og spesifikke handlinger som er relatert til det som er på skjermen. Du kan endre dette i innstillingene for assistenten</translation>
 <translation id="5330145655348521461">Disse filene ble åpnet på et annet skrivebord. Flytt til <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) for å se dem.</translation>
 <translation id="5330512191124428349">Få informasjon</translation>
 <translation id="5331069282670671859">Du har ingen sertifikater i denne kategorien</translation>
@@ -2860,7 +2855,6 @@
 <translation id="5390100381392048184">Tillat nettsteder å spille av lyd</translation>
 <translation id="5390284375844109566">Indeksert database</translation>
 <translation id="5390743329570580756">Send for</translation>
-<translation id="5392327114396848796">Bruk en innebygd sikkerhetsnøkkel</translation>
 <translation id="5397794290049113714">Deg</translation>
 <translation id="5398572795982417028">Sidereferansen ligger utenfor det gyldige området. Grensen er <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Annonser er blokkert</translation>
@@ -3068,6 +3062,7 @@
    <ph name="LINE_BREAKS" />
    Lukk alle filene i arkivet eller på den virtuelle disken, og prøv på nytt.</translation>
 <translation id="5687326903064479980">Tidssone</translation>
+<translation id="568824803367507355">«Ok Google»-gjenkjenning</translation>
 <translation id="5689516760719285838">Sted</translation>
 <translation id="56907980372820799">Koble sammen data</translation>
 <translation id="5691511426247308406">Familie</translation>
@@ -3165,7 +3160,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kamera- eller mikrofonopptak</translation>
 <translation id="5835754902560991078">ekstremt kort (0,6 s)</translation>
 <translation id="5838456317242088717">Denne inkognitoøkten</translation>
-<translation id="5842053879378944309">Bruk USB-sikkerhetsnøkkelen med <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Slå Bluetooth av og på</translation>
 <translation id="5843250171025351504">Enheten din overholder ikke lenger minimum klientversjon som er angitt av administratoren din. Oppdater for å logge på.</translation>
 <translation id="5846929185714966548">Fane 4</translation>
@@ -3483,7 +3477,6 @@
 <translation id="6317318380444133405">Støttes ikke lenger.</translation>
 <translation id="6317369057005134371">Venter på appvinduet …</translation>
 <translation id="6318407754858604988">Nedlastingen er startet</translation>
-<translation id="6322653941595359182">Send og motta tekstmeldinger fra Chromebooken</translation>
 <translation id="6324916366299863871">Endre snarvei</translation>
 <translation id="6325191661371220117">Deaktiver automatisk oppstart</translation>
 <translation id="6326175484149238433">Fjern fra Chrome</translation>
@@ -3527,6 +3520,7 @@
 <translation id="6395423953133416962">Send <ph name="BEGIN_LINK1" />systeminformasjon<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />-målinger<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Alternativer for synkronisering og personlig tilpasning</translation>
 <translation id="6397592254427394018">Åpne alle bokmerker i &amp;inkognitovindu</translation>
+<translation id="639777613761517128">For å åpne filer med $1 må du først kopiere dem til Linux-filmappen.</translation>
 <translation id="6398715114293939307">Fjern Google Play-butikken</translation>
 <translation id="6398765197997659313">Avslutt fullskjerm</translation>
 <translation id="6399774419735315745">Spion</translation>
@@ -3552,7 +3546,6 @@
 <translation id="642282551015776456">Dette navnet kan ikke brukes som fil- eller mappenavn</translation>
 <translation id="642469772702851743">Denne enheten (SN: <ph name="SERIAL_NUMBER" />) ble låst av eieren.</translation>
 <translation id="6426200009596957090">Åpne innstillingene for ChromeVox</translation>
-<translation id="6427415464407526111">Velg sikkerhetsnøkkelen din</translation>
 <translation id="6429384232893414837">Oppdateringsfeil</translation>
 <translation id="6430814529589430811">Base64-kodede ASCII, enkelt sertifikat</translation>
 <translation id="6431217872648827691">Alle dataene ble kryptert med Google-passordet ditt fra og med <ph name="TIME" /></translation>
@@ -3709,7 +3702,6 @@
 <translation id="6655190889273724601">Utviklermodus</translation>
 <translation id="6655458902729017087">Skjul kontoer</translation>
 <translation id="6657585470893396449">Passord</translation>
-<translation id="6658023813581644008">Skriv inn passordet ditt for å konfigurere Smart Lock</translation>
 <translation id="6659213950629089752">Denne siden ble zoomet inn av utvidelsen «<ph name="NAME" />»</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Dessverre er datamaskinen konfigurert med en feilformatert maskinvare-ID. Dette hindrer Chrome OS fra å oppdatere til de siste sikkerhetsoppdateringene, og datamaskinen din <ph name="BEGIN_BOLD" />kan utsettes for skadelige angrep<ph name="END_BOLD" />.</translation>
@@ -3845,7 +3837,6 @@
 <translation id="6885771755599377173">Forhåndsvisning av systeminformasjon</translation>
 <translation id="6886871292305414135">Åpne linken i en ny &amp;fane</translation>
 <translation id="6892812721183419409">Åpne linken som <ph name="USER" /></translation>
-<translation id="6896398788631624004">Sett inn sikkerhetsnøkkelen og aktivér den</translation>
 <translation id="6896758677409633944">Kopiér</translation>
 <translation id="6898440773573063262">Nå kan kioskapper konfigureres til å starte automatisk på denne enheten.</translation>
 <translation id="6898699227549475383">Organisasjon (O)</translation>
@@ -3864,6 +3855,7 @@
 <translation id="6915804003454593391">Bruker:</translation>
 <translation id="6916590542764765824">Administrer utvidelser</translation>
 <translation id="6920989436227028121">Åpne som vanlig fane</translation>
+<translation id="6921709132208495314">Ikke bruk data på denne siden</translation>
 <translation id="6922128026973287222">Lagre data og bla gjennom dem raskere ved hjelp av Google Datasparing. Klikk for å lese mer.</translation>
 <translation id="6923132443355966645">Rull/klikk</translation>
 <translation id="6930242544192836755">Varighet</translation>
@@ -3886,6 +3878,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Enhet</translation>
+<translation id="6968288415730398122">Skriv inn passordet ditt for å konfigurere skjermlåsen</translation>
 <translation id="6970480684834282392">Oppstartstype</translation>
 <translation id="6970856801391541997">Skriv ut bestemte sider</translation>
 <translation id="6972180789171089114">Lyd og video</translation>
@@ -3896,6 +3889,7 @@
 <translation id="6978121630131642226">Søkemotorer</translation>
 <translation id="6978611942794658017">Denne filen er utviklet for datamaskiner med Windows-maskinvare. Den er ikke kompatibel med enheten din (som kjører Chrome OS). Søk etter en passende erstatningsapp i Chrome Nettmarked.</translation>
 <translation id="6979158407327259162">Google Disk</translation>
+<translation id="6979440798594660689">Kutt lyden (standard)</translation>
 <translation id="6979737339423435258">Alle datoer</translation>
 <translation id="6980462514016882061">Google kan bruke nettlesingsloggen din for å gi Søk, annonser og andre Google-tjenester et personlig preg</translation>
 <translation id="6981982820502123353">Tilgjengelighet</translation>
@@ -4044,6 +4038,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Dette er generell informasjon om enheten din og hvordan du bruker den (for eksempel batterinivå, appbruk og nettverkstilkobling). Dataene brukes for å forbedre Googles produkter og tjenester for alle. Enkelte innsamlede data hjelper også partnere, for eksempel Android-utviklere, med å forbedre apper og produkter.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Selv om denne funksjonen slås av, kan enheten fortsatt sende informasjonen den trenger for å motta nødvendige tjenester, som systemoppdateringer og sikkerhet.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Du kan kontrollere funksjonen fra Innstillinger &gt; Google. Velg Bruk og diagnostikk fra menyen.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Vi fant <ph name="NUMBER_OF_APPS" /> apper i kontoen din som kan brukes på denne enheten.</translation>
 <translation id="7199158086730159431">Få hjelp</translation>
 <translation id="7200083590239651963">Velg konfigurasjon</translation>
 <translation id="720110658997053098">Behold denne enheten permanent i kioskmodus</translation>
@@ -4064,7 +4059,6 @@
 <translation id="7228523857728654909">Skjermlås og pålogging</translation>
 <translation id="7229570126336867161">Krever EVDO</translation>
 <translation id="7230787553283372882">Tilpass tekststørrelsen</translation>
-<translation id="7231589788477569369">Få hele Assistent-opplevelsen med disse innstillingene</translation>
 <translation id="7232750842195536390">Navneendringen mislyktes</translation>
 <translation id="7234406375359457793">Feil ved aktivering av deling. Den spesifiserte delingen støttes ikke.</translation>
 <translation id="7238585580608191973">SHA-256-fingeravtrykk</translation>
@@ -4074,7 +4068,6 @@
 <translation id="7243632151880336635">Slett og logg av</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (best)</translation>
 <translation id="7246339268451149667">Vil du slå på opplåsing med fingeravtrykk?</translation>
-<translation id="7246489301073081944">Hold inne |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| for å avslutte</translation>
 <translation id="7246947237293279874">FTP-proxy-tjener</translation>
 <translation id="725109152065019550">Administratoren din har deaktivert ekstern lagring for kontoen din.</translation>
 <translation id="7253521419891527137">&amp;Les mer</translation>
@@ -4227,7 +4220,6 @@
 <translation id="7489605380874780575">Sjekk støtte</translation>
 <translation id="749028671485790643">Person <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC-adresse</translation>
-<translation id="7490950320178383728">Bruk sikkerhetsnøkkelen din med Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">Det kan hende at utvidelsen <ph name="EXTENSION_NAME" /> registrerer all tekst du skriver inn, deriblant personlige data som passord og kredittkortnumre. Vil du bruke denne utvidelsen?</translation>
 <translation id="7494065396242762445">Åpne Windows-innstillingene</translation>
@@ -4475,7 +4467,6 @@
 <translation id="7850851215703745691">Disse Disk-filene er ikke delt ennå</translation>
 <translation id="7851457902707056880">Pålogging er begrenset og kan gjøres bare via eierkontoen. Start enheten på nytt og logg på med eierkontoen. Maskinen starter automatisk på nytt om 30 sekunder.</translation>
 <translation id="7851716364080026749">Blokkér alltid bruk av kameraet og mikrofonen</translation>
-<translation id="7851816139220202929">Bruk sikkerhetsnøkkelen din med NFC</translation>
 <translation id="7853747251428735">Flere verktø&amp;y</translation>
 <translation id="7856006446339184955">Send systemdata. Denne enheten sender for øyeblikket diagnostikk og bruksdata til Google. Denne <ph name="BEGIN_LINK1" />innstillingen<ph name="END_LINK1" /> håndheves av eieren. Hvis du har slått på annen nett- og appaktivitet, lagres denne informasjonen på kontoen din, slik at du kan administrere den i Min aktivitet. <ph name="BEGIN_LINK2" />Finn ut mer<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Legg til unntak</translation>
@@ -4558,6 +4549,7 @@
 <translation id="7973962044839454485">PPP-autentiseringen mislyktes på grunn av feil brukernavn eller passord</translation>
 <translation id="7974566588408714340">Prøv på nytt med <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Overskanning</translation>
+<translation id="79766959863778284">XR-isolert enhetstjeneste</translation>
 <translation id="7977551819349545646">Oppdaterer Chromebox …</translation>
 <translation id="7978412674231730200">Privatnøkkel</translation>
 <translation id="7978450511781612192">Dette logger deg av Google-kontoene dine. Bokmerkene dine, loggen din, passordene dine med mer blir ikke lenger synkronisert.</translation>
@@ -4608,7 +4600,6 @@
 <translation id="8030656706657716245">Legg til skriver</translation>
 <translation id="8032244173881942855">Fanen kunne ikke castes.</translation>
 <translation id="8033827949643255796">valgt</translation>
-<translation id="8033958968890501070">Tidsavbrudd</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Åpne alle i &amp;inkognitovinduer}=1{Åpne i et &amp;inkognitovindu}other{Åpne alle (#) i &amp;inkognitovinduer}}</translation>
 <translation id="8037117027592400564">lese hele teksten med syntetisert tale</translation>
 <translation id="8037357227543935929">Spør (standard)</translation>
@@ -4781,6 +4772,7 @@
 <translation id="8320459152843401447">Hele skjermen</translation>
 <translation id="8322814362483282060">Mikrofonen er blokkert for denne siden.</translation>
 <translation id="8326478304147373412">PKCS #7, sertifikat-kjede</translation>
+<translation id="8327039559959785305">Feil ved bruk av Linux-filer. Prøv på nytt.</translation>
 <translation id="8329978297633540474">Ren tekst</translation>
 <translation id="8335587457941836791">Løsne fra hyllen</translation>
 <translation id="8336153091935557858">I går kl. <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4831,7 +4823,6 @@
 <translation id="8425213833346101688">Endre</translation>
 <translation id="8425492902634685834">Festet til oppgavelinjen</translation>
 <translation id="8425755597197517046">&amp;Lim inn og søk</translation>
-<translation id="8426117172745886547">Advar før avslutning (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Aktiverer</translation>
 <translation id="8427292751741042100">innebygd på et hvilket som helst nettsted</translation>
 <translation id="8428213095426709021">Innstillinger</translation>
@@ -4919,7 +4910,6 @@
 <translation id="8551388862522347954">Lisenser</translation>
 <translation id="8553342806078037065">Administrer andre</translation>
 <translation id="8554899698005018844">Ingen språk</translation>
-<translation id="8557347704037207368">Send varslene dine fra Android Web Messages</translation>
 <translation id="855773602626431402">Et programtillegg uten prosessisolering ble hindret i å kjøre på denne siden.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Image Decoder</translation>
@@ -5032,6 +5022,7 @@
 <translation id="8714154114375107944">Slutt på brukerstøtten</translation>
 <translation id="8714838604780058252">Bakgrunnsgrafikk</translation>
 <translation id="8715480913140015283">En fane i bakgrunnen bruker kameraet ditt</translation>
+<translation id="8716931980467311658">Vil du slette alle Linux-programmer og -data i Linux-filmappen din fra denne <ph name="DEVICE_TYPE" />-enheten?</translation>
 <translation id="8719653885894320876">Nedlastingen av <ph name="PLUGIN_NAME" /> mislyktes</translation>
 <translation id="8723829621484579639">Inkognitounderrammer for: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Vis i mappe</translation>
@@ -5195,7 +5186,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – kræsjet</translation>
 <translation id="8983677657449185470">Bidra til å forbedre Safe Browsing</translation>
 <translation id="8984654317541110628">Nettadresse for fildeling</translation>
-<translation id="8984872292925913496">Finn den sekssifrede PIN-koden på baksiden av nøkkelen din</translation>
 <translation id="8986362086234534611">Glem</translation>
 <translation id="8986494364107987395">Send bruksstatistikk og programstopprapporter automatisk til Google</translation>
 <translation id="8987927404178983737">Måned</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 6a2ecf4..96154513 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Gdy obiekt wybrany za pomocą klawiatury zmienia się, podświetlaj go</translation>
 <translation id="1173894706177603556">Zmień nazwę</translation>
 <translation id="1174073918202301297">Skrót został dodany</translation>
-<translation id="1174808551768282258">Swojego Chromebooka możesz odblokowywać telefonem. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Drukuj...</translation>
 <translation id="117624967391683467">Kopiuję <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google może korzystać z Twojej historii przeglądania, by dostosowywać wyniki wyszukiwania, reklamy i działanie innych usług. W dowolnym momencie możesz to zmienić na myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Wstrzymaj</translation>
 <translation id="1181037720776840403">Usuń</translation>
 <translation id="1183237619868651138">Nie można zainstalować pliku <ph name="EXTERNAL_CRX_FILE" /> w lokalnej pamięci podręcznej.</translation>
-<translation id="1183378459020939734">Wszystko gotowe do sparowania klucza bezpieczeństwa?</translation>
 <translation id="1185924365081634987">Aby spróbować usunąć ten błąd sieci, możesz też użyć trybu <ph name="GUEST_SIGNIN_LINK_START" />przeglądania jako gość<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">Usuń szkodliwe oprogramowanie</translation>
 <translation id="1187722533808055681">Wyjścia z nieaktywności</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Nie znaleziono urządzeń Bluetooth</translation>
 <translation id="1306606229401759371">Zmień ustawienia</translation>
 <translation id="1307559529304613120">Ups. System nie może zapisać długoterminowego tokena dostępu API dla tego urządzenia.</translation>
+<translation id="1307931752636661898">Nie można wyświetlić plików Linuksa</translation>
 <translation id="1313405956111467313">Automatyczna konfiguracja serwera proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Zakładki, historia i ustawienia są synchronizowane z Twoim kontem Google.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Otwórz ustawienia myszy i touchpada</translation>
 <translation id="1531004739673299060">Okno aplikacji</translation>
 <translation id="15373452373711364">Duży kursor myszy</translation>
+<translation id="1538729222189715449">Otwieram pliki Linuksa…</translation>
 <translation id="1540605929960647700">Włącz tryb demonstracyjny</translation>
 <translation id="1543284117603151572">Zaimportowane z Edge</translation>
 <translation id="1545177026077493356">Automatyczny tryb kiosku</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Zmień tryb dotykowy HUD</translation>
 <translation id="1784849162047402014">Na urządzeniu jest mało miejsca.</translation>
 <translation id="1786636458339910689">Dyski zespołu</translation>
-<translation id="1792161662640298233">Weryfikowanie klucza bezpieczeństwa</translation>
 <translation id="1792619191750875668">Ekran rozszerzony</translation>
 <translation id="1794791083288629568">Wyślij opinię, by pomóc nam rozwiązać ten problem.</translation>
 <translation id="1795214765651529549">Użyj motywu klasycznego</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Witamy!</translation>
 <translation id="1914326953223720820">Usługa rozpakowywania</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">W zależności od ustawień konta Asystent będzie mógł tylko wyświetlać wyniki z internetu, opowiadać dowcipy, podawać informacje lokalne itp.</translation>
 <translation id="1916502483199172559">Domyślny czerwony awatar</translation>
 <translation id="1918141783557917887">&amp;Mniejszy</translation>
 <translation id="1919345977826869612">Reklamy</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Wtyczka <ph name="PEPPER_PLUGIN_NAME" /> na <ph name="PEPPER_PLUGIN_DOMAIN" /> chce mieć dostęp do Twojego komputera</translation>
 <translation id="2178614541317717477">Naruszenie bezpieczeństwa urzędu certyfikacji</translation>
 <translation id="218070003709087997">Wpisz wartość numeryczną, by określić liczbę kopii do wydrukowania (od 1 do 999).</translation>
+<translation id="2184515124301515068">Niech Chrome decyduje, które strony mogą odtwarzać dźwięk (zalecane)</translation>
 <translation id="2187895286714876935">Błąd importowania certyfikatu serwera</translation>
 <translation id="2187906491731510095">Rozszerzenia zaktualizowane</translation>
 <translation id="2188881192257509750">Otwórz <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Odczytywanie i modyfikowanie Twoich danych na wielu stronach</translation>
 <translation id="2242687258748107519">Informacje o pliku</translation>
 <translation id="2243194103992005307">Aby usunąć aplikacje, otwórz Ustawienia &gt; Aplikacje lub Menedżer aplikacji. Następnie kliknij aplikację, którą chcesz odinstalować (jeśli to konieczne, przesuń palcem w prawo lub w lewo, by ją znaleźć), a potem kliknij Odinstaluj lub Wyłącz.</translation>
+<translation id="224940702122312781">Ta strona będzie przesyłać bardzo dużo danych.</translation>
 <translation id="2249605167705922988">np. 1–5, 8, 11–13</translation>
 <translation id="2251218783371366160">Otwórz w przeglądarce systemowej</translation>
 <translation id="225163402930830576">Odśwież sieci</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Skonfiguruj sieć</translation>
 <translation id="230927227160767054">Ta strona chce zainstalować moduł do obsługiwania usługi.</translation>
 <translation id="2309620859903500144">Ta witryna ma zablokowany dostęp do czujników ruchu i oświetlenia.</translation>
-<translation id="2311075084924370935">Aby Asystent mógł informować Cię między innymi o wydarzeniach w kalendarzu, przypomnieniach i lotach, musisz włączyć Aktywność w internecie i aplikacjach, Informacje z urządzenia oraz Aktywność związaną z głosem i dźwiękiem.</translation>
+<translation id="2315414688463285945">Błąd podczas konfigurowania plików Linuksa. Spróbuj ponownie.</translation>
 <translation id="2315821125498993513">Nie udało się połączyć z telefonem. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Nie, dziękuję</translation>
 <translation id="2317842250900878657">Gotowe: <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Rozmiar papieru</translation>
 <translation id="2318817390901984578">Aby korzystać z aplikacji na Androida, naładuj i zaktualizuj urządzenie <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Bieżąca sesja incognito (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Użyj klucza bezpieczeństwa, by skorzystać z: <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Nagłówki i stopki</translation>
 <translation id="2325650632570794183">Ten typ plików jest nieobsługiwany. W Chrome Web Store znajdziesz aplikację otwierającą pliki tego typu.</translation>
 <translation id="2326931316514688470">P&amp;rzeładuj aplikację</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Dodaj udział plików</translation>
 <translation id="2367972762794486313">Pokaż aplikacje</translation>
 <translation id="2369536625682139252">Zostaną usunięte wszystkie dane zapisane przez witrynę <ph name="SITE" /> (oprócz plików cookie).</translation>
-<translation id="237058345584060620">Sparuj klucz z tym urządzeniem, by używać go do logowania się na konto</translation>
 <translation id="2371076942591664043">Otwórz po &amp;zakończeniu</translation>
 <translation id="2377319039870049694">Przełącz na widok listy</translation>
 <translation id="2377667304966270281">Poważne błędy</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Nie można znaleźć telefonu. Upewnij się, że <ph name="DEVICE_TYPE" /> ma włączony Bluetooth. &lt;a&gt;Więcej informacji&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Dodaj &amp;folder</translation>
 <translation id="249113932447298600">Niestety, urządzenie <ph name="DEVICE_LABEL" /> nie jest obecnie obsługiwane.</translation>
-<translation id="2492040222276243256">Naciśnij i przytrzymaj przycisk na kluczu bezpieczeństwa przez co najmniej 5 sekund</translation>
 <translation id="2493021387995458222">Wybierz opcję „słowo naraz”</translation>
 <translation id="249303669840926644">Nie można zakończyć rejestracji</translation>
 <translation id="2495777824269688114">Poznaj więcej funkcji lub uzyskaj odpowiedzi na pytania. Jeśli szukasz pomocy, wybierz „?”.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Łącznie: <ph name="SHEETS_LABEL" /> – <ph name="NUMBER_OF_SHEETS" /></translation>
 <translation id="258095186877893873">Długie</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (platforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Ta karta udostępnia Twój ekran.</translation>
 <translation id="2586657967955657006">Schowek</translation>
 <translation id="2586672484245266891">Podaj krótszy adres URL</translation>
 <translation id="2587922270115112871">Utworzenie użytkownika nadzorowanego nie powoduje utworzenia konta Google, a jego ustawienia
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344">Aplikacja <ph name="NAME" /> używa <ph name="USAGE" /> MB na dysku.</translation>
 <translation id="2633212996805280240">Usunąć „<ph name="EXTENSION_NAME" />”?</translation>
 <translation id="263325223718984101">Nie można ukończyć instalacji produktu <ph name="PRODUCT_NAME" />. Będzie on nadal uruchamiany z obrazu dysku.</translation>
-<translation id="2633326789677284179">Nazwę klucza znajdziesz z tyłu jego obudowy</translation>
 <translation id="2635276683026132559">Podpisywanie</translation>
 <translation id="2636625531157955190">Chrome nie może otworzyć obrazu.</translation>
 <translation id="2638087589890736295">Wpisz hasło, by rozpocząć synchronizację</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Dodaj dostawcę <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Aby mieć dostęp do swoich haseł na wszystkich urządzeniach, zaloguj się w Chrome.</translation>
 <translation id="2875698561019555027">(Strony błędów Chrome)</translation>
-<translation id="2876441201733326392">Użyj klucza bezpieczeństwa USB</translation>
 <translation id="288042212351694283">Dostęp do urządzeń Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Ostatni dostęp:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> za chwilę uruchomi się ponownie i zresetuje.</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Zgłoś anonimowo</translation>
 <translation id="2984337792991268709">Dzisiaj, <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Pełny dostęp do sterowania urządzeniami MIDI został zablokowany dla tej strony.</translation>
-<translation id="2988599644347283908">Uwaga: dane kontrolowane przez te ustawienia mogą być zapisywane i używane w dowolnej usłudze Google, w której się zalogujesz. Dzięki temu usługi i reklamy będą dostosowane do Twoich potrzeb. Możesz zobaczyć i usunąć dane oraz zmienić swoje ustawienia na stronie account.google.com</translation>
 <translation id="2989474696604907455">niepodłączone</translation>
 <translation id="2989786307324390836">Plik binarny z kodowaniem DER, jeden certyfikat</translation>
 <translation id="2993517869960930405">Informacje o aplikacji</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Wyłącz wyciszenie kart</translation>
 <translation id="3053013834507634016">Użycie klucza certyfikatu</translation>
 <translation id="3057861065630527966">Utwórz kopię zapasową zdjęć i filmów</translation>
-<translation id="3059313675706898490">Wiadomości na Androida</translation>
 <translation id="3060379269883947824">Włącz funkcję Przeczytaj na głos</translation>
 <translation id="3061707000357573562">Zastosowanie poprawki do usługi</translation>
 <translation id="3064410671692449875">Niewystarczające dane</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Nie można skopiować zewnętrznego pliku CRX jako <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Sparowano „<ph name="DEVICE_NAME" />”</translation>
 <translation id="3101709781009526431">Data i godzina</translation>
-<translation id="3104900172193317662">Zezwól na użycie swojego klucza bezpieczeństwa</translation>
 <translation id="310671807099593501">Strona używa Bluetootha</translation>
 <translation id="3115128645424181617">Nie można znaleźć telefonu. Upewnij się, że masz go w zasięgu ręki i włączony jest na nim Bluetooth.</translation>
 <translation id="3115147772012638511">Czekam na pamięć podręczną...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;brak w certyfikacie&gt;</translation>
 <translation id="3254434849914415189">Wybierz domyślną aplikację dla plików <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Automatyczne wykrywanie strefy czasowej jest wyłączone</translation>
-<translation id="3254772308201947812">Tak, zgadzam się</translation>
 <translation id="3264544094376351444">Czcionka bezszeryfowa</translation>
 <translation id="3264547943200567728">Nie udało się skonfigurować sieci na Chromeboxie</translation>
 <translation id="3264582393905923483">Kontekst</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Sortuj według</translation>
 <translation id="3737274407993947948">Błąd podczas instalowania Linuksa…</translation>
 <translation id="3737536731758327622">Tutaj wyświetlają się pobrane pliki</translation>
-<translation id="3738671331307774213">Weryfikacja tożsamości pomaga chronić Twoje prywatne dane</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Otworzyć <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> pojawi się teraz w konsoli administracyjnej</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: synchronizacja wstrzymana</translation>
 <translation id="3860381078714302691">Witamy w Hangouts Meet</translation>
+<translation id="3861241522664181545">Strona została wstrzymana.</translation>
 <translation id="3862134173397075045">Witamy w Cast dla Chrome</translation>
 <translation id="3862788408946266506">Aplikację z atrybutem „kiosk_only” w pliku manifestu należy zainstalować w Chrome OS w trybie kiosku</translation>
 <translation id="3865414814144988605">Rozdzielczość</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Aby włączyć tę funkcję, <ph name="BEGIN_LINK" />zresetuj synchronizację<ph name="END_LINK" /> w celu usunięcia hasła synchronizacji</translation>
 <translation id="3878840326289104869">Tworzenie użytkownika nadzorowanego</translation>
 <translation id="3879748587602334249">Menedżer pobierania</translation>
-<translation id="3880709822663530586">Klucz bezpieczeństwa będzie działać, gdy włączysz na urządzeniu Bluetooth</translation>
 <translation id="3888550877729210209">Robienie notatek w aplikacji <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Dodaj OpenVPN/L2TP…</translation>
 <translation id="3893536212201235195">Odczytywanie i zmiana ustawień ułatwień dostępu</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Czekaj, moduł zabezpieczeń jest przygotowywany (może to potrwać kilka minut)…</translation>
 <translation id="4099060993766194518">Przywrócić domyślną wyszukiwarkę?</translation>
 <translation id="4100733287846229632">Na urządzeniu już prawie nie ma miejsca</translation>
+<translation id="4103091233824664032">Wpisz hasło, by skonfigurować blokadę ekranu i logowanie</translation>
 <translation id="4104163789986725820">E&amp;ksportuj</translation>
 <translation id="4105563239298244027">Uzyskaj 1 TB miejsca na Dysku Google za darmo</translation>
 <translation id="4107048419833779140">Rozpoznawanie i wysuwanie urządzeń pamięci</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Podświetlenie nocne wyłączy się automatycznie o wschodzie słońca</translation>
 <translation id="4138267921960073861">Pokaż nazwy użytkowników i zdjęcia na stronie logowania</translation>
 <translation id="4144218403971135344">Lepsza jakość filmów i dłuższy czas pracy na baterii. Filmy będą odtwarzane tylko na ekranie obsługującym Cast.</translation>
-<translation id="414599683948988413">Użyj klucza bezpieczeństwa przez USB</translation>
 <translation id="4146026355784316281">Zawsze otwieraj w przeglądarce systemowej</translation>
 <translation id="4146785383423576110">Resetowanie komputera i czyszczenie danych</translation>
 <translation id="4147897805161313378">Zdjęcia Google</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Wyłącz</translation>
 <translation id="4400367121200150367">Tutaj będą wyświetlane strony, które nigdy nie zapisują haseł</translation>
 <translation id="4400632832271803360">Przytrzymaj klawisz programu uruchamiającego, by zmienić działanie klawiszy z górnego rzędu</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">Pomo&amp;c</translation>
 <translation id="4409697491990005945">Marginesy</translation>
 <translation id="4411578466613447185">Certyfikat do podpisywania kodu</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome może znaleźć i usunąć szkodliwe oprogramowanie na Twoim komputerze</translation>
 <translation id="4481530544597605423">Niesparowane urządzenia</translation>
 <translation id="4482194545587547824">Google może korzystać z Twojej historii przeglądania, by dostosowywać wyniki wyszukiwania i działanie innych usług</translation>
+<translation id="4493287891836751813">Poznaj swojego Asystenta Google</translation>
 <translation id="4495419450179050807">Nie pokazuj na tej stronie</translation>
 <translation id="4499718683476608392">Włącz autouzupełnianie danych karty kredytowej, by wypełniać formularze jednym kliknięciem</translation>
 <translation id="4500114933761911433">We wtyczce <ph name="PLUGIN_NAME" /> wystąpił poważny błąd</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Wycisz kartę</translation>
 <translation id="4742746985488890273">Przypnij do półki</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Dowiedz się, jak zaktualizować aplikacje<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Wiadomość tekstowa</translation>
 <translation id="4746971725921104503">Wygląda na to, że już zarządzasz użytkownikiem o tej nazwie. Chcesz <ph name="LINK_START" />zaimportować użytkownika <ph name="USER_DISPLAY_NAME" /> na to urządzenie<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Wymagane jest rozszerzenie z Chrome Web Store</translation>
 <translation id="4750394297954878236">Sugestie</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Profilowanie włączone</translation>
 <translation id="4823484602432206655">Odczyt i zmiana ustawień użytkownika oraz urządzenia</translation>
 <translation id="4823651846660089135">Urządzenie tylko do odczytu</translation>
+<translation id="4823955295535347797">Uruchamiaj Asystenta, mówiąc „OK Google”, gdy ekran jest włączony.</translation>
 <translation id="4828937774870308359">Australijskie</translation>
 <translation id="4829768588131278040">Ustaw kod PIN</translation>
 <translation id="4830502475412647084">Instaluję aktualizację systemu operacyjnego</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Pomóż naszym inżynierom zbadać i naprawić tę awarię. Jeśli możesz, dokładnie opisz poszczególne czynności. Każdy szczegół jest ważny.</translation>
 <translation id="4876895919560854374">Blokowanie i odblokowywanie ekranu</translation>
 <translation id="4877017884043316611">Sparuj z Chromeboxem</translation>
+<translation id="4879491255372875719">Automatycznie (domyślnie)</translation>
 <translation id="4880214202172289027">Suwak głośności</translation>
 <translation id="4880328057631981605">Nazwa punktu dostępu</translation>
 <translation id="4880520557730313061">Autokorekta</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">w górę</translation>
 <translation id="5100114659116077956">Aby udostępnić najnowsze funkcje, Chromebox musi się zaktualizować.</translation>
 <translation id="5101042277149003567">Otwórz wszystkie zakładki</translation>
-<translation id="5104546332954397226">Użyj telefonu jako klucza bezpieczeństwa</translation>
 <translation id="5105855035535475848">Przypinanie kart</translation>
 <translation id="5108967062857032718">Ustawienia – Usuń aplikacje na Androida</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">O&amp;twórz ponownie zamkniętą kartę</translation>
 <translation id="52912272896845572">Plik kluczy prywatnych jest nieprawidłowy.</translation>
 <translation id="529175790091471945">Sformatuj urządzenie</translation>
-<translation id="5292195676005197571">W przypadku większości kluczy wystarczy nacisnąć przycisk</translation>
 <translation id="5293170712604732402">Przywróć ustawienia do wartości domyślnych</translation>
 <translation id="5297082477358294722">Hasło zostało zapisane. Swoje zapisane hasła znajdziesz tutaj: <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Motyw utworzony przez</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Zgadzam się</translation>
 <translation id="532943162177641444">Kliknij powiadomienie na telefonie <ph name="PHONE_NAME" />, by skonfigurować mobilny hotspot, z którego może korzystać to urządzenie.</translation>
 <translation id="5329858601952122676">&amp;Usuń</translation>
+<translation id="5329945517224105597">Asystent może przekazywać Ci sugestie i podpowiadać działania związane z tym, co widać na ekranie. Możesz to zmienić w ustawieniach Asystenta.</translation>
 <translation id="5330145655348521461">Te pliki zostały otwarte na innym pulpicie. Przejdź do <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />), aby je zobaczyć.</translation>
 <translation id="5330512191124428349">Więcej informacji</translation>
 <translation id="5331069282670671859">Nie masz certyfikatów w tej kategorii</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Zezwalaj na odtwarzanie dźwięku na stronach internetowych</translation>
 <translation id="5390284375844109566">Zindeksowana baza danych</translation>
 <translation id="5390743329570580756">Wyślij do:</translation>
-<translation id="5392327114396848796">Użyj wbudowanego klucza bezpieczeństwa</translation>
 <translation id="5397794290049113714">Ty</translation>
 <translation id="5398572795982417028">Odwołanie do strony spoza zakresu, limit to <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Reklamy zostały zablokowane</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Zamknij wszystkie pliki z archiwum lub dysku wirtualnego i spróbuj ponownie.</translation>
 <translation id="5687326903064479980">Strefa czasowa</translation>
+<translation id="568824803367507355">Wykrywanie „OK Google”</translation>
 <translation id="5689516760719285838">Lokalizacja</translation>
 <translation id="56907980372820799">Połącz dane</translation>
 <translation id="5691511426247308406">Rodzina</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – nagrywanie kamerą lub mikrofonem</translation>
 <translation id="5835754902560991078">ekstremalnie krótkie (0,6 s)</translation>
 <translation id="5838456317242088717">Bieżąca sesja incognito</translation>
-<translation id="5842053879378944309">Użyj klucza bezpieczeństwa USB z: <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Włącz Bluetooth</translation>
 <translation id="5843250171025351504">Twoje urządzenie nie jest już zgodne z minimalną wersją klienta określoną przez administratora. Zaktualizuj je, by się zalogować.</translation>
 <translation id="5846929185714966548">Karta 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Nie jest już obsługiwana.</translation>
 <translation id="6317369057005134371">Czekam na okno aplikacji...</translation>
 <translation id="6318407754858604988">Rozpoczęto pobieranie</translation>
-<translation id="6322653941595359182">Wysyłanie i odbieranie SMS-ów na Chromebooku</translation>
 <translation id="6324916366299863871">Edytuj skrót</translation>
 <translation id="6325191661371220117">Wyłącz automatyczne uruchamianie</translation>
 <translation id="6326175484149238433">Usuń z Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Przesyłaj <ph name="BEGIN_LINK1" />informacje o systemie<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />dane<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Opcje synchronizacji i personalizacji</translation>
 <translation id="6397592254427394018">Otwórz wszystkie zakładki w oknie &amp;incognito</translation>
+<translation id="639777613761517128">Aby otworzyć plik w kontenerze $1, najpierw skopiuj go do folderu Pliki Linuksa.</translation>
 <translation id="6398715114293939307">Usuń Sklep Google Play</translation>
 <translation id="6398765197997659313">Zamknij pełny ekran</translation>
 <translation id="6399774419735315745">Szpieg</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Tej nazwy nie można używać jako nazwy pliku ani katalogu.</translation>
 <translation id="642469772702851743">To urządzenie (nr seryjny: <ph name="SERIAL_NUMBER" />) zostało zablokowane przez właściciela.</translation>
 <translation id="6426200009596957090">Otwórz ustawienia ChromeVoxa</translation>
-<translation id="6427415464407526111">Wybierz klucz bezpieczeństwa</translation>
 <translation id="6429384232893414837">Błąd aktualizacji</translation>
 <translation id="6430814529589430811">Plik ASCII z kodowaniem Base64, jeden certyfikat</translation>
 <translation id="6431217872648827691">Wszystkie dane były szyfrowane przy użyciu Twojego hasła Google od
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Tryb programisty</translation>
 <translation id="6655458902729017087">Ukryj konta</translation>
 <translation id="6657585470893396449">Hasło</translation>
-<translation id="6658023813581644008">Aby skonfigurować logowanie się przy użyciu funkcji Smart Lock, wpisz hasło</translation>
 <translation id="6659213950629089752">Powiększenie strony zostało zmienione przez rozszerzenie „<ph name="NAME" />”</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Twój komputer jest skonfigurowany przy użyciu błędnie sformatowanego identyfikatora sprzętu. Ta sytuacja uniemożliwia zaktualizowanie systemu operacyjnego Chrome za pomocą najnowszych poprawek zabezpieczeń, a komputer <ph name="BEGIN_BOLD" />może być narażony na złośliwe ataki<ph name="END_BOLD" />.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Podgląd informacji o systemie</translation>
 <translation id="6886871292305414135">Otwórz link w nowej &amp;karcie</translation>
 <translation id="6892812721183419409">Otwórz link jako <ph name="USER" /></translation>
-<translation id="6896398788631624004">Podłącz klucz bezpieczeństwa i aktywuj go</translation>
 <translation id="6896758677409633944">Kopiuj</translation>
 <translation id="6898440773573063262">Aplikacje kiosku na tym urządzeniu teraz można skonfigurować tak, by uruchamiały się automatycznie.</translation>
 <translation id="6898699227549475383">Organizacja (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Użytkownik:</translation>
 <translation id="6916590542764765824">Zarządzaj rozszerzeniami</translation>
 <translation id="6920989436227028121">Otwórz jako zwykłą kartę</translation>
+<translation id="6921709132208495314">Zatrzymaj przesyłanie danych na tej stronie</translation>
 <translation id="6922128026973287222">Zmniejsz ilość przesyłanych danych i swobodnie przeglądaj strony dzięki Oszczędzaniu danych Google. Kliknij, by dowiedzieć się więcej.</translation>
 <translation id="6923132443355966645">Przewiń/kliknij</translation>
 <translation id="6930242544192836755">Czas trwania</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Urządzenie</translation>
+<translation id="6968288415730398122">Wpisz hasło, by skonfigurować blokadę ekranu</translation>
 <translation id="6970480684834282392">Typ uruchamiania</translation>
 <translation id="6970856801391541997">Drukuj wybrane strony</translation>
 <translation id="6972180789171089114">Audio/wideo</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Wyszukiwarki</translation>
 <translation id="6978611942794658017">To jest plik na komputery z Windows. Jest niezgodny z Twoim urządzeniem z Chrome OS. Poszukaj odpowiedniej aplikacji zastępczej w Chrome Web Store.</translation>
 <translation id="6979158407327259162">Dysk Google</translation>
+<translation id="6979440798594660689">Wycisz (domyślnie)</translation>
 <translation id="6979737339423435258">Od początku</translation>
 <translation id="6980462514016882061">Google może korzystać z Twojej historii przeglądania, by dostosowywać wyniki wyszukiwania, reklamy i działanie innych usług.</translation>
 <translation id="6981982820502123353">Ułatwienia dostępu</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Są to ogólne informacje o urządzeniu i jego użytkowaniu (w tym o poziomie naładowania baterii, używaniu aplikacji i jakości połączeń sieciowych). Wykorzystamy je do ulepszania produktów i usług Google dla wszystkich użytkowników. Niektóre informacje zbiorcze pomagają też naszym partnerom (takim jak programiści aplikacji na Androida) ulepszać ich usługi i aplikacje.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Wyłączenie tej funkcji nie wpływa na możliwość wysyłania przez urządzenie informacji potrzebnych do działania ważnych usług, na przykład zabezpieczeń czy aktualizacji systemu.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Działanie tej funkcji możesz skonfigurować w opcji Ustawienia &gt; Google. Wybierz w menu Użycie i diagnostyka.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Na tym urządzeniu możesz używać <ph name="NUMBER_OF_APPS" /> aplikacji, które znaleźliśmy na Twoim koncie.</translation>
 <translation id="7199158086730159431">Uzyskaj p&amp;omoc</translation>
 <translation id="7200083590239651963">Wybierz konfigurację</translation>
 <translation id="720110658997053098">Trwale utrzymuj to urządzenie w trybie kiosku</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Blokada ekranu i logowanie</translation>
 <translation id="7229570126336867161">Wymagana technologia EVDO</translation>
 <translation id="7230787553283372882">Dostosuj rozmiar tekstu</translation>
-<translation id="7231589788477569369">Ustawienia, które pozwolą Ci korzystać ze wszystkich funkcji Asystenta</translation>
 <translation id="7232750842195536390">Nie udało się zmienić nazwy</translation>
 <translation id="7234406375359457793">Błąd podczas podłączania udziału. Ten udział nie jest obsługiwany.</translation>
 <translation id="7238585580608191973">Odcisk cyfrowy SHA-256</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Wyczyść i wyloguj</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (najlepsza)</translation>
 <translation id="7246339268451149667">Włączyć odblokowanie odciskiem palca?</translation>
-<translation id="7246489301073081944">Przytrzymaj |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />|, by zakończyć</translation>
 <translation id="7246947237293279874">Serwer proxy FTP</translation>
 <translation id="725109152065019550">Na Twoim koncie administrator wyłączył pamięć zewnętrzną.</translation>
 <translation id="7253521419891527137">&amp;Więcej informacji</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Sprawdź uprawnienia</translation>
 <translation id="749028671485790643">Osoba <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Adres MAC</translation>
-<translation id="7490950320178383728">Użyj klucza bezpieczeństwa przez Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">Rozszerzenie <ph name="EXTENSION_NAME" /> może rejestrować wszystko, co wpisujesz, w tym poufne informacje takie jak hasła i numery kart kredytowych. Czy chcesz używać tego rozszerzenia?</translation>
 <translation id="7494065396242762445">Otwórz Ustawienia systemu Windows</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">Te pliki na Dysku nie są jeszcze udostępniane</translation>
 <translation id="7851457902707056880">Logowanie zostało ograniczone tylko do konta właściciela. Uruchom ponownie i zaloguj się na nie. Komputer automatycznie uruchomi się ponownie za 30 sekund.</translation>
 <translation id="7851716364080026749">Zawsze blokuj dostęp do kamery i mikrofonu</translation>
-<translation id="7851816139220202929">Użyj klucza bezpieczeństwa przez NFC</translation>
 <translation id="7853747251428735">Więcej narzę&amp;dzi</translation>
 <translation id="7856006446339184955">Wysyłanie danych systemowych. Obecnie to urządzenie automatycznie wysyła do Google dane diagnostyczne oraz dotyczące używania urządzenia i aplikacji. To <ph name="BEGIN_LINK1" />ustawienie<ph name="END_LINK1" /> jest wybierane przez właściciela urządzenia. Jeśli masz włączoną dodatkowo Aktywność w internecie i aplikacjach, dane te będą zapisywane na Twoim koncie, co umożliwi Ci zarządzanie nimi na stronie Moja aktywność. <ph name="BEGIN_LINK2" />Więcej informacji<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Dodaj wyjątek</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">Uwierzytelnianie PPP nie powiodło się z powodu nieprawidłowej nazwy użytkownika lub hasła</translation>
 <translation id="7974566588408714340">Ponów za pomocą rozszerzenia <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Nadmiarowość obrazu</translation>
+<translation id="79766959863778284">Usługa izolowanego urządzenia XR</translation>
 <translation id="7977551819349545646">Aktualizuję Chromeboxa...</translation>
 <translation id="7978412674231730200">Klucz prywatny</translation>
 <translation id="7978450511781612192">Spowoduje to wylogowanie Cię z Twoich kont Google. Twoje zakładki, historia, hasła i inne dane przestaną być synchronizowane.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Dodaj drukarkę</translation>
 <translation id="8032244173881942855">Nie udało się przesłać karty.</translation>
 <translation id="8033827949643255796">wybrano</translation>
-<translation id="8033958968890501070">Przekroczono limit czasu</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Otwórz wszystkie w oknie &amp;incognito}=1{Otwórz w oknie &amp;incognito}few{Otwórz wszystkie (#) w oknie &amp;incognito}many{Otwórz wszystkie (#) w oknie &amp;incognito}other{Otwórz wszystkie (#) w oknie &amp;incognito}}</translation>
 <translation id="8037117027592400564">Odczyt całego tekstu mówionego przez syntezator mowy</translation>
 <translation id="8037357227543935929">Pytaj (domyślnie)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Cały ekran</translation>
 <translation id="8322814362483282060">Ta strona ma zablokowany dostęp do mikrofonu.</translation>
 <translation id="8326478304147373412">PKCS #7, łańcuch certyfikatów</translation>
+<translation id="8327039559959785305">Błąd podczas montowania plików Linuksa. Spróbuj ponownie.</translation>
 <translation id="8329978297633540474">Zwykły tekst</translation>
 <translation id="8335587457941836791">Odepnij z półki</translation>
 <translation id="8336153091935557858">Wczoraj, <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4843,7 +4835,6 @@
 <translation id="8425213833346101688">Zmień</translation>
 <translation id="8425492902634685834">Przypnij na pasku zadań</translation>
 <translation id="8425755597197517046">Wkl&amp;ej i wyszukaj</translation>
-<translation id="8426117172745886547">Ostrzeż przed zakończeniem (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Włączam</translation>
 <translation id="8427292751741042100">umieszczone na dowolnym hoście</translation>
 <translation id="8428213095426709021">Ustawienia</translation>
@@ -4931,7 +4922,6 @@
 <translation id="8551388862522347954">Licencje</translation>
 <translation id="8553342806078037065">Zarządzaj innymi osobami</translation>
 <translation id="8554899698005018844">Brak języka</translation>
-<translation id="8557347704037207368">Wysyłanie powiadomień z Android Web Messages</translation>
 <translation id="855773602626431402">Uruchomienie wtyczki spoza piaskownicy zostało zablokowane na tej stronie.</translation>
 <translation id="8557930019681227453">Plik manifestu</translation>
 <translation id="8559694214572302298">Dekoder obrazów</translation>
@@ -5044,6 +5034,7 @@
 <translation id="8714154114375107944">Koniec wsparcia</translation>
 <translation id="8714838604780058252">Obraz w tle</translation>
 <translation id="8715480913140015283">Karta w tle używa kamery</translation>
+<translation id="8716931980467311658">Usunąć wszystkie aplikacje na Linuksa i dane z folderu Pliki Linuksa z tego urządzenia <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Nie udało się pobrać wtyczki <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Ramki podrzędne incognito dla <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Pokaż w folderze</translation>
@@ -5207,7 +5198,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – awaria</translation>
 <translation id="8983677657449185470">Pomóż ulepszyć Bezpieczne przeglądanie</translation>
 <translation id="8984654317541110628">URL udziału plików</translation>
-<translation id="8984872292925913496">Znajdź 6-cyfrowy kod PIN z tyłu klucza</translation>
 <translation id="8986362086234534611">Zapomnij</translation>
 <translation id="8986494364107987395">Automatycznie przesyłaj do Google statystyki użytkowania i raporty o awariach</translation>
 <translation id="8987927404178983737">Miesiąc</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 74ef48d..0deb136 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Destacar o objeto com o foco do teclado quando ele mudar</translation>
 <translation id="1173894706177603556">Renomear</translation>
 <translation id="1174073918202301297">Atalho adicionado</translation>
-<translation id="1174808551768282258">Desbloqueie o Chromebook com seu smartphone. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" />.</translation>
 <translation id="1175364870820465910">&amp;Imprimir...</translation>
 <translation id="117624967391683467">Copiando <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">O Google pode usar seu histórico de navegação para personalizar a Pesquisa, os anúncios e outros serviços do Google. Você pode alterar essa configuração a qualquer momento em myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pausar</translation>
 <translation id="1181037720776840403">Remover</translation>
 <translation id="1183237619868651138">Não foi possível instalar o arquivo <ph name="EXTERNAL_CRX_FILE" /> no cache local.</translation>
-<translation id="1183378459020939734">Pronto para parear sua chave de segurança?</translation>
 <translation id="1185924365081634987">Tente <ph name="GUEST_SIGNIN_LINK_START" />navegar como convidado<ph name="GUEST_SIGNIN_LINK_END" /> para corrigir este erro da rede.</translation>
 <translation id="1186771945450942097">Remover software perigoso</translation>
 <translation id="1187722533808055681">Ativações do estado ocioso</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Nenhum dispositivo Bluetooth encontrado</translation>
 <translation id="1306606229401759371">Alterar configurações</translation>
 <translation id="1307559529304613120">Ops. O sistema encontrou uma falha ao armazenar um token de acesso de longo prazo à API para este dispositivo.</translation>
+<translation id="1307931752636661898">Não é possível ver os arquivos do Linux</translation>
 <translation id="1313405956111467313">Configuração automática de proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Seus favoritos, histórico e outras configurações serão sincronizados com sua Conta do Google.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Abrir configurações do mouse e touchpad do dispositivo</translation>
 <translation id="1531004739673299060">Janela do aplicativo</translation>
 <translation id="15373452373711364">Cursor grande do mouse</translation>
+<translation id="1538729222189715449">Abrindo arquivos do Linux…</translation>
 <translation id="1540605929960647700">Ativar modo de demonstração</translation>
 <translation id="1543284117603151572">Importados do Edge</translation>
 <translation id="1545177026077493356">Modo de quiosque automático</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Alterar o modo HUD de toque</translation>
 <translation id="1784849162047402014">O dispositivo está com pouco espaço em disco</translation>
 <translation id="1786636458339910689">Drives de equipe</translation>
-<translation id="1792161662640298233">Verificando sua chave de segurança</translation>
 <translation id="1792619191750875668">Exibição estendida</translation>
 <translation id="1794791083288629568">Envie um feedback para nos ajudar a corrigir esse problema.</translation>
 <translation id="1795214765651529549">Usar "Clássico"</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Bem-vindo!</translation>
 <translation id="1914326953223720820">Serviço Descompactar</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Dependendo das configurações da conta, sua experiência com o Assistente pode ser limitada a itens como resultados da Web, piadas e informações locais.</translation>
 <translation id="1916502483199172559">Avatar vermelho padrão</translation>
 <translation id="1918141783557917887">&amp;Menor</translation>
 <translation id="1919345977826869612">Anúncios</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">O plug-in <ph name="PEPPER_PLUGIN_NAME" /> do domínio <ph name="PEPPER_PLUGIN_DOMAIN" /> quer acessar seu computador</translation>
 <translation id="2178614541317717477">Compromisso da autoridade de certificação</translation>
 <translation id="218070003709087997">Use um número para indicar o número de cópias a serem impressas (1 a 999).</translation>
+<translation id="2184515124301515068">Permitir que Chrome defina quando os sites podem reproduzir sons (recomendado)</translation>
 <translation id="2187895286714876935">Erro de importação do certificado de servidor</translation>
 <translation id="2187906491731510095">Extensões atualizadas</translation>
 <translation id="2188881192257509750">Abrir <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Ler e alterar seus dados em vários websites</translation>
 <translation id="2242687258748107519">Informações do arquivo</translation>
 <translation id="2243194103992005307">Para remover apps, acesse Config. &gt; Apps ou Gerenciador de aplicativos. Depois, toque no app que você quer desinstalar (talvez seja necessário deslizar para a direita ou para a esquerda para encontrar o app). Em seguida, toque em Desinstalar ou Desativar.</translation>
+<translation id="224940702122312781">Esta página usará muitos dados.</translation>
 <translation id="2249605167705922988">por exemplo, 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Abrir com o Visualizador do sistema</translation>
 <translation id="225163402930830576">Atualizar redes</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Configurar rede</translation>
 <translation id="230927227160767054">Esta página quer instalar um manipulador de serviço.</translation>
 <translation id="2309620859903500144">Este site foi impedido de acessar os sensores de luz ou movimento.</translation>
-<translation id="2311075084924370935">Para ajudar você com sua agenda, seus lembretes, voos e muito mais, o Assistente precisa das configurações Atividade na Web e de apps, Informações do dispositivo e Atividade de voz e áudio.</translation>
+<translation id="2315414688463285945">Erro ao configurar arquivos do Linux. Tente novamente.</translation>
 <translation id="2315821125498993513">Não foi possível se conectar ao smartphone. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" />.</translation>
 <translation id="2316129865977710310">Não.</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% concluída</translation>
 <translation id="2318143611928805047">Tamanho do papel</translation>
 <translation id="2318817390901984578">Para usar apps Android, carregue e atualize seu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Sessão anônima atual (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Usar sua chave de segurança USB com <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Cabeçalhos e rodapés</translation>
 <translation id="2325650632570794183">Este tipo de arquivo não é suportado. Visite a Chrome Web Store para encontrar um aplicativo que possa abrir este tipo de arquivo.</translation>
 <translation id="2326931316514688470">&amp;Recarregar aplicativo</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Adicionar compartilhamento de arquivos</translation>
 <translation id="2367972762794486313">Mostrar aplicativos</translation>
 <translation id="2369536625682139252">Os dados armazenados pelo <ph name="SITE" /> serão excluídos, exceto os cookies.</translation>
-<translation id="237058345584060620">Pareie sua chave com este dispositivo para fazer login na sua conta</translation>
 <translation id="2371076942591664043">Abrir quando estiver &amp;concluído</translation>
 <translation id="2377319039870049694">Alternar para a visualização de lista</translation>
 <translation id="2377667304966270281">Falhas graves</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Não foi possível localizar seu smartphone. Certifique-se de que o Bluetooth do <ph name="DEVICE_TYPE" /> esteja ativado. &lt;a&gt;Saiba mais&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Adicionar &amp;pasta...</translation>
 <translation id="249113932447298600">O dispositivo <ph name="DEVICE_LABEL" /> não é atualmente suportado.</translation>
-<translation id="2492040222276243256">Toque no botão na sua chave de segurança e mantenha-o pressionado por pelo menos cinco segundos</translation>
 <translation id="2493021387995458222">Selecionar "uma palavra por vez"</translation>
 <translation id="249303669840926644">Não foi possível concluir o registro</translation>
 <translation id="2495777824269688114">Descubra mais recursos ou veja respostas. Selecione “?” para receber ajuda.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Total: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Longo</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (plataforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Esta guia está compartilhando sua tela.</translation>
 <translation id="2586657967955657006">Área de transferência</translation>
 <translation id="2586672484245266891">Informe um URL menor</translation>
 <translation id="2587922270115112871">A criação de um usuário supervisionado não cria uma Conta do Google, e as configurações
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> está usando <ph name="USAGE" /> MB de espaço em disco.</translation>
 <translation id="2633212996805280240">Remover "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101">O <ph name="PRODUCT_NAME" /> não conseguiu completar a instalação, mas continuará a ser executado a partir da sua imagem de disco.</translation>
-<translation id="2633326789677284179">Localize o nome impresso na parte de trás da sua chave</translation>
 <translation id="2635276683026132559">Assinatura</translation>
 <translation id="2636625531157955190">O Google Chrome não pode acessar a imagem.</translation>
 <translation id="2638087589890736295">É necessária uma senha longa para iniciar a sincronização</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Adicionar <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Para ter suas senhas em todos os seus dispositivos, faça login no Chrome.</translation>
 <translation id="2875698561019555027">Páginas de erro do Chrome</translation>
-<translation id="2876441201733326392">Usar chave de segurança USB</translation>
 <translation id="288042212351694283">Acessar seus dispositivos Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Acessado pela última vez:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> será reiniciado e redefinido temporariamente</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Enviar feedback anonimamente</translation>
 <translation id="2984337792991268709">Hoje <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">O controle total de dispositivos MIDI foi bloqueado nesta página.</translation>
-<translation id="2988599644347283908">Observação: os dados que essas configurações controlam podem ser salvos e usados em qualquer serviço do Google em que você esteja conectado para fornecer experiências personalizadas e anúncios úteis. Você pode ver seus dados, excluí-los e alterar suas configurações em account.google.com.</translation>
 <translation id="2989474696604907455">não conectado</translation>
 <translation id="2989786307324390836">binário codificado por DER, certificado único</translation>
 <translation id="2993517869960930405">Informações sobre o aplicativo</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Ativar som das guias</translation>
 <translation id="3053013834507634016">Uso da chave de certificado</translation>
 <translation id="3057861065630527966">Fazer backup de suas fotos e seus vídeos</translation>
-<translation id="3059313675706898490">Android Mensagens</translation>
 <translation id="3060379269883947824">Ativar Selecionar para ouvir</translation>
 <translation id="3061707000357573562">Aplicar patch ao serviço</translation>
 <translation id="3064410671692449875">Dados insuficientes</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Não foi possível copiar o arquivo externo crx em <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" pareado</translation>
 <translation id="3101709781009526431">Data e hora</translation>
-<translation id="3104900172193317662">Permitir o uso da sua chave de segurança</translation>
 <translation id="310671807099593501">O site está usando o Bluetooth</translation>
 <translation id="3115128645424181617">Não foi possível encontrar seu smartphone. Certifique-se de que ele esteja acessível e com o Bluetooth ativado.</translation>
 <translation id="3115147772012638511">Aguardando o cache...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Não faz parte do certificado&gt;</translation>
 <translation id="3254434849914415189">Escolha o aplicativo padrão para os arquivos <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">A detecção automática de fuso horário está desativada</translation>
-<translation id="3254772308201947812">Sim, vamos lá</translation>
 <translation id="3264544094376351444">Fonte Sans-Serif</translation>
 <translation id="3264547943200567728">Falha ao configurar a rede do seu Chromebox</translation>
 <translation id="3264582393905923483">Contexto</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Classificar por</translation>
 <translation id="3737274407993947948">Erro ao instalar o Linux…</translation>
 <translation id="3737536731758327622">Seus downloads são exibidos aqui</translation>
-<translation id="3738671331307774213">A verificação da sua identidade ajuda a proteger seus dados particulares</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Abrir <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> agora é exibido no Admin Console</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sincronização pausada</translation>
 <translation id="3860381078714302691">Bem-vindo ao Hangouts Meet</translation>
+<translation id="3861241522664181545">Página pausada.</translation>
 <translation id="3862134173397075045">Bem-vindo à experiência de transmissão no Chrome!</translation>
 <translation id="3862788408946266506">O app com o atributo de manifesto "kiosk_only" precisa ser instalado no modo quiosque do Chrome OS</translation>
 <translation id="3865414814144988605">Resolução</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Para ativar essa configuração, <ph name="BEGIN_LINK" />redefina a sincronização<ph name="END_LINK" /> e remova sua senha longa de sincronização</translation>
 <translation id="3878840326289104869">Criando usuário supervisionado</translation>
 <translation id="3879748587602334249">Gerenciador de downloads</translation>
-<translation id="3880709822663530586">Sua chave de segurança só funciona quando o Bluetooth do dispositivo está ativado</translation>
 <translation id="3888550877729210209">Tomando notas com <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Adicionar OpenVPN / L2TP…</translation>
 <translation id="3893536212201235195">Ler e alterar as configurações de acessibilidade</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">O módulo de segurança está sendo preparado. Aguarde. Esse processo pode demorar alguns minutos…</translation>
 <translation id="4099060993766194518">Restaurar mecanismo de pesquisa padrão?</translation>
 <translation id="4100733287846229632">Espaço em disco do dispositivo criticamente baixo</translation>
+<translation id="4103091233824664032">Digite sua senha para configurar o bloqueio de tela e o login</translation>
 <translation id="4104163789986725820">E&amp;xportar...</translation>
 <translation id="4105563239298244027">Obtenha 1 TB gratuitos no Google Drive</translation>
 <translation id="4107048419833779140">Identificar e ejetar dispositivos de armazenamento</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">O Modo noturno será desativado automaticamente ao amanhecer</translation>
 <translation id="4138267921960073861">Mostrar nomes de usuários e fotos na tela de login</translation>
 <translation id="4144218403971135344">Tenha uma melhor qualidade de vídeo e economize bateria. Os vídeos serão reproduzidos apenas na tela compatível com Cast.</translation>
-<translation id="414599683948988413">Usar sua chave de segurança com o USB</translation>
 <translation id="4146026355784316281">Sempre abrir com visualizador do sistema</translation>
 <translation id="4146785383423576110">Redefinir e limpar</translation>
 <translation id="4147897805161313378">Google Fotos</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Desativar</translation>
 <translation id="4400367121200150367">Sites que nunca salvam senhas serão mostrados aqui</translation>
 <translation id="4400632832271803360">Toque na tecla Iniciador e mantenha-a pressionada para alternar o comportamento das teclas de função</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">A&amp;juda</translation>
 <translation id="4409697491990005945">Margens</translation>
 <translation id="4411578466613447185">Signatário do código</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">O Chrome pode localizar softwares nocivos no seu computador e removê-los</translation>
 <translation id="4481530544597605423">Dispositvos não pareados</translation>
 <translation id="4482194545587547824">O Google pode usar seu histórico de navegação para personalizar a Pesquisa e outros serviços Google</translation>
+<translation id="4493287891836751813">Conheça o seu Google Assistente</translation>
 <translation id="4495419450179050807">Não mostrar esta página</translation>
 <translation id="4499718683476608392">Ativa o preenchimento automático de cartão de crédito para preencher formulários com um único clique</translation>
 <translation id="4500114933761911433">O plug-in <ph name="PLUGIN_NAME" /> falhou</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Desativar som da guia</translation>
 <translation id="4742746985488890273">Fixar na estante</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Saiba como atualizar aplicativos<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Mensagens</translation>
 <translation id="4746971725921104503">Parece que você já está gerenciando um usuário com esse nome. Quer <ph name="LINK_START" />importar <ph name="USER_DISPLAY_NAME" /> para este dispositivo<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Requer uma extensão da Chrome Web Store</translation>
 <translation id="4750394297954878236">Sugestões</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Criação de perfil ativada</translation>
 <translation id="4823484602432206655">Ler e alterar as configurações do dispositivo e usuário</translation>
 <translation id="4823651846660089135">O dispositivo é somente leitura</translation>
+<translation id="4823955295535347797">Acesse seu Assistente a qualquer momento, dizendo "Ok Google" quando a tela estiver ativada.</translation>
 <translation id="4828937774870308359">Australiano</translation>
 <translation id="4829768588131278040">Configurar PIN</translation>
 <translation id="4830502475412647084">Instalando atualização do SO</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Ajude nossos engenheiros a investigar e corrigir a falha. Indique as etapas exatas, se possível. Nenhum detalhe é irrelevante.</translation>
 <translation id="4876895919560854374">Bloquear e desbloquear a tela</translation>
 <translation id="4877017884043316611">Parear com o Chromebox</translation>
+<translation id="4879491255372875719">Automático (padrão)</translation>
 <translation id="4880214202172289027">Controle deslizante de volume</translation>
 <translation id="4880328057631981605">Nome do ponto de acesso</translation>
 <translation id="4880520557730313061">Correção automática</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">para cima</translation>
 <translation id="5100114659116077956">Para oferecer os recursos mais recentes, seu Chromebox precisa ser atualizado.</translation>
 <translation id="5101042277149003567">Abrir todos os favoritos</translation>
-<translation id="5104546332954397226">Usar seu smartphone como uma chave de segurança</translation>
 <translation id="5105855035535475848">Fixar guias</translation>
 <translation id="5108967062857032718">Configurações - Remover apps Android</translation>
 <translation id="5109044022078737958">Ju</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">R&amp;eabrir guia fechada</translation>
 <translation id="52912272896845572">O arquivo de chave privada é inválido.</translation>
 <translation id="529175790091471945">Formatar este dispositivo</translation>
-<translation id="5292195676005197571">Para usar a maioria das chaves, basta pressionar o botão</translation>
 <translation id="5293170712604732402">Restaurar configurações para os padrões originais</translation>
 <translation id="5297082477358294722">Senha salva. Veja e gerencie as senhas salvas na sua <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Tema criado por</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Concordo</translation>
 <translation id="532943162177641444">Toque na notificação no <ph name="PHONE_NAME" /> para configurar o ponto de acesso móvel que pode ser usado por este dispositivo.</translation>
 <translation id="5329858601952122676">&amp;Excluir</translation>
+<translation id="5329945517224105597">O Assistente pode oferecer sugestões mais relevantes e ações específicas relacionadas ao que está sendo exibido na sua tela. É possível alterar essa opção nas configurações do Assistente</translation>
 <translation id="5330145655348521461">Estes arquivos estão abertos em uma área de trabalho diferente. Mude para <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) para vê-los.</translation>
 <translation id="5330512191124428349">Ver informações</translation>
 <translation id="5331069282670671859">Você não tem certificados nesta categoria</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Permitir que os sites reproduzam sons</translation>
 <translation id="5390284375844109566">Banco de dados indexado</translation>
 <translation id="5390743329570580756">Enviar para</translation>
-<translation id="5392327114396848796">Usar uma chave de segurança incorporada</translation>
 <translation id="5397794290049113714">Você</translation>
 <translation id="5398572795982417028">Referência de página fora do limite, que é <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Anúncios bloqueados</translation>
@@ -3077,6 +3071,7 @@
    <ph name="LINE_BREAKS" />
    Feche todos os itens do arquivo ou disco virtual e tente novamente.</translation>
 <translation id="5687326903064479980">Fuso horário</translation>
+<translation id="568824803367507355">Detecção de "Ok Google"</translation>
 <translation id="5689516760719285838">Local</translation>
 <translation id="56907980372820799">Vincular dados</translation>
 <translation id="5691511426247308406">Família</translation>
@@ -3174,7 +3169,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Gravação de câmera ou microfone</translation>
 <translation id="5835754902560991078">extremamente curto (0,6 seg)</translation>
 <translation id="5838456317242088717">Sessão anônima atual</translation>
-<translation id="5842053879378944309">Usar chave de segurança USB com <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Ativar Bluetooth</translation>
 <translation id="5843250171025351504">Seu dispositivo não é mais compatível com a versão mínima do cliente especificada pelo seu administrador. Atualize para fazer login.</translation>
 <translation id="5846929185714966548">Aba 4</translation>
@@ -3493,7 +3487,6 @@
 <translation id="6317318380444133405">Não é mais compatível.</translation>
 <translation id="6317369057005134371">Aguardando janela do aplicativo...</translation>
 <translation id="6318407754858604988">Download iniciado</translation>
-<translation id="6322653941595359182">Enviar e receber mensagens de texto no Chromebook</translation>
 <translation id="6324916366299863871">Editar atalho</translation>
 <translation id="6325191661371220117">Desativar inicialização automática</translation>
 <translation id="6326175484149238433">Remover do Google Chrome</translation>
@@ -3537,6 +3530,7 @@
 <translation id="6395423953133416962">Enviar <ph name="BEGIN_LINK1" />informações<ph name="END_LINK1" /> e <ph name="BEGIN_LINK2" />métricas do sistema<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Opções de sincronização e personalização</translation>
 <translation id="6397592254427394018">Abrir todos os favoritos em &amp;janela  anônima</translation>
+<translation id="639777613761517128">Para abrir arquivos com $1, primeiro você precisa copiá-los para a pasta de arquivos do Linux.</translation>
 <translation id="6398715114293939307">Remover Google Play Store</translation>
 <translation id="6398765197997659313">Sair do modo tela cheia</translation>
 <translation id="6399774419735315745">Espião</translation>
@@ -3562,7 +3556,6 @@
 <translation id="642282551015776456">Este não é um nome válido para arquivos ou pastas.</translation>
 <translation id="642469772702851743">Este dispositivo (SN: <ph name="SERIAL_NUMBER" />) foi bloqueado pelo proprietário.</translation>
 <translation id="6426200009596957090">Abrir as configurações do ChromeVox</translation>
-<translation id="6427415464407526111">Selecionar chave de segurança</translation>
 <translation id="6429384232893414837">Erro de atualização</translation>
 <translation id="6430814529589430811">ASCII codificado na Base64, certificado único</translation>
 <translation id="6431217872648827691">Todos os dados foram criptografados com sua senha do Google a partir de 
@@ -3720,7 +3713,6 @@
 <translation id="6655190889273724601">Modo do desenvolvedor</translation>
 <translation id="6655458902729017087">Ocultar contas</translation>
 <translation id="6657585470893396449">Senha</translation>
-<translation id="6658023813581644008">Para configurar o Smart Lock para login, informe sua senha</translation>
 <translation id="6659213950629089752">Esta página foi ampliada pela extensão "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Guia</translation>
 <translation id="6664237456442406323">Infelizmente, seu computador está configurado com um ID de hardware mal formado. Isso impede que o Chrome OS seja atualizado com as correções de segurança mais recentes e, por isso, seu computador <ph name="BEGIN_BOLD" />pode ficar vulnerável a ataques maliciosos<ph name="END_BOLD" />.</translation>
@@ -3856,7 +3848,6 @@
 <translation id="6885771755599377173">Visualização de informações do sistema</translation>
 <translation id="6886871292305414135">Abrir link em uma nova &amp;guia</translation>
 <translation id="6892812721183419409">Abrir link como <ph name="USER" /></translation>
-<translation id="6896398788631624004">Conecte sua chave de segurança e ative-a</translation>
 <translation id="6896758677409633944">Copiar</translation>
 <translation id="6898440773573063262">Os aplicativos de quiosque agora podem ser configurados para inicialização automática neste dispositivo.</translation>
 <translation id="6898699227549475383">O (Organização)</translation>
@@ -3875,6 +3866,7 @@
 <translation id="6915804003454593391">Usuário:</translation>
 <translation id="6916590542764765824">Gerenciar extensões</translation>
 <translation id="6920989436227028121">Abrir como guia normal</translation>
+<translation id="6921709132208495314">Parar de usar dados nesta página</translation>
 <translation id="6922128026973287222">Economize dados e navegue mais rápido usando a Economia de dados do Google. Clique para saber mais.</translation>
 <translation id="6923132443355966645">Rolar / Clicar</translation>
 <translation id="6930242544192836755">Duração</translation>
@@ -3897,6 +3889,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Porta</translation>
 <translation id="6965978654500191972">Dispositivo</translation>
+<translation id="6968288415730398122">Digite sua senha para configurar o bloqueio de tela</translation>
 <translation id="6970480684834282392">Tipo de inicialização</translation>
 <translation id="6970856801391541997">Imprimir páginas específicas</translation>
 <translation id="6972180789171089114">Áudio/vídeo</translation>
@@ -3907,6 +3900,7 @@
 <translation id="6978121630131642226">Mecanismos de pesquisa</translation>
 <translation id="6978611942794658017">Este arquivo foi projetado para um computador que utilize o software Windows. Ele não é compatível com seu dispositivo, que executa o Chrome OS. Procure na Chrome Web Store por um app substituto adequado.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Desativar som (padrão)</translation>
 <translation id="6979737339423435258">Todo o período</translation>
 <translation id="6980462514016882061">O Google pode usar seu histórico de navegação para personalizar a Pesquisa Google, os anúncios e outros serviços nossos</translation>
 <translation id="6981982820502123353">Acessibilidade</translation>
@@ -4055,6 +4049,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Estas são informações gerais sobre seu dispositivo e como você o utiliza (como nível da bateria, uso de apps e conectividade da rede). Os dados serão usados para aprimorar os produtos e serviços do Google para todos. Algumas informações agregadas também ajudarão parceiros, como desenvolvedores Android, a fazer apps e produtos melhores.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />A desativação deste recurso não afetará a capacidade do seu dispositivo de enviar as informações necessárias para serviços essenciais, como atualizações do sistema e segurança.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />É possível controlar este recurso em Config. &gt; Google. Selecione Uso e diagnóstico no menu.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Encontramos <ph name="NUMBER_OF_APPS" /> apps da sua conta que podem ser usados neste dispositivo.</translation>
 <translation id="7199158086730159431">Conseguir &amp;ajuda</translation>
 <translation id="7200083590239651963">Selecionar configuração</translation>
 <translation id="720110658997053098">Manter este dispositivo permanentemente no modo quiosque</translation>
@@ -4075,7 +4070,6 @@
 <translation id="7228523857728654909">Bloqueio de tela e login</translation>
 <translation id="7229570126336867161">EVDO ausente</translation>
 <translation id="7230787553283372882">Personalizar o tamanho do texto</translation>
-<translation id="7231589788477569369">Aproveite o Assistente ao máximo com estas configurações</translation>
 <translation id="7232750842195536390">Falha na renomeação</translation>
 <translation id="7234406375359457793">Erro ao ativar o compartilhamento. O compartilhamento especificado não é compatível.</translation>
 <translation id="7238585580608191973">Assinatura digital SHA-256</translation>
@@ -4085,7 +4079,6 @@
 <translation id="7243632151880336635">Limpar e sair</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Melhor)</translation>
 <translation id="7246339268451149667">Ativar desbloqueio com impressão digital?</translation>
-<translation id="7246489301073081944">Mantenha pressionadas as teclas |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| para sair</translation>
 <translation id="7246947237293279874">Proxy FTP</translation>
 <translation id="725109152065019550">Seu administrador desabilitou o armazenamento externo em sua conta.</translation>
 <translation id="7253521419891527137">&amp;Saiba mais</translation>
@@ -4238,7 +4231,6 @@
 <translation id="7489605380874780575">Verificar elegibilidade</translation>
 <translation id="749028671485790643">Pessoa <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Endereço MAC</translation>
-<translation id="7490950320178383728">Usar sua chave de segurança com o Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">A extensão <ph name="EXTENSION_NAME" /> pode coletar todo o texto que você digita, incluindo dados pessoais, como senhas e números de cartão de crédito. Quer usar essa extensão?</translation>
 <translation id="7494065396242762445">Abrir Configurações do Windows</translation>
@@ -4488,7 +4480,6 @@
 <translation id="7850851215703745691">Estes arquivos do Google Drive ainda não foram compartilhados</translation>
 <translation id="7851457902707056880">O login foi restrito somente à conta do proprietário. Reinicie e faça login com a conta do proprietário. A máquina reiniciará automaticamente dentro de 30 segundos.</translation>
 <translation id="7851716364080026749">Sempre bloquear acesso à câmera e ao microfone</translation>
-<translation id="7851816139220202929">Usar sua chave de segurança com a NFC</translation>
 <translation id="7853747251428735">Mais &amp;ferramentas</translation>
 <translation id="7856006446339184955">Enviar dados do sistema. Atualmente, este dispositivo envia automaticamente dados de uso e diagnóstico do dispositivo e de apps para o Google. Essa <ph name="BEGIN_LINK1" />configuração<ph name="END_LINK1" /> é aplicada pelo proprietário. Se você ativou a opção "Atividade na Web e de apps", essas informações serão armazenadas com sua conta para que você possa gerenciá-las em Minha atividade. <ph name="BEGIN_LINK2" />Saiba mais<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Adicionar exceção</translation>
@@ -4571,6 +4562,7 @@
 <translation id="7973962044839454485">Falha da autenticação PPC devido a senha ou nome de usuário incorreto</translation>
 <translation id="7974566588408714340">Tentar novamente usando <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Overscan</translation>
+<translation id="79766959863778284">Serviço de dispositivo isolado XR</translation>
 <translation id="7977551819349545646">Atualizando Chromebox...</translation>
 <translation id="7978412674231730200">Chave privada</translation>
 <translation id="7978450511781612192">Isso desconectará você das suas Contas do Google. Seus favoritos, histórico, senhas e outras configurações não serão mais sincronizados.</translation>
@@ -4621,7 +4613,6 @@
 <translation id="8030656706657716245">Adicionar impressora</translation>
 <translation id="8032244173881942855">Não é possível transmitir a guia.</translation>
 <translation id="8033827949643255796">selecionado</translation>
-<translation id="8033958968890501070">Expirada</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Abrir tudo em &amp;janela anônima}=1{Abrir em &amp;janela anônima}one{Abrir tudo (#) em &amp;janela anônima}other{Abrir tudo (#) em &amp;janela anônima}}</translation>
 <translation id="8037117027592400564">Ler todo texto falado usando voz sintetizada</translation>
 <translation id="8037357227543935929">Perguntar (padrão)</translation>
@@ -4794,6 +4785,7 @@
 <translation id="8320459152843401447">A tela inteira</translation>
 <translation id="8322814362483282060">Esta página foi impedida de acessar seu microfone.</translation>
 <translation id="8326478304147373412">PKCS #7, cadeia de certificados</translation>
+<translation id="8327039559959785305">Erro ao ativar arquivos do Linux. Tente novamente.</translation>
 <translation id="8329978297633540474">Texto sem formatação</translation>
 <translation id="8335587457941836791">Desafixar da estante</translation>
 <translation id="8336153091935557858">Ontem <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4845,7 +4837,6 @@
 <translation id="8425213833346101688">Alterar</translation>
 <translation id="8425492902634685834">Fixar na barra de tarefas</translation>
 <translation id="8425755597197517046">&amp;Colar e pesquisar</translation>
-<translation id="8426117172745886547">Avisar antes de sair (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Ativando</translation>
 <translation id="8427292751741042100">incorporado em qualquer host</translation>
 <translation id="8428213095426709021">Configurações</translation>
@@ -4933,7 +4924,6 @@
 <translation id="8551388862522347954">Licenças</translation>
 <translation id="8553342806078037065">Gerenciar outras pessoas</translation>
 <translation id="8554899698005018844">Sem idioma</translation>
-<translation id="8557347704037207368">Envia notificações do Android Web Messages</translation>
 <translation id="855773602626431402">Um plug-in sem sandbox teve a execução impedida nesta página.</translation>
 <translation id="8557930019681227453">Manifesto</translation>
 <translation id="8559694214572302298">Decodificador de imagem</translation>
@@ -5046,6 +5036,7 @@
 <translation id="8714154114375107944">Fim do suporte</translation>
 <translation id="8714838604780058252">Gráficos de segundo plano</translation>
 <translation id="8715480913140015283">A guia em segundo plano está usando sua câmera</translation>
+<translation id="8716931980467311658">Excluir todos os aplicativos e dados do Linux da pasta de arquivos do Linux deste <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Falha no download do plug-in <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Subquadros anônimos de: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Mostrar na pasta</translation>
@@ -5209,7 +5200,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Falhou</translation>
 <translation id="8983677657449185470">Ajude a melhorar a Navegação segura</translation>
 <translation id="8984654317541110628">URL de compartilhamento de arquivos</translation>
-<translation id="8984872292925913496">Localize o PIN de seis dígitos na parte de trás da sua chave</translation>
 <translation id="8986362086234534611">Esquecer</translation>
 <translation id="8986494364107987395">Envia estatísticas de uso e relatórios de erros ao Google automaticamente</translation>
 <translation id="8987927404178983737">Mês</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 28085fa..38bff51 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Realçar o objeto com o foco do teclado quando é alterado</translation>
 <translation id="1173894706177603556">Mudar nome</translation>
 <translation id="1174073918202301297">Atalho adicionado</translation>
-<translation id="1174808551768282258">Desbloqueie o Chromebook com o telemóvel. <ph name="LINK_BEGIN" />Saiba mais.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">Im&amp;primir...</translation>
 <translation id="117624967391683467">A copiar <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">A Google pode utilizar o seu histórico de navegação para personalizar a Pesquisa, os anúncios e outros serviços Google. Pode alterar esta definição a qualquer momento em myaccount.google.com/activitycontrols/search.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pausa</translation>
 <translation id="1181037720776840403">Remover</translation>
 <translation id="1183237619868651138">Não é possível instalar <ph name="EXTERNAL_CRX_FILE" /> na cache local.</translation>
-<translation id="1183378459020939734">Está pronto para sincronizar a sua Chave de segurança?</translation>
 <translation id="1185924365081634987">Também pode experimentar <ph name="GUEST_SIGNIN_LINK_START" />navegar como convidado<ph name="GUEST_SIGNIN_LINK_END" /> para corrigir este erro de rede.</translation>
 <translation id="1186771945450942097">Remover software prejudicial</translation>
 <translation id="1187722533808055681">Reativações após inatividade</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Não foram encontrados dispositivos Bluetooth</translation>
 <translation id="1306606229401759371">Alterar definições</translation>
 <translation id="1307559529304613120">Ups! O sistema não conseguiu guardar a chave de acesso da API de longo prazo para este dispositivo.</translation>
+<translation id="1307931752636661898">Não é possível ver os ficheiros Linux.</translation>
 <translation id="1313405956111467313">Configuração automática do proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Os seus marcadores, o seu histórico e outras definições estão a ser sincronizados com a sua Conta Google.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Abrir definições do dispositivo do rato e do touchpad</translation>
 <translation id="1531004739673299060">Janela da aplicação</translation>
 <translation id="15373452373711364">Cursor do rato grande</translation>
+<translation id="1538729222189715449">A abrir ficheiros Linux…</translation>
 <translation id="1540605929960647700">Ativar o modo de demonstração</translation>
 <translation id="1543284117603151572">Importado do Edge</translation>
 <translation id="1545177026077493356">Modo quiosque automático</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Alterar o modo HUD tátil</translation>
 <translation id="1784849162047402014">O dispositivo tem pouco espaço em disco</translation>
 <translation id="1786636458339910689">Drives de equipa</translation>
-<translation id="1792161662640298233">A validar a sua Chave de segurança…</translation>
 <translation id="1792619191750875668">Ecrã expandido</translation>
 <translation id="1794791083288629568">Envie-nos comentários para nos ajudar a corrigir este problema.</translation>
 <translation id="1795214765651529549">Utilizar tema clássico</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Bem-vindo!</translation>
 <translation id="1914326953223720820">Serviço de descompressão de ficheiros</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Consoante as definições da conta, a sua experiência com o Assistente poderá estar limitada a coisas como resultados da Web, anedotas e informações locais.</translation>
 <translation id="1916502483199172559">Avatar vermelho predefinido</translation>
 <translation id="1918141783557917887">Mai&amp;s pequeno</translation>
 <translation id="1919345977826869612">Anúncios</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">O <ph name="PEPPER_PLUGIN_NAME" /> em <ph name="PEPPER_PLUGIN_DOMAIN" /> pretende aceder ao seu computador.</translation>
 <translation id="2178614541317717477">AC comprometida</translation>
 <translation id="218070003709087997">Utilize um número para indicar as cópias a imprimir (1 a 999).</translation>
+<translation id="2184515124301515068">Permitir que o Chrome escolha quando os sites podem reproduzir som (recomendado)</translation>
 <translation id="2187895286714876935">Erro na importação do certificado do servidor</translation>
 <translation id="2187906491731510095">Extensões atualizadas.</translation>
 <translation id="2188881192257509750">Abrir <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Ler e alterar os seus dados em vários Sites</translation>
 <translation id="2242687258748107519">Informação de ficheiro</translation>
 <translation id="2243194103992005307">Para remover aplicações, aceda a Definições &gt; Aplicações ou Gestor de aplicações. Toque na aplicação que pretende desinstalar (pode ter de deslizar rapidamente para a direita ou para a esquerda para encontrar a aplicação). De seguida, toque em Desinstalar ou em Desativar.</translation>
+<translation id="224940702122312781">Esta página utiliza uma grande quantidade de dados.</translation>
 <translation id="2249605167705922988">por exemplo 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Abrir com o System Viewer</translation>
 <translation id="225163402930830576">Atualizar redes</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Configurar rede</translation>
 <translation id="230927227160767054">Esta página pretende instalar um controlador de serviço.</translation>
 <translation id="2309620859903500144">Este site foi impedido de aceder aos seus sensores de movimento ou de luz.</translation>
-<translation id="2311075084924370935">Para o ajudar com o calendário, os lembretes, os voos e muito mais, o Assistente precisa das definições da Atividade da Web e de aplicações, das Informações do dispositivo e da Atividade de voz e de áudio.</translation>
+<translation id="2315414688463285945">Ocorreu um erro ao configurar os ficheiros Linux. Tente novamente.</translation>
 <translation id="2315821125498993513">Não foi possível estabelecer ligação ao telemóvel. <ph name="LINK_BEGIN" />Saiba mais.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Não, obrigado</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% concluída</translation>
 <translation id="2318143611928805047">Tamanho do papel</translation>
 <translation id="2318817390901984578">Para utilizar aplicações para Android, carregue e atualize o seu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Sessão no modo de navegação anónima atual (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Utilizar a Chave de segurança com a aplicação <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Cabeçalhos e rodapés</translation>
 <translation id="2325650632570794183">Este tipo de ficheiro não é suportado. Visite a Chrome Web Store para encontrar uma aplicação que abra este tipo de ficheiro.</translation>
 <translation id="2326931316514688470">&amp;Recarregar aplicação</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Adicionar partilha de ficheiros</translation>
 <translation id="2367972762794486313">Mostrar aplicações</translation>
 <translation id="2369536625682139252">Todos os dados armazenados pelo site <ph name="SITE" /> serão eliminados, exceto os cookies.</translation>
-<translation id="237058345584060620">Sincronize a sua chave com este dispositivo para a poder utilizar ao iniciar sessão na sua conta.</translation>
 <translation id="2371076942591664043">Abrir quando estiver concluí&amp;do</translation>
 <translation id="2377319039870049694">Mudar para a vista de lista</translation>
 <translation id="2377667304966270281">Falhas de hardware</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Não é possível localizar o telemóvel. Certifique-se de que o Bluetooth de <ph name="DEVICE_TYPE" /> está ativado. &lt;a&gt;Saiba mais&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Adicionar &amp;Pasta...</translation>
 <translation id="249113932447298600">Lamentamos, mas de momento o aparelho <ph name="DEVICE_LABEL" /> não é suportado.</translation>
-<translation id="2492040222276243256">Prima sem soltar o botão na sua Chave de segurança durante, pelo menos, 5 segundos.</translation>
 <translation id="2493021387995458222">Selecionar "palavra de cada vez"</translation>
 <translation id="249303669840926644">Não foi possível concluir o registo</translation>
 <translation id="2495777824269688114">Descubra mais funcionalidades ou obtenha respostas. Selecione "?" para obter ajuda.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Total: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Longo</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (plataforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Este separador está a partilhar o seu ecrã.</translation>
 <translation id="2586657967955657006">Área de transferência</translation>
 <translation id="2586672484245266891">Introduza um URL mais curto.</translation>
 <translation id="2587922270115112871">Criar utilizadores supervisionados não cria Contas Google e as definições
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> está a utilizar <ph name="USAGE" /> MB de espaço em disco.</translation>
 <translation id="2633212996805280240">Remover "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101">O <ph name="PRODUCT_NAME" /> não conseguiu terminar a instalação, mas continuará a executar a partir da respectiva imagem de disco.</translation>
-<translation id="2633326789677284179">Procure o nome impresso na parte posterior da sua chave.</translation>
 <translation id="2635276683026132559">Assinatura</translation>
 <translation id="2636625531157955190">O Chrome não consegue aceder à imagem.</translation>
 <translation id="2638087589890736295">A frase de acesso é necessária para iniciar a sincronização</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Adicionar <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Para obter as suas palavras-passe em todos os dispositivos, inicie sessão no Chrome.</translation>
 <translation id="2875698561019555027">(Páginas de erro do Chrome)</translation>
-<translation id="2876441201733326392">Utilizar a Chave de segurança USB</translation>
 <translation id="288042212351694283">Aceder aos seus dispositivos Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Último acesso:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> é reiniciado e reposto momentaneamente</translation>
@@ -1328,7 +1324,6 @@
 <translation id="2982970937345031">Denunciar anonimamente</translation>
 <translation id="2984337792991268709">Hoje <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Esta página foi impedida de ter controlo total sobre dispositivos MIDI.</translation>
-<translation id="2988599644347283908">Nota: os dados que estas definições controlam podem ser guardados e utilizados em qualquer serviço Google no qual tenha iniciado sessão para lhe proporcionar experiências personalizadas e anúncios úteis. Pode ver os seus dados, eliminá-los e alterar as definições em account.google.com.</translation>
 <translation id="2989474696604907455">não ligado</translation>
 <translation id="2989786307324390836">Certificado único de binário codificado DER</translation>
 <translation id="2993517869960930405">Informações da aplicação</translation>
@@ -1381,7 +1376,6 @@
 <translation id="304826556400666995">Reativar Som dos Separadores</translation>
 <translation id="3053013834507634016">Utilização de chave de certificado</translation>
 <translation id="3057861065630527966">Fazer uma cópia de segurança de fotos e vídeos</translation>
-<translation id="3059313675706898490">Mensagens Android</translation>
 <translation id="3060379269883947824">Ativar Selecionar para ativar voz</translation>
 <translation id="3061707000357573562">Serviço de patch</translation>
 <translation id="3064410671692449875">Dados insuficientes</translation>
@@ -1410,7 +1404,6 @@
 <translation id="3090819949319990166">Não é possível copiar o ficheiro crx externo para <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" sincronizado</translation>
 <translation id="3101709781009526431">Data e hora</translation>
-<translation id="3104900172193317662">Autorizar a utilização da sua Chave de segurança</translation>
 <translation id="310671807099593501">O site está a utilizar o Bluetooth.</translation>
 <translation id="3115128645424181617">Não é possível localizar o telemóvel. Certifique-se de que o mesmo está próximo e que o Bluetooth está ativado.</translation>
 <translation id="3115147772012638511">A aguardar pela cache...</translation>
@@ -1494,7 +1487,6 @@
 <translation id="3251759466064201842">&lt;Não faz parte do certificado&gt;</translation>
 <translation id="3254434849914415189">Escolha a aplicação predefinida para ficheiros <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">A deteção automática do fuso horário está desativada.</translation>
-<translation id="3254772308201947812">Sim, aceito</translation>
 <translation id="3264544094376351444">Tipo de letra Sans-Serif</translation>
 <translation id="3264547943200567728">Falha ao configurar a rede do seu Chromebox</translation>
 <translation id="3264582393905923483">Contexto</translation>
@@ -1817,7 +1809,6 @@
 <translation id="3735740477244556633">Ordenar por</translation>
 <translation id="3737274407993947948">Ocorreu um erro ao instalar o Linux…</translation>
 <translation id="3737536731758327622">As suas transferências aparecem aqui</translation>
-<translation id="3738671331307774213">A validação da sua identidade ajuda a proteger os seus dados privados.</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Pretende abrir <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> será agora apresentado na Consola do gestor.</translation>
@@ -1911,6 +1902,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sincronização em pausa</translation>
 <translation id="3860381078714302691">Bem-vindo ao Hangouts Meet</translation>
+<translation id="3861241522664181545">Página em pausa.</translation>
 <translation id="3862134173397075045">Bem-vindo à experiência do Google Cast no Chrome!</translation>
 <translation id="3862788408946266506">É necessário instalar a aplicação com o atributo de manifesto "kiosk_only" no modo quiosque do Chrome OS.</translation>
 <translation id="3865414814144988605">Resolução</translation>
@@ -1925,7 +1917,6 @@
 <translation id="3873315167136380065">Para ativar isto, <ph name="BEGIN_LINK" />reponha a sincronização<ph name="END_LINK" /> para remover a frase de acesso de sincronização.</translation>
 <translation id="3878840326289104869">A criar utilizador supervisionado</translation>
 <translation id="3879748587602334249">Gestor de transferências</translation>
-<translation id="3880709822663530586">A sua Chave de segurança só funciona quando o Bluetooth do dispositivo está ativado.</translation>
 <translation id="3888550877729210209">Tirar notas com a aplicação <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Adicionar OpenVPN/L2TP...</translation>
 <translation id="3893536212201235195">Ler e alterar as suas definições de acessibilidade</translation>
@@ -2071,6 +2062,7 @@
 <translation id="4096824249111507322">O módulo seguro está a ser preparado. Aguarde (esta operação pode demorar alguns minutos)...</translation>
 <translation id="4099060993766194518">Pretende restaurar o motor de pesquisa predefinido?</translation>
 <translation id="4100733287846229632">Espaço do dispositivo criticamente baixo</translation>
+<translation id="4103091233824664032">Introduza a palavra-passe para configurar o bloqueio de ecrã e iniciar sessão.</translation>
 <translation id="4104163789986725820">E&amp;xportar...</translation>
 <translation id="4105563239298244027">Obtenha 1 TB grátis com o Google Drive</translation>
 <translation id="4107048419833779140">Identificar e ejetar dispositivos de armazenamento</translation>
@@ -2091,7 +2083,6 @@
 <translation id="4136203100490971508">A Luz noturna irá desativar-se automaticamente ao nascer do sol.</translation>
 <translation id="4138267921960073861">Mostrar nomes de utilizador e fotos no ecrã de início de sessão</translation>
 <translation id="4144218403971135344">Obtenha uma melhor qualidade de vídeo e poupe autonomia da bateria. O vídeo é reproduzido apenas no seu ecrã compatível com o Cast.</translation>
-<translation id="414599683948988413">Utilizar a sua Chave de segurança com USB</translation>
 <translation id="4146026355784316281">Abrir sempre com o visualizador do sistema</translation>
 <translation id="4146785383423576110">Repor e limpar</translation>
 <translation id="4147897805161313378">Google Fotos</translation>
@@ -2226,6 +2217,7 @@
 <translation id="4394049700291259645">Desactivar</translation>
 <translation id="4400367121200150367">Os sites que nunca guardam a palavra-passe aparecem aqui</translation>
 <translation id="4400632832271803360">Prima sem soltar a tecla do iniciador para alterar o comportamento das teclas da linha superior.</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">A&amp;juda</translation>
 <translation id="4409697491990005945">Margens</translation>
 <translation id="4411578466613447185">Signatário do código</translation>
@@ -2274,6 +2266,7 @@
 <translation id="4480590691557335796">O Chrome pode encontrar software prejudicial no seu computador e removê-lo.</translation>
 <translation id="4481530544597605423">Dispositivos dessincronizados</translation>
 <translation id="4482194545587547824">A Google pode utilizar o seu histórico de navegação para personalizar a Pesquisa Google e outros serviços Google</translation>
+<translation id="4493287891836751813">Conheça o seu Assistente Google</translation>
 <translation id="4495419450179050807">Não mostrar nesta página</translation>
 <translation id="4499718683476608392">Ativar o Preenchimento automático de cartões de crédito para preencher formulários com um único clique</translation>
 <translation id="4500114933761911433">O plug-in <ph name="PLUGIN_NAME" /> falhou.</translation>
@@ -2434,6 +2427,7 @@
 <translation id="474217410105706308">Desativar Som do Separador</translation>
 <translation id="4742746985488890273">Afixar na prateleira</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Saiba como atualizar aplicações<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Mensagens</translation>
 <translation id="4746971725921104503">Parece que já está a gerir um utilizador com esse nome. Pretendia <ph name="LINK_START" />importá-lo <ph name="USER_DISPLAY_NAME" /> para este dispositivo<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Requer extensão da Web Store do Chrome</translation>
 <translation id="4750394297954878236">Sugestões</translation>
@@ -2475,6 +2469,7 @@
 <translation id="4821935166599369261">Criação de &amp;perfis ativada</translation>
 <translation id="4823484602432206655">Ler e alterar definições do utilizador e do dispositivo</translation>
 <translation id="4823651846660089135">O dispositivo é apenas de leitura</translation>
+<translation id="4823955295535347797">Aceda ao Assistente sempre que disser "Ok Google" quando o ecrã estiver ligado.</translation>
 <translation id="4828937774870308359">Australiano</translation>
 <translation id="4829768588131278040">Configurar PIN</translation>
 <translation id="4830502475412647084">A instalar a atualização do SO…</translation>
@@ -2515,6 +2510,7 @@
 <translation id="4876273079589074638">Ajude os nossos engenheiros a analisar e corrigir esta falha de sistema. Enumere os passos exatos, se possível. Nenhum detalhe é demasiado pequeno!</translation>
 <translation id="4876895919560854374">Bloquear e desbloquear o ecrã</translation>
 <translation id="4877017884043316611">Sincronizar com o Chromebox</translation>
+<translation id="4879491255372875719">Automático (predefinição)</translation>
 <translation id="4880214202172289027">Controlo de deslize do volume</translation>
 <translation id="4880328057631981605">Nome do ponto de acesso</translation>
 <translation id="4880520557730313061">Correção automática</translation>
@@ -2668,7 +2664,6 @@
 <translation id="5099354524039520280">para cima</translation>
 <translation id="5100114659116077956">Para lhe oferecer as funcionalidades mais recentes, é necessário atualizar o seu Chromebox.</translation>
 <translation id="5101042277149003567">Abrir todos os marcadores</translation>
-<translation id="5104546332954397226">Utilizar o telemóvel como Chave de segurança</translation>
 <translation id="5105855035535475848">Fixar separadores</translation>
 <translation id="5108967062857032718">Definições – Remover aplicações para Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2799,7 +2794,6 @@
 <translation id="5288678174502918605">Voltar a Abrir o S&amp;eparador Fechado</translation>
 <translation id="52912272896845572">O ficheiro de chave privada é inválido.</translation>
 <translation id="529175790091471945">Formatar este dispositivo</translation>
-<translation id="5292195676005197571">Para utilizar a maioria das chaves, basta premir o botão.</translation>
 <translation id="5293170712604732402">Repor as predefinições originais das definições</translation>
 <translation id="5297082477358294722">Palavra-passe guardada. Veja e faça a gestão das palavras-passe guardadas em <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Tema criado por</translation>
@@ -2825,6 +2819,7 @@
 <translation id="532776649628038357">Concordo</translation>
 <translation id="532943162177641444">Toque na notificação no <ph name="PHONE_NAME" /> para configurar a zona Wi-Fi móvel que pode ser utilizada por este dispositivo.</translation>
 <translation id="5329858601952122676">E&amp;liminar</translation>
+<translation id="5329945517224105597">O Assistente pode oferecer sugestões mais relevantes e ações específicas relacionadas com o que está no ecrã. Pode alterar esta opção nas definições do Assistente.</translation>
 <translation id="5330145655348521461">Estes ficheiros foram abertos num ambiente de trabalho diferente. Mova para <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) para ver.</translation>
 <translation id="5330512191124428349">Obter informações</translation>
 <translation id="5331069282670671859">Não tem certificados nesta categoria</translation>
@@ -2869,7 +2864,6 @@
 <translation id="5390100381392048184">Permitir que os sites reproduzam som</translation>
 <translation id="5390284375844109566">Base de dados indexada</translation>
 <translation id="5390743329570580756">Enviar para</translation>
-<translation id="5392327114396848796">Utilizar uma Chave de segurança integrada</translation>
 <translation id="5397794290049113714">Utilizador</translation>
 <translation id="5398572795982417028">A referência da página está fora dos limites; o limite é <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Anúncios bloqueados</translation>
@@ -3078,6 +3072,7 @@
    <ph name="LINE_BREAKS" />
    Feche todos os ficheiros do arquivo ou disco virtual e tente novamente.</translation>
 <translation id="5687326903064479980">Fuso horário</translation>
+<translation id="568824803367507355">Deteção de "Ok Google"</translation>
 <translation id="5689516760719285838">Local</translation>
 <translation id="56907980372820799">Associar dados</translation>
 <translation id="5691511426247308406">Família</translation>
@@ -3175,7 +3170,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – câmara ou microfone a gravar</translation>
 <translation id="5835754902560991078">extremamente curto (0,6 seg)</translation>
 <translation id="5838456317242088717">Sessão no modo de navegação anónima atual</translation>
-<translation id="5842053879378944309">Utilizar a Chave de segurança USB com a aplicação <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Ativar o Bluetooth</translation>
 <translation id="5843250171025351504">O seu dispositivo deixou de estar em conformidade com a versão de cliente mínima especificada pelo seu administrador. Atualize para iniciar sessão.</translation>
 <translation id="5846929185714966548">Separador 4</translation>
@@ -3493,7 +3487,6 @@
 <translation id="6317318380444133405">Já não é suportada.</translation>
 <translation id="6317369057005134371">A aguardar janela da aplicação...</translation>
 <translation id="6318407754858604988">A transferência foi iniciada.</translation>
-<translation id="6322653941595359182">Envie e receba mensagens de texto com o Chromebook.</translation>
 <translation id="6324916366299863871">Editar atalho</translation>
 <translation id="6325191661371220117">Desativar a iniciação automática</translation>
 <translation id="6326175484149238433">Remover do Chrome</translation>
@@ -3537,6 +3530,7 @@
 <translation id="6395423953133416962">Enviar <ph name="BEGIN_LINK1" />informações do sistema<ph name="END_LINK1" /> e <ph name="BEGIN_LINK2" />métricas<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Opções de sincronização e de personalização</translation>
 <translation id="6397592254427394018">Abrir todos os marcadores na janela de &amp;navegação anónima</translation>
+<translation id="639777613761517128">Para abrir ficheiros com o $1, copie primeiro para a pasta Ficheiros Linux.</translation>
 <translation id="6398715114293939307">Remover a Google Play Store</translation>
 <translation id="6398765197997659313">Sair do modo de ecrã inteiro</translation>
 <translation id="6399774419735315745">Espiã</translation>
@@ -3562,7 +3556,6 @@
 <translation id="642282551015776456">Este nome não pode ser utilizado como um nome de ficheiro ou de pasta</translation>
 <translation id="642469772702851743">Este dispositivo (SN: <ph name="SERIAL_NUMBER" />) foi bloqueado pelo proprietário.</translation>
 <translation id="6426200009596957090">Abrir as definições do ChromeVox</translation>
-<translation id="6427415464407526111">Selecionar a sua Chave de segurança</translation>
 <translation id="6429384232893414837">Atualizar erro</translation>
 <translation id="6430814529589430811">Certificado único, ASCII codificado em Base64</translation>
 <translation id="6431217872648827691">Todos os dados foram encriptados com a sua palavra-passe Google em
@@ -3720,7 +3713,6 @@
 <translation id="6655190889273724601">Modo de programador</translation>
 <translation id="6655458902729017087">Ocultar contas</translation>
 <translation id="6657585470893396449">Palavra-passe</translation>
-<translation id="6658023813581644008">Para configurar o Smart Lock para o início de sessão, introduza a sua palavra-passe.</translation>
 <translation id="6659213950629089752">Foi aumentado o zoom nesta página pela extensão "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Infelizmente, o seu computador está configurado com um ID de hardware formatado incorretamente. Este facto impede que o Chrome OS faça a atualização das últimas correções de segurança e o seu computador <ph name="BEGIN_BOLD" />pode estar vulnerável a ataques maliciosos<ph name="END_BOLD" />.</translation>
@@ -3856,7 +3848,6 @@
 <translation id="6885771755599377173">Pré-visualização das informações do sistema</translation>
 <translation id="6886871292305414135">Abrir link num novo &amp;separador</translation>
 <translation id="6892812721183419409">Abrir link como <ph name="USER" /></translation>
-<translation id="6896398788631624004">Ligue e ative a Chave de segurança.</translation>
 <translation id="6896758677409633944">Copiar</translation>
 <translation id="6898440773573063262">Já é possível configurar aplicações de quiosque para início automático neste dispositivo.</translation>
 <translation id="6898699227549475383">Organização (O)</translation>
@@ -3875,6 +3866,7 @@
 <translation id="6915804003454593391">Utilizador:</translation>
 <translation id="6916590542764765824">Gerir extensões</translation>
 <translation id="6920989436227028121">Abrir como separador normal</translation>
+<translation id="6921709132208495314">Parar de utilizar dados nesta página</translation>
 <translation id="6922128026973287222">Poupe dados e navegue mais rápido com a Poupança de dados Google. Clique para saber mais.</translation>
 <translation id="6923132443355966645">Deslocar/clicar</translation>
 <translation id="6930242544192836755">Duração</translation>
@@ -3897,6 +3889,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Porta</translation>
 <translation id="6965978654500191972">Dispositivo</translation>
+<translation id="6968288415730398122">Introduza a sua palavra-passe para configurar o bloqueio de ecrã</translation>
 <translation id="6970480684834282392">Tipo de arranque</translation>
 <translation id="6970856801391541997">Imprimir Páginas Específicas</translation>
 <translation id="6972180789171089114">Áudio/Vídeo</translation>
@@ -3907,6 +3900,7 @@
 <translation id="6978121630131642226">Motores de pesquisa</translation>
 <translation id="6978611942794658017">Este ficheiro foi concebido para computadores com software Windows. Não é compatível com o seu dispositivo, pois este tem o Chrome OS instalado. Procure uma aplicação alternativa adequada na Web Store do Chrome.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Desativar som (predefinição)</translation>
 <translation id="6979737339423435258">Sempre</translation>
 <translation id="6980462514016882061">A Google pode utilizar o seu histórico de navegação para personalizar a Pesquisa Google, os anúncios e outros serviços Google</translation>
 <translation id="6981982820502123353">Acessibilidade</translation>
@@ -4055,6 +4049,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Trata-se de informações gerais acerca do dispositivo e do modo como o utiliza (por exemplo, o nível da bateria, a utilização de aplicações e as ligações de rede). Os dados são utilizados para melhorar os produtos e os serviços Google para todos. Algumas informações agregadas também ajudam os parceiros, como os programadores para Android, a melhorar os respetivos produtos e aplicações.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />A desativação desta funcionalidade não afeta a capacidade de o dispositivo enviar as informações necessárias para serviços essenciais, como as atualizações do sistema e a segurança.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Pode controlar esta funcionalidade a partir de Definições &gt; Google. Selecione Utilização e diagnósticos no menu.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Encontrámos <ph name="NUMBER_OF_APPS" /> aplicações na sua conta que podem ser utilizadas neste dispositivo.</translation>
 <translation id="7199158086730159431">Obter a&amp;juda</translation>
 <translation id="7200083590239651963">Selecionar configuração</translation>
 <translation id="720110658997053098">Manter este dispositivo permanentemente no modo quiosque</translation>
@@ -4075,7 +4070,6 @@
 <translation id="7228523857728654909">Bloqueio de ecrã e início de sessão</translation>
 <translation id="7229570126336867161">Requer EVDO</translation>
 <translation id="7230787553283372882">Personalizar o tamanho do texto</translation>
-<translation id="7231589788477569369">Obter a experiência completa do Assistente com estas definições</translation>
 <translation id="7232750842195536390">Falha ao mudar o nome</translation>
 <translation id="7234406375359457793">Erro ao montar a partilha. A partilha especificada não é suportada.</translation>
 <translation id="7238585580608191973">Impressão digital SHA-256</translation>
@@ -4085,7 +4079,6 @@
 <translation id="7243632151880336635">Limpar e terminar sessão</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (a melhor)</translation>
 <translation id="7246339268451149667">Pretende ativar o desbloqueio por impressão digital?</translation>
-<translation id="7246489301073081944">Para sair, mantenha as teclas |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| premidas.</translation>
 <translation id="7246947237293279874">Proxy de FTP</translation>
 <translation id="725109152065019550">Lamentamos, mas o gestor desativou o armazenamento externo na sua conta.</translation>
 <translation id="7253521419891527137">&amp;Saiba Mais</translation>
@@ -4238,7 +4231,6 @@
 <translation id="7489605380874780575">Verificar elegibilidade</translation>
 <translation id="749028671485790643">Pessoa <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Endereço MAC</translation>
-<translation id="7490950320178383728">Utilizar a sua Chave de segurança com Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">A extensão <ph name="EXTENSION_NAME" /> pode recolher todo o texto que escrever, incluindo dados pessoais como palavras-passe e números de cartões de crédito. Pretende utilizar esta extensão?</translation>
 <translation id="7494065396242762445">Abrir definições do Windows</translation>
@@ -4488,7 +4480,6 @@
 <translation id="7850851215703745691">Estes ficheiros do Google Drive ainda não foram partilhados</translation>
 <translation id="7851457902707056880">O início de sessão foi restringido apenas ao proprietário da conta. Reinicie e inicie sessão com a conta de proprietário. A máquina reiniciará automaticamente dentro de 30 segundos.</translation>
 <translation id="7851716364080026749">Impedir sempre o acesso à câmara e microfone</translation>
-<translation id="7851816139220202929">Utilizar a sua Chave de segurança com NFC</translation>
 <translation id="7853747251428735">Mais ferrament&amp;as</translation>
 <translation id="7856006446339184955">Envie dados do sistema. Atualmente, este dispositivo envia automaticamente dados de diagnóstico e de utilização do dispositivo e das aplicações para a Google. Esta <ph name="BEGIN_LINK1" />definição<ph name="END_LINK1" />é aplicada pelo proprietário. Se tiver ativado a Atividade da Web e de aplicações adicional, estas informações serão armazenadas na sua conta para que as possa gerir em A minha atividade. <ph name="BEGIN_LINK2" />Saiba mais<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Adicionar exceção</translation>
@@ -4571,6 +4562,7 @@
 <translation id="7973962044839454485">Falha na autenticação PPP devido a um nome de utilizador ou palavra-passe incorretos</translation>
 <translation id="7974566588408714340">Tente novamente com <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Overscan</translation>
+<translation id="79766959863778284">Serviço de dispositivos isolados XR</translation>
 <translation id="7977551819349545646">A atualizar o Chromebox...</translation>
 <translation id="7978412674231730200">Chave privada</translation>
 <translation id="7978450511781612192">Deste modo, termina sessão nas suas Contas Google. Os marcadores, o histórico, as palavras-passe e muito mais deixam de ser sincronizados.</translation>
@@ -4621,7 +4613,6 @@
 <translation id="8030656706657716245">Adicionar impressora</translation>
 <translation id="8032244173881942855">Não é possível transmitir o separador.</translation>
 <translation id="8033827949643255796">selecionado</translation>
-<translation id="8033958968890501070">Limite de tempo</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Abrir todos numa &amp;janela de navegação anónima}=1{Abrir numa &amp;janela de navegação anónima}other{Abrir todos (#) numa &amp;janela de navegação anónima}}</translation>
 <translation id="8037117027592400564">Ler todo o texto falado através da voz sintetizada</translation>
 <translation id="8037357227543935929">Pedir (predefinição)</translation>
@@ -4794,6 +4785,7 @@
 <translation id="8320459152843401447">O seu ecrã inteiro</translation>
 <translation id="8322814362483282060">Esta página foi impedida de aceder ao seu microfone.</translation>
 <translation id="8326478304147373412">PKCS #7, cadeia de certificados</translation>
+<translation id="8327039559959785305">Erro ao montar os ficheiros Linux. Tente novamente.</translation>
 <translation id="8329978297633540474">Texto simples</translation>
 <translation id="8335587457941836791">Soltar da prateleira</translation>
 <translation id="8336153091935557858">Ontem <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4844,7 +4836,6 @@
 <translation id="8425213833346101688">Alterar</translation>
 <translation id="8425492902634685834">Afixar na Barra de tarefas</translation>
 <translation id="8425755597197517046">Colar e pesqui&amp;sar</translation>
-<translation id="8426117172745886547">Avisar antes de sair (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">A ativar…</translation>
 <translation id="8427292751741042100">incorporada em qualquer anfitrião</translation>
 <translation id="8428213095426709021">Definições</translation>
@@ -4932,7 +4923,6 @@
 <translation id="8551388862522347954">Licenças</translation>
 <translation id="8553342806078037065">Gerir outras pessoas</translation>
 <translation id="8554899698005018844">Nenhum idioma</translation>
-<translation id="8557347704037207368">Pode enviar-lhe notificações através do Android Web Messages.</translation>
 <translation id="855773602626431402">A execução de um plug-in sem isolamento de processos foi impedida nesta página.</translation>
 <translation id="8557930019681227453">Manifesto</translation>
 <translation id="8559694214572302298">Descodificador de imagem</translation>
@@ -5045,6 +5035,7 @@
 <translation id="8714154114375107944">Compatibilidade terminada</translation>
 <translation id="8714838604780058252">Imagens em segundo plano</translation>
 <translation id="8715480913140015283">O separador em segundo plano está a utilizar a sua câmara.</translation>
+<translation id="8716931980467311658">Pretende eliminar todas as aplicações e os dados do Linux da pasta Ficheiros Linux deste <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">A transferência do <ph name="PLUGIN_NAME" /> falhou</translation>
 <translation id="8723829621484579639">Subframes anónimos para: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">Mo&amp;strar numa Pasta</translation>
@@ -5208,7 +5199,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – falhou</translation>
 <translation id="8983677657449185470">Ajudar a melhorar a Navegação segura</translation>
 <translation id="8984654317541110628">URL de partilha de ficheiros</translation>
-<translation id="8984872292925913496">Procure o PIN de 6 dígitos na parte de trás da sua chave.</translation>
 <translation id="8986362086234534611">Esquecer</translation>
 <translation id="8986494364107987395">Enviar automaticamente estatísticas de utilização e relatórios de falhas para a Google</translation>
 <translation id="8987927404178983737">Mês</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 302fed2..dd83a12 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Evidențiază obiectul focalizat de la tastatură când se schimbă</translation>
 <translation id="1173894706177603556">Redenumește</translation>
 <translation id="1174073918202301297">Comanda rapidă a fost adăugată</translation>
-<translation id="1174808551768282258">Deblochează Chromebookul folosind telefonul. <ph name="LINK_BEGIN" />Află mai multe.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Printează...</translation>
 <translation id="117624967391683467">Se copiază <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google poate folosi istoricul de navigare pentru a personaliza Căutarea, anunțurile și alte servicii Google. Poți schimba oricând această opțiune la myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Întrerupe</translation>
 <translation id="1181037720776840403">Elimină</translation>
 <translation id="1183237619868651138">Nu se poate instala <ph name="EXTERNAL_CRX_FILE" /> în memoria cache locală.</translation>
-<translation id="1183378459020939734">Ești gata să-ți asociezi Cheia de securitate?</translation>
 <translation id="1185924365081634987">Pentru a remedia eroarea de rețea, puteți încerca și să <ph name="GUEST_SIGNIN_LINK_START" />navigați ca invitat<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">Elimină software-ul dăunător</translation>
 <translation id="1187722533808055681">Ieșiri din modul inactiv</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Nu s-a găsit niciun dispozitiv Bluetooth</translation>
 <translation id="1306606229401759371">Modificați setările</translation>
 <translation id="1307559529304613120">Hopa! Sistemul nu a putut stoca indicativul de acces pe termen lung la API pentru acest dispozitiv.</translation>
+<translation id="1307931752636661898">Fișierele Linux nu pot fi afișate</translation>
 <translation id="1313405956111467313">Configurare automată pentru proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Marcajele, istoricul și alte setări vor fi sincronizate cu Contul Google</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Deschide setările dispozitivului privind mouse-ul și touchpadul</translation>
 <translation id="1531004739673299060">Fereastra aplicației</translation>
 <translation id="15373452373711364">Cursor de mouse mare</translation>
+<translation id="1538729222189715449">Se deschid fișierele Linux...</translation>
 <translation id="1540605929960647700">Activează modul demonstrativ</translation>
 <translation id="1543284117603151572">Importate din Edge</translation>
 <translation id="1545177026077493356">Mod chioșc automat</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Modifică modul HUD tactil</translation>
 <translation id="1784849162047402014">Spațiul de pe hard diskul dispozitivului este redus</translation>
 <translation id="1786636458339910689">Drive-uri în echipă</translation>
-<translation id="1792161662640298233">Se verifică Cheia de securitate…</translation>
 <translation id="1792619191750875668">Afișare extinsă</translation>
 <translation id="1794791083288629568">Trimite feedback pentru a contribui la remedierea problemei.</translation>
 <translation id="1795214765651529549">Folosește tema clasică</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Bun venit!</translation>
 <translation id="1914326953223720820">Serviciu de dezarhivare</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">În funcție de setările contului, este posibil ca experiența ta în Asistent să fie limitată la rezultate web, glume și informații locale.</translation>
 <translation id="1916502483199172559">Avatar roșu prestabilit</translation>
 <translation id="1918141783557917887">&amp;Mai mic</translation>
 <translation id="1919345977826869612">Anunțuri</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Pluginul <ph name="PEPPER_PLUGIN_NAME" /> de pe <ph name="PEPPER_PLUGIN_DOMAIN" /> dorește să acceseze computerul</translation>
 <translation id="2178614541317717477">Compromitere CA</translation>
 <translation id="218070003709087997">Precizează un număr de exemplare pentru printare (de la 1 la 999).</translation>
+<translation id="2184515124301515068">Permite Chrome să aleagă când site-urile pot reda sunet (recomandat)</translation>
 <translation id="2187895286714876935">Eroare de import a certificatului serverului</translation>
 <translation id="2187906491731510095">Extensiile au fost actualizate</translation>
 <translation id="2188881192257509750">Deschide <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Citește și modifică datele de pe o serie de site-uri</translation>
 <translation id="2242687258748107519">Informații fișier</translation>
 <translation id="2243194103992005307">Pentru a elimina aplicații, accesează Setări &gt; Aplicații sau Manager de aplicații. Apoi atinge aplicația pe care dorești să o dezinstalezi (poate fi necesar să glisezi spre dreapta sau spre stânga pentru a găsi aplicația). Apoi, atinge Dezinstalează sau Dezactivează.</translation>
+<translation id="224940702122312781">Această pagină va folosi multe date.</translation>
 <translation id="2249605167705922988">de ex., 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Deschideți cu Utilitarul de vizualizare al sistemului</translation>
 <translation id="225163402930830576">Actualizează rețelele</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Configurați rețeaua</translation>
 <translation id="230927227160767054">Această pagină dorește să instaleze un handler de serviciu.</translation>
 <translation id="2309620859903500144">Accesul acestui site la senzorii de mișcare sau de lumină a fost blocat.</translation>
-<translation id="2311075084924370935">Pentru a te ajuta cu calendarul, mementourile, zborurile și multe altele, Asistentul are nevoie de setările pentru Activitatea de pe web și din aplicații, Informații de pe dispozitiv și Activitatea vocală și audio.</translation>
+<translation id="2315414688463285945">Eroare la configurarea fișierelor Linux. Încearcă din nou.</translation>
 <translation id="2315821125498993513">Nu s-a putut conecta la telefon. <ph name="LINK_BEGIN" />Află mai multe.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Nu, mulțumesc</translation>
 <translation id="2317842250900878657">Finalizat: <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Dimensiunea hârtiei</translation>
 <translation id="2318817390901984578">Ca să folosești aplicații Android, încarcă și actualizează dispozitivul <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Sesiunea incognito actuală (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Folosește cheia de securitate cu <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Anteturi și subsoluri</translation>
 <translation id="2325650632570794183">Acest tip de fișier nu este acceptat. Vă rugăm să accesați Magazinul web Chrome pentru a găsi o aplicație care poate deschide acest tip de fișier.</translation>
 <translation id="2326931316514688470">&amp;Reîncarcă aplicația</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Adaugă un dispozitiv de stocare în rețea</translation>
 <translation id="2367972762794486313">Afișați aplicații</translation>
 <translation id="2369536625682139252">Toate datele stocate de <ph name="SITE" /> vor fi șterse, cu excepția cookie-urilor.</translation>
-<translation id="237058345584060620">Asociază-ți cheia la acest dispozitiv, astfel încât să o poți folosi pentru a te conecta la cont.</translation>
 <translation id="2371076942591664043">Deschide când s-a &amp;descărcat</translation>
 <translation id="2377319039870049694">Comută la afișarea listă</translation>
 <translation id="2377667304966270281">Erori de hardware</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Telefonul nu poate fi găsit. Asigură-te că dispozitivul <ph name="DEVICE_TYPE" /> are conexiunea Bluetooth activată. &lt;a&gt;Află mai multe&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Adăugați un &amp;dosar...</translation>
 <translation id="249113932447298600">Ne pare rău, dispozitivul <ph name="DEVICE_LABEL" /> nu este acceptat în prezent.</translation>
-<translation id="2492040222276243256">Apasă lung butonul de pe Cheia de securitate timp de cel puțin 5 secunde</translation>
 <translation id="2493021387995458222">Selectează „câte un cuvânt”</translation>
 <translation id="249303669840926644">Înregistrarea nu s-a putut finaliza</translation>
 <translation id="2495777824269688114">Descoperă mai multe funcții sau obține răspunsuri. Selectează „?” pentru ajutor.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Total: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Lungă</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Platforma <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Această filă permite accesul la ecranul tău.</translation>
 <translation id="2586657967955657006">Clipboard</translation>
 <translation id="2586672484245266891">Introdu o adresă URL mai scurtă</translation>
 <translation id="2587922270115112871">Prin crearea unui utilizator monitorizat, nu se creează un Cont Google, iar setările și datele acestuia
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> folosește <ph name="USAGE" /> MB din spațiul de pe disc.</translation>
 <translation id="2633212996805280240">Eliminați „<ph name="EXTENSION_NAME" />”?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> nu a putut finaliza instalarea, dar va continua să ruleze de pe imaginea de pe disc.</translation>
-<translation id="2633326789677284179">Găsește numele înscris pe partea din spate a cheii</translation>
 <translation id="2635276683026132559">Semnare</translation>
 <translation id="2636625531157955190">Chrome nu poate accesa imaginea.</translation>
 <translation id="2638087589890736295">Pentru a începe sincronizarea este necesară expresia de acces</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Adaugă <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Pentru a accesa parolele pe toate dispozitivele, conectează-te la Chrome.</translation>
 <translation id="2875698561019555027">(pagini de erori Chrome)</translation>
-<translation id="2876441201733326392">Folosește Cheia de securitate USB</translation>
 <translation id="288042212351694283">Accesează dispozitivele Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Ultima accesare:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> va reporni și se va reseta imediat</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Raportează anonim</translation>
 <translation id="2984337792991268709">Astăzi, la <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Această pagină a fost blocată și nu poate avea control complet asupra dispozitivelor MIDI.</translation>
-<translation id="2988599644347283908">Notă: datele pe care le controlează aceste setări pot fi salvate și folosite în orice serviciu Google în care te conectezi, pentru a-ți oferi experiențe personalizate și anunțuri utile. Poți să consulți datele, să le ștergi și să modifici setările la account.google.com.</translation>
 <translation id="2989474696604907455">neconectat</translation>
 <translation id="2989786307324390836">Certificat unic, sub formă de fișier binar cu codificarea DER</translation>
 <translation id="2993517869960930405">Informații despre aplicație</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Activează sunetul filelor</translation>
 <translation id="3053013834507634016">Folosirea cheii de certificat</translation>
 <translation id="3057861065630527966">Fă backup pentru fotografii și videoclipuri</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Activează „Selectează și ascultă”</translation>
 <translation id="3061707000357573562">Serviciu de corecție</translation>
 <translation id="3064410671692449875">Date insuficiente</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Fișierul crx extern nu se poate copia în <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">„<ph name="DEVICE_NAME" />” conectată</translation>
 <translation id="3101709781009526431">Data și ora</translation>
-<translation id="3104900172193317662">Permite folosirea cheii de securitate</translation>
 <translation id="310671807099593501">Site-ul folosește Bluetooth</translation>
 <translation id="3115128645424181617">Telefonul nu poate fi găsit. Asigură-te că este la îndemână și că ai activat Bluetooth.</translation>
 <translation id="3115147772012638511">Se așteaptă cache-ul...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Nu face parte dintr-un certificat&gt;</translation>
 <translation id="3254434849914415189">Alegeți aplicația prestabilită pentru fișierele <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Detectarea automată a fusului orar este dezactivată</translation>
-<translation id="3254772308201947812">Da, accept</translation>
 <translation id="3264544094376351444">Font Sans-Serif</translation>
 <translation id="3264547943200567728">Rețeaua pentru Chromebox nu a fost configurată</translation>
 <translation id="3264582393905923483">Context</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Sortează după</translation>
 <translation id="3737274407993947948">A apărut o eroare la instalarea Linux...</translation>
 <translation id="3737536731758327622">Descărcările sunt afișate aici</translation>
-<translation id="3738671331307774213">Confirmarea identității te ajută să-ți protejezi datele private</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Deschizi <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> va apărea în Consola de administrare</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sincronizarea a fost întreruptă</translation>
 <translation id="3860381078714302691">Bun venit la Hangouts Meet</translation>
+<translation id="3861241522664181545">Pagină întreruptă.</translation>
 <translation id="3862134173397075045">Bun venit la experiența Cast în Chrome!</translation>
 <translation id="3862788408946266506">Aplicația cu atributul „kiosk_only” din manifest trebuie să fie instalată în modul chioșc pentru sistemul de operare Chrome</translation>
 <translation id="3865414814144988605">Rezoluție</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Ca să activezi această opțiune, <ph name="BEGIN_LINK" />resetează sincronizarea<ph name="END_LINK" /> pentru a elimina expresia de acces pentru sincronizare</translation>
 <translation id="3878840326289104869">Se creează utilizatorul monitorizat</translation>
 <translation id="3879748587602334249">Manager de descărcări</translation>
-<translation id="3880709822663530586">Cheia de securitate funcționează numai atunci când dispozitivul are activat Bluetooth</translation>
 <translation id="3888550877729210209">Scriere de notițe cu <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Adaugă OpenVPN/L2TP…</translation>
 <translation id="3893536212201235195">Citește și modifică setările de accesibilitate</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Se pregătește modulul securizat. Așteaptă (poate dura câteva minute)...</translation>
 <translation id="4099060993766194518">Restabilești motorul de căutare prestabilit?</translation>
 <translation id="4100733287846229632">Spațiul de pe dispozitiv este foarte redus</translation>
+<translation id="4103091233824664032">Introdu parola pentru a configura blocarea ecranului și conectarea</translation>
 <translation id="4104163789986725820">E&amp;xportă...</translation>
 <translation id="4105563239298244027">Primiți 1 TB spațiu de stocare gratuit în Google Drive</translation>
 <translation id="4107048419833779140">Identifică și elimină dispozitivele de stocare</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Lumina de noapte se va dezactiva automat la răsărit</translation>
 <translation id="4138267921960073861">Afișează numele de utilizatori și fotografiile pe ecranul de conectare</translation>
 <translation id="4144218403971135344">Obține videoclipuri de o calitate mai bună și mărește autonomia bateriei. Videoclipul va fi redat numai pe un ecran compatibil cu Cast.</translation>
-<translation id="414599683948988413">Folosește Cheia de securitate cu USB</translation>
 <translation id="4146026355784316281">Deschide întotdeauna cu Utilitarul de vizualizare al sistemului</translation>
 <translation id="4146785383423576110">Resetează și curăță</translation>
 <translation id="4147897805161313378">Google Foto</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Dezactivează</translation>
 <translation id="4400367121200150367">Site-urile care nu salvează niciodată parole vor apărea aici</translation>
 <translation id="4400632832271803360">Ține apăsată tasta Lansator pentru a schimba comportamentul tastelor de pe rândul de sus</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">&amp;Ajutor</translation>
 <translation id="4409697491990005945">Margini</translation>
 <translation id="4411578466613447185">Semnatar de coduri</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome poate să găsească software dăunător pe computer și să îl elimine</translation>
 <translation id="4481530544597605423">Dispozitive neasociate</translation>
 <translation id="4482194545587547824">Google poate folosi istoricul de navigare pentru a personaliza Căutarea și alte servicii Google</translation>
+<translation id="4493287891836751813">Îți prezentăm Asistentul Google</translation>
 <translation id="4495419450179050807">Nu afișa pe această pagină</translation>
 <translation id="4499718683476608392">Activează completarea automată a cardurilor de credit pentru a completa formularele cu un singur clic</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> s-a blocat</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Dezactivează sunetul filei</translation>
 <translation id="4742746985488890273">Fixați în raft</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Află cum să actualizezi aplicații<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Mesaje</translation>
 <translation id="4746971725921104503">Se pare că gestionați deja un utilizator cu acest nume. Doreați să îl <ph name="LINK_START" />importați <ph name="USER_DISPLAY_NAME" /> pe acest dispozitiv<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Necesită o extensie din Magazinul web Chrome</translation>
 <translation id="4750394297954878236">Sugestii</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Analizare activată</translation>
 <translation id="4823484602432206655">Citește și modifică setările pentru dispozitiv și pentru utilizator</translation>
 <translation id="4823651846660089135">Dispozitivul este numai în citire</translation>
+<translation id="4823955295535347797">Accesează Asistentul de câte ori rostești „Ok Google” când ecranul este pornit.</translation>
 <translation id="4828937774870308359">Inversă</translation>
 <translation id="4829768588131278040">Configurează codul PIN</translation>
 <translation id="4830502475412647084">Se instalează actualizarea sistemului de operare</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Ajută-i pe inginerii noștri să investigheze și să remedieze această blocare. Dacă poți, indică pașii exacți. Orice detaliu este important!</translation>
 <translation id="4876895919560854374">Blochează și deblochează ecranul</translation>
 <translation id="4877017884043316611">Conectează cu Chromeboxul</translation>
+<translation id="4879491255372875719">Automat (prestabilit)</translation>
 <translation id="4880214202172289027">Glisor de volum</translation>
 <translation id="4880328057631981605">Nume punct de acces</translation>
 <translation id="4880520557730313061">Remediere automată</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">sus</translation>
 <translation id="5100114659116077956">Pentru a vă oferi cele mai recente funcții, Chromebox trebuie actualizat.</translation>
 <translation id="5101042277149003567">Deschide toate marcajele</translation>
-<translation id="5104546332954397226">Folosește telefonul ca pe o Cheie de securitate</translation>
 <translation id="5105855035535475848">Fixează file</translation>
 <translation id="5108967062857032718">Setări – Elimină aplicațiile Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">R&amp;edeschide fila închisă</translation>
 <translation id="52912272896845572">Fișierul cu cheia privată este nevalid.</translation>
 <translation id="529175790091471945">Formatează acest dispozitiv</translation>
-<translation id="5292195676005197571">Pentru a folosi cheia, de obicei trebuie doar să apeși butonul</translation>
 <translation id="5293170712604732402">Restabilește setările la valorile inițiale</translation>
 <translation id="5297082477358294722">Parola a fost salvată. Vezi și gestionează parolele salvate în <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Temă creată de</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Sunt de acord</translation>
 <translation id="532943162177641444">Atinge notificarea pe <ph name="PHONE_NAME" /> pentru a configura hotspotul mobil care poate fi folosit de acest dispozitiv.</translation>
 <translation id="5329858601952122676">&amp;Șterge</translation>
+<translation id="5329945517224105597">Asistentul îți poate oferi sugestii mai relevante și acțiuni specifice în funcție de conținutul ecranului. Poți modifica această opțiune în setările Asistentului.</translation>
 <translation id="5330145655348521461">Aceste fișiere au fost deschise pe alt desktop. Pentru a le vedea, treceți la <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />).</translation>
 <translation id="5330512191124428349">Obține informații</translation>
 <translation id="5331069282670671859">Nu ai niciun certificat în această categorie</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Permite site-urilor să redea sunet</translation>
 <translation id="5390284375844109566">Bază de date indexată</translation>
 <translation id="5390743329570580756">Trimis pentru</translation>
-<translation id="5392327114396848796">Folosește o Cheie de securitate încorporată</translation>
 <translation id="5397794290049113714">Dvs.</translation>
 <translation id="5398572795982417028">Referința privind pagina este în afara limitelor (limita este <ph name="MAXIMUM_PAGE" />)</translation>
 <translation id="5398772614898833570">Anunțurile au fost blocate</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Închide toate fișierele din arhivă sau de pe discul virtual, apoi încearcă din nou.</translation>
 <translation id="5687326903064479980">Fus orar</translation>
+<translation id="568824803367507355">Detectare „Ok Google”</translation>
 <translation id="5689516760719285838">Locație</translation>
 <translation id="56907980372820799">Conectați datele</translation>
 <translation id="5691511426247308406">Familie</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – camera foto sau microfonul înregistrează</translation>
 <translation id="5835754902560991078">extrem de scurtă (0,6 sec.)</translation>
 <translation id="5838456317242088717">Sesiunea incognito actuală</translation>
-<translation id="5842053879378944309">Folosește Cheia de securitate USB cu <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Activează Bluetooth</translation>
 <translation id="5843250171025351504">Dispozitivul nu mai este compatibil cu versiunea de client minimă specificată de administrator. Actualizează-l pentru a te conecta.</translation>
 <translation id="5846929185714966548">Fila 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Nu mai este acceptată.</translation>
 <translation id="6317369057005134371">Se așteaptă fereastra aplicației...</translation>
 <translation id="6318407754858604988">A început descărcarea</translation>
-<translation id="6322653941595359182">Trimite și primește mesaje text pe Chromebook</translation>
 <translation id="6324916366299863871">Editează o comandă rapidă</translation>
 <translation id="6325191661371220117">Dezactivați lansarea automată</translation>
 <translation id="6326175484149238433">Eliminați din Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Trimiteți <ph name="BEGIN_LINK2" />valori<ph name="END_LINK2" /> și <ph name="BEGIN_LINK1" />informații de sistem<ph name="END_LINK1" /></translation>
 <translation id="6397094776139756010">Opțiuni de sincronizare și personalizare</translation>
 <translation id="6397592254427394018">Deschideți toate marcajele într-o &amp;fereastră incognito</translation>
+<translation id="639777613761517128">Pentru a deschide fișierele cu 1 USD, copiază-le mai întâi în dosarul Fișiere Linux.</translation>
 <translation id="6398715114293939307">Elimină Magazinul Google Play</translation>
 <translation id="6398765197997659313">Ieși din ecranul complet</translation>
 <translation id="6399774419735315745">Spioană</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Acest nume nu poate fi folosit ca nume de fișier sau de dosar</translation>
 <translation id="642469772702851743">Dispozitivul (NS: <ph name="SERIAL_NUMBER" />) a fost blocat de proprietar.</translation>
 <translation id="6426200009596957090">Deschide setările ChromeVox</translation>
-<translation id="6427415464407526111">Selectează Cheia de securitate</translation>
 <translation id="6429384232893414837">Eroare de actualizare</translation>
 <translation id="6430814529589430811">ASCII codificat Base64, certificat unic</translation>
 <translation id="6431217872648827691">Toate datele au fost criptate cu parola Google începând cu
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Mod pentru dezvoltatori</translation>
 <translation id="6655458902729017087">Ascundeți conturile</translation>
 <translation id="6657585470893396449">Parolă</translation>
-<translation id="6658023813581644008">Introdu parola ca să configurezi Smart Lock pentru conectare</translation>
 <translation id="6659213950629089752">Această pagină a fost mărită sau micșorată de extensia „<ph name="NAME" />”</translation>
 <translation id="6659594942844771486">Filă</translation>
 <translation id="6664237456442406323">Din păcate, computerul dvs. este configurat cu un ID de hardware incorect. Acest lucru împiedică actualizarea sistemului de operare Chrome cu cele mai recente remedieri de securitate. În plus, computerul <ph name="BEGIN_BOLD" />ar putea fi vulnerabil la atacuri ale site-urilor web rău intenționate<ph name="END_BOLD" />.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Previzualizarea informațiilor de sistem</translation>
 <translation id="6886871292305414135">Deschide linkul într-o filă &amp;nouă</translation>
 <translation id="6892812721183419409">Deschide linkul ca <ph name="USER" /></translation>
-<translation id="6896398788631624004">Conectează Cheia de securitate și activeaz-o</translation>
 <translation id="6896758677409633944">Copiază</translation>
 <translation id="6898440773573063262">Acum, aplicațiile de tip chioșc pot fi configurate pentru a se lansa automat pe acest dispozitiv.</translation>
 <translation id="6898699227549475383">Organizația (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Utilizator:</translation>
 <translation id="6916590542764765824">Gestionează extensiile</translation>
 <translation id="6920989436227028121">Deschide ca filă obișnuită</translation>
+<translation id="6921709132208495314">Nu mai folosi datele din această pagină</translation>
 <translation id="6922128026973287222">Economisește date și navighează mai rapid folosind Economizorul de date Google. Dă clic pentru a afla mai multe.</translation>
 <translation id="6923132443355966645">Derulează / Dă clic</translation>
 <translation id="6930242544192836755">Durată</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Dispozitiv</translation>
+<translation id="6968288415730398122">Introdu parola pentru a configura blocarea ecranului</translation>
 <translation id="6970480684834282392">Tip de pornire</translation>
 <translation id="6970856801391541997">Printează anumite pagini</translation>
 <translation id="6972180789171089114">Audio/Video</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Motoarele de căutare</translation>
 <translation id="6978611942794658017">Acest fișier este destinat pentru un PC ce utilizează software-ul Windows. Acesta nu este compatibil cu dispozitivul tău care rulează sistemul de operare Chrome. Caută o aplicație de înlocuire potrivită în Magazinul web Chrome.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Dezactivează sunetul (prestabilit)</translation>
 <translation id="6979737339423435258">Dintotdeauna</translation>
 <translation id="6980462514016882061">Google poate folosi istoricul de navigare pentru a personaliza Căutarea, anunțurile și alte servicii Google</translation>
 <translation id="6981982820502123353">Accesibilitate</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Acestea sunt informații generale despre dispozitiv și despre cum îl folosești (cum ar fi nivelul bateriei, cât de des folosești aplicațiile și conectivitatea la rețea). Datele vor fi folosite pentru îmbunătățirea produselor și serviciilor Google pentru toți utilizatorii. În plus, unele informații cumulate vor ajuta partenerii, cum ar fi dezvoltatorii Android, să își îmbunătățească aplicațiile și produsele.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Dezactivarea acestei funcții nu afectează abilitatea dispozitivului de a trimite informațiile necesare pentru servicii esențiale, precum actualizările de sistem și securitatea.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Poți controla această funcție din Setări &gt; Google. Selectează Utilizare și diagnosticare din meniu.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Am găsit <ph name="NUMBER_OF_APPS" /> aplicații din contul tău care pot fi folosite pe acest dispozitiv.</translation>
 <translation id="7199158086730159431">Obțineți a&amp;jutor</translation>
 <translation id="7200083590239651963">Selectează configurația</translation>
 <translation id="720110658997053098">Menține permanent acest dispozitiv în modul chioșc</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Blocarea ecranului și conectarea</translation>
 <translation id="7229570126336867161">Este necesar EVDO</translation>
 <translation id="7230787553283372882">Personalizează dimensiunea textului</translation>
-<translation id="7231589788477569369">Beneficiază de experiența completă a folosirii Asistentului cu aceste setări</translation>
 <translation id="7232750842195536390">Redenumirea nu a reușit</translation>
 <translation id="7234406375359457793">Eroare la montarea dispozitivului de stocare în rețea. Dispozitivul indicat nu este acceptat.</translation>
 <translation id="7238585580608191973">Amprentă digitală SHA-256</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Șterge și deconectează-te</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (optimă)</translation>
 <translation id="7246339268451149667">Activezi Deblocarea prin amprentă?</translation>
-<translation id="7246489301073081944">Ține apăsat |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| pentru a ieși</translation>
 <translation id="7246947237293279874">Proxy FTP</translation>
 <translation id="725109152065019550">Ne pare rău, administratorul a dezactivat stocarea externă pentru contul dvs.</translation>
 <translation id="7253521419891527137">&amp;Aflați mai multe</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Verificați eligibilitatea</translation>
 <translation id="749028671485790643">Persoana <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Adresă MAC</translation>
-<translation id="7490950320178383728">Folosește Cheia de securitate cu Bluetooth</translation>
 <translation id="7491962110804786152">filă</translation>
 <translation id="7493386493263658176">Extensia <ph name="EXTENSION_NAME" /> poate să culeagă integral textul introdus, inclusiv datele cu caracter personal, cum ar fi parolele și numerele cardurilor de credit. Dorești să folosești această extensie?</translation>
 <translation id="7494065396242762445">Deschide setările Windows</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">La aceste fișiere din Drive nu s-a permis încă accesul</translation>
 <translation id="7851457902707056880">Conectarea a fost restricționată la contul proprietarului. Reporniți dispozitivul și conectați-vă folosind contul proprietarului. Dispozitivul va reporni automat în 30 de secunde.</translation>
 <translation id="7851716364080026749">Blocați întotdeauna accesul la cameră și la microfon</translation>
-<translation id="7851816139220202929">Folosește Cheia de securitate cu NFC</translation>
 <translation id="7853747251428735">Mai multe instru&amp;mente</translation>
 <translation id="7856006446339184955">Trimite date de sistem. Momentan, dispozitivul trimite automat la Google date privind diagnosticarea și utilizarea dispozitivelor și a aplicațiilor. Această <ph name="BEGIN_LINK1" />setare<ph name="END_LINK1" /> este impusă de proprietar. Dacă ai activat opțiunea suplimentară Activitatea de pe web și din aplicații, aceste informații vor fi stocate în contul tău, ca să le poți gestiona în Activitatea mea. <ph name="BEGIN_LINK2" />Află mai multe<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Adaugă o excepție</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">Autentificarea PPP nu a reușit, din cauza unui nume de utilizator sau a unei parole greșite</translation>
 <translation id="7974566588408714340">Reîncearcă folosind <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Suprascanare</translation>
+<translation id="79766959863778284">Serviciul de dispozitive izolate XR</translation>
 <translation id="7977551819349545646">Se actualizează Chromeboxul...</translation>
 <translation id="7978412674231730200">Cheie privată</translation>
 <translation id="7978450511781612192">Astfel, te vei deconecta de la Conturile Google. Marcajele, istoricul, parolele și alte setări nu vor mai fi sincronizate.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Adaugă imprimanta</translation>
 <translation id="8032244173881942855">Nu se poate proiecta fila.</translation>
 <translation id="8033827949643255796">selectate</translation>
-<translation id="8033958968890501070">Expirare</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Deschide-le pe toate într-o fereastră &amp;incognito}=1{Deschide într-o fereastră &amp;incognito}few{Deschide-le pe toate (#) într-o fereastră &amp;incognito}other{Deschide-le pe toate (#) într-o fereastră &amp;incognito}}</translation>
 <translation id="8037117027592400564">Citește tot textul rostit folosind vorbirea sintetizată</translation>
 <translation id="8037357227543935929">Solicită (în mod prestabilit)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Tot ecranul</translation>
 <translation id="8322814362483282060">Accesul acestei pagini la microfonul dvs. a fost blocat.</translation>
 <translation id="8326478304147373412">PKCS #7, lanț de certificate</translation>
+<translation id="8327039559959785305">Eroare la instalarea fișierelor Linux. Încearcă din nou.</translation>
 <translation id="8329978297633540474">Text simplu</translation>
 <translation id="8335587457941836791">Anulați fixarea din raft</translation>
 <translation id="8336153091935557858">Ieri, la <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">Modificați</translation>
 <translation id="8425492902634685834">Fixează pe Bara de activități</translation>
 <translation id="8425755597197517046">In&amp;serează și caută</translation>
-<translation id="8426117172745886547">Avertizează înainte de a ieși (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Se activează</translation>
 <translation id="8427292751741042100">încorporată în orice gazdă</translation>
 <translation id="8428213095426709021">Setări</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">Licențe</translation>
 <translation id="8553342806078037065">Gestionează alte persoane</translation>
 <translation id="8554899698005018844">Nicio limbă</translation>
-<translation id="8557347704037207368">Îți trimite notificări din Android Messages pentru web</translation>
 <translation id="855773602626431402">Pe această pagină a fost împiedicată rularea unui plugin scos din mediul de testare.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Decodor de imagini</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">Încetarea asistenței</translation>
 <translation id="8714838604780058252">Grafică de fundal</translation>
 <translation id="8715480913140015283">O filă din fundal îți folosește camera foto</translation>
+<translation id="8716931980467311658">Ștergi toate aplicațiile Linux și datele din dosarul Fișiere Linux de pe acest <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Pluginul <ph name="PLUGIN_NAME" /> nu s-a descărcat</translation>
 <translation id="8723829621484579639">Subcadre incognito pentru: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Afișează în dosar</translation>
@@ -5206,7 +5197,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – s-a blocat</translation>
 <translation id="8983677657449185470">Contribuie la îmbunătățirea Navigării sigure</translation>
 <translation id="8984654317541110628">Adresa URL a dispozitivului de stocare în rețea</translation>
-<translation id="8984872292925913496">Găsește codul PIN de 6 cifre pe partea din spate a cheii</translation>
 <translation id="8986362086234534611">Șterge</translation>
 <translation id="8986494364107987395">Trimite automat la Google statistici de utilizare și rapoarte de blocare</translation>
 <translation id="8987927404178983737">Lună</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index b62c157..24f3fb275 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Выделять элементы, выбранные с помощью клавиатуры</translation>
 <translation id="1173894706177603556">Переименовать</translation>
 <translation id="1174073918202301297">Ярлык добавлен</translation>
-<translation id="1174808551768282258">Снимать блокировку Chromebook с помощью телефона. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Печать...</translation>
 <translation id="117624967391683467">Копирование файла "<ph name="FILE_NAME" />"…</translation>
 <translation id="1177138678118607465">Google может использовать историю просмотров, чтобы персонализировать объявления, а также Поиск и другие сервисы. Чтобы настроить эту функцию, перейдите на страницу myaccount.google.com/activitycontrols/search.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Пауза</translation>
 <translation id="1181037720776840403">Удалить</translation>
 <translation id="1183237619868651138">Не удается установить файл <ph name="EXTERNAL_CRX_FILE" /> в локальный кеш.</translation>
-<translation id="1183378459020939734">Подключить электронный ключ?</translation>
 <translation id="1185924365081634987">Чтобы исправить данную сетевую ошибку, попробуйте <ph name="GUEST_SIGNIN_LINK_START" />войти в гостевом режиме<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">Удалите вредоносное ПО</translation>
 <translation id="1187722533808055681">переходы в активный режим</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Устройства Bluetooth не найдены</translation>
 <translation id="1306606229401759371">Изменить настройки</translation>
 <translation id="1307559529304613120">Системе не удалось сохранить токен доступа для API на этом устройстве.</translation>
+<translation id="1307931752636661898">Нет доступа к файлам Linux</translation>
 <translation id="1313405956111467313">Автоматическая настройка прокси-сервера</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Ваши закладки, история просмотров и настройки синхронизируются с аккаунтом Google.</translation>
@@ -366,6 +365,7 @@
 <translation id="1530838837447122178">Открыть настройки мыши и сенсорной панели</translation>
 <translation id="1531004739673299060">Окно программы</translation>
 <translation id="15373452373711364">Большой курсор мыши</translation>
+<translation id="1538729222189715449">Файлы Linux открываются…</translation>
 <translation id="1540605929960647700">Демонстрационный режим</translation>
 <translation id="1543284117603151572">Импортированные из Microsoft Edge</translation>
 <translation id="1545177026077493356">Автоматическое включение режима киоска</translation>
@@ -541,7 +541,6 @@
 <translation id="1782530111891678861">Смена режима Touch HUD</translation>
 <translation id="1784849162047402014">Свободное пространство заканчивается</translation>
 <translation id="1786636458339910689">Общие диски</translation>
-<translation id="1792161662640298233">Проверка электронного ключа</translation>
 <translation id="1792619191750875668">Дополнительный монитор</translation>
 <translation id="1794791083288629568">Отправить отзыв, чтобы помочь устранить ошибку</translation>
 <translation id="1795214765651529549">Использовать классическую тему</translation>
@@ -624,7 +623,6 @@
 <translation id="1910721550319506122">Добро пожаловать!</translation>
 <translation id="1914326953223720820">Распаковщик файлов</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">Google Ассистент сможет предлагать вам только результаты поиска, шутки и местную информацию (в зависимости от настроек аккаунта).</translation>
 <translation id="1916502483199172559">Аватар по умолчанию (красный)</translation>
 <translation id="1918141783557917887">&amp;Мельче</translation>
 <translation id="1919345977826869612">Реклама</translation>
@@ -793,6 +791,7 @@
 <translation id="2178098616815594724">Плагин <ph name="PEPPER_PLUGIN_NAME" /> в домене <ph name="PEPPER_PLUGIN_DOMAIN" /> пытается получить доступ к вашему компьютеру.</translation>
 <translation id="2178614541317717477">Скомпрометированный ЦС</translation>
 <translation id="218070003709087997">Укажите цифрами число копий для печати (от 1 до 999).</translation>
+<translation id="2184515124301515068">Разрешить браузеру определять, на каких сайтах можно воспроизводить звук (рекомендуется)</translation>
 <translation id="2187895286714876935">Ошибка при импорте сертификата сервера</translation>
 <translation id="2187906491731510095">Расширения обновлены</translation>
 <translation id="2188881192257509750">Открыть приложение "<ph name="APPLICATION" />"</translation>
@@ -837,6 +836,7 @@
 <translation id="2241053333139545397">Просмотр и изменение данных на нескольких сайтах</translation>
 <translation id="2242687258748107519">Информация о файле</translation>
 <translation id="2243194103992005307">Чтобы удалить приложение, откройте "Настройки &gt; Приложения/Диспетчер приложений" и найдите его в списке (возможно, потребуется пролистать экран вправо или влево). Выберите приложение и нажмите "Удалить" или "Отключить".</translation>
+<translation id="224940702122312781">Для загрузки этой страницы потребуется большой объем трафика.</translation>
 <translation id="2249605167705922988">Например: 1–5, 8, 11–13</translation>
 <translation id="2251218783371366160">Открыть в программе просмотра по умолчанию</translation>
 <translation id="225163402930830576">Обновить сети</translation>
@@ -877,14 +877,13 @@
 <translation id="2307462900900812319">Настройка сети</translation>
 <translation id="230927227160767054">Эта страница пытается установить обработчик службы.</translation>
 <translation id="2309620859903500144">Этому сайту запрещено использовать датчики движения и освещенности.</translation>
-<translation id="2311075084924370935">Чтобы напоминать вам о мероприятиях и авиарейсах, а также показывать другие полезные подсказки, Ассистенту необходим доступ к истории приложений и веб-поиска, информации с устройств и истории голосового управления.</translation>
+<translation id="2315414688463285945">Не удалось настроить файлы Linux. Пожалуйста, попробуйте ещё раз.</translation>
 <translation id="2315821125498993513">Не удалось подключиться к телефону. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Спасибо, не надо</translation>
 <translation id="2317842250900878657">Выполнено: <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Размер бумаги</translation>
 <translation id="2318817390901984578">Чтобы пользоваться приложениями Android, зарядите и обновите устройство <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Текущий сеанс в режиме инкогнито (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Вход в приложение "<ph name="APP_NAME" />" с помощью электронного ключа</translation>
 <translation id="2322193970951063277">Верхние и нижние колонтитулы</translation>
 <translation id="2325650632570794183">Этот тип файла не поддерживается. Зайдите в Интернет-магазин Chrome, чтобы найти приложение, с помощью которого его можно открыть.</translation>
 <translation id="2326931316514688470">Пере&amp;загрузить приложение</translation>
@@ -918,7 +917,6 @@
 <translation id="2367199180085172140">Добавить файл в общий доступ.</translation>
 <translation id="2367972762794486313">Показать сервисы</translation>
 <translation id="2369536625682139252">Все данные, сохраненные сайтом <ph name="SITE" />, будут удалены (за исключением файлов cookie).</translation>
-<translation id="237058345584060620">Свяжите ключ с устройством, чтобы использовать его для входа в аккаунт.</translation>
 <translation id="2371076942591664043">Открыть по &amp;завершении</translation>
 <translation id="2377319039870049694">Показать в виде списка</translation>
 <translation id="2377667304966270281">Ошибки отсутствия страницы в памяти</translation>
@@ -985,7 +983,6 @@
 <translation id="248861575772995840">Телефон не обнаружен. Убедитесь, что на устройстве <ph name="DEVICE_TYPE" /> включен Bluetooth. &lt;a&gt;Подробнее…&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Добавить &amp;папку</translation>
 <translation id="249113932447298600">Устройство <ph name="DEVICE_LABEL" /> не поддерживается.</translation>
-<translation id="2492040222276243256">Нажмите и удерживайте кнопку на электронном ключе в течение пяти секунд.</translation>
 <translation id="2493021387995458222">Выбрать "по одному слову"</translation>
 <translation id="249303669840926644">Не удалось завершить регистрацию</translation>
 <translation id="2495777824269688114">Нажмите кнопку "?", чтобы узнать о других функциях или найти ответ на вопрос.</translation>
@@ -1055,6 +1052,7 @@
 <translation id="2580924999637585241">Всего: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">долгая</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (платформа <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Эта вкладка открывает доступ к вашему экрану</translation>
 <translation id="2586657967955657006">Буфер обмена</translation>
 <translation id="2586672484245266891">Слишком длинный URL.</translation>
 <translation id="2587922270115112871">Создание контролируемого профиля не означает создание аккаунта Google.
@@ -1092,7 +1090,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> использует <ph name="USAGE" /> МБ дискового пространства.</translation>
 <translation id="2633212996805280240">Удалить "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> не может завершить установку, однако продолжит работу со своего образа на диске.</translation>
-<translation id="2633326789677284179">Найдите на задней стороне ключа его название.</translation>
 <translation id="2635276683026132559">Подпись</translation>
 <translation id="2636625531157955190">У Chrome нет доступа к изображению.</translation>
 <translation id="2638087589890736295">Чтобы начать синхронизацию, введите кодовую фразу</translation>
@@ -1260,7 +1257,6 @@
 <translation id="287286579981869940">Добавить сеть <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Чтобы получить доступ к паролям на всех своих устройствах, войдите в Chrome.</translation>
 <translation id="2875698561019555027">(страницы ошибок в Chrome)</translation>
-<translation id="2876441201733326392">Использование электронного ключа USB</translation>
 <translation id="288042212351694283">С доступом к устройствам Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Последнее время доступа:</translation>
 <translation id="2882943222317434580">Сейчас будет выполнен перезапуск и сброс настроек <ph name="IDS_SHORT_PRODUCT_NAME" /></translation>
@@ -1328,7 +1324,6 @@
 <translation id="2982970937345031">Отправить анонимный отзыв</translation>
 <translation id="2984337792991268709">Сегодня, <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Этой странице запрещено получать полный контроль над устройствами MIDI.</translation>
-<translation id="2988599644347283908">Обратите внимание, что эта информация может быть сохранена и использована для персонализации контента и рекламы в любом сервисе Google, где вы вошли в аккаунт. Чтобы посмотреть или удалить данные, а также изменить настройки аккаунта, перейдите на страницу account.google.com.</translation>
 <translation id="2989474696604907455">не подключено</translation>
 <translation id="2989786307324390836">Двоичный единый сертификат с расшифровкой DER</translation>
 <translation id="2993517869960930405">О приложении</translation>
@@ -1381,7 +1376,6 @@
 <translation id="304826556400666995">Включить звук на вкладках</translation>
 <translation id="3053013834507634016">Использование ключа сертификата</translation>
 <translation id="3057861065630527966">Создать резервные копии фото и видео</translation>
-<translation id="3059313675706898490">Android Сообщения</translation>
 <translation id="3060379269883947824">Включить озвучивание при нажатии</translation>
 <translation id="3061707000357573562">Исправление сервиса</translation>
 <translation id="3064410671692449875">Недостаточно данных</translation>
@@ -1410,7 +1404,6 @@
 <translation id="3090819949319990166">Не удалось скопировать внешний файл CRX в <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Подключено устройство: <ph name="DEVICE_NAME" /></translation>
 <translation id="3101709781009526431">Дата и время</translation>
-<translation id="3104900172193317662">Использовать электронный ключ?</translation>
 <translation id="310671807099593501">Сайт использует Bluetooth</translation>
 <translation id="3115128645424181617">Не удалось найти телефон. Убедитесь, что он поблизости и на нем включен Bluetooth.</translation>
 <translation id="3115147772012638511">Ожидание кеша…</translation>
@@ -1494,7 +1487,6 @@
 <translation id="3251759466064201842">&lt;Не является частью сертификата&gt;</translation>
 <translation id="3254434849914415189">Выбор приложения по умолчанию для <ph name="FILE_TYPE" />-файлов</translation>
 <translation id="3254516606912442756">Автоматическое определение часовых поясов отключено</translation>
-<translation id="3254772308201947812">ОК</translation>
 <translation id="3264544094376351444">Шрифты без засечек</translation>
 <translation id="3264547943200567728">Не удалось настроить сеть Chromebox</translation>
 <translation id="3264582393905923483">Контекст</translation>
@@ -1817,7 +1809,6 @@
 <translation id="3735740477244556633">Сортировать по:</translation>
 <translation id="3737274407993947948">Ошибка при установке Linux</translation>
 <translation id="3737536731758327622">Здесь появятся скачанные файлы.</translation>
-<translation id="3738671331307774213">Подтвердив свою личность, вы защитите конфиденциальные данные.</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Открыть приложение "<ph name="APPLICATION" />"?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> появится в консоли администратора</translation>
@@ -1911,6 +1902,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: синхронизация приостановлена</translation>
 <translation id="3860381078714302691">Добро пожаловать в Hangouts Meet</translation>
+<translation id="3861241522664181545">Загрузка страницы приостановлена</translation>
 <translation id="3862134173397075045">Добро пожаловать в Cast для Chrome!</translation>
 <translation id="3862788408946266506">Приложения, у которых в манифесте есть атрибут kiosk_only, можно устанавливать только в режиме киоска</translation>
 <translation id="3865414814144988605">Разрешение</translation>
@@ -1925,7 +1917,6 @@
 <translation id="3873315167136380065">Чтобы включить эту настройку, <ph name="BEGIN_LINK" />сбросьте настройки синхронизации<ph name="END_LINK" /> и удалите кодовую фразу.</translation>
 <translation id="3878840326289104869">Создание контролируемого профиля</translation>
 <translation id="3879748587602334249">Диспетчер загрузки</translation>
-<translation id="3880709822663530586">Электронный ключ работает, только когда на устройстве включен Bluetooth.</translation>
 <translation id="3888550877729210209">Заметки в приложении "<ph name="LOCK_SCREEN_APP_NAME" />"</translation>
 <translation id="3892414795099177503">Включить OpenVPN/L2TP...</translation>
 <translation id="3893536212201235195">Чтение и изменение настроек специальных возможностей</translation>
@@ -2071,6 +2062,7 @@
 <translation id="4096824249111507322">Выполняется подготовка безопасного модуля. Это может занять несколько минут.</translation>
 <translation id="4099060993766194518">Восстановить поисковую систему по умолчанию?</translation>
 <translation id="4100733287846229632">На устройстве почти нет свободного места</translation>
+<translation id="4103091233824664032">Чтобы настроить блокировку экрана и параметры входа, введите пароль.</translation>
 <translation id="4104163789986725820">Э&amp;кспорт...</translation>
 <translation id="4105563239298244027">1 ТБ пространства в Google Диске бесплатно</translation>
 <translation id="4107048419833779140">Идентификация и извлечение запоминающих устройств</translation>
@@ -2091,7 +2083,6 @@
 <translation id="4136203100490971508">Ночной режим отключится автоматически на рассвете</translation>
 <translation id="4138267921960073861">Показывать имена и фотографии пользователей на экране входа</translation>
 <translation id="4144218403971135344">С помощью этой функции вы улучшите качество видео и продлите время работы от батареи. Видео будет воспроизводиться только на экранах с поддержкой Cast.</translation>
-<translation id="414599683948988413">Используйте Электронный ключ через USB</translation>
 <translation id="4146026355784316281">Всегда открывать в программе просмотра по умолчанию</translation>
 <translation id="4146785383423576110">Сброс настроек и удаление вредоносного ПО</translation>
 <translation id="4147897805161313378">Google Фото</translation>
@@ -2226,6 +2217,7 @@
 <translation id="4394049700291259645">Отключить</translation>
 <translation id="4400367121200150367">Здесь появятся сайты, которые никогда не сохраняют пароли</translation>
 <translation id="4400632832271803360">Чтобы сменить функции клавиш верхнего ряда, удерживайте клавишу Launcher</translation>
+<translation id="4405117686468554883">*JPEG, *JPG, *PNG</translation>
 <translation id="4408599188496843485">&amp;Справка</translation>
 <translation id="4409697491990005945">Поля</translation>
 <translation id="4411578466613447185">Сертификат кода</translation>
@@ -2274,6 +2266,7 @@
 <translation id="4480590691557335796">Браузер Chrome может найти вредоносные программы на вашем компьютере и удалить их.</translation>
 <translation id="4481530544597605423">Отключенные устройства</translation>
 <translation id="4482194545587547824">Google может использовать историю просмотров для персонализации Поиска и других сервисов.</translation>
+<translation id="4493287891836751813">Ваш ассистент от Google</translation>
 <translation id="4495419450179050807">Не показывать на этой странице</translation>
 <translation id="4499718683476608392">Включить автозаполнение данных банковской карты</translation>
 <translation id="4500114933761911433">Сбой в плагине <ph name="PLUGIN_NAME" /></translation>
@@ -2434,6 +2427,7 @@
 <translation id="474217410105706308">Отключить звук на вкладке</translation>
 <translation id="4742746985488890273">Закрепить на панели запуска</translation>
 <translation id="4743260470722568160">Подробнее о том, <ph name="BEGIN_LINK" />как обновлять приложения<ph name="END_LINK" />…</translation>
+<translation id="4746351372139058112">Сообщения</translation>
 <translation id="4746971725921104503">Похоже, здесь уже есть пользователь с таким именем. <ph name="LINK_START" />Импортировать данные пользователя <ph name="USER_DISPLAY_NAME" /> на это устройство<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Требуется расширение из Интернет-магазина Chrome</translation>
 <translation id="4750394297954878236">Предложения</translation>
@@ -2475,6 +2469,7 @@
 <translation id="4821935166599369261">&amp;Сбор данных включен</translation>
 <translation id="4823484602432206655">Просмотр и изменение настроек для пользователей и устройств</translation>
 <translation id="4823651846660089135">Устройство доступно только для чтения</translation>
+<translation id="4823955295535347797">Чтобы обратиться к Ассистенту, разблокируйте устройство и скажите "Окей, Google".</translation>
 <translation id="4828937774870308359">Обратная</translation>
 <translation id="4829768588131278040">Установить PIN-код</translation>
 <translation id="4830502475412647084">Обновление ОС</translation>
@@ -2515,6 +2510,7 @@
 <translation id="4876273079589074638">Опишите свои действия максимально подробно, чтобы наши специалисты смогли быстрее выяснить причину сбоя и устранить ее.</translation>
 <translation id="4876895919560854374">Блокировка и разблокировка экрана</translation>
 <translation id="4877017884043316611">Подключение к Chromebox</translation>
+<translation id="4879491255372875719">Автоматически (по умолчанию)</translation>
 <translation id="4880214202172289027">Ползунок громкости</translation>
 <translation id="4880328057631981605">Название точки доступа</translation>
 <translation id="4880520557730313061">Автокоррекция</translation>
@@ -2668,7 +2664,6 @@
 <translation id="5099354524039520280">вверх</translation>
 <translation id="5100114659116077956">Установите последние обновления Chromebox.</translation>
 <translation id="5101042277149003567">Открыть все закладки</translation>
-<translation id="5104546332954397226">Используйте телефон в качестве Электронного ключа</translation>
 <translation id="5105855035535475848">Закрепить вкладки</translation>
 <translation id="5108967062857032718">Настройки – Удаление приложений для Android</translation>
 <translation id="5109044022078737958">Мия</translation>
@@ -2799,7 +2794,6 @@
 <translation id="5288678174502918605">Открыть закрытую вкладку</translation>
 <translation id="52912272896845572">Файл закрытого ключа недействителен.</translation>
 <translation id="529175790091471945">Форматировать устройство</translation>
-<translation id="5292195676005197571">У большинства ключей нужно просто нажать кнопку.</translation>
 <translation id="5293170712604732402">Восстановление настроек по умолчанию</translation>
 <translation id="5297082477358294722">Пароль сохранен. Просматривайте сохраненные пароли и управляйте ими на странице <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Автор темы:</translation>
@@ -2825,6 +2819,7 @@
 <translation id="532776649628038357">Принимаю</translation>
 <translation id="532943162177641444">Откройте уведомление на телефоне <ph name="PHONE_NAME" />, чтобы настроить точку доступа, к которой сможет подключиться это устройство.</translation>
 <translation id="5329858601952122676">&amp;Удалить</translation>
+<translation id="5329945517224105597">В разных ситуациях Ассистент будет предлагать вам дополнительные подсказки и действия. Если они вам не нужны, отключите эту функцию в настройках.</translation>
 <translation id="5330145655348521461">Эти файлы открыты на другом рабочем столе. Чтобы увидеть их, переключитесь на профиль пользователя <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />).</translation>
 <translation id="5330512191124428349">Сведения о файле</translation>
 <translation id="5331069282670671859">Нет сертификатов в этой категории</translation>
@@ -2869,7 +2864,6 @@
 <translation id="5390100381392048184">Разрешить сайтам воспроизводить звуки</translation>
 <translation id="5390284375844109566">Индексированная база данных</translation>
 <translation id="5390743329570580756">Отправка</translation>
-<translation id="5392327114396848796">Используйте встроенный Электронный ключ</translation>
 <translation id="5397794290049113714">Вы</translation>
 <translation id="5398572795982417028">Размер страницы больше максимально допустимого (лимит ‒ <ph name="MAXIMUM_PAGE" />)</translation>
 <translation id="5398772614898833570">Реклама заблокирована</translation>
@@ -3077,6 +3071,7 @@
    <ph name="LINE_BREAKS" />
    Закройте все файлы в архиве или на электронном диске и повторите попытку.</translation>
 <translation id="5687326903064479980">Часовой пояс</translation>
+<translation id="568824803367507355">Распознавание команды "Окей, Google"</translation>
 <translation id="5689516760719285838">Геоданные</translation>
 <translation id="56907980372820799">Связать аккаунты</translation>
 <translation id="5691511426247308406">Семейство</translation>
@@ -3174,7 +3169,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" />: идет запись с камеры или микрофона</translation>
 <translation id="5835754902560991078">самая короткая (0,6 с)</translation>
 <translation id="5838456317242088717">Текущий сеанс в режиме инкогнито</translation>
-<translation id="5842053879378944309">Использование электронного ключа USB через приложение "<ph name="APP_NAME" />"</translation>
 <translation id="5842497610951477805">Включение и отключение Bluetooth</translation>
 <translation id="5843250171025351504">Версия ОС на вашем устройстве больше не соответствует минимальным требованиям, заданным администратором. Чтобы войти в аккаунт, обновите ОС.</translation>
 <translation id="5846929185714966548">Вкладка 4</translation>
@@ -3492,7 +3486,6 @@
 <translation id="6317318380444133405">Принтер больше не поддерживается.</translation>
 <translation id="6317369057005134371">Запуск приложения…</translation>
 <translation id="6318407754858604988">Скачивание началось</translation>
-<translation id="6322653941595359182">Отправлять и получать SMS на устройстве Chromebook</translation>
 <translation id="6324916366299863871">Изменение ярлыка</translation>
 <translation id="6325191661371220117">Отключить автозапуск</translation>
 <translation id="6326175484149238433">Удалить</translation>
@@ -3536,6 +3529,7 @@
 <translation id="6395423953133416962">Отправлять <ph name="BEGIN_LINK1" />сведения о системе<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />значения показателей<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Настройки синхронизации и персонализации</translation>
 <translation id="6397592254427394018">Открыть все закладки в режиме &amp;инкогнито</translation>
+<translation id="639777613761517128">Чтобы открыть файлы с помощью приложения "$1", сначала скопируйте их в папку Linux Files (Файлы Linux).</translation>
 <translation id="6398715114293939307">Удалить Google Play Маркет</translation>
 <translation id="6398765197997659313">Обычный режим</translation>
 <translation id="6399774419735315745">Шпион</translation>
@@ -3561,7 +3555,6 @@
 <translation id="642282551015776456">Недопустимое название для файла или папки</translation>
 <translation id="642469772702851743">Устройство (серийный номер <ph name="SERIAL_NUMBER" />) заблокировано владельцем.</translation>
 <translation id="6426200009596957090">Открыть настройки ChromeVox</translation>
-<translation id="6427415464407526111">Выберите электронный ключ</translation>
 <translation id="6429384232893414837">Ошибка обновления</translation>
 <translation id="6430814529589430811">Единый сертификат ASCII с кодировкой Base64</translation>
 <translation id="6431217872648827691">Все данные зашифрованы с помощью пароля вашего аккаунта Google c
@@ -3719,7 +3712,6 @@
 <translation id="6655190889273724601">Режим разработчика</translation>
 <translation id="6655458902729017087">Скрыть аккаунты</translation>
 <translation id="6657585470893396449">Пароль</translation>
-<translation id="6658023813581644008">Чтобы настроить Smart Lock для входа, введите пароль.</translation>
 <translation id="6659213950629089752">Масштаб этой страницы изменен расширением "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Вкладка</translation>
 <translation id="6664237456442406323">К сожалению, в настройках компьютера указан недействительный аппаратный код. Chrome OS не сможет устанавливать обновления для системы безопасности, и ваш компьютер <ph name="BEGIN_BOLD" />может подвергаться атакам вредоносных сайтов<ph name="END_BOLD" />.</translation>
@@ -3855,7 +3847,6 @@
 <translation id="6885771755599377173">Cведения о системе</translation>
 <translation id="6886871292305414135">Открыть ссылку в новой &amp;вкладке</translation>
 <translation id="6892812721183419409">Открыть ссылку как <ph name="USER" /></translation>
-<translation id="6896398788631624004">Вставьте электронный ключ и активируйте его.</translation>
 <translation id="6896758677409633944">Копировать</translation>
 <translation id="6898440773573063262">Автозапуск киоск-приложений на этом устройстве разрешен</translation>
 <translation id="6898699227549475383">Организация (O)</translation>
@@ -3874,6 +3865,7 @@
 <translation id="6915804003454593391">Пользователь:</translation>
 <translation id="6916590542764765824">Управление расширениями</translation>
 <translation id="6920989436227028121">Открыть в обычной вкладке</translation>
+<translation id="6921709132208495314">Остановить загрузку страницы</translation>
 <translation id="6922128026973287222">Расширение "Экономия трафика" от Google помогает быстрее просматривать веб-страницы и расходовать меньше трафика. Нажмите здесь, чтобы узнать подробности.</translation>
 <translation id="6923132443355966645">Прокрутить/нажать</translation>
 <translation id="6930242544192836755">Продолжительность</translation>
@@ -3896,6 +3888,7 @@
 <translation id="6965382102122355670">ОК</translation>
 <translation id="6965648386495488594">Порт</translation>
 <translation id="6965978654500191972">Устройство</translation>
+<translation id="6968288415730398122">Чтобы настроить блокировку экрана, введите пароль</translation>
 <translation id="6970480684834282392">Тип запуска</translation>
 <translation id="6970856801391541997">Печать выбранных страниц</translation>
 <translation id="6972180789171089114">Аудио/видео</translation>
@@ -3906,6 +3899,7 @@
 <translation id="6978121630131642226">Поисковые системы</translation>
 <translation id="6978611942794658017">Этот файл разработан для ПК на платформе Windows и не совместим с Chrome OS на вашем устройстве. Чтобы найти подходящее приложение, посетите Интернет-магазин Chrome.</translation>
 <translation id="6979158407327259162">Google Диск</translation>
+<translation id="6979440798594660689">Без звука (по умолчанию)</translation>
 <translation id="6979737339423435258">Все время</translation>
 <translation id="6980462514016882061">Google может использовать историю просмотров для персонализации Поиска, Рекламы и других сервисов.</translation>
 <translation id="6981982820502123353">Специальные возможности</translation>
@@ -4054,6 +4048,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Мы будем получать общие сведения о работе устройства, например об уровне заряда батареи, используемых приложениях и подключении к сети. Они помогут нам развивать сервисы Google, а наши партнеры смогут использовать некоторые из этих сведений, чтобы улучшать собственные приложения и другие продукты.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Вы в любой момент можете запретить отправку данных. Это не повлияет на обновление и безопасность системы.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Чтобы отключить эту функцию или включить ее снова: "Настройки &gt; Google &gt; Использование и диагностика".<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">С вашим аккаунтом связано несколько приложений (<ph name="NUMBER_OF_APPS" />), которые можно использовать на этом устройстве.</translation>
 <translation id="7199158086730159431">&amp;Справка</translation>
 <translation id="7200083590239651963">Выбор конфигурации</translation>
 <translation id="720110658997053098">Всегда запускать устройство в режиме киоска</translation>
@@ -4074,7 +4069,6 @@
 <translation id="7228523857728654909">Блокировка экрана и вход</translation>
 <translation id="7229570126336867161">Необходимо наличие EV-DO</translation>
 <translation id="7230787553283372882">Позволяет настроить размер текста</translation>
-<translation id="7231589788477569369">Настройте Ассистента, чтобы использовать все доступные возможности</translation>
 <translation id="7232750842195536390">Название не изменено</translation>
 <translation id="7234406375359457793">Ошибка. Указанный ресурс не поддерживается.</translation>
 <translation id="7238585580608191973">Отпечаток SHA-256</translation>
@@ -4084,7 +4078,6 @@
 <translation id="7243632151880336635">Стереть данные и выйти</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (оптимальное)</translation>
 <translation id="7246339268451149667">Разрешить разблокировку с помощью отпечатка пальца?</translation>
-<translation id="7246489301073081944">Чтобы выйти, нажмите |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| + |<ph name="ACCELERATOR3" />|.</translation>
 <translation id="7246947237293279874">FTP-прокси</translation>
 <translation id="725109152065019550">Администратор запретил использовать внешний накопитель для этого аккаунта.</translation>
 <translation id="7253521419891527137">&amp;Подробнее</translation>
@@ -4237,7 +4230,6 @@
 <translation id="7489605380874780575">Проверить возможность участия</translation>
 <translation id="749028671485790643">Пользователь <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC-адрес</translation>
-<translation id="7490950320178383728">Используйте Электронный ключ через Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">Расширение "<ph name="EXTENSION_NAME" />" может сохранять любой текст, который вы вводите, в том числе пароли и данные банковских карт. Начать работу?</translation>
 <translation id="7494065396242762445">Открыть настройки Windows</translation>
@@ -4487,7 +4479,6 @@
 <translation id="7850851215703745691">К этим файлам на Диске пока не предоставлен доступ</translation>
 <translation id="7851457902707056880">Войти можно только с аккаунтом владельца. Перезагрузите компьютер сейчас или подождите 30 секунд до автоматической перезагрузки, а затем войдите в аккаунт владельца.</translation>
 <translation id="7851716364080026749">Всегда блокировать доступ к камере и микрофону</translation>
-<translation id="7851816139220202929">Используйте Электронный ключ через NFC</translation>
 <translation id="7853747251428735">Дополнительные инструмен&amp;ты</translation>
 <translation id="7856006446339184955">Отправка системных данных. Это устройство автоматически отправляет в Google данные диагностики, а также сведения об использовании устройства и приложений. Этот <ph name="BEGIN_LINK1" />параметр<ph name="END_LINK1" /> задает владелец устройства. Если включена История приложений и веб-поиска, эта информация будет сохраняться в вашем аккаунте, и вы сможете управлять ей на странице "Мои действия". <ph name="BEGIN_LINK2" />Подробнее…<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Добавить исключение</translation>
@@ -4570,6 +4561,7 @@
 <translation id="7973962044839454485">Не удалось выполнить аутентификацию PPP: неверное имя пользователя или пароль</translation>
 <translation id="7974566588408714340">Подключиться через <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Каемка экрана</translation>
+<translation id="79766959863778284">XR Isolated Device Service</translation>
 <translation id="7977551819349545646">Обновление Chromebox...</translation>
 <translation id="7978412674231730200">Закрытый ключ</translation>
 <translation id="7978450511781612192">Вы выйдете из аккаунта Google. Закладки, история, пароли и другие параметры перестанут синхронизироваться с ним.</translation>
@@ -4620,7 +4612,6 @@
 <translation id="8030656706657716245">Добавить принтер</translation>
 <translation id="8032244173881942855">Невозможно транслировать вкладку</translation>
 <translation id="8033827949643255796">Выделено.</translation>
-<translation id="8033958968890501070">Время истекло</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Открыть все в режиме &amp;инкогнито}=1{Открыть в режиме &amp;инкогнито}one{Открыть все (#) в режиме &amp;инкогнито}few{Открыть все (#) в режиме &amp;инкогнито}many{Открыть все (#) в режиме &amp;инкогнито}other{Открыть все (#) в режиме &amp;инкогнито}}</translation>
 <translation id="8037117027592400564">Доступ к тексту, произнесенному синтезатором речи</translation>
 <translation id="8037357227543935929">Спрашивать (по умолчанию)</translation>
@@ -4793,6 +4784,7 @@
 <translation id="8320459152843401447">Весь экран</translation>
 <translation id="8322814362483282060">Доступ к вашему микрофону для этой страницы заблокирован.</translation>
 <translation id="8326478304147373412">PKCS #7, цепочка сертификатов</translation>
+<translation id="8327039559959785305">Не удалось установить файлы Linux. Пожалуйста, попробуйте ещё раз.</translation>
 <translation id="8329978297633540474">Обычный текст</translation>
 <translation id="8335587457941836791">Открепить от панели запуска</translation>
 <translation id="8336153091935557858">Вчера, <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4843,7 +4835,6 @@
 <translation id="8425213833346101688">Изменить</translation>
 <translation id="8425492902634685834">Закрепить на панели задач</translation>
 <translation id="8425755597197517046">Вст&amp;авить из буфера и найти</translation>
-<translation id="8426117172745886547">Запрашивать согласие на выход (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Включение</translation>
 <translation id="8427292751741042100">встроено на любом хосте</translation>
 <translation id="8428213095426709021">Настройки</translation>
@@ -4931,7 +4922,6 @@
 <translation id="8551388862522347954">Лицензии</translation>
 <translation id="8553342806078037065">Другие пользователи</translation>
 <translation id="8554899698005018844">Язык не указан</translation>
-<translation id="8557347704037207368">Показывать уведомления от веб-версии Android Сообщений</translation>
 <translation id="855773602626431402">На этой странице был предотвращен запуск плагина, работающего вне тестовой среды.</translation>
 <translation id="8557930019681227453">Манифест</translation>
 <translation id="8559694214572302298">Дешифратор изображений</translation>
@@ -5044,6 +5034,7 @@
 <translation id="8714154114375107944">Прекращение поддержки</translation>
 <translation id="8714838604780058252">Фон</translation>
 <translation id="8715480913140015283">На фоновой вкладке используется камера.</translation>
+<translation id="8716931980467311658">Удалить с устройства <ph name="DEVICE_TYPE" /> все приложения для Linux, а также данные из папки "Файлы Linux"?</translation>
 <translation id="8719653885894320876">Ошибка скачивания плагина <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Субфреймы в режиме инкогнито для сайта <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">Показать в папке</translation>
@@ -5207,7 +5198,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" />: произошел сбой</translation>
 <translation id="8983677657449185470">Помогать улучшить режим Безопасного просмотра</translation>
 <translation id="8984654317541110628">URL для совместного доступа к файлу</translation>
-<translation id="8984872292925913496">Найдите на обратной стороне ключа шестизначный PIN-код.</translation>
 <translation id="8986362086234534611">Удалить</translation>
 <translation id="8986494364107987395">Автоматически отправлять в Google статистику использования и отчеты о сбоях</translation>
 <translation id="8987927404178983737">Месяц</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 54ed36c8..5320e86 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Pri zmene zvýrazňovať objekt so zameraním klávesnice</translation>
 <translation id="1173894706177603556">Premenovať</translation>
 <translation id="1174073918202301297">Odkaz bol pridaný</translation>
-<translation id="1174808551768282258">Odomykajte svoj Chromebook pomocou telefónu. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Tlačiť...</translation>
 <translation id="117624967391683467">Prebieha kopírovanie súboru <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google môže použiť vašu históriu prehliadania na prispôsobenie reklám vo vyhľadávaní a ďalších služieb Googlu. Môžete to kedykoľvek zmeniť na adrese myaccount.google.com/activitycontrols/search.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Pozastaviť</translation>
 <translation id="1181037720776840403">Odstrániť</translation>
 <translation id="1183237619868651138">Súbor <ph name="EXTERNAL_CRX_FILE" /> nie je možné nainštalovať v miestnej vyrovnávacej pamäti</translation>
-<translation id="1183378459020939734">Chcete spárovať bezpečnostný kľúč?</translation>
 <translation id="1185924365081634987">Ak chcete túto chybu siete odstrániť, môžete tiež skúsiť <ph name="GUEST_SIGNIN_LINK_START" />prehliadanie v režime hosťa<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">Odstránenie škodlivého softvéru</translation>
 <translation id="1187722533808055681">Prebudenia z nečinnosti</translation>
@@ -544,7 +542,6 @@
 <translation id="1782530111891678861">Zmena režimu dotykového displeja HUD</translation>
 <translation id="1784849162047402014">V zariadení je málo miesta na disku</translation>
 <translation id="1786636458339910689">Tímové disky</translation>
-<translation id="1792161662640298233">Overuje sa bezpečnostný kľúč</translation>
 <translation id="1792619191750875668">Rozšírená obrazovka</translation>
 <translation id="1794791083288629568">Odoslať spätnú väzbu, ktorá nám pomôže pri riešení tohto problému</translation>
 <translation id="1795214765651529549">Použiť klasický</translation>
@@ -627,7 +624,6 @@
 <translation id="1910721550319506122">Vitajte!</translation>
 <translation id="1914326953223720820">Rozbaliť službu</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">V závislosti od nastavení účtu budú funkcie vášho Asistenta obmedzené napríklad na poskytovanie výsledkov z internetu, vtipy a miestne informácie.</translation>
 <translation id="1916502483199172559">Predvolený červený avatar</translation>
 <translation id="1918141783557917887">&amp;Menší</translation>
 <translation id="1919345977826869612">Reklamy</translation>
@@ -883,7 +879,6 @@
 <translation id="2307462900900812319">Konfigurovať sieť</translation>
 <translation id="230927227160767054">Táto stránka chce nainštalovať obslužný nástroj služby.</translation>
 <translation id="2309620859903500144">Tento web má zablokovaný prístup k senzorom pohybu alebo svetla.</translation>
-<translation id="2311075084924370935">Na to, aby vám Asistent mohol pomáhať s kalendárom, pripomenutiami, letmi a pod., potrebuje prístup k nastaveniam aktivity na internete a v aplikáciách, informáciám zo zariadení a hlasovej a zvukovej aktivite.</translation>
 <translation id="2315414688463285945">Pri konfigurovaní súborov systému Linux sa vyskytla chyba. Skúste to znova.</translation>
 <translation id="2315821125498993513">K telefónu sa nepodarilo pripojiť. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Nie, ďakujem</translation>
@@ -891,7 +886,6 @@
 <translation id="2318143611928805047">Veľkosť papiera</translation>
 <translation id="2318817390901984578">Ak chcete používať aplikácie pre Android, nabite a aktualizujte zariadenie <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Aktuálna relácia inkognito (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Použitie bezpečnostného kľúča s aplikáciou <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Hlavičky a päty</translation>
 <translation id="2325650632570794183">Tento typ súboru nie je podporovaný. Navštívte Internetový obchod Chrome, kde nájdete aplikáciu, pomocou ktorej môžete tento typ súboru otvoriť.</translation>
 <translation id="2326931316514688470">&amp;Znova načítať aplikáciu</translation>
@@ -925,7 +919,6 @@
 <translation id="2367199180085172140">Pridať zdieľanie súboru</translation>
 <translation id="2367972762794486313">Zobraziť aplikácie</translation>
 <translation id="2369536625682139252">Všetky dáta uložené webom <ph name="SITE" /> budú s výnimkou súborov cookie odstránené.</translation>
-<translation id="237058345584060620">Spárujte kľúč s týmto zariadením, aby ste sa mohli pomocou neho prihlasovať do účtu</translation>
 <translation id="2371076942591664043">Po stiahnutí otvoriť</translation>
 <translation id="2377319039870049694">Prepnúť na zobrazenie zoznamu</translation>
 <translation id="2377667304966270281">Závažné chyby</translation>
@@ -992,7 +985,6 @@
 <translation id="248861575772995840">Telefón sa nedarí nájsť. Skontrolujte, či je v zariadení <ph name="DEVICE_TYPE" /> zapnuté rozhranie Bluetooth. &lt;a&gt;Ďalšie informácie&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Pridať &amp;priečinok...</translation>
 <translation id="249113932447298600">Je nám ľúto, ale zariadenie <ph name="DEVICE_LABEL" /> nie je momentálne podporované.</translation>
-<translation id="2492040222276243256">Pridržte tlačidlo na bezpečnostnom kľúči aspoň päť sekúnd</translation>
 <translation id="2493021387995458222">Vyberte možnosť „po jednom slove“</translation>
 <translation id="249303669840926644">Registráciu sa nepodarilo dokončiť</translation>
 <translation id="2495777824269688114">Objavte ďalšie funkcie alebo získajte odpovede. Ak potrebujete pomoc, vyberte „?“.</translation>
@@ -1097,7 +1089,6 @@
 <translation id="2633199387167390344">Aplikácia alebo rozšírenie <ph name="NAME" /> využíva <ph name="USAGE" /> MB miesta na disku.</translation>
 <translation id="2633212996805280240">Odstrániť rozšírenie <ph name="EXTENSION_NAME" />?</translation>
 <translation id="263325223718984101">Inštaláciu prehliadača <ph name="PRODUCT_NAME" /> sa nepodarilo dokončiť, ale bude sa naďalej spúšťať z jeho obrazu disku.</translation>
-<translation id="2633326789677284179">Nájdite názov uvedený na zadnej strane kľúča</translation>
 <translation id="2635276683026132559">Podpísanie</translation>
 <translation id="2636625531157955190">Prehliadač Chrome nemôže získať prístup k obrazu.</translation>
 <translation id="2638087589890736295">Spustenie synchronizácie vyžaduje prístupovú frázu</translation>
@@ -1265,7 +1256,6 @@
 <translation id="287286579981869940">Pridať poskytovateľa <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Ak chcete získať svoje heslá vo všetkých zariadeniach, prihláste sa do Chromu.</translation>
 <translation id="2875698561019555027">(Chybové stránky prehliadača Chrome)</translation>
-<translation id="2876441201733326392">Použitie bezpečnostného kľúča USB</translation>
 <translation id="288042212351694283">Prístup k vašim zariadeniam so štandardom Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Dátum posledného prístupu:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> sa o chvíľu reštartuje a obnoví</translation>
@@ -1333,7 +1323,6 @@
 <translation id="2982970937345031">Nahlásiť anonymne</translation>
 <translation id="2984337792991268709">Dnes o <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Tejto stránke bola zablokovaná úplná kontrola nad zariadeniami MIDI.</translation>
-<translation id="2988599644347283908">Poznámka: Dáta ovládané týmito nastaveniami môžu byť uložené a využité v ľubovoľnej službe Googlu, do ktorej ste sa prihlásili, s cieľom poskytovať vám prispôsobené prostredie a užitočné reklamy. Na adrese account.google.com môžete svoje dáta zobraziť a odstrániť, prípadne môžete zmeniť nastavenia.</translation>
 <translation id="2989474696604907455">nepripojené</translation>
 <translation id="2989786307324390836">Binárny súbor s kódovaním DER, jeden certifikát</translation>
 <translation id="2993517869960930405">Informácie o aplikácii</translation>
@@ -1386,7 +1375,6 @@
 <translation id="304826556400666995">Obnoviť zvuk kariet</translation>
 <translation id="3053013834507634016">Použitie kľúča certifikátu</translation>
 <translation id="3057861065630527966">Zálohovať fotky a videá</translation>
-<translation id="3059313675706898490">Správy pre Android</translation>
 <translation id="3060379269883947824">Povoliť počúvanie vybraného textu</translation>
 <translation id="3061707000357573562">Služba opráv</translation>
 <translation id="3064410671692449875">Nedostatok dát</translation>
@@ -1415,7 +1403,6 @@
 <translation id="3090819949319990166">Externý súbor crx nie je možné skopírovať do súboru <ph name="TEMP_CRX_FILE" /></translation>
 <translation id="3090871774332213558">Zariadenie „<ph name="DEVICE_NAME" />“ bolo spárované</translation>
 <translation id="3101709781009526431">Dátum a čas</translation>
-<translation id="3104900172193317662">Povolenie použitia bezpečnostného kľúča</translation>
 <translation id="310671807099593501">Web používa Bluetooth</translation>
 <translation id="3115128645424181617">Telefón sa nedarí nájsť. Skontrolujte, či je v dosahu a či má zapnuté rozhranie Bluetooth.</translation>
 <translation id="3115147772012638511">Čakanie na vyrovnávaciu pamäť...</translation>
@@ -1499,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Nie je súčasťou certifikátu&gt;</translation>
 <translation id="3254434849914415189">Zvoľte pre súbory <ph name="FILE_TYPE" /> predvolenú aplikáciu:</translation>
 <translation id="3254516606912442756">Automatické zisťovanie časového pásma je deaktivované</translation>
-<translation id="3254772308201947812">Áno, súhlasím</translation>
 <translation id="3264544094376351444">Bezpätkové písmo</translation>
 <translation id="3264547943200567728">Nepodarilo sa nastaviť sieť pre vaše zariadenie Chromebox</translation>
 <translation id="3264582393905923483">Kontext</translation>
@@ -1822,7 +1808,6 @@
 <translation id="3735740477244556633">Zoradiť podľa</translation>
 <translation id="3737274407993947948">Chyba pri inštalovaní systému Linux…</translation>
 <translation id="3737536731758327622">Tu sa zobrazia stiahnuté súbory</translation>
-<translation id="3738671331307774213">Overenie totožnosti pomáha chrániť vaše súkromné dáta</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Otvoriť <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859">Zariadenie <ph name="DEVICE_NAME" /> sa teraz zobrazí v Správcovskej konzole</translation>
@@ -1931,7 +1916,6 @@
 <translation id="3873315167136380065">Zapnite toto nastavenie, <ph name="BEGIN_LINK" />resetujte synchronizáciu<ph name="END_LINK" /> a odstráňte tak prístupovú frázu synchronizácie</translation>
 <translation id="3878840326289104869">Prebieha vytváranie kontrolovaného používateľa</translation>
 <translation id="3879748587602334249">Správca sťahovania</translation>
-<translation id="3880709822663530586">Bezpečnostný kľúč funguje iba vtedy, keď je v zariadení zapnuté rozhranie Bluetooth</translation>
 <translation id="3888550877729210209">Písanie poznámok v aplikácii <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Pridať OpenVPN / L2TP...</translation>
 <translation id="3893536212201235195">Čítať a zmeniť nastavenia zjednodušenia ovládania</translation>
@@ -2077,6 +2061,7 @@
 <translation id="4096824249111507322">Bezpečný modul sa pripravuje, čakajte (môže to trvať niekoľko minút)...</translation>
 <translation id="4099060993766194518">Obnoviť predvolený vyhľadávač?</translation>
 <translation id="4100733287846229632">V zariadení je kriticky málo miesta</translation>
+<translation id="4103091233824664032">Ak chcete konfigurovať zámku obrazovky a prihlásenie, zadajte heslo</translation>
 <translation id="4104163789986725820">E&amp;xportovať...</translation>
 <translation id="4105563239298244027">Získajte 1 TB zadarmo so službou Disk Google</translation>
 <translation id="4107048419833779140">Identifikovať a vysunúť zariadenia s úložiskom</translation>
@@ -2097,7 +2082,6 @@
 <translation id="4136203100490971508">Nočný režim sa automaticky vypne pri východe slnka</translation>
 <translation id="4138267921960073861">Zobraziť používateľské mená a fotografie na prihlasovacej obrazovke</translation>
 <translation id="4144218403971135344">Získajte kvalitnejšie video a predĺžte výdrž batérie. Video sa bude prehrávať iba na obrazovke podporujúcej Cast.</translation>
-<translation id="414599683948988413">Použiť bezpečnostný kľúč s rozhraním USB</translation>
 <translation id="4146026355784316281">Vždy otvárať pomocou systémového zobrazovača</translation>
 <translation id="4146785383423576110">Resetovať a vyčistiť</translation>
 <translation id="4147897805161313378">Fotky Google</translation>
@@ -2442,6 +2426,7 @@
 <translation id="474217410105706308">Stlmiť kartu</translation>
 <translation id="4742746985488890273">Pripnúť na poličku</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Ako aktualizovať aplikácie<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Správy</translation>
 <translation id="4746971725921104503">Zdá sa, že používateľa s týmto menom už spravujete. Chcete <ph name="LINK_START" />používateľa <ph name="USER_DISPLAY_NAME" /> importovať do tohto zariadenia<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Vyžaduje rozšírenie z Internetového obchodu Chrome</translation>
 <translation id="4750394297954878236">Návrhy</translation>
@@ -2678,7 +2663,6 @@
 <translation id="5099354524039520280">hore</translation>
 <translation id="5100114659116077956">Ak chcete, aby vám zariadenie Chromebox poskytlo najnovšie funkcie, aktualizujte ho.</translation>
 <translation id="5101042277149003567">Otvoriť všetky záložky</translation>
-<translation id="5104546332954397226">Používať telefón ako bezpečnostný kľúč</translation>
 <translation id="5105855035535475848">Pripnutie kariet</translation>
 <translation id="5108967062857032718">Nastavenia – odstránenie aplikácií pre Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2809,7 +2793,6 @@
 <translation id="5288678174502918605">Znova o&amp;tvoriť zatvorenú kartu</translation>
 <translation id="52912272896845572">Súbor súkromného kľúča je neplatný.</translation>
 <translation id="529175790091471945">Formátovať toto zariadenie</translation>
-<translation id="5292195676005197571">Väčšinu kľúčov môžete použiť pomocou tlačidla</translation>
 <translation id="5293170712604732402">Obnovenie pôvodných predvolených nastavení</translation>
 <translation id="5297082477358294722">Heslo bolo uložené. Uložené heslá si môžete zobraziť a spravovať v časti <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Autor motívu:</translation>
@@ -2880,7 +2863,6 @@
 <translation id="5390100381392048184">Povoliť webom prehrávať zvuk</translation>
 <translation id="5390284375844109566">Indexovaná databáza</translation>
 <translation id="5390743329570580756">Odoslať pre</translation>
-<translation id="5392327114396848796">Používať integrovaný bezpečnostný kľúč</translation>
 <translation id="5397794290049113714">Vy</translation>
 <translation id="5398572795982417028">Odkaz na stránku je mimo rozsahu, limit je <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Reklamy sú blokované</translation>
@@ -3186,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – Kamera alebo mikrofón zaznamenáva obsah</translation>
 <translation id="5835754902560991078">extrémne krátke (0,6 s)</translation>
 <translation id="5838456317242088717">Aktuálna relácia inkognito</translation>
-<translation id="5842053879378944309">Použitie bezpečnostného kľúča USB s aplikáciou <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Povolenie rozhrania Bluetooth</translation>
 <translation id="5843250171025351504">Vaše zariadenie nespĺňa minimálnu verziu klienta stanovenú správcom. Aktualizujte ju, aby ste sa mohli prihlásiť.</translation>
 <translation id="5846929185714966548">Karta 4</translation>
@@ -3504,7 +3485,6 @@
 <translation id="6317318380444133405">Nepodporovaná</translation>
 <translation id="6317369057005134371">Čaká sa na okno aplikácie...</translation>
 <translation id="6318407754858604988">Sťahovanie sa začalo</translation>
-<translation id="6322653941595359182">Odosielajte a prijímajte textové správy z Chromebooku</translation>
 <translation id="6324916366299863871">Upraviť skratku</translation>
 <translation id="6325191661371220117">Zakázať automatické spúšťanie</translation>
 <translation id="6326175484149238433">Odstrániť z Chromu</translation>
@@ -3574,7 +3554,6 @@
 <translation id="642282551015776456">Tento názov nie je možné použiť na pomenovanie súboru ani priečinka.</translation>
 <translation id="642469772702851743">Toto zariadenie (sériové číslo: <ph name="SERIAL_NUMBER" />) uzamkol jeho vlastník.</translation>
 <translation id="6426200009596957090">Otvoriť nastavenia ChromeVox</translation>
-<translation id="6427415464407526111">Výber bezpečnostného kľúča</translation>
 <translation id="6429384232893414837">Chyba aktualizácie</translation>
 <translation id="6430814529589430811">ASCII s kódovaním Base64, jeden certifikát</translation>
 <translation id="6431217872648827691">Všetky údaje boli zašifrované pomocou vášho hesla Google dňa
@@ -3732,7 +3711,6 @@
 <translation id="6655190889273724601">Režim pre vývojárov</translation>
 <translation id="6655458902729017087">Skryť účty</translation>
 <translation id="6657585470893396449">Heslo</translation>
-<translation id="6658023813581644008">Ak chcete nastaviť Smart Lock, zadajte heslo</translation>
 <translation id="6659213950629089752">Zobrazenie tejto stránky bolo priblížené rozšírením <ph name="NAME" /></translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Váš počítač je žiaľ nakonfigurovaný pomocou poškodeného ID hardvéru. Systému Chrome OS to zabraňuje získať aktualizácie s najnovšími opravami zabezpečenia a váš počítač <ph name="BEGIN_BOLD" />môže byť zraniteľný voči škodlivým útokom<ph name="END_BOLD" />.</translation>
@@ -3868,7 +3846,6 @@
 <translation id="6885771755599377173">Ukážka systémových informácií</translation>
 <translation id="6886871292305414135">Otvoriť odkaz na novej &amp;karte</translation>
 <translation id="6892812721183419409">Otvoriť odkaz ako <ph name="USER" /></translation>
-<translation id="6896398788631624004">Pripojte bezpečnostný kľúč a aktivujte ho</translation>
 <translation id="6896758677409633944">Kopírovať</translation>
 <translation id="6898440773573063262">Aplikácie Kiosku je teraz možné v tomto zariadení nakonfigurovať na automatické spúšťanie.</translation>
 <translation id="6898699227549475383">Organizácia (O)</translation>
@@ -3910,6 +3887,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Zariadenie</translation>
+<translation id="6968288415730398122">Ak chcete konfigurovať zámku obrazovky, zadajte heslo</translation>
 <translation id="6970480684834282392">Typ spustenia</translation>
 <translation id="6970856801391541997">Vytlačiť konkrétne stránky</translation>
 <translation id="6972180789171089114">Zvuk / video</translation>
@@ -4090,7 +4068,6 @@
 <translation id="7228523857728654909">Zámka obrazovky a prihlásenie</translation>
 <translation id="7229570126336867161">Je potrebné pripojenie EVDO</translation>
 <translation id="7230787553283372882">Prispôsobiť veľkosť textu</translation>
-<translation id="7231589788477569369">Získajte pomocou týchto nastavení všetky funkcie Asistenta</translation>
 <translation id="7232750842195536390">Nepodarilo sa premenovať</translation>
 <translation id="7234406375359457793">Pri pripájaní zdieľaného úložiska sa vyskytla chyba. Dané úložisko nie je podporované.</translation>
 <translation id="7238585580608191973">Odtlačok SHA-256</translation>
@@ -4100,7 +4077,6 @@
 <translation id="7243632151880336635">Vymazať a odhlásiť sa</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation>
 <translation id="7246339268451149667">Povoliť odomykanie odtlačkom prsta?</translation>
-<translation id="7246489301073081944">Ukončíte pridržaním klávesov |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />|</translation>
 <translation id="7246947237293279874">Proxy server FTP</translation>
 <translation id="725109152065019550">Je nám ľúto, správca vo vašom účte zakázal používanie externých ukladacích priestorov.</translation>
 <translation id="7253521419891527137">Ďalšie &amp;informácie</translation>
@@ -4253,7 +4229,6 @@
 <translation id="7489605380874780575">Skontrolovať spôsobilosť</translation>
 <translation id="749028671485790643">Osoba <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Adresa MAC</translation>
-<translation id="7490950320178383728">Používať bezpečnostný kľúč s rozhraním Bluetooth</translation>
 <translation id="7491962110804786152">karta</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> môže zhromažďovať všetok text, ktorý zadáte, vrátane osobných údajov, ako sú heslá a čísla kreditných kariet. Chcete použiť toto rozšírenie?</translation>
 <translation id="7494065396242762445">Otvoriť Nastavenia systému Windows</translation>
@@ -4503,7 +4478,6 @@
 <translation id="7850851215703745691">Tieto súbory služby Disk nie sú zatiaľ zdieľané</translation>
 <translation id="7851457902707056880">Prihlásenie bolo obmedzené iba na účet vlastníka. Reštartujte zariadenie a prihláste sa pomocou účtu vlastníka. Zariadenie sa automaticky reštartuje o 30 sekúnd.</translation>
 <translation id="7851716364080026749">Vždy blokovať prístup ku kamere a mikrofónu</translation>
-<translation id="7851816139220202929">Používať bezpečnostný kľúč s funkciou NFC</translation>
 <translation id="7853747251428735">Ďalšie nástro&amp;je</translation>
 <translation id="7856006446339184955">Odosielanie systémových údajov. Toto zariadenie momentálne automaticky odosiela Googlu diagnostiku a údaje o využívaní zariadenia a aplikácií. Používanie tohto <ph name="BEGIN_LINK1" />nastavenia<ph name="END_LINK1" /> je vynútené vlastníkom. Ak ste zapli ďalšiu aktivitu na internete a v aplikáciách, tieto informácie sa budú ukladať vo vašom účte a budete ich môcť spravovať na stránke Moja aktivita. <ph name="BEGIN_LINK2" />Ďalšie informácie<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Pridať výnimku</translation>
@@ -4637,7 +4611,6 @@
 <translation id="8030656706657716245">Pridať tlačiareň</translation>
 <translation id="8032244173881942855">Kartu nie je možné prenášať.</translation>
 <translation id="8033827949643255796">vybrané</translation>
-<translation id="8033958968890501070">Časový limit vypršal</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Otvoriť všetky v okne inkognito}=1{Otvoriť v okne inkognito}few{Otvoriť všetky (#) v okne inkognito}many{Otvoriť všetky (#) v okne inkognito}other{Otvoriť všetky (#) v okne inkognito}}</translation>
 <translation id="8037117027592400564">Čítať akýkoľvek hovorený text prenesený pomocou hlasového syntetizátora</translation>
 <translation id="8037357227543935929">Opýtať sa (predvolené)</translation>
@@ -4861,7 +4834,6 @@
 <translation id="8425213833346101688">Zmeniť</translation>
 <translation id="8425492902634685834">Pripnúť na panel úloh</translation>
 <translation id="8425755597197517046">Prilepiť a &amp;hľadať</translation>
-<translation id="8426117172745886547">Pred ukončením upozorniť (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Aktivuje sa</translation>
 <translation id="8427292751741042100">vložené do ľubovoľného webu</translation>
 <translation id="8428213095426709021">Nastavenia</translation>
@@ -4949,7 +4921,6 @@
 <translation id="8551388862522347954">Licencie</translation>
 <translation id="8553342806078037065">Spravovať ďalšie osoby</translation>
 <translation id="8554899698005018844">Žiadny jazyk</translation>
-<translation id="8557347704037207368">Odosielať mi upozornenia zo služby Android Web Messages</translation>
 <translation id="855773602626431402">Na tejto stránke sa nepodarilo spustiť doplnok, ktorý nie je v karanténe</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Image Decoder</translation>
@@ -5226,7 +5197,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – Zlyhanie</translation>
 <translation id="8983677657449185470">Pomáhať s vylepšovaním Bezpečného prehliadania</translation>
 <translation id="8984654317541110628">Webová adresa zdieľaného úložiska</translation>
-<translation id="8984872292925913496">Šesťmiestny kód PIN nájdete na zadnej strane kľúča</translation>
 <translation id="8986362086234534611">Odstrániť</translation>
 <translation id="8986494364107987395">Automaticky odosielať Googlu štatistiky používania a správy o zlyhaní</translation>
 <translation id="8987927404178983737">Mesiac</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 4419d770..a7d6e3d 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Označitev predmeta s fokusom na tipkovnici, ko se spremeni</translation>
 <translation id="1173894706177603556">Preimenuj</translation>
 <translation id="1174073918202301297">Bližnjica je bila dodana</translation>
-<translation id="1174808551768282258">Odklepanje Chromebooka s telefonom. <ph name="LINK_BEGIN" />Preberite več.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Natisni ...</translation>
 <translation id="117624967391683467">Kopiranje datoteke <ph name="FILE_NAME" /> ...</translation>
 <translation id="1177138678118607465">Google lahko uporabi vašo zgodovino brskanja za prilagajanje Iskanja Google, oglasov in drugih Googlovih storitev. To lahko kadar koli spremenite na myaccount.google.com/activitycontrols/search.</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Prekini</translation>
 <translation id="1181037720776840403">Odstrani</translation>
 <translation id="1183237619868651138">Datoteke <ph name="EXTERNAL_CRX_FILE" /> ni mogoče namestiti v lokalnem predpomnilniku.</translation>
-<translation id="1183378459020939734">Ste pripravljeni na seznanitev varnostnega ključa?</translation>
 <translation id="1185924365081634987">Če želite odpraviti to omrežno napako, lahko prav tako poskusite <ph name="GUEST_SIGNIN_LINK_START" />brskati kot gost<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">Odstranitev škodljive programske opreme</translation>
 <translation id="1187722533808055681">Prekinitve nedejavnosti</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Najdena ni bila nobena naprava Bluetooth</translation>
 <translation id="1306606229401759371">Spremeni nastavitve</translation>
 <translation id="1307559529304613120">Ojoj, sistem za to napravo ni shranil žetona za dolgoročni dostop do API-ja.</translation>
+<translation id="1307931752636661898">Ni si mogoče ogledati datotek za Linux</translation>
 <translation id="1313405956111467313">Samodejna konfiguracija strežnika proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Vaši zaznamki, zgodovina in druge nastavitve bodo sinhronizirani z Google Računom.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Odpiranje nastavitev miške in sledilne ploščice v napravi</translation>
 <translation id="1531004739673299060">Okno aplikacije</translation>
 <translation id="15373452373711364">Velik miškin kazalec</translation>
+<translation id="1538729222189715449">Odpiranje datotek za Linux ...</translation>
 <translation id="1540605929960647700">Omogočanje predstavitvenega načina</translation>
 <translation id="1543284117603151572">Uvoženo iz brskalnika Edge</translation>
 <translation id="1545177026077493356">Samodejni način kiosk</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Sprememba načina HUD za dotik</translation>
 <translation id="1784849162047402014">V napravi primanjkuje prostora na disku</translation>
 <translation id="1786636458339910689">Diski ekip</translation>
-<translation id="1792161662640298233">Preverjanje varnostnega ključa</translation>
 <translation id="1792619191750875668">Razširjen zaslon</translation>
 <translation id="1794791083288629568">Pošiljanje povratnih informacij zaradi odpravljanja te težave.</translation>
 <translation id="1795214765651529549">Uporabi klasično</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Dobrodošli!</translation>
 <translation id="1914326953223720820">Storitev razširjanja datotek</translation>
 <translation id="1915073950770830761">delovna različica</translation>
-<translation id="1915543339027206592">Izkušnja Pomočnika bo morda omejena na stvari, kot so spletni rezultati, šale in lokalne informacije, odvisno od nastavitev računa.</translation>
 <translation id="1916502483199172559">Privzeti rdeči avatar</translation>
 <translation id="1918141783557917887">&amp;Pomanjšaj</translation>
 <translation id="1919345977826869612">Oglasi</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Vtičnik <ph name="PEPPER_PLUGIN_NAME" /> v domeni <ph name="PEPPER_PLUGIN_DOMAIN" /> želi dostopati do vašega računalnika</translation>
 <translation id="2178614541317717477">Overitelj potrdil ni več varen</translation>
 <translation id="218070003709087997">Vnesite število izvodov, ki jih želite natisniti (od 1 do 999).</translation>
+<translation id="2184515124301515068">Naj Chrome izbere, kdaj lahko spletna mesta predvajajo zvok (priporočeno)</translation>
 <translation id="2187895286714876935">Napaka pri uvozu strežniškega potrdila</translation>
 <translation id="2187906491731510095">Razširitve posodobljene</translation>
 <translation id="2188881192257509750">Odpri aplikacijo <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Branje in spreminjanje vaših podatkov na več spletnih mestih</translation>
 <translation id="2242687258748107519">Podatki o datoteki</translation>
 <translation id="2243194103992005307">Če želite odstraniti aplikacije, pojdite v »Nastavitve« &gt; »Aplikacije« ali odprite Upravitelja aplikacij. Nato se dotaknite aplikacije, ki jo želite odstraniti (morda boste morali s prstom povleči v desno ali levo, da jo boste našli). Nato se dotaknite »Odstrani« ali »Onemogoči«.</translation>
+<translation id="224940702122312781">Ta stran bo prenesla večje količine podatkov.</translation>
 <translation id="2249605167705922988">npr. 1–5, 8, 11–13</translation>
 <translation id="2251218783371366160">Odpri s sistemskim pregledovalnikom</translation>
 <translation id="225163402930830576">Osveži omrežja</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Konfiguriranje omrežja</translation>
 <translation id="230927227160767054">Ta stran želi namestiti rutino za obravnavo storitev.</translation>
 <translation id="2309620859903500144">Temu spletnemu mestu je onemogočen dostop do tipal gibanja ali svetlobe.</translation>
-<translation id="2311075084924370935">Če želite, da vam Pomočnik pomaga pri koledarju, opomnikih, letih in drugem, potrebuje te nastavitve: dejavnost v spletu in aplikacijah, podatki o napravi ter glasovna in zvočna dejavnost.</translation>
+<translation id="2315414688463285945">Napaka pri konfiguriranju datotek za Linux. Poskusite znova.</translation>
 <translation id="2315821125498993513">S telefonom se ni bilo mogoče povezati. <ph name="LINK_BEGIN" />Več o tem.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Ne, hvala</translation>
 <translation id="2317842250900878657">Dokončano: <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Velikost papirja</translation>
 <translation id="2318817390901984578">Če želite uporabljati aplikacije za Android, napolnite in uporabite napravo <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Trenutna seja brez beleženja zgodovine (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Uporaba varnostnega ključa z aplikacijo <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Glave in noge</translation>
 <translation id="2325650632570794183">Ta vrsta datoteke ni podprta. Obiščite spletno trgovino Chrome in poiščite aplikacijo, ki lahko odpre to vrsto datoteke.</translation>
 <translation id="2326931316514688470">&amp;Znova naloži aplikacijo</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Dodajanje naprave za skupno rabo datotek</translation>
 <translation id="2367972762794486313">Pokaži aplikacije</translation>
 <translation id="2369536625682139252">Izbrisani bodo vsi podatki, ki jih je shranilo spletno mesto <ph name="SITE" />, razen piškotkov.</translation>
-<translation id="237058345584060620">Ključ seznanite s to napravo, če ga želite uporabiti za prijavo v račun</translation>
 <translation id="2371076942591664043">Odpri, ko je &amp;dokončano</translation>
 <translation id="2377319039870049694">Preklop na pogled seznama</translation>
 <translation id="2377667304966270281">Težke napake</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Telefona ni mogoče najti. Bluetooth v napravi <ph name="DEVICE_TYPE" /> mora biti vklopljen. &lt;a&gt;Več o tem&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Dodaj &amp;mapo ...</translation>
 <translation id="249113932447298600">Oprostite, naprava <ph name="DEVICE_LABEL" /> še ni podprta.</translation>
-<translation id="2492040222276243256">Pritisnite in vsaj 5 sekund pridržite gumb na varnostnem ključu</translation>
 <translation id="2493021387995458222">Izbere »eno besedo naenkrat«</translation>
 <translation id="249303669840926644">Registracije ni bilo mogoče dokončati</translation>
 <translation id="2495777824269688114">Odkrijte več funkcij ali prejmite odgovore. Če želite pomoč, izberite »?«.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Skupaj: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Dolga</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Okolje <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Ta zavihek souporablja vaš zaslon.</translation>
 <translation id="2586657967955657006">Odložišče</translation>
 <translation id="2586672484245266891">Vnesite krajši URL</translation>
 <translation id="2587922270115112871">Z ustvarjanjem zaščitenega uporabnika ne ustvarite Google Računa ter
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344">Aplikacija/razširitev <ph name="NAME" /> uporablja <ph name="USAGE" /> MB prostora na disku.</translation>
 <translation id="2633212996805280240">Želite odstraniti »<ph name="EXTENSION_NAME" />«?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> ni mogel končati namestitve, a se bo še vedno izvajal s posnetka diska.</translation>
-<translation id="2633326789677284179">Poiščite ime, natisnjeno na hrbtni strani ključa</translation>
 <translation id="2635276683026132559">Podpisovanje</translation>
 <translation id="2636625531157955190">Chrome ne more dostopati do slike.</translation>
 <translation id="2638087589890736295">Če želite začeti sinhronizacijo, morate vnesti geslo</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Dodajanje <ph name="PROVIDER_NAME" /> ...</translation>
 <translation id="2874343608108773609">Če želite dostopati do nastavitev v vseh napravah, se prijavite v Chrome.</translation>
 <translation id="2875698561019555027">(Chromove strani z napakami)</translation>
-<translation id="2876441201733326392">Uporaba varnostnega ključa USB</translation>
 <translation id="288042212351694283">Dostop do naprav z univerzalnim drugim dejavnikom</translation>
 <translation id="2881966438216424900">Zadnji dostop:</translation>
 <translation id="2882943222317434580">Izdelek <ph name="IDS_SHORT_PRODUCT_NAME" /> se bo v kratkem znova zagnal in ponastavil</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Anonimna prijava</translation>
 <translation id="2984337792991268709">Danes <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Tej spletni strani je preprečen popolni nadzor nad napravami MIDI.</translation>
-<translation id="2988599644347283908">Opomba: podatki, ki jih nadzirajo te nastavitve, so zaradi prilagojene izkušnje in uporabnih oglasov morda shranjeni in uporabljeni v kateri koli Googlovi storitvi, v kateri ste prijavljeni. Na account.google.com si lahko ogledate podatke in jih izbrišete ter spremenite nastavitve.</translation>
 <translation id="2989474696604907455">ni priključeno</translation>
 <translation id="2989786307324390836">DER kodirano dvojiško, enojno potrdilo</translation>
 <translation id="2993517869960930405">Podatki o aplikaciji</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Vklop zvoka zavihkov</translation>
 <translation id="3053013834507634016">Raba ključa potrdila</translation>
 <translation id="3057861065630527966">Varnostno kopiranje fotografij videoposnetkov</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Omogoči storitev Izberite in poslušajte</translation>
 <translation id="3061707000357573562">Storitev za popravke</translation>
 <translation id="3064410671692449875">Nezadostni podatki</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Zunanje datoteke crx ni mogoče kopirati v <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Naprava »<ph name="DEVICE_NAME" />« je seznanjena</translation>
 <translation id="3101709781009526431">Datum in ura</translation>
-<translation id="3104900172193317662">Omogočanje uporabe varnostnega ključa</translation>
 <translation id="310671807099593501">Spletno mesto uporablja Bluetooth</translation>
 <translation id="3115128645424181617">Telefona ni mogoče najti. Imeti ga morate pri roki in vklopiti morate Bluetooth.</translation>
 <translation id="3115147772012638511">Čakam predpomnilnik ...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Ni del potrdila&gt;</translation>
 <translation id="3254434849914415189">Izberite privzeto aplikacijo za datoteke <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Samodejno zaznavanje časovnega pasu je onemogočeno</translation>
-<translation id="3254772308201947812">Da, sem za</translation>
 <translation id="3264544094376351444">Neserifna pisava</translation>
 <translation id="3264547943200567728">Nastavitev omrežja za Chromebox ni uspela</translation>
 <translation id="3264582393905923483">Kontekst</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Razvrsti po</translation>
 <translation id="3737274407993947948">Napaka pri nameščanju Linuxa …</translation>
 <translation id="3737536731758327622">Tu so prikazani prenosi</translation>
-<translation id="3738671331307774213">Če preverite identiteto, bodo vaši zasebni podatki na varnem</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Želite odpreti aplikacijo <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859">Naprava <ph name="DEVICE_NAME" /> bo zdaj vidna v skrbniški konzoli</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sinhronizacija je zaustavljena</translation>
 <translation id="3860381078714302691">Pozdravljeni v storitvi Hangouts Meet</translation>
+<translation id="3861241522664181545">Stran je zaustavljena.</translation>
 <translation id="3862134173397075045">Pozdravljeni v doživetju predvajanja v Chromu.</translation>
 <translation id="3862788408946266506">Aplikacijo z atributom manifesta »kiosk_only« je treba namestiti v načinu kioska sistema OS Chrome</translation>
 <translation id="3865414814144988605">Ločljivost</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Če želite to vklopiti, <ph name="BEGIN_LINK" />ponastavite sinhronizacijo<ph name="END_LINK" />, da odstranite geslo za sinhronizacijo</translation>
 <translation id="3878840326289104869">Ustvarjanje zaščitenega uporabnika</translation>
 <translation id="3879748587602334249">Upravitelj prenosov</translation>
-<translation id="3880709822663530586">Varnostni ključ deluje le, ko je v napravi vklopljen Bluetooth</translation>
 <translation id="3888550877729210209">Ustvarjanje zapiskov z aplikacijo <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Dodaj OpenVPN/L2TP ...</translation>
 <translation id="3893536212201235195">Branje in spreminjanje nastavitev funkcij za ljudi s posebnimi potrebami</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Varni modul se pripravlja, počakajte (to bo morda trajalo nekaj minut) ...</translation>
 <translation id="4099060993766194518">Želite obnoviti privzeti iskalnik?</translation>
 <translation id="4100733287846229632">V napravi kritično primanjkuje prostora</translation>
+<translation id="4103091233824664032">Vnesite geslo, če želite konfigurirati zaklepanje zaslona in prijavo</translation>
 <translation id="4104163789986725820">I&amp;zvozi ...</translation>
 <translation id="4105563239298244027">Zagotovite si 1 TB brezplačnega prostora za shranjevanje v storitvi Google Drive</translation>
 <translation id="4107048419833779140">Prepoznavanje in izmet naprav za shranjevanje</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Nočna svetloba se bo samodejno izklopila ob sončnem vzhodu.</translation>
 <translation id="4138267921960073861">Prikaži uporabniška imena in fotografije na prijavnem zaslonu</translation>
 <translation id="4144218403971135344">Boljša kakovost videoposnetkov in prihranek energije v akumulatorju. Videoposnetki se bodo predvajali samo na zaslonu, ki podpira Google Cast.</translation>
-<translation id="414599683948988413">Uporabite varnostni ključ z vmesnikom USB</translation>
 <translation id="4146026355784316281">Vedno odpri s sistemskim pregledovalnikom</translation>
 <translation id="4146785383423576110">Ponastavitev in čiščenje</translation>
 <translation id="4147897805161313378">Google Foto</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Onemogoči</translation>
 <translation id="4400367121200150367">Mesta, ki nikoli ne shranjujejo gesel, bodo prikazana tukaj</translation>
 <translation id="4400632832271803360">Če želite spremeniti delovanje tipk v zgornji vrstici, pridržite tipko za zaganjalnik</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">&amp;Pomoč</translation>
 <translation id="4409697491990005945">Robovi</translation>
 <translation id="4411578466613447185">Podpisnik kode</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome lahko poišče škodljivo programsko opremo v računalniku in jo odstrani</translation>
 <translation id="4481530544597605423">Naprave, za katere je bila preklicana seznanitev</translation>
 <translation id="4482194545587547824">Google lahko vašo zgodovino brskanja uporabi za prilagajanje Iskanja Google in drugih Googlovih storitev</translation>
+<translation id="4493287891836751813">Spoznajte Pomočnika Google</translation>
 <translation id="4495419450179050807">Ne pokaži na tej strani</translation>
 <translation id="4499718683476608392">Omogoči samodejno izpolnjevanje za kreditne kartice za izpolnjevanje obrazcev z enim klikom</translation>
 <translation id="4500114933761911433">Vtičnik <ph name="PLUGIN_NAME" /> se je zrušil</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Izklop zvoka zavihka</translation>
 <translation id="4742746985488890273">Pripni na polico</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Preberite, kako posodobite aplikacije<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Sporočila</translation>
 <translation id="4746971725921104503">Videti je, da že upravljate uporabnika s tem imenom. Ali želite <ph name="LINK_START" />uvoziti uporabnika <ph name="USER_DISPLAY_NAME" /> v to napravo<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Zahteva razširitev iz Spletne trgovine Chrome</translation>
 <translation id="4750394297954878236">Predlogi</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Profiliranje je omogočeno</translation>
 <translation id="4823484602432206655">Branje in spreminjanje nastavitev funkcij za ljudi s posebnimi potrebami</translation>
 <translation id="4823651846660089135">Naprava je samo za branje</translation>
+<translation id="4823955295535347797">Do Pomočnika lahko dostopate, kadar koli izgovorite »OK Google«, ko je zaslon vklopljen.</translation>
 <translation id="4828937774870308359">Avstralsko</translation>
 <translation id="4829768588131278040">Nastavi kodo PIN</translation>
 <translation id="4830502475412647084">Nameščanje posodobitve operacijskega sistema</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Pomagajte našim tehnikom preučiti in odpraviti to zrušitev. Natančno navedite svoje korake, če lahko. Pomembna je vsaka podrobnost.</translation>
 <translation id="4876895919560854374">Zaklepanje in odklepanje zaslona</translation>
 <translation id="4877017884043316611">Seznanjanje s Chromeboxom</translation>
+<translation id="4879491255372875719">Samodejno (privzeto)</translation>
 <translation id="4880214202172289027">Drsnik za glasnost</translation>
 <translation id="4880328057631981605">Ime dostopne točke</translation>
 <translation id="4880520557730313061">Samodejno popravi</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">gor</translation>
 <translation id="5100114659116077956">Chromebox se mora posodobiti, da bodo na voljo najnovejše funkcije.</translation>
 <translation id="5101042277149003567">Odpri vse zaznamke</translation>
-<translation id="5104546332954397226">Uporabite telefon kot varnostni ključ</translation>
 <translation id="5105855035535475848">Pripni zavihke</translation>
 <translation id="5108967062857032718">Nastavitve – odstranitev aplikacij za Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">&amp;Znova odpri zaprt zavihek</translation>
 <translation id="52912272896845572">Datoteka z zasebnim ključem je neveljavna.</translation>
 <translation id="529175790091471945">Formatiraj to napravo</translation>
-<translation id="5292195676005197571">Pri večini ključev morate za uporabo samo pritisniti gumb</translation>
 <translation id="5293170712604732402">Ponastavitev nastavitev na privzete nastavitve</translation>
 <translation id="5297082477358294722">Geslo je shranjeno. Shranjena gesla si lahko ogledate in jih upravljate tukaj: <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Avtor teme</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Strinjam se</translation>
 <translation id="532943162177641444">Dotaknite se obvestila v telefonu <ph name="PHONE_NAME" />, če želite nastaviti mobilno dostopno točko, ki jo lahko uporablja ta naprava.</translation>
 <translation id="5329858601952122676">&amp;Izbriši</translation>
+<translation id="5329945517224105597">Pomočnik vam lahko ponudi ustreznejše predloge in določena dejanja, povezana z vsebino vašega zaslona. To lahko spremenite v nastavitvah Pomočnika.</translation>
 <translation id="5330145655348521461">Te datoteke so odprte na drugem namizju. Če si jih želite ogledati, preklopite na uporabnika <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />).</translation>
 <translation id="5330512191124428349">Pridobi podatke</translation>
 <translation id="5331069282670671859">V tej kategoriji nimate potrdil</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Dovoli spletnim mestom predvajanje zvoka</translation>
 <translation id="5390284375844109566">Indeksirana zbirka podatkov</translation>
 <translation id="5390743329570580756">Pošlji po</translation>
-<translation id="5392327114396848796">Uporabite vgrajen varnostni ključ</translation>
 <translation id="5397794290049113714">Vi</translation>
 <translation id="5398572795982417028">Sklic na stran zunaj dovoljenega razpona, omejitev je <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Oglasi blokirani</translation>
@@ -3077,6 +3071,7 @@
    <ph name="LINE_BREAKS" />
    Zaprite vse datoteke v arhivu ali navideznem disku, nato poskusite znova.</translation>
 <translation id="5687326903064479980">Časovni pas</translation>
+<translation id="568824803367507355">Zaznavanje »OK Google«</translation>
 <translation id="5689516760719285838">Lokacija</translation>
 <translation id="56907980372820799">Poveži podatke</translation>
 <translation id="5691511426247308406">Družina</translation>
@@ -3174,7 +3169,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – snemanje fotoaparata ali mikrofona</translation>
 <translation id="5835754902560991078">izjemno kratka (0,6 s)</translation>
 <translation id="5838456317242088717">Trenutna seja brez beleženja zgodovine</translation>
-<translation id="5842053879378944309">Uporaba varnostnega ključa USB z aplikacijo <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Omogočanje Bluetootha</translation>
 <translation id="5843250171025351504">Naprava ne ustreza več skrbniški zahtevi za najstarejšo dovoljeno različico odjemalca. Če se želite prijaviti, jo posodobite.</translation>
 <translation id="5846929185714966548">Zavihek 4</translation>
@@ -3492,7 +3486,6 @@
 <translation id="6317318380444133405">Ni več podprto.</translation>
 <translation id="6317369057005134371">Čakanje na okno aplikacije …</translation>
 <translation id="6318407754858604988">Prenos se je začel</translation>
-<translation id="6322653941595359182">Prejemanje in pošiljanje sporočil SMS s Chromebookom</translation>
 <translation id="6324916366299863871">Urejanje bližnjice</translation>
 <translation id="6325191661371220117">Onemogoči samodejni zagon</translation>
 <translation id="6326175484149238433">Odstrani iz Chroma</translation>
@@ -3536,6 +3529,7 @@
 <translation id="6395423953133416962">Pošlji <ph name="BEGIN_LINK1" />podatke o sistemu<ph name="END_LINK1" /> in <ph name="BEGIN_LINK2" />meritve<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Možnosti sinhronizacije in prilagajanja</translation>
 <translation id="6397592254427394018">Vse zaznamke odpri v &amp;oknu brez beleženja zgodovine</translation>
+<translation id="639777613761517128">Če želite datoteke odpirati z aplikacijo $1, jih najprej kopirajte v mapo z datotekami za Linux.</translation>
 <translation id="6398715114293939307">Odstranitev Trgovine Google Play</translation>
 <translation id="6398765197997659313">Izhod iz celozaslonskega načina</translation>
 <translation id="6399774419735315745">Vohunka</translation>
@@ -3561,7 +3555,6 @@
 <translation id="642282551015776456">Tega imena ne morete uporabiti kot ime za datoteko ali mapo</translation>
 <translation id="642469772702851743">To napravo (serijska številka: <ph name="SERIAL_NUMBER" />) je zaklenil lastnik.</translation>
 <translation id="6426200009596957090">Odpri nastavitve ChromeVoxa</translation>
-<translation id="6427415464407526111">Izbira varnostnega ključa</translation>
 <translation id="6429384232893414837">Napaka glede posodobitve</translation>
 <translation id="6430814529589430811">Base64 kodiran ASCII, enojno potrdilo</translation>
 <translation id="6431217872648827691">Vsi podatki so bili šifrirani z vašim geslom za Google od <ph name="TIME" />.</translation>
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Način za razvijalce</translation>
 <translation id="6655458902729017087">Skrij račune</translation>
 <translation id="6657585470893396449">Geslo</translation>
-<translation id="6658023813581644008">Če želite nastaviti funkcijo Smart Lock za prijavo, vnesite geslo</translation>
 <translation id="6659213950629089752">To stran je povečala razširitev »<ph name="NAME" />«</translation>
 <translation id="6659594942844771486">Tabulator</translation>
 <translation id="6664237456442406323">Vaš računalnik je konfiguriran s popačenim ID-jem strojne opreme. Zaradi tega Chrome OS ne more namestiti najnovejših varnostnih popravkov in vaš računalnik <ph name="BEGIN_BOLD" />je lahko še bolj izpostavljen zlonamernim napadom<ph name="END_BOLD" />.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Pregled informacij o sistemu</translation>
 <translation id="6886871292305414135">Odpri povezavo v novem &amp;zavihku</translation>
 <translation id="6892812721183419409">Odpri povezavo kot <ph name="USER" /></translation>
-<translation id="6896398788631624004">Priklopite varnostni ključ in ga aktivirajte</translation>
 <translation id="6896758677409633944">Kopiraj</translation>
 <translation id="6898440773573063262">Aplikacije za kiosk je zdaj mogoče konfigurirati tako, da se v tej napravi samodejno zaženejo.</translation>
 <translation id="6898699227549475383">Organizacija (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Uporabnik:</translation>
 <translation id="6916590542764765824">Upravljanje razširitev</translation>
 <translation id="6920989436227028121">Odpri kot navaden zavihek</translation>
+<translation id="6921709132208495314">Ustavitev prenosa podatkov na tej strani</translation>
 <translation id="6922128026973287222">Z Google Varčevanjem s podatki varčujete s podatki in brskate hitreje. Kliknite, če želite izvedeti več.</translation>
 <translation id="6923132443355966645">Drsenje/klikanje</translation>
 <translation id="6930242544192836755">Trajanje</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">V redu</translation>
 <translation id="6965648386495488594">Vrata</translation>
 <translation id="6965978654500191972">Naprava</translation>
+<translation id="6968288415730398122">Vnesite geslo, če želite konfigurirati zaklepanje zaslona</translation>
 <translation id="6970480684834282392">Vrsta zagona</translation>
 <translation id="6970856801391541997">Natisni določene strani</translation>
 <translation id="6972180789171089114">Zvok/video</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Iskalniki</translation>
 <translation id="6978611942794658017">Ta datoteka je namenjena za računalnike s programsko opremo Windows in ni združljiva z vašo napravo, ki uporablja Chrome OS. V Spletni trgovini Chrome poiščite ustrezno nadomestno aplikacijo.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Izklop zvoka (privzeto)</translation>
 <translation id="6979737339423435258">Od začetka</translation>
 <translation id="6980462514016882061">Google lahko vašo zgodovino brskanja uporabi za prilagajanje Iskanja Google, oglasov in drugih Googlovih storitev.</translation>
 <translation id="6981982820502123353">Dostopnost</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />To so splošni podatki o napravi in tem, kako jo uporabljate (na primer raven napolnjenosti akumulatorja, raba aplikacij in omrežne povezave). Uporabljeni bodo za izboljšanje Googlovih izdelkov in storitev za vse. Nekateri združeni podatki bodo pomagali tudi partnerjem, na primer razvijalcem za Android, pri izboljšanju aplikacij in izdelkov.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Izklop te funkcije ne vpliva na zmožnost naprave, da pošilja podatke, potrebne za ključne storitve, kot so posodobitve in varnost sistema.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />To funkcijo je mogoče nadzirati v »Nastavitve &gt; Google«. V meniju izberite »Uporaba in diagnostični podatki«.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">V računu smo našli toliko aplikacij, ki jih je mogoče uporabljati v tej napravi: <ph name="NUMBER_OF_APPS" />.</translation>
 <translation id="7199158086730159431">Pomoč</translation>
 <translation id="7200083590239651963">Izbira konfiguracije</translation>
 <translation id="720110658997053098">Ta naprava naj bo trajno v načinu kioska</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Zaklepanje zaslona in prijava</translation>
 <translation id="7229570126336867161">Potreben je EVDO</translation>
 <translation id="7230787553283372882">Prilagajanje velikosti besedila</translation>
-<translation id="7231589788477569369">S temi nastavitvami si zagotovite celovito izkušnjo Pomočnika</translation>
 <translation id="7232750842195536390">Preimenovanje ni uspelo</translation>
 <translation id="7234406375359457793">Napaka pri vpenjanju datotečnega sredstva v skupni rabi. Določeno datotečno sredstvo v skupni rabi ni podprto.</translation>
 <translation id="7238585580608191973">Prstni odtis SHA-256</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Brisanje in odjava</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (najboljša)</translation>
 <translation id="7246339268451149667">Želite omogočiti odklepanje s prstnim odtisom?</translation>
-<translation id="7246489301073081944">Držite |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| + |<ph name="ACCELERATOR3" />| za izhod</translation>
 <translation id="7246947237293279874">Proxy FTP</translation>
 <translation id="725109152065019550">Skrbnik je žal onemogočil zunanji pomnilnik v vašem računu.</translation>
 <translation id="7253521419891527137">Več o tem</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Preveri primernost</translation>
 <translation id="749028671485790643">Oseba <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Naslov MAC</translation>
-<translation id="7490950320178383728">Uporabite varnostni ključ z vmesnikom Bluetooth</translation>
 <translation id="7491962110804786152">tabulatorka</translation>
 <translation id="7493386493263658176">Razširitev <ph name="EXTENSION_NAME" /> bo morda lahko beležila vse besedilo, ki ga vnesete, vključno z osebnimi podatki, kot so gesla in številke kreditnih kartic. Ali jo želite uporabiti?</translation>
 <translation id="7494065396242762445">Odpiranje nastavitev sistema Windows</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">Te datoteke v storitvi Google Drive še niso v skupni rabi</translation>
 <translation id="7851457902707056880">Prijava je omejena na račun lastnika. Znova zaženite napravo in se prijavite z računom lastnika. Naprava se bo samodejno znova zagnala čez 30 sekund.</translation>
 <translation id="7851716364080026749">Vedno blokiraj dostop do kamere in mikrofona</translation>
-<translation id="7851816139220202929">Uporabite varnostni ključ z vmesnikom NFC</translation>
 <translation id="7853747251428735">Več &amp;orodij</translation>
 <translation id="7856006446339184955">Pošiljanje podatkov o sistemu. Ta naprava trenutno samodejno pošilja diagnostične podatke ter podatke o uporabi naprav in aplikacij Googlu. To <ph name="BEGIN_LINK1" />nastavitev<ph name="END_LINK1" /> je uveljavil lastnik. Če ste vklopili dodatno dejavnost v spletu in aplikacijah, bodo ti podatki shranjeni v računu, tako da jih lahko upravljate v Moji dejavnosti. <ph name="BEGIN_LINK2" />Več o tem<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Dodaj izjemo</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">Preverjanje pristnosti PPP ni uspelo zaradi napačnega uporabniškega imena ali gesla</translation>
 <translation id="7974566588408714340">Poskusi znova z razširitvijo <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Upodabljanje čez rob zaslona</translation>
+<translation id="79766959863778284">Storitev osamljene naprave XR</translation>
 <translation id="7977551819349545646">Posodabljanje Chromeboxa ...</translation>
 <translation id="7978412674231730200">Zasebni ključ</translation>
 <translation id="7978450511781612192">S tem boste odjavljeni iz Google Računov. Zaznamki, zgodovina, gesla in drugi podatki ne bodo več sinhronizirani.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Dodajanje tiskalnika</translation>
 <translation id="8032244173881942855">Zavihka ni mogoče predvajati.</translation>
 <translation id="8033827949643255796">izbrani</translation>
-<translation id="8033958968890501070">Potek časovne omejitve</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Odpiranje vseh v &amp;oknu brez beleženja zgodovine}=1{Odpiranje v &amp;oknu brez beleženja zgodovine}one{Odpiranje vseh (#) v &amp;oknu brez beleženja zgodovine}two{Odpiranje vseh (#) v &amp;oknu brez beleženja zgodovine}few{Odpiranje vseh (#) v &amp;oknu brez beleženja zgodovine}other{Odpiranje vseh (#) v &amp;oknu brez beleženja zgodovine}}</translation>
 <translation id="8037117027592400564">Branje in izgovarjava vsega besedila z uporabo sintetiziranega govora</translation>
 <translation id="8037357227543935929">Zahteva (privzeto)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Vaš celotni zaslon</translation>
 <translation id="8322814362483282060">Tej strani je onemogočen dostop do mikrofona.</translation>
 <translation id="8326478304147373412">PKCS #7, veriga potrdil</translation>
+<translation id="8327039559959785305">Napaka pri vpenjanju datotek za Linux. Poskusite znova.</translation>
 <translation id="8329978297633540474">Golo besedilo</translation>
 <translation id="8335587457941836791">Odpenjanje s police</translation>
 <translation id="8336153091935557858">Včeraj <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">Spremeni</translation>
 <translation id="8425492902634685834">Pripni v opravilno vrstico</translation>
 <translation id="8425755597197517046">&amp;Prilepi in išči</translation>
-<translation id="8426117172745886547">Opozorilo pred izhodom (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Omogočanje</translation>
 <translation id="8427292751741042100">vdelano v katerem koli gostitelju</translation>
 <translation id="8428213095426709021">Nastavitve</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">Licence</translation>
 <translation id="8553342806078037065">Upravljanje drugih oseb</translation>
 <translation id="8554899698005018844">Brez jezika</translation>
-<translation id="8557347704037207368">Pošiljanje obvestil iz storitve Messages za splet za Android</translation>
 <translation id="855773602626431402">Vtičniku brez varnostnih omejitev je bilo preprečeno izvajanje na tej strani.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Slikovni dekodirnik</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">Konec podpore</translation>
 <translation id="8714838604780058252">Grafika v ozadju</translation>
 <translation id="8715480913140015283">Zavihek v ozadju uporablja kamero</translation>
+<translation id="8716931980467311658">Želite izbrisati vse aplikacije in podatke za Linux iz mape z datotekami za Linux v tej napravi <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Prenos vtičnika <ph name="PLUGIN_NAME" /> ni uspel</translation>
 <translation id="8723829621484579639">Podokvirji za način brez beleženja zgodovine za: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Pokaži v mapi</translation>
@@ -5206,7 +5197,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – zrušitev</translation>
 <translation id="8983677657449185470">Pomagajte izboljšati Varno brskanje</translation>
 <translation id="8984654317541110628">URL datotečnega sredstva v skupni rabi</translation>
-<translation id="8984872292925913496">Poiščite šestmestno kodo PIN na hrbtni strani ključa</translation>
 <translation id="8986362086234534611">Pozabi</translation>
 <translation id="8986494364107987395">Samodejno pošlji statistične podatke o uporabi in poročila o zrušitvah Googlu</translation>
 <translation id="8987927404178983737">Mesec</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 84300a9d..c64ac34b 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Истакни објекат помоћу фокуса тастатуре када се промени</translation>
 <translation id="1173894706177603556">Преименуј</translation>
 <translation id="1174073918202301297">Пречица је додата</translation>
-<translation id="1174808551768282258">Откључајте Chromebook помоћу телефона. <ph name="LINK_BEGIN" />Сазнајте више.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Одштампај...</translation>
 <translation id="117624967391683467">Копирање датотеке <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google може да персонализује Претрагу, огласе и друге Google услуге помоћу историје прегледања. То подешавање можете да промените у било ком тренутку на myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Паузирај</translation>
 <translation id="1181037720776840403">Уклони</translation>
 <translation id="1183237619868651138">Није успело инсталирање датотеке <ph name="EXTERNAL_CRX_FILE" /> у локалном кешу.</translation>
-<translation id="1183378459020939734">Да ли сте спремни да упарите безбедносни кључ?</translation>
 <translation id="1185924365081634987">Можете да покушате и да <ph name="GUEST_SIGNIN_LINK_START" />прегледате као гост<ph name="GUEST_SIGNIN_LINK_END" /> да бисте исправили ову грешку на мрежи.</translation>
 <translation id="1186771945450942097">Уклони штетан софтвер</translation>
 <translation id="1187722533808055681">Буђења из стања мировања</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Није пронађен ниједан Bluetooth уређај</translation>
 <translation id="1306606229401759371">Промени подешавања</translation>
 <translation id="1307559529304613120">Упс! Систем није успео да сачува ознаку дугорочног приступа API-ју за овај уређај.</translation>
+<translation id="1307931752636661898">Приказ Linux датотека није успео</translation>
 <translation id="1313405956111467313">Аутоматска конфигурација проксија</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Обележивачи, историја и друга подешавања се синхронизују са Google налогом.</translation>
@@ -364,6 +363,7 @@
 <translation id="1530838837447122178">Отвори подешавања уређаја за миш и тачпед</translation>
 <translation id="1531004739673299060">Прозор за апликацију</translation>
 <translation id="15373452373711364">Велики курсор</translation>
+<translation id="1538729222189715449">Отварају се Linux датотеке…</translation>
 <translation id="1540605929960647700">Омогућите режим демонстрације</translation>
 <translation id="1543284117603151572">Увезени из Edge-а</translation>
 <translation id="1545177026077493356">Аутоматски режим киоска</translation>
@@ -539,7 +539,6 @@
 <translation id="1782530111891678861">Промена режима додирног дисплеја у игри</translation>
 <translation id="1784849162047402014">Уређају понестаје простора на диску</translation>
 <translation id="1786636458339910689">Дискови тимова</translation>
-<translation id="1792161662640298233">Безбедносни кључ се верификује</translation>
 <translation id="1792619191750875668">Проширени приказ</translation>
 <translation id="1794791083288629568">Шаљи повратне информације као помоћ за решавање овог проблема.</translation>
 <translation id="1795214765651529549">Користи класичну</translation>
@@ -622,7 +621,6 @@
 <translation id="1910721550319506122">Добро дошли!</translation>
 <translation id="1914326953223720820">Услуга за отпакивање датотека</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">У зависности од подешавања налога, коришћење Помоћника ће можда бити ограничено на ствари као што су резултати са веба, шале и локалне информације.</translation>
 <translation id="1916502483199172559">Подразумевани црвени аватар</translation>
 <translation id="1918141783557917887">&amp;Мање</translation>
 <translation id="1919345977826869612">Огласи</translation>
@@ -791,6 +789,7 @@
 <translation id="2178098616815594724">Додатна компонента <ph name="PEPPER_PLUGIN_NAME" /> на домену <ph name="PEPPER_PLUGIN_DOMAIN" /> жели да приступи рачунару</translation>
 <translation id="2178614541317717477">CA је компромитован</translation>
 <translation id="218070003709087997">Наведите број примерака за штампање (1 до 999).</translation>
+<translation id="2184515124301515068">Нека Chrome одабере када сајтови могу да пусте звук (препоручено)</translation>
 <translation id="2187895286714876935">Грешка при увозу серверског сертификата</translation>
 <translation id="2187906491731510095">Додаци су ажурирани</translation>
 <translation id="2188881192257509750">Отвори <ph name="APPLICATION" /></translation>
@@ -835,6 +834,7 @@
 <translation id="2241053333139545397">Читање и мењање података на више веб-сајтова</translation>
 <translation id="2242687258748107519">Информације о датотеци</translation>
 <translation id="2243194103992005307">Да бисте уклонили апликације, идите у одељак Подешавања &gt; Апликације или Менаџер апликација. Додирните апликацију коју желите да деинсталирате (можда ћете морати да превучете надесно или налево да бисте пронашли апликацију). Онда додирните Деинсталирај или Онемогући.</translation>
+<translation id="224940702122312781">Ова страница ће користити доста података.</translation>
 <translation id="2249605167705922988">нпр. 1–5, 8, 11–13</translation>
 <translation id="2251218783371366160">Отвори помоћу системског приказивача</translation>
 <translation id="225163402930830576">Освежи мреже</translation>
@@ -875,14 +875,13 @@
 <translation id="2307462900900812319">Конфигуриши мрежу</translation>
 <translation id="230927227160767054">Ова страница жели да инсталира обрађивача услуге.</translation>
 <translation id="2309620859903500144">Овом сајту је забрањен приступ сензорима за покрет или светло.</translation>
-<translation id="2311075084924370935">Да би вам помогао да организујете календар, подсетнике, летове и друго, Помоћнику је потребан приступ активностима на вебу и у апликацијама, информацијама о уређају и гласовним и аудио активностима.</translation>
+<translation id="2315414688463285945">Грешка при конфигурисању Linux датотека. Пробајте поново.</translation>
 <translation id="2315821125498993513">Повезивање са телефоном није успело. <ph name="LINK_BEGIN" />Сазнајте више.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Не, хвала</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% је готово</translation>
 <translation id="2318143611928805047">Величина папира</translation>
 <translation id="2318817390901984578">Да бисте користили Android апликације, напуните и ажурирајте <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Актуелна сесија без архивирања (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Користите безбедносни кључ са апликацијом <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Заглавља и подножја</translation>
 <translation id="2325650632570794183">Овај тип датотеке није подржан. Посетите Chrome веб-продавницу и пронађите апликацију која може да отвара овај тип датотеке.</translation>
 <translation id="2326931316514688470">&amp;Поново учитај апликацију</translation>
@@ -916,7 +915,6 @@
 <translation id="2367199180085172140">Додајте дељење датотека</translation>
 <translation id="2367972762794486313">Прикажите апликације</translation>
 <translation id="2369536625682139252">Сви подаци које <ph name="SITE" /> сачува биће избрисани осим колачића.</translation>
-<translation id="237058345584060620">Упарите кључ са овим уређајем да бисте га користили за пријављивање на налог</translation>
 <translation id="2371076942591664043">Отвори кад буде &amp;довршено</translation>
 <translation id="2377319039870049694">Пређи на приказ листе</translation>
 <translation id="2377667304966270281">Грешке у вези са хард-диском</translation>
@@ -983,7 +981,6 @@
 <translation id="248861575772995840">Не можемо да пронађемо телефон. Проверите да ли је на <ph name="DEVICE_TYPE" />-у укључен Bluetooth. &lt;a&gt;Сазнајте више&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Додај &amp;директоријум...</translation>
 <translation id="249113932447298600">Жао нам је, уређај <ph name="DEVICE_LABEL" /> тренутно није подржан.</translation>
-<translation id="2492040222276243256">Притисните дугме на безбедносном кључу и задржите га најмање 5 секунди</translation>
 <translation id="2493021387995458222">Избор опције „једна по једна реч“</translation>
 <translation id="249303669840926644">Није могуће довршити регистрацију</translation>
 <translation id="2495777824269688114">Откријте још функција или добијте одговоре. Изаберите „?“ да бисте добили помоћ.</translation>
@@ -1053,6 +1050,7 @@
 <translation id="2580924999637585241">Укупно: <ph name="NUMBER_OF_SHEETS" /><ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Дуго</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Платформа <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Ова картица дели екран.</translation>
 <translation id="2586657967955657006">Меморија</translation>
 <translation id="2586672484245266891">Унесите краћи URL</translation>
 <translation id="2587922270115112871">Прављење корисника под надзором не подразумева отварање Google налога, па подешавања и подаци тих корисника неће бити доступни на другим уређајима на којима је омогућена Chrome синхронизација. Корисник под надзором постоји само на овом уређају.</translation>
@@ -1087,7 +1085,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> користи <ph name="USAGE" /> MB простора на диску.</translation>
 <translation id="2633212996805280240">Желите ли да уклоните „<ph name="EXTENSION_NAME" />“?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> није могао да доврши инсталацију, али ће наставити да се покреће са слике диска.</translation>
-<translation id="2633326789677284179">Пронађите одштампани назив на позадини кључа</translation>
 <translation id="2635276683026132559">Потписивање</translation>
 <translation id="2636625531157955190">Chrome не може да приступи слици.</translation>
 <translation id="2638087589890736295">За почетак синхронизације је потребна приступна фраза</translation>
@@ -1255,7 +1252,6 @@
 <translation id="287286579981869940">Додај <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Да би вам лозинке биле доступне на свим уређајима, пријавите се у Chrome.</translation>
 <translation id="2875698561019555027">(Chrome странице са грешкама)</translation>
-<translation id="2876441201733326392">Користи USB безбедносни кључ</translation>
 <translation id="288042212351694283">Приступ универзалним уређајима за 2. фактор</translation>
 <translation id="2881966438216424900">Последњи приступ:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> ће се одмах поново покренути и ресетовати</translation>
@@ -1323,7 +1319,6 @@
 <translation id="2982970937345031">Пошаљи извештај анонимно</translation>
 <translation id="2984337792991268709">Данас у <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Спречено је да ова страница у потпуности контролише MIDI уређаје.</translation>
-<translation id="2988599644347283908">Напомена: Подаци које контролишу ова подешавања могу да се чувају и користе у било којој Google услузи у којој сте пријављени да бисте имали персонализовани доживљај и видели корисне огласе. Податке можете да прегледате, избришете и промените на account.google.com.</translation>
 <translation id="2989474696604907455">није прикључено</translation>
 <translation id="2989786307324390836">Бинарна датотека шифрована методом „DER“, један сертификат</translation>
 <translation id="2993517869960930405">Информације о апликацији</translation>
@@ -1376,7 +1371,6 @@
 <translation id="304826556400666995">Укључи звук картица</translation>
 <translation id="3053013834507634016">Употреба кључа сертификата</translation>
 <translation id="3057861065630527966">Направите резервне копије слика и видео снимака</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Омогући услугу Изаберите за говор</translation>
 <translation id="3061707000357573562">Услуга крпљења</translation>
 <translation id="3064410671692449875">Недовољно података</translation>
@@ -1405,7 +1399,6 @@
 <translation id="3090819949319990166">Није успело копирање спољне crx датотеке у датотеку <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Упарили сте „<ph name="DEVICE_NAME" />“</translation>
 <translation id="3101709781009526431">Датум и време</translation>
-<translation id="3104900172193317662">Дозволите употребу безбедносног кључа</translation>
 <translation id="310671807099593501">Сајт користи Bluetooth</translation>
 <translation id="3115128645424181617">Не можемо да пронађемо телефон. Проверите да ли је у близини и да ли је Bluetooth укључен.</translation>
 <translation id="3115147772012638511">Чека се кеш меморија...</translation>
@@ -1489,7 +1482,6 @@
 <translation id="3251759466064201842">&lt;Није део сертификата&gt;</translation>
 <translation id="3254434849914415189">Изаберите подразумевану апликацију за датотеке <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Аутоматско откривање временске зоне је онемогућено</translation>
-<translation id="3254772308201947812">Да, омогући</translation>
 <translation id="3264544094376351444">Фонт Sans-serif</translation>
 <translation id="3264547943200567728">Нисмо успели да подесимо мрежу Chromebox-а</translation>
 <translation id="3264582393905923483">Контекст</translation>
@@ -1812,7 +1804,6 @@
 <translation id="3735740477244556633">Сортирај према</translation>
 <translation id="3737274407993947948">Грешка при инсталирању Linux-а...</translation>
 <translation id="3737536731758327622">Преузимања ће се приказивати овде</translation>
-<translation id="3738671331307774213">Потврда идентитета помаже у заштити приватних података</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Желите ли да отворите <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> ће се сада приказивати у Admin Console</translation>
@@ -1906,6 +1897,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: синхронизација је паузирана</translation>
 <translation id="3860381078714302691">Добро дошли у Hangouts Meet</translation>
+<translation id="3861241522664181545">Страница је паузирана.</translation>
 <translation id="3862134173397075045">Добро дошли у Cast доживљај у Chrome-у!</translation>
 <translation id="3862788408946266506">Апликација са атрибутом манифеста „kiosk_only“ мора да се инсталира у режиму киоска у Chrome ОС-у</translation>
 <translation id="3865414814144988605">Резолуција</translation>
@@ -1920,7 +1912,6 @@
 <translation id="3873315167136380065">Да бисте укључили ово, <ph name="BEGIN_LINK" />ресетујте синхронизацију<ph name="END_LINK" /> да бисте уклонили приступну фразу за синхронизацију</translation>
 <translation id="3878840326289104869">Прављење корисника под надзором</translation>
 <translation id="3879748587602334249">Менаџер преузимања</translation>
-<translation id="3880709822663530586">Безбедносни кључ функционише када је Bluetooth уређаја укључен</translation>
 <translation id="3888550877729210209">Прављење бележака помоћу апликације <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Додај OpenVPN/L2TP...</translation>
 <translation id="3893536212201235195">Читање и мењање ваших подешавања приступачности</translation>
@@ -2066,6 +2057,7 @@
 <translation id="4096824249111507322">Безбедносни модул је у припреми. Сачекајте (ово може да потраје неколико минута)...</translation>
 <translation id="4099060993766194518">Желите да вратите подразумевани претраживач?</translation>
 <translation id="4100733287846229632">Простор на уређају је изузетно мали</translation>
+<translation id="4103091233824664032">Унесите лозинку да бисте конфигурисали закључавање екрана и пријављивање</translation>
 <translation id="4104163789986725820">И&amp;звези...</translation>
 <translation id="4105563239298244027">Набавите 1 TB бесплатно на Google диску</translation>
 <translation id="4107048419833779140">идентификује и избацује меморијске уређаје</translation>
@@ -2086,7 +2078,6 @@
 <translation id="4136203100490971508">Ноћно светло се аутоматски укључује када сунце изађе</translation>
 <translation id="4138267921960073861">Приказуј корисничка имена и слике на екрану за пријављивање</translation>
 <translation id="4144218403971135344">Пронађите видео садржај бољег квалитета и продужите трајање батерије. Видео ће се пуштати само на екрану који подржава Cast.</translation>
-<translation id="414599683948988413">Користите безбедносни кључ преко USB-а</translation>
 <translation id="4146026355784316281">Увек отварај помоћу системског приказивача</translation>
 <translation id="4146785383423576110">Ресетовање и чишћење</translation>
 <translation id="4147897805161313378">Google слике</translation>
@@ -2221,6 +2212,7 @@
 <translation id="4394049700291259645">Онемогући</translation>
 <translation id="4400367121200150367">Сајтови који никада не чувају лозинке ће се појавити овде</translation>
 <translation id="4400632832271803360">Задржите тастер за Покретач да бисте променили понашање тастера у горњем реду</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">П&amp;омоћ</translation>
 <translation id="4409697491990005945">Маргине</translation>
 <translation id="4411578466613447185">Потписник кода</translation>
@@ -2269,6 +2261,7 @@
 <translation id="4480590691557335796">Chrome може да пронађе штетан софтвер на рачунару и да га уклони</translation>
 <translation id="4481530544597605423">Уређаји чије је упаривање опозвано</translation>
 <translation id="4482194545587547824">Google може да користи историју прегледања за персонализацију Претраге и других Google услуга</translation>
+<translation id="4493287891836751813">Упознајте Google помоћник</translation>
 <translation id="4495419450179050807">Не приказуј на овој страници</translation>
 <translation id="4499718683476608392">Омогућава аутоматско попуњавање образаца подацима о кредитним картицама једним кликом</translation>
 <translation id="4500114933761911433">Додатна компонента <ph name="PLUGIN_NAME" /> је отказала</translation>
@@ -2429,6 +2422,7 @@
 <translation id="474217410105706308">Искључи звук картице</translation>
 <translation id="4742746985488890273">Закачи на полицу</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Сазнајте како да ажурирате апликације<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Поруке</translation>
 <translation id="4746971725921104503">Изгледа да већ управљате корисником са тим именом. Желите ли да <ph name="LINK_START" />увезете корисника <ph name="USER_DISPLAY_NAME" /> на овај уређај<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Захтева додатак из Chrome веб-продавнице</translation>
 <translation id="4750394297954878236">Предлози</translation>
@@ -2470,6 +2464,7 @@
 <translation id="4821935166599369261">&amp;Профилисање је омогућено</translation>
 <translation id="4823484602432206655">Читање и мењање подешавања корисника и уређаја</translation>
 <translation id="4823651846660089135">Уређај је само за читање</translation>
+<translation id="4823955295535347797">Приступите Помоћнику сваки пут када изговорите „Ок Google“ док је екран активан.</translation>
 <translation id="4828937774870308359">Аустралијски</translation>
 <translation id="4829768588131278040">Подеси PIN</translation>
 <translation id="4830502475412647084">Инсталира се ажурирање ОС-а</translation>
@@ -2510,6 +2505,7 @@
 <translation id="4876273079589074638">Помозите инжењерима да истраже и реше проблеме са отказивањем. Наведите тачне кораке ако можете. Ниједан детаљ није неважан!</translation>
 <translation id="4876895919560854374">Закључавање и откључавање екрана</translation>
 <translation id="4877017884043316611">Упарите са Chromebox-ом</translation>
+<translation id="4879491255372875719">Аутоматски (подразумевано)</translation>
 <translation id="4880214202172289027">Клизач за јачину звука</translation>
 <translation id="4880328057631981605">Назив приступне тачке</translation>
 <translation id="4880520557730313061">Аутоматски исправи</translation>
@@ -2663,7 +2659,6 @@
 <translation id="5099354524039520280">нагоре</translation>
 <translation id="5100114659116077956">Да бисмо вам омогућили најновије функције, Chromebox треба да се ажурира.</translation>
 <translation id="5101042277149003567">Отвори све обележиваче</translation>
-<translation id="5104546332954397226">Користите телефон као безбедносни кључ</translation>
 <translation id="5105855035535475848">Закачи картице</translation>
 <translation id="5108967062857032718">Подешавања – Уклони Android апликације</translation>
 <translation id="5109044022078737958">Мија</translation>
@@ -2794,7 +2789,6 @@
 <translation id="5288678174502918605">П&amp;оново отвори затворену картицу</translation>
 <translation id="52912272896845572">Датотека приватног кључа је неважећа.</translation>
 <translation id="529175790091471945">Форматирај овај уређај</translation>
-<translation id="5292195676005197571">Да бисте користили већину кључева, само притисните дугме</translation>
 <translation id="5293170712604732402">Вратите подешавања на првобитне подразумеване вредности</translation>
 <translation id="5297082477358294722">Лозинка је сачувана. Прегледајте сачуване лозинке и управљајте њима на <ph name="SAVED_PASSWORDS_STORE" />.</translation>
 <translation id="5298219193514155779">Тему је направио/ла</translation>
@@ -2820,6 +2814,7 @@
 <translation id="532776649628038357">Прихватам</translation>
 <translation id="532943162177641444">Додирните обавештење на телефону <ph name="PHONE_NAME" /> да бисте подесили мобилни хотспот који може да се користи на овом уређају.</translation>
 <translation id="5329858601952122676">&amp;Избриши</translation>
+<translation id="5329945517224105597">Помоћник може да понуди релевантније предлоге и конкретне радње у вези са садржајем екрана. То можете да промените у подешавањима Помоћника</translation>
 <translation id="5330145655348521461">Ове датотеке су отворене на другом профилу. Пређите на <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) да бисте их погледали.</translation>
 <translation id="5330512191124428349">Преузми податке</translation>
 <translation id="5331069282670671859">Немате ниједан сертификат у овој категорији</translation>
@@ -2864,7 +2859,6 @@
 <translation id="5390100381392048184">Дозволи сајтовима да пуштају звук</translation>
 <translation id="5390284375844109566">Индексирана база података</translation>
 <translation id="5390743329570580756">Пошаљи за:</translation>
-<translation id="5392327114396848796">Користите уграђени безбедносни кључ</translation>
 <translation id="5397794290049113714">Ви</translation>
 <translation id="5398572795982417028">Превелика референца за странице, ограничење је <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Огласи су блокирани</translation>
@@ -3073,6 +3067,7 @@
    <ph name="LINE_BREAKS" />
    Затворите све датотеке на архивском или виртуелном диску, па пробајте поново.</translation>
 <translation id="5687326903064479980">Временска зона</translation>
+<translation id="568824803367507355">Откривање фразе „Ок Google“</translation>
 <translation id="5689516760719285838">Локација</translation>
 <translation id="56907980372820799">Повежи податке</translation>
 <translation id="5691511426247308406">Породица</translation>
@@ -3171,7 +3166,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – Камера или микрофон снимају</translation>
 <translation id="5835754902560991078">изузетно кратко (0,6 с)</translation>
 <translation id="5838456317242088717">Актуелна сесија без архивирања</translation>
-<translation id="5842053879378944309">Користите USB безбедносни кључ са апликацијом <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Омогући Bluetooth</translation>
 <translation id="5843250171025351504">Уређај више није у складу са најстаријом верзијом клијента коју је навео администратор. Ажурирајте га да бисте се пријавили.</translation>
 <translation id="5846929185714966548">4. картица</translation>
@@ -3489,7 +3483,6 @@
 <translation id="6317318380444133405">Није више подржан.</translation>
 <translation id="6317369057005134371">Чека се прозор апликације...</translation>
 <translation id="6318407754858604988">Преузимање је започето</translation>
-<translation id="6322653941595359182">Шаљите и примајте SMS-ове помоћу Chromebook-а</translation>
 <translation id="6324916366299863871">Измени пречицу</translation>
 <translation id="6325191661371220117">Онемогући аутоматско покретање</translation>
 <translation id="6326175484149238433">Уклони из Chrome-а</translation>
@@ -3533,6 +3526,7 @@
 <translation id="6395423953133416962">Шаљи <ph name="BEGIN_LINK1" />информације<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />показатеље<ph name="END_LINK2" /> о систему</translation>
 <translation id="6397094776139756010">Опције синхронизације и персонализације</translation>
 <translation id="6397592254427394018">Отвори све обележиваче у &amp;прозору без архивирања</translation>
+<translation id="639777613761517128">Да бисте отварали датотеке помоћу апликације $1, прво их копирајте у директоријум Linux датотека.</translation>
 <translation id="6398715114293939307">Уклоните Google Play продавницу</translation>
 <translation id="6398765197997659313">Изађи из режима целог екрана</translation>
 <translation id="6399774419735315745">Шпијунка</translation>
@@ -3558,7 +3552,6 @@
 <translation id="642282551015776456">Овај назив не може да се користи као назив датотеке или директоријума</translation>
 <translation id="642469772702851743">Овај уређај (СБ: <ph name="SERIAL_NUMBER" />) је закључао власник.</translation>
 <translation id="6426200009596957090">Отвори подешавања ChromeVox-а</translation>
-<translation id="6427415464407526111">Изаберите безбедносни кључ</translation>
 <translation id="6429384232893414837">Грешка при ажурирању</translation>
 <translation id="6430814529589430811">ASCII датотека шифрована методом „Base64“, један сертификат</translation>
 <translation id="6431217872648827691">Сви подаци се шифрују помоћу Google лозинке од <ph name="TIME" /></translation>
@@ -3715,7 +3708,6 @@
 <translation id="6655190889273724601">Режим програмера</translation>
 <translation id="6655458902729017087">Сакриј налоге</translation>
 <translation id="6657585470893396449">Лозинка</translation>
-<translation id="6658023813581644008">Да бисте подесили Smart Lock за пријављивање, унесите лозинку</translation>
 <translation id="6659213950629089752">Ову страницу је зумирао додатак „<ph name="NAME" />“</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Нажалост, рачунар је конфигурисан помоћу погрешно направљеног ИД-а хардвера. То спречава Chrome ОС да се ажурира најновијим безбедносним исправкама и рачунар је <ph name="BEGIN_BOLD" />можда подложан злонамерним нападима<ph name="END_BOLD" />.</translation>
@@ -3851,7 +3843,6 @@
 <translation id="6885771755599377173">Преглед информација о систему</translation>
 <translation id="6886871292305414135">Отвори везу на новој &amp;картици</translation>
 <translation id="6892812721183419409">Отвори линк као <ph name="USER" /></translation>
-<translation id="6896398788631624004">Прикључите безбедносни кључ и активирајте га</translation>
 <translation id="6896758677409633944">Копирај</translation>
 <translation id="6898440773573063262">Киоск апликације сада могу да се конфигуришу тако да се аутоматски покрећу на овом уређају.</translation>
 <translation id="6898699227549475383">Организација (O)</translation>
@@ -3870,6 +3861,7 @@
 <translation id="6915804003454593391">Корисник:</translation>
 <translation id="6916590542764765824">Управљајте додацима</translation>
 <translation id="6920989436227028121">Отвори као уобичајену картицу</translation>
+<translation id="6921709132208495314">Прекини употребу података на овој страници</translation>
 <translation id="6922128026973287222">Уштедите на подацима и прегледајте брже помоћу Google уштеде података. Кликните да бисте сазнали више.</translation>
 <translation id="6923132443355966645">Померајте/кликните</translation>
 <translation id="6930242544192836755">Трајање</translation>
@@ -3892,6 +3884,7 @@
 <translation id="6965382102122355670">Потврди</translation>
 <translation id="6965648386495488594">Порт</translation>
 <translation id="6965978654500191972">Уређај</translation>
+<translation id="6968288415730398122">Унесите лозинку да бисте конфигурисали закључавање екрана</translation>
 <translation id="6970480684834282392">Тип покретања</translation>
 <translation id="6970856801391541997">Штампање посебних страница</translation>
 <translation id="6972180789171089114">Аудио/видео</translation>
@@ -3902,6 +3895,7 @@
 <translation id="6978121630131642226">Претраживачи</translation>
 <translation id="6978611942794658017">Датотека је осмишљена за рачунар који користи Windows софтвер. Није компатибилна са уређајем, који користи Chrome ОС. Претражите Chrome веб-продавницу да бисте нашли одговарајућу замену за апликацију.</translation>
 <translation id="6979158407327259162">Google диск</translation>
+<translation id="6979440798594660689">Искључен (подразумевано)</translation>
 <translation id="6979737339423435258">Одувек</translation>
 <translation id="6980462514016882061">Google може да користи историју прегледања за персонализацију Претраге, огласа и других Google услуга</translation>
 <translation id="6981982820502123353">Приступачност</translation>
@@ -4050,6 +4044,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Ово су опште информације о уређају и томе како га користите (нпр. ниво батерије, коришћење апликација и повезивање са мрежом). Подаци ће се користити за побољшавање Google производа и услуга за свакога. Неке збирне информације ће помоћи и партнерима, на пример Android програмерима, да побољшају своје апликације и производе.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Искључивање ове функције не утиче на могућност уређаја да шаље информације потребне за основне услуге попут ажурирања система и безбедности.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Ову функцију можете да контролишете ако одете у Подешавања &gt; Google. У менију изаберите Коришћење и дијагностика.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">На налогу смо пронашли апликације (<ph name="NUMBER_OF_APPS" />) које могу да се користе на овом уређају.</translation>
 <translation id="7199158086730159431">Потражи помоћ</translation>
 <translation id="7200083590239651963">Изаберите конфигурацију</translation>
 <translation id="720110658997053098">Трајно задржи овај уређај у режиму киоска</translation>
@@ -4070,7 +4065,6 @@
 <translation id="7228523857728654909">Закључавање екрана и пријављивање</translation>
 <translation id="7229570126336867161">Потребан је EVDO</translation>
 <translation id="7230787553283372882">Прилагодите величину текста</translation>
-<translation id="7231589788477569369">Доживите Помоћник на прави начин помоћу ових подешавања</translation>
 <translation id="7232750842195536390">Промена назива није успела</translation>
 <translation id="7234406375359457793">Грешка при учитавању дељене датотеке. Наведена дељена датотека није подржана.</translation>
 <translation id="7238585580608191973">SHA-256 Fingerprint</translation>
@@ -4080,7 +4074,6 @@
 <translation id="7243632151880336635">Обриши и одјави ме</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Најбоље)</translation>
 <translation id="7246339268451149667">Омогућити откључавање отиском прста?</translation>
-<translation id="7246489301073081944">Држите |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| да бисте изашли</translation>
 <translation id="7246947237293279874">FTP прокси</translation>
 <translation id="725109152065019550">Жао нам је, администратор је онемогућио спољну меморију на овом налогу.</translation>
 <translation id="7253521419891527137">&amp;Сазнајте више</translation>
@@ -4233,7 +4226,6 @@
 <translation id="7489605380874780575">Провери да ли испуњава услове</translation>
 <translation id="749028671485790643">Особа <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC адреса</translation>
-<translation id="7490950320178383728">Користи безбедносни кључ са Bluetooth-ом</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> ће прикупљати сав текст који унесете, укључујући личне податке, попут лозинки и бројева кредитних картица. Да ли желите да користите овај додатак?</translation>
 <translation id="7494065396242762445">Отвори подешавања за Windows</translation>
@@ -4483,7 +4475,6 @@
 <translation id="7850851215703745691">Ове датотеке на Диску се још увек не деле</translation>
 <translation id="7851457902707056880">Пријављивање је ограничено на власника налога. Покрените поново рачунар и пријавите се помоћу налога власника. Рачунар ће се аутоматски поново покренути за 30 секунди.</translation>
 <translation id="7851716364080026749">Увек блокирај приступ камери и микрофону</translation>
-<translation id="7851816139220202929">Користи безбедносни кључ са NFC-ом</translation>
 <translation id="7853747251428735">Још а&amp;латки</translation>
 <translation id="7856006446339184955">Шаљите податке о систему. Овај уређај тренутно аутоматски шаље Google-у дијагностичке податке, као и податке о коришћењу уређаја и апликација. Ово <ph name="BEGIN_LINK1" />подешавање<ph name="END_LINK1" /> примењује власник. Ако сте укључили додатне Активности на вебу и у апликацијама, ове информације ће се сачувати на вашем налогу, па можете да управљате њима у одељку Моје активности. <ph name="BEGIN_LINK2" />Сазнајте више<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Додај изузетак</translation>
@@ -4566,6 +4557,7 @@
 <translation id="7973962044839454485">Провера аутентичности преко протокола PPP није успела због нетачног корисничког имена или лозинке</translation>
 <translation id="7974566588408714340">Пробај поново помоћу <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Ивично подручје екрана</translation>
+<translation id="79766959863778284">XR услуга изолованог уређаја</translation>
 <translation id="7977551819349545646">Ажурира се Chromebox...</translation>
 <translation id="7978412674231730200">Приватни кључ</translation>
 <translation id="7978450511781612192">Овим ћете се одјавити са Google налога. Обележивачи, историја, лозинке и додатни садржај се више неће синхронизовати.</translation>
@@ -4616,7 +4608,6 @@
 <translation id="8030656706657716245">Додај штампач</translation>
 <translation id="8032244173881942855">Није успело пребацивање картице.</translation>
 <translation id="8033827949643255796">изабрано</translation>
-<translation id="8033958968890501070">Време је истекло</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Отвори све у &amp;прозору Без архивирања}=1{Отвори у &amp;прозору Без архивирања}one{Отвори све (#) у &amp;прозору Без архивирања}few{Отвори све (#) у &amp;прозору Без архивирања}other{Отвори све (#) у &amp;прозору Без архивирања}}</translation>
 <translation id="8037117027592400564">Читање свог текста изговореног помоћу синтетизованог говора</translation>
 <translation id="8037357227543935929">Питај (подразумевано)</translation>
@@ -4789,6 +4780,7 @@
 <translation id="8320459152843401447">Цео екран</translation>
 <translation id="8322814362483282060">Овој страници је забрањен приступ микрофону.</translation>
 <translation id="8326478304147373412">PKCS #7, ланац сертификата</translation>
+<translation id="8327039559959785305">Грешка при прикључивању Linux датотека. Пробајте поново.</translation>
 <translation id="8329978297633540474">Чисти текст</translation>
 <translation id="8335587457941836791">Откачи са полице</translation>
 <translation id="8336153091935557858">Јуче у <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4839,7 +4831,6 @@
 <translation id="8425213833346101688">Промени</translation>
 <translation id="8425492902634685834">Прикачи на траку задатака</translation>
 <translation id="8425755597197517046">На&amp;лепи и претражи</translation>
-<translation id="8426117172745886547">Упозори пре изласка (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Омогућава се</translation>
 <translation id="8427292751741042100">уграђено на било ком хосту</translation>
 <translation id="8428213095426709021">Подешавања</translation>
@@ -4927,7 +4918,6 @@
 <translation id="8551388862522347954">Лиценце</translation>
 <translation id="8553342806078037065">Управљање другим људима</translation>
 <translation id="8554899698005018844">Без језика</translation>
-<translation id="8557347704037207368">Шаље обавештења из Android веб-порука</translation>
 <translation id="855773602626431402">Спречено је покретање додатне компоненте која је изван заштићеног окружења на овој страници.</translation>
 <translation id="8557930019681227453">Манифест</translation>
 <translation id="8559694214572302298">Декодирање слика</translation>
@@ -5040,6 +5030,7 @@
 <translation id="8714154114375107944">Крај пружања подршке</translation>
 <translation id="8714838604780058252">Графика у позадини</translation>
 <translation id="8715480913140015283">Картица у позадини користи камеру</translation>
+<translation id="8716931980467311658">Желите ли да избришете све Linux апликације и податке у директоријуму Linux датотека на овом <ph name="DEVICE_TYPE" /> уређају?</translation>
 <translation id="8719653885894320876">Преузимање додатне компоненте <ph name="PLUGIN_NAME" /> није успело</translation>
 <translation id="8723829621484579639">Подоквири без архивирања за: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Прикажи у директоријуму</translation>
@@ -5203,7 +5194,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – Отказао је</translation>
 <translation id="8983677657449185470">Помозите нам да побољшамо Безбедно прегледање</translation>
 <translation id="8984654317541110628">URL дељења датотека</translation>
-<translation id="8984872292925913496">Пронађите 6-цифрени PIN на полеђини кључа</translation>
 <translation id="8986362086234534611">Заборави</translation>
 <translation id="8986494364107987395">Аутоматски шаљи Google-у статистичке податке о коришћењу и извештаје о отказивању</translation>
 <translation id="8987927404178983737">Месец</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 9a601ba..8d56a6d 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Markera objektet med tangentbordsfokus när det ändras</translation>
 <translation id="1173894706177603556">Ändra namn</translation>
 <translation id="1174073918202301297">Genvägen har lagts till</translation>
-<translation id="1174808551768282258">Lås upp Chomebook med mobilen. <ph name="LINK_BEGIN" />Läs mer.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">Skriv &amp;ut...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> kopieras ...</translation>
 <translation id="1177138678118607465">Google kan använda webbhistoriken för att anpassa Sök och andra tjänster från Google. Du kan ändra detta på myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Paus</translation>
 <translation id="1181037720776840403">Ta bort</translation>
 <translation id="1183237619868651138">Det går inte att installera <ph name="EXTERNAL_CRX_FILE" /> i det lokala cacheminnet.</translation>
-<translation id="1183378459020939734">Vill du parkoppla säkerhetsnyckeln nu?</translation>
 <translation id="1185924365081634987">Du kan också försöka lösa nätverksproblemet genom att <ph name="GUEST_SIGNIN_LINK_START" />surfa som gäst<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">Ta bort skadlig programvara</translation>
 <translation id="1187722533808055681">Antal gånger som systemets vänteprocess har väckts</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Inga Bluetooth-enheter hittades</translation>
 <translation id="1306606229401759371">Ändra inställningar</translation>
 <translation id="1307559529304613120">Hoppsan! Det gick inte att lagra någon långsiktig API-åtkomsttoken för den här enheten.</translation>
+<translation id="1307931752636661898">Det går inte att visa Linux-filer</translation>
 <translation id="1313405956111467313">Automatisk proxykonfiguration</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Bokmärken, historik och andra inställningar synkroniseras till ditt Google-konto.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Öppna enhetsinställningarna för mus och styrplatta</translation>
 <translation id="1531004739673299060">Appfönster</translation>
 <translation id="15373452373711364">Stor muspekare</translation>
+<translation id="1538729222189715449">Linux-filerna öppnas …</translation>
 <translation id="1540605929960647700">Aktivera demoläge</translation>
 <translation id="1543284117603151572">Importerade från Edge</translation>
 <translation id="1545177026077493356">Automatiskt kioskläge</translation>
@@ -541,7 +541,6 @@
 <translation id="1782530111891678861">Ändra tryckinställning för HUD</translation>
 <translation id="1784849162047402014">Enheten har ont om diskutrymme</translation>
 <translation id="1786636458339910689">Team Drive</translation>
-<translation id="1792161662640298233">Säkerhetsnyckeln verifieras</translation>
 <translation id="1792619191750875668">Utökad skärm</translation>
 <translation id="1794791083288629568">Skicka feedback som hjälper oss att åtgärda problemet.</translation>
 <translation id="1795214765651529549">Använd klassiskt</translation>
@@ -624,7 +623,6 @@
 <translation id="1910721550319506122">Välkommen!</translation>
 <translation id="1914326953223720820">Uppackningstjänst</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">Beroende på vilka kontoinställningar du har kan assistenten begränsas till saker som webbresultat, skämt och lokal information.</translation>
 <translation id="1916502483199172559">Röd standardavatar</translation>
 <translation id="1918141783557917887">&amp;Mindre</translation>
 <translation id="1919345977826869612">Annonser</translation>
@@ -793,6 +791,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> på <ph name="PEPPER_PLUGIN_DOMAIN" /> vill ha åtkomst till datorn</translation>
 <translation id="2178614541317717477">CA-kompromiss</translation>
 <translation id="218070003709087997">Använd ett nummer som anger hur många kopior som ska skrivas ut (1 till 999).</translation>
+<translation id="2184515124301515068">Låt Chrome välja när webbplatser kan spela upp ljud (rekommenderas)</translation>
 <translation id="2187895286714876935">Fel vid import av servercertifikat</translation>
 <translation id="2187906491731510095">Tillägg har uppdaterats</translation>
 <translation id="2188881192257509750">Öppna <ph name="APPLICATION" /></translation>
@@ -837,6 +836,7 @@
 <translation id="2241053333139545397">Läs och ändra dina uppgifter på ett antal webbplatser</translation>
 <translation id="2242687258748107519">Filinformation</translation>
 <translation id="2243194103992005307">Om du vill ta bort appar öppnar du Inställningar &gt; Appar eller Apphanteraren. Tryck sedan på appen du vill avinstallera (du kanske måste svepa åt höger eller vänster för att hitta appen). Tryck sedan på Avinstallera eller Inaktivera.</translation>
+<translation id="224940702122312781">Den här sidan använder mycket data.</translation>
 <translation id="2249605167705922988">till exempel 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Öppna med systemvisningsprogrammet</translation>
 <translation id="225163402930830576">Uppdatera nätverk</translation>
@@ -877,14 +877,13 @@
 <translation id="2307462900900812319">Konfigurera nätverk</translation>
 <translation id="230927227160767054">Den här sidan vill installera en tjänsthanterare.</translation>
 <translation id="2309620859903500144">Den här webbplatsen får inte använda enhetens rörelse- eller ljussensor.</translation>
-<translation id="2311075084924370935">Inställningarna för Webb- och appaktivitet, Enhetsinformation och Röst- och ljudaktivitet behövs om assistenten ska kunna hjälpa dig med kalendern, påminnelser, flygresor och annat.</translation>
+<translation id="2315414688463285945">Ett fel uppstod när Linux-filer skulle konfigureras. Försök igen.</translation>
 <translation id="2315821125498993513">Det gick inte att ansluta till mobilen. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Nej tack</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % klart</translation>
 <translation id="2318143611928805047">Pappersstorlek</translation>
 <translation id="2318817390901984578">Ladda och uppdatera <ph name="DEVICE_TYPE" /> om du vill använda Android-appar.</translation>
 <translation id="2318923050469484167">Nuvarande inkognitosession (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Använd säkerhetsnyckeln med <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Sidhuvuden och sidfötter</translation>
 <translation id="2325650632570794183">Filtypen stöds inte. Besök Chrome Web Store om du vill hitta en app som kan öppna den här filtypen.</translation>
 <translation id="2326931316514688470">&amp;Läs in appen igen</translation>
@@ -918,7 +917,6 @@
 <translation id="2367199180085172140">Lägg till File Share</translation>
 <translation id="2367972762794486313">Visa appar</translation>
 <translation id="2369536625682139252">All data som sparats av <ph name="SITE" /> tas bort utom cookies.</translation>
-<translation id="237058345584060620">Parkoppla nyckeln till den här enheten så att du kan logga in på ditt konto med den</translation>
 <translation id="2371076942591664043">Öppna när nedladdning är &amp;klar</translation>
 <translation id="2377319039870049694">Byt till listvy</translation>
 <translation id="2377667304966270281">Sidfel</translation>
@@ -985,7 +983,6 @@
 <translation id="248861575772995840">Mobilen hittades inte. Kontrollera att Bluetooth är aktiverat på <ph name="DEVICE_TYPE" />. &lt;a&gt;Läs mer&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Lägg till &amp;mapp ...</translation>
 <translation id="249113932447298600">Enheten <ph name="DEVICE_LABEL" /> stöds inte just nu.</translation>
-<translation id="2492040222276243256">Håll knappen på säkerhetsnyckeln nedtryckt i minst fem sekunder</translation>
 <translation id="2493021387995458222">Välj ”ett ord i taget”</translation>
 <translation id="249303669840926644">Det gick inte att slutföra registreringen</translation>
 <translation id="2495777824269688114">Upptäck nya funktioner eller få svar på frågor. Välj ? om du behöver hjälp.</translation>
@@ -1055,6 +1052,7 @@
 <translation id="2580924999637585241">Totalt: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Lång</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Plattform <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Den här fliken delar din skärm.</translation>
 <translation id="2586657967955657006">Urklipp</translation>
 <translation id="2586672484245266891">Ange en kortare webbadress</translation>
 <translation id="2587922270115112871">Inget Google-konto skapas när en kontrollerad användare skapas och användarens inställningar
@@ -1090,7 +1088,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> använder <ph name="USAGE" /> MB diskutrymme.</translation>
 <translation id="2633212996805280240">Vill du ta bort <ph name="EXTENSION_NAME" />?</translation>
 <translation id="263325223718984101">Installationen av <ph name="PRODUCT_NAME" /> kunde inte slutföras, men programmet kommer att fortsätta köras från diskavbildningen.</translation>
-<translation id="2633326789677284179">Leta reda på namnet som står på nyckelns baksida</translation>
 <translation id="2635276683026132559">Signering</translation>
 <translation id="2636625531157955190">Chrome har inte åtkomst till bilden.</translation>
 <translation id="2638087589890736295">Lösenfras krävs för att starta synkroniseringen</translation>
@@ -1258,7 +1255,6 @@
 <translation id="287286579981869940">Lägg till <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Logga in i Chrome om du vill få tillgång till lösenorden på alla enheter.</translation>
 <translation id="2875698561019555027">(Felsidor i Chrome)</translation>
-<translation id="2876441201733326392">Använd USB-säkerhetsnyckeln</translation>
 <translation id="288042212351694283">Åtkomst till dina Universal 2nd Factor-enheter</translation>
 <translation id="2881966438216424900">Senast öppnad:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> startar om och återställs tillfälligt</translation>
@@ -1326,7 +1322,6 @@
 <translation id="2982970937345031">Rapportera anonymt</translation>
 <translation id="2984337792991268709">Idag kl. <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Sidan har blockerats från fullständig kontroll över MIDI-enheter.</translation>
-<translation id="2988599644347283908">Obs! För att ge dig en anpassad upplevelse och visa användbara annonser kan den data som styrs av dessa inställningar sparas och användas i alla Googles tjänster när du är inloggad. Du kan visa din data, radera den och ändra inställningarna på account.google.com.</translation>
 <translation id="2989474696604907455">inte ansluten</translation>
 <translation id="2989786307324390836">DER-kodat binärt enstaka certifikat</translation>
 <translation id="2993517869960930405">Appinformation</translation>
@@ -1379,7 +1374,6 @@
 <translation id="304826556400666995">Slå på ljud från flikar</translation>
 <translation id="3053013834507634016">Certifikatnyckelanvändning</translation>
 <translation id="3057861065630527966">Säkerhetskopiera foton och videor</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Aktivera Textuppläsning</translation>
 <translation id="3061707000357573562">Tjänst för programkorrigering</translation>
 <translation id="3064410671692449875">Otillräckligt med data</translation>
@@ -1408,7 +1402,6 @@
 <translation id="3090819949319990166">Det går inte att kopiera den externa CRX-filen till <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558"><ph name="DEVICE_NAME" /> har kopplats</translation>
 <translation id="3101709781009526431">Datum och tid</translation>
-<translation id="3104900172193317662">Tillåt att säkerhetsnyckeln används</translation>
 <translation id="310671807099593501">Webbplatsen använder Bluetooth</translation>
 <translation id="3115128645424181617">Mobilen hittades inte. Den måste finnas i närheten och Bluetooth måste vara på.</translation>
 <translation id="3115147772012638511">Väntar på cache-minnet...</translation>
@@ -1492,7 +1485,6 @@
 <translation id="3251759466064201842">&lt;ingår inte i certifikat&gt;</translation>
 <translation id="3254434849914415189">Välj standardapp för <ph name="FILE_TYPE" />-filer:</translation>
 <translation id="3254516606912442756">Funktionen för att automatiskt identifiera tidzon är inaktiverad</translation>
-<translation id="3254772308201947812">Ja</translation>
 <translation id="3264544094376351444">Sans serif-teckensnitt</translation>
 <translation id="3264547943200567728">Det gick inte att konfigurera nätverket för Chromebox</translation>
 <translation id="3264582393905923483">Sammanhang</translation>
@@ -1815,7 +1807,6 @@
 <translation id="3735740477244556633">Sortera efter</translation>
 <translation id="3737274407993947948">Det gick inte att installera Linux …</translation>
 <translation id="3737536731758327622">Det du laddar ned visas här</translation>
-<translation id="3738671331307774213">Skydda privata uppgifter genom att verifiera din identitet</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Vill du öppna <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> visas nu i administratörskonsolen</translation>
@@ -1909,6 +1900,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Synkroniseringen har pausats</translation>
 <translation id="3860381078714302691">Välkommen till Hangouts Meet</translation>
+<translation id="3861241522664181545">Sidan har pausats.</translation>
 <translation id="3862134173397075045">Välkommen till Cast-upplevelsen i Chrome!</translation>
 <translation id="3862788408946266506">En app med manifestattributet kiosk_only måste installeras i kioskläget i Chrome OS</translation>
 <translation id="3865414814144988605">Upplösning</translation>
@@ -1923,7 +1915,6 @@
 <translation id="3873315167136380065"><ph name="BEGIN_LINK" />Återställ synkroniseringen<ph name="END_LINK" /> så att lösenfrasen för synkronisering tas bort om du vill aktivera detta</translation>
 <translation id="3878840326289104869">Skapar kontrollerad användare</translation>
 <translation id="3879748587602334249">Nedladdningshanterare</translation>
-<translation id="3880709822663530586">Säkerhetsnyckeln fungerar bara när Bluetooth har aktiverats på enheten</translation>
 <translation id="3888550877729210209">Antecknar med <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Lägg till OpenVPN/L2TP …</translation>
 <translation id="3893536212201235195">Läsa och ändra tillgänglighetsinställningarna</translation>
@@ -2069,6 +2060,7 @@
 <translation id="4096824249111507322">Vänta medan den säkra modulen förbereds (det kan ta några minuter) …</translation>
 <translation id="4099060993766194518">Vill du återställa standardinställningen för sökmotorn?</translation>
 <translation id="4100733287846229632">Mycket ont om utrymme på enheten</translation>
+<translation id="4103091233824664032">Ange lösenordet om du vill konfigurera skärmlåset och logga in</translation>
 <translation id="4104163789986725820">E&amp;xportera...</translation>
 <translation id="4105563239298244027">Få 1 TB gratis med Google Drive</translation>
 <translation id="4107048419833779140">Identifiera och mata ut lagringsenheter</translation>
@@ -2089,7 +2081,6 @@
 <translation id="4136203100490971508">Nattljuset släcks automatiskt vid soluppgången</translation>
 <translation id="4138267921960073861">Visa användarnamn och foton på inloggningssidan</translation>
 <translation id="4144218403971135344">Få bättre videokvalitet och spara på batteriet. Videor spelas bara upp på den Cast-kompatibla skärmen.</translation>
-<translation id="414599683948988413">Använd säkerhetsnyckeln med USB</translation>
 <translation id="4146026355784316281">Öppna alltid med systemets visningsprogram</translation>
 <translation id="4146785383423576110">Återställ och rensa</translation>
 <translation id="4147897805161313378">Google Foto</translation>
@@ -2224,6 +2215,7 @@
 <translation id="4394049700291259645">Inaktivera</translation>
 <translation id="4400367121200150367">Webbplatser som aldrig sparar lösenord visas här</translation>
 <translation id="4400632832271803360">Håll ned starttangenten om du vill ändra hur tangenterna på översta raden fungerar</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">H&amp;jälp</translation>
 <translation id="4409697491990005945">Marginaler</translation>
 <translation id="4411578466613447185">Kodsigneringscertifikat</translation>
@@ -2272,6 +2264,7 @@
 <translation id="4480590691557335796">Chrome kan hjälpa dig att upptäcka skadlig programvara på datorn och ta bort den</translation>
 <translation id="4481530544597605423">Frånkopplade enheter</translation>
 <translation id="4482194545587547824">Google kan använda webbhistoriken för att anpassa Sök och andra tjänster från Google.</translation>
+<translation id="4493287891836751813">Det här är Google Assistent</translation>
 <translation id="4495419450179050807">Visa inte den här sidan</translation>
 <translation id="4499718683476608392">Aktivera Autofyll för kreditkort och fyll i formulär med ett enda klick</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> har kraschat</translation>
@@ -2432,6 +2425,7 @@
 <translation id="474217410105706308">Stäng av ljud från flik</translation>
 <translation id="4742746985488890273">Fäst på hyllan</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Läs mer om hur du uppdaterar appar<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Meddelanden</translation>
 <translation id="4746971725921104503">Det verkar som att du redan hanterar en användare med det namnet. Ville du <ph name="LINK_START" />importera <ph name="USER_DISPLAY_NAME" /> till den här enheten<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Ett tillägg från Chrome Web Store krävs</translation>
 <translation id="4750394297954878236">Förslag</translation>
@@ -2473,6 +2467,7 @@
 <translation id="4821935166599369261">&amp;Profilering aktiverad</translation>
 <translation id="4823484602432206655">Läsa och ändra användarinställningar och enhetsinställningar</translation>
 <translation id="4823651846660089135">Enheten är skrivskyddad</translation>
+<translation id="4823955295535347797">Starta assistenten när du säger ”Ok Google” och skärmen är aktiverad.</translation>
 <translation id="4828937774870308359">Australiensisk</translation>
 <translation id="4829768588131278040">Konfigurera pinkod</translation>
 <translation id="4830502475412647084">Uppdateringen för operativsystemet installeras</translation>
@@ -2513,6 +2508,7 @@
 <translation id="4876273079589074638">Hjälp våra ingenjörer att undersöka och åtgärda den här kraschen. Ange de exakta stegen om du kan. Ingen detalj är för liten.</translation>
 <translation id="4876895919560854374">Låsa och låsa upp skärmen</translation>
 <translation id="4877017884043316611">Koppla till Chromebox</translation>
+<translation id="4879491255372875719">Automatiskt (standard)</translation>
 <translation id="4880214202172289027">Volymreglage</translation>
 <translation id="4880328057631981605">Namn på åtkomstpunkt (APN)</translation>
 <translation id="4880520557730313061">Åtgärda automatiskt</translation>
@@ -2666,7 +2662,6 @@
 <translation id="5099354524039520280">upp</translation>
 <translation id="5100114659116077956">Din Chromebox måste uppdateras för att du ska få de senaste funktionerna.</translation>
 <translation id="5101042277149003567">Öppna alla bokmärken</translation>
-<translation id="5104546332954397226">Använd mobilen som säkerhetsnyckel</translation>
 <translation id="5105855035535475848">Fäst flikar</translation>
 <translation id="5108967062857032718">Inställningar – ta bort Android-appar</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2797,7 +2792,6 @@
 <translation id="5288678174502918605">Ö&amp;ppna en stängd flik igen</translation>
 <translation id="52912272896845572">Den privata nyckelfilen är ogiltig.</translation>
 <translation id="529175790091471945">Formatera enheten</translation>
-<translation id="5292195676005197571">På de flesta nycklar trycker du bara på knappen</translation>
 <translation id="5293170712604732402">Återställ inställningarna till standardinställningarna</translation>
 <translation id="5297082477358294722">Lösenordet sparades. Visa och hantera sparade lösenord i <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="5298219193514155779">Temat skapades av</translation>
@@ -2823,6 +2817,7 @@
 <translation id="532776649628038357">Jag godkänner</translation>
 <translation id="532943162177641444">Konfigurera den trådlösa surfzonen som den här enheten ska kunna använda genom att trycka på aviseringen på din <ph name="PHONE_NAME" />.</translation>
 <translation id="5329858601952122676">&amp;Ta bort</translation>
+<translation id="5329945517224105597">Assistenten kan ge dig mer användbara förslag och specifika åtgärder som är relaterade till det som visas på skärmen. Du kan ändra detta under inställningarna för assistenten.</translation>
 <translation id="5330145655348521461">Filerna öppnades på ett annat skrivbord. Byt till <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) om du vill visa dem.</translation>
 <translation id="5330512191124428349">Mer information</translation>
 <translation id="5331069282670671859">Du har inga certifikat i den här kategorin</translation>
@@ -2867,7 +2862,6 @@
 <translation id="5390100381392048184">Tillåt att ljud spelas upp på webbplatser</translation>
 <translation id="5390284375844109566">Indexerad databas</translation>
 <translation id="5390743329570580756">Skicka för</translation>
-<translation id="5392327114396848796">Använd en inbyggd säkerhetsnyckel</translation>
 <translation id="5397794290049113714">Du</translation>
 <translation id="5398572795982417028">Sidreferensen faller utanför intervallet. Gränsen är <ph name="MAXIMUM_PAGE" />.</translation>
 <translation id="5398772614898833570">Annonser blockeras</translation>
@@ -3075,6 +3069,7 @@
    <ph name="LINE_BREAKS" />
    Stäng alla filer i arkivet eller på den virtuella hårddisken och försök igen.</translation>
 <translation id="5687326903064479980">Tidszon</translation>
+<translation id="568824803367507355">Identifiering av ”Ok Google”</translation>
 <translation id="5689516760719285838">Plats</translation>
 <translation id="56907980372820799">Länkdata</translation>
 <translation id="5691511426247308406">Familj</translation>
@@ -3172,7 +3167,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – kameran eller mikrofonen spelar in</translation>
 <translation id="5835754902560991078">extremt kort (0,6 s)</translation>
 <translation id="5838456317242088717">Nuvarande inkognitosession</translation>
-<translation id="5842053879378944309">Använd USB-säkerhetsnyckeln med <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Aktivera Bluetooth</translation>
 <translation id="5843250171025351504">Enheten uppfyller inte längre kraven för lägsta klientversion som har angetts av administratören. Uppdatera om du vill logga in.</translation>
 <translation id="5846929185714966548">Flik 4</translation>
@@ -3490,7 +3484,6 @@
 <translation id="6317318380444133405">Stöds inte längre.</translation>
 <translation id="6317369057005134371">Väntar på appfönstret ...</translation>
 <translation id="6318407754858604988">Nedladdning påbörjad</translation>
-<translation id="6322653941595359182">Skicka och ta emot sms på Chromebook</translation>
 <translation id="6324916366299863871">Redigera genväg</translation>
 <translation id="6325191661371220117">Inaktivera automatisk start</translation>
 <translation id="6326175484149238433">Ta bort från Chrome</translation>
@@ -3534,6 +3527,7 @@
 <translation id="6395423953133416962">Skicka <ph name="BEGIN_LINK1" />systeminformation<ph name="END_LINK1" /> och <ph name="BEGIN_LINK2" />statistik<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Alternativ för synkronisering och anpassning</translation>
 <translation id="6397592254427394018">Öppna alla bokmärken i ett &amp;inkognitofönster</translation>
+<translation id="639777613761517128">Kopiera filer som du vill öppna med $1 till mappen med Linux-filer först.</translation>
 <translation id="6398715114293939307">Ta bort Google Play Butik</translation>
 <translation id="6398765197997659313">Avsluta helskärmsläge</translation>
 <translation id="6399774419735315745">Spion</translation>
@@ -3559,7 +3553,6 @@
 <translation id="642282551015776456">Det här namnet får inte användas som namn på en fil eller mapp</translation>
 <translation id="642469772702851743">Enheten (serienr: <ph name="SERIAL_NUMBER" />) har låsts av ägaren.</translation>
 <translation id="6426200009596957090">Öppna ChromeVox-inställningarna</translation>
-<translation id="6427415464407526111">Välj säkerhetsnyckel</translation>
 <translation id="6429384232893414837">Uppdateringsfel</translation>
 <translation id="6430814529589430811">Base64-kodad ASCII, enstaka certifikat</translation>
 <translation id="6431217872648827691">Alla data krypterades med ditt Google-lösenord den
@@ -3717,7 +3710,6 @@
 <translation id="6655190889273724601">Programmerarläge</translation>
 <translation id="6655458902729017087">Dölj konton</translation>
 <translation id="6657585470893396449">Lösenord</translation>
-<translation id="6658023813581644008">Ange ditt lösenord om du vill konfigurera Smart Lock för inloggning</translation>
 <translation id="6659213950629089752">Den här sidan har zoomats in med tillägget <ph name="NAME" /></translation>
 <translation id="6659594942844771486">Flik</translation>
 <translation id="6664237456442406323">Tyvärr är din dator konfigurerad med ett felaktigt maskinvaru-ID. Detta förhindrar att Chrome OS uppdateras med de senaste säkerhetskorrigeringarna och datorn <ph name="BEGIN_BOLD" />kan vara utsatt för skadlig programvara<ph name="END_BOLD" />.</translation>
@@ -3853,7 +3845,6 @@
 <translation id="6885771755599377173">Förhandsgranska systeminformation</translation>
 <translation id="6886871292305414135">Öppna länk i ny &amp;flik</translation>
 <translation id="6892812721183419409">Öppna länk som <ph name="USER" /></translation>
-<translation id="6896398788631624004">Sätt i säkerhetsnyckeln och aktivera den</translation>
 <translation id="6896758677409633944">Kopiera</translation>
 <translation id="6898440773573063262">Nu går det att konfigurera kioskappar så att de startas automatiskt på den här enheten.</translation>
 <translation id="6898699227549475383">Organisation (O)</translation>
@@ -3872,6 +3863,7 @@
 <translation id="6915804003454593391">Användare:</translation>
 <translation id="6916590542764765824">Hantera tillägg</translation>
 <translation id="6920989436227028121">Öppna som en vanlig flik</translation>
+<translation id="6921709132208495314">Sluta använda data på den här sidan</translation>
 <translation id="6922128026973287222">Spara data och bläddra snabbare med Google Databesparing. Klicka här om du vill veta mer.</translation>
 <translation id="6923132443355966645">Rulla/klicka</translation>
 <translation id="6930242544192836755">Varaktighet</translation>
@@ -3894,6 +3886,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Port</translation>
 <translation id="6965978654500191972">Enhet</translation>
+<translation id="6968288415730398122">Ange lösenordet om du vill konfigurera skärmlås</translation>
 <translation id="6970480684834282392">Starttyp</translation>
 <translation id="6970856801391541997">Skriv ut vissa sidor</translation>
 <translation id="6972180789171089114">Ljud/video</translation>
@@ -3904,6 +3897,7 @@
 <translation id="6978121630131642226">Sökmotorer</translation>
 <translation id="6978611942794658017">Den här filen är avsedd för en dator med Windows-programvara. Den är inte kompatibel med din enhet, som har Chrome OS. Sök efter en lämplig ersättningsapp i Chrome Web Store.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Ljud av (standard)</translation>
 <translation id="6979737339423435258">Genom tiderna</translation>
 <translation id="6980462514016882061">Google kan anpassa Sök, annonser och andra Google-tjänster utifrån webbhistoriken.</translation>
 <translation id="6981982820502123353">Tillgänglighet</translation>
@@ -4052,6 +4046,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Detta är allmän information om din enhet och hur du använder den (till exempel batterinivå, appanvändning och nätverksanslutning). Med hjälp av dessa uppgifter kan vi förbättra Googles produkter och tjänster för alla. En del sammanställd information kan även hjälpa våra partner, till exempel Android-utvecklare, att förbättra sina appar och produkter.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Enheten kan fortfarande skicka den information som behövs för viktiga tjänster, som systemuppdateringar och säkerhet, även om du inaktiverar funktionen.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Du kan styra funktionen under Inställningar &gt; Google. Välj Användning och diagnostik i menyn.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Vi hittade <ph name="NUMBER_OF_APPS" /> appar i ditt konto som kan användas på den här enheten.</translation>
 <translation id="7199158086730159431">Få h&amp;jälp</translation>
 <translation id="7200083590239651963">Välj konfiguration</translation>
 <translation id="720110658997053098">Behåll enheten permanent i kioskläge</translation>
@@ -4072,7 +4067,6 @@
 <translation id="7228523857728654909">Skärmlås och inloggning</translation>
 <translation id="7229570126336867161">Behöver EVDO</translation>
 <translation id="7230787553283372882">Anpassa textstorleken</translation>
-<translation id="7231589788477569369">Med de här inställningarna får du ut mesta möjliga av assistenten</translation>
 <translation id="7232750842195536390">Det gick inte att byta namn</translation>
 <translation id="7234406375359457793">Det gick inte att montera den delade resursen. Den angivna resursen stöds inte.</translation>
 <translation id="7238585580608191973">SHA-256-fingeravtryck</translation>
@@ -4082,7 +4076,6 @@
 <translation id="7243632151880336635">Rensa och logga ut</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (bäst)</translation>
 <translation id="7246339268451149667">Vill du aktivera upplåsning med fingeravtryck?</translation>
-<translation id="7246489301073081944">Håll ned |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| för att stänga av</translation>
 <translation id="7246947237293279874">FTP-proxy</translation>
 <translation id="725109152065019550">Administratören har inaktiverat extern lagring för ditt konto.</translation>
 <translation id="7253521419891527137">&amp;Läs mer</translation>
@@ -4235,7 +4228,6 @@
 <translation id="7489605380874780575">Kontrollera behörighet</translation>
 <translation id="749028671485790643">Person <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC-adress</translation>
-<translation id="7490950320178383728">Använd säkerhetsnyckeln med Bluetooth</translation>
 <translation id="7491962110804786152">tabb</translation>
 <translation id="7493386493263658176">Tillägget <ph name="EXTENSION_NAME" /> kan samla in all text du skriver, inklusive personlig information som lösenord och kreditkortsnummer. Vill du fortsätta att använda tillägget?</translation>
 <translation id="7494065396242762445">Öppna Windows-inställningar</translation>
@@ -4485,7 +4477,6 @@
 <translation id="7850851215703745691">Dessa filer i Drive delas inte ännu</translation>
 <translation id="7851457902707056880">Inloggning kan bara göras med ägarkontot. Starta om och logga in med ägarkontot. Datorn kommer att startas om automatiskt om 30 sekunder.</translation>
 <translation id="7851716364080026749">Blockera alltid åtkomst till kamera och mikrofon</translation>
-<translation id="7851816139220202929">Använd säkerhetsnyckeln med NFC</translation>
 <translation id="7853747251428735">Fler verk&amp;tyg</translation>
 <translation id="7856006446339184955">Skicka systemdata. Skicka automatiskt diagnostik- och användningsdata för enheten och appar till Google. Ägaren har låst <ph name="BEGIN_LINK1" />inställningen<ph name="END_LINK1" />. Om du har aktiverat ytterligare webb- och appaktivitet lagras den informationen i kontot så att du kan hantera den på sidan Min aktivitet. <ph name="BEGIN_LINK2" />Läs mer<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Lägg till undantag</translation>
@@ -4568,6 +4559,7 @@
 <translation id="7973962044839454485">PPP-autentisering misslyckades på grund av felaktigt användarnamn eller lösenord</translation>
 <translation id="7974566588408714340">Försök igen med <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Överskanning</translation>
+<translation id="79766959863778284">XR Isolated Device Service</translation>
 <translation id="7977551819349545646">Uppdaterar Chromebox ...</translation>
 <translation id="7978412674231730200">Privat nyckel</translation>
 <translation id="7978450511781612192">Du loggas ut från dina Google-konton. Bokmärken, historik, lösenord och annan information synkroniseras inte längre.</translation>
@@ -4618,7 +4610,6 @@
 <translation id="8030656706657716245">Lägg till skrivare</translation>
 <translation id="8032244173881942855">Det gick inte att casta fliken.</translation>
 <translation id="8033827949643255796">markerat</translation>
-<translation id="8033958968890501070">Tidsgränsen överskreds</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Öppna alla i ett &amp;inkognitofönster}=1{Öppna i ett &amp;inkognitofönster}other{Öppna alla (#) i ett &amp;inkognitofönster}}</translation>
 <translation id="8037117027592400564">Läsa all text som läses upp med syntetiskt tal</translation>
 <translation id="8037357227543935929">Fråga (standard)</translation>
@@ -4791,6 +4782,7 @@
 <translation id="8320459152843401447">Hela skärmen</translation>
 <translation id="8322814362483282060">Den här sidan har blockerats och kan inte komma åt mikrofonen.</translation>
 <translation id="8326478304147373412">PKCS #7, certifikatkedja</translation>
+<translation id="8327039559959785305">Ett fel uppstod när Linux-filer skulle monteras. Försök igen.</translation>
 <translation id="8329978297633540474">Oformaterad text</translation>
 <translation id="8335587457941836791">Ta bort från hyllan</translation>
 <translation id="8336153091935557858">Igår kl. <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4841,7 +4833,6 @@
 <translation id="8425213833346101688">Ändra</translation>
 <translation id="8425492902634685834">Fäst i aktivitetsfältet</translation>
 <translation id="8425755597197517046">Kl&amp;istra in och sök</translation>
-<translation id="8426117172745886547">Få en varning innan du avslutar (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Aktiveras</translation>
 <translation id="8427292751741042100">inbäddad på någon värd</translation>
 <translation id="8428213095426709021">Inställningar</translation>
@@ -4929,7 +4920,6 @@
 <translation id="8551388862522347954">Licenser</translation>
 <translation id="8553342806078037065">Hantera andra personer</translation>
 <translation id="8554899698005018844">Inget språk</translation>
-<translation id="8557347704037207368">Skicka aviseringar till dig från Android Messages för webben</translation>
 <translation id="855773602626431402">Ett pluginprogram utanför sandlådan hindrades från att köras på den här sidan.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Bildavkodare</translation>
@@ -5042,6 +5032,7 @@
 <translation id="8714154114375107944">Supportlivscykeln har upphört</translation>
 <translation id="8714838604780058252">Bakgrundsgrafik</translation>
 <translation id="8715480913140015283">En flik i bakgrunden använder kameran</translation>
+<translation id="8716931980467311658">Vill du radera alla Linux-program och all data i mappen för Linux-filer från denna <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Det gick inte att ladda ned <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Underordnade ramar i inkognitoläge för: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">Visa i &amp;mapp</translation>
@@ -5205,7 +5196,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – kraschat</translation>
 <translation id="8983677657449185470">Bidra till att förbättra Säker webbsökning</translation>
 <translation id="8984654317541110628">Webbadress för filresurs</translation>
-<translation id="8984872292925913496">Titta efter den sexsiffriga pinkoden på nyckelns baksida</translation>
 <translation id="8986362086234534611">Glöm</translation>
 <translation id="8986494364107987395">Skicka användningsstatistik och kraschrapporter till Google automatiskt</translation>
 <translation id="8987927404178983737">Månad</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index b7e145bd..84fb7b2 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Angazia kipengee kilicholengwa kwa kibodi kinapobadilika</translation>
 <translation id="1173894706177603556">Ipe jina jipya</translation>
 <translation id="1174073918202301297">Njia ya mkato imeongezwa</translation>
-<translation id="1174808551768282258">Fungua Chromebook ukitumia simu yako. <ph name="LINK_BEGIN" />Pata maelezo zaidi.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Chapisha...</translation>
 <translation id="117624967391683467">Inanakili <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google inaweza kutumia historia yako ya kuvinjari kuweka mapendeleo kwenye huduma za Tafuta, matangazo na huduma nyingine za Google. Unaweza kubadilisha hali hii wakati wowote katika myaccountgoogle.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Sitisha</translation>
 <translation id="1181037720776840403">Ondoa</translation>
 <translation id="1183237619868651138">Haiwezi kusakinisha <ph name="EXTERNAL_CRX_FILE" /> katika akiba ya ndani.</translation>
-<translation id="1183378459020939734">Uko tayari kuoanisha Ufunguo wako wa Usalama?</translation>
 <translation id="1185924365081634987">Pia unaweza kujaribu <ph name="GUEST_SIGNIN_LINK_START" />kuvinjari kama aliyealikwa<ph name="GUEST_SIGNIN_LINK_END" /> ili kurekebisha hitilafu hii ya mtandao.</translation>
 <translation id="1186771945450942097">Ondoa programu hatari</translation>
 <translation id="1187722533808055681">Miamsho isiyofanya kazi</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Hakuna vifaa vya Bluetooth vilivyopatikana</translation>
 <translation id="1306606229401759371">Badilisha mipangilio</translation>
 <translation id="1307559529304613120">Lo!  Mfumo umeshindwa kuhifadhi data ya ufikiaji wa API ya muda mrefu kwa kifaa hiki.</translation>
+<translation id="1307931752636661898">Imeshindwa kuona faili za Linux</translation>
 <translation id="1313405956111467313">Usanidi wa proksi kiotomatiki</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Alamisho, historia, na mipangilio yako mingine itasawazishwa na Akaunti yako ya Google.</translation>
@@ -364,6 +363,7 @@
 <translation id="1530838837447122178">Fungua mipangilio ya kipanya na padi ya kugusa</translation>
 <translation id="1531004739673299060">Dirisha la Programu</translation>
 <translation id="15373452373711364">Kishale kikubwa cha kipanya</translation>
+<translation id="1538729222189715449">Inafungua faili za Linux...</translation>
 <translation id="1540605929960647700">Washa hali ya onyesho</translation>
 <translation id="1543284117603151572">Zilizoletwa Kutoka Kivinjari cha Edge</translation>
 <translation id="1545177026077493356">Skrini Nzima Kiotomatiki</translation>
@@ -539,7 +539,6 @@
 <translation id="1782530111891678861">Badilisha hali ya kugusa ya HUD</translation>
 <translation id="1784849162047402014">Kifaa hakina nafasi ya hifadhi ya kutosha</translation>
 <translation id="1786636458339910689">Hifadhi za Timu</translation>
-<translation id="1792161662640298233">Inathibitisha Ufunguo wako wa Usalama</translation>
 <translation id="1792619191750875668">Mwonekano mpana</translation>
 <translation id="1794791083288629568">Tuma maoni ili utusaidie kutatua tatizo hili.</translation>
 <translation id="1795214765651529549">Tumia ya Kawaida</translation>
@@ -622,7 +621,6 @@
 <translation id="1910721550319506122">Karibu!</translation>
 <translation id="1914326953223720820">Huduma ya Kufungua Faili za Zip</translation>
 <translation id="1915073950770830761">jaribio</translation>
-<translation id="1915543339027206592">Kulingana na mipangilio ya Akaunti yako, huenda programu ya Mratibu ikaweza tu kutekeleza mambo kama vile kuonyesha matokeo ya wavuti, mizaha na maelezo ya mahali ulipo pekee.</translation>
 <translation id="1916502483199172559">Ishara chaguomsingi nyekundu</translation>
 <translation id="1918141783557917887">&amp;Ndogo zaidi</translation>
 <translation id="1919345977826869612">Matangazo</translation>
@@ -791,6 +789,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> iliyo kwenye <ph name="PEPPER_PLUGIN_DOMAIN" /> inataka kufikia kompyuta yako</translation>
 <translation id="2178614541317717477">Kuvurugwa kwa Mamlaka ya Cheti</translation>
 <translation id="218070003709087997">Tumia nambari kuonyesha idadi ya nakala za kuchapa (1 hadi 999).</translation>
+<translation id="2184515124301515068">Ruhusu Chrome ichague wakati ambapo tovuti zitacheza sauti (inapendekezwa)</translation>
 <translation id="2187895286714876935">Hitilafu ya Kuleta Cheti cha Seva</translation>
 <translation id="2187906491731510095">Imesasisha viendelezi</translation>
 <translation id="2188881192257509750">Fungua <ph name="APPLICATION" /></translation>
@@ -835,6 +834,7 @@
 <translation id="2241053333139545397">Kusoma na kubadilisha data yako kwenye tovuti kadhaa</translation>
 <translation id="2242687258748107519">Maelezo ya Faili</translation>
 <translation id="2243194103992005307">Ili kuondoa programu, nenda kwenye Mipangilio&gt; Msimamizi wa Programu. Kisha uguse programu unayotaka kusakinisha (huenda ukahitaji kutelezesha kidole kulia au kushoto ili kupata programu). Kisha uguse Ondoa au Zima.</translation>
+<translation id="224940702122312781">Ukurasa huu utatumia data nyingi.</translation>
 <translation id="2249605167705922988">k.m. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Fungua kwa kitazamaji cha mfumo</translation>
 <translation id="225163402930830576">Onyesha upya Mitandao</translation>
@@ -875,14 +875,13 @@
 <translation id="2307462900900812319">Sanidi mtandao</translation>
 <translation id="230927227160767054">Ukarasa huu anataka kusakinisha kishikizi cha huduma.</translation>
 <translation id="2309620859903500144">Tovuti hii imezuiliwa ili isifikie vitambuzi vya mwangaza au mwendo.</translation>
-<translation id="2311075084924370935">Ili programu yako ya Mratibu iweze kukusaidia katika matukio ya kalenda, vikumbusho, safari za ndege na mambo yako mengine, inahitaji kufikia mipangilio ya Historia ya Shughuli kwenye Wavuti na Programu, Maelezo ya Kifaa na Shughuli za Sauti na Kutamka.</translation>
+<translation id="2315414688463285945">Hitilafu imetokea wakati wa kuweka mipangilio ya faili za Linux. Tafadhali jaribu tena.</translation>
 <translation id="2315821125498993513">Imeshindwa kuunganisha kwenye simu. <ph name="LINK_BEGIN" />Pata maelezo zaidi.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">La, asante</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% imekamilika</translation>
 <translation id="2318143611928805047">Ukubwa wa karatasi</translation>
 <translation id="2318817390901984578">Ili utumie programu za Android, chaji na usasishe kifaa chako cha <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Kipindi cha sasa cha hali fiche (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Tumia Ufunguo wako wa Usalama kwenye <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Vijajuu na vijachini</translation>
 <translation id="2325650632570794183">Aina hii ya faili haihimiliwi. Tafadhali tembelea Duka la Wavuti la Chrome ili kupata programu ambayo inaweza kufungua aina hii ya faili.</translation>
 <translation id="2326931316514688470">Pakia upya programu</translation>
@@ -916,7 +915,6 @@
 <translation id="2367199180085172140">Ongeza Faili Utakayoshiriki</translation>
 <translation id="2367972762794486313">Onyesha programu</translation>
 <translation id="2369536625682139252">Data yote iliyohifadhiwa na <ph name="SITE" /> itafutwa, isipokuwa vidakuzi.</translation>
-<translation id="237058345584060620">Oanisha ufunguo wako na kifaa hiki ili uweze kuutumia kuingia katika akaunti yako</translation>
 <translation id="2371076942591664043">Fungua baada ya &amp;kumaliza</translation>
 <translation id="2377319039870049694">Tumia mwonekano wa orodha</translation>
 <translation id="2377667304966270281">Mabadilko ya Hifadhi</translation>
@@ -983,7 +981,6 @@
 <translation id="248861575772995840">Imeshindwa kupata simu. Hakikisha kuwa Bluetooth ya kifaa chako cha <ph name="DEVICE_TYPE" /> imewashwa. &lt;a&gt;Pata maelezo zaidi&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Ongeza &amp;Folda...</translation>
 <translation id="249113932447298600">Samahani, kifaa <ph name="DEVICE_LABEL" /> hakihimiliwi kwa wakati huu.</translation>
-<translation id="2492040222276243256">Bonyeza na ushikilie kitufe cha Ufunguo wako wa Usalama kwa angalau sekunde 5</translation>
 <translation id="2493021387995458222">Chagua "neno moja kwa wakati"</translation>
 <translation id="249303669840926644">Haikuweza kukamilisha usajili</translation>
 <translation id="2495777824269688114">Gundua vipengele zaidi au upate majibu. Chagua “?” upate usaidizi.</translation>
@@ -1053,6 +1050,7 @@
 <translation id="2580924999637585241">Jumla: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Muda mrefu</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Jukwaa <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Kichupo hiki kinashiriki skrini yako.</translation>
 <translation id="2586657967955657006">Ubao wa kunakili</translation>
 <translation id="2586672484245266891">Tafadhali weka URL fupi</translation>
 <translation id="2587922270115112871">Kuongeza mtumiaji anayesimamiwa hakufungui Akaunti ya Google, na mipangilio na data yake haitamfuata kwenye vifaa vingine vilivyo na Usawazishaji wa Chrome. Mtumiaji anayesimamiwa ameongezwa kwenye kifaa hiki tu.</translation>
@@ -1087,7 +1085,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> inatumia MB <ph name="USAGE" /> za diski.</translation>
 <translation id="2633212996805280240">Ondoa "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> haikukamilisha usakinishaji, lakini itaendelea kuendesha kutoka kwa picha yake ya diski.</translation>
-<translation id="2633326789677284179">Pata jina lililochapishwa nyuma ya ufunguo wako</translation>
 <translation id="2635276683026132559">Sahihi</translation>
 <translation id="2636625531157955190">Chrome haiwezi kufikia picha hii.</translation>
 <translation id="2638087589890736295">Kauli ya siri inahitajika ili uanze kusawazisha</translation>
@@ -1255,7 +1252,6 @@
 <translation id="287286579981869940">Ongeza <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Ingia katika akaunti ya Chrome ili upate manenosiri yako kwenye vifaa vyako vyote.</translation>
 <translation id="2875698561019555027">(Kurasa za hitilafu kwenye Chrome)</translation>
-<translation id="2876441201733326392">Tumia Ufunguo Salama wa USB</translation>
 <translation id="288042212351694283">Fikia vifaa vyako vya Ubia wa Hatua mbili</translation>
 <translation id="2881966438216424900">Ilitumiwa mwisho:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> itazima na kuwasha tena na kuweka upya kwa muda mfupi</translation>
@@ -1323,7 +1319,6 @@
 <translation id="2982970937345031">Ripoti bila kujitambulisha</translation>
 <translation id="2984337792991268709">Leo <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Ukurasa huu umezuiwa usiwe na udhibiti kamili wa vifaa vya MIDI.</translation>
-<translation id="2988599644347283908">Kumbuka: Data inayodhibitiwa na mipangilio hii inaweza kuhifadhiwa na kutumika kwenye huduma yoyote ya Google unayotumia ukiwa umeingia katika akaunti ili kukupa hali maalum ya utumiaji na matangazo yanayokufaa. Unaweza kuona na kufuta data yako na ubadilishe mipangilio yako kwenye account.google.com.</translation>
 <translation id="2989474696604907455">haijaambatishwa</translation>
 <translation id="2989786307324390836">Data jozi iliyosimbwa kwa DER, cheti kimoja</translation>
 <translation id="2993517869960930405">Maelezo ya Programu</translation>
@@ -1376,7 +1371,6 @@
 <translation id="304826556400666995">Rejesha sauti ya Vichupo</translation>
 <translation id="3053013834507634016">Matumizi ya Ufunguo wa Cheti</translation>
 <translation id="3057861065630527966">Weka hifadhi rudufu ya picha na video zako</translation>
-<translation id="3059313675706898490">Programu ya Android Messages</translation>
 <translation id="3060379269883947824">Washa kipengele cha chagua ili izungumze</translation>
 <translation id="3061707000357573562">Huduma ya Kurekebisha</translation>
 <translation id="3064410671692449875">Data haitoshi</translation>
@@ -1405,7 +1399,6 @@
 <translation id="3090819949319990166">Haiwezi kunakili faili ya CRX kwenye <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" imeoanishwa</translation>
 <translation id="3101709781009526431">Tarehe na wakati</translation>
-<translation id="3104900172193317662">Ruhusu matumizi ya Ufunguo wako wa Usalama</translation>
 <translation id="310671807099593501">Tovuti inatumia bluetooth</translation>
 <translation id="3115128645424181617">Imeshindwa kupata simu yako. Hakikisha kuwa unayo na umewasha Bluetooth.</translation>
 <translation id="3115147772012638511">Inasubiri akiba...</translation>
@@ -1489,7 +1482,6 @@
 <translation id="3251759466064201842">&lt;Sio Sehemu Ya Cheti&gt;</translation>
 <translation id="3254434849914415189">Chagua programu chaguomsingi ya faili <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Utambuzi wa kiotomatiki wa saa za eneo umezimwa</translation>
-<translation id="3254772308201947812">Ndiyo ninakubali</translation>
 <translation id="3264544094376351444">Fonti ya Sans-serif</translation>
 <translation id="3264547943200567728">Haijaweza kuweka mipangilio ya mtandao wa Chromebox yako</translation>
 <translation id="3264582393905923483">Muktadha</translation>
@@ -1809,7 +1801,6 @@
 <translation id="3735740477244556633">Panga kwa</translation>
 <translation id="3737274407993947948">Hitilafu imetokea wakati wa kusakinisha Linux...</translation>
 <translation id="3737536731758327622">Vipakuliwa vyako vitaonekana hapa</translation>
-<translation id="3738671331307774213">Hatua ya kuthibitisha utambulisho wako inasaidia kulinda data yako ya faragha</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Ungependa kufungua <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859">Sasa <ph name="DEVICE_NAME" /> itaonekana katika Admin Console</translation>
@@ -1903,6 +1894,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Umesitisha usawazishaji</translation>
 <translation id="3860381078714302691">Karibu kwenye Hangouts Meet</translation>
+<translation id="3861241522664181545">Ukurasa umesitishwa.</translation>
 <translation id="3862134173397075045">Karibu kwenye huduma ya Kutuma katika Chrome!</translation>
 <translation id="3862788408946266506">Ni lazima programu iliyo na sifa ya faili ya maelezo ya 'kiosk_only' isakinishwe katika skrini nzima ya Mfumo wa Uendeshaji wa Chrome</translation>
 <translation id="3865414814144988605">Ubora</translation>
@@ -1917,7 +1909,6 @@
 <translation id="3873315167136380065">Ili kuwasha kipengele hiki, <ph name="BEGIN_LINK" />weka upya kipengele cha usawazishaji<ph name="END_LINK" /> ili kuondoa kauli yako ya siri ya usawazishaji</translation>
 <translation id="3878840326289104869">Inaunda mtumiaji anayesimamiwa</translation>
 <translation id="3879748587602334249">Kidhibiti cha vipakuliwa</translation>
-<translation id="3880709822663530586">Ufunguo wa Usalama hufanya kazi tu wakati umewasha Bluetooth kwenye kifaa chako</translation>
 <translation id="3888550877729210209">Madokezo yanachukuliwa na <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Ongeza OpenVPN / L2TP...</translation>
 <translation id="3893536212201235195">Kusoma na ubadilishe mipangilio yako ya ufikiaji</translation>
@@ -2061,6 +2052,7 @@
 <translation id="4096824249111507322">Sehemu salama inaandaliwa, tafadhali subiri (huenda hatua hii ikachukua dakika chache)...</translation>
 <translation id="4099060993766194518">Ungependa kurejesha mtambo wa kutafuta chaguomsingi?</translation>
 <translation id="4100733287846229632">Hifadhi ya kifaa ni ndogo sana</translation>
+<translation id="4103091233824664032">Andika nenosiri lako ili uweke mipangilio ya kufunga skrini na kuingia katika akaunti</translation>
 <translation id="4104163789986725820">&amp;Hamisha...</translation>
 <translation id="4105563239298244027">Pata TB 1 isiyolipiwa kutoka Hifadhi ya Google</translation>
 <translation id="4107048419833779140">Tambua na uondoe vifaa vya hifadhi</translation>
@@ -2081,7 +2073,6 @@
 <translation id="4136203100490971508">Kipengele cha Mwanga wa Usiku kitazimwa kiotomatiki wakati wa macheo</translation>
 <translation id="4138267921960073861">Onyesha majina ya watumiaji na picha kwenye skrini ya kuingia</translation>
 <translation id="4144218403971135344">Pata video bora na uokoe muda wa matumizi ya betri. Video itacheza tu kwenye skrini inayoweza kutumia Google Cast.</translation>
-<translation id="414599683948988413">Tumia Ufunguo wako wa Usalama kwenye USB</translation>
 <translation id="4146026355784316281">Fungua Ukitumia Kitazamaji Cha Mfumo Wakati Wowote</translation>
 <translation id="4146785383423576110">Weka mipangilio upya na ufute programu hatari</translation>
 <translation id="4147897805161313378">Picha kwenye Google</translation>
@@ -2216,6 +2207,7 @@
 <translation id="4394049700291259645">Zima</translation>
 <translation id="4400367121200150367">Tovuti ambazo hazihifadhi manenosiri kamwe zitaonekana hapa</translation>
 <translation id="4400632832271803360">Shikilia kitufe cha Kifungua Programu ili ubadilishe utendaji wa vitufe vya juu vya safu mlalo</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">Usaidizi</translation>
 <translation id="4409697491990005945">Pambizo</translation>
 <translation id="4411578466613447185">Kitia Misimbo sahihi</translation>
@@ -2264,6 +2256,7 @@
 <translation id="4480590691557335796">Chrome inaweza kupata programu hatari kwenye kompyuta yako na kuiondoa</translation>
 <translation id="4481530544597605423">Vifaa visivyooanishwa</translation>
 <translation id="4482194545587547824">Google inaweza kutumia historia yako ya mambo uliyovinjari kuweka mapendeleo ya huduma za Tafuta na huduma nyingine za Google.</translation>
+<translation id="4493287891836751813">Tunakuletea programu ya Mratibu wa Google</translation>
 <translation id="4495419450179050807">Usionyeshe kwenye ukurasa huu</translation>
 <translation id="4499718683476608392">Ruhusu huduma ya Kujaza Kiotomatiki kadi za mikopo ijaze fomu kwa kubofya mara moja</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> imeacha kufanya kazi</translation>
@@ -2424,6 +2417,7 @@
 <translation id="474217410105706308">Nyamazisha Kichupo</translation>
 <translation id="4742746985488890273">Bandika kwenye Rafu</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Pata maelezo zaidi kuhusu jinsi ya kusasisha programu<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Ujumbe</translation>
 <translation id="4746971725921104503">Inaonekana tayari unasimamia mtumiaji mwenye jina hilo. Je, ulitaka <ph name="LINK_START" /> kuingiza kwa kifaa hiki<ph name="USER_DISPLAY_NAME" /> <ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Inahitaji kiendelezi kutoka Duka la Chrome kwenye Wavuti</translation>
 <translation id="4750394297954878236">Mapendekezo</translation>
@@ -2465,6 +2459,7 @@
 <translation id="4821935166599369261">&amp;Uwekaji Wasifu Umewezeshwa</translation>
 <translation id="4823484602432206655">Soma na ubadilishe mipangilio ya mtumiaji na kifaa</translation>
 <translation id="4823651846660089135">Kifaa ni cha kusoma tu</translation>
+<translation id="4823955295535347797">Fikia programu ya Mratibu wakati wowote unaposema "OK Google" ukiwa umewasha skrini yako.</translation>
 <translation id="4828937774870308359">Kiaustralia</translation>
 <translation id="4829768588131278040">Unda PIN</translation>
 <translation id="4830502475412647084">Inasasisha Mfumo wa Uendeshaji</translation>
@@ -2505,6 +2500,7 @@
 <translation id="4876273079589074638">Wasaidie wahandisi wetu kuchunguza na kurekebisha hitilafu hii ya kuacha kufanya kazi. Orodhesha hatua kamili kama unaweza. Maelezo yote ni muhimu!</translation>
 <translation id="4876895919560854374">Funga na ufungue skrini</translation>
 <translation id="4877017884043316611">Oanisha na Chromebox</translation>
+<translation id="4879491255372875719">Kiotomatiki (chaguomsingi)</translation>
 <translation id="4880214202172289027">Kitelezi cha sauti</translation>
 <translation id="4880328057631981605">Jina la lango la mtandao</translation>
 <translation id="4880520557730313061">Rekebisha kiotomatiki</translation>
@@ -2658,7 +2654,6 @@
 <translation id="5099354524039520280">juu</translation>
 <translation id="5100114659116077956">Ili tukuletee vipengee vipya, Chromebox yako inahitaji kusasisha.</translation>
 <translation id="5101042277149003567">Fungua alamisho zote</translation>
-<translation id="5104546332954397226">Tumia simu yako kama Ufunguo wa Usalama</translation>
 <translation id="5105855035535475848">Bana vichupo</translation>
 <translation id="5108967062857032718">Mipangilio - Ondoa programu za Android</translation>
 <translation id="5109044022078737958">Mia</translation>
@@ -2789,7 +2784,6 @@
 <translation id="5288678174502918605">Fungua Kichupo Kilichofungwa &amp;Tena</translation>
 <translation id="52912272896845572">Ufunguo wako binafsi sio halali.</translation>
 <translation id="529175790091471945">Futa kifaa hiki</translation>
-<translation id="5292195676005197571">Ili kutumia vitufe vingi, bonyeza tu kitufe unachotaka</translation>
 <translation id="5293170712604732402">Rejesha mipangilio kwenye chaguomsingi halisi</translation>
 <translation id="5297082477358294722">Imehifadhi nenosiri. Angalia na udhibiti manenosiri yaliyohifadhiwa kwenye <ph name="SAVED_PASSWORDS_STORE" /> yako.</translation>
 <translation id="5298219193514155779">Mandhari imeunda na</translation>
@@ -2815,6 +2809,7 @@
 <translation id="532776649628038357">Ninakubali</translation>
 <translation id="532943162177641444">Gusa arifa kwenye <ph name="PHONE_NAME" /> yako ili uweke mipangilio ya mtandao-hewa unaoweza kuhamishika ambao unaweza kutumiwa na kifaa hiki.</translation>
 <translation id="5329858601952122676">&amp;Futa</translation>
+<translation id="5329945517224105597">Programu ya Mratibu inaweza kukupa mapendekezo yanayofaa na vitendo mahususi vinavyohusiana na maudhui yaliyo kwenye skrini yako. Unaweza kubadilisha hali hii katika mipangilio ya Mratibu.</translation>
 <translation id="5330145655348521461">Faili hizi zilifunguka kwenye eneo-kazi tofauti. Sogea kwenye <ph name="USER_NAME" /> ( <ph name="MAIL_ADDRESS" /> ) ili uzione.</translation>
 <translation id="5330512191124428349">Pata maelezo</translation>
 <translation id="5331069282670671859">Huna vyeti katika aina hii</translation>
@@ -2859,7 +2854,6 @@
 <translation id="5390100381392048184">Ruhusu tovuti kucheza sauti</translation>
 <translation id="5390284375844109566">Hifadhidata iliyoorodheshwa</translation>
 <translation id="5390743329570580756">Tuma kwa</translation>
-<translation id="5392327114396848796">Tumia Ufunguo wa Usalama uliojumuishwa</translation>
 <translation id="5397794290049113714">Wewe</translation>
 <translation id="5398572795982417028">Ukurasa wa kurejelea ambao hauruhusiwi kuingia, kikomo ni <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Matangazo yamezuiwa</translation>
@@ -3067,6 +3061,7 @@
    <ph name="LINE_BREAKS" />
    Funga faili zote kwenye kumbukumbu au diski pepe, kisha ujaribu tena.</translation>
 <translation id="5687326903064479980">Saa za eneo:</translation>
+<translation id="568824803367507355">Utambuzi wa "Ok Google"</translation>
 <translation id="5689516760719285838">Mahali</translation>
 <translation id="56907980372820799">Unganisha data</translation>
 <translation id="5691511426247308406">Familia</translation>
@@ -3164,7 +3159,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Kurekodi kwa kamera au maikrofoni</translation>
 <translation id="5835754902560991078">mfupi mno (sekunde 0.6)</translation>
 <translation id="5838456317242088717">Kipindi cha sasa cha hali fiche</translation>
-<translation id="5842053879378944309">Tumia Ufunguo Salama wa USB kwenye <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Washa Bluetooth</translation>
 <translation id="5843250171025351504">Kifaa chako hakitii tena mahitaji ya chini zaidi ya kutumia toleo la mteja yaliyobainishwa na msimamizi wako. Tafadhali sasisha mfumo wa uendeshaji ili uingie katika akaunti.</translation>
 <translation id="5846929185714966548">Kichupo cha 4</translation>
@@ -3482,7 +3476,6 @@
 <translation id="6317318380444133405">Haitumiki tena.</translation>
 <translation id="6317369057005134371">Inasubiri dirisha la kutuma maombi...</translation>
 <translation id="6318407754858604988">Upakuaji umeanza</translation>
-<translation id="6322653941595359182">Tuma na upokee SMS kupitia Chromebook yako</translation>
 <translation id="6324916366299863871">Badilisha njia ya mkato</translation>
 <translation id="6325191661371220117">Zima uzinduzi wa otomatiki</translation>
 <translation id="6326175484149238433">Ondoa kwenye Chrome</translation>
@@ -3526,6 +3519,7 @@
 <translation id="6395423953133416962">Tuma <ph name="BEGIN_LINK1" />maelezo ya mfumo<ph name="END_LINK1" /> na <ph name="BEGIN_LINK2" />hesabu<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Chaguo za usawazishaji na kuweka mapendeleo</translation>
 <translation id="6397592254427394018">Fungua alamisho zote katika dirisha fiche</translation>
+<translation id="639777613761517128">Ili ufungue faili ukitumia $1, nakili kwanza folda ya faili za Linux.</translation>
 <translation id="6398715114293939307">Ondoa Duka la Google Play</translation>
 <translation id="6398765197997659313">Ondoka kwenye Skrini nzima</translation>
 <translation id="6399774419735315745">Jasusi</translation>
@@ -3551,7 +3545,6 @@
 <translation id="642282551015776456">Jina hili halifai kutumiwe kama faili ya jina la folda</translation>
 <translation id="642469772702851743">Kifaa hiki (SN: <ph name="SERIAL_NUMBER" />) kimefungwa na mmiliki.</translation>
 <translation id="6426200009596957090">Fungua mipangilio ya ChromeVox</translation>
-<translation id="6427415464407526111">Chagua Ufunguo wako wa Usalama</translation>
 <translation id="6429384232893414837">Hitilafu ya kusasisha</translation>
 <translation id="6430814529589430811">ASCII iliyosimbwa kwa Base64, cheti kimoja</translation>
 <translation id="6431217872648827691">Data yote ilisimbwa kwa njia fiche kwa nenosiri lako la Google saa
@@ -3709,7 +3702,6 @@
 <translation id="6655190889273724601">Hali ya Wasanidi Programu</translation>
 <translation id="6655458902729017087">Ficha Akaunti</translation>
 <translation id="6657585470893396449">Nenosiri</translation>
-<translation id="6658023813581644008">Ili uweke mipangilio ya Smart Lock ya kuingia katika akaunti, weka nenosiri lako</translation>
 <translation id="6659213950629089752">Ukurasa huu ulikuzwa kwa kiendelezi "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Kichupo</translation>
 <translation id="6664237456442406323">Kwa bahati mbaya, kompyuta yako imesanidiwa na kitambulisho cha maunzi kilichoharibika. Hii inazuia Chrome OS isisasishe na sasisho za usalama za hivi karibuni na kompyuta yako <ph name="BEGIN_BOLD" />inaweza ikawa hatarini kutokana na mashambulizi hasidi<ph name="END_BOLD" />.</translation>
@@ -3845,7 +3837,6 @@
 <translation id="6885771755599377173">Onyesho la Kuchungulia la Maelezo ya Mfumo</translation>
 <translation id="6886871292305414135">Fungua kiungo katika &amp;kichupo kipya</translation>
 <translation id="6892812721183419409">Fungua Kiungo ukitumia <ph name="USER" /></translation>
-<translation id="6896398788631624004">Weka Ufunguo Salama na uanzishe utumiaji wake</translation>
 <translation id="6896758677409633944">Nakili</translation>
 <translation id="6898440773573063262">Programu za skrini nzima sasa zinaweza kusanidiwa ili zijifungue kiotomatiki kwenye kifaa hiki.</translation>
 <translation id="6898699227549475383">Shirika (O)</translation>
@@ -3864,6 +3855,7 @@
 <translation id="6915804003454593391">Mtumiaji:</translation>
 <translation id="6916590542764765824">Simamia Viendelezi</translation>
 <translation id="6920989436227028121">Fungua kama kichupo cha kawaida</translation>
+<translation id="6921709132208495314">Acha kutumia data kwenye ukurasa huu</translation>
 <translation id="6922128026973287222">Hifadhi data na uvinjari haraka sana ukitumia Kiokoa Data cha Google. Bofya ili upate maelezo zaidi.</translation>
 <translation id="6923132443355966645">Sogeza / Bofya</translation>
 <translation id="6930242544192836755">Muda</translation>
@@ -3886,6 +3878,7 @@
 <translation id="6965382102122355670">Sawa</translation>
 <translation id="6965648386495488594">Lango</translation>
 <translation id="6965978654500191972">Kifaa</translation>
+<translation id="6968288415730398122">Weka nenosiri lako ili uweke mipangilio ya kufunga skrini</translation>
 <translation id="6970480684834282392">Aina ya kuanzisha</translation>
 <translation id="6970856801391541997">Chapisha Kurasa Mahsusi</translation>
 <translation id="6972180789171089114">Sauti/Video</translation>
@@ -3896,6 +3889,7 @@
 <translation id="6978121630131642226">Injini tafuti</translation>
 <translation id="6978611942794658017">Faili hii imeundwa kwa ajili ya PC inayotumia programu ya Windows. Hii haioani na kifaa chako kinachoendeshwa na Chrome OS. Tafadhali tafuta katika Duka la Wavuti la Chrome upate programu mwafaka ya kubadilisha.</translation>
 <translation id="6979158407327259162">Hifadhi ya Google</translation>
+<translation id="6979440798594660689">Zima (chaguomsingi)</translation>
 <translation id="6979737339423435258">Wakati wote</translation>
 <translation id="6980462514016882061">Google inaweza kutumia historia ya jinsi unavyovinjari ili kuweka mapendeleo kwenye huduma ya Tafuta na Google, matangazo na huduma nyingine za Google</translation>
 <translation id="6981982820502123353">Upatikanaji</translation>
@@ -4044,6 +4038,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Haya ni maelezo ya jumla kuhusu kifaa chako na jinsi unavyoweza kuyatumia (kama vile kiasi cha chaji ya betri, matumizi ya programu na muunganisho wa mtandao). Data hii itatumika kuboresha huduma na bidhaa za Google kwa manufaa ya kila mtu. Baadhi ya maelezo yaliyojumlishwa yatawasaidia washirika, kama vile wasanidi programu wa Android, kuboresha huduma na programu zao.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Hatua ya kuzima kipengele hiki haitaathiri uwezo wa kifaa chako kutuma maelezo yanayotakiwa katika huduma muhimu kama vile usalama na masasisho ya mfumo.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Unaweza kudhibiti kipengele hiki katika Mipangilio &gt; Google. Chagua Matumizi na uchanganuzi kwenye menyu.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Tumepata programu <ph name="NUMBER_OF_APPS" /> kutoka akaunti yako ambazo zinaweza kutumika kwenye kifaa hiki.</translation>
 <translation id="7199158086730159431">Pata Usaidizi</translation>
 <translation id="7200083590239651963">Chagua mipangilio</translation>
 <translation id="720110658997053098">Weka kifaa hiki katika hali ya skrini nzima kila wakati</translation>
@@ -4064,7 +4059,6 @@
 <translation id="7228523857728654909">Kufunga programu na kuingia katika akaunti</translation>
 <translation id="7229570126336867161">Inahitaji EVDO</translation>
 <translation id="7230787553283372882">Badilisha ukubwa wa maandishi ukufae</translation>
-<translation id="7231589788477569369">Jipatie manufaa yote ya programu ya Mratibu kwa kutumia mipangilio hii</translation>
 <translation id="7232750842195536390">Imeshindwa kubadilisha jina</translation>
 <translation id="7234406375359457793">Hitilafu imetokea wakati wa kupachika faili ya kushiriki. Faili iliyobainishwa haitumiki.</translation>
 <translation id="7238585580608191973">Alama ya kidole ya SHA-256</translation>
@@ -4074,7 +4068,6 @@
 <translation id="7243632151880336635">Futa na Uondoke kwenye Akaunti</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Bora)</translation>
 <translation id="7246339268451149667">Je, ungependa kuwasha kipengele cha kufungua kwa kutumia Alama ya Kidole?</translation>
-<translation id="7246489301073081944">Shikilia |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| ili ufunge</translation>
 <translation id="7246947237293279874">Seva Mbadala ya FTP</translation>
 <translation id="725109152065019550">Samahani, msimamizi wako amelemaza hifadhi ya nje kwenye akaunti yako.</translation>
 <translation id="7253521419891527137">&amp;Pata Maelezo Zaidi</translation>
@@ -4227,7 +4220,6 @@
 <translation id="7489605380874780575">Kagua ustahiki</translation>
 <translation id="749028671485790643">Mtu <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Anwani ya MAC</translation>
-<translation id="7490950320178383728">Tumia Ufunguo wako wa Usalama kwenye Bluetooth</translation>
 <translation id="7491962110804786152">kichupo</translation>
 <translation id="7493386493263658176">Huenda kiendelezi cha <ph name="EXTENSION_NAME" /> kikahifadhi maandishi yote unayocharaza, ikiwemo data ya kibinafsi kama vile manenosiri na nambari za kadi za mikopo. Je, ungependa kutumia kiendelezi hiki?</translation>
 <translation id="7494065396242762445">Fungua Mipangilio ya Windows</translation>
@@ -4478,7 +4470,6 @@
 <translation id="7850851215703745691">Faili hizi za Hifadhi bado hazijashirikiwa</translation>
 <translation id="7851457902707056880">Kuingia katika akaunti kunaruhusiwa kwa mmiliki wa akaunti pekee. Tafadhali washa upya na uingie katika akaunti ya mmiliki. Mashine itawashwa upya ndani ya sekunde 30.</translation>
 <translation id="7851716364080026749">Zuia ufikiaji wa kamera na maikrofoni kila wakati</translation>
-<translation id="7851816139220202929">Tumia Ufunguo wako wa Usalama kwenye NFC</translation>
 <translation id="7853747251428735">Zana Zaidi</translation>
 <translation id="7856006446339184955">Tuma data ya mfumo. Tuma kiotomatiki data ya uchanganuzi na matumizi ya kifaa na programu kwa Google. <ph name="BEGIN_LINK1" />Mipangilio<ph name="END_LINK1" /> hii husimamiwa na mmiliki. Ukiwasha Historia ya Shughuli kwenye Wavuti na Programu, maelezo haya yatahifadhiwa kwenye akaunti yako ili uweze kuyadhibiti katika Shughuli Zangu. <ph name="BEGIN_LINK2" />Pata Maelezo Zaidi<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Ongeza kighairi</translation>
@@ -4561,6 +4552,7 @@
 <translation id="7973962044839454485">Uthibitishaji wa PPP ulishindwa kutokana na jina la mtumiaji na nenosiri lisilo sahihi</translation>
 <translation id="7974566588408714340">Jaribu tena kutumia <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Angalia kwa ujumla</translation>
+<translation id="79766959863778284">Huduma ya Vifaa Vya XR Vilivyotengwa</translation>
 <translation id="7977551819349545646">Inasasisha Chromebox...</translation>
 <translation id="7978412674231730200">Ufunguo binafsi</translation>
 <translation id="7978450511781612192">Hatua hii itakuondoa kwenye Akaunti za Google. Alamisho, historia, manenosiri yako na mengineyo hayatasawazishwa tena.</translation>
@@ -4611,7 +4603,6 @@
 <translation id="8030656706657716245">Ongeza Printa</translation>
 <translation id="8032244173881942855">Imeshindwa kutuma kichupo.</translation>
 <translation id="8033827949643255796">kimechaguliwa</translation>
-<translation id="8033958968890501070">Muda umekwisha</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Fungua zote &amp;katika dirisha fiche}=1{Fungua &amp;katika dirisha fiche}other{Fungua zote (#) &amp;katika dirisha fiche}}</translation>
 <translation id="8037117027592400564">Soma maandishi yote yaliyotamkwa ukitumia matamshi yaliyounganishwa</translation>
 <translation id="8037357227543935929">Uliza (chaguomsingi)</translation>
@@ -4784,6 +4775,7 @@
 <translation id="8320459152843401447">Skrini Yako Yote</translation>
 <translation id="8322814362483282060">Ukurasa huu umezuiwa usifikie maikrofoni yako.</translation>
 <translation id="8326478304147373412">PKCS #7, msururu wa vyeti</translation>
+<translation id="8327039559959785305">Hitilafu imetokea wakati wa kupachika faili za Linux. Tafadhali jaribu tena.</translation>
 <translation id="8329978297633540474">Matini makavu</translation>
 <translation id="8335587457941836791">Banua kutoka kwenye rafu</translation>
 <translation id="8336153091935557858">Jana <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4835,7 +4827,6 @@
 <translation id="8425213833346101688">Badilisha</translation>
 <translation id="8425492902634685834">Bandikiza kwenye Upau wa Shughuli</translation>
 <translation id="8425755597197517046">&amp;Bandika na Utafute</translation>
-<translation id="8426117172745886547">Iarifu kabla ya kufunga (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Inawasha</translation>
 <translation id="8427292751741042100">pachika kwenye seva pangishi yoyote</translation>
 <translation id="8428213095426709021">Mipangilio</translation>
@@ -4923,7 +4914,6 @@
 <translation id="8551388862522347954">Leseni</translation>
 <translation id="8553342806078037065">Dhibiti watumiaji wengine</translation>
 <translation id="8554899698005018844">Hakuna lugha</translation>
-<translation id="8557347704037207368">Tuma arifa zako kutoka Android Web Messages</translation>
 <translation id="855773602626431402">Programu-jalizi isiyo ya majaribio ilizuiwa kutekeleza kwenye ukurasa huu.</translation>
 <translation id="8557930019681227453">Faili ya maelezo</translation>
 <translation id="8559694214572302298">Kisimbuaji cha Picha</translation>
@@ -5036,6 +5026,7 @@
 <translation id="8714154114375107944">Kifaa hakitumiki tena</translation>
 <translation id="8714838604780058252">Michoro ya chinichini</translation>
 <translation id="8715480913140015283">Kichupo kinachofanya kazi chinichini kinatumia kamera yako</translation>
+<translation id="8716931980467311658">Ungependa kufuta programu zote za Linux na data katika folda ya faili za Linux kwenye <ph name="DEVICE_TYPE" /> hii?</translation>
 <translation id="8719653885894320876">Upakuaji wa <ph name="PLUGIN_NAME" /> haujafaulu</translation>
 <translation id="8723829621484579639">fremu ndogo za hali fiche za: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">Onye&amp;sha katika Folda</translation>
@@ -5199,7 +5190,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Imeacha kufanya kazi</translation>
 <translation id="8983677657449185470">Tusaidie tuboreshe huduma ya Kuvinjari Salama</translation>
 <translation id="8984654317541110628">URL ya Faili ya Kushiriki</translation>
-<translation id="8984872292925913496">Pata PIN yenye tarakimu 6 nyuma ya ufunguo wako</translation>
 <translation id="8986362086234534611">Sahau</translation>
 <translation id="8986494364107987395">Tumia Google takwimu za matumizi na ripoti za mara ambazo kivinjari kinaacha kufanya kazi, moja kwa moja</translation>
 <translation id="8987927404178983737">Mwezi</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 4c0f7cc..598d1b03 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">விசைப்பலகை ஃபோகஸ் மாறும் போது, ஃபோகஸைக் கொண்டுள்ள பொருளைத்  தனிப்படுத்து.</translation>
 <translation id="1173894706177603556">மறுபெயரிடு</translation>
 <translation id="1174073918202301297">ஷார்ட்கட் சேர்க்கப்பட்டது</translation>
-<translation id="1174808551768282258">உங்கள் ஃபோன் மூலம் Chromebookகைத் திறக்கலாம். <ph name="LINK_BEGIN" />மேலும் அறிக.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;அச்சிடு...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> ஐ நகலெடுக்கிறது...</translation>
 <translation id="1177138678118607465">தேடல், விளம்பரங்கள் மற்றும் பிற Google சேவைகளைத் தனிப்பயனாக்க, உங்கள் உலாவல் வரலாற்றை Google பயன்படுத்தக்கூடும். myaccount.google.com/activitycontrols/search எனும் இணைப்பில் எப்போது வேண்டுமானாலும் இதை மாற்றலாம்</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">இடைநிறுத்து</translation>
 <translation id="1181037720776840403">அகற்று</translation>
 <translation id="1183237619868651138">அக தற்காலிகச் சேமிப்பில் <ph name="EXTERNAL_CRX_FILE" />ஐ நிறுவ முடியாது.</translation>
-<translation id="1183378459020939734">பாதுகாப்பு விசையுடன் இணைக்கத் தயாரா?</translation>
 <translation id="1185924365081634987">இந்த நெட்வொர்க் பிழையைச் சரிசெய்ய, <ph name="GUEST_SIGNIN_LINK_START" />விருந்தினராக உலாவ<ph name="GUEST_SIGNIN_LINK_END" /> முயற்சிக்கலாம்.</translation>
 <translation id="1186771945450942097">தீங்கிழைக்கும் மென்பொருளை அகற்று</translation>
 <translation id="1187722533808055681">செயல்படாமல் இருக்கும் நினைவூட்டல்கள்</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">புளூடூத் சாதனங்கள் இல்லை</translation>
 <translation id="1306606229401759371">அமைப்புகளை மாற்று</translation>
 <translation id="1307559529304613120">அச்சச்சோ! இந்தச் சாதனத்திற்கான, நீண்டகால API அணுகல் டோக்கனை சேமிப்பதில் முறைமை தோல்வியடைந்தது.</translation>
+<translation id="1307931752636661898">Linux கோப்புகளைப் பார்க்க முடியவில்லை</translation>
 <translation id="1313405956111467313">தானியங்கு ப்ராக்ஸி உள்ளமைவு</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">உங்கள் புத்தகக்குறிகள், வரலாறு மற்றும் பிற அமைப்புகள் ஆகியவை உங்கள் Google கணக்கில் ஒத்திசைக்கப்படும்.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">மவுஸ் மற்றும் டச்பேட் அமைப்புகளைத் திற</translation>
 <translation id="1531004739673299060">பயன்பாட்டுச் சாளரம்</translation>
 <translation id="15373452373711364">பெரிய மவுஸ் இடஞ்சுட்டி</translation>
+<translation id="1538729222189715449">Linux கோப்புகளைத் திறக்கிறது...</translation>
 <translation id="1540605929960647700">டெமோ பயன்முறையை இயக்கவும்</translation>
 <translation id="1543284117603151572">Edge இலிருந்து இறக்கப்பட்டது</translation>
 <translation id="1545177026077493356">தானியங்கு கியோஸ்க் பயன்முறை</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">டச் HUD பயன்முறைக்கு மாற்றும்</translation>
 <translation id="1784849162047402014">சாதனத்தில் சேமிப்பிடம் குறைவாக உள்ளது</translation>
 <translation id="1786636458339910689">குழு இயக்ககங்கள்</translation>
-<translation id="1792161662640298233">பாதுகாப்பு விசையைச் சரிபார்த்தல்</translation>
 <translation id="1792619191750875668">நீட்டிக்கப்பட்ட திரை</translation>
 <translation id="1794791083288629568">இந்தச் சிக்கலைத் தீர்ப்பதற்கு உதவ, கருத்தை அனுப்பவும்.</translation>
 <translation id="1795214765651529549">கிளாசிக்கைப் பயன்படுத்து</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">நல்வரவு!</translation>
 <translation id="1914326953223720820">ஜிப் கோப்புகளைத் திறக்கும் சேவை</translation>
 <translation id="1915073950770830761">கேனரி</translation>
-<translation id="1915543339027206592">உங்கள் கணக்கு அமைப்புகளைப் பொறுத்து, இணையதளத் தேடல் முடிவுகள், ஜோக்குகள் மற்றும் உள்ளூர் தகவல்கள் போன்றவற்றை மட்டும் அசிஸ்டண்ட் வழங்கக்கூடும்.</translation>
 <translation id="1916502483199172559">இயல்பு சிவப்புநிற அவதார்</translation>
 <translation id="1918141783557917887">&amp;சிறியது</translation>
 <translation id="1919345977826869612">விளம்பரங்கள்</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_DOMAIN" /> இல் உள்ள <ph name="PEPPER_PLUGIN_NAME" /> உங்கள் கணினியை அணுக விரும்புகிறது</translation>
 <translation id="2178614541317717477">CA இணக்கம்</translation>
 <translation id="218070003709087997">எத்தனை நகல்கள் அச்சிடப்பட வேண்டும் என்பதைக் குறிக்க, எண்ணைப் (1 - 999) பயன்படுத்தவும்.</translation>
+<translation id="2184515124301515068">தளங்கள் எப்போது ஒலியை இயக்கலாம் என்பதை Chrome தேர்வு செய்ய அனுமதிக்கவும் (பரிந்துரைக்கப்படுவது)</translation>
 <translation id="2187895286714876935">சேவையக சான்றிதழ் இறக்குமதி பிழை</translation>
 <translation id="2187906491731510095">நீட்டிப்புகள் புதுப்பிக்கப்பட்டன</translation>
 <translation id="2188881192257509750"><ph name="APPLICATION" />ஐத் திற</translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">பல இணையதளங்களில் உங்கள் தரவைப் படித்தல் மற்றும் திருத்துதல்</translation>
 <translation id="2242687258748107519">கோப்புத் தகவல்</translation>
 <translation id="2243194103992005307">பயன்பாடுகளை அகற்ற, அமைப்புகள் &gt; பயன்பாடுகள் அல்லது பயன்பாட்டு நிர்வாகி என்பதற்குச் செல்லவும். பின்னர், நிறுவல் நீக்க விரும்பும் பயன்பாட்டைத் தட்டவும் (பயன்பாட்டைக் கண்டறிய வலப்புறம் அல்லது இடப்புறம் ஸ்வைப் செய்ய வேண்டியிருக்கலாம்). பின்னர், நிறுவல் நீக்கு அல்லது முடக்கு என்பதைத் தட்டவும்.</translation>
+<translation id="224940702122312781">இந்தப் பக்கம் ஏராளமான தரவுகளைப் பயன்படுத்தும்.</translation>
 <translation id="2249605167705922988">எ.கா. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">சிஸ்டம் வியூவருடன் திற</translation>
 <translation id="225163402930830576">நெட்வொர்க்குகளைப் புதுப்பி</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">பிணையத்தை உள்ளமை</translation>
 <translation id="230927227160767054">இந்தப் பக்கம் சேவை ஹேண்ட்லரை நிறுவ உள்ளது.</translation>
 <translation id="2309620859903500144">இந்தத் தளம் உங்கள் நகர்வு அல்லது ஒளி சென்சார்களை அணுகுவதிலிருந்து தடைசெய்யப்பட்டுள்ளது.</translation>
-<translation id="2311075084924370935">கேலெண்டர், நினைவூட்டல்கள், விமானத் தகவல்கள் மற்றும் பலவற்றை உங்களுக்கு வழங்க, இணையம் மற்றும் பயன்பாட்டுச் செயல்பாடு, சாதனம் குறித்த தகவல், குரல் மற்றும் ஆடியோ செயல்பாட்டு அமைப்புகள் ஆகியவற்றை அசிஸ்டண்ட் அணுகுவதற்கு அனுமதி தேவை.</translation>
+<translation id="2315414688463285945">Linux கோப்புகளை உள்ளமைப்பதில் பிழை. மீண்டும் முயலவும்.</translation>
 <translation id="2315821125498993513">ஃபோனுடன் இணைக்க முடியவில்லை. <ph name="LINK_BEGIN" />மேலும் அறிக.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">வேண்டாம், நன்றி</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% முடிந்தது</translation>
 <translation id="2318143611928805047">தாளின் அளவு</translation>
 <translation id="2318817390901984578">Android பயன்பாடுகளைப் பயன்படுத்த, <ph name="DEVICE_TYPE" />ஐச் சார்ஜ் செய்து, புதுப்பிக்கவும்.</translation>
 <translation id="2318923050469484167">தற்போதைய மறைநிலை அமர்வு (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128"><ph name="APP_NAME" /> உடன் உங்கள் பாதுகாப்பு விசையைப் பயன்படுத்துதல்</translation>
 <translation id="2322193970951063277">மேற்குறிப்புகளும் அடிக்குறிப்புகளும்</translation>
 <translation id="2325650632570794183">இந்தக் கோப்பு வகை ஆதரிக்கப்படவில்லை. இந்த வகையானக் கோப்பைத் திறக்கும் பயன்பாட்டைக் கண்டறிய Chrome  இணைய அங்காடியைப் பார்வையிடவும்.</translation>
 <translation id="2326931316514688470">&amp;பயன்பாட்டை மீண்டும் ஏற்று</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">கோப்புப் பகிர்வைச் சேர்</translation>
 <translation id="2367972762794486313">பயன்பாடுகளைக் காட்டு</translation>
 <translation id="2369536625682139252">குக்கீகள் தவிர, <ph name="SITE" /> சேமித்த எல்லாத் தரவும் நீக்கப்படும்.</translation>
-<translation id="237058345584060620">இந்தச் சாதனத்துடன் விசையை இணைப்பதன் மூலம், உங்கள் கணக்கில் உள்நுழைய அதைப் பயன்படுத்தலாம்</translation>
 <translation id="2371076942591664043">&amp;முடிந்ததும் திற</translation>
 <translation id="2377319039870049694">பட்டியல் காட்சிக்கு மாறு</translation>
 <translation id="2377667304966270281">ஹார்டு ஃபால்ட்கள்</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">மொபைலைக் கண்டறிய முடியவில்லை. <ph name="DEVICE_TYPE" /> இன் புளூடூத் இயக்கப்பட்டிருப்பதை உறுதிப்படுத்திக்கொள்ளவும். &lt;a&gt;மேலும் அறிக&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;கோப்புறையைச் சேர்...</translation>
 <translation id="249113932447298600">இந்த நேரத்தில் <ph name="DEVICE_LABEL" /> சாதனத்தை ஆதரிக்க முடியவில்லை. மன்னிக்கவும்.</translation>
-<translation id="2492040222276243256">உங்கள் பாதுகாப்பு விசையில் உள்ள பட்டனைக் குறைந்தது 5 வினாடிகளுக்கு அழுத்திப் பிடித்திருக்கவும்</translation>
 <translation id="2493021387995458222">"ஒரு முறைக்கு ஒரு சொல்" என்றவாறு தேர்ந்தெடு</translation>
 <translation id="249303669840926644">பதிவுசெய்தலை நிறைவுசெய்ய முடியவில்லை</translation>
 <translation id="2495777824269688114">அதிகமான அம்சங்களைப் பற்றி தெரிந்துகொள்ளுங்கள் அல்லது பதில்களைப் பெறுங்கள். உதவிக்கு, “?”ஐத் தேர்ந்தெடுக்கவும்.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">மொத்தம்: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">நீண்ட</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (இயங்குதளம் <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">இந்தத் தாவல் உங்கள் திரையைப் பகிர்கிறது.</translation>
 <translation id="2586657967955657006">கிளிப்போர்டு</translation>
 <translation id="2586672484245266891">சிறிய URLஐ உள்ளிடவும்</translation>
 <translation id="2587922270115112871">கண்காணிக்கப்படும் பயனரை உருவாக்குவது Google கணக்கை உருவாக்காது, மேலும் அதன் அமைப்புகளும் தரவும்
@@ -1092,7 +1090,6 @@
 <translation id="2633199387167390344">வட்டு இடத்தில் <ph name="USAGE" /> மெ.பை. ஐ <ph name="NAME" /> பயன்படுத்துகிறது.</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />" நீட்டிப்பை அகற்ற வேண்டுமா?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> ஆல் நிறுவலை நிறைவுசெய்ய முடியவில்லை, ஆனால் அதன் வட்டுப் படிமத்திலிருந்து இயக்குவதைத் தொடரும்.</translation>
-<translation id="2633326789677284179">உங்கள் விசையின் பின்புறத்தில் அச்சிடப்பட்டுள்ள பெயரைக் கண்டறியவும்</translation>
 <translation id="2635276683026132559">உள்நுழைகிறது</translation>
 <translation id="2636625531157955190">Chrome ஆல் படத்தை அணுக முடியாது.</translation>
 <translation id="2638087589890736295">ஒத்திசைவைத் தொடங்க, கடவுச்சொற்றொடர் வேண்டும்</translation>
@@ -1260,7 +1257,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" />ஐச் சேர்...</translation>
 <translation id="2874343608108773609">உங்கள் எல்லாச் சாதனங்களிலும் கடவுச்சொற்களைப் பெற, Chrome இல் உள்நுழையவும்.</translation>
 <translation id="2875698561019555027">(Chrome பிழைப் பக்கங்கள்)</translation>
-<translation id="2876441201733326392">USB பாதுகாப்பு விசையைப் பயன்படுத்தவும்</translation>
 <translation id="288042212351694283">உங்கள் யுனிவர்சல் 2ஆம் நிலை சாதனங்களை அணுகும்</translation>
 <translation id="2881966438216424900">கடைசியாக அணுகியது:</translation>
 <translation id="2882943222317434580">சிறிது நேரத்தில் <ph name="IDS_SHORT_PRODUCT_NAME" /> மீண்டும் துவங்கப்பட்டு, மீட்டமைக்கப்படும்</translation>
@@ -1328,7 +1324,6 @@
 <translation id="2982970937345031">பெயரில்லாமல் புகாரளி</translation>
 <translation id="2984337792991268709">இன்று <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">MIDI சாதனங்களின் முழுக் கட்டுப்பாட்டைப் பெறுவதிலிருந்து இந்தப் பக்கம் தடுக்கப்பட்டுள்ளது.</translation>
-<translation id="2988599644347283908">குறிப்பு: தனிப்பயனாக்கிய அனுபவங்களையும் பயனுள்ள விளம்பரங்களையும் உங்களுக்குத் தருவதற்காக, இந்த அமைப்புகளால் கட்டுப்படுத்தப்படும் தரவு சேமிக்கப்படலாம் மற்றும் நீங்கள் உள்நுழைந்துள்ள எந்தவொரு Google சேவையிலும் பயன்படுத்தப்படலாம். account.google.comமில் உங்கள் தரவைப் பார்க்கலாம், நீக்கலாம் மற்றும் அமைப்புகளை மாற்றலாம்.</translation>
 <translation id="2989474696604907455">இணைக்கப்படவில்லை</translation>
 <translation id="2989786307324390836">DER-குறியேற்றப்பட்ட பைனரி, ஒற்றைச் சான்றிதழ்</translation>
 <translation id="2993517869960930405">பயன்பாட்டுத் தகவல்</translation>
@@ -1381,7 +1376,6 @@
 <translation id="304826556400666995">தாவல்களை இயக்கு</translation>
 <translation id="3053013834507634016">சான்றிதழ் விசைப் பயன்பாடு</translation>
 <translation id="3057861065630527966">உங்கள் படங்கள் மற்றும் வீடியோக்களைக் காப்புப் பிரதியெடுக்கவும்</translation>
-<translation id="3059313675706898490">Android மெசேஜஸ்</translation>
 <translation id="3060379269883947824">பேசும் திரையை இயக்கு</translation>
 <translation id="3061707000357573562">பேட்ச் சேவை</translation>
 <translation id="3064410671692449875">போதுமான தரவு இல்லை</translation>
@@ -1410,7 +1404,6 @@
 <translation id="3090819949319990166">வெளிப்புற crx கோப்பை <ph name="TEMP_CRX_FILE" />க்கு நகலெடுக்க முடியாது.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" இணைக்கப்பட்டது</translation>
 <translation id="3101709781009526431">தேதி மற்றும் நேரம்</translation>
-<translation id="3104900172193317662">உங்கள் பாதுகாப்பு விசையைப் பயன்படுத்த அனுமதித்தல்</translation>
 <translation id="310671807099593501">தளமானது புளூடூத்தைப் பயன்படுத்துகிறது</translation>
 <translation id="3115128645424181617">மொபைலைக் கண்டறிய முடியவில்லை. மொபைல் அருகில் இருப்பதையும் புளூடூத் இயக்கப்பட்டிருப்பதையும் உறுதிப்படுத்திக்கொள்ளவும்.</translation>
 <translation id="3115147772012638511">தேக்ககத்திற்காக காத்திருக்கிறது...</translation>
@@ -1494,7 +1487,6 @@
 <translation id="3251759466064201842">&lt;சான்றிதழின் பகுதியல்ல&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> கோப்புகளுக்கான இயல்புநிலை பயன்பாட்டைத் தேர்வுசெய்:</translation>
 <translation id="3254516606912442756">தானியங்கு நேர மண்டலத்தைக் கண்டறிதல் முடக்கப்பட்டது</translation>
-<translation id="3254772308201947812">ஏற்கிறேன்</translation>
 <translation id="3264544094376351444">Sans-Serif எழுத்துரு</translation>
 <translation id="3264547943200567728">உங்கள் Chromebox இன் நெட்வொர்க்கை அமைக்க முடியவில்லை</translation>
 <translation id="3264582393905923483">சூழல்</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">இதன்படி வரிசைப்படுத்து</translation>
 <translation id="3737274407993947948">Linuxஸை நிறுவும்போது பிழை ஏற்பட்டது...</translation>
 <translation id="3737536731758327622">உங்கள் பதிவிறக்கங்கள் இங்கே தோன்றும்</translation>
-<translation id="3738671331307774213">உங்கள் அடையாளத்தைச் சரிபார்ப்பது, உங்கள் தனிப்பட்ட தரவைப் பாதுகாக்க உதவும்</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" />ஐத் திறக்கவா?</translation>
 <translation id="3741158646617793859">இப்போது <ph name="DEVICE_NAME" />, Admin Console இல் தோன்றும்</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: ஒத்திசைவு இடைநிறுத்தப்பட்டுள்ளது</translation>
 <translation id="3860381078714302691">Hangouts Meetக்கு வரவேற்கிறோம்</translation>
+<translation id="3861241522664181545">பக்கம் இடைநிறுத்தப்பட்டுள்ளது.</translation>
 <translation id="3862134173397075045">Chrome இன் அனுப்புதல் அனுபவத்திற்கு வரவேற்கிறோம்!</translation>
 <translation id="3862788408946266506">'kiosk_only' மெனிஃபெஸ்ட் பண்புக்கூறைக் கொண்ட பயன்பாட்டை, Chrome OS கியோஸ்க் பயன்முறையிலேயே நிறுவ வேண்டும்</translation>
 <translation id="3865414814144988605">தெளிவு</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">இதை இயக்குவதற்கு, <ph name="BEGIN_LINK" />ஒத்திசைவை மீட்டமைத்து<ph name="END_LINK" /> உங்கள் ஒத்திசைவுக் கடவுச்சொற்றொடரை அகற்றவும்.</translation>
 <translation id="3878840326289104869">கண்காணிக்கப்படும் பயனரை உருவாக்குகிறது</translation>
 <translation id="3879748587602334249">பதிவிறக்க நிர்வாகி</translation>
-<translation id="3880709822663530586">சாதனத்தின் புளூடூத் இயக்கப்பட்டிருக்கும்போது மட்டுமே பாதுகாப்பு விசை வேலை செய்யும்</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> மூலம் குறிப்புகளை எடுத்தல்</translation>
 <translation id="3892414795099177503">OpenVPN / L2TPஐச் சேர்...</translation>
 <translation id="3893536212201235195">உங்கள் அணுகல்தன்மை அமைப்புகளைப் படித்தல் மற்றும் மாற்றுதல்</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">பாதுகாப்பு மாட்யூல் தயாராகிறது. காத்திருக்கவும் (இதற்குச் சில நிமிடங்கள் ஆகலாம்)...</translation>
 <translation id="4099060993766194518">இயல்புத் தேடல் இன்ஜினை மீட்டமைக்கவா?</translation>
 <translation id="4100733287846229632">சாதனத்தில் இடம் மிகவும் குறைவாக உள்ளது</translation>
+<translation id="4103091233824664032">திரைப் பூட்டை உள்ளமைத்து உள்நுழைய, கடவுச்சொல்லை உள்ளிடவும்</translation>
 <translation id="4104163789986725820">ஏற்று&amp;மதி...</translation>
 <translation id="4105563239298244027">Google இயக்ககம் மூலம் 1 டெ.பை. இலவசமாகப் பெறுக</translation>
 <translation id="4107048419833779140">சேமிப்பகச் சாதனங்களைக் கண்டறிந்து, வெளியேற்றுதல்</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">சூரிய உதயத்தின் போது, நைட் லைட் விருப்பம் தானாக முடக்கப்படும்</translation>
 <translation id="4138267921960073861">உள்நுழைவு திரையில், பயனர் பெயர்கள் மற்றும் புகைப்படங்களைக் காண்பி</translation>
 <translation id="4144218403971135344">மேலும் தரமான வீடியோக்களைப் பெறலாம், பேட்டரி நிலையை நீட்டிக்கலாம். Cast வசதியுள்ள திரையில் மட்டுமே வீடியோக்கள் இயக்கப்படும்.</translation>
-<translation id="414599683948988413">USBயுடன் உங்கள் பாதுகாப்புச் சாவியைப் பயன்படுத்தவும்</translation>
 <translation id="4146026355784316281">எப்போதும் சிஸ்டம் வியூவரைக் கொண்டு திற</translation>
 <translation id="4146785383423576110">இயல்பு அமைப்புகளுக்கு மீட்டமைத்து, தீங்கிழைக்கும் மென்பொருளை அகற்று</translation>
 <translation id="4147897805161313378">Google Photos</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">முடக்கு</translation>
 <translation id="4400367121200150367">கடவுச்சொல்லை ஒருபோதும் சேமிக்க வேண்டாம் எனக் குறிக்கப்பட்ட தளங்கள் இங்கே தோன்றும்</translation>
 <translation id="4400632832271803360">மேல் வரிசையில் உள்ள விசைகளின் செயல்பாட்டை மாற்ற, தொடக்கி விசையைத் தொடர்ந்து அழுத்திப் பிடிக்கவும்</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">உ&amp;தவி</translation>
 <translation id="4409697491990005945">ஓரங்கள்</translation>
 <translation id="4411578466613447185">குறியீடு அங்கீகரிப்பாளர்</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">உங்கள் கணினியில் உள்ள தீங்கிழைக்கும் மென்பொருளை Chrome கண்டறிந்து, அதை அகற்றும்</translation>
 <translation id="4481530544597605423">இணைக்காத சாதனங்கள்</translation>
 <translation id="4482194545587547824">தேடல் மற்றும் பிற Google சேவைகளைத் தனிப்பயனாக்க, உங்கள் உலாவல் வரலாற்றை Google பயன்படுத்தக்கூடும்</translation>
+<translation id="4493287891836751813">Google அசிஸ்டண்ட்டைப் பற்றித் தெரிந்துகொள்ளவும்</translation>
 <translation id="4495419450179050807">இந்தப் பக்கத்தில் காண்பிக்க வேண்டாம்</translation>
 <translation id="4499718683476608392">படிவங்களை ஒரே கிளிக்கில் நிரப்புவதற்காக, கிரெடிட் கார்டுத் தன்னிரப்பி அம்சத்தை இயக்கும்</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> செயலிழந்தது</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">ஒலி வேண்டாம்</translation>
 <translation id="4742746985488890273">அடுக்கில் பொருத்து</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />பயன்பாடுகளைப் புதுப்பிப்பது எப்படி என்பதை அறிக<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">செய்திகள்</translation>
 <translation id="4746971725921104503">நீங்கள் ஏற்கனவே இந்தப் பெயரில் உள்ள பயனரை நிர்வகிப்பதுபோல் தெரிகிறது. <ph name="LINK_START" />இந்தச் சாதனத்தில் <ph name="USER_DISPLAY_NAME" /> ஐ இறக்குமதி செய்ய<ph name="LINK_END" /> வேண்டுமா?</translation>
 <translation id="4748762018725435655">Chrome இணைய அங்காடியிலிருந்து நீட்டிப்பை நிறுவ வேண்டும்</translation>
 <translation id="4750394297954878236">பரிந்துரைகள்</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;சுயவிவரமாக்கம் இயக்கப்பட்டது</translation>
 <translation id="4823484602432206655">பயணர் மற்றும் சாதன அமைப்புகளைப் படிக்கும் மற்றும் மாற்றும்</translation>
 <translation id="4823651846660089135">படிப்பதற்கு மட்டுமேயான சாதனம்</translation>
+<translation id="4823955295535347797">திரை இயக்கத்தில் இருக்கும்போது, எந்த நேரத்திலும் "Ok Google" என்று சொல்லி அசிஸ்டண்ட்டை அணுகலாம்.</translation>
 <translation id="4828937774870308359">ஆஸ்திரேலியன்</translation>
 <translation id="4829768588131278040">பின்னை அமை</translation>
 <translation id="4830502475412647084">OS புதுப்பிப்பை நிறுவுகிறது</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">இந்தச் சிதைவிற்கான காரணங்களை ஆராய்ந்து, சரிசெய்வதற்கு எங்கள் பொறியாளர்களுக்கு உதவவும். முடிந்தால், என்ன நடந்தது என்பதைத் துல்லியமாகப் பட்டியலிடவும். நீங்கள் வழங்கும் சிறிய தகவலும் எங்களுக்கு உதவும்!</translation>
 <translation id="4876895919560854374">திரையைப் பூட்டவும் மற்றும் தடைநீக்கவும்</translation>
 <translation id="4877017884043316611">Chromebox உடன் இணை</translation>
+<translation id="4879491255372875719">தானியங்கு (இயல்பு)</translation>
 <translation id="4880214202172289027">ஒலியளவு ஸ்லைடர்</translation>
 <translation id="4880328057631981605">ஆக்சஸ் பாயிண்ட் நேம்</translation>
 <translation id="4880520557730313061">தானாகச் சரிசெய்</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">மேல்</translation>
 <translation id="5100114659116077956">புதிய அம்சங்களை வழங்குவதற்காக, Chromebox புதுப்பிக்கப்பட வேண்டும்.</translation>
 <translation id="5101042277149003567">புத்தகக்குறிகள் அனைத்தையும் திற</translation>
-<translation id="5104546332954397226">ஃபோனைப் பாதுகாப்புச் சாவியாகப் பயன்படுத்தவும்</translation>
 <translation id="5105855035535475848">தாவல்களைப் பொருத்து</translation>
 <translation id="5108967062857032718">அமைப்புகள் - Android பயன்பாடுகளை அகற்றவும்</translation>
 <translation id="5109044022078737958">மியா</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">மூடப்பட்ட தாவலை மீ&amp;ண்டும் திற</translation>
 <translation id="52912272896845572">தனிப்பட்ட விசை கோப்பு செல்லாதது.</translation>
 <translation id="529175790091471945">இந்தச் சாதனத்தின் எல்லா தரவையும் அழி</translation>
-<translation id="5292195676005197571">பெரும்பாலான விசைகளைப் பயன்படுத்த, பட்டனை அழுத்தினால் போதுமானது</translation>
 <translation id="5293170712604732402">அமைப்புகளை, அவற்றின் அசல் இயல்புநிலைகளுக்கு மீட்டமைக்கும்</translation>
 <translation id="5297082477358294722">கடவுச்சொல் சேமிக்கப்பட்டது. சேமிக்கப்பட்ட கடவுச்சொற்களை <ph name="SAVED_PASSWORDS_STORE" /> இல் பார்க்கலாம், நிர்வகிக்கலாம்.</translation>
 <translation id="5298219193514155779">தீம் – ஐ உருவாக்கியவர்</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">ஏற்கிறேன்</translation>
 <translation id="532943162177641444">இந்தச் சாதனம் பயன்படுத்தக்கூடிய மொபைல் ஹாட்ஸ்பாட்டை அமைக்க, <ph name="PHONE_NAME" /> இல் தெரியும் அறிவிப்பைத் தட்டவும்.</translation>
 <translation id="5329858601952122676">&amp;நீக்கு</translation>
+<translation id="5329945517224105597">உங்கள் திரையில் உள்ளவற்றுடன் அதிகம் தொடர்புடைய பரிந்துரைகளையும் குறிப்பிட்ட செயல்களையும் அசிஸ்டண்ட் வழங்கும். அசிஸ்டண்ட் அமைப்புகளுக்குச் சென்று, இதை மாற்றலாம்</translation>
 <translation id="5330145655348521461">இந்தக் கோப்புகள் மற்றொரு டெஸ்க்டாப்பில் திறக்கப்பட்டன. இதைப் பார்க்க, <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) க்கு நகர்த்தவும்.</translation>
 <translation id="5330512191124428349">தகவலைப் பெறு</translation>
 <translation id="5331069282670671859">உங்களிடம் இந்த வகையான சான்றிதழ்கள் இல்லை</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">ஒலியை இயக்க, தளங்களை அனுமதி</translation>
 <translation id="5390284375844109566">அட்டவணைப்படுத்திய தரவுத்தளம்</translation>
 <translation id="5390743329570580756">இதற்காக அனுப்பு:</translation>
-<translation id="5392327114396848796">உள்ளமைக்கப்பட்ட பாதுகாப்புச் சாவியைப் பயன்படுத்தவும்</translation>
 <translation id="5397794290049113714">நீங்கள்</translation>
 <translation id="5398572795982417028">பக்க வரம்பை மீறிவிட்டது, அதிகபட்ச வரம்பு <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">விளம்பரங்கள் தடுக்கப்பட்டன</translation>
@@ -3077,6 +3071,7 @@
    <ph name="LINE_BREAKS" />
    காப்பகம் அல்லது விர்ச்சுவல் வட்டிலுள்ள எல்லாக் கோப்புகளையும் மூடி, மீண்டும் முயலவும்.</translation>
 <translation id="5687326903064479980">நேரமண்டலம்</translation>
+<translation id="568824803367507355">"Ok Google"ஐக் கண்டறிதல்</translation>
 <translation id="5689516760719285838">இருப்பிடம்</translation>
 <translation id="56907980372820799">தரவை இணை</translation>
 <translation id="5691511426247308406">குடும்பம்</translation>
@@ -3174,7 +3169,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - கேமரா அல்லது மைக்ரோஃபோன் ரெக்கார்டு செய்கிறது</translation>
 <translation id="5835754902560991078">மிகமிகக் குறுகியது (0.6வி)</translation>
 <translation id="5838456317242088717">நடப்பு மறைநிலை அமர்வு</translation>
-<translation id="5842053879378944309"><ph name="APP_NAME" /> இல் USB பாதுகாப்பு விசையைப் பயன்படுத்தவும்</translation>
 <translation id="5842497610951477805">புளூடூத்தை இயக்கு</translation>
 <translation id="5843250171025351504">உங்கள் நிர்வாகியால் குறிப்பிடப்படும் குறைந்தபட்சக் கிளையன்ட் பதிப்புடன் உங்கள் சாதனம் இனி இணங்காது. உள்நுழைய, புதுப்பிக்கவும்.</translation>
 <translation id="5846929185714966548">தாவல் 4</translation>
@@ -3492,7 +3486,6 @@
 <translation id="6317318380444133405">இனி ஆதரிக்கப்படாது.</translation>
 <translation id="6317369057005134371">பயன்பாட்டு சாளரத்திற்காகக் காத்திருக்கிறது...</translation>
 <translation id="6318407754858604988">பதிவிறக்கம் தொடங்கியது</translation>
-<translation id="6322653941595359182">உங்கள் Chromebookகிலிருந்து மெசேஜ்களை அனுப்பலாம், பெறலாம்</translation>
 <translation id="6324916366299863871">ஷார்ட்கட்டைத் திருத்து</translation>
 <translation id="6325191661371220117">தானியங்கு துவக்கியை முடக்கு</translation>
 <translation id="6326175484149238433">Chrome இலிருந்து அகற்று</translation>
@@ -3536,6 +3529,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />கணினியின் தகவல்<ph name="END_LINK1" /> மற்றும் <ph name="BEGIN_LINK2" />அளவீடுகளை<ph name="END_LINK2" /> அனுப்பு</translation>
 <translation id="6397094776139756010">ஒத்திசைவு மற்றும் தனிப்பயனாக்க விருப்பங்கள்</translation>
 <translation id="6397592254427394018">&amp;மறைநிலை சாளரத்தில் எல்லா புக்மார்க்ஸையும் திற</translation>
+<translation id="639777613761517128">$1 இல் கோப்புகளைத் திறப்பதற்கு, அவற்றை முதலில் “Linux கோப்புகள்” கோப்புறைக்கு நகலெடுக்கவும்.</translation>
 <translation id="6398715114293939307">Google Play ஸ்டோரை அகற்று</translation>
 <translation id="6398765197997659313">முழுத்திரையிலிருந்து வெளியேறு</translation>
 <translation id="6399774419735315745">உளவாளி</translation>
@@ -3561,7 +3555,6 @@
 <translation id="642282551015776456">கோப்புறைப் பெயரின் கோப்பாக இந்தப் பெயரைப் பயன்பட முடியாமல் போகக்கூடும்</translation>
 <translation id="642469772702851743">இந்தச் சாதனம் (SN: <ph name="SERIAL_NUMBER" />), உரிமையாளரால் பூட்டப்பட்டது.</translation>
 <translation id="6426200009596957090">ChromeVox அமைப்புகளைத் திற</translation>
-<translation id="6427415464407526111">பாதுகாப்பு விசையைத் தேர்ந்தெடுத்தல்</translation>
 <translation id="6429384232893414837">புதுப்பிப்பதில் பிழை</translation>
 <translation id="6430814529589430811">Base64-குறியேற்றப்பட்ட ASCII, ஒற்றைச் சான்றிதழ்</translation>
 <translation id="6431217872648827691"><ph name="TIME" />
@@ -3719,7 +3712,6 @@
 <translation id="6655190889273724601">டெவெலப்பர் பயன்முறை</translation>
 <translation id="6655458902729017087">கணக்குகளை மறை</translation>
 <translation id="6657585470893396449">கடவுச்சொல்</translation>
-<translation id="6658023813581644008">உள்நுழைவதற்கு Smart Lockகை அமைக்க, கடவுச்சொல்லை உள்ளிடவும்</translation>
 <translation id="6659213950629089752">இந்தப் பக்கம் "<ph name="NAME" />" நீட்டிப்பால் பெரிதாக்கப்பட்டது</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">எதிர்பாராதவிதமாக, உங்கள் கணினியானது ஒரு தவறான வன்பொருள் ஐடியுடன் உள்ளமைக்கப்பட்டது. இதனால் சமீபத்திய பாதுகாப்பு திருத்தங்கள் மூலம் Chrome OS ஐப் புதுப்பிப்பதிலிருந்து தடுக்கும், உங்கள் கணினி <ph name="BEGIN_BOLD" />தீங்கிழைக்கும் தாக்குதல்களின்<ph name="END_BOLD" /> மூலம் பாதிக்கப்படலாம்.</translation>
@@ -3855,7 +3847,6 @@
 <translation id="6885771755599377173">முறைமைத் தகவலின் மாதிரிக்காட்சி</translation>
 <translation id="6886871292305414135">இணைப்பை புதிய &amp;தாவலில் திற</translation>
 <translation id="6892812721183419409"><ph name="USER" /> உடையதாக இணைப்பைத் திற</translation>
-<translation id="6896398788631624004">பாதுகாப்பு விசையைச் செருகி, அதைச் செயல்படுத்தவும்</translation>
 <translation id="6896758677409633944">நகலெடு</translation>
 <translation id="6898440773573063262">இந்தச் சாதனத்தில் தானாகத் துவங்குவதற்கு, கியோஸ்க் பயன்பாடுகளைத் தற்போது உள்ளமைக்கலாம்.</translation>
 <translation id="6898699227549475383">நிறுவனம் (O)</translation>
@@ -3874,6 +3865,7 @@
 <translation id="6915804003454593391">பயனர்:</translation>
 <translation id="6916590542764765824">நீட்டிப்புகளை நிர்வகி</translation>
 <translation id="6920989436227028121">வழக்கமான தாவலாகத் திற</translation>
+<translation id="6921709132208495314">இந்தப் பக்கத்தில் தரவுகளைப் பயன்படுத்துவதை நிறுத்த</translation>
 <translation id="6922128026973287222">Google தரவு சேமிப்பானைப் பயன்படுத்தி தரவைச் சேமிக்கலாம், வேகமாக உலாவலாம். மேலும் அறிய, கிளிக் செய்யவும்.</translation>
 <translation id="6923132443355966645">உருட்டு / கிளிக் செய்</translation>
 <translation id="6930242544192836755">மொத்த நேரம்</translation>
@@ -3896,6 +3888,7 @@
 <translation id="6965382102122355670">சரி</translation>
 <translation id="6965648386495488594">போர்ட்</translation>
 <translation id="6965978654500191972">சாதனம்</translation>
+<translation id="6968288415730398122">திரைப் பூட்டை உள்ளமைக்க, கடவுச்சொல்லை உள்ளிடவும்</translation>
 <translation id="6970480684834282392">தொடங்கப்படும் வகை</translation>
 <translation id="6970856801391541997">குறிப்பிட்ட பக்கங்களை அச்சிடு</translation>
 <translation id="6972180789171089114">ஆடியோ/வீடியோ</translation>
@@ -3906,6 +3899,7 @@
 <translation id="6978121630131642226">தேடு பொறிகள்</translation>
 <translation id="6978611942794658017">இந்தக் கோப்பு Windows மென்பொருளைப் பயன்படுத்தும் கணினிக்காக வடிவமைக்கப்பட்டுள்ளது. Chrome OS இல் இயங்கும் உங்கள் சாதனங்களுடன் இணக்கத்தன்மை கொண்டதல்ல. பொருத்தமான மாற்றுப் பயன்பாட்டிற்காக Chrome இணைய அங்காடியில் தேடவும்.</translation>
 <translation id="6979158407327259162">Google இயக்ககம்</translation>
+<translation id="6979440798594660689">முடக்கு (இயல்பு)</translation>
 <translation id="6979737339423435258">எல்லா நேரமும்</translation>
 <translation id="6980462514016882061">தேடல், விளம்பரங்கள் மற்றும் பிற Google சேவைகளைத் தனிப்பயனாக்க, உங்கள் உலாவல் வரலாற்றை Google பயன்படுத்தக்கூடும்</translation>
 <translation id="6981982820502123353">அணுகல் தன்மை</translation>
@@ -4054,6 +4048,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />உங்கள் சாதனம் மற்றும் அதை நீங்கள் பயன்படுத்தும் விதம் (எ.கா: பேட்டரி நிலை, பயன்பாட்டு உபயோகம், நெட்வொர்க் இணைப்புநிலை) குறித்த பொதுவான தகவல் இதுவாகும். எல்லோருக்காகவும் Google இன் தயாரிப்புகளையும் சேவைகளையும் மேம்படுத்த, தரவு பயன்படுத்தப்படும். ஒருங்கிணைக்கப்பட்ட சில தகவலானது கூட்டாளர்கள் (எ.கா. Android டெவெலப்பர்கள்) தங்கள் பயன்பாடுகளையும் தயாரிப்புகளையும் மேலும் சிறப்பாக்க உதவும்.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />இந்த அம்சத்தை முடக்குவதால், சாதனப் புதுப்பிப்புகள், பாதுகாப்பு போன்ற அத்தியாவசிய சேவைகளைப் பெறத் தேவைப்படும் தகவலை அனுப்புவதற்கான சாதனத் திறனில் பாதிப்பு ஏற்படாது.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />அமைப்புகள் &gt; Google என்பதற்குச் சென்று, இந்த அம்சத்தைக் கட்டுப்படுத்தலாம். மெனுவிலிருந்து உபயோகம் &amp; பிழை அறிக்கைகள் என்பதைத் தேர்ந்தெடுக்கவும்.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">இந்தச் சாதனத்தில் பயன்படுத்தக் கூடிய உங்கள் கணக்கிலிருந்து <ph name="NUMBER_OF_APPS" /> ஆப்ஸைக் கண்டறிந்துள்ளோம்.</translation>
 <translation id="7199158086730159431">உதவி பெறுக</translation>
 <translation id="7200083590239651963">உள்ளமைவைத் தேர்ந்தெடுக்கவும்</translation>
 <translation id="720110658997053098">இந்தச் சாதனத்தை, கியோஸ்க் பயன்முறையில் நிரந்தரமாக வைத்திரு</translation>
@@ -4074,7 +4069,6 @@
 <translation id="7228523857728654909">திரைப் பூட்டு மற்றும் உள்நுழைவு</translation>
 <translation id="7229570126336867161">EVDO தேவை</translation>
 <translation id="7230787553283372882">உரை அளவைத் தனிப்பயனாக்கலாம்</translation>
-<translation id="7231589788477569369">இந்த அமைப்புகள் மூலம் முழுமையான அசிஸ்டண்ட் அனுபவத்தைப் பெறுக</translation>
 <translation id="7232750842195536390">பெயரை மாற்ற முடியவில்லை</translation>
 <translation id="7234406375359457793">பகிர்வை ஏற்றுவதில் பிழை. குறிப்பிட்ட பகிர்வானது ஆதரிக்கப்படவில்லை.</translation>
 <translation id="7238585580608191973">SHA-256 விரல்அச்சு</translation>
@@ -4084,7 +4078,6 @@
 <translation id="7243632151880336635">அழித்து, வெளியேறு</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (சிறந்தது)</translation>
 <translation id="7246339268451149667">கைரேகை மூலம் திறப்பதை இயக்கவா?</translation>
-<translation id="7246489301073081944">வெளியேற, |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />|ஐ அழுத்திப் பிடித்திருக்கவும்</translation>
 <translation id="7246947237293279874">FTP ப்ராக்ஸி</translation>
 <translation id="725109152065019550">மன்னிக்கவும், உங்கள் கணக்கில் வெளிப்புறச் சேமிப்பை நிர்வாகி முடக்கியுள்ளார்.</translation>
 <translation id="7253521419891527137">&amp;மேலும் அறிக</translation>
@@ -4237,7 +4230,6 @@
 <translation id="7489605380874780575">தகுதியைச் சரிபார்</translation>
 <translation id="749028671485790643">நபர் <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC முகவரி</translation>
-<translation id="7490950320178383728">புளூடூத்துடன் உங்கள் பாதுகாப்புச் சாவியைப் பயன்படுத்தவும்</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">கடவுச்சொற்கள், கிரெடிட் கார்டு எண்கள் போன்ற தனிப்பட்ட தரவு உட்பட, நீங்கள் உள்ளிடும் எல்லா உரையையும் <ph name="EXTENSION_NAME" /> நீட்டிப்பு சேகரிக்கக்கூடும். இந்த நீட்டிப்பைப் பயன்படுத்த விரும்புகிறீர்களா?</translation>
 <translation id="7494065396242762445">சாளர அமைப்புகள்</translation>
@@ -4485,7 +4477,6 @@
 <translation id="7850851215703745691">இந்த இயக்ககக் கோப்புகள் இதுவரை பகிரப்படவில்லை</translation>
 <translation id="7851457902707056880">உரிமையாளர் கணக்கிற்கென மட்டுமே உள்நுழைவு வரம்பிடப்பட்டுள்ளது. மறுதொடக்கம் செய்து உரிமையாளர் கணக்கு மூலம் உள்நுழையவும். இயந்திரம் 30 நொடிகளில் தானாக மீண்டும் தொடங்கும்.</translation>
 <translation id="7851716364080026749">கேமரா மற்றும் மைக்ரோஃபோன் அணுகலை எப்போதும் தடு</translation>
-<translation id="7851816139220202929">NFCயுடன் உங்கள் பாதுகாப்புச் சாவியைப் பயன்படுத்தவும்</translation>
 <translation id="7853747251428735">மேலும் கருவி&amp;கள்</translation>
 <translation id="7856006446339184955">சாதனத் தரவை அனுப்பும். இந்தச் சாதனம் தற்போது பிழை அறிக்கைகளையும் சாதனம் மற்றும் பயன்பாட்டின் உபயோகத் தரவையும் தானாகவே Googleக்கு அனுப்பும். உரிமையாளர் இந்த <ph name="BEGIN_LINK1" />அமைப்பைச்<ph name="END_LINK1" /> செயல்படுத்துகிறார். கூடுதல் இணையம் மற்றும் பயன்பாட்டுச் செயல்பாடு இயக்கத்தில் இருந்தால், இந்தத் தகவல் உங்கள் கணக்கில் சேமிக்கப்படும், எனது செயல்பாடு என்பதில் இதை நீங்கள் நிர்வகிக்கலாம். <ph name="BEGIN_LINK2" />மேலும் அறிக<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">விதிவிலக்கைச் சேர்</translation>
@@ -4568,6 +4559,7 @@
 <translation id="7973962044839454485">தவறான பயனர்பெயர் அல்லது கடவுச்சொல் காரணமாக PPP அங்கீகாரம் தோல்வியடைந்தது</translation>
 <translation id="7974566588408714340"><ph name="EXTENSIONNAME" />ஐப் பயன்படுத்த முயற்சி</translation>
 <translation id="7974936243149753750">ஓவர்ஸ்கேன்</translation>
+<translation id="79766959863778284">XR தனிமைப்படுத்தப்பட்ட சாதனச் சேவை</translation>
 <translation id="7977551819349545646">Chromeboxஐப் புதுப்பிக்கிறது...</translation>
 <translation id="7978412674231730200">தனிப்பட்ட விசை</translation>
 <translation id="7978450511781612192">உங்கள் Google கணக்குகளிலிருந்து வெளியேற்றப்படுவீர்கள். இனி உங்கள் புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் மற்றும் பிற அமைப்புகள் ஒத்திசைக்கப்படாது.</translation>
@@ -4618,7 +4610,6 @@
 <translation id="8030656706657716245">பிரிண்டரைச் சேர்</translation>
 <translation id="8032244173881942855">தாவலை அனுப்ப முடியவில்லை.</translation>
 <translation id="8033827949643255796">தேர்ந்தெடுக்கப்பட்டன</translation>
-<translation id="8033958968890501070">நேரம் முடிந்தது</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{எல்லாவற்றையும் &amp;மறைநிலைச் சாளரத்தில் திற}=1{&amp;மறைநிலைச் சாளரத்தில் திற}other{எல்லாவற்றையும் (#) &amp;மறைநிலைச் சாளரத்தில் திற}}</translation>
 <translation id="8037117027592400564">தொகுக்கப்பட்ட பேச்சைப் பயன்படுத்திப் பேசப்படும் எல்லா உரையையும் படிக்கலாம்</translation>
 <translation id="8037357227543935929">கேள் (இயல்பு)</translation>
@@ -4791,6 +4782,7 @@
 <translation id="8320459152843401447">உங்கள் முழுத் திரை</translation>
 <translation id="8322814362483282060">இந்தப் பக்கம் உங்கள் மைக்ரோஃபோனை அணுகுவதிலிருந்து தடுக்கப்பட்டுள்ளது.</translation>
 <translation id="8326478304147373412">PKCS #7, சான்றிதழ் சங்கிலி</translation>
+<translation id="8327039559959785305">Linux கோப்புகளை ஏற்றுவதில் பிழை ஏற்பட்டது. மீண்டும் முயலவும்.</translation>
 <translation id="8329978297633540474">எளிய உரை</translation>
 <translation id="8335587457941836791">அடுக்கிலிருந்து காட்டு</translation>
 <translation id="8336153091935557858">நேற்று <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4841,7 +4833,6 @@
 <translation id="8425213833346101688">மாற்று</translation>
 <translation id="8425492902634685834">பணிப்பட்டிக்குப் பொருத்து</translation>
 <translation id="8425755597197517046">ஒ&amp;ட்டிவிட்டு தேடு</translation>
-<translation id="8426117172745886547">வெளியேறும் முன்பு எச்சரிக்கை செய் (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">இயக்குகிறது</translation>
 <translation id="8427292751741042100">ஏதேனும் ஹோஸ்ட்டில் உட்பொதிக்கப்பட்டது</translation>
 <translation id="8428213095426709021">அமைப்புகள்</translation>
@@ -4929,7 +4920,6 @@
 <translation id="8551388862522347954">உரிமங்கள்</translation>
 <translation id="8553342806078037065">பிற பயனர்களை நிர்வகி</translation>
 <translation id="8554899698005018844">மொழி இல்லை</translation>
-<translation id="8557347704037207368">Android Web Messagesஸிலிருந்து உங்களுக்கு அறிவிப்புகளை அனுப்பும்</translation>
 <translation id="855773602626431402">சாண்ட்பாக்ஸ் செய்யப்படாத செருகுநிரல் இந்தப் பக்கத்தில் இயக்கப்படுவதிலிருந்து தடுக்கப்பட்டது.</translation>
 <translation id="8557930019681227453">மேனிஃபெஸ்ட்</translation>
 <translation id="8559694214572302298">இமேஜ் டீகோடர்</translation>
@@ -5042,6 +5032,7 @@
 <translation id="8714154114375107944">ஆதரவு நிறுத்தப்பட்டது</translation>
 <translation id="8714838604780058252">பின்னணி கிராஃபிக்ஸ்</translation>
 <translation id="8715480913140015283">பின்னணித் தாவல் உங்கள் கேமராவைப் பயன்படுத்துகிறது</translation>
+<translation id="8716931980467311658">இந்த <ph name="DEVICE_TYPE" /> சாதனத்திலிருந்து உங்கள் Linux கோப்புகள் கோப்புறையிலுள்ள எல்லா Linux ஆப்ஸையும் தரவையும் நீக்கவா?</translation>
 <translation id="8719653885894320876"><ph name="PLUGIN_NAME" />ஐப் பதிவிறக்க முடியவில்லை</translation>
 <translation id="8723829621484579639">இதற்கான மறைநிலை சப்ஃபிரேம்கள்: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">கோப்புறையில் &amp;காண்பி</translation>
@@ -5205,7 +5196,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - சிதைந்துவிட்டது</translation>
 <translation id="8983677657449185470">பாதுகாப்பான உலாவலை மேம்படுத்த உதவுக</translation>
 <translation id="8984654317541110628">கோப்புப் பகிர்வு URL</translation>
-<translation id="8984872292925913496">உங்கள் விசையின் பின்புறத்தில் உள்ள 6 இலக்கப் PINனைக் கண்டறியவும்</translation>
 <translation id="8986362086234534611">மற</translation>
 <translation id="8986494364107987395">பயன்பாட்டுப் புள்ளிவிவரங்களையும் சிதைவு அறிக்கைகளையும் தானாகவே Google க்கு அனுப்பு</translation>
 <translation id="8987927404178983737">மாதம்</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 738ac7c..bb58302 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">కీబోర్డ్ దృష్టి కేంద్రీకరణ గల ఆబ్జెక్ట్ మారినప్పుడు దాన్ని హైలైట్ చేస్తుంది</translation>
 <translation id="1173894706177603556">పేరుమార్చు</translation>
 <translation id="1174073918202301297">షార్ట్‌కట్ జోడించబడింది</translation>
-<translation id="1174808551768282258">మీ ఫోన్‌తో మీ Chromebookను అన్‌లాక్ చేయండి. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;ముద్రించు...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" />ను కాపీ చేస్తోంది...</translation>
 <translation id="1177138678118607465">శోధన, ప్రకటనలు మరియు ఇతర Google సేవలను వ్యక్తిగతీకరించడం కోసం Google మీ బ్రౌజింగ్ చరిత్రను ఉపయోగించవచ్చు. మీరు ఏ సమయంలో అయినా myaccount.google.com/activitycontrols/searchలో దీనిని మార్చవచ్చు</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">పాజ్ చేయి</translation>
 <translation id="1181037720776840403">తీసివేయి</translation>
 <translation id="1183237619868651138">స్థానిక కాష్‌లో <ph name="EXTERNAL_CRX_FILE" />ని ఇన్‌స్టాల్ చేయడం సాధ్యపడదు.</translation>
-<translation id="1183378459020939734">మీ భద్రతా కీని జత చేయడానికి సిద్ధంగా ఉన్నారా?</translation>
 <translation id="1185924365081634987">మీరు ఈ నెట్‌వర్క్ లోపాన్ని పరిష్కరించడానికి <ph name="GUEST_SIGNIN_LINK_START" />అతిథిగా బ్రౌజ్ చేయడాన్ని<ph name="GUEST_SIGNIN_LINK_END" /> కూడా ప్రయత్నించవచ్చు.</translation>
 <translation id="1186771945450942097">హానికరమైన సాఫ్ట్‌వేర్‌ని తీసివేయండి</translation>
 <translation id="1187722533808055681">నిష్క్రియ మేల్కొలుపులు</translation>
@@ -271,6 +269,7 @@
 <translation id="1397854323885047133">సమకాలీకరణ మరియు వ్యక్తిగతీకరణ</translation>
 <translation id="1398853756734560583">గరిష్ఠీకరించు</translation>
 <translation id="1399511500114202393">వినియోగదారు సర్టిఫికెట్ లేదు</translation>
+<translation id="1401165786814632797">మీ పరికరం యాక్టివ్ అయ్యి, అన్‌లాక్ చేయబడినప్పుడు మీరు ఎప్పుడైనా "OK Google" అని చెప్పి, అసిస్టెంట్‌ను యాక్సెస్ చేయవచ్చు.</translation>
 <translation id="140250605646987970">మీ ఫోన్ కనుగొనబడింది. కానీ Smart Lock Android 5.0 మరియు తదుపరి సంస్కరణ ఉన్న పరికరాల్లో మాత్రమే పని చేస్తుంది. &lt;a&gt;మరింత తెలుసుకోండి&lt;/a&gt;</translation>
 <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (పర్యవేక్షించబడేవారు)</translation>
 <translation id="1405476660552109915">ఈ సైట్ కోసం మీ ఖాతాను <ph name="PASSWORD_MANAGER_BRAND" /> సేవ్ చేయాలని మీరు కోరుకుంటున్నారా?</translation>
@@ -541,7 +540,6 @@
 <translation id="1782530111891678861">టచ్ HUD మోడ్‌ను మార్చు</translation>
 <translation id="1784849162047402014">పరికరంలో ఖాళీ డిస్క్ స్థలం తక్కువగా ఉంది</translation>
 <translation id="1786636458339910689">బృంద డిస్క్‌లు</translation>
-<translation id="1792161662640298233">మీ భద్రతా కీని ధృవీకరిస్తోంది</translation>
 <translation id="1792619191750875668">విస్తారిత డిస్‌ప్లే</translation>
 <translation id="1794791083288629568">ఈ సమస్యను పరిష్కరించడంలో మాకు సహాయం చేయడానికి అభిప్రాయాన్ని పంపుతుంది.</translation>
 <translation id="1795214765651529549">క్లాసిక్‌ను ఉపయోగించు</translation>
@@ -624,7 +622,6 @@
 <translation id="1910721550319506122">స్వాగతం!</translation>
 <translation id="1914326953223720820">సేవను అన్‌జిప్ చేయండి</translation>
 <translation id="1915073950770830761">కెనరీ</translation>
-<translation id="1915543339027206592">మీ ఖాతా సెట్టింగ్‌ల ఆధారంగా, మీ Assistant అనుభవం అన్నది వెబ్ ఫలితాలు, జోక్‌లు మరియు స్థానిక సమాచారం వంటి వాటికి పరిమితం కావచ్చు.</translation>
 <translation id="1916502483199172559">డిఫాల్ట్ ఎరుపు రంగు అవతార్</translation>
 <translation id="1918141783557917887">&amp;చిన్నగా</translation>
 <translation id="1919345977826869612">ప్రకటనలు</translation>
@@ -877,14 +874,12 @@
 <translation id="2307462900900812319">నెట్‌వర్క్‌ని కాన్ఫిగర్ చేయి</translation>
 <translation id="230927227160767054">ఈ పేజీ సేవా నిర్వాహికిని ఇన్‌స్టాల్ చేయాలని కోరుతోంది.</translation>
 <translation id="2309620859903500144">మీ మోషన్ లేదా లైట్ సెన్సార్‌లను యాక్సెస్ చేయనీయకుండా ఈ సైట్ బ్లాక్ చేయబడింది.</translation>
-<translation id="2311075084924370935">మీ క్యాలెండర్, రిమైండర్‌లు, విమాన సమయాలే కాక మరిన్నింటిలో మీకు సహాయం చేయడానికి, మీ అసిస్టెంట్‌కు వెబ్ &amp; యాప్ కార్యకలాపం, పరికర సమాచారం, వాయిస్ &amp; ఆడియో కార్యకలాపం సెట్టింగ్‌లు అవసరం.</translation>
 <translation id="2315821125498993513">ఫోన్‌కు కనెక్ట్ చేయడం సాధ్యపడలేదు. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">వద్దు, ధన్యవాదాలు</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% పూర్తయింది</translation>
 <translation id="2318143611928805047">కాగితపు పరిమాణం</translation>
 <translation id="2318817390901984578">Android ఆప్‌లను ఉపయోగించాలంటే, మీ <ph name="DEVICE_TYPE" />ని ఛార్జ్ చేసి, అప్‌డేట్ చేయండి.</translation>
 <translation id="2318923050469484167">ప్రస్తుత అజ్ఞాత సెషన్ (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128"><ph name="APP_NAME" />తో మీ భద్రతా కీని ఉపయోగించండి</translation>
 <translation id="2322193970951063277">హెడర్‌లు మరియు ఫుటర్‌లు</translation>
 <translation id="2325650632570794183">ఈ ఫైల్ రకానికి మద్దతు లేదు. దయచేసి ఈ రకమైన ఫైల్‌ను తెరవగల అనువర్తనాన్ని కనుగొనడానికి Chrome వెబ్ స్టోర్‌ని సందర్శించండి.</translation>
 <translation id="2326931316514688470">అనువర్తనాన్ని &amp;మళ్లీ లోడ్ చేయి</translation>
@@ -918,7 +913,6 @@
 <translation id="2367199180085172140">ఫైల్ షేర్‌ని జోడించండి</translation>
 <translation id="2367972762794486313">అనువర్తనాలను చూపు</translation>
 <translation id="2369536625682139252">కుక్కీలు మినహా <ph name="SITE" /> నిల్వ చేసిన మొత్తం డేటా తొలగించబడుతుంది.</translation>
-<translation id="237058345584060620">మీ కీని ఈ పరికరానికి జత చేయండి, తద్వారా మీరు మీ ఖాతాకు సైన్ ఇన్ చేయడానికి దాన్ని ఉపయోగించవచ్చు</translation>
 <translation id="2371076942591664043">&amp;పూర్తవగానే తెరువు</translation>
 <translation id="2377319039870049694">జాబితా వీక్షణకు మార్చు</translation>
 <translation id="2377667304966270281">Hard Faultలు</translation>
@@ -985,7 +979,6 @@
 <translation id="248861575772995840">మీ ఫోన్‌ను కనుగొనలేము. మీ <ph name="DEVICE_TYPE" /> యొక్క బ్లూటూత్ ఆన్ చేసి ఉన్నట్లు నిర్ధారించుకోండి. &lt;a&gt;మరింత తెలుసుకోండి&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;ఫోల్డర్‌ను జోడించు...</translation>
 <translation id="249113932447298600">క్షమించండి, ఈ సమయంలో <ph name="DEVICE_LABEL" /> పరికరానికి మద్దతు లేదు.</translation>
-<translation id="2492040222276243256">మీ భద్రతా కీపై ఉన్న బటన్‌ను కనీసం 5 సెకన్ల పాటు నొక్కి ఉంచండి</translation>
 <translation id="2493021387995458222">"ఒకసారికి ఒక పదం"ని ఎంచుకోండి</translation>
 <translation id="249303669840926644">నమోదు పూర్తి చేయడం కుదరలేదు</translation>
 <translation id="2495777824269688114">మరిన్ని ఫీచర్‌లను కనుగొనండి లేదా సమాధానాలను పొందండి. సహాయం కోసం "?" ఎంచుకోండి.</translation>
@@ -1090,7 +1083,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> డిస్క్ ఖాళీలో <ph name="USAGE" /> MBని ఉపయోగిస్తున్నారు.</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />"ను తీసివేయాలా?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> వ్యవస్థాపనను పూర్తి చేయలేక పోయింది, కానీ దీని డిస్క్ చిత్రం నుండి అమలు చేయడానికి కొనసాగుతుంది.</translation>
-<translation id="2633326789677284179">మీ కీ వెనుక భాగాన ముద్రించిన పేరుని చూడండి</translation>
 <translation id="2635276683026132559">సంతకం చేస్తోంది</translation>
 <translation id="2636625531157955190">చిత్రాన్ని Chrome ప్రాప్యత చేయడం సాధ్యపడదు.</translation>
 <translation id="2638087589890736295">సమకాలీకరణను ప్రారంభించడానికి రహస్య పదబంధం అవసరం</translation>
@@ -1258,7 +1250,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" />ని జోడించు...</translation>
 <translation id="2874343608108773609">మీ అన్ని పరికరాలలో మీ పాస్‌వర్డ్‌లను పొందడానికి, Chromeకి సైన్ ఇన్ చేయండి.</translation>
 <translation id="2875698561019555027">(Chrome లోప పేజీలు)</translation>
-<translation id="2876441201733326392">USB భద్రతా కీని ఉపయోగించండి</translation>
 <translation id="288042212351694283">మీ సార్వత్రిక 2వ కారకం పరికరాలను ప్రాప్యత చేయండి</translation>
 <translation id="2881966438216424900">చివరగా ప్రాప్తి చేసింది:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> పునఃప్రారంభించబడుతుంది మరియు కొద్దిసేపట్లో రీసెట్ చేయబడుతుంది</translation>
@@ -1326,7 +1317,6 @@
 <translation id="2982970937345031">అనామకంగా నివేదించు</translation>
 <translation id="2984337792991268709">ఈ రోజు <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">MIDI పరికరాలకు పూర్తి నియంత్రణ లేకుండా ఈ పేజీ బ్లాక్ చేయబడింది.</translation>
-<translation id="2988599644347283908">గమనిక: మీకు వ్యక్తిగతీకరించిన అనుభవాలు మరియు ఉపయోగకరమైన ప్రకటనలను అందించడానికి మీరు సైన్-ఇన్ చేసిన ఏ Google సేవలో అయినా ఈ సెట్టింగ్‌ల ద్వారా నియంత్రించబడే డేటా సేవ్ చేయబడి ఉపయోగించబడవచ్చు. మీరు account.google.comలో మీ డేటాని చూడవచ్చు, తొలగించవచ్చు మరియు మీ సెట్టింగ్‌లను మార్చవచ్చు.</translation>
 <translation id="2989474696604907455">జోడించబడలేదు</translation>
 <translation id="2989786307324390836">DER-ఎన్‌కోడ్ చేసిన బైనరీ, ఒక సర్టిఫికెట్</translation>
 <translation id="2993517869960930405">అనువర్తన సమాచారం</translation>
@@ -1379,7 +1369,6 @@
 <translation id="304826556400666995">ట్యాబ్‌లను అన్‌మ్యూట్ చేయండి</translation>
 <translation id="3053013834507634016">సర్టిఫికెట్ కీ ఉపయోగం</translation>
 <translation id="3057861065630527966">మీ ఫోటోలను మరియు వీడియోలను బ్యాకప్ చేయండి</translation>
-<translation id="3059313675706898490">Android సందేశాలు</translation>
 <translation id="3060379269883947824">వినడానికి-ఎంచుకోండిని ప్రారంభించు</translation>
 <translation id="3061707000357573562">ప్యాచ్ సేవ</translation>
 <translation id="3064410671692449875">తగినంత డేటా లేదు</translation>
@@ -1408,7 +1397,6 @@
 <translation id="3090819949319990166">బాహ్య crx ఫైల్‌ను <ph name="TEMP_CRX_FILE" />కి కాపీ చేయడం సాధ్యపడదు.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" జత చేయబడింది</translation>
 <translation id="3101709781009526431">తేదీ మరియు సమయం</translation>
-<translation id="3104900172193317662">మీ భద్రతా కీ యొక్క వినియోగాన్ని అనుమతించండి</translation>
 <translation id="310671807099593501">సైట్ బ్లూటూత్‌ని ఉపయోగిస్తోంది</translation>
 <translation id="3115128645424181617">మీ ఫోన్‌ను కనుగొనలేము. అది చేతికి అందేంత దగ్గర్లో ఉందని మరియు బ్లూటూత్ ఆన్ చేసి ఉన్నట్లు నిర్ధారించుకోండి.</translation>
 <translation id="3115147772012638511">కాష్ కోసం వేచి ఉంది...</translation>
@@ -1492,7 +1480,6 @@
 <translation id="3251759466064201842">&lt;సర్టిఫికెట్‌లో భాగం కాదు&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> ఫైల్‌ల కోసం డిఫాల్ట్ అనువర్తనాన్ని ఎంచుకోండి:</translation>
 <translation id="3254516606912442756">స్వయంచాలక సమయ మండలి గుర్తింపు నిలిపివేయబడింది</translation>
-<translation id="3254772308201947812">సరే, నాకు సమ్మతమే</translation>
 <translation id="3264544094376351444">Sans-Serif ఫాంట్</translation>
 <translation id="3264547943200567728">మీ Chromebox నెట్‌వర్క్‌ను సెటప్ చేయడంలో విఫలమైంది</translation>
 <translation id="3264582393905923483">సందర్భం</translation>
@@ -1507,6 +1494,7 @@
 <translation id="3271648667212143903"><ph name="ORIGIN" /> దీనికి కనెక్ట్ చేయాలనుకుంటోంది</translation>
 <translation id="3274763671541996799">మీరు పూర్తి స్క్రీన్‌కు వెళ్ళారు.</translation>
 <translation id="3275778913554317645">విండో వలె తెరవండి</translation>
+<translation id="3278877214895457897">మీ Chromebook సెటప్ చేసిన తర్వాత, ఏ సమయంలోనైనా మీ అసిస్టెంట్‌ నుండి సహాయాన్ని పొందడానికి Assistant బటన్‌ను నొక్కండి లేదా "Ok Google" అని చెప్పండి.</translation>
 <translation id="3279230909244266691">ఈ ప్రాసెస్‌కు కొన్ని నిమిషాలు పట్టవచ్చు. వర్చ్యువల్ మెషీన్‌ను ప్రారంభిస్తోంది.</translation>
 <translation id="3279741024917655738">ఇందులో పూర్తి స్క్రీన్ వీడియోలను చూపించండి</translation>
 <translation id="3280237271814976245">&amp;ఇలా సేవ్ చెయ్యి</translation>
@@ -1814,7 +1802,6 @@
 <translation id="3735740477244556633">దీని ద్వారా క్రమీకరించు</translation>
 <translation id="3737274407993947948">Linuxను ఇన్‌స్టాల్ చేయడంలో ఎర్రర్...</translation>
 <translation id="3737536731758327622">మీ డౌన్‌లోడ్‌లు ఇక్కడ కనిపిస్తాయి</translation>
-<translation id="3738671331307774213">మీ గుర్తింపును ధృవీకరించడం ద్వారా మీ వ్యక్తిగత సమాచారాన్ని భద్రంగా కాపాడుకోవచ్చు</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" />ని తెరవాలా?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> ఇప్పుడు నిర్వాహక కన్సోల్‌లో కనిపిస్తుంది</translation>
@@ -1922,7 +1909,6 @@
 <translation id="3873315167136380065">దీన్ని ఆన్ చేయడానికి, మీ సమకాలీకరణ రహస్య పదబంధాన్ని తీసివేయడానికి <ph name="BEGIN_LINK" />సమకాలీకరణను రీసెట్ చేయండి<ph name="END_LINK" /></translation>
 <translation id="3878840326289104869">పర్యవేక్షించబడే వినియోగదారుని సృష్టిస్తోంది</translation>
 <translation id="3879748587602334249">డౌన్‌లోడ్ నిర్వాహికి</translation>
-<translation id="3880709822663530586">మీ పరికరం బ్లూటూత్ ఆన్‌లో ఉన్నప్పుడు మాత్రమే మీ భద్రతా కీ పని చేస్తుంది</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" />తో గమనికలు రూపొందిస్తున్నారు</translation>
 <translation id="3892414795099177503">OpenVPN / L2TPని జోడించు...</translation>
 <translation id="3893536212201235195">మీ ప్రాప్యత సౌలభ్య సెట్టింగ్‌లను చదవడానికి మరియు మార్చడానికి అనుమతి</translation>
@@ -2068,6 +2054,7 @@
 <translation id="4096824249111507322">సురక్షిత మాడ్యూల్ సిద్ధం చేయబడుతోంది, దయచేసి వేచి ఉండండి (ఇందుకు కొన్ని నిమిషాలు పట్టవచ్చు)...</translation>
 <translation id="4099060993766194518">డిఫాల్ట్ శోధన ఇంజిన్‌ను పునరుద్ధరించాలా?</translation>
 <translation id="4100733287846229632">పరికరంలో ఖాళీ స్థలం చాలా తక్కువగా ఉంది</translation>
+<translation id="4103091233824664032">స్క్రీన్ లాక్ మరియు సైన్ ఇన్‌ని కాన్ఫిగర్ చేయడం కోసం మీ పాస్‌వర్డ్‌ని నమోదు చేయండి</translation>
 <translation id="4104163789986725820">ఎ&amp;గుమతి...</translation>
 <translation id="4105563239298244027">Google డిస్క్‌తో 1 TB నిల్వని ఉచితంగా పొందండి</translation>
 <translation id="4107048419833779140">నిల్వ డివైజ్‌లను గుర్తించి, తొలగించండి</translation>
@@ -2088,7 +2075,6 @@
 <translation id="4136203100490971508">సూర్యోదయ సమయానికి రాత్రి కాంతి స్వయంచాలకంగా ఆఫ్ అవుతుంది</translation>
 <translation id="4138267921960073861">సైన్-ఇన్ స్క్రీన్‌లో వినియోగదారు పేర్లను మరియు ఫోటోలను చూపించు</translation>
 <translation id="4144218403971135344">మెరుగైన నాణ్యత గల వీడియోను పొందండి మరియు బ్యాటరీ జీవితకాలాన్ని పెంపొందించండి. వీడియో మీ ప్రసార అనుకూల స్క్రీన్‌లో మాత్రమే ప్లే అవుతుంది.</translation>
-<translation id="414599683948988413">USBతో మీ భద్రతా కీని ఉపయోగించండి</translation>
 <translation id="4146026355784316281">ఎల్లప్పుడూ సిస్టమ్ వ్యూయర్‌తో తెరువు</translation>
 <translation id="4146785383423576110">రీసెట్ చేసి హానికరమైన వాటిని తీసివేయండి</translation>
 <translation id="4147897805161313378">Google ఫోటోలు</translation>
@@ -2431,6 +2417,7 @@
 <translation id="474217410105706308">ట్యాబ్‌ని మ్యూట్ చేయండి</translation>
 <translation id="4742746985488890273">అరకు పిన్ చేయండి</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />అప్లికేషన్‌లను ఎలా అప్‌డేట్ చేయాలో తెలుసుకోండి<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">సందేశాలు</translation>
 <translation id="4746971725921104503">మీరు ఇప్పటికే ఆ పేరు ద్వారా వినియోగదారుని నిర్వహిస్తున్నట్లు కనిపిస్తోంది. మీరు <ph name="LINK_START" />ఈ పరికరానికి <ph name="USER_DISPLAY_NAME" />ని దిగుమతి చేయాలనుకుంటున్నారా<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Chrome వెబ్ స్టోర్‌ నుండి పొడిగింపు అవసరం</translation>
 <translation id="4750394297954878236">సూచనలు</translation>
@@ -2599,6 +2586,7 @@
 <translation id="4992066212339426712">అన్‌మ్యూట్ చేయి</translation>
 <translation id="4992458225095111526">పవర్‌వాష్‌ను నిర్ధారించండి</translation>
 <translation id="4992473555164495036">మీ నిర్వాహకుడు మీకు అందుబాటులో ఉండే ఇన్‌పుట్ పద్ధతులను పరిమితం చేసారు.</translation>
+<translation id="4992926179187649719">'Ok Google'ని ఆన్ చేయండి</translation>
 <translation id="4994474651455208930">ప్రోటోకాల్స్‌కు డిఫాల్ట్ హ్యాండ్లర్‌లుగా కావడం కోసం అడగటానికి సైట్‌లను అనుమతించండి</translation>
 <translation id="4994754230098574403">సెటప్ చేస్తోంది</translation>
 <translation id="4996978546172906250">దీని ద్వారా భాగస్వామ్యం చే.</translation>
@@ -2664,7 +2652,6 @@
 <translation id="5099354524039520280">పైకి</translation>
 <translation id="5100114659116077956">మీకు తాజా లక్షణాలను అందించడానికి, మీ Chromeboxని నవీకరించడం అవసరం.</translation>
 <translation id="5101042277149003567">అన్ని బుక్‌మార్క్‌లను తెరువు</translation>
-<translation id="5104546332954397226">మీ ఫోన్‌ను భద్రతా కీగా ఉపయోగించండి</translation>
 <translation id="5105855035535475848">పిన్ టాబ్‌లు</translation>
 <translation id="5108967062857032718">సెట్టింగ్‌లు - Android అనువర్తనాలను తీసివేయి</translation>
 <translation id="5109044022078737958">మియా</translation>
@@ -2795,7 +2782,6 @@
 <translation id="5288678174502918605">మూసిన టాబ్‌ను మళ్ళీ &amp;తెరువు</translation>
 <translation id="52912272896845572">వ్యక్తిగతమైన కీ ఫైల్ చెల్లదు.</translation>
 <translation id="529175790091471945">ఈ పరికరాన్ని ఫార్మాట్ చేయి</translation>
-<translation id="5292195676005197571">దాదాపు అన్ని కీల వినియోగానికి, ఆ బటన్‌ని నొక్కండి చాలు</translation>
 <translation id="5293170712604732402">సెట్టింగ్‌లను వాటి అసలు డిఫాల్ట్ విలువలకు పునరుద్ధరించండి</translation>
 <translation id="5297082477358294722">పాస్‌వర్డ్ సేవ్ చేయబడింది. మీ <ph name="SAVED_PASSWORDS_STORE" />లో సేవ్ చేసిన పాస్‌వర్డ్‌లను చూడండి మరియు నిర్వహించండి.</translation>
 <translation id="5298219193514155779">థీమ్ వీరిచే సృష్టించబడింది</translation>
@@ -2865,7 +2851,6 @@
 <translation id="5390100381392048184">ధ్వనిని ప్లే చేయడానికి సైట్‌లను అనుమతించండి</translation>
 <translation id="5390284375844109566">సూచికలోని డేటాబేస్</translation>
 <translation id="5390743329570580756">దీని కోసం పంపు</translation>
-<translation id="5392327114396848796">అంతర్నిర్మిత భద్రతా కీని ఉపయోగించండి</translation>
 <translation id="5397794290049113714">మీరు</translation>
 <translation id="5398572795982417028">పేజీ సూచన పరిమితిని దాటిపోయారు, పరిమితి <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">ప్రకటనలు బ్లాక్ చేయబడ్డాయి</translation>
@@ -3170,7 +3155,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - కెమెరా లేదా మైక్రోఫోన్ రికార్డ్ చేస్తోంది</translation>
 <translation id="5835754902560991078">అత్యంత సంక్షిప్తం (0.6s)</translation>
 <translation id="5838456317242088717">ప్రస్తుత అజ్ఞాత సెషన్‌కు</translation>
-<translation id="5842053879378944309"><ph name="APP_NAME" />తో USB భద్రతా కీని ఉపయోగించండి</translation>
 <translation id="5842497610951477805">బ్లూటూత్‌ను ప్రారంభించు</translation>
 <translation id="5843250171025351504">మీ నిర్వాహకుడు పేర్కొన్న కనీస క్లయింట్ వెర్షన్‌తో మీ పరికరం ఇకపై అనుకూలించదు. దయచేసి లాగిన్ చేయడానికి అప్‌డేట్ చేయండి.</translation>
 <translation id="5846929185714966548">ట్యాబ్‌ 4</translation>
@@ -3488,7 +3472,6 @@
 <translation id="6317318380444133405">ఇప్పుడు మద్దతు లేదు.</translation>
 <translation id="6317369057005134371">అనువర్తన విండో కోసం వేచి ఉంది...</translation>
 <translation id="6318407754858604988">డౌన్‌లోడ్ ప్రారంభించబడింది</translation>
-<translation id="6322653941595359182">మీ Chromebook నుండి వచన సందేశాలను పంపండి మరియు స్వీకరించండి</translation>
 <translation id="6324916366299863871">షార్ట్‌కట్‌ను సవరించండి</translation>
 <translation id="6325191661371220117">స్వీయ-ప్రారంభాన్ని నిలిపివేయి</translation>
 <translation id="6326175484149238433">Chrome నుండి తీసివేయండి</translation>
@@ -3557,7 +3540,6 @@
 <translation id="642282551015776456">ఈ పేరును ఫైల్ యొక్క ఫోల్డర్ పేరుగా ఉపయోగించలేము.</translation>
 <translation id="642469772702851743">ఈ (SN: <ph name="SERIAL_NUMBER" />) పరికరం యజమానిచే లాక్ చేయబడింది.</translation>
 <translation id="6426200009596957090">ChromeVox సెట్టింగ్‌లను తెరువు</translation>
-<translation id="6427415464407526111">మీ భద్రతా కీని ఎంచుకోండి</translation>
 <translation id="6429384232893414837">అప్‌డేట్‌లో ఎర్రర్</translation>
 <translation id="6430814529589430811">Base64-ఎన్‌కోడ్ చేసిన ASCII, ఒక్క సర్టిఫికెట్</translation>
 <translation id="6431217872648827691"><ph name="TIME" />న మీ Google పాస్‌వర్డ్‌తో మొత్తం డేటా
@@ -3715,7 +3697,6 @@
 <translation id="6655190889273724601">డెవలపర్ మోడ్</translation>
 <translation id="6655458902729017087">ఖాతాలను దాచు</translation>
 <translation id="6657585470893396449">పాస్‌వర్డ్</translation>
-<translation id="6658023813581644008">సైన్ ఇన్ కోసం Smart Lockను సెటప్ చేయడానికి, పాస్‌వర్డ్‌ను నమోదు చేయండి</translation>
 <translation id="6659213950629089752">ఈ పేజీ "<ph name="NAME" />" పొడిగింపు ద్వారా జూమ్ చేయబడింది</translation>
 <translation id="6659594942844771486">టాబ్</translation>
 <translation id="6664237456442406323">దురదృష్టవశాత్తూ, మీ కంప్యూటర్ తప్పుగా ఆకృతి చేయబడిన హార్డ్‌వేర్ IDతో కాన్ఫిగర్ చేయబడింది. ఇది తాజా భద్రతా పరిష్కారాలతో నవీకరించబడనీయకుండా Chrome OSని నిరోధిస్తుంది మరియు మీ కంప్యూటర్ <ph name="BEGIN_BOLD" />హానికరమైన దాడులకు గురి కావచ్చు<ph name="END_BOLD" />.</translation>
@@ -3851,7 +3832,6 @@
 <translation id="6885771755599377173">సిస్టమ్ సమాచార పరిదృశ్యం</translation>
 <translation id="6886871292305414135">లింక్‌ను క్రొత్త &amp;ట్యాబ్‌లో తెరువు</translation>
 <translation id="6892812721183419409">లింక్‌ను <ph name="USER" /> తరపున తెరువు</translation>
-<translation id="6896398788631624004">మీ భద్రతా కీని ప్లగ్ చేసి, దాన్ని యాక్టివేట్ చేయండి</translation>
 <translation id="6896758677409633944">కాపీ చెయ్యి</translation>
 <translation id="6898440773573063262">కియోస్క్ అనువర్తనాలను ఇప్పుడు ఈ పరికరంలో స్వయంచాలకంగా ప్రారంభించడానికి కాన్ఫిగర్ చేయవచ్చు.</translation>
 <translation id="6898699227549475383">సంస్థ (O)</translation>
@@ -3892,6 +3872,7 @@
 <translation id="6965382102122355670">సరే</translation>
 <translation id="6965648386495488594">పోర్ట్</translation>
 <translation id="6965978654500191972">పరికరం</translation>
+<translation id="6968288415730398122">స్క్రీన్ లాక్‌ని కాన్ఫిగర్ చేయడానికి మీ పాస్‌వర్డ్‌ని నమోదు చేయండి</translation>
 <translation id="6970480684834282392">ప్రారంభ రకం</translation>
 <translation id="6970856801391541997">ప్రత్యేకించిన పేజీలను ముద్రించు</translation>
 <translation id="6972180789171089114">ఆడియో/వీడియో</translation>
@@ -4070,7 +4051,6 @@
 <translation id="7228523857728654909">స్క్రీన్ లాక్ మరియు సైన్ ఇన్</translation>
 <translation id="7229570126336867161">EVDO అవసరం</translation>
 <translation id="7230787553283372882">మీ వచన పరిమాణాన్ని అనుకూలీకరించండి</translation>
-<translation id="7231589788477569369">ఈ సెట్టింగ్‌లతో అసిస్టెంట్ యొక్క పూర్తి అనుభవాన్ని పొందండి</translation>
 <translation id="7232750842195536390">పేరు మార్చడం విఫలమైంది</translation>
 <translation id="7234406375359457793">షేర్‌ను మౌంట్ చేయడంలో ఎర్రర్ ఏర్పడింది. పేర్కొన్న షేర్‌కు మద్దుత లేదు.</translation>
 <translation id="7238585580608191973">SHA-256 వేలిముద్ర</translation>
@@ -4080,7 +4060,6 @@
 <translation id="7243632151880336635">తీసివేసి, సైన్ అవుట్ చేయి</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ఉత్తమం)</translation>
 <translation id="7246339268451149667">వేలిముద్ర అన్‌లాక్‌ని ప్రారంభించాలా?</translation>
-<translation id="7246489301073081944">నిష్క్రమించడానికి |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| పట్టుకొని ఉంచండి</translation>
 <translation id="7246947237293279874">FTP ప్రాక్సీ</translation>
 <translation id="725109152065019550">క్షమించండి, మీ నిర్వాహకుడు మీ ఖాతాలో బాహ్య నిల్వను నిలిపివేసారు.</translation>
 <translation id="7253521419891527137">&amp;మరింత తెలుసుకోండి</translation>
@@ -4233,7 +4212,6 @@
 <translation id="7489605380874780575">అర్హతను తనిఖీ చేయి</translation>
 <translation id="749028671485790643">వ్యక్తి <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC చిరునామా</translation>
-<translation id="7490950320178383728">బ్లూటూత్‌తో మీ భద్రతా కీని ఉపయోగించండి</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> పొడిగింపు మీరు టైప్ చేసే పాస్‌వర్డ్‌లు మరియు క్రెడిట్ కార్డ్‌ నంబర్‌ల వంటి వ్యక్తిగత డేటాతో సహా మొత్తం వచనాన్ని సేకరించవచ్చు. మీరు ఈ పొడిగింపుని ఉపయోగించాలనుకుంటున్నారా?</translation>
 <translation id="7494065396242762445">Windows సెట్టింగ్‌లను తెరవండి</translation>
@@ -4482,7 +4460,6 @@
 <translation id="7850851215703745691">ఈ డిస్క్ ఫైల్‌లు ఇంకా భాగస్వామ్యం చేయబడలేదు</translation>
 <translation id="7851457902707056880">సైన్-ఇన్ కేవలం యజమాని ఖాతాకు పరిమితం చేయబడింది. దయచేసి మళ్లీ బూట్ చేసి యజమాని ఖాతాతో సైన్ ఇన్ చేయండి. మెషీన్ 30 సెకన్లలో స్వయంచాలకంగా మళ్లీ బూట్ చేయబడుతుంది.</translation>
 <translation id="7851716364080026749">ఎల్లప్పుడూ కెమెరా మరియు మైక్రోఫోన్ ప్రాప్యతను బ్లాక్ చేయి</translation>
-<translation id="7851816139220202929">NFCతో మీ భద్రతా కీని ఉపయోగించండి</translation>
 <translation id="7853747251428735">మరిన్ని సాధనా&amp;లు</translation>
 <translation id="7856006446339184955">సిస్టమ్ డేటాని పంపండి. ఈ పరికరం ప్రస్తుతం సమస్య విశ్లేషణ మరియు పరికర మరియు యాప్ వినియోగ డేటాని ఆటోమేటిక్‌గా Googleకి పంపుతోంది. ఈ సెట్టింగ్‌ని యజమాని ప్రారంభించారు. మీరు ఏ సమయంలో అయినా మీ పరికర <ph name="BEGIN_LINK1" />సెట్టింగ్‌లు<ph name="END_LINK1" />లో దీనిని మార్చవచ్చు. మీరు అదనపు వెబ్ &amp; యాప్ కార్యకలాపాన్ని ఆన్ చేసి ఉంటే, ఈ సమాచారం మీ ఖాతాలో నిల్వ చేయబడుతుంది, కనుక మీరు నా కార్యకలాపంలో దీనిని నిర్వహించవచ్చు. <ph name="BEGIN_LINK2" />మరింత తెలుసుకోండి<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">మినహాయింపును జోడించు</translation>
@@ -4524,6 +4501,7 @@
 <translation id="7908378463497120834">క్షమించండి, మీ బాహ్య నిల్వ పరికరంలో కనీసం ఒక విభజన కూడా ఉంచబడదు.</translation>
 <translation id="7909969815743704077">అజ్ఞాతంలో డౌన్‌లోడ్ చేయబడింది</translation>
 <translation id="7910768399700579500">&amp;క్రొత్త ఫోల్డర్</translation>
+<translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">సర్వర్‌లో మీ పాస్‌వర్డ్ మార్చబడింది. దచయేసి సైన్ అవుట్ చేసి, సైన్ ఇన్ చేయండి.</translation>
 <translation id="7915471803647590281">దయచేసి అభిప్రాయాన్ని పంపడానికి ముందు ఏమి జరిగిందో మాకు చెప్పండి.</translation>
 <translation id="7916556741383518510">క్లిక్ చేసినప్పుడు</translation>
@@ -4611,7 +4589,6 @@
 <translation id="8030656706657716245">ప్రింటర్‌ను జోడించండి</translation>
 <translation id="8032244173881942855">ట్యాబ్‌ను ప్రసారం చేయడం సాధ్యపడలేదు.</translation>
 <translation id="8033827949643255796">ఎంచుకోబడ్డాయి</translation>
-<translation id="8033958968890501070">సమయం ముగిసింది</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{అన్నింటినీ &amp;అజ్ఞాత విండోలో తెరవండి}=1{&amp;అజ్ఞాత విండోలో తెరవండి}other{అన్నింటినీ (#) &amp;అజ్ఞాత విండోలో తెరవండి}}</translation>
 <translation id="8037117027592400564">సంశ్లేషణ ప్రసంగాన్ని ఉపయోగించి మాట్లాడిన మొత్తం వచనాన్ని చదవడం</translation>
 <translation id="8037357227543935929">అడగాలి (డిఫాల్ట్)</translation>
@@ -4835,7 +4812,6 @@
 <translation id="8425213833346101688">మార్చు</translation>
 <translation id="8425492902634685834">టాస్క్‌బార్‌కి పిన్ చేయి</translation>
 <translation id="8425755597197517046">పే&amp;స్ట్ చేసి, శోధించండి</translation>
-<translation id="8426117172745886547">నిష్క్రమించే ముందు హెచ్చరించు (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">ప్రారంభించబడుతోంది</translation>
 <translation id="8427292751741042100">ఏదైనా హోస్ట్‌లో పొందుపరచబడింది</translation>
 <translation id="8428213095426709021">సెట్టింగ్‌లు</translation>
@@ -4923,7 +4899,6 @@
 <translation id="8551388862522347954">లైసెన్స్‌లు</translation>
 <translation id="8553342806078037065">ఇతర వ్యక్తులను నిర్వహించు</translation>
 <translation id="8554899698005018844">భాష లేదు</translation>
-<translation id="8557347704037207368">Android వెబ్ సందేశాల నుంచి మీకు నోటిఫికేషన్‌లను పంపుతుంది</translation>
 <translation id="855773602626431402">శాండ్‌బాక్స్ చేయని ప్లగిన్ ఈ పేజీలో అమలు కానీయకుండా నిరోధించబడింది.</translation>
 <translation id="8557930019681227453">మానిఫెస్ట్</translation>
 <translation id="8559694214572302298">ఇమేజ్ డీకోడర్</translation>
@@ -5199,7 +5174,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - క్రాష్ అయ్యింది</translation>
 <translation id="8983677657449185470">సురక్షిత బ్రౌజింగ్‌ను మెరుగుపరచడంలో సహాయపడండి</translation>
 <translation id="8984654317541110628">ఫైల్ షేర్ URL</translation>
-<translation id="8984872292925913496">మీ కీ వెనుకవైపు 6-అంకెల PINని చూడండి</translation>
 <translation id="8986362086234534611">మరిచిపోయారా</translation>
 <translation id="8986494364107987395">Googleకు స్వయంచాలకంగా ఉపయోగ గణాంకాలను మరియు క్రాష్ నివేదికలను పంపు</translation>
 <translation id="8987927404178983737">నెల</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 757064d..d7ba892 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">ไฮไลต์วัตถุที่มีโฟกัสของแป้นพิมพ์เมื่อมีการเปลี่ยนแปลง</translation>
 <translation id="1173894706177603556">เปลี่ยนชื่อ</translation>
 <translation id="1174073918202301297">เพิ่มทางลัดแล้ว</translation>
-<translation id="1174808551768282258">ปลดล็อก Chromebook ด้วยโทรศัพท์ <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;พิมพ์...</translation>
 <translation id="117624967391683467">กำลังคัดลอก <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google อาจใช้ประวัติการท่องเว็บของคุณเพื่อปรับเปลี่ยนการค้นหา โฆษณา และบริการอื่นๆ ของ Google ให้เหมาะกับคุณ โดยคุณเปลี่ยนการตั้งค่านี้ได้ทุกเมื่อที่ myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">หยุดชั่วคราว</translation>
 <translation id="1181037720776840403">ลบ</translation>
 <translation id="1183237619868651138">ไม่สามารถติดตั้ง <ph name="EXTERNAL_CRX_FILE" /> ในแคชในเครื่อง</translation>
-<translation id="1183378459020939734">พร้อมจับคู่คีย์ความปลอดภัยไหม</translation>
 <translation id="1185924365081634987">คุณสามารถลอง<ph name="GUEST_SIGNIN_LINK_START" />เรียกดูในฐานะผู้เยี่ยมชม<ph name="GUEST_SIGNIN_LINK_END" /> เพื่อแก้ไขข้อผิดพลาดของเครือข่าย</translation>
 <translation id="1186771945450942097">นำซอฟต์แวร์อันตรายออก</translation>
 <translation id="1187722533808055681">ไม่ใช้งานการปลุก</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">ไม่พบอุปกรณ์บลูทูธ</translation>
 <translation id="1306606229401759371">เปลี่ยนการตั้งค่า</translation>
 <translation id="1307559529304613120">อ๊ะ!  ระบบล้มเหลวในการจัดเก็บโทเค็นเพื่อการเข้าถึง API ในระยะยาวสำหรับอุปกรณ์นี้</translation>
+<translation id="1307931752636661898">ดูไฟล์ Linux ไม่ได้</translation>
 <translation id="1313405956111467313">กำหนดค่าพร็อกซีอัตโนมัติ</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">บุ๊กมาร์ก ประวัติการเข้าชม และการตั้งค่าอื่นๆ ของคุณจะได้รับการซิงค์ไปยังบัญชี Google ของคุณ</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">เปิดการตั้งค่าอุปกรณ์เมาส์และทัชแพด</translation>
 <translation id="1531004739673299060">หน้าต่างแอปพลิเคชัน</translation>
 <translation id="15373452373711364">เคอร์เซอร์เมาส์ขนาดใหญ่</translation>
+<translation id="1538729222189715449">กำลังเปิดไฟล์ Linux...</translation>
 <translation id="1540605929960647700">เปิดใช้โหมดสาธิต</translation>
 <translation id="1543284117603151572">นำเข้าจาก Edge</translation>
 <translation id="1545177026077493356">โหมดคีออสก์อัตโนมัติ</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">เปลี่ยนโหมด HUD การแตะ</translation>
 <translation id="1784849162047402014">อุปกรณ์เครื่องนี้เหลือพื้นที่ว่างในดิสก์ต่ำ</translation>
 <translation id="1786636458339910689">ไดรฟ์ของทีม</translation>
-<translation id="1792161662640298233">กำลังยืนยันคีย์ความปลอดภัย</translation>
 <translation id="1792619191750875668">การแสดงผลแบบขยาย</translation>
 <translation id="1794791083288629568">ส่งความคิดเห็นเพื่อช่วยเราแก้ไขปัญหานี้</translation>
 <translation id="1795214765651529549">ใช้แบบคลาสสิก</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">ยินดีต้อนรับ!</translation>
 <translation id="1914326953223720820">บริการแตกไฟล์</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">ประสบการณ์การใช้งาน Assistant อาจถูกจำกัดให้ทำได้เพียงบางอย่าง เช่น ผลการค้นเว็บ มุกตลก และข้อมูลในเครื่องเท่านั้น ซึ่งขึ้นอยู่กับการตั้งค่าบัญชีของคุณ</translation>
 <translation id="1916502483199172559">รูปโปรไฟล์เริ่มต้นสีแดง</translation>
 <translation id="1918141783557917887">เ&amp;ล็กลง</translation>
 <translation id="1919345977826869612">โฆษณา</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> ใน <ph name="PEPPER_PLUGIN_DOMAIN" /> ต้องการเข้าถึงคอมพิวเตอร์ของคุณ</translation>
 <translation id="2178614541317717477">ผู้มีสิทธิ์ออกใบรับรองไม่สมบูรณ์</translation>
 <translation id="218070003709087997">ใช้ตัวเลขเพื่อระบุจำนวนสำเนาที่ต้องการพิมพ์ (1 ถึง 999)</translation>
+<translation id="2184515124301515068">ให้ Chrome เลือกว่าเว็บไซต์จะเล่นเสียงได้เมื่อใด (แนะนำ)</translation>
 <translation id="2187895286714876935">ข้อผิดพลาดในการนำเข้าใบรับรองเซิร์ฟเวอร์</translation>
 <translation id="2187906491731510095">อัปเดตส่วนขยายแล้ว</translation>
 <translation id="2188881192257509750">เปิด <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">อ่านและเปลี่ยนแปลงข้อมูลของคุณในหลายเว็บไซต์</translation>
 <translation id="2242687258748107519">ข้อมูลไฟล์</translation>
 <translation id="2243194103992005307">หากต้องการนำแอปออก ไปที่การตั้งค่า &gt; ตัวจัดการแอปหรือแอปพลิเคชัน แล้วแตะแอปที่คุณต้องการถอนการติดตั้ง (คุณอาจต้องเลื่อนไปทางขวาหรือทางซ้ายเพื่อค้นหาแอป) และแตะถอนการติดตั้ง หรือปิดใช้</translation>
+<translation id="224940702122312781">หน้านี้จะใช้อินเทอร์เน็ตปริมาณมาก</translation>
 <translation id="2249605167705922988">เช่น 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">เปิดด้วยเครื่องมือดูระบบ</translation>
 <translation id="225163402930830576">รีเฟรชเครือข่าย</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">กำหนดค่าเครือข่าย</translation>
 <translation id="230927227160767054">หน้าเว็บนี้ต้องการติดตั้งเครื่องจัดการบริการ</translation>
 <translation id="2309620859903500144">เว็บไซต์นี้ถูกบล็อกไม่ให้เข้าถึงเซ็นเซอร์ตรวจจับการเคลื่อนไหวหรือแสง</translation>
-<translation id="2311075084924370935">Assistant ต้องมีการตั้งค่ากิจกรรมบนเว็บและแอป ข้อมูลอุปกรณ์ รวมทั้งกิจกรรมเสียงพูดและเสียงเพื่อช่วยคุณเกี่ยวกับปฏิทิน การช่วยเตือน เที่ยวบิน และอื่นๆ</translation>
+<translation id="2315414688463285945">เกิดข้อผิดพลาดขณะกำหนดค่าไฟล์ Linux โปรดลองอีกครั้ง</translation>
 <translation id="2315821125498993513">เชื่อมต่อกับโทรศัพท์ไม่ได้ <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">ไม่ ขอบคุณ</translation>
 <translation id="2317842250900878657">เสร็จแล้ว <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">ขนาดกระดาษ</translation>
 <translation id="2318817390901984578">หากต้องการใช้แอป Android ให้ชาร์จและอัปเดต <ph name="DEVICE_TYPE" /></translation>
 <translation id="2318923050469484167">เซสชันไม่ระบุตัวตนปัจจุบัน (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">ใช้คีย์ความปลอดภัยกับ <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">ส่วนหัวและส่วนท้ายกระดาษ</translation>
 <translation id="2325650632570794183">ไฟล์ประเภทนี้ไม่ได้รับการสนับสนุน โปรดไปที่ Chrome เว็บสโตร์เพื่อหาแอปพลิเคชันที่สามารถเปิดไฟล์ประเภทนี้</translation>
 <translation id="2326931316514688470">โ&amp;หลดแอปซ้ำ</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">เพิ่มการแชร์ไฟล์</translation>
 <translation id="2367972762794486313">แสดงแอป</translation>
 <translation id="2369536625682139252">ข้อมูลทั้งหมด (ยกเว้นคุกกี้) ที่ <ph name="SITE" /> จัดเก็บไว้จะถูกลบออก</translation>
-<translation id="237058345584060620">จับคู่คีย์กับอุปกรณ์นี้เพื่อให้คุณใช้คีย์ลงชื่อเข้าใช้บัญชีได้</translation>
 <translation id="2371076942591664043">เปิดเมื่อเ&amp;สร็จ</translation>
 <translation id="2377319039870049694">เปลี่ยนเป็นมุมมองรายการ</translation>
 <translation id="2377667304966270281">ฮาร์ดฟอลต์</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">ไม่พบโทรศัพท์ของคุณ โปรดตรวจสอบว่า <ph name="DEVICE_TYPE" /> เปิดบลูทูธอยู่ &lt;a&gt;ดูข้อมูลเพิ่มเติม&lt;/a&gt;</translation>
 <translation id="2489918096470125693">เพิ่ม&amp;โฟลเดอร์...</translation>
 <translation id="249113932447298600">ขออภัย อุปกรณ์ <ph name="DEVICE_LABEL" /> ไม่ได้รับการสนับสนุนในขณะนี้</translation>
-<translation id="2492040222276243256">กดปุ่มบนคีย์ความปลอดภัยค้างไว้อย่างน้อย 5 วินาที</translation>
 <translation id="2493021387995458222">เลือก "ทีละคำ"</translation>
 <translation id="249303669840926644">ไม่สามารถลงทะเบียนให้เสร็จสมบูรณ์ได้</translation>
 <translation id="2495777824269688114">ค้นพบฟีเจอร์เพิ่มเติมหรือรับคำตอบที่ต้องการ เลือก “?” เพื่อรับความช่วยเหลือ</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">รวม: <ph name="SHEETS_LABEL" /> <ph name="NUMBER_OF_SHEETS" /> หน้า</translation>
 <translation id="258095186877893873">ยาว</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (แพลตฟอร์ม <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">แท็บนี้กำลังแชร์หน้าจอของคุณ</translation>
 <translation id="2586657967955657006">คลิปบอร์ด</translation>
 <translation id="2586672484245266891">โปรดป้อน URL ที่สั้นกว่านี้</translation>
 <translation id="2587922270115112871">การสร้างผู้ใช้ภายใต้การดูแลไม่ได้สร้างบัญชี Google และการตั้งค่า
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> กำลังใช้พื้นที่ดิสก์ <ph name="USAGE" /> MB</translation>
 <translation id="2633212996805280240">นำ "<ph name="EXTENSION_NAME" />" ออกหรือไม่</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> ไม่สามารถติดตั้งให้เสร็จสมบูรณ์ แต่จะเรียกใช้จากดิสก์อิมเมจต่อไป</translation>
-<translation id="2633326789677284179">ค้นหาชื่อที่พิมพ์ไว้ด้านหลังคีย์</translation>
 <translation id="2635276683026132559">การเซ็นชื่อ</translation>
 <translation id="2636625531157955190">Chrome ไม่สามารถเข้าถึงภาพ</translation>
 <translation id="2638087589890736295">ต้องระบุรหัสผ่านเพื่อเริ่มการซิงค์</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">เพิ่ม <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">ลงชื่อเข้าใช้ Chrome เพื่อรับรหัสผ่านในอุปกรณ์ทั้งหมดของคุณ</translation>
 <translation id="2875698561019555027">(หน้าข้อผิดพลาดของ Chrome)</translation>
-<translation id="2876441201733326392">ใช้กุญแจรักษาความปลอดภัย USB</translation>
 <translation id="288042212351694283">เข้าถึงอุปกรณ์ Universal 2nd Factor</translation>
 <translation id="2881966438216424900">เข้าถึงครั้งสุดท้ายเมื่อ:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> จะรีสตาร์ทและรีเซ็ตในอีกสักครู่</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">รายงานแบบไม่ระบุตัวตน</translation>
 <translation id="2984337792991268709">วันนี้ <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">หน้านี้ถูกบล็อกจากการมีสิทธิ์ควบคุมอุปกรณ์ MIDI เต็มรูปแบบ</translation>
-<translation id="2988599644347283908">หมายเหตุ: ระบบอาจบันทึกและใช้ข้อมูลที่การตั้งค่าเหล่านี้ควบคุมในบริการใดๆ ของ Google ขณะที่คุณลงชื่อเข้าใช้ เพื่อมอบประสบการณ์ที่ปรับให้เหมาะกับคุณและแสดงโฆษณาที่เป็นประโยชน์ คุณมีสิทธิ์ดูและลบข้อมูล ตลอดจนเปลี่ยนแปลงการตั้งค่าได้ที่ account.google.com</translation>
 <translation id="2989474696604907455">ไม่ได้แนบ</translation>
 <translation id="2989786307324390836">DER-encoded binary, ใบรับรองแบบเดี่ยว</translation>
 <translation id="2993517869960930405">ข้อมูลแอป</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">เปิดเสียงแท็บ</translation>
 <translation id="3053013834507634016">การใช้คีย์ใบรับรอง </translation>
 <translation id="3057861065630527966">สำรองรูปภาพและวิดีโอ</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">เปิดใช้การเลือกเพื่อให้อ่าน</translation>
 <translation id="3061707000357573562">แพตช์บริการ</translation>
 <translation id="3064410671692449875">ข้อมูลไม่เพียงพอ</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">ไม่สามารถคัดลอกไฟล์ crx ภายนอกไปยัง <ph name="TEMP_CRX_FILE" /></translation>
 <translation id="3090871774332213558">จับคู่ "<ph name="DEVICE_NAME" />" แล้ว</translation>
 <translation id="3101709781009526431">วันที่และเวลา</translation>
-<translation id="3104900172193317662">อนุญาตให้ใช้คีย์ความปลอดภัย</translation>
 <translation id="310671807099593501">เว็บไซต์กำลังใช้บลูทูธ</translation>
 <translation id="3115128645424181617">ไม่พบโทรศัพท์ของคุณ โปรดตรวจสอบว่าโทรศัพท์อยู่ใกล้ๆ มือและเปิดบลูทูธอยู่</translation>
 <translation id="3115147772012638511">กำลังรอแคช...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;ไม่ใช่ส่วนหนึ่งของใบรับรอง&gt;</translation>
 <translation id="3254434849914415189">เลือกแอปพลิเคชันค่าเริ่มต้นสำหรับไฟล์ <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">การตรวจหาเขตเวลาอัตโนมัติปิดอยู่</translation>
-<translation id="3254772308201947812">ได้สิ ตกลง</translation>
 <translation id="3264544094376351444">แบบอักษร Sans-Serif</translation>
 <translation id="3264547943200567728">ไม่สามารถตั้งค่าเครือข่าย Chromebox ของคุณได้</translation>
 <translation id="3264582393905923483">บริบท</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">จัดเรียงตาม</translation>
 <translation id="3737274407993947948">เกิดข้อผิดพลาดขณะติดตั้ง Linux...</translation>
 <translation id="3737536731758327622">การดาวน์โหลดของคุณจะปรากฏที่นี่</translation>
-<translation id="3738671331307774213">การยืนยันตัวตนจะช่วยปกป้องข้อมูลส่วนตัวของคุณ</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">เปิด <ph name="APPLICATION" /> ไหม</translation>
 <translation id="3741158646617793859">ตอนนี้ <ph name="DEVICE_NAME" /> จะปรากฏในคอนโซลผู้ดูแลระบบ</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: การซิงค์หยุดชั่วคราว</translation>
 <translation id="3860381078714302691">ยินดีต้อนรับสู่การประชุม Hangouts </translation>
+<translation id="3861241522664181545">หยุดการโหลดหน้านี้ชั่วคราวแล้ว</translation>
 <translation id="3862134173397075045">ยินดีต้อนรับสู่ประสบการณ์การใช้ Cast ใน Chrome!</translation>
 <translation id="3862788408946266506">ต้องติดตั้งแอปที่มีแอตทริบิวต์ไฟล์ Manifest ที่ชื่อ "kiosk_only" ในโหมดคีออสก์ของ Chrome OS</translation>
 <translation id="3865414814144988605">ความละเอียด</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">หากต้องการเปิดการตั้งค่า ให้<ph name="BEGIN_LINK" />รีเซ็ตการซิงค์<ph name="END_LINK" />เพื่อนำรหัสผ่านการซิงค์ออก</translation>
 <translation id="3878840326289104869">กำลังสร้างผู้ใช้ภายใต้การดูแล</translation>
 <translation id="3879748587602334249">Download Manager</translation>
-<translation id="3880709822663530586">คีย์ความปลอดภัยจะทำงานเมื่อบลูทูธของอุปกรณ์เปิดอยู่เท่านั้น</translation>
 <translation id="3888550877729210209">จดโน้ตด้วย <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">เพิ่ม OpenVPN/L2TP...</translation>
 <translation id="3893536212201235195">อ่านและเปลี่ยนการตั้งค่าการเข้าถึง</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">กำลังจัดเตรียมโมดูลความปลอดภัย โปรดรอสักครู่ (ขั้นตอนนี้อาจใช้เวลา 2-3 นาที)...</translation>
 <translation id="4099060993766194518">คืนค่าเป็นเครื่องมือค้นหาเริ่มต้นไหม</translation>
 <translation id="4100733287846229632">พื้นที่ดิสก์เกือบเต็มแล้ว</translation>
+<translation id="4103091233824664032">ป้อนรหัสผ่านเพื่อกำหนดค่าการล็อกหน้าจอและการลงชื่อเข้าใช้</translation>
 <translation id="4104163789986725820">ส่ง&amp;ออก</translation>
 <translation id="4105563239298244027">รับ 1 TB ฟรีๆ ด้วย Google ไดรฟ์</translation>
 <translation id="4107048419833779140">ระบุและยกเลิกการต่อเชื่อมอุปกรณ์จัดเก็บข้อมูล</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">แสงตอนกลางคืนจะปิดโดยอัตโนมัติเมื่อพระอาทิตย์ขึ้น</translation>
 <translation id="4138267921960073861">แสดงชื่อผู้ใช้และภาพถ่ายบนหน้าจอลงชื่อเข้าใช้</translation>
 <translation id="4144218403971135344">ดูวิดีโอคุณภาพดีขึ้นและยืดอายุการใช้งานแบตเตอรี่ วิดีโอจะเล่นเฉพาะในหน้าจอที่พร้อมใช้งาน Cast</translation>
-<translation id="414599683948988413">ใช้กุญแจรักษาความปลอดภัยกับ USB</translation>
 <translation id="4146026355784316281">เปิดด้วยโปรแกรมดูของระบบทุกครั้ง</translation>
 <translation id="4146785383423576110">รีเซ็ตและล้างข้อมูล</translation>
 <translation id="4147897805161313378">Google Photos</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">ปิดการใช้งาน</translation>
 <translation id="4400367121200150367">เว็บไซต์ที่ไม่เคยบันทึกรหัสผ่านจะแสดงที่นี่</translation>
 <translation id="4400632832271803360">กดแป้น "Launcher" ค้างไว้เพื่อเปลี่ยนการทำงานของแป้นแถวบนสุด</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">ความ&amp;ช่วยเหลือ</translation>
 <translation id="4409697491990005945">ระยะขอบ</translation>
 <translation id="4411578466613447185">ผู้เซ็นชื่อบนโค้ด</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome ค้นหาซอฟต์แวร์ที่เป็นอันตรายในคอมพิวเตอร์และนำซอฟต์แวร์นั้นออกได้</translation>
 <translation id="4481530544597605423">อุปกรณ์ที่ไม่ได้จับคู่</translation>
 <translation id="4482194545587547824">Google อาจใช้ประวัติการท่องเว็บของคุณเพื่อปรับเปลี่ยน Search และบริการอื่นๆ ของ Google ในแบบของคุณ</translation>
+<translation id="4493287891836751813">พบกับ Google Assistant ของคุณ</translation>
 <translation id="4495419450179050807">ไม่แสดงในหน้านี้อีก</translation>
 <translation id="4499718683476608392">เปิดใช้การป้อนข้อมูลบัตรเครดิตอัตโนมัติเพื่อกรอกฟอร์มด้วยการคลิกเพียงครั้งเดียว</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ขัดข้อง</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">ปิดเสียงแท็บ</translation>
 <translation id="4742746985488890273">ตรึงที่ชั้นวาง</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />ดูวิธีอัปเดตแอปพลิเคชัน<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">ข้อความ</translation>
 <translation id="4746971725921104503">ดูเหมือนว่าคุณกำลังจัดการผู้ใช้ที่มีชื่อนั้น คุณต้องการ<ph name="LINK_START" />นำเข้า <ph name="USER_DISPLAY_NAME" /> มายังอุปกรณ์นี้<ph name="LINK_END" />ไหม</translation>
 <translation id="4748762018725435655">จำเป็นต้องมีส่วนขยายจาก Chrome เว็บสโตร์</translation>
 <translation id="4750394297954878236">คำแนะนำ</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;เปิดใช้งานการทำแฟ้มประวัติ</translation>
 <translation id="4823484602432206655">อ่านและเปลี่ยนการตั้งค่าผู้ใช้และอุปกรณ์</translation>
 <translation id="4823651846660089135">อุปกรณ์เป็นแบบอ่านอย่างเดียว</translation>
+<translation id="4823955295535347797">เข้าถึง Assistant ได้ทุกเมื่อเพียงพูดว่า "Ok Google" เมื่อหน้าจอเปิดอยู่</translation>
 <translation id="4828937774870308359">ออสเตรเลีย</translation>
 <translation id="4829768588131278040">ตั้งค่า PIN</translation>
 <translation id="4830502475412647084">กำลังติดตั้งอัปเดตระบบปฏิบัติการ</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">ช่วยวิศวกรของเราตรวจสอบและแก้ไขข้อขัดข้องนี้ ระบุขั้นตอนที่แน่นอนหากทำได้ ไม่มีรายละเอียดใดที่ไร้ประโยชน์!</translation>
 <translation id="4876895919560854374">ล็อกและปลดล็อกหน้าจอ</translation>
 <translation id="4877017884043316611">จับคู่กับ Chromebox</translation>
+<translation id="4879491255372875719">อัตโนมัติ (ค่าเริ่มต้น)</translation>
 <translation id="4880214202172289027">แถบเลื่อนระดับเสียง</translation>
 <translation id="4880328057631981605">ชื่อจุดเข้าใช้งาน</translation>
 <translation id="4880520557730313061">แก้ไขอัตโนมัติ</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">ขึ้น</translation>
 <translation id="5100114659116077956">คุณต้องอัปเดต Chromebox เพื่อรับฟีเจอร์ใหม่ล่าสุด</translation>
 <translation id="5101042277149003567">เปิดบุ๊กมาร์กทั้งหมด</translation>
-<translation id="5104546332954397226">ใช้โทรศัพท์เป็นกุญแจรักษาความปลอดภัย</translation>
 <translation id="5105855035535475848">ตรึงแท็บ</translation>
 <translation id="5108967062857032718">การตั้งค่า - นำแอป Android ออก</translation>
 <translation id="5109044022078737958">มีอา</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">เ&amp;ปิดแท็บที่ถูกปิดขึ้นใหม่</translation>
 <translation id="52912272896845572">ไฟล์กุญแจส่วนตัวไม่ถูกต้อง</translation>
 <translation id="529175790091471945">ฟอร์แมตอุปกรณ์นี้</translation>
-<translation id="5292195676005197571">ในการใช้คีย์ส่วนใหญ่ ให้แตะปุ่ม</translation>
 <translation id="5293170712604732402">คืนค่าการตั้งค่าเป็นค่าเริ่มต้นเดิม</translation>
 <translation id="5297082477358294722">บันทึกรหัสผ่านแล้ว ดูและจัดการรหัสผ่านที่บันทึกไว้ได้ใน<ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="5298219193514155779">ธีมที่สร้างโดย</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">ฉันยอมรับ</translation>
 <translation id="532943162177641444">แตะการแจ้งเตือนใน <ph name="PHONE_NAME" /> เพื่อตั้งค่าฮอตสปอตเคลื่อนที่ที่อุปกรณ์นี้ใช้ได้</translation>
 <translation id="5329858601952122676">&amp;ลบ</translation>
+<translation id="5329945517224105597">Assistant ให้คำแนะนำที่เกี่ยวข้องมากขึ้นและการดำเนินการเฉพาะเกี่ยวกับสิ่งที่อยู่ในหน้าจอได้ คุณเปลี่ยนแปลงการดำเนินการนี้ได้ในการตั้งค่า Assistant</translation>
 <translation id="5330145655348521461">ไฟล์เหล่านี้เปิดอยู่บนเดสก์ท็อปเครื่องอื่น โปรดย้ายมายัง <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) เพื่อดู</translation>
 <translation id="5330512191124428349">รับข้อมูล</translation>
 <translation id="5331069282670671859">คุณไม่มีใบรับรองในหมวดหมู่นี้</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">อนุญาตให้ไซต์เล่นเสียง</translation>
 <translation id="5390284375844109566">ฐานข้อมูลที่มีการจัดทำดัชนี</translation>
 <translation id="5390743329570580756">ส่งสำหรับ</translation>
-<translation id="5392327114396848796">ใช้กุญแจรักษาความปลอดภัยในตัว</translation>
 <translation id="5397794290049113714">คุณ</translation>
 <translation id="5398572795982417028">การอ้างอิงหน้าอยู่นอกขอบเขต จำกัดไว้ที่ <ph name="MAXIMUM_PAGE" /> หน้า</translation>
 <translation id="5398772614898833570">บล็อกโฆษณา</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    ปิดไฟล์ทั้งหมดในที่เก็บถาวรหรือดิสก์เสมือน จากนั้นลองอีกครั้ง</translation>
 <translation id="5687326903064479980">เขตเวลา</translation>
+<translation id="568824803367507355">การตรวจพบ "Ok Google"</translation>
 <translation id="5689516760719285838">ตำแหน่ง</translation>
 <translation id="56907980372820799">ลิงก์ข้อมูล</translation>
 <translation id="5691511426247308406">ครอบครัว</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - กำลังบันทึกด้วยกล้องหรือไมโครโฟน</translation>
 <translation id="5835754902560991078">สั้นมาก (0.6 วินาที)</translation>
 <translation id="5838456317242088717">เซสชันไม่ระบุตัวตนปัจจุบัน</translation>
-<translation id="5842053879378944309">ใช้กุญแจรักษาความปลอดภัย USB กับ <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">เปิดใช้บลูทูธ</translation>
 <translation id="5843250171025351504">อุปกรณ์ของคุณใช้เวอร์ชันไคลเอ็นต์ที่ต่ำกว่าเวอร์ชันที่ผู้ดูแลระบบกำหนดไว้ โปรดอัปเดตเพื่อเข้าสู่ระบบ</translation>
 <translation id="5846929185714966548">แท็บ 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">ไม่รองรับแล้ว</translation>
 <translation id="6317369057005134371">กำลังรอหน้าต่างแอปพลิเคชัน...</translation>
 <translation id="6318407754858604988">เริ่มดาวน์โหลดแล้ว</translation>
-<translation id="6322653941595359182">ส่งและรับข้อความจาก Chromebook</translation>
 <translation id="6324916366299863871">แก้ไขทางลัด</translation>
 <translation id="6325191661371220117">ปิดใช้งานการเรียกใช้อัตโนมัติ</translation>
 <translation id="6326175484149238433">ลบจาก Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">ส่ง<ph name="BEGIN_LINK1" />ข้อมูลระบบ<ph name="END_LINK1" />และ<ph name="BEGIN_LINK2" />เมตริก<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">ตัวเลือกการซิงค์และการปรับเปลี่ยนในแบบของคุณ</translation>
 <translation id="6397592254427394018">เปิดบุ๊กมาร์กทั้งหมดใน&amp;หน้าต่างที่ไม่ระบุตัวตน</translation>
+<translation id="639777613761517128">หากต้องการเปิดไฟล์ด้วย $1 ให้คัดลอกไฟล์ไปที่โฟลเดอร์ "ไฟล์ Linux" ก่อน</translation>
 <translation id="6398715114293939307">นำ Google Play Store ออก</translation>
 <translation id="6398765197997659313">ออกจากการแสดงแบบเต็มหน้าจอ</translation>
 <translation id="6399774419735315745">สายลับ</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">ชื่อนี้ไม่สามารถใช้เป็นชื่อไฟล์ของโฟลเดอร์</translation>
 <translation id="642469772702851743">เจ้าของล็อกอุปกรณ์นี้ไว้ (หมายเลขประจำเครื่อง: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6426200009596957090">เปิดการตั้งค่า ChromeVox</translation>
-<translation id="6427415464407526111">เลือกคีย์ความปลอดภัย</translation>
 <translation id="6429384232893414837">เกิดข้อผิดพลาดในการอัปเดต</translation>
 <translation id="6430814529589430811">Base64-encoded ASCII, ใบรับรองเดี่ยว</translation>
 <translation id="6431217872648827691">ข้อมูลทั้งหมดมีการเข้ารหัสด้วยรหัสผ่าน Google ของคุณตั้งแต่
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">โหมดนักพัฒนาซอฟต์แวร์</translation>
 <translation id="6655458902729017087">ซ่อนบัญชี</translation>
 <translation id="6657585470893396449">รหัสผ่าน</translation>
-<translation id="6658023813581644008">ป้อนรหัสผ่านเพื่อตั้งค่า Smart Lock สำหรับการลงชื่อเข้าใช้</translation>
 <translation id="6659213950629089752">หน้านี้ซูมด้วยส่วนขยาย "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">แท็บ</translation>
 <translation id="6664237456442406323">น่าเสียดายที่คอมพิวเตอร์ของคุณถูกกำหนดค่าด้วย ID ฮาร์ดแวร์ที่มีรูปแบบที่ไม่ถูกต้อง ซึ่งจะป้องกันไม่ให้ Chrome OS อัปเดตการแก้ใขปัญหาความปลอดภัยล่าสุดได้ และคอมพิวเตอร์ของคุณ <ph name="BEGIN_BOLD" />อาจเสี่ยงต่อการโจมตีที่เป็นอันตราย<ph name="END_BOLD" /></translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">ดูตัวอย่างข้อมูลระบบ</translation>
 <translation id="6886871292305414135">เปิดลิงก์ในแ&amp;ท็บใหม่</translation>
 <translation id="6892812721183419409">เปิดลิงก์ในฐานะ <ph name="USER" /></translation>
-<translation id="6896398788631624004">เสียบกุญแจรักษาความปลอดภัยและเปิดใช้งาน</translation>
 <translation id="6896758677409633944">คัดลอก</translation>
 <translation id="6898440773573063262">แอปพลิเคชันคีออสก์สามารถกำหนดค่าให้เปิดอัตโนมัติบนอุปกรณ์นี้ได้แล้ว</translation>
 <translation id="6898699227549475383">องค์กร (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">ผู้ใช้:</translation>
 <translation id="6916590542764765824">จัดการส่วนขยาย</translation>
 <translation id="6920989436227028121">เปิดเป็นแท็บทั่วไป</translation>
+<translation id="6921709132208495314">หยุดใช้อินเทอร์เน็ตในหน้านี้</translation>
 <translation id="6922128026973287222">บันทึกข้อมูลและท่องเว็บเร็วขึ้นโดยใช้ Google โปรแกรมประหยัดอินเทอร์เน็ต คลิกเพื่อดูข้อมูลเพิ่มเติม</translation>
 <translation id="6923132443355966645">เลื่อน/คลิก</translation>
 <translation id="6930242544192836755">ระยะเวลา</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">ตกลง</translation>
 <translation id="6965648386495488594">พอร์ต</translation>
 <translation id="6965978654500191972">อุปกรณ์</translation>
+<translation id="6968288415730398122">ป้อนรหัสผ่านเพื่อกำหนดค่าการล็อกหน้าจอ</translation>
 <translation id="6970480684834282392">ประเภทการเริ่มต้น</translation>
 <translation id="6970856801391541997">พิมพ์หน้าเว็บที่ระบุ</translation>
 <translation id="6972180789171089114">เสียง/วิดีโอ</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">เครื่องมือค้นหา</translation>
 <translation id="6978611942794658017">ไฟล์นี้ออกแบบมาสำหรับพีซีที่ใช้ซอฟต์แวร์ Windows ไฟล์นี้เข้ากันไม่ได้กับอุปกรณ์ของคุณซึ่งใช้ Chrome OS โปรดค้นหาแอปทดแทนที่เหมาะสมใน Chrome เว็บสโตร์</translation>
 <translation id="6979158407327259162">Google ไดรฟ์</translation>
+<translation id="6979440798594660689">ปิดเสียง (ค่าเริ่มต้น)</translation>
 <translation id="6979737339423435258">ตั้งแต่ต้น</translation>
 <translation id="6980462514016882061">Google อาจใช้ประวัติการท่องเว็บของคุณเพื่อปรับเปลี่ยนการค้นหา โฆษณา และบริการอื่นๆ ของ Google ในแบบของคุณ</translation>
 <translation id="6981982820502123353">การเข้าถึง</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />ข้อมูลนี้เป็นข้อมูลทั่วไปเกี่ยวกับอุปกรณ์และลักษณะการใช้งานอุปกรณ์ (เช่น ระดับแบตเตอรี่ การใช้งานแอป และการเชื่อมต่อเครือข่าย) ข้อมูลนี้จะใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Google สำหรับทุกคน ข้อมูลบางส่วนที่รวบรวมไว้จะช่วยให้พาร์ทเนอร์ เช่น นักพัฒนาซอฟต์แวร์ Android สร้างสรรค์แอปและผลิตภัณฑ์ที่ดียิ่งขึ้นได้อีกด้วย<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />การปิดฟีเจอร์นี้ไม่ส่งผลต่อความสามารถของอุปกรณ์ในการส่งข้อมูลที่จำเป็นสำหรับบริการสำคัญอย่างการอัปเดตระบบและความปลอดภัย<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />คุณควบคุมฟีเจอร์นี้ได้จากการตั้งค่า &gt; Google เลือก "การใช้งานและการวินิจฉัย" จากเมนู<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">เราพบแอป <ph name="NUMBER_OF_APPS" /> แอปจากบัญชีของคุณที่ใช้ในอุปกรณ์นี้ได้</translation>
 <translation id="7199158086730159431">รั&amp;บความช่วยเหลือ</translation>
 <translation id="7200083590239651963">เลือกการกำหนดค่า</translation>
 <translation id="720110658997053098">เก็บอุปกรณ์นี้ไว้ในโหมดคีออสก์อย่างถาวร</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">ล็อกหน้าจอและการลงชื่อเข้าใช้</translation>
 <translation id="7229570126336867161">ต้องใช้ EVDO</translation>
 <translation id="7230787553283372882">กำหนดขนาดข้อความของคุณ</translation>
-<translation id="7231589788477569369">ใช้ Assistant ให้ได้ประโยชน์สูงสุดด้วยการตั้งค่าเหล่านี้</translation>
 <translation id="7232750842195536390">การเปลี่ยนชื่อล้มเหลว</translation>
 <translation id="7234406375359457793">เกิดข้อผิดพลาดขณะต่อเชื่อมพื้นที่แชร์ ไม่รองรับพื้นที่แชร์ที่ระบุ</translation>
 <translation id="7238585580608191973">ลายนิ้วมือ SHA-256</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">ล้างและออกจากระบบ</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ดีที่สุด)</translation>
 <translation id="7246339268451149667">หากต้องการเปิดใช้การปลดล็อกด้วยลายนิ้วมือ</translation>
-<translation id="7246489301073081944">กด |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| ค้างไว้เพื่อออก</translation>
 <translation id="7246947237293279874">พร็อกซี FTP</translation>
 <translation id="725109152065019550">ขออภัย ผู้ดูแลระบบของคุณได้ปิดใช้งานพื้นที่เก็บข้อมูลภายนอกกับบัญชีของคุณ</translation>
 <translation id="7253521419891527137">&amp;ดูข้อมูลเพิ่มเติม</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">ตรวจสอบคุณสมบัติ</translation>
 <translation id="749028671485790643">คนที่ <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">ที่อยู่ MAC</translation>
-<translation id="7490950320178383728">ใช้กุญแจรักษาความปลอดภัยกับบลูทูธ</translation>
 <translation id="7491962110804786152">แท็บ</translation>
 <translation id="7493386493263658176">ส่วนขยาย <ph name="EXTENSION_NAME" /> อาจรวบรวมข้อความทั้งหมดที่คุณพิมพ์ ซึ่งรวมถึงข้อมูลส่วนตัว เช่น รหัสผ่านและหมายเลขบัตรเครดิต คุณต้องการใช้ส่วนขยายนี้ไหม</translation>
 <translation id="7494065396242762445">เปิดการตั้งค่า Windows</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">ยังไม่มีการแชร์ไฟล์ไดรฟ์เหล่านี้</translation>
 <translation id="7851457902707056880">จำกัดการลงชื่อเข้าใช้เฉพาะบัญชีผู้ใช้เท่านั้น โปรดรีบูตและลงชื่อเข้าใช้ด้วยบัญชีของเจ้าของ คอมพิวเตอร์จะรีบูตอัตโนมัติใน 30 วินาที</translation>
 <translation id="7851716364080026749">บล็อกการเข้าถึงกล้องถ่ายรูปและไมโครโฟนทุกครั้ง</translation>
-<translation id="7851816139220202929">ใช้กุญแจรักษาความปลอดภัยกับ NFC</translation>
 <translation id="7853747251428735">เครื่องมือเ&amp;พิ่มเติม</translation>
 <translation id="7856006446339184955">ส่งข้อมูลระบบ ปัจจุบันอุปกรณ์นี้ส่งข้อมูลการวินิจฉัยและข้อมูลการใช้งานอุปกรณ์และแอปไปยัง Google โดยอัตโนมัติ เจ้าของเป็นผู้บังคับใช้<ph name="BEGIN_LINK1" />การตั้งค่า<ph name="END_LINK1" />นี้ หากคุณเปิดกิจกรรมบนเว็บและแอปเพิ่มเติม ระบบจะเก็บข้อมูลนี้ไว้กับบัญชีเพื่อให้คุณจัดการได้ในกิจกรรมของฉัน <ph name="BEGIN_LINK2" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">เพิ่มข้อยกเว้น</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">การตรวจสอบสิทธิ์ PPP ล้มเหลวเนื่องจากชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง</translation>
 <translation id="7974566588408714340">ลองอีกครั้งโดยใช้ <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">โอเวอร์สแกน</translation>
+<translation id="79766959863778284">บริการอุปกรณ์ที่แยก XR</translation>
 <translation id="7977551819349545646">กำลังอัปเดต Chromebox...</translation>
 <translation id="7978412674231730200">กุญแจส่วนตัว</translation>
 <translation id="7978450511781612192">การดำเนินการนี้จะนำคุณออกจากบัญชี Google บุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และข้อมูลอื่นๆ จะไม่ซิงค์อีกต่อไป</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">เพิ่มเครื่องพิมพ์</translation>
 <translation id="8032244173881942855">ไม่สามารถแคสต์แท็บ</translation>
 <translation id="8033827949643255796">เลือกแล้ว</translation>
-<translation id="8033958968890501070">หมดเวลา</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{เปิดทั้งหมดใน&amp;หน้าต่างที่ไม่ระบุตัวตน}=1{เปิดใน&amp;หน้าต่างที่ไม่ระบุตัวตน}other{เปิดทั้งหมด (#) ใน&amp;หน้าต่างที่ไม่ระบุตัวตน}}</translation>
 <translation id="8037117027592400564">อ่านข้อความทั้งหมดที่พูดโดยใช้เสียงสังเคราะห์</translation>
 <translation id="8037357227543935929">ขอ (ค่าเริ่มต้น)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">ทั้งหน้าจอของคุณ</translation>
 <translation id="8322814362483282060">หน้านี้ถูกบล็อกไม่ให้เข้าถึงไมโครโฟนของคุณ</translation>
 <translation id="8326478304147373412">PKCS #7, กลุ่มใบรับรอง (Certificate Chain)</translation>
+<translation id="8327039559959785305">เกิดข้อผิดพลาดขณะต่อเชื่อมไฟล์ Linux โปรดลองอีกครั้ง</translation>
 <translation id="8329978297633540474">ข้อความล้วน</translation>
 <translation id="8335587457941836791">เลิกตรึงในชั้นวาง</translation>
 <translation id="8336153091935557858">เมื่อวานนี้ <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">เปลี่ยน</translation>
 <translation id="8425492902634685834">กำหนดลงบนทาสก์บาร์</translation>
 <translation id="8425755597197517046">&amp;วางและค้นหา</translation>
-<translation id="8426117172745886547">เตือนก่อนออก (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">กำลังเปิดใช้</translation>
 <translation id="8427292751741042100">ฝังในโฮสต์ใดก็ได้</translation>
 <translation id="8428213095426709021">การตั้งค่า</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">ใบอนุญาต</translation>
 <translation id="8553342806078037065">จัดการบุคคลอื่นๆ</translation>
 <translation id="8554899698005018844">ไม่มีภาษา</translation>
-<translation id="8557347704037207368">ส่งการแจ้งเตือนจาก Android Web Messages</translation>
 <translation id="855773602626431402">ปลั๊กอินที่ไม่ได้อยู่ในแซนด์บ็อกซ์ถูกป้องกันไม่ให้ทำงานในหน้าเว็บนี้</translation>
 <translation id="8557930019681227453">ไฟล์ Manifest</translation>
 <translation id="8559694214572302298">ตัวถอดรหัสรูปภาพ</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">สิ้นสุดการสนับสนุน</translation>
 <translation id="8714838604780058252">กราฟิกพื้นหลัง</translation>
 <translation id="8715480913140015283">แท็บพื้นหลังกำลังใช้กล้อง</translation>
+<translation id="8716931980467311658">ลบแอปพลิเคชัน Linux และข้อมูลทั้งหมดในโฟลเดอร์ "ไฟล์ Linux" ออกจาก <ph name="DEVICE_TYPE" /> นี้ไหม</translation>
 <translation id="8719653885894320876">การดาวน์โหลด <ph name="PLUGIN_NAME" /> ล้มเหลว</translation>
 <translation id="8723829621484579639">เฟรมย่อยแบบไม่ระบุตัวตนสำหรับ: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;แสดงในโฟลเดอร์</translation>
@@ -5206,7 +5197,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ขัดข้อง</translation>
 <translation id="8983677657449185470">ช่วยปรับปรุง Safe Browsing</translation>
 <translation id="8984654317541110628">URL ของพื้นที่แชร์ไฟล์</translation>
-<translation id="8984872292925913496">ค้นหา PIN 6 หลักที่ด้านหลังคีย์</translation>
 <translation id="8986362086234534611">ไม่จำ</translation>
 <translation id="8986494364107987395">ส่งสถิติการใช้งานและรายงานข้อขัดข้องไปยัง Google โดยอัตโนมัติ</translation>
 <translation id="8987927404178983737">เดือน</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 54e333b..71de3f2 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Değiştiğinde nesneyi klavye odağıyla vurgula</translation>
 <translation id="1173894706177603556">Yeniden adlandır</translation>
 <translation id="1174073918202301297">Kısayol eklendi</translation>
-<translation id="1174808551768282258">Chromebook'unuzun kilidini telefonunuzla açın. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">Ya&amp;zdır...</translation>
 <translation id="117624967391683467"><ph name="FILE_NAME" /> kopyalanıyor...</translation>
 <translation id="1177138678118607465">Google; Arama, reklamlar ve diğer Google hizmetlerini kişiselleştirmek için tarama geçmişinizi kullanabilir. Bunu istediğiniz zaman myaccount.google.com/activitycontrols/search adresinden değiştirebilirsiniz</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Duraklat</translation>
 <translation id="1181037720776840403">Kaldır</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> yerel önbelleğe yüklenemiyor.</translation>
-<translation id="1183378459020939734">Güvenlik Anahtarınızı eşlemeye hazır mısınız?</translation>
 <translation id="1185924365081634987">Ayrıca, bu ağ hatasını gidermek için <ph name="GUEST_SIGNIN_LINK_START" />misafir olarak göz atmayı<ph name="GUEST_SIGNIN_LINK_END" /> da deneyebilirsiniz.</translation>
 <translation id="1186771945450942097">Zararlı yazılımı kaldır</translation>
 <translation id="1187722533808055681">Boşta kalma uyanmaları</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Bluetooth cihazı bulunamadı</translation>
 <translation id="1306606229401759371">Ayarları değiştir</translation>
 <translation id="1307559529304613120">Hata! Sistem bu cihaza ait uzun vadeli API erişim verisini kaydedemedi.</translation>
+<translation id="1307931752636661898">Linux dosyaları görüntülenemiyor</translation>
 <translation id="1313405956111467313">Otomatik proxy yapılandırması</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Yer işaretleriniz, geçmişiniz ve diğer ayarlarınız Google Hesabınızla senkronize edilecek.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Fare ve dokunmatik alan cihaz ayarlarını aç</translation>
 <translation id="1531004739673299060">Uygulama Penceresi</translation>
 <translation id="15373452373711364">Büyük fare imleci</translation>
+<translation id="1538729222189715449">Linux dosyaları açılıyor...</translation>
 <translation id="1540605929960647700">Demo modunu etkinleştir</translation>
 <translation id="1543284117603151572">Edge'den Aktarıldı</translation>
 <translation id="1545177026077493356">Otomatik Kiosk Modu</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Dokunmatik HUD modunu değiştir</translation>
 <translation id="1784849162047402014">Cihazda disk alanı az</translation>
 <translation id="1786636458339910689">Ekip Drive'ları</translation>
-<translation id="1792161662640298233">Güvenlik Anahtarınız doğrulanıyor</translation>
 <translation id="1792619191750875668">Genişletilmiş ekran</translation>
 <translation id="1794791083288629568">Bu sorunu düzeltmemize yardımcı olmak için geri bildirim gönderin.</translation>
 <translation id="1795214765651529549">Klasik Temayı Kullan</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Hoş geldiniz!</translation>
 <translation id="1914326953223720820">Sıkıştırma Açma Hizmeti</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Hesap ayarlarınıza bağlı olarak Asistan deneyiminiz web sonuçları, şakalar ve yerel bilgiler gibi şeylerle sınırlı olabilir.</translation>
 <translation id="1916502483199172559">Varsayılan kırmızı avatar</translation>
 <translation id="1918141783557917887">Daha &amp;küçük</translation>
 <translation id="1919345977826869612">Reklamlar</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_DOMAIN" /> alanındaki <ph name="PEPPER_PLUGIN_NAME" /> eklentisi bilgisayarınıza erişmek istiyor</translation>
 <translation id="2178614541317717477">CA Uzlaşması</translation>
 <translation id="218070003709087997">Yazdırılacak kopya sayısını göstermek için rakam kullanın (1 - 999 arası).</translation>
+<translation id="2184515124301515068">Sitelerin ne zaman ses çalacağını Chrome'un seçmesine izin verin (önerilir)</translation>
 <translation id="2187895286714876935">Sunucu Sertifikası İçe Aktarma Hatası</translation>
 <translation id="2187906491731510095">Uzantılar güncellendi</translation>
 <translation id="2188881192257509750"><ph name="APPLICATION" /> adlı uygulamayı aç</translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Çeşitli web sitelerinde verilerinizi okuma ve değiştirme</translation>
 <translation id="2242687258748107519">Dosya Bilgileri</translation>
 <translation id="2243194103992005307">Uygulamaları kaldırmak için Ayarlar &gt; Uygulamalar veya Uygulama yöneticisi'ne gidin. Daha sonra, yüklemesini kaldırmak istediğiniz uygulamaya dokunun (uygulamayı bulmak için sağa veya sola doğru hızlıca kaydırmanız gerekebilir). Ardından, Yüklemeyi Kaldır veya Devre Dışı Bırak'a dokunun.</translation>
+<translation id="224940702122312781">Bu sayfa çok fazla veri kullanacak.</translation>
 <translation id="2249605167705922988">ör. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Sistem görüntüleyici ile aç</translation>
 <translation id="225163402930830576">Ağları Yenile</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Ağı yapılandır</translation>
 <translation id="230927227160767054">Bu sayfa bir servis işleyici yüklemek istiyor.</translation>
 <translation id="2309620859903500144">Bu sitenin, hareket veya ışık sensörlerinize erişimi engellenmiştir.</translation>
-<translation id="2311075084924370935">Asistanınızın takviminiz, hatırlatıcılar, uçuşlar ve daha pek çok konuda size yardımcı olabilmesi için Web ve Uygulama Etkinliği, Cihaz Bilgileri ve Ses Etkinliği ayarlarına ihtiyacı vardır.</translation>
+<translation id="2315414688463285945">Linux dosyaları yapılandırılırken hata oluştu. Lütfen tekrar deneyin.</translation>
 <translation id="2315821125498993513">Telefona bağlanılamadı. <ph name="LINK_BEGIN" />Daha fazla bilgi.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Hayır, teşekkürler</translation>
 <translation id="2317842250900878657">%<ph name="PROGRESS_PERCENT" /> tamamlandı</translation>
 <translation id="2318143611928805047">Kağıt boyutu</translation>
 <translation id="2318817390901984578">Android uygulamalarını kullanmak için <ph name="DEVICE_TYPE" /> cihazınızı şarj edin ve güncelleyin.</translation>
 <translation id="2318923050469484167">Geçerli gizli oturum (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Güvenlik Anahtarınızı <ph name="APP_NAME" /> ile kullanın</translation>
 <translation id="2322193970951063277">Üstbilgiler ve altbilgiler</translation>
 <translation id="2325650632570794183">Bu dosya türü desteklenmiyor. Bu dosya türünü açabilecek bir uygulama bulmak için lütfen Chrome Web Mağazası'nı ziyaret edin.</translation>
 <translation id="2326931316514688470">&amp;Uygulamayı yeniden yükle</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Dosya Paylaşımı Ekle</translation>
 <translation id="2367972762794486313">Uygulamaları göster</translation>
 <translation id="2369536625682139252"><ph name="SITE" /> web sitesinin depoladığı tüm veriler silinecek</translation>
-<translation id="237058345584060620">Anahtarınızı hesabınızda oturum açarken kullanabilmeniz için bu cihazla eşleyin</translation>
 <translation id="2371076942591664043">İşlem tamamlandığın&amp;da aç</translation>
 <translation id="2377319039870049694">Liste görünümüne geç</translation>
 <translation id="2377667304966270281">Donanım Hataları</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Telefonunuz bulunamıyor. <ph name="DEVICE_TYPE" /> cihazınızın Bluetooth'unun açık olduğundan emin olun. &lt;a&gt;Daha fazla bilgi&lt;/a&gt;</translation>
 <translation id="2489918096470125693">&amp;Klasör Ekle...</translation>
 <translation id="249113932447298600">Maalesef, <ph name="DEVICE_LABEL" /> cihazı şu anda desteklenmiyor.</translation>
-<translation id="2492040222276243256">Güvenlik Anahtarınızın üzerindeki düğmeyi en az 5 saniye süreyle basılı tutun</translation>
 <translation id="2493021387995458222">"Bir seferde tek kelime" seçin</translation>
 <translation id="249303669840926644">Kayıt işlemi tamamlanamadı</translation>
 <translation id="2495777824269688114">Daha fazla özellik keşfedin veya sorularınıza yanıt alın. Yardım için “?” düğmesini seçin.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Toplam: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Uzun</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Platform: <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Bu sekme, ekranınızı paylaşıyor.</translation>
 <translation id="2586657967955657006">Pano</translation>
 <translation id="2586672484245266891">Lütfen daha kısa bir URL girin</translation>
 <translation id="2587922270115112871">Denetlenen bir kullanıcı oluşturulduğunda bir Google Hesabı oluşturulmaz. Yeni kullanıcının
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" />, <ph name="USAGE" /> MB disk alanı kullanıyor.</translation>
 <translation id="2633212996805280240">"<ph name="EXTENSION_NAME" />" kaldırılsın mı?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> yükleme işlemini tamamlayamadı, ancak disk görüntüsünden çalışmaya devam edecek.</translation>
-<translation id="2633326789677284179">Anahtarınızın arkasında yazılı olan adı bulun</translation>
 <translation id="2635276683026132559">İmzalama</translation>
 <translation id="2636625531157955190">Chrome resme erişemiyor.</translation>
 <translation id="2638087589890736295">Senkronizasyonu başlatmak için parola gerekiyor</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> Sağlayıcısını Ekle...</translation>
 <translation id="2874343608108773609">Şifrelerinizi tüm cihazlarınızda almak için Chrome'da oturum açın.</translation>
 <translation id="2875698561019555027">(Chrome hata sayfaları)</translation>
-<translation id="2876441201733326392">USB Güvenlik Anahtarını Kullanın</translation>
 <translation id="288042212351694283">Evrensel 2. Faktör cihazlarınıza erişim</translation>
 <translation id="2881966438216424900">Son erişim zamanı:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> geçici olarak yeniden başlatılacak ve sıfırlanacaktır.</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Anonim olarak bildir</translation>
 <translation id="2984337792991268709">Bugün <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Bu sayfanın MIDI cihazları üzerinde tam denetime sahip olması engellendi.</translation>
-<translation id="2988599644347283908">Not: Bu ayarların kontrol ettiği veriler, size kişisel deneyim ve işinize yarayacak reklamlar sunmak amacıyla, oturum açtığınız tüm Google hizmetlerinde kaydedilebilir ve kullanılabilir. account.google.com adresinde verilerinizi görebilir, silebilir veya değiştirebilirsiniz.</translation>
 <translation id="2989474696604907455">ekli değil</translation>
 <translation id="2989786307324390836">DER kodlu ikili, tek sertifika</translation>
 <translation id="2993517869960930405">Uygulama Bilgisi</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Sekmelerin Sesini Aç</translation>
 <translation id="3053013834507634016">Sertifika Anahtarı Kullanımı</translation>
 <translation id="3057861065630527966">Fotoğraflarınızı ve videolarınızı yedekleyin</translation>
-<translation id="3059313675706898490">Android Mesajlar</translation>
 <translation id="3060379269883947824">Seç ve Dinle'yi etkinleştir</translation>
 <translation id="3061707000357573562">Yama Hizmeti</translation>
 <translation id="3064410671692449875">Yetersiz veri</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Harici crx dosyası <ph name="TEMP_CRX_FILE" /> hedefine kopyalanamıyor.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" eşlendi</translation>
 <translation id="3101709781009526431">Tarih ve saat</translation>
-<translation id="3104900172193317662">Güvenlik Anahtarınızın kullanımına izin verin</translation>
 <translation id="310671807099593501">Site, Bluetooth bağlantısını kullanıyor</translation>
 <translation id="3115128645424181617">Telefonunuz bulunamıyor. Telefonunuzun yakında olduğundan ve Bluetooth'un açık olduğundan emin olun.</translation>
 <translation id="3115147772012638511">Önbellek bekleniyor...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Sertifikanın Parçası Değil&gt;</translation>
 <translation id="3254434849914415189"><ph name="FILE_TYPE" /> dosyaları için varsayılan uygulamayı seç:</translation>
 <translation id="3254516606912442756">Otomatik saat dilimi algılama devre dışı</translation>
-<translation id="3254772308201947812">Evet, istiyorum</translation>
 <translation id="3264544094376351444">Sans-serif yazı tipi</translation>
 <translation id="3264547943200567728">Chromebox'ınızın ağı yapılandırılamadı</translation>
 <translation id="3264582393905923483">Bağlam</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Sıralama ölçütü</translation>
 <translation id="3737274407993947948">Linux yüklenirken hata oluştu...</translation>
 <translation id="3737536731758327622">İndirdikleriniz burada görünür</translation>
-<translation id="3738671331307774213">Kimliğinizin doğrulanması gizli verilerinizin korunmasına yardımcı olur</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094"><ph name="APPLICATION" /> açılsın mı?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> şimdi Yönetici Konsolu'nda görünecek</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Senkronizasyon duraklatıldı</translation>
 <translation id="3860381078714302691">Hangouts Meet'e hoş geldiniz</translation>
+<translation id="3861241522664181545">Sayfa duraklatıldı.</translation>
 <translation id="3862134173397075045">Chrome'da Google Cast deneyimine hoş geldiniz!</translation>
 <translation id="3862788408946266506">"kiosk_only" manifest özelliğine sahip uygulamalar ChromeOS kiosk modunda yüklenmelidir</translation>
 <translation id="3865414814144988605">Çözünürlük</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Bu özelliği açmak için <ph name="BEGIN_LINK" />senkronizasyonu sıfırlayarak<ph name="END_LINK" /> senkronizasyon parolanızı kaldırın</translation>
 <translation id="3878840326289104869">Denetlenen kullanıcı oluşturma</translation>
 <translation id="3879748587602334249">İndirme yöneticisi</translation>
-<translation id="3880709822663530586">Güvenlik Anahtarınız, yalnızca cihazınızın Bluetooth özelliği açıkken çalışır</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ile not alınıyor</translation>
 <translation id="3892414795099177503">OpenVPN / L2TP Ekle...</translation>
 <translation id="3893536212201235195">Erişilebilirlik ayarlarınızı okuma ve değiştirme</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Güvenli modül hazırlanıyor, lütfen bekleyin (bu işlem birkaç dakika sürebilir)...</translation>
 <translation id="4099060993766194518">Varsayılan arama motoru geri yüklensin mi?</translation>
 <translation id="4100733287846229632">Cihazda kullanılabilir alan kritik düzeyde az</translation>
+<translation id="4103091233824664032">Ekran kilidini yapılandırmak ve oturum açmak için şifrenizi girin</translation>
 <translation id="4104163789986725820">&amp;Dışa Aktar...</translation>
 <translation id="4105563239298244027">Google Drive ile 1 TB ücretsiz depolama alanı edinin.</translation>
 <translation id="4107048419833779140">Depolama cihazlarını tanımlama ve çıkarma</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Gece Işığı güneş doğduğunda otomatik olarak kapatılır</translation>
 <translation id="4138267921960073861">Oturum açma ekranında kullanıcı adlarını ve fotoğrafları göster</translation>
 <translation id="4144218403971135344">Daha iyi video kalitesi elde edin ve pil ömründen tasarruf edin. Video yalnızca Cast uyumlu ekranınızda oynatılır.</translation>
-<translation id="414599683948988413">Güvenlik Anahtarınızı USB ile kullanın</translation>
 <translation id="4146026355784316281">Her Zaman Sistem Görüntüleyici ile Aç</translation>
 <translation id="4146785383423576110">Sıfırla ve temizle</translation>
 <translation id="4147897805161313378">Google Fotoğraflar</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Devre dışı bırak</translation>
 <translation id="4400367121200150367">Şifreleri hiçbir zaman kaydedilmeyecek siteler burada görünür</translation>
 <translation id="4400632832271803360">Üst satırdaki tuşların davranışını değiştirmek için Başlatıcı tuşunu basılı tutun</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">Yar&amp;dım</translation>
 <translation id="4409697491990005945">Kenar Boşlukları</translation>
 <translation id="4411578466613447185">Kod İmza Sahibi</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome, bilgisayarınızdaki zararlı yazılımları bulabilir ve kaldırabilir</translation>
 <translation id="4481530544597605423">Eşlemesi kaldırılmış cihazlar</translation>
 <translation id="4482194545587547824">Google, Arama ve diğer Google hizmetlerini kişiselleştirmek için tarama geçmişinizi kullanabilir</translation>
+<translation id="4493287891836751813">Google Asistanınızla tanışın</translation>
 <translation id="4495419450179050807">Bu sayfada gösterme</translation>
 <translation id="4499718683476608392">Formları tek bir tıklamayla doldurmak için kredi kartı bilgilerini Otomatik Doldurma özelliğini etkinleştirir</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> eklentisi kilitlendi</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Sekmenin Sesini Kapat</translation>
 <translation id="4742746985488890273">Rafa sabitle</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Uygulamaların nasıl güncelleneceğini öğrenin<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Mesajlar</translation>
 <translation id="4746971725921104503">Bu adı taşıyan bir kullanıcıyı zaten yönettiğiniz görünüyor. <ph name="LINK_START" /><ph name="USER_DISPLAY_NAME" /> kullanıcısını bu cihaza aktarmak<ph name="LINK_END" /> mı istediniz?</translation>
 <translation id="4748762018725435655">Chrome Web Store'dan bir uzantı gerektiriyor</translation>
 <translation id="4750394297954878236">Öneriler</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Profil Oluşturma Etkin</translation>
 <translation id="4823484602432206655">Kullanıcı ve cihaz ayarlarını okuma ve değiştirme</translation>
 <translation id="4823651846660089135">Cihaz salt okunur</translation>
+<translation id="4823955295535347797">Ekranınız açıkken "Ok Google" diyerek istediğiniz zaman Asistanınıza erişin.</translation>
 <translation id="4828937774870308359">Avustralya</translation>
 <translation id="4829768588131278040">PIN ayarla</translation>
 <translation id="4830502475412647084">OS güncellemesini yükleyin</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Mühendislerimizin kilitlenme olayı araştırmalarına ve düzeltmelerine yardımcı olun. Yapabilirseniz adımları tam olarak listeleyin. Hiçbir ayrıntıyı atlamayın!</translation>
 <translation id="4876895919560854374">Ekranı kilitleme ve kilidini açma</translation>
 <translation id="4877017884043316611">Chromebox ile eşleştirme</translation>
+<translation id="4879491255372875719">Otomatik (varsayılan)</translation>
 <translation id="4880214202172289027">Ses kaydırma çubuğu</translation>
 <translation id="4880328057631981605">Erişim noktası adı</translation>
 <translation id="4880520557730313061">Otomatik düzelt</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">yukarı</translation>
 <translation id="5100114659116077956">En yeni özellikleri edinmek için Chromebox'unuzun güncellenmesi gerekiyor.</translation>
 <translation id="5101042277149003567">Tüm yer işaretlerini aç</translation>
-<translation id="5104546332954397226">Telefonunuzu Güvenlik Anahtarı olarak kullanın</translation>
 <translation id="5105855035535475848">Sabit sekmeler</translation>
 <translation id="5108967062857032718">Ayarlar - Android uygulamalarını kaldır</translation>
 <translation id="5109044022078737958">Maya</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">Kapatılan Sekmeyi T&amp;ekrar Aç</translation>
 <translation id="52912272896845572">Özel anahtar dosyası geçersiz.</translation>
 <translation id="529175790091471945">Bu cihazı biçimlendir</translation>
-<translation id="5292195676005197571">Çoğu anahtarı kullanmak için düğmeye basmanız yeterlidir</translation>
 <translation id="5293170712604732402">Ayarları orijinal varsayılan değerlerine geri yükleyin</translation>
 <translation id="5297082477358294722">Şifre kaydedildi. Kayıtlı şifrelerinizi <ph name="SAVED_PASSWORDS_STORE" /> üzerinde görüntüleyebilir ve yönetebilirsiniz.</translation>
 <translation id="5298219193514155779">Temayı oluşturan:</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Kabul Ediyorum</translation>
 <translation id="532943162177641444">Bu cihaz tarafından kullanılabilecek mobil hotspot'u ayarlamak için <ph name="PHONE_NAME" /> telefonunuzdaki bildirime dokunun.</translation>
 <translation id="5329858601952122676">&amp;Sil</translation>
+<translation id="5329945517224105597">Asistanınız ekranınızdaki öğelerle ilgili daha alakalı tavsiyelerde bulunabilir ve belirli işlemler önerebilir. Bu seçeneği Asistan ayarlarında değiştirebilirsiniz.</translation>
 <translation id="5330145655348521461">Bu dosyalar farklı bir masaüstünde açıldı. Görüntülemek için <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) adlı kullanıcıya geçin.</translation>
 <translation id="5330512191124428349">Bilgi al</translation>
 <translation id="5331069282670671859">Bu kategoride hiç sertifikanız yok</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Sitelerin ses çalmasına izin ver</translation>
 <translation id="5390284375844109566">Dizine alınmış veritabanları</translation>
 <translation id="5390743329570580756">Gönder</translation>
-<translation id="5392327114396848796">Yerleşik bir Güvenlik Anahtarı kullanın</translation>
 <translation id="5397794290049113714">Siz</translation>
 <translation id="5398572795982417028">Sınırların dışında sayfa referansı. Sınır: <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Reklamlar engellendi</translation>
@@ -3077,6 +3071,7 @@
    <ph name="LINE_BREAKS" />
    Arşivdeki veya sanal diskteki tüm dosyaları kapattıktan sonra tekrar deneyin.</translation>
 <translation id="5687326903064479980">Saat dilimi</translation>
+<translation id="568824803367507355">"Ok Google" algılaması</translation>
 <translation id="5689516760719285838">Konum</translation>
 <translation id="56907980372820799">Verileri bağla</translation>
 <translation id="5691511426247308406">Aile</translation>
@@ -3174,7 +3169,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Kamera veya mikrofon kaydediyor</translation>
 <translation id="5835754902560991078">aşırı kısa (0,6 sn.)</translation>
 <translation id="5838456317242088717">Geçerli gizli oturum</translation>
-<translation id="5842053879378944309">USB Güvenlik Anahtarını <ph name="APP_NAME" /> ile kullanın</translation>
 <translation id="5842497610951477805">Bluetooth etkin</translation>
 <translation id="5843250171025351504">Cihazınız, yöneticiniz tarafından belirtilen minimum istemci sürümüyle artık uyumlu değil. Giriş yapmak için lütfen güncelleyin.</translation>
 <translation id="5846929185714966548">Sekme 4</translation>
@@ -3492,7 +3486,6 @@
 <translation id="6317318380444133405">Artık desteklenmiyor.</translation>
 <translation id="6317369057005134371">Uygulama penceresi bekleniyor...</translation>
 <translation id="6318407754858604988">İndirme işlemi başladı</translation>
-<translation id="6322653941595359182">Chromebook'unuzdan kısa mesaj gönderin ve alın</translation>
 <translation id="6324916366299863871">Kısayolu düzenleyin</translation>
 <translation id="6325191661371220117">Otomatik başlatmayı devre dışı bırak</translation>
 <translation id="6326175484149238433">Chrome'dan kaldır</translation>
@@ -3536,6 +3529,7 @@
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />Sistem bilgileri<ph name="END_LINK1" /> ve <ph name="BEGIN_LINK2" />metrikleri<ph name="END_LINK2" /> gönder</translation>
 <translation id="6397094776139756010">Senkronizasyon ve kişiselleştirme seçenekleri</translation>
 <translation id="6397592254427394018">&amp;Tüm yer işaretlerini gizli pencerede aç</translation>
+<translation id="639777613761517128">Dosyaları $1 ile açmak için öncelikle Linux dosyaları klasörüne kopyalayın.</translation>
 <translation id="6398715114293939307">Google Play Store'u kaldır</translation>
 <translation id="6398765197997659313">Tam ekrandan çık</translation>
 <translation id="6399774419735315745">Casus</translation>
@@ -3561,7 +3555,6 @@
 <translation id="642282551015776456">Bu ad, dosya veya klasör adı olarak kullanılamaz</translation>
 <translation id="642469772702851743">Bu cihaz <ph name="SERIAL_NUMBER" /> yöneticisi tarafından kilitlendi.</translation>
 <translation id="6426200009596957090">ChromeVox ayarlarını aç</translation>
-<translation id="6427415464407526111">Güvenlik Anahtarınızı seçin</translation>
 <translation id="6429384232893414837">Güncelleme hatası</translation>
 <translation id="6430814529589430811">Base64 kodlu ASCII, tek sertifika</translation>
 <translation id="6431217872648827691">Tüm veriler şu tarihte Google şifrenizle şifrelendi:
@@ -3719,7 +3712,6 @@
 <translation id="6655190889273724601">Geliştirici modu</translation>
 <translation id="6655458902729017087">Hesapları Gizle</translation>
 <translation id="6657585470893396449">Şifre</translation>
-<translation id="6658023813581644008">Smart Lock ile oturum açma işlevini kurmak için şifrenizi girin</translation>
 <translation id="6659213950629089752">Bu sayfaya, "<ph name="NAME" />" uzantısıyla yakınlaştırma yapıldı</translation>
 <translation id="6659594942844771486">Sekme</translation>
 <translation id="6664237456442406323">Maalesef bilgisayarınız, hatalı oluşturulmuş bir donanım kimliğiyle yapılandırılmış. Bu durum Chrome OS'nin en son güvenlik düzeltmeleriyle güncellenmesini engeller ve bilgisayarınız <ph name="BEGIN_BOLD" />kötü niyetli saldırılara<ph name="END_BOLD" /> açık duruma gelebilir.</translation>
@@ -3855,7 +3847,6 @@
 <translation id="6885771755599377173">Sistem Bilgisi Önizlemesi</translation>
 <translation id="6886871292305414135">Bağlan&amp;tıyı yeni sekmede aç</translation>
 <translation id="6892812721183419409">Bağlantıyı <ph name="USER" /> Olarak Aç</translation>
-<translation id="6896398788631624004">Güvenlik Anahtarınızı takın ve etkinleştirin</translation>
 <translation id="6896758677409633944">Kopyala</translation>
 <translation id="6898440773573063262">Kiosk uygulamaları artık bu cihazda otomatik olarak başlatılacak şekilde yapılandırılabilir.</translation>
 <translation id="6898699227549475383">Kuruluş (O)</translation>
@@ -3874,6 +3865,7 @@
 <translation id="6915804003454593391">Kullanıcı:</translation>
 <translation id="6916590542764765824">Uzantıları yönet</translation>
 <translation id="6920989436227028121">Normal sekme olarak aç</translation>
+<translation id="6921709132208495314">Bu sayfada veri kullanmayı durdurun</translation>
 <translation id="6922128026973287222">Google Veri Tasarrufu'nu kullanarak verileri kaydedin ve daha hızlı göz atın. Daha fazla bilgi edinmek için tıklayın.</translation>
 <translation id="6923132443355966645">Kaydırma / Tıklama</translation>
 <translation id="6930242544192836755">Süre</translation>
@@ -3896,6 +3888,7 @@
 <translation id="6965382102122355670">Tamam</translation>
 <translation id="6965648386495488594">Bağlantı noktası</translation>
 <translation id="6965978654500191972">Cihaz</translation>
+<translation id="6968288415730398122">Ekran kilidini yapılandırmak için şifrenizi girin</translation>
 <translation id="6970480684834282392">Başlatma türü</translation>
 <translation id="6970856801391541997">Belirli Sayfaları Yazdır</translation>
 <translation id="6972180789171089114">Ses/Video</translation>
@@ -3906,6 +3899,7 @@
 <translation id="6978121630131642226">Arama Motorları</translation>
 <translation id="6978611942794658017">Bu dosya Windows yazılımı kullanan PC'ler için tasarlanmıştır ve Chrome OS çalıştıran cihazınızla uyumlu değildir. Lütfen Chrome Web Mağazası'nda uygun başka bir uygulama arayın.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Sesi kapat (varsayılan)</translation>
 <translation id="6979737339423435258">Tüm zamanlar</translation>
 <translation id="6980462514016882061">Google; Arama, reklamlar ve diğer Google hizmetlerini kişiselleştirmek için tarama geçmişinizi kullanabilir</translation>
 <translation id="6981982820502123353">Erişilebilirlik</translation>
@@ -4054,6 +4048,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Bunlar, cihazınız ve cihazınızı nasıl kullandığınızla ilgili genel bilgilerdir (pil düzeyi, uygulama kullanımı ve ağ bağlantısı gibi). Bu veriler Google'ın ürünlerini ve hizmetlerini herkes için daha iyi hale getirmek amacıyla kullanılır. Toplu haldeki bazı bilgiler Android geliştiricileri gibi iş ortaklarına da uygulamalarını ve ürünlerini daha iyi hale getirmelerinde yardımcı olur.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Bu özelliğin kapatılması cihazınızın sistem güncellemeleri ve güvenlik gibi önemli hizmetler için gereken bilgileri gönderme özelliğini etkilemez.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Bu özelliği Ayarlar &gt; Google bölümünden kontrol edebilirsiniz. Menüden Kullanım ve teşhis aracı seçeneğini belirleyin.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Hesabınızdan bu cihazda kullanılabilecek <ph name="NUMBER_OF_APPS" /> uygulama bulduk.</translation>
 <translation id="7199158086730159431">&amp;Yardım Al</translation>
 <translation id="7200083590239651963">Yapılandırmayı seçin</translation>
 <translation id="720110658997053098">Bu cihazı kalıcı olarak kiosk modunda tut</translation>
@@ -4074,7 +4069,6 @@
 <translation id="7228523857728654909">Ekran kilidi ve oturum açma</translation>
 <translation id="7229570126336867161">EVDO gerekli</translation>
 <translation id="7230787553283372882">Metin boyutunu özelleştir</translation>
-<translation id="7231589788477569369">Bu ayarlarla Asistan deneyiminden eksiksiz olarak yararlanın</translation>
 <translation id="7232750842195536390">Yeniden adlandırma başarısız oldu</translation>
 <translation id="7234406375359457793">Paylaşım eklenirken hata oluştu. Belirtilen paylaşım desteklenmiyor.</translation>
 <translation id="7238585580608191973">SHA-256 Parmak İzi</translation>
@@ -4084,7 +4078,6 @@
 <translation id="7243632151880336635">Temizle ve Oturumu Kapat</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (En iyi)</translation>
 <translation id="7246339268451149667">Parmak iziyle kilit açma etkinleştirilsin mi?</translation>
-<translation id="7246489301073081944">Çıkmak için |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| tuşlarını basılı tutun</translation>
 <translation id="7246947237293279874">FTP Proxy'si</translation>
 <translation id="725109152065019550">Maalesef, yöneticiniz hesabınızda harici depolama özelliğini devre dışı bıraktı.</translation>
 <translation id="7253521419891527137">&amp;Daha Fazla Bilgi Edinin</translation>
@@ -4237,7 +4230,6 @@
 <translation id="7489605380874780575">Uygunluğu kontrol et</translation>
 <translation id="749028671485790643">Kişi <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC adresi</translation>
-<translation id="7490950320178383728">Güvenlik Anahtarınızı Bluetooth ile kullanın</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> uzantısı; şifreler ve kredi kartı numaraları gibi kişisel veriler de dahil olmak üzere yazdığınız tüm metinleri toplayabilir. Bu uzantıyı kullanmak istiyor musunuz?</translation>
 <translation id="7494065396242762445">Windows Ayarları'nı açın</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">Bu Drive dosyaları henüz paylaşılmadı</translation>
 <translation id="7851457902707056880">Oturum açma sadece sahip hesabı üzerinden yapılabilir. Lütfen yeniden başlatın ve sahip hesabı ile oturum açın. Makine 30 saniye içerisinde otomatik olarak yeniden başlayacaktır.</translation>
 <translation id="7851716364080026749">Kamera ve mikrofon erişimini her zaman engelle</translation>
-<translation id="7851816139220202929">Güvenlik Anahtarınızı NFC ile kullanın</translation>
 <translation id="7853747251428735">&amp;Diğer Araçlar</translation>
 <translation id="7856006446339184955">Sistem verilerini gönderin. Bu cihaz şu anda teşhis, cihaz ve uygulama kullanım verilerini Google'a otomatik olarak göndermektedir. Bu <ph name="BEGIN_LINK1" />ayar<ph name="END_LINK1" />, cihaz sahibi tarafından uygulanır. Ayrıca Web ve Uygulama Etkinliği'ni etkinleştirdiyseniz bu bilgi, Etkinliğim sayfasında yönetebilmeniz için hesabınızda depolanır. <ph name="BEGIN_LINK2" />Daha Fazla Bilgi<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">İstisna ekle</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">Yanlış kullanıcı adı veya şifreden dolayı PPP kimlik doğrulaması başarısız oldu</translation>
 <translation id="7974566588408714340"><ph name="EXTENSIONNAME" /> uzantısını kullanmayı yeniden dene</translation>
 <translation id="7974936243149753750">Fazla tarama</translation>
+<translation id="79766959863778284">XR Yalıtılmış Cihaz Hizmeti</translation>
 <translation id="7977551819349545646">Chromebox güncelleniyor...</translation>
 <translation id="7978412674231730200">Özel anahtar</translation>
 <translation id="7978450511781612192">Bu işlem Google hesaplarınızın oturumunu kapatacak. Yer işaretleriniz, şifreleriniz ve diğer içerikler artık senkronize edilmeyecek.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Yazıcı Ekle</translation>
 <translation id="8032244173881942855">Sekme yayınlanamıyor.</translation>
 <translation id="8033827949643255796">seçildi</translation>
-<translation id="8033958968890501070">Zaman aşımı</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Tümünü &amp;gizli pencerede aç}=1{&amp;Gizli pencerede aç}other{Tümünü (#) &amp;gizli pencerede aç}}</translation>
 <translation id="8037117027592400564">Sentezlenmiş konuşma özelliği kullanılarak söylenen tüm metni okuma</translation>
 <translation id="8037357227543935929">Sor (varsayılan)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Ekranınızın Tamamı</translation>
 <translation id="8322814362483282060">Bu sayfanın mikrofonunuza erişimi engellenmiştir.</translation>
 <translation id="8326478304147373412">PKCS #7, sertifika zinciri</translation>
+<translation id="8327039559959785305">Linux dosyaları yüklenirken hata oluştu. Lütfen tekrar deneyin.</translation>
 <translation id="8329978297633540474">Düz metin</translation>
 <translation id="8335587457941836791">Raftaki sabitlemeyi kaldır</translation>
 <translation id="8336153091935557858">Dün <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">Değiştir</translation>
 <translation id="8425492902634685834">Görev Çubuğuna sabitle</translation>
 <translation id="8425755597197517046">Ya&amp;pıştır ve Ara</translation>
-<translation id="8426117172745886547">Çıkmadan önce uyar (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Etkinleştiriliyor</translation>
 <translation id="8427292751741042100">herhangi bir ana makinede yerleşik</translation>
 <translation id="8428213095426709021">Ayarlar</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">Lisanslar</translation>
 <translation id="8553342806078037065">Diğer kişileri yönet</translation>
 <translation id="8554899698005018844">Dil yok</translation>
-<translation id="8557347704037207368">Android Web Messages'tan bildirim gönderin</translation>
 <translation id="855773602626431402">Korumalı alanda olmayan bir eklentinin bu sayfada çalışması engellendi.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8559694214572302298">Görsel Kod Çözücüsü</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">Artık desteklenmiyor</translation>
 <translation id="8714838604780058252">Arka plan grafikleri</translation>
 <translation id="8715480913140015283">Arka plan sekmesi kameranızı kullanıyor</translation>
+<translation id="8716931980467311658">Linux dosyaları klasörünüzdeki tüm Linux uygulamaları ve verileri bu <ph name="DEVICE_TYPE" /> cihazdan silinsin mi?</translation>
 <translation id="8719653885894320876"><ph name="PLUGIN_NAME" /> indirilemedi</translation>
 <translation id="8723829621484579639"><ph name="PARENT_SITE" /> için gizli alt çerçeveler</translation>
 <translation id="8724859055372736596">Klasörde &amp;Göster</translation>
@@ -5206,7 +5197,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Kilitlendi</translation>
 <translation id="8983677657449185470">Güvenli Tarama'yı iyileştirmeye yardımcı ol</translation>
 <translation id="8984654317541110628">Dosya Paylaşımı URL'si</translation>
-<translation id="8984872292925913496">Anahtarınızın arkasındaki 6 basamaklı PIN'i bulun</translation>
 <translation id="8986362086234534611">Unut</translation>
 <translation id="8986494364107987395">Kullanım istatistiklerini ve çökme raporlarını otomatik olarak Google'a gönder</translation>
 <translation id="8987927404178983737">Ay</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 1f44364..dadcfdc 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Виділяти вибраний на клавіатурі об’єкт, коли він змінюється</translation>
 <translation id="1173894706177603556">Перейменувати</translation>
 <translation id="1174073918202301297">Ярлик додано</translation>
-<translation id="1174808551768282258">Розблоковуйте Chromebook за допомогою телефона. <ph name="LINK_BEGIN" />Докладніше.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;Друк...</translation>
 <translation id="117624967391683467">Копіювання файлу <ph name="FILE_NAME" />…</translation>
 <translation id="1177138678118607465">Google може використовувати вашу історію веб-перегляду, щоб персоналізувати Пошук, рекламу й інші служби Google. Це налаштування можна змінити на сторінці myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Пауза</translation>
 <translation id="1181037720776840403">Видалити</translation>
 <translation id="1183237619868651138">Не вдається встановити <ph name="EXTERNAL_CRX_FILE" /> у локальному кеші.</translation>
-<translation id="1183378459020939734">Готові підключити ключ безпеки?</translation>
 <translation id="1185924365081634987">Щоб виправити цю помилку мережі, можна також спробувати <ph name="GUEST_SIGNIN_LINK_START" />перегляд у гостьовому режимі<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
 <translation id="1186771945450942097">Вилучити зловмисне програмне забезпечення</translation>
 <translation id="1187722533808055681">Вихід зі стану неактивності</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Пристрої Bluetooth не знайдено</translation>
 <translation id="1306606229401759371">Змінити налаштування</translation>
 <translation id="1307559529304613120">Помилка. Системі не вдалося зберегти маркер довгострокового доступу API для цього пристрою.</translation>
+<translation id="1307931752636661898">Не вдається переглянути файли Linux</translation>
 <translation id="1313405956111467313">Автоматична конфігурація проксі-сервера</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Ваші закладки, історія й інші налаштування буде синхронізовано з обліковим записом Google.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Відкрити налаштування миші та сенсорної панелі</translation>
 <translation id="1531004739673299060">додатка</translation>
 <translation id="15373452373711364">Великий курсор миші</translation>
+<translation id="1538729222189715449">Відкриваються файли Linux…</translation>
 <translation id="1540605929960647700">Увімкніть демонстраційний режим</translation>
 <translation id="1543284117603151572">Імпортовано з Edge</translation>
 <translation id="1545177026077493356">Автоматичний режим термінала</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Змінити режим Touch HUD</translation>
 <translation id="1784849162047402014">На диску пристрою мало вільного місця</translation>
 <translation id="1786636458339910689">Спільні Диски</translation>
-<translation id="1792161662640298233">Підтвердження ключа безпеки</translation>
 <translation id="1792619191750875668">Розширений дисплей</translation>
 <translation id="1794791083288629568">Надіслати відгук, щоб допомогти нам вирішити цю проблему.</translation>
 <translation id="1795214765651529549">Вибрати класичну тему</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Вітаємо!</translation>
 <translation id="1914326953223720820">Сервіс розпакування</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">Залежно від налаштувань облікового запису, функції Асистента можуть обмежуватися лише веб-пошуком, місцевою інформацією та жартами.</translation>
 <translation id="1916502483199172559">Стандартний червоний аватар</translation>
 <translation id="1918141783557917887">&amp;Малий</translation>
 <translation id="1919345977826869612">Оголошення</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724">Плагін <ph name="PEPPER_PLUGIN_NAME" /> із сайту <ph name="PEPPER_PLUGIN_DOMAIN" /> хоче отримати доступ до вашого комп’ютера</translation>
 <translation id="2178614541317717477">Дискредитація ЦС</translation>
 <translation id="218070003709087997">Використовуйте число, щоб указати кількість копій для друку (від 1 до 999).</translation>
+<translation id="2184515124301515068">Дозволити Chrome вибирати, коли відтворювати звук на сайтах (рекомендується)</translation>
 <translation id="2187895286714876935">Помилка імпортування сертифіката сервера</translation>
 <translation id="2187906491731510095">Розширення оновлено</translation>
 <translation id="2188881192257509750">Відкрити <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Читати та змінювати свої дані на декількох веб-сайтах</translation>
 <translation id="2242687258748107519">Інформація про файл</translation>
 <translation id="2243194103992005307">Щоб видалити додатки, перейдіть у меню "Налаштування" &gt; "Додатки" або "Менеджер додатків". Торкніться додатка (якщо потрібно, проведіть пальцем управо або вліво, щоб знайти його) і натисніть "Видалити" або "Вимкнути".</translation>
+<translation id="224940702122312781">Ця сторінка використовуватиме багато даних</translation>
 <translation id="2249605167705922988">напр., 1–5, 8, 11–13</translation>
 <translation id="2251218783371366160">Відкрити за допомогою системного переглядача</translation>
 <translation id="225163402930830576">Оновити мережі</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Установити параметри мережі</translation>
 <translation id="230927227160767054">Ця сторінка хоче встановити обробника служби.</translation>
 <translation id="2309620859903500144">Доступ цього сайту до датчиків руху чи світла заблоковано.</translation>
-<translation id="2311075084924370935">Щоб повідомляти вам про події календаря, нагадування, авіарейси тощо, Асистенту потрібен доступ до налаштувань Історії додатків і веб-пошуку, інформації з пристроїв та голосової й аудіоактивності.</translation>
+<translation id="2315414688463285945">Не вдалося налаштувати файли Linux. Повторіть спробу.</translation>
 <translation id="2315821125498993513">Не вдалося підключитися до телефона. <ph name="LINK_BEGIN" />Докладніше.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Ні, дякую</translation>
 <translation id="2317842250900878657">Перенесено <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Розмір паперу</translation>
 <translation id="2318817390901984578">Щоб користуватися додатками Android, зарядіть і оновіть пристрій <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2318923050469484167">Поточний сеанс анонімного перегляду (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Використовуйте ключ безпеки з додатком <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Верхні та нижні колонтитули</translation>
 <translation id="2325650632570794183">Цей тип файлу не підтримується. Відвідайте Веб-магазин Chrome, щоб знайти програму, яка може відкрити файл цього типу.</translation>
 <translation id="2326931316514688470">&amp;Перезавантажити додаток</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Додати файл для спільного доступу</translation>
 <translation id="2367972762794486313">Показати програми</translation>
 <translation id="2369536625682139252">Усі дані, збережені сайтом <ph name="SITE" />, буде видалено (окрім файлів cookie).</translation>
-<translation id="237058345584060620">Підключіть ключ до пристрою, щоб входити з нього в обліковий запис</translation>
 <translation id="2371076942591664043">Відкрити коли &amp;виконано</translation>
 <translation id="2377319039870049694">Список</translation>
 <translation id="2377667304966270281">Помилка жорсткого диска</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Не вдається знайти телефон. Переконайтеся, що на пристрої <ph name="DEVICE_TYPE" /> увімкнено Bluetooth. &lt;a&gt;Докладніше&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Додати &amp;папку...</translation>
 <translation id="249113932447298600">На жаль, зараз пристрій <ph name="DEVICE_LABEL" /> не підтримується.</translation>
-<translation id="2492040222276243256">Утримуйте кнопку на ключі безпеки принаймні 5 секунд</translation>
 <translation id="2493021387995458222">Вибирати "слово за раз"</translation>
 <translation id="249303669840926644">Не вдалося закінчити реєстрацію</translation>
 <translation id="2495777824269688114">Відкрийте для себе нові функції або отримайте відповіді. Виберіть "?", щоб переглянути довідку.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Усього: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Довго</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (платформа <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Ця вкладка має доступ до вашого екрана.</translation>
 <translation id="2586657967955657006">Буфер обміну</translation>
 <translation id="2586672484245266891">Введіть коротшу URL-адресу</translation>
 <translation id="2587922270115112871">Створюючи користувача, яким керує адміністратор, ви не створюєте обліковий запис Google, а налаштування
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> використовує <ph name="USAGE" /> МБ місця на диску.</translation>
 <translation id="2633212996805280240">Видалити "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> не вдалося завершити встановлення, але він продовжить працювати, використовуючи своє зображення диска.</translation>
-<translation id="2633326789677284179">Знайдіть назву на звороті ключа</translation>
 <translation id="2635276683026132559">Підписування</translation>
 <translation id="2636625531157955190">Chrome не може отримати доступ до зображення.</translation>
 <translation id="2638087589890736295">Введіть парольну фразу, щоб почати синхронізацію</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Додати <ph name="PROVIDER_NAME" />…</translation>
 <translation id="2874343608108773609">Щоб мати доступ до паролів на всіх своїх пристроях, увійдіть в обліковий запис Chrome.</translation>
 <translation id="2875698561019555027">(сторінки Chrome із повідомленням про помилку)</translation>
-<translation id="2876441201733326392">Скористайтеся USB-ключем безпеки</translation>
 <translation id="288042212351694283">Доступ до ваших пристроїв Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Дата останнього доступу:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> за мить перезапуститься та скине налаштування</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Поскаржитись анонімно</translation>
 <translation id="2984337792991268709">Сьогодні <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Цій сторінці заборонено повністю контролювати пристрої MIDI.</translation>
-<translation id="2988599644347283908">Примітка. Дані, якими керують ці налаштування, можуть зберігатися й оброблятися в будь-якому сервісі Google, де ви ввійшли в обліковий запис. Це дає змогу персоналізувати сервіси та показувати вам корисні оголошення. Ви можете переглядати й видаляти дані, а також змінювати налаштування на сторінці account.google.com.</translation>
 <translation id="2989474696604907455">не підключено</translation>
 <translation id="2989786307324390836">DER-кодування у двійковій формі, єдиний сертифікат</translation>
 <translation id="2993517869960930405">Про додаток</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Увімкнути звук на вкладках</translation>
 <translation id="3053013834507634016">Використання ключа сертифіката</translation>
 <translation id="3057861065630527966">Створити резервні копії фотографій і відео</translation>
-<translation id="3059313675706898490">Android Повідомлення</translation>
 <translation id="3060379269883947824">Увімкнути службу Читання з екрана</translation>
 <translation id="3061707000357573562">Служба виправлень</translation>
 <translation id="3064410671692449875">Недостатньо даних</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Не вдається скопіювати зовнішній файл .crx у файл <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558"><ph name="DEVICE_NAME" />: підключено</translation>
 <translation id="3101709781009526431">Дата та час</translation>
-<translation id="3104900172193317662">Дозволити використання ключа безпеки</translation>
 <translation id="310671807099593501">Сайт використовує Bluetooth</translation>
 <translation id="3115128645424181617">Не вдається знайти телефон. Переконайтеся, що він поблизу та на ньому ввімкнено Bluetooth.</translation>
 <translation id="3115147772012638511">...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Не є частиною сертифіката&gt;</translation>
 <translation id="3254434849914415189">Вибрати програму за умовчанням для файлів <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Автоматичне визначення часового поясу вимкнено</translation>
-<translation id="3254772308201947812">Так</translation>
 <translation id="3264544094376351444">Шрифт Sans-serif</translation>
 <translation id="3264547943200567728">Не вдалося налаштувати мережу Chromebox</translation>
 <translation id="3264582393905923483">Контекст</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Параметри сортування</translation>
 <translation id="3737274407993947948">Не вдалося встановити Linux…</translation>
 <translation id="3737536731758327622">Тут відображатимуться ваші завантаження</translation>
-<translation id="3738671331307774213">Підтвердження особи допомагає захистити особисті дані</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Відкрити додаток <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> тепер відображатиметься в Консолі адміністратора</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: синхронізацію призупинено</translation>
 <translation id="3860381078714302691">Вітаємо в Hangouts Meet</translation>
+<translation id="3861241522664181545">Сторінку призупинено.</translation>
 <translation id="3862134173397075045">Вітаємо в Cast для Chrome!</translation>
 <translation id="3862788408946266506">Додаток з атрибутом маніфесту "kiosk_only" потрібно встановлювати в режимі термінала ОС Chrome</translation>
 <translation id="3865414814144988605">Роздільна здатність</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Щоб увімкнути цю функцію, видаліть парольну фразу синхронізації, <ph name="BEGIN_LINK" />скинувши синхронізацію<ph name="END_LINK" />.</translation>
 <translation id="3878840326289104869">Створення користувача, яким керує адміністратор</translation>
 <translation id="3879748587602334249">Диспетчер завантажень</translation>
-<translation id="3880709822663530586">Ключ безпеки працює, лише коли на пристрої ввімкнено Bluetooth</translation>
 <translation id="3888550877729210209">Створення нотаток за допомогою додатка <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Додати OpenVPN або L2TP…</translation>
 <translation id="3893536212201235195">Переглядати та змінювати налаштування доступності</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Готується модуль безпеки. Зачекайте (це може зайняти кілька хвилин)…</translation>
 <translation id="4099060993766194518">Відновити пошукову систему за умовчанням?</translation>
 <translation id="4100733287846229632">На пристрої дуже мало вільного місця</translation>
+<translation id="4103091233824664032">Введіть пароль, щоб налаштувати блокування екрана та вхід</translation>
 <translation id="4104163789986725820">Е&amp;кспортувати...</translation>
 <translation id="4105563239298244027">Отримайте безкоштовно 1 ТБ на Диску Google</translation>
 <translation id="4107048419833779140">Виявляти й вилучати пристрої пам’яті</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Нічний режим вимкнеться автоматично на світанку</translation>
 <translation id="4138267921960073861">Показувати імена користувачів і фото на екрані входу</translation>
 <translation id="4144218403971135344">Покращуйте якість відео й заощаджуйте час роботи акумулятора. Відео відтворюватиметься лише на екрані з підтримкою Google Cast.</translation>
-<translation id="414599683948988413">Використовуйте ключ безпеки з USB</translation>
 <translation id="4146026355784316281">Завжди відкривати за допомогою системного переглядача</translation>
 <translation id="4146785383423576110">Скинути налаштування й очистити</translation>
 <translation id="4147897805161313378">Google Фото</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Вимкнути</translation>
 <translation id="4400367121200150367">Тут відображатимуться сайти, які ніколи не зберігають паролі</translation>
 <translation id="4400632832271803360">Утримуйте клавішу панелі запуску, щоб змінити функції клавіш верхнього ряду</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">Д&amp;овідка</translation>
 <translation id="4409697491990005945">Поля</translation>
 <translation id="4411578466613447185">Підписувач коду</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome може знайти на вашому комп’ютері шкідливе програмне забезпечення й видалити його</translation>
 <translation id="4481530544597605423">Відключені пристрої</translation>
 <translation id="4482194545587547824">Google може використовувати вашу історію веб-перегляду, щоб персоналізувати Пошук та інші служби Google</translation>
+<translation id="4493287891836751813">Представляємо Google Асистент</translation>
 <translation id="4495419450179050807">Не показувати на цій сторінці</translation>
 <translation id="4499718683476608392">Вмикає "Автозаповнення" для кредитних карток, щоб вводити дані у форми одним кліком</translation>
 <translation id="4500114933761911433">Плагін <ph name="PLUGIN_NAME" /> аварійно завершив роботу</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Вимкнути звук на вкладці</translation>
 <translation id="4742746985488890273">Закріпити на полиці</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Дізнайтеся, як оновити додатки<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Повідомлення</translation>
 <translation id="4746971725921104503">Схоже, ви вже керуєте користувачем із таким іменем. <ph name="LINK_START" />Імпортувати ім’я <ph name="USER_DISPLAY_NAME" /> на цей пристрій<ph name="LINK_END" />?</translation>
 <translation id="4748762018725435655">Потрібне розширення з Веб-магазину Chrome</translation>
 <translation id="4750394297954878236">Пропозиції</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Профілювання ввімкнено</translation>
 <translation id="4823484602432206655">Переглядати та змінювати налаштування користувача й пристрою</translation>
 <translation id="4823651846660089135">Пристрій лише для перегляду</translation>
+<translation id="4823955295535347797">Зв’яжіться з Асистентом, сказавши "Ok Google", коли екран увімкнено.</translation>
 <translation id="4828937774870308359">Австралійське</translation>
 <translation id="4829768588131278040">Налаштувати PIN-код</translation>
 <translation id="4830502475412647084">Установлюється оновлення ОС</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Допоможіть нашим розробникам вивчити та виправити аварійне завершення роботи. Опишіть усі свої дії. Кожна деталь важлива.</translation>
 <translation id="4876895919560854374">Блокувати чи розблоковувати екран</translation>
 <translation id="4877017884043316611">Підключення до Chromebox</translation>
+<translation id="4879491255372875719">Автоматично (за умовчанням)</translation>
 <translation id="4880214202172289027">Регулятор гучності</translation>
 <translation id="4880328057631981605">Ім’я точки доступу</translation>
 <translation id="4880520557730313061">Автовиправлення</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">угору</translation>
 <translation id="5100114659116077956">Оновіть Chromebox, щоб отримати найновіші функції.</translation>
 <translation id="5101042277149003567">Відкрити всі закладки</translation>
-<translation id="5104546332954397226">Використовуйте телефон як ключ безпеки</translation>
 <translation id="5105855035535475848">Закріпити вкладки</translation>
 <translation id="5108967062857032718">Налаштування – Видалення додатків Android</translation>
 <translation id="5109044022078737958">Краля</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">В&amp;ідкрити закриту вкладку знову</translation>
 <translation id="52912272896845572">Файл секретного ключа недійсний.</translation>
 <translation id="529175790091471945">Форматувати цей пристрій</translation>
-<translation id="5292195676005197571">Просто натисніть кнопку (для більшості ключів)</translation>
 <translation id="5293170712604732402">Відновити початкові налаштування за умовчанням</translation>
 <translation id="5297082477358294722">Пароль збережено. Переглядайте збережені паролі й керуйте ними на сторінці <ph name="SAVED_PASSWORDS_STORE" /></translation>
 <translation id="5298219193514155779">Автор теми:</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Прийняти</translation>
 <translation id="532943162177641444">Торкніться сповіщення на пристрої <ph name="PHONE_NAME" />, щоб налаштувати для нього мобільну точку доступу.</translation>
 <translation id="5329858601952122676">&amp;Видалити</translation>
+<translation id="5329945517224105597">Асистент може показувати більш відповідні пропозиції та певні дії на основі вмісту вашого екрана. Цю функцію можна змінити в налаштуваннях Асистента.</translation>
 <translation id="5330145655348521461">Ці файли відкрито на іншому комп’ютері. Перейдіть до <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />), щоб переглянути їх.</translation>
 <translation id="5330512191124428349">Отримати інформацію</translation>
 <translation id="5331069282670671859">У вас немає сертифікатів цієї категорії</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Дозволити сайтам відтворювати звук</translation>
 <translation id="5390284375844109566">Проіндексована база даних</translation>
 <translation id="5390743329570580756">Надіслати</translation>
-<translation id="5392327114396848796">Використовуйте вбудований ключ безпеки</translation>
 <translation id="5397794290049113714">Ви</translation>
 <translation id="5398572795982417028">Сторінка поза діапазоном, максимальна кількість сторінок: <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Оголошення заблоковано</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Закрийте всі файли в архіві або на віртуальному диску та повторіть спробу.</translation>
 <translation id="5687326903064479980">Часовий пояс</translation>
+<translation id="568824803367507355">Розпізнавання команди "Ok Google"</translation>
 <translation id="5689516760719285838">Місцезнаходження</translation>
 <translation id="56907980372820799">Зв’язати облікові записи</translation>
 <translation id="5691511426247308406">Сім’я</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> – запис на камері або мікрофоні ввімкнено</translation>
 <translation id="5835754902560991078">надзвичайно коротка затримка (0,6 с)</translation>
 <translation id="5838456317242088717">Поточний сеанс анонімного перегляду</translation>
-<translation id="5842053879378944309">Використовуйте USB-ключ безпеки для додатка <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Увімкнути Bluetooth</translation>
 <translation id="5843250171025351504">Версія клієнта на вашому пристрої відрізняється від мінімальної версії, указаної адміністратором. Оновіть її, щоб увійти.</translation>
 <translation id="5846929185714966548">Вкладка 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Більше не підтримується.</translation>
 <translation id="6317369057005134371">Очікування вікна програми…</translation>
 <translation id="6318407754858604988">Завантаження розпочато</translation>
-<translation id="6322653941595359182">За допомогою Chromebook можна обмінюватися текстовими повідомленнями</translation>
 <translation id="6324916366299863871">Змінення ярлика</translation>
 <translation id="6325191661371220117">Вимкнути автозапуск</translation>
 <translation id="6326175484149238433">Видалити з Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Надсилати <ph name="BEGIN_LINK1" />інформацію про систему<ph name="END_LINK1" /> та <ph name="BEGIN_LINK2" />показники<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Параметри синхронізації та персоналізації</translation>
 <translation id="6397592254427394018">Відкрити всі закладки в &amp;анонімному вікні</translation>
+<translation id="639777613761517128">Щоб відкривати файли за допомогою додатка $1, спершу скопіюйте їх у папку "Файли Linux".</translation>
 <translation id="6398715114293939307">Вилучити Google Play Маркет</translation>
 <translation id="6398765197997659313">Вийти з повноекранного режиму</translation>
 <translation id="6399774419735315745">Шпигунка</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Не може використовуватися як ім’я файлу чи назва папки</translation>
 <translation id="642469772702851743">Власник заблокував цей пристрій (серійний номер <ph name="SERIAL_NUMBER" />).</translation>
 <translation id="6426200009596957090">Відкрити налаштування ChromeVox</translation>
-<translation id="6427415464407526111">Виберіть ключ безпеки</translation>
 <translation id="6429384232893414837">Помилка оновлення</translation>
 <translation id="6430814529589430811">ASCII Base64-кодування, єдиний сертифікат</translation>
 <translation id="6431217872648827691">Усі дані зашифровано за допомогою вашого пароля Google
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Режим розробника</translation>
 <translation id="6655458902729017087">Сховати облікові записи</translation>
 <translation id="6657585470893396449">Пароль</translation>
-<translation id="6658023813581644008">Щоб налаштувати Smart Lock для входу, введіть пароль</translation>
 <translation id="6659213950629089752">Цю сторінку масштабовано розширенням "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Вкладка</translation>
 <translation id="6664237456442406323">На жаль, ваш комп’ютер налаштовано за допомогою ідентифікатора апаратного забезпечення з невірною структурою. Це перешкоджає оновленню ОС Chrome найновішими виправленнями системи безпеки, а тому ваш комп’ютер <ph name="BEGIN_BOLD" />може бути вразливим до зловмисних атак<ph name="END_BOLD" />.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Перегляд інформації про систему</translation>
 <translation id="6886871292305414135">Відкрити посилання в новій &amp;вкладці</translation>
 <translation id="6892812721183419409">Відкрити посилання як <ph name="USER" /></translation>
-<translation id="6896398788631624004">Підключіть ключ безпеки й активуйте його</translation>
 <translation id="6896758677409633944">Копіювати</translation>
 <translation id="6898440773573063262">Тепер на цьому пристрої можна налаштувати автозапуск додатків для терміналів.</translation>
 <translation id="6898699227549475383">Організація (О)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Користувач:</translation>
 <translation id="6916590542764765824">Керувати розширеннями</translation>
 <translation id="6920989436227028121">Відкрити як звичайну вкладку</translation>
+<translation id="6921709132208495314">Припинити використання даних на цій сторінці</translation>
 <translation id="6922128026973287222">Зменшіть обсяг завантажених даних і відкривайте веб-сторінки швидше з Google Заощадження трафіку. Натисніть, щоб дізнатися більше.</translation>
 <translation id="6923132443355966645">Прокрутіть або натисніть</translation>
 <translation id="6930242544192836755">Тривалість</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Порт</translation>
 <translation id="6965978654500191972">Пристрій</translation>
+<translation id="6968288415730398122">Введіть пароль, щоб налаштувати блокування екрана</translation>
 <translation id="6970480684834282392">Тип запуску</translation>
 <translation id="6970856801391541997">Друкувати певні сторінки</translation>
 <translation id="6972180789171089114">Звук і відео</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Пошукові системи</translation>
 <translation id="6978611942794658017">Цей файл створено для ПК, на яких використовується програмне забезпечення Windows. Він несумісний із вашим пристроєм, оскільки на ньому встановлено ОС Chrome. Знайдіть відповідний додаток у Веб-магазині Chrome.</translation>
 <translation id="6979158407327259162">Диск Google</translation>
+<translation id="6979440798594660689">Без звуку (за умовчанням)</translation>
 <translation id="6979737339423435258">Весь час</translation>
 <translation id="6980462514016882061">Google може використовувати вашу історію веб-перегляду, щоб персоналізувати Пошук, оголошення й інші служби Google</translation>
 <translation id="6981982820502123353">Доступність</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Це загальна інформація про пристрій і його використання (наприклад, рівень акумулятора, використання додатків, з’єднання з мережею). Ці дані буде використано, щоб покращувати продукти й сервіси Google. Також деякі зведені дані допоможуть партнерам, як-от розробникам Android, удосконалити свої додатки та продукти.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Якщо вимкнути цю функцію, пристрій усе одно зможе надсилати інформацію, потрібну для отримання важливих послуг, як-от оновлень системи та засобів безпеки.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Ви можете керувати цією функцією в меню "Налаштування" &gt; Google. Виберіть у меню опцію "Використання та діагностика".<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Ми знайшли в обліковому записі додатки (<ph name="NUMBER_OF_APPS" />), які можна використовувати на цьому пристрої.</translation>
 <translation id="7199158086730159431">Довідка</translation>
 <translation id="7200083590239651963">Виберіть налаштування</translation>
 <translation id="720110658997053098">Назавжди перевести цей пристрій у режим термінала</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Блокування екрана та вхід</translation>
 <translation id="7229570126336867161">Потрібна мережа EVDO</translation>
 <translation id="7230787553283372882">Налаштувати розмір тексту</translation>
-<translation id="7231589788477569369">Користуйтеся всіма можливостями Асистента завдяки цим налаштуванням</translation>
 <translation id="7232750842195536390">Не вдалося перейменувати</translation>
 <translation id="7234406375359457793">Помилка підключення спільного доступу. Указаний пристрій не підтримується.</translation>
 <translation id="7238585580608191973">Відбиток SHA-256</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Очистити та вийти з облікового запису</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" />x<ph name="HEIGHT" /> (найвища)</translation>
 <translation id="7246339268451149667">Увімкнути розблокування відбитком пальця?</translation>
-<translation id="7246489301073081944">Утримуйте |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />| + |<ph name="ACCELERATOR3" />|, щоб вийти</translation>
 <translation id="7246947237293279874">Проксі-сервер FTP</translation>
 <translation id="725109152065019550">На жаль, адміністратор вимкнув зовнішню пам’ять у вашому обліковому записі.</translation>
 <translation id="7253521419891527137">&amp;Докладніше</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Перевірити придатність</translation>
 <translation id="749028671485790643">Особа <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC-адреса</translation>
-<translation id="7490950320178383728">Використовуйте ключ безпеки з Bluetooth</translation>
 <translation id="7491962110804786152">вкладка</translation>
 <translation id="7493386493263658176">Розширення <ph name="EXTENSION_NAME" /> може запам’ятовувати весь текст, який ви вводите, зокрема паролі та номери кредитних карток. Використовувати це розширення?</translation>
 <translation id="7494065396242762445">Відкрити налаштування Windows</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">До цих файлів Диска ще не надано доступ</translation>
 <translation id="7851457902707056880">Вхід дозволено лише для облікового запису власника. Перезавантажте комп’ютер та увійдіть, використовуючи дані облікового запису власника. Автоматичне перезавантаження відбудеться за 30 секунд.</translation>
 <translation id="7851716364080026749">Завжди блокувати доступ до камери та мікрофона</translation>
-<translation id="7851816139220202929">Використовуйте ключ безпеки зі зв’язком малого радіуса дії (NFC)</translation>
 <translation id="7853747251428735">Інші інструменти</translation>
 <translation id="7856006446339184955">Надсилання системних даних. Зараз цей пристрій автоматично надсилає в Google дані про діагностику та використання пристрою й додатків. Цей <ph name="BEGIN_LINK1" />параметр<ph name="END_LINK1" /> налаштовано власником. Якщо Історію додатків і веб-пошуку ввімкнено, ця інформація зберігатиметься в обліковому записі. Ви зможете керувати нею в розділі "Моя активність". <ph name="BEGIN_LINK2" />Докладніше<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Додати виняток</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">Помилка автентифікації PPP через неправильне ім’я користувача або пароль</translation>
 <translation id="7974566588408714340">Повторити спробу, використовуючи розширення <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Облямівка екрана</translation>
+<translation id="79766959863778284">Сервіс ізольованих пристроїв XR</translation>
 <translation id="7977551819349545646">Оновлення Chromebox…</translation>
 <translation id="7978412674231730200">Секретний ключ</translation>
 <translation id="7978450511781612192">Ви вийдете з облікових записів Google. Закладки, історія, паролі тощо більше не синхронізуватимуться.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Додати принтер</translation>
 <translation id="8032244173881942855">Не вдається транслювати вкладку.</translation>
 <translation id="8033827949643255796">виділено</translation>
-<translation id="8033958968890501070">Час очікування минув</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Відкрити всі в &amp;анонімному вікні}=1{Відкрити в &amp;анонімному вікні}one{Відкрити всі (#) в &amp;анонімному вікні}few{Відкрити всі (#) в &amp;анонімному вікні}many{Відкрити всі (#) в &amp;анонімному вікні}other{Відкрити всі (#) в &amp;анонімному вікні}}</translation>
 <translation id="8037117027592400564">Читати весь текст, відтворений за допомогою синтезованого мовлення</translation>
 <translation id="8037357227543935929">Запитувати (за умовчанням)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">екран</translation>
 <translation id="8322814362483282060">Доступ цієї сторінки до вашого мікрофона заблоковано.</translation>
 <translation id="8326478304147373412">PKCS #7, ланцюжок сертифікатів</translation>
+<translation id="8327039559959785305">Помилка підключення файлів Linux. Повторіть спробу.</translation>
 <translation id="8329978297633540474">Звичайний текст</translation>
 <translation id="8335587457941836791">Відкріпити з полиці</translation>
 <translation id="8336153091935557858">Учора <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">Змінити</translation>
 <translation id="8425492902634685834">Закріпити на панелі завдань</translation>
 <translation id="8425755597197517046">Вста&amp;вити та здійснити пошук</translation>
-<translation id="8426117172745886547">Попереджати перед виходом (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Увімкнення</translation>
 <translation id="8427292751741042100">вбудовано на будь-якому хості</translation>
 <translation id="8428213095426709021">Налаштування</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">Ліцензії</translation>
 <translation id="8553342806078037065">Керувати іншими користувачами</translation>
 <translation id="8554899698005018844">Мову не вибрано</translation>
-<translation id="8557347704037207368">Надсилає сповіщення від Android Web Messages</translation>
 <translation id="855773602626431402">На цій сторінці заблоковано запуск плагіна з неізольованим програмним середовищем.</translation>
 <translation id="8557930019681227453">Маніфест</translation>
 <translation id="8559694214572302298">Декодер зображень</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">Припинення підтримки</translation>
 <translation id="8714838604780058252">Фонові зображення</translation>
 <translation id="8715480913140015283">Фонова вкладка використовує камеру</translation>
+<translation id="8716931980467311658">Видалити всі додатки та дані Linux у папці "Файли Linux" на цьому пристрої <ph name="DEVICE_TYPE" />?</translation>
 <translation id="8719653885894320876">Не вдалося завантажити плагін <ph name="PLUGIN_NAME" /></translation>
 <translation id="8723829621484579639">Анонімні додаткові фрейми для сайту <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Показати в папці</translation>
@@ -5206,7 +5197,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> – аварійне завершення роботи</translation>
 <translation id="8983677657449185470">Допоможіть покращити безпечний перегляд</translation>
 <translation id="8984654317541110628">URL-адреса спільного файлу</translation>
-<translation id="8984872292925913496">Знайдіть шестизначний PIN-код на звороті ключа</translation>
 <translation id="8986362086234534611">Видалити</translation>
 <translation id="8986494364107987395">Автоматично надсилати статистику використання та звіти про аварійне завершення роботи в Google</translation>
 <translation id="8987927404178983737">Місяць</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index c512e20..d21f3b8 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">Đánh dấu đối tượng bằng tiêu điểm bàn phím khi đối tượng thay đổi</translation>
 <translation id="1173894706177603556">Đổi tên</translation>
 <translation id="1174073918202301297">Đã thêm phím tắt</translation>
-<translation id="1174808551768282258">Mở khóa Chromebook của bạn bằng điện thoại. <ph name="LINK_BEGIN" />Tìm hiểu thêm.<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">&amp;In...</translation>
 <translation id="117624967391683467">Đang sao chép <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google có thể sử dụng lịch sử duyệt web của bạn để cá nhân hóa Tìm kiếm, quảng cáo và các dịch vụ khác của Google. Bạn có thể thay đổi cài đặt này bất cứ lúc nào tại myaccount.google.com/activitycontrols/search</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">Tạm dừng</translation>
 <translation id="1181037720776840403">Xóa</translation>
 <translation id="1183237619868651138">Không thể cài đặt <ph name="EXTERNAL_CRX_FILE" /> trong bộ nhớ đệm cục bộ.</translation>
-<translation id="1183378459020939734">Bạn đã sẵn sàng ghép nối Khóa bảo mật?</translation>
 <translation id="1185924365081634987">Bạn cũng có thể thử <ph name="GUEST_SIGNIN_LINK_START" />duyệt với tư cách khách<ph name="GUEST_SIGNIN_LINK_END" /> để khắc phục lỗi mạng này.</translation>
 <translation id="1186771945450942097">Xóa phần mềm độc hại</translation>
 <translation id="1187722533808055681">Đánh thức khỏi chế độ rảnh</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">Không tìm thấy thiết bị Bluetooth nào</translation>
 <translation id="1306606229401759371">Thay đổi cài đặt</translation>
 <translation id="1307559529304613120">Rất tiếc! Hệ thống không lưu trữ được mã thông báo truy cập API dài hạn cho thiết bị này.</translation>
+<translation id="1307931752636661898">Không thể xem tệp Linux</translation>
 <translation id="1313405956111467313">Cấu hình proxy tự động</translation>
 <translation id="131364520783682672">Caps Lock</translation>
 <translation id="1313705515580255288">Dấu trang, lịch sử và các cài đặt khác sẽ được đồng bộ hóa với tài khoản Google của bạn.</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">Mở cài đặt thiết bị chuột và bàn di chuột</translation>
 <translation id="1531004739673299060">Cửa sổ ứng dụng</translation>
 <translation id="15373452373711364">Con trỏ chuột lớn</translation>
+<translation id="1538729222189715449">Đang mở tệp Linux...</translation>
 <translation id="1540605929960647700">Bật chế độ minh họa</translation>
 <translation id="1543284117603151572">Được nhập từ Edge</translation>
 <translation id="1545177026077493356">Chế độ kiosk tự động</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">Thay đổi chế độ HUD cảm ứng</translation>
 <translation id="1784849162047402014">Thiết bị sắp hết dung lượng đĩa</translation>
 <translation id="1786636458339910689">Drive Nhóm</translation>
-<translation id="1792161662640298233">Xác minh Khóa bảo mật</translation>
 <translation id="1792619191750875668">Màn hình mở rộng</translation>
 <translation id="1794791083288629568">Gửi phản hồi để giúp chúng tôi khắc phục sự cố này.</translation>
 <translation id="1795214765651529549">Sử dụng chủ đề Cổ điển</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">Chào mừng bạn!</translation>
 <translation id="1914326953223720820">Dịch vụ giải nén</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">Tùy thuộc vào các tùy chọn cài đặt tài khoản, bạn chỉ có thể sử dụng Trợ lý cho những nội dung như kết quả trên web, truyện cười và thông tin địa phương.</translation>
 <translation id="1916502483199172559">Hình đại diện màu đỏ mặc định</translation>
 <translation id="1918141783557917887">&amp;Nhỏ hơn</translation>
 <translation id="1919345977826869612">Quảng cáo</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> trên <ph name="PEPPER_PLUGIN_DOMAIN" /> muốn truy cập vào máy tính của bạn</translation>
 <translation id="2178614541317717477">Lộ CA</translation>
 <translation id="218070003709087997">Sử dụng một số để cho biết số bản cần in (1 đến 999).</translation>
+<translation id="2184515124301515068">Cho phép Chrome chọn thời điểm trang web có thể phát âm thanh (khuyên dùng)</translation>
 <translation id="2187895286714876935">Lỗi nhập chứng chỉ máy chủ</translation>
 <translation id="2187906491731510095">Đã cập nhật tiện ích</translation>
 <translation id="2188881192257509750">Mở <ph name="APPLICATION" /></translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">Đọc và thay đổi dữ liệu của bạn trên một số trang web</translation>
 <translation id="2242687258748107519">Thông tin tệp</translation>
 <translation id="2243194103992005307">Để xóa ứng dụng, hãy chuyển đến Cài đặt &gt; Ứng dụng hoặc Trình quản lý ứng dụng. Sau đó, nhấn vào ứng dụng bạn muốn gỡ cài đặt (có thể bạn phải vuốt sang phải hoặc trái để tìm ứng dụng muốn gỡ cài đặt). Sau đó, nhấn vào Gỡ cài đặt hoặc Vô hiệu hóa.</translation>
+<translation id="224940702122312781">Trang này sẽ sử dụng nhiều dữ liệu.</translation>
 <translation id="2249605167705922988">ví dụ: 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">Mở bằng trình xem hệ thống</translation>
 <translation id="225163402930830576">Làm mới mạng</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">Định cấu hình mạng</translation>
 <translation id="230927227160767054">Trang này muốn cài đặt trình xử lý dịch vụ.</translation>
 <translation id="2309620859903500144">Trang web này đã bị chặn sử dụng cảm biến chuyển động hoặc ánh sáng của thiết bị.</translation>
-<translation id="2311075084924370935">Trợ lý sẽ cần truy cập vào mục cài đặt Hoạt động web và ứng dụng, Thông tin thiết bị cũng như Hoạt động giọng nói và âm thanh để trợ giúp bạn về lịch, lời nhắc, chuyến bay, v.v.</translation>
+<translation id="2315414688463285945">Lỗi khi định cấu hình tệp Linux. Vui lòng thử lại.</translation>
 <translation id="2315821125498993513">Không thể kết nối với điện thoại. <ph name="LINK_BEGIN" />Tìm hiểu thêm.<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">Không, cảm ơn</translation>
 <translation id="2317842250900878657">Đã hoàn tất <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Khổ giấy</translation>
 <translation id="2318817390901984578">Để sử dụng ứng dụng Android, hãy tính phí và cập nhật <ph name="DEVICE_TYPE" /> của bạn.</translation>
 <translation id="2318923050469484167">Phiên ẩn danh hiện tại (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">Sử dụng Khóa bảo mật cho <ph name="APP_NAME" /></translation>
 <translation id="2322193970951063277">Đầu trang và chân trang</translation>
 <translation id="2325650632570794183">Loại tệp này không được hỗ trợ. Vui lòng truy cập Cửa hàng Chrome trực tuyến để tìm ứng dụng có thể mở loại tệp này.</translation>
 <translation id="2326931316514688470">Tải &amp;lại ứng dụng</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">Thêm Chia sẻ tệp</translation>
 <translation id="2367972762794486313">Hiển thị ứng dụng</translation>
 <translation id="2369536625682139252">Tất cả dữ liệu do <ph name="SITE" /> lưu trữ sẽ bị xóa, ngoại trừ cookie.</translation>
-<translation id="237058345584060620">Ghép nối khóa với thiết bị này để bạn có thể đăng nhập vào tài khoản bằng khóa đó</translation>
 <translation id="2371076942591664043">Mở khi &amp;hoàn tất</translation>
 <translation id="2377319039870049694">Chuyển sang chế độ xem danh sách</translation>
 <translation id="2377667304966270281">Lỗi phần cứng</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">Không thể tìm thấy điện thoại của bạn. Hãy đảm bảo Bluetooth của <ph name="DEVICE_TYPE" /> đang bật. &lt;a&gt;Tìm hiểu thêm&lt;/a&gt;</translation>
 <translation id="2489918096470125693">Thêm &amp;thư mục...</translation>
 <translation id="249113932447298600">Rất tiếc, thiết bị <ph name="DEVICE_LABEL" /> không được hỗ trợ vào thời điểm này.</translation>
-<translation id="2492040222276243256">Nhấn và giữ nút trên Khóa bảo mật trong ít nhất 5 giây</translation>
 <translation id="2493021387995458222">Chọn "từng từ một"</translation>
 <translation id="249303669840926644">Không thể hoàn tất đăng ký</translation>
 <translation id="2495777824269688114">Khám phá các tính năng khác hoặc nhận câu trả lời. Hãy chọn “?” để được trợ giúp.</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">Tổng số: <ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">Lâu</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Nền tảng <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">Tab này đang chia sẻ màn hình của bạn.</translation>
 <translation id="2586657967955657006">Khay nhớ tạm</translation>
 <translation id="2586672484245266891">Vui lòng nhập URL ngắn hơn</translation>
 <translation id="2587922270115112871">Việc tạo người dùng được giám sát không tạo tài khoản Google cũng như các cài đặt
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344"><ph name="NAME" /> đang sử dụng <ph name="USAGE" /> MB dung lượng đĩa.</translation>
 <translation id="2633212996805280240">Xóa "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> không thể hoàn tất cài đặt nhưng sẽ tiếp tục chạy từ hình ảnh đĩa của trình duyệt này.</translation>
-<translation id="2633326789677284179">Tìm tên in trên mặt sau của khóa</translation>
 <translation id="2635276683026132559">Ký</translation>
 <translation id="2636625531157955190">Chrome không thể truy cập hình ảnh.</translation>
 <translation id="2638087589890736295">Yêu cầu cụm mật khẩu để bắt đầu đồng bộ hóa</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">Thêm <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">Để lấy các mật khẩu của bạn trên tất cả thiết bị, hãy đăng nhập vào Chrome.</translation>
 <translation id="2875698561019555027">(Các trang lỗi của Chrome)</translation>
-<translation id="2876441201733326392">Sử dụng Khóa bảo mật USB</translation>
 <translation id="288042212351694283">Truy cập thiết bị Universal 2nd Factor</translation>
 <translation id="2881966438216424900">Truy cập lần cuối:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> sẽ khởi động lại và đặt lại trong giây lát</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">Báo cáo ẩn danh</translation>
 <translation id="2984337792991268709">Hôm nay <ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">Trang này đã bị chặn quyền kiểm soát hoàn toàn thiết bị MIDI.</translation>
-<translation id="2988599644347283908">Lưu ý: Bạn có thể lưu và sử dụng dữ liệu mà các mục cài đặt này kiểm soát trong bất kỳ dịch vụ Google nào mà bạn đã đăng nhập nhằm có được trải nghiệm phù hợp với riêng bạn cũng như nhận quảng cáo hữu ích. Bạn có thể xem, xóa dữ liệu và thay đổi các mục cài đặt của mình tại account.google.com.</translation>
 <translation id="2989474696604907455">chưa được đính kèm</translation>
 <translation id="2989786307324390836">DER-mã hóa nhị phân, chứng chỉ đơn</translation>
 <translation id="2993517869960930405">Thông tin ứng dụng</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">Bật âm thanh tab</translation>
 <translation id="3053013834507634016">Sử dụng Khoá Chứng chỉ</translation>
 <translation id="3057861065630527966">Sao lưu ảnh và video của bạn</translation>
-<translation id="3059313675706898490">Android Messages</translation>
 <translation id="3060379269883947824">Bật chọn để nói</translation>
 <translation id="3061707000357573562">Dịch vụ vá lỗi</translation>
 <translation id="3064410671692449875">Không đủ dữ liệu</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">Không thể sao chép tệp crx bên ngoài sang <ph name="TEMP_CRX_FILE" />.</translation>
 <translation id="3090871774332213558">Đã ghép nối "<ph name="DEVICE_NAME" />"</translation>
 <translation id="3101709781009526431">Ngày và giờ</translation>
-<translation id="3104900172193317662">Cho phép sử dụng Khóa bảo mật của bạn</translation>
 <translation id="310671807099593501">Trang web đang sử dụng Bluetooth</translation>
 <translation id="3115128645424181617">Không thể tìm thấy điện thoại của bạn. Hãy đảm bảo rằng điện thoại ở trong tầm tay và Bluetooth đang bật.</translation>
 <translation id="3115147772012638511">Đang chờ bộ nhớ đệm…</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;Không Thuộc Chứng chỉ&gt;</translation>
 <translation id="3254434849914415189">Chọn ứng dụng mặc định cho các tệp <ph name="FILE_TYPE" />:</translation>
 <translation id="3254516606912442756">Chế độ Tự động phát hiện múi giờ bị tắt</translation>
-<translation id="3254772308201947812">Có, tôi đồng ý</translation>
 <translation id="3264544094376351444">Phông chữ Sans-serif</translation>
 <translation id="3264547943200567728">Không thiết lập được mạng Chromebox của bạn</translation>
 <translation id="3264582393905923483">Ngữ cảnh</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">Sắp xếp theo</translation>
 <translation id="3737274407993947948">Lỗi khi cài đặt Linux...</translation>
 <translation id="3737536731758327622">Các bản tải xuống của bạn xuất hiện ở đây</translation>
-<translation id="3738671331307774213">Việc xác minh danh tính giúp bảo vệ dữ liệu riêng tư của bạn</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">Mở <ph name="APPLICATION" />?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> hiện không hiển thị trong Bảng điều khiển dành cho quản trị viên</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Đã tạm dừng đồng bộ hóa</translation>
 <translation id="3860381078714302691">Chào mừng bạn đến với Hangouts Meet</translation>
+<translation id="3861241522664181545">Đã tạm dừng trang.</translation>
 <translation id="3862134173397075045">Chào mừng bạn đến với trải nghiệm Truyền trong Chrome!</translation>
 <translation id="3862788408946266506">Phải cài đặt ứng dụng có thuộc tính tệp kê khai 'kiosk_only' ở chế độ kiosk Chrome OS</translation>
 <translation id="3865414814144988605">Độ phân giải</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">Để bật tính năng này, hãy <ph name="BEGIN_LINK" />đặt lại tính năng đồng bộ hóa<ph name="END_LINK" /> để xóa cụm mật khẩu đồng bộ hóa của bạn</translation>
 <translation id="3878840326289104869">Tạo người dùng được giám sát</translation>
 <translation id="3879748587602334249">Trình quản lý tải xuống</translation>
-<translation id="3880709822663530586">Khóa bảo mật chỉ hoạt động khi bạn bật Bluetooth trên thiết bị của mình</translation>
 <translation id="3888550877729210209">Ghi chú bằng <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3892414795099177503">Thêm OpenVPN / L2TP...</translation>
 <translation id="3893536212201235195">Đọc và thay đổi cài đặt khả năng truy cập của bạn</translation>
@@ -2070,6 +2061,7 @@
 <translation id="4096824249111507322">Đang chuẩn bị mô-đun an toàn, vui lòng đợi (việc này có thể mất vài phút)...</translation>
 <translation id="4099060993766194518">Khôi phục công cụ tìm kiếm mặc định?</translation>
 <translation id="4100733287846229632">Dung lượng của thiết bị quá thấp</translation>
+<translation id="4103091233824664032">Nhập mật khẩu để định cấu hình khóa màn hình rồi đăng nhập</translation>
 <translation id="4104163789986725820">X&amp;uất...</translation>
 <translation id="4105563239298244027">Nhận 1 TB miễn phí với Google Drive</translation>
 <translation id="4107048419833779140">Nhận dạng và ngắt kết nối thiết bị lưu trữ</translation>
@@ -2090,7 +2082,6 @@
 <translation id="4136203100490971508">Chế độ ánh sáng ban đêm sẽ tự động tắt khi trời sáng</translation>
 <translation id="4138267921960073861">Hiển thị tên người dùng và ảnh trên màn hình đăng nhập</translation>
 <translation id="4144218403971135344">Trải nhiệm chất lượng video tốt hơn và tiết kiệm pin. Video sẽ chỉ phát trên màn hình có hỗ trợ tính năng Truyền.</translation>
-<translation id="414599683948988413">Sử dụng Khóa bảo mật qua USB</translation>
 <translation id="4146026355784316281">Luôn mở bằng trình xem hệ thống</translation>
 <translation id="4146785383423576110">Đặt lại và dọn dẹp</translation>
 <translation id="4147897805161313378">Google Photos</translation>
@@ -2225,6 +2216,7 @@
 <translation id="4394049700291259645">Vô hiệu hóa</translation>
 <translation id="4400367121200150367">Trang web không bao giờ lưu mật khẩu sẽ xuất hiện tại đây</translation>
 <translation id="4400632832271803360">Giữ phím Trình khởi chạy để chuyển đổi chức năng của các phím hàng trên cùng</translation>
+<translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation>
 <translation id="4408599188496843485">T&amp;rợ giúp</translation>
 <translation id="4409697491990005945">Lề</translation>
 <translation id="4411578466613447185">Trình ký mã</translation>
@@ -2273,6 +2265,7 @@
 <translation id="4480590691557335796">Chrome có thể tìm và xóa phần mềm gây hại trên máy tính của bạn</translation>
 <translation id="4481530544597605423">Thiết bị được hủy ghép nối</translation>
 <translation id="4482194545587547824">Google có thể sử dụng lịch sử duyệt web của bạn để cá nhân hóa Tìm kiếm và các dịch vụ khác của Google.</translation>
+<translation id="4493287891836751813">Làm quen với Trợ lý Google</translation>
 <translation id="4495419450179050807">Không hiển thị trên trang này</translation>
 <translation id="4499718683476608392">Bật tính năng Tự động điền thẻ tín dụng để điền vào các biểu mẫu chỉ bằng một lần nhấp</translation>
 <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> đã bị lỗi</translation>
@@ -2433,6 +2426,7 @@
 <translation id="474217410105706308">Tắt tiếng tab</translation>
 <translation id="4742746985488890273">Ghim vào giá</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Tìm hiểu cách cập nhật ứng dụng<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Tin nhắn</translation>
 <translation id="4746971725921104503">Dường như bạn đã quản lý một người dùng có tên đó. Bạn có muốn <ph name="LINK_START" />nhập<ph name="USER_DISPLAY_NAME" /> vào thiết bị này<ph name="LINK_END" /> không?</translation>
 <translation id="4748762018725435655">Yêu cầu tiện ích từ Cửa hàng Chrome trực tuyến</translation>
 <translation id="4750394297954878236">Đề xuất</translation>
@@ -2474,6 +2468,7 @@
 <translation id="4821935166599369261">&amp;Bật cấu hình</translation>
 <translation id="4823484602432206655">Đọc và thay đổi cài đặt người dùng và thiết bị</translation>
 <translation id="4823651846660089135">Thiết bị chỉ đọc</translation>
+<translation id="4823955295535347797">Nói "Ok Google" bất cứ lúc nào để sử dụng Trợ lý khi màn hình đang bật.</translation>
 <translation id="4828937774870308359">Tiếng Úc</translation>
 <translation id="4829768588131278040">Thiết lập mã PIN</translation>
 <translation id="4830502475412647084">Đang cài đặt bản cập nhật hệ điều hành</translation>
@@ -2514,6 +2509,7 @@
 <translation id="4876273079589074638">Giúp các kỹ sư của chúng tôi điều tra và khắc phục trục trặc này. Liệt kê các bước chính xác nếu bạn có thể. Không cần liệt kê quá chi tiết!</translation>
 <translation id="4876895919560854374">Khóa và mở khóa màn hình</translation>
 <translation id="4877017884043316611">Ghép nối với Chromebox</translation>
+<translation id="4879491255372875719">Tự động (mặc định)</translation>
 <translation id="4880214202172289027">Thanh trượt âm lượng</translation>
 <translation id="4880328057631981605">Tên điểm truy cập</translation>
 <translation id="4880520557730313061">Tự động sửa</translation>
@@ -2667,7 +2663,6 @@
 <translation id="5099354524039520280">lên</translation>
 <translation id="5100114659116077956">Để cung cấp cho bạn tính năng mới nhất, Chromebox cần phải cập nhật.</translation>
 <translation id="5101042277149003567">Mở tất cả dấu trang</translation>
-<translation id="5104546332954397226">Dùng điện thoại làm Khóa bảo mật</translation>
 <translation id="5105855035535475848">Ghim các tab</translation>
 <translation id="5108967062857032718">Cài đặt - Xóa ứng dụng Android</translation>
 <translation id="5109044022078737958">Nữ cầu thủ Mia</translation>
@@ -2798,7 +2793,6 @@
 <translation id="5288678174502918605">&amp;Mở lại Tab đã Đóng</translation>
 <translation id="52912272896845572">Tệp khóa cá nhân không hợp lệ.</translation>
 <translation id="529175790091471945">Định dạng thiết bị này</translation>
-<translation id="5292195676005197571">Bạn chỉ cần nhấn nút để sử dụng hầu hết các khóa</translation>
 <translation id="5293170712604732402">Khôi phục cài đặt về mặc định ban đầu</translation>
 <translation id="5297082477358294722">Đã lưu mật khẩu. Hãy xem và quản lý mật khẩu đã lưu trong <ph name="SAVED_PASSWORDS_STORE" /> của bạn.</translation>
 <translation id="5298219193514155779">Chủ đề được tạo bởi</translation>
@@ -2824,6 +2818,7 @@
 <translation id="532776649628038357">Tôi đồng ý</translation>
 <translation id="532943162177641444">Nhấn vào thông báo trên <ph name="PHONE_NAME" /> của bạn để thiết lập điểm phát sóng di động mà thiết bị này có thể dùng.</translation>
 <translation id="5329858601952122676">&amp;Xoá</translation>
+<translation id="5329945517224105597">Trợ lý có thể cung cấp cho bạn nhiều đề xuất phù hợp hơn và các hành động cụ thể liên quan đến nội dung trên màn hình. Bạn có thể thay đổi tùy chọn cài đặt này trong mục cài đặt Trợ lý</translation>
 <translation id="5330145655348521461">Những tệp này được mở trên máy tính khác. Chuyển tới <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) để xem tệp đó.</translation>
 <translation id="5330512191124428349">Nhận thông tin</translation>
 <translation id="5331069282670671859">Bạn không có chứng chỉ nào thuộc loại này</translation>
@@ -2868,7 +2863,6 @@
 <translation id="5390100381392048184">Cho phép các trang web phát âm thanh</translation>
 <translation id="5390284375844109566">Cơ sở dữ liệu được lập chỉ mục</translation>
 <translation id="5390743329570580756">Gửi cho</translation>
-<translation id="5392327114396848796">Dùng Khóa bảo mật tích hợp sẵn</translation>
 <translation id="5397794290049113714">Bạn</translation>
 <translation id="5398572795982417028">Vượt quá phạm vi trang, giới hạn là <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Đã chặn quảng cáo</translation>
@@ -3076,6 +3070,7 @@
    <ph name="LINE_BREAKS" />
    Đóng tất cả các tệp trên vùng lưu trữ hoặc ổ đĩa ảo, sau đó thử lại.</translation>
 <translation id="5687326903064479980">Múi giờ</translation>
+<translation id="568824803367507355">Phát hiện "Ok Google"</translation>
 <translation id="5689516760719285838">Vị trí</translation>
 <translation id="56907980372820799">Liên kết dữ liệu</translation>
 <translation id="5691511426247308406">Gia đình</translation>
@@ -3173,7 +3168,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - Đang ghi âm hoặc quay phim</translation>
 <translation id="5835754902560991078">cực ngắn (0,6 giây)</translation>
 <translation id="5838456317242088717">Phiên ẩn danh hiện tại</translation>
-<translation id="5842053879378944309">Sử dụng Khóa bảo mật USB với <ph name="APP_NAME" /></translation>
 <translation id="5842497610951477805">Bật Bluetooth</translation>
 <translation id="5843250171025351504">Thiết bị của bạn không còn phù hợp với phiên bản ứng dụng tối thiểu mà quản trị viên chỉ định. Vui lòng cập nhật để đăng nhập.</translation>
 <translation id="5846929185714966548">Tab 4</translation>
@@ -3491,7 +3485,6 @@
 <translation id="6317318380444133405">Không còn được hỗ trợ.</translation>
 <translation id="6317369057005134371">Đang đợi cửa sổ ứng dụng...</translation>
 <translation id="6318407754858604988">Đã bắt đầu tải xuống</translation>
-<translation id="6322653941595359182">Gửi và nhận tin nhắn văn bản từ Chromebook của bạn</translation>
 <translation id="6324916366299863871">Chỉnh sửa phím tắt</translation>
 <translation id="6325191661371220117">Tắt tính năng tự động chạy</translation>
 <translation id="6326175484149238433">Xóa khỏi Chrome</translation>
@@ -3535,6 +3528,7 @@
 <translation id="6395423953133416962">Gửi <ph name="BEGIN_LINK1" />thông tin hệ thống<ph name="END_LINK1" /> và <ph name="BEGIN_LINK2" />số liệu<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">Tùy chọn đồng bộ hóa và cá nhân hóa</translation>
 <translation id="6397592254427394018">Mở tất cả dấu trang trong &amp;cửa sổ ẩn danh</translation>
+<translation id="639777613761517128">Để mở tệp bằng $1, trước tiên, hãy sao chép sang thư mục tệp Linux.</translation>
 <translation id="6398715114293939307">Xóa Cửa hàng Google Play</translation>
 <translation id="6398765197997659313">Thoát khỏi chế độ toàn màn hình</translation>
 <translation id="6399774419735315745">Điệp viên</translation>
@@ -3560,7 +3554,6 @@
 <translation id="642282551015776456">Không thể sử dụng tên này làm tên tệp trong thư mục</translation>
 <translation id="642469772702851743">Thiết bị này (Số sê-ri: <ph name="SERIAL_NUMBER" />) đã bị chủ sở hữu khóa.</translation>
 <translation id="6426200009596957090">Mở cài đặt ChromeVox</translation>
-<translation id="6427415464407526111">Chọn Khóa bảo mật của bạn</translation>
 <translation id="6429384232893414837">Lỗi cập nhật</translation>
 <translation id="6430814529589430811">ASCII được mã hóa base64, chứng chỉ đơn</translation>
 <translation id="6431217872648827691">Tất cả dữ liệu đã được mã hóa bằng mật khẩu Google của bạn bắt đầu từ
@@ -3718,7 +3711,6 @@
 <translation id="6655190889273724601">Chế độ dành cho nhà phát triển</translation>
 <translation id="6655458902729017087">Ẩn tài khoản</translation>
 <translation id="6657585470893396449">Mật khẩu</translation>
-<translation id="6658023813581644008">Để thiết lập Smart Lock để đăng nhập, hãy nhập mật khẩu của bạn</translation>
 <translation id="6659213950629089752">Trang này được thu phóng bằng tiện ích "<ph name="NAME" />"</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">Rất tiếc, máy tính của bạn được định cấu hình bằng ID phần cứng không đúng định dạng. Điều này ngăn Chrome OS cập nhật các bản vá bảo mật mới nhất và máy tính của bạn <ph name="BEGIN_BOLD" />có thể bị các cuộc tấn công làm hại<ph name="END_BOLD" />.</translation>
@@ -3854,7 +3846,6 @@
 <translation id="6885771755599377173">Xem trước thông tin hệ thống</translation>
 <translation id="6886871292305414135">Mở liên kết trong &amp;tab mới</translation>
 <translation id="6892812721183419409">Mở liên kết bằng tài khoản <ph name="USER" /></translation>
-<translation id="6896398788631624004">Cắm Khóa bảo mật của bạn vào và kích hoạt</translation>
 <translation id="6896758677409633944">Sao chép</translation>
 <translation id="6898440773573063262">Ứng dụng kiosk giờ đây có thể được định cấu hình để tự động chạy trên thiết bị này.</translation>
 <translation id="6898699227549475383">Tổ chức (O)</translation>
@@ -3873,6 +3864,7 @@
 <translation id="6915804003454593391">Người dùng:</translation>
 <translation id="6916590542764765824">Quản lý các tiện ích</translation>
 <translation id="6920989436227028121">Mở dưới dạng tab thông thường</translation>
+<translation id="6921709132208495314">Ngừng sử dụng dữ liệu trên trang này</translation>
 <translation id="6922128026973287222">Tiết kiệm dữ liệu và duyệt web nhanh hơn với Trình tiết kiệm dữ liệu của Google. Nhấp để tìm hiểu thêm.</translation>
 <translation id="6923132443355966645">Cuộn / Nhấp</translation>
 <translation id="6930242544192836755">Thời lượng</translation>
@@ -3895,6 +3887,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6965648386495488594">Cổng</translation>
 <translation id="6965978654500191972">Thiết bị</translation>
+<translation id="6968288415730398122">Nhập mật khẩu của bạn để định cấu hình khóa màn hình</translation>
 <translation id="6970480684834282392">Kiểu khởi động</translation>
 <translation id="6970856801391541997">In các trang cụ thể</translation>
 <translation id="6972180789171089114">Âm thanh/video</translation>
@@ -3905,6 +3898,7 @@
 <translation id="6978121630131642226">Công cụ Tìm kiếm</translation>
 <translation id="6978611942794658017">Tệp này dành cho PC sử dụng phần mềm Windows. Tệp này không tương thích với thiết bị chạy Chrome OS của bạn. Vui lòng tìm kiếm ứng dụng thay thế phù hợp trong Cửa hàng Chrome trực tuyến.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6979440798594660689">Tắt tiếng (mặc định)</translation>
 <translation id="6979737339423435258">Từ trước đến nay</translation>
 <translation id="6980462514016882061">Google có thể sử dụng lịch sử duyệt web của bạn để cá nhân hóa Tìm kiếm, quảng cáo và các dịch vụ khác của Google</translation>
 <translation id="6981982820502123353">Truy cập</translation>
@@ -4053,6 +4047,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />Đây là thông tin chung về thiết bị và cách bạn sử dụng thiết bị (chẳng hạn như mức pin, mức sử dụng ứng dụng và kết nối mạng). Dữ liệu này sẽ dùng để cải thiện các sản phẩm và dịch vụ của Google cho mọi người. Một số thông tin tổng hợp cũng sẽ giúp các đối tác, chẳng hạn như nhà phát triển Android, cải thiện ứng dụng và sản phẩm của họ.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Việc tắt tính năng này không ảnh hưởng đến khả năng thiết bị gửi thông tin cần thiết cho các dịch vụ thiết yếu như bảo mật và bản cập nhật hệ thống.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Bạn có thể kiểm soát tính năng này trong phần Cài đặt &gt; Google. Sau đó, chọn Sử dụng và chẩn đoán từ menu này.<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">Chúng tôi tìm thấy <ph name="NUMBER_OF_APPS" /> ứng dụng từ tài khoản của bạn có thể dùng trên thiết bị này.</translation>
 <translation id="7199158086730159431">Nhận &amp;trợ giúp</translation>
 <translation id="7200083590239651963">Chọn cấu hình</translation>
 <translation id="720110658997053098">Vĩnh viễn giữ thiết bị này ở chế độ kiosk</translation>
@@ -4073,7 +4068,6 @@
 <translation id="7228523857728654909">Khóa màn hình và đăng nhập</translation>
 <translation id="7229570126336867161">Cần có EVDO</translation>
 <translation id="7230787553283372882">Tùy chỉnh kích thước văn bản của bạn</translation>
-<translation id="7231589788477569369">Hoàn thành các mục cài đặt này để trải nghiệm mọi tính năng của Trợ lý</translation>
 <translation id="7232750842195536390">Không đổi tên được</translation>
 <translation id="7234406375359457793">Lỗi khi kết nối với thư mục chia sẻ. Không hỗ trợ thư mục chia sẻ được chỉ định.</translation>
 <translation id="7238585580608191973">SHA-256 Fingerprint</translation>
@@ -4083,7 +4077,6 @@
 <translation id="7243632151880336635">Xóa và đăng xuất</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Tốt nhất)</translation>
 <translation id="7246339268451149667">Bật mở khóa bằng vân tay?</translation>
-<translation id="7246489301073081944">Giữ tổ hợp phím |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| để thoát</translation>
 <translation id="7246947237293279874">Proxy FTP</translation>
 <translation id="725109152065019550">Rất tiếc, quản trị viên của bạn đã tắt bộ nhớ ngoài trên tài khoản của bạn.</translation>
 <translation id="7253521419891527137">&amp;Tìm hiểu thêm</translation>
@@ -4236,7 +4229,6 @@
 <translation id="7489605380874780575">Kiểm tra tính đủ điều kiện</translation>
 <translation id="749028671485790643">Cá nhân <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">Địa chỉ MAC</translation>
-<translation id="7490950320178383728">Sử dụng Khóa bảo mật qua Bluetooth</translation>
 <translation id="7491962110804786152">tab</translation>
 <translation id="7493386493263658176">Tiện ích <ph name="EXTENSION_NAME" /> có thể thu thập tất cả nội dung bạn nhập, bao gồm dữ liệu cá nhân như mật khẩu và số thẻ tín dụng. Bạn có muốn sử dụng tiện ích này không?</translation>
 <translation id="7494065396242762445">Mở cài đặt Windows</translation>
@@ -4486,7 +4478,6 @@
 <translation id="7850851215703745691">Những tệp Drive này chưa được chia sẻ</translation>
 <translation id="7851457902707056880">Đăng nhập chỉ bị hạn chế đối với tài khoản chủ sở hữu. Hãy khởi động lại và đăng nhập bằng tài khoản chủ sở hữu. Máy sẽ tự động khởi động lại sau 30 giây.</translation>
 <translation id="7851716364080026749">Luôn chặn truy cập vào máy ảnh và micrô</translation>
-<translation id="7851816139220202929">Sử dụng Khóa bảo mật qua NFC</translation>
 <translation id="7853747251428735">Côn&amp;g cụ khác</translation>
 <translation id="7856006446339184955">Gửi dữ liệu hệ thống. Thiết bị này hiện đang tự động gửi dữ liệu chẩn đoán, dữ liệu về mức sử dụng thiết bị và ứng dụng đến Google. <ph name="BEGIN_LINK1" />Cài đặt<ph name="END_LINK1" /> này do chủ sở hữu thiết bị thực thi. Nếu bạn đã bật tính năng Hoạt động web và ứng dụng bổ sung, thì thông tin này sẽ được lưu trữ cùng với tài khoản để bạn có thể quản lý trong mục Hoạt động của tôi. <ph name="BEGIN_LINK2" />Tìm hiểu thêm<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">Thêm ngoại lệ</translation>
@@ -4569,6 +4560,7 @@
 <translation id="7973962044839454485">Xác thực PPP không thành công do tên người dùng hoặc mật khẩu không đúng</translation>
 <translation id="7974566588408714340">Thử lại bằng <ph name="EXTENSIONNAME" /></translation>
 <translation id="7974936243149753750">Quét thừa</translation>
+<translation id="79766959863778284">Dịch vụ dành cho thiết bị cô lập XR</translation>
 <translation id="7977551819349545646">Đang cập nhật Chromebox...</translation>
 <translation id="7978412674231730200">Khoá cá nhân</translation>
 <translation id="7978450511781612192">Việc này này sẽ đăng xuất bạn khỏi các Tài khoản Google. Dấu trang, lịch sử, mật khẩu và các dữ liệu khác của bạn sẽ không còn đồng bộ hóa nữa.</translation>
@@ -4619,7 +4611,6 @@
 <translation id="8030656706657716245">Thêm máy in</translation>
 <translation id="8032244173881942855">Không thể truyền tab.</translation>
 <translation id="8033827949643255796">đã chọn</translation>
-<translation id="8033958968890501070">Hết giờ</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{Mở tất cả trong &amp;cửa sổ ẩn danh}=1{Mở trong &amp;cửa sổ ẩn danh}other{Mở tất cả (#) trong &amp;cửa sổ ẩn danh}}</translation>
 <translation id="8037117027592400564">Đọc tất cả văn bản được nói bằng giọng nói tổng hợp</translation>
 <translation id="8037357227543935929">Yêu cầu (mặc định)</translation>
@@ -4792,6 +4783,7 @@
 <translation id="8320459152843401447">Toàn bộ màn hình của bạn</translation>
 <translation id="8322814362483282060">Trang này đã bị chặn truy cập micrô của bạn.</translation>
 <translation id="8326478304147373412">PKCS #7, chuỗi chứng chỉ</translation>
+<translation id="8327039559959785305">Lỗi khi đính kèm tệp Linux. Vui lòng thử lại.</translation>
 <translation id="8329978297633540474">Văn bản thuần túy</translation>
 <translation id="8335587457941836791">Bỏ ghim khỏi giá</translation>
 <translation id="8336153091935557858">Hôm qua <ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4842,7 +4834,6 @@
 <translation id="8425213833346101688">Thay đổi</translation>
 <translation id="8425492902634685834">Ghim lên thanh tác vụ</translation>
 <translation id="8425755597197517046">Dá&amp;n và Tìm kiếm</translation>
-<translation id="8426117172745886547">Cảnh báo trước khi thoát (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">Đang bật</translation>
 <translation id="8427292751741042100">được nhúng trên bất kỳ máy chủ nào</translation>
 <translation id="8428213095426709021">Cài đặt</translation>
@@ -4930,7 +4921,6 @@
 <translation id="8551388862522347954">Giấy phép</translation>
 <translation id="8553342806078037065">Quản lý những người khác</translation>
 <translation id="8554899698005018844">Không có ngôn ngữ nào</translation>
-<translation id="8557347704037207368">Gửi thông báo cho bạn từ ứng dụng Messages cho web trên Android</translation>
 <translation id="855773602626431402">Plugin không có hộp cát bị ngăn không cho chạy trên trang này.</translation>
 <translation id="8557930019681227453">Tệp kê khai</translation>
 <translation id="8559694214572302298">Trình giải mã hình ảnh</translation>
@@ -5043,6 +5033,7 @@
 <translation id="8714154114375107944">Kết thúc hỗ trợ</translation>
 <translation id="8714838604780058252">Đồ họa nền</translation>
 <translation id="8715480913140015283">Tab nền đang sử dụng máy ảnh</translation>
+<translation id="8716931980467311658">Bạn muốn xóa tất cả các ứng dụng Linux và dữ liệu trong thư mục tệp Linux khỏi <ph name="DEVICE_TYPE" /> này?</translation>
 <translation id="8719653885894320876">Không tải <ph name="PLUGIN_NAME" /> xuống được</translation>
 <translation id="8723829621484579639">Khung phụ ẩn danh cho: <ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">&amp;Hiển thị trong Thư mục</translation>
@@ -5206,7 +5197,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - Đã bị lỗi</translation>
 <translation id="8983677657449185470">Giúp cải thiện tính năng Duyệt web an toàn</translation>
 <translation id="8984654317541110628">URL chia sẻ tệp</translation>
-<translation id="8984872292925913496">Tìm mã PIN có 6 chữ số ở mặt sau của khóa</translation>
 <translation id="8986362086234534611">Quên</translation>
 <translation id="8986494364107987395">Tự động gửi số liệu thống kê về việc sử dụng và báo cáo sự cố cho Google</translation>
 <translation id="8987927404178983737">Tháng</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 2945ccf..d8d4f91 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">键盘焦点所在对象有变更时突出显示</translation>
 <translation id="1173894706177603556">重命名</translation>
 <translation id="1174073918202301297">快捷方式已添加</translation>
-<translation id="1174808551768282258">利用手机解锁您的 Chromebook。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" />。</translation>
 <translation id="1175364870820465910">打印(&amp;P)...</translation>
 <translation id="117624967391683467">正在复制<ph name="FILE_NAME" />…</translation>
 <translation id="1177138678118607465">Google 可能会使用您的浏览记录为您量身定制 Google 搜索、广告和其他 Google 服务。您随时可通过 myaccount.google.com/activitycontrols/search 更改此设置</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">暂停</translation>
 <translation id="1181037720776840403">删除</translation>
 <translation id="1183237619868651138">无法将 <ph name="EXTERNAL_CRX_FILE" /> 安装在本地缓存中。</translation>
-<translation id="1183378459020939734">准备好为您的安全密钥配对了吗?</translation>
 <translation id="1185924365081634987">您也可以尝试<ph name="GUEST_SIGNIN_LINK_START" />以访客身份浏览<ph name="GUEST_SIGNIN_LINK_END" />,以便修复该网络错误。</translation>
 <translation id="1186771945450942097">移除有害软件</translation>
 <translation id="1187722533808055681">闲置状态唤醒</translation>
@@ -539,7 +537,6 @@
 <translation id="1782530111891678861">更改触摸 HUD 模式</translation>
 <translation id="1784849162047402014">设备磁盘空间不足</translation>
 <translation id="1786636458339910689">团队云端硬盘</translation>
-<translation id="1792161662640298233">验证您的安全密钥</translation>
 <translation id="1792619191750875668">扩展显示屏</translation>
 <translation id="1794791083288629568">发送反馈,以协助我们解决此问题。</translation>
 <translation id="1795214765651529549">使用经典主题背景</translation>
@@ -622,7 +619,6 @@
 <translation id="1910721550319506122">欢迎使用!</translation>
 <translation id="1914326953223720820">解压缩服务</translation>
 <translation id="1915073950770830761">Canary</translation>
-<translation id="1915543339027206592">根据您的帐号设置,Google 助理或许只能为您提供网络搜索结果、笑话和本地信息等内容。</translation>
 <translation id="1916502483199172559">默认的红色头像</translation>
 <translation id="1918141783557917887">缩小(&amp;S)</translation>
 <translation id="1919345977826869612">广告</translation>
@@ -875,14 +871,12 @@
 <translation id="2307462900900812319">配置网络</translation>
 <translation id="230927227160767054">此页面想要安装一个服务处理程序。</translation>
 <translation id="2309620859903500144">此网站已被禁止使用您的动态传感器或光传感器。</translation>
-<translation id="2311075084924370935">若想让 Google 助理为您提供日历、提醒和航班等信息,您需要允许其访问您的“网络与应用活动记录”、“设备信息”和“语音和音频活动记录”设置。</translation>
 <translation id="2315821125498993513">无法连接到手机。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" />。</translation>
 <translation id="2316129865977710310">不用了,谢谢</translation>
 <translation id="2317842250900878657">已迁移 <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">纸张尺寸</translation>
 <translation id="2318817390901984578">要使用 Android 应用,请为您的 <ph name="DEVICE_TYPE" /> 充电并对其进行更新。</translation>
 <translation id="2318923050469484167">当前的隐身会话(<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">对“<ph name="APP_NAME" />”使用您的安全密钥</translation>
 <translation id="2322193970951063277">页眉和页脚</translation>
 <translation id="2325650632570794183">不支持此文件类型。请访问 Chrome 网上应用店,找到能打开此文件类型的应用。</translation>
 <translation id="2326931316514688470">重新加载应用(&amp;R)</translation>
@@ -916,7 +910,6 @@
 <translation id="2367199180085172140">添加文件共享</translation>
 <translation id="2367972762794486313">显示应用</translation>
 <translation id="2369536625682139252">即将删除 <ph name="SITE" /> 存储的所有数据(Cookie 除外)。</translation>
-<translation id="237058345584060620">将您的密钥与此设备配对,即可使用该密钥登录您的帐号</translation>
 <translation id="2371076942591664043">完成时打开(&amp;D)</translation>
 <translation id="2377319039870049694">切换到列表视图</translation>
 <translation id="2377667304966270281">硬故障数</translation>
@@ -983,7 +976,6 @@
 <translation id="248861575772995840">找不到您的手机。请确保已为您的 <ph name="DEVICE_TYPE" /> 开启蓝牙。&lt;a&gt;了解详情&lt;/a&gt;</translation>
 <translation id="2489918096470125693">添加文件夹(&amp;F)...</translation>
 <translation id="249113932447298600">抱歉,系统目前不支持设备“<ph name="DEVICE_LABEL" />”。</translation>
-<translation id="2492040222276243256">按住您的安全密钥上的按钮至少 5 秒钟</translation>
 <translation id="2493021387995458222">选择“一次一个字词”</translation>
 <translation id="249303669840926644">无法完成注册</translation>
 <translation id="2495777824269688114">探索更多功能或获得相关解答。如需帮助,请选择“?”。</translation>
@@ -1087,7 +1079,6 @@
 <translation id="2633199387167390344"><ph name="NAME" />占用了<ph name="USAGE" /> MB的磁盘空间。</translation>
 <translation id="2633212996805280240">要删除“<ph name="EXTENSION_NAME" />”吗?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" />无法完成安装,但是会通过其磁盘映像继续运行。</translation>
-<translation id="2633326789677284179">请找到您的密钥背面印有的名称</translation>
 <translation id="2635276683026132559">签名</translation>
 <translation id="2636625531157955190">Chrome 无法访问这张图片。</translation>
 <translation id="2638087589890736295">必须输入密码才能开始同步</translation>
@@ -1255,7 +1246,6 @@
 <translation id="287286579981869940">添加“<ph name="PROVIDER_NAME" />”…</translation>
 <translation id="2874343608108773609">要将您的密码同步到您的所有设备上,请登录 Chrome。</translation>
 <translation id="2875698561019555027">(Chrome 错误页面)</translation>
-<translation id="2876441201733326392">使用 USB 安全密钥</translation>
 <translation id="288042212351694283">访问您的 Universal 2nd Factor 设备</translation>
 <translation id="2881966438216424900">最后访问时间:</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> 将立即重新启动并重置</translation>
@@ -1323,7 +1313,6 @@
 <translation id="2982970937345031">以匿名方式报告</translation>
 <translation id="2984337792991268709">今天<ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">已禁止该网页完全控制 MIDI 设备。</translation>
-<translation id="2988599644347283908">注意:系统可能会存储这些设置所控制的数据,并将其用于您登录的任何 Google 服务,以便向您提供个性化体验和实用广告。您可以前往 account.google.com 查看/删除您的数据以及更改您的设置。</translation>
 <translation id="2989474696604907455">未连接</translation>
 <translation id="2989786307324390836">DER 编码二进制,单一证书</translation>
 <translation id="2993517869960930405">应用信息</translation>
@@ -1376,7 +1365,6 @@
 <translation id="304826556400666995">将所有标签页取消静音</translation>
 <translation id="3053013834507634016">证书密钥用法</translation>
 <translation id="3057861065630527966">备份您的照片和视频</translation>
-<translation id="3059313675706898490">Android 信息</translation>
 <translation id="3060379269883947824">启用“随选朗读”</translation>
 <translation id="3061707000357573562">修补服务</translation>
 <translation id="3064410671692449875">数据不足</translation>
@@ -1405,7 +1393,6 @@
 <translation id="3090819949319990166">无法将外部 crx 文件复制到 <ph name="TEMP_CRX_FILE" />。</translation>
 <translation id="3090871774332213558">“<ph name="DEVICE_NAME" />”已配对</translation>
 <translation id="3101709781009526431">日期和时间</translation>
-<translation id="3104900172193317662">允许使用您的安全密钥</translation>
 <translation id="310671807099593501">该网站正在使用蓝牙</translation>
 <translation id="3115128645424181617">找不到您的手机。请确保它就在您身边且已开启蓝牙。</translation>
 <translation id="3115147772012638511">正在等待存入缓存...</translation>
@@ -1489,7 +1476,6 @@
 <translation id="3251759466064201842">&lt;未包含在证书中&gt;</translation>
 <translation id="3254434849914415189">选择用于打开 <ph name="FILE_TYPE" /> 文件的默认应用:</translation>
 <translation id="3254516606912442756">已停用自动检测时区的功能</translation>
-<translation id="3254772308201947812">允许</translation>
 <translation id="3264544094376351444">Sans-serif 字体</translation>
 <translation id="3264547943200567728">无法设置您的 Chromebox 的网络</translation>
 <translation id="3264582393905923483">上下文</translation>
@@ -1810,7 +1796,6 @@
 <translation id="3735740477244556633">排序依据</translation>
 <translation id="3737274407993947948">安装 Linux 时出错…</translation>
 <translation id="3737536731758327622">您的下载内容会显示在此处</translation>
-<translation id="3738671331307774213">验证您的身份有助于保护您的私密数据</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">要打开 <ph name="APPLICATION" /> 吗?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> 现在将显示在管理控制台中</translation>
@@ -1918,7 +1903,6 @@
 <translation id="3873315167136380065">要启用此功能,请<ph name="BEGIN_LINK" />重置同步功能<ph name="END_LINK" />以移除同步密码</translation>
 <translation id="3878840326289104869">正在创建受监管用户</translation>
 <translation id="3879748587602334249">下载管理器</translation>
-<translation id="3880709822663530586">您必须开启设备的蓝牙功能才能使用安全密钥</translation>
 <translation id="3888550877729210209">使用“<ph name="LOCK_SCREEN_APP_NAME" />”创建记事</translation>
 <translation id="3892414795099177503">添加 OpenVPN / L2TP…</translation>
 <translation id="3893536212201235195">读取和更改您的无障碍设置</translation>
@@ -2063,6 +2047,7 @@
 <translation id="4096824249111507322">正在准备安全模块,请稍候(这可能需要几分钟的时间)…</translation>
 <translation id="4099060993766194518">要恢复默认搜索引擎吗?</translation>
 <translation id="4100733287846229632">设备存储空间严重不足</translation>
+<translation id="4103091233824664032">需输入您的密码,才能配置屏幕锁定和登录</translation>
 <translation id="4104163789986725820">导出(&amp;X)...</translation>
 <translation id="4105563239298244027">获取 1 TB 免费的 Google 云端硬盘存储空间</translation>
 <translation id="4107048419833779140">识别并弹出存储设备</translation>
@@ -2083,7 +2068,6 @@
 <translation id="4136203100490971508">夜间模式将于日出时自动关闭</translation>
 <translation id="4138267921960073861">在登录屏幕上显示用户名和照片</translation>
 <translation id="4144218403971135344">获取更优质的视频并减少耗电量。视频仅会在支持 Cast 的屏幕上播放。</translation>
-<translation id="414599683948988413">通过 USB 使用安全密钥</translation>
 <translation id="4146026355784316281">始终使用系统查看器打开</translation>
 <translation id="4146785383423576110">重置并清理</translation>
 <translation id="4147897805161313378">Google 照片</translation>
@@ -2426,6 +2410,7 @@
 <translation id="474217410105706308">将此标签页静音</translation>
 <translation id="4742746985488890273">固定到任务栏</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />了解如何更新应用<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">信息</translation>
 <translation id="4746971725921104503">您似乎已在管理具有该名称的用户。您要<ph name="LINK_START" />将<ph name="USER_DISPLAY_NAME" />导入此设备<ph name="LINK_END" />吗?</translation>
 <translation id="4748762018725435655">需要安装 Chrome 网上应用店中的扩展程序</translation>
 <translation id="4750394297954878236">建议</translation>
@@ -2659,7 +2644,6 @@
 <translation id="5099354524039520280">向上</translation>
 <translation id="5100114659116077956">您需要更新自己的 Chromebox,以便获得最新功能。</translation>
 <translation id="5101042277149003567">打开所有书签</translation>
-<translation id="5104546332954397226">使用手机作为安全密钥</translation>
 <translation id="5105855035535475848">固定标签页</translation>
 <translation id="5108967062857032718">设置 - 移除 Android 应用</translation>
 <translation id="5109044022078737958">女运动员</translation>
@@ -2785,7 +2769,6 @@
 <translation id="5288678174502918605">重新打开关闭的标签页(&amp;E)</translation>
 <translation id="52912272896845572">私有密钥文件无效。</translation>
 <translation id="529175790091471945">将此设备格式化</translation>
-<translation id="5292195676005197571">只需按下密钥上的按钮即可使用密钥,这适用于大多数密钥</translation>
 <translation id="5293170712604732402">将设置还原为原始默认设置</translation>
 <translation id="5297082477358294722">密码已保存。您可以查看和管理 <ph name="SAVED_PASSWORDS_STORE" />中保存的密码。</translation>
 <translation id="5298219193514155779">主题背景创建者:</translation>
@@ -2855,7 +2838,6 @@
 <translation id="5390100381392048184">允许网站播放声音</translation>
 <translation id="5390284375844109566">索引型数据库</translation>
 <translation id="5390743329570580756">为何发送</translation>
-<translation id="5392327114396848796">使用内置的安全密钥</translation>
 <translation id="5397794290049113714">您</translation>
 <translation id="5398572795982417028">页面引用超出范围,上限为 <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">广告已被拦截</translation>
@@ -3160,7 +3142,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - 摄像头或麦克风正在录制/录音</translation>
 <translation id="5835754902560991078">极短(0.6 秒)</translation>
 <translation id="5838456317242088717">当前的隐身会话</translation>
-<translation id="5842053879378944309">对<ph name="APP_NAME" />使用 USB 安全密钥</translation>
 <translation id="5842497610951477805">蓝牙开关</translation>
 <translation id="5843250171025351504">您的设备已不再符合管理员指定的最低客户端版本的要求。请先更新操作系统,然后再登录。</translation>
 <translation id="5846929185714966548">标签页 4</translation>
@@ -3478,7 +3459,6 @@
 <translation id="6317318380444133405">已不再受支持。</translation>
 <translation id="6317369057005134371">等待应用窗口…</translation>
 <translation id="6318407754858604988">已开始下载</translation>
-<translation id="6322653941595359182">通过您的 Chromebook 收发短信</translation>
 <translation id="6324916366299863871">修改快捷方式</translation>
 <translation id="6325191661371220117">停用自动启动</translation>
 <translation id="6326175484149238433">从Chrome中移除</translation>
@@ -3547,7 +3527,6 @@
 <translation id="642282551015776456">该名称可能无法用作文件名或文件夹名</translation>
 <translation id="642469772702851743">此设备(序列号:<ph name="SERIAL_NUMBER" />)已被所有者锁定。</translation>
 <translation id="6426200009596957090">打开 ChromeVox 设置</translation>
-<translation id="6427415464407526111">选择您的安全密钥</translation>
 <translation id="6429384232893414837">更新错误</translation>
 <translation id="6430814529589430811">Base64 编码 ASCII,单一证书</translation>
 <translation id="6431217872648827691">截止到<ph name="TIME" />,所有数据都已使用您的Google密码加密</translation>
@@ -3704,7 +3683,6 @@
 <translation id="6655190889273724601">开发者模式</translation>
 <translation id="6655458902729017087">隐藏帐号</translation>
 <translation id="6657585470893396449">密码</translation>
-<translation id="6658023813581644008">要设置 Smart Lock 以用于登录,请输入您的密码</translation>
 <translation id="6659213950629089752">此页面已由“<ph name="NAME" />”扩展程序缩放</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">很遗憾,您的计算机配置了格式错误的硬件 ID。这导致 Chrome 操作系统无法使用最新的安全修正程序进行更新,以致您的计算机<ph name="BEGIN_BOLD" />很容易遭到恶意攻击<ph name="END_BOLD" />。</translation>
@@ -3840,7 +3818,6 @@
 <translation id="6885771755599377173">系统信息预览</translation>
 <translation id="6886871292305414135">在新标签页中打开链接(&amp;T)</translation>
 <translation id="6892812721183419409">以 <ph name="USER" /> 身份打开链接</translation>
-<translation id="6896398788631624004">插入并激活您的安全密钥</translation>
 <translation id="6896758677409633944">复制</translation>
 <translation id="6898440773573063262">自助服务终端应用现在可配置为在此设备上自动启动。</translation>
 <translation id="6898699227549475383">组织 (O)</translation>
@@ -3881,6 +3858,7 @@
 <translation id="6965382102122355670">确定</translation>
 <translation id="6965648386495488594">端口</translation>
 <translation id="6965978654500191972">设备</translation>
+<translation id="6968288415730398122">需输入您的密码,才能配置屏幕锁定</translation>
 <translation id="6970480684834282392">启动类型</translation>
 <translation id="6970856801391541997">打印特定页面</translation>
 <translation id="6972180789171089114">音频/视频</translation>
@@ -4059,7 +4037,6 @@
 <translation id="7228523857728654909">屏幕锁定和登录</translation>
 <translation id="7229570126336867161">需要 EVDO</translation>
 <translation id="7230787553283372882">自定义文字大小</translation>
-<translation id="7231589788477569369">完成这些设置,以便获得完整的 Google 助理体验</translation>
 <translation id="7232750842195536390">重命名失败</translation>
 <translation id="7234406375359457793">装载共享资源时出错。所指定的共享资源不受支持。</translation>
 <translation id="7238585580608191973">SHA-256 指纹</translation>
@@ -4069,7 +4046,6 @@
 <translation id="7243632151880336635">清除并退出</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" />(最佳)</translation>
 <translation id="7246339268451149667">启用指纹解锁功能?</translation>
-<translation id="7246489301073081944">按住 |<ph name="ACCELERATOR1" />|+|<ph name="ACCELERATOR2" />|+|<ph name="ACCELERATOR3" />| 键即可退出</translation>
 <translation id="7246947237293279874">FTP 代理</translation>
 <translation id="725109152065019550">抱歉,您的管理员已停用了您帐号上的外部存储功能。</translation>
 <translation id="7253521419891527137">了解详情(&amp;L)</translation>
@@ -4222,7 +4198,6 @@
 <translation id="7489605380874780575">检查资格</translation>
 <translation id="749028671485790643">用户<ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC 地址</translation>
-<translation id="7490950320178383728">通过蓝牙使用安全密钥</translation>
 <translation id="7491962110804786152">标签</translation>
 <translation id="7493386493263658176">扩展程序“<ph name="EXTENSION_NAME" />”可能会收集您输入的所有内容(包括密码和信用卡号等个人数据)。要使用此扩展程序吗?</translation>
 <translation id="7494065396242762445">打开 Windows 设置</translation>
@@ -4470,7 +4445,6 @@
 <translation id="7850851215703745691">这些云端硬盘文件尚未共享</translation>
 <translation id="7851457902707056880">仅所有者帐号才能登录。请重新启动并使用所有者帐号登录。设备将在30秒后自动重新启动。</translation>
 <translation id="7851716364080026749">始终禁止使用摄像头和麦克风</translation>
-<translation id="7851816139220202929">通过 NFC 使用安全密钥</translation>
 <translation id="7853747251428735">更多工具(&amp;L)</translation>
 <translation id="7856006446339184955">发送系统数据。此设备目前会自动向 Google 发送诊断数据以及设备和应用使用情况数据。此设备的所有者已强制启用了这项<ph name="BEGIN_LINK1" />设置<ph name="END_LINK1" />。如果您开启了“其他网络与应用活动记录”设置,这些信息将会存储在您的帐号中,以便您在“我的活动记录”页面中进行管理。<ph name="BEGIN_LINK2" />了解详情<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">添加例外情况</translation>
@@ -4603,7 +4577,6 @@
 <translation id="8030656706657716245">添加打印机</translation>
 <translation id="8032244173881942855">无法投射标签页。</translation>
 <translation id="8033827949643255796">已选中</translation>
-<translation id="8033958968890501070">已超时</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{在隐身窗口中打开全部网址(&amp;I)}=1{在隐身窗口中打开 1 个网址(&amp;I)}other{在隐身窗口中打开全部(# 个)网址(&amp;I)}}</translation>
 <translation id="8037117027592400564">读取使用合成语音说出的所有文字</translation>
 <translation id="8037357227543935929">询问(默认)</translation>
@@ -4826,7 +4799,6 @@
 <translation id="8425213833346101688">更改</translation>
 <translation id="8425492902634685834">固定在任务栏上</translation>
 <translation id="8425755597197517046">粘贴并搜索(&amp;S)</translation>
-<translation id="8426117172745886547">退出前发出警告 (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">正在启用</translation>
 <translation id="8427292751741042100">嵌入到任何主机上</translation>
 <translation id="8428213095426709021">设置</translation>
@@ -4914,7 +4886,6 @@
 <translation id="8551388862522347954">许可</translation>
 <translation id="8553342806078037065">管理其他用户</translation>
 <translation id="8554899698005018844">无语言</translation>
-<translation id="8557347704037207368">通过 Android Web Messages 向您发送通知</translation>
 <translation id="855773602626431402">某个未经过沙盒屏蔽的插件已被禁止在此页上运行。</translation>
 <translation id="8557930019681227453">由应用缓存指定的网址</translation>
 <translation id="8559694214572302298">图片解码器</translation>
@@ -5190,7 +5161,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - 已崩溃</translation>
 <translation id="8983677657449185470">帮助我们改进安全浏览功能</translation>
 <translation id="8984654317541110628">文件共享网址</translation>
-<translation id="8984872292925913496">找到您的密钥背面印有的 6 位数 PIN 码</translation>
 <translation id="8986362086234534611">不保存</translation>
 <translation id="8986494364107987395">将使用情况统计信息和崩溃报告自动发送给 Google</translation>
 <translation id="8987927404178983737">月</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 2e63e056..1a11df4 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -118,7 +118,6 @@
 <translation id="1171135284592304528">鍵盤焦點所在物件變更時醒目顯示</translation>
 <translation id="1173894706177603556">重新命名</translation>
 <translation id="1174073918202301297">已新增捷徑</translation>
-<translation id="1174808551768282258">使用你的手機解鎖 Chromebook。<ph name="LINK_BEGIN" />瞭解詳情。<ph name="LINK_END" /></translation>
 <translation id="1175364870820465910">列印(&amp;P)...</translation>
 <translation id="117624967391683467">正在複製 <ph name="FILE_NAME" />...</translation>
 <translation id="1177138678118607465">Google 可能會使用你的瀏覽記錄,為你提供個人化的搜尋服務、廣告內容和其他各項 Google 服務。你隨時可以前往 myaccount.google.com/activitycontrols/search 變更這項設定</translation>
@@ -126,7 +125,6 @@
 <translation id="1178581264944972037">暫停</translation>
 <translation id="1181037720776840403">移除</translation>
 <translation id="1183237619868651138">無法在本機快取中安裝 <ph name="EXTERNAL_CRX_FILE" />。</translation>
-<translation id="1183378459020939734">準備好配對你的安全金鑰了嗎?</translation>
 <translation id="1185924365081634987">你也可以嘗試<ph name="GUEST_SIGNIN_LINK_START" />以訪客身分瀏覽<ph name="GUEST_SIGNIN_LINK_END" />,藉此修復網路問題。</translation>
 <translation id="1186771945450942097">移除有害軟體</translation>
 <translation id="1187722533808055681">閒置喚醒</translation>
@@ -213,6 +211,7 @@
 <translation id="1303671224831497365">找不到藍牙裝置</translation>
 <translation id="1306606229401759371">變更設定</translation>
 <translation id="1307559529304613120">糟糕!系統無法為這個裝置儲存長期 API 存取符記。</translation>
+<translation id="1307931752636661898">無法查看 Linux 檔案</translation>
 <translation id="1313405956111467313">自動 Proxy 設定</translation>
 <translation id="131364520783682672">Caps Lock 鍵</translation>
 <translation id="1313705515580255288">系統會將你的書籤、歷史記錄和其他設定與你的 Google 帳戶同步處理。</translation>
@@ -367,6 +366,7 @@
 <translation id="1530838837447122178">開啟滑鼠和觸控板裝置設定</translation>
 <translation id="1531004739673299060">應用程式視窗</translation>
 <translation id="15373452373711364">大型滑鼠游標</translation>
+<translation id="1538729222189715449">正在開啟 Linux 檔案…</translation>
 <translation id="1540605929960647700">啟用示範模式</translation>
 <translation id="1543284117603151572">從 Edge 匯入的書籤</translation>
 <translation id="1545177026077493356">自動 Kiosk 模式</translation>
@@ -542,7 +542,6 @@
 <translation id="1782530111891678861">變更觸控 HUD 模式</translation>
 <translation id="1784849162047402014">裝置磁碟空間即將用盡</translation>
 <translation id="1786636458339910689">小組雲端硬碟</translation>
-<translation id="1792161662640298233">正在驗證安全金鑰</translation>
 <translation id="1792619191750875668">擴充顯示畫面</translation>
 <translation id="1794791083288629568">提供意見,協助我們修正這個問題。</translation>
 <translation id="1795214765651529549">使用傳統版</translation>
@@ -625,7 +624,6 @@
 <translation id="1910721550319506122">歡迎使用!</translation>
 <translation id="1914326953223720820">解壓縮服務</translation>
 <translation id="1915073950770830761">canary</translation>
-<translation id="1915543339027206592">根據你的帳戶設定而異,Google 助理或許只能提供部分服務,像是進行網頁搜尋、講笑話和提供當地資訊。</translation>
 <translation id="1916502483199172559">預設的紅色顯示圖片</translation>
 <translation id="1918141783557917887">縮小(&amp;S)</translation>
 <translation id="1919345977826869612">廣告</translation>
@@ -794,6 +792,7 @@
 <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_DOMAIN" /> 的「<ph name="PEPPER_PLUGIN_NAME" />」要求存取你的電腦</translation>
 <translation id="2178614541317717477">CA 洩露</translation>
 <translation id="218070003709087997">使用數字指定列印份數 (1 至 999)。</translation>
+<translation id="2184515124301515068">讓 Chrome 自行判斷何時允許網站播放音訊 (建議使用)</translation>
 <translation id="2187895286714876935">伺服器憑證匯入錯誤</translation>
 <translation id="2187906491731510095">擴充功能已更新</translation>
 <translation id="2188881192257509750">開啟「<ph name="APPLICATION" />」</translation>
@@ -838,6 +837,7 @@
 <translation id="2241053333139545397">讀取及變更你在多個網站上的資料</translation>
 <translation id="2242687258748107519">檔案資訊</translation>
 <translation id="2243194103992005307">如要移除應用程式,請依序前往 [設定] &gt; [應用程式] 或 [應用程式管理員],然後輕觸你要解除安裝的應用程式 (你可能需要向左或向右滑動才能找出所需應用程式)。接著,輕觸 [解除安裝] 或 [停用]。</translation>
+<translation id="224940702122312781">這個網頁會耗用許多數據流量。</translation>
 <translation id="2249605167705922988">例如:1-5、8、11-13</translation>
 <translation id="2251218783371366160">使用系統檢視器開啟</translation>
 <translation id="225163402930830576">重新整理網路</translation>
@@ -878,14 +878,13 @@
 <translation id="2307462900900812319">設定網路</translation>
 <translation id="230927227160767054">這個網頁想要安裝服務處理常式。</translation>
 <translation id="2309620859903500144">這個網站已遭封鎖,無法存取你的動作感應器或光源感應器。</translation>
-<translation id="2311075084924370935">如需 Google 助理為你提供日曆、提醒項目、航班資訊等服務,請授予「網路和應用程式活動」、「裝置資訊」和「語音和音訊活動」等設定的存取權。</translation>
+<translation id="2315414688463285945">設定 Linux 檔案時發生錯誤,請再試一次。</translation>
 <translation id="2315821125498993513">無法與手機連結。<ph name="LINK_BEGIN" />瞭解詳情。<ph name="LINK_END" /></translation>
 <translation id="2316129865977710310">不,謝謝</translation>
 <translation id="2317842250900878657">已完成 <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">紙張大小</translation>
 <translation id="2318817390901984578">如要使用 Android 應用程式,請先為你的 <ph name="DEVICE_TYPE" /> 充電並進行更新。</translation>
 <translation id="2318923050469484167">目前的無痕模式工作階段 (<ph name="EMBEDDING" />)</translation>
-<translation id="2321482478556590128">透過「<ph name="APP_NAME" />」使用安全金鑰</translation>
 <translation id="2322193970951063277">頁首及頁尾</translation>
 <translation id="2325650632570794183">系統不支援這個檔案類型。請造訪 Chrome 線上應用程式商店,尋找是否有可開啟這類檔案的應用程式。</translation>
 <translation id="2326931316514688470">重新載入應用程式(&amp;R)</translation>
@@ -919,7 +918,6 @@
 <translation id="2367199180085172140">新增檔案共用</translation>
 <translation id="2367972762794486313">顯示應用程式</translation>
 <translation id="2369536625682139252">即將刪除 <ph name="SITE" /> 儲存的所有資料 (Cookie 除外)。</translation>
-<translation id="237058345584060620">將你的金鑰與這個裝置配對,即可透過金鑰登入你的帳戶</translation>
 <translation id="2371076942591664043">完成後開啟(&amp;D)</translation>
 <translation id="2377319039870049694">切換為清單檢視</translation>
 <translation id="2377667304966270281">硬性錯誤數</translation>
@@ -986,7 +984,6 @@
 <translation id="248861575772995840">找不到你的手機。請確定已開啟 <ph name="DEVICE_TYPE" /> 的藍牙功能。&lt;a&gt;瞭解詳情&lt;/a&gt;</translation>
 <translation id="2489918096470125693">新增資料夾(&amp;F)...</translation>
 <translation id="249113932447298600">很抱歉,系統目前不支援 <ph name="DEVICE_LABEL" /> 裝置。</translation>
-<translation id="2492040222276243256">按住安全金鑰上的按鈕至少 5 秒</translation>
 <translation id="2493021387995458222">一次選取一字</translation>
 <translation id="249303669840926644">無法完成註冊</translation>
 <translation id="2495777824269688114">探索其他功能或者獲得問題解答。選取 [?] 即可取得相關說明。</translation>
@@ -1056,6 +1053,7 @@
 <translation id="2580924999637585241">總計:<ph name="NUMBER_OF_SHEETS" /> <ph name="SHEETS_LABEL" /></translation>
 <translation id="258095186877893873">長</translation>
 <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (平台:<ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
+<translation id="2585724835339714757">這個分頁正在共用你的畫面。</translation>
 <translation id="2586657967955657006">剪貼簿</translation>
 <translation id="2586672484245266891">請輸入較短的網址</translation>
 <translation id="2587922270115112871">建立受監管的使用者時並不會建立 Google 帳戶,且該使用者的設定
@@ -1091,7 +1089,6 @@
 <translation id="2633199387167390344">「<ph name="NAME" />」正在使用 <ph name="USAGE" /> MB 的磁碟空間。</translation>
 <translation id="2633212996805280240">要移除「<ph name="EXTENSION_NAME" />」嗎?</translation>
 <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> 無法完成安裝,但會繼續透過磁碟映像執行。</translation>
-<translation id="2633326789677284179">找出印在金鑰背面的名稱</translation>
 <translation id="2635276683026132559">簽署</translation>
 <translation id="2636625531157955190">Chrome 無法存取這張圖片。</translation>
 <translation id="2638087589890736295">必須輸入通關密語,才能開始進行同步處理</translation>
@@ -1259,7 +1256,6 @@
 <translation id="287286579981869940">新增 <ph name="PROVIDER_NAME" />...</translation>
 <translation id="2874343608108773609">如要取得你在所有裝置上的密碼,請登入 Chrome。</translation>
 <translation id="2875698561019555027">(Chrome 錯誤頁面)</translation>
-<translation id="2876441201733326392">使用 USB 安全金鑰</translation>
 <translation id="288042212351694283">存取你的 Universal 2nd Factor 裝置</translation>
 <translation id="2881966438216424900">最後存取日期;</translation>
 <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> 即將重新啟動並進行重設</translation>
@@ -1327,7 +1323,6 @@
 <translation id="2982970937345031">以匿名方式傳送意見</translation>
 <translation id="2984337792991268709">今天<ph name="TODAY_DAYTIME" /></translation>
 <translation id="2986010903908656993">這個網頁已遭封鎖,無法取得 MIDI 裝置的完整控制權。</translation>
-<translation id="2988599644347283908">注意:系統可能會儲存這些設定所控管的資料,並用於你登入的任何 Google 服務中,以便為你提供個人化服務和符合你需求的廣告。你可以前往 account.google.com 查看、刪除你的資料,以及變更相關設定。</translation>
 <translation id="2989474696604907455">不附加</translation>
 <translation id="2989786307324390836">DER 編碼 Binary,單一憑證</translation>
 <translation id="2993517869960930405">應用程式資訊</translation>
@@ -1380,7 +1375,6 @@
 <translation id="304826556400666995">開啟多個分頁音訊</translation>
 <translation id="3053013834507634016">憑證金鑰用途</translation>
 <translation id="3057861065630527966">備份您的相片和影片</translation>
-<translation id="3059313675706898490">Android 訊息</translation>
 <translation id="3060379269883947824">啟用隨選朗讀功能</translation>
 <translation id="3061707000357573562">修補服務</translation>
 <translation id="3064410671692449875">資料不足</translation>
@@ -1409,7 +1403,6 @@
 <translation id="3090819949319990166">無法將外部 crx 檔案複製到 <ph name="TEMP_CRX_FILE" />。</translation>
 <translation id="3090871774332213558">「<ph name="DEVICE_NAME" />」已配對</translation>
 <translation id="3101709781009526431">日期與時間</translation>
-<translation id="3104900172193317662">允許使用你的安全金鑰</translation>
 <translation id="310671807099593501">網站正在使用藍牙</translation>
 <translation id="3115128645424181617">找不到你的手機。請確定手機在適當距離範圍內,且藍牙功能已開啟。</translation>
 <translation id="3115147772012638511">等候快取...</translation>
@@ -1493,7 +1486,6 @@
 <translation id="3251759466064201842">&lt;不是憑證的一部分&gt;</translation>
 <translation id="3254434849914415189">選擇開啟 <ph name="FILE_TYPE" /> 檔案的預設應用程式:</translation>
 <translation id="3254516606912442756">自動偵測時區功能已停用</translation>
-<translation id="3254772308201947812">是,我同意</translation>
 <translation id="3264544094376351444">Sans-serif 字型</translation>
 <translation id="3264547943200567728">無法設定 Chromebox 的網路</translation>
 <translation id="3264582393905923483">內容</translation>
@@ -1816,7 +1808,6 @@
 <translation id="3735740477244556633">排序依據</translation>
 <translation id="3737274407993947948">安裝 Linux 時發生錯誤...</translation>
 <translation id="3737536731758327622">你的下載內容會顯示在這裡</translation>
-<translation id="3738671331307774213">驗證你的身分有助於確保私人資料安全無虞</translation>
 <translation id="3738924763801731196"><ph name="OID" />:</translation>
 <translation id="3739254215541673094">要開啟「<ph name="APPLICATION" />」嗎?</translation>
 <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> 會顯示在管理員控制台中</translation>
@@ -1910,6 +1901,7 @@
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" />:已暫停同步處理</translation>
 <translation id="3860381078714302691">歡迎使用 Hangouts Meet</translation>
+<translation id="3861241522664181545">已暫停載入頁面。</translation>
 <translation id="3862134173397075045">歡迎在 Chrome 中體驗 Cast 服務!</translation>
 <translation id="3862788408946266506">含有「kiosk_only」資訊清單屬性的應用程式只能在 Chrome 作業系統 Kiosk 模式中安裝</translation>
 <translation id="3865414814144988605">解析度</translation>
@@ -1924,7 +1916,6 @@
 <translation id="3873315167136380065">如要啟用這項功能,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" />以移除同步處理通關密語</translation>
 <translation id="3878840326289104869">正在建立受監管的使用者</translation>
 <translation id="3879748587602334249">下載管理員</translation>
-<translation id="3880709822663530586">必須開啟裝置的藍牙功能才能使用安全金鑰</translation>
 <translation id="3888550877729210209">使用「<ph name="LOCK_SCREEN_APP_NAME" />」寫筆記</translation>
 <translation id="3892414795099177503">新增 OpenVPN/L2TP...</translation>
 <translation id="3893536212201235195">讀取及變更你的協助工具設定</translation>
@@ -2069,6 +2060,7 @@
 <translation id="4096824249111507322">正在準備安全模組,請稍候 (這可能需要幾分鐘的時間)...</translation>
 <translation id="4099060993766194518">要還原預設搜尋引擎嗎?</translation>
 <translation id="4100733287846229632">裝置空間嚴重不足</translation>
+<translation id="4103091233824664032">如要設定螢幕鎖定和登入,請輸入你的密碼</translation>
 <translation id="4104163789986725820">匯出(&amp;X)...</translation>
 <translation id="4105563239298244027">取得 1 TB 的免費 Google 雲端硬碟空間</translation>
 <translation id="4107048419833779140">識別並退出儲存裝置</translation>
@@ -2089,7 +2081,6 @@
 <translation id="4136203100490971508">夜燈功能將於日出時自動關閉</translation>
 <translation id="4138267921960073861">在登入畫面中顯示使用者名稱和相片</translation>
 <translation id="4144218403971135344">取得畫質更高的影片,並降低耗電量。只能透過支援 Cast 的螢幕播放影片。</translation>
-<translation id="414599683948988413">透過 USB 使用安全金鑰</translation>
 <translation id="4146026355784316281">一律使用系統檢視器開啟</translation>
 <translation id="4146785383423576110">重設與清理</translation>
 <translation id="4147897805161313378">Google 相簿</translation>
@@ -2224,6 +2215,7 @@
 <translation id="4394049700291259645">停用</translation>
 <translation id="4400367121200150367">一律不儲存密碼的網站會顯示在這裡</translation>
 <translation id="4400632832271803360">按住啟動器鍵即可切換最上排按鍵的行為</translation>
+<translation id="4405117686468554883">*.jpeg、*.jpg、*.png</translation>
 <translation id="4408599188496843485">說明(&amp;E)</translation>
 <translation id="4409697491990005945">邊界</translation>
 <translation id="4411578466613447185">程式碼簽署者</translation>
@@ -2272,6 +2264,7 @@
 <translation id="4480590691557335796">Chrome 可以找出電腦上有害的軟體並予以移除</translation>
 <translation id="4481530544597605423">解除配對的裝置</translation>
 <translation id="4482194545587547824">Google 可能會使用您的瀏覽記錄,為您提供個人化的搜尋服務和其他各項 Google 服務。</translation>
+<translation id="4493287891836751813">認識你的 Google 助理</translation>
 <translation id="4495419450179050807">不要顯示這個網頁</translation>
 <translation id="4499718683476608392">啟用信用卡自動填入功能,輕鬆一按即可填妥表單</translation>
 <translation id="4500114933761911433">「<ph name="PLUGIN_NAME" />」當機了</translation>
@@ -2432,6 +2425,7 @@
 <translation id="474217410105706308">關閉分頁音訊</translation>
 <translation id="4742746985488890273">固定至檔案櫃</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />瞭解如何更新應用程式<ph name="END_LINK" /></translation>
+<translation id="4746351372139058112">Messages</translation>
 <translation id="4746971725921104503">你已管理具有同樣名稱的使用者。你要<ph name="LINK_START" />將 <ph name="USER_DISPLAY_NAME" /> 匯入這個裝置<ph name="LINK_END" />嗎?</translation>
 <translation id="4748762018725435655">需要來自 Chrome 線上應用程式商店的擴充功能</translation>
 <translation id="4750394297954878236">建議</translation>
@@ -2473,6 +2467,7 @@
 <translation id="4821935166599369261">分析已啟用(&amp;P)</translation>
 <translation id="4823484602432206655">讀取及變更使用者和裝置設定</translation>
 <translation id="4823651846660089135">裝置目前是唯讀模式</translation>
+<translation id="4823955295535347797">只要在螢幕開啟狀態下說出「Ok Google」,就能隨時存取 Google 助理。</translation>
 <translation id="4828937774870308359">澳洲式</translation>
 <translation id="4829768588131278040">設定 PIN 碼</translation>
 <translation id="4830502475412647084">正在安裝作業系統更新</translation>
@@ -2513,6 +2508,7 @@
 <translation id="4876273079589074638">協助我們的工程師調查這項當機問題並予以修正。請儘可能列出所有確切步驟,鉅細靡遺!</translation>
 <translation id="4876895919560854374">鎖定及解鎖螢幕</translation>
 <translation id="4877017884043316611">與 Chromebox 配對</translation>
+<translation id="4879491255372875719">自動 (預設)</translation>
 <translation id="4880214202172289027">音量滑桿</translation>
 <translation id="4880328057631981605">存取點名稱</translation>
 <translation id="4880520557730313061">自動修正</translation>
@@ -2665,7 +2661,6 @@
 <translation id="5099354524039520280">向上鍵</translation>
 <translation id="5100114659116077956">你必須更新 Chromebox,才能使用各種最新功能。</translation>
 <translation id="5101042277149003567">開啟所有書籤</translation>
-<translation id="5104546332954397226">使用手機做為安全金鑰</translation>
 <translation id="5105855035535475848">固定分頁</translation>
 <translation id="5108967062857032718">設定 - 移除 Android 應用程式</translation>
 <translation id="5109044022078737958">咪咪</translation>
@@ -2796,7 +2791,6 @@
 <translation id="5288678174502918605">重新開啟先前關閉的分頁(&amp;E)</translation>
 <translation id="52912272896845572">秘密金鑰檔案無效。</translation>
 <translation id="529175790091471945">格式化這台裝置</translation>
-<translation id="5292195676005197571">只要按下按鈕即可使用大多數的金鑰</translation>
 <translation id="5293170712604732402">將設定還原成原始預設值</translation>
 <translation id="5297082477358294722">密碼已儲存。你可以查看及管理 <ph name="SAVED_PASSWORDS_STORE" />中儲存的密碼。</translation>
 <translation id="5298219193514155779">主題製作者</translation>
@@ -2822,6 +2816,7 @@
 <translation id="532776649628038357">我同意</translation>
 <translation id="532943162177641444">在 <ph name="PHONE_NAME" /> 上輕觸通知,即可設定可供這個裝置使用的可攜式無線基地台。</translation>
 <translation id="5329858601952122676">刪除(&amp;D)</translation>
+<translation id="5329945517224105597">Google 助理可根據螢幕上的內容,提供更貼近你需求的建議以及可執行的特定動作。你可以在 Google 助理的設定頁面變更這項設定</translation>
 <translation id="5330145655348521461">這些檔案已在其他電腦上開啟。前往 <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) 查看。</translation>
 <translation id="5330512191124428349">取得資訊</translation>
 <translation id="5331069282670671859">你沒有這個類別的憑證</translation>
@@ -2866,7 +2861,6 @@
 <translation id="5390100381392048184">允許網站播放音訊</translation>
 <translation id="5390284375844109566">索引資料庫</translation>
 <translation id="5390743329570580756">傳送連線類型</translation>
-<translation id="5392327114396848796">使用內建安全金鑰</translation>
 <translation id="5397794290049113714">你</translation>
 <translation id="5398572795982417028">參照的網頁超出範圍限制 (<ph name="MAXIMUM_PAGE" />)</translation>
 <translation id="5398772614898833570">已封鎖廣告</translation>
@@ -3074,6 +3068,7 @@
    <ph name="LINE_BREAKS" />
    請關閉封存檔或虛擬磁碟中的所有檔案,然後再試一次。</translation>
 <translation id="5687326903064479980">時區</translation>
+<translation id="568824803367507355">「Ok Google」啟動字詞偵測</translation>
 <translation id="5689516760719285838">位置</translation>
 <translation id="56907980372820799">連結資料</translation>
 <translation id="5691511426247308406">家用</translation>
@@ -3171,7 +3166,6 @@
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - 攝影機或麥克風錄影/錄音中</translation>
 <translation id="5835754902560991078">極短 (0.6 秒)</translation>
 <translation id="5838456317242088717">目前的無痕模式工作階段</translation>
-<translation id="5842053879378944309">透過「<ph name="APP_NAME" />」使用 USB 安全金鑰</translation>
 <translation id="5842497610951477805">啟用藍牙</translation>
 <translation id="5843250171025351504">你的裝置已不符合管理員指定的最低用戶端版本規定。如要登入,請更新版本。</translation>
 <translation id="5846929185714966548">分頁 4</translation>
@@ -3489,7 +3483,6 @@
 <translation id="6317318380444133405">已停止支援。</translation>
 <translation id="6317369057005134371">正在等待應用程式視窗...</translation>
 <translation id="6318407754858604988">已開始下載</translation>
-<translation id="6322653941595359182">透過你的 Chromebook 收發簡訊</translation>
 <translation id="6324916366299863871">編輯捷徑</translation>
 <translation id="6325191661371220117">停用自動啟動功能</translation>
 <translation id="6326175484149238433">從 Chrome 中移除</translation>
@@ -3533,6 +3526,7 @@
 <translation id="6395423953133416962">傳送<ph name="BEGIN_LINK1" />系統資訊<ph name="END_LINK1" />和<ph name="BEGIN_LINK2" />指標<ph name="END_LINK2" /></translation>
 <translation id="6397094776139756010">同步處理與個人化選項</translation>
 <translation id="6397592254427394018">在無痕式視窗中開啟所有書籤(&amp;I)</translation>
+<translation id="639777613761517128">如要使用「$1」開啟檔案,請先將檔案複製到「Linux 檔案」資料夾。</translation>
 <translation id="6398715114293939307">移除 Google Play 商店</translation>
 <translation id="6398765197997659313">退出全螢幕模式</translation>
 <translation id="6399774419735315745">女間諜</translation>
@@ -3558,7 +3552,6 @@
 <translation id="642282551015776456">無法使用這個名稱做為檔案名稱或資料夾名稱</translation>
 <translation id="642469772702851743">這部裝置 (序號:<ph name="SERIAL_NUMBER" />) 已被擁有者鎖定。</translation>
 <translation id="6426200009596957090">開啟 ChromeVox 設定</translation>
-<translation id="6427415464407526111">選取安全金鑰</translation>
 <translation id="6429384232893414837">更新錯誤</translation>
 <translation id="6430814529589430811">Base64-編碼 ASCII,單一憑證</translation>
 <translation id="6431217872648827691">截至 <ph name="TIME" />為止,系統已透過你的 Google 密碼對所有資料進行加密:</translation>
@@ -3715,7 +3708,6 @@
 <translation id="6655190889273724601">開發人員模式</translation>
 <translation id="6655458902729017087">隱藏帳戶</translation>
 <translation id="6657585470893396449">密碼</translation>
-<translation id="6658023813581644008">如要設定使用 Smart Lock 登入,請輸入你的密碼</translation>
 <translation id="6659213950629089752">「<ph name="NAME" />」擴充功能已調整這個頁面的大小</translation>
 <translation id="6659594942844771486">Tab</translation>
 <translation id="6664237456442406323">抱歉,你的電腦是由格式錯誤的硬體 ID 所設定。這樣會防止 Chrome 作業系統更新最新的安全性修復,你的電腦也可能<ph name="BEGIN_BOLD" />容易遭受惡意攻擊<ph name="END_BOLD" />。</translation>
@@ -3851,7 +3843,6 @@
 <translation id="6885771755599377173">預覽系統資訊</translation>
 <translation id="6886871292305414135">在新分頁中開啟連結(&amp;T)</translation>
 <translation id="6892812721183419409">以 <ph name="USER" /> 身分開啟連結</translation>
-<translation id="6896398788631624004">插入並啟用你的安全金鑰</translation>
 <translation id="6896758677409633944">複製</translation>
 <translation id="6898440773573063262">Kiosk 應用程式現可設為自動在這個裝置上啟動。</translation>
 <translation id="6898699227549475383">組織 (O)</translation>
@@ -3870,6 +3861,7 @@
 <translation id="6915804003454593391">使用者:</translation>
 <translation id="6916590542764765824">管理擴充功能</translation>
 <translation id="6920989436227028121">在一般分頁中開啟</translation>
+<translation id="6921709132208495314">禁止這個網頁使用數據流量</translation>
 <translation id="6922128026973287222">使用 Google Data Saver 不僅能節約數據流量,還可讓您享有更快速的瀏覽體驗。按一下即可瞭解詳情。</translation>
 <translation id="6923132443355966645">捲動/點選</translation>
 <translation id="6930242544192836755">持續時間</translation>
@@ -3892,6 +3884,7 @@
 <translation id="6965382102122355670">確定</translation>
 <translation id="6965648386495488594">通訊埠</translation>
 <translation id="6965978654500191972">裝置</translation>
+<translation id="6968288415730398122">如要設定螢幕鎖定,請輸入你的密碼</translation>
 <translation id="6970480684834282392">啟動類型</translation>
 <translation id="6970856801391541997">列印特定網頁</translation>
 <translation id="6972180789171089114">音效/影片</translation>
@@ -3902,6 +3895,7 @@
 <translation id="6978121630131642226">搜尋引擎</translation>
 <translation id="6978611942794658017">這個檔案是專為使用 Windows 軟體的 PC 電腦所設計,與搭載 Chrome 作業系統的裝置不相容。請前往 Chrome 線上應用程式商店尋找適合的替代應用程式。</translation>
 <translation id="6979158407327259162">Google 雲端硬碟</translation>
+<translation id="6979440798594660689">靜音 (預設)</translation>
 <translation id="6979737339423435258">不限時間</translation>
 <translation id="6980462514016882061">Google 可能會使用您的瀏覽記錄,為您提供個人化的搜尋服務、廣告內容和其他各項 Google 服務</translation>
 <translation id="6981982820502123353">協助工具</translation>
@@ -4050,6 +4044,7 @@
 <translation id="7197160646667308890"><ph name="BEGIN_PARAGRAPH1" />這個選項會提供裝置的一般資訊和使用情形 (例如電池電量、應用程式使用情形,以及網路連線狀況)。這些資料會用於改善 Google 的產品和服務,使人人受惠。部分匯總資訊還能協助我們的合作夥伴 (例如 Android 開發人員) 提高應用程式和產品的服務品質。<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />如果關閉這項功能,你的裝置仍然可以傳送基本服務 (例如系統更新與安全性) 所需的資訊。<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />如要管理這項功能,請依序前往 [設定] &gt; [Google],然後從選單中選取 [使用情形與診斷資訊]。<ph name="END_PARAGRAPH3" /></translation>
+<translation id="7197632491113152433">你的帳戶中有 <ph name="NUMBER_OF_APPS" /> 個應用程式可在這部裝置上使用。</translation>
 <translation id="7199158086730159431">取得說明(&amp;E)</translation>
 <translation id="7200083590239651963">選取設定</translation>
 <translation id="720110658997053098">讓裝置永久使用 Kiosk 模式</translation>
@@ -4070,7 +4065,6 @@
 <translation id="7228523857728654909">螢幕鎖定和登入</translation>
 <translation id="7229570126336867161">需要 EVDO</translation>
 <translation id="7230787553283372882">自訂文字大小</translation>
-<translation id="7231589788477569369">讓 Google 助理透過這些設定為你提供完整服務</translation>
 <translation id="7232750842195536390">無法重新命名</translation>
 <translation id="7234406375359457793">掛接共用裝置時發生錯誤。系統不支援指定的共用裝置。</translation>
 <translation id="7238585580608191973">SHA-256 指紋</translation>
@@ -4080,7 +4074,6 @@
 <translation id="7243632151880336635">清除並登出</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (最佳)</translation>
 <translation id="7246339268451149667">要啟用指紋解鎖功能嗎?</translation>
-<translation id="7246489301073081944">按住 <ph name="ACCELERATOR1" /> + <ph name="ACCELERATOR2" /> + <ph name="ACCELERATOR3" /> 鍵即可結束</translation>
 <translation id="7246947237293279874">FTP Proxy</translation>
 <translation id="725109152065019550">很抱歉,你的管理員已停用你帳戶中的外部儲存裝置。</translation>
 <translation id="7253521419891527137">瞭解詳情(&amp;L)</translation>
@@ -4233,7 +4226,6 @@
 <translation id="7489605380874780575">檢查資格</translation>
 <translation id="749028671485790643">人員 <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC 位址</translation>
-<translation id="7490950320178383728">透過藍牙使用安全金鑰</translation>
 <translation id="7491962110804786152">分頁</translation>
 <translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> 擴充功能可能會收集您輸入的所有文字,包括密碼和信用卡號碼等個人資料。您要使用這個擴充功能嗎?</translation>
 <translation id="7494065396242762445">開啟 Windows 設定</translation>
@@ -4482,7 +4474,6 @@
 <translation id="7850851215703745691">這些雲端硬碟檔案尚未與你共用</translation>
 <translation id="7851457902707056880">只能使用擁有者帳戶才能登入。請重新開機並使用擁有者帳戶登入。電腦會在 30 秒後自動開機。</translation>
 <translation id="7851716364080026749">一律封鎖存取攝影機和麥克風</translation>
-<translation id="7851816139220202929">透過 NFC 使用安全金鑰</translation>
 <translation id="7853747251428735">更多工具(&amp;L)</translation>
 <translation id="7856006446339184955">傳送系統資料。這個裝置目前會自動將診斷資料、裝置與應用程式使用情形資料傳送給 Google。擁有者強制啟用了這項<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />。如果你另外開啟了「網路和應用程式活動」設定,這項資訊會儲存在你的帳戶中,方便你在「我的活動」中進行管理。<ph name="BEGIN_LINK2" />瞭解詳情<ph name="END_LINK2" /></translation>
 <translation id="7857117644404132472">新增例外狀況</translation>
@@ -4565,6 +4556,7 @@
 <translation id="7973962044839454485">使用者名稱或密碼錯誤,導致 PPP 驗證失敗</translation>
 <translation id="7974566588408714340">使用「<ph name="EXTENSIONNAME" />」重試</translation>
 <translation id="7974936243149753750">遮視區域</translation>
+<translation id="79766959863778284">XR 獨立裝置服務</translation>
 <translation id="7977551819349545646">更新 Chromebox...</translation>
 <translation id="7978412674231730200">秘密金鑰</translation>
 <translation id="7978450511781612192">你將登出自己的 Google 帳戶。你的書籤、歷史記錄、密碼和其他設定將不再保持同步。</translation>
@@ -4615,7 +4607,6 @@
 <translation id="8030656706657716245">新增印表機</translation>
 <translation id="8032244173881942855">無法投放分頁。</translation>
 <translation id="8033827949643255796">已選取</translation>
-<translation id="8033958968890501070">逾時</translation>
 <translation id="803435727213847625">{COUNT,plural, =0{在無痕式視窗中開啟所有書籤(&amp;I)}=1{在無痕式視窗中開啟(&amp;I)}other{在無痕式視窗中開啟全部 # 個書籤(&amp;I)}}</translation>
 <translation id="8037117027592400564">讀取使用合成語音朗讀的所有文字</translation>
 <translation id="8037357227543935929">詢問 (預設)</translation>
@@ -4788,6 +4779,7 @@
 <translation id="8320459152843401447">您的整個畫面</translation>
 <translation id="8322814362483282060">系統已封鎖這個網頁存取你的麥克風。</translation>
 <translation id="8326478304147373412">PKCS #7,憑證鏈結</translation>
+<translation id="8327039559959785305">掛接 Linux 檔案時發生錯誤,請再試一次。</translation>
 <translation id="8329978297633540474">純文字</translation>
 <translation id="8335587457941836791">從檔案櫃中取消固定</translation>
 <translation id="8336153091935557858">昨天<ph name="YESTERDAY_DAYTIME" /></translation>
@@ -4838,7 +4830,6 @@
 <translation id="8425213833346101688">變更</translation>
 <translation id="8425492902634685834">固定至工作列</translation>
 <translation id="8425755597197517046">貼上並搜尋(&amp;S)</translation>
-<translation id="8426117172745886547">結束前顯示警告訊息 (<ph name="KEY_EQUIVALENT" />)</translation>
 <translation id="8426713856918551002">啟用中</translation>
 <translation id="8427292751741042100">嵌入任何主機</translation>
 <translation id="8428213095426709021">設定</translation>
@@ -4926,7 +4917,6 @@
 <translation id="8551388862522347954">授權</translation>
 <translation id="8553342806078037065">管理其他使用者</translation>
 <translation id="8554899698005018844">未指定語言</translation>
-<translation id="8557347704037207368">透過 Android 網路訊息傳送通知給你</translation>
 <translation id="855773602626431402">已禁止這個網頁執行無沙箱防護的外掛程。</translation>
 <translation id="8557930019681227453">資訊清單</translation>
 <translation id="8559694214572302298">影像解碼器</translation>
@@ -5039,6 +5029,7 @@
 <translation id="8714154114375107944">終止支援</translation>
 <translation id="8714838604780058252">背景圖形</translation>
 <translation id="8715480913140015283">背景分頁正在使用你的攝影機</translation>
+<translation id="8716931980467311658">要將所有 Linux 應用程式和「Linux 檔案」資料夾中的資料從這部 <ph name="DEVICE_TYPE" /> 上刪除嗎?</translation>
 <translation id="8719653885894320876">「<ph name="PLUGIN_NAME" />」下載失敗</translation>
 <translation id="8723829621484579639">無痕模式子頁框:<ph name="PARENT_SITE" /></translation>
 <translation id="8724859055372736596">在資料夾中顯示(&amp;S)</translation>
@@ -5202,7 +5193,6 @@
 <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - 已當機</translation>
 <translation id="8983677657449185470">協助改善「安全瀏覽」的品質</translation>
 <translation id="8984654317541110628">檔案共用網址</translation>
-<translation id="8984872292925913496">找出金鑰背面的 6 位數 PIN 碼</translation>
 <translation id="8986362086234534611">清除</translation>
 <translation id="8986494364107987395">自動傳送使用統計資料及當機報告給 Google</translation>
 <translation id="8987927404178983737">月</translation>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index b48d263a..fb84440d 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -3382,10 +3382,10 @@
       Add another
     </message>
     <message name="IDS_SETTINGS_PEOPLE_PASSWORD_PROMPT_ENTER_PASSWORD_LOCK" desc="Text above a password input field that tells the user they need to submit their password to configure these settings.">
-      To set up screen lock, enter your password
+      Enter your password to configure screen lock
     </message>
     <message name="IDS_SETTINGS_PEOPLE_PASSWORD_PROMPT_ENTER_PASSWORD_LOGIN_LOCK" desc="Text above a password input field that tells the user they need to submit their password to configure these settings.">
-      To set up Smart Lock for sign-in, enter your password
+      Enter your password to configure screen lock and sign-in
     </message>
     <message name="IDS_SETTINGS_PEOPLE_PASSWORD_PROMPT_PASSWORD_LABEL" desc="An input box label that tells the user to enter their password in that input box.">
       Password
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 13dbc02..9db2e03 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1719,7 +1719,8 @@
     "//components/consent_auditor",
     "//components/content_settings/core/browser",
     "//components/content_settings/core/common",
-    "//components/contextual_search:browser",
+    "//components/contextual_search/content:browser",
+    "//components/contextual_search/core:browser",
     "//components/cookie_config",
     "//components/crx_file",
     "//components/data_reduction_proxy/content/browser",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 4ffb44fc..ebdf405 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1284,6 +1284,21 @@
      {"kalman", kResamplingInputEventsKalmanEnabled,
       base::size(kResamplingInputEventsKalmanEnabled), nullptr}};
 
+#if !defined(OS_ANDROID)
+const FeatureEntry::FeatureParam kAutofillDropdownLayoutLeadingIcon[] = {
+    {autofill::kAutofillDropdownLayoutParameterName,
+     autofill::kAutofillDropdownLayoutParameterLeadingIcon}};
+const FeatureEntry::FeatureParam kAutofillDropdownLayoutTrailingIcon[] = {
+    {autofill::kAutofillDropdownLayoutParameterName,
+     autofill::kAutofillDropdownLayoutParameterTrailingIcon}};
+
+const FeatureEntry::FeatureVariation kAutofillDropdownLayoutVariations[] = {
+    {"(leading icon)", kAutofillDropdownLayoutLeadingIcon,
+     base::size(kAutofillDropdownLayoutLeadingIcon), nullptr},
+    {"(trailing icon)", kAutofillDropdownLayoutTrailingIcon,
+     base::size(kAutofillDropdownLayoutTrailingIcon), nullptr}};
+#endif  // !defined(OS_ANDROID)
+
 // RECORDING USER METRICS FOR FLAGS:
 // -----------------------------------------------------------------------------
 // The first line of the entry is the internal name.
@@ -2593,9 +2608,6 @@
     {"tls13-variant", flag_descriptions::kTLS13VariantName,
      flag_descriptions::kTLS13VariantDescription, kOsAll,
      MULTI_VALUE_TYPE(kTLS13VariantChoices)},
-    {"enable-token-binding", flag_descriptions::kEnableTokenBindingName,
-     flag_descriptions::kEnableTokenBindingDescription, kOsAll,
-     FEATURE_VALUE_TYPE(features::kTokenBinding)},
     {"enable-scroll-anchor-serialization",
      flag_descriptions::kEnableScrollAnchorSerializationName,
      flag_descriptions::kEnableScrollAnchorSerializationDescription, kOsAll,
@@ -4344,6 +4356,21 @@
      FEATURE_VALUE_TYPE(chromeos::switches::kAccountManager)},
 #endif
 
+#if !defined(OS_ANDROID)
+    {"autofill-dropdown-layout", flag_descriptions::kAutofillDropdownLayoutName,
+     flag_descriptions::kAutofillDropdownLayoutDescription, kOsDesktop,
+     FEATURE_WITH_PARAMS_VALUE_TYPE(autofill::kAutofillDropdownLayoutExperiment,
+                                    kAutofillDropdownLayoutVariations,
+                                    "AutofillDropdownLayout")},
+#endif  // OS_ANDROID
+
+#if defined(OS_CHROMEOS)
+    {"enable-vaapi-jpeg-image-decode-acceleration",
+     flag_descriptions::kVaapiJpegImageDecodeAccelerationName,
+     flag_descriptions::kVaapiJpegImageDecodeAccelerationDescription, kOsCrOS,
+     FEATURE_VALUE_TYPE(features::kVaapiJpegImageDecodeAcceleration)},
+#endif
+
     // NOTE: Adding a new flag requires adding a corresponding entry to enum
     // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag
     // Histograms" in tools/metrics/histograms/README.md (run the
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
index a65fcc6c..2ae33eb 100644
--- a/chrome/browser/android/chrome_feature_list.cc
+++ b/chrome/browser/android/chrome_feature_list.cc
@@ -110,6 +110,7 @@
     &kHomepageTile,
     &kHorizontalTabSwitcherAndroid,
     &kImprovedA2HS,
+    &kInflateToolbarOnBackgroundThread,
     &kLanguagesPreference,
     &kLongPressBackForHistory,
     &kLongPressBackNewDesign,
@@ -317,6 +318,9 @@
 const base::Feature kImprovedA2HS{"ImprovedA2HS",
                                   base::FEATURE_ENABLED_BY_DEFAULT};
 
+const base::Feature kInflateToolbarOnBackgroundThread{
+    "BackgroundToolbarInflation", base::FEATURE_DISABLED_BY_DEFAULT};
+
 const base::Feature kLanguagesPreference{"LanguagesPreference",
                                          base::FEATURE_ENABLED_BY_DEFAULT};
 
diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h
index 917891f..2dc44a2 100644
--- a/chrome/browser/android/chrome_feature_list.h
+++ b/chrome/browser/android/chrome_feature_list.h
@@ -55,6 +55,7 @@
 extern const base::Feature kHomepageTile;
 extern const base::Feature kHorizontalTabSwitcherAndroid;
 extern const base::Feature kImprovedA2HS;
+extern const base::Feature kInflateToolbarOnBackgroundThread;
 extern const base::Feature kLanguagesPreference;
 extern const base::Feature kLongPressBackForHistory;
 extern const base::Feature kLongPressBackNewDesign;
diff --git a/chrome/browser/android/contextualsearch/DEPS b/chrome/browser/android/contextualsearch/DEPS
index 14fd7e2..d16ce8f 100644
--- a/chrome/browser/android/contextualsearch/DEPS
+++ b/chrome/browser/android/contextualsearch/DEPS
@@ -1,3 +1,3 @@
 include_rules = [
-  "+components/contextual_search/common",
+  "+components/contextual_search/content/common",
 ]
diff --git a/chrome/browser/android/contextualsearch/contextual_search_manager.cc b/chrome/browser/android/contextualsearch/contextual_search_manager.cc
index ff69c31..da9dd3d 100644
--- a/chrome/browser/android/contextualsearch/contextual_search_manager.cc
+++ b/chrome/browser/android/contextualsearch/contextual_search_manager.cc
@@ -16,7 +16,7 @@
 #include "chrome/browser/android/contextualsearch/resolved_search_term.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/search_engines/template_url_service_factory.h"
-#include "components/contextual_search/browser/contextual_search_js_api_service_impl.h"
+#include "components/contextual_search/content/browser/contextual_search_js_api_service_impl.h"
 #include "components/navigation_interception/intercept_navigation_delegate.h"
 #include "components/variations/variations_associated_data.h"
 #include "content/public/browser/render_frame_host.h"
diff --git a/chrome/browser/android/contextualsearch/contextual_search_manager.h b/chrome/browser/android/contextualsearch/contextual_search_manager.h
index f83a198f4..c82ee24d 100644
--- a/chrome/browser/android/contextualsearch/contextual_search_manager.h
+++ b/chrome/browser/android/contextualsearch/contextual_search_manager.h
@@ -11,8 +11,8 @@
 #include "base/task/cancelable_task_tracker.h"
 #include "chrome/browser/android/contextualsearch/contextual_search_context.h"
 #include "chrome/browser/android/contextualsearch/contextual_search_delegate.h"
-#include "components/contextual_search/browser/contextual_search_js_api_handler.h"
-#include "components/contextual_search/common/contextual_search_js_api_service.mojom.h"
+#include "components/contextual_search/content/browser/contextual_search_js_api_handler.h"
+#include "components/contextual_search/content/common/contextual_search_js_api_service.mojom.h"
 
 // Manages the native extraction and request logic for Contextual Search,
 // and interacts with the Java ContextualSearchManager for UX.
diff --git a/chrome/browser/android/contextualsearch/ctr_suppression.h b/chrome/browser/android/contextualsearch/ctr_suppression.h
index 906af90..c0c1bad 100644
--- a/chrome/browser/android/contextualsearch/ctr_suppression.h
+++ b/chrome/browser/android/contextualsearch/ctr_suppression.h
@@ -8,8 +8,8 @@
 #include <stddef.h>
 
 #include "base/android/jni_android.h"
-#include "components/contextual_search/browser/ctr_aggregator.h"
-#include "components/contextual_search/browser/weekly_activity_storage.h"
+#include "components/contextual_search/core/browser/ctr_aggregator.h"
+#include "components/contextual_search/core/browser/weekly_activity_storage.h"
 
 // Provides access to aggregated click-through-rate recording for tap
 // suppression.  Implements a Java conduit to the CtrAggregator in the
diff --git a/chrome/browser/android/download/available_offline_content_provider.cc b/chrome/browser/android/download/available_offline_content_provider.cc
index a8146b7..25d7063 100644
--- a/chrome/browser/android/download/available_offline_content_provider.cc
+++ b/chrome/browser/android/download/available_offline_content_provider.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/android/download/available_offline_content_provider.h"
 
+#include "base/base64.h"
+#include "base/strings/strcat.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
 #include "chrome/browser/android/chrome_feature_list.h"
@@ -65,9 +67,110 @@
   return a.id < b.id;
 }
 
+class ThumbnailFetch {
+ public:
+  // Gets visuals for a list of thumbnails. Calls |complete_callback| with
+  // a list of data URIs containing the thumbnails for |content_ids|, in the
+  // same order. If no thumbnail is available, the corresponding result
+  // string is left empty.
+  static void Start(
+      offline_items_collection::OfflineContentAggregator* aggregator,
+      std::vector<offline_items_collection::ContentId> content_ids,
+      base::OnceCallback<void(std::vector<GURL>)> complete_callback) {
+    // ThumbnailFetch instances are self-deleting.
+    ThumbnailFetch* fetch = new ThumbnailFetch(std::move(content_ids),
+                                               std::move(complete_callback));
+    fetch->Start(aggregator);
+  }
+
+ private:
+  ThumbnailFetch(std::vector<offline_items_collection::ContentId> content_ids,
+                 base::OnceCallback<void(std::vector<GURL>)> complete_callback)
+      : content_ids_(std::move(content_ids)),
+        complete_callback_(std::move(complete_callback)) {
+    thumbnails_.resize(content_ids_.size());
+  }
+
+  void Start(offline_items_collection::OfflineContentAggregator* aggregator) {
+    if (content_ids_.empty()) {
+      Complete();
+      return;
+    }
+    auto callback = base::BindRepeating(&ThumbnailFetch::VisualsReceived,
+                                        base::Unretained(this));
+    for (offline_items_collection::ContentId id : content_ids_) {
+      aggregator->GetVisualsForItem(id, callback);
+    }
+  }
+
+  void VisualsReceived(
+      const offline_items_collection::ContentId& id,
+      std::unique_ptr<offline_items_collection::OfflineItemVisuals> visuals) {
+    DCHECK(callback_count_ < content_ids_.size());
+    AddVisual(id, std::move(visuals));
+    if (++callback_count_ == content_ids_.size())
+      Complete();
+  }
+
+  void Complete() {
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE,
+        base::BindOnce(std::move(complete_callback_), std::move(thumbnails_)));
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE,
+        base::BindOnce(
+            [](ThumbnailFetch* thumbnail_fetch) { delete thumbnail_fetch; },
+            this));
+  }
+
+  void AddVisual(
+      const offline_items_collection::ContentId& id,
+      std::unique_ptr<offline_items_collection::OfflineItemVisuals> visuals) {
+    if (!visuals)
+      return;
+    scoped_refptr<base::RefCountedMemory> data = visuals->icon.As1xPNGBytes();
+    if (!data || data->size() == 0)
+      return;
+    std::string content_base64;
+    base::Base64Encode(base::StringPiece(data->front_as<char>(), data->size()),
+                       &content_base64);
+    for (size_t i = 0; i < content_ids_.size(); ++i) {
+      if (content_ids_[i] == id) {
+        thumbnails_[i] =
+            GURL(base::StrCat({"data:image/png;base64,", content_base64}));
+        break;
+      }
+    }
+  }
+
+  // The list of item IDs for which to fetch visuals.
+  std::vector<offline_items_collection::ContentId> content_ids_;
+  // The thumbnail data URIs to be returned. |thumbnails_| size is equal to
+  // |content_ids_| size.
+  std::vector<GURL> thumbnails_;
+  base::OnceCallback<void(std::vector<GURL>)> complete_callback_;
+  size_t callback_count_ = 0;
+
+  DISALLOW_COPY_AND_ASSIGN(ThumbnailFetch);
+};
+
+chrome::mojom::AvailableOfflineContentPtr CreateAvailableOfflineContent(
+    const OfflineItem& item,
+    const GURL& thumbnail_url) {
+  return chrome::mojom::AvailableOfflineContent::New(
+      item.id.id, item.id.name_space, item.title, item.description,
+      base::UTF16ToASCII(ui::TimeFormat::Simple(
+          ui::TimeFormat::FORMAT_ELAPSED, ui::TimeFormat::LENGTH_SHORT,
+          base::Time::Now() - item.creation_time)),
+      "",  // TODO(crbug.com/852872): Add attribution
+      std::move(thumbnail_url));
+}
+
 // Picks the best available offline content items, and passes them to callback.
-void ListFinalize(AvailableOfflineContentProvider::ListCallback callback,
-                  const std::vector<OfflineItem>& all_items) {
+void ListFinalize(
+    AvailableOfflineContentProvider::ListCallback callback,
+    offline_items_collection::OfflineContentAggregator* aggregator,
+    const std::vector<OfflineItem>& all_items) {
   // Save the best 3 or fewer times to |selected|.
   const int kMaxItemsToReturn = 3;
   std::vector<OfflineItem> selected(kMaxItemsToReturn);
@@ -76,22 +179,29 @@
                                           CompareItemsByUsefulness);
   selected.resize(end - selected.begin());
 
-  // Translate OfflineItem to AvailableOfflineContentPtr, and filter out
-  // items that should not be shown.
-  std::vector<chrome::mojom::AvailableOfflineContentPtr> result;
-  for (const OfflineItem& item : selected) {
-    if (ContentTypePriority(item) >= ContentPriority::kDoNotShow)
-      break;
-    result.push_back(chrome::mojom::AvailableOfflineContent::New(
-        item.id.id, item.id.name_space, item.title, item.description,
-        base::UTF16ToASCII(ui::TimeFormat::Simple(
-            ui::TimeFormat::FORMAT_ELAPSED, ui::TimeFormat::LENGTH_SHORT,
-            base::Time::Now() - item.creation_time)),
-        "",     // TODO(crbug.com/852872): Add attribution
-        GURL()  // TODO(crbug.com/852872): Add thumbnail data URL
-        ));
-  }
-  std::move(callback).Run(std::move(result));
+  while (!selected.empty() &&
+         ContentTypePriority(selected.back()) >= ContentPriority::kDoNotShow)
+    selected.pop_back();
+
+  std::vector<offline_items_collection::ContentId> selected_ids;
+  for (const OfflineItem& item : selected)
+    selected_ids.push_back(item.id);
+
+  auto complete = [](AvailableOfflineContentProvider::ListCallback callback,
+                     std::vector<OfflineItem> selected,
+                     std::vector<GURL> thumbnail_data_uris) {
+    // Translate OfflineItem to AvailableOfflineContentPtr.
+    std::vector<chrome::mojom::AvailableOfflineContentPtr> result;
+    for (size_t i = 0; i < selected.size(); ++i) {
+      result.push_back(
+          CreateAvailableOfflineContent(selected[i], thumbnail_data_uris[i]));
+    }
+    std::move(callback).Run(std::move(result));
+  };
+
+  ThumbnailFetch::Start(
+      aggregator, selected_ids,
+      base::BindOnce(complete, std::move(callback), std::move(selected)));
 }
 
 }  // namespace
@@ -109,7 +219,8 @@
   }
   offline_items_collection::OfflineContentAggregator* aggregator =
       OfflineContentAggregatorFactory::GetForBrowserContext(browser_context_);
-  aggregator->GetAllItems(base::BindOnce(ListFinalize, std::move(callback)));
+  aggregator->GetAllItems(base::BindOnce(ListFinalize, std::move(callback),
+                                         base::Unretained(aggregator)));
 }
 
 void AvailableOfflineContentProvider::Create(
diff --git a/chrome/browser/android/download/available_offline_content_provider_unittest.cc b/chrome/browser/android/download/available_offline_content_provider_unittest.cc
index 7546ee2..c570e0b 100644
--- a/chrome/browser/android/download/available_offline_content_provider_unittest.cc
+++ b/chrome/browser/android/download/available_offline_content_provider_unittest.cc
@@ -4,15 +4,18 @@
 
 #include "chrome/browser/android/download/available_offline_content_provider.h"
 
+#include "base/strings/string_util.h"
 #include "base/test/bind_test_util.h"
 #include "base/test/scoped_feature_list.h"
 #include "chrome/browser/android/chrome_feature_list.h"
 #include "chrome/browser/offline_items_collection/offline_content_aggregator_factory.h"
 #include "chrome/test/base/testing_profile.h"
 #include "components/offline_items_collection/core/offline_content_aggregator.h"
+#include "components/offline_items_collection/core/offline_item.h"
 #include "components/offline_items_collection/core/test_support/mock_offline_content_provider.h"
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "ui/gfx/image/image_unittest_util.h"
 #include "url/gurl.h"
 
 namespace android {
@@ -20,6 +23,7 @@
 
 using offline_items_collection::OfflineContentAggregator;
 using testing::_;
+const char kProviderNamespace[] = "offline_pages";
 
 std::unique_ptr<KeyedService> BuildOfflineContentAggregator(
     content::BrowserContext* context) {
@@ -28,9 +32,10 @@
 
 offline_items_collection::OfflineItem UselessItem() {
   offline_items_collection::OfflineItem item;
-  item.original_url = GURL("https://uesless");
+  item.original_url = GURL("https://useless");
   item.filter = offline_items_collection::FILTER_IMAGE;
   item.id.id = "Useless";
+  item.id.name_space = kProviderNamespace;
   return item;
 }
 
@@ -39,6 +44,7 @@
   item.original_url = GURL("https://already_read");
   item.filter = offline_items_collection::FILTER_PAGE;
   item.id.id = "AlreadyRead";
+  item.id.name_space = kProviderNamespace;
   item.is_suggested = true;
   item.last_accessed_time = base::Time::Now();
   return item;
@@ -49,7 +55,7 @@
   item.original_url = GURL("https://page");
   item.filter = offline_items_collection::FILTER_PAGE;
   item.id.id = "SuggestedPage";
-  item.id.name_space = "testnamespace";
+  item.id.name_space = kProviderNamespace;
   item.is_suggested = true;
   item.title = "Page Title";
   item.description = "snippet";
@@ -65,6 +71,7 @@
   item.original_url = GURL("https://video");
   item.filter = offline_items_collection::FILTER_VIDEO;
   item.id.id = "VideoItem";
+  item.id.name_space = kProviderNamespace;
   return item;
 }
 
@@ -73,39 +80,47 @@
   item.original_url = GURL("https://audio");
   item.filter = offline_items_collection::FILTER_AUDIO;
   item.id.id = "AudioItem";
+  item.id.name_space = kProviderNamespace;
   return item;
 }
 
+offline_items_collection::OfflineItemVisuals TestThumbnail() {
+  offline_items_collection::OfflineItemVisuals visuals;
+  visuals.icon = gfx::test::CreateImage(2, 4);
+  return visuals;
+}
+
 class AvailableOfflineContentTest : public testing::Test {
  protected:
   void SetUp() override {
     // To control the items in the aggregator, we create it and register a
     // single MockOfflineContentProvider.
-    aggregator = static_cast<OfflineContentAggregator*>(
+    aggregator_ = static_cast<OfflineContentAggregator*>(
         OfflineContentAggregatorFactory::GetInstance()->SetTestingFactoryAndUse(
-            &profile, &BuildOfflineContentAggregator));
-    aggregator->RegisterProvider("offline_pages", &content_provider);
+            &profile_, &BuildOfflineContentAggregator));
+    aggregator_->RegisterProvider(kProviderNamespace, &content_provider_);
+    content_provider_.SetVisuals({});
   }
 
   std::vector<chrome::mojom::AvailableOfflineContentPtr> ListAndWait() {
     std::vector<chrome::mojom::AvailableOfflineContentPtr> suggestions;
     bool received = false;
-    provider.List(base::BindLambdaForTesting(
+    provider_.List(base::BindLambdaForTesting(
         [&](std::vector<chrome::mojom::AvailableOfflineContentPtr> result) {
           received = true;
           suggestions = std::move(result);
         }));
-    thread_bundle.RunUntilIdle();
+    thread_bundle_.RunUntilIdle();
     EXPECT_TRUE(received);
     return suggestions;
   }
 
-  content::TestBrowserThreadBundle thread_bundle;
-  TestingProfile profile;
-  base::test::ScopedFeatureList scoped_feature_list;
-  OfflineContentAggregator* aggregator;
-  offline_items_collection::MockOfflineContentProvider content_provider;
-  AvailableOfflineContentProvider provider{&profile};
+  content::TestBrowserThreadBundle thread_bundle_;
+  TestingProfile profile_;
+  base::test::ScopedFeatureList scoped_feature_list_;
+  OfflineContentAggregator* aggregator_;
+  offline_items_collection::MockOfflineContentProvider content_provider_;
+  AvailableOfflineContentProvider provider_{&profile_};
 };
 
 TEST_F(AvailableOfflineContentTest, NoContent) {
@@ -116,8 +131,9 @@
 }
 
 TEST_F(AvailableOfflineContentTest, AllContentFilteredOut) {
-  scoped_feature_list.InitAndEnableFeature(chrome::android::kNewNetErrorPageUI);
-  content_provider.SetItems({UselessItem(), OldOfflinePage()});
+  scoped_feature_list_.InitAndEnableFeature(
+      chrome::android::kNewNetErrorPageUI);
+  content_provider_.SetItems({UselessItem(), OldOfflinePage()});
 
   std::vector<chrome::mojom::AvailableOfflineContentPtr> suggestions =
       ListAndWait();
@@ -126,11 +142,15 @@
 }
 
 TEST_F(AvailableOfflineContentTest, ThreeItems) {
-  scoped_feature_list.InitAndEnableFeature(chrome::android::kNewNetErrorPageUI);
-  content_provider.SetItems({
+  scoped_feature_list_.InitAndEnableFeature(
+      chrome::android::kNewNetErrorPageUI);
+  content_provider_.SetItems({
       UselessItem(), VideoItem(), SuggestedOfflinePageItem(), AudioItem(),
   });
 
+  content_provider_.SetVisuals(
+      {{SuggestedOfflinePageItem().id, TestThumbnail()}});
+
   std::vector<chrome::mojom::AvailableOfflineContentPtr> suggestions =
       ListAndWait();
 
@@ -150,15 +170,22 @@
   EXPECT_EQ(page_item.title, first->title);
   EXPECT_EQ(page_item.description, first->snippet);
   EXPECT_EQ("4 hours ago", first->date_modified);
-  // attribution and thumbnail_data_uri not yet implemented.
+  // At the time of writing this test, the output was:
+  // data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAAECAYAAACk7+45AAAAFk
+  // lEQVQYlWNk+M/wn4GBgYGJAQowGQBCcgIG00vTRwAAAABJRU5ErkJggg==
+  // Since other encodings are possible, just check the prefix. PNGs all have
+  // the same 8 byte header.
+  EXPECT_TRUE(base::StartsWith(first->thumbnail_data_uri.spec(),
+                               "data:image/png;base64,iVBORw0K",
+                               base::CompareCase::SENSITIVE));
+  // TODO(crbug.com/852872): Add attribution.
   EXPECT_EQ("", first->attribution);
-  EXPECT_EQ("", first->thumbnail_data_uri);
 }
 
 TEST_F(AvailableOfflineContentTest, NotEnabled) {
-  scoped_feature_list.InitAndDisableFeature(
+  scoped_feature_list_.InitAndDisableFeature(
       chrome::android::kNewNetErrorPageUI);
-  content_provider.SetItems({SuggestedOfflinePageItem()});
+  content_provider_.SetItems({SuggestedOfflinePageItem()});
 
   std::vector<chrome::mojom::AvailableOfflineContentPtr> suggestions =
       ListAndWait();
diff --git a/chrome/browser/android/oom_intervention/DEPS b/chrome/browser/android/oom_intervention/DEPS
deleted file mode 100644
index 7a22a80..0000000
--- a/chrome/browser/android/oom_intervention/DEPS
+++ /dev/null
@@ -1,3 +0,0 @@
-include_rules = [
-  "+third_party/blink/common/oom_intervention"
-]
diff --git a/chrome/browser/android/oom_intervention/oom_intervention_config.cc b/chrome/browser/android/oom_intervention/oom_intervention_config.cc
index a7c8fb77..bac151e 100644
--- a/chrome/browser/android/oom_intervention/oom_intervention_config.cc
+++ b/chrome/browser/android/oom_intervention/oom_intervention_config.cc
@@ -33,6 +33,7 @@
 
 // Field trial parameter names.
 const char kRendererPauseParamName[] = "pause_renderer";
+const char kNavigateAdsParamName[] = "navigate_ads";
 const char kShouldDetectInRenderer[] = "detect_in_renderer";
 
 bool GetThresholdParam(const char* param,
@@ -116,6 +117,8 @@
 
   is_renderer_pause_enabled_ = base::GetFieldTrialParamByFeatureAsBool(
       features::kOomIntervention, kRendererPauseParamName, false);
+  is_navigate_ads_enabled_ = base::GetFieldTrialParamByFeatureAsBool(
+      features::kOomIntervention, kNavigateAdsParamName, false);
   should_detect_in_renderer_ = base::GetFieldTrialParamByFeatureAsBool(
       features::kOomIntervention, kShouldDetectInRenderer, true);
 
diff --git a/chrome/browser/android/oom_intervention/oom_intervention_config.h b/chrome/browser/android/oom_intervention/oom_intervention_config.h
index 4678f48..0e61b06 100644
--- a/chrome/browser/android/oom_intervention/oom_intervention_config.h
+++ b/chrome/browser/android/oom_intervention/oom_intervention_config.h
@@ -25,6 +25,10 @@
   // paused.
   bool is_renderer_pause_enabled() const { return is_renderer_pause_enabled_; }
 
+  // True if on detection of near OOM condition the ad iframes should be
+  // navigated.
+  bool is_navigate_ads_enabled() const { return is_navigate_ads_enabled_; }
+
   // True if detection should be enabled on renderers.
   bool should_detect_in_renderer() const { return should_detect_in_renderer_; }
 
@@ -44,6 +48,7 @@
   bool use_components_callback_ = false;
 
   bool is_renderer_pause_enabled_ = false;
+  bool is_navigate_ads_enabled_ = false;
   bool should_detect_in_renderer_ = false;
 
   uint64_t swapfree_threshold_ = 0;
diff --git a/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc b/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc
index 57c00551..f4681ec 100644
--- a/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc
+++ b/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc
@@ -7,13 +7,13 @@
 #include "base/metrics/histogram_macros.h"
 #include "chrome/browser/android/oom_intervention/oom_intervention_config.h"
 #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h"
-#include "chrome/browser/ui/android/infobars/near_oom_infobar.h"
+#include "chrome/browser/ui/android/infobars/near_oom_reduction_infobar.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/web_contents.h"
-#include "third_party/blink/common/oom_intervention/oom_intervention_types.h"
+#include "third_party/blink/public/common/oom_intervention/oom_intervention_types.h"
 
 namespace {
 
@@ -71,17 +71,15 @@
       scoped_observer_(this),
       weak_ptr_factory_(this) {
   scoped_observer_.Add(crash_reporter::CrashMetricsReporter::GetInstance());
-  shared_metrics_buffer_ = base::UnsafeSharedMemoryRegion::Create(
-      sizeof(blink::OomInterventionMetrics));
-  metrics_mapping_ = shared_metrics_buffer_.Map();
-  memset(metrics_mapping_.memory(), 0, sizeof(blink::OomInterventionMetrics));
 }
 
 OomInterventionTabHelper::~OomInterventionTabHelper() = default;
 
-void OomInterventionTabHelper::OnHighMemoryUsage(bool intervention_triggered) {
-  if (intervention_triggered) {
-    NearOomInfoBar::Show(web_contents(), this);
+void OomInterventionTabHelper::OnHighMemoryUsage() {
+  auto* config = OomInterventionConfig::GetInstance();
+  if (config->is_renderer_pause_enabled() ||
+      config->is_navigate_ads_enabled()) {
+    NearOomReductionInfoBar::Show(web_contents(), this);
     intervention_state_ = InterventionState::UI_SHOWN;
   }
   near_oom_detected_time_ = base::TimeTicks::Now();
@@ -233,22 +231,6 @@
         NearOomDetectionEndReason::OOM_PROTECTED_CRASH);
   }
 
-  blink::OomInterventionMetrics* metrics =
-      static_cast<blink::OomInterventionMetrics*>(metrics_mapping_.memory());
-
-  UMA_HISTOGRAM_MEMORY_LARGE_MB(
-      "Memory.Experimental.OomIntervention.RendererPrivateMemoryFootprintAtOOM",
-      metrics->current_private_footprint_kb / 1024);
-  UMA_HISTOGRAM_MEMORY_MB(
-      "Memory.Experimental.OomIntervention.RendererSwapFootprintAtOOM",
-      metrics->current_swap_kb / 1024);
-  UMA_HISTOGRAM_MEMORY_MB(
-      "Memory.Experimental.OomIntervention.RendererBlinkUsageAtOOM",
-      metrics->current_blink_usage_kb / 1024);
-  UMA_HISTOGRAM_MEMORY_LARGE_MB(
-      "Memory.Experimental.OomIntervention.RendererVmSizeAtOOMLarge",
-      metrics->current_vm_size_kb / 1024);
-
   base::TimeDelta time_since_last_navigation;
   if (!last_navigation_timestamp_.is_null()) {
     time_since_last_navigation =
@@ -298,11 +280,16 @@
 
 void OomInterventionTabHelper::StartDetectionInRenderer() {
   auto* config = OomInterventionConfig::GetInstance();
-  bool trigger_intervention = config->is_renderer_pause_enabled();
-  if (trigger_intervention && decider_) {
+  bool renderer_pause_enabled = config->is_renderer_pause_enabled();
+  bool navigate_ads_enabled = config->is_navigate_ads_enabled();
+
+  if ((renderer_pause_enabled || navigate_ads_enabled) && decider_) {
     DCHECK(!web_contents()->GetBrowserContext()->IsOffTheRecord());
     const std::string& host = web_contents()->GetVisibleURL().host();
-    trigger_intervention = decider_->CanTriggerIntervention(host);
+    if (!decider_->CanTriggerIntervention(host)) {
+      renderer_pause_enabled = false;
+      navigate_ads_enabled = false;
+    }
   }
 
   content::RenderFrameHost* main_frame = web_contents()->GetMainFrame();
@@ -316,9 +303,8 @@
   binding_.Bind(mojo::MakeRequest(&host));
   blink::mojom::DetectionArgsPtr detection_args =
       config->GetRendererOomDetectionArgs();
-  intervention_->StartDetection(
-      std::move(host), shared_metrics_buffer_.Duplicate(),
-      std::move(detection_args), trigger_intervention);
+  intervention_->StartDetection(std::move(host), std::move(detection_args),
+                                renderer_pause_enabled, navigate_ads_enabled);
 }
 
 void OomInterventionTabHelper::OnNearOomDetected() {
diff --git a/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.h b/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.h
index dd6b7d1..4b83964 100644
--- a/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.h
+++ b/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.h
@@ -38,7 +38,7 @@
   ~OomInterventionTabHelper() override;
 
   // blink::mojom::OomInterventionHost:
-  void OnHighMemoryUsage(bool intervention_triggered) override;
+  void OnHighMemoryUsage() override;
 
   // InterventionDelegate:
   void AcceptIntervention() override;
diff --git a/chrome/browser/android/vr/vr_shell.cc b/chrome/browser/android/vr/vr_shell.cc
index fced933..988b04ea 100644
--- a/chrome/browser/android/vr/vr_shell.cc
+++ b/chrome/browser/android/vr/vr_shell.cc
@@ -1061,9 +1061,9 @@
     }
     if (web_contents->IsConnectedToBluetoothDevice()) {
       if (is_foreground)
-        active_capturing_.screen_capture_enabled = true;
+        active_capturing_.bluetooth_connected = true;
       else
-        background_capturing_.screen_capture_enabled = true;
+        background_capturing_.bluetooth_connected = true;
     }
   }
 
diff --git a/chrome/browser/ash_service_registry.cc b/chrome/browser/ash_service_registry.cc
index 90d86b5..e6fe748 100644
--- a/chrome/browser/ash_service_registry.cc
+++ b/chrome/browser/ash_service_registry.cc
@@ -67,7 +67,7 @@
     ContentBrowserClient::OutOfProcessServiceMap* services) {
   RegisterOutOfProcessServicesImpl(kCommonServices, base::size(kCommonServices),
                                    services);
-  if (!features::IsAshInBrowserProcess()) {
+  if (features::IsMultiProcessMash()) {
     RegisterOutOfProcessServicesImpl(kMashServices, base::size(kMashServices),
                                      services);
   }
@@ -97,7 +97,7 @@
     (*services)[ax::mojom::kAXHostServiceName] = info;
   }
 
-  if (!features::IsAshInBrowserProcess())
+  if (features::IsMultiProcessMash())
     return;
 
   (*services)[ash::mojom::kServiceName] =
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index 00ba1980..5dff86767 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -70,7 +70,6 @@
 #include "chrome/browser/printing/print_job_manager.h"
 #include "chrome/browser/printing/print_preview_dialog_controller.h"
 #include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/browser/resource_coordinator/tab_activity_watcher.h"
 #include "chrome/browser/resource_coordinator/tab_lifecycle_unit_source.h"
 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
 #include "chrome/browser/shell_integration.h"
@@ -888,10 +887,6 @@
             tab_manager_->intervention_policy_database(),
             tab_manager_->usage_clock());
     tab_lifecycle_unit_source_->AddObserver(tab_manager_.get());
-    // Add TabActivityWatcher to TabLifecycleObserver to track tab discards and
-    // reloads.
-    tab_lifecycle_unit_source_->AddTabLifecycleObserver(
-        resource_coordinator::TabActivityWatcher::GetInstance());
   }
   return tab_manager_.get();
 #endif  // defined(OS_ANDROID)
diff --git a/chrome/browser/browser_process_platform_part_chromeos.cc b/chrome/browser/browser_process_platform_part_chromeos.cc
index 14e5489..7b7ee4ad 100644
--- a/chrome/browser/browser_process_platform_part_chromeos.cc
+++ b/chrome/browser/browser_process_platform_part_chromeos.cc
@@ -208,7 +208,7 @@
 ui::InputDeviceControllerClient*
 BrowserProcessPlatformPart::GetInputDeviceControllerClient() {
   if (!input_device_controller_client_) {
-    const std::string service_name = features::IsAshInBrowserProcess()
+    const std::string service_name = !features::IsMultiProcessMash()
                                          ? chromeos::kChromeServiceName
                                          : ui::mojom::kServiceName;
     input_device_controller_client_ =
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index d38eccf..864bb08 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -188,6 +188,7 @@
 #include "components/password_manager/content/browser/content_password_manager_driver_factory.h"
 #include "components/payments/content/payment_request_display_manager.h"
 #include "components/policy/content/policy_blacklist_navigation_throttle.h"
+#include "components/policy/content/policy_blacklist_service.h"
 #include "components/policy/core/common/cloud/policy_header_service.h"
 #include "components/pref_registry/pref_registry_syncable.h"
 #include "components/prefs/pref_registry_simple.h"
@@ -314,6 +315,7 @@
 #include "chrome/browser/chromeos/chrome_browser_main_chromeos.h"
 #include "chrome/browser/chromeos/chrome_content_browser_client_chromeos_part.h"
 #include "chrome/browser/chromeos/chrome_service_name.h"
+#include "chrome/browser/chromeos/drive/fileapi/drivefs_file_system_backend_delegate.h"
 #include "chrome/browser/chromeos/drive/fileapi/file_system_backend_delegate.h"
 #include "chrome/browser/chromeos/file_manager/app_id.h"
 #include "chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.h"
@@ -354,6 +356,7 @@
 #include "chrome/common/descriptors_android.h"
 #include "chrome/services/media_gallery_util/public/mojom/constants.mojom.h"
 #include "components/crash/content/browser/child_exit_observer_android.h"
+#include "components/crash/content/browser/crash_memory_metrics_collector_android.h"
 #include "components/navigation_interception/intercept_navigation_delegate.h"
 #include "content/public/browser/android/java_interfaces.h"
 #include "services/proxy_resolver/proxy_resolver_service.h"
@@ -948,7 +951,7 @@
   Profile* profile =
       Profile::FromBrowserContext(web_contents->GetBrowserContext());
   PolicyBlacklistService* service =
-      PolicyBlacklistFactory::GetForProfile(profile);
+      PolicyBlacklistFactory::GetForBrowserContext(profile);
   if (service) {
     const policy::URLBlacklist::URLBlacklistState url_state =
         service->GetURLBlacklistState(url);
@@ -1284,6 +1287,11 @@
   // Data cannot be persisted if the profile is off the record.
   host->AddFilter(
       new cdm::CdmMessageFilterAndroid(!profile->IsOffTheRecord(), false));
+
+  // Register CrashMemoryMetricsCollector to report oom related metrics.
+  host->SetUserData(
+      CrashMemoryMetricsCollector::kCrashMemoryMetricsCollectorKey,
+      std::make_unique<CrashMemoryMetricsCollector>(host));
 #endif
 
   Profile* original_profile = profile->GetOriginalProfile();
@@ -3334,6 +3342,7 @@
           storage_partition_path),
       std::make_unique<arc::ArcContentFileSystemBackendDelegate>(),
       std::make_unique<arc::ArcDocumentsProviderBackendDelegate>(),
+      std::make_unique<drive::DriveFsFileSystemBackendDelegate>(),
       external_mount_points, storage::ExternalMountPoints::GetSystemInstance());
   backend->AddSystemMountPoints();
   DCHECK(backend->CanHandleType(storage::kFileSystemTypeExternal));
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index 4af7d90..26a317a 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -462,6 +462,8 @@
     "arc/optin/arc_terms_of_service_negotiator.h",
     "arc/optin/arc_terms_of_service_oobe_negotiator.cc",
     "arc/optin/arc_terms_of_service_oobe_negotiator.h",
+    "arc/pip/arc_picture_in_picture_window_controller_impl.cc",
+    "arc/pip/arc_picture_in_picture_window_controller_impl.h",
     "arc/pip/arc_pip_bridge.cc",
     "arc/pip/arc_pip_bridge.h",
     "arc/policy/arc_android_management_checker.cc",
@@ -581,18 +583,28 @@
     "customization/customization_wallpaper_downloader.h",
     "customization/customization_wallpaper_util.cc",
     "customization/customization_wallpaper_util.h",
+    "dbus/chrome_features_service_provider.cc",
+    "dbus/chrome_features_service_provider.h",
     "dbus/chrome_proxy_resolution_service_provider_delegate.cc",
     "dbus/chrome_proxy_resolution_service_provider_delegate.h",
     "dbus/chrome_virtual_file_request_service_provider_delegate.cc",
     "dbus/chrome_virtual_file_request_service_provider_delegate.h",
     "dbus/component_updater_service_provider.cc",
     "dbus/component_updater_service_provider.h",
+    "dbus/drive_file_stream_service_provider.cc",
+    "dbus/drive_file_stream_service_provider.h",
     "dbus/finch_features_service_provider_delegate.cc",
     "dbus/finch_features_service_provider_delegate.h",
     "dbus/kiosk_info_service_provider.cc",
     "dbus/kiosk_info_service_provider.h",
+    "dbus/proxy_resolution_service_provider.cc",
+    "dbus/proxy_resolution_service_provider.h",
     "dbus/screen_lock_service_provider.cc",
     "dbus/screen_lock_service_provider.h",
+    "dbus/virtual_file_request_service_provider.cc",
+    "dbus/virtual_file_request_service_provider.h",
+    "dbus/vm_applications_service_provider.cc",
+    "dbus/vm_applications_service_provider.h",
     "dbus/vm_applications_service_provider_delegate.cc",
     "dbus/vm_applications_service_provider_delegate.h",
     "device_sync/device_sync_client_factory.cc",
@@ -619,6 +631,10 @@
     "drive/file_task_executor.h",
     "drive/fileapi/async_file_util.cc",
     "drive/fileapi/async_file_util.h",
+    "drive/fileapi/drivefs_async_file_util.cc",
+    "drive/fileapi/drivefs_async_file_util.h",
+    "drive/fileapi/drivefs_file_system_backend_delegate.cc",
+    "drive/fileapi/drivefs_file_system_backend_delegate.h",
     "drive/fileapi/file_system_backend_delegate.cc",
     "drive/fileapi/file_system_backend_delegate.h",
     "drive/fileapi/fileapi_worker.cc",
@@ -1865,8 +1881,14 @@
 
 copy("dbus_service_files") {
   sources = [
+    "dbus/org.chromium.ChromeFeaturesService.conf",
     "dbus/org.chromium.ComponentUpdaterService.conf",
+    "dbus/org.chromium.DriveFileStreamService.conf",
+    "dbus/org.chromium.KioskAppService.conf",
+    "dbus/org.chromium.NetworkProxyService.conf",
     "dbus/org.chromium.ScreenLockService.conf",
+    "dbus/org.chromium.VirtualFileRequestService.conf",
+    "dbus/org.chromium.VmApplicationsService.conf",
   ]
   outputs = [
     "$root_out_dir/dbus/{{source_file_part}}",
@@ -1989,6 +2011,7 @@
     "arc/notification/arc_provision_notification_service_unittest.cc",
     "arc/notification/arc_supervision_transition_notification_unittest.cc",
     "arc/optin/arc_terms_of_service_default_negotiator_unittest.cc",
+    "arc/pip/arc_pip_bridge_unittest.cc",
     "arc/policy/arc_policy_bridge_unittest.cc",
     "arc/process/arc_process_unittest.cc",
     "arc/tts/arc_tts_service_unittest.cc",
@@ -2008,6 +2031,7 @@
     "child_accounts/usage_time_limit_processor_unittest.cc",
     "crostini/crostini_manager_unittest.cc",
     "customization/customization_document_unittest.cc",
+    "dbus/proxy_resolution_service_provider_unittest.cc",
     "drive/download_handler_unittest.cc",
     "drive/drive_file_stream_reader_unittest.cc",
     "drive/drive_integration_service_unittest.cc",
diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.cc b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
index 833d194..493c83ca 100644
--- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc
+++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
@@ -333,7 +333,7 @@
     return;
 
   // TODO(crbug.com/594887): Fix for mash by moving pref into ash.
-  if (!features::IsAshInBrowserProcess())
+  if (features::IsMultiProcessMash())
     return;
 
   // Update system tray menu visibility.
@@ -881,8 +881,8 @@
     Profile* /* profile */,
     bool show_message) {
   // Sticky keys is implemented only in ash.
-  // TODO(dpolukhin): support Athena, crbug.com/408733.
-  if (features::IsAshInBrowserProcess()) {
+  // TODO(crbug.com/678820): Mash support.
+  if (!features::IsMultiProcessMash()) {
     ash::Shell::Get()->sticky_keys_controller()->SetModifiersEnabled(
         manager->IsISOLevel5ShiftUsedByCurrentInputMethod(),
         manager->IsAltGrUsedByCurrentInputMethod());
@@ -1043,7 +1043,7 @@
   callback_list_.Notify(details);
 
   // TODO(crbug.com/594887): Fix for mash by moving pref into ash.
-  if (!features::IsAshInBrowserProcess())
+  if (features::IsMultiProcessMash())
     return;
 
   if (details.notification_type == ACCESSIBILITY_TOGGLE_DICTATION) {
diff --git a/chrome/browser/chromeos/accessibility/accessibility_panel.cc b/chrome/browser/chromeos/accessibility/accessibility_panel.cc
index 60834845..d4222d5c 100644
--- a/chrome/browser/chromeos/accessibility/accessibility_panel.cc
+++ b/chrome/browser/chromeos/accessibility/accessibility_panel.cc
@@ -78,7 +78,7 @@
   // TODO(jamescook|fsamuel): Fix this. It causes a white flash when opening the
   // window. The underlying problem is FrameToken plumbing, see
   // ui::ws::ServerWindow::OnFrameTokenChanged. https://crbug.com/771331
-  if (!features::IsAshInBrowserProcess())
+  if (features::IsMultiProcessMash())
     widget_->Show();
 }
 
diff --git a/chrome/browser/chromeos/android_sms/android_sms_urls.cc b/chrome/browser/chromeos/android_sms/android_sms_urls.cc
index 8e0f028d..afc4685 100644
--- a/chrome/browser/chromeos/android_sms/android_sms_urls.cc
+++ b/chrome/browser/chromeos/android_sms/android_sms_urls.cc
@@ -3,6 +3,9 @@
 // found in the LICENSE file.
 
 #include "chrome/browser/chromeos/android_sms/android_sms_urls.h"
+
+#include <string>
+
 #include "base/command_line.h"
 #include "base/optional.h"
 #include "chrome/browser/chromeos/android_sms/android_sms_switches.h"
@@ -14,19 +17,35 @@
 
 namespace {
 
-const char kDefaultAndroidMessagesUrl[] = "https://messages.android.com";
+// NOTE: Using internal staging server until changes roll out to prod.
+const char kDefaultAndroidMessagesUrl[] =
+    "https://android-messages.sandbox.google.com/";
+
+// NOTE: Using experiment mods until changes roll out to prod.
+const char kExperimentUrlParams[] =
+    "/?e=DittoServiceWorker,DittoPwa,DittoIndexedDb";
+
+GURL GetURLInternal(bool with_experiments) {
+  const base::CommandLine* command_line =
+      base::CommandLine::ForCurrentProcess();
+  std::string url_string =
+      command_line->GetSwitchValueASCII(switches::kAlternateAndroidMessagesUrl);
+
+  if (url_string.empty())
+    url_string = std::string(kDefaultAndroidMessagesUrl);
+  if (with_experiments)
+    url_string += std::string(kExperimentUrlParams);
+  return GURL(url_string);
+}
 
 }  // namespace
 
 GURL GetAndroidMessagesURL() {
-  const base::CommandLine* command_line =
-      base::CommandLine::ForCurrentProcess();
-  GURL android_messages_url(command_line->GetSwitchValueASCII(
-      switches::kAlternateAndroidMessagesUrl));
-  if (android_messages_url.is_empty()) {
-    android_messages_url = GURL(kDefaultAndroidMessagesUrl);
-  }
-  return android_messages_url;
+  return GetURLInternal(false /* with_experiments */);
+}
+
+GURL GetAndroidMessagesURLWithExperiments() {
+  return GetURLInternal(true /* with_experiments */);
 }
 
 }  // namespace android_sms
diff --git a/chrome/browser/chromeos/android_sms/android_sms_urls.h b/chrome/browser/chromeos/android_sms/android_sms_urls.h
index 00180eb..a70046d 100644
--- a/chrome/browser/chromeos/android_sms/android_sms_urls.h
+++ b/chrome/browser/chromeos/android_sms/android_sms_urls.h
@@ -14,6 +14,11 @@
 // Returns URL to Android Messages for Web page used by AndroidSmsService.
 GURL GetAndroidMessagesURL();
 
+// Returns URL to Android Messages for Web page used by AndroidSmsService.
+// Includes the experiment URL params for the ChromeOS integrations.
+// This is temporary for dogfood until these flags are rolled out to prod.
+GURL GetAndroidMessagesURLWithExperiments();
+
 }  // namespace android_sms
 
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/arc/arc_util.cc b/chrome/browser/chromeos/arc/arc_util.cc
index 1dfd077..aacb812 100644
--- a/chrome/browser/chromeos/arc/arc_util.cc
+++ b/chrome/browser/chromeos/arc/arc_util.cc
@@ -16,6 +16,7 @@
 #include "base/files/file_path.h"
 #include "base/lazy_instance.h"
 #include "base/logging.h"
+#include "base/strings/string_util.h"
 #include "base/sys_info.h"
 #include "base/task/post_task.h"
 #include "base/threading/thread_restrictions.h"
@@ -35,10 +36,12 @@
 #include "components/arc/arc_features.h"
 #include "components/arc/arc_prefs.h"
 #include "components/arc/arc_util.h"
+#include "components/language/core/browser/pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "components/user_manager/known_user.h"
 #include "components/user_manager/user.h"
 #include "components/user_manager/user_manager.h"
+#include "third_party/icu/source/common/unicode/locid.h"
 
 namespace arc {
 
@@ -619,6 +622,30 @@
       return ash::mojom::AssistantAllowedState::DISALLOWED_BY_ARC_DISALLOWED;
   }
 
+  if (chromeos::switches::IsAssistantEnabled()) {
+    const std::string kAllowedLocales[] = {ULOC_US, ULOC_UK, ULOC_CANADA,
+                                           ULOC_CANADA_FRENCH};
+
+    const PrefService* prefs = profile->GetPrefs();
+    std::string pref_locale =
+        prefs->GetString(language::prefs::kApplicationLocale);
+
+    if (!pref_locale.empty()) {
+      base::ReplaceChars(pref_locale, "-", "_", &pref_locale);
+      bool disallowed = std::end(kAllowedLocales) ==
+                        std::find(std::begin(kAllowedLocales),
+                                  std::end(kAllowedLocales), pref_locale);
+
+      if (disallowed &&
+          base::CommandLine::ForCurrentProcess()
+                  ->GetSwitchValueASCII(
+                      chromeos::switches::kVoiceInteractionLocales)
+                  .find(pref_locale) == std::string::npos) {
+        return ash::mojom::AssistantAllowedState::DISALLOWED_BY_LOCALE;
+      }
+    }
+  }
+
   return ash::mojom::AssistantAllowedState::ALLOWED;
 }
 
diff --git a/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.cc b/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.cc
index 98bf963..8ae48038 100644
--- a/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.cc
+++ b/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.cc
@@ -7,6 +7,8 @@
 #include <sys/types.h>
 #include <unistd.h>
 
+#include <utility>
+
 #include "base/files/file.h"
 #include "base/task/post_task.h"
 #include "base/threading/thread_restrictions.h"
@@ -57,63 +59,64 @@
 int ArcContentFileSystemFileStreamReader::Read(
     net::IOBuffer* buffer,
     int buffer_length,
-    const net::CompletionCallback& callback) {
+    net::CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   if (file_) {
-    ReadInternal(buffer, buffer_length, callback);
+    ReadInternal(buffer, buffer_length, std::move(callback));
     return net::ERR_IO_PENDING;
   }
   file_system_operation_runner_util::OpenFileToReadOnIOThread(
       arc_url_,
       base::BindOnce(&ArcContentFileSystemFileStreamReader::OnOpenFile,
                      weak_ptr_factory_.GetWeakPtr(),
-                     base::WrapRefCounted(buffer), buffer_length, callback));
+                     base::WrapRefCounted(buffer), buffer_length,
+                     std::move(callback)));
   return net::ERR_IO_PENDING;
 }
 
 int64_t ArcContentFileSystemFileStreamReader::GetLength(
-    const net::Int64CompletionCallback& callback) {
+    net::Int64CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   file_system_operation_runner_util::GetFileSizeOnIOThread(
       arc_url_,
       base::BindOnce(&ArcContentFileSystemFileStreamReader::OnGetFileSize,
-                     weak_ptr_factory_.GetWeakPtr(), callback));
+                     weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   return net::ERR_IO_PENDING;
 }
 
 void ArcContentFileSystemFileStreamReader::ReadInternal(
     net::IOBuffer* buffer,
     int buffer_length,
-    const net::CompletionCallback& callback) {
+    net::CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   DCHECK(file_);
   DCHECK(file_->IsValid());
   base::PostTaskAndReplyWithResult(
       task_runner_.get(), FROM_HERE,
-      base::Bind(&ReadFile, file_.get(), base::WrapRefCounted(buffer),
-                 buffer_length),
-      base::Bind(&ArcContentFileSystemFileStreamReader::OnRead,
-                 weak_ptr_factory_.GetWeakPtr(), callback));
+      base::BindOnce(&ReadFile, file_.get(), base::WrapRefCounted(buffer),
+                     buffer_length),
+      base::BindOnce(&ArcContentFileSystemFileStreamReader::OnRead,
+                     weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
 }
 
 void ArcContentFileSystemFileStreamReader::OnRead(
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     int result) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-  callback.Run(result < 0 ? net::ERR_FAILED : result);
+  std::move(callback).Run(result < 0 ? net::ERR_FAILED : result);
 }
 
 void ArcContentFileSystemFileStreamReader::OnGetFileSize(
-    const net::Int64CompletionCallback& callback,
+    net::Int64CompletionOnceCallback callback,
     int64_t size) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-  callback.Run(size < 0 ? net::ERR_FAILED : size);
+  std::move(callback).Run(size < 0 ? net::ERR_FAILED : size);
 }
 
 void ArcContentFileSystemFileStreamReader::OnOpenFile(
     scoped_refptr<net::IOBuffer> buf,
     int buffer_length,
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     mojo::ScopedHandle handle) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   DCHECK(!file_);
@@ -122,26 +125,27 @@
       mojo::UnwrapPlatformHandle(std::move(handle));
   if (!platform_handle.is_valid()) {
     LOG(ERROR) << "PassWrappedInternalPlatformHandle failed";
-    callback.Run(net::ERR_FAILED);
+    std::move(callback).Run(net::ERR_FAILED);
     return;
   }
   file_ = std::make_unique<base::File>(platform_handle.ReleaseFD());
   if (!file_->IsValid()) {
     LOG(ERROR) << "Invalid file.";
-    callback.Run(net::ERR_FAILED);
+    std::move(callback).Run(net::ERR_FAILED);
     return;
   }
   base::PostTaskAndReplyWithResult(
       task_runner_.get(), FROM_HERE,
-      base::Bind(&SeekFile, file_.get(), offset_),
-      base::Bind(&ArcContentFileSystemFileStreamReader::OnSeekFile,
-                 weak_ptr_factory_.GetWeakPtr(), buf, buffer_length, callback));
+      base::BindOnce(&SeekFile, file_.get(), offset_),
+      base::BindOnce(&ArcContentFileSystemFileStreamReader::OnSeekFile,
+                     weak_ptr_factory_.GetWeakPtr(), buf, buffer_length,
+                     std::move(callback)));
 }
 
 void ArcContentFileSystemFileStreamReader::OnSeekFile(
     scoped_refptr<net::IOBuffer> buf,
     int buffer_length,
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     int seek_result) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   DCHECK(file_);
@@ -149,20 +153,20 @@
   switch (seek_result) {
     case 0:
       // File stream is ready. Resume Read().
-      ReadInternal(buf.get(), buffer_length, callback);
+      ReadInternal(buf.get(), buffer_length, std::move(callback));
       break;
     case ESPIPE: {
       // Pipe is not seekable. Just consume the contents.
       const size_t kTemporaryBufferSize = 1024 * 1024;
       auto temporary_buffer =
           base::MakeRefCounted<net::IOBufferWithSize>(kTemporaryBufferSize);
-      ConsumeFileContents(buf, buffer_length, callback, temporary_buffer,
-                          offset_);
+      ConsumeFileContents(buf, buffer_length, std::move(callback),
+                          temporary_buffer, offset_);
       break;
     }
     default:
       LOG(ERROR) << "Failed to seek: " << seek_result;
-      callback.Run(net::FileErrorToNetError(
+      std::move(callback).Run(net::FileErrorToNetError(
           base::File::OSErrorToFileError(seek_result)));
   }
 }
@@ -170,7 +174,7 @@
 void ArcContentFileSystemFileStreamReader::ConsumeFileContents(
     scoped_refptr<net::IOBuffer> buf,
     int buffer_length,
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     scoped_refptr<net::IOBufferWithSize> temporary_buffer,
     int64_t num_bytes_to_consume) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
@@ -178,7 +182,7 @@
   DCHECK(file_->IsValid());
   if (num_bytes_to_consume == 0) {
     // File stream is ready. Resume Read().
-    ReadInternal(buf.get(), buffer_length, callback);
+    ReadInternal(buf.get(), buffer_length, std::move(callback));
     return;
   }
   auto num_bytes_to_read = std::min(
@@ -186,28 +190,30 @@
   // TODO(hashimoto): This may block the worker thread forever. crbug.com/673222
   base::PostTaskAndReplyWithResult(
       task_runner_.get(), FROM_HERE,
-      base::Bind(&ReadFile, file_.get(), temporary_buffer, num_bytes_to_read),
-      base::Bind(&ArcContentFileSystemFileStreamReader::OnConsumeFileContents,
-                 weak_ptr_factory_.GetWeakPtr(), buf, buffer_length, callback,
-                 temporary_buffer, num_bytes_to_consume));
+      base::BindOnce(&ReadFile, file_.get(), temporary_buffer,
+                     num_bytes_to_read),
+      base::BindOnce(
+          &ArcContentFileSystemFileStreamReader::OnConsumeFileContents,
+          weak_ptr_factory_.GetWeakPtr(), buf, buffer_length,
+          std::move(callback), temporary_buffer, num_bytes_to_consume));
 }
 
 void ArcContentFileSystemFileStreamReader::OnConsumeFileContents(
     scoped_refptr<net::IOBuffer> buf,
     int buffer_length,
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     scoped_refptr<net::IOBufferWithSize> temporary_buffer,
     int64_t num_bytes_to_consume,
     int read_result) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   if (read_result < 0) {
     LOG(ERROR) << "Failed to consume the file stream.";
-    callback.Run(net::ERR_FAILED);
+    std::move(callback).Run(net::ERR_FAILED);
     return;
   }
   DCHECK_GE(num_bytes_to_consume, read_result);
   num_bytes_to_consume -= read_result;
-  ConsumeFileContents(buf, buffer_length, callback, temporary_buffer,
+  ConsumeFileContents(buf, buffer_length, std::move(callback), temporary_buffer,
                       num_bytes_to_consume);
 }
 
diff --git a/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.h b/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.h
index 6afb987..1a3b91ce 100644
--- a/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.h
+++ b/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.h
@@ -10,7 +10,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "mojo/public/cpp/system/handle.h"
-#include "net/base/completion_callback.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/fileapi/file_stream_reader.h"
 #include "url/gurl.h"
 
@@ -35,39 +35,38 @@
   // storage::FileStreamReader override:
   int Read(net::IOBuffer* buffer,
            int buffer_length,
-           const net::CompletionCallback& callback) override;
-  int64_t GetLength(const net::Int64CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
+  int64_t GetLength(net::Int64CompletionOnceCallback callback) override;
 
  private:
   // Actually performs read.
   void ReadInternal(net::IOBuffer* buffer,
                     int buffer_length,
-                    const net::CompletionCallback& callback);
+                    net::CompletionOnceCallback callback);
 
   // Called when read completes.
-  void OnRead(const net::CompletionCallback& callback, int result);
+  void OnRead(net::CompletionOnceCallback callback, int result);
 
   // Called when GetFileSize() completes.
-  void OnGetFileSize(const net::Int64CompletionCallback& callback,
-                     int64_t size);
+  void OnGetFileSize(net::Int64CompletionOnceCallback callback, int64_t size);
 
   // Called when opening file completes.
   void OnOpenFile(scoped_refptr<net::IOBuffer> buf,
                   int buffer_length,
-                  const net::CompletionCallback& callback,
+                  net::CompletionOnceCallback callback,
                   mojo::ScopedHandle handle);
 
   // Called when seek completes.
   void OnSeekFile(scoped_refptr<net::IOBuffer> buf,
                   int buffer_length,
-                  const net::CompletionCallback& callback,
+                  net::CompletionOnceCallback callback,
                   int seek_result);
 
   // Reads the contents of the file to reach the offset.
   void ConsumeFileContents(
       scoped_refptr<net::IOBuffer> buf,
       int buffer_length,
-      const net::CompletionCallback& callback,
+      net::CompletionOnceCallback callback,
       scoped_refptr<net::IOBufferWithSize> temporary_buffer,
       int64_t num_bytes_to_consume);
 
@@ -75,7 +74,7 @@
   void OnConsumeFileContents(
       scoped_refptr<net::IOBuffer> buf,
       int buffer_length,
-      const net::CompletionCallback& callback,
+      net::CompletionOnceCallback callback,
       scoped_refptr<net::IOBufferWithSize> temporary_buffer,
       int64_t num_bytes_to_consume,
       int read_result);
diff --git a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_file_stream_reader.cc b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_file_stream_reader.cc
index a0a35a6..1fb4cef8 100644
--- a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_file_stream_reader.cc
+++ b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_file_stream_reader.cc
@@ -4,7 +4,10 @@
 
 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_file_stream_reader.h"
 
+#include <utility>
+
 #include "base/bind.h"
+#include "base/callback_helpers.h"
 #include "chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.h"
 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.h"
 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root_map.h"
@@ -75,32 +78,32 @@
 int ArcDocumentsProviderFileStreamReader::Read(
     net::IOBuffer* buffer,
     int buffer_length,
-    const net::CompletionCallback& callback) {
+    net::CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   if (!content_url_resolved_) {
-    pending_operations_.emplace_back(base::Bind(
+    pending_operations_.emplace_back(base::BindOnce(
         &ArcDocumentsProviderFileStreamReader::RunPendingRead,
         base::Unretained(this), base::Passed(base::WrapRefCounted(buffer)),
-        buffer_length, callback));
+        buffer_length, std::move(callback)));
     return net::ERR_IO_PENDING;
   }
   if (!underlying_reader_)
     return net::ERR_FILE_NOT_FOUND;
-  return underlying_reader_->Read(buffer, buffer_length, callback);
+  return underlying_reader_->Read(buffer, buffer_length, std::move(callback));
 }
 
 int64_t ArcDocumentsProviderFileStreamReader::GetLength(
-    const net::Int64CompletionCallback& callback) {
+    net::Int64CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   if (!content_url_resolved_) {
-    pending_operations_.emplace_back(
-        base::Bind(&ArcDocumentsProviderFileStreamReader::RunPendingGetLength,
-                   base::Unretained(this), callback));
+    pending_operations_.emplace_back(base::BindOnce(
+        &ArcDocumentsProviderFileStreamReader::RunPendingGetLength,
+        base::Unretained(this), std::move(callback)));
     return net::ERR_IO_PENDING;
   }
   if (!underlying_reader_)
     return net::ERR_FILE_NOT_FOUND;
-  return underlying_reader_->GetLength(callback);
+  return underlying_reader_->GetLength(std::move(callback));
 }
 
 void ArcDocumentsProviderFileStreamReader::OnResolveToContentUrl(
@@ -114,35 +117,44 @@
   }
   content_url_resolved_ = true;
 
-  std::vector<base::Closure> pending_operations;
+  std::vector<base::OnceClosure> pending_operations;
   pending_operations.swap(pending_operations_);
-  for (const base::Closure& callback : pending_operations) {
-    callback.Run();
+  for (base::OnceClosure& callback : pending_operations) {
+    std::move(callback).Run();
   }
 }
 
 void ArcDocumentsProviderFileStreamReader::RunPendingRead(
     scoped_refptr<net::IOBuffer> buffer,
     int buffer_length,
-    const net::CompletionCallback& callback) {
+    net::CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK(content_url_resolved_);
-  int result =
-      underlying_reader_
-          ? underlying_reader_->Read(buffer.get(), buffer_length, callback)
-          : net::ERR_FILE_NOT_FOUND;
+  // Create |copyable_callback| which is copyable, though it can still only
+  // called at most once.  This is safe, because Read() is guaranteed not to
+  // call |callback| if it returns synchronously.
+  auto copyable_callback = base::AdaptCallbackForRepeating(std::move(callback));
+  int result = underlying_reader_
+                   ? underlying_reader_->Read(buffer.get(), buffer_length,
+                                              copyable_callback)
+                   : net::ERR_FILE_NOT_FOUND;
   if (result != net::ERR_IO_PENDING)
-    callback.Run(result);
+    copyable_callback.Run(result);
 }
 
 void ArcDocumentsProviderFileStreamReader::RunPendingGetLength(
-    const net::Int64CompletionCallback& callback) {
+    net::Int64CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK(content_url_resolved_);
-  int64_t result = underlying_reader_ ? underlying_reader_->GetLength(callback)
-                                      : net::ERR_FILE_NOT_FOUND;
+  // Create |copyable_callback| which is copyable, though it can still only
+  // called at most once.  This is safe, because GetLength() is guaranteed not
+  // to call |callback| if it returns synchronously.
+  auto copyable_callback = base::AdaptCallbackForRepeating(std::move(callback));
+  int64_t result = underlying_reader_
+                       ? underlying_reader_->GetLength(copyable_callback)
+                       : net::ERR_FILE_NOT_FOUND;
   if (result != net::ERR_IO_PENDING)
-    callback.Run(result);
+    copyable_callback.Run(result);
 }
 
 }  // namespace arc
diff --git a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_file_stream_reader.h b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_file_stream_reader.h
index 34323db..44349db3 100644
--- a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_file_stream_reader.h
+++ b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_file_stream_reader.h
@@ -11,6 +11,7 @@
 #include "base/callback.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/fileapi/file_stream_reader.h"
 
 class GURL;
@@ -35,20 +36,20 @@
   // storage::FileStreamReader override:
   int Read(net::IOBuffer* buffer,
            int buffer_length,
-           const net::CompletionCallback& callback) override;
-  int64_t GetLength(const net::Int64CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
+  int64_t GetLength(net::Int64CompletionOnceCallback callback) override;
 
  private:
   void OnResolveToContentUrl(const GURL& content_url);
   void RunPendingRead(scoped_refptr<net::IOBuffer> buffer,
                       int buffer_length,
-                      const net::CompletionCallback& callback);
-  void RunPendingGetLength(const net::Int64CompletionCallback& callback);
+                      net::CompletionOnceCallback callback);
+  void RunPendingGetLength(net::Int64CompletionOnceCallback callback);
 
   const int64_t offset_;
   bool content_url_resolved_;
   std::unique_ptr<storage::FileStreamReader> underlying_reader_;
-  std::vector<base::Closure> pending_operations_;
+  std::vector<base::OnceClosure> pending_operations_;
 
   base::WeakPtrFactory<ArcDocumentsProviderFileStreamReader> weak_ptr_factory_;
 
diff --git a/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.cc b/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.cc
new file mode 100644
index 0000000..9cf286b1
--- /dev/null
+++ b/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.cc
@@ -0,0 +1,83 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h"
+
+#include "chrome/browser/chromeos/arc/pip/arc_pip_bridge.h"
+
+namespace arc {
+
+ArcPictureInPictureWindowControllerImpl::
+    ArcPictureInPictureWindowControllerImpl(arc::ArcPipBridge* arc_pip_bridge)
+    : arc_pip_bridge_(arc_pip_bridge) {}
+
+ArcPictureInPictureWindowControllerImpl::
+    ~ArcPictureInPictureWindowControllerImpl() {
+  Close(false);
+}
+
+gfx::Size ArcPictureInPictureWindowControllerImpl::Show() {
+  // Should be a no-op on ARC. This is managed on the Android side.
+  return gfx::Size();
+}
+
+void ArcPictureInPictureWindowControllerImpl::Close(bool should_pause_video) {
+  // TODO(edcourtney): Currently, |should_pause_video| will always be false
+  // here, but if that changes, we should pause the video on the Android side.
+  arc_pip_bridge_->ClosePip();
+}
+
+void ArcPictureInPictureWindowControllerImpl::OnWindowDestroyed() {
+  // Should be a no-op on ARC. This is managed on the Android side.
+}
+
+void ArcPictureInPictureWindowControllerImpl::ClickCustomControl(
+    const std::string& control_id) {
+  // Should be a no-op on ARC. This is managed on the Android side.
+}
+
+void ArcPictureInPictureWindowControllerImpl::SetPictureInPictureCustomControls(
+    const std::vector<blink::PictureInPictureControlInfo>& info) {
+  // Should be a no-op on ARC. This is managed on the Android side.
+}
+
+void ArcPictureInPictureWindowControllerImpl::EmbedSurface(
+    const viz::SurfaceId& surface_id,
+    const gfx::Size& natural_size) {
+  // Should be a no-op on ARC. This is managed on the Android side.
+}
+
+content::OverlayWindow*
+ArcPictureInPictureWindowControllerImpl::GetWindowForTesting() {
+  // Should be a no-op on ARC. This is managed on the Android side.
+  return nullptr;
+}
+
+void ArcPictureInPictureWindowControllerImpl::UpdateLayerBounds() {
+  // Should be a no-op on ARC. This is managed on the Android side.
+}
+
+bool ArcPictureInPictureWindowControllerImpl::IsPlayerActive() {
+  // Should be a no-op on ARC. This is managed on the Android side.
+  return false;
+}
+
+content::WebContents*
+ArcPictureInPictureWindowControllerImpl::GetInitiatorWebContents() {
+  // Should be a no-op on ARC. This is managed on the Android side.
+  return nullptr;
+}
+
+void ArcPictureInPictureWindowControllerImpl::UpdatePlaybackState(
+    bool is_playing,
+    bool reached_end_of_stream) {
+  // Should be a no-op on ARC. This is managed on the Android side.
+}
+
+bool ArcPictureInPictureWindowControllerImpl::TogglePlayPause() {
+  // Should be a no-op on ARC. This is managed on the Android side.
+  return false;
+}
+
+}  // namespace arc
diff --git a/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h b/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h
new file mode 100644
index 0000000..166ac2a8
--- /dev/null
+++ b/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h
@@ -0,0 +1,60 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_ARC_PIP_ARC_PICTURE_IN_PICTURE_WINDOW_CONTROLLER_IMPL_H_
+#define CHROME_BROWSER_CHROMEOS_ARC_PIP_ARC_PICTURE_IN_PICTURE_WINDOW_CONTROLLER_IMPL_H_
+
+#include <string>
+#include <vector>
+
+#include "base/macros.h"
+#include "content/public/browser/picture_in_picture_window_controller.h"
+#include "ui/gfx/geometry/size.h"
+
+namespace content {
+
+class WebContents;
+class OverlayWindow;
+
+}  // namespace content
+
+namespace arc {
+
+class ArcPipBridge;
+
+// Implementation of PictureInPictureWindowController for ARC. This does nothing
+// for most of the methods, as most of it is managed on the Android side.
+class ArcPictureInPictureWindowControllerImpl
+    : public content::PictureInPictureWindowController {
+ public:
+  explicit ArcPictureInPictureWindowControllerImpl(
+      arc::ArcPipBridge* arc_pip_bridge);
+  ~ArcPictureInPictureWindowControllerImpl() override;
+
+  // PictureInPictureWindowController:
+  gfx::Size Show() override;
+  void Close(bool should_pause_video) override;
+  void OnWindowDestroyed() override;
+  void ClickCustomControl(const std::string& control_id) override;
+  void SetPictureInPictureCustomControls(
+      const std::vector<blink::PictureInPictureControlInfo>& info) override;
+  void EmbedSurface(const viz::SurfaceId& surface_id,
+                    const gfx::Size& natural_size) override;
+  content::OverlayWindow* GetWindowForTesting() override;
+  void UpdateLayerBounds() override;
+  bool IsPlayerActive() override;
+  content::WebContents* GetInitiatorWebContents() override;
+  bool TogglePlayPause() override;
+  void UpdatePlaybackState(bool is_playing,
+                           bool reached_end_of_stream) override;
+
+ private:
+  arc::ArcPipBridge* const arc_pip_bridge_;
+
+  DISALLOW_COPY_AND_ASSIGN(ArcPictureInPictureWindowControllerImpl);
+};
+
+}  // namespace arc
+
+#endif  // CHROME_BROWSER_CHROMEOS_ARC_PIP_ARC_PICTURE_IN_PICTURE_WINDOW_CONTROLLER_IMPL_H_
diff --git a/chrome/browser/chromeos/arc/pip/arc_pip_bridge.cc b/chrome/browser/chromeos/arc/pip/arc_pip_bridge.cc
index 568415e..52c47d28 100644
--- a/chrome/browser/chromeos/arc/pip/arc_pip_bridge.cc
+++ b/chrome/browser/chromeos/arc/pip/arc_pip_bridge.cc
@@ -4,10 +4,16 @@
 
 #include "chrome/browser/chromeos/arc/pip/arc_pip_bridge.h"
 
+#include <utility>
+
+#include "base/auto_reset.h"
 #include "base/logging.h"
 #include "base/memory/singleton.h"
+#include "chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h"
+#include "chrome/browser/picture_in_picture/picture_in_picture_window_manager.h"
 #include "components/arc/arc_bridge_service.h"
 #include "components/arc/arc_browser_context_keyed_service_factory_base.h"
+#include "content/public/browser/picture_in_picture_window_controller.h"
 
 namespace arc {
 
@@ -65,12 +71,32 @@
 
 void ArcPipBridge::OnPipEvent(arc::mojom::ArcPipEvent event) {
   DVLOG(1) << "ArcPipBridge::OnPipEvent";
-  // TODO: Implement.
+
+  switch (event) {
+    case mojom::ArcPipEvent::ENTER: {
+      auto pip_window_controller =
+          std::make_unique<ArcPictureInPictureWindowControllerImpl>(this);
+      // Make sure not to close PIP if we are replacing an existing Android PIP.
+      base::AutoReset<bool> auto_prevent_closing_pip(&prevent_closing_pip_,
+                                                     true);
+      PictureInPictureWindowManager::GetInstance()
+          ->EnterPictureInPictureWithController(pip_window_controller.get());
+      pip_window_controller_ = std::move(pip_window_controller);
+      break;
+    }
+  }
 }
 
 void ArcPipBridge::ClosePip() {
   DVLOG(1) << "ArcPipBridge::ClosePip";
-  // TODO: Implement.
+
+  auto* instance =
+      ARC_GET_INSTANCE_FOR_METHOD(arc_bridge_service_->pip(), ClosePip);
+  if (!instance)
+    return;
+
+  if (!prevent_closing_pip_)
+    instance->ClosePip();
 }
 
 }  // namespace arc
diff --git a/chrome/browser/chromeos/arc/pip/arc_pip_bridge.h b/chrome/browser/chromeos/arc/pip/arc_pip_bridge.h
index ed51047..cc68439 100644
--- a/chrome/browser/chromeos/arc/pip/arc_pip_bridge.h
+++ b/chrome/browser/chromeos/arc/pip/arc_pip_bridge.h
@@ -5,17 +5,22 @@
 #ifndef CHROME_BROWSER_CHROMEOS_ARC_PIP_ARC_PIP_BRIDGE_H_
 #define CHROME_BROWSER_CHROMEOS_ARC_PIP_ARC_PIP_BRIDGE_H_
 
+#include <memory>
+
 #include "components/arc/common/pip.mojom.h"
 #include "components/arc/connection_observer.h"
 #include "components/keyed_service/core/keyed_service.h"
 
 namespace content {
+
 class BrowserContext;
+
 }  // namespace content
 
 namespace arc {
 
 class ArcBridgeService;
+class ArcPictureInPictureWindowControllerImpl;
 
 class ArcPipBridge : public KeyedService,
                      public ConnectionObserver<mojom::PipInstance>,
@@ -42,6 +47,10 @@
  private:
   ArcBridgeService* const arc_bridge_service_;
 
+  std::unique_ptr<ArcPictureInPictureWindowControllerImpl>
+      pip_window_controller_;
+  bool prevent_closing_pip_ = false;
+
   DISALLOW_COPY_AND_ASSIGN(ArcPipBridge);
 };
 
diff --git a/chrome/browser/chromeos/arc/pip/arc_pip_bridge_unittest.cc b/chrome/browser/chromeos/arc/pip/arc_pip_bridge_unittest.cc
new file mode 100644
index 0000000..170a672
--- /dev/null
+++ b/chrome/browser/chromeos/arc/pip/arc_pip_bridge_unittest.cc
@@ -0,0 +1,65 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h"
+
+#include "chrome/browser/chromeos/arc/pip/arc_pip_bridge.h"
+#include "chrome/test/base/testing_profile.h"
+#include "components/arc/arc_bridge_service.h"
+#include "components/arc/test/connection_holder_util.h"
+#include "components/arc/test/fake_pip_instance.h"
+#include "content/public/test/test_browser_thread_bundle.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace arc {
+
+class ArcPipBridgeTest : public testing::Test {
+ public:
+  ArcPipBridgeTest() = default;
+  ~ArcPipBridgeTest() override = default;
+
+  void SetUp() override {
+    arc_bridge_service_ = std::make_unique<ArcBridgeService>();
+    bridge_ = std::make_unique<ArcPipBridge>(&testing_profile_,
+                                             arc_bridge_service_.get());
+    pip_instance_ = std::make_unique<arc::FakePipInstance>();
+    arc_bridge_service_->pip()->SetInstance(pip_instance_.get());
+    WaitForInstanceReady(arc_bridge_service_->pip());
+  }
+
+  void TearDown() override {
+    arc_bridge_service_->pip()->CloseInstance(pip_instance_.get());
+    pip_instance_.reset();
+    bridge_.reset();
+    arc_bridge_service_.reset();
+  }
+
+  ArcPipBridge* bridge() { return bridge_.get(); }
+  FakePipInstance* pip_instance() { return pip_instance_.get(); }
+
+ private:
+  content::TestBrowserThreadBundle thread_bundle_;
+  TestingProfile testing_profile_;
+  std::unique_ptr<ArcBridgeService> arc_bridge_service_;
+  std::unique_ptr<ArcPipBridge> bridge_;
+  std::unique_ptr<FakePipInstance> pip_instance_;
+};
+
+TEST_F(ArcPipBridgeTest, ClosingPipTellsAndroidToClosePip) {
+  bridge()->ClosePip();
+  EXPECT_EQ(1, pip_instance()->num_closed());
+}
+
+// Test that when PictureInPictureWindowManager notices one Android PIP
+// is being replaced by another we don't erroneously send a close command
+// to Android.
+TEST_F(ArcPipBridgeTest, OpeningAndroidPipTwiceElidesCloseCall) {
+  bridge()->OnPipEvent(arc::mojom::ArcPipEvent::ENTER);
+  EXPECT_EQ(0, pip_instance()->num_closed());
+
+  bridge()->OnPipEvent(arc::mojom::ArcPipEvent::ENTER);
+  EXPECT_EQ(0, pip_instance()->num_closed());
+}
+
+}  // namespace arc
diff --git a/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc
index 3cfae84d..ea08451a 100644
--- a/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc
+++ b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc
@@ -16,6 +16,7 @@
 #include "chromeos/chromeos_switches.h"
 #include "components/arc/arc_prefs.h"
 #include "components/arc/arc_util.h"
+#include "components/language/core/browser/pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/notification_service.h"
 #include "content/public/browser/notification_source.h"
@@ -196,6 +197,11 @@
       base::BindRepeating(
           &VoiceInteractionControllerClient::NotifyNotificationEnabled,
           base::Unretained(this)));
+  pref_change_registrar_->Add(
+      language::prefs::kApplicationLocale,
+      base::BindRepeating(
+          &VoiceInteractionControllerClient::NotifyFeatureAllowed,
+          base::Unretained(this)));
 
   NotifySetupCompleted();
   NotifySettingsEnabled();
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
index 12be4285..3292df4 100644
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
@@ -45,12 +45,17 @@
 #include "chrome/browser/chromeos/arc/arc_service_launcher.h"
 #include "chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.h"
 #include "chrome/browser/chromeos/boot_times_recorder.h"
+#include "chrome/browser/chromeos/dbus/chrome_features_service_provider.h"
 #include "chrome/browser/chromeos/dbus/chrome_proxy_resolution_service_provider_delegate.h"
 #include "chrome/browser/chromeos/dbus/chrome_virtual_file_request_service_provider_delegate.h"
 #include "chrome/browser/chromeos/dbus/component_updater_service_provider.h"
+#include "chrome/browser/chromeos/dbus/drive_file_stream_service_provider.h"
 #include "chrome/browser/chromeos/dbus/finch_features_service_provider_delegate.h"
 #include "chrome/browser/chromeos/dbus/kiosk_info_service_provider.h"
+#include "chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h"
 #include "chrome/browser/chromeos/dbus/screen_lock_service_provider.h"
+#include "chrome/browser/chromeos/dbus/virtual_file_request_service_provider.h"
+#include "chrome/browser/chromeos/dbus/vm_applications_service_provider.h"
 #include "chrome/browser/chromeos/dbus/vm_applications_service_provider_delegate.h"
 #include "chrome/browser/chromeos/display/quirks_manager_delegate_impl.h"
 #include "chrome/browser/chromeos/events/event_rewriter_delegate_impl.h"
@@ -117,7 +122,6 @@
 #include "chromeos/cert_loader.h"
 #include "chromeos/chromeos_paths.h"
 #include "chromeos/chromeos_switches.h"
-#include "chromeos/components/drivefs/drive_file_stream_service_provider_delegate.h"
 #include "chromeos/components/drivefs/fake_drivefs_launcher_client.h"
 #include "chromeos/cryptohome/async_method_caller.h"
 #include "chromeos/cryptohome/cryptohome_parameters.h"
@@ -126,13 +130,7 @@
 #include "chromeos/dbus/cryptohome_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/power_policy_controller.h"
-#include "chromeos/dbus/services/chrome_features_service_provider.h"
 #include "chromeos/dbus/services/cros_dbus_service.h"
-#include "chromeos/dbus/services/drive_file_stream_service_provider.h"
-#include "chromeos/dbus/services/liveness_service_provider.h"
-#include "chromeos/dbus/services/proxy_resolution_service_provider.h"
-#include "chromeos/dbus/services/virtual_file_request_service_provider.h"
-#include "chromeos/dbus/services/vm_applications_service_provider.h"
 #include "chromeos/dbus/session_manager_client.h"
 #include "chromeos/dbus/util/version_loader.h"
 #include "chromeos/disks/disk_mount_manager.h"
@@ -324,7 +322,7 @@
         DBusThreadManager::Get()->GetSystemBus(),
         chromeos::DBusThreadManager::Get()->IsUsingFakes());
 
-    if (features::IsAshInBrowserProcess()) {
+    if (!features::IsMultiProcessMash()) {
       // In Mash, power policy is sent to powerd by ash.
       PowerPolicyController::Initialize(
           DBusThreadManager::Get()->GetPowerManagerClient());
@@ -342,11 +340,6 @@
         CrosDBusService::CreateServiceProviderList(
             std::make_unique<KioskInfoService>()));
 
-    liveness_service_ = CrosDBusService::Create(
-        kLivenessServiceName, dbus::ObjectPath(kLivenessServicePath),
-        CrosDBusService::CreateServiceProviderList(
-            std::make_unique<LivenessServiceProvider>()));
-
     screen_lock_service_ = CrosDBusService::Create(
         kScreenLockServiceName, dbus::ObjectPath(kScreenLockServicePath),
         CrosDBusService::CreateServiceProviderList(
@@ -385,9 +378,7 @@
         drivefs::kDriveFileStreamServiceName,
         dbus::ObjectPath(drivefs::kDriveFileStreamServicePath),
         CrosDBusService::CreateServiceProviderList(
-            std::make_unique<DriveFileStreamServiceProvider>(
-                std::make_unique<
-                    drivefs::DriveFileStreamServiceProviderDelegate>())));
+            std::make_unique<DriveFileStreamServiceProvider>()));
 
     // Initialize PowerDataCollector after DBusThreadManager is initialized.
     PowerDataCollector::Initialize();
@@ -426,7 +417,6 @@
     TPMTokenLoader::Shutdown();
     proxy_resolution_service_.reset();
     kiosk_info_service_.reset();
-    liveness_service_.reset();
     virtual_file_request_service_.reset();
     component_updater_service_.reset();
     finch_features_service_.reset();
@@ -434,7 +424,7 @@
     drive_file_stream_service_.reset();
     ProcessDataCollector::Shutdown();
     PowerDataCollector::Shutdown();
-    if (features::IsAshInBrowserProcess())
+    if (!features::IsMultiProcessMash())
       PowerPolicyController::Shutdown();
     device::BluetoothAdapterFactory::Shutdown();
     bluez::BluezDBusManager::Shutdown();
@@ -443,7 +433,6 @@
  private:
   std::unique_ptr<CrosDBusService> proxy_resolution_service_;
   std::unique_ptr<CrosDBusService> kiosk_info_service_;
-  std::unique_ptr<CrosDBusService> liveness_service_;
   std::unique_ptr<CrosDBusService> screen_lock_service_;
   std::unique_ptr<CrosDBusService> virtual_file_request_service_;
   std::unique_ptr<CrosDBusService> component_updater_service_;
@@ -763,13 +752,10 @@
 
   AccessibilityManager::Initialize();
 
-  if (features::IsAshInBrowserProcess()) {
+  if (!features::IsMultiProcessMash()) {
     // Initialize magnification manager before ash tray is created. And this
     // must be placed after UserManager::SessionStarted();
-    // TODO(sad): These components expects the ash::Shell instance to be
-    // created. However, when running as a mus-client, an ash::Shell instance is
-    // not created. These accessibility services should instead be exposed as
-    // separate services. crbug.com/557401
+    // TODO(crbug.com/821551): Mash support.
     MagnificationManager::Initialize();
   }
 
@@ -1038,7 +1024,7 @@
   spoken_feedback_event_rewriter_delegate_ =
       std::make_unique<SpokenFeedbackEventRewriterDelegate>();
 
-  if (features::IsAshInBrowserProcess()) {
+  if (!features::IsMultiProcessMash()) {
     // TODO(mash): Support EventRewriterController; see crbug.com/647781
     ash::EventRewriterController* event_rewriter_controller =
         ash::Shell::Get()->event_rewriter_controller();
@@ -1128,7 +1114,7 @@
   // Detach D-Bus clients before DBusThreadManager is shut down.
   idle_action_warning_observer_.reset();
 
-  if (features::IsAshInBrowserProcess())
+  if (!features::IsMultiProcessMash())
     MagnificationManager::Shutdown();
 
   media::SoundsManager::Shutdown();
@@ -1176,7 +1162,8 @@
   // ChromeBrowserMainPartsLinux::PostMainMessageLoopRun().
   arc_service_launcher_.reset();
 
-  if (features::IsAshInBrowserProcess())
+  // TODO(crbug.com/594887): Mash support.
+  if (!features::IsMultiProcessMash())
     AccessibilityManager::Shutdown();
 
   input_method::Shutdown();
diff --git a/chrome/browser/chromeos/crostini/crostini_pref_names.cc b/chrome/browser/chromeos/crostini/crostini_pref_names.cc
index 7f68836..e54ee06 100644
--- a/chrome/browser/chromeos/crostini/crostini_pref_names.cc
+++ b/chrome/browser/chromeos/crostini/crostini_pref_names.cc
@@ -12,9 +12,11 @@
 // A boolean preference representing whether a user has opted in to use
 // Crostini (Called "Linux Apps" in UI).
 const char kCrostiniEnabled[] = "crostini.enabled";
+const char kCrostiniRegistry[] = "crostini.registry";
 
 void RegisterProfilePrefs(PrefRegistrySimple* registry) {
-  registry->RegisterBooleanPref(prefs::kCrostiniEnabled, false);
+  registry->RegisterBooleanPref(kCrostiniEnabled, false);
+  registry->RegisterDictionaryPref(kCrostiniRegistry);
 }
 
 }  // namespace prefs
diff --git a/chrome/browser/chromeos/crostini/crostini_pref_names.h b/chrome/browser/chromeos/crostini/crostini_pref_names.h
index 5bec506..f6b1e03a 100644
--- a/chrome/browser/chromeos/crostini/crostini_pref_names.h
+++ b/chrome/browser/chromeos/crostini/crostini_pref_names.h
@@ -11,6 +11,7 @@
 namespace prefs {
 
 extern const char kCrostiniEnabled[];
+extern const char kCrostiniRegistry[];
 
 void RegisterProfilePrefs(PrefRegistrySimple* registry);
 
diff --git a/chrome/browser/chromeos/crostini/crostini_registry_service.cc b/chrome/browser/chromeos/crostini/crostini_registry_service.cc
index de66412..bcf3f9c 100644
--- a/chrome/browser/chromeos/crostini/crostini_registry_service.cc
+++ b/chrome/browser/chromeos/crostini/crostini_registry_service.cc
@@ -16,6 +16,7 @@
 #include "base/time/default_clock.h"
 #include "base/time/time.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/chromeos/crostini/crostini_pref_names.h"
 #include "chrome/browser/chromeos/crostini/crostini_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chromeos/dbus/vm_applications/apps.pb.h"
@@ -37,7 +38,6 @@
 // This comes after kCrostiniWindowAppIdPrefix
 constexpr char kWMClassPrefix[] = "wmclass.";
 
-constexpr char kCrostiniRegistryPref[] = "crostini.registry";
 constexpr char kCrostiniIconFolder[] = "crostini.icons";
 
 // Keys for the Dictionary stored in prefs for each app.
@@ -369,7 +369,7 @@
     const std::string* window_app_id,
     const std::string* window_startup_id) {
   const base::DictionaryValue* apps =
-      prefs_->GetDictionary(kCrostiniRegistryPref);
+      prefs_->GetDictionary(prefs::kCrostiniRegistry);
   std::string app_id;
 
   if (window_startup_id) {
@@ -443,13 +443,13 @@
   // TODO(timloh): We need to handle desktop files that have been removed.
   // For example, running windows with a no-longer-valid app id will try to
   // use the ExtensionContextMenuModel.
-  return prefs_->GetDictionary(kCrostiniRegistryPref)->FindKey(shelf_app_id) !=
-         nullptr;
+  return prefs_->GetDictionary(prefs::kCrostiniRegistry)
+             ->FindKey(shelf_app_id) != nullptr;
 }
 
 std::vector<std::string> CrostiniRegistryService::GetRegisteredAppIds() const {
   const base::DictionaryValue* apps =
-      prefs_->GetDictionary(kCrostiniRegistryPref);
+      prefs_->GetDictionary(prefs::kCrostiniRegistry);
   std::vector<std::string> result;
   for (const auto& item : apps->DictItems())
     result.push_back(item.first);
@@ -461,7 +461,7 @@
 base::Optional<CrostiniRegistryService::Registration>
 CrostiniRegistryService::GetRegistration(const std::string& app_id) const {
   const base::DictionaryValue* apps =
-      prefs_->GetDictionary(kCrostiniRegistryPref);
+      prefs_->GetDictionary(prefs::kCrostiniRegistry);
   const base::Value* pref_registration =
       apps->FindKeyOfType(app_id, base::Value::Type::DICTIONARY);
 
@@ -475,7 +475,7 @@
 
 void CrostiniRegistryService::RecordStartupMetrics() {
   const base::DictionaryValue* apps =
-      prefs_->GetDictionary(kCrostiniRegistryPref);
+      prefs_->GetDictionary(prefs::kCrostiniRegistry);
 
   if (!IsCrostiniEnabled(profile_))
     return;
@@ -556,7 +556,7 @@
   std::vector<std::string> removed_apps;
   // The DictionaryPrefUpdate should be destructed before calling the observer.
   {
-    DictionaryPrefUpdate update(prefs_, kCrostiniRegistryPref);
+    DictionaryPrefUpdate update(prefs_, prefs::kCrostiniRegistry);
     base::DictionaryValue* apps = update.Get();
 
     for (const auto& item : apps->DictItems()) {
@@ -603,7 +603,7 @@
 
   // The DictionaryPrefUpdate should be destructed before calling the observer.
   {
-    DictionaryPrefUpdate update(prefs_, kCrostiniRegistryPref);
+    DictionaryPrefUpdate update(prefs_, prefs::kCrostiniRegistry);
     base::DictionaryValue* apps = update.Get();
     for (const App& app : app_list.apps()) {
       if (app.desktop_file_id().empty()) {
@@ -723,7 +723,7 @@
 }
 
 void CrostiniRegistryService::AppLaunched(const std::string& app_id) {
-  DictionaryPrefUpdate update(prefs_, kCrostiniRegistryPref);
+  DictionaryPrefUpdate update(prefs_, prefs::kCrostiniRegistry);
   base::DictionaryValue* apps = update.Get();
 
   base::Value* app = apps->FindKey(app_id);
@@ -745,12 +745,6 @@
   dictionary->SetKey(key, base::Value(base::Int64ToString(time)));
 }
 
-// static
-void CrostiniRegistryService::RegisterProfilePrefs(
-    PrefRegistrySimple* registry) {
-  registry->RegisterDictionaryPref(kCrostiniRegistryPref);
-}
-
 void CrostiniRegistryService::RequestIcon(const std::string& app_id,
                                           ui::ScaleFactor scale_factor) {
   // Ignore requests for app_id that isn't registered.
diff --git a/chrome/browser/chromeos/crostini/crostini_registry_service.h b/chrome/browser/chromeos/crostini/crostini_registry_service.h
index 1a1473b..d77fbdf 100644
--- a/chrome/browser/chromeos/crostini/crostini_registry_service.h
+++ b/chrome/browser/chromeos/crostini/crostini_registry_service.h
@@ -19,7 +19,6 @@
 #include "ui/base/resource/scale_factor.h"
 
 class Profile;
-class PrefRegistrySimple;
 class PrefService;
 
 namespace base {
@@ -175,8 +174,6 @@
 
   void SetClockForTesting(base::Clock* clock) { clock_ = clock; }
 
-  static void RegisterProfilePrefs(PrefRegistrySimple* registry);
-
  private:
   // Run start up tasks for the registry (e.g. recording metrics).
   void RecordStartupMetrics();
diff --git a/chromeos/dbus/services/chrome_features_service_provider.cc b/chrome/browser/chromeos/dbus/chrome_features_service_provider.cc
similarity index 97%
rename from chromeos/dbus/services/chrome_features_service_provider.cc
rename to chrome/browser/chromeos/dbus/chrome_features_service_provider.cc
index 4cd0d1f..d17515f 100644
--- a/chromeos/dbus/services/chrome_features_service_provider.cc
+++ b/chrome/browser/chromeos/dbus/chrome_features_service_provider.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 "chromeos/dbus/services/chrome_features_service_provider.h"
+#include "chrome/browser/chromeos/dbus/chrome_features_service_provider.h"
 
 #include <utility>
 
diff --git a/chromeos/dbus/services/chrome_features_service_provider.h b/chrome/browser/chromeos/dbus/chrome_features_service_provider.h
similarity index 89%
rename from chromeos/dbus/services/chrome_features_service_provider.h
rename to chrome/browser/chromeos/dbus/chrome_features_service_provider.h
index d668064..c1d593bb 100644
--- a/chromeos/dbus/services/chrome_features_service_provider.h
+++ b/chrome/browser/chromeos/dbus/chrome_features_service_provider.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 CHROMEOS_DBUS_SERVICES_CHROME_FEATURES_SERVICE_PROVIDER_H_
-#define CHROMEOS_DBUS_SERVICES_CHROME_FEATURES_SERVICE_PROVIDER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_DBUS_CHROME_FEATURES_SERVICE_PROVIDER_H_
+#define CHROME_BROWSER_CHROMEOS_DBUS_CHROME_FEATURES_SERVICE_PROVIDER_H_
 
 #include <memory>
 
@@ -11,7 +11,6 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "chromeos/chromeos_export.h"
 #include "chromeos/dbus/services/cros_dbus_service.h"
 #include "dbus/exported_object.h"
 
@@ -30,7 +29,7 @@
 //     org.chromium.ChromeFeaturesServiceInterface.IsCrostiniEnabled
 //
 // % (returns true if Crostini is enabled, otherwise returns false)
-class CHROMEOS_EXPORT ChromeFeaturesServiceProvider
+class ChromeFeaturesServiceProvider
     : public CrosDBusService::ServiceProviderInterface {
  public:
   // Delegate interface providing additional resources to
@@ -80,4 +79,4 @@
 
 }  // namespace chromeos
 
-#endif  // CHROMEOS_DBUS_SERVICES_CHROME_FEATURES_SERVICE_PROVIDER_H_
+#endif  // CHROME_BROWSER_CHROMEOS_DBUS_CHROME_FEATURES_SERVICE_PROVIDER_H_
diff --git a/chrome/browser/chromeos/dbus/chrome_proxy_resolution_service_provider_delegate.h b/chrome/browser/chromeos/dbus/chrome_proxy_resolution_service_provider_delegate.h
index 6c298bf9..79f330b 100644
--- a/chrome/browser/chromeos/dbus/chrome_proxy_resolution_service_provider_delegate.h
+++ b/chrome/browser/chromeos/dbus/chrome_proxy_resolution_service_provider_delegate.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_CHROMEOS_DBUS_CHROME_PROXY_RESOLUTION_SERVICE_PROVIDER_DELEGATE_H_
 
 #include "base/macros.h"
-#include "chromeos/dbus/services/proxy_resolution_service_provider.h"
+#include "chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h"
 
 namespace chromeos {
 
diff --git a/chrome/browser/chromeos/dbus/chrome_virtual_file_request_service_provider_delegate.h b/chrome/browser/chromeos/dbus/chrome_virtual_file_request_service_provider_delegate.h
index 50bd14a..d00f428 100644
--- a/chrome/browser/chromeos/dbus/chrome_virtual_file_request_service_provider_delegate.h
+++ b/chrome/browser/chromeos/dbus/chrome_virtual_file_request_service_provider_delegate.h
@@ -11,7 +11,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "chromeos/dbus/services/virtual_file_request_service_provider.h"
+#include "chrome/browser/chromeos/dbus/virtual_file_request_service_provider.h"
 
 namespace chromeos {
 
diff --git a/chrome/browser/chromeos/dbus/component_updater_service_provider.h b/chrome/browser/chromeos/dbus/component_updater_service_provider.h
index 2a30341..6599914 100644
--- a/chrome/browser/chromeos/dbus/component_updater_service_provider.h
+++ b/chrome/browser/chromeos/dbus/component_updater_service_provider.h
@@ -14,7 +14,6 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "chrome/browser/component_updater/cros_component_installer_chromeos.h"
-#include "chromeos/chromeos_export.h"
 #include "chromeos/dbus/services/cros_dbus_service.h"
 #include "dbus/exported_object.h"
 
@@ -43,7 +42,7 @@
 //     "string:|component name|"
 //
 // % (returns empty response on success and error response on failure)
-class CHROMEOS_EXPORT ComponentUpdaterServiceProvider
+class ComponentUpdaterServiceProvider
     : public CrosDBusService::ServiceProviderInterface,
       public component_updater::CrOSComponentManager::Delegate {
  public:
diff --git a/chromeos/dbus/services/drive_file_stream_service_provider.cc b/chrome/browser/chromeos/dbus/drive_file_stream_service_provider.cc
similarity index 82%
rename from chromeos/dbus/services/drive_file_stream_service_provider.cc
rename to chrome/browser/chromeos/dbus/drive_file_stream_service_provider.cc
index 038134aa..7a2f877f 100644
--- a/chromeos/dbus/services/drive_file_stream_service_provider.cc
+++ b/chrome/browser/chromeos/dbus/drive_file_stream_service_provider.cc
@@ -2,19 +2,19 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromeos/dbus/services/drive_file_stream_service_provider.h"
+#include "chrome/browser/chromeos/dbus/drive_file_stream_service_provider.h"
 
 #include <utility>
 
 #include "base/bind.h"
+#include "chromeos/components/drivefs/pending_connection_manager.h"
 #include "dbus/message.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 
 namespace chromeos {
 
-DriveFileStreamServiceProvider::DriveFileStreamServiceProvider(
-    std::unique_ptr<Delegate> delegate)
-    : delegate_(std::move(delegate)), weak_ptr_factory_(this) {}
+DriveFileStreamServiceProvider::DriveFileStreamServiceProvider()
+    : weak_ptr_factory_(this) {}
 
 DriveFileStreamServiceProvider::~DriveFileStreamServiceProvider() = default;
 
@@ -48,7 +48,8 @@
         method_call, DBUS_ERROR_INVALID_ARGS, "Second argument is not FD."));
     return;
   }
-  if (!delegate_->OpenIpcChannel(id, std::move(fd))) {
+  if (!drivefs::PendingConnectionManager::Get().OpenIpcChannel(id,
+                                                               std::move(fd))) {
     response_sender.Run(dbus::ErrorResponse::FromMethodCall(
         method_call, DBUS_ERROR_FAILED, "Failed to open IPC"));
     return;
diff --git a/chromeos/dbus/services/drive_file_stream_service_provider.h b/chrome/browser/chromeos/dbus/drive_file_stream_service_provider.h
similarity index 67%
rename from chromeos/dbus/services/drive_file_stream_service_provider.h
rename to chrome/browser/chromeos/dbus/drive_file_stream_service_provider.h
index fc622bd..c8310dff 100644
--- a/chromeos/dbus/services/drive_file_stream_service_provider.h
+++ b/chrome/browser/chromeos/dbus/drive_file_stream_service_provider.h
@@ -2,12 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMEOS_DBUS_SERVICES_DRIVE_FILE_STREAM_SERVICE_PROVIDER_H_
-#define CHROMEOS_DBUS_SERVICES_DRIVE_FILE_STREAM_SERVICE_PROVIDER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_DBUS_DRIVE_FILE_STREAM_SERVICE_PROVIDER_H_
+#define CHROME_BROWSER_CHROMEOS_DBUS_DRIVE_FILE_STREAM_SERVICE_PROVIDER_H_
 
 #include <stdint.h>
 
-#include <memory>
 #include <string>
 
 #include "base/compiler_specific.h"
@@ -15,7 +14,6 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "chromeos/chromeos_export.h"
 #include "chromeos/dbus/services/cros_dbus_service.h"
 #include "dbus/exported_object.h"
 
@@ -30,20 +28,10 @@
 // cloud storage support for ChromeOS. It allows establishing IPC between
 // system service and the browser delegating auth and UI interactions
 // to the browser.
-class CHROMEOS_EXPORT DriveFileStreamServiceProvider
+class DriveFileStreamServiceProvider
     : public CrosDBusService::ServiceProviderInterface {
  public:
-  class Delegate {
-   public:
-    virtual ~Delegate() {}
-
-    // Establishes direct IPC link between the instance of
-    // DriveFileStreamService and Chrome.
-    virtual bool OpenIpcChannel(const std::string& identity,
-                                base::ScopedFD ipc_channel) = 0;
-  };
-
-  explicit DriveFileStreamServiceProvider(std::unique_ptr<Delegate> delegate);
+  DriveFileStreamServiceProvider();
   ~DriveFileStreamServiceProvider() override;
 
   // CrosDBusService::ServiceProviderInterface overrides:
@@ -55,8 +43,6 @@
       dbus::MethodCall* method_call,
       dbus::ExportedObject::ResponseSender response_sender);
 
-  const std::unique_ptr<Delegate> delegate_;
-
   // Keep this last so that all weak pointers will be invalidated at the
   // beginning of destruction.
   base::WeakPtrFactory<DriveFileStreamServiceProvider> weak_ptr_factory_;
@@ -66,4 +52,4 @@
 
 }  // namespace chromeos
 
-#endif  // CHROMEOS_DBUS_SERVICES_DRIVE_FILE_STREAM_SERVICE_PROVIDER_H_
+#endif  // CHROME_BROWSER_CHROMEOS_DBUS_DRIVE_FILE_STREAM_SERVICE_PROVIDER_H_
diff --git a/chrome/browser/chromeos/dbus/finch_features_service_provider_delegate.h b/chrome/browser/chromeos/dbus/finch_features_service_provider_delegate.h
index 99315ae29..bc56bc9 100644
--- a/chrome/browser/chromeos/dbus/finch_features_service_provider_delegate.h
+++ b/chrome/browser/chromeos/dbus/finch_features_service_provider_delegate.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_CHROMEOS_DBUS_FINCH_FEATURES_SERVICE_PROVIDER_DELEGATE_H_
 
 #include "base/macros.h"
-#include "chromeos/dbus/services/chrome_features_service_provider.h"
+#include "chrome/browser/chromeos/dbus/chrome_features_service_provider.h"
 
 namespace chromeos {
 
diff --git a/chrome/browser/chromeos/dbus/kiosk_info_service_provider.h b/chrome/browser/chromeos/dbus/kiosk_info_service_provider.h
index 61c4385..372b41c 100644
--- a/chrome/browser/chromeos/dbus/kiosk_info_service_provider.h
+++ b/chrome/browser/chromeos/dbus/kiosk_info_service_provider.h
@@ -21,7 +21,6 @@
 // update_engine calls to get the required platform version of the
 // kiosk app that is configured to auto launch.
 // See http://crbug.com/577783 for details.
-//
 class KioskInfoService : public CrosDBusService::ServiceProviderInterface {
  public:
   KioskInfoService();
diff --git a/chromeos/dbus/services/org.chromium.ChromeFeaturesService.conf b/chrome/browser/chromeos/dbus/org.chromium.ChromeFeaturesService.conf
similarity index 100%
rename from chromeos/dbus/services/org.chromium.ChromeFeaturesService.conf
rename to chrome/browser/chromeos/dbus/org.chromium.ChromeFeaturesService.conf
diff --git a/chromeos/dbus/services/org.chromium.DriveFileStreamService.conf b/chrome/browser/chromeos/dbus/org.chromium.DriveFileStreamService.conf
similarity index 100%
rename from chromeos/dbus/services/org.chromium.DriveFileStreamService.conf
rename to chrome/browser/chromeos/dbus/org.chromium.DriveFileStreamService.conf
diff --git a/chromeos/dbus/services/org.chromium.KioskAppService.conf b/chrome/browser/chromeos/dbus/org.chromium.KioskAppService.conf
similarity index 100%
rename from chromeos/dbus/services/org.chromium.KioskAppService.conf
rename to chrome/browser/chromeos/dbus/org.chromium.KioskAppService.conf
diff --git a/chromeos/dbus/services/org.chromium.NetworkProxyService.conf b/chrome/browser/chromeos/dbus/org.chromium.NetworkProxyService.conf
similarity index 100%
rename from chromeos/dbus/services/org.chromium.NetworkProxyService.conf
rename to chrome/browser/chromeos/dbus/org.chromium.NetworkProxyService.conf
diff --git a/chromeos/dbus/services/org.chromium.VirtualFileRequestService.conf b/chrome/browser/chromeos/dbus/org.chromium.VirtualFileRequestService.conf
similarity index 100%
rename from chromeos/dbus/services/org.chromium.VirtualFileRequestService.conf
rename to chrome/browser/chromeos/dbus/org.chromium.VirtualFileRequestService.conf
diff --git a/chromeos/dbus/services/org.chromium.VmApplicationsService.conf b/chrome/browser/chromeos/dbus/org.chromium.VmApplicationsService.conf
similarity index 100%
rename from chromeos/dbus/services/org.chromium.VmApplicationsService.conf
rename to chrome/browser/chromeos/dbus/org.chromium.VmApplicationsService.conf
diff --git a/chromeos/dbus/services/proxy_resolution_service_provider.cc b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc
similarity index 97%
rename from chromeos/dbus/services/proxy_resolution_service_provider.cc
rename to chrome/browser/chromeos/dbus/proxy_resolution_service_provider.cc
index 0b96b55..a8c6dbe 100644
--- a/chromeos/dbus/services/proxy_resolution_service_provider.cc
+++ b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.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 "chromeos/dbus/services/proxy_resolution_service_provider.h"
+#include "chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h"
 
 #include <memory>
 #include <utility>
@@ -146,7 +146,8 @@
              ->BelongsToCurrentThread());
 
   net::ProxyResolutionService* proxy_resolution_service =
-      request->context_getter->GetURLRequestContext()->proxy_resolution_service();
+      request->context_getter->GetURLRequestContext()
+          ->proxy_resolution_service();
   if (!proxy_resolution_service) {
     request->error = "No proxy service in chrome";
     OnResolutionComplete(std::move(request), notify_thread, notify_callback,
diff --git a/chromeos/dbus/services/proxy_resolution_service_provider.h b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h
similarity index 92%
rename from chromeos/dbus/services/proxy_resolution_service_provider.h
rename to chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h
index 365cdeaa..92ea2fb 100644
--- a/chromeos/dbus/services/proxy_resolution_service_provider.h
+++ b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.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 CHROMEOS_DBUS_SERVICES_PROXY_RESOLUTION_SERVICE_PROVIDER_H_
-#define CHROMEOS_DBUS_SERVICES_PROXY_RESOLUTION_SERVICE_PROVIDER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_DBUS_PROXY_RESOLUTION_SERVICE_PROVIDER_H_
+#define CHROME_BROWSER_CHROMEOS_DBUS_PROXY_RESOLUTION_SERVICE_PROVIDER_H_
 
 #include <memory>
 #include <string>
@@ -11,7 +11,6 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "chromeos/chromeos_export.h"
 #include "chromeos/dbus/services/cros_dbus_service.h"
 #include "dbus/exported_object.h"
 #include "net/base/completion_callback.h"
@@ -54,11 +53,12 @@
 //       org.chromium.NetworkProxyServiceInterface.ResolveProxy
 //       string:https://www.google.com/
 //
-class CHROMEOS_EXPORT ProxyResolutionServiceProvider
+class ProxyResolutionServiceProvider
     : public CrosDBusService::ServiceProviderInterface {
  public:
   // Delegate interface providing additional resources to
   // ProxyResolutionServiceProvider.
+  // TODO(derat): Move the delegate into this class.
   class CHROMEOS_EXPORT Delegate {
    public:
     virtual ~Delegate() {}
@@ -128,4 +128,4 @@
 
 }  // namespace chromeos
 
-#endif  // CHROMEOS_DBUS_SERVICES_PROXY_RESOLUTION_SERVICE_PROVIDER_H_
+#endif  // CHROME_BROWSER_CHROMEOS_DBUS_PROXY_RESOLUTION_SERVICE_PROVIDER_H_
diff --git a/chromeos/dbus/services/proxy_resolution_service_provider_unittest.cc b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider_unittest.cc
similarity index 98%
rename from chromeos/dbus/services/proxy_resolution_service_provider_unittest.cc
rename to chrome/browser/chromeos/dbus/proxy_resolution_service_provider_unittest.cc
index 3de36e03..aaa5884 100644
--- a/chromeos/dbus/services/proxy_resolution_service_provider_unittest.cc
+++ b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider_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 "chromeos/dbus/services/proxy_resolution_service_provider.h"
+#include "chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h"
 
 #include <memory>
 
@@ -147,7 +147,8 @@
 
  private:
   // Helper method for the constructor that initializes
-  // |proxy_resolution_service_| and injects it into |context_getter_|'s context.
+  // |proxy_resolution_service_| and injects it into |context_getter_|'s
+  // context.
   void CreateProxyResolutionServiceOnNetworkThread() {
     CHECK(context_getter_->GetNetworkTaskRunner()->BelongsToCurrentThread());
 
diff --git a/chromeos/dbus/services/virtual_file_request_service_provider.cc b/chrome/browser/chromeos/dbus/virtual_file_request_service_provider.cc
similarity index 97%
rename from chromeos/dbus/services/virtual_file_request_service_provider.cc
rename to chrome/browser/chromeos/dbus/virtual_file_request_service_provider.cc
index a4dec160..39b76e0 100644
--- a/chromeos/dbus/services/virtual_file_request_service_provider.cc
+++ b/chrome/browser/chromeos/dbus/virtual_file_request_service_provider.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 "chromeos/dbus/services/virtual_file_request_service_provider.h"
+#include "chrome/browser/chromeos/dbus/virtual_file_request_service_provider.h"
 
 #include <utility>
 
diff --git a/chromeos/dbus/services/virtual_file_request_service_provider.h b/chrome/browser/chromeos/dbus/virtual_file_request_service_provider.h
similarity index 86%
rename from chromeos/dbus/services/virtual_file_request_service_provider.h
rename to chrome/browser/chromeos/dbus/virtual_file_request_service_provider.h
index b3341f7..b589fc05 100644
--- a/chromeos/dbus/services/virtual_file_request_service_provider.h
+++ b/chrome/browser/chromeos/dbus/virtual_file_request_service_provider.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 CHROMEOS_DBUS_SERVICES_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_H_
-#define CHROMEOS_DBUS_SERVICES_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_DBUS_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_H_
+#define CHROME_BROWSER_CHROMEOS_DBUS_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_H_
 
 #include <stdint.h>
 
@@ -15,7 +15,6 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "chromeos/chromeos_export.h"
 #include "chromeos/dbus/services/cros_dbus_service.h"
 #include "dbus/exported_object.h"
 
@@ -27,9 +26,10 @@
 
 // VirtualFileRequestServiceProvider exposes D-Bus methods which will be
 // called by the VirtualFileProvider service.
-class CHROMEOS_EXPORT VirtualFileRequestServiceProvider
+class VirtualFileRequestServiceProvider
     : public CrosDBusService::ServiceProviderInterface {
  public:
+  // TODO(derat): Move the delegate into this class.
   class Delegate {
    public:
     virtual ~Delegate() {}
@@ -69,4 +69,4 @@
 
 }  // namespace chromeos
 
-#endif  // CHROMEOS_DBUS_SERVICES_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_H_
+#endif  // CHROME_BROWSER_CHROMEOS_DBUS_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_H_
diff --git a/chromeos/dbus/services/vm_applications_service_provider.cc b/chrome/browser/chromeos/dbus/vm_applications_service_provider.cc
similarity index 97%
rename from chromeos/dbus/services/vm_applications_service_provider.cc
rename to chrome/browser/chromeos/dbus/vm_applications_service_provider.cc
index cc8d5893..d0b4d22 100644
--- a/chromeos/dbus/services/vm_applications_service_provider.cc
+++ b/chrome/browser/chromeos/dbus/vm_applications_service_provider.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 "chromeos/dbus/services/vm_applications_service_provider.h"
+#include "chrome/browser/chromeos/dbus/vm_applications_service_provider.h"
 
 #include "base/bind.h"
 #include "chromeos/dbus/vm_applications/apps.pb.h"
diff --git a/chromeos/dbus/services/vm_applications_service_provider.h b/chrome/browser/chromeos/dbus/vm_applications_service_provider.h
similarity index 87%
rename from chromeos/dbus/services/vm_applications_service_provider.h
rename to chrome/browser/chromeos/dbus/vm_applications_service_provider.h
index 88c7db8..08cb42b 100644
--- a/chromeos/dbus/services/vm_applications_service_provider.h
+++ b/chrome/browser/chromeos/dbus/vm_applications_service_provider.h
@@ -2,15 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMEOS_DBUS_SERVICES_VM_APPLICATIONS_SERVICE_PROVIDER_H_
-#define CHROMEOS_DBUS_SERVICES_VM_APPLICATIONS_SERVICE_PROVIDER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_DBUS_VM_APPLICATIONS_SERVICE_PROVIDER_H_
+#define CHROME_BROWSER_CHROMEOS_DBUS_VM_APPLICATIONS_SERVICE_PROVIDER_H_
 
 #include <memory>
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "chromeos/chromeos_export.h"
 #include "chromeos/dbus/services/cros_dbus_service.h"
 #include "dbus/exported_object.h"
 
@@ -29,11 +28,12 @@
 
 // This class exports D-Bus methods for functions that we want to be available
 // to the Crostini container.
-class CHROMEOS_EXPORT VmApplicationsServiceProvider
+class VmApplicationsServiceProvider
     : public CrosDBusService::ServiceProviderInterface {
  public:
   // Delegate interface providing additional resources to
   // VmApplicationsServiceProvider.
+  // TODO(derat): Move the delegate into this class.
   class Delegate {
    public:
     Delegate() = default;
@@ -77,4 +77,4 @@
 
 }  // namespace chromeos
 
-#endif  // CHROMEOS_DBUS_SERVICES_VM_APPLICATIONS_SERVICE_PROVIDER_H_
+#endif  // CHROME_BROWSER_CHROMEOS_DBUS_VM_APPLICATIONS_SERVICE_PROVIDER_H_
diff --git a/chrome/browser/chromeos/dbus/vm_applications_service_provider_delegate.h b/chrome/browser/chromeos/dbus/vm_applications_service_provider_delegate.h
index 3ef641e..e40546d 100644
--- a/chrome/browser/chromeos/dbus/vm_applications_service_provider_delegate.h
+++ b/chrome/browser/chromeos/dbus/vm_applications_service_provider_delegate.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_CHROMEOS_DBUS_VM_APPLICATIONS_SERVICE_PROVIDER_DELEGATE_H_
 
 #include "base/macros.h"
-#include "chromeos/dbus/services/vm_applications_service_provider.h"
+#include "chrome/browser/chromeos/dbus/vm_applications_service_provider.h"
 
 namespace chromeos {
 
diff --git a/chrome/browser/chromeos/drive/drive_file_stream_reader.cc b/chrome/browser/chromeos/drive/drive_file_stream_reader.cc
index 0b4c3ca1..1413c4d 100644
--- a/chrome/browser/chromeos/drive/drive_file_stream_reader.cc
+++ b/chrome/browser/chromeos/drive/drive_file_stream_reader.cc
@@ -109,8 +109,9 @@
 
 LocalReaderProxy::~LocalReaderProxy() = default;
 
-int LocalReaderProxy::Read(net::IOBuffer* buffer, int buffer_length,
-                           const net::CompletionCallback& callback) {
+int LocalReaderProxy::Read(net::IOBuffer* buffer,
+                           int buffer_length,
+                           net::CompletionOnceCallback callback) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(file_reader_);
 
@@ -122,9 +123,10 @@
   if (!buffer_length)
     return 0;
 
-  file_reader_->Read(buffer, buffer_length,
-                     base::Bind(&LocalReaderProxy::OnReadCompleted,
-                                weak_ptr_factory_.GetWeakPtr(), callback));
+  file_reader_->Read(
+      buffer, buffer_length,
+      base::BindOnce(&LocalReaderProxy::OnReadCompleted,
+                     weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   return net::ERR_IO_PENDING;
 }
 
@@ -139,7 +141,7 @@
   DCHECK_EQ(FILE_ERROR_OK, error);
 }
 
-void LocalReaderProxy::OnReadCompleted(const net::CompletionCallback& callback,
+void LocalReaderProxy::OnReadCompleted(net::CompletionOnceCallback callback,
                                        int read_result) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(file_reader_);
@@ -152,7 +154,7 @@
     // An error occurs. Close the |file_reader_|.
     file_reader_.reset();
   }
-  callback.Run(read_result);
+  std::move(callback).Run(read_result);
 }
 
 NetworkReaderProxy::NetworkReaderProxy(int64_t offset,
@@ -172,8 +174,9 @@
   }
 }
 
-int NetworkReaderProxy::Read(net::IOBuffer* buffer, int buffer_length,
-                             const net::CompletionCallback& callback) {
+int NetworkReaderProxy::Read(net::IOBuffer* buffer,
+                             int buffer_length,
+                             net::CompletionOnceCallback callback) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   // Check if there is no pending Read operation.
   DCHECK(!buffer_.get());
@@ -203,7 +206,7 @@
     // No data is available. Keep the arguments, and return pending status.
     buffer_ = buffer;
     buffer_length_ = buffer_length;
-    callback_ = callback;
+    callback_ = std::move(callback);
     return net::ERR_IO_PENDING;
   }
 
@@ -348,34 +351,32 @@
 void DriveFileStreamReader::Initialize(
     const base::FilePath& drive_file_path,
     const net::HttpByteRange& byte_range,
-    const InitializeCompletionCallback& callback) {
+    InitializeCompletionOnceCallback callback) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(callback);
 
+  init_callback_ = std::move(callback);
   GetFileContent(
-      file_system_getter_,
-      drive_file_path,
-      base::Bind(&DriveFileStreamReader
-                     ::InitializeAfterGetFileContentInitialized,
-                 weak_ptr_factory_.GetWeakPtr(),
-                 byte_range,
-                 callback),
+      file_system_getter_, drive_file_path,
+      base::Bind(
+          &DriveFileStreamReader ::InitializeAfterGetFileContentInitialized,
+          weak_ptr_factory_.GetWeakPtr(), byte_range),
       base::Bind(&DriveFileStreamReader::OnGetContent,
                  weak_ptr_factory_.GetWeakPtr()),
       base::Bind(&DriveFileStreamReader::OnGetFileContentCompletion,
-                 weak_ptr_factory_.GetWeakPtr(),
-                 callback),
+                 weak_ptr_factory_.GetWeakPtr()),
       base::Bind(&DriveFileStreamReader::StoreCancelDownloadClosure,
                  weak_ptr_factory_.GetWeakPtr()));
 }
 
-int DriveFileStreamReader::Read(net::IOBuffer* buffer, int buffer_length,
-                                const net::CompletionCallback& callback) {
+int DriveFileStreamReader::Read(net::IOBuffer* buffer,
+                                int buffer_length,
+                                net::CompletionOnceCallback callback) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(reader_proxy_);
   DCHECK(buffer);
   DCHECK(callback);
-  return reader_proxy_->Read(buffer, buffer_length, callback);
+  return reader_proxy_->Read(buffer, buffer_length, std::move(callback));
 }
 
 void DriveFileStreamReader::StoreCancelDownloadClosure(
@@ -386,7 +387,6 @@
 
 void DriveFileStreamReader::InitializeAfterGetFileContentInitialized(
     const net::HttpByteRange& byte_range,
-    const InitializeCompletionCallback& callback,
     FileError error,
     const base::FilePath& local_cache_file_path,
     std::unique_ptr<ResourceEntry> entry) {
@@ -395,7 +395,8 @@
   DCHECK(!cancel_download_closure_.is_null());
 
   if (error != FILE_ERROR_OK) {
-    callback.Run(FileErrorToNetError(error), std::unique_ptr<ResourceEntry>());
+    std::move(init_callback_)
+        .Run(FileErrorToNetError(error), std::unique_ptr<ResourceEntry>());
     return;
   }
   DCHECK(entry);
@@ -409,8 +410,9 @@
     // receive unwanted callbacks.
     cancel_download_closure_.Run();
     weak_ptr_factory_.InvalidateWeakPtrs();
-    callback.Run(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE,
-                 std::unique_ptr<ResourceEntry>());
+    std::move(init_callback_)
+        .Run(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE,
+             std::unique_ptr<ResourceEntry>());
     return;
   }
 
@@ -419,7 +421,7 @@
     reader_proxy_ = std::make_unique<internal::NetworkReaderProxy>(
         range_start, range_length, entry->file_info().size(),
         cancel_download_closure_);
-    callback.Run(net::OK, std::move(entry));
+    std::move(init_callback_).Run(net::OK, std::move(entry));
     return;
   }
 
@@ -434,27 +436,26 @@
           &DriveFileStreamReader::InitializeAfterLocalFileOpen,
           weak_ptr_factory_.GetWeakPtr(),
           range_length,
-          callback,
           base::Passed(&entry),
           base::Passed(&file_reader)));
 }
 
 void DriveFileStreamReader::InitializeAfterLocalFileOpen(
     int64_t length,
-    const InitializeCompletionCallback& callback,
     std::unique_ptr<ResourceEntry> entry,
     std::unique_ptr<util::LocalFileReader> file_reader,
     int open_result) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
   if (open_result != net::OK) {
-    callback.Run(net::ERR_FAILED, std::unique_ptr<ResourceEntry>());
+    std::move(init_callback_)
+        .Run(net::ERR_FAILED, std::unique_ptr<ResourceEntry>());
     return;
   }
 
   reader_proxy_ = std::make_unique<internal::LocalReaderProxy>(
       std::move(file_reader), length);
-  callback.Run(net::OK, std::move(entry));
+  std::move(init_callback_).Run(net::OK, std::move(entry));
 }
 
 void DriveFileStreamReader::OnGetContent(
@@ -466,7 +467,6 @@
 }
 
 void DriveFileStreamReader::OnGetFileContentCompletion(
-    const InitializeCompletionCallback& callback,
     FileError error) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
@@ -484,8 +484,8 @@
     // or may not be called. This is timing issue, and it is difficult to avoid
     // unfortunately.
     if (error != FILE_ERROR_OK) {
-      callback.Run(FileErrorToNetError(error),
-                   std::unique_ptr<ResourceEntry>());
+      std::move(init_callback_)
+          .Run(FileErrorToNetError(error), std::unique_ptr<ResourceEntry>());
     }
   }
 }
diff --git a/chrome/browser/chromeos/drive/drive_file_stream_reader.h b/chrome/browser/chromeos/drive/drive_file_stream_reader.h
index a107814b..8c54049 100644
--- a/chrome/browser/chromeos/drive/drive_file_stream_reader.h
+++ b/chrome/browser/chromeos/drive/drive_file_stream_reader.h
@@ -17,7 +17,7 @@
 #include "base/threading/thread_checker.h"
 #include "components/drive/file_errors.h"
 #include "google_apis/drive/drive_api_error_codes.h"
-#include "net/base/completion_callback.h"
+#include "net/base/completion_once_callback.h"
 
 namespace base {
 class SequencedTaskRunner;
@@ -43,8 +43,9 @@
   virtual ~ReaderProxy() {}
 
   // Called from DriveFileStreamReader::Read method.
-  virtual int Read(net::IOBuffer* buffer, int buffer_length,
-                   const net::CompletionCallback& callback) = 0;
+  virtual int Read(net::IOBuffer* buffer,
+                   int buffer_length,
+                   net::CompletionOnceCallback callback) = 0;
 
   // Called when the data from the server is received.
   virtual void OnGetContent(std::unique_ptr<std::string> data) = 0;
@@ -67,7 +68,7 @@
   // ReaderProxy overrides.
   int Read(net::IOBuffer* buffer,
            int buffer_length,
-           const net::CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
   void OnGetContent(std::unique_ptr<std::string> data) override;
   void OnCompleted(FileError error) override;
 
@@ -75,8 +76,7 @@
   std::unique_ptr<util::LocalFileReader> file_reader_;
 
   // Callback for the LocalFileReader::Read.
-  void OnReadCompleted(
-      const net::CompletionCallback& callback, int read_result);
+  void OnReadCompleted(net::CompletionOnceCallback callback, int read_result);
 
   // The number of remaining bytes to be read.
   int64_t remaining_length_;
@@ -105,7 +105,7 @@
   // ReaderProxy overrides.
   int Read(net::IOBuffer* buffer,
            int buffer_length,
-           const net::CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
   void OnGetContent(std::unique_ptr<std::string> data) override;
   void OnCompleted(FileError error) override;
 
@@ -129,7 +129,7 @@
   // To support pending Read(), it is necessary to keep its arguments.
   scoped_refptr<net::IOBuffer> buffer_;
   int buffer_length_;
-  net::CompletionCallback callback_;
+  net::CompletionOnceCallback callback_;
 
   THREAD_CHECKER(thread_checker_);
 
@@ -160,8 +160,9 @@
 
   // Callback to return the result of Initialize().
   // |error| is net::Error code.
-  typedef base::Callback<void(int error, std::unique_ptr<ResourceEntry> entry)>
-      InitializeCompletionCallback;
+  typedef base::OnceCallback<void(int error,
+                                  std::unique_ptr<ResourceEntry> entry)>
+      InitializeCompletionOnceCallback;
 
   DriveFileStreamReader(const FileSystemGetter& file_system_getter,
                         base::SequencedTaskRunner* file_task_runner);
@@ -174,7 +175,7 @@
   // |callback| must not be null.
   void Initialize(const base::FilePath& drive_file_path,
                   const net::HttpByteRange& byte_range,
-                  const InitializeCompletionCallback& callback);
+                  InitializeCompletionOnceCallback callback);
 
   // Reads the data into |buffer| at most |buffer_length|, and returns
   // the number of bytes. If an error happened, returns an error code.
@@ -184,8 +185,9 @@
   // The Read() method must not be called before the Initialize() is completed
   // successfully, or if there is pending read operation.
   // Neither |buffer| nor |callback| must be null.
-  int Read(net::IOBuffer* buffer, int buffer_length,
-           const net::CompletionCallback& callback);
+  int Read(net::IOBuffer* buffer,
+           int buffer_length,
+           net::CompletionOnceCallback callback);
 
  private:
   // Used to store the cancel closure returned by FileSystemInterface.
@@ -195,7 +197,6 @@
   // is done.
   void InitializeAfterGetFileContentInitialized(
       const net::HttpByteRange& byte_range,
-      const InitializeCompletionCallback& callback,
       FileError error,
       const base::FilePath& local_cache_file_path,
       std::unique_ptr<ResourceEntry> entry);
@@ -203,7 +204,6 @@
   // Part of Initialize. Called when the local file open process is done.
   void InitializeAfterLocalFileOpen(
       int64_t length,
-      const InitializeCompletionCallback& callback,
       std::unique_ptr<ResourceEntry> entry,
       std::unique_ptr<util::LocalFileReader> file_reader,
       int open_result);
@@ -214,9 +214,9 @@
 
   // Called when GetFileContent is completed.
   void OnGetFileContentCompletion(
-      const InitializeCompletionCallback& callback,
       FileError error);
 
+  InitializeCompletionOnceCallback init_callback_;
   const FileSystemGetter file_system_getter_;
   scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
   base::Closure cancel_download_closure_;
diff --git a/chrome/browser/chromeos/drive/drive_integration_service.cc b/chrome/browser/chromeos/drive/drive_integration_service.cc
index c54cb0d..7803336 100644
--- a/chrome/browser/chromeos/drive/drive_integration_service.cc
+++ b/chrome/browser/chromeos/drive/drive_integration_service.cc
@@ -676,7 +676,7 @@
 
   bool success = mount_points->RegisterFileSystem(
       mount_point_name_,
-      drivefs_holder_ ? storage::kFileSystemTypeNativeLocal
+      drivefs_holder_ ? storage::kFileSystemTypeDriveFs
                       : storage::kFileSystemTypeDrive,
       storage::FileSystemMountOption(), drive_mount_point);
 
diff --git a/chrome/browser/chromeos/drive/fileapi/drivefs_async_file_util.cc b/chrome/browser/chromeos/drive/fileapi/drivefs_async_file_util.cc
new file mode 100644
index 0000000..ba924ae
--- /dev/null
+++ b/chrome/browser/chromeos/drive/fileapi/drivefs_async_file_util.cc
@@ -0,0 +1,18 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/drive/fileapi/drivefs_async_file_util.h"
+
+#include "storage/browser/fileapi/local_file_util.h"
+
+namespace drive {
+namespace internal {
+
+DriveFsAsyncFileUtil::DriveFsAsyncFileUtil()
+    : AsyncFileUtilAdapter(new storage::LocalFileUtil) {}
+
+DriveFsAsyncFileUtil::~DriveFsAsyncFileUtil() = default;
+
+}  // namespace internal
+}  // namespace drive
diff --git a/chrome/browser/chromeos/drive/fileapi/drivefs_async_file_util.h b/chrome/browser/chromeos/drive/fileapi/drivefs_async_file_util.h
new file mode 100644
index 0000000..e43d1e6
--- /dev/null
+++ b/chrome/browser/chromeos/drive/fileapi/drivefs_async_file_util.h
@@ -0,0 +1,28 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_DRIVEFS_ASYNC_FILE_UTIL_H_
+#define CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_DRIVEFS_ASYNC_FILE_UTIL_H_
+
+#include "base/macros.h"
+#include "storage/browser/fileapi/async_file_util_adapter.h"
+
+namespace drive {
+namespace internal {
+
+// The implementation of storage::AsyncFileUtil for DriveFS File System. This
+// forwards to a AsyncFileUtil for native files by default.
+class DriveFsAsyncFileUtil : public storage::AsyncFileUtilAdapter {
+ public:
+  DriveFsAsyncFileUtil();
+  ~DriveFsAsyncFileUtil() override;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(DriveFsAsyncFileUtil);
+};
+
+}  // namespace internal
+}  // namespace drive
+
+#endif  // CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_DRIVEFS_ASYNC_FILE_UTIL_H_
diff --git a/chrome/browser/chromeos/drive/fileapi/drivefs_file_system_backend_delegate.cc b/chrome/browser/chromeos/drive/fileapi/drivefs_file_system_backend_delegate.cc
new file mode 100644
index 0000000..4487438
--- /dev/null
+++ b/chrome/browser/chromeos/drive/fileapi/drivefs_file_system_backend_delegate.cc
@@ -0,0 +1,59 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/drive/fileapi/drivefs_file_system_backend_delegate.h"
+
+#include "chrome/browser/chromeos/drive/fileapi/drivefs_async_file_util.h"
+#include "content/public/browser/browser_thread.h"
+#include "storage/browser/fileapi/async_file_util.h"
+#include "storage/browser/fileapi/file_stream_reader.h"
+#include "storage/browser/fileapi/file_stream_writer.h"
+
+namespace drive {
+
+DriveFsFileSystemBackendDelegate::DriveFsFileSystemBackendDelegate()
+    : async_file_util_(std::make_unique<internal::DriveFsAsyncFileUtil>()) {}
+
+DriveFsFileSystemBackendDelegate::~DriveFsFileSystemBackendDelegate() = default;
+
+storage::AsyncFileUtil* DriveFsFileSystemBackendDelegate::GetAsyncFileUtil(
+    storage::FileSystemType type) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
+  DCHECK_EQ(storage::kFileSystemTypeDriveFs, type);
+  return async_file_util_.get();
+}
+
+std::unique_ptr<storage::FileStreamReader>
+DriveFsFileSystemBackendDelegate::CreateFileStreamReader(
+    const storage::FileSystemURL& url,
+    int64_t offset,
+    int64_t max_bytes_to_read,
+    const base::Time& expected_modification_time,
+    storage::FileSystemContext* context) {
+  NOTIMPLEMENTED();
+  return nullptr;
+}
+
+std::unique_ptr<storage::FileStreamWriter>
+DriveFsFileSystemBackendDelegate::CreateFileStreamWriter(
+    const storage::FileSystemURL& url,
+    int64_t offset,
+    storage::FileSystemContext* context) {
+  NOTIMPLEMENTED();
+  return nullptr;
+}
+
+storage::WatcherManager* DriveFsFileSystemBackendDelegate::GetWatcherManager(
+    storage::FileSystemType type) {
+  NOTIMPLEMENTED();
+  return nullptr;
+}
+
+void DriveFsFileSystemBackendDelegate::GetRedirectURLForContents(
+    const storage::FileSystemURL& url,
+    const storage::URLCallback& callback) {
+  NOTIMPLEMENTED();
+}
+
+}  // namespace drive
diff --git a/chrome/browser/chromeos/drive/fileapi/drivefs_file_system_backend_delegate.h b/chrome/browser/chromeos/drive/fileapi/drivefs_file_system_backend_delegate.h
new file mode 100644
index 0000000..ac3b249b
--- /dev/null
+++ b/chrome/browser/chromeos/drive/fileapi/drivefs_file_system_backend_delegate.h
@@ -0,0 +1,60 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_DRIVEFS_FILE_SYSTEM_BACKEND_DELEGATE_H_
+#define CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_DRIVEFS_FILE_SYSTEM_BACKEND_DELEGATE_H_
+
+#include <stdint.h>
+
+#include <memory>
+
+#include "base/macros.h"
+#include "chrome/browser/chromeos/fileapi/file_system_backend_delegate.h"
+
+namespace storage {
+class AsyncFileUtil;
+class FileSystemContext;
+class FileStreamReader;
+class FileSystemURL;
+class FileStreamWriter;
+class WatcherManager;
+}  // namespace storage
+
+namespace drive {
+
+// Delegate implementation of the some methods in chromeos::FileSystemBackend
+// for Drive file system.
+class DriveFsFileSystemBackendDelegate
+    : public chromeos::FileSystemBackendDelegate {
+ public:
+  DriveFsFileSystemBackendDelegate();
+  ~DriveFsFileSystemBackendDelegate() override;
+
+  // FileSystemBackend::Delegate overrides.
+  storage::AsyncFileUtil* GetAsyncFileUtil(
+      storage::FileSystemType type) override;
+  std::unique_ptr<storage::FileStreamReader> CreateFileStreamReader(
+      const storage::FileSystemURL& url,
+      int64_t offset,
+      int64_t max_bytes_to_read,
+      const base::Time& expected_modification_time,
+      storage::FileSystemContext* context) override;
+  std::unique_ptr<storage::FileStreamWriter> CreateFileStreamWriter(
+      const storage::FileSystemURL& url,
+      int64_t offset,
+      storage::FileSystemContext* context) override;
+  storage::WatcherManager* GetWatcherManager(
+      storage::FileSystemType type) override;
+  void GetRedirectURLForContents(const storage::FileSystemURL& url,
+                                 const storage::URLCallback& callback) override;
+
+ private:
+  std::unique_ptr<storage::AsyncFileUtil> async_file_util_;
+
+  DISALLOW_COPY_AND_ASSIGN(DriveFsFileSystemBackendDelegate);
+};
+
+}  // namespace drive
+
+#endif  // CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_DRIVEFS_FILE_SYSTEM_BACKEND_DELEGATE_H_
diff --git a/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_reader_impl.cc b/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_reader_impl.cc
index 47954ea..06d6ec2 100644
--- a/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_reader_impl.cc
+++ b/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_reader_impl.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/chromeos/drive/fileapi/webkit_file_stream_reader_impl.h"
 
+#include <utility>
+
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/callback.h"
@@ -40,31 +42,31 @@
 
 int WebkitFileStreamReaderImpl::Read(net::IOBuffer* buffer,
                                      int buffer_length,
-                                     const net::CompletionCallback& callback) {
+                                     net::CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK(stream_reader_);
   DCHECK(buffer);
   DCHECK(callback);
 
   if (stream_reader_->IsInitialized())
-    return stream_reader_->Read(buffer, buffer_length, callback);
+    return stream_reader_->Read(buffer, buffer_length, std::move(callback));
 
   net::HttpByteRange byte_range;
   byte_range.set_first_byte_position(offset_);
   stream_reader_->Initialize(
       drive_file_path_, byte_range,
-      base::Bind(
+      base::BindOnce(
           &WebkitFileStreamReaderImpl::OnStreamReaderInitialized,
           weak_ptr_factory_.GetWeakPtr(),
-          base::Bind(
-              &WebkitFileStreamReaderImpl ::ReadAfterStreamReaderInitialized,
+          base::BindOnce(
+              &WebkitFileStreamReaderImpl::ReadAfterStreamReaderInitialized,
               weak_ptr_factory_.GetWeakPtr(), base::WrapRefCounted(buffer),
-              buffer_length, callback)));
+              buffer_length, std::move(callback))));
   return net::ERR_IO_PENDING;
 }
 
 int64_t WebkitFileStreamReaderImpl::GetLength(
-    const net::Int64CompletionCallback& callback) {
+    net::Int64CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK(stream_reader_);
   DCHECK(callback);
@@ -77,19 +79,18 @@
   net::HttpByteRange byte_range;
   byte_range.set_first_byte_position(offset_);
   stream_reader_->Initialize(
-      drive_file_path_,
-      byte_range,
-      base::Bind(&WebkitFileStreamReaderImpl::OnStreamReaderInitialized,
-                 weak_ptr_factory_.GetWeakPtr(),
-                 base::Bind(&WebkitFileStreamReaderImpl
-                                ::GetLengthAfterStreamReaderInitialized,
-                            weak_ptr_factory_.GetWeakPtr(),
-                            callback)));
+      drive_file_path_, byte_range,
+      base::BindOnce(
+          &WebkitFileStreamReaderImpl::OnStreamReaderInitialized,
+          weak_ptr_factory_.GetWeakPtr(),
+          base::BindOnce(&WebkitFileStreamReaderImpl::
+                             GetLengthAfterStreamReaderInitialized,
+                         weak_ptr_factory_.GetWeakPtr(), std::move(callback))));
   return net::ERR_IO_PENDING;
 }
 
 void WebkitFileStreamReaderImpl::OnStreamReaderInitialized(
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     int error,
     std::unique_ptr<ResourceEntry> entry) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -101,47 +102,55 @@
   if (error != net::OK) {
     // Found an error. Close the |stream_reader_| and notify it to the caller.
     stream_reader_.reset();
-    callback.Run(error);
+    std::move(callback).Run(error);
     return;
   }
 
   // Remember the size of the file.
   file_size_ = entry->file_info().size();
-  callback.Run(net::OK);
+  std::move(callback).Run(net::OK);
 }
 
 void WebkitFileStreamReaderImpl::ReadAfterStreamReaderInitialized(
     scoped_refptr<net::IOBuffer> buffer,
     int buffer_length,
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     int initialization_result) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK(callback);
 
   if (initialization_result != net::OK) {
-    callback.Run(initialization_result);
+    std::move(callback).Run(initialization_result);
     return;
   }
 
   DCHECK(stream_reader_);
-  int result = stream_reader_->Read(buffer.get(), buffer_length, callback);
+  read_callback_ = std::move(callback);
+  int result =
+      stream_reader_->Read(buffer.get(), buffer_length,
+                           base::BindOnce(&WebkitFileStreamReaderImpl::OnRead,
+                                          weak_ptr_factory_.GetWeakPtr()));
   if (result != net::ERR_IO_PENDING)
-    callback.Run(result);
+    std::move(read_callback_).Run(result);
+}
+
+void WebkitFileStreamReaderImpl::OnRead(int result) {
+  std::move(read_callback_).Run(result);
 }
 
 void WebkitFileStreamReaderImpl::GetLengthAfterStreamReaderInitialized(
-    const net::Int64CompletionCallback& callback,
+    net::Int64CompletionOnceCallback callback,
     int initialization_result) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK(callback);
 
   if (initialization_result != net::OK) {
-    callback.Run(initialization_result);
+    std::move(callback).Run(initialization_result);
     return;
   }
 
   DCHECK_GE(file_size_, 0);
-  callback.Run(file_size_);
+  std::move(callback).Run(file_size_);
 }
 
 }  // namespace internal
diff --git a/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_reader_impl.h b/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_reader_impl.h
index 71554b4..1d86bc6 100644
--- a/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_reader_impl.h
+++ b/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_reader_impl.h
@@ -15,7 +15,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
 #include "chrome/browser/chromeos/drive/drive_file_stream_reader.h"
-#include "net/base/completion_callback.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/fileapi/file_stream_reader.h"
 
 namespace base {
@@ -46,30 +46,33 @@
   // storage::FileStreamReader override.
   int Read(net::IOBuffer* buffer,
            int buffer_length,
-           const net::CompletionCallback& callback) override;
-  int64_t GetLength(const net::Int64CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
+  int64_t GetLength(net::Int64CompletionOnceCallback callback) override;
 
  private:
   // Called upon the initialization completion of |stream_reader_|.
   // Processes the result of the initialization with checking last
   // modified time, and calls |callback| with net::Error code as its result.
-  void OnStreamReaderInitialized(const net::CompletionCallback& callback,
+  void OnStreamReaderInitialized(net::CompletionOnceCallback callback,
                                  int error,
                                  std::unique_ptr<ResourceEntry> entry);
 
   // Part of Read(). Called after all the initialization process is completed.
-  void ReadAfterStreamReaderInitialized(
-      scoped_refptr<net::IOBuffer> buffer,
-      int buffer_length,
-      const net::CompletionCallback& callback,
-      int initialization_result);
+  void ReadAfterStreamReaderInitialized(scoped_refptr<net::IOBuffer> buffer,
+                                        int buffer_length,
+                                        net::CompletionOnceCallback callback,
+                                        int initialization_result);
+
+  // Part of Read().  Passed in to DriveFileStreamReader::Read().
+  void OnRead(int result);
 
   // Part of GetLength(). Called after all the initialization process is
   // completed.
   void GetLengthAfterStreamReaderInitialized(
-      const net::Int64CompletionCallback& callback,
+      net::Int64CompletionOnceCallback callback,
       int initialization_result);
 
+  net::CompletionOnceCallback read_callback_;
   std::unique_ptr<DriveFileStreamReader> stream_reader_;
   const base::FilePath drive_file_path_;
   const int64_t offset_;
diff --git a/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_writer_impl.cc b/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_writer_impl.cc
index 06bb3e7..9c8d7f6 100644
--- a/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_writer_impl.cc
+++ b/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_writer_impl.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/chromeos/drive/fileapi/webkit_file_stream_writer_impl.h"
 
+#include <utility>
+
 #include "base/bind.h"
 #include "base/callback_helpers.h"
 #include "chrome/browser/chromeos/drive/fileapi/fileapi_worker.h"
@@ -65,20 +67,20 @@
 
 int WebkitFileStreamWriterImpl::Write(net::IOBuffer* buf,
                                       int buf_len,
-                                      const net::CompletionCallback& callback) {
+                                      net::CompletionOnceCallback callback) {
   DCHECK(pending_write_callback_.is_null());
   DCHECK(pending_cancel_callback_.is_null());
   DCHECK(callback);
 
   // If the local file is already available, just delegate to it.
   if (local_file_writer_)
-    return local_file_writer_->Write(buf, buf_len, callback);
+    return local_file_writer_->Write(buf, buf_len, std::move(callback));
 
   // The local file is not yet ready. Create the writable snapshot.
   if (file_path_.empty())
     return net::ERR_FILE_NOT_FOUND;
 
-  pending_write_callback_ = callback;
+  pending_write_callback_ = std::move(callback);
   CreateWritableSnapshotFile(
       file_system_getter_, file_path_,
       base::Bind(
@@ -87,21 +89,20 @@
   return net::ERR_IO_PENDING;
 }
 
-int WebkitFileStreamWriterImpl::Cancel(
-    const net::CompletionCallback& callback) {
+int WebkitFileStreamWriterImpl::Cancel(net::CompletionOnceCallback callback) {
   DCHECK(pending_cancel_callback_.is_null());
   DCHECK(callback);
 
   // If LocalFileWriter is already created, just delegate the cancel to it.
   if (local_file_writer_)
-    return local_file_writer_->Cancel(callback);
+    return local_file_writer_->Cancel(std::move(callback));
 
   // If file open operation is in-flight, wait for its completion and cancel
   // further write operation in WriteAfterCreateWritableSnapshotFile.
   if (!pending_write_callback_.is_null()) {
     // Dismiss pending write callback immediately.
     pending_write_callback_.Reset();
-    pending_cancel_callback_ = callback;
+    pending_cancel_callback_ = std::move(callback);
     return net::ERR_IO_PENDING;
   }
 
@@ -109,13 +110,13 @@
   return net::ERR_UNEXPECTED;
 }
 
-int WebkitFileStreamWriterImpl::Flush(const net::CompletionCallback& callback) {
+int WebkitFileStreamWriterImpl::Flush(net::CompletionOnceCallback callback) {
   DCHECK(pending_cancel_callback_.is_null());
   DCHECK(callback);
 
   // If LocalFileWriter is already created, just delegate to it.
   if (local_file_writer_)
-    return local_file_writer_->Flush(callback);
+    return local_file_writer_->Flush(std::move(callback));
 
   // There shouldn't be in-flight Write operation.
   DCHECK(pending_write_callback_.is_null());
@@ -153,12 +154,10 @@
 
   DCHECK(!pending_write_callback_.is_null());
 
-  const net::CompletionCallback callback =
-      base::ResetAndReturn(&pending_write_callback_);
   if (open_result != base::File::FILE_OK) {
     DCHECK(close_callback_on_ui_thread.is_null());
-    callback.Run(
-        net::FileErrorToNetError(open_result));
+    std::move(pending_write_callback_)
+        .Run(net::FileErrorToNetError(open_result));
     return;
   }
 
@@ -170,9 +169,16 @@
       local_path,
       offset_,
       storage::FileStreamWriter::OPEN_EXISTING_FILE));
-  int result = local_file_writer_->Write(buf, buf_len, callback);
+  int result = local_file_writer_->Write(
+      buf, buf_len,
+      base::BindOnce(&WebkitFileStreamWriterImpl::OnWrite,
+                     weak_ptr_factory_.GetWeakPtr()));
   if (result != net::ERR_IO_PENDING)
-    callback.Run(result);
+    OnWrite(result);
+}
+
+void WebkitFileStreamWriterImpl::OnWrite(int result) {
+  std::move(pending_write_callback_).Run(result);
 }
 
 }  // namespace internal
diff --git a/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_writer_impl.h b/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_writer_impl.h
index ab5fbd3..5e9d377 100644
--- a/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_writer_impl.h
+++ b/chrome/browser/chromeos/drive/fileapi/webkit_file_stream_writer_impl.h
@@ -52,9 +52,9 @@
   // FileWriter override.
   int Write(net::IOBuffer* buf,
             int buf_len,
-            const net::CompletionCallback& callback) override;
-  int Cancel(const net::CompletionCallback& callback) override;
-  int Flush(const net::CompletionCallback& callback) override;
+            net::CompletionOnceCallback callback) override;
+  int Cancel(net::CompletionOnceCallback callback) override;
+  int Flush(net::CompletionOnceCallback callback) override;
 
  private:
   // Part of Write(). Called after CreateWritableSnapshotFile is completed.
@@ -65,6 +65,9 @@
       const base::FilePath& local_path,
       const base::Closure& close_callback_on_ui_thread);
 
+  // Part of Write(). Passed in to FileStreamWriter::Write().
+  void OnWrite(int result);
+
   FileSystemGetter file_system_getter_;
   scoped_refptr<base::TaskRunner> file_task_runner_;
   const base::FilePath file_path_;
@@ -72,8 +75,8 @@
 
   std::unique_ptr<storage::FileStreamWriter> local_file_writer_;
   base::Closure close_callback_on_ui_thread_;
-  net::CompletionCallback pending_write_callback_;
-  net::CompletionCallback pending_cancel_callback_;
+  net::CompletionOnceCallback pending_write_callback_;
+  net::CompletionOnceCallback pending_cancel_callback_;
 
   // Note: This should remain the last member so it'll be destroyed and
   // invalidate the weak pointers before any other members are destroyed.
diff --git a/chrome/browser/chromeos/extensions/device_local_account_external_policy_loader_unittest.cc b/chrome/browser/chromeos/extensions/device_local_account_external_policy_loader_unittest.cc
index 35d9d97..25dac466 100644
--- a/chrome/browser/chromeos/extensions/device_local_account_external_policy_loader_unittest.cc
+++ b/chrome/browser/chromeos/extensions/device_local_account_external_policy_loader_unittest.cc
@@ -14,6 +14,7 @@
 #include "base/message_loop/message_loop_current.h"
 #include "base/path_service.h"
 #include "base/run_loop.h"
+#include "base/single_thread_task_runner.h"
 #include "base/strings/stringprintf.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/values.h"
@@ -93,6 +94,62 @@
 MockExternalPolicyProviderVisitor::~MockExternalPolicyProviderVisitor() {
 }
 
+// A simple wrapper around a SingleThreadTaskRunner. When a task is posted
+// through it, increments a counter which is decremented when the task is run.
+class TrackingProxyTaskRunner : public base::SingleThreadTaskRunner {
+ public:
+  TrackingProxyTaskRunner(
+      scoped_refptr<base::SingleThreadTaskRunner> task_runner)
+      : wrapped_task_runner_(std::move(task_runner)) {}
+
+  bool PostDelayedTask(const base::Location& from_here,
+                       base::OnceClosure task,
+                       base::TimeDelta delay) override {
+    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+    ++pending_task_count_;
+    return wrapped_task_runner_->PostDelayedTask(
+        from_here,
+        base::BindOnce(&TrackingProxyTaskRunner::RunTask, this,
+                       std::move(task)),
+        delay);
+  }
+
+  bool PostNonNestableDelayedTask(const base::Location& from_here,
+                                  base::OnceClosure task,
+                                  base::TimeDelta delay) override {
+    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+    ++pending_task_count_;
+    return wrapped_task_runner_->PostNonNestableDelayedTask(
+        from_here,
+        base::BindOnce(&TrackingProxyTaskRunner::RunTask, this,
+                       std::move(task)),
+        delay);
+  }
+
+  bool RunsTasksInCurrentSequence() const override {
+    return wrapped_task_runner_->RunsTasksInCurrentSequence();
+  }
+
+  bool has_pending_tasks() const {
+    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+    return pending_task_count_ != 0;
+  }
+
+ private:
+  ~TrackingProxyTaskRunner() override = default;
+
+  void RunTask(base::OnceClosure task) {
+    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+    DCHECK_GT(pending_task_count_, 0);
+    --pending_task_count_;
+    std::move(task).Run();
+  }
+
+  scoped_refptr<base::SingleThreadTaskRunner> wrapped_task_runner_;
+  SEQUENCE_CHECKER(sequence_checker_);
+  int pending_task_count_ = 0;
+};
+
 }  // namespace
 
 class DeviceLocalAccountExternalPolicyLoaderTest : public testing::Test {
@@ -233,16 +290,15 @@
 // Verifies that when a force-install list policy referencing an extension is
 // set and the cache is started, the loader downloads, caches and serves the
 // extension.
-// https://crbug.com/865453: Sometimes the last EXPECT fails because there are
-// some irrelevant tasks still pending.
-TEST_F(DeviceLocalAccountExternalPolicyLoaderTest,
-       DISABLED_ForceInstallListSet) {
+TEST_F(DeviceLocalAccountExternalPolicyLoaderTest, ForceInstallListSet) {
   // Set a force-install list policy that contains an invalid entry (which
   // should be ignored) and a valid reference to an extension.
   SetForceInstallListPolicy();
 
   // Start the cache.
-  loader_->StartCache(base::ThreadTaskRunnerHandle::Get());
+  auto cache_task_runner = base::MakeRefCounted<TrackingProxyTaskRunner>(
+      base::ThreadTaskRunnerHandle::Get());
+  loader_->StartCache(cache_task_runner);
 
   // Spin the loop, allowing the loader to process the force-install list.
   // Verify that the loader announces an empty extension list.
@@ -305,7 +361,7 @@
   // Spin the loop until the cache shutdown callback is invoked. Verify that at
   // that point, no further file I/O tasks are pending.
   shutdown_run_loop.Run();
-  EXPECT_TRUE(base::MessageLoopCurrent::Get()->IsIdleForTesting());
+  EXPECT_FALSE(cache_task_runner->has_pending_tasks());
 }
 
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
index 7c28f86..cb7a938f 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
@@ -838,7 +838,7 @@
                            CompleteGetEntryProperties,
                        this, i, file_system_url));
         break;
-      case storage::kFileSystemTypeNativeLocal:
+      case storage::kFileSystemTypeDriveFs:
         SingleEntryPropertiesGetterForDriveFs::Start(
             file_system_url.path(),
             names_as_set.count(
@@ -903,7 +903,7 @@
     case storage::kFileSystemTypeDrive:
       return RunAsyncForDrive(url, params->pin);
 
-    case storage::kFileSystemTypeNativeLocal:
+    case storage::kFileSystemTypeDriveFs:
       return RunAsyncForDriveFs(file_system_url, params->pin);
 
     default:
@@ -1062,25 +1062,6 @@
   return true;
 }
 
-bool FileManagerPrivateCancelAllFileTransfersFunction::RunAsync() {
-  drive::DriveIntegrationService* const integration_service =
-      drive::DriveIntegrationServiceFactory::FindForProfile(GetProfile());
-  if (!integration_service || !integration_service->IsMounted())
-    return false;
-
-  drive::JobListInterface* const job_list = integration_service->job_list();
-  DCHECK(job_list);
-  const std::vector<drive::JobInfo> jobs = job_list->GetJobInfoList();
-
-  for (size_t i = 0; i < jobs.size(); ++i) {
-    if (drive::IsActiveFileTransferJobInfo(jobs[i]))
-      job_list->CancelJob(jobs[i].job_id);
-  }
-
-  SendResponse(true);
-  return true;
-}
-
 bool FileManagerPrivateSearchDriveFunction::RunAsync() {
   using extensions::api::file_manager_private::SearchDrive::Params;
   const std::unique_ptr<Params> params(Params::Create(*args_));
@@ -1452,7 +1433,7 @@
   switch (file_system_url.type()) {
     case storage::kFileSystemTypeDrive:
       return RunAsyncForDrive(url);
-    case storage::kFileSystemTypeNativeLocal:
+    case storage::kFileSystemTypeDriveFs:
       return RunAsyncForDriveFs(file_system_url);
     default:
       return false;
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.h b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.h
index ef9a59a..6a65ea19 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.h
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.h
@@ -121,20 +121,6 @@
   bool RunAsync() override;
 };
 
-// Implements the chrome.fileManagerPrivate.cancelAllFileTransfers method.
-class FileManagerPrivateCancelAllFileTransfersFunction
-    : public LoggedAsyncExtensionFunction {
- public:
-  DECLARE_EXTENSION_FUNCTION("fileManagerPrivate.cancelAllFileTransfers",
-                             FILEMANAGERPRIVATE_CANCELALLFILETRANSFERS)
-
- protected:
-  ~FileManagerPrivateCancelAllFileTransfersFunction() override = default;
-
-  // ChromeAsyncExtensionFunction overrides.
-  bool RunAsync() override;
-};
-
 class FileManagerPrivateSearchDriveFunction
     : public LoggedAsyncExtensionFunction {
  public:
diff --git a/chrome/browser/chromeos/file_manager/fake_disk_mount_manager.cc b/chrome/browser/chromeos/file_manager/fake_disk_mount_manager.cc
index a40cb7e..a48070c5 100644
--- a/chrome/browser/chromeos/file_manager/fake_disk_mount_manager.cc
+++ b/chrome/browser/chromeos/file_manager/fake_disk_mount_manager.cc
@@ -142,8 +142,7 @@
 
 void FakeDiskMountManager::UnmountDeviceRecursively(
     const std::string& device_path,
-    const UnmountDeviceRecursivelyCallbackType& callback) {
-}
+    UnmountDeviceRecursivelyCallbackType callback) {}
 
 bool FakeDiskMountManager::AddDiskForTest(
     std::unique_ptr<chromeos::disks::Disk> disk) {
diff --git a/chrome/browser/chromeos/file_manager/fake_disk_mount_manager.h b/chrome/browser/chromeos/file_manager/fake_disk_mount_manager.h
index 09d0a457..e7855e52 100644
--- a/chrome/browser/chromeos/file_manager/fake_disk_mount_manager.h
+++ b/chrome/browser/chromeos/file_manager/fake_disk_mount_manager.h
@@ -98,7 +98,7 @@
                            const std::string& volume_name) override;
   void UnmountDeviceRecursively(
       const std::string& device_path,
-      const UnmountDeviceRecursivelyCallbackType& callback) override;
+      UnmountDeviceRecursivelyCallbackType callback) override;
 
   bool AddDiskForTest(std::unique_ptr<chromeos::disks::Disk> disk) override;
   bool AddMountPointForTest(const MountPointInfo& mount_point) override;
diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc
index 508bc1c..9274ee5 100644
--- a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc
+++ b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc
@@ -32,7 +32,7 @@
 
 int BufferingFileStreamReader::Read(net::IOBuffer* buffer,
                                     int buffer_length,
-                                    const net::CompletionCallback& callback) {
+                                    net::CompletionOnceCallback callback) {
   // Return as much as available in the internal buffer. It may be less than
   // |buffer_length|, what is valid.
   const int bytes_read =
@@ -44,29 +44,28 @@
   // size is requested, then call the internal file stream reader directly.
   if (buffer_length >= preloading_buffer_length_) {
     const int result = file_stream_reader_->Read(
-        buffer,
-        buffer_length,
-        base::Bind(&BufferingFileStreamReader::OnReadCompleted,
-                   weak_ptr_factory_.GetWeakPtr(),
-                   callback));
+        buffer, buffer_length,
+        base::BindOnce(&BufferingFileStreamReader::OnReadCompleted,
+                       weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
     DCHECK_EQ(result, net::ERR_IO_PENDING);
     return result;
   }
 
   // Nothing copied, so contents have to be preloaded.
-  Preload(base::Bind(
+  Preload(base::BindOnce(
       &BufferingFileStreamReader::OnReadCompleted,
       weak_ptr_factory_.GetWeakPtr(),
-      base::Bind(&BufferingFileStreamReader::OnPreloadCompleted,
-                 weak_ptr_factory_.GetWeakPtr(), base::WrapRefCounted(buffer),
-                 buffer_length, callback)));
+      base::BindOnce(&BufferingFileStreamReader::OnPreloadCompleted,
+                     weak_ptr_factory_.GetWeakPtr(),
+                     base::WrapRefCounted(buffer), buffer_length,
+                     std::move(callback))));
 
   return net::ERR_IO_PENDING;
 }
 
 int64_t BufferingFileStreamReader::GetLength(
-    const net::Int64CompletionCallback& callback) {
-  const int64_t result = file_stream_reader_->GetLength(callback);
+    net::Int64CompletionOnceCallback callback) {
+  const int64_t result = file_stream_reader_->GetLength(std::move(callback));
   DCHECK_EQ(net::ERR_IO_PENDING, result);
 
   return result;
@@ -86,38 +85,37 @@
   return read_bytes;
 }
 
-void BufferingFileStreamReader::Preload(
-    const net::CompletionCallback& callback) {
+void BufferingFileStreamReader::Preload(net::CompletionOnceCallback callback) {
   const int preload_bytes =
       std::min(static_cast<int64_t>(preloading_buffer_length_),
                max_bytes_to_read_ - bytes_read_);
 
   const int result = file_stream_reader_->Read(
-      preloading_buffer_.get(), preload_bytes, callback);
+      preloading_buffer_.get(), preload_bytes, std::move(callback));
   DCHECK_EQ(result, net::ERR_IO_PENDING);
 }
 
 void BufferingFileStreamReader::OnPreloadCompleted(
     scoped_refptr<net::IOBuffer> buffer,
     int buffer_length,
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     int result) {
   if (result < 0) {
-    callback.Run(result);
+    std::move(callback).Run(result);
     return;
   }
 
   preloading_buffer_offset_ = 0;
   preloaded_bytes_ = result;
 
-  callback.Run(CopyFromPreloadingBuffer(buffer, buffer_length));
+  std::move(callback).Run(CopyFromPreloadingBuffer(buffer, buffer_length));
 }
 
 void BufferingFileStreamReader::OnReadCompleted(
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     int result) {
   if (result < 0) {
-    callback.Run(result);
+    std::move(callback).Run(result);
     return;
   }
 
@@ -125,14 +123,14 @@
   // emit an
   // error.
   if (result > max_bytes_to_read_ - bytes_read_) {
-    callback.Run(net::ERR_FAILED);
+    std::move(callback).Run(net::ERR_FAILED);
     return;
   }
 
   bytes_read_ += result;
   DCHECK_LE(bytes_read_, max_bytes_to_read_);
 
-  callback.Run(result);
+  std::move(callback).Run(result);
 }
 
 }  // namespace file_system_provider
diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h
index 5e26821..d4a4de68 100644
--- a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h
+++ b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h
@@ -12,6 +12,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/fileapi/file_stream_reader.h"
 
 namespace net {
@@ -41,8 +42,8 @@
   // storage::FileStreamReader overrides.
   int Read(net::IOBuffer* buf,
            int buf_len,
-           const net::CompletionCallback& callback) override;
-  int64_t GetLength(const net::Int64CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
+  int64_t GetLength(net::Int64CompletionOnceCallback callback) override;
 
  private:
   // Copies data from the preloading buffer and updates the internal iterator.
@@ -51,15 +52,15 @@
                                int buffer_length);
 
   // Preloads data from the internal stream reader and calls the |callback|.
-  void Preload(const net::CompletionCallback& callback);
+  void Preload(net::CompletionOnceCallback callback);
 
-  void OnReadCompleted(const net::CompletionCallback& callback, int result);
+  void OnReadCompleted(net::CompletionOnceCallback callback, int result);
 
   // Called when preloading of a buffer chunk is finished. Updates state of the
   // preloading buffer and copied requested data to the |buffer|.
   void OnPreloadCompleted(scoped_refptr<net::IOBuffer> buffer,
                           int buffer_length,
-                          const net::CompletionCallback& callback,
+                          net::CompletionOnceCallback callback,
                           int result);
 
   std::unique_ptr<storage::FileStreamReader> file_stream_reader_;
diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc
index 95c271e0..10c1c8e 100644
--- a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc
+++ b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc
@@ -8,6 +8,7 @@
 
 #include <memory>
 #include <string>
+#include <utility>
 #include <vector>
 
 #include "base/macros.h"
@@ -49,13 +50,13 @@
   // storage::FileStreamReader overrides.
   int Read(net::IOBuffer* buf,
            int buf_len,
-           const net::CompletionCallback& callback) override {
+           net::CompletionOnceCallback callback) override {
     DCHECK(log_);
     log_->push_back(buf_len);
 
     if (return_error_ != net::OK) {
       base::ThreadTaskRunnerHandle::Get()->PostTask(
-          FROM_HERE, base::BindOnce(callback, return_error_));
+          FROM_HERE, base::BindOnce(std::move(callback), return_error_));
       return net::ERR_IO_PENDING;
     }
 
@@ -63,14 +64,14 @@
     memcpy(buf->data(), fake_data.c_str(), buf_len);
 
     base::ThreadTaskRunnerHandle::Get()->PostTask(
-        FROM_HERE, base::BindOnce(callback, buf_len));
+        FROM_HERE, base::BindOnce(std::move(callback), buf_len));
     return net::ERR_IO_PENDING;
   }
 
-  int64_t GetLength(const net::Int64CompletionCallback& callback) override {
+  int64_t GetLength(net::Int64CompletionOnceCallback callback) override {
     DCHECK_EQ(net::OK, return_error_);
     base::ThreadTaskRunnerHandle::Get()->PostTask(
-        FROM_HERE, base::BindOnce(callback, kFileSize));
+        FROM_HERE, base::BindOnce(std::move(callback), kFileSize));
     return net::ERR_IO_PENDING;
   }
 
diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer.cc b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer.cc
index 9f14b53..6fef22e4 100644
--- a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer.cc
+++ b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer.cc
@@ -29,21 +29,22 @@
 
 int BufferingFileStreamWriter::Write(net::IOBuffer* buffer,
                                      int buffer_length,
-                                     const net::CompletionCallback& callback) {
+                                     net::CompletionOnceCallback callback) {
   // If |buffer_length| is larger than the intermediate buffer, then call the
   // inner file stream writer directly. Note, that the intermediate buffer
   // (used for buffering) must be flushed first.
   if (buffer_length > intermediate_buffer_length_) {
     if (buffered_bytes_) {
-      FlushIntermediateBuffer(
-          base::Bind(&BufferingFileStreamWriter::
-                         OnFlushIntermediateBufferForDirectWriteCompleted,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     base::WrapRefCounted(buffer), buffer_length, callback));
+      FlushIntermediateBuffer(base::BindOnce(
+          &BufferingFileStreamWriter::
+              OnFlushIntermediateBufferForDirectWriteCompleted,
+          weak_ptr_factory_.GetWeakPtr(), base::WrapRefCounted(buffer),
+          buffer_length, std::move(callback)));
     } else {
       // Nothing to flush, so skip it.
       OnFlushIntermediateBufferForDirectWriteCompleted(
-          base::WrapRefCounted(buffer), buffer_length, callback, net::OK);
+          base::WrapRefCounted(buffer), buffer_length, std::move(callback),
+          net::OK);
     }
     return net::ERR_IO_PENDING;
   }
@@ -57,11 +58,11 @@
   const int bytes_left = buffer_length - buffer_bytes;
 
   if (buffered_bytes_ == intermediate_buffer_length_) {
-    FlushIntermediateBuffer(
-        base::Bind(&BufferingFileStreamWriter::
-                       OnFlushIntermediateBufferForBufferedWriteCompleted,
-                   weak_ptr_factory_.GetWeakPtr(), base::WrapRefCounted(buffer),
-                   buffer_bytes, bytes_left, callback));
+    FlushIntermediateBuffer(base::BindOnce(
+        &BufferingFileStreamWriter::
+            OnFlushIntermediateBufferForBufferedWriteCompleted,
+        weak_ptr_factory_.GetWeakPtr(), base::WrapRefCounted(buffer),
+        buffer_bytes, bytes_left, std::move(callback)));
     return net::ERR_IO_PENDING;
   }
 
@@ -69,19 +70,18 @@
   return buffer_length;
 }
 
-int BufferingFileStreamWriter::Cancel(const net::CompletionCallback& callback) {
+int BufferingFileStreamWriter::Cancel(net::CompletionOnceCallback callback) {
   // Since there is no any asynchronous call in this class other than on
   // |file_stream_writer_|, then there must be an in-flight operation going on.
-  return file_stream_writer_->Cancel(callback);
+  return file_stream_writer_->Cancel(std::move(callback));
 }
 
-int BufferingFileStreamWriter::Flush(const net::CompletionCallback& callback) {
+int BufferingFileStreamWriter::Flush(net::CompletionOnceCallback callback) {
   // Flush all the buffered bytes first, then invoke Flush() on the inner file
   // stream writer.
-  FlushIntermediateBuffer(base::Bind(
+  FlushIntermediateBuffer(base::BindOnce(
       &BufferingFileStreamWriter::OnFlushIntermediateBufferForFlushCompleted,
-      weak_ptr_factory_.GetWeakPtr(),
-      callback));
+      weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   return net::ERR_IO_PENDING;
 }
 
@@ -97,40 +97,39 @@
 }
 
 void BufferingFileStreamWriter::FlushIntermediateBuffer(
-    const net::CompletionCallback& callback) {
+    net::CompletionOnceCallback callback) {
   const int result = file_stream_writer_->Write(
-      intermediate_buffer_.get(),
-      buffered_bytes_,
-      base::Bind(&BufferingFileStreamWriter::OnFlushIntermediateBufferCompleted,
-                 weak_ptr_factory_.GetWeakPtr(),
-                 buffered_bytes_,
-                 callback));
+      intermediate_buffer_.get(), buffered_bytes_,
+      base::BindOnce(
+          &BufferingFileStreamWriter::OnFlushIntermediateBufferCompleted,
+          weak_ptr_factory_.GetWeakPtr(), buffered_bytes_,
+          std::move(callback)));
   DCHECK_EQ(net::ERR_IO_PENDING, result);
 }
 
 void BufferingFileStreamWriter::OnFlushIntermediateBufferCompleted(
     int length,
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     int result) {
   if (result < 0) {
-    callback.Run(result);
+    std::move(callback).Run(result);
     return;
   }
 
   DCHECK_EQ(length, result) << "Partial writes are not supported.";
   buffered_bytes_ = 0;
 
-  callback.Run(net::OK);
+  std::move(callback).Run(net::OK);
 }
 
-void
-BufferingFileStreamWriter::OnFlushIntermediateBufferForDirectWriteCompleted(
-    scoped_refptr<net::IOBuffer> buffer,
-    int length,
-    const net::CompletionCallback& callback,
-    int result) {
+void BufferingFileStreamWriter::
+    OnFlushIntermediateBufferForDirectWriteCompleted(
+        scoped_refptr<net::IOBuffer> buffer,
+        int length,
+        net::CompletionOnceCallback callback,
+        int result) {
   if (result < 0) {
-    callback.Run(result);
+    std::move(callback).Run(result);
     return;
   }
 
@@ -138,19 +137,19 @@
   DCHECK_EQ(0, buffered_bytes_);
 
   const int write_result =
-      file_stream_writer_->Write(buffer.get(), length, callback);
+      file_stream_writer_->Write(buffer.get(), length, std::move(callback));
   DCHECK_EQ(net::ERR_IO_PENDING, write_result);
 }
 
-void
-BufferingFileStreamWriter::OnFlushIntermediateBufferForBufferedWriteCompleted(
-    scoped_refptr<net::IOBuffer> buffer,
-    int buffered_bytes,
-    int bytes_left,
-    const net::CompletionCallback& callback,
-    int result) {
+void BufferingFileStreamWriter::
+    OnFlushIntermediateBufferForBufferedWriteCompleted(
+        scoped_refptr<net::IOBuffer> buffer,
+        int buffered_bytes,
+        int bytes_left,
+        net::CompletionOnceCallback callback,
+        int result) {
   if (result < 0) {
-    callback.Run(result);
+    std::move(callback).Run(result);
     return;
   }
 
@@ -160,18 +159,18 @@
   DCHECK_GE(intermediate_buffer_length_, bytes_left);
   CopyToIntermediateBuffer(buffer, buffered_bytes, bytes_left);
 
-  callback.Run(buffered_bytes + bytes_left);
+  std::move(callback).Run(buffered_bytes + bytes_left);
 }
 
 void BufferingFileStreamWriter::OnFlushIntermediateBufferForFlushCompleted(
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     int result) {
   if (result < 0) {
-    callback.Run(result);
+    std::move(callback).Run(result);
     return;
   }
 
-  const int flush_result = file_stream_writer_->Flush(callback);
+  const int flush_result = file_stream_writer_->Flush(std::move(callback));
   DCHECK_EQ(net::ERR_IO_PENDING, flush_result);
 }
 
diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer.h b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer.h
index 29a20752..ec4b8b11 100644
--- a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer.h
+++ b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer.h
@@ -10,6 +10,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/fileapi/file_stream_writer.h"
 
 namespace net {
@@ -38,9 +39,9 @@
   // storage::FileStreamWriter overrides.
   int Write(net::IOBuffer* buf,
             int buf_len,
-            const net::CompletionCallback& callback) override;
-  int Cancel(const net::CompletionCallback& callback) override;
-  int Flush(const net::CompletionCallback& callback) override;
+            net::CompletionOnceCallback callback) override;
+  int Cancel(net::CompletionOnceCallback callback) override;
+  int Flush(net::CompletionOnceCallback callback) override;
 
  private:
   // Copies |buffer_length| bytes of data from the |buffer| starting at
@@ -52,21 +53,20 @@
 
   // Flushes all of the bytes in the intermediate buffer to the inner file
   // stream writer.
-  void FlushIntermediateBuffer(const net::CompletionCallback& callback);
+  void FlushIntermediateBuffer(net::CompletionOnceCallback callback);
 
   // Called when flushing the intermediate buffer is completed with either
   // a success or an error.
-  void OnFlushIntermediateBufferCompleted(
-      int length,
-      const net::CompletionCallback& callback,
-      int result);
+  void OnFlushIntermediateBufferCompleted(int length,
+                                          net::CompletionOnceCallback callback,
+                                          int result);
 
   // Called when flushing the intermediate buffer for direct write is completed
   // with either a success or an error.
   void OnFlushIntermediateBufferForDirectWriteCompleted(
       scoped_refptr<net::IOBuffer> buffer,
       int length,
-      const net::CompletionCallback& callback,
+      net::CompletionOnceCallback callback,
       int result);
 
   // Called when flushing the intermediate buffer for a buffered write is
@@ -75,13 +75,13 @@
       scoped_refptr<net::IOBuffer> buffer,
       int buffered_bytes,
       int bytes_left,
-      const net::CompletionCallback& callback,
+      net::CompletionOnceCallback callback,
       int result);
 
   // Called when flushing the intermediate buffer for a flush call is completed
   // with either a success or an error.
   void OnFlushIntermediateBufferForFlushCompleted(
-      const net::CompletionCallback& callback,
+      net::CompletionOnceCallback callback,
       int result);
 
   std::unique_ptr<storage::FileStreamWriter> file_stream_writer_;
diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer_unittest.cc b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer_unittest.cc
index 19ab06a..3bcffa0 100644
--- a/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer_unittest.cc
+++ b/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_writer_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <memory>
 #include <string>
+#include <utility>
 #include <vector>
 
 #include "base/macros.h"
@@ -56,32 +57,32 @@
   // storage::FileStreamWriter overrides.
   int Write(net::IOBuffer* buf,
             int buf_len,
-            const net::CompletionCallback& callback) override {
+            net::CompletionOnceCallback callback) override {
     DCHECK(write_log_);
     write_log_->push_back(std::string(buf->data(), buf_len));
     pending_bytes_ += buf_len;
     base::ThreadTaskRunnerHandle::Get()->PostTask(
         FROM_HERE,
-        base::BindOnce(callback,
+        base::BindOnce(std::move(callback),
                        write_error_ == net::OK ? buf_len : write_error_));
     return net::ERR_IO_PENDING;
   }
 
-  int Cancel(const net::CompletionCallback& callback) override {
+  int Cancel(net::CompletionOnceCallback callback) override {
     DCHECK(cancel_counter_);
     DCHECK_EQ(net::OK, write_error_);
     ++(*cancel_counter_);
     base::ThreadTaskRunnerHandle::Get()->PostTask(
-        FROM_HERE, base::BindOnce(callback, net::OK));
+        FROM_HERE, base::BindOnce(std::move(callback), net::OK));
     return net::ERR_IO_PENDING;
   }
 
-  int Flush(const net::CompletionCallback& callback) override {
+  int Flush(net::CompletionOnceCallback callback) override {
     DCHECK(flush_log_);
     flush_log_->push_back(pending_bytes_);
     pending_bytes_ = 0;
     base::ThreadTaskRunnerHandle::Get()->PostTask(
-        FROM_HERE, base::BindOnce(callback, net::OK));
+        FROM_HERE, base::BindOnce(std::move(callback), net::OK));
     return net::ERR_IO_PENDING;
   }
 
diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader.cc b/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader.cc
index 76cfbba..ea76a6ca 100644
--- a/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader.cc
+++ b/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader.h"
 
+#include <utility>
+
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
@@ -24,9 +26,9 @@
 namespace file_system_provider {
 
 // Converts net::CompletionCallback to net::Int64CompletionCallback.
-void Int64ToIntCompletionCallback(net::CompletionCallback callback,
+void Int64ToIntCompletionCallback(net::CompletionOnceCallback callback,
                                   int64_t result) {
-  callback.Run(static_cast<int>(result));
+  std::move(callback).Run(static_cast<int>(result));
 }
 
 class FileStreamReader::OperationRunner
@@ -109,8 +111,8 @@
         file_path_,
         ProvidedFileSystemInterface::METADATA_FIELD_SIZE |
             ProvidedFileSystemInterface::METADATA_FIELD_MODIFICATION_TIME,
-        base::Bind(&OperationRunner::OnGetMetadataCompletedOnUIThread, this,
-                   std::move(callback)));
+        base::BindOnce(&OperationRunner::OnGetMetadataCompletedOnUIThread, this,
+                       std::move(callback)));
   }
 
   // Aborts the most recent operation (if exists) and closes a file if opened.
@@ -288,7 +290,7 @@
 
 int FileStreamReader::Read(net::IOBuffer* buffer,
                            int buffer_length,
-                           const net::CompletionCallback& callback) {
+                           net::CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   TRACE_EVENT_ASYNC_BEGIN1("file_system_provider",
                            "FileStreamReader::Read",
@@ -296,18 +298,18 @@
                            "buffer_length",
                            buffer_length);
 
+  read_callback_ = std::move(callback);
   switch (state_) {
     case NOT_INITIALIZED:
       // Lazily initialize with the first call to Read().
-      Initialize(
-          base::Bind(&FileStreamReader::ReadAfterInitialized,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     base::WrapRefCounted(buffer), buffer_length,
-                     base::Bind(&FileStreamReader::OnReadCompleted,
-                                weak_ptr_factory_.GetWeakPtr(), callback)),
-          base::Bind(&Int64ToIntCompletionCallback,
-                     base::Bind(&FileStreamReader::OnReadCompleted,
-                                weak_ptr_factory_.GetWeakPtr(), callback)));
+      Initialize(base::Bind(&FileStreamReader::ReadAfterInitialized,
+                            weak_ptr_factory_.GetWeakPtr(),
+                            base::WrapRefCounted(buffer), buffer_length,
+                            base::Bind(&FileStreamReader::OnReadCompleted,
+                                       weak_ptr_factory_.GetWeakPtr())),
+                 base::Bind(&Int64ToIntCompletionCallback,
+                            base::Bind(&FileStreamReader::OnReadCompleted,
+                                       weak_ptr_factory_.GetWeakPtr())));
       break;
 
     case INITIALIZING:
@@ -315,11 +317,9 @@
       break;
 
     case INITIALIZED:
-      ReadAfterInitialized(buffer,
-                           buffer_length,
+      ReadAfterInitialized(buffer, buffer_length,
                            base::Bind(&FileStreamReader::OnReadCompleted,
-                                      weak_ptr_factory_.GetWeakPtr(),
-                                      callback));
+                                      weak_ptr_factory_.GetWeakPtr()));
       break;
 
     case FAILED:
@@ -330,33 +330,32 @@
   return net::ERR_IO_PENDING;
 }
 
-void FileStreamReader::OnReadCompleted(net::CompletionCallback callback,
-                                       int result) {
+void FileStreamReader::OnReadCompleted(int result) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
-  callback.Run(static_cast<int>(result));
+  std::move(read_callback_).Run(static_cast<int>(result));
   TRACE_EVENT_ASYNC_END0(
       "file_system_provider", "FileStreamReader::Read", this);
 }
 
-int64_t FileStreamReader::GetLength(
-    const net::Int64CompletionCallback& callback) {
+int64_t FileStreamReader::GetLength(net::Int64CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
+  get_length_callback_ = std::move(callback);
   switch (state_) {
     case NOT_INITIALIZED:
       // Lazily initialize with the first call to GetLength().
-    Initialize(base::Bind(&FileStreamReader::GetLengthAfterInitialized,
-                          weak_ptr_factory_.GetWeakPtr(),
-                          callback),
-               callback);
-    break;
+      Initialize(base::Bind(&FileStreamReader::GetLengthAfterInitialized,
+                            weak_ptr_factory_.GetWeakPtr()),
+                 base::Bind(&FileStreamReader::OnGetLengthCompleted,
+                            weak_ptr_factory_.GetWeakPtr()));
+      break;
 
     case INITIALIZING:
       NOTREACHED();
       break;
 
     case INITIALIZED:
-      GetLengthAfterInitialized(callback);
+      GetLengthAfterInitialized();
       break;
 
     case FAILED:
@@ -367,6 +366,10 @@
   return net::ERR_IO_PENDING;
 }
 
+void FileStreamReader::OnGetLengthCompleted(int64_t result) {
+  std::move(get_length_callback_).Run(result);
+}
+
 void FileStreamReader::ReadAfterInitialized(
     scoped_refptr<net::IOBuffer> buffer,
     int buffer_length,
@@ -383,8 +386,7 @@
                                 weak_ptr_factory_.GetWeakPtr(), callback)));
 }
 
-void FileStreamReader::GetLengthAfterInitialized(
-    const net::Int64CompletionCallback& callback) {
+void FileStreamReader::GetLengthAfterInitialized() {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK_EQ(INITIALIZED, state_);
 
@@ -392,8 +394,8 @@
       BrowserThread::UI, FROM_HERE,
       base::BindOnce(
           &OperationRunner::GetMetadataOnUIThread, runner_,
-          base::Bind(&FileStreamReader::OnGetMetadataForGetLengthReceived,
-                     weak_ptr_factory_.GetWeakPtr(), callback)));
+          base::BindOnce(&FileStreamReader::OnGetMetadataForGetLengthReceived,
+                         weak_ptr_factory_.GetWeakPtr())));
 }
 
 void FileStreamReader::OnReadChunkReceived(
@@ -426,7 +428,6 @@
 }
 
 void FileStreamReader::OnGetMetadataForGetLengthReceived(
-    const net::Int64CompletionCallback& callback,
     std::unique_ptr<EntryMetadata> metadata,
     base::File::Error result) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -435,7 +436,7 @@
   // In case of an error, abort.
   if (result != base::File::FILE_OK) {
     state_ = FAILED;
-    callback.Run(net::FileErrorToNetError(result));
+    std::move(get_length_callback_).Run(net::FileErrorToNetError(result));
     return;
   }
 
@@ -444,12 +445,12 @@
   DCHECK(metadata.get());
   if (!expected_modification_time_.is_null() &&
       *metadata->modification_time != expected_modification_time_) {
-    callback.Run(net::ERR_UPLOAD_FILE_CHANGED);
+    std::move(get_length_callback_).Run(net::ERR_UPLOAD_FILE_CHANGED);
     return;
   }
 
   DCHECK_EQ(base::File::FILE_OK, result);
-  callback.Run(*metadata->size);
+  std::move(get_length_callback_).Run(*metadata->size);
 }
 
 }  // namespace file_system_provider
diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader.h b/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader.h
index 98e4533..580908f 100644
--- a/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader.h
+++ b/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader.h
@@ -13,6 +13,8 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
+#include "net/base/completion_callback.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/fileapi/file_stream_reader.h"
 #include "storage/browser/fileapi/file_system_url.h"
 
@@ -42,8 +44,8 @@
   // storage::FileStreamReader overrides.
   int Read(net::IOBuffer* buf,
            int buf_len,
-           const net::CompletionCallback& callback) override;
-  int64_t GetLength(const net::Int64CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
+  int64_t GetLength(net::Int64CompletionOnceCallback callback) override;
 
  private:
   // Helper class for executing operations on the provided file system. All
@@ -54,9 +56,13 @@
   // State of the file stream reader.
   enum State { NOT_INITIALIZED, INITIALIZING, INITIALIZED, FAILED };
 
-  // Called when Read() operation is completed with either a success of an
+  // Called when Read() operation is completed with either a success or an
   // error.
-  void OnReadCompleted(net::CompletionCallback callback, int result);
+  void OnReadCompleted(int result);
+
+  // Called when GetLength() operation is completed with either a success of an
+  // error.
+  void OnGetLengthCompleted(int64_t result);
 
   // Initializes the reader by opening the file. When completed with success,
   // runs the |pending_closure|. Otherwise, calls the |error_callback|.
@@ -87,7 +93,6 @@
   // Called when fetching length of the file is completed with either a success
   // or an error.
   void OnGetMetadataForGetLengthReceived(
-      const net::Int64CompletionCallback& callback,
       std::unique_ptr<EntryMetadata> metadata,
       base::File::Error result);
 
@@ -97,8 +102,10 @@
                             const net::CompletionCallback& callback);
 
   // Same as GetLength(), but called after initializing is completed.
-  void GetLengthAfterInitialized(const net::Int64CompletionCallback& callback);
+  void GetLengthAfterInitialized();
 
+  net::CompletionOnceCallback read_callback_;
+  net::Int64CompletionOnceCallback get_length_callback_;
   storage::FileSystemURL url_;
   int64_t current_offset_;
   int64_t current_length_;
diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_writer.cc b/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_writer.cc
index eb97d0f..64199e20 100644
--- a/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_writer.cc
+++ b/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_writer.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/chromeos/file_system_provider/fileapi/file_stream_writer.h"
 
+#include <utility>
+
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/threading/thread_task_runner_handle.h"
@@ -193,7 +195,7 @@
 
 int FileStreamWriter::Write(net::IOBuffer* buffer,
                             int buffer_length,
-                            const net::CompletionCallback& callback) {
+                            net::CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   TRACE_EVENT_ASYNC_BEGIN1("file_system_provider",
                            "FileStreamWriter::Write",
@@ -201,17 +203,17 @@
                            "buffer_length",
                            buffer_length);
 
+  write_callback_ = std::move(callback);
   switch (state_) {
     case NOT_INITIALIZED:
       // Lazily initialize with the first call to Write().
-      Initialize(
-          base::Bind(&FileStreamWriter::WriteAfterInitialized,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     base::WrapRefCounted(buffer), buffer_length,
-                     base::Bind(&FileStreamWriter::OnWriteCompleted,
-                                weak_ptr_factory_.GetWeakPtr(), callback)),
-          base::Bind(&FileStreamWriter::OnWriteCompleted,
-                     weak_ptr_factory_.GetWeakPtr(), callback));
+      Initialize(base::Bind(&FileStreamWriter::WriteAfterInitialized,
+                            weak_ptr_factory_.GetWeakPtr(),
+                            base::WrapRefCounted(buffer), buffer_length,
+                            base::Bind(&FileStreamWriter::OnWriteCompleted,
+                                       weak_ptr_factory_.GetWeakPtr())),
+                 base::Bind(&FileStreamWriter::OnWriteCompleted,
+                            weak_ptr_factory_.GetWeakPtr()));
       break;
 
     case INITIALIZING:
@@ -219,11 +221,9 @@
       break;
 
     case INITIALIZED:
-      WriteAfterInitialized(buffer,
-                            buffer_length,
+      WriteAfterInitialized(buffer, buffer_length,
                             base::Bind(&FileStreamWriter::OnWriteCompleted,
-                                       weak_ptr_factory_.GetWeakPtr(),
-                                       callback));
+                                       weak_ptr_factory_.GetWeakPtr()));
       break;
 
     case EXECUTING:
@@ -236,7 +236,7 @@
   return net::ERR_IO_PENDING;
 }
 
-int FileStreamWriter::Cancel(const net::CompletionCallback& callback) {
+int FileStreamWriter::Cancel(net::CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
   if (state_ != INITIALIZING && state_ != EXECUTING)
@@ -251,7 +251,7 @@
       BrowserThread::UI, FROM_HERE,
       base::BindOnce(&OperationRunner::CloseRunnerOnUIThread, runner_));
   base::ThreadTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindOnce(callback, net::OK));
+      FROM_HERE, base::BindOnce(std::move(callback), net::OK));
 
   // If a write is in progress, mark it as completed.
   TRACE_EVENT_ASYNC_END0("file_system_provider", "FileStreamWriter::Write",
@@ -260,13 +260,13 @@
   return net::ERR_IO_PENDING;
 }
 
-int FileStreamWriter::Flush(const net::CompletionCallback& callback) {
+int FileStreamWriter::Flush(net::CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK_NE(CANCELLING, state_);
 
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
-      base::BindOnce(callback,
+      base::BindOnce(std::move(callback),
                      state_ == INITIALIZED ? net::OK : net::ERR_FAILED));
 
   return net::ERR_IO_PENDING;
@@ -293,11 +293,10 @@
   callback.Run(buffer_length);
 }
 
-void FileStreamWriter::OnWriteCompleted(net::CompletionCallback callback,
-                                        int result) {
+void FileStreamWriter::OnWriteCompleted(int result) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   if (state_ != CANCELLING)
-    callback.Run(result);
+    std::move(write_callback_).Run(result);
 
   TRACE_EVENT_ASYNC_END0(
       "file_system_provider", "FileStreamWriter::Write", this);
diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_writer.h b/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_writer.h
index 79db67e..7c85885 100644
--- a/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_writer.h
+++ b/chrome/browser/chromeos/file_system_provider/fileapi/file_stream_writer.h
@@ -12,6 +12,8 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
+#include "net/base/completion_callback.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/fileapi/file_stream_writer.h"
 #include "storage/browser/fileapi/file_system_url.h"
 
@@ -29,9 +31,9 @@
   // storage::FileStreamWriter overrides.
   int Write(net::IOBuffer* buf,
             int buf_len,
-            const net::CompletionCallback& callback) override;
-  int Cancel(const net::CompletionCallback& callback) override;
-  int Flush(const net::CompletionCallback& callback) override;
+            net::CompletionOnceCallback callback) override;
+  int Cancel(net::CompletionOnceCallback callback) override;
+  int Flush(net::CompletionOnceCallback callback) override;
 
  private:
   // Helper class for executing operations on the provided file system. All
@@ -56,7 +58,7 @@
 
   // Called when Write() operation is completed with either a success or an
   // error.
-  void OnWriteCompleted(net::CompletionCallback callback, int result);
+  void OnWriteCompleted(int result);
 
   // Initializes the writer by opening the file. When completed with success,
   // runs the |pending_closure|. Otherwise, calls the |error_callback|.
@@ -74,6 +76,7 @@
                              int buffer_length,
                              const net::CompletionCallback& callback);
 
+  net::CompletionOnceCallback write_callback_;
   storage::FileSystemURL url_;
   int64_t current_offset_;
   scoped_refptr<OperationRunner> runner_;
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system.cc b/chrome/browser/chromeos/file_system_provider/provided_file_system.cc
index 762760a..97eeac2 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system.cc
+++ b/chrome/browser/chromeos/file_system_provider/provided_file_system.cc
@@ -7,6 +7,7 @@
 #include <utility>
 #include <vector>
 
+#include "base/callback_helpers.h"
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
@@ -184,14 +185,19 @@
 AbortCallback ProvidedFileSystem::GetMetadata(const base::FilePath& entry_path,
                                               MetadataFieldMask fields,
                                               GetMetadataCallback callback) {
+  // Create |copyable_callback| which is copyable, though it can still only be
+  // called at most once.  This is safe, because RequestManager::CreateRequest()
+  // is guaranteed not to call |callback| if it signals an error (by returning
+  // request_id == 0).
+  auto copyable_callback = base::AdaptCallbackForRepeating(std::move(callback));
   const int request_id = request_manager_->CreateRequest(
       GET_METADATA,
       std::unique_ptr<RequestManager::HandlerInterface>(
           new operations::GetMetadata(event_router_, file_system_info_,
-                                      entry_path, fields, callback)));
+                                      entry_path, fields, copyable_callback)));
   if (!request_id) {
-    callback.Run(base::WrapUnique<EntryMetadata>(NULL),
-                 base::File::FILE_ERROR_SECURITY);
+    copyable_callback.Run(base::WrapUnique<EntryMetadata>(NULL),
+                          base::File::FILE_ERROR_SECURITY);
     return AbortCallback();
   }
 
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h b/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h
index 86a9bcab0..782c39d 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h
+++ b/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h
@@ -109,8 +109,8 @@
       void(int chunk_length, bool has_more, base::File::Error result)>
       ReadChunkReceivedCallback;
 
-  typedef base::Callback<void(std::unique_ptr<EntryMetadata> entry_metadata,
-                              base::File::Error result)>
+  typedef base::OnceCallback<void(std::unique_ptr<EntryMetadata> entry_metadata,
+                                  base::File::Error result)>
       GetMetadataCallback;
 
   typedef base::Callback<void(const Actions& actions, base::File::Error result)>
diff --git a/chrome/browser/chromeos/fileapi/file_system_backend.cc b/chrome/browser/chromeos/fileapi/file_system_backend.cc
index c8bd488a..d42c81b 100644
--- a/chrome/browser/chromeos/fileapi/file_system_backend.cc
+++ b/chrome/browser/chromeos/fileapi/file_system_backend.cc
@@ -53,7 +53,8 @@
          url.type() == storage::kFileSystemTypeProvided ||
          url.type() == storage::kFileSystemTypeDeviceMediaAsFileStorage ||
          url.type() == storage::kFileSystemTypeArcContent ||
-         url.type() == storage::kFileSystemTypeArcDocumentsProvider;
+         url.type() == storage::kFileSystemTypeArcDocumentsProvider ||
+         url.type() == storage::kFileSystemTypeDriveFs;
 }
 
 FileSystemBackend::FileSystemBackend(
@@ -62,6 +63,7 @@
     std::unique_ptr<FileSystemBackendDelegate> mtp_delegate,
     std::unique_ptr<FileSystemBackendDelegate> arc_content_delegate,
     std::unique_ptr<FileSystemBackendDelegate> arc_documents_provider_delegate,
+    std::unique_ptr<FileSystemBackendDelegate> drivefs_delegate,
     scoped_refptr<storage::ExternalMountPoints> mount_points,
     storage::ExternalMountPoints* system_mount_points)
     : file_access_permissions_(new FileAccessPermissions()),
@@ -72,6 +74,7 @@
       arc_content_delegate_(std::move(arc_content_delegate)),
       arc_documents_provider_delegate_(
           std::move(arc_documents_provider_delegate)),
+      drivefs_delegate_(std::move(drivefs_delegate)),
       mount_points_(mount_points),
       system_mount_points_(system_mount_points) {}
 
@@ -109,6 +112,7 @@
     case storage::kFileSystemTypeProvided:
     case storage::kFileSystemTypeArcContent:
     case storage::kFileSystemTypeArcDocumentsProvider:
+    case storage::kFileSystemTypeDriveFs:
       return true;
     default:
       return false;
@@ -285,6 +289,8 @@
       return arc_content_delegate_->GetAsyncFileUtil(type);
     case storage::kFileSystemTypeArcDocumentsProvider:
       return arc_documents_provider_delegate_->GetAsyncFileUtil(type);
+    case storage::kFileSystemTypeDriveFs:
+      return drivefs_delegate_->GetAsyncFileUtil(type);
     default:
       NOTREACHED();
   }
@@ -342,7 +348,8 @@
          url.type() == storage::kFileSystemTypeDrive ||
          url.type() == storage::kFileSystemTypeProvided ||
          url.type() == storage::kFileSystemTypeArcContent ||
-         url.type() == storage::kFileSystemTypeArcDocumentsProvider);
+         url.type() == storage::kFileSystemTypeArcDocumentsProvider ||
+         url.type() == storage::kFileSystemTypeDriveFs);
   return storage::FileSystemOperation::Create(
       url, context,
       std::make_unique<storage::FileSystemOperationContext>(context));
@@ -368,6 +375,7 @@
     case storage::kFileSystemTypeRestrictedNativeLocal:
     case storage::kFileSystemTypeArcContent:
     case storage::kFileSystemTypeArcDocumentsProvider:
+    case storage::kFileSystemTypeDriveFs:
       return false;
     default:
       NOTREACHED();
@@ -396,6 +404,7 @@
           url, offset, max_bytes_to_read, expected_modification_time, context);
     case storage::kFileSystemTypeNativeLocal:
     case storage::kFileSystemTypeRestrictedNativeLocal:
+    case storage::kFileSystemTypeDriveFs:
       return std::unique_ptr<storage::FileStreamReader>(
           storage::FileStreamReader::CreateForFileSystemFile(
               context, url, offset, expected_modification_time));
@@ -431,6 +440,7 @@
       return file_system_provider_delegate_->CreateFileStreamWriter(
           url, offset, context);
     case storage::kFileSystemTypeNativeLocal:
+    case storage::kFileSystemTypeDriveFs:
       return std::unique_ptr<storage::FileStreamWriter>(
           storage::FileStreamWriter::CreateForLocalFile(
               context->default_file_task_runner(), url.path(), offset,
@@ -477,6 +487,7 @@
     case storage::kFileSystemTypeRestrictedNativeLocal:
     case storage::kFileSystemTypeArcContent:
     case storage::kFileSystemTypeArcDocumentsProvider:
+    case storage::kFileSystemTypeDriveFs:
       callback.Run(GURL());
       return;
     default:
diff --git a/chrome/browser/chromeos/fileapi/file_system_backend.h b/chrome/browser/chromeos/fileapi/file_system_backend.h
index e22e04d0..3a1cb1b 100644
--- a/chrome/browser/chromeos/fileapi/file_system_backend.h
+++ b/chrome/browser/chromeos/fileapi/file_system_backend.h
@@ -75,6 +75,7 @@
       std::unique_ptr<FileSystemBackendDelegate> arc_content_delegate,
       std::unique_ptr<FileSystemBackendDelegate>
           arc_documents_provider_delegate,
+      std::unique_ptr<FileSystemBackendDelegate> drivefs_delegate,
       scoped_refptr<storage::ExternalMountPoints> mount_points,
       storage::ExternalMountPoints* system_mount_points);
   ~FileSystemBackend() override;
@@ -160,6 +161,9 @@
   // The delegate instance for the ARC documents provider related operations.
   std::unique_ptr<FileSystemBackendDelegate> arc_documents_provider_delegate_;
 
+  // The delegate instance for the DriveFS file system related operations.
+  std::unique_ptr<FileSystemBackendDelegate> drivefs_delegate_;
+
   // Mount points specific to the owning context (i.e. per-profile mount
   // points).
   //
diff --git a/chrome/browser/chromeos/fileapi/file_system_backend_unittest.cc b/chrome/browser/chromeos/fileapi/file_system_backend_unittest.cc
index df74c99..21dc0e4 100644
--- a/chrome/browser/chromeos/fileapi/file_system_backend_unittest.cc
+++ b/chrome/browser/chromeos/fileapi/file_system_backend_unittest.cc
@@ -47,6 +47,7 @@
       nullptr,  // mtp_delegate
       nullptr,  // arc_content_delegate
       nullptr,  // arc_documents_provider_delegate
+      nullptr,  // drivefs_delegate
       mount_points.get(), storage::ExternalMountPoints::GetSystemInstance());
   backend.AddSystemMountPoints();
   std::vector<base::FilePath> root_dirs = backend.GetRootDirectories();
@@ -75,6 +76,7 @@
       nullptr,  // mtp_delegate
       nullptr,  // arc_content_delegate
       nullptr,  // arc_documents_provider_delegate
+      nullptr,  // drivefs_delegate
       mount_points.get(), system_mount_points.get());
 
   const size_t initial_root_dirs_size = backend.GetRootDirectories().size();
@@ -121,6 +123,7 @@
       nullptr,  // mtp_delegate
       nullptr,  // arc_content_delegate
       nullptr,  // arc_documents_provider_delegate
+      nullptr,  // drivefs_delegate
       mount_points.get(), system_mount_points.get());
 
   std::string extension("ddammdhioacbehjngdmkjcjbnfginlla");
@@ -191,6 +194,7 @@
       nullptr,  // mtp_delegate
       nullptr,  // arc_content_delegate
       nullptr,  // arc_documents_provider_delegate
+      nullptr,  // drivefs_delegate
       mount_points.get(), system_mount_points.get());
 
   const storage::FileSystemType type = storage::kFileSystemTypeNativeLocal;
diff --git a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc
index 4d1e6532..4c61ade 100644
--- a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc
+++ b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc
@@ -77,7 +77,7 @@
   // Bail for mash because IdleDetector/UserActivityDetector does not work
   // properly there.
   // TODO(xiyuan): Revisit after http://crbug.com/626899.
-  if (!features::IsAshInBrowserProcess())
+  if (features::IsMultiProcessMash())
     return false;
 
   Profile* profile = ProfileHelper::Get()->GetProfileByUser(
diff --git a/chrome/browser/chromeos/login/ui/input_events_blocker.cc b/chrome/browser/chromeos/login/ui/input_events_blocker.cc
index 9f1e46e..517b498e 100644
--- a/chrome/browser/chromeos/login/ui/input_events_blocker.cc
+++ b/chrome/browser/chromeos/login/ui/input_events_blocker.cc
@@ -12,9 +12,8 @@
 namespace chromeos {
 
 InputEventsBlocker::InputEventsBlocker() {
-  // TODO(mash): Implement a mash version. This will probably need to talk to
-  // the window server.
-  if (features::IsAshInBrowserProcess()) {
+  // TODO(crbug.com/854323): Mash support. Needs mojo API, or to move to ash.
+  if (!features::IsMultiProcessMash()) {
     ash::Shell::Get()->AddPreTargetHandler(this,
                                            ui::EventTarget::Priority::kSystem);
     VLOG(1) << "InputEventsBlocker " << this << " created.";
@@ -24,7 +23,7 @@
 }
 
 InputEventsBlocker::~InputEventsBlocker() {
-  if (features::IsAshInBrowserProcess()) {
+  if (!features::IsMultiProcessMash()) {
     ash::Shell::Get()->RemovePreTargetHandler(this);
     VLOG(1) << "InputEventsBlocker " << this << " destroyed.";
   } else {
diff --git a/chrome/browser/chromeos/login/ui/login_display_host_common.cc b/chrome/browser/chromeos/login/ui/login_display_host_common.cc
index 032163cb..0377bbc 100644
--- a/chrome/browser/chromeos/login/ui/login_display_host_common.cc
+++ b/chrome/browser/chromeos/login/ui/login_display_host_common.cc
@@ -49,7 +49,8 @@
 
   // Disable Drag'n'Drop for the login session.
   // ash::Shell may be null in tests.
-  if (ash::Shell::HasInstance() && features::IsAshInBrowserProcess()) {
+  // TODO(crbug.com/854328): Mash support.
+  if (ash::Shell::HasInstance() && !features::IsUsingWindowService()) {
     scoped_drag_drop_disabler_.reset(
         new wm::ScopedDragDropDisabler(ash::Shell::GetPrimaryRootWindow()));
   } else {
diff --git a/chrome/browser/chromeos/login/ui/login_display_host_webui.cc b/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
index abb0931..268a880b 100644
--- a/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
+++ b/chrome/browser/chromeos/login/ui/login_display_host_webui.cc
@@ -408,7 +408,7 @@
     // * Ash crash at the login screen on mustash
     // In the latter case the mash root process will trigger a clean restart
     // of content_browser.
-    if (!features::IsAshInBrowserProcess() && login_display_host_)
+    if (features::IsUsingWindowService() && login_display_host_)
       login_display_host_->ResetLoginWindowAndView();
   }
   void DeleteDelegate() override { delete this; }
@@ -431,7 +431,7 @@
 LoginDisplayHostWebUI::LoginDisplayHostWebUI()
     : oobe_startup_sound_played_(StartupUtils::IsOobeCompleted()),
       weak_factory_(this) {
-  if (!features::IsAshInBrowserProcess()) {
+  if (features::IsUsingWindowService()) {
     // Animation, and initializing hidden, are not currently supported for Mash.
     finalize_animation_type_ = ANIMATION_NONE;
     initialize_webui_hidden_ = false;
@@ -450,19 +450,19 @@
 
   bool zero_delay_enabled = WizardController::IsZeroDelayEnabled();
   // Mash always runs login screen with zero delay
-  if (!features::IsAshInBrowserProcess())
+  if (features::IsUsingWindowService())
     zero_delay_enabled = true;
 
   waiting_for_wallpaper_load_ = !zero_delay_enabled;
 
   // Initializing hidden is not supported in Mash
-  if (features::IsAshInBrowserProcess()) {
+  if (!features::IsUsingWindowService()) {
     initialize_webui_hidden_ =
         kHiddenWebUIInitializationDefault && !zero_delay_enabled;
   }
 
   // Check if WebUI init type is overriden. Not supported in Mash.
-  if (features::IsAshInBrowserProcess() &&
+  if (!features::IsUsingWindowService() &&
       base::CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kAshWebUIInit)) {
     const std::string override_type =
@@ -632,7 +632,7 @@
 
   restore_path_ = RESTORE_ADD_USER_INTO_SESSION;
   // Animation is not supported in Mash
-  if (features::IsAshInBrowserProcess())
+  if (!features::IsUsingWindowService())
     finalize_animation_type_ = ANIMATION_ADD_USER;
   // Observe the user switch animation and defer the deletion of itself only
   // after the animation is finished.
@@ -648,7 +648,7 @@
   // We should emit this signal only at login screen (after reboot or sign out).
   login_view_->set_should_emit_login_prompt_visible(false);
 
-  if (features::IsAshInBrowserProcess()) {
+  if (!features::IsUsingWindowService()) {
     // Lock container can be transparent after lock screen animation.
     aura::Window* lock_container = ash::Shell::GetContainer(
         ash::Shell::GetPrimaryRootWindow(),
@@ -689,7 +689,7 @@
   restore_path_ = RESTORE_SIGN_IN;
   is_showing_login_ = true;
   // Animation is not supported in Mash
-  if (features::IsAshInBrowserProcess())
+  if (!features::IsUsingWindowService())
     finalize_animation_type_ = ANIMATION_WORKSPACE;
 
   if (waiting_for_wallpaper_load_ && !initialize_webui_hidden_) {
@@ -738,7 +738,7 @@
 
 void LoginDisplayHostWebUI::OnStartAppLaunch() {
   // Animation is not supported in Mash.
-  if (features::IsAshInBrowserProcess())
+  if (!features::IsUsingWindowService())
     finalize_animation_type_ = ANIMATION_FADE_OUT;
   if (!login_window_)
     LoadURL(GURL(kAppLaunchSplashURL));
@@ -748,7 +748,7 @@
 
 void LoginDisplayHostWebUI::OnStartArcKiosk() {
   // Animation is not supported in Mash.
-  if (features::IsAshInBrowserProcess())
+  if (!features::IsUsingWindowService())
     finalize_animation_type_ = ANIMATION_FADE_OUT;
   if (!login_window_) {
     LoadURL(GURL(kAppLaunchSplashURL));
@@ -925,7 +925,7 @@
 // LoginDisplayHostWebUI, private
 
 void LoginDisplayHostWebUI::ScheduleWorkspaceAnimation() {
-  if (!features::IsAshInBrowserProcess()) {
+  if (features::IsUsingWindowService()) {
     NOTIMPLEMENTED();
     return;
   }
@@ -1036,7 +1036,7 @@
                                      ? ash::kShellWindowId_AlwaysOnTopContainer
                                      : ash::kShellWindowId_LockScreenContainer;
   // The ash::Shell containers are not available in Mash
-  if (features::IsAshInBrowserProcess()) {
+  if (!features::IsUsingWindowService()) {
     params.parent =
         ash::Shell::GetContainer(ash::Shell::GetPrimaryRootWindow(), container);
   } else {
@@ -1056,7 +1056,7 @@
 
   // Animations are not available in Mash.
   // For voice interaction OOBE, we do not want the animation here.
-  if (features::IsAshInBrowserProcess() && !is_voice_interaction_oobe_) {
+  if (!features::IsUsingWindowService() && !is_voice_interaction_oobe_) {
     login_window_->SetVisibilityAnimationDuration(
         base::TimeDelta::FromMilliseconds(kLoginFadeoutTransitionDurationMs));
     login_window_->SetVisibilityAnimationTransition(
@@ -1089,7 +1089,7 @@
   }
 
   if (login_window_) {
-    if (!features::IsAshInBrowserProcess()) {
+    if (features::IsUsingWindowService()) {
       login_window_->Close();
     } else {
       login_window_->Hide();
diff --git a/chrome/browser/chromeos/multidevice_setup/android_sms_app_install_delegate_impl.cc b/chrome/browser/chromeos/multidevice_setup/android_sms_app_install_delegate_impl.cc
index 15c8f97..e252bfc 100644
--- a/chrome/browser/chromeos/multidevice_setup/android_sms_app_install_delegate_impl.cc
+++ b/chrome/browser/chromeos/multidevice_setup/android_sms_app_install_delegate_impl.cc
@@ -35,7 +35,7 @@
   // can easily fail.
   pending_app_manager_->Install(
       web_app::PendingAppManager::AppInfo(
-          chromeos::android_sms::GetAndroidMessagesURL(),
+          chromeos::android_sms::GetAndroidMessagesURLWithExperiments(),
           web_app::PendingAppManager::LaunchContainer::kWindow),
       base::BindOnce(&AndroidSmsAppInstallDelegateImpl::OnAppInstalled,
                      weak_ptr_factory_.GetWeakPtr()));
diff --git a/chrome/browser/chromeos/multidevice_setup/android_sms_app_install_delegate_impl_unittest.cc b/chrome/browser/chromeos/multidevice_setup/android_sms_app_install_delegate_impl_unittest.cc
index 0d780a5..89b84c7 100644
--- a/chrome/browser/chromeos/multidevice_setup/android_sms_app_install_delegate_impl_unittest.cc
+++ b/chrome/browser/chromeos/multidevice_setup/android_sms_app_install_delegate_impl_unittest.cc
@@ -52,7 +52,7 @@
 
   std::vector<web_app::PendingAppManager::AppInfo> expected_apps_to_install;
   expected_apps_to_install.emplace_back(
-      chromeos::android_sms::GetAndroidMessagesURL(),
+      chromeos::android_sms::GetAndroidMessagesURLWithExperiments(),
       web_app::PendingAppManager::LaunchContainer::kWindow);
   EXPECT_EQ(expected_apps_to_install,
             test_pending_app_manager()->installed_apps());
diff --git a/chrome/browser/chromeos/smb_client/OWNERS b/chrome/browser/chromeos/smb_client/OWNERS
index 5a151275..0f05459 100644
--- a/chrome/browser/chromeos/smb_client/OWNERS
+++ b/chrome/browser/chromeos/smb_client/OWNERS
@@ -1,3 +1,2 @@
-allenvic@chromium.org
 baileyberro@chromium.org
 zentaro@chromium.org
diff --git a/chrome/browser/chromeos/smb_client/smb_file_system.cc b/chrome/browser/chromeos/smb_client/smb_file_system.cc
index bed0087..cd63c717 100644
--- a/chrome/browser/chromeos/smb_client/smb_file_system.cc
+++ b/chrome/browser/chromeos/smb_client/smb_file_system.cc
@@ -189,7 +189,7 @@
 
   auto reply =
       base::BindOnce(&SmbFileSystem::HandleRequestGetMetadataEntryCallback,
-                     AsWeakPtr(), fields, callback);
+                     AsWeakPtr(), fields, std::move(callback));
   SmbTask task = base::BindOnce(&SmbProviderClient::GetMetadataEntry,
                                 GetWeakSmbProviderClient(), GetMountId(),
                                 entry_path, std::move(reply));
diff --git a/chrome/browser/chromeos/tether/tether_service.cc b/chrome/browser/chromeos/tether/tether_service.cc
index bd897b7..8e05e22 100644
--- a/chrome/browser/chromeos/tether/tether_service.cc
+++ b/chrome/browser/chromeos/tether/tether_service.cc
@@ -158,7 +158,8 @@
       tether_host_fetcher_(
           chromeos::tether::TetherHostFetcherImpl::Factory::NewInstance(
               remote_device_provider_.get(),
-              device_sync_client_)),
+              device_sync_client_,
+              multidevice_setup_client_)),
       timer_(std::make_unique<base::OneShotTimer>()),
       weak_ptr_factory_(this) {
   tether_host_fetcher_->AddObserver(this);
diff --git a/chrome/browser/chromeos/tether/tether_service_unittest.cc b/chrome/browser/chromeos/tether/tether_service_unittest.cc
index 43f93ca..8ee6af8 100644
--- a/chrome/browser/chromeos/tether/tether_service_unittest.cc
+++ b/chrome/browser/chromeos/tether/tether_service_unittest.cc
@@ -245,7 +245,9 @@
   // chromeos::tether::TetherHostFetcherImpl::Factory :
   std::unique_ptr<chromeos::tether::TetherHostFetcher> BuildInstance(
       cryptauth::RemoteDeviceProvider* remote_device_provider,
-      chromeos::device_sync::DeviceSyncClient* device_sync_client) override {
+      chromeos::device_sync::DeviceSyncClient* device_sync_client,
+      chromeos::multidevice_setup::MultiDeviceSetupClient*
+          multidevice_setup_client) override {
     last_created_ =
         new chromeos::tether::FakeTetherHostFetcher(initial_devices_);
     return base::WrapUnique(last_created_);
diff --git a/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc b/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc
index 1bc8a40..44c7249 100644
--- a/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc
+++ b/chrome/browser/extensions/api/autotest_private/autotest_private_api.cc
@@ -43,6 +43,7 @@
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/session_manager_client.h"
 #include "chromeos/printing/printer_configuration.h"
+#include "components/arc/arc_prefs.h"
 #include "components/user_manager/user_manager.h"
 #include "content/public/common/service_manager_connection.h"
 #include "mojo/public/cpp/bindings/associated_binding.h"
@@ -576,6 +577,8 @@
       return RespondNow(
           Error("ARC enabled state cannot be changed for the current user"));
     }
+    profile->GetPrefs()->SetBoolean(arc::prefs::kArcLocationServiceEnabled,
+                                    true);
     return RespondNow(NoArguments());
   } else {
     return RespondNow(Error("ARC is not available for the current user"));
diff --git a/chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc b/chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc
index aeac5f8..817b5ca8 100644
--- a/chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc
+++ b/chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc
@@ -6,6 +6,7 @@
 
 #include <memory>
 #include <string>
+#include <utility>
 
 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h"
 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.h"
@@ -110,7 +111,7 @@
     return RespondNow(Error(kErrorIncognito));
 
   service->GetPrinters(
-      base::Bind(&CloudPrintPrivateGetPrintersFunction::SendResults, this));
+      base::BindOnce(&CloudPrintPrivateGetPrintersFunction::SendResults, this));
   return RespondLater();
 }
 
diff --git a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
index 15bbb9fe..a56f2d27 100644
--- a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
+++ b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
@@ -338,18 +338,10 @@
     }
 
     ASSERT_TRUE(extension);
-    EXPECT_TRUE(HasValidIndexedRuleset(*extension, profile()));
 
     // Ensure the ruleset is also loaded on the IO thread.
     content::RunAllTasksUntilIdle();
 
-    // Wait for the background page to load if needed.
-    if (has_background_script_)
-      WaitForBackgroundScriptToLoad(extension->id());
-
-    // Ensure no load errors were reported.
-    EXPECT_TRUE(LoadErrorReporter::GetInstance()->GetErrors()->empty());
-
     tester.ExpectTotalCount(kIndexRulesTimeHistogram, 1);
     tester.ExpectTotalCount(kIndexAndPersistRulesTimeHistogram, 1);
     tester.ExpectUniqueSample(kManifestRulesCountHistogram,
@@ -359,6 +351,15 @@
     tester.ExpectUniqueSample(
         "Extensions.DeclarativeNetRequest.LoadRulesetResult",
         RulesetMatcher::kLoadSuccess /*sample*/, 1 /*count*/);
+
+    EXPECT_TRUE(HasValidIndexedRuleset(*extension, profile()));
+
+    // Wait for the background page to load if needed.
+    if (has_background_script_)
+      WaitForBackgroundScriptToLoad(extension->id());
+
+    // Ensure no load errors were reported.
+    EXPECT_TRUE(LoadErrorReporter::GetInstance()->GetErrors()->empty());
   }
 
   void LoadExtensionWithRules(const std::vector<TestRule>& rules) {
diff --git a/chrome/browser/extensions/api/image_writer_private/operation.h b/chrome/browser/extensions/api/image_writer_private/operation.h
index a8e181c..4d11b66 100644
--- a/chrome/browser/extensions/api/image_writer_private/operation.h
+++ b/chrome/browser/extensions/api/image_writer_private/operation.h
@@ -22,6 +22,10 @@
 #include "chrome/common/extensions/api/image_writer_private.h"
 #include "extensions/common/extension_id.h"
 
+#if defined(OS_CHROMEOS)
+#include "chromeos/disks/disk_mount_manager.h"
+#endif
+
 namespace image_writer_api = extensions::api::image_writer_private;
 
 namespace base {
@@ -183,7 +187,8 @@
   // Unmounts all volumes on |device_path_|.
   void UnmountVolumes(const base::Closure& continuation);
   // Starts the write after unmounting.
-  void UnmountVolumesCallback(const base::Closure& continuation, bool success);
+  void UnmountVolumesCallback(const base::Closure& continuation,
+                              chromeos::MountError error_code);
   // Starts the ImageBurner write.  Note that target_path is the file path of
   // the device where device_path has been a system device path.
   void StartWriteOnUIThread(const std::string& target_path,
diff --git a/chrome/browser/extensions/api/image_writer_private/operation_chromeos.cc b/chrome/browser/extensions/api/image_writer_private/operation_chromeos.cc
index af24359..6817c9d 100644
--- a/chrome/browser/extensions/api/image_writer_private/operation_chromeos.cc
+++ b/chrome/browser/extensions/api/image_writer_private/operation_chromeos.cc
@@ -62,11 +62,11 @@
 }
 
 void Operation::UnmountVolumesCallback(const base::Closure& continuation,
-                                       bool success) {
+                                       chromeos::MountError error_code) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  if (!success) {
-    LOG(ERROR) << "Volume unmounting failed.";
+  if (error_code != chromeos::MOUNT_ERROR_NONE) {
+    LOG(ERROR) << "Volume unmounting failed with error code " << error_code;
     PostTask(base::Bind(&Operation::Error, this, error::kUnmountVolumesError));
     return;
   }
diff --git a/chrome/browser/extensions/api/image_writer_private/test_utils.cc b/chrome/browser/extensions/api/image_writer_private/test_utils.cc
index ede1dee6..f6d4020 100644
--- a/chrome/browser/extensions/api/image_writer_private/test_utils.cc
+++ b/chrome/browser/extensions/api/image_writer_private/test_utils.cc
@@ -74,9 +74,10 @@
 
 void FakeDiskMountManager::UnmountDeviceRecursively(
     const std::string& device_path,
-    const UnmountDeviceRecursivelyCallbackType& callback) {
-  base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
-                                                base::BindOnce(callback, true));
+    UnmountDeviceRecursivelyCallbackType callback) {
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE,
+      base::BindOnce(std::move(callback), chromeos::MOUNT_ERROR_NONE));
 }
 #endif
 
diff --git a/chrome/browser/extensions/api/image_writer_private/test_utils.h b/chrome/browser/extensions/api/image_writer_private/test_utils.h
index 1031b57..aa03979 100644
--- a/chrome/browser/extensions/api/image_writer_private/test_utils.h
+++ b/chrome/browser/extensions/api/image_writer_private/test_utils.h
@@ -70,7 +70,7 @@
 
   void UnmountDeviceRecursively(
       const std::string& device_path,
-      const UnmountDeviceRecursivelyCallbackType& callback) override;
+      UnmountDeviceRecursivelyCallbackType callback) override;
 
  private:
   DiskMap disks_;
diff --git a/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc b/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc
index 16ec066f..6273209 100644
--- a/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc
+++ b/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc
@@ -228,7 +228,7 @@
         base::CreateSequencedTaskRunnerWithTraits(
             {base::MayBlock(), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}));
     return std::make_unique<gcm::GCMProfileService>(
-        profile->GetPrefs(), profile->GetPath(), profile->GetRequestContext(),
+        profile->GetPrefs(), profile->GetPath(),
         base::BindRepeating(&RequestProxyResolvingSocketFactory, profile),
         content::BrowserContext::GetDefaultStoragePartition(profile)
             ->GetURLLoaderFactoryForBrowserProcess(),
diff --git a/chrome/browser/extensions/extension_messages_apitest.cc b/chrome/browser/extensions/extension_messages_apitest.cc
index 8ab9de2..76e32df 100644
--- a/chrome/browser/extensions/extension_messages_apitest.cc
+++ b/chrome/browser/extensions/extension_messages_apitest.cc
@@ -1146,8 +1146,7 @@
   std::string expected_tls_channel_id_value =
       CreateTlsChannelId(profile()->GetRequestContext(), chromium_org_url());
   bool expect_empty_id = false;
-  if (!base::FeatureList::IsEnabled(::features::kChannelID) &&
-      !base::FeatureList::IsEnabled(::features::kTokenBinding)) {
+  if (!base::FeatureList::IsEnabled(::features::kChannelID)) {
     expected_tls_channel_id_value = "";
     expect_empty_id = true;
   }
@@ -1208,10 +1207,7 @@
   ~ExternallyConnectableMessagingTestNoChannelID() override {}
 
   void SetUpCommandLine(base::CommandLine* command_line) override {
-    std::vector<base::Feature> enabled_features;
-    std::vector<base::Feature> disabled_features = {::features::kChannelID,
-                                                    ::features::kTokenBinding};
-    scoped_feature_list_.InitWithFeatures(enabled_features, disabled_features);
+    scoped_feature_list_.InitAndDisableFeature(::features::kChannelID);
     ExternallyConnectableMessagingTest::SetUpCommandLine(command_line);
   }
 
@@ -1470,8 +1466,7 @@
   std::string tls_channel_id = CreateTlsChannelId(
       app_storage_partition->GetURLRequestContext(), background_url);
   ASSERT_FALSE(tls_channel_id.empty());
-  if (!base::FeatureList::IsEnabled(::features::kChannelID) &&
-      !base::FeatureList::IsEnabled(::features::kTokenBinding)) {
+  if (!base::FeatureList::IsEnabled(::features::kChannelID)) {
     tls_channel_id = "undefined";
   }
 
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 1f23bdc..08a4cc7 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -766,9 +766,6 @@
     "Enables the new, experimental implementation of session sync (aka tab "
     "sync).";
 
-const char kEnableTokenBindingName[] = "Token Binding.";
-const char kEnableTokenBindingDescription[] = "Enable Token Binding support.";
-
 const char kEnableUseZoomForDsfName[] =
     "Use Blink's zoom for device scale factor.";
 const char kEnableUseZoomForDsfDescription[] =
@@ -2749,6 +2746,11 @@
 const char kAccountConsistencyChoiceMirror[] = "Mirror";
 const char kAccountConsistencyChoiceDice[] = "Dice";
 
+const char kAutofillDropdownLayoutName[] =
+    "Autofill Dropdown Layout Experiment";
+const char kAutofillDropdownLayoutDescription[] =
+    "Alternate visual designs for the Autofill dropdown.";
+
 const char kDoodlesOnLocalNtpName[] = "Enable doodles on the local NTP";
 const char kDoodlesOnLocalNtpDescription[] =
     "Show doodles on the local New Tab page if Google is the default search "
@@ -3473,6 +3475,12 @@
     "Enables Chrome to use the  color space information provided by the monitor"
     " instead of the default sRGB color space.";
 
+const char kVaapiJpegImageDecodeAccelerationName[] =
+    "VA-API JPEG decode acceleration for images";
+const char kVaapiJpegImageDecodeAccelerationDescription[] =
+    "Enable or disable decode acceleration of JPEG images (as opposed to camera"
+    " captures) using the VA-API.";
+
 const char kVideoPlayerChromecastSupportName[] =
     "Experimental Chromecast support for Video Player";
 const char kVideoPlayerChromecastSupportDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 381b4d7..b92597a 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -479,9 +479,6 @@
 extern const char kEnableSyncUSSSessionsName[];
 extern const char kEnableSyncUSSSessionsDescription[];
 
-extern const char kEnableTokenBindingName[];
-extern const char kEnableTokenBindingDescription[];
-
 extern const char kEnableUseZoomForDsfName[];
 extern const char kEnableUseZoomForDsfDescription[];
 extern const char kEnableUseZoomForDsfChoiceDefault[];
@@ -1664,6 +1661,9 @@
 extern const char kAccountConsistencyChoiceMirror[];
 extern const char kAccountConsistencyChoiceDice[];
 
+extern const char kAutofillDropdownLayoutName[];
+extern const char kAutofillDropdownLayoutDescription[];
+
 extern const char kDoodlesOnLocalNtpName[];
 extern const char kDoodlesOnLocalNtpDescription[];
 
@@ -2115,6 +2115,9 @@
 extern const char kUseMonitorColorSpaceName[];
 extern const char kUseMonitorColorSpaceDescription[];
 
+extern const char kVaapiJpegImageDecodeAccelerationName[];
+extern const char kVaapiJpegImageDecodeAccelerationDescription[];
+
 extern const char kVideoPlayerChromecastSupportName[];
 extern const char kVideoPlayerChromecastSupportDescription[];
 
diff --git a/chrome/browser/gcm/gcm_profile_service_factory.cc b/chrome/browser/gcm/gcm_profile_service_factory.cc
index ed3be69..383e1d27 100644
--- a/chrome/browser/gcm/gcm_profile_service_factory.cc
+++ b/chrome/browser/gcm/gcm_profile_service_factory.cc
@@ -111,7 +111,7 @@
       new GCMProfileService(profile->GetPath(), blocking_task_runner));
 #else
   service = std::make_unique<GCMProfileService>(
-      profile->GetPrefs(), profile->GetPath(), profile->GetRequestContext(),
+      profile->GetPrefs(), profile->GetPath(),
       base::BindRepeating(&RequestProxyResolvingSocketFactory, profile),
       content::BrowserContext::GetDefaultStoragePartition(profile)
           ->GetURLLoaderFactoryForBrowserProcess(),
diff --git a/chrome/browser/gcm/gcm_profile_service_unittest.cc b/chrome/browser/gcm/gcm_profile_service_unittest.cc
index 55e0bf1..87f62e6 100644
--- a/chrome/browser/gcm/gcm_profile_service_unittest.cc
+++ b/chrome/browser/gcm/gcm_profile_service_unittest.cc
@@ -71,7 +71,7 @@
       base::CreateSequencedTaskRunnerWithTraits(
           {base::MayBlock(), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}));
   return std::make_unique<gcm::GCMProfileService>(
-      profile->GetPrefs(), profile->GetPath(), profile->GetRequestContext(),
+      profile->GetPrefs(), profile->GetPath(),
       base::BindRepeating(&RequestProxyResolvingSocketFactory, profile),
       content::BrowserContext::GetDefaultStoragePartition(profile)
           ->GetURLLoaderFactoryForBrowserProcess(),
diff --git a/chrome/browser/media/webrtc/media_stream_devices_controller.cc b/chrome/browser/media/webrtc/media_stream_devices_controller.cc
index 45a502cf..43c5271 100644
--- a/chrome/browser/media/webrtc/media_stream_devices_controller.cc
+++ b/chrome/browser/media/webrtc/media_stream_devices_controller.cc
@@ -8,7 +8,6 @@
 #include <utility>
 
 #include "base/callback_helpers.h"
-#include "base/feature_list.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/values.h"
@@ -32,7 +31,6 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/render_widget_host_view.h"
-#include "content/public/common/content_features.h"
 #include "content/public/common/media_stream_request.h"
 #include "content/public/common/origin_util.h"
 #include "extensions/common/constants.h"
@@ -54,13 +52,6 @@
 
 namespace {
 
-const char kPepperMediaFeaturePolicyDeprecationMessage[] =
-    "Microphone and camera usage in cross-origin iframes is deprecated and "
-    "will be disabled in M64 (around January 2018). To continue to use this "
-    "feature, it must be enabled by the embedding document using Feature "
-    "Policy, e.g. <iframe allow=\"microphone; camera;\" ...>. See "
-    "https://goo.gl/EuHzyv for more details.";
-
 // Returns true if the given ContentSettingsType is being requested in
 // |request|.
 bool ContentTypeIsRequested(ContentSettingsType type,
@@ -317,26 +308,6 @@
                                      request, &denial_reason_);
   video_setting_ = GetContentSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA,
                                      request, &denial_reason_);
-
-  // Log a deprecation warning for pepper requests made when a feature policy is
-  // in place. Other types of requests (namely getUserMedia requests) have a
-  // deprecation warning logged in blink. Only do this if
-  // kUseFeaturePolicyForPermissions isn't yet enabled. When it is enabled, we
-  // log an error in PermissionContextBase as a part of the request.
-  if (request_.request_type == content::MEDIA_OPEN_DEVICE_PEPPER_ONLY &&
-      !base::FeatureList::IsEnabled(
-          features::kUseFeaturePolicyForPermissions)) {
-    DCHECK_NE(CONTENT_SETTING_DEFAULT, audio_setting_);
-    DCHECK_NE(CONTENT_SETTING_DEFAULT, video_setting_);
-    content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(
-        request.render_process_id, request.render_frame_id);
-    if (!rfh->IsFeatureEnabled(
-            blink::mojom::FeaturePolicyFeature::kMicrophone) ||
-        !rfh->IsFeatureEnabled(blink::mojom::FeaturePolicyFeature::kCamera)) {
-      rfh->AddMessageToConsole(content::CONSOLE_MESSAGE_LEVEL_WARNING,
-                               kPepperMediaFeaturePolicyDeprecationMessage);
-    }
-  }
 }
 
 bool MediaStreamDevicesController::ShouldRequestAudio() const {
diff --git a/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.cc b/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.cc
index 4832ed3..669d481 100644
--- a/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.cc
+++ b/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.h"
 
 #include <algorithm>
+#include <utility>
 
 #include "base/numerics/safe_conversions.h"
 #include "chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.h"
@@ -20,41 +21,6 @@
 
 namespace {
 
-void CallCompletionCallbackWithPlatformFileError(
-    const net::CompletionCallback& callback,
-    base::File::Error file_error) {
-  callback.Run(net::FileErrorToNetError(file_error));
-}
-
-void CallInt64CompletionCallbackWithPlatformFileError(
-    const net::Int64CompletionCallback& callback,
-    base::File::Error file_error) {
-  callback.Run(net::FileErrorToNetError(file_error));
-}
-
-void ReadBytes(
-    const storage::FileSystemURL& url,
-    const scoped_refptr<net::IOBuffer>& buf,
-    int64_t offset,
-    int buf_len,
-    const MTPDeviceAsyncDelegate::ReadBytesSuccessCallback& success_callback,
-    const net::CompletionCallback& error_callback) {
-  MTPDeviceAsyncDelegate* delegate =
-      MTPDeviceMapService::GetInstance()->GetMTPDeviceAsyncDelegate(url);
-  if (!delegate) {
-    error_callback.Run(net::ERR_FAILED);
-    return;
-  }
-
-  delegate->ReadBytes(
-      url.path(),
-      buf,
-      offset,
-      buf_len,
-      success_callback,
-      base::Bind(&CallCompletionCallbackWithPlatformFileError, error_callback));
-}
-
 }  // namespace
 
 MTPFileStreamReader::MTPFileStreamReader(
@@ -73,8 +39,9 @@
 MTPFileStreamReader::~MTPFileStreamReader() {
 }
 
-int MTPFileStreamReader::Read(net::IOBuffer* buf, int buf_len,
-                              const net::CompletionCallback& callback) {
+int MTPFileStreamReader::Read(net::IOBuffer* buf,
+                              int buf_len,
+                              net::CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
 
   MTPDeviceAsyncDelegate* delegate =
@@ -82,6 +49,7 @@
   if (!delegate)
     return net::ERR_FAILED;
 
+  read_callback_ = std::move(callback);
   if (!media_header_validated_) {
     scoped_refptr<net::IOBuffer> header_buf;
     int header_buf_len = 0;
@@ -101,21 +69,19 @@
         url_, header_buf.get(), 0, header_buf_len,
         base::Bind(&MTPFileStreamReader::FinishValidateMediaHeader,
                    weak_factory_.GetWeakPtr(), base::RetainedRef(header_buf),
-                   base::RetainedRef(buf), buf_len, callback),
-        callback);
+                   base::RetainedRef(buf), buf_len));
     return net::ERR_IO_PENDING;
   }
 
-  ReadBytes(url_, buf, current_offset_, buf_len,
-            base::Bind(&MTPFileStreamReader::FinishRead,
-                       weak_factory_.GetWeakPtr(), callback),
-            callback);
+  ReadBytes(
+      url_, buf, current_offset_, buf_len,
+      base::Bind(&MTPFileStreamReader::FinishRead, weak_factory_.GetWeakPtr()));
 
   return net::ERR_IO_PENDING;
 }
 
 int64_t MTPFileStreamReader::GetLength(
-    const net::Int64CompletionCallback& callback) {
+    net::Int64CompletionOnceCallback callback) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
 
   MTPDeviceAsyncDelegate* delegate =
@@ -123,12 +89,14 @@
   if (!delegate)
     return net::ERR_FAILED;
 
+  get_length_callback_ = std::move(callback);
   delegate->GetFileInfo(
-        url_.path(),
-        base::Bind(&MTPFileStreamReader::FinishGetLength,
-                   weak_factory_.GetWeakPtr(), callback),
-        base::Bind(&CallInt64CompletionCallbackWithPlatformFileError,
-                   callback));
+      url_.path(),
+      base::Bind(&MTPFileStreamReader::FinishGetLength,
+                 weak_factory_.GetWeakPtr()),
+      base::Bind(
+          &MTPFileStreamReader::CallGetLengthCallbackWithPlatformFileError,
+          weak_factory_.GetWeakPtr()));
 
   return net::ERR_IO_PENDING;
 }
@@ -136,7 +104,6 @@
 void MTPFileStreamReader::FinishValidateMediaHeader(
     net::IOBuffer* header_buf,
     net::IOBuffer* buf, int buf_len,
-    const net::CompletionCallback& callback,
     const base::File::Info& file_info,
     int header_bytes_read) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
@@ -144,7 +111,7 @@
   base::File::Error error = NativeMediaFileUtil::BufferIsMediaHeader(
       header_buf, header_bytes_read);
   if (error != base::File::FILE_OK) {
-    CallCompletionCallbackWithPlatformFileError(callback, error);
+    CallReadCallbackwithPlatformFileError(error);
     return;
   }
 
@@ -153,40 +120,66 @@
   // Finish the read immediately if we've already finished reading into the
   // originally requested buffer.
   if (header_buf == buf)
-    return FinishRead(callback, file_info, header_bytes_read);
+    return FinishRead(file_info, header_bytes_read);
 
   // Header buffer isn't the same as the original read buffer. Make a separate
   // request for that.
-  ReadBytes(url_, buf, current_offset_, buf_len,
-            base::Bind(&MTPFileStreamReader::FinishRead,
-                       weak_factory_.GetWeakPtr(), callback),
-            callback);
+  ReadBytes(
+      url_, buf, current_offset_, buf_len,
+      base::Bind(&MTPFileStreamReader::FinishRead, weak_factory_.GetWeakPtr()));
 }
 
-void MTPFileStreamReader::FinishRead(const net::CompletionCallback& callback,
-                                     const base::File::Info& file_info,
+void MTPFileStreamReader::FinishRead(const base::File::Info& file_info,
                                      int bytes_read) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
 
   if (!VerifySnapshotTime(expected_modification_time_, file_info)) {
-    callback.Run(net::ERR_UPLOAD_FILE_CHANGED);
+    std::move(read_callback_).Run(net::ERR_UPLOAD_FILE_CHANGED);
     return;
   }
 
   DCHECK_GE(bytes_read, 0);
   current_offset_ += bytes_read;
-  callback.Run(bytes_read);
+  std::move(read_callback_).Run(bytes_read);
 }
 
 void MTPFileStreamReader::FinishGetLength(
-    const net::Int64CompletionCallback& callback,
     const base::File::Info& file_info) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
 
   if (!VerifySnapshotTime(expected_modification_time_, file_info)) {
-    callback.Run(net::ERR_UPLOAD_FILE_CHANGED);
+    std::move(get_length_callback_).Run(net::ERR_UPLOAD_FILE_CHANGED);
     return;
   }
 
-  callback.Run(file_info.size);
+  std::move(get_length_callback_).Run(file_info.size);
+}
+
+void MTPFileStreamReader::CallReadCallbackwithPlatformFileError(
+    base::File::Error file_error) {
+  std::move(read_callback_).Run(net::FileErrorToNetError(file_error));
+}
+
+void MTPFileStreamReader::CallGetLengthCallbackWithPlatformFileError(
+    base::File::Error file_error) {
+  std::move(get_length_callback_).Run(net::FileErrorToNetError(file_error));
+}
+
+void MTPFileStreamReader::ReadBytes(
+    const storage::FileSystemURL& url,
+    const scoped_refptr<net::IOBuffer>& buf,
+    int64_t offset,
+    int buf_len,
+    const MTPDeviceAsyncDelegate::ReadBytesSuccessCallback& success_callback) {
+  MTPDeviceAsyncDelegate* delegate =
+      MTPDeviceMapService::GetInstance()->GetMTPDeviceAsyncDelegate(url);
+  if (!delegate) {
+    std::move(read_callback_).Run(net::ERR_FAILED);
+    return;
+  }
+
+  delegate->ReadBytes(
+      url.path(), buf, offset, buf_len, success_callback,
+      base::Bind(&MTPFileStreamReader::CallReadCallbackwithPlatformFileError,
+                 weak_factory_.GetWeakPtr()));
 }
diff --git a/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.h b/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.h
index 9992c66..36a8181a 100644
--- a/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.h
+++ b/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.h
@@ -12,6 +12,8 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
+#include "chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/fileapi/file_stream_reader.h"
 #include "storage/browser/fileapi/file_system_url.h"
 #include "storage/browser/storage_browser_export.h"
@@ -33,27 +35,37 @@
   // FileStreamReader overrides.
   int Read(net::IOBuffer* buf,
            int buf_len,
-           const net::CompletionCallback& callback) override;
-  int64_t GetLength(const net::Int64CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
+  int64_t GetLength(net::Int64CompletionOnceCallback callback) override;
 
  private:
   void FinishValidateMediaHeader(
       net::IOBuffer* header_buf,
       net::IOBuffer* buf, int buf_len,
-      const net::CompletionCallback& callback,
       const base::File::Info& file_info,
       int header_bytes_read);
 
-  void FinishRead(const net::CompletionCallback& callback,
-                  const base::File::Info& file_info, int bytes_read);
+  void FinishRead(const base::File::Info& file_info, int bytes_read);
 
-  void FinishGetLength(const net::Int64CompletionCallback& callback,
-                       const base::File::Info& file_info);
+  void FinishGetLength(const base::File::Info& file_info);
+
+  void CallReadCallbackwithPlatformFileError(base::File::Error file_error);
+
+  void CallGetLengthCallbackWithPlatformFileError(base::File::Error file_error);
+
+  void ReadBytes(
+      const storage::FileSystemURL& url,
+      const scoped_refptr<net::IOBuffer>& buf,
+      int64_t offset,
+      int buf_len,
+      const MTPDeviceAsyncDelegate::ReadBytesSuccessCallback& success_callback);
 
   scoped_refptr<storage::FileSystemContext> file_system_context_;
   storage::FileSystemURL url_;
   int64_t current_offset_;
   const base::Time expected_modification_time_;
+  net::CompletionOnceCallback read_callback_;
+  net::Int64CompletionOnceCallback get_length_callback_;
 
   bool media_header_validated_;
 
diff --git a/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc b/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc
index 2f67eb6..00dc070a 100644
--- a/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc
+++ b/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc
@@ -7,6 +7,7 @@
 #include <stddef.h>
 
 #include <algorithm>
+#include <utility>
 
 #include "base/numerics/safe_conversions.h"
 #include "net/base/io_buffer.h"
@@ -30,8 +31,9 @@
 
 ReadaheadFileStreamReader::~ReadaheadFileStreamReader() {}
 
-int ReadaheadFileStreamReader::Read(
-    net::IOBuffer* buf, int buf_len, const net::CompletionCallback& callback) {
+int ReadaheadFileStreamReader::Read(net::IOBuffer* buf,
+                                    int buf_len,
+                                    net::CompletionOnceCallback callback) {
   DCHECK(!pending_sink_buffer_.get());
   DCHECK(pending_read_callback_.is_null());
 
@@ -46,15 +48,15 @@
     DCHECK(!pending_sink_buffer_.get());
     DCHECK(pending_read_callback_.is_null());
     pending_sink_buffer_ = sink;
-    pending_read_callback_ = callback;
+    pending_read_callback_ = std::move(callback);
   }
 
   return result;
 }
 
 int64_t ReadaheadFileStreamReader::GetLength(
-    const net::Int64CompletionCallback& callback) {
-  return source_->GetLength(callback);
+    net::Int64CompletionOnceCallback callback) {
+  return source_->GetLength(std::move(callback));
 }
 
 int ReadaheadFileStreamReader::FinishReadFromCacheOrStoredError(
@@ -138,9 +140,7 @@
     // dispatches another read.
     scoped_refptr<net::DrainableIOBuffer> sink = pending_sink_buffer_;
     pending_sink_buffer_ = NULL;
-    net::CompletionCallback completion_callback = pending_read_callback_;
-    pending_read_callback_.Reset();
-
-    completion_callback.Run(FinishReadFromCacheOrStoredError(sink.get()));
+    std::move(pending_read_callback_)
+        .Run(FinishReadFromCacheOrStoredError(sink.get()));
   }
 }
diff --git a/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.h b/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.h
index cac3350..32213d3 100644
--- a/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.h
+++ b/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.h
@@ -10,6 +10,7 @@
 #include "base/containers/queue.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
+#include "net/base/completion_once_callback.h"
 #include "net/base/io_buffer.h"
 #include "storage/browser/fileapi/file_stream_reader.h"
 
@@ -24,8 +25,8 @@
   // FileStreamReader overrides.
   int Read(net::IOBuffer* buf,
            int buf_len,
-           const net::CompletionCallback& callback) override;
-  int64_t GetLength(const net::Int64CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
+  int64_t GetLength(net::Int64CompletionOnceCallback callback) override;
 
  private:
   // Returns the number of bytes consumed from the internal cache into |sink|.
@@ -53,7 +54,7 @@
   // The read buffer waiting for the source FileStreamReader to finish
   // reading and fill the cache.
   scoped_refptr<net::DrainableIOBuffer> pending_sink_buffer_;
-  net::CompletionCallback pending_read_callback_;
+  net::CompletionOnceCallback pending_read_callback_;
 
   base::WeakPtrFactory<ReadaheadFileStreamReader> weak_factory_;
 
diff --git a/chrome/browser/memory/chrome_memory_coordinator_delegate.cc b/chrome/browser/memory/chrome_memory_coordinator_delegate.cc
index 12f431f5..f5c77c32 100644
--- a/chrome/browser/memory/chrome_memory_coordinator_delegate.cc
+++ b/chrome/browser/memory/chrome_memory_coordinator_delegate.cc
@@ -7,7 +7,7 @@
 #include "base/memory/ptr_util.h"
 #include "build/build_config.h"
 #include "chrome/browser/browser_process.h"
-#include "chrome/browser/resource_coordinator/discard_reason.h"
+#include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom.h"
 
 #if !defined(OS_ANDROID)
 #include "chrome/browser/resource_coordinator/tab_manager.h"
@@ -29,8 +29,8 @@
 #if !defined(OS_ANDROID)
   if (g_browser_process->GetTabManager()) {
     g_browser_process->GetTabManager()->DiscardTab(
-        skip_unload_handlers ? resource_coordinator::DiscardReason::kUrgent
-                             : resource_coordinator::DiscardReason::kProactive);
+        skip_unload_handlers ? mojom::LifecycleUnitDiscardReason::URGENT
+                             : mojom::LifecycleUnitDiscardReason::PROACTIVE);
   }
 #endif
 }
diff --git a/chrome/browser/metrics/thread_watcher_report_hang.cc b/chrome/browser/metrics/thread_watcher_report_hang.cc
index 4510495c..f954106 100644
--- a/chrome/browser/metrics/thread_watcher_report_hang.cc
+++ b/chrome/browser/metrics/thread_watcher_report_hang.cc
@@ -4,11 +4,6 @@
 
 #include "chrome/browser/metrics/thread_watcher_report_hang.h"
 
-// We disable optimizations for the whole file so the compiler doesn't merge
-// them all together.
-MSVC_DISABLE_OPTIMIZE()
-MSVC_PUSH_DISABLE_WARNING(4748)
-
 #include "base/debug/debugger.h"
 #include "base/debug/dump_without_crashing.h"
 
@@ -72,5 +67,3 @@
 
 }  // namespace metrics
 
-MSVC_POP_WARNING()
-MSVC_ENABLE_OPTIMIZE();
diff --git a/chrome/browser/no_background_tasks_browsertest.cc b/chrome/browser/no_background_tasks_browsertest.cc
index 858ed71..d7223e0 100644
--- a/chrome/browser/no_background_tasks_browsertest.cc
+++ b/chrome/browser/no_background_tasks_browsertest.cc
@@ -57,7 +57,9 @@
 // TODO(fdoray): Enable on ChromeOS once all dependencies on background tasks to
 // produce the first non-empty paint have been removed. https://crbug.com/831835
 // This test is flaky on Mac: https://crbug.com/833989
-#if defined(OS_CHROMEOS) || defined(OS_MACOSX)
+// TODO(http://crbug.com/876184 Command line is too long for win-asan.
+#if defined(OS_CHROMEOS) || defined(OS_MACOSX) || \
+    (defined(OS_WIN) && defined(ADDRESS_SANITIZER))
 #define MAYBE_FirstNonEmptyPaintWithoutBackgroundTasks \
   DISABLED_FirstNonEmptyPaintWithoutBackgroundTasks
 #else
diff --git a/chrome/browser/notifications/persistent_notification_handler_unittest.cc b/chrome/browser/notifications/persistent_notification_handler_unittest.cc
new file mode 100644
index 0000000..d1b7025b
--- /dev/null
+++ b/chrome/browser/notifications/persistent_notification_handler_unittest.cc
@@ -0,0 +1,140 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/notifications/persistent_notification_handler.h"
+
+#include <memory>
+
+#include "base/macros.h"
+#include "chrome/browser/notifications/metrics/mock_notification_metrics_logger.h"
+#include "chrome/browser/notifications/metrics/notification_metrics_logger_factory.h"
+#include "chrome/browser/notifications/notification_permission_context.h"
+#include "chrome/test/base/testing_profile.h"
+#include "content/public/browser/permission_type.h"
+#include "content/public/test/mock_permission_manager.h"
+#include "content/public/test/test_browser_thread_bundle.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/platform/modules/permissions/permission_status.mojom.h"
+
+using ::testing::_;
+using ::testing::Return;
+
+namespace {
+
+const char kExampleNotificationId[] = "example_notification_id";
+const char kExampleOrigin[] = "https://example.com";
+
+class TestingProfileWithPermissionManager : public TestingProfile {
+ public:
+  TestingProfileWithPermissionManager()
+      : permission_manager_(
+            std::make_unique<
+                testing::NiceMock<content::MockPermissionManager>>()) {}
+
+  ~TestingProfileWithPermissionManager() override = default;
+
+  // Sets the notification permission status to |permission_status|.
+  void SetNotificationPermissionStatus(
+      blink::mojom::PermissionStatus permission_status) {
+    ON_CALL(*permission_manager_,
+            GetPermissionStatus(content::PermissionType::NOTIFICATIONS, _, _))
+        .WillByDefault(Return(permission_status));
+  }
+
+  // TestingProfile overrides:
+  content::PermissionControllerDelegate* GetPermissionControllerDelegate()
+      override {
+    return permission_manager_.get();
+  }
+
+ private:
+  std::unique_ptr<content::MockPermissionManager> permission_manager_;
+
+  DISALLOW_COPY_AND_ASSIGN(TestingProfileWithPermissionManager);
+};
+
+class PersistentNotificationHandlerTest : public ::testing::Test {
+ public:
+  PersistentNotificationHandlerTest() : origin_(kExampleOrigin) {}
+
+  ~PersistentNotificationHandlerTest() override = default;
+
+  // ::testing::Test overrides:
+  void SetUp() override {
+    mock_logger_ = static_cast<MockNotificationMetricsLogger*>(
+        NotificationMetricsLoggerFactory::GetInstance()
+            ->SetTestingFactoryAndUse(
+                &profile_, &MockNotificationMetricsLogger::FactoryForTests));
+  }
+
+ protected:
+  content::TestBrowserThreadBundle thread_bundle_;
+  TestingProfileWithPermissionManager profile_;
+
+  // The origin for which these tests are being run.
+  GURL origin_;
+
+  // Owned by the |profile_| as a keyed service.
+  MockNotificationMetricsLogger* mock_logger_ = nullptr;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(PersistentNotificationHandlerTest);
+};
+
+TEST_F(PersistentNotificationHandlerTest, OnClick_WithoutPermission) {
+  EXPECT_CALL(*mock_logger_, LogPersistentNotificationClickWithoutPermission());
+  profile_.SetNotificationPermissionStatus(
+      blink::mojom::PermissionStatus::DENIED);
+
+  std::unique_ptr<NotificationHandler> handler =
+      std::make_unique<PersistentNotificationHandler>();
+
+  handler->OnClick(&profile_, origin_, kExampleNotificationId,
+                   base::nullopt /* action_index */, base::nullopt /* reply */,
+                   base::DoNothing());
+}
+
+TEST_F(PersistentNotificationHandlerTest, OnClose_ByUser) {
+  EXPECT_CALL(*mock_logger_, LogPersistentNotificationClosedByUser());
+
+  std::unique_ptr<NotificationHandler> handler =
+      std::make_unique<PersistentNotificationHandler>();
+
+  handler->OnClose(&profile_, origin_, kExampleNotificationId,
+                   /* by_user= */ true, base::DoNothing());
+}
+
+TEST_F(PersistentNotificationHandlerTest, OnClose_Programmatically) {
+  EXPECT_CALL(*mock_logger_, LogPersistentNotificationClosedProgrammatically());
+
+  std::unique_ptr<NotificationHandler> handler =
+      std::make_unique<PersistentNotificationHandler>();
+
+  handler->OnClose(&profile_, origin_, kExampleNotificationId,
+                   /* by_user= */ false, base::DoNothing());
+}
+
+TEST_F(PersistentNotificationHandlerTest, DisableNotifications) {
+  std::unique_ptr<NotificationPermissionContext> permission_context =
+      std::make_unique<NotificationPermissionContext>(&profile_);
+
+  ASSERT_EQ(permission_context
+                ->GetPermissionStatus(nullptr /* render_frame_host */, origin_,
+                                      origin_)
+                .content_setting,
+            CONTENT_SETTING_ASK);
+
+  std::unique_ptr<NotificationHandler> handler =
+      std::make_unique<PersistentNotificationHandler>();
+  handler->DisableNotifications(&profile_, origin_);
+
+  ASSERT_EQ(permission_context
+                ->GetPermissionStatus(nullptr /* render_frame_host */, origin_,
+                                      origin_)
+                .content_setting,
+            CONTENT_SETTING_BLOCK);
+}
+
+}  // namespace
diff --git a/chrome/browser/notifications/platform_notification_service_unittest.cc b/chrome/browser/notifications/platform_notification_service_unittest.cc
index 01a7b40..694362d 100644
--- a/chrome/browser/notifications/platform_notification_service_unittest.cc
+++ b/chrome/browser/notifications/platform_notification_service_unittest.cc
@@ -21,22 +21,18 @@
 #include "chrome/browser/notifications/notification_display_service_impl.h"
 #include "chrome/browser/notifications/notification_display_service_tester.h"
 #include "chrome/browser/notifications/platform_notification_service_impl.h"
-#include "chrome/common/chrome_features.h"
 #include "chrome/test/base/testing_profile.h"
 #include "components/history/core/browser/history_database_params.h"
 #include "components/history/core/browser/history_service.h"
 #include "components/history/core/test/test_history_database.h"
 #include "components/ukm/test_ukm_recorder.h"
-#include "content/public/browser/permission_type.h"
 #include "content/public/common/notification_resources.h"
 #include "content/public/common/platform_notification_data.h"
-#include "content/public/test/mock_permission_manager.h"
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "extensions/buildflags/buildflags.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/public/platform/modules/permissions/permission_status.mojom.h"
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
 #include "chrome/browser/extensions/extension_service.h"
@@ -47,8 +43,6 @@
 #include "extensions/common/value_builder.h"
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
-using ::testing::_;
-using ::testing::Return;
 using content::NotificationResources;
 using content::PlatformNotificationData;
 using content::NotificationDatabaseData;
@@ -74,35 +68,6 @@
 const char kTimeUntilFirstClickMillis[] = "TimeUntilFirstClick";
 const char kTimeUntilLastClickMillis[] = "TimeUntilLastClick";
 
-class TestingProfileWithPermissionManager : public TestingProfile {
- public:
-  TestingProfileWithPermissionManager()
-      : permission_manager_(
-            std::make_unique<
-                testing::NiceMock<content::MockPermissionManager>>()) {}
-
-  ~TestingProfileWithPermissionManager() override = default;
-
-  // Sets the notification permission status to |permission_status|.
-  void SetNotificationPermissionStatus(
-      blink::mojom::PermissionStatus permission_status) {
-    ON_CALL(*permission_manager_,
-            GetPermissionStatus(content::PermissionType::NOTIFICATIONS, _, _))
-        .WillByDefault(Return(permission_status));
-  }
-
-  // TestingProfile overrides:
-  content::PermissionControllerDelegate* GetPermissionControllerDelegate()
-      override {
-    return permission_manager_.get();
-  }
-
- private:
-  std::unique_ptr<content::MockPermissionManager> permission_manager_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestingProfileWithPermissionManager);
-};
-
 }  // namespace
 
 class PlatformNotificationServiceTest : public testing::Test {
@@ -144,8 +109,7 @@
 
  protected:
   content::TestBrowserThreadBundle thread_bundle_;
-
-  TestingProfileWithPermissionManager profile_;
+  TestingProfile profile_;
 
   std::unique_ptr<NotificationDisplayServiceTester> display_service_tester_;
 
@@ -199,43 +163,6 @@
                     NotificationHandler::Type::WEB_PERSISTENT));
 }
 
-TEST_F(PlatformNotificationServiceTest, OnPersistentNotificationClick) {
-  EXPECT_CALL(*mock_logger_, LogPersistentNotificationClickWithoutPermission());
-  profile_.SetNotificationPermissionStatus(
-      blink::mojom::PermissionStatus::DENIED);
-
-  NotificationHandler* handler =
-      NotificationDisplayServiceImpl::GetForProfile(&profile_)
-          ->GetNotificationHandler(NotificationHandler::Type::WEB_PERSISTENT);
-
-  handler->OnClick(&profile_, GURL("https://example.com/"),
-                   "fake_notification_id", base::nullopt /* action_index */,
-                   base::nullopt /* reply */, base::DoNothing());
-}
-
-TEST_F(PlatformNotificationServiceTest, OnPersistentNotificationClosedByUser) {
-  EXPECT_CALL(*mock_logger_, LogPersistentNotificationClosedByUser());
-  NotificationHandler* handler =
-      NotificationDisplayServiceImpl::GetForProfile(&profile_)
-          ->GetNotificationHandler(NotificationHandler::Type::WEB_PERSISTENT);
-
-  handler->OnClose(&profile_, GURL("https://example.com/"),
-                   "fake_notification_id", true /* by_user */,
-                   base::DoNothing());
-}
-
-TEST_F(PlatformNotificationServiceTest,
-       OnPersistentNotificationClosedProgrammatically) {
-  EXPECT_CALL(*mock_logger_, LogPersistentNotificationClosedProgrammatically());
-  NotificationHandler* handler =
-      NotificationDisplayServiceImpl::GetForProfile(&profile_)
-          ->GetNotificationHandler(NotificationHandler::Type::WEB_PERSISTENT);
-
-  handler->OnClose(&profile_, GURL("https://example.com/"),
-                   "fake_notification_id", false /* by_user */,
-                   base::DoNothing());
-}
-
 TEST_F(PlatformNotificationServiceTest, DisplayNonPersistentPropertiesMatch) {
   std::vector<int> vibration_pattern(
       kNotificationVibrationPattern,
diff --git a/chrome/browser/password_manager/password_store_factory.cc b/chrome/browser/password_manager/password_store_factory.cc
index 61646d9..e736952 100644
--- a/chrome/browser/password_manager/password_store_factory.cc
+++ b/chrome/browser/password_manager/password_store_factory.cc
@@ -288,7 +288,7 @@
   ps->PreparePasswordHashData(GetSyncUsername(profile));
 #endif
 
-  password_manager_util::CleanBlacklistedCredentials(ps.get(),
+  password_manager_util::DeleteBlacklistedDuplicates(ps.get(),
                                                      profile->GetPrefs(), 60);
   base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
       FROM_HERE,
diff --git a/chrome/browser/permissions/permission_context_base.cc b/chrome/browser/permissions/permission_context_base.cc
index 7a916767..b6c6742 100644
--- a/chrome/browser/permissions/permission_context_base.cc
+++ b/chrome/browser/permissions/permission_context_base.cc
@@ -391,12 +391,6 @@
 
 bool PermissionContextBase::PermissionAllowedByFeaturePolicy(
     content::RenderFrameHost* rfh) const {
-  if (!base::FeatureList::IsEnabled(
-          features::kUseFeaturePolicyForPermissions)) {
-    // Default to ignoring the feature policy.
-    return true;
-  }
-
   // Some features don't have an associated feature policy yet. Allow those.
   if (feature_policy_feature_ == blink::mojom::FeaturePolicyFeature::kNotFound)
     return true;
diff --git a/chrome/browser/permissions/permission_context_base_feature_policy_unittest.cc b/chrome/browser/permissions/permission_context_base_feature_policy_unittest.cc
index 7533cc5..9f7c9c04 100644
--- a/chrome/browser/permissions/permission_context_base_feature_policy_unittest.cc
+++ b/chrome/browser/permissions/permission_context_base_feature_policy_unittest.cc
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/test/scoped_feature_list.h"
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/browser/geolocation/geolocation_permission_context.h"
 #include "chrome/browser/media/midi_permission_context.h"
@@ -14,7 +13,6 @@
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/content_features.h"
 #include "content/public/test/navigation_simulator.h"
 #include "content/public/test/test_renderer_host.h"
 #include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom.h"
@@ -34,8 +32,6 @@
 
   void SetUp() override {
     ChromeRenderViewHostTestHarness::SetUp();
-    feature_list_.InitAndEnableFeature(
-        features::kUseFeaturePolicyForPermissions);
   }
 
  protected:
@@ -112,31 +108,8 @@
 
   ContentSetting last_request_result_;
   int request_id_;
-  base::test::ScopedFeatureList feature_list_;
 };
 
-// Feature policy should be ignored when the kUseFeaturePolicyForPermissions
-// feature is disabled.
-TEST_F(PermissionContextBaseFeaturePolicyTest, FeatureDisabled) {
-  // Disable the feature.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndDisableFeature(features::kUseFeaturePolicyForPermissions);
-
-  content::RenderFrameHost* parent = GetMainRFH(kOrigin1);
-
-  RefreshPageAndSetHeaderPolicy(
-      &parent, blink::mojom::FeaturePolicyFeature::kMidiFeature,
-      std::vector<std::string>());
-  MidiPermissionContext midi(profile());
-  EXPECT_EQ(CONTENT_SETTING_ALLOW, GetPermissionForFrame(&midi, parent));
-
-  RefreshPageAndSetHeaderPolicy(
-      &parent, blink::mojom::FeaturePolicyFeature::kGeolocation,
-      std::vector<std::string>());
-  GeolocationPermissionContext geolocation(profile());
-  EXPECT_EQ(CONTENT_SETTING_ASK, GetPermissionForFrame(&geolocation, parent));
-}
-
 TEST_F(PermissionContextBaseFeaturePolicyTest, DefaultPolicy) {
   content::RenderFrameHost* parent = GetMainRFH(kOrigin1);
   content::RenderFrameHost* child = AddChildRFH(parent, kOrigin2);
diff --git a/chrome/browser/permissions/permission_request_manager.cc b/chrome/browser/permissions/permission_request_manager.cc
index 8a8a481..a2213ee 100644
--- a/chrome/browser/permissions/permission_request_manager.cc
+++ b/chrome/browser/permissions/permission_request_manager.cc
@@ -8,7 +8,6 @@
 
 #include "base/command_line.h"
 #include "base/containers/circular_deque.h"
-#include "base/feature_list.h"
 #include "base/metrics/user_metrics.h"
 #include "base/metrics/user_metrics_action.h"
 #include "base/strings/string16.h"
@@ -18,6 +17,7 @@
 #include "chrome/browser/permissions/permission_uma_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/permission_bubble/permission_prompt.h"
+#include "chrome/browser/vr/ui_suppressed_element.h"
 #include "chrome/browser/vr/vr_tab_helper.h"
 #include "chrome/common/chrome_switches.h"
 #include "components/url_formatter/elide_url.h"
@@ -25,9 +25,7 @@
 #include "content/public/browser/navigation_handle.h"
 #include "url/origin.h"
 
-#if defined(OS_ANDROID)
-#include "chrome/browser/android/chrome_feature_list.h"
-#else  // !defined(OS_ANDROID)
+#if !defined(OS_ANDROID)
 #include "chrome/browser/extensions/extension_ui_util.h"
 #include "extensions/common/constants.h"
 #endif
@@ -96,11 +94,6 @@
 }
 
 void PermissionRequestManager::AddRequest(PermissionRequest* request) {
-#if defined(OS_ANDROID)
-  DCHECK(!vr::VrTabHelper::IsInVr(web_contents()) ||
-         base::FeatureList::IsEnabled(
-             chrome::android::kVrBrowsingNativeAndroidUi));
-#endif
 
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kDenyPermissionPrompts)) {
@@ -109,6 +102,13 @@
     return;
   }
 
+  if (vr::VrTabHelper::IsUiSuppressedInVr(
+          web_contents(), vr::UiSuppressedElement::kPermissionBubbleRequest)) {
+    request->PermissionDenied();
+    request->RequestFinished();
+    return;
+  }
+
   // TODO(tsergeant): change the UMA to no longer mention bubbles.
   base::RecordAction(base::UserMetricsAction("PermissionBubbleRequest"));
 
diff --git a/chrome/browser/platform_util_unittest.cc b/chrome/browser/platform_util_unittest.cc
index 7954ccc..528c97db 100644
--- a/chrome/browser/platform_util_unittest.cc
+++ b/chrome/browser/platform_util_unittest.cc
@@ -58,7 +58,8 @@
     // New FileSystemBackend that uses our MockSpecialStoragePolicy.
     additional_backends->push_back(
         std::make_unique<chromeos::FileSystemBackend>(
-            nullptr, nullptr, nullptr, nullptr, nullptr, external_mount_points,
+            nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
+            external_mount_points,
             storage::ExternalMountPoints::GetSystemInstance()));
   }
 };
diff --git a/chrome/browser/policy/site_isolation_policy_browsertest.cc b/chrome/browser/policy/site_isolation_policy_browsertest.cc
index 02d1e645..642908c 100644
--- a/chrome/browser/policy/site_isolation_policy_browsertest.cc
+++ b/chrome/browser/policy/site_isolation_policy_browsertest.cc
@@ -116,31 +116,9 @@
 class WebDriverSitePerProcessPolicyBrowserTest
     : public SitePerProcessPolicyBrowserTestEnabled {
  protected:
-  WebDriverSitePerProcessPolicyBrowserTest()
-      : are_sites_isolated_for_testing_(false) {}
+  WebDriverSitePerProcessPolicyBrowserTest() = default;
 
   void SetUpInProcessBrowserTestFixture() override {
-    // First take note if tests are running in site isolated environment as this
-    // will change the outcome of the test. We can't just call this method after
-    // the call to the base setup method because setting the Site Isolation
-    // policy is indistinguishable from setting the the command line flag
-    // directly.
-#if defined(OFFICIAL_BUILD)
-    // Official builds still default to no site isolation (i.e. official builds
-    // are not covered by testing/variations/fieldtrial_testing_config.json).
-    // See also https://crbug.com/836261.
-    are_sites_isolated_for_testing_ = false;
-#else
-    // Otherwise, site-per-process is turned on by default, via field trial
-    // configured with testing/variations/fieldtrial_testing_config.json.
-    // The only exception is the not_site_per_process_browser_tests step run on
-    // some trybots - in this step the --disable-site-isolation-trials flag
-    // counteracts the effects of fieldtrial_testing_config.json.
-    are_sites_isolated_for_testing_ =
-        !base::CommandLine::ForCurrentProcess()->HasSwitch(
-            switches::kDisableSiteIsolationTrials);
-#endif
-
     // We setup the policy here, because the policy must be 'live' before the
     // renderer is created, since the value for this policy is passed to the
     // renderer via a command-line. Setting the policy in the test itself or in
@@ -156,8 +134,6 @@
     provider_.UpdateChromePolicy(values);
   }
 
-  bool are_sites_isolated_for_testing_;
-
  private:
   DISALLOW_COPY_AND_ASSIGN(WebDriverSitePerProcessPolicyBrowserTest);
 };
@@ -200,8 +176,8 @@
 
 IN_PROC_BROWSER_TEST_F(WebDriverSitePerProcessPolicyBrowserTest, Simple) {
   Expectations expectations[] = {
-      {"https://foo.com/noodles.html", are_sites_isolated_for_testing_},
-      {"http://example.org/pumpkins.html", are_sites_isolated_for_testing_},
+      {"https://foo.com/noodles.html", true},
+      {"http://example.org/pumpkins.html", true},
   };
   CheckExpectations(expectations, arraysize(expectations));
 }
diff --git a/chrome/browser/predictors/resolve_host_client_impl.cc b/chrome/browser/predictors/resolve_host_client_impl.cc
index 28c7590f..381e51c9 100644
--- a/chrome/browser/predictors/resolve_host_client_impl.cc
+++ b/chrome/browser/predictors/resolve_host_client_impl.cc
@@ -10,6 +10,7 @@
 #include "mojo/public/cpp/bindings/interface_request.h"
 #include "net/base/host_port_pair.h"
 #include "net/base/net_errors.h"
+#include "net/base/request_priority.h"
 #include "services/network/public/mojom/network_context.mojom.h"
 #include "url/gurl.h"
 
@@ -22,7 +23,12 @@
     : binding_(this), callback_(std::move(callback)) {
   network::mojom::ResolveHostClientPtr resolve_host_client_ptr;
   binding_.Bind(mojo::MakeRequest(&resolve_host_client_ptr));
-  network_context->ResolveHost(net::HostPortPair::FromURL(url), nullptr,
+  network::mojom::ResolveHostParametersPtr parameters =
+      network::mojom::ResolveHostParameters::New();
+  parameters->initial_priority = net::RequestPriority::IDLE;
+  parameters->is_speculative = true;
+  network_context->ResolveHost(net::HostPortPair::FromURL(url),
+                               std::move(parameters),
                                std::move(resolve_host_client_ptr));
   binding_.set_connection_error_handler(base::BindOnce(
       &ResolveHostClientImpl::OnConnectionError, base::Unretained(this)));
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index b8232737..b1f21d71 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -688,7 +688,6 @@
   chromeos::ServicesCustomizationDocument::RegisterProfilePrefs(registry);
   chromeos::UserImageSyncObserver::RegisterProfilePrefs(registry);
   crostini::prefs::RegisterProfilePrefs(registry);
-  crostini::CrostiniRegistryService::RegisterProfilePrefs(registry);
   extensions::EPKPChallengeUserKey::RegisterProfilePrefs(registry);
   flags_ui::PrefServiceFlagsStorage::RegisterProfilePrefs(registry);
   lock_screen_apps::StateController::RegisterProfilePrefs(registry);
diff --git a/chrome/browser/prefs/pref_service_incognito_whitelist.cc b/chrome/browser/prefs/pref_service_incognito_whitelist.cc
index f38377fa..df76458 100644
--- a/chrome/browser/prefs/pref_service_incognito_whitelist.cc
+++ b/chrome/browser/prefs/pref_service_incognito_whitelist.cc
@@ -11,7 +11,6 @@
 #include "chrome/common/pref_names.h"
 #include "components/bookmarks/common/bookmark_pref_names.h"
 #include "components/consent_auditor/pref_names.h"
-#include "components/dom_distiller/core/pref_names.h"
 #include "components/flags_ui/flags_ui_pref_names.h"
 #include "components/google/core/browser/google_pref_names.h"
 #include "components/invalidation/impl/invalidation_prefs.h"
@@ -632,11 +631,6 @@
     // components/consent_auditor/pref_names.h
     consent_auditor::prefs::kLocalConsentsDictionary,
 
-    // components/dom_distiller/core/pref_names.h
-    dom_distiller::prefs::kFont, dom_distiller::prefs::kTheme,
-    dom_distiller::prefs::kFontScale,
-    dom_distiller::prefs::kReaderForAccessibility,
-
     // components/flags_ui/flags_ui_pref_names.h
     flags_ui::prefs::kEnabledLabsExperiments,
 
diff --git a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc
index de175ed..7190c49f 100644
--- a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc
+++ b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc
@@ -7,6 +7,7 @@
 #include <stddef.h>
 
 #include <memory>
+#include <utility>
 #include <vector>
 
 #include "base/bind.h"
@@ -18,30 +19,34 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/single_thread_task_runner.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/task/post_task.h"
 #include "base/threading/thread_task_runner_handle.h"
-#include "chrome/browser/browser_process.h"
 #include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/service_process/service_process_control.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/browser_thread.h"
-#include "printing/backend/print_backend.h"
+#include "extensions/browser/extension_file_task_runner.h"
 
 using content::BrowserThread;
 
 namespace {
 
-void ForwardGetPrintersResult(
-    const CloudPrintProxyService::PrintersCallback& callback,
-    const std::vector<std::string>& printers) {
+void ForwardGetPrintersResult(CloudPrintProxyService::PrintersCallback callback,
+                              const std::vector<std::string>& printers) {
   UMA_HISTOGRAM_ENUMERATION("CloudPrint.ServiceEvents",
                             ServiceProcessControl::SERVICE_PRINTERS_REPLY,
                             ServiceProcessControl::SERVICE_EVENT_MAX);
   UMA_HISTOGRAM_COUNTS_10000("CloudPrint.AvailablePrinters", printers.size());
-  callback.Run(printers);
+  std::move(callback).Run(printers);
+}
+
+std::string ReadCloudPrintSetupProxyList(const base::FilePath& path) {
+  std::string printers_json;
+  base::ReadFileToString(path, &printers_json);
+  return printers_json;
 }
 
 }  // namespace
@@ -134,44 +139,34 @@
   return true;
 }
 
-void CloudPrintProxyService::GetPrinters(const PrintersCallback& callback) {
+void CloudPrintProxyService::GetPrinters(PrintersCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   if (!profile_->GetPrefs()->GetBoolean(prefs::kCloudPrintProxyEnabled)) {
     base::ThreadTaskRunnerHandle::Get()->PostTask(
-        FROM_HERE, base::BindOnce(callback, std::vector<std::string>()));
+        FROM_HERE,
+        base::BindOnce(std::move(callback), std::vector<std::string>()));
     return;
   }
 
   base::FilePath list_path(
       base::CommandLine::ForCurrentProcess()->GetSwitchValuePath(
           switches::kCloudPrintSetupProxy));
-  if (!list_path.empty()) {
-    std::string printers_json;
-    base::ReadFileToString(list_path, &printers_json);
-    std::unique_ptr<base::Value> value = base::JSONReader::Read(printers_json);
-    base::ListValue* list = NULL;
-    std::vector<std::string> printers;
-    if (value && value->GetAsList(&list) && list) {
-      for (size_t i = 0; i < list->GetSize(); ++i) {
-        std::string printer;
-        if (list->GetString(i, &printer))
-          printers.push_back(printer);
-      }
-    }
-    UMA_HISTOGRAM_COUNTS_10000("CloudPrint.AvailablePrintersList",
-                               printers.size());
-    base::ThreadTaskRunnerHandle::Get()->PostTask(
-        FROM_HERE, base::BindOnce(callback, printers));
-  } else {
+  if (list_path.empty()) {
     InvokeServiceTask(
-        base::Bind(&CloudPrintProxyService::GetCloudPrintProxyPrinters,
-                   weak_factory_.GetWeakPtr(),
-                   callback));
+        base::BindOnce(&CloudPrintProxyService::GetCloudPrintProxyPrinters,
+                       weak_factory_.GetWeakPtr(), std::move(callback)));
+    return;
   }
+
+  base::PostTaskAndReplyWithResult(
+      extensions::GetExtensionFileTaskRunner().get(), FROM_HERE,
+      base::BindOnce(&ReadCloudPrintSetupProxyList, list_path),
+      base::BindOnce(&CloudPrintProxyService::OnReadCloudPrintSetupProxyList,
+                     weak_factory_.GetWeakPtr(), std::move(callback)));
 }
 
 void CloudPrintProxyService::GetCloudPrintProxyPrinters(
-    const PrintersCallback& callback) {
+    PrintersCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   UMA_HISTOGRAM_ENUMERATION("CloudPrint.ServiceEvents",
                             ServiceProcessControl::SERVICE_PRINTERS_REQUEST,
@@ -179,7 +174,7 @@
   ServiceProcessControl* process_control = GetServiceProcessControl();
   DCHECK(process_control->IsConnected());
   GetCloudPrintProxy().GetPrinters(
-      base::BindOnce(&ForwardGetPrintersResult, callback));
+      base::BindOnce(&ForwardGetPrintersResult, std::move(callback)));
 }
 
 void CloudPrintProxyService::RefreshCloudPrintProxyStatus() {
@@ -244,3 +239,21 @@
   }
   return *cloud_print_proxy_;
 }
+
+void CloudPrintProxyService::OnReadCloudPrintSetupProxyList(
+    PrintersCallback callback,
+    const std::string& printers_json) {
+  std::unique_ptr<base::Value> list_value =
+      base::ListValue::From(base::JSONReader::Read(printers_json));
+  std::vector<std::string> printers;
+  if (list_value) {
+    for (const auto& element : list_value->GetList()) {
+      if (element.is_string())
+        printers.push_back(element.GetString());
+    }
+  }
+  UMA_HISTOGRAM_COUNTS_10000("CloudPrint.AvailablePrintersList",
+                             printers.size());
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE, base::BindOnce(std::move(callback), printers));
+}
diff --git a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h
index 93f7db2..6a31220c 100644
--- a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h
+++ b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h
@@ -33,15 +33,15 @@
   explicit CloudPrintProxyService(Profile* profile);
   ~CloudPrintProxyService() override;
 
-  typedef base::Callback<void(const std::vector<std::string>&)>
-      PrintersCallback;
+  using PrintersCallback =
+      base::OnceCallback<void(const std::vector<std::string>&)>;
 
   // Initializes the object. This should be called every time an object of this
   // class is constructed.
   void Initialize();
 
   // Returns list of printer names available for registration.
-  void GetPrinters(const PrintersCallback& callback);
+  void GetPrinters(PrintersCallback callback);
 
   // Enables/disables cloud printing for the user
   virtual void EnableForUserWithRobot(const std::string& robot_auth_code,
@@ -54,7 +54,7 @@
   // update the browser prefs.
   void RefreshStatusFromService();
 
-  std::string proxy_id() const { return proxy_id_; }
+  const std::string& proxy_id() const { return proxy_id_; }
 
  private:
   // NotificationDelegate implementation for the token expired notification.
@@ -62,7 +62,7 @@
   friend class TokenExpiredNotificationDelegate;
 
   // Methods that send an IPC to the service.
-  void GetCloudPrintProxyPrinters(const PrintersCallback& callback);
+  void GetCloudPrintProxyPrinters(PrintersCallback callback);
   void RefreshCloudPrintProxyStatus();
   void EnableCloudPrintProxyWithRobot(const std::string& robot_auth_code,
                                       const std::string& robot_email,
@@ -89,7 +89,10 @@
   // Virtual for testing.
   virtual ServiceProcessControl* GetServiceProcessControl();
 
-  Profile* profile_;
+  void OnReadCloudPrintSetupProxyList(PrintersCallback callback,
+                                      const std::string& printers_json);
+
+  Profile* const profile_;
   std::string proxy_id_;
 
   // For watching for connector policy changes.
diff --git a/chrome/browser/resource_coordinator/discard_reason.h b/chrome/browser/resource_coordinator/discard_reason.h
deleted file mode 100644
index 98e9f85..0000000
--- a/chrome/browser/resource_coordinator/discard_reason.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_RESOURCE_COORDINATOR_DISCARD_REASON_H_
-#define CHROME_BROWSER_RESOURCE_COORDINATOR_DISCARD_REASON_H_
-
-namespace resource_coordinator {
-
-enum class DiscardReason {
-  // The discard is requested from outside of TabManager (e.g. by an extension).
-  kExternal,
-  // The discard is requested proactively by TabManager when the system is in a
-  // good state.
-  kProactive,
-  // The discard is requested urgently by TabManager when the system is in a
-  // critical condition.
-  kUrgent,
-};
-
-}  // namespace resource_coordinator
-
-#endif  // CHROME_BROWSER_RESOURCE_COORDINATOR_DISCARD_REASON_H_
diff --git a/chrome/browser/resource_coordinator/lifecycle_unit.h b/chrome/browser/resource_coordinator/lifecycle_unit.h
index da3a193..cdfacef 100644
--- a/chrome/browser/resource_coordinator/lifecycle_unit.h
+++ b/chrome/browser/resource_coordinator/lifecycle_unit.h
@@ -14,13 +14,13 @@
 #include "base/strings/string16.h"
 #include "base/time/time.h"
 #include "chrome/browser/resource_coordinator/decision_details.h"
-#include "chrome/browser/resource_coordinator/discard_reason.h"
 #include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom.h"
 #include "content/public/browser/visibility.h"
 #include "services/metrics/public/cpp/ukm_source_id.h"
 
 namespace resource_coordinator {
 
+using ::mojom::LifecycleUnitDiscardReason;
 using ::mojom::LifecycleUnitLoadingState;
 using ::mojom::LifecycleUnitState;
 
@@ -118,7 +118,7 @@
   // replaced with a method that returns a numeric value representing the
   // expected user pain caused by a discard. A values above a given threshold
   // would be equivalent to CanDiscard() returning false for a given
-  // DiscardReason. https://crbug.com/775644
+  // mojom::LifecycleUnitDiscardReason. https://crbug.com/775644
   virtual SortKey GetSortKey() const = 0;
 
   // Returns the current state of this LifecycleUnit.
@@ -158,7 +158,7 @@
   // Returning false but with an empty |decision_details| means the transition
   // is not possible for a trivial reason that doesn't need to be reported
   // (ie, the page is already discarded).
-  virtual bool CanDiscard(DiscardReason reason,
+  virtual bool CanDiscard(LifecycleUnitDiscardReason reason,
                           DecisionDetails* decision_details) const = 0;
 
   // Request that the LifecycleUnit be frozen, return true if the request is
@@ -175,7 +175,14 @@
   // is easier to achieve that if we discard a group of LifecycleUnits that live
   // in the same process(es) than if we discard individual LifecycleUnits.
   // https://crbug.com/775644
-  virtual bool Discard(DiscardReason discard_reason) = 0;
+  virtual bool Discard(LifecycleUnitDiscardReason discard_reason) = 0;
+
+  // Returns the number of times this lifecycle unit has been discarded.
+  virtual size_t GetDiscardCount() const = 0;
+
+  // Returns the most recent discard reason that was applied to this lifecycle
+  // unit. This only makes sense if the lifecycle unit has ever been discarded.
+  virtual LifecycleUnitDiscardReason GetDiscardReason() const = 0;
 
   // Adds/removes an observer to this LifecycleUnit.
   virtual void AddObserver(LifecycleUnitObserver* observer) = 0;
diff --git a/chrome/browser/resource_coordinator/lifecycle_unit_base.cc b/chrome/browser/resource_coordinator/lifecycle_unit_base.cc
index a6df59b..8f0d8a4 100644
--- a/chrome/browser/resource_coordinator/lifecycle_unit_base.cc
+++ b/chrome/browser/resource_coordinator/lifecycle_unit_base.cc
@@ -47,6 +47,14 @@
   return state_change_time_;
 }
 
+bool LifecycleUnitBase::Discard(LifecycleUnitDiscardReason discard_reason) {
+  if (DiscardImpl(discard_reason)) {
+    discard_reason_ = discard_reason;
+    return true;
+  }
+  return false;
+}
+
 base::TimeTicks LifecycleUnitBase::GetWallTimeWhenHidden() const {
   return wall_time_when_hidden_;
 }
@@ -55,6 +63,14 @@
   return chrome_usage_time_when_hidden_;
 }
 
+size_t LifecycleUnitBase::GetDiscardCount() const {
+  return discard_count_;
+}
+
+LifecycleUnitDiscardReason LifecycleUnitBase::GetDiscardReason() const {
+  return discard_reason_;
+}
+
 void LifecycleUnitBase::AddObserver(LifecycleUnitObserver* observer) {
   observers_.AddObserver(observer);
 }
@@ -71,6 +87,11 @@
                                  LifecycleUnitStateChangeReason reason) {
   if (state == state_)
     return;
+
+  // Only increment the discard count once the discard has actually completed.
+  if (state == LifecycleUnitState::DISCARDED)
+    ++discard_count_;
+
   LifecycleUnitState last_state = state_;
   state_ = state;
   state_change_time_ = NowTicks();
@@ -83,6 +104,10 @@
     LifecycleUnitState last_state,
     LifecycleUnitStateChangeReason reason) {}
 
+bool LifecycleUnitBase::DiscardImpl(LifecycleUnitDiscardReason discard_reason) {
+  return false;
+}
+
 void LifecycleUnitBase::OnLifecycleUnitVisibilityChanged(
     content::Visibility visibility) {
   if (visibility == content::Visibility::VISIBLE) {
diff --git a/chrome/browser/resource_coordinator/lifecycle_unit_base.h b/chrome/browser/resource_coordinator/lifecycle_unit_base.h
index 407a629b..1f771a7 100644
--- a/chrome/browser/resource_coordinator/lifecycle_unit_base.h
+++ b/chrome/browser/resource_coordinator/lifecycle_unit_base.h
@@ -34,11 +34,17 @@
   base::TimeDelta GetChromeUsageTimeWhenHidden() const override;
   LifecycleUnitState GetState() const override;
   base::TimeTicks GetStateChangeTime() const override;
+  bool Discard(LifecycleUnitDiscardReason discard_reason) override;
+  size_t GetDiscardCount() const override;
+  LifecycleUnitDiscardReason GetDiscardReason() const override;
   void AddObserver(LifecycleUnitObserver* observer) override;
   void RemoveObserver(LifecycleUnitObserver* observer) override;
   ukm::SourceId GetUkmSourceId() const override;
 
  protected:
+  // TODO(chrisha|fdoray): Clean up the virtual methods below and make them
+  // pure virtual.
+
   // Sets the state of this LifecycleUnit to |state| and notifies observers.
   // |reason| indicates what caused the state change.
   void SetState(LifecycleUnitState state,
@@ -52,6 +58,11 @@
       LifecycleUnitState last_state,
       LifecycleUnitStateChangeReason reason);
 
+  // Invoked to dispatch a call to Discard. The base class takes care of
+  // maintaining |discard_count_| and |discard_reason_|, and delegates the
+  // actually discarding to this.
+  virtual bool DiscardImpl(LifecycleUnitDiscardReason discard_reason);
+
   // Notifies observers that the visibility of the LifecycleUnit has changed.
   void OnLifecycleUnitVisibilityChanged(content::Visibility visibility);
 
@@ -89,6 +100,14 @@
   // visible.
   base::TimeDelta chrome_usage_time_when_hidden_;
 
+  // The number of times that this lifecycle unit has been discarded.
+  int discard_count_ = 0;
+
+  // Maintains the most recent LifecycleUnitDiscardReason that was passed into
+  // Discard().
+  LifecycleUnitDiscardReason discard_reason_ =
+      LifecycleUnitDiscardReason::EXTERNAL;
+
   base::ObserverList<LifecycleUnitObserver>::Unchecked observers_;
 
   DISALLOW_COPY_AND_ASSIGN(LifecycleUnitBase);
diff --git a/chrome/browser/resource_coordinator/lifecycle_unit_state.mojom b/chrome/browser/resource_coordinator/lifecycle_unit_state.mojom
index 3682bf2..fc04dae8 100644
--- a/chrome/browser/resource_coordinator/lifecycle_unit_state.mojom
+++ b/chrome/browser/resource_coordinator/lifecycle_unit_state.mojom
@@ -50,3 +50,15 @@
   // Initiated by a user action (e.g. changing focus, clicking reload).
   USER_INITIATED = 4,
 };
+
+// An enumeration of reasons for a discard.
+enum LifecycleUnitDiscardReason {
+  // The discard is requested from outside of TabManager (e.g. by an extension).
+  EXTERNAL = 0,
+  // The discard is requested proactively by TabManager when the system is in a
+  // good state.
+  PROACTIVE = 1,
+  // The discard is requested urgently by TabManager when the system is in a
+  // critical condition.
+  URGENT = 2,
+};
diff --git a/chrome/browser/resource_coordinator/tab_activity_watcher.cc b/chrome/browser/resource_coordinator/tab_activity_watcher.cc
index 348cf489..897a037 100644
--- a/chrome/browser/resource_coordinator/tab_activity_watcher.cc
+++ b/chrome/browser/resource_coordinator/tab_activity_watcher.cc
@@ -91,10 +91,6 @@
     // Copy the replaced tab's stats.
     tab_metrics_.page_metrics = replaced_tab.tab_metrics_.page_metrics;
     tab_metrics_.page_transition = replaced_tab.tab_metrics_.page_transition;
-
-    // Copy ukm_source_id_ and discarded state.
-    discarded_since_backgrounded_ = replaced_tab.discarded_since_backgrounded_;
-    previous_ukm_source_id_ = replaced_tab.ukm_source_id_;
   }
 
   // Call when the WebContents is detached from its tab. If the tab is later
@@ -173,7 +169,6 @@
     }
 
     backgrounded_time_ = NowTicks();
-    discarded_since_backgrounded_ = false;
     LogTabIfBackgrounded();
   }
 
@@ -186,13 +181,9 @@
       return;
 
     // Log the event before updating times.
-    const ukm::SourceId source_id = discarded_since_backgrounded_
-                                        ? previous_ukm_source_id_
-                                        : ukm_source_id_;
     TabActivityWatcher::GetInstance()
         ->tab_metrics_logger_->LogBackgroundTabShown(
-            source_id, NowTicks() - backgrounded_time_, GetMRUFeatures(),
-            discarded_since_backgrounded_);
+            ukm_source_id_, NowTicks() - backgrounded_time_, GetMRUFeatures());
 
     backgrounded_time_ = base::TimeTicks();
     foregrounded_time_ = NowTicks();
@@ -357,8 +348,6 @@
 
   // Updated when a navigation is finished.
   ukm::SourceId ukm_source_id_ = 0;
-  // Recorded when a WebContents is replaced by another.
-  ukm::SourceId previous_ukm_source_id_ = 0;
 
   // When the tab was created.
   base::TimeTicks creation_time_;
@@ -394,9 +383,6 @@
   // event is logged.
   tab_ranker::MRUFeatures mru_features_;
 
-  // Whether this tab is currently in discarded state.
-  bool discarded_since_backgrounded_ = false;
-
   DISALLOW_COPY_AND_ASSIGN(WebContentsData);
 };
 
@@ -549,28 +535,15 @@
       NowTicks() - web_contents_data->navigation_time_);
 
   // Log ForegroundedOrClosed event.
-  const ukm::SourceId source_id =
-      web_contents_data->discarded_since_backgrounded_
-          ? web_contents_data->previous_ukm_source_id_
-          : web_contents_data->ukm_source_id_;
   if (!web_contents_data->backgrounded_time_.is_null()) {
     tab_metrics_logger_->LogBackgroundTabClosed(
-        source_id, NowTicks() - web_contents_data->backgrounded_time_,
-        web_contents_data->GetMRUFeatures(),
-        web_contents_data->discarded_since_backgrounded_);
+        web_contents_data->ukm_source_id_,
+        NowTicks() - web_contents_data->backgrounded_time_,
+        web_contents_data->GetMRUFeatures());
   }
 
   // Erase the pointer in |all_closing_tabs_| only when all logging finished.
   all_closing_tabs_.erase(web_contents_data);
 }
 
-void TabActivityWatcher::OnDiscardedStateChange(content::WebContents* contents,
-                                                bool is_discarded) {
-  WebContentsData::FromWebContents(contents)->discarded_since_backgrounded_ |=
-      is_discarded;
-}
-
-void TabActivityWatcher::OnAutoDiscardableStateChange(
-    content::WebContents* contents,
-    bool is_auto_discardable) {}
 }  // namespace resource_coordinator
diff --git a/chrome/browser/resource_coordinator/tab_activity_watcher.h b/chrome/browser/resource_coordinator/tab_activity_watcher.h
index d360b99..7c5efc7e 100644
--- a/chrome/browser/resource_coordinator/tab_activity_watcher.h
+++ b/chrome/browser/resource_coordinator/tab_activity_watcher.h
@@ -10,7 +10,6 @@
 #include "base/containers/flat_set.h"
 #include "base/macros.h"
 #include "base/optional.h"
-#include "chrome/browser/resource_coordinator/tab_lifecycle_observer.h"
 #include "chrome/browser/resource_coordinator/tab_ranker/tab_score_predictor.h"
 #include "chrome/browser/ui/browser_list_observer.h"
 #include "chrome/browser/ui/browser_tab_strip_tracker.h"
@@ -26,8 +25,7 @@
 // events to determine the end state of each background tab.
 class TabActivityWatcher : public BrowserListObserver,
                            public TabStripModelObserver,
-                           public BrowserTabStripTrackerDelegate,
-                           public TabLifecycleObserver {
+                           public BrowserTabStripTrackerDelegate {
  public:
   TabActivityWatcher();
   ~TabActivityWatcher() override;
@@ -77,12 +75,6 @@
   // BrowserTabStripTrackerDelegate:
   bool ShouldTrackBrowser(Browser* browser) override;
 
-  // TabLifecycleObserver:
-  void OnDiscardedStateChange(content::WebContents* contents,
-                              bool is_discarded) override;
-  void OnAutoDiscardableStateChange(content::WebContents* contents,
-                                    bool is_auto_discardable) override;
-
   // Resets internal state.
   void ResetForTesting();
 
diff --git a/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc b/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc
index b6e2cd1..f04d1fb3 100644
--- a/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc
+++ b/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc
@@ -8,8 +8,6 @@
 
 #include "base/macros.h"
 #include "base/test/simple_test_tick_clock.h"
-#include "chrome/browser/resource_coordinator/tab_lifecycle_unit_external.h"
-#include "chrome/browser/resource_coordinator/tab_lifecycle_unit_source.h"
 #include "chrome/browser/resource_coordinator/time.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_window.h"
@@ -118,7 +116,6 @@
     TabActivityWatcherTest::PreRunTestOnMainThread();
 
     ukm_entry_checker_ = std::make_unique<UkmEntryChecker>();
-    test_ukm_recorder_ = std::make_unique<ukm::TestAutoSetUkmRecorder>();
   }
 
   void SetUpOnMainThread() override {
@@ -152,41 +149,7 @@
     ukm_entry_checker_->ExpectNewEntry(kFOCEntryName, url, expected_metrics);
   }
 
-  // Uses test_ukm_recorder_ to check new event metrics including:
-  // (1) the number of UkmEntry with given event_name should equals to |size|.
-  // (2) the newest entry should have source_url equals to |url|.
-  // (3) the newest entry should have source_id equals to |source_id| if
-  //     |source_id| is not 0 (skip for the case of 0).
-  // (4) the newest entry should contain all metrics in |expected_metrics|.
-  // Also returns the source_id of the newest entry.
-  ukm::SourceId ExpectedNewEntryWithSourceId(
-      const GURL& url,
-      const std::string& event_name,
-      size_t size,
-      const UkmMetricMap& expected_metrics,
-      ukm::SourceId source_id = 0) {
-    const std::vector<const ukm::mojom::UkmEntry*> entries =
-        test_ukm_recorder_->GetEntriesByName(event_name);
-    // Check size.
-    EXPECT_EQ(entries.size(), size);
-    const ukm::mojom::UkmEntry* entry = entries.back();
-    // Check source_url.
-    test_ukm_recorder_->ExpectEntrySourceHasUrl(entry, url);
-    // Check source_id.
-    if (source_id != 0) {
-      EXPECT_EQ(source_id, entry->source_id);
-    }
-    // Check expected_metrics.
-    for (const auto& metric : expected_metrics) {
-      test_ukm_recorder_->ExpectEntryMetric(entry, metric.first,
-                                            *metric.second);
-    }
-    // return entry source_id.
-    return entry->source_id;
-  }
-
   std::unique_ptr<UkmEntryChecker> ukm_entry_checker_;
-  std::unique_ptr<ukm::TestAutoSetUkmRecorder> test_ukm_recorder_;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(TabActivityWatcherUkmTest);
@@ -366,70 +329,4 @@
   EXPECT_EQ(0, ukm_entry_checker_->NumNewEntriesRecorded(kFOCEntryName));
 }
 
-// Tests discarded tab is recorded correctly.
-IN_PROC_BROWSER_TEST_F(TabActivityWatcherUkmTest,
-                       DiscardedTabGetsPreviousSourceId) {
-  ukm::SourceId ukm_source_id_for_tab_0 = 0;
-  ukm::SourceId ukm_source_id_for_tab_1 = 0;
-
-  ui_test_utils::NavigateToURL(browser(), test_urls_[0]);
-  EXPECT_EQ(0u, ukm_entry_checker_->NumEntries(kEntryName));
-
-  // Adding a new foreground tab logs the previously active tab.
-  AddTabAtIndex(1, test_urls_[1], ui::PAGE_TRANSITION_LINK);
-  {
-    SCOPED_TRACE("");
-    ukm_entry_checker_->ExpectNewEntry(
-        kEntryName, test_urls_[0],
-        {{TabManager_TabMetrics::kNavigationEntryCountName, 2}});
-
-    ukm_source_id_for_tab_0 = ExpectedNewEntryWithSourceId(
-        test_urls_[0], kEntryName, 1,
-        {{TabManager_TabMetrics::kNavigationEntryCountName, 2}});
-  }
-
-  // Discard the first tab.
-  content::WebContents* first_contents =
-      browser()->tab_strip_model()->GetWebContentsAt(0);
-  resource_coordinator::TabLifecycleUnitSource::GetInstance()
-      ->GetTabLifecycleUnitExternal(first_contents)
-      ->DiscardTab();
-
-  // Switching to first tab logs a forgrounded event for test_urls_[0]
-  // and a backgrounded event for test_urls_[1].
-  browser()->tab_strip_model()->ActivateTabAt(0, kIsUserGesture);
-  {
-    SCOPED_TRACE("");
-    ukm_entry_checker_->ExpectNewEntry(kEntryName, test_urls_[1],
-                                       kBasicMetricValues);
-
-    ukm_source_id_for_tab_1 = ExpectedNewEntryWithSourceId(
-        test_urls_[1], kEntryName, 2, kBasicMetricValues);
-
-    ExpectedNewEntryWithSourceId(
-        test_urls_[0], kFOCEntryName, 1,
-        {{TabManager_Background_ForegroundedOrClosed::kIsForegroundedName, 1},
-         {TabManager_Background_ForegroundedOrClosed::kIsDiscardedName, 1}},
-        ukm_source_id_for_tab_0);
-  }
-
-  // Discard the second tab.
-  content::WebContents* second_content =
-      browser()->tab_strip_model()->GetWebContentsAt(1);
-  resource_coordinator::TabLifecycleUnitSource::GetInstance()
-      ->GetTabLifecycleUnitExternal(second_content)
-      ->DiscardTab();
-
-  CloseBrowserSynchronously(browser());
-  {
-    SCOPED_TRACE("");
-
-    ExpectedNewEntryWithSourceId(
-        test_urls_[1], kFOCEntryName, 2,
-        {{TabManager_Background_ForegroundedOrClosed::kIsForegroundedName, 0},
-         {TabManager_Background_ForegroundedOrClosed::kIsDiscardedName, 1}},
-        ukm_source_id_for_tab_1);
-  }
-}
-
 }  // namespace resource_coordinator
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc
index a39e9da5..6b7bc158 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc
@@ -62,10 +62,10 @@
       switch (to) {
         // Freeze() is called.
         case LifecycleUnitState::PENDING_FREEZE:
-        // Discard(kProactive) is called.
+        // Discard(PROACTIVE) is called.
         case LifecycleUnitState::PENDING_DISCARD:
           return reason == StateChangeReason::BROWSER_INITIATED;
-        // Discard(kUrgent|kExternal) is called.
+        // Discard(URGENT|EXTERNAL) is called.
         case LifecycleUnitState::DISCARDED: {
           return reason == StateChangeReason::SYSTEM_MEMORY_PRESSURE ||
                  reason == StateChangeReason::EXTENSION_INITIATED;
@@ -84,10 +84,10 @@
     }
     case LifecycleUnitState::PENDING_FREEZE: {
       switch (to) {
-        // Discard(kProactive) is called.
+        // Discard(PROACTIVE) is called.
         case LifecycleUnitState::PENDING_DISCARD:
           return reason == StateChangeReason::BROWSER_INITIATED;
-        // Discard(kUrgent|kExternal) is called.
+        // Discard(URGENT|EXTERNAL) is called.
         case LifecycleUnitState::DISCARDED:
           return reason == StateChangeReason::SYSTEM_MEMORY_PRESSURE ||
                  reason == StateChangeReason::EXTENSION_INITIATED;
@@ -108,7 +108,7 @@
         case LifecycleUnitState::ACTIVE: {
           return reason == StateChangeReason::RENDERER_INITIATED;
         }
-        // Discard(kProactive|kUrgent|kExternal) is called.
+        // Discard(PROACTIVE|URGENT|EXTERNAL) is called.
         case LifecycleUnitState::DISCARDED: {
           return reason == StateChangeReason::BROWSER_INITIATED ||
                  reason == StateChangeReason::SYSTEM_MEMORY_PRESSURE ||
@@ -124,7 +124,7 @@
     }
     case LifecycleUnitState::PENDING_DISCARD: {
       switch (to) {
-        // - Discard(kUrgent|kExternal) is called, or,
+        // - Discard(URGENT|EXTERNAL) is called, or,
         // - The proactive discard can be completed because:
         //   - The freeze timeout expires, or,
         //   - The renderer notifies the browser that the page has been frozen.
@@ -153,7 +153,7 @@
         case LifecycleUnitState::ACTIVE: {
           return reason == StateChangeReason::RENDERER_INITIATED;
         }
-        // Discard(kUrgent|kExternal) is called.
+        // Discard(URGENT|EXTERNAL) is called.
         case LifecycleUnitState::DISCARDED: {
           return reason == StateChangeReason::SYSTEM_MEMORY_PRESSURE ||
                  reason == StateChangeReason::EXTENSION_INITIATED;
@@ -164,13 +164,14 @@
   }
 }
 
-StateChangeReason DiscardReasonToStateChangeReason(DiscardReason reason) {
+StateChangeReason DiscardReasonToStateChangeReason(
+    LifecycleUnitDiscardReason reason) {
   switch (reason) {
-    case DiscardReason::kExternal:
+    case LifecycleUnitDiscardReason::EXTERNAL:
       return StateChangeReason::EXTENSION_INITIATED;
-    case DiscardReason::kProactive:
+    case LifecycleUnitDiscardReason::PROACTIVE:
       return StateChangeReason::BROWSER_INITIATED;
-    case DiscardReason::kUrgent:
+    case LifecycleUnitDiscardReason::URGENT:
       return StateChangeReason::SYSTEM_MEMORY_PRESSURE;
   }
 }
@@ -238,6 +239,47 @@
 
 }  // namespace
 
+class TabLifecycleUnitExternalImpl : public TabLifecycleUnitExternal {
+ public:
+  explicit TabLifecycleUnitExternalImpl(
+      TabLifecycleUnitSource::TabLifecycleUnit* tab_lifecycle_unit)
+      : tab_lifecycle_unit_(tab_lifecycle_unit) {}
+
+  // TabLifecycleUnitExternal:
+
+  content::WebContents* GetWebContents() const override {
+    return tab_lifecycle_unit_->web_contents();
+  }
+
+  bool IsMediaTab() const override { return tab_lifecycle_unit_->IsMediaTab(); }
+
+  bool IsAutoDiscardable() const override {
+    return tab_lifecycle_unit_->IsAutoDiscardable();
+  }
+
+  void SetAutoDiscardable(bool auto_discardable) override {
+    tab_lifecycle_unit_->SetAutoDiscardable(auto_discardable);
+  }
+
+  bool DiscardTab() override {
+    return tab_lifecycle_unit_->Discard(LifecycleUnitDiscardReason::EXTERNAL);
+  }
+
+  bool IsDiscarded() const override {
+    // External code does not need to know about the intermediary
+    // PENDING_DISCARD state. To external callers, the tab is discarded while in
+    // the PENDING_DISCARD state.
+    return IsDiscardedOrPendingDiscard(tab_lifecycle_unit_->GetState());
+  }
+
+  int GetDiscardCount() const override {
+    return tab_lifecycle_unit_->GetDiscardCount();
+  }
+
+ private:
+  TabLifecycleUnitSource::TabLifecycleUnit* tab_lifecycle_unit_ = nullptr;
+};
+
 TabLifecycleUnitSource::TabLifecycleUnit::TabLifecycleUnit(
     TabLifecycleUnitSource* source,
     base::ObserverList<TabLifecycleObserver>::Unchecked* observers,
@@ -249,7 +291,7 @@
       observers_(observers),
       tab_strip_model_(tab_strip_model) {
   DCHECK(observers_);
-  DCHECK(GetWebContents());
+  DCHECK(web_contents);
   DCHECK(tab_strip_model_);
 
   // Visible tabs are treated as having been immediately focused, while
@@ -328,7 +370,7 @@
       switch (GetState()) {
         case LifecycleUnitState::PENDING_DISCARD: {
           freeze_timeout_timer_->Stop();
-          FinishDiscard(discard_reason_);
+          FinishDiscard(GetDiscardReason());
           break;
         }
         case LifecycleUnitState::PENDING_UNFREEZE: {
@@ -361,8 +403,8 @@
 }
 
 void TabLifecycleUnitSource::TabLifecycleUnit::RequestFreezeForDiscard(
-    DiscardReason reason) {
-  DCHECK_EQ(reason, DiscardReason::kProactive);
+    LifecycleUnitDiscardReason reason) {
+  DCHECK_EQ(reason, LifecycleUnitDiscardReason::PROACTIVE);
 
   SetState(LifecycleUnitState::PENDING_DISCARD,
            DiscardReasonToStateChangeReason(reason));
@@ -371,16 +413,19 @@
       FROM_HERE, kProactiveDiscardFreezeTimeout,
       base::BindRepeating(&TabLifecycleUnit::FinishDiscard,
                           base::Unretained(this), reason));
-  GetWebContents()->SetPageFrozen(true);
+  web_contents()->SetPageFrozen(true);
 }
 
 TabLifecycleUnitExternal*
 TabLifecycleUnitSource::TabLifecycleUnit::AsTabLifecycleUnitExternal() {
-  return this;
+  // Create an impl the first time this is called.
+  if (!external_impl_)
+    external_impl_ = std::make_unique<TabLifecycleUnitExternalImpl>(this);
+  return external_impl_.get();
 }
 
 base::string16 TabLifecycleUnitSource::TabLifecycleUnit::GetTitle() const {
-  return GetWebContents()->GetTitle();
+  return web_contents()->GetTitle();
 }
 
 base::TimeTicks TabLifecycleUnitSource::TabLifecycleUnit::GetLastFocusedTime()
@@ -390,7 +435,7 @@
 
 base::ProcessHandle TabLifecycleUnitSource::TabLifecycleUnit::GetProcessHandle()
     const {
-  content::RenderFrameHost* main_frame = GetWebContents()->GetMainFrame();
+  content::RenderFrameHost* main_frame = web_contents()->GetMainFrame();
   if (!main_frame)
     return base::ProcessHandle();
   content::RenderProcessHost* process = main_frame->GetProcess();
@@ -404,7 +449,7 @@
   if (base::FeatureList::IsEnabled(features::kTabRanker)) {
     base::Optional<float> reactivation_score =
         resource_coordinator::TabActivityWatcher::GetInstance()
-            ->CalculateReactivationScore(GetWebContents());
+            ->CalculateReactivationScore(web_contents());
     if (reactivation_score.has_value())
       return SortKey(reactivation_score.value(), last_focused_time_);
     return SortKey(SortKey::kMaxScore, last_focused_time_);
@@ -415,12 +460,12 @@
 
 content::Visibility TabLifecycleUnitSource::TabLifecycleUnit::GetVisibility()
     const {
-  return GetWebContents()->GetVisibility();
+  return web_contents()->GetVisibility();
 }
 
 LifecycleUnitLoadingState
 TabLifecycleUnitSource::TabLifecycleUnit::GetLoadingState() const {
-  return TabLoadTracker::Get()->GetLoadingState(GetWebContents());
+  return TabLoadTracker::Get()->GetLoadingState(web_contents());
 }
 
 bool TabLifecycleUnitSource::TabLifecycleUnit::Load() {
@@ -434,8 +479,8 @@
   // false when a tab is discarded.
   // TODO(fdoray): Remove NavigationControllerImpl::needs_reload_ once
   // session restore is handled by LifecycleManager.
-  GetWebContents()->GetController().SetNeedsReload();
-  GetWebContents()->GetController().LoadIfNecessary();
+  web_contents()->GetController().SetNeedsReload();
+  web_contents()->GetController().LoadIfNecessary();
   return true;
 }
 
@@ -455,7 +500,7 @@
 
 bool TabLifecycleUnitSource::TabLifecycleUnit::CanPurge() const {
   // A renderer can be purged if it's not playing media.
-  return !IsMediaTab();
+  return !IsMediaTabImpl(nullptr);
 }
 
 bool TabLifecycleUnitSource::TabLifecycleUnit::CanFreeze(
@@ -472,7 +517,7 @@
   }
 
   // Allow a page to load fully before freezing it.
-  if (TabLoadTracker::Get()->GetLoadingState(GetWebContents()) !=
+  if (TabLoadTracker::Get()->GetLoadingState(web_contents()) !=
       TabLoadTracker::LoadingState::LOADED) {
     return false;
   }
@@ -484,7 +529,7 @@
 
   auto intervention_policy =
       GetTabSource()->intervention_policy_database()->GetFreezingPolicy(
-          url::Origin::Create(GetWebContents()->GetLastCommittedURL()));
+          url::Origin::Create(web_contents()->GetLastCommittedURL()));
 
   switch (intervention_policy) {
     case OriginInterventions::OPT_IN:
@@ -497,7 +542,7 @@
       break;
   }
 
-  if (GetWebContents()->GetVisibility() == content::Visibility::VISIBLE)
+  if (web_contents()->GetVisibility() == content::Visibility::VISIBLE)
     decision_details->AddReason(DecisionFailureReason::LIVE_STATE_VISIBLE);
 
   CheckIfTabIsUsedInBackground(decision_details, InterventionType::kProactive);
@@ -511,7 +556,7 @@
 }
 
 bool TabLifecycleUnitSource::TabLifecycleUnit::CanDiscard(
-    DiscardReason reason,
+    LifecycleUnitDiscardReason reason,
     DecisionDetails* decision_details) const {
   DCHECK(decision_details->reasons().empty());
 
@@ -524,7 +569,7 @@
     return false;
 
   const LifecycleUnitState target_state =
-      reason == DiscardReason::kProactive &&
+      reason == LifecycleUnitDiscardReason::PROACTIVE &&
               GetState() != LifecycleUnitState::FROZEN
           ? LifecycleUnitState::PENDING_DISCARD
           : LifecycleUnitState::DISCARDED;
@@ -533,15 +578,15 @@
     return false;
   }
 
-  if (GetWebContents()->IsCrashed())
+  if (web_contents()->IsCrashed())
     return false;
 
   // Do not discard tabs that don't have a valid URL (most probably they have
   // just been opened and discarding them would lose the URL).
   // TODO(fdoray): Look into a workaround to be able to kill the tab without
   // losing the pending navigation.
-  if (!GetWebContents()->GetLastCommittedURL().is_valid() ||
-      GetWebContents()->GetLastCommittedURL().is_empty()) {
+  if (!web_contents()->GetLastCommittedURL().is_valid() ||
+      web_contents()->GetLastCommittedURL().is_empty()) {
     return false;
   }
 
@@ -554,10 +599,10 @@
         DecisionFailureReason::LIFECYCLES_ENTERPRISE_POLICY_OPT_OUT);
   }
 
-  if (reason == DiscardReason::kProactive) {
+  if (reason == LifecycleUnitDiscardReason::PROACTIVE) {
     auto intervention_policy =
         GetTabSource()->intervention_policy_database()->GetDiscardingPolicy(
-            url::Origin::Create(GetWebContents()->GetLastCommittedURL()));
+            url::Origin::Create(web_contents()->GetLastCommittedURL()));
 
     switch (intervention_policy) {
       case OriginInterventions::OPT_IN:
@@ -572,33 +617,33 @@
   }
 
 #if defined(OS_CHROMEOS)
-  if (GetWebContents()->GetVisibility() == content::Visibility::VISIBLE)
+  if (web_contents()->GetVisibility() == content::Visibility::VISIBLE)
     decision_details->AddReason(DecisionFailureReason::LIVE_STATE_VISIBLE);
 #else
   // Do not discard the tab if it is currently active in its window.
-  if (tab_strip_model_->GetActiveWebContents() == GetWebContents())
+  if (tab_strip_model_->GetActiveWebContents() == web_contents())
     decision_details->AddReason(DecisionFailureReason::LIVE_STATE_VISIBLE);
 #endif  // defined(OS_CHROMEOS)
 
   // Do not discard tabs in which the user has entered text in a form.
-  if (GetWebContents()->GetPageImportanceSignals().had_form_interaction)
+  if (web_contents()->GetPageImportanceSignals().had_form_interaction)
     decision_details->AddReason(DecisionFailureReason::LIVE_STATE_FORM_ENTRY);
 
   // Do not discard PDFs as they might contain entry that is not saved and they
   // don't remember their scrolling positions. See crbug.com/547286 and
   // crbug.com/65244.
   // TODO(fdoray): Remove this workaround when the bugs are fixed.
-  if (GetWebContents()->GetContentsMimeType() == "application/pdf")
+  if (web_contents()->GetContentsMimeType() == "application/pdf")
     decision_details->AddReason(DecisionFailureReason::LIVE_STATE_IS_PDF);
 
   // Do not discard a tab that was explicitly disallowed to.
-  if (!IsAutoDiscardable()) {
+  if (!auto_discardable_) {
     decision_details->AddReason(
         DecisionFailureReason::LIVE_STATE_EXTENSION_DISALLOWED);
   }
 
   CheckIfTabIsUsedInBackground(decision_details,
-                               reason == DiscardReason::kProactive
+                               reason == LifecycleUnitDiscardReason::PROACTIVE
                                    ? InterventionType::kProactive
                                    : InterventionType::kExternalOrUrgent);
 
@@ -617,12 +662,12 @@
   }
 
   // WebContents::SetPageFrozen() DCHECKs if the page is visible.
-  if (GetWebContents()->GetVisibility() == content::Visibility::VISIBLE)
+  if (web_contents()->GetVisibility() == content::Visibility::VISIBLE)
     return false;
 
   SetState(LifecycleUnitState::PENDING_FREEZE,
            StateChangeReason::BROWSER_INITIATED);
-  GetWebContents()->SetPageFrozen(true);
+  web_contents()->SetPageFrozen(true);
   return true;
 }
 
@@ -633,43 +678,12 @@
   }
 
   // WebContents::SetPageFrozen() DCHECKs if the page is visible.
-  if (GetWebContents()->GetVisibility() == content::Visibility::VISIBLE)
+  if (web_contents()->GetVisibility() == content::Visibility::VISIBLE)
     return false;
 
   SetState(LifecycleUnitState::PENDING_UNFREEZE,
            StateChangeReason::BROWSER_INITIATED);
-  GetWebContents()->SetPageFrozen(false);
-  return true;
-}
-
-bool TabLifecycleUnitSource::TabLifecycleUnit::Discard(DiscardReason reason) {
-  // Can't discard a tab when it isn't in a tabstrip.
-  if (!tab_strip_model_)
-    return false;
-
-  const LifecycleUnitState target_state =
-      reason == DiscardReason::kProactive &&
-              GetState() != LifecycleUnitState::FROZEN
-          ? LifecycleUnitState::PENDING_DISCARD
-          : LifecycleUnitState::DISCARDED;
-  if (!IsValidStateChange(GetState(), target_state,
-                          DiscardReasonToStateChangeReason(reason))) {
-    return false;
-  }
-
-  discard_reason_ = reason;
-
-  // If the tab is not going through an urgent discard, it should be frozen
-  // first. Freeze the tab and set a timer to callback to FinishDiscard() incase
-  // the freeze callback takes too long.
-  //
-  // TODO(fdoray): Request a freeze for kExternal discards too once that doesn't
-  // cause asynchronous change of tab id. https://crbug.com/632839
-  if (target_state == LifecycleUnitState::PENDING_DISCARD)
-    RequestFreezeForDiscard(reason);
-  else
-    FinishDiscard(reason);
-
+  web_contents()->SetPageFrozen(false);
   return true;
 }
 
@@ -682,13 +696,30 @@
   return observer->ukm_source_id();
 }
 
+bool TabLifecycleUnitSource::TabLifecycleUnit::IsMediaTab() const {
+  return IsMediaTabImpl(nullptr);
+}
+
+bool TabLifecycleUnitSource::TabLifecycleUnit::IsAutoDiscardable() const {
+  return auto_discardable_;
+}
+
+void TabLifecycleUnitSource::TabLifecycleUnit::SetAutoDiscardable(
+    bool auto_discardable) {
+  if (auto_discardable_ == auto_discardable)
+    return;
+  auto_discardable_ = auto_discardable;
+  for (auto& observer : *observers_)
+    observer.OnAutoDiscardableStateChange(web_contents(), auto_discardable_);
+}
+
 void TabLifecycleUnitSource::TabLifecycleUnit::FinishDiscard(
-    DiscardReason discard_reason) {
+    LifecycleUnitDiscardReason discard_reason) {
   UMA_HISTOGRAM_BOOLEAN(
       "TabManager.Discarding.DiscardedTabHasBeforeUnloadHandler",
-      GetWebContents()->NeedToFireBeforeUnload());
+      web_contents()->NeedToFireBeforeUnload());
 
-  content::WebContents* const old_contents = GetWebContents();
+  content::WebContents* const old_contents = web_contents();
   content::WebContents::CreateParams create_params(tab_strip_model_->profile());
   // TODO(fdoray): Consider setting |initially_hidden| to true when the tab is
   // OCCLUDED. Will require checking that the tab reload correctly when it
@@ -723,7 +754,8 @@
       GetRenderProcessHost()->FastShutdownIfPossible(1u, false);
 
 #if defined(OS_CHROMEOS)
-  if (!fast_shutdown_success && discard_reason == DiscardReason::kUrgent) {
+  if (!fast_shutdown_success &&
+      discard_reason == LifecycleUnitDiscardReason::URGENT) {
     content::RenderFrameHost* main_frame = old_contents->GetMainFrame();
     // We avoid fast shutdown on tabs with beforeunload handlers on the main
     // frame, as that is often an indication of unsaved user state.
@@ -746,7 +778,7 @@
   DCHECK_NE(index, TabStripModel::kNoTab);
   std::unique_ptr<content::WebContents> old_contents_deleter =
       tab_strip_model_->ReplaceWebContentsAt(index, std::move(null_contents));
-  DCHECK_EQ(GetWebContents(), raw_null_contents);
+  DCHECK_EQ(web_contents(), raw_null_contents);
 
   // This ensures that on reload after discard, the document has
   // "wasDiscarded" set to true.
@@ -760,13 +792,37 @@
 
   SetState(LifecycleUnitState::DISCARDED,
            DiscardReasonToStateChangeReason(discard_reason));
-  ++discard_count_;
   DCHECK_EQ(GetLoadingState(), LifecycleUnitLoadingState::UNLOADED);
 }
 
-content::WebContents* TabLifecycleUnitSource::TabLifecycleUnit::GetWebContents()
-    const {
-  return web_contents();
+bool TabLifecycleUnitSource::TabLifecycleUnit::DiscardImpl(
+    LifecycleUnitDiscardReason reason) {
+  // Can't discard a tab when it isn't in a tabstrip.
+  if (!tab_strip_model_)
+    return false;
+
+  const LifecycleUnitState target_state =
+      reason == LifecycleUnitDiscardReason::PROACTIVE &&
+              GetState() != LifecycleUnitState::FROZEN
+          ? LifecycleUnitState::PENDING_DISCARD
+          : LifecycleUnitState::DISCARDED;
+  if (!IsValidStateChange(GetState(), target_state,
+                          DiscardReasonToStateChangeReason(reason))) {
+    return false;
+  }
+
+  // If the tab is not going through an urgent discard, it should be frozen
+  // first. Freeze the tab and set a timer to callback to FinishDiscard() in
+  // case the freeze callback takes too long.
+  //
+  // TODO(fdoray): Request a freeze for EXTERNAL discards too once that doesn't
+  // cause asynchronous change of tab id. https://crbug.com/632839
+  if (target_state == LifecycleUnitState::PENDING_DISCARD)
+    RequestFreezeForDiscard(reason);
+  else
+    FinishDiscard(reason);
+
+  return true;
 }
 
 TabLifecycleUnitSource* TabLifecycleUnitSource::TabLifecycleUnit::GetTabSource()
@@ -774,38 +830,6 @@
   return static_cast<TabLifecycleUnitSource*>(GetSource());
 }
 
-bool TabLifecycleUnitSource::TabLifecycleUnit::IsMediaTab() const {
-  return IsMediaTabImpl(nullptr);
-}
-
-bool TabLifecycleUnitSource::TabLifecycleUnit::IsAutoDiscardable() const {
-  return auto_discardable_;
-}
-
-void TabLifecycleUnitSource::TabLifecycleUnit::SetAutoDiscardable(
-    bool auto_discardable) {
-  if (auto_discardable_ == auto_discardable)
-    return;
-  auto_discardable_ = auto_discardable;
-  for (auto& observer : *observers_)
-    observer.OnAutoDiscardableStateChange(GetWebContents(), auto_discardable_);
-}
-
-bool TabLifecycleUnitSource::TabLifecycleUnit::DiscardTab() {
-  return Discard(DiscardReason::kExternal);
-}
-
-bool TabLifecycleUnitSource::TabLifecycleUnit::IsDiscarded() const {
-  // External code does not need to know about the intermediary PENDING_DISCARD
-  // state. To external callers, the tab is discarded while in the
-  // PENDING_DISCARD state.
-  return IsDiscardedOrPendingDiscard(GetState());
-}
-
-int TabLifecycleUnitSource::TabLifecycleUnit::GetDiscardCount() const {
-  return discard_count_;
-}
-
 bool TabLifecycleUnitSource::TabLifecycleUnit::IsMediaTabImpl(
     DecisionDetails* decision_details) const {
   // TODO(fdoray): Consider being notified of audible, capturing and mirrored
@@ -829,19 +853,19 @@
       MediaCaptureDevicesDispatcher::GetInstance()
           ->GetMediaStreamCaptureIndicator();
 
-  if (media_indicator->IsCapturingUserMedia(GetWebContents())) {
+  if (media_indicator->IsCapturingUserMedia(web_contents())) {
     is_media_tab = true;
     if (decision_details)
       decision_details->AddReason(DecisionFailureReason::LIVE_STATE_CAPTURING);
   }
 
-  if (media_indicator->IsBeingMirrored(GetWebContents())) {
+  if (media_indicator->IsBeingMirrored(web_contents())) {
     is_media_tab = true;
     if (decision_details)
       decision_details->AddReason(DecisionFailureReason::LIVE_STATE_MIRRORING);
   }
 
-  if (media_indicator->IsCapturingDesktop(GetWebContents())) {
+  if (media_indicator->IsCapturingDesktop(web_contents())) {
     is_media_tab = true;
     if (decision_details) {
       decision_details->AddReason(
@@ -854,7 +878,7 @@
 
 content::RenderProcessHost*
 TabLifecycleUnitSource::TabLifecycleUnit::GetRenderProcessHost() const {
-  return GetWebContents()->GetMainFrame()->GetProcess();
+  return web_contents()->GetMainFrame()->GetProcess();
 }
 
 void TabLifecycleUnitSource::TabLifecycleUnit::
@@ -877,7 +901,7 @@
   const bool is_discarded = IsDiscardedOrPendingDiscard(GetState());
   if (was_discarded != is_discarded) {
     for (auto& observer : *observers_)
-      observer.OnDiscardedStateChange(GetWebContents(), is_discarded);
+      observer.OnDiscardedStateChange(web_contents(), is_discarded);
   }
 }
 
@@ -910,14 +934,13 @@
   // This ensures that the decision details lists all possible reasons that the
   // transition can be denied.
 
-  auto* web_contents = GetWebContents();
-
   // Do not freeze tabs that are casting/mirroring/playing audio.
   IsMediaTabImpl(decision_details);
 
   if (GetStaticProactiveTabFreezeAndDiscardParams()
           .should_protect_tabs_sharing_browsing_instance) {
-    if (web_contents->GetSiteInstance()->GetRelatedActiveContentsCount() > 1U) {
+    if (web_contents()->GetSiteInstance()->GetRelatedActiveContentsCount() >
+        1U) {
       decision_details->AddReason(
           DecisionFailureReason::LIVE_STATE_SHARING_BROWSING_INSTANCE);
     }
@@ -928,12 +951,12 @@
   // there's already a check for that above). Only do this for proactive
   // interventions.
   if (intervention_type == InterventionType::kProactive) {
-    CheckIfTabCanCommunicateWithUserWhileInBackground(web_contents,
+    CheckIfTabCanCommunicateWithUserWhileInBackground(web_contents(),
                                                       decision_details);
   }
 
   // Do not freeze/discard a tab that has active WebUSB connections.
-  if (auto* usb_tab_helper = UsbTabHelper::FromWebContents(web_contents)) {
+  if (auto* usb_tab_helper = UsbTabHelper::FromWebContents(web_contents())) {
     if (usb_tab_helper->IsDeviceConnected()) {
       decision_details->AddReason(
           DecisionFailureReason::LIVE_STATE_USING_WEB_USB);
@@ -941,7 +964,7 @@
   }
 
   // Do not freeze tabs that are currently using DevTools.
-  if (DevToolsWindow::GetInstanceForInspectedWebContents(web_contents)) {
+  if (DevToolsWindow::GetInstanceForInspectedWebContents(web_contents())) {
     decision_details->AddReason(
         DecisionFailureReason::LIVE_STATE_DEVTOOLS_OPEN);
   }
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit.h b/chrome/browser/resource_coordinator/tab_lifecycle_unit.h
index 4931f17..ac7392e 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit.h
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit.h
@@ -38,10 +38,11 @@
 static constexpr base::TimeDelta kProactiveDiscardFreezeTimeout =
     base::TimeDelta::FromMilliseconds(500);
 
+class TabLifecycleUnitExternalImpl;
+
 // Represents a tab.
 class TabLifecycleUnitSource::TabLifecycleUnit
     : public LifecycleUnitBase,
-      public TabLifecycleUnitExternal,
       public content::WebContentsObserver {
  public:
   // |observers| is a list of observers to notify when the discarded state or
@@ -95,21 +96,17 @@
   int GetEstimatedMemoryFreedOnDiscardKB() const override;
   bool CanPurge() const override;
   bool CanFreeze(DecisionDetails* decision_details) const override;
-  bool CanDiscard(DiscardReason reason,
+  bool CanDiscard(LifecycleUnitDiscardReason reason,
                   DecisionDetails* decision_details) const override;
   bool Freeze() override;
   bool Unfreeze() override;
-  bool Discard(DiscardReason discard_reason) override;
   ukm::SourceId GetUkmSourceId() const override;
 
-  // TabLifecycleUnitExternal:
-  content::WebContents* GetWebContents() const override;
-  bool IsMediaTab() const override;
-  bool IsAutoDiscardable() const override;
-  void SetAutoDiscardable(bool auto_discardable) override;
-  bool DiscardTab() override;
-  bool IsDiscarded() const override;
-  int GetDiscardCount() const override;
+  // Implementations of some functions from TabLifecycleUnitExternal. These are
+  // actually called by an instance of TabLifecycleUnitExternalImpl.
+  bool IsMediaTab() const;
+  bool IsAutoDiscardable() const;
+  void SetAutoDiscardable(bool auto_discardable);
 
  protected:
   friend class TabManagerTest;
@@ -125,6 +122,9 @@
     kExternalOrUrgent,
   };
 
+  // LifecycleUnitBase:
+  bool DiscardImpl(LifecycleUnitDiscardReason discard_reason) override;
+
   // Same as GetSource, but cast to the most derived type.
   TabLifecycleUnitSource* GetTabSource() const;
 
@@ -134,7 +134,7 @@
 
   // For non-urgent discarding, sends a request for freezing to occur prior to
   // discarding the tab.
-  void RequestFreezeForDiscard(DiscardReason reason);
+  void RequestFreezeForDiscard(LifecycleUnitDiscardReason reason);
 
   // Finishes a tab discard. For an urgent discard, this is invoked by
   // Discard(). For a proactive or external discard, where the tab is frozen
@@ -142,7 +142,7 @@
   // callback has been received, or by |freeze_timeout_timer_| if the
   // kProactiveDiscardFreezeTimeout timeout has passed without receiving the
   // callback.
-  void FinishDiscard(DiscardReason discard_reason);
+  void FinishDiscard(LifecycleUnitDiscardReason discard_reason);
 
   // Returns the RenderProcessHost associated with this tab.
   content::RenderProcessHost* GetRenderProcessHost() const;
@@ -174,9 +174,6 @@
   // TabStripModel to which this tab belongs.
   TabStripModel* tab_strip_model_;
 
-  // The number of times that this tab has been discarded.
-  int discard_count_ = 0;
-
   // Last time at which this tab was focused, or TimeTicks::Max() if it is
   // currently focused. For tabs that aren't currently focused this is
   // initialized using WebContents::GetLastActiveTime, which causes use times
@@ -190,9 +187,6 @@
   // When this is false, CanDiscard() always returns false.
   bool auto_discardable_ = true;
 
-  // Maintains the most recent DiscardReason that was pased into Discard().
-  DiscardReason discard_reason_;
-
   // Timer that ensures that this tab does not wait forever for the callback
   // when it is being frozen.
   std::unique_ptr<base::OneShotTimer> freeze_timeout_timer_;
@@ -202,6 +196,8 @@
   // tab was "recently audible" otherwise.
   base::TimeTicks recently_audible_time_;
 
+  std::unique_ptr<TabLifecycleUnitExternalImpl> external_impl_;
+
   DISALLOW_COPY_AND_ASSIGN(TabLifecycleUnit);
 };
 
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.cc
index e8631c4..7d87b13 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.cc
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.cc
@@ -83,7 +83,10 @@
 
 TabLifecycleUnitExternal* TabLifecycleUnitSource::GetTabLifecycleUnitExternal(
     content::WebContents* web_contents) const {
-  return GetTabLifecycleUnit(web_contents);
+  auto* lu = GetTabLifecycleUnit(web_contents);
+  if (!lu)
+    return nullptr;
+  return lu->AsTabLifecycleUnitExternal();
 }
 
 void TabLifecycleUnitSource::AddTabLifecycleObserver(
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.h b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.h
index 8acd8f4..ed089f35 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.h
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source.h
@@ -38,6 +38,8 @@
                                public PageSignalObserver,
                                public TabStripModelObserver {
  public:
+  class TabLifecycleUnit;
+
   explicit TabLifecycleUnitSource(
       InterventionPolicyDatabase* intervention_policy_database,
       UsageClock* usage_clock);
@@ -91,7 +93,6 @@
                            ProactiveFastShutdownWithUnloadHandler);
   FRIEND_TEST_ALL_PREFIXES(TabManagerTest,
                            ProactiveFastShutdownWithBeforeunloadHandler);
-  class TabLifecycleUnit;
 
   // Returns the TabLifecycleUnit instance associated with |web_contents|, or
   // nullptr if |web_contents| isn't a tab.
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc
index 5ca69e5..633d7fa 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit_source_unittest.cc
@@ -257,9 +257,9 @@
   }
 
   void TransitionFromPendingDiscardToDiscardedIfNeeded(
-      DiscardReason reason,
+      LifecycleUnitDiscardReason reason,
       LifecycleUnit* lifecycle_unit) {
-    if (reason == DiscardReason::kProactive) {
+    if (reason == LifecycleUnitDiscardReason::PROACTIVE) {
       EXPECT_EQ(LifecycleUnitState::PENDING_DISCARD,
                 lifecycle_unit->GetState());
       task_runner_->FastForwardBy(kProactiveDiscardFreezeTimeout);
@@ -269,7 +269,7 @@
 
   void DiscardAndAttachTabHelpers(LifecycleUnit* lifecycle_unit) {}
 
-  void DetachWebContentsTest(DiscardReason reason) {
+  void DetachWebContentsTest(LifecycleUnitDiscardReason reason) {
     LifecycleUnit* first_lifecycle_unit = nullptr;
     LifecycleUnit* second_lifecycle_unit = nullptr;
     CreateTwoTabs(true /* focus_tab_strip */, &first_lifecycle_unit,
@@ -310,7 +310,7 @@
                                     {first_lifecycle_unit});
   }
 
-  void DiscardTest(DiscardReason reason) {
+  void DiscardTest(LifecycleUnitDiscardReason reason) {
     const base::TimeTicks kDummyLastActiveTime =
         base::TimeTicks() + kShortDelay;
 
@@ -344,7 +344,7 @@
     source_->SetFocusedTabStripModelForTesting(nullptr);
   }
 
-  void DiscardAndActivateTest(DiscardReason reason) {
+  void DiscardAndActivateTest(LifecycleUnitDiscardReason reason) {
     LifecycleUnit* background_lifecycle_unit = nullptr;
     LifecycleUnit* foreground_lifecycle_unit = nullptr;
     CreateTwoTabs(true /* focus_tab_strip */, &background_lifecycle_unit,
@@ -378,7 +378,7 @@
                     .GetPendingEntry());
   }
 
-  void DiscardAndExplicitlyReloadTest(DiscardReason reason) {
+  void DiscardAndExplicitlyReloadTest(LifecycleUnitDiscardReason reason) {
     LifecycleUnit* background_lifecycle_unit = nullptr;
     LifecycleUnit* foreground_lifecycle_unit = nullptr;
     CreateTwoTabs(true /* focus_tab_strip */, &background_lifecycle_unit,
@@ -519,15 +519,15 @@
 }
 
 TEST_F(TabLifecycleUnitSourceTest, DetachWebContents_Urgent) {
-  DetachWebContentsTest(DiscardReason::kUrgent);
+  DetachWebContentsTest(LifecycleUnitDiscardReason::URGENT);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, DetachWebContents_Proactive) {
-  DetachWebContentsTest(DiscardReason::kProactive);
+  DetachWebContentsTest(LifecycleUnitDiscardReason::PROACTIVE);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, DetachWebContents_External) {
-  DetachWebContentsTest(DiscardReason::kExternal);
+  DetachWebContentsTest(LifecycleUnitDiscardReason::EXTERNAL);
 }
 
 // Regression test for https://crbug.com/818454. Previously, TabLifecycleUnits
@@ -558,39 +558,39 @@
 // WebContents in the TabLifecycleUnit.
 
 TEST_F(TabLifecycleUnitSourceTest, Discard_Proactive) {
-  DiscardTest(DiscardReason::kProactive);
+  DiscardTest(LifecycleUnitDiscardReason::PROACTIVE);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, Discard_Urgent) {
-  DiscardTest(DiscardReason::kUrgent);
+  DiscardTest(LifecycleUnitDiscardReason::URGENT);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, Discard_External) {
-  DiscardTest(DiscardReason::kExternal);
+  DiscardTest(LifecycleUnitDiscardReason::EXTERNAL);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, DiscardAndActivate_Urgent) {
-  DiscardAndActivateTest(DiscardReason::kUrgent);
+  DiscardAndActivateTest(LifecycleUnitDiscardReason::URGENT);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, DiscardAndActivate_Proactive) {
-  DiscardAndActivateTest(DiscardReason::kProactive);
+  DiscardAndActivateTest(LifecycleUnitDiscardReason::PROACTIVE);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, DiscardAndActivate_External) {
-  DiscardAndActivateTest(DiscardReason::kExternal);
+  DiscardAndActivateTest(LifecycleUnitDiscardReason::EXTERNAL);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, DiscardAndExplicitlyReload_Urgent) {
-  DiscardAndExplicitlyReloadTest(DiscardReason::kUrgent);
+  DiscardAndExplicitlyReloadTest(LifecycleUnitDiscardReason::URGENT);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, DiscardAndExplicitlyReload_Proactive) {
-  DiscardAndExplicitlyReloadTest(DiscardReason::kProactive);
+  DiscardAndExplicitlyReloadTest(LifecycleUnitDiscardReason::PROACTIVE);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, DiscardAndExplicitlyReload_External) {
-  DiscardAndExplicitlyReloadTest(DiscardReason::kExternal);
+  DiscardAndExplicitlyReloadTest(LifecycleUnitDiscardReason::EXTERNAL);
 }
 
 TEST_F(TabLifecycleUnitSourceTest, CannotFreezeADiscardedTab) {
@@ -605,14 +605,15 @@
   // It should be possible to discard the background tab.
   ExpectCanDiscardTrueAllReasons(background_lifecycle_unit);
 
-  // Discard the tab. Use DiscardReason::kUrgent to force the discard.
+  // Discard the tab. Use LifecycleUnitDiscardReason::URGENT to force the
+  // discard.
   EXPECT_EQ(LifecycleUnitState::ACTIVE, background_lifecycle_unit->GetState());
   EXPECT_CALL(tab_observer_, OnDiscardedStateChange(::testing::_, true));
-  background_lifecycle_unit->Discard(DiscardReason::kUrgent);
+  background_lifecycle_unit->Discard(LifecycleUnitDiscardReason::URGENT);
 
   ::testing::Mock::VerifyAndClear(&tab_observer_);
-  TransitionFromPendingDiscardToDiscardedIfNeeded(DiscardReason::kUrgent,
-                                                  background_lifecycle_unit);
+  TransitionFromPendingDiscardToDiscardedIfNeeded(
+      LifecycleUnitDiscardReason::URGENT, background_lifecycle_unit);
   EXPECT_EQ(LifecycleUnitState::DISCARDED,
             background_lifecycle_unit->GetState());
   EXPECT_NE(initial_web_contents, tab_strip_model_->GetWebContentsAt(0));
@@ -644,7 +645,7 @@
 
   EXPECT_CALL(tab_observer_, OnDiscardedStateChange(::testing::_, true));
 
-  background_lifecycle_unit->Discard(DiscardReason::kProactive);
+  background_lifecycle_unit->Discard(LifecycleUnitDiscardReason::PROACTIVE);
   EXPECT_EQ(LifecycleUnitState::PENDING_DISCARD,
             background_lifecycle_unit->GetState());
 
@@ -668,11 +669,11 @@
   EXPECT_EQ(LifecycleUnitState::ACTIVE, background_lifecycle_unit->GetState());
   EXPECT_CALL(tab_observer_, OnDiscardedStateChange(::testing::_, true));
 
-  background_lifecycle_unit->Discard(DiscardReason::kProactive);
+  background_lifecycle_unit->Discard(LifecycleUnitDiscardReason::PROACTIVE);
   EXPECT_EQ(LifecycleUnitState::PENDING_DISCARD,
             background_lifecycle_unit->GetState());
-  TransitionFromPendingDiscardToDiscardedIfNeeded(DiscardReason::kProactive,
-                                                  background_lifecycle_unit);
+  TransitionFromPendingDiscardToDiscardedIfNeeded(
+      LifecycleUnitDiscardReason::PROACTIVE, background_lifecycle_unit);
 
   EXPECT_EQ(LifecycleUnitState::DISCARDED,
             background_lifecycle_unit->GetState());
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc
index a78f2ca..10a75ef 100644
--- a/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit_unittest.cc
@@ -204,8 +204,8 @@
   }
   {
     DecisionDetails decision_details;
-    EXPECT_FALSE(tab_lifecycle_unit.CanDiscard(DiscardReason::kProactive,
-                                               &decision_details));
+    EXPECT_FALSE(tab_lifecycle_unit.CanDiscard(
+        LifecycleUnitDiscardReason::PROACTIVE, &decision_details));
     EXPECT_FALSE(decision_details.IsPositive());
     EXPECT_EQ(failure_reason, decision_details.FailureReason());
     // There should only be one reason (e.g. no duplicates).
@@ -217,14 +217,14 @@
   // Heuristics shouldn't be considered for urgent or external tab discarding.
   {
     DecisionDetails decision_details;
-    EXPECT_TRUE(tab_lifecycle_unit.CanDiscard(DiscardReason::kExternal,
-                                              &decision_details));
+    EXPECT_TRUE(tab_lifecycle_unit.CanDiscard(
+        LifecycleUnitDiscardReason::EXTERNAL, &decision_details));
     EXPECT_TRUE(decision_details.IsPositive());
   }
   {
     DecisionDetails decision_details;
-    EXPECT_TRUE(tab_lifecycle_unit.CanDiscard(DiscardReason::kUrgent,
-                                              &decision_details));
+    EXPECT_TRUE(tab_lifecycle_unit.CanDiscard(
+        LifecycleUnitDiscardReason::URGENT, &decision_details));
     EXPECT_TRUE(decision_details.IsPositive());
   }
 
@@ -236,8 +236,7 @@
   TabLifecycleUnit tab_lifecycle_unit(GetSource(), &observers_,
                                       usage_clock_.get(), web_contents_,
                                       tab_strip_model_.get());
-  EXPECT_EQ(&tab_lifecycle_unit,
-            tab_lifecycle_unit.AsTabLifecycleUnitExternal());
+  EXPECT_TRUE(tab_lifecycle_unit.AsTabLifecycleUnitExternal());
 }
 
 TEST_F(TabLifecycleUnitTest, CanDiscardByDefault) {
@@ -516,8 +515,8 @@
   // should still be possible.
   {
     DecisionDetails decision_details;
-    EXPECT_FALSE(tab_lifecycle_unit.CanDiscard(DiscardReason::kProactive,
-                                               &decision_details));
+    EXPECT_FALSE(tab_lifecycle_unit.CanDiscard(
+        LifecycleUnitDiscardReason::PROACTIVE, &decision_details));
     EXPECT_FALSE(decision_details.IsPositive());
     EXPECT_EQ(DecisionFailureReason::GLOBAL_BLACKLIST,
               decision_details.FailureReason());
@@ -525,14 +524,14 @@
   }
   {
     DecisionDetails decision_details;
-    EXPECT_TRUE(tab_lifecycle_unit.CanDiscard(DiscardReason::kUrgent,
-                                              &decision_details));
+    EXPECT_TRUE(tab_lifecycle_unit.CanDiscard(
+        LifecycleUnitDiscardReason::URGENT, &decision_details));
     EXPECT_TRUE(decision_details.IsPositive());
   }
   {
     DecisionDetails decision_details;
-    EXPECT_TRUE(tab_lifecycle_unit.CanDiscard(DiscardReason::kExternal,
-                                              &decision_details));
+    EXPECT_TRUE(tab_lifecycle_unit.CanDiscard(
+        LifecycleUnitDiscardReason::EXTERNAL, &decision_details));
     EXPECT_TRUE(decision_details.IsPositive());
   }
 }
@@ -574,8 +573,8 @@
   tab_lifecycle_unit.SetRecentlyAudible(true);
 
   DecisionDetails decision_details;
-  EXPECT_TRUE(tab_lifecycle_unit.CanDiscard(DiscardReason::kProactive,
-                                            &decision_details));
+  EXPECT_TRUE(tab_lifecycle_unit.CanDiscard(
+      LifecycleUnitDiscardReason::PROACTIVE, &decision_details));
   EXPECT_TRUE(decision_details.IsPositive());
   EXPECT_EQ(DecisionSuccessReason::GLOBAL_WHITELIST,
             decision_details.SuccessReason());
@@ -690,8 +689,8 @@
 
     decision_details.Clear();
 
-    EXPECT_FALSE(tab_lifecycle_unit.CanDiscard(DiscardReason::kProactive,
-                                               &decision_details));
+    EXPECT_FALSE(tab_lifecycle_unit.CanDiscard(
+        LifecycleUnitDiscardReason::PROACTIVE, &decision_details));
     EXPECT_FALSE(decision_details.IsPositive());
     EXPECT_EQ(DecisionFailureReason::LIVE_STATE_SHARING_BROWSING_INSTANCE,
               decision_details.FailureReason());
diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc
index 81910624..b379760a 100644
--- a/chrome/browser/resource_coordinator/tab_manager.cc
+++ b/chrome/browser/resource_coordinator/tab_manager.cc
@@ -290,8 +290,8 @@
   return sorted_lifecycle_units;
 }
 
-void TabManager::DiscardTab(DiscardReason reason) {
-  if (reason == DiscardReason::kUrgent)
+void TabManager::DiscardTab(LifecycleUnitDiscardReason reason) {
+  if (reason == LifecycleUnitDiscardReason::URGENT)
     stats_collector_->RecordWillDiscardUrgently(GetNumAliveTabs());
 
 #if defined(OS_CHROMEOS)
@@ -312,10 +312,10 @@
     return nullptr;
   }
 
-  return DiscardTabImpl(DiscardReason::kExternal);
+  return DiscardTabImpl(LifecycleUnitDiscardReason::EXTERNAL);
 }
 
-void TabManager::LogMemoryAndDiscardTab(DiscardReason reason) {
+void TabManager::LogMemoryAndDiscardTab(LifecycleUnitDiscardReason reason) {
   // Discard immediately without waiting for LogMemory() (https://crbug/850545).
   // Consider removing LogMemory() at all if nobody cares about the log.
   LogMemory("Tab Discards Memory details");
@@ -390,7 +390,7 @@
 // TabManager, private:
 
 // static
-void TabManager::PurgeMemoryAndDiscardTab(DiscardReason reason) {
+void TabManager::PurgeMemoryAndDiscardTab(LifecycleUnitDiscardReason reason) {
   TabManager* manager = g_browser_process->GetTabManager();
   manager->PurgeBrowserMemory();
   manager->DiscardTab(reason);
@@ -537,7 +537,7 @@
     case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE:
       break;
     case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL:
-      LogMemoryAndDiscardTab(DiscardReason::kUrgent);
+      LogMemoryAndDiscardTab(LifecycleUnitDiscardReason::URGENT);
       break;
     default:
       NOTREACHED();
@@ -644,7 +644,8 @@
 // TODO(jamescook): This should consider tabs with references to other tabs,
 // such as tabs created with JavaScript window.open(). Potentially consider
 // discarding the entire set together, or use that in the priority computation.
-content::WebContents* TabManager::DiscardTabImpl(DiscardReason reason) {
+content::WebContents* TabManager::DiscardTabImpl(
+    LifecycleUnitDiscardReason reason) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   for (LifecycleUnit* lifecycle_unit : GetSortedLifecycleUnits()) {
@@ -966,7 +967,7 @@
     // Keep track of the discardable LifecycleUnit that has been hidden for the
     // longest time. It might be discarded below.
     DecisionDetails discard_details;
-    if (lifecycle_unit->CanDiscard(DiscardReason::kProactive,
+    if (lifecycle_unit->CanDiscard(LifecycleUnitDiscardReason::PROACTIVE,
                                    &discard_details)) {
       if (!oldest_discardable_lifecycle_unit ||
           lifecycle_unit->GetChromeUsageTimeWhenHidden() <
@@ -1070,7 +1071,7 @@
       GetTimeInBackgroundBeforeProactiveDiscard() - usage_time_not_visible;
 
   if (time_until_discard <= base::TimeDelta()) {
-    lifecycle_unit->Discard(DiscardReason::kProactive);
+    lifecycle_unit->Discard(LifecycleUnitDiscardReason::PROACTIVE);
     // Request another call to check if another discard should happen.
     return base::TimeTicks();
   }
diff --git a/chrome/browser/resource_coordinator/tab_manager.h b/chrome/browser/resource_coordinator/tab_manager.h
index 4258467..da4d69e 100644
--- a/chrome/browser/resource_coordinator/tab_manager.h
+++ b/chrome/browser/resource_coordinator/tab_manager.h
@@ -20,7 +20,6 @@
 #include "base/timer/timer.h"
 #include "build/build_config.h"
 #include "chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h"
-#include "chrome/browser/resource_coordinator/discard_reason.h"
 #include "chrome/browser/resource_coordinator/intervention_policy_database.h"
 #include "chrome/browser/resource_coordinator/lifecycle_unit.h"
 #include "chrome/browser/resource_coordinator/lifecycle_unit_observer.h"
@@ -108,7 +107,7 @@
   // urgent, an aggressive fast-kill will be attempted if the sudden termination
   // disablers are allowed to be ignored (e.g. On ChromeOS, we can ignore an
   // unload handler and fast-kill the tab regardless).
-  void DiscardTab(DiscardReason reason);
+  void DiscardTab(LifecycleUnitDiscardReason reason);
 
   // Method used by the extensions API to discard tabs. If |contents| is null,
   // discards the least important tab using DiscardTab(). Otherwise discards
@@ -119,7 +118,7 @@
   // Log memory statistics for the running processes, then discards a tab.
   // Tab discard happens sometime later, as collecting the statistics touches
   // multiple threads and takes time.
-  void LogMemoryAndDiscardTab(DiscardReason reason);
+  void LogMemoryAndDiscardTab(LifecycleUnitDiscardReason reason);
 
   // Log memory statistics for the running processes.
   void LogMemory(const std::string& title);
@@ -266,7 +265,7 @@
   // min time to purge times this value.
   const int kDefaultMinMaxTimeToPurgeRatio = 4;
 
-  static void PurgeMemoryAndDiscardTab(DiscardReason reason);
+  static void PurgeMemoryAndDiscardTab(LifecycleUnitDiscardReason reason);
 
   // Returns true if the |url| represents an internal Chrome web UI page that
   // can be easily reloaded and hence makes a good choice to discard.
@@ -344,7 +343,7 @@
 
   // Discards the less important LifecycleUnit that supports discarding under
   // |reason|.
-  content::WebContents* DiscardTabImpl(DiscardReason reason);
+  content::WebContents* DiscardTabImpl(LifecycleUnitDiscardReason reason);
 
   void OnSessionRestoreStartedLoadingTabs();
   void OnSessionRestoreFinishedLoadingTabs();
diff --git a/chrome/browser/resource_coordinator/tab_manager_browsertest.cc b/chrome/browser/resource_coordinator/tab_manager_browsertest.cc
index 37aef035..a488e73 100644
--- a/chrome/browser/resource_coordinator/tab_manager_browsertest.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_browsertest.cc
@@ -275,8 +275,8 @@
   // indicates that the page is frozen. In production, this is sent by the
   // renderer process. This is done to finish a proactive tab discard.
   void SimulateFreezeSignal(content::WebContents* contents) {
-    static_cast<TabLifecycleUnitSource::TabLifecycleUnit*>(
-        TabLifecycleUnitExternal::FromWebContents(contents))
+    TabLifecycleUnitSource::GetInstance()
+        ->GetTabLifecycleUnit(contents)
         ->UpdateLifecycleState(mojom::LifecycleState::kFrozen);
   }
 
@@ -288,8 +288,8 @@
   }
 
   LifecycleUnit* GetLifecycleUnitAt(int index) {
-    return static_cast<TabLifecycleUnitSource::TabLifecycleUnit*>(
-        TabLifecycleUnitExternal::FromWebContents(GetWebContentsAt(index)));
+    return TabLifecycleUnitSource::GetInstance()->GetTabLifecycleUnit(
+        GetWebContentsAt(index));
   }
 
   base::SimpleTestTickClock test_clock_;
@@ -380,7 +380,8 @@
   EXPECT_EQ(3, tsm()->count());
 
   // Discard a tab.
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kUrgent));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::URGENT));
   EXPECT_EQ(3, tsm()->count());
   if (base::FeatureList::IsEnabled(features::kTabRanker)) {
     // In testing configs with TabRanker enabled, we don't always know which tab
@@ -396,14 +397,16 @@
   EXPECT_FALSE(IsTabDiscarded(GetWebContentsAt(2)));
 
   // Run discard again. Both unselected tabs should now be killed.
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kUrgent));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::URGENT));
   EXPECT_EQ(3, tsm()->count());
   EXPECT_TRUE(IsTabDiscarded(GetWebContentsAt(0)));
   EXPECT_TRUE(IsTabDiscarded(GetWebContentsAt(1)));
   EXPECT_FALSE(IsTabDiscarded(GetWebContentsAt(2)));
 
   // Run discard again. It should not kill the last tab, since it is active.
-  EXPECT_FALSE(tab_manager()->DiscardTabImpl(DiscardReason::kUrgent));
+  EXPECT_FALSE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::URGENT));
   EXPECT_TRUE(IsTabDiscarded(GetWebContentsAt(0)));
   EXPECT_TRUE(IsTabDiscarded(GetWebContentsAt(1)));
   EXPECT_FALSE(IsTabDiscarded(GetWebContentsAt(2)));
@@ -413,7 +416,7 @@
 
   EXPECT_EQ(1, tsm()->active_index());
   EXPECT_FALSE(IsTabDiscarded(GetWebContentsAt(1)));
-  tab_manager()->DiscardTabImpl(DiscardReason::kUrgent);
+  tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::URGENT);
   EXPECT_TRUE(IsTabDiscarded(GetWebContentsAt(2)));
 
   // Force creation of the FindBarController.
@@ -546,11 +549,13 @@
 
   // This shouldn't be able to discard a tab as the background tab has not yet
   // started loading (its URL is not committed).
-  EXPECT_FALSE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_FALSE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
 
   // Wait for the background tab to load which then allows it to be discarded.
   load2.Wait();
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
 }
 
 // Makes sure that PDF pages are protected.
@@ -571,7 +576,8 @@
 
   // No discarding should be possible as the only background tab is displaying a
   // PDF page, hence protected.
-  EXPECT_FALSE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_FALSE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
 }
 
 // Makes sure that tabs using media devices are protected.
@@ -599,13 +605,15 @@
   video_stream_ui->OnStarted(base::Closure());
 
   // Should not be able to discard a tab.
-  ASSERT_FALSE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  ASSERT_FALSE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
 
   // Remove the video stream.
   video_stream_ui.reset();
 
   // Should be able to discard the background tab now.
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
 }
 
 // Makes sure that tabs using DevTools are protected from discarding.
@@ -627,7 +635,8 @@
 
   // No discarding should be possible as the only background tab is currently
   // using DevTools.
-  EXPECT_FALSE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_FALSE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
 
   // Close the DevTools window and repeat the test, this time use a non-docked
   // window.
@@ -635,13 +644,15 @@
   devtool = DevToolsWindowTesting::OpenDevToolsWindowSync(
       GetWebContentsAt(0), false /* is_docked */);
   EXPECT_TRUE(devtool);
-  EXPECT_FALSE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_FALSE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
 
   // TODO(sebmarchand): Also ensure that the tab can't be frozen.
 
   // Close the DevTools window, ensure that the tab can be discarded.
   DevToolsWindowTesting::CloseDevToolsWindowSync(devtool);
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
 }
 
 IN_PROC_BROWSER_TEST_F(TabManagerTest, CanPurgeBackgroundedRenderer) {
@@ -705,14 +716,16 @@
       ->SetAutoDiscardable(false);
 
   // Shouldn't discard the tab, since auto-discardable is deactivated.
-  EXPECT_FALSE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_FALSE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
 
   // Reset auto-discardable state to true.
   TabLifecycleUnitExternal::FromWebContents(GetWebContentsAt(0))
       ->SetAutoDiscardable(true);
 
   // Now it should be able to discard the tab.
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
   EXPECT_TRUE(IsTabDiscarded(GetWebContentsAt(0)));
 }
 
@@ -821,7 +834,8 @@
       content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
       content::NotificationService::AllSources());
   base::HistogramTester tester;
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
   SimulateFreezeSignal(GetWebContentsAt(1));
 
   tester.ExpectUniqueSample(
@@ -838,7 +852,8 @@
       content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
       content::NotificationService::AllSources());
   base::HistogramTester tester;
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kUrgent));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::URGENT));
   tester.ExpectUniqueSample(
       "TabManager.Discarding.DiscardedTabCouldFastShutdown", true, 1);
   observer.Wait();
@@ -855,7 +870,8 @@
   // share the same process regardless of the discard reason. No unsafe attempts
   // will be made.
   base::HistogramTester tester;
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
   SimulateFreezeSignal(GetWebContentsAt(1));
 
   tester.ExpectUniqueSample(
@@ -874,7 +890,8 @@
   // share the same process regardless of the discard reason. An unsafe attempt
   // will be made on some platforms.
   base::HistogramTester tester;
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kUrgent));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::URGENT));
 #ifdef OS_CHROMEOS
   // The unsafe killing attempt will fail for the same reason.
   tester.ExpectUniqueSample(
@@ -895,7 +912,8 @@
   // The Tab Manager will not be able to safely fast-kill either of the tabs as
   // one of them is current, and the other has an unload handler. No unsafe
   // attempts will be made.
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
   SimulateFreezeSignal(GetWebContentsAt(1));
 
   tester.ExpectUniqueSample(
@@ -919,7 +937,8 @@
       content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
       content::NotificationService::AllSources());
 #endif  // OS_CHROMEOS
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kUrgent));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::URGENT));
 #ifdef OS_CHROMEOS
   tester.ExpectUniqueSample(
       "TabManager.Discarding.DiscardedTabCouldUnsafeFastShutdown", true, 1);
@@ -944,7 +963,8 @@
   // one of them is current, and the other has a beforeunload handler. No unsafe
   // attempts will be made.
   base::HistogramTester tester;
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::PROACTIVE));
   SimulateFreezeSignal(GetWebContentsAt(1));
 
   tester.ExpectUniqueSample(
@@ -962,7 +982,8 @@
   // one of them is current, and the other has a beforeunload handler. An unsafe
   // attempt will be made on some platforms.
   base::HistogramTester tester;
-  EXPECT_TRUE(tab_manager()->DiscardTabImpl(DiscardReason::kUrgent));
+  EXPECT_TRUE(
+      tab_manager()->DiscardTabImpl(LifecycleUnitDiscardReason::URGENT));
 #ifdef OS_CHROMEOS
   // The unsafe killing attempt will fail as ChromeOS does not ignore
   // beforeunload handlers.
@@ -1038,7 +1059,8 @@
   TestTransitionFromActiveToPendingFreeze();
 
   // Proactively discard the background tab.
-  EXPECT_TRUE(GetLifecycleUnitAt(1)->Discard(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      GetLifecycleUnitAt(1)->Discard(LifecycleUnitDiscardReason::PROACTIVE));
   EXPECT_EQ(LifecycleUnitState::PENDING_DISCARD,
             GetLifecycleUnitAt(1)->GetState());
 
@@ -1061,7 +1083,8 @@
             GetLifecycleUnitAt(1)->GetState());
 
   // Urgently discard the background tab.
-  EXPECT_TRUE(GetLifecycleUnitAt(1)->Discard(DiscardReason::kUrgent));
+  EXPECT_TRUE(
+      GetLifecycleUnitAt(1)->Discard(LifecycleUnitDiscardReason::URGENT));
   EXPECT_EQ(LifecycleUnitState::DISCARDED, GetLifecycleUnitAt(1)->GetState());
 }
 
@@ -1074,7 +1097,8 @@
   TestTransitionFromActiveToFrozen();
 
   // Urgently discard the background tab.
-  EXPECT_TRUE(GetLifecycleUnitAt(1)->Discard(DiscardReason::kUrgent));
+  EXPECT_TRUE(
+      GetLifecycleUnitAt(1)->Discard(LifecycleUnitDiscardReason::URGENT));
   EXPECT_EQ(LifecycleUnitState::DISCARDED, GetLifecycleUnitAt(1)->GetState());
 }
 
@@ -1089,7 +1113,8 @@
                        TabProactiveDiscardAndFocusBeforeFreezeCompletes) {
   // Proactively discard the background tab.
   EXPECT_EQ(LifecycleUnitState::ACTIVE, GetLifecycleUnitAt(1)->GetState());
-  EXPECT_TRUE(GetLifecycleUnitAt(1)->Discard(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      GetLifecycleUnitAt(1)->Discard(LifecycleUnitDiscardReason::PROACTIVE));
   EXPECT_EQ(LifecycleUnitState::PENDING_DISCARD,
             GetLifecycleUnitAt(1)->GetState());
 
@@ -1120,7 +1145,8 @@
                        TabProactiveDiscardAndFocusToReload) {
   // Proactively discard the background tab.
   EXPECT_EQ(LifecycleUnitState::ACTIVE, GetLifecycleUnitAt(1)->GetState());
-  EXPECT_TRUE(GetLifecycleUnitAt(1)->Discard(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      GetLifecycleUnitAt(1)->Discard(LifecycleUnitDiscardReason::PROACTIVE));
   EXPECT_EQ(LifecycleUnitState::PENDING_DISCARD,
             GetLifecycleUnitAt(1)->GetState());
 
@@ -1146,7 +1172,8 @@
                        TabFreezeDisallowedWhenProactivelyDiscarding) {
   // Proactively discard the background tab.
   EXPECT_EQ(LifecycleUnitState::ACTIVE, GetLifecycleUnitAt(1)->GetState());
-  EXPECT_TRUE(GetLifecycleUnitAt(1)->Discard(DiscardReason::kProactive));
+  EXPECT_TRUE(
+      GetLifecycleUnitAt(1)->Discard(LifecycleUnitDiscardReason::PROACTIVE));
   EXPECT_EQ(LifecycleUnitState::PENDING_DISCARD,
             GetLifecycleUnitAt(1)->GetState());
 
@@ -1185,7 +1212,8 @@
 
   // Discard the tab.
   EXPECT_EQ(LifecycleUnitState::ACTIVE, GetLifecycleUnitAt(0)->GetState());
-  EXPECT_TRUE(GetLifecycleUnitAt(0)->Discard(DiscardReason::kExternal));
+  EXPECT_TRUE(
+      GetLifecycleUnitAt(0)->Discard(LifecycleUnitDiscardReason::EXTERNAL));
   EXPECT_EQ(LifecycleUnitState::DISCARDED, GetLifecycleUnitAt(0)->GetState());
 
   // Here we simulate re-focussing the tab causing reload with navigation,
@@ -1398,7 +1426,7 @@
   EXPECT_NE(browser3, browser4);
 
   for (int i = 0; i < 8; ++i)
-    tab_manager()->DiscardTab(DiscardReason::kProactive);
+    tab_manager()->DiscardTab(LifecycleUnitDiscardReason::PROACTIVE);
 
   base::RunLoop().RunUntilIdle();
 
diff --git a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc
index e4c45e6..a9fc2dbb 100644
--- a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc
@@ -146,8 +146,9 @@
     if (lifecycle_unit_sort_key_.last_focused_time == base::TimeTicks::Max())
       return ProcessType::FOCUSED_TAB;
     DecisionDetails decision_details;
-    if (!lifecycle_unit()->CanDiscard(DiscardReason::kProactive,
-                                      &decision_details)) {
+    if (!lifecycle_unit()->CanDiscard(
+            ::mojom::LifecycleUnitDiscardReason::PROACTIVE,
+            &decision_details)) {
       return ProcessType::PROTECTED_BACKGROUND_TAB;
     }
     return ProcessType::BACKGROUND_TAB;
@@ -337,7 +338,8 @@
 
 // If able to get the list of ARC procsses, prioritize tabs and apps as a whole.
 // Otherwise try to kill tabs only.
-void TabManagerDelegate::LowMemoryKill(DiscardReason reason) {
+void TabManagerDelegate::LowMemoryKill(
+    ::mojom::LifecycleUnitDiscardReason reason) {
   arc::ArcProcessService* arc_process_service = arc::ArcProcessService::Get();
   base::TimeTicks now = base::TimeTicks::Now();
   if (arc_process_service &&
@@ -536,7 +538,7 @@
 }
 
 bool TabManagerDelegate::KillTab(LifecycleUnit* lifecycle_unit,
-                                 DiscardReason reason) {
+                                 ::mojom::LifecycleUnitDiscardReason reason) {
   DecisionDetails decision_details;
   if (!lifecycle_unit->CanDiscard(reason, &decision_details))
     return false;
@@ -550,7 +552,7 @@
 
 void TabManagerDelegate::LowMemoryKillImpl(
     base::TimeTicks start_time,
-    DiscardReason reason,
+    ::mojom::LifecycleUnitDiscardReason reason,
     std::vector<arc::ArcProcess> arc_processes) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   VLOG(2) << "LowMemoryKillImpl";
diff --git a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.h b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.h
index 1e20013b..63dfddf 100644
--- a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.h
+++ b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.h
@@ -19,6 +19,7 @@
 #include "base/timer/timer.h"
 #include "chrome/browser/chromeos/arc/process/arc_process.h"
 #include "chrome/browser/resource_coordinator/lifecycle_unit.h"
+#include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom.h"
 #include "chrome/browser/resource_coordinator/tab_manager.h"
 #include "chrome/browser/ui/browser_list_observer.h"
 #include "chromeos/dbus/debug_daemon_client.h"
@@ -74,7 +75,7 @@
                          aura::Window* lost_active) override;
 
   // Kills a process on memory pressure.
-  void LowMemoryKill(DiscardReason reason);
+  void LowMemoryKill(::mojom::LifecycleUnitDiscardReason reason);
 
   // Returns oom_score_adj of a process if the score is cached by |this|.
   // If couldn't find the score in the cache, returns -1001 since the valid
@@ -96,7 +97,8 @@
 
   // Kills a tab. Returns true if the tab is killed successfully.
   // Virtual for unit testing.
-  virtual bool KillTab(LifecycleUnit* lifecycle_unit, DiscardReason reason);
+  virtual bool KillTab(LifecycleUnit* lifecycle_unit,
+                       ::mojom::LifecycleUnitDiscardReason reason);
 
   // Get debugd client instance. Virtual for unit testing.
   virtual chromeos::DebugDaemonClient* GetDebugDaemonClient();
@@ -144,7 +146,7 @@
 
   // Kills a process after getting all info of tabs and apps.
   void LowMemoryKillImpl(base::TimeTicks start_time,
-                         DiscardReason reason,
+                         ::mojom::LifecycleUnitDiscardReason reason,
                          std::vector<arc::ArcProcess> arc_processes);
 
   // Sets a newly focused tab the highest priority process if it wasn't.
diff --git a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos_unittest.cc b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos_unittest.cc
index ce51dd1..a9186d0 100644
--- a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos_unittest.cc
@@ -149,7 +149,8 @@
     return true;
   }
 
-  bool KillTab(LifecycleUnit* lifecycle_unit, DiscardReason reason) override {
+  bool KillTab(LifecycleUnit* lifecycle_unit,
+               ::mojom::LifecycleUnitDiscardReason reason) override {
     killed_tabs_.push_back(lifecycle_unit);
     return true;
   }
@@ -327,9 +328,9 @@
 
   memory_stat->SetTargetMemoryToFreeKB(250000);
   memory_stat->SetProcessPss(30, 10000);
-  tab_manager_delegate.LowMemoryKillImpl(base::TimeTicks::Now(),
-                                         DiscardReason::kUrgent,
-                                         std::move(arc_processes));
+  tab_manager_delegate.LowMemoryKillImpl(
+      base::TimeTicks::Now(), ::mojom::LifecycleUnitDiscardReason::URGENT,
+      std::move(arc_processes));
 
   auto killed_arc_processes = tab_manager_delegate.GetKilledArcProcesses();
   EXPECT_EQ(0U, killed_arc_processes.size());
@@ -399,9 +400,9 @@
   memory_stat->SetProcessPss(20, 30000);
   memory_stat->SetProcessPss(10, 100000);
 
-  tab_manager_delegate.LowMemoryKillImpl(base::TimeTicks::Now(),
-                                         DiscardReason::kProactive,
-                                         std::move(arc_processes));
+  tab_manager_delegate.LowMemoryKillImpl(
+      base::TimeTicks::Now(), ::mojom::LifecycleUnitDiscardReason::PROACTIVE,
+      std::move(arc_processes));
 
   auto killed_arc_processes = tab_manager_delegate.GetKilledArcProcesses();
   auto killed_tabs = tab_manager_delegate.GetKilledTabs();
diff --git a/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc b/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc
index 4803e74..85bef76 100644
--- a/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc
@@ -486,12 +486,13 @@
     DecisionDetails freeze_decision;
     lifecycle_unit->CanFreeze(&freeze_decision);
     RecordDecisionDetails(lifecycle_unit, freeze_decision,
-                          ::mojom::LifecycleUnitState::FROZEN);
+                          LifecycleUnitState::FROZEN);
 
     DecisionDetails discard_decision;
-    lifecycle_unit->CanDiscard(DiscardReason::kProactive, &discard_decision);
+    lifecycle_unit->CanDiscard(LifecycleUnitDiscardReason::PROACTIVE,
+                               &discard_decision);
     RecordDecisionDetails(lifecycle_unit, discard_decision,
-                          ::mojom::LifecycleUnitState::DISCARDED);
+                          LifecycleUnitState::DISCARDED);
   }
 
   // Determine when the next sample should run based on when this cycle
@@ -518,7 +519,7 @@
 void TabManagerStatsCollector::RecordDecisionDetails(
     LifecycleUnit* lifecycle_unit,
     const DecisionDetails& decision_details,
-    ::mojom::LifecycleUnitState target_state) {
+    LifecycleUnitState target_state) {
   ukm::SourceId ukm_source_id = lifecycle_unit->GetUkmSourceId();
   if (ukm_source_id == ukm::kInvalidSourceId)
     return;
diff --git a/chrome/browser/resource_coordinator/tab_manager_stats_collector.h b/chrome/browser/resource_coordinator/tab_manager_stats_collector.h
index 5001bb43..4ca6598b 100644
--- a/chrome/browser/resource_coordinator/tab_manager_stats_collector.h
+++ b/chrome/browser/resource_coordinator/tab_manager_stats_collector.h
@@ -16,7 +16,6 @@
 #include "base/sequence_checker.h"
 #include "base/time/time.h"
 #include "chrome/browser/resource_coordinator/decision_details.h"
-#include "chrome/browser/resource_coordinator/discard_reason.h"
 #include "chrome/browser/resource_coordinator/lifecycle_unit.h"
 #include "chrome/browser/resource_coordinator/time.h"
 #include "chrome/browser/sessions/session_restore_observer.h"
@@ -209,7 +208,7 @@
   // the provided DecisionDetails and destination lifecycle state.
   static void RecordDecisionDetails(LifecycleUnit* lifecycle_unit,
                                     const DecisionDetails& decision_details,
-                                    ::mojom::LifecycleUnitState new_state);
+                                    LifecycleUnitState new_state);
 
   static const char
       kHistogramSessionRestoreForegroundTabExpectedTaskQueueingDuration[];
diff --git a/chrome/browser/resource_coordinator/tab_manager_unittest.cc b/chrome/browser/resource_coordinator/tab_manager_unittest.cc
index ccfe70d0..a929945 100644
--- a/chrome/browser/resource_coordinator/tab_manager_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_unittest.cc
@@ -235,25 +235,25 @@
     return TabLifecycleUnitExternal::FromWebContents(content)->IsDiscarded();
   }
 
+  TabLifecycleUnitSource::TabLifecycleUnit* GetTabLifecycleUnit(
+      content::WebContents* content) {
+    return TabLifecycleUnitSource::GetInstance()->GetTabLifecycleUnit(content);
+  }
+
   bool IsTabFrozen(content::WebContents* content) {
-    const LifecycleUnitState state =
-        static_cast<TabLifecycleUnitSource::TabLifecycleUnit*>(
-            TabLifecycleUnitExternal::FromWebContents(content))
-            ->GetState();
+    const LifecycleUnitState state = GetTabLifecycleUnit(content)->GetState();
     return state == LifecycleUnitState::PENDING_FREEZE ||
            state == LifecycleUnitState::FROZEN;
   }
 
   void SimulateFreezeCompletion(content::WebContents* content) {
-    static_cast<TabLifecycleUnitSource::TabLifecycleUnit*>(
-        TabLifecycleUnitExternal::FromWebContents(content))
-        ->UpdateLifecycleState(mojom::LifecycleState::kFrozen);
+    GetTabLifecycleUnit(content)->UpdateLifecycleState(
+        mojom::LifecycleState::kFrozen);
   }
 
   void SimulateUnfreezeCompletion(content::WebContents* content) {
-    static_cast<TabLifecycleUnitSource::TabLifecycleUnit*>(
-        TabLifecycleUnitExternal::FromWebContents(content))
-        ->UpdateLifecycleState(mojom::LifecycleState::kRunning);
+    GetTabLifecycleUnit(content)->UpdateLifecycleState(
+        mojom::LifecycleState::kRunning);
   }
 
   virtual void CheckThrottleResults(
@@ -524,7 +524,7 @@
   tab_strip2->GetWebContentsAt(1)->WasHidden();
 
   for (int i = 0; i < 4; ++i)
-    tab_manager_->DiscardTab(DiscardReason::kUrgent);
+    tab_manager_->DiscardTab(LifecycleUnitDiscardReason::URGENT);
 
   // Active tab in a visible window should not be discarded.
   EXPECT_FALSE(IsTabDiscarded(tab_strip1->GetWebContentsAt(0)));
diff --git a/chrome/browser/resource_coordinator/tab_metrics_logger.cc b/chrome/browser/resource_coordinator/tab_metrics_logger.cc
index 47288b35..43f8ef3 100644
--- a/chrome/browser/resource_coordinator/tab_metrics_logger.cc
+++ b/chrome/browser/resource_coordinator/tab_metrics_logger.cc
@@ -59,7 +59,6 @@
     base::TimeDelta inactive_duration,
     const tab_ranker::MRUFeatures& mru_features,
     bool is_foregrounded,
-    bool is_discarded,
     int sequence_id) {
   if (!ukm_source_id)
     return;
@@ -70,7 +69,6 @@
       .SetMRUIndex(mru_features.index)
       .SetTimeFromBackgrounded(inactive_duration.InMilliseconds())
       .SetTotalTabCount(mru_features.total)
-      .SetIsDiscarded(is_discarded)
       .Record(ukm::UkmRecorder::Get());
 }
 
@@ -219,21 +217,19 @@
 void TabMetricsLogger::LogBackgroundTabShown(
     ukm::SourceId ukm_source_id,
     base::TimeDelta inactive_duration,
-    const tab_ranker::MRUFeatures& mru_features,
-    const bool is_discarded) {
+    const tab_ranker::MRUFeatures& mru_features) {
   LogBackgroundTabForegroundedOrClosed(ukm_source_id, inactive_duration,
                                        mru_features, true /* is_shown */,
-                                       is_discarded, ++sequence_id_);
+                                       ++sequence_id_);
 }
 
 void TabMetricsLogger::LogBackgroundTabClosed(
     ukm::SourceId ukm_source_id,
     base::TimeDelta inactive_duration,
-    const tab_ranker::MRUFeatures& mru_features,
-    const bool is_discarded) {
+    const tab_ranker::MRUFeatures& mru_features) {
   LogBackgroundTabForegroundedOrClosed(ukm_source_id, inactive_duration,
                                        mru_features, false /* is_shown */,
-                                       is_discarded, ++sequence_id_);
+                                       ++sequence_id_);
 }
 
 void TabMetricsLogger::LogTabLifetime(ukm::SourceId ukm_source_id,
diff --git a/chrome/browser/resource_coordinator/tab_metrics_logger.h b/chrome/browser/resource_coordinator/tab_metrics_logger.h
index cb233b1..7602f98 100644
--- a/chrome/browser/resource_coordinator/tab_metrics_logger.h
+++ b/chrome/browser/resource_coordinator/tab_metrics_logger.h
@@ -66,15 +66,13 @@
   // shown after being inactive.
   void LogBackgroundTabShown(ukm::SourceId ukm_source_id,
                              base::TimeDelta inactive_duration,
-                             const tab_ranker::MRUFeatures& mru_metrics,
-                             const bool is_discarded);
+                             const tab_ranker::MRUFeatures& mru_metrics);
 
   // Logs TabManager.Background.ForegroundedOrClosed UKM for a tab that was
   // closed after being inactive.
   void LogBackgroundTabClosed(ukm::SourceId ukm_source_id,
                               base::TimeDelta inactive_duration,
-                              const tab_ranker::MRUFeatures& mru_metrics,
-                              const bool is_discarded);
+                              const tab_ranker::MRUFeatures& mru_metrics);
 
   // Logs TabManager.TabLifetime UKM for a closed tab.
   void LogTabLifetime(ukm::SourceId ukm_source_id,
diff --git a/chrome/browser/resource_coordinator/tab_metrics_logger_unittest.cc b/chrome/browser/resource_coordinator/tab_metrics_logger_unittest.cc
index 8a1a9cc..2f95934e 100644
--- a/chrome/browser/resource_coordinator/tab_metrics_logger_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_metrics_logger_unittest.cc
@@ -160,11 +160,10 @@
 TEST_F(TabMetricsLoggerUKMTest, LogBackgroundTabShown) {
   const tab_ranker::MRUFeatures& mru_metrics{4, 7};
   const int64_t inactive_duration_ms = 1234;
-  const bool is_discarded = false;
 
   GetLogger()->LogBackgroundTabShown(
       GetSourceId(), base::TimeDelta::FromMilliseconds(inactive_duration_ms),
-      mru_metrics, is_discarded);
+      mru_metrics);
 
   // Checks that the size is logged correctly.
   EXPECT_EQ(1U, GetTestUkmRecorder()->sources_count());
@@ -183,19 +182,15 @@
                                           inactive_duration_ms);
   GetTestUkmRecorder()->ExpectEntryMetric(entries[0], "TotalTabCount",
                                           mru_metrics.total);
-  GetTestUkmRecorder()->ExpectEntryMetric(entries[0], "IsDiscarded",
-                                          is_discarded);
 }
 
 // Checks the closed event is logged correctly.
 TEST_F(TabMetricsLoggerUKMTest, LogBackgroundTabClosed) {
   const tab_ranker::MRUFeatures& mru_metrics{4, 7};
   const int64_t inactive_duration_ms = 1234;
-  const bool is_discarded = true;
-
   GetLogger()->LogBackgroundTabClosed(
       GetSourceId(), base::TimeDelta::FromMilliseconds(inactive_duration_ms),
-      mru_metrics, is_discarded);
+      mru_metrics);
 
   // Checks that the size is logged correctly.
   EXPECT_EQ(1U, GetTestUkmRecorder()->sources_count());
@@ -214,18 +209,15 @@
                                           inactive_duration_ms);
   GetTestUkmRecorder()->ExpectEntryMetric(entries[0], "TotalTabCount",
                                           mru_metrics.total);
-  GetTestUkmRecorder()->ExpectEntryMetric(entries[0], "IsDiscarded",
-                                          is_discarded);
 }
 
 // Checks the sequence id is logged as sequentially incremental sequence across
 // different events.
 TEST_F(TabMetricsLoggerUKMTest, SequenceIdShouldBeLoggedSequentially) {
-  const bool is_discarded = false;
   GetLogger()->LogBackgroundTabShown(GetSourceId(), base::TimeDelta(),
-                                     tab_ranker::MRUFeatures(), is_discarded);
+                                     tab_ranker::MRUFeatures());
   GetLogger()->LogBackgroundTabClosed(GetSourceId(), base::TimeDelta(),
-                                      tab_ranker::MRUFeatures(), is_discarded);
+                                      tab_ranker::MRUFeatures());
 
   EXPECT_EQ(2U, GetTestUkmRecorder()->sources_count());
   EXPECT_EQ(2U, GetTestUkmRecorder()->entries_count());
diff --git a/chrome/browser/resource_coordinator/test_lifecycle_unit.cc b/chrome/browser/resource_coordinator/test_lifecycle_unit.cc
index 3efae33b..1e4ccc3 100644
--- a/chrome/browser/resource_coordinator/test_lifecycle_unit.cc
+++ b/chrome/browser/resource_coordinator/test_lifecycle_unit.cc
@@ -52,8 +52,8 @@
   return content::Visibility::VISIBLE;
 }
 
-::mojom::LifecycleUnitLoadingState TestLifecycleUnit::GetLoadingState() const {
-  return ::mojom::LifecycleUnitLoadingState::LOADED;
+mojom::LifecycleUnitLoadingState TestLifecycleUnit::GetLoadingState() const {
+  return mojom::LifecycleUnitLoadingState::LOADED;
 }
 
 bool TestLifecycleUnit::Load() {
@@ -72,7 +72,7 @@
   return false;
 }
 
-bool TestLifecycleUnit::CanDiscard(DiscardReason reason,
+bool TestLifecycleUnit::CanDiscard(mojom::LifecycleUnitDiscardReason reason,
                                    DecisionDetails* decision_details) const {
   return can_discard_;
 }
@@ -85,12 +85,12 @@
   return false;
 }
 
-bool TestLifecycleUnit::Discard(DiscardReason discard_reason) {
+bool TestLifecycleUnit::Discard(LifecycleUnitDiscardReason discard_reason) {
   return false;
 }
 
 void ExpectCanDiscardTrue(const LifecycleUnit* lifecycle_unit,
-                          DiscardReason discard_reason) {
+                          LifecycleUnitDiscardReason discard_reason) {
   DecisionDetails decision_details;
   EXPECT_TRUE(lifecycle_unit->CanDiscard(discard_reason, &decision_details));
   EXPECT_TRUE(decision_details.IsPositive());
@@ -100,14 +100,14 @@
 }
 
 void ExpectCanDiscardTrueAllReasons(const LifecycleUnit* lifecycle_unit) {
-  ExpectCanDiscardTrue(lifecycle_unit, DiscardReason::kExternal);
-  ExpectCanDiscardTrue(lifecycle_unit, DiscardReason::kProactive);
-  ExpectCanDiscardTrue(lifecycle_unit, DiscardReason::kUrgent);
+  ExpectCanDiscardTrue(lifecycle_unit, LifecycleUnitDiscardReason::EXTERNAL);
+  ExpectCanDiscardTrue(lifecycle_unit, LifecycleUnitDiscardReason::PROACTIVE);
+  ExpectCanDiscardTrue(lifecycle_unit, LifecycleUnitDiscardReason::URGENT);
 }
 
 void ExpectCanDiscardFalse(const LifecycleUnit* lifecycle_unit,
                            DecisionFailureReason failure_reason,
-                           DiscardReason discard_reason) {
+                           LifecycleUnitDiscardReason discard_reason) {
   DecisionDetails decision_details;
   EXPECT_FALSE(lifecycle_unit->CanDiscard(discard_reason, &decision_details));
   EXPECT_FALSE(decision_details.IsPositive());
@@ -118,14 +118,15 @@
 void ExpectCanDiscardFalseAllReasons(const LifecycleUnit* lifecycle_unit,
                                      DecisionFailureReason failure_reason) {
   ExpectCanDiscardFalse(lifecycle_unit, failure_reason,
-                        DiscardReason::kExternal);
+                        LifecycleUnitDiscardReason::EXTERNAL);
   ExpectCanDiscardFalse(lifecycle_unit, failure_reason,
-                        DiscardReason::kProactive);
-  ExpectCanDiscardFalse(lifecycle_unit, failure_reason, DiscardReason::kUrgent);
+                        LifecycleUnitDiscardReason::PROACTIVE);
+  ExpectCanDiscardFalse(lifecycle_unit, failure_reason,
+                        LifecycleUnitDiscardReason::URGENT);
 }
 
 void ExpectCanDiscardFalseTrivial(const LifecycleUnit* lifecycle_unit,
-                                  DiscardReason discard_reason) {
+                                  LifecycleUnitDiscardReason discard_reason) {
   DecisionDetails decision_details;
   EXPECT_FALSE(lifecycle_unit->CanDiscard(discard_reason, &decision_details));
   EXPECT_FALSE(decision_details.IsPositive());
@@ -137,9 +138,12 @@
 
 void ExpectCanDiscardFalseTrivialAllReasons(
     const LifecycleUnit* lifecycle_unit) {
-  ExpectCanDiscardFalseTrivial(lifecycle_unit, DiscardReason::kExternal);
-  ExpectCanDiscardFalseTrivial(lifecycle_unit, DiscardReason::kProactive);
-  ExpectCanDiscardFalseTrivial(lifecycle_unit, DiscardReason::kUrgent);
+  ExpectCanDiscardFalseTrivial(lifecycle_unit,
+                               LifecycleUnitDiscardReason::EXTERNAL);
+  ExpectCanDiscardFalseTrivial(lifecycle_unit,
+                               LifecycleUnitDiscardReason::PROACTIVE);
+  ExpectCanDiscardFalseTrivial(lifecycle_unit,
+                               LifecycleUnitDiscardReason::URGENT);
 }
 
 }  // namespace resource_coordinator
diff --git a/chrome/browser/resource_coordinator/test_lifecycle_unit.h b/chrome/browser/resource_coordinator/test_lifecycle_unit.h
index ba3bc3b3..c8d3096 100644
--- a/chrome/browser/resource_coordinator/test_lifecycle_unit.h
+++ b/chrome/browser/resource_coordinator/test_lifecycle_unit.h
@@ -40,11 +40,11 @@
   int GetEstimatedMemoryFreedOnDiscardKB() const override;
   bool CanPurge() const override;
   bool CanFreeze(DecisionDetails* decision_details) const override;
-  bool CanDiscard(DiscardReason reason,
+  bool CanDiscard(LifecycleUnitDiscardReason reason,
                   DecisionDetails* decision_details) const override;
   bool Freeze() override;
   bool Unfreeze() override;
-  bool Discard(DiscardReason discard_reason) override;
+  bool Discard(LifecycleUnitDiscardReason discard_reason) override;
 
  private:
   base::TimeTicks last_focused_time_;
@@ -56,15 +56,15 @@
 
 // Helper funtions for testing CanDiscard policy.
 void ExpectCanDiscardTrue(const LifecycleUnit* lifecycle_unit,
-                          DiscardReason discard_reason);
+                          LifecycleUnitDiscardReason discard_reason);
 void ExpectCanDiscardTrueAllReasons(const LifecycleUnit* lifecycle_unit);
 void ExpectCanDiscardFalse(const LifecycleUnit* lifecycle_unit,
                            DecisionFailureReason failure_reason,
-                           DiscardReason discard_reason);
+                           LifecycleUnitDiscardReason discard_reason);
 void ExpectCanDiscardFalseAllReasons(const LifecycleUnit* lifecycle_unit,
                                      DecisionFailureReason failure_reason);
 void ExpectCanDiscardFalseTrivial(const LifecycleUnit* lifecycle_unit,
-                                  DiscardReason discard_reason);
+                                  LifecycleUnitDiscardReason discard_reason);
 void ExpectCanDiscardFalseTrivialAllReasons(const LifecycleUnit* lu);
 
 }  // namespace resource_coordinator
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js
index 1e5750cc4..d3e7c904 100644
--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js
+++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js
@@ -1963,8 +1963,10 @@
     else if (AutomationPredicate.clickable(node))
       this.format_(node, '@hint_clickable', buff);
 
-    if (node.autoComplete == 'list' || node.autoComplete == 'both')
+    if (node.autoComplete == 'list' || node.autoComplete == 'both' ||
+        node.state[StateType.AUTOFILL_AVAILABLE]) {
       this.format_(node, '@hint_autocomplete_list', buff);
+    }
     if (node.autoComplete == 'inline' || node.autoComplete == 'both')
       this.format_(node, '@hint_autocomplete_inline', buff);
     if (node.accessKey)
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/output_test.extjs b/chrome/browser/resources/chromeos/chromevox/cvox2/background/output_test.extjs
index 079d7af2..68917ff 100644
--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/output_test.extjs
+++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/output_test.extjs
@@ -220,7 +220,8 @@
   });
 });
 
-TEST_F('OutputE2ETest', 'Audio', function() {
+// Flaky, see https://crbug.com/876145.
+TEST_F('OutputE2ETest', 'DISABLED_Audio', function() {
   this.runWithLoadedTree('<audio src="foo.mp3" controls></audio>',
     function(root) {
       var el = root.find({role: 'button'});
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_am.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_am.xtb
index 8098dad..bd1cac1 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_am.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_am.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920">ወደ <ph name="KEY" /> ተቀይሯል።</translation>
 <translation id="4975416682604111799">ሚሊሰኮንዶች</translation>
 <translation id="49787999531187221">ChromeVox አሁን ቦዝኗል።</translation>
+<translation id="4979263087381759787">የገንቢ አማራጮች</translation>
 <translation id="4979404613699303341">ቀዳሚ አዝራር</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />፣ <ph name="NAME" />፣ የዝርዝር ሳጥን</translation>
 <translation id="4983588134362688868">ወደ የገጹ ላይኛው ክፍል ይዝለሉ</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">ምንም ቅጾች የሉም።</translation>
 <translation id="5005670136041063723">ምንም ተጨማሪ የተለዩ አባላት የሉም።</translation>
 <translation id="501473567976723023">ጃንዩዋሪ</translation>
+<translation id="5020651427400641814">ንግግርን በምዝግብ ማስታወሻ መያዝን አንቃ</translation>
 <translation id="5041394372352067729">የብሬይል ማሳያውን ወደ ገጹ አናት ያንቀሳቅሱ</translation>
 <translation id="5042770794184672516">የንግግር ድምጽ መጠን ይጨምሩ</translation>
 <translation id="5050015258024679800">ቀዳሚ የደረጃ 4 ርዕስ</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ar.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ar.xtb
index 07fdf6b..eda2109 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ar.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ar.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">تم التبديل إلى <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">مللي ثانية</translation>
 <translation id="49787999531187221">‏الإضافة ChromeVox غير نشطة الآن.</translation>
+<translation id="4979263087381759787">خيارات المطورين</translation>
 <translation id="4979404613699303341">الزر السابق</translation>
 <translation id="4982773647088557172">مربع القائمة <ph name="NAME" />، بالقيمة <ph name="VALUE" /></translation>
 <translation id="4983588134362688868">انتقال إلى أعلى الصفحة</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">ليس هناك أي نماذج.</translation>
 <translation id="5005670136041063723">ليس هناك المزيد من العناصر المماثلة.</translation>
 <translation id="501473567976723023">كانون الثاني (يناير)</translation>
+<translation id="5020651427400641814">تفعيل تسجيل الكلام</translation>
 <translation id="5041394372352067729">نقل عرض برايل إلى أعلى الصفحة</translation>
 <translation id="5042770794184672516">زيادة مستوى صوت النطق</translation>
 <translation id="5050015258024679800">عنوان المستوى الرابع السابق</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bg.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bg.xtb
index 9b878ae..560ff54 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bg.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bg.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920">Превключихте към „<ph name="KEY" />“.</translation>
 <translation id="4975416682604111799">милисекунди</translation>
 <translation id="49787999531187221">ChromeVox вече не е активен.</translation>
+<translation id="4979263087381759787">Опции за програмисти</translation>
 <translation id="4979404613699303341">Предишният бутон</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, „<ph name="NAME" />“, списъчно поле</translation>
 <translation id="4983588134362688868">Преминаване към началото на страницата</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">Няма формуляри.</translation>
 <translation id="5005670136041063723">Няма повече подобни елементи.</translation>
 <translation id="501473567976723023">януари</translation>
+<translation id="5020651427400641814">Активиране на регистрирането за говора</translation>
 <translation id="5041394372352067729">Преместване на брайловия дисплей в горната част на страницата</translation>
 <translation id="5042770794184672516">Увеличаване на силата на звука на говора</translation>
 <translation id="5050015258024679800">Предишното заглавие от четвърто ниво</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ca.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ca.xtb
index cc7474f..283510d7 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ca.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ca.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920">S'ha canviat a <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">mil·lisegons</translation>
 <translation id="49787999531187221">ChromeVox està inactiu.</translation>
+<translation id="4979263087381759787">Opcions per a desenvolupadors</translation>
 <translation id="4979404613699303341">Botó anterior</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, quadre de llista</translation>
 <translation id="4983588134362688868">Va a la part superior de la pàgina.</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">No hi ha cap formulari.</translation>
 <translation id="5005670136041063723">No hi ha més elements similars.</translation>
 <translation id="501473567976723023">Gener</translation>
+<translation id="5020651427400641814">Activa el registre de veu</translation>
 <translation id="5041394372352067729">Mou la pantalla Braille a la part superior de la pàgina.</translation>
 <translation id="5042770794184672516">Augmenta el volum de la veu.</translation>
 <translation id="5050015258024679800">Capçalera del nivell 4 anterior</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_cs.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_cs.xtb
index 0e6609d5..b572a7ec 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_cs.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_cs.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920">Přepnuto na klávesu <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">ms</translation>
 <translation id="49787999531187221">ChromeVox je teď neaktivní.</translation>
+<translation id="4979263087381759787">Pro vývojáře</translation>
 <translation id="4979404613699303341">Předchozí tlačítko</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, seznam</translation>
 <translation id="4983588134362688868">Přejít na začátek stránky</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">Žádné formuláře.</translation>
 <translation id="5005670136041063723">Žádné další podobné prvky.</translation>
 <translation id="501473567976723023">Leden</translation>
+<translation id="5020651427400641814">Zapnout protokolování řeči</translation>
 <translation id="5041394372352067729">Přesunout zobrazení Braillova písma na začátek stránky</translation>
 <translation id="5042770794184672516">Zvýšit hlasitost řeči</translation>
 <translation id="5050015258024679800">Předchozí nadpis 4. úrovně</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_da.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_da.xtb
index 9b315f5..71dd650 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_da.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_da.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Ændret til <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">millisekunder</translation>
 <translation id="49787999531187221">ChromeVox er nu deaktiveret.</translation>
+<translation id="4979263087381759787">Indstillinger for udviklere</translation>
 <translation id="4979404613699303341">Knappen Forrige</translation>
 <translation id="4982773647088557172">Listefeltet <ph name="VALUE" />, <ph name="NAME" /></translation>
 <translation id="4983588134362688868">Gå til toppen af siden</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Ingen formularer.</translation>
 <translation id="5005670136041063723">Ikke flere lignende elementer.</translation>
 <translation id="501473567976723023">Januar</translation>
+<translation id="5020651427400641814">Aktivér talelogning</translation>
 <translation id="5041394372352067729">Flyt braille-visningen til toppen af siden</translation>
 <translation id="5042770794184672516">Skru op for talevolumen</translation>
 <translation id="5050015258024679800">Forrige niveau 4-overskrift</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 1eb845f..40fda7c 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_de.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_de.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920">Zu <ph name="KEY" /> gewechselt</translation>
 <translation id="4975416682604111799">Millisekunden</translation>
 <translation id="49787999531187221">ChromeVox ist jetzt deaktiviert.</translation>
+<translation id="4979263087381759787">Entwickleroptionen</translation>
 <translation id="4979404613699303341">Vorherige Schaltfläche</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, Listenfeld "<ph name="NAME" />"</translation>
 <translation id="4983588134362688868">Zum Seitenanfang</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">Keine Formulare</translation>
 <translation id="5005670136041063723">Keine weiteren ähnlichen Elemente</translation>
 <translation id="501473567976723023">Januar</translation>
+<translation id="5020651427400641814">Sprachprotokollierung aktivieren</translation>
 <translation id="5041394372352067729">Braillezeile an den Seitenanfang verschieben</translation>
 <translation id="5042770794184672516">Sprachlautstärke erhöhen</translation>
 <translation id="5050015258024679800">Vorherige Überschrift der Ebene 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_el.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_el.xtb
index a6b0f609..3b0b465 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_el.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_el.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Εναλλαγή σε <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">χιλιοστά του δευτερολέπτου</translation>
 <translation id="49787999531187221">Το ChromeVox είναι ανενεργό αυτήν τη στιγμή.</translation>
+<translation id="4979263087381759787">Επιλογές για προγραμματιστές</translation>
 <translation id="4979404613699303341">Προηγούμενο κουμπί</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, πλαίσιο λίστας</translation>
 <translation id="4983588134362688868">Μετάβαση στην κορυφή της σελίδας</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Δεν υπάρχουν φόρμες.</translation>
 <translation id="5005670136041063723">Δεν υπάρχουν παρόμοια στοιχεία.</translation>
 <translation id="501473567976723023">Ιανουάριος</translation>
+<translation id="5020651427400641814">Ενεργοποίηση καταγραφής ομιλίας</translation>
 <translation id="5041394372352067729">Μετακίνηση της οθόνης μπράιγ στο επάνω μέρος της σελίδας</translation>
 <translation id="5042770794184672516">Αύξηση έντασης ομιλίας</translation>
 <translation id="5050015258024679800">Επικεφαλίδα προηγούμενου επιπέδου 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb
index eab76bb..74b7ad1 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Se cambió a <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milisegundos</translation>
 <translation id="49787999531187221">ChromeVox está inactivo.</translation>
+<translation id="4979263087381759787">Opciones para desarrolladores</translation>
 <translation id="4979404613699303341">Botón anterior</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, cuadro de lista</translation>
 <translation id="4983588134362688868">Ir al principio de la página</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">No hay formularios.</translation>
 <translation id="5005670136041063723">No hay más elementos similares.</translation>
 <translation id="501473567976723023">Enero</translation>
+<translation id="5020651427400641814">Habilitar el acceso por voz</translation>
 <translation id="5041394372352067729">Mover la pantalla de braille a la parte superior de la página</translation>
 <translation id="5042770794184672516">Aumentar el volumen de voz</translation>
 <translation id="5050015258024679800">Encabezado anterior de nivel 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es.xtb
index ce42cd9f..08bcedeb 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Se ha cambiado a <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milisegundos</translation>
 <translation id="49787999531187221">ChromeVox está ahora desactivado.</translation>
+<translation id="4979263087381759787">Opciones para desarrolladores</translation>
 <translation id="4979404613699303341">Botón anterior</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, cuadro de lista</translation>
 <translation id="4983588134362688868">Accede al principio de la página</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">No hay formularios.</translation>
 <translation id="5005670136041063723">No hay más elementos similares.</translation>
 <translation id="501473567976723023">Enero</translation>
+<translation id="5020651427400641814">Habilitar registro de voz</translation>
 <translation id="5041394372352067729">Mueve la pantalla braille a la parte superior de la página</translation>
 <translation id="5042770794184672516">Aumenta el volumen de voz</translation>
 <translation id="5050015258024679800">Encabezado anterior de nivel 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb
index 3895cd71..ee8f142 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Lülituti klahvitabelile <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">millisekundid</translation>
 <translation id="49787999531187221">ChromeVox ei ole enam aktiivne.</translation>
+<translation id="4979263087381759787">Arendaja valikud</translation>
 <translation id="4979404613699303341">Eelmine nupp</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, loendiboks</translation>
 <translation id="4983588134362688868">Saate liikuda lehe algusesse</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Vorme ei ole.</translation>
 <translation id="5005670136041063723">Pole rohkem sarnaseid elemente.</translation>
 <translation id="501473567976723023">Jaanuar</translation>
+<translation id="5020651427400641814">Luba kõnelogimine</translation>
 <translation id="5041394372352067729">Braille' kuva lehe ülaserva liigutamine</translation>
 <translation id="5042770794184672516">Suurenda kõne helitugevust</translation>
 <translation id="5050015258024679800">Eelmine 4. taseme pealkiri</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fa.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fa.xtb
index 3ac0c15..ab751ef5 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fa.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fa.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">به کلید <ph name="KEY" /> تغییر داده شد.</translation>
 <translation id="4975416682604111799">میلی‌ثانیه</translation>
 <translation id="49787999531187221">‏ChromeVox اکنون غیرفعال است.</translation>
+<translation id="4979263087381759787">گزینه‌های برنامه‌نویس</translation>
 <translation id="4979404613699303341">دکمه قبلی</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />، <ph name="NAME" />، کادر فهرست</translation>
 <translation id="4983588134362688868">رفتن به بالای صفحه</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">فرمی موجود نیست.</translation>
 <translation id="5005670136041063723">هیچ عنصر مشابه دیگری نیست.</translation>
 <translation id="501473567976723023">ژانویه</translation>
+<translation id="5020651427400641814">فعال کردن گزارش‌گیری از گفتار</translation>
 <translation id="5041394372352067729">انتقال صفحه‌نمایش بریل به بالای صفحه</translation>
 <translation id="5042770794184672516">افزایش میزان صدای گفتار</translation>
 <translation id="5050015258024679800">عنوان قبلی سطح ۴</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fi.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fi.xtb
index cef1b11..e92e306 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fi.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fi.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Vaihdettu näppäimeen <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">millisekuntia</translation>
 <translation id="49787999531187221">ChromeVox ei ole käytössä.</translation>
+<translation id="4979263087381759787">Kehittäjäasetukset</translation>
 <translation id="4979404613699303341">Edellinen-painike</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, luetteloruutu</translation>
 <translation id="4983588134362688868">Siirry sivun yläosaan</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Ei lomakkeita.</translation>
 <translation id="5005670136041063723">Ei muita samanlaisia ​​elementtejä.</translation>
 <translation id="501473567976723023">tammikuu</translation>
+<translation id="5020651427400641814">Ota puheen kirjaaminen käyttöön</translation>
 <translation id="5041394372352067729">Siirrä pistekirjoitusnäyttö sivun yläreunaan</translation>
 <translation id="5042770794184672516">Lisää puheen äänenvoimakkuutta</translation>
 <translation id="5050015258024679800">Edellinen tason 4 otsikko</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 b7de74b..9e5f47d 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Lumipat sa <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">mga millisecond</translation>
 <translation id="49787999531187221">Hindi na aktibo ngayon ang ChromeVox.</translation>
+<translation id="4979263087381759787">Mga Opsyon ng Developer</translation>
 <translation id="4979404613699303341">Nakaraang button</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, kahon ng listahan</translation>
 <translation id="4983588134362688868">Pumunta sa itaas ng page</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Walang mga form.</translation>
 <translation id="5005670136041063723">Wala nang mga katulad na elemento.</translation>
 <translation id="501473567976723023">Enero</translation>
+<translation id="5020651427400641814">I-enable ang pag-log ng speech</translation>
 <translation id="5041394372352067729">Ilipat ang display ng braille sa itaas ng page</translation>
 <translation id="5042770794184672516">Lakasan ang volume ng speech</translation>
 <translation id="5050015258024679800">Nakaraang heading sa antas 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb
index edcc95d..d434d8b 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Passage au mappage du clavier <ph name="KEY" /> effectué</translation>
 <translation id="4975416682604111799">millisecondes</translation>
 <translation id="49787999531187221">ChromeVox est désormais inactif.</translation>
+<translation id="4979263087381759787">Options pour les développeurs</translation>
 <translation id="4979404613699303341">Bouton précédent</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, zone de liste</translation>
 <translation id="4983588134362688868">Revenir en haut de la page</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Aucun formulaire</translation>
 <translation id="5005670136041063723">Aucun autre élément similaire</translation>
 <translation id="501473567976723023">Janvier</translation>
+<translation id="5020651427400641814">Activer l'enregistrement de la voix dans le journal</translation>
 <translation id="5041394372352067729">Déplacer l'écran de braille vers le haut de la page</translation>
 <translation id="5042770794184672516">Augmenter le volume de la voix</translation>
 <translation id="5050015258024679800">En-tête précédent de niveau 4</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 bca4bcd..ed7b6bd 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hi.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hi.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920"><ph name="KEY" /> पर स्विच किया गया.</translation>
 <translation id="4975416682604111799">मिलीसेकंड</translation>
 <translation id="49787999531187221">ChromeVox अब निष्क्रिय हो गया है.</translation>
+<translation id="4979263087381759787">डेवलपर के लिए सेटिंग और टूल</translation>
 <translation id="4979404613699303341">पिछला बटन</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, सूची बॉक्‍स</translation>
 <translation id="4983588134362688868">पेज के शीर्ष पर जाएं</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">कोई फ़ॉर्म नहीं.</translation>
 <translation id="5005670136041063723">कोई और समान तत्‍व नहीं.</translation>
 <translation id="501473567976723023">जनवरी</translation>
+<translation id="5020651427400641814">बोलकर लॉग करना चालू करें</translation>
 <translation id="5041394372352067729">ब्रेल प्रदर्शन को पेज के शीर्ष पर ले जाएं</translation>
 <translation id="5042770794184672516">बोली वॉल्‍यूम बढ़ाएं</translation>
 <translation id="5050015258024679800">पिछले स्‍तर 4 का शीर्षक</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hr.xtb
index 7511cef..c9c570e 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hr.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hr.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Prijelaz na tipku <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milisekunde</translation>
 <translation id="49787999531187221">ChromeVox je postao neaktivan.</translation>
+<translation id="4979263087381759787">Opcije za razvojne programere</translation>
 <translation id="4979404613699303341">Prethodni gumb</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, okvir s popisom</translation>
 <translation id="4983588134362688868">Skok na vrh stranice</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Nema obrazaca.</translation>
 <translation id="5005670136041063723">Nema više sličnih elemenata.</translation>
 <translation id="501473567976723023">siječanj</translation>
+<translation id="5020651427400641814">Omogućite glasovnu prijavu</translation>
 <translation id="5041394372352067729">Premještanje brajičnog prikaza na vrh stranice</translation>
 <translation id="5042770794184672516">Pojačanje glasnoće govora</translation>
 <translation id="5050015258024679800">Prethodni naslov razine 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hu.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hu.xtb
index 4e45ca4..70bce00 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hu.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hu.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">A rendszer átvált a következőre: <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">ezredmásodperc</translation>
 <translation id="49787999531187221">A ChromeVox most inaktív.</translation>
+<translation id="4979263087381759787">Fejlesztői beállítások</translation>
 <translation id="4979404613699303341">Előző gomb</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, listamező</translation>
 <translation id="4983588134362688868">Ugrás az oldal tetejére</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Nincsenek űrlapok.</translation>
 <translation id="5005670136041063723">Nincs több hasonló elem.</translation>
 <translation id="501473567976723023">január</translation>
+<translation id="5020651427400641814">Beszéd naplózásának engedélyezése</translation>
 <translation id="5041394372352067729">A Braille-kijelző áthelyezése az oldal tetejére</translation>
 <translation id="5042770794184672516">Beszéd hangerejének növelése</translation>
 <translation id="5050015258024679800">Előző 4. szintű fejléc</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_id.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_id.xtb
index 3d4879a..4167296 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_id.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_id.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Dialihkan ke <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milidetik</translation>
 <translation id="49787999531187221">ChromeVox tidak aktif.</translation>
+<translation id="4979263087381759787">Opsi Developer</translation>
 <translation id="4979404613699303341">Tombol sebelumnya</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, kotak daftar</translation>
 <translation id="4983588134362688868">Menuju ke bagian atas halaman</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Tidak ada formulir.</translation>
 <translation id="5005670136041063723">Tidak ada elemen serupa lainnya.</translation>
 <translation id="501473567976723023">Januari</translation>
+<translation id="5020651427400641814">Aktifkan penyimpanan log ucapan</translation>
 <translation id="5041394372352067729">Pindahkan layar braille ke bagian atas halaman</translation>
 <translation id="5042770794184672516">Meningkatkan volume ucapan</translation>
 <translation id="5050015258024679800">Judul tingkat 4 sebelumnya</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb
index 0826b368..4327ee10 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920">Sei passato a <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">millisecondi</translation>
 <translation id="49787999531187221">ChromeVox non è attivo.</translation>
+<translation id="4979263087381759787">Opzioni sviluppatore</translation>
 <translation id="4979404613699303341">Pulsante precedente</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, casella di riepilogo</translation>
 <translation id="4983588134362688868">Vai all'inizio della pagina</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">Nessun modulo.</translation>
 <translation id="5005670136041063723">Nessun altro elemento simile.</translation>
 <translation id="501473567976723023">Gennaio</translation>
+<translation id="5020651427400641814">Attiva il logging vocale</translation>
 <translation id="5041394372352067729">Sposta display braille a inizio pagina</translation>
 <translation id="5042770794184672516">Aumenta volume comandi vocali</translation>
 <translation id="5050015258024679800">Intestazione livello 4 precedente</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 ebfc4e6..955cb6c 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">עברת ל-<ph name="KEY" />.</translation>
 <translation id="4975416682604111799">אלפיות שנייה</translation>
 <translation id="49787999531187221">‏ChromeVox לא פעיל כעת.</translation>
+<translation id="4979263087381759787">אפשרויות למפתחים</translation>
 <translation id="4979404613699303341">לחצן 'הקודם'</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, תיבת רשימה</translation>
 <translation id="4983588134362688868">דלג לחלק העליון של הדף</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">אין טפסים.</translation>
 <translation id="5005670136041063723">אין עוד רכיבים דומים.</translation>
 <translation id="501473567976723023">ינואר</translation>
+<translation id="5020651427400641814">הפעלה של תיעוד דיבור</translation>
 <translation id="5041394372352067729">העבר תצוגת ברייל לחלק העליון של הדף</translation>
 <translation id="5042770794184672516">הגבר את עוצמת הדיבור</translation>
 <translation id="5050015258024679800">הכותרת הקודמת של רמה 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ja.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ja.xtb
index d45c164d..9711e059 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ja.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ja.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920"><ph name="KEY" /> に切り替えました。</translation>
 <translation id="4975416682604111799">ミリ秒</translation>
 <translation id="49787999531187221">ChromeVox は現在無効です。</translation>
+<translation id="4979263087381759787">デベロッパー オプション</translation>
 <translation id="4979404613699303341">前のボタン</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />、<ph name="NAME" />、リスト ボックス</translation>
 <translation id="4983588134362688868">ページの先頭に移動します</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">フォームがありません。</translation>
 <translation id="5005670136041063723">この他に類似の要素はありません。</translation>
 <translation id="501473567976723023">1 月</translation>
+<translation id="5020651427400641814">読み上げのログを有効にする</translation>
 <translation id="5041394372352067729">ブライユ点字表示をページ上部に移動</translation>
 <translation id="5042770794184672516">読み上げの音量を上げる</translation>
 <translation id="5050015258024679800">前のレベル 4 見出し</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb
index 9caba057..c90df660 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920"><ph name="KEY" />(으)로 전환했습니다.</translation>
 <translation id="4975416682604111799">밀리초</translation>
 <translation id="49787999531187221">ChromeVox가 비활성화되었습니다.</translation>
+<translation id="4979263087381759787">개발자 옵션</translation>
 <translation id="4979404613699303341">이전 버튼</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, 목록 상자</translation>
 <translation id="4983588134362688868">페이지 처음으로 이동</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">양식이 없습니다.</translation>
 <translation id="5005670136041063723">더 이상 유사한 요소가 없습니다.</translation>
 <translation id="501473567976723023">1월</translation>
+<translation id="5020651427400641814">음성 로깅 사용</translation>
 <translation id="5041394372352067729">점자 디스플레이를 페이지 상단으로 이동합니다.</translation>
 <translation id="5042770794184672516">음성 볼륨 높이기</translation>
 <translation id="5050015258024679800">이전 수준 4 제목</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lt.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lt.xtb
index 1d03f1c..7002ffc 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lt.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lt.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Perjungta į <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milisekundės</translation>
 <translation id="49787999531187221">„ChromeVox“ aktyvus.</translation>
+<translation id="4979263087381759787">Kūrėjo parinktys</translation>
 <translation id="4979404613699303341">Ankstesnis mygtukas</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, sąrašo laukelis</translation>
 <translation id="4983588134362688868">Pereinama į puslapio viršų</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Nėra formų.</translation>
 <translation id="5005670136041063723">Daugiau panašių elementų nėra.</translation>
 <translation id="501473567976723023">Sausis</translation>
+<translation id="5020651427400641814">Įgalinti kalbos įrašymą į žurnalą</translation>
 <translation id="5041394372352067729">Perkelti Brailio rašmenų pateiktį į puslapio viršų</translation>
 <translation id="5042770794184672516">Didinti kalbos garsumą</translation>
 <translation id="5050015258024679800">Ankstesnė 4 lygio antraštė</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lv.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lv.xtb
index f99d7b8..d4785edb 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lv.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lv.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Mainīts uz: <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milisekundes</translation>
 <translation id="49787999531187221">ChromeVox nav aktīvs.</translation>
+<translation id="4979263087381759787">Izstrādātājiem paredzētās opcijas</translation>
 <translation id="4979404613699303341">Iepriekšējā poga</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, sarakstlodziņš</translation>
 <translation id="4983588134362688868">Pāriet uz lapas sākumu</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Nav veidlapu.</translation>
 <translation id="5005670136041063723">Nav neviena cita līdzīga elementa.</translation>
 <translation id="501473567976723023">Janvāris</translation>
+<translation id="5020651427400641814">Iespējot runas reģistrēšanu</translation>
 <translation id="5041394372352067729">Pārvietot Braila raksta attēlojumu uz lapas augšdaļu</translation>
 <translation id="5042770794184672516">Palielināt runas skaļumu</translation>
 <translation id="5050015258024679800">Iepriekšējais 4. līmeņa virsraksts</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ml.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ml.xtb
index 874f7b2..c5c5bdb 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ml.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ml.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920"><ph name="KEY" /> എന്നതിലേക്ക് മാറി.</translation>
 <translation id="4975416682604111799">മില്ലിസെക്കൻഡ്</translation>
 <translation id="49787999531187221">ChromeVox ഇപ്പോൾ നിർജ്ജീവമാണ്.</translation>
+<translation id="4979263087381759787">ഡെവലപ്പർ ഓ‌പ്ഷനുകൾ</translation>
 <translation id="4979404613699303341">മുൻ ബട്ടൺ</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, ലിസ്റ്റ് ബോക്സ്</translation>
 <translation id="4983588134362688868">പേജിന്റെ മുകളിലേയ്‌ക്ക് പോകുക</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">ഫോമുകൾ ഒന്നുമില്ല.</translation>
 <translation id="5005670136041063723">മറ്റ് സമാന ഘടകങ്ങൾ ഒന്നുമില്ല.</translation>
 <translation id="501473567976723023">ജനുവരി</translation>
+<translation id="5020651427400641814">സംസാരത്തിലൂടെ ലോഗിംഗ് പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="5041394372352067729">ബ്രെയ്‌ലി ഡിസ്‌പ്ലേ പേജിന് മുകളിലേക്ക് നീക്കുക</translation>
 <translation id="5042770794184672516">സംഭാഷണ ശബ്ദം വർദ്ധിപ്പിക്കുക</translation>
 <translation id="5050015258024679800">മുൻ നില 4 ശീർഷകം</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb
index 1a9002b..882d398 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920"><ph name="KEY" /> वर स्विच केले.</translation>
 <translation id="4975416682604111799">मिलिसेकंद</translation>
 <translation id="49787999531187221">ChromeVox आता निष्क्रिय झाले.</translation>
+<translation id="4979263087381759787">डेव्हलपर पर्याय</translation>
 <translation id="4979404613699303341">मागील बटण</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, सूची बॉक्स</translation>
 <translation id="4983588134362688868">पृष्ठाच्या शीर्षस्थानी जा</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">कोणतेही फॉर्म नाहीत.</translation>
 <translation id="5005670136041063723">आणखी सारखे घटक नाहीत.</translation>
 <translation id="501473567976723023">जानेवारी</translation>
+<translation id="5020651427400641814">स्पीच लॉगिंग सुरू करा</translation>
 <translation id="5041394372352067729">पृष्ठाच्या शीर्षस्थानी ब्रेल प्रदर्शन हलवा</translation>
 <translation id="5042770794184672516">बोलण्‍याचा आवाज वाढवा</translation>
 <translation id="5050015258024679800">मागील स्तर 4 शीर्षक</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ms.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ms.xtb
index 181c0210..05c5d5d3 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ms.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ms.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Beralih kepada <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milisaat</translation>
 <translation id="49787999531187221">ChromeVox kini tidak aktif.</translation>
+<translation id="4979263087381759787">Pilihan Pembangun</translation>
 <translation id="4979404613699303341">Butang sebelumnya</translation>
 <translation id="4982773647088557172">Kotak senarai, <ph name="VALUE" />, <ph name="NAME" /></translation>
 <translation id="4983588134362688868">Langkau ke bahagian atas halaman</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Tiada borang.</translation>
 <translation id="5005670136041063723">Tiada lagi unsur yang serupa.</translation>
 <translation id="501473567976723023">Januari</translation>
+<translation id="5020651427400641814">Dayakan pengelogan pertuturan</translation>
 <translation id="5041394372352067729">Alihkan paparan braille ke bahagian atas halaman</translation>
 <translation id="5042770794184672516">Tingkatkan kelantangan pertuturan</translation>
 <translation id="5050015258024679800">Tajuk tahap 4 sebelumnya</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_nl.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_nl.xtb
index 84ede8d..cd727ee 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_nl.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_nl.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920">Overgeschakeld naar <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milliseconden</translation>
 <translation id="49787999531187221">ChromeVox is nu inactief.</translation>
+<translation id="4979263087381759787">Ontwikkelaarsopties</translation>
 <translation id="4979404613699303341">Knop 'Vorige'</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, keuzelijst</translation>
 <translation id="4983588134362688868">Naar de bovenkant van de pagina</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">Geen formulieren.</translation>
 <translation id="5005670136041063723">Niet meer vergelijkbare elementen.</translation>
 <translation id="501473567976723023">januari</translation>
+<translation id="5020651427400641814">Spraakregistratie inschakelen</translation>
 <translation id="5041394372352067729">Brailleweergave naar bovenkant pagina verplaatsen</translation>
 <translation id="5042770794184672516">Spraakvolume verhogen</translation>
 <translation id="5050015258024679800">Vorige kop voor niveau 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_no.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_no.xtb
index c052cbd8..ba49ed35 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_no.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_no.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Byttet til <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">millisekunder</translation>
 <translation id="49787999531187221">Nå er ChromeVox slått av.</translation>
+<translation id="4979263087381759787">Utvikleralternativer</translation>
 <translation id="4979404613699303341">Forrige-knappen</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, listefelt</translation>
 <translation id="4983588134362688868">Går til begynnelsen av siden</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Det finnes ingen skjemaer.</translation>
 <translation id="5005670136041063723">Det er ingen flere lignende elementer.</translation>
 <translation id="501473567976723023">Januar</translation>
+<translation id="5020651427400641814">Slå på loggføring av tale</translation>
 <translation id="5041394372352067729">Flytt leselisten til toppen av siden</translation>
 <translation id="5042770794184672516">Øk talevolumet</translation>
 <translation id="5050015258024679800">Forrige overskrift på nivå 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pl.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pl.xtb
index 670d1d2..d9dc77d 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pl.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pl.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Zmiana na <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milisekundy</translation>
 <translation id="49787999531187221">ChromeVox jest obecnie nieaktywny.</translation>
+<translation id="4979263087381759787">Opcje programisty</translation>
 <translation id="4979404613699303341">Poprzedni przycisk</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, pole listy</translation>
 <translation id="4983588134362688868">Przejdź do góry strony</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Brak formularzy.</translation>
 <translation id="5005670136041063723">Nie ma więcej podobnych elementów.</translation>
 <translation id="501473567976723023">styczeń</translation>
+<translation id="5020651427400641814">Włącz rejestrowanie mowy</translation>
 <translation id="5041394372352067729">Przenieś wyświetlacz brajlowski na górę strony</translation>
 <translation id="5042770794184672516">Zwiększ głośność mowy</translation>
 <translation id="5050015258024679800">Poprzedni nagłówek poziomu 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb
index 4815a3f..baf7942 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Comutado para <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milésimos de segundo</translation>
 <translation id="49787999531187221">O ChromeVox está desativado.</translation>
+<translation id="4979263087381759787">Opções do desenvolvedor</translation>
 <translation id="4979404613699303341">Botão anterior</translation>
 <translation id="4982773647088557172">Caixa de listagem <ph name="NAME" /> <ph name="VALUE" /></translation>
 <translation id="4983588134362688868">Vai para a parte superior da página</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Não há formulários.</translation>
 <translation id="5005670136041063723">Não há mais elementos semelhantes.</translation>
 <translation id="501473567976723023">Janeiro</translation>
+<translation id="5020651427400641814">Ativar registros de fala</translation>
 <translation id="5041394372352067729">Mover exibição braille para o topo da página</translation>
 <translation id="5042770794184672516">Aumentar volume da voz</translation>
 <translation id="5050015258024679800">Cabeçalho de nível 4 anterior</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-PT.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-PT.xtb
index dc75935..c5f0ef08 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-PT.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-PT.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Alterado para <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milissegundos</translation>
 <translation id="49787999531187221">O ChromeVox está inativo.</translation>
+<translation id="4979263087381759787">Opções de programador</translation>
 <translation id="4979404613699303341">Botão anterior</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, caixa de lista</translation>
 <translation id="4983588134362688868">Ir para o início da página</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Não existem formulários.</translation>
 <translation id="5005670136041063723">Não existem mais elementos semelhantes.</translation>
 <translation id="501473567976723023">Janeiro</translation>
+<translation id="5020651427400641814">Ativar o registo de voz</translation>
 <translation id="5041394372352067729">Mover linha braille para o início da página</translation>
 <translation id="5042770794184672516">Aumentar o volume de voz</translation>
 <translation id="5050015258024679800">Título de nível 4 anterior</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ro.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ro.xtb
index 1907cac..3ac6592 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ro.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ro.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">S-a comutat la <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milisecunde</translation>
 <translation id="49787999531187221">Acum, ChromeVox este inactiv.</translation>
+<translation id="4979263087381759787">Opțiuni pentru dezvoltatori</translation>
 <translation id="4979404613699303341">Butonul anterior</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, casetă listă</translation>
 <translation id="4983588134362688868">Navigați la începutul paginii</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Nu există formulare.</translation>
 <translation id="5005670136041063723">Nu mai există elemente similare.</translation>
 <translation id="501473567976723023">Ianuarie</translation>
+<translation id="5020651427400641814">Activează înregistrarea vocală</translation>
 <translation id="5041394372352067729">Deplasează afișajul Braille în partea de sus a paginii</translation>
 <translation id="5042770794184672516">Creșteți volumul vocii</translation>
 <translation id="5050015258024679800">Titlul de nivel 4 anterior</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ru.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ru.xtb
index 53b3f67..bf6e70c 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ru.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ru.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Выбрана раскладка <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">миллисекунды</translation>
 <translation id="49787999531187221">Расширение ChromeVox отключено.</translation>
+<translation id="4979263087381759787">Для разработчиков</translation>
 <translation id="4979404613699303341">Перейти к предыдущей кнопке</translation>
 <translation id="4982773647088557172">Поле списка "<ph name="NAME" />" со значением "<ph name="VALUE" />"</translation>
 <translation id="4983588134362688868">Вернуться к началу страницы</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Форм нет.</translation>
 <translation id="5005670136041063723">Похожих элементов больше нет.</translation>
 <translation id="501473567976723023">январь</translation>
+<translation id="5020651427400641814">Разрешить вход с помощью голосового ввода</translation>
 <translation id="5041394372352067729">Разместить дисплей Брайля вверху страницы</translation>
 <translation id="5042770794184672516">Увеличить громкость речи</translation>
 <translation id="5050015258024679800">Перейти к предыдущему заголовку четвертого уровня</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sl.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sl.xtb
index 96e5877..a3da01ad 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sl.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sl.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Preklopljeno na <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">ms</translation>
 <translation id="49787999531187221">ChromeVox je zdaj onemogočen.</translation>
+<translation id="4979263087381759787">Možnosti za razvijalce</translation>
 <translation id="4979404613699303341">Gumb Nazaj</translation>
 <translation id="4982773647088557172">Polje s seznamom z vrednostjo <ph name="VALUE" /> in imenom <ph name="NAME" /></translation>
 <translation id="4983588134362688868">Na vrh strani</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Ni obrazcev.</translation>
 <translation id="5005670136041063723">Ni več podobnih elementov.</translation>
 <translation id="501473567976723023">januar</translation>
+<translation id="5020651427400641814">Omogočanje zapisovanja dnevnikov govora</translation>
 <translation id="5041394372352067729">Premik Braillove vrstice na vrh strani</translation>
 <translation id="5042770794184672516">Povečanje glasnosti govora</translation>
 <translation id="5050015258024679800">Prejšnji naslov na ravni 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sr.xtb
index 3111abe..f0e1c37 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sr.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sr.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Пребачено је на <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">милисекунде</translation>
 <translation id="49787999531187221">ChromeVox је сада неактиван.</translation>
+<translation id="4979263087381759787">Опције за програмера</translation>
 <translation id="4979404613699303341">Претходно дугме</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, оквир листе</translation>
 <translation id="4983588134362688868">Прелазак на врх странице</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Нема образаца.</translation>
 <translation id="5005670136041063723">Нема више сличних елемената.</translation>
 <translation id="501473567976723023">јануар</translation>
+<translation id="5020651427400641814">Омогући евидентирање говора</translation>
 <translation id="5041394372352067729">Померање екрана са Брајевом азбуком у врх странице</translation>
 <translation id="5042770794184672516">Повећавање јачине звука говора</translation>
 <translation id="5050015258024679800">Претходно заглавље 4. нивоа</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sv.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sv.xtb
index 0502846..a495d85 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sv.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sv.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Bytte till <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">millisekunder</translation>
 <translation id="49787999531187221">ChromeVox är nu inaktiverat.</translation>
+<translation id="4979263087381759787">Utvecklaralternativ</translation>
 <translation id="4979404613699303341">Föregående knapp</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, listruta</translation>
 <translation id="4983588134362688868">Till början av sidan</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Det finns inga formulär.</translation>
 <translation id="5005670136041063723">Det finns inga fler liknande element.</translation>
 <translation id="501473567976723023">januari</translation>
+<translation id="5020651427400641814">Aktivera loggning av tal</translation>
 <translation id="5041394372352067729">Flytta punktskriftsskärmen till sidans början</translation>
 <translation id="5042770794184672516">Höj talvolymen</translation>
 <translation id="5050015258024679800">Föregående rubrik på nivå 4</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb
index b4f0998c..be0817c1 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920">Imebadilishwa kwenda <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">milisekunde</translation>
 <translation id="49787999531187221">ChromeVox sasa haitumiki.</translation>
+<translation id="4979263087381759787">Chaguo za Wasanidi Programu</translation>
 <translation id="4979404613699303341">Kitufe kilichotangulia</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, kisanduku cha orodha</translation>
 <translation id="4983588134362688868">Ruka hadi mwanzo wa ukurasa</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">Hakuna fomu.</translation>
 <translation id="5005670136041063723">Hakuna vipengee vinavyofanana tena.</translation>
 <translation id="501473567976723023">Januari</translation>
+<translation id="5020651427400641814">Washa kumbukumbu za matamshi</translation>
 <translation id="5041394372352067729">Sogeza onyesho la breli hadi mwanzo wa ukurasa</translation>
 <translation id="5042770794184672516">Ongeza sauti ya usemi</translation>
 <translation id="5050015258024679800">Kichwa cha ngazi ya 4 kilichotangulia</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 d46a28f8..22835966 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920"><ph name="KEY" /> க்கு மாற்றப்பட்டது.</translation>
 <translation id="4975416682604111799">மில்லிவினாடிகள்</translation>
 <translation id="49787999531187221">ChromeVox இப்போது செயலற்று உள்ளது.</translation>
+<translation id="4979263087381759787">டெவெலப்பர் விருப்பங்கள்</translation>
 <translation id="4979404613699303341">முந்தைய பொத்தான்</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, பட்டியல் பெட்டி</translation>
 <translation id="4983588134362688868">பக்கத்தின் மேல்பகுதிக்குச் செல்லவும்</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">வடிவங்கள் இல்லை.</translation>
 <translation id="5005670136041063723">மேலும் ஒத்த கூறுகள் இல்லை.</translation>
 <translation id="501473567976723023">ஜனவரி</translation>
+<translation id="5020651427400641814">பேச்சுப் பதிவை இயக்கவும்</translation>
 <translation id="5041394372352067729">பக்கத்தின் மேல்பகுதிக்கு பிரெய்ல் காட்சியை நகர்த்து</translation>
 <translation id="5042770794184672516">பேச்சு ஒலியளவை அதிகரி</translation>
 <translation id="5050015258024679800">முந்தைய 4 ஆம் படிநிலை தலைப்பு</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_te.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_te.xtb
index 5632a35..fcbf5bd7 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_te.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_te.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="te">
 <translation id="100812568230599391">ప్రదర్శన శైలిని ఇంటర్‌లీవ్‌కి మార్చండి.</translation>
+<translation id="1011903154582639569">కీని కనుగొని, టైప్ చేయడానికి ఎత్తండి</translation>
 <translation id="1012173283529841972">జాబితా అంశం</translation>
 <translation id="1013742170491673792">srched</translation>
 <translation id="1022586497894531524">మీరు ChromeVox ప్రసంగ రూప అభిప్రాయాన్ని మొదటిసారిగా ఉపయోగిస్తున్నారా? ఈ శీఘ్ర ట్యుటోరియల్ ChromeVoxను ప్రారంభించడం కోసం అవసరమైన ముఖ్యమైన వాటి గురించి వివరిస్తుంది.</translation>
@@ -163,6 +164,7 @@
 <translation id="2553108862507765288">grammatical mistake</translation>
 <translation id="257674075312929031">సమూహం</translation>
 <translation id="2582407057977008361">ప్రక్కన</translation>
+<translation id="2592212930811759050">సవరణను ప్రారంభించడానికి రెండుసార్లు నొక్కండి</translation>
 <translation id="2606210917827248971">{COUNT,plural, =1{# అంశంతో}other{# అంశాలతో}}</translation>
 <translation id="2614981083756825552">గణిత ML లేఅవుట్</translation>
 <translation id="2624431853467395961">తెలుసుకునే మోడ్‌ను తెరవండి</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_th.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_th.xtb
index d5dfa653..eeff264 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_th.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_th.xtb
@@ -2,7 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="th">
 <translation id="100812568230599391">เปลี่ยนรูปแบบการแสดงผลเป็นข้อความแทรก</translation>
-<translation id="1011903154582639569">หาแป้นแล้วยกขึ้นเพื่อพิมพ์</translation>
+<translation id="1011903154582639569">หาแป้นแล้วยกนิ้วขึ้นพิมพ์</translation>
 <translation id="1012173283529841972">รายการ</translation>
 <translation id="1013742170491673792">srched</translation>
 <translation id="1022586497894531524">หากคุณใช้การอธิบายและอ่านออกเสียงของ ChromeVox เป็นครั้งแรก บทแนะนำฉบับย่อนี้ที่จะอธิบายสิ่งที่ควรทราบในการเริ่มต้นใช้งาน ChromeVox</translation>
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920">สลับเป็น <ph name="KEY" /> แล้ว</translation>
 <translation id="4975416682604111799">มิลลิวินาที</translation>
 <translation id="49787999531187221">ChromeVox ปิดใช้งานอยู่ในตอนนี้</translation>
+<translation id="4979263087381759787">ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์</translation>
 <translation id="4979404613699303341">ปุ่มก่อนหน้า</translation>
 <translation id="4982773647088557172">ช่องรายการ <ph name="NAME" /> <ph name="VALUE" /></translation>
 <translation id="4983588134362688868">ข้ามไปที่ส่วนบนสุดของหน้าเว็บ</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">ไม่มีฟอร์ม</translation>
 <translation id="5005670136041063723">ไม่มีเอลิเมนต์ที่คล้ายกันเพิ่มเติม</translation>
 <translation id="501473567976723023">มกราคม</translation>
+<translation id="5020651427400641814">เปิดใช้การบันทึกเสียงพูด</translation>
 <translation id="5041394372352067729">เลื่อนการแสดงผลเบรลล์ไปที่ด้านบนของหน้า</translation>
 <translation id="5042770794184672516">เพิ่มความดังเสียงพูด</translation>
 <translation id="5050015258024679800">ส่วนหัวระดับ 4 ก่อนหน้า</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_tr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_tr.xtb
index 9cd3499..a78bdaa 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_tr.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_tr.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920"><ph name="KEY" /> tuş eşleşmesine geçildi.</translation>
 <translation id="4975416682604111799">milisaniye</translation>
 <translation id="49787999531187221">ChromeVox şu anda etkin.</translation>
+<translation id="4979263087381759787">Geliştirici Seçenekleri</translation>
 <translation id="4979404613699303341">Önceki düğmesi</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, liste kutusu</translation>
 <translation id="4983588134362688868">Sayfanın en üst kısmına atlar</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">Form yok.</translation>
 <translation id="5005670136041063723">Başka benzer öğe yok.</translation>
 <translation id="501473567976723023">Ocak</translation>
+<translation id="5020651427400641814">Konuşma kaydını etkinleştir</translation>
 <translation id="5041394372352067729">Braille ekranını sayfanın üstüne taşı</translation>
 <translation id="5042770794184672516">Konuşma ses düzeyini artır</translation>
 <translation id="5050015258024679800">Önceki 4. düzey başlık</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_uk.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_uk.xtb
index d731e4e5..984bde3 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_uk.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_uk.xtb
@@ -489,6 +489,7 @@
 <translation id="4973762002207131920">Змінено на <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">мілісекунд</translation>
 <translation id="49787999531187221">Розширення ChromeVox зараз неактивне.</translation>
+<translation id="4979263087381759787">Параметри розробника</translation>
 <translation id="4979404613699303341">Попередня кнопка</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, вікно списку</translation>
 <translation id="4983588134362688868">Перейти вгору сторінки</translation>
@@ -500,6 +501,7 @@
 <translation id="5000760171916499057">Немає форм.</translation>
 <translation id="5005670136041063723">Немає інших схожих елементів.</translation>
 <translation id="501473567976723023">січень</translation>
+<translation id="5020651427400641814">Увімкнути реєстрацію мовлення</translation>
 <translation id="5041394372352067729">Перемістити брайлівський дисплей угору сторінки</translation>
 <translation id="5042770794184672516">Збільшити гучність мовлення</translation>
 <translation id="5050015258024679800">Попередній заголовок рівня 4</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 1f6fa6f..9ae23422 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">Được chuyển thành <ph name="KEY" />.</translation>
 <translation id="4975416682604111799">mili giây</translation>
 <translation id="49787999531187221">ChromeVox hiện không hoạt động.</translation>
+<translation id="4979263087381759787">Tùy chọn của nhà phát triển</translation>
 <translation id="4979404613699303341">Nút trước</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />, <ph name="NAME" />, hộp danh sách</translation>
 <translation id="4983588134362688868">Chuyển đến đầu trang</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">Không có biểu mẫu nào.</translation>
 <translation id="5005670136041063723">Không có phần tử tương tự nào khác.</translation>
 <translation id="501473567976723023">Tháng 1</translation>
+<translation id="5020651427400641814">Bật tính năng ghi nhật ký bằng lời nói</translation>
 <translation id="5041394372352067729">Di chuyển màn hình chữ nổi về đầu trang</translation>
 <translation id="5042770794184672516">Tăng âm lượng giọng nói</translation>
 <translation id="5050015258024679800">Tiêu đề cấp 4 trước</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 c033750e..9608093d 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
@@ -490,6 +490,7 @@
 <translation id="4973762002207131920">已切換至「<ph name="KEY" />」。</translation>
 <translation id="4975416682604111799">毫秒</translation>
 <translation id="49787999531187221">ChromeVox 現在已停用。</translation>
+<translation id="4979263087381759787">開發人員選項</translation>
 <translation id="4979404613699303341">上一個按鈕</translation>
 <translation id="4982773647088557172"><ph name="VALUE" />,<ph name="NAME" />,清單方塊</translation>
 <translation id="4983588134362688868">前往網頁頂端</translation>
@@ -501,6 +502,7 @@
 <translation id="5000760171916499057">沒有表單。</translation>
 <translation id="5005670136041063723">已無類似元素。</translation>
 <translation id="501473567976723023">1 月</translation>
+<translation id="5020651427400641814">啟用語音記錄功能</translation>
 <translation id="5041394372352067729">將點字顯示畫面移至頁面頂端</translation>
 <translation id="5042770794184672516">增加說話音量</translation>
 <translation id="5050015258024679800">上一個第 4 階標題</translation>
diff --git a/chrome/browser/resources/chromeos/login/oobe_buttons.html b/chrome/browser/resources/chromeos/login/oobe_buttons.html
index 55da0747..e6714e1 100644
--- a/chrome/browser/resources/chromeos/login/oobe_buttons.html
+++ b/chrome/browser/resources/chromeos/login/oobe_buttons.html
@@ -93,7 +93,7 @@
     <link rel="stylesheet" href="oobe_text_buttons.css">
     <link rel="stylesheet" href="oobe_back_button.css">
     <paper-button id="button" on-tap="onClick_" disabled="[[disabled]]"
-        aria-label$="[[labelForAria]]" class="action-button">
+        aria-label$="[[labelForAria]]">
       <div class="flex horizontal layout start center">
         <hd-iron-icon
             icon1x="oobe-buttons-20:arrow-forward"
diff --git a/chrome/browser/resources/chromeos/login/oobe_dialog.js b/chrome/browser/resources/chromeos/login/oobe_dialog.js
index f5b385e..2a53a1af 100644
--- a/chrome/browser/resources/chromeos/login/oobe_dialog.js
+++ b/chrome/browser/resources/chromeos/login/oobe_dialog.js
@@ -65,9 +65,9 @@
   },
 
   onBeforeShow: function() {
-    var isOobe = Oobe && Oobe.getInstance() &&
+    var isOobe = window.hasOwnProperty('Oobe') && Oobe.getInstance() &&
         Oobe.getInstance().displayType == DISPLAY_TYPE.OOBE;
-    if (isOobe || document.documentElement.getAttribute('full-screen-dialog'))
+    if (isOobe || document.documentElement.hasAttribute('full-screen-dialog'))
       this.fullScreenDialog = true;
   },
 
diff --git a/chrome/browser/resources/chromeos/login/oobe_dialog_host.css b/chrome/browser/resources/chromeos/login/oobe_dialog_host.css
index b38ec190..46faec6 100644
--- a/chrome/browser/resources/chromeos/login/oobe_dialog_host.css
+++ b/chrome/browser/resources/chromeos/login/oobe_dialog_host.css
@@ -14,9 +14,9 @@
   border-radius: unset;
   box-shadow: unset;
   flex-direction: column;
-  min-height: 640px;
-  min-width: 768px;
+  height: 640px;
   position: relative;
+  width: 768px;
 }
 
 :host(:not([not-a-dialog]):not([full-screen-dialog])) {
diff --git a/chrome/browser/resources/chromeos/login/oobe_dialog_host_behavior.js b/chrome/browser/resources/chromeos/login/oobe_dialog_host_behavior.js
index dc7b482d..6d34b79 100644
--- a/chrome/browser/resources/chromeos/login/oobe_dialog_host_behavior.js
+++ b/chrome/browser/resources/chromeos/login/oobe_dialog_host_behavior.js
@@ -43,7 +43,7 @@
    * Pass down fullScreenDialog attribute.
    */
   onBeforeShow: function() {
-    if (document.documentElement.getAttribute('full-screen-dialog'))
+    if (document.documentElement.hasAttribute('full-screen-dialog'))
       this.fullScreenDialog = true;
 
     this.propagateFullScreenMode();
diff --git a/chrome/browser/resources/chromeos/login/oobe_welcome.js b/chrome/browser/resources/chromeos/login/oobe_welcome.js
index ab8a912..3d75839e 100644
--- a/chrome/browser/resources/chromeos/login/oobe_welcome.js
+++ b/chrome/browser/resources/chromeos/login/oobe_welcome.js
@@ -83,18 +83,19 @@
   },
 
   onBeforeShow: function() {
-    if (document.documentElement.getAttribute('full-screen-dialog'))
-      this.fullScreenDialog = true;
-
-    if (this.fullScreenDialog) {
-      this.$.welcomeScreen.fullScreenDialog = true;
-    }
-
     this.behaviors.forEach((behavior) => {
       if (behavior.onBeforeShow)
         behavior.onBeforeShow.call(this);
     });
 
+    if (this.fullScreenDialog)
+      this.$.welcomeScreen.fullScreenDialog = true;
+
+    this.$.welcomeScreen.onBeforeShow();
+    let dialogs = Polymer.dom(this.root).querySelectorAll('oobe-dialog');
+    for (let dialog of dialogs)
+      dialog.onBeforeShow();
+
     let activeScreen = this.getActiveScreen_();
     if (activeScreen.show)
       activeScreen.show();
diff --git a/chrome/browser/resources/discards/discards.js b/chrome/browser/resources/discards/discards.js
index d9b3c13..f31731f 100644
--- a/chrome/browser/resources/discards/discards.js
+++ b/chrome/browser/resources/discards/discards.js
@@ -42,6 +42,17 @@
   }
 
   /**
+   * Determines if the provided state is related to discarding.
+   * @param {state} The discard state.
+   * @return {boolean} True if the state is related to discarding, false
+   *     otherwise.
+   */
+  function isDiscardRelatedState(state) {
+    return state == mojom.LifecycleUnitState.PENDING_DISCARD ||
+        state == mojom.LifecycleUnitState.DISCARDED;
+  }
+
+  /**
    * Compares two TabDiscardsInfos based on the data in the provided sort-key.
    * @param {string} sortKey The key of the sort. See the "data-sort-key"
    *     attribute of the table headers for valid sort-keys.
@@ -70,13 +81,23 @@
       return val1 ? 1 : -1;
     }
 
+    // Compare lifecycle state. This is actually a compound key.
+    if (sortKey == 'state') {
+      // If the keys are discarding state, then break ties using the discard
+      // reason.
+      if (val1 == val2 && isDiscardRelatedState(val1)) {
+        val1 = a['discardReason'];
+        val2 = b['discardReason'];
+      }
+      return val1 - val2;
+    }
+
     // Compares numeric fields.
     // NOTE: visibility, loadingState and state are represented as a numeric
     // value.
     if ([
           'visibility',
           'loadingState',
-          'state',
           'discardCount',
           'utilityRank',
           'reactivationScore',
@@ -203,7 +224,7 @@
       case 2:
         return 'visible';
     }
-    assertNotReached('Unsupported visibility: ' + visibility);
+    assertNotReached('Unknown visibility: ' + visibility);
   }
 
   /**
@@ -221,10 +242,36 @@
       case 2:
         return 'loaded';
     }
-    assertNotReached('Unsupport loadingState: ' + loadingState);
+    assertNotReached('Unknown loadingState: ' + loadingState);
   }
 
-  function lifecycleStateToString(state) {
+  /**
+   * Returns a string representation of a discard reason.
+   * @param {mojom.LifecycleUnitDiscardReason} reason The discard reason.
+   * @param {string} A string representation of the discarding reason.
+   */
+  function discardReasonToString(reason) {
+    return 'none';
+    switch (reason) {
+      case mojom.LifecycleUnitDiscardReason.EXTERNAL:
+        return 'external';
+      case mojom.LifecycleUnitDiscardReason.PROACTIVE:
+        return 'proactive';
+      case mojom.LifecycleUnitDiscardReason.URGENT:
+        return 'urgent';
+    }
+    assertNotReached('Unknown discard reason: ' + reason);
+  }
+
+  /**
+   * Returns a string representation of a lifecycle state.
+   * @param {mojom.LifecycleUnitState} state The lifecycle state.
+   * @param {mojom.LifecycleUnitDiscardReason} reason The discard reason. This
+   *     is only used if the state is discard related.
+   * @param {string} A string representation of the lifecycle state, augmented
+   *     with the discard reason if appropriate.
+   */
+  function lifecycleStateToString(state, reason) {
     switch (state) {
       case mojom.LifecycleUnitState.ACTIVE:
         return 'active';
@@ -235,13 +282,13 @@
       case mojom.LifecycleUnitState.FROZEN:
         return 'frozen';
       case mojom.LifecycleUnitState.PENDING_DISCARD:
-        return 'pending discard';
+        return 'pending discard (' + discardReasonToString(reason) + ')';
       case mojom.LifecycleUnitState.DISCARDED:
-        return 'discarded';
+        return 'discarded (' + discardReasonToString(reason) + ')';
       case mojom.LifecycleUnitState.PENDING_UNFREEZE:
         return 'pending unfreeze';
     }
-    assertNotReached('Unsupported lifecycle state: ' + state);
+    assertNotReached('Unknown lifecycle state: ' + state);
   }
 
   /**
@@ -355,7 +402,7 @@
     row.querySelector('.state-cell').textContent =
         (info.loadingState != mojom.LifecycleUnitLoadingState.UNLOADED ||
          info.discardCount > 0) ?
-        lifecycleStateToString(info.state) :
+        lifecycleStateToString(info.state, info.discardReason) :
         '';
     row.querySelector('.discard-count-cell').textContent =
         info.discardCount.toString();
diff --git a/chrome/browser/resources/print_preview/new/header.js b/chrome/browser/resources/print_preview/new/header.js
index 7156fb9..c021c01 100644
--- a/chrome/browser/resources/print_preview/new/header.js
+++ b/chrome/browser/resources/print_preview/new/header.js
@@ -49,8 +49,7 @@
 
   observers:
       ['update_(settings.copies.value, settings.duplex.value, ' +
-       'settings.pages.value, settings.pagesPerSheet.value, state, ' +
-       'destination.id)'],
+       'settings.pages.value, state, destination.id)'],
 
   /** @private {!print_preview_new.State} */
   lastState_: print_preview_new.State.NOT_READY,
@@ -98,14 +97,6 @@
       numSheets = Math.ceil(numPages / 2);
     }
 
-    const pagesPerSheet = parseInt(this.getSettingValue('pagesPerSheet'), 10);
-
-    if (!Number.isNaN(pagesPerSheet)) {
-      assert(pagesPerSheet > 0);
-      numSheets = Math.ceil(numSheets / pagesPerSheet);
-      numPages = Math.ceil(numPages / pagesPerSheet);
-    }
-
     const copies = parseInt(this.getSettingValue('copies'), 10);
     numSheets *= copies;
     numPages *= copies;
diff --git a/chrome/browser/resources/print_preview/new/pages_settings.html b/chrome/browser/resources/print_preview/new/pages_settings.html
index 98b8882..f1fb5114c 100644
--- a/chrome/browser/resources/print_preview/new/pages_settings.html
+++ b/chrome/browser/resources/print_preview/new/pages_settings.html
@@ -2,6 +2,7 @@
 
 <link rel="import" href="checkbox_radio_css.html">
 <link rel="import" href="../data/document_info.html">
+<link rel="import" href="../print_preview_utils.html">
 <link rel="import" href="input_behavior.html">
 <link rel="import" href="input_css.html">
 <link rel="import" href="print_preview_shared_css.html">
diff --git a/chrome/browser/resources/print_preview/new/pages_settings.js b/chrome/browser/resources/print_preview/new/pages_settings.js
index 96cc7c44..1bd94eb 100644
--- a/chrome/browser/resources/print_preview/new/pages_settings.js
+++ b/chrome/browser/resources/print_preview/new/pages_settings.js
@@ -76,7 +76,8 @@
   },
 
   observers: [
-    'onRangeChange_(errorState_, rangesToPrint_, settings.pages)',
+    'onRangeChange_(errorState_, rangesToPrint_, settings.pages, ' +
+        'settings.pagesPerSheet.value)',
     'onRadioChange_(allSelected_, customSelected_)'
   ],
 
@@ -114,6 +115,15 @@
    * @private
    */
   computeAllPagesArray_: function() {
+    // This computed function will unnecessarily get triggered if
+    // this.documentInfo is set to a new object, which happens whenever the
+    // preview refreshes, but the page count is the same as before. We do not
+    // want to trigger all observers unnecessarily.
+    if (!!this.allPagesArray_ &&
+        this.allPagesArray_.length == this.documentInfo.pageCount) {
+      return this.allPagesArray_;
+    }
+
     const array = new Array(this.documentInfo.pageCount);
     for (let i = 0; i < array.length; i++)
       array[i] = i + 1;
@@ -216,17 +226,22 @@
   },
 
   /**
-   * @return {boolean} Whether pages setting and pagesToPrint_ match.
+   * @return {!Array<number>} The final page numbers, reflecting N-up setting.
+   *     Page numbers are 1 indexed, since these numbers are displayed to the
+   *     user.
+   * @private
    */
-  settingMatches_: function() {
-    const setting = this.getSetting('pages').value;
-    if (setting.length != this.pagesToPrint_.length)
-      return false;
-    for (let index = 0; index < this.pagesToPrint_.length; index++) {
-      if (this.pagesToPrint_[index] != setting[index])
-        return false;
-    }
-    return true;
+  getNupPages_: function() {
+    const pagesPerSheet =
+        /** @type {number} */ (this.getSettingValue('pagesPerSheet'));
+    if (pagesPerSheet <= 1 || this.pagesToPrint_.length == 0)
+      return this.pagesToPrint_;
+
+    const numPages = Math.ceil(this.pagesToPrint_.length / pagesPerSheet);
+    const nupPages = new Array(numPages);
+    for (let i = 0; i < nupPages.length; i++)
+      nupPages[i] = i + 1;
+    return nupPages;
   },
 
   /**
@@ -245,10 +260,16 @@
     }
     this.$.pageSettingsCustomInput.classList.remove('invalid');
     this.setSettingValid('pages', true);
-    if (!this.settingMatches_()) {
-      this.setSetting('pages', this.pagesToPrint_);
-      this.setSetting('ranges', this.rangesToPrint_);
+    const nupPages = this.getNupPages_();
+    const rangesChanged = !areRangesEqual(
+        this.rangesToPrint_,
+        /** @type {!Array} */ (this.getSettingValue('ranges')));
+    if (rangesChanged ||
+        nupPages.length != this.getSettingValue('pages').length) {
+      this.setSetting('pages', nupPages);
     }
+    if (rangesChanged)
+      this.setSetting('ranges', this.rangesToPrint_);
   },
 
   /** @private */
diff --git a/chrome/browser/resources/print_preview/new/preview_area.js b/chrome/browser/resources/print_preview/new/preview_area.js
index d963365..43622f4 100644
--- a/chrome/browser/resources/print_preview/new/preview_area.js
+++ b/chrome/browser/resources/print_preview/new/preview_area.js
@@ -351,24 +351,10 @@
           this.onPreviewVisualStateChange_.bind(this));
     }
 
-    const pageNumbers =
-        /** @type {!Array<number>} */ (this.getSetting('pages').value);
-    let pageLabels = [];
-    const pagesPerSheet =
-        /** @type {number} */ (this.getSettingValue('pagesPerSheet'));
-    // When pagesPerSheet > 1, page labels should always refer to the N-up
-    // pages.
-    if (pagesPerSheet > 1) {
-      const nupPageCount = Math.ceil(pageNumbers.length / pagesPerSheet);
-      for (let index = 1; index <= nupPageCount; index++)
-        pageLabels.push(index);
-    } else {
-      pageLabels = pageNumbers;
-    }
-
     this.pluginLoaded_ = false;
     this.pluginProxy_.resetPrintPreviewMode(
-        previewUid, index, !this.getSettingValue('color'), pageLabels,
+        previewUid, index, !this.getSettingValue('color'),
+        /** @type {!Array<number>} */ (this.getSettingValue('pages')),
         this.documentInfo.isModifiable);
   },
 
diff --git a/chrome/browser/resources/settings/people_page/people_page.html b/chrome/browser/resources/settings/people_page/people_page.html
index c3b7bc37..e6dad8cd 100644
--- a/chrome/browser/resources/settings/people_page/people_page.html
+++ b/chrome/browser/resources/settings/people_page/people_page.html
@@ -353,7 +353,7 @@
         <settings-subpage
             associated-control="[[$$('#sync-status')]]"
             page-title="$i18n{syncPageTitle}"
-            learn-more-url="$i18n{privacyLearnMoreURL}"
+            learn-more-url="$i18n{syncAndGoogleServicesLearnMoreURL}"
             no-search$="[[!isAdvancedSyncSettingsVisible_(syncStatus,
                 unifiedConsentEnabled_)]]">
           <settings-sync-page
diff --git a/chrome/browser/resources/webauthn/2x/error_timeout.png b/chrome/browser/resources/webauthn/2x/error_timeout.png
index 62efe55..a593dfcfe 100644
--- a/chrome/browser/resources/webauthn/2x/error_timeout.png
+++ b/chrome/browser/resources/webauthn/2x/error_timeout.png
Binary files differ
diff --git a/chrome/browser/resources/webauthn/2x/welcome.png b/chrome/browser/resources/webauthn/2x/welcome.png
index b897bf5..df24882 100644
--- a/chrome/browser/resources/webauthn/2x/welcome.png
+++ b/chrome/browser/resources/webauthn/2x/welcome.png
Binary files differ
diff --git a/chrome/browser/resources/webauthn/error_timeout.png b/chrome/browser/resources/webauthn/error_timeout.png
index 20f2907..46f872e 100644
--- a/chrome/browser/resources/webauthn/error_timeout.png
+++ b/chrome/browser/resources/webauthn/error_timeout.png
Binary files differ
diff --git a/chrome/browser/resources/webauthn/welcome.png b/chrome/browser/resources/webauthn/welcome.png
index cd4c9b3..3449df51 100644
--- a/chrome/browser/resources/webauthn/welcome.png
+++ b/chrome/browser/resources/webauthn/welcome.png
Binary files differ
diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc
index 1eae8ad..3fdbe32d 100644
--- a/chrome/browser/signin/chrome_signin_client.cc
+++ b/chrome/browser/signin/chrome_signin_client.cc
@@ -46,7 +46,6 @@
 #include "content/public/browser/storage_partition.h"
 #include "google_apis/gaia/gaia_constants.h"
 #include "google_apis/gaia/gaia_urls.h"
-#include "net/url_request/url_request_context_getter.h"
 #include "url/gurl.h"
 
 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
@@ -116,10 +115,6 @@
   entry->SetIsSigninRequired(false);
 }
 
-net::URLRequestContextGetter* ChromeSigninClient::GetURLRequestContext() {
-  return profile_->GetRequestContext();
-}
-
 scoped_refptr<network::SharedURLLoaderFactory>
 ChromeSigninClient::GetURLLoaderFactory() {
   if (url_loader_factory_for_testing_)
diff --git a/chrome/browser/signin/chrome_signin_client.h b/chrome/browser/signin/chrome_signin_client.h
index 88891c0..312a2feb 100644
--- a/chrome/browser/signin/chrome_signin_client.h
+++ b/chrome/browser/signin/chrome_signin_client.h
@@ -47,7 +47,6 @@
   // SigninClient implementation.
   PrefService* GetPrefs() override;
   void OnSignedOut() override;
-  net::URLRequestContextGetter* GetURLRequestContext() override;
   scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override;
   network::mojom::CookieManager* GetCookieManager() override;
   bool IsFirstRun() const override;
diff --git a/chrome/browser/signin/dice_response_handler_unittest.cc b/chrome/browser/signin/dice_response_handler_unittest.cc
index 9565057..9e1ef9be 100644
--- a/chrome/browser/signin/dice_response_handler_unittest.cc
+++ b/chrome/browser/signin/dice_response_handler_unittest.cc
@@ -34,7 +34,6 @@
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "google_apis/gaia/fake_oauth2_token_service_delegate.h"
 #include "google_apis/gaia/gaia_constants.h"
-#include "net/url_request/url_request_test_util.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -119,8 +118,6 @@
   DiceResponseHandlerTest()
       : loop_(base::MessageLoop::TYPE_IO),  // URLRequestContext requires IO.
         task_runner_(new base::TestMockTimeTaskRunner()),
-        request_context_getter_(
-            new net::TestURLRequestContextGetter(task_runner_)),
         signin_client_(&pref_service_),
         token_service_(&pref_service_,
                        std::make_unique<FakeOAuth2TokenServiceDelegate>()),
@@ -146,7 +143,6 @@
     loop_.SetTaskRunner(task_runner_);
     DCHECK_EQ(task_runner_, base::ThreadTaskRunnerHandle::Get());
     EXPECT_TRUE(temp_dir_.CreateUniqueTempDir());
-    signin_client_.SetURLRequestContext(request_context_getter_.get());
     AboutSigninInternals::RegisterPrefs(pref_service_.registry());
     AccountTrackerService::RegisterPrefs(pref_service_.registry());
     SigninManager::RegisterProfilePrefs(pref_service_.registry());
@@ -227,7 +223,6 @@
   base::MessageLoop loop_;
   base::ScopedTempDir temp_dir_;
   scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
-  scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_;
   sync_preferences::TestingPrefServiceSyncable pref_service_;
   DiceTestSigninClient signin_client_;
   ProfileOAuth2TokenService token_service_;
diff --git a/chrome/browser/signin/mutable_profile_oauth2_token_service_delegate_unittest.cc b/chrome/browser/signin/mutable_profile_oauth2_token_service_delegate_unittest.cc
index ea51cab..f1c1dc2 100644
--- a/chrome/browser/signin/mutable_profile_oauth2_token_service_delegate_unittest.cc
+++ b/chrome/browser/signin/mutable_profile_oauth2_token_service_delegate_unittest.cc
@@ -13,7 +13,9 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/macros.h"
 #include "base/run_loop.h"
+#include "base/strings/utf_string_conversions.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "base/time/time.h"
 #include "build/build_config.h"
 #include "build/buildflag.h"
 #include "components/os_crypt/os_crypt_mocker.h"
@@ -38,7 +40,6 @@
 #include "google_apis/gaia/oauth2_access_token_consumer.h"
 #include "google_apis/gaia/oauth2_token_service_test_util.h"
 #include "net/http/http_status_code.h"
-#include "net/url_request/test_url_fetcher_factory.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -106,8 +107,6 @@
         AccountTrackerService::MIGRATION_NOT_STARTED);
     SigninManagerBase::RegisterProfilePrefs(pref_service_.registry());
     client_.reset(new TestSigninClient(&pref_service_));
-    client_->SetURLRequestContext(new net::TestURLRequestContextGetter(
-        base::ThreadTaskRunnerHandle::Get()));
     client_->test_url_loader_factory()->AddResponse(
         GaiaUrls::GetInstance()->oauth2_revoke_url().spec(), "");
     LoadTokenDatabase();
@@ -950,7 +949,7 @@
   EXPECT_EQ(1, access_token_failure_count_);
   // Expect a positive backoff time.
   EXPECT_GT(oauth2_service_delegate_->backoff_entry_.GetTimeUntilRelease(),
-            TimeDelta());
+            base::TimeDelta());
 
   // Pretend that backoff has expired and try again.
   oauth2_service_delegate_->backoff_entry_.SetCustomReleaseTime(
diff --git a/chrome/browser/themes/theme_service_aurax11.cc b/chrome/browser/themes/theme_service_aurax11.cc
index 4903e41..39dc042c 100644
--- a/chrome/browser/themes/theme_service_aurax11.cc
+++ b/chrome/browser/themes/theme_service_aurax11.cc
@@ -61,7 +61,7 @@
 }
 
 bool SystemThemeX11::GetColor(int id, SkColor* color) const {
-  return linux_ui_ && linux_ui_->GetColor(id, color);
+  return linux_ui_ && linux_ui_->GetColor(id, color, pref_service_);
 }
 
 gfx::Image SystemThemeX11::GetImageNamed(int id) {
diff --git a/chrome/browser/ui/ash/ash_util.cc b/chrome/browser/ui/ash/ash_util.cc
index d13dcaf..e701e4e 100644
--- a/chrome/browser/ui/ash/ash_util.cc
+++ b/chrome/browser/ui/ash/ash_util.cc
@@ -40,7 +40,7 @@
   DCHECK_GE(container_id, ash::kShellWindowId_MinContainer);
   DCHECK_LE(container_id, ash::kShellWindowId_MaxContainer);
 
-  if (!features::IsAshInBrowserProcess()) {
+  if (features::IsUsingWindowService()) {
     using ui::mojom::WindowManager;
     params->mus_properties[WindowManager::kContainerId_InitProperty] =
         mojo::ConvertTo<std::vector<uint8_t>>(container_id);
diff --git a/chrome/browser/ui/ash/chrome_keyboard_ui.cc b/chrome/browser/ui/ash/chrome_keyboard_ui.cc
index 1b77e32f..d1336db 100644
--- a/chrome/browser/ui/ash/chrome_keyboard_ui.cc
+++ b/chrome/browser/ui/ash/chrome_keyboard_ui.cc
@@ -60,6 +60,8 @@
 
 namespace {
 
+const int kShadowElevationVirtualKeyboard = 2;
+
 GURL& GetOverrideVirtualKeyboardUrl() {
   static base::NoDestructor<GURL> url;
   return *url;
@@ -106,8 +108,8 @@
 class ChromeKeyboardContentsDelegate : public content::WebContentsDelegate,
                                        public content::WebContentsObserver {
  public:
-  explicit ChromeKeyboardContentsDelegate(ChromeKeyboardUI* ui) : ui_(ui) {}
-  ~ChromeKeyboardContentsDelegate() override {}
+  ChromeKeyboardContentsDelegate() = default;
+  ~ChromeKeyboardContentsDelegate() override = default;
 
  private:
   // content::WebContentsDelegate:
@@ -144,15 +146,15 @@
 
   void SetContentsBounds(content::WebContents* source,
                          const gfx::Rect& bounds) override {
-    aura::Window* keyboard = ui_->GetKeyboardWindow();
+    aura::Window* keyboard_window = source->GetNativeView();
     // keyboard window must have been added to keyboard container window at this
     // point. Otherwise, wrong keyboard bounds is used and may cause problem as
     // described in crbug.com/367788.
-    DCHECK(keyboard->parent());
+    DCHECK(keyboard_window->parent());
     // keyboard window bounds may not set to |pos| after this call. If keyboard
     // is in FULL_WIDTH mode, only the height of keyboard window will be
     // changed.
-    keyboard->SetBounds(bounds);
+    keyboard_window->SetBounds(bounds);
   }
 
   // content::WebContentsDelegate:
@@ -160,7 +162,16 @@
       content::WebContents* web_contents,
       const content::MediaStreamRequest& request,
       content::MediaResponseCallback callback) override {
-    ui_->RequestAudioInput(web_contents, request, std::move(callback));
+    const extensions::Extension* extension = nullptr;
+    GURL origin(request.security_origin);
+    if (origin.SchemeIs(extensions::kExtensionScheme)) {
+      const extensions::ExtensionRegistry* registry =
+          extensions::ExtensionRegistry::Get(web_contents->GetBrowserContext());
+      extension = registry->enabled_extensions().GetByID(origin.host());
+      DCHECK(extension);
+    }
+    MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest(
+        web_contents, request, std::move(callback), extension);
   }
 
   // content::WebContentsDelegate:
@@ -185,8 +196,6 @@
   // content::WebContentsObserver:
   void WebContentsDestroyed() override { delete this; }
 
-  ChromeKeyboardUI* const ui_;
-
   DISALLOW_COPY_AND_ASSIGN(ChromeKeyboardContentsDelegate);
 };
 
@@ -258,7 +267,6 @@
 
 ChromeKeyboardUI::ChromeKeyboardUI(content::BrowserContext* context)
     : browser_context_(context),
-      default_url_(keyboard::kKeyboardURL),
       window_bounds_observer_(
           std::make_unique<WindowBoundsChangeObserver>(this)) {}
 
@@ -267,23 +275,6 @@
   DCHECK(!keyboard_controller());
 }
 
-void ChromeKeyboardUI::RequestAudioInput(
-    content::WebContents* web_contents,
-    const content::MediaStreamRequest& request,
-    content::MediaResponseCallback callback) {
-  const extensions::Extension* extension = nullptr;
-  GURL origin(request.security_origin);
-  if (origin.SchemeIs(extensions::kExtensionScheme)) {
-    const extensions::ExtensionRegistry* registry =
-        extensions::ExtensionRegistry::Get(browser_context());
-    extension = registry->enabled_extensions().GetByID(origin.host());
-    DCHECK(extension);
-  }
-
-  MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest(
-      web_contents, request, std::move(callback), extension);
-}
-
 void ChromeKeyboardUI::UpdateInsetsForWindow(aura::Window* window) {
   if (!ShouldWindowOverscroll(window) || !HasKeyboardWindow())
     return;
@@ -308,10 +299,14 @@
 
 aura::Window* ChromeKeyboardUI::GetKeyboardWindow() {
   if (!keyboard_contents_) {
-    keyboard_contents_ = CreateWebContents();
-    keyboard_contents_->SetDelegate(new ChromeKeyboardContentsDelegate(this));
+    GURL keyboard_url = GetVirtualKeyboardUrl();
+    content::WebContents::CreateParams web_contents_params(
+        browser_context(),
+        content::SiteInstance::CreateForURL(browser_context(), keyboard_url));
+    keyboard_contents_ = content::WebContents::Create(web_contents_params);
+    keyboard_contents_->SetDelegate(new ChromeKeyboardContentsDelegate());
     SetupWebContents(keyboard_contents_.get());
-    LoadContents(GetVirtualKeyboardUrl());
+    LoadContents(keyboard_url);
     keyboard_contents_->GetNativeView()->AddObserver(this);
     keyboard_contents_->GetNativeView()->set_owned_by_parent(false);
     content::RenderWidgetHostView* view =
@@ -364,9 +359,9 @@
 
 void ChromeKeyboardUI::ReloadKeyboardIfNeeded() {
   DCHECK(keyboard_contents_);
-  if (keyboard_contents_->GetURL() != GetVirtualKeyboardUrl()) {
-    if (keyboard_contents_->GetURL().GetOrigin() !=
-        GetVirtualKeyboardUrl().GetOrigin()) {
+  GURL keyboard_url = GetVirtualKeyboardUrl();
+  if (keyboard_contents_->GetURL() != keyboard_url) {
+    if (keyboard_contents_->GetURL().GetOrigin() != keyboard_url.GetOrigin()) {
       // Sets keyboard window rectangle to 0 and close current page before
       // navigate to a keyboard in a different extension. This keeps the UX the
       // same as Android. Note we need to explicitly close current page as it
@@ -375,7 +370,7 @@
       GetKeyboardWindow()->SetBounds(gfx::Rect());
       keyboard_contents_->ClosePage();
     }
-    LoadContents(GetVirtualKeyboardUrl());
+    LoadContents(keyboard_url);
   }
 }
 
@@ -446,13 +441,6 @@
              : nullptr;
 }
 
-std::unique_ptr<content::WebContents> ChromeKeyboardUI::CreateWebContents() {
-  content::BrowserContext* context = browser_context();
-  return content::WebContents::Create(content::WebContents::CreateParams(
-      context,
-      content::SiteInstance::CreateForURL(context, GetVirtualKeyboardUrl())));
-}
-
 void ChromeKeyboardUI::LoadContents(const GURL& url) {
   if (keyboard_contents_) {
     TRACE_EVENT0("vk", "LoadContents");
@@ -463,20 +451,25 @@
   }
 }
 
-const GURL& ChromeKeyboardUI::GetVirtualKeyboardUrl() {
+GURL ChromeKeyboardUI::GetVirtualKeyboardUrl() {
   const GURL& override_url = GetOverrideVirtualKeyboardUrl();
   if (!override_url.is_empty())
     return override_url;
 
+  if (!keyboard::IsInputViewEnabled())
+    return GURL(keyboard::kKeyboardURL);
+
   chromeos::input_method::InputMethodManager* ime_manager =
       chromeos::input_method::InputMethodManager::Get();
-  if (!keyboard::IsInputViewEnabled() || !ime_manager ||
-      !ime_manager->GetActiveIMEState())
-    return default_url_;
+  if (!ime_manager || !ime_manager->GetActiveIMEState())
+    return GURL(keyboard::kKeyboardURL);
 
   const GURL& input_view_url =
       ime_manager->GetActiveIMEState()->GetInputViewUrl();
-  return input_view_url.is_valid() ? input_view_url : default_url_;
+  if (!input_view_url.is_valid())
+    return GURL(keyboard::kKeyboardURL);
+
+  return input_view_url;
 }
 
 bool ChromeKeyboardUI::ShouldEnableInsets(aura::Window* window) {
@@ -497,7 +490,7 @@
   aura::Window* contents_window = keyboard_contents_->GetNativeView();
   if (!shadow_) {
     shadow_ = std::make_unique<ui::Shadow>();
-    shadow_->Init(wm::kShadowElevationActiveWindow);
+    shadow_->Init(kShadowElevationVirtualKeyboard);
     shadow_->layer()->SetVisible(true);
     contents_window->layer()->Add(shadow_->layer());
   }
diff --git a/chrome/browser/ui/ash/chrome_keyboard_ui.h b/chrome/browser/ui/ash/chrome_keyboard_ui.h
index 18f10f8..d43a56d0 100644
--- a/chrome/browser/ui/ash/chrome_keyboard_ui.h
+++ b/chrome/browser/ui/ash/chrome_keyboard_ui.h
@@ -51,11 +51,6 @@
   explicit ChromeKeyboardUI(content::BrowserContext* context);
   ~ChromeKeyboardUI() override;
 
-  // Requests the audio input from microphone for speech input.
-  void RequestAudioInput(content::WebContents* web_contents,
-                         const content::MediaStreamRequest& request,
-                         content::MediaResponseCallback callback);
-
   // Called when a window being observed changes bounds, to update its insets.
   void UpdateInsetsForWindow(aura::Window* window);
 
@@ -80,16 +75,15 @@
 
   const aura::Window* GetKeyboardRootWindow() const;
 
-  virtual std::unique_ptr<content::WebContents> CreateWebContents();
-
  private:
-  friend class TestApi;
+  std::unique_ptr<content::WebContents> CreateWebContents();
 
   // Loads the web contents for the given |url|.
   void LoadContents(const GURL& url);
 
-  // Gets the virtual keyboard URL (either the default URL or IME override URL).
-  const GURL& GetVirtualKeyboardUrl();
+  // Gets the virtual keyboard URL, either the default keyboard URL or the IME
+  // override URL.
+  GURL GetVirtualKeyboardUrl();
 
   // Determines whether a particular window should have insets for overscroll.
   bool ShouldEnableInsets(aura::Window* window);
@@ -127,8 +121,6 @@
   // keyboard.
   content::BrowserContext* const browser_context_;
 
-  const GURL default_url_;
-
   std::unique_ptr<content::WebContents> keyboard_contents_;
   std::unique_ptr<ui::Shadow> shadow_;
 
diff --git a/chrome/browser/ui/ash/chrome_keyboard_ui_unittest.cc b/chrome/browser/ui/ash/chrome_keyboard_ui_unittest.cc
index e07ee9743..7a235ed 100644
--- a/chrome/browser/ui/ash/chrome_keyboard_ui_unittest.cc
+++ b/chrome/browser/ui/ash/chrome_keyboard_ui_unittest.cc
@@ -4,37 +4,41 @@
 
 #include "chrome/browser/ui/ash/chrome_keyboard_ui.h"
 
-#include "base/macros.h"
+#include <memory>
+
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
-#include "content/public/browser/web_contents.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/aura/window.h"
-#include "ui/gfx/geometry/rect.h"
+#include "chrome/test/base/test_chrome_web_ui_controller_factory.h"
+#include "chrome/test/base/testing_profile.h"
+#include "content/public/browser/web_ui.h"
+#include "content/public/browser/web_ui_controller.h"
+#include "url/gurl.h"
 
 namespace {
 
-class TestChromeKeyboardUI : public ChromeKeyboardUI {
+class ChromeKeyboardUITest : public ChromeRenderViewHostTestHarness {
  public:
-  explicit TestChromeKeyboardUI(std::unique_ptr<content::WebContents> contents)
-      : ChromeKeyboardUI(contents->GetBrowserContext()),
-        contents_(std::move(contents)) {}
-  ~TestChromeKeyboardUI() override {}
+  ChromeKeyboardUITest() = default;
+  ~ChromeKeyboardUITest() override = default;
 
-  ui::InputMethod* GetInputMethod() override { return nullptr; }
-  void RequestAudioInput(content::WebContents* web_contents,
-                         const content::MediaStreamRequest& request,
-                         content::MediaResponseCallback callback) {}
-
-  std::unique_ptr<content::WebContents> CreateWebContents() override {
-    return std::move(contents_);
+  void SetUp() override {
+    ChromeRenderViewHostTestHarness::SetUp();
+    chrome_keyboard_ui_ = std::make_unique<ChromeKeyboardUI>(profile());
   }
 
- private:
-  std::unique_ptr<content::WebContents> contents_;
+  void TearDown() override {
+    chrome_keyboard_ui_.reset();
+    ChromeRenderViewHostTestHarness::TearDown();
+  }
 
-  DISALLOW_COPY_AND_ASSIGN(TestChromeKeyboardUI);
+ protected:
+  std::unique_ptr<ChromeKeyboardUI> chrome_keyboard_ui_;
 };
 
 }  // namespace
 
-using ChromeKeyboardUITest = ChromeRenderViewHostTestHarness;
+// Ensure ChromeKeyboardContentsDelegate is successfully constructed and has
+// a valid aura::Window when GetKeyboardWindow() is called.
+TEST_F(ChromeKeyboardUITest, ChromeKeyboardContentsDelegate) {
+  aura::Window* window = chrome_keyboard_ui_->GetKeyboardWindow();
+  ASSERT_TRUE(window);
+}
diff --git a/chrome/browser/ui/libgtkui/BUILD.gn b/chrome/browser/ui/libgtkui/BUILD.gn
index 8af376e..de40baf 100644
--- a/chrome/browser/ui/libgtkui/BUILD.gn
+++ b/chrome/browser/ui/libgtkui/BUILD.gn
@@ -86,6 +86,7 @@
 
     deps = invoker.deps + [
              "//chrome/browser/ui/views",
+             "//chrome/common:constants",
              "//base",
              "//base:i18n",
              "//base/third_party/dynamic_annotations",
@@ -96,6 +97,7 @@
              "//chrome:strings",
              "//chrome/app:command_ids",
              "//chrome/app/theme:theme_resources",
+             "//components/prefs",
              "//components/resources",
              "//content/public/browser",
              "//printing",
diff --git a/chrome/browser/ui/libgtkui/gtk_ui.cc b/chrome/browser/ui/libgtkui/gtk_ui.cc
index f6eec62..46a8f75 100644
--- a/chrome/browser/ui/libgtkui/gtk_ui.cc
+++ b/chrome/browser/ui/libgtkui/gtk_ui.cc
@@ -41,6 +41,8 @@
 #include "chrome/browser/ui/libgtkui/skia_utils_gtk.h"
 #include "chrome/browser/ui/libgtkui/unity_service.h"
 #include "chrome/browser/ui/libgtkui/x11_input_method_context_impl_gtk.h"
+#include "chrome/common/pref_names.h"
+#include "components/prefs/pref_service.h"
 #include "printing/buildflags/buildflags.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "third_party/skia/include/core/SkCanvas.h"
@@ -362,6 +364,12 @@
 }
 
 #if GTK_MAJOR_VERSION > 2
+using GdkSetAllowedBackendsFn = void (*)(const gchar*);
+// Place this function pointer in read-only memory after being resolved to
+// prevent it being tampered with. See https://crbug.com/771365 for details.
+PROTECTED_MEMORY_SECTION base::ProtectedMemory<GdkSetAllowedBackendsFn>
+    g_gdk_set_allowed_backends;
+
 // COLOR_TOOLBAR_TOP_SEPARATOR represents the border between tabs and the
 // frame, as well as the border between tabs and the toolbar.  For this
 // reason, it is difficult to calculate the One True Color that works well on
@@ -414,14 +422,6 @@
 }
 #endif
 
-#if GTK_MAJOR_VERSION > 2
-using GdkSetAllowedBackendsFn = void (*)(const gchar*);
-// Place this function pointers in read-only memory after being resolved to
-// prevent it being tampered with. See crbug.com/771365 for details.
-PROTECTED_MEMORY_SECTION base::ProtectedMemory<GdkSetAllowedBackendsFn>
-    g_gdk_set_allowed_backends;
-#endif
-
 }  // namespace
 
 GtkUi::GtkUi() {
@@ -526,11 +526,16 @@
   return false;
 }
 
-bool GtkUi::GetColor(int id, SkColor* color) const {
-  ColorMap::const_iterator it = colors_.find(id);
-  if (it != colors_.end()) {
-    *color = it->second;
-    return true;
+bool GtkUi::GetColor(int id, SkColor* color, PrefService* pref_service) const {
+  for (const ColorMap& color_map :
+       {colors_, pref_service->GetBoolean(prefs::kUseCustomChromeFrame)
+                     ? custom_frame_colors_
+                     : native_frame_colors_}) {
+    ColorMap::const_iterator it = color_map.find(id);
+    if (it != color_map.end()) {
+      *color = it->second;
+      return true;
+    }
   }
 
   return false;
@@ -994,18 +999,6 @@
   colors_[ThemeProperties::COLOR_NTP_HEADER] =
       colors_[ThemeProperties::COLOR_FRAME];
 #else
-  std::string header_selector = GtkVersionCheck(3, 10)
-                                    ? "#headerbar.header-bar.titlebar"
-                                    : "GtkMenuBar#menubar";
-  SkColor frame_color = GetBgColor(header_selector);
-  SkColor frame_color_inactive = GetBgColor(header_selector + ":backdrop");
-  colors_[ThemeProperties::COLOR_FRAME] = frame_color;
-  colors_[ThemeProperties::COLOR_FRAME_INACTIVE] = frame_color_inactive;
-  colors_[ThemeProperties::COLOR_FRAME_INCOGNITO] =
-      color_utils::HSLShift(frame_color, kDefaultTintFrameIncognito);
-  colors_[ThemeProperties::COLOR_FRAME_INCOGNITO_INACTIVE] =
-      color_utils::HSLShift(frame_color_inactive, kDefaultTintFrameIncognito);
-
   SkColor tab_color = GetBgColor("");
   SkColor tab_text_color = GetFgColor("GtkLabel");
 
@@ -1013,10 +1006,6 @@
 
   colors_[ThemeProperties::COLOR_TAB_TEXT] = tab_text_color;
   colors_[ThemeProperties::COLOR_BOOKMARK_TEXT] = tab_text_color;
-  colors_[ThemeProperties::COLOR_BACKGROUND_TAB_TEXT] =
-      ui::MaterialDesignController::IsRefreshUi()
-          ? GetFgColor(header_selector + " GtkLabel")
-          : color_utils::BlendTowardOppositeLuma(tab_text_color, 50);
 
   SkColor location_bar_border = GetBorderColor("GtkEntry#entry");
   if (SkColorGetA(location_bar_border))
@@ -1042,30 +1031,6 @@
   // Separates the detached bookmark bar from the NTP.
   colors_[ThemeProperties::COLOR_DETACHED_BOOKMARK_BAR_SEPARATOR] = tab_border;
 
-  // These colors represent the border drawn around tabs and between
-  // the tabstrip and toolbar.
-  SkColor toolbar_top_separator =
-      GetBorderColor(header_selector + " GtkButton#button");
-  SkColor toolbar_top_separator_inactive =
-      GetBorderColor(header_selector + ":backdrop GtkButton#button");
-  if (!ui::MaterialDesignController::IsRefreshUi()) {
-    toolbar_top_separator = GetToolbarTopSeparatorColor(
-        toolbar_top_separator, frame_color, tab_border, tab_color);
-    toolbar_top_separator_inactive = GetToolbarTopSeparatorColor(
-        toolbar_top_separator_inactive, frame_color_inactive, tab_border,
-        tab_color);
-  }
-
-  // Unlike with toolbars, we always want a border around tabs, so let
-  // ThemeService choose the border color if the theme doesn't provide one.
-  if (SkColorGetA(toolbar_top_separator) &&
-      SkColorGetA(toolbar_top_separator_inactive)) {
-    colors_[ThemeProperties::COLOR_TOOLBAR_TOP_SEPARATOR] =
-        toolbar_top_separator;
-    colors_[ThemeProperties::COLOR_TOOLBAR_TOP_SEPARATOR_INACTIVE] =
-        toolbar_top_separator_inactive;
-  }
-
   colors_[ThemeProperties::COLOR_NTP_BACKGROUND] =
       native_theme_->GetSystemColor(
           ui::NativeTheme::kColorId_TextfieldDefaultBackground);
@@ -1073,6 +1038,52 @@
       ui::NativeTheme::kColorId_TextfieldDefaultColor);
   colors_[ThemeProperties::COLOR_NTP_HEADER] =
       GetBorderColor("GtkButton#button");
+
+  for (bool custom_frame : {false, true}) {
+    ColorMap& color_map =
+        custom_frame ? custom_frame_colors_ : native_frame_colors_;
+    const std::string header_selector = custom_frame && GtkVersionCheck(3, 10)
+                                            ? "#headerbar.header-bar.titlebar"
+                                            : "GtkMenuBar#menubar";
+    const SkColor frame_color = GetBgColor(header_selector);
+    const SkColor frame_color_inactive =
+        GetBgColor(header_selector + ":backdrop");
+
+    color_map[ThemeProperties::COLOR_FRAME] = frame_color;
+    color_map[ThemeProperties::COLOR_FRAME_INACTIVE] = frame_color_inactive;
+    color_map[ThemeProperties::COLOR_FRAME_INCOGNITO] =
+        color_utils::HSLShift(frame_color, kDefaultTintFrameIncognito);
+    color_map[ThemeProperties::COLOR_FRAME_INCOGNITO_INACTIVE] =
+        color_utils::HSLShift(frame_color_inactive, kDefaultTintFrameIncognito);
+    color_map[ThemeProperties::COLOR_BACKGROUND_TAB_TEXT] =
+        ui::MaterialDesignController::IsRefreshUi()
+            ? GetFgColor(header_selector + " GtkLabel")
+            : color_utils::BlendTowardOppositeLuma(tab_text_color, 50);
+
+    // These colors represent the border drawn around tabs and between
+    // the tabstrip and toolbar.
+    SkColor toolbar_top_separator =
+        GetBorderColor(header_selector + " GtkButton#button");
+    SkColor toolbar_top_separator_inactive =
+        GetBorderColor(header_selector + ":backdrop GtkButton#button");
+    if (!ui::MaterialDesignController::IsRefreshUi()) {
+      toolbar_top_separator = GetToolbarTopSeparatorColor(
+          toolbar_top_separator, frame_color, tab_border, tab_color);
+      toolbar_top_separator_inactive = GetToolbarTopSeparatorColor(
+          toolbar_top_separator_inactive, frame_color_inactive, tab_border,
+          tab_color);
+    }
+
+    // Unlike with toolbars, we always want a border around tabs, so let
+    // ThemeService choose the border color if the theme doesn't provide one.
+    if (SkColorGetA(toolbar_top_separator) &&
+        SkColorGetA(toolbar_top_separator_inactive)) {
+      color_map[ThemeProperties::COLOR_TOOLBAR_TOP_SEPARATOR] =
+          toolbar_top_separator;
+      color_map[ThemeProperties::COLOR_TOOLBAR_TOP_SEPARATOR_INACTIVE] =
+          toolbar_top_separator_inactive;
+    }
+  }
 #endif
 
   colors_[ThemeProperties::COLOR_TOOLBAR] = tab_color;
diff --git a/chrome/browser/ui/libgtkui/gtk_ui.h b/chrome/browser/ui/libgtkui/gtk_ui.h
index 4396ec8..0a88aade 100644
--- a/chrome/browser/ui/libgtkui/gtk_ui.h
+++ b/chrome/browser/ui/libgtkui/gtk_ui.h
@@ -24,12 +24,13 @@
 typedef struct _GtkWidget GtkWidget;
 
 namespace libgtkui {
+using ColorMap = std::map<int, SkColor>;
+
 class Gtk2KeyBindingsHandler;
 class DeviceScaleFactorObserver;
 class SettingsProvider;
 
-// Interface to GTK2 desktop features.
-//
+// Interface to GTK desktop features.
 class GtkUi : public views::LinuxUI {
  public:
   GtkUi();
@@ -71,7 +72,9 @@
   // views::LinuxUI:
   void Initialize() override;
   bool GetTint(int id, color_utils::HSL* tint) const override;
-  bool GetColor(int id, SkColor* color) const override;
+  bool GetColor(int id,
+                SkColor* color,
+                PrefService* pref_service) const override;
   SkColor GetFocusRingColor() const override;
   SkColor GetThumbActiveColor() const override;
   SkColor GetThumbInactiveColor() const override;
@@ -119,8 +122,7 @@
                   std::vector<ui::TextEditCommandAuraLinux>* commands) override;
 
  private:
-  typedef std::map<int, SkColor> ColorMap;
-  typedef std::map<int, color_utils::HSL> TintMap;
+  using TintMap = std::map<int, color_utils::HSL>;
 
   CHROMEG_CALLBACK_1(GtkUi,
                      void,
@@ -159,6 +161,14 @@
   // caller while |use_gtk_| is true.
   ColorMap colors_;
 
+  // Frame colors (and colors that depend on frame colors) when using
+  // Chrome-rendered borders and titlebar.
+  ColorMap custom_frame_colors_;
+
+  // Frame colors (and colors that depend on frame colors) when using
+  // system-rendered borders and titlebar.
+  ColorMap native_frame_colors_;
+
   // Colors that we pass to WebKit. These are generated each time the theme
   // changes.
   SkColor focus_ring_color_;
diff --git a/chrome/browser/ui/libgtkui/native_theme_gtk2.cc b/chrome/browser/ui/libgtkui/native_theme_gtk2.cc
index b24ff4b9..8def6e88 100644
--- a/chrome/browser/ui/libgtkui/native_theme_gtk2.cc
+++ b/chrome/browser/ui/libgtkui/native_theme_gtk2.cc
@@ -161,6 +161,9 @@
       return GetTextColor(GetMenuItem(), INSENSITIVE);
     case kColorId_MenuBackgroundColor:
       return GetBgColor(GetMenu(), NORMAL);
+    case kColorId_TouchableMenuItemLabelColor:
+    case kColorId_ActionableSubmenuVerticalSeparatorColor:
+      return kInvalidColorIdColor;
 
     // Label
     case kColorId_LabelEnabledColor:
diff --git a/chrome/browser/ui/media_router/media_router_file_dialog.cc b/chrome/browser/ui/media_router/media_router_file_dialog.cc
index 3a3f11a..1bdad04 100644
--- a/chrome/browser/ui/media_router/media_router_file_dialog.cc
+++ b/chrome/browser/ui/media_router/media_router_file_dialog.cc
@@ -130,9 +130,8 @@
 MediaRouterFileDialog::MediaRouterFileDialog(
     MediaRouterFileDialogDelegate* delegate,
     std::unique_ptr<FileSystemDelegate> file_system_delegate)
-    : task_runner_(
-          base::TaskScheduler::GetInstance()->CreateTaskRunnerWithTraits(
-              {base::MayBlock(), base::TaskPriority::USER_VISIBLE})),
+    : task_runner_(base::CreateTaskRunnerWithTraits(
+          {base::MayBlock(), base::TaskPriority::USER_VISIBLE})),
       file_system_delegate_(std::move(file_system_delegate)),
       delegate_(delegate) {}
 
diff --git a/chrome/browser/ui/toolbar/media_router_action_controller.h b/chrome/browser/ui/toolbar/media_router_action_controller.h
index ce78e63..07c263d1 100644
--- a/chrome/browser/ui/toolbar/media_router_action_controller.h
+++ b/chrome/browser/ui/toolbar/media_router_action_controller.h
@@ -133,7 +133,7 @@
 
   PrefChangeRegistrar pref_change_registrar_;
 
-  base::ObserverList<Observer> observers_;
+  base::ObserverList<Observer>::Unchecked observers_;
 
   base::WeakPtrFactory<MediaRouterActionController> weak_factory_;
 
diff --git a/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc b/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc
index db09d7f..a1cdfef0 100644
--- a/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc
+++ b/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc
@@ -13,6 +13,7 @@
 #include "chrome/browser/ui/views/chrome_layout_provider.h"
 #include "chrome/browser/ui/views/chrome_typography.h"
 #include "chrome/browser/ui/views/chrome_typography_provider.h"
+#include "components/autofill/core/browser/autofill_experiments.h"
 #include "components/autofill/core/browser/popup_item_ids.h"
 #include "components/autofill/core/browser/suggestion.h"
 #include "third_party/skia/include/core/SkColor.h"
@@ -74,16 +75,25 @@
   kTrailingIcon  // Icon (if any) shown on the trailing (right in LTR) side.
 };
 
-// Returns the icon alignment for the drop down of type |frontend_id|. See
-// PopupItemId for allowed values.
+// By default, this returns kLeadingIcon for passwords and kTrailingIcon for all
+// other contexts. When a study parameter is present for
+// kAutofillDropdownLayoutExperiment, this will return the layout type which
+// corresponds to that parameter.
 PopupItemLayoutType GetLayoutType(int frontend_id) {
-  switch (frontend_id) {
-    case autofill::PopupItemId::POPUP_ITEM_ID_USERNAME_ENTRY:
-    case autofill::PopupItemId::POPUP_ITEM_ID_PASSWORD_ENTRY:
-    case autofill::PopupItemId::POPUP_ITEM_ID_GENERATE_PASSWORD_ENTRY:
+  switch (GetForcedPopupLayoutState()) {
+    case ForcedPopupLayoutState::kLeadingIcon:
       return PopupItemLayoutType::kLeadingIcon;
-    default:
+    case ForcedPopupLayoutState::kTrailingIcon:
       return PopupItemLayoutType::kTrailingIcon;
+    case ForcedPopupLayoutState::kDefault:
+      switch (frontend_id) {
+        case autofill::PopupItemId::POPUP_ITEM_ID_USERNAME_ENTRY:
+        case autofill::PopupItemId::POPUP_ITEM_ID_PASSWORD_ENTRY:
+        case autofill::PopupItemId::POPUP_ITEM_ID_GENERATE_PASSWORD_ENTRY:
+          return PopupItemLayoutType::kLeadingIcon;
+        default:
+          return PopupItemLayoutType::kTrailingIcon;
+      }
   }
 }
 
@@ -134,6 +144,17 @@
                         int line_number,
                         int extra_height = 0)
       : AutofillPopupRowView(popup_view, line_number),
+        layout_type_(GetLayoutType(popup_view_->controller()
+                                       ->GetSuggestionAt(line_number_)
+                                       .frontend_id)),
+        extra_height_(extra_height) {}
+
+  AutofillPopupItemView(AutofillPopupViewNativeViews* popup_view,
+                        int line_number,
+                        PopupItemLayoutType override_layout_type,
+                        int extra_height = 0)
+      : AutofillPopupRowView(popup_view, line_number),
+        layout_type_(override_layout_type),
         extra_height_(extra_height) {}
 
   // AutofillPopupRowView:
@@ -154,6 +175,7 @@
                          bool resize,
                          views::BoxLayout* layout);
 
+  const PopupItemLayoutType layout_type_;
   const int extra_height_;
 
   DISALLOW_COPY_AND_ASSIGN(AutofillPopupItemView);
@@ -343,38 +365,35 @@
 
 void AutofillPopupItemView::CreateContent() {
   AutofillPopupController* controller = popup_view_->controller();
-  auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
+  auto* layout_manager = SetLayoutManager(std::make_unique<views::BoxLayout>(
       views::BoxLayout::kHorizontal, gfx::Insets(0, GetHorizontalMargin())));
 
-  layout->set_cross_axis_alignment(
+  layout_manager->set_cross_axis_alignment(
       views::BoxLayout::CrossAxisAlignment::CROSS_AXIS_ALIGNMENT_STRETCH);
-  layout->set_minimum_cross_axis_size(
+  layout_manager->set_minimum_cross_axis_size(
       views::MenuConfig::instance().touchable_menu_height + extra_height_);
 
   const gfx::ImageSkia icon =
       controller->layout_model().GetIconImage(line_number_);
-  int frontend_id = controller->GetSuggestionAt(line_number_).frontend_id;
 
-  if (!icon.isNull() &&
-      GetLayoutType(frontend_id) == PopupItemLayoutType::kLeadingIcon) {
+  if (!icon.isNull() && layout_type_ == PopupItemLayoutType::kLeadingIcon) {
     AddIcon(icon);
     AddSpacerWithSize(views::MenuConfig::instance().item_horizontal_padding,
-                      /*resize=*/false, layout);
+                      /*resize=*/false, layout_manager);
   }
 
   AddChildView(CreateValueLabel());
 
   AddSpacerWithSize(views::MenuConfig::instance().item_horizontal_padding,
-                    /*resize=*/true, layout);
+                    /*resize=*/true, layout_manager);
 
   views::View* description_label = CreateDescriptionLabel();
   if (description_label)
     AddChildView(description_label);
 
-  if (!icon.isNull() &&
-      GetLayoutType(frontend_id) == PopupItemLayoutType::kTrailingIcon) {
+  if (!icon.isNull() && layout_type_ == PopupItemLayoutType::kTrailingIcon) {
     AddSpacerWithSize(views::MenuConfig::instance().item_horizontal_padding,
-                      /*resize=*/false, layout);
+                      /*resize=*/false, layout_manager);
     AddIcon(icon);
   }
 }
@@ -529,6 +548,7 @@
     int line_number)
     : AutofillPopupItemView(popup_view,
                             line_number,
+                            PopupItemLayoutType::kTrailingIcon,
                             AutofillPopupBaseView::GetCornerRadius()) {
   SetFocusBehavior(FocusBehavior::ALWAYS);
 }
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
index 8f368c6..5645a1c 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
@@ -514,10 +514,9 @@
   OmniboxView* view = nullptr;
   ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &view));
   ui_test_utils::NavigateToURL(browser(),
-                               GURL("https://www.google.com/#%E2%98%83"));
+                               GURL("http://example.com/#%E2%98%83"));
 
-  EXPECT_EQ(view->GetText(),
-            base::UTF8ToUTF16("https://www.google.com/#\u2603"));
+  EXPECT_EQ(view->GetText(), base::UTF8ToUTF16("example.com/#\u2603"));
 }
 
 // Ensure that when the user navigates between suggestions, that the accessible
@@ -537,6 +536,9 @@
   match.description = base::ASCIIToUTF16("Google");
   match.allowed_to_be_default_match = true;
 
+  // Enter user input mode to prevent spurious unelision.
+  omnibox_view->model()->SetInputInProgress(true);
+
   // Populate suggestions for the omnibox popup.
   AutocompleteController* autocomplete_controller =
       omnibox_view->model()->popup_model()->autocomplete_controller();
@@ -561,6 +563,8 @@
   omnibox_view_views->OnTemporaryTextMaybeChanged(match_url, match, false,
                                                   false);
   omnibox_view->SelectAll(true);
+  EXPECT_EQ(base::ASCIIToUTF16("https://google.com"),
+            omnibox_view_views->GetText());
 
   // Test friendly label.
   const int kFriendlyPrefixLength = match.description.size() + 1;
@@ -589,6 +593,9 @@
   set_selection_action_data.anchor_offset = kFriendlyPrefixLength + 3;
   omnibox_view_views->HandleAccessibleAction(set_selection_action_data);
 
+  EXPECT_EQ(base::ASCIIToUTF16("https://google.com"),
+            omnibox_view_views->GetText());
+
   // Type "x" to replace the selected "tt" with that character.
   ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_X, false,
                                               false, false, false));
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
index ddccc75b..79e1848e 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
@@ -178,9 +178,24 @@
 
 // OmniboxViewViewsTest -------------------------------------------------------
 
-class OmniboxViewViewsTest : public ChromeViewsTestBase {
+// Base class that ensures ScopedFeatureList is initialized first.
+class OmniboxViewViewsTestBase : public ChromeViewsTestBase {
  public:
-  OmniboxViewViewsTest();
+  explicit OmniboxViewViewsTestBase(
+      const std::vector<base::Feature>& enabled_features) {
+    scoped_feature_list_.InitWithFeatures(enabled_features, {});
+  }
+
+ protected:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+class OmniboxViewViewsTest : public OmniboxViewViewsTestBase {
+ public:
+  explicit OmniboxViewViewsTest(
+      const std::vector<base::Feature>& enabled_features);
+
+  OmniboxViewViewsTest() : OmniboxViewViewsTest(std::vector<base::Feature>()) {}
 
   TestToolbarModel* toolbar_model() { return &toolbar_model_; }
   TestingOmniboxView* omnibox_view() const { return omnibox_view_; }
@@ -226,8 +241,10 @@
   DISALLOW_COPY_AND_ASSIGN(OmniboxViewViewsTest);
 };
 
-OmniboxViewViewsTest::OmniboxViewViewsTest()
-    : util_(&profile_),
+OmniboxViewViewsTest::OmniboxViewViewsTest(
+    const std::vector<base::Feature>& enabled_features)
+    : OmniboxViewViewsTestBase(enabled_features),
+      util_(&profile_),
       command_updater_(nullptr),
       omnibox_edit_controller_(&command_updater_, &toolbar_model_) {}
 
@@ -446,14 +463,16 @@
 }
 
 class OmniboxViewViewsSteadyStateElisionsTest : public OmniboxViewViewsTest {
+ public:
+  OmniboxViewViewsSteadyStateElisionsTest()
+      : OmniboxViewViewsTest(
+            {omnibox::kUIExperimentHideSteadyStateUrlSchemeAndSubdomains}) {}
+
  protected:
   const int kCharacterWidth = 10;
   const base::string16 kFullUrl = base::ASCIIToUTF16("https://www.example.com");
 
   void SetUp() override {
-    scoped_feature_list_.InitAndEnableFeature(
-        omnibox::kUIExperimentHideSteadyStateUrlSchemeAndSubdomains);
-
     OmniboxViewViewsTest::SetUp();
 
     // Advance 5 seconds from epoch so the time is not considered null.
@@ -524,7 +543,6 @@
 
  private:
   test::ScopedMacViewsBrowserMode views_mode_{true};
-  base::test::ScopedFeatureList scoped_feature_list_;
   base::SimpleTestTickClock clock_;
 };
 
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
index eb19c78..ef1f162 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -432,6 +432,10 @@
   if (event_source == EVENT_SOURCE_TOUCH)
     source_tabstrip_->GetWidget()->SetCapture(source_tabstrip_);
 
+#if defined(USE_AURA)
+  env_ = source_tabstrip_->GetWidget()->GetNativeWindow()->env();
+#endif
+
 #if defined(OS_CHROMEOS)
   if (TabletModeClient::Get()->tablet_mode_enabled() &&
       !base::FeatureList::IsEnabled(ash::features::kDragTabsInTabletMode)) {
@@ -2003,8 +2007,7 @@
   // recognizer in mash until the mus side/window manager side RunMoveLoop() is
   // fixed to understand routing touch events. crbug.com/769507
   if (features::IsAshInBrowserProcess() &&
-      event_source_ == EVENT_SOURCE_TOUCH &&
-      aura::Env::GetInstance()->is_touch_down()) {
+      event_source_ == EVENT_SOURCE_TOUCH && env_->is_touch_down()) {
     views::Widget* widget = GetAttachedBrowserWidget();
     DCHECK(widget);
     aura::Window* widget_window = widget->GetNativeWindow();
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.h b/chrome/browser/ui/views/tabs/tab_drag_controller.h
index a007fed..a028f08 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.h
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.h
@@ -20,6 +20,12 @@
 #include "ui/gfx/native_widget_types.h"
 #include "ui/views/widget/widget_observer.h"
 
+#if defined(USE_AURA)
+namespace aura {
+class Env;
+}
+#endif
+
 namespace ui {
 class EventHandler;
 class ListSelectionModel;
@@ -497,10 +503,11 @@
 
   EventSource event_source_;
 
-  // The TabStrip the drag originated from.
+  // The TabStrip the drag originated from. This is set to null if destroyed
+  // during the drag.
   TabStrip* source_tabstrip_;
 
-  // The TabStrip the dragged Tab is currently attached to, or NULL if the
+  // The TabStrip the dragged Tab is currently attached to, or null if the
   // dragged Tab is detached.
   TabStrip* attached_tabstrip_;
 
@@ -647,6 +654,10 @@
 
   std::unique_ptr<WindowFinder> window_finder_;
 
+#if defined(USE_AURA)
+  aura::Env* env_ = nullptr;
+#endif
+
   base::WeakPtrFactory<TabDragController> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(TabDragController);
diff --git a/chrome/browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc b/chrome/browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc
index f31c4e7..b8c74f5 100644
--- a/chrome/browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc
@@ -34,6 +34,7 @@
 
  private:
   // AuthenticatorRequestSheetModel:
+  bool IsActivityIndicatorVisible() const override { return true; }
   bool IsBackButtonVisible() const override { return true; }
   bool IsCancelButtonVisible() const override { return true; }
   base::string16 GetCancelButtonLabel() const override {
@@ -100,9 +101,8 @@
         browser()->tab_strip_model()->GetActiveWebContents();
 
     auto dialog_model = std::make_unique<AuthenticatorRequestDialogModel>();
-    dialog_model->StartFlow(
-        ::device::FidoRequestHandlerBase::TransportAvailabilityInfo(),
-        base::nullopt);
+    dialog_model->SetCurrentStep(
+        AuthenticatorRequestDialogModel::Step::kErrorTimedOut);
     auto dialog = std::make_unique<AuthenticatorRequestDialogView>(
         web_contents, std::move(dialog_model));
 
diff --git a/chrome/browser/ui/views/webauthn/authenticator_request_sheet_view.cc b/chrome/browser/ui/views/webauthn/authenticator_request_sheet_view.cc
index a1534c1..3271777 100644
--- a/chrome/browser/ui/views/webauthn/authenticator_request_sheet_view.cc
+++ b/chrome/browser/ui/views/webauthn/authenticator_request_sheet_view.cc
@@ -17,9 +17,23 @@
 #include "ui/views/controls/button/image_button_factory.h"
 #include "ui/views/controls/image_view.h"
 #include "ui/views/controls/label.h"
+#include "ui/views/controls/progress_bar.h"
 #include "ui/views/layout/box_layout.h"
 #include "ui/views/layout/fill_layout.h"
 
+namespace {
+
+// Fixed height of the illustration shown in the top half of the sheet.
+constexpr int kIllustrationHeight = 148;
+
+// Foreground/background color, and the height of the progress bar style
+// activity indicator shown at the top of some sheets.
+constexpr SkColor kActivityIndicateFgColor = SkColorSetRGB(0xf2, 0x99, 0x00);
+constexpr SkColor kActivityIndicateBkColor = SkColorSetRGB(0xf6, 0xe6, 0xc8);
+constexpr int kActivityIndicatorHeight = 4;
+
+}  // namespace
+
 using views::BoxLayout;
 
 AuthenticatorRequestSheetView::AuthenticatorRequestSheetView(
@@ -54,42 +68,55 @@
 
 std::unique_ptr<views::View>
 AuthenticatorRequestSheetView::CreateIllustrationWithOverlays() {
+  const int illustration_width = ChromeLayoutProvider::Get()->GetDistanceMetric(
+      DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH);
+  const gfx::Size illustration_size(illustration_width, kIllustrationHeight);
+
+  // The container view has no layout, so its preferred size is hardcoded to
+  // match the size of the image, and all overlays are absolutely positioned.
   auto image_with_overlays = std::make_unique<views::View>();
-  image_with_overlays->SetLayoutManager(std::make_unique<views::FillLayout>());
+  image_with_overlays->SetPreferredSize(illustration_size);
 
   auto image_view = std::make_unique<views::ImageView>();
   image_view->SetImage(model()->GetStepIllustration());
+  image_view->SetPreferredSize(illustration_size);
+  image_view->SizeToPreferredSize();
   image_with_overlays->AddChildView(image_view.release());
 
+  if (model()->IsActivityIndicatorVisible()) {
+    auto activity_indicator = std::make_unique<views::ProgressBar>(
+        kActivityIndicatorHeight, false /* allow_round_corner */);
+    activity_indicator->SetValue(-1 /* inifinite animation */);
+    activity_indicator->set_foreground_color(kActivityIndicateFgColor);
+    activity_indicator->set_background_color(kActivityIndicateBkColor);
+    activity_indicator->SetPreferredSize(
+        gfx::Size(illustration_width, kActivityIndicatorHeight));
+    activity_indicator->SizeToPreferredSize();
+    image_with_overlays->AddChildView(activity_indicator.release());
+  }
+
   if (model()->IsBackButtonVisible()) {
     std::unique_ptr<views::ImageButton> back_arrow(
         views::CreateVectorImageButton(this));
     back_arrow->SetFocusForPlatform();
     back_arrow->SetAccessibleName(l10n_util::GetStringUTF16(IDS_BACK_BUTTON));
 
+    // Position the back button so that there is the standard amount of padding
+    // between the top/left side of the back button and the dialog borders.
+    const gfx::Insets dialog_insets =
+        views::LayoutProvider::Get()->GetDialogInsetsForContentType(
+            views::CONTROL, views::CONTROL);
     auto color_reference = std::make_unique<views::Label>(
         base::string16(), views::style::CONTEXT_DIALOG_TITLE,
         views::style::STYLE_PRIMARY);
     views::SetImageFromVectorIcon(
         back_arrow.get(), vector_icons::kBackArrowIcon,
         color_utils::DeriveDefaultIconColor(color_reference->enabled_color()));
+    back_arrow->SizeToPreferredSize();
+    back_arrow->SetX(dialog_insets.left());
+    back_arrow->SetY(dialog_insets.top());
     back_arrow_button_ = back_arrow.get();
-
-    // The |overlaly_container| will be stretched to fill |image_with_overlays|
-    // while allowing |back_arrow| to be absolutely positioned inside it, and
-    // rendered on top of the image due to being higher in the z-order.
-    auto overlay_container = std::make_unique<views::View>();
-    overlay_container->AddChildView(back_arrow.release());
-    image_with_overlays->AddChildView(overlay_container.release());
-
-    // Position the back button so that there is the standard amount of padding
-    // between the top/left side of the back button and the dialog borders.
-    gfx::Insets dialog_insets =
-        views::LayoutProvider::Get()->GetDialogInsetsForContentType(
-            views::CONTROL, views::CONTROL);
-    back_arrow_button_->SizeToPreferredSize();
-    back_arrow_button_->SetX(dialog_insets.left());
-    back_arrow_button_->SetY(dialog_insets.top());
+    image_with_overlays->AddChildView(back_arrow.release());
   }
 
   return image_with_overlays;
diff --git a/chrome/browser/ui/views/webauthn/authenticator_request_sheet_view.h b/chrome/browser/ui/views/webauthn/authenticator_request_sheet_view.h
index dd730dd1..70874bac 100644
--- a/chrome/browser/ui/views/webauthn/authenticator_request_sheet_view.h
+++ b/chrome/browser/ui/views/webauthn/authenticator_request_sheet_view.h
@@ -17,6 +17,7 @@
 // Defines the basic structure of sheets shown in the authenticator request
 // dialog. Each sheet corresponds to a given step of the authentication flow,
 // and encapsulates the controls above the Ok/Cancel buttons, namely:
+//  -- an optional progress-bar-style activity indicator (at the top),
 //  -- an optional `back icon`,
 //  -- a pretty illustration in the top half of the dialog,
 //  -- the title of the current step,
@@ -25,7 +26,7 @@
 //     the rest of the space.
 //
 // +-------------------------------------------------+
-// |. . . . . . . . . . . . . . . . . . . . . . . . .|
+// |*************************************************|
 // |. (<-). . . . . . . . . . . . . . . . . . . . . .|
 // |. . . . I L L U S T R A T I O N   H E R E . . . .|
 // |. . . . . . . . . . . . . . . . . . . . . . . . .|
@@ -70,7 +71,8 @@
 
  private:
   // Creates the upper half of the sheet, consisting of a pretty illustration
-  // overlayed with absolutely positioned controls rendered on top.
+  // overlayed with absolutely positioned controls (the activity indicator and
+  // the back button) rendered on top.
   std::unique_ptr<views::View> CreateIllustrationWithOverlays();
 
   // Creates the lower half of the sheet, consisting of the title, description,
diff --git a/chrome/browser/ui/views/webauthn/sheet_view_factory.cc b/chrome/browser/ui/views/webauthn/sheet_view_factory.cc
index 0296841..8056592 100644
--- a/chrome/browser/ui/views/webauthn/sheet_view_factory.cc
+++ b/chrome/browser/ui/views/webauthn/sheet_view_factory.cc
@@ -52,6 +52,11 @@
       sheet_view = std::make_unique<AuthenticatorRequestSheetView>(
           std::make_unique<AuthenticatorTimeoutErrorModel>(dialog_model));
       break;
+    case Step::kErrorNoAvailableTransports:
+      sheet_view = std::make_unique<AuthenticatorRequestSheetView>(
+          std::make_unique<AuthenticatorNoAvailableTransportsErrorModel>(
+              dialog_model));
+      break;
     case Step::kBlePowerOnManual:
       sheet_view = std::make_unique<AuthenticatorRequestSheetView>(
           std::make_unique<AuthenticatorBlePowerOnManualSheetModel>(
diff --git a/chrome/browser/ui/webauthn/authenticator_dialog_browsertest.cc b/chrome/browser/ui/webauthn/authenticator_dialog_browsertest.cc
index 14ced8e..2c8fa952 100644
--- a/chrome/browser/ui/webauthn/authenticator_dialog_browsertest.cc
+++ b/chrome/browser/ui/webauthn/authenticator_dialog_browsertest.cc
@@ -19,9 +19,10 @@
   // DialogBrowserTest:
   void ShowUi(const std::string& name) override {
     auto model = std::make_unique<AuthenticatorRequestDialogModel>();
-    model->StartFlow(
-        ::device::FidoRequestHandlerBase::TransportAvailabilityInfo(),
-        base::nullopt);
+    ::device::FidoRequestHandlerBase::TransportAvailabilityInfo
+        transport_availability;
+    transport_availability.rp_id = "example.com";
+    model->StartFlow(std::move(transport_availability), base::nullopt);
 
     // The dialog should immediately close as soon as it is displayed.
     if (name == "completed") {
@@ -40,6 +41,9 @@
     } else if (name == "activate_usb") {
       model->SetCurrentStep(
           AuthenticatorRequestDialogModel::Step::kUsbInsertAndActivate);
+    } else if (name == "no_available_transports") {
+      model->SetCurrentStep(
+          AuthenticatorRequestDialogModel::Step::kErrorNoAvailableTransports);
     } else if (name == "timeout") {
       model->SetCurrentStep(
           AuthenticatorRequestDialogModel::Step::kErrorTimedOut);
@@ -102,6 +106,11 @@
   ShowAndVerifyUi();
 }
 
+IN_PROC_BROWSER_TEST_F(AuthenticatorDialogTest,
+                       InvokeUi_no_available_transports) {
+  ShowAndVerifyUi();
+}
+
 IN_PROC_BROWSER_TEST_F(AuthenticatorDialogTest, InvokeUi_ble_power_on_manual) {
   ShowAndVerifyUi();
 }
diff --git a/chrome/browser/ui/webauthn/authenticator_request_sheet_model.h b/chrome/browser/ui/webauthn/authenticator_request_sheet_model.h
index 59f367f4..a63381f 100644
--- a/chrome/browser/ui/webauthn/authenticator_request_sheet_model.h
+++ b/chrome/browser/ui/webauthn/authenticator_request_sheet_model.h
@@ -36,6 +36,7 @@
  public:
   virtual ~AuthenticatorRequestSheetModel() {}
 
+  virtual bool IsActivityIndicatorVisible() const = 0;
   virtual bool IsBackButtonVisible() const = 0;
 
   virtual bool IsCancelButtonVisible() const = 0;
diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/webauthn/sheet_models.cc
index 231a5cd..aecd32e 100644
--- a/chrome/browser/ui/webauthn/sheet_models.cc
+++ b/chrome/browser/ui/webauthn/sheet_models.cc
@@ -36,6 +36,10 @@
   return ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id);
 }
 
+bool AuthenticatorSheetModelBase::IsActivityIndicatorVisible() const {
+  return false;
+}
+
 bool AuthenticatorSheetModelBase::IsBackButtonVisible() const {
   return true;
 }
@@ -76,6 +80,11 @@
     dialog_model()->Cancel();
 }
 
+base::string16 AuthenticatorSheetModelBase::GetRelyingPartyIdString() const {
+  DCHECK(!dialog_model()->transport_availability()->rp_id.empty());
+  return base::UTF8ToUTF16(dialog_model()->transport_availability()->rp_id);
+}
+
 void AuthenticatorSheetModelBase::OnModelDestroyed() {
   dialog_model_ = nullptr;
 }
@@ -87,11 +96,8 @@
 }
 
 base::string16 AuthenticatorWelcomeSheetModel::GetStepTitle() const {
-  // TODO(hongjunchoi): Insert actual domain name from model to
-  // |application_name|.
-  base::string16 application_name = base::UTF8ToUTF16("example.com");
   return l10n_util::GetStringFUTF16(IDS_WEBAUTHN_WELCOME_SCREEN_TITLE,
-                                    application_name);
+                                    GetRelyingPartyIdString());
 }
 
 base::string16 AuthenticatorWelcomeSheetModel::GetStepDescription() const {
@@ -123,11 +129,8 @@
 }
 
 base::string16 AuthenticatorTransportSelectorSheetModel::GetStepTitle() const {
-  // TODO(hongjunchoi): Insert actual domain name from model to
-  // |application_name|.
-  base::string16 application_name = base::UTF8ToUTF16("example.com");
   return l10n_util::GetStringFUTF16(IDS_WEBAUTHN_TRANSPORT_SELECTION_TITLE,
-                                    application_name);
+                                    GetRelyingPartyIdString());
 }
 
 base::string16 AuthenticatorTransportSelectorSheetModel::GetStepDescription()
@@ -143,6 +146,11 @@
 
 // AuthenticatorInsertAndActivateUsbSheetModel ----------------------
 
+bool AuthenticatorInsertAndActivateUsbSheetModel::IsActivityIndicatorVisible()
+    const {
+  return true;
+}
+
 gfx::ImageSkia*
 AuthenticatorInsertAndActivateUsbSheetModel::GetStepIllustration() const {
   return GetImage(IDR_WEBAUTHN_ILLUSTRATION_USB_1X);
@@ -150,11 +158,8 @@
 
 base::string16 AuthenticatorInsertAndActivateUsbSheetModel::GetStepTitle()
     const {
-  // TODO(hongjunchoi): Insert actual domain name from model to
-  // |application_name|.
-  base::string16 application_name = base::UTF8ToUTF16("example.com");
   return l10n_util::GetStringFUTF16(IDS_WEBAUTHN_GENERIC_TITLE,
-                                    application_name);
+                                    GetRelyingPartyIdString());
 }
 
 base::string16 AuthenticatorInsertAndActivateUsbSheetModel::GetStepDescription()
@@ -176,6 +181,33 @@
   return l10n_util::GetStringUTF16(IDS_WEBAUTHN_ERROR_TIMEOUT_DESCRIPTION);
 }
 
+// AuthenticatorNoAvailableTransportsErrorModel -------------------------------
+
+bool AuthenticatorNoAvailableTransportsErrorModel::IsBackButtonVisible() const {
+  return false;
+}
+
+base::string16
+AuthenticatorNoAvailableTransportsErrorModel::GetCancelButtonLabel() const {
+  return l10n_util::GetStringUTF16(IDS_CLOSE);
+}
+
+gfx::ImageSkia*
+AuthenticatorNoAvailableTransportsErrorModel::GetStepIllustration() const {
+  return GetImage(IDR_WEBAUTHN_ILLUSTRATION_ERROR_TIMEOUT_1X);
+}
+
+base::string16 AuthenticatorNoAvailableTransportsErrorModel::GetStepTitle()
+    const {
+  return l10n_util::GetStringUTF16(IDS_WEBAUTHN_ERROR_NO_TRANSPORTS_TITLE);
+}
+
+base::string16
+AuthenticatorNoAvailableTransportsErrorModel::GetStepDescription() const {
+  return l10n_util::GetStringUTF16(
+      IDS_WEBAUTHN_ERROR_NO_TRANSPORTS_DESCRIPTION);
+}
+
 // AuthenticatorBlePowerOnManualSheetModel ------------------------------------
 
 gfx::ImageSkia* AuthenticatorBlePowerOnManualSheetModel::GetStepIllustration()
@@ -256,6 +288,11 @@
 
 // AuthenticatorBleDeviceSelectionSheetModel ----------------------------------
 
+bool AuthenticatorBleDeviceSelectionSheetModel::IsActivityIndicatorVisible()
+    const {
+  return true;
+}
+
 gfx::ImageSkia* AuthenticatorBleDeviceSelectionSheetModel::GetStepIllustration()
     const {
   return GetImage(IDR_WEBAUTHN_ILLUSTRATION_BLE_NAME_1X);
@@ -279,10 +316,8 @@
 }
 
 base::string16 AuthenticatorBlePinEntrySheetModel::GetStepTitle() const {
-  // TODO(hongjunchoi): Insert actual device name from model to |device_name|.
-  base::string16 device_name = base::UTF8ToUTF16("VHGSHSSN");
   return l10n_util::GetStringFUTF16(IDS_WEBAUTHN_BLE_PIN_ENTRY_TITLE,
-                                    device_name);
+                                    GetRelyingPartyIdString());
 }
 
 base::string16 AuthenticatorBlePinEntrySheetModel::GetStepDescription() const {
@@ -304,6 +339,10 @@
 
 // AuthenticatorBleVerifyingSheetModel ----------------------------------------
 
+bool AuthenticatorBleVerifyingSheetModel::IsActivityIndicatorVisible() const {
+  return true;
+}
+
 gfx::ImageSkia* AuthenticatorBleVerifyingSheetModel::GetStepIllustration()
     const {
   return GetImage(IDR_WEBAUTHN_ILLUSTRATION_BLE_1X);
@@ -319,17 +358,18 @@
 
 // AuthenticatorBleActivateSheetModel -----------------------------------------
 
+bool AuthenticatorBleActivateSheetModel::IsActivityIndicatorVisible() const {
+  return true;
+}
+
 gfx::ImageSkia* AuthenticatorBleActivateSheetModel::GetStepIllustration()
     const {
   return GetImage(IDR_WEBAUTHN_ILLUSTRATION_BLE_TAP_1X);
 }
 
 base::string16 AuthenticatorBleActivateSheetModel::GetStepTitle() const {
-  // TODO(hongjunchoi): Insert actual domain name from model to
-  // |application_name|.
-  base::string16 application_name = base::UTF8ToUTF16("example.com");
   return l10n_util::GetStringFUTF16(IDS_WEBAUTHN_GENERIC_TITLE,
-                                    application_name);
+                                    GetRelyingPartyIdString());
 }
 
 base::string16 AuthenticatorBleActivateSheetModel::GetStepDescription() const {
@@ -338,6 +378,10 @@
 
 // AuthenticatorTouchIdSheetModel -----------------------------------------
 
+bool AuthenticatorTouchIdSheetModel::IsActivityIndicatorVisible() const {
+  return true;
+}
+
 gfx::ImageSkia* AuthenticatorTouchIdSheetModel::GetStepIllustration() const {
 #if defined(OS_MACOSX)
   return GetImage(IDR_WEBAUTHN_ILLUSTRATION_TOUCHID_1X);
@@ -349,11 +393,8 @@
 
 base::string16 AuthenticatorTouchIdSheetModel::GetStepTitle() const {
 #if defined(OS_MACOSX)
-  // TODO(martinkr): Insert actual domain name from model to
-  // |application_name|.
-  base::string16 application_name = base::UTF8ToUTF16("example.com");
   return l10n_util::GetStringFUTF16(IDS_WEBAUTHN_TOUCH_ID_TITLE,
-                                    application_name);
+                                    GetRelyingPartyIdString());
 #else
   return base::string16();
 #endif  // defined(OS_MACOSX)
@@ -365,6 +406,10 @@
 
 // AuthenticatorPaaskSheetModel -----------------------------------------
 
+bool AuthenticatorPaaskSheetModel::IsActivityIndicatorVisible() const {
+  return true;
+}
+
 gfx::ImageSkia* AuthenticatorPaaskSheetModel::GetStepIllustration() const {
   return GetImage(IDR_WEBAUTHN_ILLUSTRATION_PHONE_1X);
 }
diff --git a/chrome/browser/ui/webauthn/sheet_models.h b/chrome/browser/ui/webauthn/sheet_models.h
index c4a91a7..050eef76 100644
--- a/chrome/browser/ui/webauthn/sheet_models.h
+++ b/chrome/browser/ui/webauthn/sheet_models.h
@@ -29,7 +29,11 @@
   // loads it in Skia format.
   static gfx::ImageSkia* GetImage(int resource_id);
 
+  // Returns a string containing the relying party id for this request.
+  base::string16 GetRelyingPartyIdString() const;
+
   // AuthenticatorRequestSheetModel:
+  bool IsActivityIndicatorVisible() const override;
   bool IsBackButtonVisible() const override;
   bool IsCancelButtonVisible() const override;
   base::string16 GetCancelButtonLabel() const override;
@@ -90,6 +94,7 @@
 
  private:
   // AuthenticatorSheetModelBase:
+  bool IsActivityIndicatorVisible() const override;
   gfx::ImageSkia* GetStepIllustration() const override;
   base::string16 GetStepTitle() const override;
   base::string16 GetStepDescription() const override;
@@ -106,6 +111,20 @@
   base::string16 GetStepDescription() const override;
 };
 
+class AuthenticatorNoAvailableTransportsErrorModel
+    : public AuthenticatorSheetModelBase {
+ public:
+  using AuthenticatorSheetModelBase::AuthenticatorSheetModelBase;
+
+ private:
+  // AuthenticatorSheetModelBase:
+  bool IsBackButtonVisible() const override;
+  base::string16 GetCancelButtonLabel() const override;
+  gfx::ImageSkia* GetStepIllustration() const override;
+  base::string16 GetStepTitle() const override;
+  base::string16 GetStepDescription() const override;
+};
+
 class AuthenticatorBlePowerOnManualSheetModel
     : public AuthenticatorSheetModelBase {
  public:
@@ -155,6 +174,7 @@
 
  private:
   // AuthenticatorSheetModelBase:
+  bool IsActivityIndicatorVisible() const override;
   gfx::ImageSkia* GetStepIllustration() const override;
   base::string16 GetStepTitle() const override;
   base::string16 GetStepDescription() const override;
@@ -180,6 +200,7 @@
 
  private:
   // AuthenticatorSheetModelBase:
+  bool IsActivityIndicatorVisible() const override;
   gfx::ImageSkia* GetStepIllustration() const override;
   base::string16 GetStepTitle() const override;
   base::string16 GetStepDescription() const override;
@@ -191,6 +212,7 @@
 
  private:
   // AuthenticatorSheetModelBase:
+  bool IsActivityIndicatorVisible() const override;
   gfx::ImageSkia* GetStepIllustration() const override;
   base::string16 GetStepTitle() const override;
   base::string16 GetStepDescription() const override;
@@ -202,6 +224,7 @@
 
  private:
   // AuthenticatorSheetModelBase:
+  bool IsActivityIndicatorVisible() const override;
   gfx::ImageSkia* GetStepIllustration() const override;
   base::string16 GetStepTitle() const override;
   base::string16 GetStepDescription() const override;
@@ -213,6 +236,7 @@
 
  private:
   // AuthenticatorSheetModelBase:
+  bool IsActivityIndicatorVisible() const override;
   gfx::ImageSkia* GetStepIllustration() const override;
   base::string16 GetStepTitle() const override;
   base::string16 GetStepDescription() const override;
diff --git a/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc b/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
index 767deb88..d20cb59 100644
--- a/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
@@ -787,9 +787,11 @@
   AppendKeyValue(
       &paths, "Downloads",
       file_manager::util::GetDownloadsFolderForProfile(profile).AsUTF8Unsafe());
-  AppendKeyValue(
-      &paths, "Drive",
-      drive::util::GetDriveMountPointPath(profile).AsUTF8Unsafe());
+  const auto* integration_service = GetIntegrationService();
+  if (integration_service && integration_service->IsMounted()) {
+    AppendKeyValue(&paths, "Drive",
+                   integration_service->GetMountPointPath().AsUTF8Unsafe());
+  }
 
   const char* kPathPreferences[] = {
     prefs::kSelectFileLastDirectory,
diff --git a/chrome/browser/ui/webui/discards/discards.mojom b/chrome/browser/ui/webui/discards/discards.mojom
index 64f0d0e..470015a 100644
--- a/chrome/browser/ui/webui/discards/discards.mojom
+++ b/chrome/browser/ui/webui/discards/discards.mojom
@@ -37,6 +37,8 @@
   // The number of times this tab has been discarded in the current browser
   // session.
   int32 discard_count;
+  // If the tab is currently discarded, the discard reason.
+  LifecycleUnitDiscardReason discard_reason;
   // The rank of the tab in the "importance to user" list. The tab with 1 is the
   // most important, the tab with N is the least important.
   int32 utility_rank;
diff --git a/chrome/browser/ui/webui/discards/discards_ui.cc b/chrome/browser/ui/webui/discards/discards_ui.cc
index 5aaf01c..fa00856 100644
--- a/chrome/browser/ui/webui/discards/discards_ui.cc
+++ b/chrome/browser/ui/webui/discards/discards_ui.cc
@@ -13,7 +13,6 @@
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/engagement/site_engagement_service.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/resource_coordinator/discard_reason.h"
 #include "chrome/browser/resource_coordinator/lifecycle_unit.h"
 #include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom.h"
 #include "chrome/browser/resource_coordinator/tab_activity_watcher.h"
@@ -34,9 +33,9 @@
 
 namespace {
 
-resource_coordinator::DiscardReason GetDiscardReason(bool urgent) {
-  return urgent ? resource_coordinator::DiscardReason::kUrgent
-                : resource_coordinator::DiscardReason::kProactive;
+mojom::LifecycleUnitDiscardReason GetDiscardReason(bool urgent) {
+  return urgent ? mojom::LifecycleUnitDiscardReason::URGENT
+                : mojom::LifecycleUnitDiscardReason::PROACTIVE;
 }
 
 mojom::LifecycleUnitVisibility GetLifecycleUnitVisibility(
@@ -127,9 +126,12 @@
       info->cannot_freeze_reasons = freeze_details.GetFailureReasonStrings();
       resource_coordinator::DecisionDetails discard_details;
       info->can_discard = lifecycle_unit->CanDiscard(
-          resource_coordinator::DiscardReason::kProactive, &discard_details);
+          mojom::LifecycleUnitDiscardReason::PROACTIVE, &discard_details);
       info->cannot_discard_reasons = discard_details.GetFailureReasonStrings();
-      info->discard_count = tab_lifecycle_unit_external->GetDiscardCount();
+      info->discard_count = lifecycle_unit->GetDiscardCount();
+      // This is only valid if the state is PENDING_DISCARD or DISCARD, but the
+      // javascript code takes care of that.
+      info->discard_reason = lifecycle_unit->GetDiscardReason();
       info->utility_rank = rank++;
       const base::TimeTicks last_focused_time =
           lifecycle_unit->GetLastFocusedTime();
diff --git a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
index 8d9a7b0..6f52ecce 100644
--- a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
@@ -2013,7 +2013,10 @@
                             arraysize(conditional_localized_strings));
   }
 
-  html_source->AddString("privacyLearnMoreURL", chrome::kPrivacyLearnMoreURL);
+  html_source->AddString("syncAndGoogleServicesLearnMoreURL",
+                         IsUnifiedConsentEnabled(profile)
+                             ? chrome::kSyncAndGoogleServicesLearnMoreURL
+                             : "");
   html_source->AddString(
       "improveBrowsingExperience",
       l10n_util::GetStringFUTF16(
diff --git a/chrome/browser/vr/service/browser_xr_runtime.cc b/chrome/browser/vr/service/browser_xr_runtime.cc
index 7dec6ed..386fee22 100644
--- a/chrome/browser/vr/service/browser_xr_runtime.cc
+++ b/chrome/browser/vr/service/browser_xr_runtime.cc
@@ -37,7 +37,7 @@
     device::mojom::VRDisplayInfoPtr vr_device_info) {
   display_info_ = std::move(vr_device_info);
   for (XRDeviceImpl* device : renderer_device_connections_) {
-    device->OnChanged();
+    device->RuntimesChanged();
   }
 }
 
diff --git a/chrome/browser/vr/service/vr_service_impl.cc b/chrome/browser/vr/service/vr_service_impl.cc
index e9df1ae..5653748 100644
--- a/chrome/browser/vr/service/vr_service_impl.cc
+++ b/chrome/browser/vr/service/vr_service_impl.cc
@@ -99,7 +99,7 @@
   // We just need to notify device_ when new capabilities were added after
   // initialization.
   if (device_) {
-    device_->OnRuntimeAvailable(runtime);
+    device_->RuntimesChanged();
   }
 
   if (client_) {
@@ -109,7 +109,7 @@
 
 void VRServiceImpl::RemoveRuntime(BrowserXRRuntime* runtime) {
   if (device_) {
-    device_->OnRuntimeRemoved(runtime);
+    device_->RuntimesChanged();
   }
 
   if (client_) {
diff --git a/chrome/browser/vr/service/xr_device_impl.cc b/chrome/browser/vr/service/xr_device_impl.cc
index f044f4c..920f647 100644
--- a/chrome/browser/vr/service/xr_device_impl.cc
+++ b/chrome/browser/vr/service/xr_device_impl.cc
@@ -53,56 +53,6 @@
 
 }  // namespace
 
-device::mojom::VRDisplayInfoPtr XRDeviceImpl::GetCurrentVRDisplayInfo() {
-  // Get an immersive_runtime_ device if there is one.
-  if (!immersive_runtime_) {
-    immersive_runtime_ = XRRuntimeManager::GetInstance()->GetImmersiveRuntime();
-    if (immersive_runtime_) {
-      // Listen to changes for this device.
-      immersive_runtime_->OnRendererDeviceAdded(this);
-    }
-  }
-
-  // Get an AR device if there is one.
-  if (!ar_runtime_) {
-    device::mojom::XRSessionOptions options = {};
-    options.provide_passthrough_camera = true;
-    ar_runtime_ =
-        XRRuntimeManager::GetInstance()->GetRuntimeForOptions(&options);
-    if (ar_runtime_) {
-      // Listen to  changes for this device.
-      ar_runtime_->OnRendererDeviceAdded(this);
-    }
-  }
-
-  // If there is neither, use the generic non-immersive device.
-  if (!ar_runtime_ && !immersive_runtime_) {
-    if (!non_immersive_runtime_) {
-      device::mojom::XRSessionOptions options = {};
-      non_immersive_runtime_ =
-          XRRuntimeManager::GetInstance()->GetRuntimeForOptions(&options);
-      if (non_immersive_runtime_) {
-        // Listen to changes for this device.
-        non_immersive_runtime_->OnRendererDeviceAdded(this);
-      }
-    }
-
-    // If we don't have an AR or immersive device, return the generic non-
-    // immersive device's DisplayInfo if we have it.
-    return non_immersive_runtime_ ? non_immersive_runtime_->GetVRDisplayInfo()
-                                  : nullptr;
-  }
-
-  // Use the immersive or AR device.  However, if we are using the immersive
-  // device's info, and AR is supported, reflect that in capabilities.
-  device::mojom::VRDisplayInfoPtr device_info =
-      immersive_runtime_ ? immersive_runtime_->GetVRDisplayInfo()
-                         : ar_runtime_->GetVRDisplayInfo();
-  device_info->capabilities->can_provide_pass_through_images = !!ar_runtime_;
-
-  return device_info;
-}
-
 XRDeviceImpl::XRDeviceImpl(content::RenderFrameHost* render_frame_host,
                            device::mojom::XRDeviceRequest request)
     :  // TODO(https://crbug.com/846392): render_frame_host can be null because
@@ -149,12 +99,7 @@
 }
 
 XRDeviceImpl::~XRDeviceImpl() {
-  if (immersive_runtime_)
-    immersive_runtime_->OnRendererDeviceRemoved(this);
-  if (non_immersive_runtime_)
-    non_immersive_runtime_->OnRendererDeviceRemoved(this);
-  if (ar_runtime_)
-    ar_runtime_->OnRendererDeviceRemoved(this);
+  XRRuntimeManager::GetInstance()->OnRendererDeviceRemoved(this);
 }
 
 void XRDeviceImpl::RequestSession(
@@ -220,11 +165,11 @@
   }
 }
 
-void XRDeviceImpl::SupportsSession(device::mojom::XRSessionOptionsPtr options,
-                                   SupportsSessionCallback callback) {
-  bool supports = XRRuntimeManager::GetInstance()->GetRuntimeForOptions(
-                      options.get()) != nullptr;
-  std::move(callback).Run(supports);
+void XRDeviceImpl::SupportsSession(
+    device::mojom::XRSessionOptionsPtr options,
+    device::mojom::XRDevice::SupportsSessionCallback callback) {
+  XRRuntimeManager::GetInstance()->SupportsSession(std::move(options),
+                                                   std::move(callback));
 }
 
 void XRDeviceImpl::ReportRequestPresent() {
@@ -242,20 +187,19 @@
 }
 
 void XRDeviceImpl::ExitPresent() {
-  if (immersive_runtime_)
-    immersive_runtime_->ExitPresent(this);
+  BrowserXRRuntime* immersive_runtime =
+      XRRuntimeManager::GetInstance()->GetImmersiveRuntime();
+  if (immersive_runtime)
+    immersive_runtime->ExitPresent(this);
 }
 
 void XRDeviceImpl::SetListeningForActivate(
     device::mojom::VRDisplayClientPtr client) {
   client_ = std::move(client);
-  if (!immersive_runtime_) {
-    // This function sets the runtimes.
-    GetCurrentVRDisplayInfo();
-  }
-
-  if (immersive_runtime_ && client_) {
-    immersive_runtime_->UpdateListeningForActivate(this);
+  BrowserXRRuntime* immersive_runtime =
+      XRRuntimeManager::GetInstance()->GetImmersiveRuntime();
+  if (immersive_runtime && client) {
+    immersive_runtime->UpdateListeningForActivate(this);
   }
 }
 
@@ -270,10 +214,11 @@
 
 void XRDeviceImpl::SetInFocusedFrame(bool in_focused_frame) {
   in_focused_frame_ = in_focused_frame;
-
-  if (ListeningForActivate() && immersive_runtime_) {
-    // No change, except focus.
-    immersive_runtime_->UpdateListeningForActivate(this);
+  if (ListeningForActivate()) {
+    BrowserXRRuntime* immersive_runtime =
+        XRRuntimeManager::GetInstance()->GetImmersiveRuntime();
+    if (immersive_runtime)
+      immersive_runtime->UpdateListeningForActivate(this);
   }
 
   magic_window_controllers_.ForAllPtrs(
@@ -282,8 +227,9 @@
       });
 }
 
-void XRDeviceImpl::OnChanged() {
-  device::mojom::VRDisplayInfoPtr display_info = GetCurrentVRDisplayInfo();
+void XRDeviceImpl::RuntimesChanged() {
+  device::mojom::VRDisplayInfoPtr display_info =
+      XRRuntimeManager::GetInstance()->GetCurrentVRDisplayInfo(this);
   if (display_info) {
     session_clients_.ForAllPtrs(
         [&display_info](device::mojom::XRSessionClient* client) {
@@ -292,27 +238,6 @@
   }
 }
 
-void XRDeviceImpl::OnRuntimeRemoved(BrowserXRRuntime* runtime) {
-  if (runtime == immersive_runtime_) {
-    immersive_runtime_ = nullptr;
-  }
-
-  if (runtime == non_immersive_runtime_) {
-    non_immersive_runtime_ = nullptr;
-  }
-
-  if (runtime == ar_runtime_) {
-    ar_runtime_ = nullptr;
-  }
-
-  // Try to update our VRDisplayInfo.
-  OnChanged();
-}
-
-void XRDeviceImpl::OnRuntimeAvailable(BrowserXRRuntime* runtime) {
-  // Try to update our VRDisplayInfo.  That may use the new device.
-  OnChanged();
-}
 
 void XRDeviceImpl::OnExitPresent() {
   session_clients_.ForAllPtrs(
diff --git a/chrome/browser/vr/service/xr_device_impl.h b/chrome/browser/vr/service/xr_device_impl.h
index aa3df96..1750a3b 100644
--- a/chrome/browser/vr/service/xr_device_impl.h
+++ b/chrome/browser/vr/service/xr_device_impl.h
@@ -40,8 +40,9 @@
       device::mojom::XRSessionOptionsPtr options,
       bool triggered_by_displayactive,
       device::mojom::XRDevice::RequestSessionCallback callback) override;
-  void SupportsSession(device::mojom::XRSessionOptionsPtr options,
-                       SupportsSessionCallback callback) override;
+  void SupportsSession(
+      device::mojom::XRSessionOptionsPtr options,
+      device::mojom::XRDevice::SupportsSessionCallback callback) override;
   void ExitPresent() override;
   // device::mojom::XRDevice WebVR compatibility functions
   void GetImmersiveVRDisplayInfo(
@@ -52,12 +53,8 @@
 
   void SetInFocusedFrame(bool in_focused_frame);
 
-  // Notifications when devices are added/removed.
-  void OnRuntimeRemoved(BrowserXRRuntime* device);
-  void OnRuntimeAvailable(BrowserXRRuntime* device);
-
   // Notifications/calls from BrowserXRRuntime:
-  void OnChanged();
+  void RuntimesChanged();
   void OnExitPresent();
   void OnBlur();
   void OnFocus();
@@ -88,8 +85,6 @@
   // object.
   bool IsSecureContextRequirementSatisfied();
 
-  device::mojom::VRDisplayInfoPtr GetCurrentVRDisplayInfo();
-
   bool in_focused_frame_ = false;
 
   content::RenderFrameHost* render_frame_host_;
@@ -102,12 +97,6 @@
       magic_window_controllers_;
   int next_key_ = 0;
 
-  // If we start an immersive session, or are listening to immersive activation,
-  // notify this device if we are destroyed.
-  BrowserXRRuntime* immersive_runtime_ = nullptr;
-  BrowserXRRuntime* non_immersive_runtime_ = nullptr;
-  BrowserXRRuntime* ar_runtime_ = nullptr;
-
   base::WeakPtrFactory<XRDeviceImpl> weak_ptr_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(XRDeviceImpl);
diff --git a/chrome/browser/vr/service/xr_runtime_manager.cc b/chrome/browser/vr/service/xr_runtime_manager.cc
index 55038de..729852c4 100644
--- a/chrome/browser/vr/service/xr_runtime_manager.cc
+++ b/chrome/browser/vr/service/xr_runtime_manager.cc
@@ -152,6 +152,64 @@
   return nullptr;
 }
 
+device::mojom::VRDisplayInfoPtr XRRuntimeManager::GetCurrentVRDisplayInfo(
+    XRDeviceImpl* device) {
+  // Get an immersive_runtime device if there is one.
+  auto* immersive_runtime = GetImmersiveRuntime();
+  if (immersive_runtime) {
+    // Listen to changes for this device.
+    immersive_runtime->OnRendererDeviceAdded(device);
+  }
+
+  // Get an AR device if there is one.
+  device::mojom::XRSessionOptions options = {};
+  options.provide_passthrough_camera = true;
+  auto* ar_runtime = GetRuntimeForOptions(&options);
+  if (ar_runtime) {
+    // Listen to  changes for this device.
+    ar_runtime->OnRendererDeviceAdded(device);
+  }
+
+  // If there is neither, use the generic non-immersive device.
+  if (!ar_runtime && !immersive_runtime) {
+    device::mojom::XRSessionOptions options = {};
+    auto* non_immersive_runtime = GetRuntimeForOptions(&options);
+    if (non_immersive_runtime) {
+      // Listen to changes for this device.
+      non_immersive_runtime->OnRendererDeviceAdded(device);
+    }
+
+    // If we don't have an AR or immersive device, return the generic non-
+    // immersive device's DisplayInfo if we have it.
+    return non_immersive_runtime ? non_immersive_runtime->GetVRDisplayInfo()
+                                 : nullptr;
+  }
+
+  // Use the immersive or AR device. However, if we are using the immersive
+  // device's info, and AR is supported, reflect that in capabilities.
+  device::mojom::VRDisplayInfoPtr device_info =
+      immersive_runtime ? immersive_runtime->GetVRDisplayInfo()
+                        : ar_runtime->GetVRDisplayInfo();
+  device_info->capabilities->can_provide_pass_through_images = !!ar_runtime;
+
+  return device_info;
+}
+
+void XRRuntimeManager::SupportsSession(
+    device::mojom::XRSessionOptionsPtr options,
+    device::mojom::XRDevice::SupportsSessionCallback callback) {
+  auto* runtime = GetRuntimeForOptions(options.get());
+
+  if (!runtime) {
+    std::move(callback).Run(false);
+    return;
+  }
+
+  // TODO(http://crbug.com/842025): Pass supports session on to the device
+  // runtimes.
+  std::move(callback).Run(true);
+}
+
 bool XRRuntimeManager::HasAnyRuntime() {
   return runtimes_.size() > 0;
 }
@@ -196,6 +254,12 @@
   }
 }
 
+void XRRuntimeManager::OnRendererDeviceRemoved(XRDeviceImpl* device) {
+  for (const auto& runtime : runtimes_) {
+    runtime.second->OnRendererDeviceRemoved(device);
+  }
+}
+
 void XRRuntimeManager::AddRuntime(device::mojom::XRDeviceId id,
                                   device::mojom::VRDisplayInfoPtr info,
                                   device::mojom::XRRuntimePtr runtime) {
diff --git a/chrome/browser/vr/service/xr_runtime_manager.h b/chrome/browser/vr/service/xr_runtime_manager.h
index dc2cc11c..c3ae311 100644
--- a/chrome/browser/vr/service/xr_runtime_manager.h
+++ b/chrome/browser/vr/service/xr_runtime_manager.h
@@ -49,9 +49,15 @@
   BrowserXRRuntime* GetRuntimeForOptions(
       device::mojom::XRSessionOptions* options);
   BrowserXRRuntime* GetImmersiveRuntime();
+  device::mojom::VRDisplayInfoPtr GetCurrentVRDisplayInfo(XRDeviceImpl* device);
+  void OnRendererDeviceRemoved(XRDeviceImpl* device);
 
   bool HasAnyRuntime();
 
+  void SupportsSession(
+      device::mojom::XRSessionOptionsPtr options,
+      device::mojom::XRDevice::SupportsSessionCallback callback);
+
  protected:
   using ProviderList = std::vector<std::unique_ptr<device::VRDeviceProvider>>;
 
diff --git a/chrome/browser/vr/ui_suppressed_element.h b/chrome/browser/vr/ui_suppressed_element.h
index 0b3aee1..3dfd8c2 100644
--- a/chrome/browser/vr/ui_suppressed_element.h
+++ b/chrome/browser/vr/ui_suppressed_element.h
@@ -26,6 +26,7 @@
   kSslClientCertificate,
   kMediaRouterPresentationRequest,
   kContextMenu,
+  kPermissionBubbleRequest,
 
   // This must be last.
   kCount,
diff --git a/chrome/browser/vr/vr_tab_helper.cc b/chrome/browser/vr/vr_tab_helper.cc
index c0c143d..2729036 100644
--- a/chrome/browser/vr/vr_tab_helper.cc
+++ b/chrome/browser/vr/vr_tab_helper.cc
@@ -86,6 +86,7 @@
     case UiSuppressedElement::kJavascriptDialog:
     case UiSuppressedElement::kMediaPermission:
     case UiSuppressedElement::kQuotaPermission:
+    case UiSuppressedElement::kPermissionBubbleRequest:
 #if defined(OS_ANDROID)
       suppress = !base::FeatureList::IsEnabled(
           chrome::android::kVrBrowsingNativeAndroidUi);
diff --git a/chrome/browser/web_applications/components/web_app_shortcut.cc b/chrome/browser/web_applications/components/web_app_shortcut.cc
index 5dfaeb5..532c8144 100644
--- a/chrome/browser/web_applications/components/web_app_shortcut.cc
+++ b/chrome/browser/web_applications/components/web_app_shortcut.cc
@@ -7,7 +7,6 @@
 #include "base/i18n/file_util_icu.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/post_task.h"
-#include "base/task/task_scheduler/task_scheduler.h"
 #include "build/build_config.h"
 #include "chrome/browser/web_applications/components/web_app_helpers.h"
 #include "chrome/common/chrome_constants.h"
@@ -105,10 +104,10 @@
       base::TaskShutdownBehavior::BLOCK_SHUTDOWN};
 
 #if defined(OS_WIN)
-  return base::TaskScheduler::GetInstance()->CreateCOMSTATaskRunnerWithTraits(
+  return base::CreateCOMSTATaskRunnerWithTraits(
       traits, base::SingleThreadTaskRunnerThreadMode::SHARED);
 #else
-  return base::TaskScheduler::GetInstance()->CreateTaskRunnerWithTraits(traits);
+  return base::CreateTaskRunnerWithTraits(traits);
 #endif
 }
 
diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.cc b/chrome/browser/webauthn/authenticator_request_dialog_model.cc
index 5d4bcd9..8575daa 100644
--- a/chrome/browser/webauthn/authenticator_request_dialog_model.cc
+++ b/chrome/browser/webauthn/authenticator_request_dialog_model.cc
@@ -25,8 +25,10 @@
     return device::FidoTransportProtocol::kInternal;
   }
 
-  // If the |last_used_transport| is available, use that.
-  if (last_used_transport &&
+  // For GetAssertion call, if the |last_used_transport| is available, use that.
+  if (transport_availability.request_type ==
+          device::FidoRequestHandlerBase::RequestType::kGetAssertion &&
+      last_used_transport &&
       base::ContainsKey(transport_availability.available_transports,
                         *last_used_transport)) {
     return *last_used_transport;
@@ -96,7 +98,7 @@
 
   transport_availability_ = std::move(transport_availability);
   last_used_transport_ = last_used_transport;
-  for (const auto transport : transport_availability.available_transports) {
+  for (const auto transport : transport_availability_.available_transports) {
     transport_list_model_.AppendTransport(ToAuthenticatorTransport(transport));
   }
 
@@ -116,9 +118,11 @@
   if (most_likely_transport) {
     StartGuidedFlowForTransport(
         ToAuthenticatorTransport(*most_likely_transport));
-  } else {
-    // TODO(engedy): Show error screen if no transport available at all.
+  } else if (!transport_availability_.available_transports.empty()) {
+    DCHECK_GE(transport_availability_.available_transports.size(), 2u);
     SetCurrentStep(Step::kTransportSelection);
+  } else {
+    SetCurrentStep(Step::kErrorNoAvailableTransports);
   }
 }
 
@@ -200,8 +204,12 @@
 void AuthenticatorRequestDialogModel::Back() {
   if (current_step() == Step::kWelcomeScreen) {
     Cancel();
-  } else {
+  } else if (current_step() == Step::kTransportSelection) {
     SetCurrentStep(Step::kWelcomeScreen);
+  } else {
+    SetCurrentStep(transport_availability_.available_transports.size() >= 2u
+                       ? Step::kTransportSelection
+                       : Step::kWelcomeScreen);
   }
 }
 
diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.h b/chrome/browser/webauthn/authenticator_request_dialog_model.h
index 2d193c8..9f95091 100644
--- a/chrome/browser/webauthn/authenticator_request_dialog_model.h
+++ b/chrome/browser/webauthn/authenticator_request_dialog_model.h
@@ -35,6 +35,7 @@
     kWelcomeScreen,
     kTransportSelection,
     kErrorTimedOut,
+    kErrorNoAvailableTransports,
     kCompleted,
 
     // Universal Serial Bus (USB).
@@ -97,6 +98,9 @@
   Step current_step() const { return current_step_; }
 
   TransportListModel* transport_list_model() { return &transport_list_model_; }
+  const TransportAvailabilityInfo* transport_availability() const {
+    return &transport_availability_;
+  }
 
   // Starts the UX flow, by either showing the welcome screen, the transport
   // selection screen, or the guided flow for them most likely transport.
diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model_unittest.cc b/chrome/browser/webauthn/authenticator_request_dialog_model_unittest.cc
index 6ac6788..2fe4610 100644
--- a/chrome/browser/webauthn/authenticator_request_dialog_model_unittest.cc
+++ b/chrome/browser/webauthn/authenticator_request_dialog_model_unittest.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/webauthn/authenticator_request_dialog_model.h"
 
+#include <utility>
+
 #include "base/containers/flat_set.h"
 #include "base/macros.h"
 #include "base/optional.h"
@@ -11,6 +13,17 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+namespace {
+
+const base::flat_set<device::FidoTransportProtocol> kAllTransports = {
+    device::FidoTransportProtocol::kUsbHumanInterfaceDevice,
+    device::FidoTransportProtocol::kNearFieldCommunication,
+    device::FidoTransportProtocol::kBluetoothLowEnergy,
+    device::FidoTransportProtocol::kInternal,
+    device::FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy,
+};
+}
+
 class AuthenticatorRequestDialogModelTest : public ::testing::Test {
  public:
   AuthenticatorRequestDialogModelTest() {}
@@ -23,80 +36,103 @@
 TEST_F(AuthenticatorRequestDialogModelTest, TransportAutoSelection) {
   using FidoTransportProtocol = ::device::FidoTransportProtocol;
   using Step = AuthenticatorRequestDialogModel::Step;
-
-  const base::flat_set<FidoTransportProtocol> kAllTransports = {
-      FidoTransportProtocol::kUsbHumanInterfaceDevice,
-      FidoTransportProtocol::kNearFieldCommunication,
-      FidoTransportProtocol::kBluetoothLowEnergy,
-      FidoTransportProtocol::kInternal,
-      FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy,
-  };
+  using RequestType = ::device::FidoRequestHandlerBase::RequestType;
 
   const struct {
+    RequestType request_type;
     base::flat_set<FidoTransportProtocol> available_transports;
     base::Optional<FidoTransportProtocol> last_used_transport;
     bool has_touch_id_credential;
     Step expected_first_step;
   } kTestCases[] = {
       // Only a single transport is available.
-      {{FidoTransportProtocol::kUsbHumanInterfaceDevice},
+      {RequestType::kGetAssertion,
+       {FidoTransportProtocol::kUsbHumanInterfaceDevice},
        base::nullopt,
        false,
        Step::kUsbInsertAndActivate},
-      {{FidoTransportProtocol::kNearFieldCommunication},
+      {RequestType::kGetAssertion,
+       {FidoTransportProtocol::kNearFieldCommunication},
        base::nullopt,
        false,
        Step::kTransportSelection},
-      {{FidoTransportProtocol::kBluetoothLowEnergy},
+      {RequestType::kGetAssertion,
+       {FidoTransportProtocol::kBluetoothLowEnergy},
        base::nullopt,
        false,
        Step::kBleActivate},
-      {{FidoTransportProtocol::kInternal},
+      {RequestType::kGetAssertion,
+       {FidoTransportProtocol::kInternal},
        base::nullopt,
        false,
        Step::kTouchId},
-      {{FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy},
+      {RequestType::kGetAssertion,
+       {FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy},
        base::nullopt,
        false,
        Step::kCableActivate},
 
       // The last used transport is available.
-      {kAllTransports, FidoTransportProtocol::kUsbHumanInterfaceDevice, false,
+      {RequestType::kGetAssertion, kAllTransports,
+       FidoTransportProtocol::kUsbHumanInterfaceDevice, false,
        Step::kUsbInsertAndActivate},
 
       // The last used transport is not available.
-      {{FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy,
+      {RequestType::kGetAssertion,
+       {FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy,
         FidoTransportProtocol::kUsbHumanInterfaceDevice},
        FidoTransportProtocol::kNearFieldCommunication,
        false,
        Step::kTransportSelection},
 
       // The KeyChain contains an allowed Touch ID credential.
-      {kAllTransports, FidoTransportProtocol::kUsbHumanInterfaceDevice, true,
-       Step::kTouchId},
+      {RequestType::kGetAssertion, kAllTransports,
+       FidoTransportProtocol::kUsbHumanInterfaceDevice, true, Step::kTouchId},
 
       // The KeyChain contains an allowed Touch ID credential, but Touch ID is
       // not enabled by the relying party.
-      {{FidoTransportProtocol::kUsbHumanInterfaceDevice},
+      {RequestType::kGetAssertion,
+       {FidoTransportProtocol::kUsbHumanInterfaceDevice},
        base::nullopt,
        true,
        Step::kUsbInsertAndActivate},
-      {{FidoTransportProtocol::kUsbHumanInterfaceDevice,
+      {RequestType::kGetAssertion,
+       {FidoTransportProtocol::kUsbHumanInterfaceDevice,
         FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy},
        base::nullopt,
        true,
        Step::kTransportSelection},
 
       // No transports available.
-      {{},
+      {RequestType::kGetAssertion,
+       {},
        FidoTransportProtocol::kNearFieldCommunication,
        false,
-       // TODO: Update this when the error screen is implemented.
+       Step::kErrorNoAvailableTransports},
+
+      // Even when last transport used is available, we default to transport
+      // selection modal for MakeCredential.
+      {RequestType::kMakeCredential, kAllTransports,
+       FidoTransportProtocol::kUsbHumanInterfaceDevice, false,
        Step::kTransportSelection},
+
+      // When only one transport is available, we still want to skip transport
+      // selection view for MakeCredential call.
+      {RequestType::kMakeCredential,
+       {FidoTransportProtocol::kUsbHumanInterfaceDevice},
+       FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy,
+       false,
+       Step::kUsbInsertAndActivate},
+      {RequestType::kMakeCredential,
+       {FidoTransportProtocol::kUsbHumanInterfaceDevice},
+       FidoTransportProtocol::kUsbHumanInterfaceDevice,
+       false,
+       Step::kUsbInsertAndActivate},
   };
 
   for (const auto& test_case : kTestCases) {
     ::device::FidoRequestHandlerBase::TransportAvailabilityInfo transports_info;
+    transports_info.request_type = test_case.request_type;
     transports_info.available_transports = test_case.available_transports;
     transports_info.has_recognized_mac_touch_id_credential =
         test_case.has_touch_id_credential;
@@ -110,22 +146,23 @@
       ASSERT_EQ(Step::kWelcomeScreen, model.current_step());
       model.StartGuidedFlowForMostLikelyTransportOrShowTransportSelection();
     }
-
     EXPECT_EQ(test_case.expected_first_step, model.current_step());
+
+    if (model.current_step() == Step::kTransportSelection)
+      continue;
+
+    model.Back();
+    if (test_case.available_transports.size() >= 2u) {
+      EXPECT_EQ(Step::kTransportSelection, model.current_step());
+    } else {
+      EXPECT_EQ(Step::kWelcomeScreen, model.current_step());
+    }
   }
 }
 
 TEST_F(AuthenticatorRequestDialogModelTest, TransportList) {
-  using FidoTransportProtocol = ::device::FidoTransportProtocol;
-
   ::device::FidoRequestHandlerBase::TransportAvailabilityInfo transports_info_1;
-  transports_info_1.available_transports = {
-      FidoTransportProtocol::kUsbHumanInterfaceDevice,
-      FidoTransportProtocol::kNearFieldCommunication,
-      FidoTransportProtocol::kBluetoothLowEnergy,
-      FidoTransportProtocol::kInternal,
-      FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy,
-  };
+  transports_info_1.available_transports = kAllTransports;
 
   AuthenticatorRequestDialogModel model;
   model.StartFlow(std::move(transports_info_1), base::nullopt);
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
index 88000b40..b94f7b6 100644
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -326,6 +326,8 @@
       "extensions/chrome_aliases.cc",
       "extensions/chrome_aliases.h",
       "extensions/chrome_extension_messages.h",
+      "extensions/chrome_extensions_api_provider.cc",
+      "extensions/chrome_extensions_api_provider.h",
       "extensions/chrome_extensions_client.cc",
       "extensions/chrome_extensions_client.h",
       "extensions/chrome_manifest_handlers.cc",
@@ -379,6 +381,7 @@
       "//device/usb",
       "//extensions:extensions_resources",
       "//extensions/common",
+      "//extensions/common:core_api_provider",
       "//extensions/common/api",
       "//extensions/strings",
       "//media/cast:net",
diff --git a/chrome/common/extensions/api/automation.idl b/chrome/common/extensions/api/automation.idl
index e06bd4d6..7609507 100644
--- a/chrome/common/extensions/api/automation.idl
+++ b/chrome/common/extensions/api/automation.idl
@@ -256,6 +256,7 @@
 
   // Describes characteristics of an $(ref:automation.AutomationNode).
   enum StateType {
+    autofillAvailable,
     collapsed,
     default,
     editable,
diff --git a/chrome/common/extensions/api/file_manager_private.idl b/chrome/common/extensions/api/file_manager_private.idl
index 58fbdd9..1b0e015 100644
--- a/chrome/common/extensions/api/file_manager_private.idl
+++ b/chrome/common/extensions/api/file_manager_private.idl
@@ -910,10 +910,6 @@
   static void cancelFileTransfers([instanceof=Entry] object[] entries,
                                   SimpleCallback callback);
 
-  // Cancels all ongoing file transfers.
-  // |callback| Completion callback of the cancel.
-  static void cancelAllFileTransfers(SimpleCallback callback);
-
   // Starts to copy an entry. If the source is a directory, the copy is done
   // recursively.
   // |entry| Entry of the source entry to be copied.
diff --git a/chrome/common/extensions/chrome_extensions_api_provider.cc b/chrome/common/extensions/chrome_extensions_api_provider.cc
new file mode 100644
index 0000000..0f989c8
--- /dev/null
+++ b/chrome/common/extensions/chrome_extensions_api_provider.cc
@@ -0,0 +1,53 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/common/extensions/chrome_extensions_api_provider.h"
+
+#include "chrome/common/extensions/api/api_features.h"
+#include "chrome/common/extensions/api/generated_schemas.h"
+#include "chrome/common/extensions/api/manifest_features.h"
+#include "chrome/common/extensions/api/permission_features.h"
+#include "chrome/grit/common_resources.h"
+#include "extensions/common/features/json_feature_provider_source.h"
+
+namespace extensions {
+
+ChromeExtensionsAPIProvider::ChromeExtensionsAPIProvider() = default;
+ChromeExtensionsAPIProvider::~ChromeExtensionsAPIProvider() = default;
+
+void ChromeExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) {
+  AddChromeAPIFeatures(provider);
+}
+
+void ChromeExtensionsAPIProvider::AddManifestFeatures(
+    FeatureProvider* provider) {
+  AddChromeManifestFeatures(provider);
+}
+
+void ChromeExtensionsAPIProvider::AddPermissionFeatures(
+    FeatureProvider* provider) {
+  AddChromePermissionFeatures(provider);
+}
+
+void ChromeExtensionsAPIProvider::AddBehaviorFeatures(
+    FeatureProvider* provider) {
+  // Note: No chrome-specific behavior features.
+}
+
+void ChromeExtensionsAPIProvider::AddAPIJSONSources(
+    JSONFeatureProviderSource* json_source) {
+  json_source->LoadJSON(IDR_CHROME_EXTENSION_API_FEATURES);
+}
+
+bool ChromeExtensionsAPIProvider::IsAPISchemaGenerated(
+    const std::string& name) {
+  return api::ChromeGeneratedSchemas::IsGenerated(name);
+}
+
+base::StringPiece ChromeExtensionsAPIProvider::GetAPISchema(
+    const std::string& name) {
+  return api::ChromeGeneratedSchemas::Get(name);
+}
+
+}  // namespace extensions
diff --git a/chrome/common/extensions/chrome_extensions_api_provider.h b/chrome/common/extensions/chrome_extensions_api_provider.h
new file mode 100644
index 0000000..d0a8072
--- /dev/null
+++ b/chrome/common/extensions/chrome_extensions_api_provider.h
@@ -0,0 +1,33 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_COMMON_EXTENSIONS_CHROME_EXTENSIONS_API_PROVIDER_H_
+#define CHROME_COMMON_EXTENSIONS_CHROME_EXTENSIONS_API_PROVIDER_H_
+
+#include "base/macros.h"
+#include "extensions/common/extensions_api_provider.h"
+
+namespace extensions {
+
+class ChromeExtensionsAPIProvider : public ExtensionsAPIProvider {
+ public:
+  ChromeExtensionsAPIProvider();
+  ~ChromeExtensionsAPIProvider() override;
+
+  // ExtensionsAPIProvider:
+  void AddAPIFeatures(FeatureProvider* provider) override;
+  void AddManifestFeatures(FeatureProvider* provider) override;
+  void AddPermissionFeatures(FeatureProvider* provider) override;
+  void AddBehaviorFeatures(FeatureProvider* provider) override;
+  void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override;
+  bool IsAPISchemaGenerated(const std::string& name) override;
+  base::StringPiece GetAPISchema(const std::string& name) override;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ChromeExtensionsAPIProvider);
+};
+
+}  // namespace extensions
+
+#endif  // CHROME_COMMON_EXTENSIONS_CHROME_EXTENSIONS_API_PROVIDER_H_
diff --git a/chrome/common/extensions/chrome_extensions_client.cc b/chrome/common/extensions/chrome_extensions_client.cc
index 43b5553..9e33d26 100644
--- a/chrome/common/extensions/chrome_extensions_client.cc
+++ b/chrome/common/extensions/chrome_extensions_client.cc
@@ -15,34 +15,24 @@
 #include "base/values.h"
 #include "chrome/common/chrome_content_client.h"
 #include "chrome/common/chrome_switches.h"
-#include "chrome/common/extensions/api/api_features.h"
 #include "chrome/common/extensions/api/extension_action/action_info.h"
-#include "chrome/common/extensions/api/generated_schemas.h"
-#include "chrome/common/extensions/api/manifest_features.h"
-#include "chrome/common/extensions/api/permission_features.h"
 #include "chrome/common/extensions/chrome_aliases.h"
+#include "chrome/common/extensions/chrome_extensions_api_provider.h"
 #include "chrome/common/extensions/chrome_manifest_handlers.h"
 #include "chrome/common/extensions/manifest_handlers/theme_handler.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/grit/chromium_strings.h"
-#include "chrome/grit/common_resources.h"
 #include "components/version_info/version_info.h"
 #include "content/public/common/url_constants.h"
-#include "extensions/common/api/api_features.h"
-#include "extensions/common/api/behavior_features.h"
-#include "extensions/common/api/generated_schemas.h"
-#include "extensions/common/api/manifest_features.h"
-#include "extensions/common/api/permission_features.h"
 #include "extensions/common/common_manifest_handlers.h"
 #include "extensions/common/constants.h"
+#include "extensions/common/core_extensions_api_provider.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/extension_api.h"
 #include "extensions/common/extension_icon_set.h"
 #include "extensions/common/extension_urls.h"
 #include "extensions/common/extensions_aliases.h"
 #include "extensions/common/features/feature_channel.h"
-#include "extensions/common/features/feature_provider.h"
-#include "extensions/common/features/json_feature_provider_source.h"
 #include "extensions/common/manifest_constants.h"
 #include "extensions/common/manifest_handler.h"
 #include "extensions/common/manifest_handlers/icons_handler.h"
@@ -50,7 +40,6 @@
 #include "extensions/common/permissions/permissions_info.h"
 #include "extensions/common/url_pattern.h"
 #include "extensions/common/url_pattern_set.h"
-#include "extensions/grit/extensions_resources.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "url/gurl.h"
 
@@ -96,7 +85,10 @@
 
 }  // namespace
 
-ChromeExtensionsClient::ChromeExtensionsClient() {}
+ChromeExtensionsClient::ChromeExtensionsClient() {
+  AddAPIProvider(std::make_unique<ChromeExtensionsAPIProvider>());
+  AddAPIProvider(std::make_unique<CoreExtensionsAPIProvider>());
+}
 
 ChromeExtensionsClient::~ChromeExtensionsClient() {
 }
@@ -153,36 +145,6 @@
   return l10n_util::GetStringUTF8(IDS_PRODUCT_NAME);
 }
 
-std::unique_ptr<FeatureProvider> ChromeExtensionsClient::CreateFeatureProvider(
-    const std::string& name) const {
-  auto provider = std::make_unique<FeatureProvider>();
-  if (name == "api") {
-    AddCoreAPIFeatures(provider.get());
-    AddChromeAPIFeatures(provider.get());
-  } else if (name == "manifest") {
-    AddCoreManifestFeatures(provider.get());
-    AddChromeManifestFeatures(provider.get());
-  } else if (name == "permission") {
-    AddCorePermissionFeatures(provider.get());
-    AddChromePermissionFeatures(provider.get());
-  } else if (name == "behavior") {
-    // Note: There are no chrome-specific behavior features.
-    AddCoreBehaviorFeatures(provider.get());
-  } else {
-    NOTREACHED();
-  }
-  return provider;
-}
-
-std::unique_ptr<JSONFeatureProviderSource>
-ChromeExtensionsClient::CreateAPIFeatureSource() const {
-  std::unique_ptr<JSONFeatureProviderSource> source(
-      new JSONFeatureProviderSource("api"));
-  source->LoadJSON(IDR_EXTENSION_API_FEATURES);
-  source->LoadJSON(IDR_CHROME_EXTENSION_API_FEATURES);
-  return source;
-}
-
 void ChromeExtensionsClient::FilterHostPermissions(
     const URLPatternSet& hosts,
     URLPatternSet* new_hosts,
@@ -254,23 +216,6 @@
   return true;
 }
 
-bool ChromeExtensionsClient::IsAPISchemaGenerated(
-    const std::string& name) const {
-  // Test from most common to least common.
-  return api::ChromeGeneratedSchemas::IsGenerated(name) ||
-         api::GeneratedSchemas::IsGenerated(name);
-}
-
-base::StringPiece ChromeExtensionsClient::GetAPISchema(
-    const std::string& name) const {
-  // Test from most common to least common.
-  base::StringPiece chrome_schema = api::ChromeGeneratedSchemas::Get(name);
-  if (!chrome_schema.empty())
-    return chrome_schema;
-
-  return api::GeneratedSchemas::Get(name);
-}
-
 bool ChromeExtensionsClient::ShouldSuppressFatalErrors() const {
   // Suppress fatal everywhere until the cause of bugs like http://crbug/471599
   // are fixed. This would typically be:
diff --git a/chrome/common/extensions/chrome_extensions_client.h b/chrome/common/extensions/chrome_extensions_client.h
index 68924fb..08ff8d5 100644
--- a/chrome/common/extensions/chrome_extensions_client.h
+++ b/chrome/common/extensions/chrome_extensions_client.h
@@ -31,10 +31,6 @@
   const PermissionMessageProvider& GetPermissionMessageProvider()
       const override;
   const std::string GetProductName() override;
-  std::unique_ptr<FeatureProvider> CreateFeatureProvider(
-      const std::string& name) const override;
-  std::unique_ptr<JSONFeatureProviderSource> CreateAPIFeatureSource()
-      const override;
   void FilterHostPermissions(const URLPatternSet& hosts,
                              URLPatternSet* new_hosts,
                              PermissionIDSet* permissions) const override;
@@ -44,8 +40,6 @@
       const Extension* extension,
       const APIPermissionSet& api_permissions) const override;
   bool IsScriptableURL(const GURL& url, std::string* error) const override;
-  bool IsAPISchemaGenerated(const std::string& name) const override;
-  base::StringPiece GetAPISchema(const std::string& name) const override;
   bool ShouldSuppressFatalErrors() const override;
   void RecordDidSuppressFatalError() override;
   const GURL& GetWebstoreBaseURL() const override;
diff --git a/chrome/common/extensions/docs/server2/app.yaml b/chrome/common/extensions/docs/server2/app.yaml
index 1c4469d..79fac5b4 100644
--- a/chrome/common/extensions/docs/server2/app.yaml
+++ b/chrome/common/extensions/docs/server2/app.yaml
@@ -1,5 +1,5 @@
 application: chrome-apps-doc
-version: 3-57-0
+version: 3-58-0
 runtime: python27
 api_version: 1
 threadsafe: false
diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc
index f77d4a6..dd14f86a 100644
--- a/chrome/common/logging_chrome.cc
+++ b/chrome/common/logging_chrome.cc
@@ -94,14 +94,12 @@
 // Assertion handler for logging errors that occur when dialogs are
 // silenced.  To record a new error, pass the log string associated
 // with that error in the str parameter.
-MSVC_DISABLE_OPTIMIZE();
-void SilentRuntimeAssertHandler(const char* file,
-                                int line,
-                                const base::StringPiece message,
-                                const base::StringPiece stack_trace) {
+NOINLINE void SilentRuntimeAssertHandler(const char* file,
+                                         int line,
+                                         const base::StringPiece message,
+                                         const base::StringPiece stack_trace) {
   base::debug::BreakDebugger();
 }
-MSVC_ENABLE_OPTIMIZE();
 
 // Suppresses error/assertion dialogs and enables the logging of
 // those errors into silenced_errors_.
diff --git a/chrome/common/media_router/discovery/media_sink_internal.cc b/chrome/common/media_router/discovery/media_sink_internal.cc
index 17e42335..e39d0eb 100644
--- a/chrome/common/media_router/discovery/media_sink_internal.cc
+++ b/chrome/common/media_router/discovery/media_sink_internal.cc
@@ -188,8 +188,7 @@
 
 DialSinkExtraData::DialSinkExtraData() = default;
 DialSinkExtraData::DialSinkExtraData(const DialSinkExtraData& other) = default;
-DialSinkExtraData::DialSinkExtraData(DialSinkExtraData&& other) noexcept =
-    default;
+DialSinkExtraData::DialSinkExtraData(DialSinkExtraData&& other) = default;
 DialSinkExtraData::~DialSinkExtraData() = default;
 
 bool DialSinkExtraData::operator==(const DialSinkExtraData& other) const {
@@ -199,8 +198,7 @@
 
 CastSinkExtraData::CastSinkExtraData() = default;
 CastSinkExtraData::CastSinkExtraData(const CastSinkExtraData& other) = default;
-CastSinkExtraData::CastSinkExtraData(CastSinkExtraData&& other) noexcept =
-    default;
+CastSinkExtraData::CastSinkExtraData(CastSinkExtraData&& other) = default;
 CastSinkExtraData::~CastSinkExtraData() = default;
 
 bool CastSinkExtraData::operator==(const CastSinkExtraData& other) const {
diff --git a/chrome/common/media_router/discovery/media_sink_internal.h b/chrome/common/media_router/discovery/media_sink_internal.h
index c2e3691..bcf353e9 100644
--- a/chrome/common/media_router/discovery/media_sink_internal.h
+++ b/chrome/common/media_router/discovery/media_sink_internal.h
@@ -26,7 +26,7 @@
 
   DialSinkExtraData();
   DialSinkExtraData(const DialSinkExtraData& other);
-  DialSinkExtraData(DialSinkExtraData&& other) noexcept;
+  DialSinkExtraData(DialSinkExtraData&& other);
   ~DialSinkExtraData();
 
   bool operator==(const DialSinkExtraData& other) const;
@@ -55,7 +55,7 @@
 
   CastSinkExtraData();
   CastSinkExtraData(const CastSinkExtraData& other);
-  CastSinkExtraData(CastSinkExtraData&& other) noexcept;
+  CastSinkExtraData(CastSinkExtraData&& other);
   ~CastSinkExtraData();
 
   bool operator==(const CastSinkExtraData& other) const;
diff --git a/chrome/common/url_constants.cc b/chrome/common/url_constants.cc
index 3fd2fb69..da019a03 100644
--- a/chrome/common/url_constants.cc
+++ b/chrome/common/url_constants.cc
@@ -199,6 +199,9 @@
 const char kSmartLockHelpPage[] =
     "https://support.google.com/accounts/answer/6197437";
 
+const char kSyncAndGoogleServicesLearnMoreURL[] =
+    "https://support.google.com/chrome?p=syncgoogleservices";
+
 const char kSyncEncryptionHelpURL[] =
 #if defined(OS_CHROMEOS)
     "https://support.google.com/chromebook/?p=settings_encryption";
diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
index 06456d6..bdf0cc9 100644
--- a/chrome/common/url_constants.h
+++ b/chrome/common/url_constants.h
@@ -167,6 +167,9 @@
 
 extern const char kSmartLockHelpPage[];
 
+// The URL for the Learn More page about Sync and Google services.
+extern const char kSyncAndGoogleServicesLearnMoreURL[];
+
 // The URL for the "Learn more" page on sync encryption.
 extern const char kSyncEncryptionHelpURL[];
 
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
index e94d86ea..e72a251 100644
--- a/chrome/common/webui_url_constants.cc
+++ b/chrome/common/webui_url_constants.cc
@@ -324,6 +324,7 @@
     kChromeUIFlagsHost,
     kChromeUIGCMInternalsHost,
     kChromeUIHistoryHost,
+    kChromeUIInterstitialHost,
     kChromeUIInterventionsInternalsHost,
     kChromeUIInvalidationsHost,
     kChromeUILocalStateHost,
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
index c8c0126..6dae592 100644
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
@@ -124,7 +124,7 @@
     "//chrome/common/net",
     "//components/autofill/content/renderer",
     "//components/cdm/renderer",
-    "//components/contextual_search:renderer",
+    "//components/contextual_search/content:renderer",
     "//components/data_reduction_proxy/content/renderer",
     "//components/data_reduction_proxy/core/common",
     "//components/dom_distiller/content/renderer",
diff --git a/chrome/renderer/DEPS b/chrome/renderer/DEPS
index 6e3cc4d..547c0fc 100644
--- a/chrome/renderer/DEPS
+++ b/chrome/renderer/DEPS
@@ -5,7 +5,7 @@
   "+components/autofill/core/common",
   "+components/cdm/renderer",
   "+components/content_settings/core/common",
-  "+components/contextual_search/renderer",
+  "+components/contextual_search/content/renderer",
   "+components/crash/core/common/crash_key.h",
   "+components/crx_file",
   "+components/data_reduction_proxy/content/renderer",
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 3a402fc..78925a9 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -68,7 +68,7 @@
 #include "components/autofill/content/renderer/password_autofill_agent.h"
 #include "components/autofill/content/renderer/password_generation_agent.h"
 #include "components/content_settings/core/common/content_settings_pattern.h"
-#include "components/contextual_search/renderer/overlay_js_render_frame_observer.h"
+#include "components/contextual_search/content/renderer/overlay_js_render_frame_observer.h"
 #include "components/data_reduction_proxy/content/renderer/content_previews_render_frame_observer.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h"
 #include "components/dom_distiller/content/renderer/distillability_agent.h"
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index b9e93f0..a20ccc18 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -2526,6 +2526,7 @@
     "../browser/notifications/notification_permission_context_unittest.cc",
     "../browser/notifications/notification_platform_bridge_chromeos_unittest.cc",
     "../browser/notifications/notification_platform_bridge_mac_unittest.mm",
+    "../browser/notifications/persistent_notification_handler_unittest.cc",
     "../browser/notifications/platform_notification_service_unittest.cc",
     "../browser/notifications/stub_alert_dispatcher_mac.h",
     "../browser/notifications/stub_alert_dispatcher_mac.mm",
diff --git a/chrome/test/chromedriver/chrome/console_logger.cc b/chrome/test/chromedriver/chrome/console_logger.cc
index 578aa09..d8ed6da 100644
--- a/chrome/test/chromedriver/chrome/console_logger.cc
+++ b/chrome/test/chromedriver/chrome/console_logger.cc
@@ -197,29 +197,40 @@
     }
   }
 
-  // TODO(samuong): Handle the case where args.GetSize() > 1. This happens when
-  // the first arg is a printf-style format string. We currently return the
-  // format string to the test client. For details, see
-  // https://bugs.chromium.org/p/chromedriver/issues/detail?id=669
   std::string text;
   const base::ListValue* args = nullptr;
-  const base::DictionaryValue* first_arg = nullptr;
-  if (!params.GetList("args", &args) || args->GetSize() < 1 ||
-      !args->GetDictionary(0, &first_arg)) {
-    return Status(kUnknownError, "missing or invalid args");
-  }
 
   std::string arg_type;
-  if (first_arg->GetString("type", &arg_type) && arg_type == "undefined") {
-    text = "undefined";
-  } else if (!first_arg->GetString("description", &text)) {
-    const base::Value* value = nullptr;
-    if (!first_arg->Get("value", &value))
-      return Status(kUnknownError, "missing or invalid arg value");
-    if (!base::JSONWriter::Write(*value, &text))
-      return Status(kUnknownError, "failed to convert value to text");
+  if (!params.GetList("args", &args) || args->GetSize() < 1) {
+       return Status(kUnknownError, "missing or invalid args");
   }
 
+  int arg_count = args->GetSize();
+  const base::DictionaryValue* current_arg = nullptr;
+  for (int i = 0; i < arg_count; i++) {
+    if (!args->GetDictionary(i, &current_arg)) {
+      std::string error_message = base::StringPrintf("Argument %d is missing or invalid", i);
+      return Status(kUnknownError, error_message );
+    }
+    std::string temp_text;
+    std::string arg_type;
+    if (current_arg->GetString("type", &arg_type) && arg_type == "undefined") {
+      temp_text = "undefined";
+    } else if (!current_arg->GetString("description", &temp_text)) {
+      const base::Value* value = nullptr;
+      if (!current_arg->Get("value", &value)) {
+        return Status(kUnknownError, "missing or invalid arg value");
+      }
+      if (!base::JSONWriter::Write(*value, &temp_text)) {
+        return Status(kUnknownError, "failed to convert value to text");
+      }
+    }
+    // add spaces between the arguments
+    if (i != 0)
+      text += " ";
+    text += temp_text;
+   }
+
   log_->AddEntry(level, "console-api", base::StringPrintf("%s %s %s",
                                                           origin.c_str(),
                                                           line_column.c_str(),
diff --git a/chrome/test/chromedriver/log_replay/client_replay_test.py b/chrome/test/chromedriver/log_replay/client_replay_test.py
index d27a463..4b28d775 100755
--- a/chrome/test/chromedriver/log_replay/client_replay_test.py
+++ b/chrome/test/chromedriver/log_replay/client_replay_test.py
@@ -33,6 +33,15 @@
 sys.path.remove(_TEST_DIR)
 # pylint: enable=g-import-not-at-top, g-bad-import-order
 
+_VERSION_SPECIFIC_NEGATIVE_FILTER = {}
+
+_VERSION_SPECIFIC_NEGATIVE_FILTER["67"] = [
+    # The wording of an error changed between Chrome 67 and 68 that makes
+    # testCloseWindow fail because we compare the newer error in the log
+    # file to the old error given by Chrome 67 and find a difference.
+    "*testCloseWindow"
+]
+
 
 def SubstituteVariableEntries(s):
   """Identifies and removes items that can legitimately vary between runs."""
@@ -197,6 +206,14 @@
   def testChromeBinary(self):
     self.runTest("test_data/testChromeBinary.log")
 
+
+def GetNegativeFilter(chrome_version):
+  if chrome_version in _VERSION_SPECIFIC_FILTER:
+    negative_filter = _VERSION_SPECIFIC_FILTER[chrome_version]
+    return "*-" + ":__main__.".join([""] + negative_filter)
+  return "*"
+
+
 def main():
   usage = "usage: %prog <chromedriver binary> [options]"
   parser = optparse.OptionParser(usage=usage)
@@ -206,11 +223,17 @@
   parser.add_option(
       "", "--chrome", help="Path to the desired Chrome binary.")
   parser.add_option(
-      "", "--filter", type="string", default="*",
-      help="Filter for specifying what tests to run, \"*\" will run all. E.g., "
-      "*testRunMethod")
+      "", "--chrome-version", default="HEAD",
+      help="Version of Chrome. Default is 'HEAD'.")
+  parser.add_option(
+      "", "--filter", type="string", default="",
+      help="Filter for specifying what tests to run, \"*\" will run all,"
+      "including tests excluded by default. E.g., *testRunMethod")
 
+  # Need global to access these from the test runner.
+  # pylint: disable=global-variable-undefined
   global _OPTIONS, _CHROMEDRIVER
+  # pylint: enable=global-variable-undefined
   _OPTIONS, args = parser.parse_args()
   _CHROMEDRIVER = util.GetAbsolutePathOfUserPath(args[0])
   if not os.path.exists(_CHROMEDRIVER):
@@ -222,9 +245,13 @@
 
   all_tests_suite = unittest.defaultTestLoader.loadTestsFromModule(
       sys.modules[__name__])
-  tests = unittest_util.FilterTestSuite(all_tests_suite, _OPTIONS.filter)
+
+  test_filter = (GetNegativeFilter(_OPTIONS.chrome_version)
+                 if _OPTIONS.filter == "" else _OPTIONS.filter)
+
+  tests = unittest_util.FilterTestSuite(all_tests_suite, test_filter)
   result = unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run(tests)
   sys.exit(len(result.failures) + len(result.errors))
 
 if __name__ == "__main__":
-  main()
\ No newline at end of file
+  main()
diff --git a/chrome/test/chromedriver/test/run_all_tests.py b/chrome/test/chromedriver/test/run_all_tests.py
index f2f467b..5abd2b7 100755
--- a/chrome/test/chromedriver/test/run_all_tests.py
+++ b/chrome/test/chromedriver/test/run_all_tests.py
@@ -14,6 +14,7 @@
 import traceback
 
 _THIS_DIR = os.path.abspath(os.path.dirname(__file__))
+_PARENT_DIR = os.path.join(_THIS_DIR, os.pardir)
 sys.path.insert(0, os.path.join(_THIS_DIR, os.pardir))
 
 import archive
@@ -57,6 +58,32 @@
   return cmd
 
 
+def RunReplayTests(chromedriver, chrome=None,
+                   chrome_version=None, chrome_version_name=None):
+  version_info = ''
+  if chrome_version_name:
+    version_info = '(%s)' % chrome_version_name
+  util.MarkBuildStepStart('replay_tests%s' % version_info)
+
+  _, log_path = tempfile.mkstemp(prefix='chromedriver_log_')
+  print 'chromedriver server log: %s' % log_path
+  cmd = [
+    sys.executable,
+    os.path.join(_PARENT_DIR, 'log_replay', 'client_replay_test.py'),
+    chromedriver,
+    '--output-log-path=%s' % log_path
+  ]
+  if chrome:
+    cmd.append('--chrome=%s' % chrome)
+  if chrome_version:
+    cmd.append('--chrome-version=%s' % chrome_version)
+  code = util.RunCommand(cmd)
+
+  if code:
+    util.MarkBuildStepError()
+  return code
+
+
 def RunPythonTests(chromedriver, ref_chromedriver,
                    chrome=None, chrome_version=None,
                    chrome_version_name=None, android_package=None):
@@ -231,7 +258,11 @@
                            chrome_version=version,
                            chrome_version_name='v%s' % version_name,
                            verbose=True)
-      code = code or code1 or code2
+      code3 = RunReplayTests(chromedriver,
+                             chrome=chrome_path,
+                             chrome_version=version,
+                             chrome_version_name='v%s' % version_name)
+      code = code or code1 or code2 or code3
       _KillChromes()
       shutil.rmtree(temp_dir)
     cpp_tests = os.path.join(build_dir, cpp_tests_name)
diff --git a/chrome/test/chromedriver/test/run_py_tests.py b/chrome/test/chromedriver/test/run_py_tests.py
index 4ed1bdba..72a23f35d 100755
--- a/chrome/test/chromedriver/test/run_py_tests.py
+++ b/chrome/test/chromedriver/test/run_py_tests.py
@@ -105,11 +105,6 @@
     'HeadlessInvalidCertificateTest.*',
 ]
 
-_VERSION_SPECIFIC_FILTER['68'] = []
-
-_VERSION_SPECIFIC_FILTER['67'] = []
-
-
 _OS_SPECIFIC_FILTER = {}
 _OS_SPECIFIC_FILTER['win'] = [
     # https://bugs.chromium.org/p/chromedriver/issues/detail?id=299
@@ -1072,11 +1067,11 @@
         '/chromedriver/pending_console_log.html'))
     logs = self._driver.GetLog('browser')
     self.assertEqual('console-api', logs[0]['source'])
-    self.assertTrue('InitialError' in logs[0]['message'])
+    self.assertTrue('"InitialError" 2018 "Third"' in logs[0]['message'])
 
-    self.WaitForCondition(lambda: len(GetPendingLogs(self._driver)) > 0 , 11)
+    self.WaitForCondition(lambda: len(GetPendingLogs(self._driver)) > 0 , 6)
     self.assertEqual('console-api', new_logs[0][0]['source'])
-    self.assertTrue('RepeatedError' in new_logs[0][0]['message'])
+    self.assertTrue('"RepeatedError" "Second" "Third"' in new_logs[0][0]['message'])
 
   def testGetLogOnClosedWindow(self):
     self._driver.Load(self.GetHttpUrlForFile('/chromedriver/page_test.html'))
@@ -2898,9 +2893,9 @@
       '', '--chrome-version', default='HEAD',
       help='Version of chrome. Default is \'HEAD\'.')
   parser.add_option(
-      '', '--filter', type='string', default='*',
-      help=('Filter for specifying what tests to run, "*" will run all. E.g., '
-            '*testStartStop'))
+      "", "--filter", type="string", default="",
+      help="Filter for specifying what tests to run, \"*\" will run all,"
+      "including tests excluded by default. E.g., *testRunMethod")
   parser.add_option(
       '', '--android-package',
       help=('Android package key. Possible values: ' +
@@ -2958,7 +2953,7 @@
   if _ANDROID_PACKAGE_KEY:
     devil_chromium.Initialize()
 
-  if options.filter == '*':
+  if options.filter == '':
     if _ANDROID_PACKAGE_KEY:
       negative_filter = _ANDROID_NEGATIVE_FILTER[_ANDROID_PACKAGE_KEY]
     else:
diff --git a/chrome/test/data/chromedriver/pending_console_log.html b/chrome/test/data/chromedriver/pending_console_log.html
index 7d6257905..d7bf38a 100644
--- a/chrome/test/data/chromedriver/pending_console_log.html
+++ b/chrome/test/data/chromedriver/pending_console_log.html
@@ -3,10 +3,10 @@
   <body>
     <script>
       window.onload = function() {
-        console.error("InitialError");
+        console.error("InitialError", 2018, "Third");
         window.setTimeout(function() {
-          console.error("RepeatedError");
-        }, 10000);
+          console.error("RepeatedError", "Second", "Third");
+        }, 5000);
      };
     </script>
   </body>
diff --git a/chrome/test/data/webui/print_preview/header_test.js b/chrome/test/data/webui/print_preview/header_test.js
index 8da41e0..4eaaaf8 100644
--- a/chrome/test/data/webui/print_preview/header_test.js
+++ b/chrome/test/data/webui/print_preview/header_test.js
@@ -42,13 +42,6 @@
           available: true,
           key: '',
         },
-        pagesPerSheet: {
-          value: 1,
-          unavailableValue: 1,
-          valid: true,
-          available: true,
-          key: '',
-        },
       };
 
       PolymerTest.clearBody();
@@ -114,30 +107,6 @@
       assertEquals('Total: 8 sheets of paper', summary.textContent);
     });
 
-    // Tests that the message is correctly adjusted for N-up.
-    test(assert(TestNames.HeaderWithNup), function() {
-      const summary = header.$$('.summary');
-      assertEquals('Total: 1 sheet of paper', summary.textContent);
-      header.setSetting('pagesPerSheet', 4);
-      assertEquals('Total: 1 sheet of paper', summary.textContent);
-      header.setSetting('pages', [1, 2, 3, 4, 5, 6]);
-      assertEquals('Total: 2 sheets of paper', summary.textContent);
-      header.setSetting('duplex', true);
-      assertEquals('Total: 1 sheet of paper', summary.textContent);
-      header.setSetting('pagesPerSheet', 2);
-      assertEquals('Total: 2 sheets of paper', summary.textContent);
-      header.setSetting('pagesPerSheet', 3);
-      assertEquals('Total: 1 sheet of paper', summary.textContent);
-      header.setSetting('copies', 2);
-      assertEquals('Total: 2 sheets of paper', summary.textContent);
-
-      // Check PDF destination
-      header.setSetting('copies', 1);
-      header.setSetting('duplex', false);
-      setPdfDestination();
-      assertEquals('Total: 2 pages', summary.textContent);
-    });
-
     // Tests that the correct message is shown for non-READY states, and that
     // the print button is disabled appropriately.
     test(assert(TestNames.HeaderChangesForState), function() {
diff --git a/chrome/test/data/webui/print_preview/new_print_preview_ui_browsertest.js b/chrome/test/data/webui/print_preview/new_print_preview_ui_browsertest.js
index 39802b2..cd40879 100644
--- a/chrome/test/data/webui/print_preview/new_print_preview_ui_browsertest.js
+++ b/chrome/test/data/webui/print_preview/new_print_preview_ui_browsertest.js
@@ -270,6 +270,10 @@
   this.runMochaTest(pages_settings_test.TestNames.InvalidPageRanges);
 });
 
+TEST_F('PrintPreviewPagesSettingsTest', 'NupChangesPages', function() {
+  this.runMochaTest(pages_settings_test.TestNames.NupChangesPages);
+});
+
 PrintPreviewRestoreStateTest = class extends NewPrintPreviewTest {
   /** @override */
   get browsePreload() {
@@ -838,11 +842,6 @@
   this.runMochaTest(header_test.TestNames.HeaderWithCopies);
 });
 
-TEST_F('PrintPreviewHeaderTest', 'HeaderWithNup', function() {
-  loadTimeData.overrideValues({pagesPerSheetEnabled: true});
-  this.runMochaTest(header_test.TestNames.HeaderWithNup);
-});
-
 TEST_F('PrintPreviewHeaderTest', 'HeaderChangesForState', function() {
   this.runMochaTest(header_test.TestNames.HeaderChangesForState);
 });
diff --git a/chrome/test/data/webui/print_preview/pages_settings_test.js b/chrome/test/data/webui/print_preview/pages_settings_test.js
index e127dc88..d9b8575 100644
--- a/chrome/test/data/webui/print_preview/pages_settings_test.js
+++ b/chrome/test/data/webui/print_preview/pages_settings_test.js
@@ -7,6 +7,7 @@
   const TestNames = {
     ValidPageRanges: 'valid page ranges',
     InvalidPageRanges: 'invalid page ranges',
+    NupChangesPages: 'nup changes pages',
   };
 
   const suiteName = 'PagesSettingsTest';
@@ -39,6 +40,13 @@
           available: true,
           key: '',
         },
+        pagesPerSheet: {
+          value: 1,
+          unavailableValue: 1,
+          valid: true,
+          available: true,
+          key: '',
+        },
       };
       pagesSection.documentInfo = documentInfo;
       pagesSection.disabled = false;
@@ -73,18 +81,18 @@
       return test_util.eventToPromise('input-change', pagesSection);
     }
 
+    /** @param {!Array<number>} expectedPages The expected pages value. */
+    function validateState(expectedPages) {
+      const pagesValue = pagesSection.getSettingValue('pages');
+      assertEquals(expectedPages.length, pagesValue.length);
+      expectedPages.forEach((page, index) => {
+        assertEquals(page, pagesValue[index]);
+      });
+      assertTrue(pagesSection.$$('.hint').hidden);
+    }
+
     // Tests that the page ranges set are valid for different user inputs.
     test(assert(TestNames.ValidPageRanges), function() {
-      /** @param {!Array<number>} expectedPages The expected pages value. */
-      const validateState = function(expectedPages) {
-        const pagesValue = pagesSection.getSettingValue('pages');
-        assertEquals(expectedPages.length, pagesValue.length);
-        expectedPages.forEach((page, index) => {
-          assertEquals(page, pagesValue[index]);
-        });
-        assertTrue(pagesSection.$$('.hint').hidden);
-      };
-
       const oneToHundred = Array.from({length: 100}, (x, i) => i + 1);
       const tenToHundred = Array.from({length: 91}, (x, i) => i + 10);
 
@@ -126,7 +134,7 @@
       const syntaxError = 'Invalid page range, use e.g. 1-5, 8, 11-13';
 
       /** @param {string} expectedMessage The expected error message. */
-      const validateState = function(expectedMessage) {
+      const validateErrorState = function(expectedMessage) {
         assertFalse(pagesSection.$$('.hint').hidden);
         assertEquals(
             expectedMessage, pagesSection.$$('.hint').textContent.trim());
@@ -134,35 +142,84 @@
 
       return setupInput('10-100000', 100)
           .then(function() {
-            validateState(limitError + '100');
+            validateErrorState(limitError + '100');
             return setupInput('1, 100000', 100);
           })
           .then(function() {
-            validateState(limitError + '100');
+            validateErrorState(limitError + '100');
             return setupInput('1, 2, 0, 56', 100);
           })
           .then(function() {
-            validateState(syntaxError);
+            validateErrorState(syntaxError);
             return setupInput('-1, 1, 2,, 56', 100);
           })
           .then(function() {
-            validateState(syntaxError);
+            validateErrorState(syntaxError);
             return setupInput('1,2,56-40', 100);
           })
           .then(function() {
-            validateState(syntaxError);
+            validateErrorState(syntaxError);
             return setupInput('101-110', 100);
           })
           .then(function() {
-            validateState(limitError + '100');
+            validateErrorState(limitError + '100');
             return setupInput('1\u30012\u30010\u300156', 100);
           })
           .then(function() {
-            validateState(syntaxError);
+            validateErrorState(syntaxError);
             return setupInput('-1,1,2\u3001\u300156', 100);
           })
           .then(function() {
-            validateState(syntaxError);
+            validateErrorState(syntaxError);
+          });
+    });
+
+    // Tests that the pages are set correctly for different values of pages per
+    // sheet, and that ranges remain fixed (since they are used for generating
+    // the print preview ticket).
+    test(assert(TestNames.NupChangesPages), function() {
+      /**
+       * @param {string} rangesValue The desired stringified ranges setting
+       *     value.
+       */
+      const validateRanges = function(rangesValue) {
+        assertEquals(
+            rangesValue,
+            JSON.stringify(pagesSection.getSettingValue('ranges')));
+      };
+      return setupInput('1, 2, 3, 1, 56', 100)
+          .then(function() {
+            const rangesValue =
+                JSON.stringify(pagesSection.getSettingValue('ranges'));
+            validateState([1, 2, 3, 56]);
+            pagesSection.setSetting('pagesPerSheet', 2);
+            validateRanges(rangesValue);
+            validateState([1, 2]);
+            pagesSection.setSetting('pagesPerSheet', 4);
+            validateRanges(rangesValue);
+            validateState([1]);
+            pagesSection.setSetting('pagesPerSheet', 1);
+            return setupInput('1-3, 6-9, 6-10', 100);
+          })
+          .then(function() {
+            const rangesValue =
+                JSON.stringify(pagesSection.getSettingValue('ranges'));
+            validateState([1, 2, 3, 6, 7, 8, 9, 10]);
+            pagesSection.setSetting('pagesPerSheet', 2);
+            validateRanges(rangesValue);
+            validateState([1, 2, 3, 4]);
+            pagesSection.setSetting('pagesPerSheet', 3);
+            validateRanges(rangesValue);
+            validateState([1, 2, 3]);
+            return setupInput('1-3', 100);
+          })
+          .then(function() {
+            const rangesValue =
+                JSON.stringify(pagesSection.getSettingValue('ranges'));
+            validateState([1]);
+            pagesSection.setSetting('pagesPerSheet', 1);
+            validateRanges(rangesValue);
+            validateState([1, 2, 3]);
           });
     });
   });
diff --git a/chrome/test/data/webui/print_preview/preview_generation_test.js b/chrome/test/data/webui/print_preview/preview_generation_test.js
index 9b44d7d..b79b50e 100644
--- a/chrome/test/data/webui/print_preview/preview_generation_test.js
+++ b/chrome/test/data/webui/print_preview/preview_generation_test.js
@@ -110,6 +110,7 @@
       return initialize()
           .then(function(args) {
             const originalTicket = JSON.parse(args.printTicket);
+            assertEquals(0, originalTicket.requestID);
             assertEquals(initialTicketValue, originalTicket[ticketKey]);
             nativeLayer.resetResolver('getPreview');
             assertEquals(
@@ -122,7 +123,7 @@
                 updatedSettingValue, page.getSettingValue(settingName));
             const ticket = JSON.parse(args.printTicket);
             assertEquals(updatedTicketValue, ticket[ticketKey]);
-            assertEquals(2, ticket.requestID);
+            assertEquals(1, ticket.requestID);
           });
     }
 
@@ -183,6 +184,7 @@
             assertEquals(
                 letterOption.height_microns,
                 originalTicket.mediaSize.height_microns);
+            assertEquals(0, originalTicket.requestID);
             nativeLayer.resetResolver('getPreview');
             const mediaSizeSetting = page.getSettingValue('mediaSize');
             assertEquals(
@@ -206,7 +208,7 @@
             assertEquals(
                 squareOption.height_microns, ticket.mediaSize.height_microns);
             nativeLayer.resetResolver('getPreview');
-            assertEquals(2, ticket.requestID);
+            assertEquals(1, ticket.requestID);
           });
     });
 
diff --git a/chrome/test/ppapi/ppapi_test.cc b/chrome/test/ppapi/ppapi_test.cc
index 6eb5f4f4..f0d8d66 100644
--- a/chrome/test/ppapi/ppapi_test.cc
+++ b/chrome/test/ppapi/ppapi_test.cc
@@ -155,7 +155,7 @@
 }
 
 GURL PPAPITestBase::GetTestFileUrl(const std::string& test_case) {
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   base::FilePath test_path;
   EXPECT_TRUE(base::PathService::Get(base::DIR_SOURCE_ROOT, &test_path));
   test_path = test_path.Append(FILE_PATH_LITERAL("ppapi"));
diff --git a/chromecast/browser/tts/tts_controller.h b/chromecast/browser/tts/tts_controller.h
index 0a533ca7..30d7e51 100644
--- a/chromecast/browser/tts/tts_controller.h
+++ b/chromecast/browser/tts/tts_controller.h
@@ -2,10 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// PLEASE NOTE: this is a copy with modifications from chrome/browser/speech.
-// It is temporary until a refactoring to move the chrome TTS implementation up
-// into components and extensions/components can be completed.
-
 #ifndef CHROMECAST_BROWSER_TTS_TTS_CONTROLLER_H_
 #define CHROMECAST_BROWSER_TTS_TTS_CONTROLLER_H_
 
@@ -24,11 +20,11 @@
 
 namespace base {
 class Value;
-}
+}  // namespace base
 
 namespace content {
 class BrowserContext;
-}
+}  // namespace content
 
 // Events sent back from the TTS engine indicating the progress.
 enum TtsEventType {
@@ -68,7 +64,7 @@
   std::string name;
   std::string lang;
   TtsGenderType gender;
-  std::string extension_id;
+  std::string extension_id;  // Not used in cast.
   std::set<TtsEventType> events;
 
   // If true, the synthesis engine is a remote network resource.
@@ -91,14 +87,6 @@
                           const std::string& error_message) = 0;
 };
 
-// Class that wants to be notified when the set of
-// voices has changed.
-class VoicesChangedDelegate {
- public:
-  virtual ~VoicesChangedDelegate() {}
-  virtual void OnVoicesChanged() = 0;
-};
-
 // One speech utterance.
 class Utterance {
  public:
@@ -234,9 +222,9 @@
   bool finished_;
 };
 
-// Singleton class that manages text-to-speech for the TTS and TTS engine
-// extension APIs, maintaining a queue of pending utterances and keeping
-// track of all state.
+// Singleton class that manages text-to-speech for the TTS extension APIs,
+// potentially maintaining a queue of pending utterances and keeping track of
+// all state.
 class TtsController {
  public:
   virtual ~TtsController() = default;
@@ -279,22 +267,6 @@
   virtual void GetVoices(content::BrowserContext* browser_context,
                          std::vector<VoiceData>* out_voices) = 0;
 
-  // Called by the extension system or platform implementation when the
-  // list of voices may have changed and should be re-queried.
-  virtual void VoicesChanged() = 0;
-
-  // Add a delegate that wants to be notified when the set of voices changes.
-  virtual void AddVoicesChangedDelegate(VoicesChangedDelegate* delegate) = 0;
-
-  // Remove delegate that wants to be notified when the set of voices changes.
-  virtual void RemoveVoicesChangedDelegate(VoicesChangedDelegate* delegate) = 0;
-
-  // Remove delegate that wants to be notified when an utterance fires an event.
-  // Note: this cancels speech from any utterance with this delegate, and
-  // removes any utterances with this delegate from the queue.
-  virtual void RemoveUtteranceEventDelegate(
-      UtteranceEventDelegate* delegate) = 0;
-
   // For unit testing.
   virtual int QueueSize() = 0;
 };
diff --git a/chromecast/browser/tts/tts_controller_impl.cc b/chromecast/browser/tts/tts_controller_impl.cc
index 1d55507..4394430c 100644
--- a/chromecast/browser/tts/tts_controller_impl.cc
+++ b/chromecast/browser/tts/tts_controller_impl.cc
@@ -2,10 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// PLEASE NOTE: this is a copy with modifications from chrome/browser/speech.
-// It is temporary until a refactoring to move the chrome TTS implementation up
-// into components and extensions/components can be completed.
-
 #include "chromecast/browser/tts/tts_controller_impl.h"
 
 #include <stddef.h>
@@ -171,11 +167,6 @@
 }
 
 void TtsControllerImpl::SpeakNow(Utterance* utterance) {
-  // Ensure we have all built-in voices loaded. This is a no-op if already
-  // loaded.
-  bool loaded_built_in =
-      GetPlatformImpl()->LoadBuiltInTtsExtension(utterance->browser_context());
-
   // Get all available voices and try to find a matching voice.
   std::vector<VoiceData> voices;
   GetVoices(utterance->browser_context(), &voices);
@@ -234,17 +225,8 @@
     bool success = GetPlatformImpl()->Speak(utterance->id(), utterance->text(),
                                             utterance->lang(), voice,
                                             utterance->continuous_parameters());
-    if (!success)
-      current_utterance_ = nullptr;
-
-    // If the native voice wasn't able to process this speech, see if
-    // the browser has built-in TTS that isn't loaded yet.
-    if (!success && loaded_built_in) {
-      utterance_queue_.push(utterance);
-      return;
-    }
-
     if (!success) {
+      current_utterance_ = nullptr;
       utterance->OnTtsEvent(TTS_EVENT_ERROR, kInvalidCharIndex,
                             GetPlatformImpl()->error());
       delete utterance;
@@ -353,7 +335,6 @@
   if (platform_impl) {
     // Ensure we have all built-in voices loaded. This is a no-op if already
     // loaded.
-    platform_impl->LoadBuiltInTtsExtension(browser_context);
     if (platform_impl->PlatformImplAvailable())
       platform_impl->GetVoices(out_voices);
   }
@@ -525,51 +506,3 @@
     volume = blink::SpeechSynthesisConstants::kDefaultTextToSpeechVolume;
   utterance->set_continuous_parameters(rate, pitch, volume);
 }
-
-void TtsControllerImpl::VoicesChanged() {
-  // Existence of platform tts indicates explicit requests to tts. Since
-  // |VoicesChanged| can occur implicitly, only send if needed.
-  if (!GetPlatformImpl())
-    return;
-
-  for (std::set<VoicesChangedDelegate*>::iterator iter =
-           voices_changed_delegates_.begin();
-       iter != voices_changed_delegates_.end(); ++iter) {
-    (*iter)->OnVoicesChanged();
-  }
-}
-
-void TtsControllerImpl::AddVoicesChangedDelegate(
-    VoicesChangedDelegate* delegate) {
-  voices_changed_delegates_.insert(delegate);
-}
-
-void TtsControllerImpl::RemoveVoicesChangedDelegate(
-    VoicesChangedDelegate* delegate) {
-  voices_changed_delegates_.erase(delegate);
-}
-
-void TtsControllerImpl::RemoveUtteranceEventDelegate(
-    UtteranceEventDelegate* delegate) {
-  // First clear any pending utterances with this delegate.
-  base::queue<Utterance*> old_queue = utterance_queue_;
-  utterance_queue_ = base::queue<Utterance*>();
-  while (!old_queue.empty()) {
-    Utterance* utterance = old_queue.front();
-    old_queue.pop();
-    if (utterance->event_delegate() != delegate)
-      utterance_queue_.push(utterance);
-    else
-      delete utterance;
-  }
-
-  if (current_utterance_ && current_utterance_->event_delegate() == delegate) {
-    current_utterance_->set_event_delegate(nullptr);
-    GetPlatformImpl()->clear_error();
-    GetPlatformImpl()->StopSpeaking();
-
-    FinishCurrentUtterance();
-    if (!paused_)
-      SpeakNextUtterance();
-  }
-}
diff --git a/chromecast/browser/tts/tts_controller_impl.h b/chromecast/browser/tts/tts_controller_impl.h
index ae7d675..5282d9d8 100644
--- a/chromecast/browser/tts/tts_controller_impl.h
+++ b/chromecast/browser/tts/tts_controller_impl.h
@@ -2,10 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// PLEASE NOTE: this is a copy with modifications from chrome/browser/speech.
-// It is temporary until a refactoring to move the chrome TTS implementation up
-// into components and extensions/components can be completed.
-
 #ifndef CHROMECAST_BROWSER_TTS_TTS_CONTROLLER_IMPL_H_
 #define CHROMECAST_BROWSER_TTS_TTS_CONTROLLER_IMPL_H_
 
@@ -23,7 +19,7 @@
 
 namespace content {
 class BrowserContext;
-}
+}  // namespace content
 
 // Singleton class that manages text-to-speech for the TTS and TTS engine
 // extension APIs, maintaining a queue of pending utterances and keeping
@@ -45,10 +41,6 @@
                   const std::string& error_message) override;
   void GetVoices(content::BrowserContext* browser_context,
                  std::vector<VoiceData>* out_voices) override;
-  void VoicesChanged() override;
-  void AddVoicesChangedDelegate(VoicesChangedDelegate* delegate) override;
-  void RemoveVoicesChangedDelegate(VoicesChangedDelegate* delegate) override;
-  void RemoveUtteranceEventDelegate(UtteranceEventDelegate* delegate) override;
   void SetPlatformImpl(std::unique_ptr<TtsPlatformImpl> platform_impl) override;
   int QueueSize() override;
 
@@ -86,8 +78,6 @@
   // pulled from user prefs, and may not be the same as other platforms.
   void UpdateUtteranceDefaults(Utterance* utterance);
 
-  friend struct base::DefaultSingletonTraits<TtsControllerImpl>;
-
   // The current utterance being spoken.
   Utterance* current_utterance_;
 
@@ -97,9 +87,6 @@
   // A queue of utterances to speak after the current one finishes.
   base::queue<Utterance*> utterance_queue_;
 
-  // A set of delegates that want to be notified when the voices change.
-  std::set<VoicesChangedDelegate*> voices_changed_delegates_;
-
   // A pointer to the platform implementation of text-to-speech.
   std::unique_ptr<TtsPlatformImpl> platform_impl_;
 
diff --git a/chromecast/browser/tts/tts_controller_unittest.cc b/chromecast/browser/tts/tts_controller_unittest.cc
index 85290f05..0e3a777a 100644
--- a/chromecast/browser/tts/tts_controller_unittest.cc
+++ b/chromecast/browser/tts/tts_controller_unittest.cc
@@ -2,10 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// PLEASE NOTE: this is a copy with modifications from chrome/browser/speech.
-// It is temporary until a refactoring to move the chrome TTS implementation up
-// into components and extensions/components can be completed.
-
 // Unit tests for the TTS Controller.
 
 #include "base/values.h"
@@ -16,6 +12,8 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/platform/web_speech_synthesis_constants.h"
 
+namespace chromecast {
+
 class TtsControllerTest : public testing::Test {};
 
 // Platform Tts implementation that does nothing.
@@ -155,41 +153,4 @@
   }
 }
 
-#if defined(OS_CHROMEOS)
-TEST_F(TtsControllerTest, TestTtsControllerUtteranceDefaults) {
-  std::unique_ptr<TestableTtsController> controller =
-      std::make_unique<TestableTtsController>();
-
-  std::unique_ptr<Utterance> utterance1 = std::make_unique<Utterance>(nullptr);
-  // Initialized to default (unset constant) values.
-  EXPECT_EQ(blink::SpeechSynthesisConstants::kDoublePrefNotSet,
-            utterance1->continuous_parameters().rate);
-  EXPECT_EQ(blink::SpeechSynthesisConstants::kDoublePrefNotSet,
-            utterance1->continuous_parameters().pitch);
-  EXPECT_EQ(blink::SpeechSynthesisConstants::kDoublePrefNotSet,
-            utterance1->continuous_parameters().volume);
-
-  controller->UpdateUtteranceDefaults(utterance1.get());
-  // Updated to global defaults.
-  EXPECT_EQ(blink::SpeechSynthesisConstants::kDefaultTextToSpeechRate,
-            utterance1->continuous_parameters().rate);
-  EXPECT_EQ(blink::SpeechSynthesisConstants::kDefaultTextToSpeechPitch,
-            utterance1->continuous_parameters().pitch);
-  EXPECT_EQ(blink::SpeechSynthesisConstants::kDefaultTextToSpeechVolume,
-            utterance1->continuous_parameters().volume);
-
-  // Now we will set prefs and expect those to be used as defaults.
-  TestingPrefServiceSimple pref_service_;
-  pref_service_.registry()->RegisterDoublePref(prefs::kTextToSpeechRate, 1.5);
-  pref_service_.registry()->RegisterDoublePref(prefs::kTextToSpeechPitch, 2.0);
-  pref_service_.registry()->RegisterDoublePref(prefs::kTextToSpeechVolume, 0.5);
-
-  controller->pref_service_for_testing_ = &pref_service_;
-  std::unique_ptr<Utterance> utterance2 = std::make_unique<Utterance>(nullptr);
-  controller->UpdateUtteranceDefaults(utterance2.get());
-  // Updated to pref values.
-  EXPECT_EQ(1.5f, utterance2->continuous_parameters().rate);
-  EXPECT_EQ(2.0f, utterance2->continuous_parameters().pitch);
-  EXPECT_EQ(0.5f, utterance2->continuous_parameters().volume);
-}
-#endif  // defined(OS_CHROMEOS)
+}  // namespace chromecast
diff --git a/chromecast/browser/tts/tts_platform.cc b/chromecast/browser/tts/tts_platform.cc
index e9377789..480574f 100644
--- a/chromecast/browser/tts/tts_platform.cc
+++ b/chromecast/browser/tts/tts_platform.cc
@@ -2,19 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// PLEASE NOTE: this is a copy with modifications from chrome/browser/speech.
-// It is temporary until a refactoring to move the chrome TTS implementation up
-// into components and extensions/components can be completed.
-
 #include "chromecast/browser/tts/tts_platform.h"
 
 #include <string>
 
-bool TtsPlatformImpl::LoadBuiltInTtsExtension(
-    content::BrowserContext* browser_context) {
-  return false;
-}
-
 std::string TtsPlatformImpl::error() {
   return error_;
 }
diff --git a/chromecast/browser/tts/tts_platform.h b/chromecast/browser/tts/tts_platform.h
index 8f0d673c..258313b 100644
--- a/chromecast/browser/tts/tts_platform.h
+++ b/chromecast/browser/tts/tts_platform.h
@@ -2,10 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// PLEASE NOTE: this is a copy with modifications from chrome/browser/speech.
-// It is temporary until a refactoring to move the chrome TTS implementation up
-// into components and extensions/components can be completed.
-
 #ifndef CHROMECAST_BROWSER_TTS_TTS_PLATFORM_H_
 #define CHROMECAST_BROWSER_TTS_TTS_PLATFORM_H_
 
@@ -30,14 +26,6 @@
   // Returns true if this platform implementation is supported and available.
   virtual bool PlatformImplAvailable() = 0;
 
-  // Some platforms may provide a built-in TTS extension. Returns true
-  // if the extension was not previously loaded and is now loading, and
-  // false if it's already loaded or if there's no extension to load.
-  // Will call TtsController::RetrySpeakingQueuedUtterances when
-  // the extension finishes loading.
-  virtual bool LoadBuiltInTtsExtension(
-      content::BrowserContext* browser_context);
-
   // Speak the given utterance with the given parameters if possible,
   // and return true on success. Utterance will always be nonempty.
   // If rate, pitch, or volume are -1.0, they will be ignored.
diff --git a/chromecast/common/BUILD.gn b/chromecast/common/BUILD.gn
index 0c96f40..b4faf3f2 100644
--- a/chromecast/common/BUILD.gn
+++ b/chromecast/common/BUILD.gn
@@ -28,6 +28,8 @@
 
   if (enable_chromecast_extensions) {
     sources += [
+      "cast_extensions_api_provider.cc",
+      "cast_extensions_api_provider.h",
       "cast_extensions_client.cc",
       "cast_extensions_client.h",
       "cast_redirect_manifest_handler.cc",
@@ -46,6 +48,7 @@
       "//components/version_info",
       "//extensions:extensions_resources_grd_grit",
       "//extensions/common",
+      "//extensions/common:core_api_provider",
       "//extensions/common/api",
       "//extensions/shell:resources",
       "//extensions/shell:resources_grit",
diff --git a/chromecast/common/cast_extensions_api_provider.cc b/chromecast/common/cast_extensions_api_provider.cc
new file mode 100644
index 0000000..a3598fe
--- /dev/null
+++ b/chromecast/common/cast_extensions_api_provider.cc
@@ -0,0 +1,51 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromecast/common/cast_extensions_api_provider.h"
+
+#include "chromecast/common/extensions_api/cast_api_features.h"
+#include "chromecast/common/extensions_api/cast_api_permissions.h"
+#include "chromecast/common/extensions_api/cast_manifest_features.h"
+#include "chromecast/common/extensions_api/cast_permission_features.h"
+#include "chromecast/common/extensions_api/generated_schemas.h"
+#include "extensions/common/features/json_feature_provider_source.h"
+#include "extensions/shell/grit/app_shell_resources.h"
+
+namespace extensions {
+
+CastExtensionsAPIProvider::CastExtensionsAPIProvider() = default;
+CastExtensionsAPIProvider::~CastExtensionsAPIProvider() = default;
+
+void CastExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) {
+  AddCastAPIFeatures(provider);
+}
+
+void CastExtensionsAPIProvider::AddManifestFeatures(FeatureProvider* provider) {
+  AddCastManifestFeatures(provider);
+}
+
+void CastExtensionsAPIProvider::AddPermissionFeatures(
+    FeatureProvider* provider) {
+  AddCastPermissionFeatures(provider);
+}
+
+void CastExtensionsAPIProvider::AddBehaviorFeatures(FeatureProvider* provider) {
+  // Note: No cast-specific behavior features.
+}
+
+void CastExtensionsAPIProvider::AddAPIJSONSources(
+    JSONFeatureProviderSource* json_source) {
+  json_source->LoadJSON(IDR_SHELL_EXTENSION_API_FEATURES);
+}
+
+bool CastExtensionsAPIProvider::IsAPISchemaGenerated(const std::string& name) {
+  return cast::api::CastGeneratedSchemas::IsGenerated(name);
+}
+
+base::StringPiece CastExtensionsAPIProvider::GetAPISchema(
+    const std::string& name) {
+  return cast::api::CastGeneratedSchemas::Get(name);
+}
+
+}  // namespace extensions
diff --git a/chromecast/common/cast_extensions_api_provider.h b/chromecast/common/cast_extensions_api_provider.h
new file mode 100644
index 0000000..22bde97
--- /dev/null
+++ b/chromecast/common/cast_extensions_api_provider.h
@@ -0,0 +1,33 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMECAST_COMMON_CAST_EXTENSIONS_API_PROVIDER_H_
+#define CHROMECAST_COMMON_CAST_EXTENSIONS_API_PROVIDER_H_
+
+#include "base/macros.h"
+#include "extensions/common/extensions_api_provider.h"
+
+namespace extensions {
+
+class CastExtensionsAPIProvider : public ExtensionsAPIProvider {
+ public:
+  CastExtensionsAPIProvider();
+  ~CastExtensionsAPIProvider() override;
+
+  // ExtensionsAPIProvider:
+  void AddAPIFeatures(FeatureProvider* provider) override;
+  void AddManifestFeatures(FeatureProvider* provider) override;
+  void AddPermissionFeatures(FeatureProvider* provider) override;
+  void AddBehaviorFeatures(FeatureProvider* provider) override;
+  void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override;
+  bool IsAPISchemaGenerated(const std::string& name) override;
+  base::StringPiece GetAPISchema(const std::string& name) override;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(CastExtensionsAPIProvider);
+};
+
+}  // namespace extensions
+
+#endif  // CHROMECAST_COMMON_CAST_EXTENSIONS_API_PROVIDER_H_
diff --git a/chromecast/common/cast_extensions_client.cc b/chromecast/common/cast_extensions_client.cc
index 6072c57a2..74855f1 100644
--- a/chromecast/common/cast_extensions_client.cc
+++ b/chromecast/common/cast_extensions_client.cc
@@ -10,13 +10,9 @@
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/no_destructor.h"
+#include "chromecast/common/cast_extensions_api_provider.h"
 #include "chromecast/common/cast_redirect_manifest_handler.h"
 #include "chromecast/common/extensions_api/cast_aliases.h"
-#include "chromecast/common/extensions_api/cast_api_features.h"
-#include "chromecast/common/extensions_api/cast_api_permissions.h"
-#include "chromecast/common/extensions_api/cast_manifest_features.h"
-#include "chromecast/common/extensions_api/cast_permission_features.h"
-#include "chromecast/common/extensions_api/generated_schemas.h"
 #include "components/version_info/version_info.h"
 #include "content/public/common/user_agent.h"
 #include "extensions/common/api/api_features.h"
@@ -25,10 +21,10 @@
 #include "extensions/common/api/manifest_features.h"
 #include "extensions/common/api/permission_features.h"
 #include "extensions/common/common_manifest_handlers.h"
+#include "extensions/common/core_extensions_api_provider.h"
 #include "extensions/common/extension_urls.h"
 #include "extensions/common/extensions_aliases.h"
 #include "extensions/common/features/feature_provider.h"
-#include "extensions/common/features/json_feature_provider_source.h"
 #include "extensions/common/features/manifest_feature.h"
 #include "extensions/common/features/simple_feature.h"
 #include "extensions/common/manifest_handler.h"
@@ -38,8 +34,6 @@
 #include "extensions/common/permissions/permissions_info.h"
 #include "extensions/common/permissions/permissions_provider.h"
 #include "extensions/common/url_pattern_set.h"
-#include "extensions/grit/extensions_resources.h"
-#include "extensions/shell/grit/app_shell_resources.h"
 
 namespace extensions {
 
@@ -88,7 +82,10 @@
 CastExtensionsClient::CastExtensionsClient()
     : extensions_api_permissions_(ExtensionsAPIPermissions()),
       webstore_base_url_(extension_urls::kChromeWebstoreBaseURL),
-      webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) {}
+      webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) {
+  AddAPIProvider(std::make_unique<CoreExtensionsAPIProvider>());
+  AddAPIProvider(std::make_unique<CastExtensionsAPIProvider>());
+}
 
 CastExtensionsClient::~CastExtensionsClient() {}
 
@@ -119,36 +116,6 @@
   return "cast_shell";
 }
 
-std::unique_ptr<FeatureProvider> CastExtensionsClient::CreateFeatureProvider(
-    const std::string& name) const {
-  auto provider = std::make_unique<FeatureProvider>();
-  if (name == "api") {
-    AddCoreAPIFeatures(provider.get());
-    AddCastAPIFeatures(provider.get());
-  } else if (name == "manifest") {
-    AddCoreManifestFeatures(provider.get());
-    AddCastManifestFeatures(provider.get());
-  } else if (name == "permission") {
-    AddCorePermissionFeatures(provider.get());
-    AddCastPermissionFeatures(provider.get());
-  } else if (name == "behavior") {
-    // Note: There are no cast-specific behavior features.
-    AddCoreBehaviorFeatures(provider.get());
-  } else {
-    NOTREACHED();
-  }
-  return provider;
-}
-
-std::unique_ptr<JSONFeatureProviderSource>
-CastExtensionsClient::CreateAPIFeatureSource() const {
-  std::unique_ptr<JSONFeatureProviderSource> source(
-      new JSONFeatureProviderSource("api"));
-  source->LoadJSON(IDR_EXTENSION_API_FEATURES);
-  source->LoadJSON(IDR_SHELL_EXTENSION_API_FEATURES);
-  return source;
-}
-
 void CastExtensionsClient::FilterHostPermissions(
     const URLPatternSet& hosts,
     URLPatternSet* new_hosts,
@@ -180,21 +147,6 @@
   return true;
 }
 
-bool CastExtensionsClient::IsAPISchemaGenerated(const std::string& name) const {
-  return api::GeneratedSchemas::IsGenerated(name) ||
-         cast::api::CastGeneratedSchemas::IsGenerated(name);
-}
-
-base::StringPiece CastExtensionsClient::GetAPISchema(
-    const std::string& name) const {
-  // Schema for cast_shell-only APIs.
-  if (cast::api::CastGeneratedSchemas::IsGenerated(name))
-    return cast::api::CastGeneratedSchemas::Get(name);
-
-  // Core extensions APIs.
-  return api::GeneratedSchemas::Get(name);
-}
-
 bool CastExtensionsClient::ShouldSuppressFatalErrors() const {
   return true;
 }
diff --git a/chromecast/common/cast_extensions_client.h b/chromecast/common/cast_extensions_client.h
index 732d50d3..d636b159 100644
--- a/chromecast/common/cast_extensions_client.h
+++ b/chromecast/common/cast_extensions_client.h
@@ -26,10 +26,6 @@
   const PermissionMessageProvider& GetPermissionMessageProvider()
       const override;
   const std::string GetProductName() override;
-  std::unique_ptr<FeatureProvider> CreateFeatureProvider(
-      const std::string& name) const override;
-  std::unique_ptr<JSONFeatureProviderSource> CreateAPIFeatureSource()
-      const override;
   void FilterHostPermissions(const URLPatternSet& hosts,
                              URLPatternSet* new_hosts,
                              PermissionIDSet* permissions) const override;
@@ -39,8 +35,6 @@
       const Extension* extension,
       const APIPermissionSet& api_permissions) const override;
   bool IsScriptableURL(const GURL& url, std::string* error) const override;
-  bool IsAPISchemaGenerated(const std::string& name) const override;
-  base::StringPiece GetAPISchema(const std::string& name) const override;
   bool ShouldSuppressFatalErrors() const override;
   void RecordDidSuppressFatalError() override;
   const GURL& GetWebstoreBaseURL() const override;
diff --git a/chromecast/common/extensions_api/automation.idl b/chromecast/common/extensions_api/automation.idl
index 718e52a..e63ede0f 100644
--- a/chromecast/common/extensions_api/automation.idl
+++ b/chromecast/common/extensions_api/automation.idl
@@ -256,6 +256,7 @@
 
   // Describes characteristics of an $(ref:automation.AutomationNode).
   enum StateType {
+    autofillAvailable,
     collapsed,
     default,
     editable,
diff --git a/chromecast/device/bluetooth/le/gatt_client_manager_impl.cc b/chromecast/device/bluetooth/le/gatt_client_manager_impl.cc
index 5de9679..341ff55f 100644
--- a/chromecast/device/bluetooth/le/gatt_client_manager_impl.cc
+++ b/chromecast/device/bluetooth/le/gatt_client_manager_impl.cc
@@ -4,12 +4,15 @@
 
 #include "chromecast/device/bluetooth/le/gatt_client_manager_impl.h"
 
+#include <string>
+
 #include "base/bind.h"
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
 #include "base/run_loop.h"
 #include "base/stl_util.h"
 #include "chromecast/base/bind_to_task_runner.h"
+#include "chromecast/device/bluetooth/bluetooth_util.h"
 #include "chromecast/device/bluetooth/le/remote_characteristic_impl.h"
 #include "chromecast/device/bluetooth/le/remote_descriptor_impl.h"
 #include "chromecast/device/bluetooth/le/remote_device_impl.h"
@@ -42,6 +45,9 @@
 
 }  // namespace
 
+// static
+constexpr base::TimeDelta GattClientManagerImpl::kConnectTimeout;
+
 GattClientManagerImpl::GattClientManagerImpl(
     bluetooth_v2_shlib::GattClient* gatt_client)
     : gatt_client_(gatt_client),
@@ -162,12 +168,15 @@
 
   it->second->SetConnected(connected);
   if (connected) {
+    // We won't declare the device connected until service discovery completes,
+    // so we won't start next Connect request until then.
     connected_devices_.insert(addr);
   } else {
     connected_devices_.erase(addr);
     if (!pending_connect_requests_.empty() &&
         addr == pending_connect_requests_.front()) {
       pending_connect_requests_.pop_front();
+      connect_timeout_timer_.Stop();
       RunQueuedConnectRequest();
     } else {
       base::Erase(pending_connect_requests_, addr);
@@ -300,6 +309,7 @@
   }
 
   pending_connect_requests_.pop_front();
+  connect_timeout_timer_.Stop();
   // Try to run the next Connect request
   RunQueuedConnectRequest();
 }
@@ -351,6 +361,11 @@
 
     addr = pending_connect_requests_.front();
   }
+
+  connect_timeout_timer_.Start(
+      FROM_HERE, kConnectTimeout,
+      base::BindRepeating(&GattClientManagerImpl::OnConnectTimeout, weak_this_,
+                          addr));
 }
 
 void GattClientManagerImpl::RunQueuedReadRemoteRssiRequest() {
@@ -378,6 +393,26 @@
   }
 }
 
+void GattClientManagerImpl::OnConnectTimeout(
+    const bluetooth_v2_shlib::Addr& addr) {
+  DCHECK(io_task_runner_->BelongsToCurrentThread());
+  // Get the last byte because whole address is PII.
+  std::string addr_str = util::AddrToString(addr);
+  addr_str = addr_str.substr(addr_str.size() - 2);
+
+  LOG(ERROR) << "Connect (" << addr_str << ")"
+             << " timed out. Disconnecting";
+
+  if (connected_devices_.find(addr) != connected_devices_.end()) {
+    // Connect times out before OnGetServices is received.
+    gatt_client_->Disconnect(addr);
+  } else {
+    // Connect times out before OnConnectChanged is received.
+    RUN_ON_IO_THREAD(OnConnectChanged, addr, false /* status */,
+                     false /* connected */);
+  }
+}
+
 // static
 void GattClientManagerImpl::FinalizeOnIoThread(
     std::unique_ptr<base::WeakPtrFactory<GattClientManagerImpl>> weak_factory) {
diff --git a/chromecast/device/bluetooth/le/gatt_client_manager_impl.h b/chromecast/device/bluetooth/le/gatt_client_manager_impl.h
index 668efd82..32601a8 100644
--- a/chromecast/device/bluetooth/le/gatt_client_manager_impl.h
+++ b/chromecast/device/bluetooth/le/gatt_client_manager_impl.h
@@ -12,6 +12,7 @@
 
 #include "base/observer_list_threadsafe.h"
 #include "base/single_thread_task_runner.h"
+#include "base/timer/timer.h"
 #include "chromecast/device/bluetooth/le/gatt_client_manager.h"
 #include "chromecast/device/bluetooth/shlib/gatt_client.h"
 
@@ -24,6 +25,11 @@
     : public GattClientManager,
       public bluetooth_v2_shlib::Gatt::Client::Delegate {
  public:
+  // If a Connect request takes longer than this amount of time, we will treat
+  // it as a Connect failure.
+  static constexpr base::TimeDelta kConnectTimeout =
+      base::TimeDelta::FromSeconds(40);
+
   explicit GattClientManagerImpl(bluetooth_v2_shlib::GattClient* gatt_client);
   ~GattClientManagerImpl() override;
 
@@ -95,6 +101,8 @@
   void RunQueuedConnectRequest();
   void RunQueuedReadRemoteRssiRequest();
 
+  void OnConnectTimeout(const bluetooth_v2_shlib::Addr& addr);
+
   static void FinalizeOnIoThread(
       std::unique_ptr<base::WeakPtrFactory<GattClientManagerImpl>>
           weak_factory);
@@ -112,6 +120,10 @@
       addr_to_device_;
   std::set<bluetooth_v2_shlib::Addr> connected_devices_;
 
+  // Timer for pending Connect requests. If any Connect request times out, we
+  // will treat it as a Connect failure.
+  base::OneShotTimer connect_timeout_timer_;
+
   // Queue for concurrent Connect requests.
   std::deque<bluetooth_v2_shlib::Addr> pending_connect_requests_;
 
diff --git a/chromecast/device/bluetooth/le/gatt_client_manager_impl_test.cc b/chromecast/device/bluetooth/le/gatt_client_manager_impl_test.cc
index c02a28f0..9093e0cb 100644
--- a/chromecast/device/bluetooth/le/gatt_client_manager_impl_test.cc
+++ b/chromecast/device/bluetooth/le/gatt_client_manager_impl_test.cc
@@ -305,6 +305,50 @@
   base::RunLoop().RunUntilIdle();
 }
 
+TEST_F(GattClientManagerTest, ConnectTimeout) {
+  scoped_refptr<RemoteDevice> device = GetDevice(kTestAddr1);
+
+  // Issue a Connect request
+  EXPECT_CALL(*gatt_client_, Connect(kTestAddr1)).WillOnce(Return(true));
+  device->Connect(cb_.Get());
+
+  // Let Connect request timeout
+  base::TestMockTimeTaskRunner::ScopedContext context(fake_task_runner_);
+  // We should expect to receive Connect failure message
+  EXPECT_CALL(cb_, Run(false));
+  fake_task_runner_->FastForwardBy(GattClientManagerImpl::kConnectTimeout);
+  EXPECT_FALSE(device->IsConnected());
+}
+
+TEST_F(GattClientManagerTest, GetServicesTimeout) {
+  bluetooth_v2_shlib::Gatt::Client::Delegate* delegate =
+      gatt_client_->delegate();
+
+  scoped_refptr<RemoteDevice> device = GetDevice(kTestAddr1);
+
+  // Issue a Connect request and let Connect succeed
+  EXPECT_CALL(*gatt_client_, Connect(kTestAddr1)).WillOnce(Return(true));
+  device->Connect(cb_.Get());
+  EXPECT_CALL(*gatt_client_, GetServices(kTestAddr1)).WillOnce(Return(true));
+  delegate->OnConnectChanged(kTestAddr1, true /* status */,
+                             true /* connected */);
+
+  // Let GetServices request timeout
+  base::TestMockTimeTaskRunner::ScopedContext context(fake_task_runner_);
+  // We should request a disconnect.
+  EXPECT_CALL(*gatt_client_, Disconnect(kTestAddr1)).WillOnce(Return(true));
+  fake_task_runner_->FastForwardBy(GattClientManagerImpl::kConnectTimeout);
+
+  // Make sure we issued a disconnect.
+  testing::Mock::VerifyAndClearExpectations(gatt_client_.get());
+
+  EXPECT_CALL(cb_, Run(false));
+  delegate->OnConnectChanged(kTestAddr1, true /* status */,
+                             false /* connected */);
+
+  EXPECT_FALSE(device->IsConnected());
+}
+
 TEST_F(GattClientManagerTest, RemoteDeviceReadRssi) {
   static const int kRssi = -34;
 
diff --git a/chromeos/BUILD.gn b/chromeos/BUILD.gn
index de3d1fd..d55998a5 100644
--- a/chromeos/BUILD.gn
+++ b/chromeos/BUILD.gn
@@ -58,9 +58,6 @@
     "//ui/gfx/geometry",  # For accelerometer.
     "//url",
   ]
-  data_deps = [
-    ":dbus_service_files",
-  ]
   sources = [
     "accelerometer/accelerometer_reader.cc",
     "accelerometer/accelerometer_reader.h",
@@ -279,20 +276,8 @@
     "dbus/power_manager_client.h",
     "dbus/power_policy_controller.cc",
     "dbus/power_policy_controller.h",
-    "dbus/services/chrome_features_service_provider.cc",
-    "dbus/services/chrome_features_service_provider.h",
     "dbus/services/cros_dbus_service.cc",
     "dbus/services/cros_dbus_service.h",
-    "dbus/services/drive_file_stream_service_provider.cc",
-    "dbus/services/drive_file_stream_service_provider.h",
-    "dbus/services/liveness_service_provider.cc",
-    "dbus/services/liveness_service_provider.h",
-    "dbus/services/proxy_resolution_service_provider.cc",
-    "dbus/services/proxy_resolution_service_provider.h",
-    "dbus/services/virtual_file_request_service_provider.cc",
-    "dbus/services/virtual_file_request_service_provider.h",
-    "dbus/services/vm_applications_service_provider.cc",
-    "dbus/services/vm_applications_service_provider.h",
     "dbus/session_manager_client.cc",
     "dbus/session_manager_client.h",
     "dbus/shill_client_helper.cc",
@@ -567,22 +552,6 @@
   }
 }
 
-copy("dbus_service_files") {
-  sources = [
-    "dbus/services/org.chromium.ChromeFeaturesService.conf",
-    "dbus/services/org.chromium.DisplayService.conf",
-    "dbus/services/org.chromium.DriveFileStreamService.conf",
-    "dbus/services/org.chromium.KioskAppService.conf",
-    "dbus/services/org.chromium.LivenessService.conf",
-    "dbus/services/org.chromium.NetworkProxyService.conf",
-    "dbus/services/org.chromium.VirtualFileRequestService.conf",
-    "dbus/services/org.chromium.VmApplicationsService.conf",
-  ]
-  outputs = [
-    "$root_out_dir/dbus/{{source_file_part}}",
-  ]
-}
-
 # This must be a static library instead of a source set because some of the
 # files pull in things with dependencies that aren't linked in all cases.
 #
@@ -738,7 +707,6 @@
     "dbus/power_manager_client_unittest.cc",
     "dbus/power_policy_controller_unittest.cc",
     "dbus/services/cros_dbus_service_unittest.cc",
-    "dbus/services/proxy_resolution_service_provider_unittest.cc",
     "dbus/shill_client_unittest_base.cc",
     "dbus/shill_client_unittest_base.h",
     "dbus/shill_device_client_unittest.cc",
diff --git a/chromeos/components/drivefs/BUILD.gn b/chromeos/components/drivefs/BUILD.gn
index 9dee7c2..b6aaff10 100644
--- a/chromeos/components/drivefs/BUILD.gn
+++ b/chromeos/components/drivefs/BUILD.gn
@@ -6,8 +6,6 @@
 
 component("drivefs") {
   sources = [
-    "drive_file_stream_service_provider_delegate.cc",
-    "drive_file_stream_service_provider_delegate.h",
     "drivefs_host.cc",
     "drivefs_host.h",
     "drivefs_host_observer.h",
diff --git a/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.cc b/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.cc
deleted file mode 100644
index f53fe31..0000000
--- a/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chromeos/components/drivefs/drive_file_stream_service_provider_delegate.h"
-
-#include <utility>
-
-#include "chromeos/components/drivefs/pending_connection_manager.h"
-
-namespace drivefs {
-
-DriveFileStreamServiceProviderDelegate::
-    DriveFileStreamServiceProviderDelegate() = default;
-DriveFileStreamServiceProviderDelegate::
-    ~DriveFileStreamServiceProviderDelegate() = default;
-
-bool DriveFileStreamServiceProviderDelegate::OpenIpcChannel(
-    const std::string& identity,
-    base::ScopedFD ipc_channel) {
-  return PendingConnectionManager::Get().OpenIpcChannel(identity,
-                                                        std::move(ipc_channel));
-}
-
-}  // namespace drivefs
diff --git a/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.h b/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.h
deleted file mode 100644
index 06e162e..0000000
--- a/chromeos/components/drivefs/drive_file_stream_service_provider_delegate.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROMEOS_COMPONENTS_DRIVEFS_DRIVE_FILE_STREAM_SERVICE_PROVIDER_DELEGATE_H_
-#define CHROMEOS_COMPONENTS_DRIVEFS_DRIVE_FILE_STREAM_SERVICE_PROVIDER_DELEGATE_H_
-
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "base/component_export.h"
-#include "base/files/scoped_file.h"
-#include "base/macros.h"
-#include "chromeos/dbus/services/drive_file_stream_service_provider.h"
-
-namespace drivefs {
-
-// DriveFileStreamServiceProvider::Delegate implementation.
-class COMPONENT_EXPORT(DRIVEFS) DriveFileStreamServiceProviderDelegate
-    : public chromeos::DriveFileStreamServiceProvider::Delegate {
- public:
-  DriveFileStreamServiceProviderDelegate();
-  ~DriveFileStreamServiceProviderDelegate() override;
-
-  // DriveFileStreamServiceProvider::Delegate overrides:
-  bool OpenIpcChannel(const std::string& identity,
-                      base::ScopedFD ipc_channel) override;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(DriveFileStreamServiceProviderDelegate);
-};
-
-}  // namespace drivefs
-
-#endif  // CHROMEOS_COMPONENTS_DRIVEFS_DRIVE_FILE_STREAM_SERVICE_PROVIDER_DELEGATE_H_
diff --git a/chromeos/components/nearby/BUILD.gn b/chromeos/components/nearby/BUILD.gn
index 779b8d43..842e149 100644
--- a/chromeos/components/nearby/BUILD.gn
+++ b/chromeos/components/nearby/BUILD.gn
@@ -6,6 +6,9 @@
 
 static_library("nearby") {
   sources = [
+    "atomic_boolean_impl.cc",
+    "atomic_boolean_impl.h",
+    "atomic_reference_impl.h",
     "count_down_latch_impl.cc",
     "count_down_latch_impl.h",
     "hash_utils_impl.cc",
@@ -28,6 +31,8 @@
   testonly = true
 
   sources = [
+    "atomic_boolean_impl_unittests.cc",
+    "atomic_reference_impl_unittests.cc",
     "count_down_latch_impl_unittests.cc",
     "hash_utils_impl_unittests.cc",
     "settable_future_impl_unittests.cc",
diff --git a/chromeos/components/nearby/atomic_boolean_impl.cc b/chromeos/components/nearby/atomic_boolean_impl.cc
new file mode 100644
index 0000000..f6c8555
--- /dev/null
+++ b/chromeos/components/nearby/atomic_boolean_impl.cc
@@ -0,0 +1,37 @@
+// Copyright (c) 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/components/nearby/atomic_boolean_impl.h"
+
+namespace {
+
+base::subtle::AtomicWord BoolToAtomicWord(bool value) {
+  return value ? 1 : 0;
+}
+
+bool AtomicWordToBool(base::subtle::AtomicWord value) {
+  return value == 0 ? false : true;
+}
+
+}  // namespace
+
+namespace chromeos {
+
+namespace nearby {
+
+AtomicBooleanImpl::AtomicBooleanImpl() = default;
+
+AtomicBooleanImpl::~AtomicBooleanImpl() = default;
+
+bool AtomicBooleanImpl::get() {
+  return AtomicWordToBool(base::subtle::Acquire_Load(&boolean_));
+}
+
+void AtomicBooleanImpl::set(bool value) {
+  base::subtle::Release_Store(&boolean_, BoolToAtomicWord(value));
+}
+
+}  // namespace nearby
+
+}  // namespace chromeos
diff --git a/chromeos/components/nearby/atomic_boolean_impl.h b/chromeos/components/nearby/atomic_boolean_impl.h
new file mode 100644
index 0000000..ef79077
--- /dev/null
+++ b/chromeos/components/nearby/atomic_boolean_impl.h
@@ -0,0 +1,36 @@
+// Copyright (c) 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMEOS_COMPONENTS_NEARBY_ATOMIC_BOOLEAN_IMPL_H_
+#define CHROMEOS_COMPONENTS_NEARBY_ATOMIC_BOOLEAN_IMPL_H_
+
+#include "base/atomicops.h"
+#include "base/macros.h"
+#include "chromeos/components/nearby/library/atomic_boolean.h"
+
+namespace chromeos {
+
+namespace nearby {
+
+// Concrete location::nearby::AtomicBoolean implementation.
+class AtomicBooleanImpl : public location::nearby::AtomicBoolean {
+ public:
+  AtomicBooleanImpl();
+  ~AtomicBooleanImpl() override;
+
+ private:
+  // location::nearby::AtomicBoolean:
+  bool get() override;
+  void set(bool value) override;
+
+  base::subtle::AtomicWord boolean_ = 0;
+
+  DISALLOW_COPY_AND_ASSIGN(AtomicBooleanImpl);
+};
+
+}  // namespace nearby
+
+}  // namespace chromeos
+
+#endif  // CHROMEOS_COMPONENTS_NEARBY_ATOMIC_BOOLEAN_IMPL_H_
diff --git a/chromeos/components/nearby/atomic_boolean_impl_unittests.cc b/chromeos/components/nearby/atomic_boolean_impl_unittests.cc
new file mode 100644
index 0000000..790ace4
--- /dev/null
+++ b/chromeos/components/nearby/atomic_boolean_impl_unittests.cc
@@ -0,0 +1,100 @@
+// Copyright (c) 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/components/nearby/atomic_boolean_impl.h"
+
+#include "base/macros.h"
+#include "base/task/post_task.h"
+#include "base/test/test_timeouts.h"
+#include "base/threading/platform_thread.h"
+#include "base/threading/thread.h"
+#include "chromeos/components/nearby/library/atomic_boolean.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace chromeos {
+
+namespace nearby {
+
+class AtomicBooleanImplTest : public testing::Test {
+ protected:
+  AtomicBooleanImplTest()
+      : atomic_boolean_(std::make_unique<AtomicBooleanImpl>()) {}
+
+  void SetAtomicBooleanOnThread(const base::Thread& thread, bool value) {
+    thread.task_runner()->PostTask(
+        FROM_HERE, base::BindOnce(&AtomicBooleanImplTest::SetAtomicBoolean,
+                                  base::Unretained(this), value));
+  }
+
+  void VerifyAtomicBooleanOnThread(const base::Thread& thread, bool value) {
+    thread.task_runner()->PostTask(
+        FROM_HERE, base::BindOnce(&AtomicBooleanImplTest::VerifyAtomicBoolean,
+                                  base::Unretained(this), value));
+  }
+
+  void VerifyAtomicBoolean(bool value) { EXPECT_EQ(value, GetAtomicBoolean()); }
+
+  void SetAtomicBoolean(bool value) { atomic_boolean_->set(value); }
+  bool GetAtomicBoolean() { return atomic_boolean_->get(); }
+
+  void TinyTimeout() {
+    // As of writing, tiny_timeout() is 100ms.
+    base::PlatformThread::Sleep(TestTimeouts::tiny_timeout());
+  }
+
+ private:
+  std::unique_ptr<location::nearby::AtomicBoolean> atomic_boolean_;
+
+  DISALLOW_COPY_AND_ASSIGN(AtomicBooleanImplTest);
+};
+
+TEST_F(AtomicBooleanImplTest, SetGetOnSameThread) {
+  VerifyAtomicBoolean(false);
+
+  SetAtomicBoolean(true);
+  VerifyAtomicBoolean(true);
+}
+
+TEST_F(AtomicBooleanImplTest, MultipleSetGetOnSameThread) {
+  VerifyAtomicBoolean(false);
+
+  SetAtomicBoolean(true);
+  VerifyAtomicBoolean(true);
+
+  SetAtomicBoolean(true);
+  VerifyAtomicBoolean(true);
+
+  SetAtomicBoolean(false);
+  VerifyAtomicBoolean(false);
+
+  SetAtomicBoolean(true);
+  VerifyAtomicBoolean(true);
+}
+
+TEST_F(AtomicBooleanImplTest, SetOnNewThread) {
+  VerifyAtomicBoolean(false);
+
+  base::Thread thread("AtomicBooleanImplTest.SetOnNewThread");
+  EXPECT_TRUE(thread.Start());
+
+  SetAtomicBooleanOnThread(thread, true);
+  TinyTimeout();
+  VerifyAtomicBoolean(true);
+}
+
+TEST_F(AtomicBooleanImplTest, GetOnNewThread) {
+  VerifyAtomicBoolean(false);
+
+  SetAtomicBoolean(true);
+  EXPECT_TRUE(GetAtomicBoolean());
+
+  base::Thread thread("AtomicBooleanImplTest.GetOnNewThread");
+  EXPECT_TRUE(thread.Start());
+
+  VerifyAtomicBooleanOnThread(thread, true);
+}
+
+}  // namespace nearby
+
+}  // namespace chromeos
diff --git a/chromeos/components/nearby/atomic_reference_impl.h b/chromeos/components/nearby/atomic_reference_impl.h
new file mode 100644
index 0000000..ac9e974
--- /dev/null
+++ b/chromeos/components/nearby/atomic_reference_impl.h
@@ -0,0 +1,49 @@
+// Copyright (c) 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMEOS_COMPONENTS_NEARBY_ATOMIC_REFERENCE_IMPL_H_
+#define CHROMEOS_COMPONENTS_NEARBY_ATOMIC_REFERENCE_IMPL_H_
+
+#include <utility>
+
+#include "base/macros.h"
+#include "base/synchronization/lock.h"
+#include "chromeos/components/nearby/library/atomic_reference.h"
+
+namespace chromeos {
+
+namespace nearby {
+
+// Concrete location::nearby::AtomicReference implementation.
+template <typename T>
+class AtomicReferenceImpl : public location::nearby::AtomicReference<T> {
+ public:
+  explicit AtomicReferenceImpl(T initial_value) : value_(initial_value) {}
+
+  ~AtomicReferenceImpl() override = default;
+
+ private:
+  // location::nearby::AtomicReference:
+  T get() override {
+    base::AutoLock al(value_lock_);
+    return value_;
+  }
+
+  // location::nearby::AtomicReference:
+  void set(T value) override {
+    base::AutoLock al(value_lock_);
+    value_ = value;
+  }
+
+  T value_;
+  base::Lock value_lock_;
+
+  DISALLOW_COPY_AND_ASSIGN(AtomicReferenceImpl);
+};
+
+}  // namespace nearby
+
+}  // namespace chromeos
+
+#endif  // CHROMEOS_COMPONENTS_NEARBY_ATOMIC_REFERENCE_IMPL_H__
diff --git a/chromeos/components/nearby/atomic_reference_impl_unittests.cc b/chromeos/components/nearby/atomic_reference_impl_unittests.cc
new file mode 100644
index 0000000..aecc0132
--- /dev/null
+++ b/chromeos/components/nearby/atomic_reference_impl_unittests.cc
@@ -0,0 +1,102 @@
+// Copyright (c) 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/components/nearby/atomic_reference_impl.h"
+
+#include "base/macros.h"
+#include "base/task/post_task.h"
+#include "base/test/test_timeouts.h"
+#include "base/threading/platform_thread.h"
+#include "base/threading/thread.h"
+#include "base/unguessable_token.h"
+#include "chromeos/components/nearby/library/atomic_reference.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace chromeos {
+
+namespace nearby {
+
+template <typename T>
+class GenericAtomicReferenceImplTest : public testing::Test {
+ protected:
+  GenericAtomicReferenceImplTest() = default;
+
+  void SetValueInThread(const base::Thread& thread, T value) {
+    thread.task_runner()->PostTask(
+        FROM_HERE, base::BindOnce(&GenericAtomicReferenceImplTest::SetValue,
+                                  base::Unretained(this), value));
+  }
+
+  void VerifyValueInThread(const base::Thread& thread, T value) {
+    thread.task_runner()->PostTask(
+        FROM_HERE, base::BindOnce(&GenericAtomicReferenceImplTest::VerifyValue,
+                                  base::Unretained(this), value));
+  }
+
+  void VerifyValue(T value) { EXPECT_EQ(value, GetValue()); }
+
+  void SetValue(T value) { atomic_reference_->set(value); }
+  T GetValue() { return atomic_reference_->get(); }
+
+  void TinyTimeout() {
+    // As of writing, tiny_timeout() is 100ms.
+    base::PlatformThread::Sleep(TestTimeouts::tiny_timeout());
+  }
+
+  std::unique_ptr<location::nearby::AtomicReference<T>> atomic_reference_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(GenericAtomicReferenceImplTest);
+};
+
+class UnguessableTokenAtomicReferenceImplTest
+    : public GenericAtomicReferenceImplTest<base::UnguessableToken> {
+ protected:
+  UnguessableTokenAtomicReferenceImplTest()
+      : initial_value_(base::UnguessableToken::Create()) {}
+
+  void SetUp() override {
+    atomic_reference_ =
+        std::make_unique<AtomicReferenceImpl<base::UnguessableToken>>(
+            initial_value_);
+  }
+
+  base::UnguessableToken initial_value_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(UnguessableTokenAtomicReferenceImplTest);
+};
+
+TEST_F(UnguessableTokenAtomicReferenceImplTest, GetOnSameThread) {
+  VerifyValue(initial_value_);
+}
+
+TEST_F(UnguessableTokenAtomicReferenceImplTest, SetGetOnSameThread) {
+  base::UnguessableToken new_token = base::UnguessableToken::Create();
+  SetValue(new_token);
+  VerifyValue(new_token);
+}
+
+TEST_F(UnguessableTokenAtomicReferenceImplTest, SetOnNewThread) {
+  base::Thread thread("AtomicReferenceImplTest.SetOnNewThread");
+  EXPECT_TRUE(thread.Start());
+
+  base::UnguessableToken new_thread_token = base::UnguessableToken::Create();
+  SetValueInThread(thread, new_thread_token);
+  TinyTimeout();
+  VerifyValue(new_thread_token);
+}
+
+TEST_F(UnguessableTokenAtomicReferenceImplTest, GetOnNewThread) {
+  base::Thread thread("AtomicReferenceImplTest.GetOnNewThread");
+  EXPECT_TRUE(thread.Start());
+
+  base::UnguessableToken new_token = base::UnguessableToken::Create();
+  SetValue(new_token);
+  VerifyValueInThread(thread, new_token);
+}
+
+}  // namespace nearby
+
+}  // namespace chromeos
diff --git a/chromeos/components/nearby/library/BUILD.gn b/chromeos/components/nearby/library/BUILD.gn
index 3a96ebb1..fd9532a 100644
--- a/chromeos/components/nearby/library/BUILD.gn
+++ b/chromeos/components/nearby/library/BUILD.gn
@@ -6,6 +6,8 @@
 
 static_library("library") {
   sources = [
+    "atomic_boolean.h",
+    "atomic_reference.h",
     "byte_array.h",
     "count_down_latch.h",
     "exception.h",
diff --git a/chromeos/components/nearby/library/atomic_boolean.h b/chromeos/components/nearby/library/atomic_boolean.h
new file mode 100644
index 0000000..239f67d
--- /dev/null
+++ b/chromeos/components/nearby/library/atomic_boolean.h
@@ -0,0 +1,25 @@
+// Copyright (c) 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMEOS_COMPONENTS_NEARBY_LIBRARY_ATOMIC_BOOLEAN_H_
+#define CHROMEOS_COMPONENTS_NEARBY_LIBRARY_ATOMIC_BOOLEAN_H_
+
+namespace location {
+namespace nearby {
+
+// A boolean value that may be updated atomically.
+//
+// https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicBoolean.html
+class AtomicBoolean {
+ public:
+  virtual ~AtomicBoolean() {}
+
+  virtual bool get() = 0;
+  virtual void set(bool value) = 0;
+};
+
+}  // namespace nearby
+}  // namespace location
+
+#endif  // CHROMEOS_COMPONENTS_NEARBY_LIBRARY_ATOMIC_BOOLEAN_H__
diff --git a/chromeos/components/nearby/library/atomic_reference.h b/chromeos/components/nearby/library/atomic_reference.h
new file mode 100644
index 0000000..8fbc6f0
--- /dev/null
+++ b/chromeos/components/nearby/library/atomic_reference.h
@@ -0,0 +1,26 @@
+// Copyright (c) 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMEOS_COMPONENTS_NEARBY_LIBRARY_ATOMIC_REFERENCE_H_
+#define CHROMEOS_COMPONENTS_NEARBY_LIBRARY_ATOMIC_REFERENCE_H_
+
+namespace location {
+namespace nearby {
+
+// An object reference that may be updated atomically.
+//
+// https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html
+template <typename T>
+class AtomicReference {
+ public:
+  virtual ~AtomicReference() {}
+
+  virtual T get() = 0;
+  virtual void set(T value) = 0;
+};
+
+}  // namespace nearby
+}  // namespace location
+
+#endif  // CHROMEOS_COMPONENTS_NEARBY_LIBRARY_ATOMIC_REFERENCE_H__
diff --git a/chromeos/components/tether/BUILD.gn b/chromeos/components/tether/BUILD.gn
index e9ea1d7..fdffc1d 100644
--- a/chromeos/components/tether/BUILD.gn
+++ b/chromeos/components/tether/BUILD.gn
@@ -136,6 +136,8 @@
     "//chromeos/components/proximity_auth/logging",
     "//chromeos/components/tether/proto",
     "//chromeos/services/device_sync/public/cpp",
+    "//chromeos/services/multidevice_setup/public/cpp:cpp",
+    "//chromeos/services/multidevice_setup/public/mojom:mojom",
     "//chromeos/services/secure_channel/public/cpp/client",
     "//chromeos/services/secure_channel/public/mojom",
 
@@ -303,6 +305,8 @@
     # TODO(hansberry): Remove //chromeos/services/secure_channel dependency when
     # SecureChannelClient migration is complete.
     "//chromeos/services/device_sync/public/mojom",
+    "//chromeos/services/multidevice_setup/public/cpp:test_support",
+    "//chromeos/services/multidevice_setup/public/mojom:mojom",
     "//chromeos/services/secure_channel",
     "//chromeos/services/secure_channel:test_support",
     "//chromeos/services/secure_channel/public/cpp/client:test_support",
diff --git a/chromeos/components/tether/tether_host_fetcher_impl.cc b/chromeos/components/tether/tether_host_fetcher_impl.cc
index e34c900..2c80e1a 100644
--- a/chromeos/components/tether/tether_host_fetcher_impl.cc
+++ b/chromeos/components/tether/tether_host_fetcher_impl.cc
@@ -8,6 +8,7 @@
 
 #include "base/memory/ptr_util.h"
 #include "chromeos/chromeos_features.h"
+#include "chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client.h"
 #include "components/cryptauth/remote_device.h"
 #include "components/cryptauth/remote_device_provider.h"
 
@@ -22,12 +23,14 @@
 // static
 std::unique_ptr<TetherHostFetcher> TetherHostFetcherImpl::Factory::NewInstance(
     cryptauth::RemoteDeviceProvider* remote_device_provider,
-    device_sync::DeviceSyncClient* device_sync_client) {
+    device_sync::DeviceSyncClient* device_sync_client,
+    chromeos::multidevice_setup::MultiDeviceSetupClient*
+        multidevice_setup_client) {
   if (!factory_instance_) {
     factory_instance_ = new Factory();
   }
-  return factory_instance_->BuildInstance(remote_device_provider,
-                                          device_sync_client);
+  return factory_instance_->BuildInstance(
+      remote_device_provider, device_sync_client, multidevice_setup_client);
 }
 
 // static
@@ -38,16 +41,22 @@
 std::unique_ptr<TetherHostFetcher>
 TetherHostFetcherImpl::Factory::BuildInstance(
     cryptauth::RemoteDeviceProvider* remote_device_provider,
-    device_sync::DeviceSyncClient* device_sync_client) {
-  return base::WrapUnique(
-      new TetherHostFetcherImpl(remote_device_provider, device_sync_client));
+    device_sync::DeviceSyncClient* device_sync_client,
+    chromeos::multidevice_setup::MultiDeviceSetupClient*
+        multidevice_setup_client) {
+  return base::WrapUnique(new TetherHostFetcherImpl(
+      remote_device_provider, device_sync_client, multidevice_setup_client));
 }
 
 TetherHostFetcherImpl::TetherHostFetcherImpl(
     cryptauth::RemoteDeviceProvider* remote_device_provider,
-    device_sync::DeviceSyncClient* device_sync_client)
+    device_sync::DeviceSyncClient* device_sync_client,
+    chromeos::multidevice_setup::MultiDeviceSetupClient*
+        multidevice_setup_client)
     : remote_device_provider_(remote_device_provider),
-      device_sync_client_(device_sync_client) {
+      device_sync_client_(device_sync_client),
+      multidevice_setup_client_(multidevice_setup_client),
+      weak_ptr_factory_(this) {
   if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi))
     device_sync_client_->AddObserver(this);
   else
@@ -91,24 +100,43 @@
   cryptauth::RemoteDeviceRefList updated_list;
 
   if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi)) {
-    for (const auto& remote_device : device_sync_client_->GetSyncedDevices()) {
-      if (remote_device.GetSoftwareFeatureState(
-              cryptauth::SoftwareFeature::MAGIC_TETHER_HOST) ==
-          cryptauth::SoftwareFeatureState::kSupported)
-        updated_list.push_back(remote_device);
+    multidevice_setup_client_->GetHostStatus(
+        base::BindOnce(&TetherHostFetcherImpl::OnHostStatusFetched,
+                       weak_ptr_factory_.GetWeakPtr()));
+    return;
+  }
+
+  for (const auto& remote_device :
+       remote_device_provider_->GetSyncedDevices()) {
+    if (base::ContainsKey(remote_device.software_features,
+                          cryptauth::SoftwareFeature::MAGIC_TETHER_HOST) &&
+        (remote_device.software_features.at(
+             cryptauth::SoftwareFeature::MAGIC_TETHER_HOST) ==
+             cryptauth::SoftwareFeatureState::kSupported ||
+         remote_device.software_features.at(
+             cryptauth::SoftwareFeature::MAGIC_TETHER_HOST) ==
+             cryptauth::SoftwareFeatureState::kEnabled)) {
+      updated_list.push_back(cryptauth::RemoteDeviceRef(
+          std::make_shared<cryptauth::RemoteDevice>(remote_device)));
     }
-  } else {
-    for (const auto& remote_device :
-         remote_device_provider_->GetSyncedDevices()) {
-      if (base::ContainsKey(remote_device.software_features,
-                            cryptauth::SoftwareFeature::MAGIC_TETHER_HOST) &&
-          remote_device.software_features.at(
-              cryptauth::SoftwareFeature::MAGIC_TETHER_HOST) ==
-              cryptauth::SoftwareFeatureState::kSupported) {
-        updated_list.push_back(cryptauth::RemoteDeviceRef(
-            std::make_shared<cryptauth::RemoteDevice>(remote_device)));
-      }
-    }
+  }
+
+  if (updated_list == current_remote_device_list_)
+    return;
+
+  current_remote_device_list_.swap(updated_list);
+  NotifyTetherHostsUpdated();
+}
+
+void TetherHostFetcherImpl::OnHostStatusFetched(
+    chromeos::multidevice_setup::mojom::HostStatus host_status,
+    const base::Optional<cryptauth::RemoteDeviceRef>& host_device) {
+  DCHECK(base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi));
+  cryptauth::RemoteDeviceRefList updated_list;
+
+  if (host_status ==
+      chromeos::multidevice_setup::mojom::HostStatus::kHostVerified) {
+    updated_list.push_back(*host_device);
   }
 
   if (updated_list == current_remote_device_list_)
diff --git a/chromeos/components/tether/tether_host_fetcher_impl.h b/chromeos/components/tether/tether_host_fetcher_impl.h
index f224a82..96ac6cb3 100644
--- a/chromeos/components/tether/tether_host_fetcher_impl.h
+++ b/chromeos/components/tether/tether_host_fetcher_impl.h
@@ -8,8 +8,10 @@
 #include <memory>
 
 #include "base/macros.h"
+#include "base/memory/weak_ptr.h"
 #include "chromeos/components/tether/tether_host_fetcher.h"
 #include "chromeos/services/device_sync/public/cpp/device_sync_client.h"
+#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
 #include "components/cryptauth/remote_device_provider.h"
 #include "components/cryptauth/remote_device_ref.h"
 
@@ -19,6 +21,10 @@
 
 namespace chromeos {
 
+namespace multidevice_setup {
+class MultiDeviceSetupClient;
+}  // namespace multidevice_setup
+
 namespace tether {
 
 // Concrete TetherHostFetcher implementation. Despite the asynchronous function
@@ -39,14 +45,18 @@
    public:
     static std::unique_ptr<TetherHostFetcher> NewInstance(
         cryptauth::RemoteDeviceProvider* remote_device_provider,
-        device_sync::DeviceSyncClient* device_sync_client);
+        device_sync::DeviceSyncClient* device_sync_client,
+        chromeos::multidevice_setup::MultiDeviceSetupClient*
+            multidevice_setup_client);
 
     static void SetInstanceForTesting(Factory* factory);
 
    protected:
     virtual std::unique_ptr<TetherHostFetcher> BuildInstance(
         cryptauth::RemoteDeviceProvider* remote_device_provider,
-        device_sync::DeviceSyncClient* device_sync_client);
+        device_sync::DeviceSyncClient* device_sync_client,
+        chromeos::multidevice_setup::MultiDeviceSetupClient*
+            multidevice_setup_client);
 
    private:
     static Factory* factory_instance_;
@@ -70,15 +80,23 @@
   // TODO(crbug.com/848956): Remove RemoteDeviceProvider once all clients have
   // migrated to the DeviceSync Mojo API.
   TetherHostFetcherImpl(cryptauth::RemoteDeviceProvider* remote_device_provider,
-                        device_sync::DeviceSyncClient* device_sync_client);
+                        device_sync::DeviceSyncClient* device_sync_client,
+                        chromeos::multidevice_setup::MultiDeviceSetupClient*
+                            multidevice_setup_client_);
 
  private:
   void CacheCurrentTetherHosts();
+  void OnHostStatusFetched(
+      chromeos::multidevice_setup::mojom::HostStatus host_status,
+      const base::Optional<cryptauth::RemoteDeviceRef>& host_device);
 
   cryptauth::RemoteDeviceProvider* remote_device_provider_;
   device_sync::DeviceSyncClient* device_sync_client_;
+  chromeos::multidevice_setup::MultiDeviceSetupClient*
+      multidevice_setup_client_;
 
   cryptauth::RemoteDeviceRefList current_remote_device_list_;
+  base::WeakPtrFactory<TetherHostFetcherImpl> weak_ptr_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(TetherHostFetcherImpl);
 };
diff --git a/chromeos/components/tether/tether_host_fetcher_impl_unittest.cc b/chromeos/components/tether/tether_host_fetcher_impl_unittest.cc
index 1b4a078..b623e930 100644
--- a/chromeos/components/tether/tether_host_fetcher_impl_unittest.cc
+++ b/chromeos/components/tether/tether_host_fetcher_impl_unittest.cc
@@ -13,6 +13,8 @@
 #include "base/test/scoped_feature_list.h"
 #include "chromeos/chromeos_features.h"
 #include "chromeos/services/device_sync/public/cpp/fake_device_sync_client.h"
+#include "chromeos/services/multidevice_setup/public/cpp/fake_multidevice_setup_client.h"
+#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
 #include "components/cryptauth/fake_remote_device_provider.h"
 #include "components/cryptauth/remote_device.h"
 #include "components/cryptauth/remote_device_ref.h"
@@ -55,6 +57,8 @@
         std::make_unique<cryptauth::FakeRemoteDeviceProvider>();
     fake_device_sync_client_ =
         std::make_unique<device_sync::FakeDeviceSyncClient>();
+    fake_multidevice_setup_client_ = std::make_unique<
+        chromeos::multidevice_setup::FakeMultiDeviceSetupClient>();
   }
 
   void TearDown() override {
@@ -77,11 +81,32 @@
             : fake_remote_device_provider_.get(),
         base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi)
             ? fake_device_sync_client_.get()
+            : nullptr,
+        base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi)
+            ? fake_multidevice_setup_client_.get()
             : nullptr);
+    if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi))
+      InvokeGetHostStatusCallback(test_remote_device_list_[0]);
     test_observer_ = std::make_unique<TestObserver>();
     tether_host_fetcher_->AddObserver(test_observer_.get());
   }
 
+  void InvokeGetHostStatusCallback(
+      const base::Optional<cryptauth::RemoteDevice>& host_device) {
+    EXPECT_TRUE(
+        base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi));
+    if (!host_device) {
+      fake_multidevice_setup_client_->InvokePendingGetHostStatusCallback(
+          chromeos::multidevice_setup::mojom::HostStatus::kNoEligibleHosts,
+          base::nullopt);
+    } else {
+      fake_multidevice_setup_client_->InvokePendingGetHostStatusCallback(
+          chromeos::multidevice_setup::mojom::HostStatus::kHostVerified,
+          cryptauth::RemoteDeviceRef(
+              std::make_shared<cryptauth::RemoteDevice>(*host_device)));
+    }
+  }
+
   void OnTetherHostListFetched(
       const cryptauth::RemoteDeviceRefList& device_list) {
     last_fetched_list_ = device_list;
@@ -121,6 +146,10 @@
           cryptauth::SoftwareFeatureState::kSupported;
     }
 
+    // Mark the first device enabled instead of supported.
+    list[0].software_features[cryptauth::SoftwareFeature::MAGIC_TETHER_HOST] =
+        cryptauth::SoftwareFeatureState::kEnabled;
+
     return list;
   }
 
@@ -159,24 +188,32 @@
     // Update the list of devices to be empty.
     SetSyncedDevices(cryptauth::RemoteDeviceList());
     NotifyNewDevicesSynced();
+    if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi))
+      InvokeGetHostStatusCallback(base::nullopt);
     EXPECT_FALSE(tether_host_fetcher_->HasSyncedTetherHosts());
     EXPECT_EQ(1u, test_observer_->num_updates());
 
     // Notify that the list has changed, even though it hasn't. There should be
     // no update.
     NotifyNewDevicesSynced();
+    if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi))
+      InvokeGetHostStatusCallback(base::nullopt);
     EXPECT_FALSE(tether_host_fetcher_->HasSyncedTetherHosts());
     EXPECT_EQ(1u, test_observer_->num_updates());
 
     // Update the list to include device 0 only.
     SetSyncedDevices({test_remote_device_list_[0]});
     NotifyNewDevicesSynced();
+    if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi))
+      InvokeGetHostStatusCallback(test_remote_device_list_[0]);
     EXPECT_TRUE(tether_host_fetcher_->HasSyncedTetherHosts());
     EXPECT_EQ(2u, test_observer_->num_updates());
 
     // Notify that the list has changed, even though it hasn't. There should be
     // no update.
     NotifyNewDevicesSynced();
+    if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi))
+      InvokeGetHostStatusCallback(test_remote_device_list_[0]);
     EXPECT_TRUE(tether_host_fetcher_->HasSyncedTetherHosts());
     EXPECT_EQ(2u, test_observer_->num_updates());
   }
@@ -191,6 +228,8 @@
     // requested.
     SetSyncedDevices(cryptauth::RemoteDeviceList{test_remote_device_list_[0]});
     NotifyNewDevicesSynced();
+    if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi))
+      InvokeGetHostStatusCallback(test_remote_device_list_[0]);
     VerifySingleTetherHost(test_remote_device_ref_list_[0].GetDeviceId(),
                            test_remote_device_ref_list_[0]);
 
@@ -203,12 +242,16 @@
 
     SetSyncedDevices(cryptauth::RemoteDeviceList{remote_device});
     NotifyNewDevicesSynced();
+    if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi))
+      InvokeGetHostStatusCallback(remote_device);
     VerifySingleTetherHost(test_remote_device_ref_list_[0].GetDeviceId(),
                            base::nullopt);
 
     // Update the list; now, there are no more devices.
     SetSyncedDevices(cryptauth::RemoteDeviceList());
     NotifyNewDevicesSynced();
+    if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi))
+      InvokeGetHostStatusCallback(base::nullopt);
     VerifySingleTetherHost(test_remote_device_ref_list_[0].GetDeviceId(),
                            base::nullopt);
   }
@@ -232,7 +275,13 @@
 
     SetSyncedDevices(test_remote_device_list_);
     NotifyNewDevicesSynced();
-    VerifyAllTetherHosts(host_device_list);
+    if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi)) {
+      InvokeGetHostStatusCallback(test_remote_device_list_[0]);
+      VerifyAllTetherHosts(
+          CreateTestRemoteDeviceRefList({test_remote_device_list_[0]}));
+    } else {
+      VerifyAllTetherHosts(host_device_list);
+    }
   }
 
   cryptauth::RemoteDeviceList test_remote_device_list_;
@@ -245,6 +294,8 @@
   std::unique_ptr<cryptauth::FakeRemoteDeviceProvider>
       fake_remote_device_provider_;
   std::unique_ptr<device_sync::FakeDeviceSyncClient> fake_device_sync_client_;
+  std::unique_ptr<chromeos::multidevice_setup::FakeMultiDeviceSetupClient>
+      fake_multidevice_setup_client_;
 
   std::unique_ptr<TetherHostFetcher> tether_host_fetcher_;
 
diff --git a/chromeos/dbus/services/README.md b/chromeos/dbus/services/README.md
index 1257e2a8..a588f54 100644
--- a/chromeos/dbus/services/README.md
+++ b/chromeos/dbus/services/README.md
@@ -1,8 +1,4 @@
-This directory contains service files and implementations for D-Bus
-services provided by Chrome.
+Please see [Chrome OS D-Bus Usage in Chrome] for information about implementing
+new D-Bus services within Chrome.
 
-Service files (with `.conf` extensions) must be listed in the
-`dbus_service_files` rule of `chromeos/BUILD.gn` so that they can be
-deployed in Chrome OS and [Simple Chrome] builds.
-
-[Simple Chrome]: https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/building-chromium-browser
+[Chrome OS D-Bus Usage in Chrome]: https://chromium.googlesource.com/chromiumos/docs/+/master/dbus_in_chrome.md
diff --git a/chromeos/disks/disk_mount_manager.cc b/chromeos/disks/disk_mount_manager.cc
index 5cee49e..339b0c8 100644
--- a/chromeos/disks/disk_mount_manager.cc
+++ b/chromeos/disks/disk_mount_manager.cc
@@ -13,6 +13,7 @@
 #include <utility>
 #include <vector>
 
+#include "base/barrier_closure.h"
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/macros.h"
@@ -35,6 +36,20 @@
 constexpr char kDeviceNotFound[] = "Device could not be found";
 DiskMountManager* g_disk_mount_manager = NULL;
 
+struct UnmountDeviceRecursivelyCallbackData {
+  UnmountDeviceRecursivelyCallbackData(
+      DiskMountManager::UnmountDeviceRecursivelyCallbackType in_callback)
+      : callback(std::move(in_callback)) {}
+
+  DiskMountManager::UnmountDeviceRecursivelyCallbackType callback;
+  MountError error_code = MOUNT_ERROR_NONE;
+};
+
+void OnAllUnmountDeviceRecursively(
+    std::unique_ptr<UnmountDeviceRecursivelyCallbackData> cb_data) {
+  std::move(cb_data->callback).Run(cb_data->error_code);
+}
+
 // The DiskMountManager implementation.
 class DiskMountManagerImpl : public DiskMountManager,
                              public CrosDisksClient::Observer {
@@ -179,7 +194,7 @@
   // DiskMountManager override.
   void UnmountDeviceRecursively(
       const std::string& device_path,
-      const UnmountDeviceRecursivelyCallbackType& callback) override {
+      UnmountDeviceRecursivelyCallbackType callback) override {
     std::vector<std::string> devices_to_unmount;
 
     // Get list of all devices to unmount.
@@ -197,38 +212,29 @@
       if (disks_.find(device_path) == disks_.end()) {
         LOG(WARNING) << "Unmount recursive request failed for device "
                      << device_path << ", with error: " << kDeviceNotFound;
-        callback.Run(false);
+        std::move(callback).Run(MOUNT_ERROR_INVALID_DEVICE_PATH);
         return;
       }
 
       // Nothing to unmount.
-      callback.Run(true);
+      std::move(callback).Run(MOUNT_ERROR_NONE);
       return;
     }
 
-    // We will send the same callback data object to all Unmount calls and use
-    // it to synchronize callbacks.
-    // Note: this implementation has a potential memory leak issue. For
-    // example if this instance is destructed before all the callbacks for
-    // Unmount are invoked, the memory pointed by |cb_data| will be leaked.
-    // It is because the UnmountDeviceRecursivelyCallbackData keeps how
-    // many times OnUnmountDeviceRecursively callback is called and when
-    // all the callbacks are called, |cb_data| will be deleted in the method.
-    // However destructing the instance before all callback invocations will
-    // cancel all pending callbacks, so that the |cb_data| would never be
-    // deleted.
-    // Fortunately, in the real scenario, the instance will be destructed
-    // only for ShutDown. So, probably the memory would rarely be leaked.
-    // TODO(hidehiko): Fix the issue.
-    UnmountDeviceRecursivelyCallbackData* cb_data =
-        new UnmountDeviceRecursivelyCallbackData(
-            callback, devices_to_unmount.size());
+    std::unique_ptr<UnmountDeviceRecursivelyCallbackData> cb_data =
+        std::make_unique<UnmountDeviceRecursivelyCallbackData>(
+            std::move(callback));
+    UnmountDeviceRecursivelyCallbackData* raw_cb_data = cb_data.get();
+    base::RepeatingClosure done_callback = base::BarrierClosure(
+        devices_to_unmount.size(),
+        base::BindOnce(&OnAllUnmountDeviceRecursively, std::move(cb_data)));
+
     for (size_t i = 0; i < devices_to_unmount.size(); ++i) {
       cros_disks_client_->Unmount(
           devices_to_unmount[i], UNMOUNT_OPTIONS_NONE,
           base::BindOnce(&DiskMountManagerImpl::OnUnmountDeviceRecursively,
-                         weak_ptr_factory_.GetWeakPtr(), cb_data,
-                         devices_to_unmount[i]));
+                         weak_ptr_factory_.GetWeakPtr(), raw_cb_data,
+                         devices_to_unmount[i], done_callback));
     }
   }
 
@@ -312,18 +318,6 @@
   // device_path and the value is new volume_name.
   std::map<std::string, std::string> pending_rename_changes_;
 
-  struct UnmountDeviceRecursivelyCallbackData {
-    UnmountDeviceRecursivelyCallbackData(
-        const UnmountDeviceRecursivelyCallbackType& in_callback,
-        int in_num_pending_callbacks)
-        : callback(in_callback),
-          num_pending_callbacks(in_num_pending_callbacks) {
-    }
-
-    const UnmountDeviceRecursivelyCallbackType callback;
-    size_t num_pending_callbacks;
-  };
-
   // Called on D-Bus CrosDisksClient::Mount() is done.
   void OnMount(const std::string& source_path, MountType type, bool result) {
     // When succeeds, OnMountCompleted will be called by "MountCompleted",
@@ -340,7 +334,7 @@
     const std::string& mount_path = disk.mount_path();
     MountPointMap::const_iterator mount_point = mount_points_.find(mount_path);
     if (mount_point == mount_points_.end()) {
-      // Not in mount_points_. This happens when the mount_points ans disks_ are
+      // Not in mount_points_. This happens when the mount_points and disks_ are
       // inconsistent.
       LOG(ERROR) << "Mount point with path \"" << mount_path << "\" not found.";
       OnMountCompleted(
@@ -388,24 +382,20 @@
   // Callback for UnmountDeviceRecursively.
   void OnUnmountDeviceRecursively(UnmountDeviceRecursivelyCallbackData* cb_data,
                                   const std::string& mount_path,
+                                  base::OnceClosure done_callback,
                                   MountError error_code) {
-    bool success = error_code == MOUNT_ERROR_NONE;
-    if (success) {
+    if (error_code == MOUNT_ERROR_NONE) {
       // Do standard processing for Unmount event.
       OnUnmountPath(UnmountPathCallback(), mount_path, MOUNT_ERROR_NONE);
       VLOG(1) << mount_path <<  " unmounted.";
+    } else {
+      // This causes the last non-success error to be reported.
+      // TODO(amistry): We could ignore certain errors such as
+      // MOUNT_ERROR_PATH_NOT_MOUNTED, or prioritise more important ones.
+      cb_data->error_code = error_code;
     }
-    // This is safe as long as all callbacks are called on the same thread as
-    // UnmountDeviceRecursively.
-    cb_data->num_pending_callbacks--;
 
-    if (cb_data->num_pending_callbacks == 0) {
-      // This code has a problem that the |success| status used here is for the
-      // last "unmount" callback, but not whether all unmounting is succeeded.
-      // TODO(hidehiko): Fix the issue.
-      cb_data->callback.Run(success);
-      delete cb_data;
-    }
+    std::move(done_callback).Run();
   }
 
   // CrosDisksClient::Observer override.
diff --git a/chromeos/disks/disk_mount_manager.h b/chromeos/disks/disk_mount_manager.h
index b60c106f..26786ac 100644
--- a/chromeos/disks/disk_mount_manager.h
+++ b/chromeos/disks/disk_mount_manager.h
@@ -85,7 +85,8 @@
 
   // A callback function type which is called after UnmountDeviceRecursively
   // finishes.
-  typedef base::Callback<void(bool)> UnmountDeviceRecursivelyCallbackType;
+  typedef base::OnceCallback<void(MountError error_code)>
+      UnmountDeviceRecursivelyCallbackType;
 
   // A callback type for UnmountPath method.
   typedef base::Callback<void(MountError error_code)> UnmountPathCallback;
@@ -186,7 +187,7 @@
   // Unmounts device_path and all of its known children.
   virtual void UnmountDeviceRecursively(
       const std::string& device_path,
-      const UnmountDeviceRecursivelyCallbackType& callback) = 0;
+      UnmountDeviceRecursivelyCallbackType callback) = 0;
 
   // Used in tests to initialize the manager's disk and mount point sets.
   // Default implementation does noting. It just fails.
diff --git a/chromeos/disks/disk_mount_manager_unittest.cc b/chromeos/disks/disk_mount_manager_unittest.cc
index 8b12185..4346e8a 100644
--- a/chromeos/disks/disk_mount_manager_unittest.cc
+++ b/chromeos/disks/disk_mount_manager_unittest.cc
@@ -26,6 +26,7 @@
 using chromeos::CrosDisksClient;
 using chromeos::DBusThreadManager;
 using chromeos::FakeCrosDisksClient;
+using chromeos::MountError;
 using chromeos::MountType;
 using chromeos::disks::MountCondition;
 
@@ -67,7 +68,7 @@
   chromeos::disks::MountCondition mount_condition;
 };
 
-// List of disks held in DiskMountManager at the begining of the test.
+// List of disks held in DiskMountManager at the beginning of the test.
 const TestDiskInfo kTestDisks[] = {
     {
         kDevice1SourcePath,
@@ -125,7 +126,7 @@
     },
 };
 
-// List of mount points  held in DiskMountManager at the begining of the test.
+// List of mount points held in DiskMountManager at the beginning of the test.
 const TestMountPointInfo kTestMountPoints[] = {
   {
     "/archive/source_path",
@@ -492,7 +493,7 @@
             base::test::ScopedTaskEnvironment::MainThreadType::UI) {}
   ~DiskMountManagerTest() override = default;
 
-  // Sets up test dbus tread manager and disks mount manager.
+  // Sets up test dbus thread manager and disks mount manager.
   // Initializes disk mount manager disks and mount points.
   // Adds a test observer to the disk mount manager.
   void SetUp() override {
@@ -509,7 +510,7 @@
     DiskMountManager::GetInstance()->AddObserver(observer_.get());
   }
 
-  // Shuts down dbus thread manager and disk moutn manager used in the test.
+  // Shuts down dbus thread manager and disk mount manager used in the test.
   void TearDown() override {
     DiskMountManager::GetInstance()->RemoveObserver(observer_.get());
     DiskMountManager::Shutdown();
@@ -517,7 +518,7 @@
   }
 
  protected:
-  // Checks if disk mount manager contains a mount point with specified moutn
+  // Checks if disk mount manager contains a mount point with specified mount
   // path.
   bool HasMountPoint(const std::string& mount_path) {
     const DiskMountManager::MountPointMap& mount_points =
@@ -554,7 +555,7 @@
   }
 
   // Adds a new mount point to the disk mount manager.
-  // If the moutn point is a device mount point, disk with its source path
+  // If the mount point is a device mount point, disk with its source path
   // should already be added to the disk mount manager.
   void AddTestMountPoint(const TestMountPointInfo& mount_point) {
     EXPECT_TRUE(DiskMountManager::GetInstance()->AddMountPointForTest(
@@ -1392,4 +1393,139 @@
                                             kDevice1MountPath));
 }
 
+void SaveUnmountResult(MountError* save_error,
+                       base::OnceClosure done_callback,
+                       MountError error_code) {
+  *save_error = error_code;
+  std::move(done_callback).Run();
+}
+
+TEST_F(DiskMountManagerTest, UnmountDeviceRecursively) {
+  base::RunLoop run_loop;
+
+  auto disk_sda =
+      Disk::Builder().SetDevicePath("/dev/sda").SetIsParent(true).Build();
+  EXPECT_TRUE(
+      DiskMountManager::GetInstance()->AddDiskForTest(std::move(disk_sda)));
+
+  auto disk_sda1 = Disk::Builder()
+                       .SetDevicePath("/dev/sda1")
+                       .SetMountPath("/mount/path1")
+                       .Build();
+  EXPECT_TRUE(
+      DiskMountManager::GetInstance()->AddDiskForTest(std::move(disk_sda1)));
+
+  auto disk_sda2 = Disk::Builder()
+                       .SetDevicePath("/dev/sda2")
+                       .SetMountPath("/mount/path2")
+                       .Build();
+  EXPECT_TRUE(
+      DiskMountManager::GetInstance()->AddDiskForTest(std::move(disk_sda2)));
+
+  MountError error_code = chromeos::MOUNT_ERROR_UNKNOWN;
+  DiskMountManager::GetInstance()->UnmountDeviceRecursively(
+      "/dev/sda",
+      base::BindOnce(&SaveUnmountResult, base::Unretained(&error_code),
+                     run_loop.QuitClosure()));
+  run_loop.Run();
+
+  EXPECT_EQ(2, fake_cros_disks_client_->unmount_call_count());
+  EXPECT_EQ(chromeos::UNMOUNT_OPTIONS_NONE,
+            fake_cros_disks_client_->last_unmount_options());
+  EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, error_code);
+}
+
+TEST_F(DiskMountManagerTest, UnmountDeviceRecursively_NoMounted) {
+  base::RunLoop run_loop;
+
+  auto disk_sda =
+      Disk::Builder().SetDevicePath("/dev/sda").SetIsParent(true).Build();
+  EXPECT_TRUE(
+      DiskMountManager::GetInstance()->AddDiskForTest(std::move(disk_sda)));
+
+  auto disk_sda1 = Disk::Builder().SetDevicePath("/dev/sda1").Build();
+  EXPECT_TRUE(
+      DiskMountManager::GetInstance()->AddDiskForTest(std::move(disk_sda1)));
+
+  MountError error_code = chromeos::MOUNT_ERROR_UNKNOWN;
+  DiskMountManager::GetInstance()->UnmountDeviceRecursively(
+      "/dev/sda",
+      base::BindOnce(&SaveUnmountResult, base::Unretained(&error_code),
+                     run_loop.QuitClosure()));
+  run_loop.Run();
+
+  EXPECT_EQ(0, fake_cros_disks_client_->unmount_call_count());
+  EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, error_code);
+}
+
+TEST_F(DiskMountManagerTest, UnmountDeviceRecursively_NoDisk) {
+  base::RunLoop run_loop;
+
+  auto disk_sda =
+      Disk::Builder().SetDevicePath("/dev/sda").SetIsParent(true).Build();
+  EXPECT_TRUE(
+      DiskMountManager::GetInstance()->AddDiskForTest(std::move(disk_sda)));
+
+  auto disk_sda1 = Disk::Builder().SetDevicePath("/dev/sda1").Build();
+  EXPECT_TRUE(
+      DiskMountManager::GetInstance()->AddDiskForTest(std::move(disk_sda1)));
+
+  MountError error_code = chromeos::MOUNT_ERROR_UNKNOWN;
+  // Unmount sdB instead of sdA.
+  DiskMountManager::GetInstance()->UnmountDeviceRecursively(
+      "/dev/sdb",
+      base::BindOnce(&SaveUnmountResult, base::Unretained(&error_code),
+                     run_loop.QuitClosure()));
+  run_loop.Run();
+
+  EXPECT_EQ(0, fake_cros_disks_client_->unmount_call_count());
+  EXPECT_EQ(chromeos::MOUNT_ERROR_INVALID_DEVICE_PATH, error_code);
+}
+
+void SetUnmountError(FakeCrosDisksClient* client, MountError error_code) {
+  client->MakeUnmountFail(error_code);
+}
+
+TEST_F(DiskMountManagerTest, UnmountDeviceRecursively_FailFirst) {
+  base::RunLoop run_loop;
+
+  auto disk_sda =
+      Disk::Builder().SetDevicePath("/dev/sda").SetIsParent(true).Build();
+  EXPECT_TRUE(
+      DiskMountManager::GetInstance()->AddDiskForTest(std::move(disk_sda)));
+
+  auto disk_sda1 = Disk::Builder()
+                       .SetDevicePath("/dev/sda1")
+                       .SetMountPath("/mount/path1")
+                       .Build();
+  EXPECT_TRUE(
+      DiskMountManager::GetInstance()->AddDiskForTest(std::move(disk_sda1)));
+
+  auto disk_sda2 = Disk::Builder()
+                       .SetDevicePath("/dev/sda2")
+                       .SetMountPath("/mount/path2")
+                       .Build();
+  EXPECT_TRUE(
+      DiskMountManager::GetInstance()->AddDiskForTest(std::move(disk_sda2)));
+
+  // Fail the first unmount, but make the second succeed.
+  fake_cros_disks_client_->MakeUnmountFail(
+      chromeos::MOUNT_ERROR_INVALID_UNMOUNT_OPTIONS);
+  fake_cros_disks_client_->set_unmount_listener(
+      base::Bind(&SetUnmountError, base::Unretained(fake_cros_disks_client_),
+                 chromeos::MOUNT_ERROR_NONE));
+
+  MountError error_code = chromeos::MOUNT_ERROR_UNKNOWN;
+  DiskMountManager::GetInstance()->UnmountDeviceRecursively(
+      "/dev/sda",
+      base::BindOnce(&SaveUnmountResult, base::Unretained(&error_code),
+                     run_loop.QuitClosure()));
+  run_loop.Run();
+
+  EXPECT_EQ(2, fake_cros_disks_client_->unmount_call_count());
+  EXPECT_EQ(chromeos::UNMOUNT_OPTIONS_NONE,
+            fake_cros_disks_client_->last_unmount_options());
+  EXPECT_EQ(chromeos::MOUNT_ERROR_INVALID_UNMOUNT_OPTIONS, error_code);
+}
+
 }  // namespace
diff --git a/chromeos/disks/mock_disk_mount_manager.h b/chromeos/disks/mock_disk_mount_manager.h
index 775d893..fb4174fc 100644
--- a/chromeos/disks/mock_disk_mount_manager.h
+++ b/chromeos/disks/mock_disk_mount_manager.h
@@ -50,10 +50,9 @@
   MOCK_METHOD1(FormatMountedDevice, void(const std::string&));
   MOCK_METHOD2(RenameMountedDevice,
                void(const std::string&, const std::string&));
-  MOCK_METHOD2(
-      UnmountDeviceRecursively,
-      void(const std::string&,
-           const DiskMountManager::UnmountDeviceRecursivelyCallbackType&));
+  MOCK_METHOD2(UnmountDeviceRecursively,
+               void(const std::string&,
+                    DiskMountManager::UnmountDeviceRecursivelyCallbackType));
 
   // Invokes fake device insert events.
   void NotifyDeviceInsertEvents();
diff --git a/chromeos/services/assistant/platform/audio_output_provider_impl.cc b/chromeos/services/assistant/platform/audio_output_provider_impl.cc
index 53b7088..a6873a4c 100644
--- a/chromeos/services/assistant/platform/audio_output_provider_impl.cc
+++ b/chromeos/services/assistant/platform/audio_output_provider_impl.cc
@@ -286,20 +286,21 @@
 
   int available_frames = audio_fifo_->GetAvailableFrames();
   if (available_frames < dest->frames()) {
-    // audio_fifo_->Consume() returns a whole audio bus. In our case,
-    // bus->frames() == dest->frames(). If there aren't enough frames to fill
-    // the bus, the rest of it would be garbage data. In such case,
-    // audio_fifo_->GetAvailableFrames() < dest->frames(). We use
-    // bus->CopyPartialFrames() to only copy the valid frames and zero out
-    // the rest to avoid playing the garbage.
-    const media::AudioBus* bus = audio_fifo_->Consume();
+    // In our setting, dest->frames() == frames per block in |audio_fifo_|.
+    DCHECK(audio_fifo_->available_blocks() == 0);
 
-    DCHECK(available_frames <= bus->frames());
+    int frames_to_fill = audio_param_.frames_per_buffer() - available_frames;
 
-    bus->CopyPartialFramesTo(0, available_frames, 0, dest);
-  } else {
-    audio_fifo_->Consume()->CopyTo(dest);
+    DCHECK(frames_to_fill >= 0);
+
+    // Fill up to one block with zero data so that |audio_fifo_| has 1 block
+    // to consume. This avoids DCHECK in audio_fifo_->Consume() and also
+    // prevents garbage data being copied to |dest| in production.
+    audio_fifo_->PushSilence(frames_to_fill);
   }
+
+  audio_fifo_->Consume()->CopyTo(dest);
+
   ScheduleFillLocked(base::TimeTicks::Now());
   return dest->frames();
 }
diff --git a/components/BUILD.gn b/components/BUILD.gn
index 18f63b5..8aa2cb1 100644
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -203,7 +203,7 @@
       "//components/cast_certificate:unit_tests",
       "//components/cast_channel:unit_tests",
       "//components/certificate_transparency:unit_tests",
-      "//components/contextual_search:unit_tests",
+      "//components/contextual_search/core:unit_tests",
       "//components/crash/content/app:unit_tests",
       "//components/crash/content/browser:unit_tests",
       "//components/crash/core/common:unit_tests",
@@ -231,6 +231,7 @@
       "//components/password_manager/content/browser:unit_tests",
       "//components/payments/content:unit_tests",
       "//components/payments/content/utility:unit_tests",
+      "//components/policy/content:unit_tests",
       "//components/policy/core/browser:unit_tests",
       "//components/policy/core/common:unit_tests",
       "//components/previews/content:unit_tests",
diff --git a/components/arc/BUILD.gn b/components/arc/BUILD.gn
index 58846b3..6c139097 100644
--- a/components/arc/BUILD.gn
+++ b/components/arc/BUILD.gn
@@ -237,6 +237,8 @@
     "test/fake_file_system_instance.h",
     "test/fake_intent_helper_instance.cc",
     "test/fake_intent_helper_instance.h",
+    "test/fake_pip_instance.cc",
+    "test/fake_pip_instance.h",
     "test/fake_policy_instance.cc",
     "test/fake_policy_instance.h",
     "test/fake_power_instance.cc",
diff --git a/components/arc/test/fake_pip_instance.cc b/components/arc/test/fake_pip_instance.cc
new file mode 100644
index 0000000..cd1c42b
--- /dev/null
+++ b/components/arc/test/fake_pip_instance.cc
@@ -0,0 +1,24 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/arc/test/fake_pip_instance.h"
+
+#include <utility>
+
+namespace arc {
+
+FakePipInstance::FakePipInstance() = default;
+
+FakePipInstance::~FakePipInstance() = default;
+
+void FakePipInstance::Init(mojom::PipHostPtr host_ptr, InitCallback callback) {
+  host_ptr_ = std::move(host_ptr);
+  std::move(callback).Run();
+}
+
+void FakePipInstance::ClosePip() {
+  num_closed_++;
+}
+
+}  // namespace arc
diff --git a/components/arc/test/fake_pip_instance.h b/components/arc/test/fake_pip_instance.h
new file mode 100644
index 0000000..2e792aa
--- /dev/null
+++ b/components/arc/test/fake_pip_instance.h
@@ -0,0 +1,33 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_ARC_TEST_FAKE_PIP_INSTANCE_H_
+#define COMPONENTS_ARC_TEST_FAKE_PIP_INSTANCE_H_
+
+#include "base/macros.h"
+#include "components/arc/common/pip.mojom.h"
+
+namespace arc {
+
+class FakePipInstance : public mojom::PipInstance {
+ public:
+  FakePipInstance();
+  ~FakePipInstance() override;
+
+  int num_closed() { return num_closed_; }
+
+  // mojom::PipInstance overrides:
+  void Init(mojom::PipHostPtr host_ptr, InitCallback callback) override;
+  void ClosePip() override;
+
+ private:
+  mojom::PipHostPtr host_ptr_;
+  int num_closed_ = 0;
+
+  DISALLOW_COPY_AND_ASSIGN(FakePipInstance);
+};
+
+}  // namespace arc
+
+#endif  // COMPONENTS_ARC_TEST_FAKE_PIP_INSTANCE_H_
diff --git a/components/autofill/content/renderer/html_based_username_detector.cc b/components/autofill/content/renderer/html_based_username_detector.cc
index 350bfc6e..b4de22ec 100644
--- a/components/autofill/content/renderer/html_based_username_detector.cc
+++ b/components/autofill/content/renderer/html_based_username_detector.cc
@@ -10,6 +10,7 @@
 #include "base/containers/flat_set.h"
 #include "base/i18n/case_conversion.h"
 #include "base/macros.h"
+#include "base/stl_util.h"
 #include "base/strings/string_split.h"
 #include "base/strings/utf_string_conversions.h"
 #include "components/autofill/content/renderer/form_autofill_util.h"
@@ -240,12 +241,9 @@
     }
   }
 
-  if (fields_found > 0 && fields_found <= 2) {
-    if (std::find(username_predictions->begin(), username_predictions->end(),
-                  chosen_field) == username_predictions->end()) {
+  if (fields_found > 0 && fields_found <= 2)
+    if (!base::ContainsValue(*username_predictions, chosen_field))
       username_predictions->push_back(chosen_field);
-    }
-  }
 }
 
 // Find username elements if there is no cached result for the given form and
diff --git a/components/autofill/content/renderer/page_passwords_analyser.cc b/components/autofill/content/renderer/page_passwords_analyser.cc
index c94d0c35..1bcc3d8 100644
--- a/components/autofill/content/renderer/page_passwords_analyser.cc
+++ b/components/autofill/content/renderer/page_passwords_analyser.cc
@@ -197,9 +197,8 @@
       // to be username or password fields.
       if (input.TagName() == "INPUT" &&
           (!input.HasAttribute("type") ||
-           std::find(std::begin(kTypeAttributes), std::end(kTypeAttributes),
-                     input.GetAttribute("type").Utf8()) !=
-               std::end(kTypeAttributes))) {
+           base::ContainsValue(kTypeAttributes,
+                               input.GetAttribute("type").Utf8()))) {
         form_input_collections.back().AddInput(input);
         inputs_with_forms.insert(input);
       }
diff --git a/components/autofill/core/browser/autofill_experiments.cc b/components/autofill/core/browser/autofill_experiments.cc
index ac71d4e0..ab441fd 100644
--- a/components/autofill/core/browser/autofill_experiments.cc
+++ b/components/autofill/core/browser/autofill_experiments.cc
@@ -90,6 +90,14 @@
                                            base::FEATURE_ENABLED_BY_DEFAULT};
 #endif  // defined(OS_MACOSX)
 
+#if !defined(OS_ANDROID)
+const base::Feature kAutofillDropdownLayoutExperiment{
+    "AutofillDropdownLayout", base::FEATURE_DISABLED_BY_DEFAULT};
+const char kAutofillDropdownLayoutParameterName[] = "variant";
+const char kAutofillDropdownLayoutParameterLeadingIcon[] = "leading-icon";
+const char kAutofillDropdownLayoutParameterTrailingIcon[] = "trailing-icon";
+#endif  // !defined(OS_ANDROID)
+
 bool IsInAutofillSuggestionsDisabledExperiment() {
   std::string group_name =
       base::FieldTrialList::FindFullName("AutofillEnabled");
@@ -236,4 +244,26 @@
       kAutofillSaveCardDialogUnlabeledExpirationDate);
 }
 
+#if !defined(OS_ANDROID)
+ForcedPopupLayoutState GetForcedPopupLayoutState() {
+  if (!base::FeatureList::IsEnabled(
+          autofill::kAutofillDropdownLayoutExperiment))
+    return ForcedPopupLayoutState::kDefault;
+
+  std::string param = base::GetFieldTrialParamValueByFeature(
+      autofill::kAutofillDropdownLayoutExperiment,
+      autofill::kAutofillDropdownLayoutParameterName);
+
+  if (param == autofill::kAutofillDropdownLayoutParameterLeadingIcon) {
+    return ForcedPopupLayoutState::kLeadingIcon;
+  } else if (param == autofill::kAutofillDropdownLayoutParameterTrailingIcon) {
+    return ForcedPopupLayoutState::kTrailingIcon;
+  }
+
+  // Unknown parameter value.
+  NOTREACHED();
+  return ForcedPopupLayoutState::kDefault;
+}
+#endif  // !defined(OS_ANDROID)
+
 }  // namespace autofill
diff --git a/components/autofill/core/browser/autofill_experiments.h b/components/autofill/core/browser/autofill_experiments.h
index 02407ef..8f82182 100644
--- a/components/autofill/core/browser/autofill_experiments.h
+++ b/components/autofill/core/browser/autofill_experiments.h
@@ -22,6 +22,8 @@
 
 namespace autofill {
 
+// Boolean Features
+
 extern const base::Feature kAutofillAlwaysFillAddresses;
 extern const base::Feature kAutofillCreateDataForTest;
 extern const base::Feature kAutofillCreditCardAssist;
@@ -57,6 +59,15 @@
 extern const base::Feature kMacViewsAutofillPopup;
 #endif  // defined(OS_MACOSX)
 
+// Parameterized Features (grouped with parameter name and options)
+
+#if !defined(OS_ANDROID)
+extern const base::Feature kAutofillDropdownLayoutExperiment;
+extern const char kAutofillDropdownLayoutParameterName[];
+extern const char kAutofillDropdownLayoutParameterLeadingIcon[];
+extern const char kAutofillDropdownLayoutParameterTrailingIcon[];
+#endif  // !defined(OS_ANDROID)
+
 // Returns true if autofill suggestions are disabled via experiment. The
 // disabled experiment isn't the same as disabling autofill completely since we
 // still want to run detection code for metrics purposes. This experiment just
@@ -139,6 +150,20 @@
 // unlabeled, i.e. not preceded by "Exp."
 bool IsAutofillSaveCardDialogUnlabeledExpirationDateEnabled();
 
+#if !defined(OS_ANDROID)
+enum class ForcedPopupLayoutState {
+  kDefault,       // No popup layout forced by experiment.
+  kLeadingIcon,   // Experiment forces leading (left in LTR) icon layout.
+  kTrailingIcon,  // Experiment forces trailing (right in LTR) icon layout.
+};
+
+// Returns kDefault if no experimental behavior is enabled for
+// kAutofillDropdownLayoutExperiment; returns kLeftIcon or kRightIcon
+// if the experiment param matches kAutofillDropdownLayoutParameterLeadingIcon
+// or kAutofillDropdownLayoutParameterTrailingIcon, respectively.
+ForcedPopupLayoutState GetForcedPopupLayoutState();
+#endif  // !defined(OS_ANDROID)
+
 }  // namespace autofill
 
 #endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_EXPERIMENTS_H_
diff --git a/components/autofill_assistant/browser/BUILD.gn b/components/autofill_assistant/browser/BUILD.gn
index 55e1262..6715198 100644
--- a/components/autofill_assistant/browser/BUILD.gn
+++ b/components/autofill_assistant/browser/BUILD.gn
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//build/config/jumbo.gni")
 import("//third_party/protobuf/proto_library.gni")
 
 proto_library("proto") {
@@ -10,7 +11,7 @@
   ]
 }
 
-static_library("browser") {
+jumbo_static_library("browser") {
   sources = [
     "actions/assistant_action.h",
     "actions/assistant_action_delegate.h",
@@ -43,7 +44,7 @@
     "assistant_web_controller.h",
   ]
 
-  public_deps = [
+  deps = [
     ":proto",
     "//base",
     "//components/version_info",
diff --git a/components/browser_sync/profile_sync_service.h b/components/browser_sync/profile_sync_service.h
index 1eb89ed..74a4e737 100644
--- a/components/browser_sync/profile_sync_service.h
+++ b/components/browser_sync/profile_sync_service.h
@@ -52,6 +52,10 @@
 class MessageLoop;
 }
 
+namespace net {
+class URLRequestContextGetter;
+}  // namespace net
+
 namespace network {
 class SharedURLLoaderFactory;
 }  // namespace network
diff --git a/components/contextual_search/BUILD.gn b/components/contextual_search/content/BUILD.gn
similarity index 76%
rename from components/contextual_search/BUILD.gn
rename to components/contextual_search/content/BUILD.gn
index 925377a7..11a38c74 100644
--- a/components/contextual_search/BUILD.gn
+++ b/components/contextual_search/content/BUILD.gn
@@ -17,10 +17,6 @@
   sources = [
     "browser/contextual_search_js_api_service_impl.cc",
     "browser/contextual_search_js_api_service_impl.h",
-    "browser/ctr_aggregator.cc",
-    "browser/ctr_aggregator.h",
-    "browser/weekly_activity_storage.cc",
-    "browser/weekly_activity_storage.h",
   ]
   deps = [
     ":mojo_bindings",
@@ -28,19 +24,6 @@
   ]
 }
 
-source_set("unit_tests") {
-  testonly = true
-  sources = [
-    "browser/ctr_aggregator_unittest.cc",
-  ]
-
-  deps = [
-    ":browser",
-    "//base",
-    "//testing/gtest",
-  ]
-}
-
 static_library("renderer") {
   sources = [
     "renderer/contextual_search_wrapper.cc",
diff --git a/components/contextual_search/DEPS b/components/contextual_search/content/DEPS
similarity index 100%
rename from components/contextual_search/DEPS
rename to components/contextual_search/content/DEPS
diff --git a/components/contextual_search/browser/contextual_search_js_api_handler.h b/components/contextual_search/content/browser/contextual_search_js_api_handler.h
similarity index 79%
rename from components/contextual_search/browser/contextual_search_js_api_handler.h
rename to components/contextual_search/content/browser/contextual_search_js_api_handler.h
index 6a3642c..9c620e1 100644
--- a/components/contextual_search/browser/contextual_search_js_api_handler.h
+++ b/components/contextual_search/content/browser/contextual_search_js_api_handler.h
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_CONTEXTUAL_SEARCH_JS_API_HANDLER_H_
-#define COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_CONTEXTUAL_SEARCH_JS_API_HANDLER_H_
+#ifndef COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_BROWSER_CONTEXTUAL_SEARCH_JS_API_HANDLER_H_
+#define COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_BROWSER_CONTEXTUAL_SEARCH_JS_API_HANDLER_H_
 
 #include <string>
 
 #include "base/macros.h"
-#include "components/contextual_search/common/contextual_search_js_api_service.mojom.h"
+#include "components/contextual_search/content/common/contextual_search_js_api_service.mojom.h"
 
 namespace contextual_search {
 
@@ -45,4 +45,4 @@
 
 }  // namespace contextual_search
 
-#endif  // COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_CONTEXTUAL_SEARCH_JS_API_HANDLER_H_
+#endif  // COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_BROWSER_CONTEXTUAL_SEARCH_JS_API_HANDLER_H_
diff --git a/components/contextual_search/browser/contextual_search_js_api_service_impl.cc b/components/contextual_search/content/browser/contextual_search_js_api_service_impl.cc
similarity index 89%
rename from components/contextual_search/browser/contextual_search_js_api_service_impl.cc
rename to components/contextual_search/content/browser/contextual_search_js_api_service_impl.cc
index dfc9531..d68a86d 100644
--- a/components/contextual_search/browser/contextual_search_js_api_service_impl.cc
+++ b/components/contextual_search/content/browser/contextual_search_js_api_service_impl.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/contextual_search/browser/contextual_search_js_api_service_impl.h"
+#include "components/contextual_search/content/browser/contextual_search_js_api_service_impl.h"
 
 #include <memory>
 #include <utility>
 
-#include "components/contextual_search/browser/contextual_search_js_api_handler.h"
+#include "components/contextual_search/content/browser/contextual_search_js_api_handler.h"
 #include "mojo/public/cpp/bindings/strong_binding.h"
 
 namespace contextual_search {
diff --git a/components/contextual_search/browser/contextual_search_js_api_service_impl.h b/components/contextual_search/content/browser/contextual_search_js_api_service_impl.h
similarity index 79%
rename from components/contextual_search/browser/contextual_search_js_api_service_impl.h
rename to components/contextual_search/content/browser/contextual_search_js_api_service_impl.h
index ed3cc5d..1462f2a 100644
--- a/components/contextual_search/browser/contextual_search_js_api_service_impl.h
+++ b/components/contextual_search/content/browser/contextual_search_js_api_service_impl.h
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_CONTEXTUAL_SEARCH_JS_API_SERVICE_IMPL_H_
-#define COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_CONTEXTUAL_SEARCH_JS_API_SERVICE_IMPL_H_
+#ifndef COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_BROWSER_CONTEXTUAL_SEARCH_JS_API_SERVICE_IMPL_H_
+#define COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_BROWSER_CONTEXTUAL_SEARCH_JS_API_SERVICE_IMPL_H_
 
 #include "base/macros.h"
-#include "components/contextual_search/browser/contextual_search_js_api_handler.h"
-#include "components/contextual_search/common/contextual_search_js_api_service.mojom.h"
+#include "components/contextual_search/content/browser/contextual_search_js_api_handler.h"
+#include "components/contextual_search/content/common/contextual_search_js_api_service.mojom.h"
 
 namespace contextual_search {
 
@@ -52,4 +52,4 @@
 
 }  // namespace contextual_search
 
-#endif  // COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_CONTEXTUAL_SEARCH_JS_API_SERVICE_IMPL_H_
+#endif  // COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_BROWSER_CONTEXTUAL_SEARCH_JS_API_SERVICE_IMPL_H_
diff --git a/components/contextual_search/common/OWNERS b/components/contextual_search/content/common/OWNERS
similarity index 100%
rename from components/contextual_search/common/OWNERS
rename to components/contextual_search/content/common/OWNERS
diff --git a/components/contextual_search/common/contextual_search_js_api_service.mojom b/components/contextual_search/content/common/contextual_search_js_api_service.mojom
similarity index 100%
rename from components/contextual_search/common/contextual_search_js_api_service.mojom
rename to components/contextual_search/content/common/contextual_search_js_api_service.mojom
diff --git a/components/contextual_search/renderer/DEPS b/components/contextual_search/content/renderer/DEPS
similarity index 100%
rename from components/contextual_search/renderer/DEPS
rename to components/contextual_search/content/renderer/DEPS
diff --git a/components/contextual_search/renderer/contextual_search_wrapper.cc b/components/contextual_search/content/renderer/contextual_search_wrapper.cc
similarity index 93%
rename from components/contextual_search/renderer/contextual_search_wrapper.cc
rename to components/contextual_search/content/renderer/contextual_search_wrapper.cc
index bdce3855..105783cb 100644
--- a/components/contextual_search/renderer/contextual_search_wrapper.cc
+++ b/components/contextual_search/content/renderer/contextual_search_wrapper.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 "components/contextual_search/renderer/contextual_search_wrapper.h"
+#include "components/contextual_search/content/renderer/contextual_search_wrapper.h"
 
 #include "base/strings/string_util.h"
 #include "content/public/renderer/chrome_object_extensions_utils.h"
@@ -35,7 +35,7 @@
   // way to implement a communication channel between the page and Chrome,
   // but found nothing better.
   // TODO(donnd): use a better communication channel once that becomes
-  // available, e.g. navigator.connect API. See crbug.com/541683.
+  // available, e.g. navigator.connect API. See https://crbug.com/541683.
   // TODO(donnd): refactor some of this boilerplate into a reusable
   // method.  This was cribbed from MemoryBenchmarkingExtension.
   v8::Isolate* isolate = blink::MainThreadIsolate();
@@ -74,7 +74,7 @@
 
 bool ContextualSearchWrapper::EnsureServiceConnected() {
   if (render_frame() && (!contextual_search_js_api_service_ ||
-      !contextual_search_js_api_service_.is_bound())) {
+                         !contextual_search_js_api_service_.is_bound())) {
     render_frame()->GetRemoteInterfaces()->GetInterface(
         &contextual_search_js_api_service_);
     return true;
diff --git a/components/contextual_search/renderer/contextual_search_wrapper.h b/components/contextual_search/content/renderer/contextual_search_wrapper.h
similarity index 85%
rename from components/contextual_search/renderer/contextual_search_wrapper.h
rename to components/contextual_search/content/renderer/contextual_search_wrapper.h
index 06c2377..68c3a5a 100644
--- a/components/contextual_search/renderer/contextual_search_wrapper.h
+++ b/components/contextual_search/content/renderer/contextual_search_wrapper.h
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_CONTEXTUAL_SEARCH_RENDERER_CONTEXTUAL_SEARCH_WRAPPER_H_
-#define COMPONENTS_CONTEXTUAL_SEARCH_RENDERER_CONTEXTUAL_SEARCH_WRAPPER_H_
+#ifndef COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_RENDERER_CONTEXTUAL_SEARCH_WRAPPER_H_
+#define COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_RENDERER_CONTEXTUAL_SEARCH_WRAPPER_H_
 
 #include "base/macros.h"
-#include "components/contextual_search/common/contextual_search_js_api_service.mojom.h"
+#include "components/contextual_search/content/common/contextual_search_js_api_service.mojom.h"
 #include "content/public/renderer/render_frame.h"
 #include "content/public/renderer/render_frame_observer.h"
 #include "gin/handle.h"
@@ -63,4 +63,4 @@
 
 }  // namespace contextual_search
 
-#endif  // COMPONENTS_CONTEXTUAL_SEARCH_RENDERER_CONTEXTUAL_SEARCH_WRAPPER_H_
+#endif  // COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_RENDERER_CONTEXTUAL_SEARCH_WRAPPER_H_
diff --git a/components/contextual_search/renderer/overlay_js_render_frame_observer.cc b/components/contextual_search/content/renderer/overlay_js_render_frame_observer.cc
similarity index 91%
rename from components/contextual_search/renderer/overlay_js_render_frame_observer.cc
rename to components/contextual_search/content/renderer/overlay_js_render_frame_observer.cc
index 746bf58..00409a9 100644
--- a/components/contextual_search/renderer/overlay_js_render_frame_observer.cc
+++ b/components/contextual_search/content/renderer/overlay_js_render_frame_observer.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/contextual_search/renderer/overlay_js_render_frame_observer.h"
+#include "components/contextual_search/content/renderer/overlay_js_render_frame_observer.h"
 
 #include <utility>
 
 #include "base/bind.h"
-#include "components/contextual_search/renderer/contextual_search_wrapper.h"
+#include "components/contextual_search/content/renderer/contextual_search_wrapper.h"
 #include "content/public/renderer/render_frame.h"
 #include "mojo/public/cpp/bindings/strong_binding.h"
 #include "services/service_manager/public/cpp/binder_registry.h"
diff --git a/components/contextual_search/renderer/overlay_js_render_frame_observer.h b/components/contextual_search/content/renderer/overlay_js_render_frame_observer.h
similarity index 84%
rename from components/contextual_search/renderer/overlay_js_render_frame_observer.h
rename to components/contextual_search/content/renderer/overlay_js_render_frame_observer.h
index 4755ee7..f7adafb 100644
--- a/components/contextual_search/renderer/overlay_js_render_frame_observer.h
+++ b/components/contextual_search/content/renderer/overlay_js_render_frame_observer.h
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef COMPONENTS_CONTEXTUAL_SEARCH_RENDERER_OVERLAY_JS_RENDER_FRAME_OBSERVER_H_
-#define COMPONENTS_CONTEXTUAL_SEARCH_RENDERER_OVERLAY_JS_RENDER_FRAME_OBSERVER_H_
+#ifndef COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_RENDERER_OVERLAY_JS_RENDER_FRAME_OBSERVER_H_
+#define COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_RENDERER_OVERLAY_JS_RENDER_FRAME_OBSERVER_H_
 
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "components/contextual_search/common/contextual_search_js_api_service.mojom.h"
+#include "components/contextual_search/content/common/contextual_search_js_api_service.mojom.h"
 #include "content/public/renderer/render_frame.h"
 #include "content/public/renderer/render_frame_observer.h"
 #include "services/service_manager/public/cpp/binder_registry.h"
@@ -56,4 +56,4 @@
 
 }  // namespace contextual_search
 
-#endif  // COMPONENTS_CONTEXTUAL_SEARCH_RENDERER_OVERLAY_JS_RENDER_FRAME_OBSERVER_H_
+#endif  // COMPONENTS_CONTEXTUAL_SEARCH_CONTENT_RENDERER_OVERLAY_JS_RENDER_FRAME_OBSERVER_H_
diff --git a/components/contextual_search/core/BUILD.gn b/components/contextual_search/core/BUILD.gn
new file mode 100644
index 0000000..432f081
--- /dev/null
+++ b/components/contextual_search/core/BUILD.gn
@@ -0,0 +1,28 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+static_library("browser") {
+  sources = [
+    "browser/ctr_aggregator.cc",
+    "browser/ctr_aggregator.h",
+    "browser/weekly_activity_storage.cc",
+    "browser/weekly_activity_storage.h",
+  ]
+  deps = [
+    "//base",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [
+    "browser/ctr_aggregator_unittest.cc",
+  ]
+
+  deps = [
+    ":browser",
+    "//base",
+    "//testing/gtest",
+  ]
+}
diff --git a/components/contextual_search/core/DEPS b/components/contextual_search/core/DEPS
new file mode 100644
index 0000000..c186ac5
--- /dev/null
+++ b/components/contextual_search/core/DEPS
@@ -0,0 +1,3 @@
+include_rules = [
+  "-content",
+]
diff --git a/components/contextual_search/browser/ctr_aggregator.cc b/components/contextual_search/core/browser/ctr_aggregator.cc
similarity index 97%
rename from components/contextual_search/browser/ctr_aggregator.cc
rename to components/contextual_search/core/browser/ctr_aggregator.cc
index 637b4c2..8be41dda 100644
--- a/components/contextual_search/browser/ctr_aggregator.cc
+++ b/components/contextual_search/core/browser/ctr_aggregator.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 "components/contextual_search/browser/ctr_aggregator.h"
+#include "components/contextual_search/core/browser/ctr_aggregator.h"
 
 #include "base/numerics/safe_conversions.h"
 #include "base/time/time.h"
diff --git a/components/contextual_search/browser/ctr_aggregator.h b/components/contextual_search/core/browser/ctr_aggregator.h
similarity index 93%
rename from components/contextual_search/browser/ctr_aggregator.h
rename to components/contextual_search/core/browser/ctr_aggregator.h
index a7c5807a..cfc22458 100644
--- a/components/contextual_search/browser/ctr_aggregator.h
+++ b/components/contextual_search/core/browser/ctr_aggregator.h
@@ -9,14 +9,14 @@
 // Used by Contextual Search to record impressions of the Bar and CTR of
 // panel opens to use as signals for Tap triggering.
 
-#ifndef COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_CTR_AGGREGATOR_H_
-#define COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_CTR_AGGREGATOR_H_
+#ifndef COMPONENTS_CONTEXTUAL_SEARCH_CORE_BROWSER_CTR_AGGREGATOR_H_
+#define COMPONENTS_CONTEXTUAL_SEARCH_CORE_BROWSER_CTR_AGGREGATOR_H_
 
 #include <string>
 
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
-#include "components/contextual_search/browser/weekly_activity_storage.h"
+#include "components/contextual_search/core/browser/weekly_activity_storage.h"
 
 namespace contextual_search {
 
@@ -115,4 +115,4 @@
 
 }  // namespace contextual_search
 
-#endif  // COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_CTR_AGGREGATOR_H_
+#endif  // COMPONENTS_CONTEXTUAL_SEARCH_CORE_BROWSER_CTR_AGGREGATOR_H_
diff --git a/components/contextual_search/browser/ctr_aggregator_unittest.cc b/components/contextual_search/core/browser/ctr_aggregator_unittest.cc
similarity index 97%
rename from components/contextual_search/browser/ctr_aggregator_unittest.cc
rename to components/contextual_search/core/browser/ctr_aggregator_unittest.cc
index 1fc9e49e..b7f95594 100644
--- a/components/contextual_search/browser/ctr_aggregator_unittest.cc
+++ b/components/contextual_search/core/browser/ctr_aggregator_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 "components/contextual_search/browser/ctr_aggregator.h"
+#include "components/contextual_search/core/browser/ctr_aggregator.h"
 
 #include <unordered_map>
 
diff --git a/components/contextual_search/browser/weekly_activity_storage.cc b/components/contextual_search/core/browser/weekly_activity_storage.cc
similarity index 97%
rename from components/contextual_search/browser/weekly_activity_storage.cc
rename to components/contextual_search/core/browser/weekly_activity_storage.cc
index 485a4b9..0ed9399 100644
--- a/components/contextual_search/browser/weekly_activity_storage.cc
+++ b/components/contextual_search/core/browser/weekly_activity_storage.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 "components/contextual_search/browser/weekly_activity_storage.h"
+#include "components/contextual_search/core/browser/weekly_activity_storage.h"
 
 #include <algorithm>  // std::min
 
diff --git a/components/contextual_search/browser/weekly_activity_storage.h b/components/contextual_search/core/browser/weekly_activity_storage.h
similarity index 93%
rename from components/contextual_search/browser/weekly_activity_storage.h
rename to components/contextual_search/core/browser/weekly_activity_storage.h
index 15cf928..ecf4f51 100644
--- a/components/contextual_search/browser/weekly_activity_storage.h
+++ b/components/contextual_search/core/browser/weekly_activity_storage.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 COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_WEEKLY_ACTIVITY_STORAGE_H_
-#define COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_WEEKLY_ACTIVITY_STORAGE_H_
+#ifndef COMPONENTS_CONTEXTUAL_SEARCH_CORE_BROWSER_WEEKLY_ACTIVITY_STORAGE_H_
+#define COMPONENTS_CONTEXTUAL_SEARCH_CORE_BROWSER_WEEKLY_ACTIVITY_STORAGE_H_
 
 #include <string>
 #include <unordered_map>
@@ -85,4 +85,4 @@
 
 }  // namespace contextual_search
 
-#endif  // COMPONENTS_CONTEXTUAL_SEARCH_BROWSER_WEEKLY_ACTIVITY_STORAGE_H_
+#endif  // COMPONENTS_CONTEXTUAL_SEARCH_CORE_BROWSER_WEEKLY_ACTIVITY_STORAGE_H_
diff --git a/components/crash/content/browser/BUILD.gn b/components/crash/content/browser/BUILD.gn
index 68c98d4c..c8919cfd 100644
--- a/components/crash/content/browser/BUILD.gn
+++ b/components/crash/content/browser/BUILD.gn
@@ -17,6 +17,8 @@
     "child_process_crash_observer_android.h",
     "crash_dump_manager_android.cc",
     "crash_dump_manager_android.h",
+    "crash_memory_metrics_collector_android.cc",
+    "crash_memory_metrics_collector_android.h",
     "crash_metrics_reporter_android.cc",
     "crash_metrics_reporter_android.h",
   ]
diff --git a/components/crash/content/browser/DEPS b/components/crash/content/browser/DEPS
index dbd80056..1ae7807 100644
--- a/components/crash/content/browser/DEPS
+++ b/components/crash/content/browser/DEPS
@@ -3,4 +3,7 @@
   "+content/public/common",
   "+content/public/test",
   "+jni",
+  "+mojo/public/cpp/bindings/binding.h",
+  "+third_party/blink/public/mojom/crash/crash_memory_metrics_reporter.mojom.h",
+  "+third_party/blink/public/common/oom_intervention"
 ]
diff --git a/components/crash/content/browser/child_exit_observer_android.cc b/components/crash/content/browser/child_exit_observer_android.cc
index ebd387de..a8a27eb3 100644
--- a/components/crash/content/browser/child_exit_observer_android.cc
+++ b/components/crash/content/browser/child_exit_observer_android.cc
@@ -9,6 +9,7 @@
 #include "base/bind.h"
 #include "base/logging.h"
 #include "base/stl_util.h"
+#include "components/crash/content/browser/crash_memory_metrics_collector_android.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/child_process_data.h"
 #include "content/public/browser/child_process_termination_info.h"
@@ -188,6 +189,17 @@
   info.app_state = base::android::APPLICATION_STATE_UNKNOWN;
   info.renderer_has_visible_clients = rph->VisibleClientCount() > 0;
   info.renderer_was_subframe = rph->GetFrameDepth() > 0u;
+  CrashMemoryMetricsCollector* collector =
+      CrashMemoryMetricsCollector::GetFromRenderProcessHost(rph);
+
+  // CrashMemoryMetircsCollector is created in chrome_content_browser_client,
+  // and does not exist in non-chrome platforms such as android webview /
+  // chromecast.
+  if (collector) {
+    // SharedMemory creation / Map() might fail.
+    DCHECK(collector->MemoryMetrics());
+    info.blink_oom_metrics = *collector->MemoryMetrics();
+  }
   switch (type) {
     case content::NOTIFICATION_RENDERER_PROCESS_TERMINATED: {
       // NOTIFICATION_RENDERER_PROCESS_TERMINATED is sent when the renderer
diff --git a/components/crash/content/browser/child_exit_observer_android.h b/components/crash/content/browser/child_exit_observer_android.h
index 0164e744..adbccc4 100644
--- a/components/crash/content/browser/child_exit_observer_android.h
+++ b/components/crash/content/browser/child_exit_observer_android.h
@@ -23,6 +23,7 @@
 #include "content/public/browser/posix_file_descriptor_info.h"
 #include "content/public/common/child_process_host.h"
 #include "content/public/common/process_type.h"
+#include "third_party/blink/public/common/oom_intervention/oom_intervention_types.h"
 
 namespace content {
 struct ChildProcessTerminationInfo;
@@ -88,6 +89,11 @@
     // edge cases, eg if an invisible main frame and a visible sub frame from
     // different tabs are sharing the same renderer, then this is false.
     bool renderer_was_subframe = false;
+
+    // Applies to renderer process only. This metrics contains the information
+    // about virtual address space OOM situation, private memory footprint,
+    // swap size, vm size and the estimation of blink memory usage.
+    blink::OomInterventionMetrics blink_oom_metrics;
   };
 
   // ChildExitObserver client interface.
diff --git a/components/crash/content/browser/crash_memory_metrics_collector_android.cc b/components/crash/content/browser/crash_memory_metrics_collector_android.cc
new file mode 100644
index 0000000..bf550f92
--- /dev/null
+++ b/components/crash/content/browser/crash_memory_metrics_collector_android.cc
@@ -0,0 +1,45 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/crash/content/browser/crash_memory_metrics_collector_android.h"
+
+#include "base/metrics/histogram_macros.h"
+#include "base/metrics/user_metrics.h"
+#include "content/public/browser/render_process_host.h"
+#include "content/public/common/bind_interface_helpers.h"
+
+// Keys used to attach handler to the RenderProcessHost
+const void* const CrashMemoryMetricsCollector::kCrashMemoryMetricsCollectorKey =
+    &CrashMemoryMetricsCollector::kCrashMemoryMetricsCollectorKey;
+
+CrashMemoryMetricsCollector*
+CrashMemoryMetricsCollector::GetFromRenderProcessHost(
+    content::RenderProcessHost* rph) {
+  return static_cast<CrashMemoryMetricsCollector*>(rph->GetUserData(
+      CrashMemoryMetricsCollector::kCrashMemoryMetricsCollectorKey));
+}
+
+CrashMemoryMetricsCollector::CrashMemoryMetricsCollector(
+    content::RenderProcessHost* rph) {
+  // Initialize bindings with CrashMemoryMetricsReporter.
+  content::BindInterface(rph,
+                         mojo::MakeRequest(&crash_memory_metrics_reporter_));
+  // Create shared memory and pass it to crash_memory_metrics_reporter.
+  base::UnsafeSharedMemoryRegion shared_metrics_buffer =
+      base::UnsafeSharedMemoryRegion::Create(
+          sizeof(blink::OomInterventionMetrics));
+  metrics_mapping_ = shared_metrics_buffer.Map();
+  memset(metrics_mapping_.memory(), 0, sizeof(blink::OomInterventionMetrics));
+  crash_memory_metrics_reporter_->SetSharedMemory(
+      shared_metrics_buffer.Duplicate());
+}
+
+CrashMemoryMetricsCollector::~CrashMemoryMetricsCollector() = default;
+
+const blink::OomInterventionMetrics*
+CrashMemoryMetricsCollector::MemoryMetrics() {
+  // This should be called after SetSharedMemory.
+  DCHECK(metrics_mapping_.IsValid());
+  return metrics_mapping_.GetMemoryAs<blink::OomInterventionMetrics>();
+}
diff --git a/components/crash/content/browser/crash_memory_metrics_collector_android.h b/components/crash/content/browser/crash_memory_metrics_collector_android.h
new file mode 100644
index 0000000..e68df1b
--- /dev/null
+++ b/components/crash/content/browser/crash_memory_metrics_collector_android.h
@@ -0,0 +1,41 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_CRASH_CONTENT_BROWSER_CRASH_MEMORY_METRICS_COLLECTOR_ANDROID_H_
+#define COMPONENTS_CRASH_CONTENT_BROWSER_CRASH_MEMORY_METRICS_COLLECTOR_ANDROID_H_
+
+#include "components/crash/content/browser/child_exit_observer_android.h"
+#include "content/public/browser/content_browser_client.h"
+#include "mojo/public/cpp/bindings/binding.h"
+#include "third_party/blink/public/common/oom_intervention/oom_intervention_types.h"
+#include "third_party/blink/public/mojom/crash/crash_memory_metrics_reporter.mojom.h"
+
+// This class manages a shared memory that is shared with
+// CrashMemoryMetricsReporter on the renderer side. The shared memory contains
+// blink memory metrics, and this class manages the metrics so that it can be
+// uploaded from the browser when the renderer crashes. The lifetime is the same
+// as the renderer process, as |this| is attached to the corresponding
+// RenderProcessHost as a UserData.
+class CrashMemoryMetricsCollector : public base::SupportsUserData::Data {
+ public:
+  explicit CrashMemoryMetricsCollector(content::RenderProcessHost* host);
+  ~CrashMemoryMetricsCollector() override;
+
+  // Key used to attach the handler to the RenderProcessHost.
+  static const void* const kCrashMemoryMetricsCollectorKey;
+
+  static CrashMemoryMetricsCollector* GetFromRenderProcessHost(
+      content::RenderProcessHost* rph);
+
+  // Gets the memory metrics that are filled on the renderer side.
+  const blink::OomInterventionMetrics* MemoryMetrics();
+
+ private:
+  blink::mojom::CrashMemoryMetricsReporterPtr crash_memory_metrics_reporter_;
+  base::WritableSharedMemoryMapping metrics_mapping_;
+
+  DISALLOW_COPY_AND_ASSIGN(CrashMemoryMetricsCollector);
+};
+
+#endif  // COMPONENTS_CRASH_CONTENT_BROWSER_CRASH_MEMORY_METRICS_COLLECTOR_ANDROID_H_
diff --git a/components/crash/content/browser/crash_metrics_reporter_android.cc b/components/crash/content/browser/crash_metrics_reporter_android.cc
index 7b327ae5..359c318e 100644
--- a/components/crash/content/browser/crash_metrics_reporter_android.cc
+++ b/components/crash/content/browser/crash_metrics_reporter_android.cc
@@ -112,6 +112,7 @@
     const ChildExitObserver::TerminationInfo& info,
     breakpad::CrashDumpManager::CrashDumpStatus status) {
   ReportedCrashTypeSet reported_counts;
+
   // Avoid duplicating processing for the same process.
   if (status == breakpad::CrashDumpManager::CrashDumpStatus::kMissingDump)
     return;
@@ -138,12 +139,28 @@
                                 !has_valid_dump && !info.normal_termination;
   const bool renderer_visible = info.renderer_has_visible_clients;
   const bool renderer_subframe = info.renderer_was_subframe;
+  const bool renderer_virtual_oom = info.blink_oom_metrics.virtual_memory_oom;
+  const uint64_t private_footprint_kb =
+      info.blink_oom_metrics.current_private_footprint_kb;
+  const uint64_t swap_kb = info.blink_oom_metrics.current_swap_kb;
+  const uint64_t vm_size_kb = info.blink_oom_metrics.current_vm_size_kb;
+  const uint64_t blink_usage_kb = info.blink_oom_metrics.current_blink_usage_kb;
 
   if (info.process_type == content::PROCESS_TYPE_GPU && app_foreground &&
       android_oom_kill) {
     ReportCrashCount(ProcessedCrashCounts::kGpuForegroundOom, &reported_counts);
   }
 
+  if (info.process_type == content::PROCESS_TYPE_RENDERER &&
+      !intentional_kill && !info.normal_termination && renderer_virtual_oom) {
+    ReportCrashCount(ProcessedCrashCounts::kRendererVirtualMemoryOomAll,
+                     &reported_counts);
+    if (app_foreground && renderer_visible)
+      ReportCrashCount(
+          ProcessedCrashCounts::kRendererForegroundVisibleVirtualMemoryOom,
+          &reported_counts);
+  }
+
   if (info.process_type == content::PROCESS_TYPE_RENDERER && app_foreground) {
     if (renderer_visible) {
       if (has_valid_dump) {
@@ -176,6 +193,24 @@
           base::RecordAction(
               base::UserMetricsAction("RendererForegroundMainFrameOOM"));
         }
+        // Report memory metrics when visible foreground renderer is OOM.
+        if (private_footprint_kb > 0) {
+          // Report only when the metrics are not non-0, because the metrics
+          // are recorded only when oom intervention is on.
+          UMA_HISTOGRAM_MEMORY_LARGE_MB(
+              "Memory.Experimental.OomIntervention."
+              "RendererPrivateMemoryFootprintAtOOM",
+              private_footprint_kb / 1024);
+          UMA_HISTOGRAM_MEMORY_MB(
+              "Memory.Experimental.OomIntervention.RendererSwapFootprintAtOOM",
+              swap_kb / 1024);
+          UMA_HISTOGRAM_MEMORY_MB(
+              "Memory.Experimental.OomIntervention.RendererBlinkUsageAtOOM",
+              blink_usage_kb / 1024);
+          UMA_HISTOGRAM_MEMORY_LARGE_MB(
+              "Memory.Experimental.OomIntervention.RendererVmSizeAtOOMLarge",
+              vm_size_kb / 1024);
+        }
       }
     } else if (!has_valid_dump) {
       // Record stats when renderer is not visible, but the process has oom
diff --git a/components/crash/content/browser/crash_metrics_reporter_android.h b/components/crash/content/browser/crash_metrics_reporter_android.h
index 3dcf044c..45b7a23 100644
--- a/components/crash/content/browser/crash_metrics_reporter_android.h
+++ b/components/crash/content/browser/crash_metrics_reporter_android.h
@@ -47,7 +47,9 @@
     kRendererForegroundInvisibleWithStrongBindingOom = 12,
     kRendererForegroundInvisibleWithModerateBindingKilled = 13,
     kRendererForegroundInvisibleWithModerateBindingOom = 14,
-    kMaxValue = kRendererForegroundInvisibleWithModerateBindingOom
+    kRendererForegroundVisibleVirtualMemoryOom = 15,
+    kRendererVirtualMemoryOomAll = 16,
+    kMaxValue = kRendererVirtualMemoryOomAll
   };
   using ReportedCrashTypeSet = base::flat_set<ProcessedCrashCounts>;
 
diff --git a/components/crash/content/browser/crash_metrics_reporter_android_unittest.cc b/components/crash/content/browser/crash_metrics_reporter_android_unittest.cc
index e50a0f7..0e7569a 100644
--- a/components/crash/content/browser/crash_metrics_reporter_android_unittest.cc
+++ b/components/crash/content/browser/crash_metrics_reporter_android_unittest.cc
@@ -62,6 +62,16 @@
   }
 
  protected:
+  blink::OomInterventionMetrics InterventionMetrics(bool virtual_oom) {
+    blink::OomInterventionMetrics metrics;
+    metrics.virtual_memory_oom = virtual_oom;
+    metrics.current_private_footprint_kb = 100;
+    metrics.current_swap_kb = 0;
+    metrics.current_vm_size_kb = 0;
+    metrics.current_blink_usage_kb = 0;
+    return metrics;
+  }
+
   void TestOomCrashProcessing(
       const ChildExitObserver::TerminationInfo& termination_info,
       CrashMetricsReporter::ReportedCrashTypeSet expected_crash_types,
@@ -102,6 +112,7 @@
   termination_info.was_killed_intentionally_by_browser = false;
   termination_info.was_oom_protected_status = true;
   termination_info.renderer_has_visible_clients = true;
+  termination_info.blink_oom_metrics = InterventionMetrics(false);
   TestOomCrashProcessing(termination_info,
                          {CrashMetricsReporter::ProcessedCrashCounts::
                               kRendererForegroundVisibleOom},
@@ -120,6 +131,7 @@
   termination_info.was_killed_intentionally_by_browser = false;
   termination_info.was_oom_protected_status = true;
   termination_info.renderer_has_visible_clients = true;
+  termination_info.blink_oom_metrics = InterventionMetrics(false);
   TestOomCrashProcessing(
       termination_info,
       {CrashMetricsReporter::ProcessedCrashCounts::kGpuForegroundOom},
@@ -139,6 +151,7 @@
   termination_info.was_oom_protected_status = true;
   termination_info.renderer_has_visible_clients = true;
   termination_info.renderer_was_subframe = true;
+  termination_info.blink_oom_metrics = InterventionMetrics(false);
   TestOomCrashProcessing(termination_info,
                          {CrashMetricsReporter::ProcessedCrashCounts::
                               kRendererForegroundVisibleSubframeOom},
@@ -157,6 +170,7 @@
   termination_info.was_oom_protected_status = true;
   termination_info.was_killed_intentionally_by_browser = false;
   termination_info.renderer_has_visible_clients = false;
+  termination_info.blink_oom_metrics = InterventionMetrics(false);
   TestOomCrashProcessing(termination_info,
                          {CrashMetricsReporter::ProcessedCrashCounts::
                               kRendererForegroundInvisibleWithStrongBindingOom},
@@ -175,6 +189,7 @@
   termination_info.was_oom_protected_status = true;
   termination_info.was_killed_intentionally_by_browser = false;
   termination_info.renderer_has_visible_clients = false;
+  termination_info.blink_oom_metrics = InterventionMetrics(false);
   TestOomCrashProcessing(
       termination_info,
       {CrashMetricsReporter::ProcessedCrashCounts::
@@ -182,6 +197,29 @@
       "Tab.RendererDetailedExitStatus");
 }
 
+TEST_F(CrashMetricsReporterTest, RendererForegroundVisibleVirtualOOM) {
+  ChildExitObserver::TerminationInfo termination_info;
+  termination_info.process_host_id = 1;
+  termination_info.pid = base::kNullProcessHandle;
+  termination_info.process_type = content::PROCESS_TYPE_RENDERER;
+  termination_info.app_state =
+      base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES;
+  termination_info.normal_termination = false;
+  termination_info.binding_state = base::android::ChildBindingState::MODERATE;
+  termination_info.was_oom_protected_status = true;
+  termination_info.was_killed_intentionally_by_browser = false;
+  termination_info.renderer_has_visible_clients = true;
+  termination_info.blink_oom_metrics = InterventionMetrics(true);
+  TestOomCrashProcessing(
+      termination_info,
+      {CrashMetricsReporter::ProcessedCrashCounts::
+           kRendererForegroundVisibleVirtualMemoryOom,
+       CrashMetricsReporter::ProcessedCrashCounts::kRendererVirtualMemoryOomAll,
+       CrashMetricsReporter::ProcessedCrashCounts::
+           kRendererForegroundVisibleOom},
+      "Tab.RendererDetailedExitStatus");
+}
+
 TEST_F(CrashMetricsReporterTest, IntentionalKillIsNotOOM) {
   ChildExitObserver::TerminationInfo termination_info;
   termination_info.process_host_id = 1;
@@ -194,6 +232,7 @@
   termination_info.was_killed_intentionally_by_browser = true;
   termination_info.was_oom_protected_status = true;
   termination_info.renderer_has_visible_clients = true;
+  termination_info.blink_oom_metrics = InterventionMetrics(false);
   TestOomCrashProcessing(
       termination_info,
       {CrashMetricsReporter::ProcessedCrashCounts::
@@ -215,6 +254,7 @@
   termination_info.was_killed_intentionally_by_browser = false;
   termination_info.was_oom_protected_status = true;
   termination_info.renderer_has_visible_clients = true;
+  termination_info.blink_oom_metrics = InterventionMetrics(false);
   TestOomCrashProcessing(termination_info,
                          {CrashMetricsReporter::ProcessedCrashCounts::
                               kRendererForegroundVisibleNormalTermNoMinidump},
diff --git a/components/drive/local_file_reader.cc b/components/drive/local_file_reader.cc
index 24297ce..d1fb2f5 100644
--- a/components/drive/local_file_reader.cc
+++ b/components/drive/local_file_reader.cc
@@ -4,6 +4,8 @@
 
 #include "components/drive/local_file_reader.h"
 
+#include <utility>
+
 #include "base/bind.h"
 #include "base/files/file_path.h"
 #include "base/sequenced_task_runner.h"
@@ -24,7 +26,7 @@
 
 void LocalFileReader::Open(const base::FilePath& file_path,
                            int64_t offset,
-                           const net::CompletionCallback& callback) {
+                           net::CompletionOnceCallback callback) {
   DCHECK(!callback.is_null());
   int flags = base::File::FLAG_OPEN | base::File::FLAG_READ |
               base::File::FLAG_ASYNC;
@@ -32,35 +34,35 @@
   int rv = file_stream_.Open(
       file_path, flags,
       BindOnce(&LocalFileReader::DidOpen, weak_ptr_factory_.GetWeakPtr(),
-               callback, offset));
+               std::move(callback), offset));
   DCHECK_EQ(rv, net::ERR_IO_PENDING);
 }
 
 void LocalFileReader::Read(net::IOBuffer* in_buffer,
                            int buffer_length,
-                           const net::CompletionCallback& callback) {
+                           net::CompletionOnceCallback callback) {
   DCHECK(!callback.is_null());
   DCHECK(file_stream_.IsOpen());
-  int rv = file_stream_.Read(in_buffer, buffer_length, callback);
+  int rv = file_stream_.Read(in_buffer, buffer_length, std::move(callback));
   DCHECK_EQ(rv, net::ERR_IO_PENDING);
 }
 
-void LocalFileReader::DidOpen(const net::CompletionCallback& callback,
+void LocalFileReader::DidOpen(net::CompletionOnceCallback callback,
                               int64_t offset,
                               int error) {
   if (error != net::OK)
-    return callback.Run(error);
+    return std::move(callback).Run(error);
 
-  int rv = file_stream_.Seek(
-      offset, BindOnce(&LocalFileReader::DidSeek,
-                       weak_ptr_factory_.GetWeakPtr(), callback, offset));
+  int rv = file_stream_.Seek(offset, BindOnce(&LocalFileReader::DidSeek,
+                                              weak_ptr_factory_.GetWeakPtr(),
+                                              std::move(callback), offset));
   DCHECK_EQ(rv, net::ERR_IO_PENDING);
 }
 
-void LocalFileReader::DidSeek(const net::CompletionCallback& callback,
+void LocalFileReader::DidSeek(net::CompletionOnceCallback callback,
                               int64_t offset,
                               int64_t error) {
-  callback.Run(error == offset ? net::OK : net::ERR_FAILED);
+  std::move(callback).Run(error == offset ? net::OK : net::ERR_FAILED);
 }
 
 }  // namespace util
diff --git a/components/drive/local_file_reader.h b/components/drive/local_file_reader.h
index 463f8cd6..88cbf88 100644
--- a/components/drive/local_file_reader.h
+++ b/components/drive/local_file_reader.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "net/base/completion_callback.h"
+#include "net/base/completion_once_callback.h"
 #include "net/base/file_stream.h"
 
 namespace base {
@@ -40,7 +40,7 @@
   // |callback| must not be null.
   void Open(const base::FilePath& file_path,
             int64_t offset,
-            const net::CompletionCallback& callback);
+            net::CompletionOnceCallback callback);
 
   // Reads the file and copies the data into |buffer|. |buffer_length|
   // is the length of |buffer|.
@@ -48,13 +48,11 @@
   // |callback| must not be null.
   void Read(net::IOBuffer* buffer,
             int buffer_length,
-            const net::CompletionCallback& callback);
+            net::CompletionOnceCallback callback);
 
  private:
-  void DidOpen(const net::CompletionCallback& callback,
-               int64_t offset,
-               int error);
-  void DidSeek(const net::CompletionCallback& callback,
+  void DidOpen(net::CompletionOnceCallback callback, int64_t offset, int error);
+  void DidSeek(net::CompletionOnceCallback callback,
                int64_t offset,
                int64_t error);
 
diff --git a/components/drive/local_file_reader_unittest.cc b/components/drive/local_file_reader_unittest.cc
index 3e27712..30c3e9c7 100644
--- a/components/drive/local_file_reader_unittest.cc
+++ b/components/drive/local_file_reader_unittest.cc
@@ -9,6 +9,7 @@
 
 #include <memory>
 #include <string>
+#include <utility>
 
 #include "base/files/file_path.h"
 #include "base/files/scoped_temp_dir.h"
@@ -32,8 +33,8 @@
   explicit LocalFileReaderAdapter(LocalFileReader* reader) : reader_(reader) {}
   int Read(net::IOBuffer* buffer,
            int buffer_length,
-           const net::CompletionCallback& callback) {
-    reader_->Read(buffer, buffer_length, callback);
+           net::CompletionOnceCallback callback) {
+    reader_->Read(buffer, buffer_length, std::move(callback));
     // As LocalFileReader::Read always works asynchronously,
     // return ERR_IO_PENDING.
     return net::ERR_IO_PENDING;
diff --git a/components/feed/core/BUILD.gn b/components/feed/core/BUILD.gn
index 9f4d11c..8c2f3b1e 100644
--- a/components/feed/core/BUILD.gn
+++ b/components/feed/core/BUILD.gn
@@ -20,6 +20,10 @@
     "feed_image_database.h",
     "feed_image_manager.cc",
     "feed_image_manager.h",
+    "feed_journal_mutation.cc",
+    "feed_journal_mutation.h",
+    "feed_journal_operation.cc",
+    "feed_journal_operation.h",
     "feed_networking_host.cc",
     "feed_networking_host.h",
     "feed_scheduler_host.cc",
@@ -73,8 +77,10 @@
   testonly = true
   sources = [
     "feed_content_database_unittest.cc",
+    "feed_content_mutation_unittest.cc",
     "feed_image_database_unittest.cc",
     "feed_image_manager_unittest.cc",
+    "feed_journal_mutation_unittest.cc",
     "feed_networking_host_unittest.cc",
     "feed_scheduler_host_unittest.cc",
     "feed_storage_database_unittest.cc",
diff --git a/components/feed/core/feed_content_database.cc b/components/feed/core/feed_content_database.cc
index 455dc9d5..6126a56a 100644
--- a/components/feed/core/feed_content_database.cc
+++ b/components/feed/core/feed_content_database.cc
@@ -117,36 +117,35 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(content_mutation);
 
-  PerformNextOperation(content_mutation->TakeOperations(), std::move(callback));
+  PerformNextOperation(std::move(content_mutation), std::move(callback));
 }
 
 void FeedContentDatabase::PerformNextOperation(
-    ContentOperationList operations_list,
+    std::unique_ptr<ContentMutation> content_mutation,
     ConfirmationCallback callback) {
-  DCHECK(!operations_list.empty());
+  DCHECK(!content_mutation->Empty());
 
-  ContentOperation operation(operations_list.front());
-  operations_list.pop_front();
+  ContentOperation operation = content_mutation->TakeFristOperation();
 
   switch (operation.type()) {
     case ContentOperation::CONTENT_DELETE:
       // TODO(gangwu): If deletes are continuous, we should combine them into
       // one commit.
-      DeleteContent(std::move(operation), std::move(operations_list),
+      DeleteContent(std::move(operation), std::move(content_mutation),
                     std::move(callback));
       break;
     case ContentOperation::CONTENT_DELETE_BY_PREFIX:
-      DeleteContentByPrefix(std::move(operation), std::move(operations_list),
+      DeleteContentByPrefix(std::move(operation), std::move(content_mutation),
                             std::move(callback));
       break;
     case ContentOperation::CONTENT_UPSERT:
       // TODO(gangwu): If upserts are continuous, we should combine them into
       // one commit.
-      UpsertContent(std::move(operation), std::move(operations_list),
+      UpsertContent(std::move(operation), std::move(content_mutation),
                     std::move(callback));
       break;
     case ContentOperation::CONTENT_DELETE_ALL:
-      DeleteAllContent(std::move(operation), std::move(operations_list),
+      DeleteAllContent(std::move(operation), std::move(content_mutation),
                        std::move(callback));
       break;
     default:
@@ -156,9 +155,10 @@
   }
 }
 
-void FeedContentDatabase::UpsertContent(ContentOperation operation,
-                                        ContentOperationList operations_list,
-                                        ConfirmationCallback callback) {
+void FeedContentDatabase::UpsertContent(
+    ContentOperation operation,
+    std::unique_ptr<ContentMutation> content_mutation,
+    ConfirmationCallback callback) {
   DCHECK_EQ(operation.type(), ContentOperation::CONTENT_UPSERT);
 
   auto contents_to_save = std::make_unique<StorageEntryVector>();
@@ -170,13 +170,14 @@
   storage_database_->UpdateEntries(
       std::move(contents_to_save), std::make_unique<std::vector<std::string>>(),
       base::BindOnce(&FeedContentDatabase::OnOperationCommitted,
-                     weak_ptr_factory_.GetWeakPtr(), std::move(operations_list),
-                     std::move(callback)));
+                     weak_ptr_factory_.GetWeakPtr(),
+                     std::move(content_mutation), std::move(callback)));
 }
 
-void FeedContentDatabase::DeleteContent(ContentOperation operation,
-                                        ContentOperationList operations_list,
-                                        ConfirmationCallback callback) {
+void FeedContentDatabase::DeleteContent(
+    ContentOperation operation,
+    std::unique_ptr<ContentMutation> content_mutation,
+    ConfirmationCallback callback) {
   DCHECK_EQ(operation.type(), ContentOperation::CONTENT_DELETE);
 
   auto content_to_delete = std::make_unique<std::vector<std::string>>(
@@ -185,13 +186,13 @@
   storage_database_->UpdateEntries(
       std::make_unique<StorageEntryVector>(), std::move(content_to_delete),
       base::BindOnce(&FeedContentDatabase::OnOperationCommitted,
-                     weak_ptr_factory_.GetWeakPtr(), std::move(operations_list),
-                     std::move(callback)));
+                     weak_ptr_factory_.GetWeakPtr(),
+                     std::move(content_mutation), std::move(callback)));
 }
 
 void FeedContentDatabase::DeleteContentByPrefix(
     ContentOperation operation,
-    ContentOperationList operations_list,
+    std::unique_ptr<ContentMutation> content_mutation,
     ConfirmationCallback callback) {
   DCHECK_EQ(operation.type(), ContentOperation::CONTENT_DELETE_BY_PREFIX);
 
@@ -199,13 +200,14 @@
       std::make_unique<StorageEntryVector>(),
       base::BindRepeating(&DatabasePrefixFilter, operation.prefix()),
       base::BindOnce(&FeedContentDatabase::OnOperationCommitted,
-                     weak_ptr_factory_.GetWeakPtr(), std::move(operations_list),
-                     std::move(callback)));
+                     weak_ptr_factory_.GetWeakPtr(),
+                     std::move(content_mutation), std::move(callback)));
 }
 
-void FeedContentDatabase::DeleteAllContent(ContentOperation operation,
-                                           ContentOperationList operations_list,
-                                           ConfirmationCallback callback) {
+void FeedContentDatabase::DeleteAllContent(
+    ContentOperation operation,
+    std::unique_ptr<ContentMutation> content_mutation,
+    ConfirmationCallback callback) {
   DCHECK_EQ(operation.type(), ContentOperation::CONTENT_DELETE_ALL);
 
   std::string key_prefix = "";
@@ -213,8 +215,8 @@
       std::make_unique<StorageEntryVector>(),
       base::BindRepeating(&DatabasePrefixFilter, std::move(key_prefix)),
       base::BindOnce(&FeedContentDatabase::OnOperationCommitted,
-                     weak_ptr_factory_.GetWeakPtr(), std::move(operations_list),
-                     std::move(callback)));
+                     weak_ptr_factory_.GetWeakPtr(),
+                     std::move(content_mutation), std::move(callback)));
 }
 
 void FeedContentDatabase::OnDatabaseInitialized(bool success) {
@@ -268,7 +270,7 @@
 }
 
 void FeedContentDatabase::OnOperationCommitted(
-    ContentOperationList operations_list,
+    std::unique_ptr<ContentMutation> content_mutation,
     ConfirmationCallback callback,
     bool success) {
   // Commit is unsuccessful, skip processing the other operations since
@@ -281,12 +283,12 @@
   }
 
   // All operations were committed successfully, call |callback|.
-  if (operations_list.empty()) {
+  if (content_mutation->Empty()) {
     std::move(callback).Run(success);
     return;
   }
 
-  PerformNextOperation(std::move(operations_list), std::move(callback));
+  PerformNextOperation(std::move(content_mutation), std::move(callback));
 }
 
 }  // namespace feed
diff --git a/components/feed/core/feed_content_database.h b/components/feed/core/feed_content_database.h
index f7faa19..cc5bc66 100644
--- a/components/feed/core/feed_content_database.h
+++ b/components/feed/core/feed_content_database.h
@@ -85,19 +85,19 @@
   // These methods work with |CommitContentMutation|. They process
   // |ContentOperation| in |ContentMutation| which is passed to
   // |PerformNextOperation| by |CommitContentMutation|.
-  void PerformNextOperation(ContentOperationList operations_list,
+  void PerformNextOperation(std::unique_ptr<ContentMutation> content_mutation,
                             ConfirmationCallback callback);
   void UpsertContent(ContentOperation operation,
-                     ContentOperationList operations_list,
+                     std::unique_ptr<ContentMutation> content_mutation,
                      ConfirmationCallback callback);
   void DeleteContent(ContentOperation operation,
-                     ContentOperationList operations_list,
+                     std::unique_ptr<ContentMutation> content_mutation,
                      ConfirmationCallback callback);
   void DeleteContentByPrefix(ContentOperation operation,
-                             ContentOperationList operations_list,
+                             std::unique_ptr<ContentMutation> content_mutation,
                              ConfirmationCallback callback);
   void DeleteAllContent(ContentOperation operation,
-                        ContentOperationList operations_list,
+                        std::unique_ptr<ContentMutation> content_mutation,
                         ConfirmationCallback callback);
 
   // Callback methods given to |storage_database_| for async responses.
@@ -110,7 +110,7 @@
       ContentKeyCallback callback,
       bool success,
       std::unique_ptr<std::vector<std::string>> keys);
-  void OnOperationCommitted(ContentOperationList operations_list,
+  void OnOperationCommitted(std::unique_ptr<ContentMutation> content_mutation,
                             ConfirmationCallback callback,
                             bool success);
 
diff --git a/components/feed/core/feed_content_mutation.cc b/components/feed/core/feed_content_mutation.cc
index 607b425..06b1f70 100644
--- a/components/feed/core/feed_content_mutation.cc
+++ b/components/feed/core/feed_content_mutation.cc
@@ -6,35 +6,43 @@
 
 #include <utility>
 
+#include "base/logging.h"
 #include "components/feed/core/feed_content_operation.h"
 
 namespace feed {
 
-ContentMutation::ContentMutation() {}
+ContentMutation::ContentMutation() = default;
 
-ContentMutation::~ContentMutation() {}
+ContentMutation::~ContentMutation() = default;
 
-void ContentMutation::AppendDeleteOperation(const std::string& key) {
-  operations_list_.emplace_back(ContentOperation::CreateDeleteOperation(key));
+void ContentMutation::AppendDeleteOperation(std::string key) {
+  operations_list_.emplace_back(
+      ContentOperation::CreateDeleteOperation(std::move(key)));
 }
 
 void ContentMutation::AppendDeleteAllOperation() {
   operations_list_.emplace_back(ContentOperation::CreateDeleteAllOperation());
 }
 
-void ContentMutation::AppendDeleteByPrefixOperation(const std::string& prefix) {
+void ContentMutation::AppendDeleteByPrefixOperation(std::string prefix) {
   operations_list_.emplace_back(
-      ContentOperation::CreateDeleteByPrefixOperation(prefix));
+      ContentOperation::CreateDeleteByPrefixOperation(std::move(prefix)));
 }
 
-void ContentMutation::AppendUpsertOperation(const std::string& key,
-                                            const std::string& value) {
-  operations_list_.emplace_back(
-      ContentOperation::CreateUpsertOperation(key, value));
+void ContentMutation::AppendUpsertOperation(std::string key,
+                                            std::string value) {
+  operations_list_.emplace_back(ContentOperation::CreateUpsertOperation(
+      std::move(key), std::move(value)));
 }
 
-ContentOperationList ContentMutation::TakeOperations() {
-  return std::move(operations_list_);
+bool ContentMutation::Empty() {
+  return operations_list_.empty();
+}
+
+ContentOperation ContentMutation::TakeFristOperation() {
+  ContentOperation operation = std::move(operations_list_.front());
+  operations_list_.pop_front();
+  return operation;
 }
 
 }  // namespace feed
diff --git a/components/feed/core/feed_content_mutation.h b/components/feed/core/feed_content_mutation.h
index e719549..d37ef28 100644
--- a/components/feed/core/feed_content_mutation.h
+++ b/components/feed/core/feed_content_mutation.h
@@ -13,7 +13,6 @@
 namespace feed {
 
 class ContentOperation;
-using ContentOperationList = std::list<ContentOperation>;
 
 // Native counterpart of ContentMutation.java.
 // To commit a set of ContentOperation into FeedContentDatabase, user need to
@@ -25,16 +24,20 @@
   ContentMutation();
   ~ContentMutation();
 
-  void AppendDeleteOperation(const std::string& key);
+  void AppendDeleteOperation(std::string key);
   void AppendDeleteAllOperation();
-  void AppendDeleteByPrefixOperation(const std::string& prefix);
-  void AppendUpsertOperation(const std::string& key, const std::string& value);
+  void AppendDeleteByPrefixOperation(std::string prefix);
+  void AppendUpsertOperation(std::string key, std::string value);
 
-  // This will std::move the |operations_list_| out.
-  ContentOperationList TakeOperations();
+  // Check if mutation has ContentOperation left.
+  bool Empty();
+
+  // This will remove the first ContentOperation in |operations_list_| and
+  // return it to caller.
+  ContentOperation TakeFristOperation();
 
  private:
-  ContentOperationList operations_list_;
+  std::list<ContentOperation> operations_list_;
 
   DISALLOW_COPY_AND_ASSIGN(ContentMutation);
 };
diff --git a/components/feed/core/feed_content_mutation_unittest.cc b/components/feed/core/feed_content_mutation_unittest.cc
new file mode 100644
index 0000000..89a8878
--- /dev/null
+++ b/components/feed/core/feed_content_mutation_unittest.cc
@@ -0,0 +1,80 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/feed/core/feed_content_mutation.h"
+
+#include "components/feed/core/feed_content_operation.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace feed {
+
+namespace {
+
+const char kContentkey[] = "ContentKey";
+const char kContentValue[] = "Value";
+const char kContentPrefix[] = "Content";
+
+}  // namespace
+
+class FeedContentMutationTest : public testing::Test {
+ public:
+  FeedContentMutationTest() = default;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(FeedContentMutationTest);
+};
+
+TEST_F(FeedContentMutationTest, AppendDeleteOperation) {
+  ContentMutation mutation;
+  EXPECT_TRUE(mutation.Empty());
+
+  mutation.AppendDeleteOperation(kContentkey);
+  EXPECT_FALSE(mutation.Empty());
+
+  ContentOperation operation = mutation.TakeFristOperation();
+  EXPECT_TRUE(mutation.Empty());
+  EXPECT_EQ(operation.type(), ContentOperation::CONTENT_DELETE);
+  EXPECT_EQ(operation.key(), kContentkey);
+}
+
+TEST_F(FeedContentMutationTest, AppendDeleteAllOperation) {
+  ContentMutation mutation;
+  EXPECT_TRUE(mutation.Empty());
+
+  mutation.AppendDeleteAllOperation();
+  EXPECT_FALSE(mutation.Empty());
+
+  ContentOperation operation = mutation.TakeFristOperation();
+  EXPECT_TRUE(mutation.Empty());
+  EXPECT_EQ(operation.type(), ContentOperation::CONTENT_DELETE_ALL);
+}
+
+TEST_F(FeedContentMutationTest, AppendDeleteByPrefixOperation) {
+  ContentMutation mutation;
+  EXPECT_TRUE(mutation.Empty());
+
+  mutation.AppendDeleteByPrefixOperation(kContentPrefix);
+  EXPECT_FALSE(mutation.Empty());
+
+  ContentOperation operation = mutation.TakeFristOperation();
+  EXPECT_TRUE(mutation.Empty());
+  EXPECT_EQ(operation.type(), ContentOperation::CONTENT_DELETE_BY_PREFIX);
+  EXPECT_EQ(operation.prefix(), kContentPrefix);
+}
+
+TEST_F(FeedContentMutationTest, AppendUpsertOperation) {
+  ContentMutation mutation;
+  EXPECT_TRUE(mutation.Empty());
+
+  mutation.AppendUpsertOperation(kContentkey, kContentValue);
+  EXPECT_FALSE(mutation.Empty());
+
+  ContentOperation operation = mutation.TakeFristOperation();
+  EXPECT_TRUE(mutation.Empty());
+  EXPECT_EQ(operation.type(), ContentOperation::CONTENT_UPSERT);
+  EXPECT_EQ(operation.key(), kContentkey);
+  EXPECT_EQ(operation.value(), kContentValue);
+}
+
+}  // namespace feed
diff --git a/components/feed/core/feed_content_operation.cc b/components/feed/core/feed_content_operation.cc
index 1cd4b35..650600cd 100644
--- a/components/feed/core/feed_content_operation.cc
+++ b/components/feed/core/feed_content_operation.cc
@@ -10,38 +10,34 @@
 
 namespace feed {
 
-ContentOperation::ContentOperation(const ContentOperation& operation)
-    : type_(operation.type_),
-      key_(operation.key_),
-      value_(operation.value_),
-      prefix_(operation.prefix_) {}
-
-ContentOperation::ContentOperation(ContentOperation&& operation)
-    : type_(operation.type_),
-      key_(std::move(operation.key_)),
-      value_(std::move(operation.value_)),
-      prefix_(std::move(operation.prefix_)) {}
-
+// static
 ContentOperation ContentOperation::CreateDeleteOperation(std::string key) {
-  return ContentOperation(CONTENT_DELETE, key, std::string(), std::string());
+  return ContentOperation(CONTENT_DELETE, std::move(key), std::string(),
+                          std::string());
 }
 
+// static
 ContentOperation ContentOperation::CreateDeleteAllOperation() {
   return ContentOperation(CONTENT_DELETE_ALL, std::string(), std::string(),
                           std::string());
 }
 
+// static
 ContentOperation ContentOperation::CreateDeleteByPrefixOperation(
     std::string prefix) {
   return ContentOperation(CONTENT_DELETE_BY_PREFIX, std::string(),
-                          std::string(), prefix);
+                          std::string(), std::move(prefix));
 }
 
+// static
 ContentOperation ContentOperation::CreateUpsertOperation(std::string key,
                                                          std::string value) {
-  return ContentOperation(CONTENT_UPSERT, key, value, std::string());
+  return ContentOperation(CONTENT_UPSERT, std::move(key), std::move(value),
+                          std::string());
 }
 
+ContentOperation::ContentOperation(ContentOperation&& operation) = default;
+
 ContentOperation::Type ContentOperation::type() {
   return type_;
 }
@@ -65,6 +61,9 @@
                                    std::string key,
                                    std::string value,
                                    std::string prefix)
-    : type_(type), key_(key), value_(value), prefix_(prefix) {}
+    : type_(type),
+      key_(std::move(key)),
+      value_(std::move(value)),
+      prefix_(std::move(prefix)) {}
 
 }  // namespace feed
diff --git a/components/feed/core/feed_content_operation.h b/components/feed/core/feed_content_operation.h
index cd15123..103e902d 100644
--- a/components/feed/core/feed_content_operation.h
+++ b/components/feed/core/feed_content_operation.h
@@ -5,9 +5,10 @@
 #ifndef COMPONENTS_FEED_CORE_FEED_CONTENT_OPERATION_H_
 #define COMPONENTS_FEED_CORE_FEED_CONTENT_OPERATION_H_
 
-#include <list>
 #include <string>
 
+#include "base/macros.h"
+
 namespace feed {
 
 // Native counterpart of ContentOperation.java.
@@ -26,10 +27,6 @@
   static ContentOperation CreateUpsertOperation(std::string key,
                                                 std::string value);
 
-  // Copy constructor
-  explicit ContentOperation(const ContentOperation& operation);
-
-  // Move constructor
   ContentOperation(ContentOperation&& operation);
 
   Type type();
@@ -47,6 +44,8 @@
   const std::string key_;
   const std::string value_;
   const std::string prefix_;
+
+  DISALLOW_COPY_AND_ASSIGN(ContentOperation);
 };
 
 }  // namespace feed
diff --git a/components/feed/core/feed_journal_mutation.cc b/components/feed/core/feed_journal_mutation.cc
new file mode 100644
index 0000000..7e4e618
--- /dev/null
+++ b/components/feed/core/feed_journal_mutation.cc
@@ -0,0 +1,46 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/feed/core/feed_journal_mutation.h"
+
+#include <utility>
+
+#include "components/feed/core/feed_journal_operation.h"
+
+namespace feed {
+
+JournalMutation::JournalMutation(std::string journal_name)
+    : journal_name_(std::move(journal_name)) {}
+
+JournalMutation::~JournalMutation() = default;
+
+void JournalMutation::AddAppendOperation(std::string value) {
+  operations_list_.emplace_back(
+      JournalOperation::CreateAppendOperation(std::move(value)));
+}
+
+void JournalMutation::AddCopyOperation(std::string to_journal_name) {
+  operations_list_.emplace_back(
+      JournalOperation::CreateCopyOperation(std::move(to_journal_name)));
+}
+
+void JournalMutation::AddDeleteOperation() {
+  operations_list_.emplace_back(JournalOperation::CreateDeleteOperation());
+}
+
+const std::string& JournalMutation::journal_name() {
+  return journal_name_;
+}
+
+bool JournalMutation::Empty() {
+  return operations_list_.empty();
+}
+
+JournalOperation JournalMutation::TakeFristOperation() {
+  JournalOperation operation = std::move(operations_list_.front());
+  operations_list_.pop_front();
+  return operation;
+}
+
+}  // namespace feed
diff --git a/components/feed/core/feed_journal_mutation.h b/components/feed/core/feed_journal_mutation.h
new file mode 100644
index 0000000..25cb3c0
--- /dev/null
+++ b/components/feed/core/feed_journal_mutation.h
@@ -0,0 +1,50 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_FEED_CORE_FEED_JOURNAL_MUTATION_H_
+#define COMPONENTS_FEED_CORE_FEED_JOURNAL_MUTATION_H_
+
+#include <list>
+#include <string>
+
+#include "base/macros.h"
+
+namespace feed {
+
+class JournalOperation;
+
+// Native counterpart of JournalMutation.java.
+// To commit a set of JournalOperation into FeedJournalDatabase, first,
+// JournalMutation need to be created, then use Add* methods to add operations
+// into the mutation, and pass the JournalMutation to
+// FeedJournalDatabase::CommitJournalMutation to commit operations.
+class JournalMutation {
+ public:
+  explicit JournalMutation(std::string journal_name);
+  ~JournalMutation();
+
+  void AddAppendOperation(std::string value);
+  void AddCopyOperation(std::string to_journal_name);
+  void AddDeleteOperation();
+
+  const std::string& journal_name();
+
+  // Check if mutation has JournalOperation left.
+  bool Empty();
+
+  // This will remove the first JournalOperation in |operations_list_| and
+  // return it to caller.
+  JournalOperation TakeFristOperation();
+
+ private:
+  const std::string journal_name_;
+
+  std::list<JournalOperation> operations_list_;
+
+  DISALLOW_COPY_AND_ASSIGN(JournalMutation);
+};
+
+}  // namespace feed
+
+#endif  // COMPONENTS_FEED_CORE_FEED_JOURNAL_MUTATION_H_
diff --git a/components/feed/core/feed_journal_mutation_unittest.cc b/components/feed/core/feed_journal_mutation_unittest.cc
new file mode 100644
index 0000000..f6c8346
--- /dev/null
+++ b/components/feed/core/feed_journal_mutation_unittest.cc
@@ -0,0 +1,69 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/feed/core/feed_journal_mutation.h"
+
+#include "components/feed/core/feed_journal_operation.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace feed {
+
+namespace {
+
+const char kJournalName1[] = "Journal1";
+const char kJournalName2[] = "Journal2";
+const char kJournalValue[] = "value";
+
+}  // namespace
+
+class FeedJournalMutationTest : public testing::Test {
+ public:
+  FeedJournalMutationTest() = default;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(FeedJournalMutationTest);
+};
+
+TEST_F(FeedJournalMutationTest, AddAppendOperation) {
+  JournalMutation mutation(kJournalName1);
+  EXPECT_EQ(mutation.journal_name(), kJournalName1);
+  EXPECT_TRUE(mutation.Empty());
+
+  mutation.AddAppendOperation(kJournalValue);
+  EXPECT_FALSE(mutation.Empty());
+
+  JournalOperation operation = mutation.TakeFristOperation();
+  EXPECT_TRUE(mutation.Empty());
+  EXPECT_EQ(operation.type(), JournalOperation::JOURNAL_APPEND);
+  EXPECT_EQ(operation.value(), kJournalValue);
+}
+
+TEST_F(FeedJournalMutationTest, AddCopyOperation) {
+  JournalMutation mutation(kJournalName1);
+  EXPECT_EQ(mutation.journal_name(), kJournalName1);
+  EXPECT_TRUE(mutation.Empty());
+
+  mutation.AddCopyOperation(kJournalName2);
+  EXPECT_FALSE(mutation.Empty());
+
+  JournalOperation operation = mutation.TakeFristOperation();
+  EXPECT_TRUE(mutation.Empty());
+  EXPECT_EQ(operation.type(), JournalOperation::JOURNAL_COPY);
+  EXPECT_EQ(operation.to_journal_name(), kJournalName2);
+}
+
+TEST_F(FeedJournalMutationTest, AddDeleteOperation) {
+  JournalMutation mutation(kJournalName1);
+  EXPECT_EQ(mutation.journal_name(), kJournalName1);
+  EXPECT_TRUE(mutation.Empty());
+
+  mutation.AddDeleteOperation();
+  EXPECT_FALSE(mutation.Empty());
+
+  JournalOperation operation = mutation.TakeFristOperation();
+  EXPECT_TRUE(mutation.Empty());
+  EXPECT_EQ(operation.type(), JournalOperation::JOURNAL_DELETE);
+}
+
+}  // namespace feed
diff --git a/components/feed/core/feed_journal_operation.cc b/components/feed/core/feed_journal_operation.cc
new file mode 100644
index 0000000..4e56142
--- /dev/null
+++ b/components/feed/core/feed_journal_operation.cc
@@ -0,0 +1,53 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/feed/core/feed_journal_operation.h"
+
+#include <utility>
+
+#include "base/logging.h"
+
+namespace feed {
+
+// static
+JournalOperation JournalOperation::CreateAppendOperation(std::string value) {
+  return JournalOperation(JOURNAL_APPEND, std::move(value), std::string());
+}
+
+// static
+JournalOperation JournalOperation::CreateCopyOperation(
+    std::string to_journal_name) {
+  return JournalOperation(JOURNAL_COPY, std::string(),
+                          std::move(to_journal_name));
+}
+
+// static
+JournalOperation JournalOperation::CreateDeleteOperation() {
+  return JournalOperation(JOURNAL_DELETE, std::string(), std::string());
+}
+
+JournalOperation::JournalOperation(JournalOperation&& operation) = default;
+
+JournalOperation::Type JournalOperation::type() {
+  return type_;
+}
+
+const std::string& JournalOperation::value() {
+  DCHECK_EQ(type_, JOURNAL_APPEND);
+  return value_;
+}
+
+const std::string& JournalOperation::to_journal_name() {
+  DCHECK_EQ(type_, JOURNAL_COPY);
+  return to_journal_name_;
+}
+
+JournalOperation::JournalOperation(Type type,
+                                   std::string value,
+                                   std::string to_journal_name)
+    : type_(type),
+      value_(std::move(value)),
+      to_journal_name_(std::move(to_journal_name)) {}
+
+}  // namespace feed
diff --git a/components/feed/core/feed_journal_operation.h b/components/feed/core/feed_journal_operation.h
new file mode 100644
index 0000000..7e447950
--- /dev/null
+++ b/components/feed/core/feed_journal_operation.h
@@ -0,0 +1,49 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_FEED_CORE_FEED_JOURNAL_OPERATION_H_
+#define COMPONENTS_FEED_CORE_FEED_JOURNAL_OPERATION_H_
+
+#include <string>
+
+#include "base/macros.h"
+
+namespace feed {
+
+// Native counterpart of JournalOperation.java.
+class JournalOperation {
+ public:
+  enum Type {
+    JOURNAL_APPEND,
+    JOURNAL_COPY,
+    JOURNAL_DELETE,
+  };
+
+  static JournalOperation CreateAppendOperation(std::string value);
+  static JournalOperation CreateCopyOperation(std::string to_journal_name);
+  static JournalOperation CreateDeleteOperation();
+
+  JournalOperation(JournalOperation&& operation);
+
+  Type type();
+  const std::string& value();
+  const std::string& to_journal_name();
+
+ private:
+  JournalOperation(Type type, std::string value, std::string to_journal_name);
+
+  const Type type_;
+
+  // Used for JOURNAL_APPEND, |value_| will be append to the end of journal.
+  const std::string value_;
+
+  // Used for JOURNAL_COPY, copy current journal to |to_journal_name_|.
+  const std::string to_journal_name_;
+
+  DISALLOW_COPY_AND_ASSIGN(JournalOperation);
+};
+
+}  // namespace feed
+
+#endif  // COMPONENTS_FEED_CORE_FEED_JOURNAL_OPERATION_H_
diff --git a/components/gcm_driver/gcm_profile_service.cc b/components/gcm_driver/gcm_profile_service.cc
index 26f18ce..45ad92c 100644
--- a/components/gcm_driver/gcm_profile_service.cc
+++ b/components/gcm_driver/gcm_profile_service.cc
@@ -142,7 +142,6 @@
 GCMProfileService::GCMProfileService(
     PrefService* prefs,
     base::FilePath path,
-    net::URLRequestContextGetter* request_context,
     base::RepeatingCallback<
         void(base::WeakPtr<GCMProfileService>,
              network::mojom::ProxyResolvingSocketFactoryRequest)>
diff --git a/components/gcm_driver/gcm_profile_service.h b/components/gcm_driver/gcm_profile_service.h
index 90b40e1b..dbed0cf 100644
--- a/components/gcm_driver/gcm_profile_service.h
+++ b/components/gcm_driver/gcm_profile_service.h
@@ -30,10 +30,6 @@
 class IdentityManager;
 }
 
-namespace net {
-class URLRequestContextGetter;
-}
-
 namespace network {
 class SharedURLLoaderFactory;
 }
@@ -57,7 +53,6 @@
   GCMProfileService(
       PrefService* prefs,
       base::FilePath path,
-      net::URLRequestContextGetter* request_context,
       base::RepeatingCallback<
           void(base::WeakPtr<GCMProfileService>,
                network::mojom::ProxyResolvingSocketFactoryRequest)>
diff --git a/components/metrics/call_stack_profile_builder.cc b/components/metrics/call_stack_profile_builder.cc
index c16fcfd0..8cdce01 100644
--- a/components/metrics/call_stack_profile_builder.cc
+++ b/components/metrics/call_stack_profile_builder.cc
@@ -188,12 +188,13 @@
 
   if (existing_sample_index != -1) {
     CallStackProfile::Sample* sample_proto =
-        proto_profile_.mutable_sample(existing_sample_index);
+        proto_profile_.mutable_deprecated_sample(existing_sample_index);
     sample_proto->set_count(sample_proto->count() + 1);
     return;
   }
 
-  CallStackProfile::Sample* sample_proto = proto_profile_.add_sample();
+  CallStackProfile::Sample* sample_proto =
+      proto_profile_.add_deprecated_sample();
   CopySampleToProto(sample_, modules_, sample_proto);
   sample_proto->set_count(1);
   CopyAnnotationsToProto(sample_.process_milestones & ~milestones_,
@@ -201,7 +202,7 @@
   milestones_ = sample_.process_milestones;
 
   sample_index_.insert(std::make_pair(
-      sample_, static_cast<int>(proto_profile_.sample_size()) - 1));
+      sample_, static_cast<int>(proto_profile_.deprecated_sample_size()) - 1));
 
   sample_ = Sample();
 }
diff --git a/components/metrics/call_stack_profile_builder_unittest.cc b/components/metrics/call_stack_profile_builder_unittest.cc
index 2037fcc..eb7859a 100644
--- a/components/metrics/call_stack_profile_builder_unittest.cc
+++ b/components/metrics/call_stack_profile_builder_unittest.cc
@@ -53,16 +53,18 @@
   ASSERT_TRUE(proto.has_call_stack_profile());
   const CallStackProfile& profile = proto.call_stack_profile();
 
-  ASSERT_EQ(2, profile.sample_size());
+  ASSERT_EQ(2, profile.deprecated_sample_size());
 
   uint32_t process_milestones = 0;
-  for (int i = 0; i < profile.sample(0).process_phase().size(); ++i)
-    process_milestones |= 1U << profile.sample(0).process_phase().Get(i);
+  for (int i = 0; i < profile.deprecated_sample(0).process_phase().size(); ++i)
+    process_milestones |=
+        1U << profile.deprecated_sample(0).process_phase().Get(i);
   EXPECT_EQ(0U, process_milestones);
 
   process_milestones = 0;
-  for (int i = 0; i < profile.sample(1).process_phase().size(); ++i)
-    process_milestones |= 1U << profile.sample(1).process_phase().Get(i);
+  for (int i = 0; i < profile.deprecated_sample(1).process_phase().size(); ++i)
+    process_milestones |=
+        1U << profile.deprecated_sample(1).process_phase().Get(i);
   EXPECT_EQ(1U << 1, process_milestones);
 }
 
@@ -112,15 +114,15 @@
   ASSERT_TRUE(proto.has_call_stack_profile());
   const CallStackProfile& profile = proto.call_stack_profile();
 
-  ASSERT_EQ(2, profile.sample_size());
-  ASSERT_EQ(2, profile.sample(0).frame_size());
-  ASSERT_TRUE(profile.sample(0).frame(0).has_module_id_index());
-  EXPECT_EQ(0, profile.sample(0).frame(0).module_id_index());
-  ASSERT_TRUE(profile.sample(0).frame(1).has_module_id_index());
-  EXPECT_EQ(1, profile.sample(0).frame(1).module_id_index());
-  ASSERT_EQ(1, profile.sample(1).frame_size());
-  ASSERT_TRUE(profile.sample(1).frame(0).has_module_id_index());
-  EXPECT_EQ(2, profile.sample(1).frame(0).module_id_index());
+  ASSERT_EQ(2, profile.deprecated_sample_size());
+  ASSERT_EQ(2, profile.deprecated_sample(0).frame_size());
+  ASSERT_TRUE(profile.deprecated_sample(0).frame(0).has_module_id_index());
+  EXPECT_EQ(0, profile.deprecated_sample(0).frame(0).module_id_index());
+  ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_module_id_index());
+  EXPECT_EQ(1, profile.deprecated_sample(0).frame(1).module_id_index());
+  ASSERT_EQ(1, profile.deprecated_sample(1).frame_size());
+  ASSERT_TRUE(profile.deprecated_sample(1).frame(0).has_module_id_index());
+  EXPECT_EQ(2, profile.deprecated_sample(1).frame(0).module_id_index());
 
   ASSERT_EQ(3, profile.module_id().size());
   ASSERT_TRUE(profile.module_id(0).has_build_id());
@@ -186,7 +188,7 @@
   ASSERT_EQ(SampledProfile::PROCESS_STARTUP, proto.trigger_event());
 
   ASSERT_TRUE(proto.has_call_stack_profile());
-  ASSERT_EQ(1, proto.call_stack_profile().sample_size());
+  ASSERT_EQ(1, proto.call_stack_profile().deprecated_sample_size());
 }
 
 TEST(CallStackProfileBuilderTest, SamplesNotDeduped) {
@@ -233,7 +235,7 @@
   ASSERT_EQ(SampledProfile::PROCESS_STARTUP, proto.trigger_event());
 
   ASSERT_TRUE(proto.has_call_stack_profile());
-  ASSERT_EQ(2, proto.call_stack_profile().sample_size());
+  ASSERT_EQ(2, proto.call_stack_profile().deprecated_sample_size());
 }
 
 TEST(CallStackProfileBuilderTest, Modules) {
@@ -267,16 +269,16 @@
   ASSERT_TRUE(proto.has_call_stack_profile());
   const CallStackProfile& profile = proto.call_stack_profile();
 
-  ASSERT_EQ(1, profile.sample_size());
-  ASSERT_EQ(2, profile.sample(0).frame_size());
+  ASSERT_EQ(1, profile.deprecated_sample_size());
+  ASSERT_EQ(2, profile.deprecated_sample(0).frame_size());
 
-  ASSERT_FALSE(profile.sample(0).frame(0).has_module_id_index());
-  ASSERT_FALSE(profile.sample(0).frame(0).has_address());
+  ASSERT_FALSE(profile.deprecated_sample(0).frame(0).has_module_id_index());
+  ASSERT_FALSE(profile.deprecated_sample(0).frame(0).has_address());
 
-  ASSERT_TRUE(profile.sample(0).frame(1).has_module_id_index());
-  EXPECT_EQ(0, profile.sample(0).frame(1).module_id_index());
-  ASSERT_TRUE(profile.sample(0).frame(1).has_address());
-  EXPECT_EQ(0x10ULL, profile.sample(0).frame(1).address());
+  ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_module_id_index());
+  EXPECT_EQ(0, profile.deprecated_sample(0).frame(1).module_id_index());
+  ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_address());
+  EXPECT_EQ(0x10ULL, profile.deprecated_sample(0).frame(1).address());
 
   ASSERT_EQ(1, profile.module_id().size());
   ASSERT_TRUE(profile.module_id(0).has_build_id());
@@ -317,20 +319,20 @@
   ASSERT_TRUE(proto.has_call_stack_profile());
   const CallStackProfile& profile = proto.call_stack_profile();
 
-  ASSERT_EQ(1, profile.sample_size());
-  ASSERT_EQ(2, profile.sample(0).frame_size());
+  ASSERT_EQ(1, profile.deprecated_sample_size());
+  ASSERT_EQ(2, profile.deprecated_sample(0).frame_size());
 
   // Since module1 and module2 have the same base address, they are considered
   // the same module and therefore deduped.
-  ASSERT_TRUE(profile.sample(0).frame(0).has_module_id_index());
-  EXPECT_EQ(0, profile.sample(0).frame(0).module_id_index());
-  ASSERT_TRUE(profile.sample(0).frame(0).has_address());
-  EXPECT_EQ(0x10ULL, profile.sample(0).frame(0).address());
+  ASSERT_TRUE(profile.deprecated_sample(0).frame(0).has_module_id_index());
+  EXPECT_EQ(0, profile.deprecated_sample(0).frame(0).module_id_index());
+  ASSERT_TRUE(profile.deprecated_sample(0).frame(0).has_address());
+  EXPECT_EQ(0x10ULL, profile.deprecated_sample(0).frame(0).address());
 
-  ASSERT_TRUE(profile.sample(0).frame(1).has_module_id_index());
-  EXPECT_EQ(0, profile.sample(0).frame(1).module_id_index());
-  ASSERT_TRUE(profile.sample(0).frame(1).has_address());
-  EXPECT_EQ(0x20ULL, profile.sample(0).frame(1).address());
+  ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_module_id_index());
+  EXPECT_EQ(0, profile.deprecated_sample(0).frame(1).module_id_index());
+  ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_address());
+  EXPECT_EQ(0x20ULL, profile.deprecated_sample(0).frame(1).address());
 
   ASSERT_EQ(1, profile.module_id().size());
   ASSERT_TRUE(profile.module_id(0).has_build_id());
@@ -339,4 +341,4 @@
   ASSERT_EQ(module_md5, profile.module_id(0).name_md5_prefix());
 }
 
-}  // namespace metrics
\ No newline at end of file
+}  // namespace metrics
diff --git a/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc b/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc
index 81e4841..236d6196 100644
--- a/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc
+++ b/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc
@@ -52,7 +52,8 @@
 
   CallStackProfile* proto_profile = input_proto.mutable_call_stack_profile();
 
-  CallStackProfile::Sample* proto_sample = proto_profile->add_sample();
+  CallStackProfile::Sample* proto_sample =
+      proto_profile->add_deprecated_sample();
   proto_sample->set_count(1);
   CallStackProfile::Location* location = proto_sample->add_frame();
   location->set_address(0x10ULL);
@@ -73,14 +74,14 @@
 
   const CallStackProfile& out_profile = output_proto.call_stack_profile();
 
-  ASSERT_EQ(1, out_profile.sample_size());
-  ASSERT_EQ(1, out_profile.sample(0).frame_size());
+  ASSERT_EQ(1, out_profile.deprecated_sample_size());
+  ASSERT_EQ(1, out_profile.deprecated_sample(0).frame_size());
 
-  ASSERT_TRUE(out_profile.sample(0).frame(0).has_address());
-  EXPECT_EQ(0x10ULL, out_profile.sample(0).frame(0).address());
+  ASSERT_TRUE(out_profile.deprecated_sample(0).frame(0).has_address());
+  EXPECT_EQ(0x10ULL, out_profile.deprecated_sample(0).frame(0).address());
 
-  ASSERT_TRUE(out_profile.sample(0).frame(0).has_module_id_index());
-  EXPECT_EQ(0, out_profile.sample(0).frame(0).module_id_index());
+  ASSERT_TRUE(out_profile.deprecated_sample(0).frame(0).has_module_id_index());
+  EXPECT_EQ(0, out_profile.deprecated_sample(0).frame(0).module_id_index());
 
   ASSERT_EQ(1, out_profile.module_id().size());
 
diff --git a/components/neterror/resources/neterror.css b/components/neterror/resources/neterror.css
index b9070185..d33970709 100644
--- a/components/neterror/resources/neterror.css
+++ b/components/neterror/resources/neterror.css
@@ -367,6 +367,14 @@
   color: rgb(255, 255, 255);
 }
 
+/*
+TODO(https://crbug.com/852872): UI for offline suggested content is incomplete.
+*/
+.suggested-thumbnail {
+  width: 25vw;
+  height: 25vw;
+}
+
 /* Alternate dino page button styles */
 #control-buttons .reload-button-alternate:disabled {
   background: #ccc;
diff --git a/components/neterror/resources/neterror.js b/components/neterror/resources/neterror.js
index 1d2a6acf..0d1234c 100644
--- a/components/neterror/resources/neterror.js
+++ b/components/neterror/resources/neterror.js
@@ -160,8 +160,16 @@
   var div = document.getElementById('offline-suggestions');
   var suggestionText = [];
   for (var c of content) {
+    var visual = '';
+    if (c.thumbnail_data_uri) {
+      // html_inline.py will try to replace src attributes with data URIs using
+      // a simple regex. The following is obfuscated slightly to avoid that.
+      var src = 'src';
+      visual = `<img ${src}="${c.thumbnail_data_uri}"` +
+        ' class="suggested-thumbnail"></img>';
+    }
     suggestionText.push(
-      `<li>${c.title} ${c.date_modified} ${c.attribution}</li>`);
+      `<li>${visual} ${c.title} ${c.date_modified} ${c.attribution}</li>`);
   }
   var htmlList = document.getElementById('offline-content-list');
   htmlList.innerHTML = suggestionText.join('\n');
diff --git a/components/network_session_configurator/browser/network_session_configurator.cc b/components/network_session_configurator/browser/network_session_configurator.cc
index e48098a..070e07c6 100644
--- a/components/network_session_configurator/browser/network_session_configurator.cc
+++ b/components/network_session_configurator/browser/network_session_configurator.cc
@@ -591,8 +591,6 @@
         command_line.GetSwitchValueASCII(switches::kHostRules));
   }
 
-  params->enable_token_binding =
-      base::FeatureList::IsEnabled(features::kTokenBinding);
   params->enable_channel_id =
       base::FeatureList::IsEnabled(features::kChannelID);
 }
diff --git a/components/network_session_configurator/browser/network_session_configurator_unittest.cc b/components/network_session_configurator/browser/network_session_configurator_unittest.cc
index 5c64b30..f6acf0b 100644
--- a/components/network_session_configurator/browser/network_session_configurator_unittest.cc
+++ b/components/network_session_configurator/browser/network_session_configurator_unittest.cc
@@ -708,25 +708,12 @@
 }
 
 TEST_F(NetworkSessionConfiguratorTest, TokenBindingDisabled) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndDisableFeature(features::kTokenBinding);
-
   base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
   ParseCommandLineAndFieldTrials(command_line);
 
   EXPECT_FALSE(params_.enable_token_binding);
 }
 
-TEST_F(NetworkSessionConfiguratorTest, TokenBindingEnabled) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeature(features::kTokenBinding);
-
-  base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
-  ParseCommandLineAndFieldTrials(command_line);
-
-  EXPECT_TRUE(params_.enable_token_binding);
-}
-
 TEST_F(NetworkSessionConfiguratorTest, ChannelIDEnabled) {
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndEnableFeature(features::kChannelID);
diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc
index 3a8d564d..d1cc1be3 100644
--- a/components/network_session_configurator/common/network_features.cc
+++ b/components/network_session_configurator/common/network_features.cc
@@ -8,9 +8,6 @@
 
 namespace features {
 
-const base::Feature kTokenBinding{"token-binding",
-                                  base::FEATURE_DISABLED_BY_DEFAULT};
-
 // TODO(nharper): Disable kChannelID on all platforms in M69.
 const base::Feature kChannelID{"channel-id", base::FEATURE_ENABLED_BY_DEFAULT};
 
diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h
index cf64c0b3..fa37ecc 100644
--- a/components/network_session_configurator/common/network_features.h
+++ b/components/network_session_configurator/common/network_features.h
@@ -10,10 +10,6 @@
 
 namespace features {
 
-// Enables token binding
-// (https://www.ietf.org/id/draft-ietf-tokbind-protocol-04.txt).
-NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kTokenBinding;
-
 // Enables Channel ID.
 NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kChannelID;
 
diff --git a/components/offline_items_collection/core/offline_content_aggregator_unittest.cc b/components/offline_items_collection/core/offline_content_aggregator_unittest.cc
index 56cfcfc..986ba11a 100644
--- a/components/offline_items_collection/core/offline_content_aggregator_unittest.cc
+++ b/components/offline_items_collection/core/offline_content_aggregator_unittest.cc
@@ -185,8 +185,8 @@
   EXPECT_CALL(provider2, ResumeDownload(id2, true)).Times(1);
   EXPECT_CALL(provider1, PauseDownload(id1)).Times(1);
   EXPECT_CALL(provider2, PauseDownload(id2)).Times(1);
-  EXPECT_CALL(provider1, GetVisualsForItem(id1, _)).Times(1);
-  EXPECT_CALL(provider2, GetVisualsForItem(id2, _)).Times(1);
+  EXPECT_CALL(provider1, GetVisualsForItem_(id1, _)).Times(1);
+  EXPECT_CALL(provider2, GetVisualsForItem_(id2, _)).Times(1);
   EXPECT_CALL(provider1, GetShareInfoForItem(id1, _)).Times(1);
   EXPECT_CALL(provider2, GetShareInfoForItem(id2, _)).Times(1);
   aggregator_.OpenItem(LaunchLocation::DOWNLOAD_HOME, id1);
diff --git a/components/offline_items_collection/core/test_support/mock_offline_content_provider.cc b/components/offline_items_collection/core/test_support/mock_offline_content_provider.cc
index 8fe7556..d717332 100644
--- a/components/offline_items_collection/core/test_support/mock_offline_content_provider.cc
+++ b/components/offline_items_collection/core/test_support/mock_offline_content_provider.cc
@@ -23,6 +23,12 @@
   items_ = items;
 }
 
+void MockOfflineContentProvider::SetVisuals(
+    std::map<ContentId, OfflineItemVisuals> visuals) {
+  override_visuals_ = true;
+  visuals_ = std::move(visuals);
+}
+
 void MockOfflineContentProvider::NotifyOnItemsAdded(
     const OfflineItemList& items) {
   for (auto& observer : observers_)
@@ -39,6 +45,21 @@
     observer.OnItemUpdated(item);
 }
 
+void MockOfflineContentProvider::GetVisualsForItem(const ContentId& id,
+                                                   VisualsCallback callback) {
+  if (!override_visuals_) {
+    GetVisualsForItem_(id, std::move(callback));
+  } else {
+    std::unique_ptr<OfflineItemVisuals> visuals;
+    auto iter = visuals_.find(id);
+    if (iter != visuals_.end()) {
+      visuals = std::make_unique<OfflineItemVisuals>(iter->second);
+    }
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE, base::BindOnce(std::move(callback), id, std::move(visuals)));
+  }
+}
+
 void MockOfflineContentProvider::GetAllItems(MultipleItemCallback callback) {
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::BindOnce(std::move(callback), items_));
diff --git a/components/offline_items_collection/core/test_support/mock_offline_content_provider.h b/components/offline_items_collection/core/test_support/mock_offline_content_provider.h
index 5c83ae7..d36520d 100644
--- a/components/offline_items_collection/core/test_support/mock_offline_content_provider.h
+++ b/components/offline_items_collection/core/test_support/mock_offline_content_provider.h
@@ -31,6 +31,9 @@
 
   bool HasObserver(Observer* observer);
   void SetItems(const OfflineItemList& items);
+  // Sets visuals returned by |GetVisualsForItem()|. If this is not called,
+  // then the mocked method |GetVisualsForItem_()| is called instead.
+  void SetVisuals(std::map<ContentId, OfflineItemVisuals> visuals);
   void NotifyOnItemsAdded(const OfflineItemList& items);
   void NotifyOnItemRemoved(const ContentId& id);
   void NotifyOnItemUpdated(const OfflineItem& item);
@@ -41,7 +44,10 @@
   MOCK_METHOD1(CancelDownload, void(const ContentId&));
   MOCK_METHOD1(PauseDownload, void(const ContentId&));
   MOCK_METHOD2(ResumeDownload, void(const ContentId&, bool));
-  MOCK_METHOD2(GetVisualsForItem, void(const ContentId&, VisualsCallback));
+  MOCK_METHOD2(GetVisualsForItem_,
+               void(const ContentId&, const VisualsCallback&));
+  void GetVisualsForItem(const ContentId& id,
+                         VisualsCallback callback) override;
   MOCK_METHOD2(GetShareInfoForItem, void(const ContentId&, ShareCallback));
   void GetAllItems(MultipleItemCallback callback) override;
   void GetItemById(const ContentId& id, SingleItemCallback callback) override;
@@ -51,6 +57,8 @@
  private:
   base::ObserverList<Observer>::Unchecked observers_;
   OfflineItemList items_;
+  std::map<ContentId, OfflineItemVisuals> visuals_;
+  bool override_visuals_ = false;
 };
 
 }  // namespace offline_items_collection
diff --git a/components/offline_items_collection/core/throttled_offline_content_provider_unittest.cc b/components/offline_items_collection/core/throttled_offline_content_provider_unittest.cc
index e8cca8c0..6a5ae1c 100644
--- a/components/offline_items_collection/core/throttled_offline_content_provider_unittest.cc
+++ b/components/offline_items_collection/core/throttled_offline_content_provider_unittest.cc
@@ -97,7 +97,7 @@
   EXPECT_CALL(wrapped_provider_, CancelDownload(id));
   EXPECT_CALL(wrapped_provider_, PauseDownload(id));
   EXPECT_CALL(wrapped_provider_, ResumeDownload(id, true));
-  EXPECT_CALL(wrapped_provider_, GetVisualsForItem(id, _));
+  EXPECT_CALL(wrapped_provider_, GetVisualsForItem_(id, _));
   wrapped_provider_.SetItems(items);
   provider_.OpenItem(LaunchLocation::DOWNLOAD_HOME, id);
   provider_.RemoveItem(id);
diff --git a/components/offline_pages/core/prefetch/metrics_finalization_task.cc b/components/offline_pages/core/prefetch/metrics_finalization_task.cc
index 917b39a6..10ef18b1 100644
--- a/components/offline_pages/core/prefetch/metrics_finalization_task.cc
+++ b/components/offline_pages/core/prefetch/metrics_finalization_task.cc
@@ -116,50 +116,6 @@
   }
 }
 
-// These constants represent important indexes in the
-// OfflinePrefetchArchiveActualSizeVsExpected histogram enum.
-const int kEnumZeroArchiveBodyLength = 0;
-const int kEnumRange0To100Min = 1;
-const int kEnumRange0To100Max = 10;
-const int kEnumSizeMatches100 = 11;
-const int kEnumRange100To200OrMoreMin = 12;
-const int kEnumRange100To200OrMoreMax = 22;
-
-// Value meaning the file size should not be reported (not a valid index in the
-// OfflinePrefetchArchiveActualSizeVsExpected enum).
-const int kShouldNotReportFileSize = -1;
-
-// Returned values conform to the definition of the
-// OfflinePrefetchArchiveActualSizeVsExpected histogram enum. Except for -1
-// which means "do not report".
-int GetFileSizeEnumValueFor(int64_t archive_body_length, int64_t file_size) {
-  // Archiving service reported body length as zero.
-  if (archive_body_length == 0)
-    return kEnumZeroArchiveBodyLength;
-
-  // For other cases, reporting should only happen if both size values were set
-  // meaning the item reached at least the successfully downloaded state.
-  if (archive_body_length < 0 || file_size < 0)
-    return kShouldNotReportFileSize;
-
-  if (archive_body_length == file_size)
-    return kEnumSizeMatches100;
-
-  // For smaller sizes than expected, return an index in the 0% <= ratio < 100%
-  // range.
-  double ratio = static_cast<double>(file_size) / archive_body_length;
-  if (archive_body_length > file_size) {
-    return std::max(
-        kEnumRange0To100Min,
-        std::min(kEnumRange0To100Max, static_cast<int>(ratio * 10) + 1));
-  }
-
-  // Otherwise return an index in the 100% < ratio range.
-  return std::max(
-      kEnumRange100To200OrMoreMin,
-      std::min(kEnumRange100To200OrMoreMax, static_cast<int>(ratio * 10) + 2));
-}
-
 void ReportMetricsFor(const PrefetchItemStats& url, const base::Time now) {
   // Lifetime reporting.
   static const int kFourWeeksInSeconds =
@@ -179,15 +135,6 @@
   base::UmaHistogramSparse("OfflinePages.Prefetching.FinishedItemErrorCode",
                            static_cast<int>(url.error_code));
 
-  // Unexpected file size reporting.
-  int file_size_enum_value =
-      GetFileSizeEnumValueFor(url.archive_body_length, url.file_size);
-  if (file_size_enum_value != kShouldNotReportFileSize) {
-    UMA_HISTOGRAM_ENUMERATION(
-        "OfflinePages.Prefetching.DownloadedArchiveSizeVsExpected",
-        file_size_enum_value, kEnumRange100To200OrMoreMax);
-  }
-
   // Attempt counts reporting.
   static const int kMaxPossibleRetries = 20;
   UMA_HISTOGRAM_EXACT_LINEAR(
diff --git a/components/offline_pages/core/prefetch/metrics_finalization_task_unittest.cc b/components/offline_pages/core/prefetch/metrics_finalization_task_unittest.cc
index d0c5fa80..58b9a0f5 100644
--- a/components/offline_pages/core/prefetch/metrics_finalization_task_unittest.cc
+++ b/components/offline_pages/core/prefetch/metrics_finalization_task_unittest.cc
@@ -150,10 +150,6 @@
       "OfflinePages.Prefetching.FinishedItemErrorCode",
       static_cast<int>(PrefetchItemErrorCode::ARCHIVING_FAILED), 1);
 
-  // One sample at the "size matches (100%)" bucket.
-  histogram_tester.ExpectUniqueSample(
-      "OfflinePages.Prefetching.DownloadedArchiveSizeVsExpected", 11, 1);
-
   // Attempt values match what was set above (non set values default to 0).
   histogram_tester.ExpectTotalCount(
       "OfflinePages.Prefetching.ActionAttempts.GeneratePageBundle", 2);
@@ -175,65 +171,6 @@
       "OfflinePages.Prefetching.ActionAttempts.DownloadInitiation", 1, 1);
 }
 
-TEST_F(MetricsFinalizationTaskTest, FileSizeMetricsAreReportedCorrectly) {
-  PrefetchItem zero_body_length =
-      item_generator()->CreateItem(PrefetchItemState::RECEIVED_BUNDLE);
-  zero_body_length.state = PrefetchItemState::FINISHED;
-  zero_body_length.archive_body_length = 0;
-  zero_body_length.file_size = -1;
-  ASSERT_TRUE(store_util()->InsertPrefetchItem(zero_body_length));
-
-  PrefetchItem smaller_than_expected =
-      item_generator()->CreateItem(PrefetchItemState::FINISHED);
-  smaller_than_expected.archive_body_length = 1000;
-  smaller_than_expected.file_size = 999;
-  ASSERT_TRUE(store_util()->InsertPrefetchItem(smaller_than_expected));
-
-  PrefetchItem sizes_match =
-      item_generator()->CreateItem(PrefetchItemState::FINISHED);
-  sizes_match.archive_body_length = 1000;
-  sizes_match.file_size = 1000;
-  ASSERT_TRUE(store_util()->InsertPrefetchItem(sizes_match));
-
-  PrefetchItem larger_than_expected =
-      item_generator()->CreateItem(PrefetchItemState::FINISHED);
-  larger_than_expected.archive_body_length = 1000;
-  larger_than_expected.file_size = 1001;
-  ASSERT_TRUE(store_util()->InsertPrefetchItem(larger_than_expected));
-
-  PrefetchItem much_larger_than_expected =
-      item_generator()->CreateItem(PrefetchItemState::FINISHED);
-  much_larger_than_expected.archive_body_length = 1000;
-  much_larger_than_expected.file_size = 10000;
-  ASSERT_TRUE(store_util()->InsertPrefetchItem(much_larger_than_expected));
-
-  // Execute the metrics task.
-  base::HistogramTester histogram_tester;
-  RunTask(metrics_finalization_task_.get());
-
-  std::set<PrefetchItem> all_items;
-  EXPECT_EQ(5U, store_util()->GetAllItems(&all_items));
-  EXPECT_EQ(5U, FilterByState(all_items, PrefetchItemState::ZOMBIE).size());
-
-  histogram_tester.ExpectTotalCount(
-      "OfflinePages.Prefetching.DownloadedArchiveSizeVsExpected", 5);
-  // One sample at the "archive_body_length = 0" bucket.
-  histogram_tester.ExpectBucketCount(
-      "OfflinePages.Prefetching.DownloadedArchiveSizeVsExpected", 0, 1);
-  // One sample at the "90% to 100%" bucket.
-  histogram_tester.ExpectBucketCount(
-      "OfflinePages.Prefetching.DownloadedArchiveSizeVsExpected", 10, 1);
-  // One sample at the "size matches (100%)" bucket.
-  histogram_tester.ExpectBucketCount(
-      "OfflinePages.Prefetching.DownloadedArchiveSizeVsExpected", 11, 1);
-  // One sample at the "100% to 110%" bucket.
-  histogram_tester.ExpectBucketCount(
-      "OfflinePages.Prefetching.DownloadedArchiveSizeVsExpected", 12, 1);
-  // One sample at the "above 200%" bucket.
-  histogram_tester.ExpectBucketCount(
-      "OfflinePages.Prefetching.DownloadedArchiveSizeVsExpected", 22, 1);
-}
-
 // Verifies that items from all states are counted properly.
 TEST_F(MetricsFinalizationTaskTest,
        CountsItemsInEachStateMetricReportedCorectly) {
diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc
index f3e55e4..19020a09 100644
--- a/components/omnibox/browser/base_search_provider.cc
+++ b/components/omnibox/browser/base_search_provider.cc
@@ -496,9 +496,6 @@
           default_result_relevance, is_keyword_result, results))
     return false;
 
-  for (const GURL& url : results->prefetch_image_urls)
-    client_->PrefetchImage(url);
-
   field_trial_triggered_ |= results->field_trial_triggered;
   field_trial_triggered_in_session_ |= results->field_trial_triggered;
   return true;
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
index d8223a82..cdae91f 100644
--- a/components/omnibox/browser/search_provider.cc
+++ b/components/omnibox/browser/search_provider.cc
@@ -428,8 +428,10 @@
       SearchSuggestionParser::Results* results =
           is_keyword ? &keyword_results_ : &default_results_;
       results_updated = ParseSuggestResults(*data, -1, is_keyword, results);
-      if (results_updated)
+      if (results_updated) {
         SortResults(is_keyword, results);
+        PrefetchImages(results);
+      }
     }
   }
 
@@ -1594,3 +1596,30 @@
 
   return AnswersQueryData();
 }
+
+void SearchProvider::PrefetchImages(SearchSuggestionParser::Results* results) {
+  // The server sends back as many as 20 suggestions that may have
+  // images but only a few of these will end up getting shown.  Limit the images
+  // prefetched to those for most relevant results that will get shown.  This
+  // will prevent blasting the cache, causing reloads & flicker.  The results
+  // are processed in descending order of relevance so the first suggestions are
+  // the ones to be shown; prefetching images for the rest would be wasteful.
+  std::vector<GURL> prefetch_image_urls;
+  int prefetch_limit = AutocompleteResult::GetMaxMatches();
+  for (const auto& suggestion : results->suggest_results) {
+    if (prefetch_limit <= 0)
+      break;
+    prefetch_limit--;
+
+    const auto& image_url = suggestion.image_url();
+    if (!image_url.empty())
+      prefetch_image_urls.push_back(GURL(image_url));
+
+    const SuggestionAnswer* answer = suggestion.answer();
+    if (answer)
+      answer->AddImageURLsTo(&prefetch_image_urls);
+  }
+
+  for (const GURL& url : prefetch_image_urls)
+    client()->PrefetchImage(url);
+}
diff --git a/components/omnibox/browser/search_provider.h b/components/omnibox/browser/search_provider.h
index 0a37754f..4f32d2f9 100644
--- a/components/omnibox/browser/search_provider.h
+++ b/components/omnibox/browser/search_provider.h
@@ -371,6 +371,9 @@
   // AnswersQueryData.
   AnswersQueryData FindAnswersPrefetchData();
 
+  // Finds image URLs in most relevant results and uses client to prefetch them.
+  void PrefetchImages(SearchSuggestionParser::Results* results);
+
   AutocompleteProviderListener* listener_;
 
   // Maintains the TemplateURLs used.
diff --git a/components/omnibox/browser/search_suggestion_parser.cc b/components/omnibox/browser/search_suggestion_parser.cc
index f764db1..4f4ef692 100644
--- a/components/omnibox/browser/search_suggestion_parser.cc
+++ b/components/omnibox/browser/search_suggestion_parser.cc
@@ -486,7 +486,6 @@
   // Clear the previous results now that new results are available.
   results->suggest_results.clear();
   results->navigation_results.clear();
-  results->prefetch_image_urls.clear();
 
   base::string16 suggestion;
   std::string type;
@@ -575,10 +574,6 @@
           suggestion_detail->GetString("i", &image_url);
           suggestion_detail->GetString("q", &suggest_query_params);
 
-          if (!image_url.empty()) {
-            results->prefetch_image_urls.push_back(GURL(image_url));
-          }
-
           // Extract the Answer, if provided.
           const base::DictionaryValue* answer_json = nullptr;
           if (suggestion_detail->GetDictionary("ansa", &answer_json) &&
@@ -591,7 +586,6 @@
               answer_parsed_successfully = true;
 
               answer->set_type(answer_type);
-              answer->AddImageURLsTo(&results->prefetch_image_urls);
 
               std::string contents;
               base::JSONWriter::Write(*answer_json, &contents);
diff --git a/components/omnibox/browser/search_suggestion_parser.h b/components/omnibox/browser/search_suggestion_parser.h
index 3bcb42d..590634c 100644
--- a/components/omnibox/browser/search_suggestion_parser.h
+++ b/components/omnibox/browser/search_suggestion_parser.h
@@ -275,7 +275,9 @@
     // server-provided scores.
     bool HasServerProvidedScores() const;
 
-    // Query suggestions sorted by relevance score.
+    // Query suggestions sorted by relevance score, descending. This order is
+    // normally provided by server and is guaranteed after search provider
+    // calls SortResults, so order always holds except possibly while parsing.
     SuggestResults suggest_results;
 
     // Navigational suggestions sorted by relevance score.
@@ -295,9 +297,6 @@
     // If the relevance values of the results are from the server.
     bool relevances_from_server;
 
-    // URLs of any images in results that should be prefetched into the cache.
-    SuggestionAnswer::URLs prefetch_image_urls;
-
    private:
     DISALLOW_COPY_AND_ASSIGN(Results);
   };
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
index 4ab9c66..8a8d04a 100644
--- a/components/password_manager/core/browser/password_manager.cc
+++ b/components/password_manager/core/browser/password_manager.cc
@@ -291,7 +291,6 @@
   registry->RegisterBooleanPref(
       prefs::kWasAutoSignInFirstRunExperienceShown, false,
       user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
-  registry->RegisterBooleanPref(prefs::kBlacklistedCredentialsStripped, false);
   registry->RegisterBooleanPref(prefs::kDuplicatedBlacklistedCredentialsRemoved,
                                 false);
 #if defined(OS_MACOSX)
diff --git a/components/password_manager/core/browser/password_manager_util.cc b/components/password_manager/core/browser/password_manager_util.cc
index 19abf4c..1c64624 100644
--- a/components/password_manager/core/browser/password_manager_util.cc
+++ b/components/password_manager/core/browser/password_manager_util.cc
@@ -32,57 +32,20 @@
 namespace password_manager_util {
 namespace {
 
-// Clears username/password on the blacklisted credentials and delete
-// blacklisted duplicates.
-class BlacklistedCredentialsCleaner
+// This class is responsible for deleting blacklisted duplicates.
+class BlacklistedDuplicatesCleaner
     : public password_manager::PasswordStoreConsumer {
  public:
-  BlacklistedCredentialsCleaner(password_manager::PasswordStore* store,
-                                PrefService* prefs)
+  BlacklistedDuplicatesCleaner(password_manager::PasswordStore* store,
+                               PrefService* prefs)
       : store_(store), prefs_(prefs) {
     store_->GetBlacklistLogins(this);
   }
-  ~BlacklistedCredentialsCleaner() override = default;
+  ~BlacklistedDuplicatesCleaner() override = default;
 
+  // PasswordStoreConsumer:
   void OnGetPasswordStoreResults(
       std::vector<std::unique_ptr<autofill::PasswordForm>> results) override {
-    if (!prefs_->GetBoolean(
-            password_manager::prefs::kBlacklistedCredentialsStripped))
-      RemoveUsernameAndPassword(results);
-
-    if (!prefs_->GetBoolean(
-            password_manager::prefs::kDuplicatedBlacklistedCredentialsRemoved))
-      RemoveDuplicates(results);
-    delete this;
-  }
-
- private:
-  // TODO(https://crbug.com/817754): remove the code once majority of the users
-  // executed it.
-  void RemoveUsernameAndPassword(
-      const std::vector<std::unique_ptr<PasswordForm>>& results) {
-    bool cleaned_something = false;
-    for (const auto& form : results) {
-      DCHECK(form->blacklisted_by_user);
-      if (!form->username_value.empty() || !form->password_value.empty()) {
-        cleaned_something = true;
-        store_->RemoveLogin(*form);
-        form->username_value.clear();
-        form->password_value.clear();
-        store_->AddLogin(*form);
-      }
-    }
-
-    // Update the pref if no forms were handled. The password store is async,
-    // therefore, one can't be sure that the changes applied cleanly.
-    if (!cleaned_something) {
-      prefs_->SetBoolean(
-          password_manager::prefs::kBlacklistedCredentialsStripped, true);
-    }
-  }
-
-  void RemoveDuplicates(
-      const std::vector<std::unique_ptr<PasswordForm>>& results) {
     std::set<std::string> signon_realms;
     for (const auto& form : results) {
       DCHECK(form->blacklisted_by_user);
@@ -97,19 +60,21 @@
           password_manager::prefs::kDuplicatedBlacklistedCredentialsRemoved,
           true);
     }
+    delete this;
   }
 
+ private:
   password_manager::PasswordStore* store_;
   PrefService* prefs_;
 
-  DISALLOW_COPY_AND_ASSIGN(BlacklistedCredentialsCleaner);
+  DISALLOW_COPY_AND_ASSIGN(BlacklistedDuplicatesCleaner);
 };
 
-void StartCleaningBlacklisted(
+void StartDeletingBlacklistedDuplicates(
     const scoped_refptr<password_manager::PasswordStore>& store,
     PrefService* prefs) {
   // The object will delete itself once the credentials are retrieved.
-  new BlacklistedCredentialsCleaner(store.get(), prefs);
+  new BlacklistedDuplicatesCleaner(store.get(), prefs);
 }
 
 // Return true if
@@ -383,23 +348,19 @@
       autofill::password_generation::PASSWORD_GENERATION_CONTEXT_MENU_PRESSED);
 }
 
-void CleanBlacklistedCredentials(password_manager::PasswordStore* store,
+void DeleteBlacklistedDuplicates(password_manager::PasswordStore* store,
                                  PrefService* prefs,
                                  int delay_in_seconds) {
-  const bool need_to_stripe_username = !prefs->GetBoolean(
-      password_manager::prefs::kBlacklistedCredentialsStripped);
-  base::UmaHistogramBoolean("PasswordManager.BlacklistedSites.NeedToBeCleaned",
-                            need_to_stripe_username);
   const bool need_to_remove_blacklisted_duplicates = !prefs->GetBoolean(
       password_manager::prefs::kDuplicatedBlacklistedCredentialsRemoved);
   base::UmaHistogramBoolean(
       "PasswordManager.BlacklistedSites.NeedRemoveBlacklistDuplicates",
       need_to_remove_blacklisted_duplicates);
-  if (need_to_stripe_username || need_to_remove_blacklisted_duplicates)
+  if (need_to_remove_blacklisted_duplicates)
     base::SequencedTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
-        base::BindOnce(&StartCleaningBlacklisted, base::WrapRefCounted(store),
-                       prefs),
+        base::BindOnce(&StartDeletingBlacklistedDuplicates,
+                       base::WrapRefCounted(store), prefs),
         base::TimeDelta::FromSeconds(delay_in_seconds));
 }
 
diff --git a/components/password_manager/core/browser/password_manager_util.h b/components/password_manager/core/browser/password_manager_util.h
index 77644a6..0e1356e6 100644
--- a/components/password_manager/core/browser/password_manager_util.h
+++ b/components/password_manager/core/browser/password_manager_util.h
@@ -89,10 +89,9 @@
 void UserTriggeredManualGenerationFromContextMenu(
     password_manager::PasswordManagerClient* password_manager_client);
 
-// Clean up the blacklisted entries in the password store. Those shouldn't
-// contain username/password pair (https://crbug.com/817754) and delete
-// blacklisted duplicates.
-void CleanBlacklistedCredentials(password_manager::PasswordStore* store,
+// Two blacklisted forms are considered equal if they have the same
+// signon_realm.
+void DeleteBlacklistedDuplicates(password_manager::PasswordStore* store,
                                  PrefService* prefs,
                                  int delay_in_seconds);
 
diff --git a/components/password_manager/core/browser/password_manager_util_unittest.cc b/components/password_manager/core/browser/password_manager_util_unittest.cc
index 47fcb37..3b192ad 100644
--- a/components/password_manager/core/browser/password_manager_util_unittest.cc
+++ b/components/password_manager/core/browser/password_manager_util_unittest.cc
@@ -31,7 +31,6 @@
 constexpr char kTestAndroidRealm[] = "android://hash@com.example.beta.android";
 constexpr char kTestFederationURL[] = "https://google.com/";
 constexpr char kTestURL[] = "https://example.com/";
-constexpr char kTestUsernameElement[] = "username_element";
 constexpr char kTestUsername[] = "Username";
 constexpr char kTestUsername2[] = "Username2";
 constexpr char kTestPassword[] = "12345";
@@ -85,57 +84,6 @@
   EXPECT_THAT(forms, UnorderedPasswordFormElementsAre(&expected_forms));
 }
 
-TEST(PasswordManagerUtil, CleanBlacklistedUsernamePassword) {
-  autofill::PasswordForm blacklisted;
-  blacklisted.blacklisted_by_user = true;
-  blacklisted.signon_realm = kTestURL;
-  blacklisted.origin = GURL(kTestURL);
-
-  autofill::PasswordForm blacklisted_with_username = blacklisted;
-  blacklisted_with_username.username_value = base::ASCIIToUTF16(kTestUsername);
-
-  autofill::PasswordForm blacklisted_with_password = blacklisted;
-  blacklisted_with_password.password_value = base::ASCIIToUTF16(kTestPassword);
-
-  base::test::ScopedTaskEnvironment scoped_task_environment;
-  TestingPrefServiceSimple prefs;
-  prefs.registry()->RegisterBooleanPref(
-      password_manager::prefs::kBlacklistedCredentialsStripped, false);
-  // Prevent cleaning of duplicated blacklist entries.
-  prefs.registry()->RegisterBooleanPref(
-      password_manager::prefs::kDuplicatedBlacklistedCredentialsRemoved, true);
-  auto password_store = base::MakeRefCounted<
-      testing::StrictMock<password_manager::MockPasswordStore>>();
-  ASSERT_TRUE(
-      password_store->Init(syncer::SyncableService::StartSyncFlare(), nullptr));
-
-  EXPECT_CALL(*password_store, FillBlacklistLogins(_))
-      .WillOnce(DoAll(AppendForm(blacklisted),
-                      AppendForm(blacklisted_with_username),
-                      AppendForm(blacklisted_with_password), Return(true)));
-  // Wrong credentials are to be cleaned.
-  EXPECT_CALL(*password_store, RemoveLogin(blacklisted_with_username));
-  EXPECT_CALL(*password_store, RemoveLogin(blacklisted_with_password));
-  EXPECT_CALL(*password_store, AddLogin(blacklisted)).Times(2);
-
-  CleanBlacklistedCredentials(password_store.get(), &prefs, 0);
-  scoped_task_environment.RunUntilIdle();
-
-  EXPECT_FALSE(prefs.GetBoolean(
-      password_manager::prefs::kBlacklistedCredentialsStripped));
-
-  // Clean up with no credentials to be updated.
-  EXPECT_CALL(*password_store, FillBlacklistLogins(_))
-      .WillOnce(DoAll(AppendForm(blacklisted), Return(true)));
-  CleanBlacklistedCredentials(password_store.get(), &prefs, 0);
-  scoped_task_environment.RunUntilIdle();
-
-  EXPECT_TRUE(prefs.GetBoolean(
-      password_manager::prefs::kBlacklistedCredentialsStripped));
-
-  password_store->ShutdownOnUIThread();
-}
-
 TEST(PasswordManagerUtil, RemoveBlacklistedDuplicates) {
   autofill::PasswordForm blacklisted;
   blacklisted.blacklisted_by_user = true;
@@ -151,12 +99,6 @@
   base::test::ScopedTaskEnvironment scoped_task_environment;
   TestingPrefServiceSimple prefs;
 
-  // In this test we are explicitly only testing the clean up of duplicated
-  // credentials and setting this true will prevent making other unrelated
-  // clean-up.
-  prefs.registry()->RegisterBooleanPref(
-      password_manager::prefs::kBlacklistedCredentialsStripped, true);
-
   prefs.registry()->RegisterBooleanPref(
       password_manager::prefs::kDuplicatedBlacklistedCredentialsRemoved, false);
 
@@ -173,56 +115,11 @@
 
   // Duplicated credentials are to be deleted.
   EXPECT_CALL(*password_store, RemoveLogin(blacklisted_first_example));
-  CleanBlacklistedCredentials(password_store.get(), &prefs, 0);
+  DeleteBlacklistedDuplicates(password_store.get(), &prefs, 0);
   scoped_task_environment.RunUntilIdle();
   password_store->ShutdownOnUIThread();
 }
 
-TEST(PasswordManagerUtil, RemoveBlacklistedDuplicatesWithCredentials) {
-  autofill::PasswordForm blacklisted;
-  blacklisted.blacklisted_by_user = true;
-  blacklisted.signon_realm = kTestURL;
-  blacklisted.origin = GURL(kTestURL);
-
-  autofill::PasswordForm blacklisted_with_username_and_password = blacklisted;
-  blacklisted_with_username_and_password.username_element =
-      base::ASCIIToUTF16(kTestUsernameElement);
-  blacklisted_with_username_and_password.username_value =
-      base::ASCIIToUTF16(kTestUsername);
-  blacklisted_with_username_and_password.password_value =
-      base::ASCIIToUTF16(kTestPassword);
-
-  base::test::ScopedTaskEnvironment scoped_task_environment;
-  TestingPrefServiceSimple prefs;
-
-  // Here we test the behavior when the Password Store contains blacklisted
-  // entries with password or username values that have to be cleared and
-  // blacklisted duplicates, too.
-  prefs.registry()->RegisterBooleanPref(
-      password_manager::prefs::kBlacklistedCredentialsStripped, false);
-
-  prefs.registry()->RegisterBooleanPref(
-      password_manager::prefs::kDuplicatedBlacklistedCredentialsRemoved, false);
-
-  auto password_store =
-      base::MakeRefCounted<password_manager::TestPasswordStore>();
-  ASSERT_TRUE(
-      password_store->Init(syncer::SyncableService::StartSyncFlare(), nullptr));
-
-  password_store->AddLogin(blacklisted);
-  password_store->AddLogin(blacklisted_with_username_and_password);
-  scoped_task_environment.RunUntilIdle();
-
-  CleanBlacklistedCredentials(password_store.get(), &prefs, 0);
-  scoped_task_environment.RunUntilIdle();
-
-  EXPECT_EQ(password_store->stored_passwords(),
-            password_manager::TestPasswordStore::PasswordMap(
-                {{blacklisted.signon_realm, {{blacklisted}}}}));
-  password_store->ShutdownOnUIThread();
-  scoped_task_environment.RunUntilIdle();
-}
-
 #if !defined(OS_IOS)
 TEST(PasswordManagerUtil, ReportHttpMigrationMetrics) {
   for (bool is_hsts_enabled : {false, true}) {
diff --git a/components/password_manager/core/common/password_manager_pref_names.cc b/components/password_manager/core/common/password_manager_pref_names.cc
index 6ca54fe..f2d5b6f 100644
--- a/components/password_manager/core/common/password_manager_pref_names.cc
+++ b/components/password_manager/core/common/password_manager_pref_names.cc
@@ -42,9 +42,6 @@
 const char kSyncPasswordLengthAndHashSalt[] =
     "profile.sync_password_length_and_hash_salt";
 
-const char kBlacklistedCredentialsStripped[] =
-    "profile.blacklisted_credentials_stripped";
-
 const char kDuplicatedBlacklistedCredentialsRemoved[] =
     "profile.duplicated_blacklisted_credentials_removed";
 
diff --git a/components/password_manager/core/common/password_manager_pref_names.h b/components/password_manager/core/common/password_manager_pref_names.h
index 3fd70cbd..0e025c0c 100644
--- a/components/password_manager/core/common/password_manager_pref_names.h
+++ b/components/password_manager/core/common/password_manager_pref_names.h
@@ -70,9 +70,6 @@
 // int>.<16 char salt>".
 extern const char kSyncPasswordLengthAndHashSalt[];
 
-// Whether Chrome cleaned up username/password in the blacklisted credentials.
-extern const char kBlacklistedCredentialsStripped[];
-
 // Whether Chrome deleted blacklisted credentials that were duplicated.
 extern const char kDuplicatedBlacklistedCredentialsRemoved[];
 
diff --git a/components/policy/content/BUILD.gn b/components/policy/content/BUILD.gn
index fda6e2f..e973e49c 100644
--- a/components/policy/content/BUILD.gn
+++ b/components/policy/content/BUILD.gn
@@ -10,6 +10,8 @@
   sources = [
     "policy_blacklist_navigation_throttle.cc",
     "policy_blacklist_navigation_throttle.h",
+    "policy_blacklist_service.cc",
+    "policy_blacklist_service.h",
   ]
 
   deps = [
@@ -17,8 +19,30 @@
     "//components/keyed_service/content:content",
     "//components/policy/core/browser",
     "//components/prefs",
+    "//components/safe_search_api",
     "//components/user_prefs:user_prefs",
     "//content/public/browser",
     "//net",
   ]
 }
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [
+    "policy_blacklist_navigation_throttle_unittest.cc",
+  ]
+  deps = [
+    ":content",
+    "//base",
+    "//components/keyed_service/content",
+    "//components/policy/core/browser",
+    "//components/safe_search_api",
+    "//components/safe_search_api:test_support",
+    "//components/sync_preferences:test_support",
+    "//components/user_prefs:user_prefs",
+    "//content/public/browser",
+    "//content/test:test_support",
+    "//testing/gtest",
+    "//url",
+  ]
+}
diff --git a/components/policy/content/DEPS b/components/policy/content/DEPS
index 3b9caa8..fa62d62 100644
--- a/components/policy/content/DEPS
+++ b/components/policy/content/DEPS
@@ -1,8 +1,16 @@
 include_rules = [
-  "+content/public",
+  "+content/public/browser",
   "+components/policy",
   "+components/keyed_service",
   "+components/prefs",
+  "+components/safe_search_api",
   "+components/user_prefs",
   "+net/base",
 ]
+
+specific_include_rules = {
+  "policy_blacklist_navigation_throttle_unittest\.cc": [
+    "+components/sync_preferences/testing_pref_service_syncable.h",
+    "+content/public/test",
+  ],
+}
diff --git a/components/policy/content/policy_blacklist_navigation_throttle.cc b/components/policy/content/policy_blacklist_navigation_throttle.cc
index 15b0569..c128f85f 100644
--- a/components/policy/content/policy_blacklist_navigation_throttle.cc
+++ b/components/policy/content/policy_blacklist_navigation_throttle.cc
@@ -4,75 +4,80 @@
 
 #include "components/policy/content/policy_blacklist_navigation_throttle.h"
 
-#include "components/keyed_service/content/browser_context_dependency_manager.h"
+#include "base/bind.h"
+#include "base/logging.h"
+#include "components/policy/content/policy_blacklist_service.h"
+#include "components/policy/core/browser/url_blacklist_manager.h"
+#include "components/policy/core/browser/url_blacklist_policy_handler.h"
+#include "components/policy/core/browser/url_util.h"
+#include "components/policy/core/common/policy_pref_names.h"
+#include "components/prefs/pref_service.h"
 #include "components/user_prefs/user_prefs.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/navigation_handle.h"
+#include "url/gurl.h"
 
-PolicyBlacklistService::PolicyBlacklistService(
-    std::unique_ptr<policy::URLBlacklistManager> url_blacklist_manager)
-    : url_blacklist_manager_(std::move(url_blacklist_manager)) {}
-
-PolicyBlacklistService::~PolicyBlacklistService() {}
-
-bool PolicyBlacklistService::IsURLBlocked(const GURL& url) const {
-  return url_blacklist_manager_->IsURLBlocked(url);
-}
-
-policy::URLBlacklist::URLBlacklistState
-PolicyBlacklistService::GetURLBlacklistState(const GURL& url) const {
-  return url_blacklist_manager_->GetURLBlacklistState(url);
-}
-
-// static
-PolicyBlacklistFactory* PolicyBlacklistFactory::GetInstance() {
-  return base::Singleton<PolicyBlacklistFactory>::get();
-}
-
-// static
-PolicyBlacklistService* PolicyBlacklistFactory::GetForProfile(
-    content::BrowserContext* context) {
-  return static_cast<PolicyBlacklistService*>(
-      GetInstance()->GetServiceForBrowserContext(context, true));
-}
-
-PolicyBlacklistFactory::PolicyBlacklistFactory()
-    : BrowserContextKeyedServiceFactory(
-          "PolicyBlacklist",
-          BrowserContextDependencyManager::GetInstance()) {}
-
-PolicyBlacklistFactory::~PolicyBlacklistFactory() {}
-
-KeyedService* PolicyBlacklistFactory::BuildServiceInstanceFor(
-    content::BrowserContext* context) const {
-  PrefService* pref_service = user_prefs::UserPrefs::Get(context);
-  auto url_blacklist_manager =
-      std::make_unique<policy::URLBlacklistManager>(pref_service);
-  return new PolicyBlacklistService(std::move(url_blacklist_manager));
-}
-
-content::BrowserContext* PolicyBlacklistFactory::GetBrowserContextToUse(
-    content::BrowserContext* context) const {
-  // TODO(crbug.com/701326): This DCHECK should be moved to GetContextToUse().
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return context;
-}
+using URLBlacklistState = policy::URLBlacklist::URLBlacklistState;
+using SafeSitesFilterBehavior = policy::SafeSitesFilterBehavior;
 
 PolicyBlacklistNavigationThrottle::PolicyBlacklistNavigationThrottle(
     content::NavigationHandle* navigation_handle,
     content::BrowserContext* context)
-    : NavigationThrottle(navigation_handle) {
-  blacklist_service_ = PolicyBlacklistFactory::GetForProfile(context);
+    : NavigationThrottle(navigation_handle), weak_ptr_factory_(this) {
+  blacklist_service_ = PolicyBlacklistFactory::GetForBrowserContext(context);
+  prefs_ = user_prefs::UserPrefs::Get(context);
+  DCHECK(prefs_);
 }
 
 PolicyBlacklistNavigationThrottle::~PolicyBlacklistNavigationThrottle() {}
 
 content::NavigationThrottle::ThrottleCheckResult
 PolicyBlacklistNavigationThrottle::WillStartRequest() {
-  if (blacklist_service_->IsURLBlocked(navigation_handle()->GetURL())) {
+  GURL url = navigation_handle()->GetURL();
+
+  // Ignore blob scheme because PlzNavigate may use it to deliver navigation
+  // responses to the renderer process.
+  if (url.SchemeIs(url::kBlobScheme))
+    return PROCEED;
+
+  URLBlacklistState blacklist_state =
+      blacklist_service_->GetURLBlacklistState(url);
+  if (blacklist_state == URLBlacklistState::URL_IN_BLACKLIST) {
     return ThrottleCheckResult(BLOCK_REQUEST,
                                net::ERR_BLOCKED_BY_ADMINISTRATOR);
   }
+
+  if (blacklist_state == URLBlacklistState::URL_IN_WHITELIST)
+    return PROCEED;
+
+  // Safe Sites filter applies to top-level HTTP[S] requests.
+  if (!url.SchemeIsHTTPOrHTTPS())
+    return PROCEED;
+
+  SafeSitesFilterBehavior filter_behavior =
+      static_cast<SafeSitesFilterBehavior>(
+          prefs_->GetInteger(policy::policy_prefs::kSafeSitesFilterBehavior));
+  if (filter_behavior == SafeSitesFilterBehavior::kSafeSitesFilterDisabled)
+    return PROCEED;
+
+  DCHECK_EQ(filter_behavior, SafeSitesFilterBehavior::kSafeSitesFilterEnabled);
+
+  GURL effective_url = policy::url_util::GetEmbeddedURL(url);
+  if (!effective_url.is_valid())
+    effective_url = url;
+
+  bool synchronous = blacklist_service_->CheckSafeSearchURL(
+      effective_url,
+      base::BindOnce(
+          &PolicyBlacklistNavigationThrottle::CheckSafeSearchCallback,
+          weak_ptr_factory_.GetWeakPtr()));
+  if (!synchronous) {
+    deferred_ = true;
+    return DEFER;
+  }
+
+  if (should_cancel_)
+    return ThrottleCheckResult(CANCEL, net::ERR_BLOCKED_BY_ADMINISTRATOR);
   return PROCEED;
 }
 
@@ -84,3 +89,18 @@
 const char* PolicyBlacklistNavigationThrottle::GetNameForLogging() {
   return "PolicyBlacklistNavigationThrottle";
 }
+
+void PolicyBlacklistNavigationThrottle::CheckSafeSearchCallback(bool is_safe) {
+  if (!deferred_) {
+    should_cancel_ = !is_safe;
+    return;
+  }
+
+  deferred_ = false;
+  if (is_safe) {
+    Resume();
+  } else {
+    CancelDeferredNavigation(
+        ThrottleCheckResult(CANCEL, net::ERR_BLOCKED_BY_ADMINISTRATOR));
+  }
+}
diff --git a/components/policy/content/policy_blacklist_navigation_throttle.h b/components/policy/content/policy_blacklist_navigation_throttle.h
index 0ac4659a..37a04e7c 100644
--- a/components/policy/content/policy_blacklist_navigation_throttle.h
+++ b/components/policy/content/policy_blacklist_navigation_throttle.h
@@ -5,57 +5,24 @@
 #ifndef COMPONENTS_POLICY_CONTENT_POLICY_BLACKLIST_NAVIGATION_THROTTLE_H_
 #define COMPONENTS_POLICY_CONTENT_POLICY_BLACKLIST_NAVIGATION_THROTTLE_H_
 
-#include "base/memory/singleton.h"
-#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
-#include "components/keyed_service/core/keyed_service.h"
-#include "components/policy/core/browser/url_blacklist_manager.h"
+#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
 #include "content/public/browser/navigation_throttle.h"
 
-// PolicyBlacklistService and PolicyBlacklistFactory provide a way for
-// us to access URLBlacklistManager, a policy block list service based on
-// the Preference Service. The URLBlacklistManager responses to permission
-// changes and is per Profile.  From the PolicyBlacklistNavigationThrottle,
-// we access this service to provide information about what we should block.
-class PolicyBlacklistService : public KeyedService {
- public:
-  explicit PolicyBlacklistService(
-      std::unique_ptr<policy::URLBlacklistManager> url_blacklist_manager);
-  ~PolicyBlacklistService() override;
+class PolicyBlacklistService;
+class PrefService;
 
-  bool IsURLBlocked(const GURL& url) const;
-  policy::URLBlacklist::URLBlacklistState GetURLBlacklistState(
-      const GURL& url) const;
-
- private:
-  std::unique_ptr<policy::URLBlacklistManager> url_blacklist_manager_;
-
-  DISALLOW_COPY_AND_ASSIGN(PolicyBlacklistService);
-};
-
-class PolicyBlacklistFactory : public BrowserContextKeyedServiceFactory {
- public:
-  static PolicyBlacklistFactory* GetInstance();
-  static PolicyBlacklistService* GetForProfile(
-      content::BrowserContext* context);
-
- private:
-  PolicyBlacklistFactory();
-  ~PolicyBlacklistFactory() override;
-  friend struct base::DefaultSingletonTraits<PolicyBlacklistFactory>;
-
-  // BrowserContextKeyedServiceFactory implementation
-  KeyedService* BuildServiceInstanceFor(
-      content::BrowserContext* context) const override;
-
-  // Finds which browser context (if any) to use.
-  content::BrowserContext* GetBrowserContextToUse(
-      content::BrowserContext* context) const override;
-
-  DISALLOW_COPY_AND_ASSIGN(PolicyBlacklistFactory);
-};
+namespace content {
+class BrowserContext;
+class NavigationHandle;
+}  // namespace content
 
 // PolicyBlacklistNavigationThrottle provides a simple way to block a navigation
-// based on the URLBlacklistManager.
+// based on the URLBlacklistManager and Safe Search API. If the URL is
+// blacklisted or whitelisted, the throttle will immediately block or allow the
+// navigation. Otherwise, the URL will be checked against the Safe Search API if
+// the SafeSitesFilterBehavior policy is enabled. This final check may be
+// asynchronous if the result hasn't been cached yet.
 class PolicyBlacklistNavigationThrottle : public content::NavigationThrottle {
  public:
   PolicyBlacklistNavigationThrottle(
@@ -70,7 +37,22 @@
   const char* GetNameForLogging() override;
 
  private:
+  // Callback from PolicyBlacklistService.
+  void CheckSafeSearchCallback(bool is_safe);
+
   PolicyBlacklistService* blacklist_service_;
+
+  PrefService* prefs_;
+
+  // Whether the request was deferred in order to check the Safe Search API.
+  bool deferred_ = false;
+
+  // Whether the Safe Search API callback determined the in-progress navigation
+  // should be canceled.
+  bool should_cancel_ = false;
+
+  base::WeakPtrFactory<PolicyBlacklistNavigationThrottle> weak_ptr_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(PolicyBlacklistNavigationThrottle);
 };
 
diff --git a/components/policy/content/policy_blacklist_navigation_throttle_unittest.cc b/components/policy/content/policy_blacklist_navigation_throttle_unittest.cc
new file mode 100644
index 0000000..43540a4
--- /dev/null
+++ b/components/policy/content/policy_blacklist_navigation_throttle_unittest.cc
@@ -0,0 +1,279 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/policy/content/policy_blacklist_navigation_throttle.h"
+
+#include <memory>
+#include <string>
+#include <utility>
+
+#include "base/macros.h"
+#include "base/run_loop.h"
+#include "base/values.h"
+#include "components/keyed_service/content/browser_context_dependency_manager.h"
+#include "components/policy/content/policy_blacklist_service.h"
+#include "components/policy/core/browser/url_blacklist_manager.h"
+#include "components/policy/core/browser/url_blacklist_policy_handler.h"
+#include "components/policy/core/common/policy_pref_names.h"
+#include "components/safe_search_api/stub_url_checker.h"
+#include "components/safe_search_api/url_checker.h"
+#include "components/sync_preferences/testing_pref_service_syncable.h"
+#include "components/user_prefs/user_prefs.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/navigation_handle.h"
+#include "content/public/browser/navigation_throttle.h"
+#include "content/public/browser/web_contents_observer.h"
+#include "content/public/test/navigation_simulator.h"
+#include "content/public/test/test_renderer_host.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace {
+
+using SafeSitesFilterBehavior = policy::SafeSitesFilterBehavior;
+
+constexpr size_t kCacheSize = 2;
+
+}  // namespace
+
+class PolicyBlacklistNavigationThrottleTest
+    : public content::RenderViewHostTestHarness,
+      public content::WebContentsObserver {
+ public:
+  PolicyBlacklistNavigationThrottleTest() = default;
+  ~PolicyBlacklistNavigationThrottleTest() override = default;
+
+  // content::RenderViewHostTestHarness:
+  void SetUp() override {
+    content::RenderViewHostTestHarness::SetUp();
+
+    user_prefs::UserPrefs::Set(browser_context(), &pref_service_);
+    policy::URLBlacklistManager::RegisterProfilePrefs(pref_service_.registry());
+
+    // Prevent crashes in BrowserContextDependencyManager caused when tests
+    // that run in serial happen to reuse a memory address for a BrowserContext
+    // from a previously-run test.
+    // TODO(michaelpg): This shouldn't be the test's responsibility. Can we make
+    // BrowserContext just do this always, like Profile does?
+    BrowserContextDependencyManager::GetInstance()->MarkBrowserContextLive(
+        browser_context());
+
+    PolicyBlacklistFactory::GetInstance()
+        ->GetForBrowserContext(browser_context())
+        ->SetSafeSearchURLCheckerForTest(
+            stub_url_checker_.BuildURLChecker(kCacheSize));
+
+    // Observe the WebContents to add the throttle.
+    Observe(RenderViewHostTestHarness::web_contents());
+  }
+
+  void TearDown() override {
+    BrowserContextDependencyManager::GetInstance()
+        ->DestroyBrowserContextServices(browser_context());
+    content::RenderViewHostTestHarness::TearDown();
+  }
+
+  // content::WebContentsObserver:
+  void DidStartNavigation(
+      content::NavigationHandle* navigation_handle) override {
+    auto throttle = std::make_unique<PolicyBlacklistNavigationThrottle>(
+        navigation_handle, browser_context());
+
+    navigation_handle->RegisterThrottleForTesting(std::move(throttle));
+  }
+
+ protected:
+  std::unique_ptr<content::NavigationSimulator> StartNavigation(
+      const GURL& first_url) {
+    auto navigation_simulator =
+        content::NavigationSimulator::CreateRendererInitiated(first_url,
+                                                              main_rfh());
+    navigation_simulator->SetAutoAdvance(false);
+    navigation_simulator->Start();
+    return navigation_simulator;
+  }
+
+  void SetBlacklistUrlPattern(const std::string& pattern) {
+    auto value = std::make_unique<base::Value>(base::Value::Type::LIST);
+    value->GetList().push_back(base::Value(pattern));
+    pref_service_.SetManagedPref(policy::policy_prefs::kUrlBlacklist,
+                                 std::move(value));
+    base::RunLoop().RunUntilIdle();
+  }
+
+  void SetWhitelistUrlPattern(const std::string& pattern) {
+    auto value = std::make_unique<base::Value>(base::Value::Type::LIST);
+    value->GetList().push_back(base::Value(pattern));
+    pref_service_.SetManagedPref(policy::policy_prefs::kUrlWhitelist,
+                                 std::move(value));
+    base::RunLoop().RunUntilIdle();
+  }
+
+  void SetSafeSitesFilterBehavior(SafeSitesFilterBehavior filter_behavior) {
+    auto value =
+        std::make_unique<base::Value>(static_cast<int>(filter_behavior));
+    pref_service_.SetManagedPref(policy::policy_prefs::kSafeSitesFilterBehavior,
+                                 std::move(value));
+  }
+
+  sync_preferences::TestingPrefServiceSyncable pref_service_;
+  safe_search_api::StubURLChecker stub_url_checker_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(PolicyBlacklistNavigationThrottleTest);
+};
+
+TEST_F(PolicyBlacklistNavigationThrottleTest, Blacklist) {
+  SetBlacklistUrlPattern("example.com");
+
+  // Block a blacklisted site.
+  auto navigation_simulator = StartNavigation(GURL("http://www.example.com/"));
+  ASSERT_FALSE(navigation_simulator->IsDeferred());
+  EXPECT_EQ(content::NavigationThrottle::BLOCK_REQUEST,
+            navigation_simulator->GetLastThrottleCheckResult());
+}
+
+TEST_F(PolicyBlacklistNavigationThrottleTest, Whitelist) {
+  SetWhitelistUrlPattern("www.example.com");
+  SetBlacklistUrlPattern("example.com");
+
+  // Allow a whitelisted exception to a blacklisted domain.
+  auto navigation_simulator = StartNavigation(GURL("http://www.example.com/"));
+  ASSERT_FALSE(navigation_simulator->IsDeferred());
+  EXPECT_EQ(content::NavigationThrottle::PROCEED,
+            navigation_simulator->GetLastThrottleCheckResult());
+}
+
+TEST_F(PolicyBlacklistNavigationThrottleTest, Safe) {
+  SetSafeSitesFilterBehavior(SafeSitesFilterBehavior::kSafeSitesFilterEnabled);
+  stub_url_checker_.SetUpValidResponse(false /* is_porn */);
+
+  // Defer, then allow a safe site.
+  auto navigation_simulator = StartNavigation(GURL("http://example.com/"));
+  EXPECT_TRUE(navigation_simulator->IsDeferred());
+  navigation_simulator->Wait();
+  EXPECT_EQ(content::NavigationThrottle::PROCEED,
+            navigation_simulator->GetLastThrottleCheckResult());
+}
+
+TEST_F(PolicyBlacklistNavigationThrottleTest, Porn) {
+  SetSafeSitesFilterBehavior(SafeSitesFilterBehavior::kSafeSitesFilterEnabled);
+  stub_url_checker_.SetUpValidResponse(true /* is_porn */);
+
+  // Defer, then cancel a porn site.
+  auto navigation_simulator = StartNavigation(GURL("http://example.com/"));
+  EXPECT_TRUE(navigation_simulator->IsDeferred());
+  navigation_simulator->Wait();
+  EXPECT_EQ(content::NavigationThrottle::CANCEL,
+            navigation_simulator->GetLastThrottleCheckResult());
+}
+
+TEST_F(PolicyBlacklistNavigationThrottleTest, Whitelisted) {
+  SetWhitelistUrlPattern("example.com");
+  SetSafeSitesFilterBehavior(SafeSitesFilterBehavior::kSafeSitesFilterEnabled);
+  stub_url_checker_.SetUpValidResponse(true /* is_porn */);
+
+  // Even with SafeSites enabled, a whitelisted site is immediately allowed.
+  auto navigation_simulator = StartNavigation(GURL("http://example.com/"));
+  ASSERT_FALSE(navigation_simulator->IsDeferred());
+  EXPECT_EQ(content::NavigationThrottle::PROCEED,
+            navigation_simulator->GetLastThrottleCheckResult());
+}
+
+TEST_F(PolicyBlacklistNavigationThrottleTest, Schemes) {
+  SetSafeSitesFilterBehavior(SafeSitesFilterBehavior::kSafeSitesFilterEnabled);
+  stub_url_checker_.SetUpValidResponse(true /* is_porn */);
+
+  // The safe sites filter is only used for http(s) URLs.
+  auto navigation_simulator = StartNavigation(GURL("chrome://settings"));
+  ASSERT_FALSE(navigation_simulator->IsDeferred());
+  EXPECT_EQ(content::NavigationThrottle::PROCEED,
+            navigation_simulator->GetLastThrottleCheckResult());
+}
+
+TEST_F(PolicyBlacklistNavigationThrottleTest, PolicyChange) {
+  stub_url_checker_.SetUpValidResponse(true /* is_porn */);
+
+  // The safe sites filter is initially disabled.
+  {
+    auto navigation_simulator = StartNavigation(GURL("http://example.com/"));
+    ASSERT_FALSE(navigation_simulator->IsDeferred());
+    EXPECT_EQ(content::NavigationThrottle::PROCEED,
+              navigation_simulator->GetLastThrottleCheckResult());
+  }
+
+  // Setting the pref enables the filter.
+  SetSafeSitesFilterBehavior(SafeSitesFilterBehavior::kSafeSitesFilterEnabled);
+  {
+    auto navigation_simulator = StartNavigation(GURL("http://example.com/"));
+    EXPECT_TRUE(navigation_simulator->IsDeferred());
+    navigation_simulator->Wait();
+    EXPECT_EQ(content::NavigationThrottle::CANCEL,
+              navigation_simulator->GetLastThrottleCheckResult());
+  }
+
+  // Updating the pref disables the filter.
+  SetSafeSitesFilterBehavior(SafeSitesFilterBehavior::kSafeSitesFilterDisabled);
+  {
+    auto navigation_simulator = StartNavigation(GURL("http://example.com/"));
+    ASSERT_FALSE(navigation_simulator->IsDeferred());
+    EXPECT_EQ(content::NavigationThrottle::PROCEED,
+              navigation_simulator->GetLastThrottleCheckResult());
+  }
+}
+
+TEST_F(PolicyBlacklistNavigationThrottleTest, Failure) {
+  SetSafeSitesFilterBehavior(SafeSitesFilterBehavior::kSafeSitesFilterEnabled);
+  stub_url_checker_.SetUpFailedResponse();
+
+  // If the Safe Search API request fails, the navigation is allowed.
+  auto navigation_simulator = StartNavigation(GURL("http://example.com/"));
+  EXPECT_TRUE(navigation_simulator->IsDeferred());
+  navigation_simulator->Wait();
+  EXPECT_EQ(content::NavigationThrottle::PROCEED,
+            navigation_simulator->GetLastThrottleCheckResult());
+}
+
+TEST_F(PolicyBlacklistNavigationThrottleTest, CachedSites) {
+  SetSafeSitesFilterBehavior(SafeSitesFilterBehavior::kSafeSitesFilterEnabled);
+
+  // Check a couple of sites.
+  ASSERT_EQ(2u, kCacheSize);
+  const GURL safe_site = GURL("http://example.com/");
+  const GURL porn_site = GURL("http://example2.com/");
+
+  stub_url_checker_.SetUpValidResponse(false /* is_porn */);
+  {
+    auto navigation_simulator = StartNavigation(safe_site);
+    EXPECT_TRUE(navigation_simulator->IsDeferred());
+    navigation_simulator->Wait();
+    EXPECT_EQ(content::NavigationThrottle::PROCEED,
+              navigation_simulator->GetLastThrottleCheckResult());
+  }
+
+  stub_url_checker_.SetUpValidResponse(true /* is_porn */);
+  {
+    auto navigation_simulator = StartNavigation(porn_site);
+    EXPECT_TRUE(navigation_simulator->IsDeferred());
+    navigation_simulator->Wait();
+    EXPECT_EQ(content::NavigationThrottle::CANCEL,
+              navigation_simulator->GetLastThrottleCheckResult());
+  }
+
+  stub_url_checker_.ClearResponses();
+  {
+    // This check is synchronous since the site is in the cache.
+    auto navigation_simulator = StartNavigation(safe_site);
+    ASSERT_FALSE(navigation_simulator->IsDeferred());
+    EXPECT_EQ(content::NavigationThrottle::PROCEED,
+              navigation_simulator->GetLastThrottleCheckResult());
+  }
+  {
+    // This check is synchronous since the site is in the cache.
+    auto navigation_simulator = StartNavigation(porn_site);
+    ASSERT_FALSE(navigation_simulator->IsDeferred());
+    EXPECT_EQ(content::NavigationThrottle::CANCEL,
+              navigation_simulator->GetLastThrottleCheckResult());
+  }
+}
diff --git a/components/policy/content/policy_blacklist_service.cc b/components/policy/content/policy_blacklist_service.cc
new file mode 100644
index 0000000..9703b05
--- /dev/null
+++ b/components/policy/content/policy_blacklist_service.cc
@@ -0,0 +1,123 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/policy/content/policy_blacklist_service.h"
+
+#include <utility>
+
+#include "base/sequence_checker.h"
+#include "components/keyed_service/content/browser_context_dependency_manager.h"
+#include "components/policy/core/browser/url_util.h"
+#include "components/safe_search_api/url_checker.h"
+#include "components/user_prefs/user_prefs.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/storage_partition.h"
+#include "net/base/net_errors.h"
+
+namespace {
+
+// Calls the PolicyBlacklistService callback with the result of the Safe Search
+// API check.
+void OnCheckURLDone(PolicyBlacklistService::CheckSafeSearchCallback callback,
+                    const GURL& /* url */,
+                    safe_search_api::Classification classification,
+                    bool /* uncertain */) {
+  std::move(callback).Run(classification ==
+                          safe_search_api::Classification::SAFE);
+}
+
+}  // namespace
+
+PolicyBlacklistService::PolicyBlacklistService(
+    content::BrowserContext* browser_context,
+    std::unique_ptr<policy::URLBlacklistManager> url_blacklist_manager)
+    : browser_context_(browser_context),
+      url_blacklist_manager_(std::move(url_blacklist_manager)) {}
+
+PolicyBlacklistService::~PolicyBlacklistService() = default;
+
+policy::URLBlacklist::URLBlacklistState
+PolicyBlacklistService::GetURLBlacklistState(const GURL& url) const {
+  return url_blacklist_manager_->GetURLBlacklistState(url);
+}
+
+bool PolicyBlacklistService::CheckSafeSearchURL(
+    const GURL& url,
+    CheckSafeSearchCallback callback) {
+  if (!safe_search_url_checker_) {
+    net::NetworkTrafficAnnotationTag traffic_annotation =
+        net::DefineNetworkTrafficAnnotation("policy_blacklist_service", R"(
+          semantics {
+            sender: "Cloud Policy"
+            description:
+              "Checks whether a given URL (or set of URLs) is considered safe "
+              "by Google SafeSearch."
+            trigger:
+              "If the policy for safe sites is enabled, this is sent for every "
+              "top-level navigation if the result isn't already cached."
+            data: "URL to be checked."
+            destination: GOOGLE_OWNED_SERVICE
+          }
+          policy {
+            cookies_allowed: NO
+            setting:
+              "This feature is off by default and cannot be controlled in "
+              "settings."
+            chrome_policy {
+              SafeSitesFilterBehavior {
+                SafeSitesFilterBehavior: 0
+              }
+            }
+          })");
+
+    // TODO(michaelpg): Find the country code.
+    safe_search_url_checker_ = std::make_unique<safe_search_api::URLChecker>(
+        content::BrowserContext::GetDefaultStoragePartition(browser_context_)
+            ->GetURLLoaderFactoryForBrowserProcess(),
+        traffic_annotation, std::string());
+  }
+
+  return safe_search_url_checker_->CheckURL(
+      policy::url_util::Normalize(url),
+      base::BindOnce(&OnCheckURLDone, std::move(callback)));
+}
+
+void PolicyBlacklistService::SetSafeSearchURLCheckerForTest(
+    std::unique_ptr<safe_search_api::URLChecker> safe_search_url_checker) {
+  safe_search_url_checker_ = std::move(safe_search_url_checker);
+}
+
+// static
+PolicyBlacklistFactory* PolicyBlacklistFactory::GetInstance() {
+  return base::Singleton<PolicyBlacklistFactory>::get();
+}
+
+// static
+PolicyBlacklistService* PolicyBlacklistFactory::GetForBrowserContext(
+    content::BrowserContext* context) {
+  return static_cast<PolicyBlacklistService*>(
+      GetInstance()->GetServiceForBrowserContext(context, true));
+}
+
+PolicyBlacklistFactory::PolicyBlacklistFactory()
+    : BrowserContextKeyedServiceFactory(
+          "PolicyBlacklist",
+          BrowserContextDependencyManager::GetInstance()) {}
+
+PolicyBlacklistFactory::~PolicyBlacklistFactory() = default;
+
+KeyedService* PolicyBlacklistFactory::BuildServiceInstanceFor(
+    content::BrowserContext* context) const {
+  PrefService* pref_service = user_prefs::UserPrefs::Get(context);
+  auto url_blacklist_manager =
+      std::make_unique<policy::URLBlacklistManager>(pref_service);
+  return new PolicyBlacklistService(context, std::move(url_blacklist_manager));
+}
+
+content::BrowserContext* PolicyBlacklistFactory::GetBrowserContextToUse(
+    content::BrowserContext* context) const {
+  // TODO(crbug.com/701326): This DCHECK should be moved to GetContextToUse().
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  return context;
+}
diff --git a/components/policy/content/policy_blacklist_service.h b/components/policy/content/policy_blacklist_service.h
new file mode 100644
index 0000000..9d36c38
--- /dev/null
+++ b/components/policy/content/policy_blacklist_service.h
@@ -0,0 +1,77 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_POLICY_CONTENT_POLICY_BLACKLIST_SERVICE_H_
+#define COMPONENTS_POLICY_CONTENT_POLICY_BLACKLIST_SERVICE_H_
+
+#include <memory>
+
+#include "base/callback_forward.h"
+#include "base/macros.h"
+#include "base/memory/singleton.h"
+#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
+#include "components/keyed_service/core/keyed_service.h"
+#include "components/policy/core/browser/url_blacklist_manager.h"
+
+namespace safe_search_api {
+class URLChecker;
+}  // namespace safe_search_api
+
+// PolicyBlacklistService and PolicyBlacklistFactory provide a way for
+// us to access URLBlacklistManager, a policy block list service based on
+// the Preference Service. The URLBlacklistManager responds to permission
+// changes and is per-Profile. The PolicyBlacklistNavigationThrottle accesses
+// this service to determine what we should block.
+class PolicyBlacklistService : public KeyedService {
+ public:
+  using CheckSafeSearchCallback = base::OnceCallback<void(bool is_safe)>;
+
+  PolicyBlacklistService(
+      content::BrowserContext* browser_context,
+      std::unique_ptr<policy::URLBlacklistManager> url_blacklist_manager);
+  ~PolicyBlacklistService() override;
+
+  policy::URLBlacklist::URLBlacklistState GetURLBlacklistState(
+      const GURL& url) const;
+
+  // Starts a call to the Safe Search API for the given URL to determine whether
+  // the URL is "safe" (not porn). Returns whether |callback| was run
+  // synchronously.
+  bool CheckSafeSearchURL(const GURL& url, CheckSafeSearchCallback callback);
+
+  // Creates a SafeSearch URLChecker using a given URLLoaderFactory for testing.
+  void SetSafeSearchURLCheckerForTest(
+      std::unique_ptr<safe_search_api::URLChecker> safe_search_url_checker);
+
+ private:
+  content::BrowserContext* const browser_context_;
+  std::unique_ptr<policy::URLBlacklistManager> url_blacklist_manager_;
+  std::unique_ptr<safe_search_api::URLChecker> safe_search_url_checker_;
+
+  DISALLOW_COPY_AND_ASSIGN(PolicyBlacklistService);
+};
+
+class PolicyBlacklistFactory : public BrowserContextKeyedServiceFactory {
+ public:
+  static PolicyBlacklistFactory* GetInstance();
+  static PolicyBlacklistService* GetForBrowserContext(
+      content::BrowserContext* context);
+
+ private:
+  PolicyBlacklistFactory();
+  ~PolicyBlacklistFactory() override;
+  friend struct base::DefaultSingletonTraits<PolicyBlacklistFactory>;
+
+  // BrowserContextKeyedServiceFactory:
+  KeyedService* BuildServiceInstanceFor(
+      content::BrowserContext* context) const override;
+
+  // Finds which browser context (if any) to use.
+  content::BrowserContext* GetBrowserContextToUse(
+      content::BrowserContext* context) const override;
+
+  DISALLOW_COPY_AND_ASSIGN(PolicyBlacklistFactory);
+};
+
+#endif  // COMPONENTS_POLICY_CONTENT_POLICY_BLACKLIST_SERVICE_H_
diff --git a/components/policy/core/browser/url_blacklist_manager.cc b/components/policy/core/browser/url_blacklist_manager.cc
index 3aff71d..da4c67b5 100644
--- a/components/policy/core/browser/url_blacklist_manager.cc
+++ b/components/policy/core/browser/url_blacklist_manager.cc
@@ -27,6 +27,7 @@
 #include "base/task_runner_util.h"
 #include "base/threading/sequenced_task_runner_handle.h"
 #include "base/values.h"
+#include "components/policy/core/browser/url_blacklist_policy_handler.h"
 #include "components/policy/core/common/policy_pref_names.h"
 #include "components/pref_registry/pref_registry_syncable.h"
 #include "components/prefs/pref_service.h"
@@ -513,6 +514,9 @@
     user_prefs::PrefRegistrySyncable* registry) {
   registry->RegisterListPref(policy_prefs::kUrlBlacklist);
   registry->RegisterListPref(policy_prefs::kUrlWhitelist);
+  registry->RegisterIntegerPref(
+      policy_prefs::kSafeSitesFilterBehavior,
+      static_cast<int>(SafeSitesFilterBehavior::kSafeSitesFilterDisabled));
 }
 
 }  // namespace policy
diff --git a/components/policy/core/browser/url_blacklist_policy_handler.h b/components/policy/core/browser/url_blacklist_policy_handler.h
index 8832ec6f..a25e2bc 100644
--- a/components/policy/core/browser/url_blacklist_policy_handler.h
+++ b/components/policy/core/browser/url_blacklist_policy_handler.h
@@ -12,6 +12,13 @@
 
 namespace policy {
 
+// Possible values for kSafeSitesFilterBehavior pref from policy. Values must
+// coincide with SafeSitesFilterBehavior from policy_templates.json.
+enum class SafeSitesFilterBehavior {
+  kSafeSitesFilterDisabled = 0,
+  kSafeSitesFilterEnabled = 1,
+};
+
 // Handles URLBlacklist policies.
 class POLICY_EXPORT URLBlacklistPolicyHandler
     : public ConfigurationPolicyHandler {
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json
index 60a5e87..2b05252 100644
--- a/components/policy/resources/policy_templates.json
+++ b/components/policy/resources/policy_templates.json
@@ -12668,7 +12668,7 @@
         'per_profile': True,
       },
       'supported_on': ['chrome_os:70-'],
-      'caption': '''Contorls Network File Shares for ChromeOS availibility''',
+      'caption': '''Contorls Network File Shares for ChromeOS availability''',
       'example_value': True,
       'desc': '''This policy controls whether the Network File Shares feature for <ph name="PRODUCT_NAME">$2<ex>Google Chrome OS</ex></ph> is allowed for a user.
 
diff --git a/components/policy/resources/policy_templates_am.xtb b/components/policy/resources/policy_templates_am.xtb
index d89c4e1..5e0b776 100644
--- a/components/policy/resources/policy_templates_am.xtb
+++ b/components/policy/resources/policy_templates_am.xtb
@@ -33,6 +33,18 @@
           ይህ ቅንብር ከተሰናከለ ወይም ካልተዋቀረ የርቀት ረዳቱ አስተናጋጅ በተጠቃሚ ዓውደ አገባብ ውስጥ ይሠራል፣ እና የርቀት ተጠቃሚዎች በዴስክቶፑ ላይ ካሉ ከፍ ያሉ መስኮቶች ጋር ላይ መስተጋብር መፈጸም አይችሉም።</translation>
 <translation id="1096105751829466145">ነባሪ የፍለጋ አቅራቢ</translation>
 <translation id="1099282607296956954">የጣቢያ ማግለያን ለእያንዳንዱ ጣቢያ ያንቁ</translation>
+<translation id="1100570158310952027">
+      መመሪያው ደህንነታቸው ባልተጠበቁ ምንጮች ላይ ያሉ የደህነንት ገደቦች የማይተገበሩባቸው የምንጮች (ዩአርኤሎች) ወይም የአስተናጋጅ ስም ስርዓተ-ጥለቶች (እንደ «*.example» ያለ) ዝርዝርን ይገልጻል።
+
+
+      ሐሳቡ ድርጅቶች TLSን ማሰማራት ለማይችሉ የቆዩ መተግበሪያዎች የሚፈቀድላቸው ምንጮች ዝርዝርን እንዲያቀናብሩ ማስቻል፣ ወይም ገንቢዎቻቸው በማዘጋጃው አገልጋዩ ላይ TLSን ማሰማራት ሳይኖርባቸው ደህንነታቸው የተጠበቁ አውዶች የሚያስፈልጋቸው ባህሪያትን መሞከር እንዲችሉ ለውስጣዊ የድር ግንባታ የማዘጋጃ አገልጋይን ለማቀናበር ነው። ይህ መመሪያ እንዲሁም ምንጩ በኦምኒቦክሱ ውስጥ «ደህንነቱ ያልተጠበቀ» የሚል መለያ እንዳይሰጠው ይከላከላል።
+
+      በዚህ መመሪያ ውስጥ የዩአርኤሎች ዝርዝርን ማቀናበር ልክ ለዚህ የትዕዛዝ-መስመር መጠቆሚያውን የ«--unsafely-treat-insecure-origin-as-secure» ወደ በኮማ የተለዩ የተመሳሳይ ዩአርኤሎች ዝርዝር ማቀናበር ካለው ውጤት ጋር ተመሳሳይ ነው። መመሪያው ከተቀናበረ የትዕዛዝ-መስመር መጠቆሚያውን ይሽራል።
+
+      ይህ መመሪያ ካለ UnsafelyTreatInsecureOriginAsSecureን ይሽራል።
+
+      ደህንነታቸው በተጠበቁ አውዶች ላይ https://www.w3.org/TR/secure-contexts/ን ይመልከቱ።
+      </translation>
 <translation id="1117535567637097036">በዚህ መመሪያ በኩል የተቀናበሩት የፕሮቶኮል ተቆጣጣሪዎች የAndroid ሐሳቦች በሚያዙበት ጊዜ ጥቅም ላይ አይውሉም።</translation>
 <translation id="1118093128235245168">ጣቢያዎች የተገናኘ የዩኤስቢ መሣሪያ መዳረሻው እንዲሰጣቸው ለተጠቃሚው መጠየቅ ይችላሉ</translation>
 <translation id="1128903365609589950"><ph name="PRODUCT_NAME" /> በዲስኩ ላይ የተሸጎጡ ፋይሎችን ለማከማቸት የሚጠቀምበትን ማውጫ ያዋቅራል።
@@ -80,6 +92,7 @@
     ይህ መመሪያ ካልተዋቀረ ወይም ወደ ሐሰት ከተዋቀረ፣ በTLS ውስጥ የስነ መሰውር ጥቅል RC4 አይነቃም። ካልሆነ ደግሞ ጊዜው ባለፈበት አገልጋይ ተኳኋኝነትን ለማግኘት እውነት ሆኖ ሊዋቀር ይችላል። ይህ ጊዜያዊ መፍትሔ ነው፣ እና አገልጋዩ ዳግም መዋቀር አለበት።</translation>
 <translation id="1297182715641689552">የ.pac ተኪ ስክሪፕት ይጠቀሙ</translation>
 <translation id="1304973015437969093">በፀጥታ የሚጫኑ የቅጥያ/መተግበሪያ መታወቂያዎች እና የዝማኔ ዩአርኤሎች</translation>
+<translation id="1307454923744766368">ደህንነታቸው ባልተጠበቁባቸው ምንጮች ላይ ገደቦች መተግበር የማይገቡባቸው ምንጮች ወይም የአስተናጋጅ ስም ስርዓተ-ጥለቶች</translation>
 <translation id="1313457536529613143">ማያ ገጹ ደብዝዞ በአለበት ጊዜ ወይም ማያ ገጹ ከጠፋ በኋላ ወዲያውኑ የተጠቃሚ እንቅስቃሴ ከታየ የማያ ገጹ መደብዘዝ መዘግየት የሚመጠንበት መቶኛ ይገልጻል።
 
           ይህ መመሪያ ከተዋቀረ ማያ ገጹ ደብዝዞ በአለበት ጊዜ ወይም ማያ ገጹ ከጠፋ በኋላ ወዲያውኑ የተጠቃሚ እንቅስቃሴ ከታየ የማያ ገጹ መደብዘዝ መዘግየት የሚመጠንበት መቶኛ ይገልጻል። የማደብዘዝ መዘግየት ሲመጠን፣ ማያ ገጹ መጥፋት፣ የማያ ገጹ ቁልፍ እና ስራ መፍታት መዘግየቶች መጀመሪያ ላይ እንደተዋቀረው ከማያ ገጹ ማደብዘዝ ተመሳሳይ ርቀት እንዲኖራቸው ተደርገው ይስተካከላሉ።
@@ -91,6 +104,11 @@
 <translation id="1327466551276625742">ከመስመር ውጪ ሲሆን የአውታረ መረብ መዋቅር ጥያቄን ያንቁ</translation>
 <translation id="1330145147221172764">የታይታ የቁልፍ ሰሌዳን አንቃ</translation>
 <translation id="13356285923490863">የመምሪያ ስም</translation>
+<translation id="1352174694615491349">ይህ መመሪያ የደንበኛ እውቅና ማረጋገጫዎች ስራ ላይ ሲውሉ የHTTP/2 ግንኙነት ማዋሃድ ይፈቅዳል። ለማዋሃድ ሁለቱም ሊመጣው የሚችለው የአዲሱ ግንኙነት አስተናጋጅ ስም እና የነባር ግንኙነት አስተናጋጅ ስም በዚህ መመሪያ ውስጥ ከተገለጹ አንድ ወይም ተጨማሪ ስርዓተ-ጥለቶች ጋር መዛመድ አለባቸው። መመሪያው የURLBlacklist ማጣሪያ ቅርጸትን የሚጠቀም የአስተናጋጆች ዝርዝር ነው፦«example.com» ከ«example.com» እና ከሁሉም ንዑስ ጎራዎች (ለምሳሌ፦ «sub.example.com») ጋር የሚዛመድ ሲሆን «.example.net» በቀጥታ ከ«example.net» ጋር ነው የሚዛመደው።
+
+      የደንበኛ እውቅና ማረጋገጫዎችን በሚጠቀሙ ግንኙነቶች ላይ የማዋሃድ ጥያቄዎች ለተለያዩ አስተናጋጆች መላክ የድባብ ስልጣኑ ለሁሉም ጥያቄዎች እንዲላክ፣ ተጠቃሚው ይህን በግልጽ ባይፈቅድም እንኳ፣ ስለሚያደርገው የደህንነት እና ግላዊነት ችግሮችን ሊፈጥር ይችላል። ይህ መመሪያ ጊዜያዊ ሲሆን በወደፊት ልቀት ላይ ይወገዳል።https://crbug.com/855690 ይመልከቱ።
+
+      ይህ መመሪያ እንዳልተዋቀረ ከተተወ የደንበኛ እውቅና ማረጋገጫዎችን በሚጠቀሙ ግንኙነቶች ላይ ማናቸውም የHTTP/2 ግንኙነት ማዋሃድ አለመፍቀድ ነባሪ ባህሪው ስራ ላይ ይውላል።</translation>
 <translation id="1353966721814789986">የመነሻ ገጾች</translation>
 <translation id="1359553908012294236">ይህ መመሪያ ወደ እውነት ከተዋቀረ ወይም ካልተዋቀረ <ph name="PRODUCT_NAME" /> የእንግዳ መግቢያዎችን ያነቃል። የእንግዳ መግቢያዎች ሁሉም መስኮቶች ማንነት በማያሳውቅ ሁነታ ውስጥ ያሉ የ<ph name="PRODUCT_NAME" /> መገለጫዎች ናቸው። 
 
@@ -179,6 +197,7 @@
 <translation id="1583248206450240930"><ph name="PRODUCT_FRAME_NAME" />ን በነባሪነት ይጠቀሙ</translation>
 <translation id="1599424828227887013">ለተጠቀሱት ምንጮች የጣቢያ ማግለያን በAndroid መሣሪያዎች ላይ ያንቁ</translation>
 <translation id="1608755754295374538">የድምጽ ቀረጻ መሣሪያዎች መዳረሻ ያለጥያቄ የሚሰጣቸው ዩ አር ኤሎች</translation>
+<translation id="1615221548356595305">የደንበኛ እውቅና ማረጋገጫዎች ስራ ላይ ቢውሉም እንኳ ለእነዚህ አስተናጋጆች የHTTP/2 ግንኙነቶች ማዋሃድን ይፍቀዱ</translation>
 <translation id="1617235075406854669">የአሳሽ እና ውርድ ታሪክ መሰረዝን ያንቁ</translation>
 <translation id="163200210584085447">በዚህ ዝርዝር ውስጥ ያሉ ስርዓተ-ጥለቶች ከጠያቂው ዩአርኤል
       ደህንነት ጋር ይዛመዳል። ተዛማጅ ከተገኘ የቪዲዮ ቀረጻ መሣሪያዎች
@@ -1182,7 +1201,6 @@
       ይህ መመሪያ ከተተወ ወይም ካልተቀናበረ፣ የዩእርኤል ቁልፍ ያለውን ማንነትን የማያሳውቅ ውሂብ ስብስብ ይነቃል ሆኖም ግን ተጠቃሚ ሊለውጠው ይችላል።</translation>
 <translation id="4250680216510889253">አይ</translation>
 <translation id="4261820385751181068">የመሣሪያ መግቢያ ገጽ ቋንቋ</translation>
-<translation id="4264607809747169568">የአውታረ መረብ ፋይል ማጋሪያዎችን ለChromeOS ተገኝነትን ይቆጣጠራል</translation>
 <translation id="427220754384423013">ተጠቃሚው ሊጠቀምባቸው የሚችላቸው አታሚዎችን ይገልጻል።
 
       ይህ መመሪያ ስራ ላይ የሚውለው <ph name="PRINTERS_WHITELIST" /> ለ<ph name="BULK_PRINTERS_ACCESS_MODE" /> ከተመረጠ ብቻ ነው
@@ -1341,6 +1359,7 @@
       ይህ መመሪያ ከነቃ ጣቢያዎች አዲስ መስኮቶችን/ትሮችን በአንድ ላይ እንዲያስሱ እና እንዲከፍቱ ይፈቀድላቸዋል።
       ይህ መመሪያ ከተሰናከለ ወይም ካልተዋቀረ ጣቢያዎች አዲስ መስኮት/ትር በአንድ ላይ እንዳያስሱ እና እንዳይከፍቱ ይከለከላሉ።</translation>
 <translation id="4680961954980851756">ራስ-ሙላን ያንቁ</translation>
+<translation id="4703402283970867140">ማያው እስኪደበዝዝ ድረስ ጊዜውን ለማርዘም ዘመናዊ ማደብዘዣ ሞዴልን ያንቁ</translation>
 <translation id="4722122254122249791">ለተጠቀሱ ምንጮ የጣቢያ ማግለያን አንቃ</translation>
 <translation id="4722399051042571387">ሐሰት ከሆነ ተጠቃሚዎች ደካማ እና ለመገመት ቀላል የሆኑ ፒኖችን ማቀናበር አይችሉም።
 
@@ -1571,13 +1590,6 @@
 
           ይህ መመሪያ እንዳልተዋቀረ ከተተወ «AskNotifications» ስራ ላይ ይውልና ተጠቃሚው ሊቀይረው ይችላል።</translation>
 <translation id="538108065117008131"><ph name="PRODUCT_FRAME_NAME" /> የሚከተሉትን የይዘት አይነቶች እንዲቆጣጠር ይፍቀዱለት።</translation>
-<translation id="5391363090783552279">ይህ መመሪያ ወደ እውነት ከተዋቀረ <ph name="PRODUCT_NAME" /> በሁሉም የአይፒ አድራሻዎች ላይ ከCast መሣሪያዎች ጋር ይገናኛል፣ ከRFC1918/RFC4913 የግል አድራሻዎች ጋር ብቻ ሳይሆን።
-
-          ይህ መመሪያ ወደ ሐሰት ከተዋቀረ <ph name="PRODUCT_NAME" /> በRFC1918/RFC4913 የግል አድራሻዎች ላይ ብቻ ነው ከCast መሣሪያዎች ጋር የሚገናኘው።
-
-          ይህ መመሪያ ካልተዋቀረ የCastAllowAllIPs ባህሪ ካልነቃ በስተቀር <ph name="PRODUCT_NAME" /> በRFC1918/RFC4913 የግል አድራሻዎች ላይ ብቻ ነው ከCast መሣሪያዎች ጋር የሚገናኘው።
-
-          የ«EnableMediaRouter» መመሪያ ወደ እውነት ከተዋቀረ የዚህ መመሪያ እሴት ውጤት አይኖረውም።</translation>
 <translation id="5392172595902933844">ስለAndroid ሁኔታ መረጃ ወደ አገልጋዩ ተመልሶ ይላካል።
 
       መመሪያው ወደ ሐሰት ከተዋቀረ ወይም እንዳልተዋቀረ ከተተወ ምንም የሁኔታ መረጃው ሪፖርት አይደረግም። 
@@ -2141,6 +2153,10 @@
 <translation id="6943577887654905793">የMac/Linux ምርጫ ስም፦</translation>
 <translation id="69525503251220566">ለነባሪው የፍለጋ አቅራቢ በምስል የመፈለግ ባህሪይን የሚያቀርብ መለኪያ።</translation>
 <translation id="6956272732789158625">ማንኛውም ጣቢያ ቁልፍ ማመንጨትን እንዳይጠቀም ይከልክሉ</translation>
+<translation id="6965859329738616662">ዘመናዊ የማደብዘዣ ሞዴሉ ማያ ገጹ እስኪደበዝዝ ድረስ ጊዜን ማርዘም ይፈቅድ እንደሆነ ይገልጻል።
+
+      ማያ ገጹ ሊደበዝዝ ሲል ዘመናዊ ማደብዘዣ ሞዴሉ ማያ ገጹን ማደብዘዝ ይተላለፍ እንደሆነ ይገመግማል። ዘመናዊ ማደብዘዣ ሞዴሉ ማያ ገጹን ማደብዘዝ ለሌላ ጊዜ ካስተላለፈ ማያ ገጹ እስኪደበዝዝ ድረስ ጊዜውን ያረዝማል። በዚህ ጊዜ ማያ ገጽ መጥፋት፣ የማያ ገጽ መቆለፊያ እና ስራ-ፈት መዘግየቶች መጀመሪያ እንደተዋቀረው ከማያ ገጽ መደብዘዝ መዘግየቱ ጋር ተመሳሳይ ርቀት ላይ እንዲሆኑ ይስተካከላሉ።
+      ይህ መመሪያ ወደ እውነት ከተዋቀረ ወይም እንዳልተዋቀረ ከተተወ ዘመናዊ ማደብዘዛ ሞዴሉ ይነቃና ማያ ገጹ እስኪደበዝዝ ድረስ ጊዜውን እንዲያረዝም ይፈቀድለታል። ይህ መመሪያ ወደ ሐሰት ከተዋቀረ የዘመናዊ ማደብዘዣ ሞዴሉ በማያ ገጽ ማደብዘዝ ላይ ተጽዕኖ አያሳርፍም።</translation>
 <translation id="6982028490425791294">
       መመሪያው ወደ እውነት ከተዋቀረ <ph name="PRODUCT_NAME" /> የWebRTC ክስተት ምዝግብ ማስታወሻዎችን ከGoogle አገልግሎቶች (ለምሳሌ፦ Google Meet) እንዲሰበስብና እነዚህን ምዝግብ ማስታወሻዎች ወደ Google እንዲሰቅል ይፈቀድለታል።
 
@@ -2592,6 +2608,13 @@
 <translation id="7980227303582973781">ምንም ልዩ ገደቦች የሉም</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">ማያ ገጹን በ0 ዲግሪ አሽከርክር</translation>
+<translation id="8033913082323846868">ይህ መመሪያ በM70 ላይ ተቋርጧል፣ እባክዎ በምትኩ AutofillAddressEnabled እና AutofillCreditCardEnabled ይጠቀሙ።
+
+      የ<ph name="PRODUCT_NAME" />ን የራስ-ሙላ ባህሪን የሚያነቃ ሲሆን ተጠቃሚዎች እንደ አድራሻ ወይም የክሬዲት ካርድ መረጃ ያለ ከዚህ ቀደም የተከማቸ መረጃን ተጠቅመው የድር ቅጾችን በራስ-ሰር እንዲሞሉ ያስችላቸዋል።
+
+      ይህን ቅንብር ካሰናከሉት ራስ-ሙላ ለተጠቃሚዎች የማይደረስ ይሆናል።
+
+      ይህን ቅንብር ካነቁት ወይም አንድ እሴት ካላቀናበሩ ራስ-ሙላ በተጠቃሚው ቁጥጥር ስር እንደሆነ ይቀጥላል። ይህ የራስ-ሙላ መገለጫዎችን እንዲያዋቅሩና በራሳቸው ውሳኔ ራስ-ሙላን እንዲያበሩ ወይም እንዲያጠፉ ያስችላቸዋል።</translation>
 <translation id="8044493735196713914">የመሣሪያ ማስነሻ ሁነታን ሪፖርት ያድርጉ</translation>
 <translation id="8050080920415773384">ቤተኛ ህትመት</translation>
 <translation id="8059164285174960932">የርቀት መዳረሻ ደንበኞች የማረጋገጫ ማስመሰያቸውን ማግኘት ያለባቸው ዩአርኤል</translation>
@@ -2923,6 +2946,18 @@
 
       ይህ መመሪያ ካልተዋቀረ <ph name="PRINTERS_ALLOW_ALL" /> እንደሆነ ታሳቢ ይደረጋል።
       </translation>
+<translation id="8938932171964587769">በM69 ላይ ተቋርጧል። በምትኩ OverrideSecurityRestrictionsOnInsecureOrigin ይጠቀሙ።
+
+      መመሪያው ደህንነታቸው ባልተጠበቁ ምንጮች ላይ ያሉ የደህነንት ገደቦች የማይተገበሩባቸው የምንጮች (ዩአርኤሎች) ወይም የአስተናጋጅ ስም ስርዓተ-ጥለቶች (እንደ «*.example» ያለ) ዝርዝርን ይገልጻል።
+
+      ሐሳቡ ድርጅቶች TLSን ማሰማራት ለማይችሉ የቆዩ መተግበሪያዎች የሚፈቀድላቸው ምንጮች ዝርዝርን እንዲያቀናብሩ ማስቻል፣ ወይም ገንቢዎቻቸው በማዘጋጃው አገልጋዩ ላይ TLSን ማሰማራት ሳይኖርባቸው ደህንነታቸው የተጠበቁ አውዶች የሚያስፈልጋቸው ባህሪያትን መሞከር እንዲችሉ ለውስጣዊ የድር ግንባታ የማዘጋጃ አገልጋይን ለማቀናበር ነው። ይህ መመሪያ እንዲሁም ምንጩ በኦምኒቦክሱ ውስጥ «ደህንነቱ ያልተጠበቀ» የሚል መለያ እንዳይሰጠው ይከላከላል።
+
+      በዚህ መመሪያ ውስጥ የዩአርኤሎች ዝርዝርን ማቀናበር ልክ ለዚህ የትዕዛዝ-መስመር መጠቆሚያውን የ«--unsafely-treat-insecure-origin-as-secure» ወደ በኮማ የተለዩ የተመሳሳይ ዩአርኤሎች ዝርዝር ማቀናበር ካለው ውጤት ጋር ተመሳሳይ ነው። መመሪያው ከተቀናበረ የትዕዛዝ-መስመር መጠቆሚያውን ይሽራል።
+
+      ይህ መመሪያ ካለ UnsafelyTreatInsecureOriginAsSecureን ይሽራል።
+
+      ደህንነታቸው በተጠበቁ አውዶች ላይ https://www.w3.org/TR/secure-contexts/ን ይመልከቱ።
+      </translation>
 <translation id="8942616385591203339">የስምረት ፈቃድ በመጀመሪያው መለያ መግባት ጊዜ ለተጠቃሚው ሊታይ የሚችል ከሆነ ይህ መመሪያ ይቆጣጠራል። የስምረት ፈቃድ ለተጠቃሚው በጭራሽ የማያስፈልግ ከሆነ ወደ ሐሰት መዋቀር አለበት።
       ወደ ሐሰት ከተዋቀረ የስምረት ፈቃድ አይታይም።
       እውነት ተደርጎ ከተዋቀረ ወይም ሳይዋቀር ከተተወ የስምረት ፈቃድ ሊታይ ይችላል።</translation>
diff --git a/components/policy/resources/policy_templates_ar.xtb b/components/policy/resources/policy_templates_ar.xtb
index a2faa43..1fca3b8d 100644
--- a/components/policy/resources/policy_templates_ar.xtb
+++ b/components/policy/resources/policy_templates_ar.xtb
@@ -33,6 +33,29 @@
           إذا تم إيقاف هذا الإعداد أو لم تتم تهيئته، فسيتم تشغيل مضيف المساعدة عن بُعد في سياق المستخدم، ولا يمكن للمستخدمين عن بُعد التفاعل مع النوافذ المتطورة على سطح المكتب.</translation>
 <translation id="1096105751829466145">مزود البحث التلقائي</translation>
 <translation id="1099282607296956954">تفعيل "عزل المواقع" لكل موقع</translation>
+<translation id="1100570158310952027">‏
+      تحدِّد هذه السياسة قائمة من الأصول (عناوين URL) أو أنماط اسم المضيف (مثل
+       "*.example.com") والتي لن تنطبق عليها قيود الأمان على الأصول
+      غير الآمنة.
+
+      وذلك بهدف السماح للمؤسسات بإعداد أصول القائمة البيضاء للتطبيقات القديمة
+      التي لا يمكنها نشر طبقة النقل الآمنة، أو بإعداد خادم مرحلي
+      لعملية تطوير الويب الداخلية ليتمكّن مطورو البرامج من اختبار الميزات
+      التي تتطلب سياقات آمنة بدون الحاجة إلى نشر طبقة النقل الآمنة على الخادم
+      المرحلي. وستمنع هذه السياسة أيضًا الأصول من اعتبارها مصنّفة
+      "كأصول "غير آمنة" في المربع متعدد الاستخدامات.
+
+      يكون لإعداد قائمة عناوين URL في هذه السياسة التأثير نفسه لإعداد
+      علامة سطر الأوامر "--unsafely-treat-insecure-origin-as-secure"
+      كقائمة عناوين URL نفسها مفصولة بفواصل وفي حال ضبط هذه السياسة، سيتم
+      إلغاء علامة سطر الأوامر.
+
+      سيؤدي ذلك إلى إلغاء هذه السياسة
+UnsafelyTreatInsecureOriginAsSecure، إن وجدت.
+
+      لمعرفة مزيد من المعلومات حول السياقات الآمنة، يُرجى الاطِّلاع على
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">‏لا يتم استخدام معالجات البروتوكول التي تم تعيينها عبر هذه السياسة عند معالجة أهداف Android.</translation>
 <translation id="1118093128235245168">‏السماح للمواقع بأن تطلب من المستخدم منح إمكانية الوصول إلى جهاز USB متصل</translation>
 <translation id="1128903365609589950">‏تهيئة الدليل الذي سيستخدمه <ph name="PRODUCT_NAME" /> لتخزين الملفات المُخزَّنة مؤقتًا في القرص.
@@ -78,6 +101,8 @@
       إذا لم يتم تعيين السياسة أو تم تعيين السياسة على "false"، فحينئذٍ لن يتم تفعيل مجموعات تشفير RC4 في طبقة النقل الآمنة. وإلا قد يتم تعيينها على "true" للحفاظ على التوافق مع الخادم القديم. ويُعد هذا إجراءً مؤقتًا ومن المفترض أن تتم إعادة تهيئة الخادم.</translation>
 <translation id="1297182715641689552">‏استخدام نص برمجي لملف pac. للخادم الوكيل</translation>
 <translation id="1304973015437969093">‏أرقام تعريف التطبيقات / الإضافات وعناوين URL المتعلقة بالتحديث المراد تثبيتها تلقائيًا</translation>
+<translation id="1307454923744766368">أنماط اسم المضيف أو الأصول التي يجب فيها عدم تطبيق
+......القيود على الأصول غير الآمنة</translation>
 <translation id="1313457536529613143">لتحديد النسبة المئوية التي بمقتضاها يتم تحديد مهلة إعتام الشاشة في حالة ملاحظة نشاط المستخدم أثناء إعتام الشاشة أو بعد قليل من توقف الشاشة عن العمل.
 
           في حالة تعيين السياسة، فإنها تعمل على تحديد النسبة المئوية التي بمقتضاها يتم تحديد مهلة إعتام الشاشة في حالة ملاحظة نشاط المستخدم أثناء إعتام الشاشة أو بعد قليل من توقف الشاشة عن العمل. وعند قياس مهلة الإعتام، يتم ضبط مهلة إيقاف الشاشة وقفل الشاشة ووضع الخمول بحيث تحتفظ بنفس مهلة إعتام الشاشة كما هو الحال في التهيئة المعتادة.
@@ -89,6 +114,11 @@
 <translation id="1327466551276625742">تفعيل مطالبة تهيئة الشبكة بلا إنترنت</translation>
 <translation id="1330145147221172764">تفعيل لوحة المفاتيح على الشاشة</translation>
 <translation id="13356285923490863">اسم النهج</translation>
+<translation id="1352174694615491349">‏تسمح هذه السياسة باندماج اتصال HTTP/2 عندما تكون شهادات العميل قيد الاستخدام. ولتحقيق الاندماج، يجب أن يطابق كل من اسم مضيف الاتصال الجديد المحتمل واسم مضيف الاتصال الحالي نمطًا واحدًا أو أكثر من الأنماط الموضحة من خلال هذه السياسة. وتمثل هذه السياسة قائمة من الأطراف المضيفة التي تستخدم تنسيق فلتر URLBlacklist: "example.com" الذي يتطابق مع "example.com" وجميع النطاقات الفرعية (على سبيل المثال "sub.example.com")، بينما يتطابق ".example.net" مع "example.net" تمامًا.
+
+.......ويمكن لطلبات الاندماج للأطراف المضيفة المختلفة عبر الاتصالات التي تستخدم شهادات العميل إنشاء مشاكل الخصوصية والأمان، حيث يتم نقل الصلاحية غير النشطة إلى جميع الطلبات، حتى وفي حال عدم تفويض هذا المستخدم بوضوح. هذه السياسة مؤقتة وستتم إزالتها في أحد الإصدارات في المستقبل. يُرجى الاطِّلاع على https://crbug.com/855690.
+
+.......في حالة ترك هذه السياسة بدون إعداد، حينئذٍ سيتم استخدام السلوك التلقائي لعدم السماح بأيّ من اتصالات HTTP/2 المندمجة مع الاتصالات التي تستخدم شهادات العميل.</translation>
 <translation id="1353966721814789986">صفحات بدء التشغيل</translation>
 <translation id="1359553908012294236">‏إذا تم تعيين هذه السياسة على true أو لم يتم تهيئتها، فسيتيح <ph name="PRODUCT_NAME" /> تسجيلات الدخول للضيوف. تُعد عمليات تسجيل دخول الضيوف بمثابة ملفات شخصية في <ph name="PRODUCT_NAME" /> وتكون جميع النوافذ بها في وضع التصفح المتخفي.
 
@@ -183,6 +213,7 @@
 <translation id="1583248206450240930">استخدام <ph name="PRODUCT_FRAME_NAME" /> بشكل تلقائي</translation>
 <translation id="1599424828227887013">‏تفعيل "عزل المواقع" لأصول مُحدَّدة على أجهزة Android</translation>
 <translation id="1608755754295374538">‏عناوين URL التي سيتم منحها إمكانية الدخول إلى أجهزة التقاط الصوت بدون إذن</translation>
+<translation id="1615221548356595305">‏السماح باندماج اتصالات HTTP/2 لهذه الأطراف المضيفة وحتى عندما تُستخدَم شهادات العميل</translation>
 <translation id="1617235075406854669">تفعيل حذف سجل المتصفح والتنزيل</translation>
 <translation id="163200210584085447">‏ستتم مطابقة الأنماط المدرجة في هذه القائمة مع الأصل الأمني
       لعنوان URL للطلب.  وفي حالة وجود تطابق، 
@@ -1146,7 +1177,6 @@
       وفي حال عدم ضبط هذه السياسة، سيتم تفعيل مجموعة البيانات مجهولة المصدر والمستندة إلى عنوان URL، ولكن سيتمكَّن المستخدم من تغييرها.</translation>
 <translation id="4250680216510889253">لا</translation>
 <translation id="4261820385751181068">لغة شاشة تسجيل الدخول إلى الجهاز</translation>
-<translation id="4264607809747169568">‏تتحكّم في ميزة "خوادم مشاركة الملفات على الشبكة" لتوفّر نظام التشغيل Chrome</translation>
 <translation id="427220754384423013">‏تُحدد السياسة الطابعات التي يمكن لأي مستخدم استخدامها.
 
       لا يتم استخدام هذه السياسة إلا في حال اختيار <ph name="PRINTERS_WHITELIST" /> لـ <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1291,6 +1321,7 @@
        في حال تفعيل هذه السياسة، سيتمّ السماح لمواقع الويب بالانتقال وفتح علامات التبويب/النوافذ الجديدة في آنٍ واحد.
        في حال إيقاف هذه السياسة أو عدم تعيينها، لن يتمّ السماح لمواقع الويب بالانتقال وفتح علامة التبويب/النافذة الجديدة في آنٍ واحد.</translation>
 <translation id="4680961954980851756">تفعيل الملء التلقائي</translation>
+<translation id="4703402283970867140">تفعيل نموذج تعتيم الشاشة الذكي لمدّ الفترة الزمنية حتى يتم تعتيم الشاشة</translation>
 <translation id="4722122254122249791">تفعيل "عزل المواقع" لأصول محددة</translation>
 <translation id="4722399051042571387">‏إذا تم التعيين إلى "false"، فلن يتمكن المستخدمون من تعيين أرقام التعريف الشخصية الضعيفة والتي يمكن تخمينها بسهولة.
 
@@ -1498,13 +1529,6 @@
 <translation id="5370279767682621504">‏تفعيل دعم HTTP/0.9 في المنافذ غير التلقائية</translation>
 <translation id="5378985487213287085">‏للسماح لك بتعيين ما إذا كان يُسمح للمواقع الإلكترونية بعرض إشعارات سطح المكتب. يمكن السماح بعرض إشعارات سطح المكتب بشكل تلقائي أو رفضها بشكل تلقائي أو يمكن سؤال المستخدم في كل مرة يريد فيها موقع الويب عرض إشعارات سطح المكتب. إذا تم ترك هذه السياسة بدون تعيين، فسيتم استخدام السياسة 'AskNotifications' وسيتمكن المستخدم من تغييرها.</translation>
 <translation id="538108065117008131">السماح لـ <ph name="PRODUCT_FRAME_NAME" /> بالتعامل مع أنواع المحتوى التالية.</translation>
-<translation id="5391363090783552279">‏في حال تعيين هذه السياسة على الوضع "true"، سيتصل <ph name="PRODUCT_NAME" /> بأجهزة البث في جميع عناوين IP، وليس فقط عناوين RFC1918/RFC4913 الخاصة.
-          في حال تعيين هذه السياسة على الوضع "false"، سيتصل <ph name="PRODUCT_NAME" /> بأجهزة البث في عناوين RFC1918/RFC4913 الخاصة فقط.
-
-          في حال عدم تعيين هذه السياسة، سيتصل <ph name="PRODUCT_NAME" /> بأجهزة البث في عناوين RFC1918/RFC4913 الخاصة فقط، ما لم يتم تفعيل ميزة CastAllowAllIPs.
-
-
-          في حال تعيين سياسة "EnableMediaRouter" على الوضع "false"، لن يصبح لقيمة هذه السياسة أي تأثير.</translation>
 <translation id="5392172595902933844">‏يتم إرسال معلومات حول حالة جهاز Android إلى
       الخادم مرة أخرى.
 
@@ -2034,6 +2058,10 @@
 <translation id="6943577887654905793">‏اسم تفضيل نظام التشغيل Mac/Linux:</translation>
 <translation id="69525503251220566">معلمة توفر ميزة البحث بحسب الصورة لموفر خدمة البحث التلقائية</translation>
 <translation id="6956272732789158625">عدم السماح لأي موقع باستخدام إنشاء مفتاح</translation>
+<translation id="6965859329738616662">‏تحدّد هذه السياسة ما إذا كان يُسمَح بنموذج تعتيم الشاشة الذكي لمدّ الفترة الزمنية حتى يتم تعتيم الشاشة أم لا.
+
+......عندما تكون الشاشة على وشك التعتيم، يقيم نموذج تعتيم الشاشة الذكي ما إذا كان يجب تأجيل تعتيم الشاشة أم لا. وفي حال تأجيل نموذج تعتيم الشاشة الذكي لتعتيم الشاشة، سيؤدي ذلك إلى مدّ الفترة الزمنية بفعالية حتى يتم تعتيم الشاشة. وفي هذه الحالة، سيتم ضبط مهلات تعتيم الشاشة وإيقاف تشغيلها وقفلها للحفاظ على الفروق الزمنية نفسها بين هذه المهلات ومهلة تأخير التعتيم وفقًا للتهيئة الأصلية.
+......في حال إعداد هذه السياسة على "True" أو عدم إعدادها، سيتم تفعيل نموذج تعتيم الشاشة الذكي والسماح بمدّ الفترة الزمنية حتى يتم تعتيم الشاشة. وفي حال ضبط السياسة على "False"، لن يؤثر نموذج تعتيم الشاشة الذكي على تعتيم الشاشة.</translation>
 <translation id="6982028490425791294">‏
       في حال ضبط هذه السياسة على "true"، سيتم السماح للمنتج <ph name="PRODUCT_NAME" /> بتجميع سجلّات أحداث WebRTC من خدمات Google (مثل Google Meet) وتحميل هذه السجلّات إلى Google.
       في حال ضبط هذه السياسة على "false" أو عدم ضبطها، لا يجوز للمنتج <ph name="PRODUCT_NAME" /> تجميع هذه السجلّات أو تحميلها.
@@ -2463,6 +2491,13 @@
 <translation id="7980227303582973781">بلا قيود خاصة</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">تدوير الشاشة  بمقدار 0 درجة</translation>
+<translation id="8033913082323846868">‏تم إيقاف هذه السياسة في M70، يُرجى استخدام AutofillAddressEnabled وAutofillCreditCardEnabled بدلاً منها.
+
+      تفعّل هذه السياسة ميزة "الملء التلقائي" للمنتج <ph name="PRODUCT_NAME" /> وتسمح للمستخدمين بإكمال نماذج الويب تلقائيًا باستخدام المعلومات المُخزَّنة مسبقًا، مثل معلومات بطاقة الائتمان أو العنوان.
+
+      في حال إيقاف هذا الإعداد، لن تكون ميزة "الملء التلقائي" متاحة للوصول لدى المستخدمين.
+
+      في حال تفعيل هذا الإعداد أو عدم إعداد قيمة، ستظل ميزة "الملء التلقائي" تخضع لتحكم المستخدم. وسيسمح ذلك له بتهيئة "الملء التلقائي" للملفات الشخصية وتفعيل "الملء التلقائي" أو إيقافه بحسب تقديره.</translation>
 <translation id="8044493735196713914">تسجيل وضع تشغيل الجهاز</translation>
 <translation id="8050080920415773384">الطباعة الأصلية</translation>
 <translation id="8059164285174960932">‏عنوان URL الذي ينبغي أن يحصل العملاء الذين يتمتعون بإمكانية الوصول عن بعد على رمز المصادقة المميز من خلاله</translation>
@@ -2782,6 +2817,33 @@
 
       في حال عدم تعيين هذه السياسة، تكون <ph name="PRINTERS_ALLOW_ALL" /> هي السياسة المفروضة.
       </translation>
+<translation id="8938932171964587769">‏تم إيقاف السياسة في M69. ويمكنك استخدام
+      OverrideSecurityRestrictionsOnInsecureOrigin بدلاً منها.
+
+تحدِّد هذه السياسة قائمة من الأصول (عناوين URL) أو أنماط اسم المضيف (مثل
+      "*.example.com") والتي لن تنطبق عليها
+........قيود الأمان على الأصول غير الآمنة.
+
+      وذلك بهدف السماح للمؤسسات بإعداد أصول القائمة البيضاء للتطبيقات
+      القديمة التي لا يمكنها نشر طبقة النقل الآمنة، أو بإعداد خادم مرحلي لعملية
+      تطوير الويب الداخلية ليتمكّن مطورو البرامج من اختبار الميزات
+      التي تتطلب سياقات آمنة بدون الحاجة إلى نشر طبقة النقل الآمنة على الخادم
+      المرحلي. وستمنع هذه السياسة أيضًا الأصول من اعتبارها مصنّفة
+........كأصول "غير آمنة" في المربع متعدد الاستخدامات.
+
+........ويتطابق تأثير إعداد قائمة بعناوين URL في هذه السياسة مع تأثير إعداد
+........علامة سطر الأوامر "--unsafely-treat-insecure-origin-as-secure"
+........في قائمة مفصولة بفواصل من عناوين URL نفسها. وإذا تم إعداد هذه السياسة، سيؤدي ذلك إلى
+........إلغاء علامة سطر الأوامر.
+
+      تم إيقاف هذه السياسة في M69 لصالح
+      OverrideSecurityRestrictionsOnInsecureOrigin. وإذا كانت تلك 
+      السياستان متاحتين، ستلغي ........OverrideSecurityRestrictionsOnInsecureOrigin هذه
+      السياسة.
+
+      لمزيد من المعلومات حول السياقات الآمنة، يُرجى الاطِّلاع على
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">‏تتحكّم هذه السياسة في مدى إظهار "الموافقة على المزامنة" للمستخدم أثناء تسجيل الدخول لأول مرة. وينبغي ضبطها على false إذا لم يحتاج المستخدم إلى "الموافقة على المزامنة" مطلقًا.
       في حال ضبطها على false، لن يتم عرض "الموافقة على المزامنة".
       في حال ضبطها على true أو عدم ضبطها، يمكن عرض "الموافقة على المزامنة".</translation>
diff --git a/components/policy/resources/policy_templates_bg.xtb b/components/policy/resources/policy_templates_bg.xtb
index c7b8baf0..4674c3c 100644
--- a/components/policy/resources/policy_templates_bg.xtb
+++ b/components/policy/resources/policy_templates_bg.xtb
@@ -33,6 +33,17 @@
 В случай че настройката е деактивирана или не е конфигурирана, хостът за отдалечено съдействие ще се изпълнява в контекста на потребителя и отдалечените потребители няма да могат да взаимодействат с прозорците с администраторски права.</translation>
 <translation id="1096105751829466145">Търсеща машина по подразбиране</translation>
 <translation id="1099282607296956954">Активиране на изолирането на сайтове за всички сайтове</translation>
+<translation id="1100570158310952027">
+      Правилото служи за съставяне на списък с източници (URL адреси) или шаблони за имена на хостове (например *.example.com), за които няма да важат ограниченията за сигурност, налагани върху несигурните източници.
+
+Целта е да се даде възможност на организациите да съставят бял списък с източници за наследените приложения, които не могат да използват TLS, или да настроят подготвителен сървър за вътрешни уеб разработки, така че програмистите им да могат да тестват функции, изискващи надежден контекст, без да се налага да внедряват TLS в подготвителния сървър. Това правило също така предотвратява означаването на източника с „Няма защита“ в полето за всичко.
+
+Посочването на URL адреси в това правило има същия ефект като задаването на разделен със запетаи списък със същите URL адреси чрез флага в командния ред „--unsafely-treat-insecure-origin-as-secure“. Ако правилото бъде зададено, то ще замени този флаг.
+
+Това правило заменя UnsafelyTreatInsecureOriginAsSecure, ако то съществува.
+
+За повече информация относно надеждния контекст посетете https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Манипулаторите на протоколи, зададени чрез това правило, не се използват при обработване на намерения за Android.</translation>
 <translation id="1118093128235245168">Разрешаване на сайтовете да искат от потребителя достъп до свързани USB устройства</translation>
 <translation id="1128903365609589950">Конфигурира директорията, която <ph name="PRODUCT_NAME" /> ще използва за съхраняване на кеширани файлове на диска.
@@ -76,6 +87,7 @@
       Ако правилото не е зададено или е false, то пакетите шифри RC4 в TLS няма да бъдат активирани. В противен случай  за него може да бъде зададено true, за да се запази съвместимостта с остарял сървър. Това е временна мярка и сървърът трябва да бъде преконфигуриран.</translation>
 <translation id="1297182715641689552">Използване на .pac скрипт за прокси сървър</translation>
 <translation id="1304973015437969093">Идентификационни номера на разширения/приложения и URL адреси за актуализации, които да се инсталират негласно</translation>
+<translation id="1307454923744766368">Източници или шаблони за имена на хостове, за които да не важат ограниченията за несигурните източници</translation>
 <translation id="1313457536529613143">Посочва процента, с който се променя забавянето на затъмняването на екрана, когато бъде установена активност на потребителя при затъмнен екран или скоро след изключването на екрана.
 
           Ако това правило е зададено, посочва процента, с който се променя забавянето на затъмняването на екрана, когато бъде установена активност на потребителя при затъмнен екран или скоро след изключването на екрана. При такава промяна забавянията за изключване на екрана, за заключването му и при неактивност се коригират, така че да запазят същото отстояние от забавянето на затъмняването на екрана като първоначално конфигурираното.
@@ -87,6 +99,11 @@
 <translation id="1327466551276625742">Активиране на подканата за конфигуриране на мрежа, когато устройството е офлайн</translation>
 <translation id="1330145147221172764">Активиране на екранната клавиатура</translation>
 <translation id="13356285923490863">Име на правилото</translation>
+<translation id="1352174694615491349">Правилото разрешава обединяване на HTTP/2 връзки, когато се използват клиентски сертификати. За да се извърши обединяване, името на хоста за потенциалната нова връзка и името на хоста за съществуваща връзка трябва да съответстват на един или повече шаблони, описани в това правило. Правилото представлява списък с хостове във формата на филтъра URLBlacklist: „example.com“ съответства на „example.com“ и всички негови поддомейни (напр. „sub.example.com“), докато „.example.net“ съответства точно на „example.net“.
+
+Обединяването на заявки към различни хостове във връзки, които използват клиентски сертификати, може да доведе до проблеми със сигурността и поверителността, тъй като общите пълномощия ще бъдат предоставени на всички заявки дори когато потребителят не е разрешил изрично това. Това правило е временно и ще бъде премахнато в бъдеща версия. Вижте https://crbug.com/855690.
+
+Ако правилото не бъде зададено, се използва стандартното поведение да не се разрешава обединяване на HTTP/2 връзки, които използват клиентски сертификати.</translation>
 <translation id="1353966721814789986">Страници при стартиране</translation>
 <translation id="1359553908012294236">Ако за това правило е зададено true или то не е конфигурирано, функцията за влизане като гост ще е активирана в <ph name="PRODUCT_NAME" />. Сърфирането като гост се извършва в потребителски профили в <ph name="PRODUCT_NAME" />, в които всички прозорци се отварят в режим „инкогнито“.
 
@@ -175,6 +192,7 @@
 <translation id="1583248206450240930">Използване по подразбиране на <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="1599424828227887013">Активиране на изолирането на сайтове за конкретни източници на устройства с Android</translation>
 <translation id="1608755754295374538">URL адреси, на които без подкана ще се предоставя достъп до звукозаписните устройства</translation>
+<translation id="1615221548356595305">Разрешаване на обединяването на HTTP/2 връзки към съответните хостове дори когато се използват клиентски сертификати</translation>
 <translation id="1617235075406854669">Активиране на изтриването на историята на браузъра и на изтеглянията</translation>
 <translation id="163200210584085447">Ще се търси съответствие между образците в този списък и първоизточника на сигурност
 на отправящия заявката URL адрес. Ако има съвпадение, достъпът до
@@ -1151,7 +1169,6 @@
 Ако правилото не е зададено, функцията ще е активирана, но потребителят ще може да променя настройката.</translation>
 <translation id="4250680216510889253">Не</translation>
 <translation id="4261820385751181068">Локал на екрана за вход в устройството</translation>
-<translation id="4264607809747169568">Управление на наличността на функцията на Chrome OS за споделяне на файлове в мрежата</translation>
 <translation id="427220754384423013">Посочва кои принтери могат да се използват от потребителя.
 
 Това правило е в сила само ако сте избрали <ph name="PRINTERS_WHITELIST" /> за <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1304,6 +1321,7 @@
 Ако това правило е активирано, сайтовете ще могат да навигират и същевременно да отварят нови прозорци/раздели.
 В случай че правилото е деактивирано или не е зададено, това няма да е разрешено.</translation>
 <translation id="4680961954980851756">Активиране на автоматичното попълване</translation>
+<translation id="4703402283970867140">Активиране на модел на интелигентно затъмняване, за да се увеличи времето до затъмняване на екрана</translation>
 <translation id="4722122254122249791">Активиране на изолирането на сайтове за конкретни източници</translation>
 <translation id="4722399051042571387">При false потребителите няма да могат да задават ПИН кодове, които са ненадеждни и лесни за отгатване.
 
@@ -1515,13 +1533,6 @@
 <translation id="5370279767682621504">Активиране на поддръжка за HTTP/0.9 през портове, различни от стандартните</translation>
 <translation id="5378985487213287085">Позволява да зададете дали на уебсайтовете е разрешено да показват известия на работния плот. Тази опция може да бъде разрешена или отказана по подразбиране или потребителят може да бъде питан всеки път, когато уебсайт иска да показва известия на работния плот. Ако това правило е оставено незададено, ще се използва „AskNotifications“ и потребителят ще може да го променя.</translation>
 <translation id="538108065117008131">Разрешаване на <ph name="PRODUCT_FRAME_NAME" /> да обработва следните типове съдържание.</translation>
-<translation id="5391363090783552279">Ако за това правило е зададено true, <ph name="PRODUCT_NAME" /> ще се свързва с устройства Cast през всички IP адреси, а не само през частни адреси по RFC1918/RFC4913.
-
-При false <ph name="PRODUCT_NAME" /> ще се свързва с устройства Cast само през частни адреси по RFC1918/RFC4913.
-
-В случай че правилото не е зададено, <ph name="PRODUCT_NAME" /> ще се свързва с устройства Cast само през частни адреси по RFC1918/RFC4913, освен ако функцията CastAllowAllIPs не е активирана.
-
-Ако за EnableMediaRouter е зададено false, стойността на това правило няма да има ефект.</translation>
 <translation id="5392172595902933844">Информацията за състоянието на приложенията за Android се връща на сървъра.
 
 Данните няма да се изпращат, ако за правилото е зададено false или то не е конфигурирано,
@@ -2073,6 +2084,10 @@
 <translation id="6943577887654905793">Име на предпочитанието за Mac/Linux:</translation>
 <translation id="69525503251220566">Параметър, предоставящ за основната търсеща машина функция за търсене по изображение</translation>
 <translation id="6956272732789158625">Забраняване на сайтовете да генерират ключове</translation>
+<translation id="6965859329738616662">Посочва дали да се разреши модел на интелигентно затъмняване, за да се увеличи времето до затъмняване на екрана.
+
+Когато предстои затъмняване на екрана, този модел оценява дали това да бъде отложено. В случай на отлагане времето до затъмняването на екрана се увеличава. Тогава забавянията преди изключване на екрана, преди заключване на екрана и това при неактивност се коригират, за да останат толкова отдалечени от забавянето на затъмняването на екрана, колкото са били конфигурирани първоначално.
+Ако за правилото е зададено True или то не е зададено, моделът на интелигентно затъмняване ще бъде активиран и ще му бъде позволено да увеличава времето до затъмняване на екрана. Ако за правилото е зададено False, моделът няма да влияе върху затъмняването на екрана.</translation>
 <translation id="6982028490425791294">
       Ако това правило е true, на <ph name="PRODUCT_NAME" /> се разрешава да събира регистри на събитията за WebRTC от услугите на Google (напр. Google Meet) и да ги качва в Google.
 
@@ -2504,6 +2519,13 @@
 <translation id="7980227303582973781">Без специални ограничения</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Завъртане на екрана на 0 градуса</translation>
+<translation id="8033913082323846868">Това правило е оттеглено в M70. Вместо това, моля, използвайте AutofillAddressEnabled и AutofillCreditCardEnabled.
+
+Активира функцията на <ph name="PRODUCT_NAME" /> за автоматично попълване и позволява на потребителите да попълват автоматично уеб формуляри чрез вече съхранени данни, като адрес или информация за кредитни карти.
+
+В случай че деактивирате тази настройка, потребителите няма да имат достъп до автоматичното попълване.
+
+Ако я активирате или не зададете стойност, функцията ще остане под контрола на потребителите. Това ще им позволи да конфигурират потребителски профили за автоматично довършване и да включват и изключват функцията по свое усмотрение.</translation>
 <translation id="8044493735196713914">Съобщаване на режима на стартиране на устройството</translation>
 <translation id="8050080920415773384">Стандартно отпечатване</translation>
 <translation id="8059164285174960932">URL адрес, откъдето клиентските програми за отдалечен достъп да получат означението си за удостоверяване</translation>
@@ -2827,6 +2849,18 @@
 
 При незадаване на това правило се използва <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Оттеглено в M69. Вместо това използвайте OverrideSecurityRestrictionsOnInsecureOrigin.
+
+Правилото служи за съставяне на списък с източници (URL адреси) или шаблони за имена на хостове (например *.example.com), за които няма да важат ограниченията за сигурност, налагани върху несигурните източници.
+
+Целта е да се даде възможност на организациите да съставят бял списък с източници за наследените приложения, които не могат да използват TLS, или да настроят подготвителен сървър за вътрешни уеб разработки, така че програмистите им да могат да тестват функции, изискващи надежден контекст, без да се налага да внедряват TLS в подготвителния сървър. Това правило също така предотвратява означаването на източника с „Няма защита“ в полето за всичко.
+
+Посочването на URL адреси в това правило има същия ефект като задаването на разделен със запетаи списък със същите URL адреси чрез флага в командния ред „--unsafely-treat-insecure-origin-as-secure“. Ако правилото бъде зададено, то ще замени този флаг.
+
+Това правило е оттеглено в M69, където е заменено от OverrideSecurityRestrictionsOnInsecureOrigin. Ако и двете правила съществуват, OverrideSecurityRestrictionsOnInsecureOrigin заменя настоящото.
+
+За повече информация относно надеждния контекст посетете https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Това правило контролира възможността за показване на съобщението за получаване на съгласие във връзка със синхронизирането, когато потребителят влиза в профила си за първи път. Трябва да зададете false, ако това съгласие няма да е необходимо за потребителя.
 При false съответното съобщение няма да се показва.
 Ако правилото е true или не е зададено, съобщението може да се показва.</translation>
diff --git a/components/policy/resources/policy_templates_bn.xtb b/components/policy/resources/policy_templates_bn.xtb
index 436f2c1..8bf3721 100644
--- a/components/policy/resources/policy_templates_bn.xtb
+++ b/components/policy/resources/policy_templates_bn.xtb
@@ -1376,7 +1376,6 @@
       যদি এই নীতিটি সেট না করা থাকে, তাহলে ইউআরএল- কী পরিচয় গোপন করা ডেটা সংগ্রহ চালু থাকবে কিন্তু ব্যবহারকারী এটিকে পরিবর্তন করতে পারবে।</translation>
 <translation id="4250680216510889253">না</translation>
 <translation id="4261820385751181068">ডিভাইস সাইন-ইন স্ক্রিন লোকেল</translation>
-<translation id="4264607809747169568">ChromeOS উপলভ্যতার জন্য নেটওয়ার্ক ফাইল শেয়ার নিয়ন্ত্রণ করুন</translation>
 <translation id="427220754384423013">এমন প্রিন্টারের বিষয়ে উল্লেখ করে যেটি ব্যবহারকারী ব্যবহার করতে পারবেন।
 
       শুধুমাত্র <ph name="BULK_PRINTERS_ACCESS_MODE" /> এর জন্য <ph name="PRINTERS_WHITELIST" /> বেছে নেওয়া হলেই এই নীতিটি ব্যবহার করা হয়।
@@ -1848,12 +1847,6 @@
 
 যদি এই নীতিটি সেট নয়-এ ছেড়ে দেওয়া হয় তাহলে, 'বিজ্ঞপ্তি চান' ব্যবহার করা হবে এবং ব্যবহারকারী এটিকে পরিবর্তন করতে পারবে৷</translation>
 <translation id="538108065117008131">নিম্নোক্ত সামগ্রী প্রকার পরিচালনা করতে <ph name="PRODUCT_FRAME_NAME" /> মঞ্জুর করুন৷</translation>
-<translation id="5391363090783552279">যদি এই নীতিটি 'ট্রুতে' সেট করা হয়, তাহলে <ph name="PRODUCT_NAME" />টি শুধু RFC1918/RFC4913 ব্যক্তিগত ঠিকানা নয়, সব আইপি ঠিকানার কাস্ট ডিভাইসগুলিতে কানেক্ট করবে।
-
-          যদি এই নীতিটি 'ফল্সে' সেট করা হয়, তাহলে <ph name="PRODUCT_NAME" />টি RFC1918/RFC4913 ব্যক্তিগত ঠিকানার কাস্ট ডিভাইসগুলিতে শুধুমাত্র কানেক্ট হবে।
-
-          এই নীতিটি সেট না করা হলে, যদি CastAllowAllIPs বৈশিষ্ট্যটি চালু না করা থাকে তাহলে <ph name="PRODUCT_NAME" />টি শুধুমাত্র RFC1918/RFC4913 ব্যক্তিগত ঠিকানার কাস্ট ডিভাইসগুলিতে কানেক্ট করবে।
-          যদি নীতি "EnableMediaRouter" 'ফল্সে' সেট করা হয়, তাহলে এই নীতিটির গুণমানে কোনও প্রভাব পড়বে না।</translation>
 <translation id="5392172595902933844">Android এর স্থিতি সম্পর্কে তথ্যের প্রতিবেদন সার্ভারে
       ফেরত পাঠানো হয়।
 
diff --git a/components/policy/resources/policy_templates_ca.xtb b/components/policy/resources/policy_templates_ca.xtb
index 91e7ac9..c2e0694 100644
--- a/components/policy/resources/policy_templates_ca.xtb
+++ b/components/policy/resources/policy_templates_ca.xtb
@@ -33,6 +33,17 @@
           Si es desactiva o no es configura, l'amfitrió d'assistència remota s'executarà al context de l'usuari i els usuaris remots no podran interaccionar amb les finestres amb privilegis restringits a l'ordinador.</translation>
 <translation id="1096105751829466145">Proveïdor de cerca predeterminat</translation>
 <translation id="1099282607296956954">Activa l'aïllament de tots els llocs web</translation>
+<translation id="1100570158310952027">
+      La política especifica una llista d'orígens (URL) o de patrons de nom d'amfitrió (com ara "*.example.com") en què no s'aplicaran les restriccions de seguretat sobre orígens no segurs.
+
+      La intenció és permetre que les organitzacions elaborin una llista blanca d'orígens per a les aplicacions heretades que no poden implementar TLS, o bé que configurin un servidor de fases per als desenvolupaments web interns, de manera que els desenvolupadors puguin provar funcions que requereixin contexts segurs sense haver d'implementar TLS al servidor de fases. Aquesta política també impedirà que l'origen s'etiqueti com a "No segur" a l'omnibox.
+
+      Definir una llista d'URL d'aquesta política té el mateix efecte que assignar la marca de la línia d'ordres "--unsafely-treat-insecure-origin-as-secure" a una llista dels mateixos URL separats per comes. Si la política es defineix, substituirà la marca de la línia d'ordres.
+
+      Aquesta política substituirà UnsafelyTreatInsecureOriginAsSecure, si està present.
+
+      Per obtenir més informació sobre els contexts segurs, consulta https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Els gestors de protocols establerts a través d'aquesta política no s'utilitzen quan es gestionen els intents d'Android.</translation>
 <translation id="1118093128235245168">Permet que els llocs web demanin a l'usuari que garanteixi accés a un dispositiu USB connectat</translation>
 <translation id="1128903365609589950">Configura el directori que <ph name="PRODUCT_NAME" /> utilitzarà per emmagatzemar fitxers a la memòria cau del disc.
@@ -80,6 +91,7 @@
       Si la política no s'estableix o s'estableix en "false", els sistemes de xifratge RC4 de TLS no s'activaran. En cas contrari, es pot establir en "true" per conservar la compatibilitat amb un servidor obsolet. Es tracta d'una mesura temporal i el servidor s'ha de tornar a configurar.</translation>
 <translation id="1297182715641689552">Fes servir un script de servidor intermediari .pac</translation>
 <translation id="1304973015437969093">Identificadors de les extensions i de les aplicacions i URL de les actualitzacions que s'instal·laran en silenci</translation>
+<translation id="1307454923744766368">Orígens o patrons de nom d'amfitrió en què no s'han d'aplicar les restriccions sobre orígens no segurs.</translation>
 <translation id="1313457536529613143">Especifica el percentatge d'ajust del temps d'espera d'inactivitat de la pantalla quan s'observa l'activitat de l'usuari amb la pantalla atenuada o poc després de desactivar-la.
 
          Si s'estableix aquesta política, s'especifica el percentatge d'ajust del temps d'espera d'inactivitat de la pantalla quan s'observa l'activitat de l'usuari amb la pantalla atenuada o poc després de desactivar-la. Quan s'ajusta el temps d'espera d'inactivitat de la pantalla, s'ajusten els retards de desconnexió, bloqueig i desactivació de la pantalla per mantenir les mateixes distàncies del temps d'espera d'inactivitat de la pantalla que la configuració original.
@@ -91,6 +103,11 @@
 <translation id="1327466551276625742">Activeu la sol·licitud de configuració de la xarxa quan estigueu fora de línia.</translation>
 <translation id="1330145147221172764">Activa el teclat en pantalla</translation>
 <translation id="13356285923490863">Nom de la política</translation>
+<translation id="1352174694615491349">Aquesta política permet la coalescència de connexions HTTP/2 quan s'utilitzen certificats de client. Perquè es doni la coalescència, tant el nom d'amfitrió de la possible connexió nova com el d'una connexió existent han de coincidir amb un o més patrons descrits en aquesta política. La política és una llista d'amfitrions que fan servir el format del filtre URLBlacklist: "example.com" coincideix amb "example.com" i tots els seus subdominis (per exemple, "sub.example.com"), mentre que ".example.net" coincideix exactament amb "example.net".
+
+      La coalescència de sol·licituds amb diferents amfitrions en connexions que utilitzen certificats de client pot generar problemes de seguretat i privadesa, ja que l'autoritat d'ambient es comunicarà a totes les sol·licituds, fins i tot si l'usuari no ho ha autoritzat explícitament. Aquesta política és temporal i se suprimirà en una versió posterior. Consulta https://crbug.com/855690.
+
+      Si aquesta política es deixa sense definir, s'utilitzarà el comportament predeterminat de no permetre cap coalescència de connexions HTTP/2 en el cas de les connexions que fan servir certificats de client.</translation>
 <translation id="1353966721814789986">Pàgines d'inici</translation>
 <translation id="1359553908012294236">Si aquesta política s'estableix en "true" o no es configura, <ph name="PRODUCT_NAME" /> permetrà els inicis de sessió en mode de convidat. Aquests inicis són perfils de <ph name="PRODUCT_NAME" /> on totes les finestres utilitzen el mode d'incògnit.
 
@@ -178,6 +195,7 @@
 <translation id="1583248206450240930">Fes servir <ph name="PRODUCT_FRAME_NAME" /> de manera predeterminada</translation>
 <translation id="1599424828227887013">Activa l'aïllament de llocs web per a orígens especificats en dispositius Android</translation>
 <translation id="1608755754295374538">URL als quals els dispositius de captura d'àudio podran accedir sense confirmació.</translation>
+<translation id="1615221548356595305">Permet la coalescència de connexions HTTP/2 per a aquests amfitrions fins i tot quan s'utilitzen certificats de client</translation>
 <translation id="1617235075406854669">Activa la supressió de l'historial de baixades i del navegador</translation>
 <translation id="163200210584085447">Els patrons d'aquesta llista es compararan amb l'origen de la seguretat de l'URL sol·licitant. Si es troba alguna coincidència, l'URL obtindrà permís per accedir a dispositius de captura de vídeo en pàgines d'inici de sessió amb SAML. Si no es troba cap coincidència, l'accés es denegarà automàticament. Els patrons comodí no es permeten.</translation>
 <translation id="1634989431648355062">Permet el connector <ph name="FLASH_PLUGIN_NAME" /> en aquests llocs</translation>
@@ -1133,18 +1151,17 @@
 
           Si aquesta política es deixa sense establir, s'utilitzarà el valor general predeterminat de la política "DefaultKeygenSetting" (si està configurada) per a tots els llocs web, o bé s'utilitzarà la configuració personal de l'usuari.</translation>
 <translation id="4239720644496144453">La memòria cau no s'utilitza a les aplicacions per a Android. Si diversos usuaris instal·len la mateixa aplicació per a Android, es baixarà de nou en cada cas.</translation>
-<translation id="4243336580717651045">Activa la recopilació de dades anònimes amb URL a <ph name="PRODUCT_NAME" /> impedeix que els usuaris puguin canviar aquesta opció.
+<translation id="4243336580717651045">Activa la recollida de dades anònimes amb URL a <ph name="PRODUCT_NAME" /> impedeix que els usuaris puguin canviar aquesta opció.
 
-      La recopilació de dades anònimes amb URL envia a Google els URL de pàgines que l'usuari visita per millorar les cerques i la navegació.
+      La recollida de dades anònimes amb URL envia a Google els URL de pàgines que l'usuari visita per millorar les cerques i la navegació.
 
-      Si actives aquesta política, la recopilació de dades anònimes amb URL estarà sempre activa.
+      Si actives aquesta política, la recollida de dades anònimes amb URL estarà sempre activa.
 
-      Si desactives aquesta política, la recopilació de dades anònimes amb URL no estarà mai activa.
+      Si desactives aquesta política, la recollida de dades anònimes amb URL no estarà mai activa.
 
-      Si aquesta política es deixa sense definir, la recopilació de dades anònimes amb URL s'activarà però l'usuari podrà canviar aquesta opció.</translation>
+      Si aquesta política es deixa sense definir, la recollida de dades anònimes amb URL s'activarà però l'usuari podrà canviar aquesta opció.</translation>
 <translation id="4250680216510889253">No</translation>
 <translation id="4261820385751181068">Configuració regional de la pantalla d'inici de sessió del dispositiu</translation>
-<translation id="4264607809747169568">Controla si la funció Ús compartit dels fitxers de la xarxa estarà disponible per a Chrome OS</translation>
 <translation id="427220754384423013">Especifica les impressores que un usuari pot fer servir.
 
       Aquesta política només s'utilitza si se selecciona <ph name="PRINTERS_WHITELIST" /> per a <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1295,6 +1312,7 @@
       Si aquesta política està activada, els llocs web podran navegar i obrir finestres o pestanyes noves simultàniament.
       Si aquesta política està desactivada o no s'estableix, els llocs web no podran navegar i obrir finestres o pestanyes noves simultàniament.</translation>
 <translation id="4680961954980851756">Activa Emplenament automàtic</translation>
+<translation id="4703402283970867140">Permet que el model d'atenuació intel·ligent ampliï el temps fins que s'atenua la pantalla</translation>
 <translation id="4722122254122249791">Activa l'aïllament de llocs web per a orígens especificats</translation>
 <translation id="4722399051042571387">Si s'estableix com a "false", els usuaris no podran definir codis PIN poc segurs i fàcils d'esbrinar.
 
@@ -1504,13 +1522,6 @@
 <translation id="5370279767682621504">Activa la compatibilitat amb HTTP/0.9 als ports no predeterminats</translation>
 <translation id="5378985487213287085">Us permet definir si els llocs web poden mostrar notificacions d'escriptori. La visualització de notificacions d'escriptori es pot autoritzar o denegar de manera predeterminada o bé es pot demanar cada vegada a l'usuari si vol que es mostrin notificacions d'escriptori. Si no es defineix aquesta política, s'utilitzarà el paràmetre "AskNotifications" i l'usuari podrà canviar-lo.</translation>
 <translation id="538108065117008131">Permet que <ph name="PRODUCT_FRAME_NAME" /> gestioni els tipus de contingut següents.</translation>
-<translation id="5391363090783552279">Si aquesta política s'estableix en "true", <ph name="PRODUCT_NAME" /> es connectarà a dispositius d'emissió en totes les adreces IP, no només en adreces privades de les normes RFC 1918 i RFC 4913.
-
-          Si aquesta política s'estableix en "false", <ph name="PRODUCT_NAME" /> es connectarà a dispositius d'emissió només en adreces privades de les normes RFC 1918 i RFC 4913.
-
-          Si aquesta política no s'estableix, <ph name="PRODUCT_NAME" /> es connectarà a dispositius d'emissió només en adreces privades de les normes RFC 1918 i RFC 4913, tret que la funció CastAllowAllIPs estigui activada.
-
-          Si la política EnableMediaRouter s'estableix en "false", el valor d'aquesta política no tindrà cap efecte.</translation>
 <translation id="5392172595902933844">Envia al servidor informació sobre l'estat d'Android.
 
       Si la política s'estableix en "false" o es deixa sense establir, no s'envia informació d'estat.
@@ -1772,12 +1783,12 @@
           Per bloquejar la pantalla en mode inactiu, us recomanem que activeu el bloqueig de pantalla en mode de suspensió i que configureu <ph name="PRODUCT_OS_NAME" /> perquè se suspengui després del temps d'inactivitat. Aquesta política només s'ha d'utilitzar quan el bloqueig de pantalla s'hagi de produir molt abans que la suspensió o quan no vulgueu emprar la suspensió en mode inactiu.
 
           El valor de la política s'ha d'especificar en mil·lisegons. Els valors es fixen perquè siguin inferiors al temps d'inactivitat.</translation>
-<translation id="6097601282776163274">Activa la recopilació de dades anònimes amb URL</translation>
+<translation id="6097601282776163274">Activa la recollida de dades anònimes amb URL</translation>
 <translation id="6111936128861357925">Permet el joc sorpresa del dinosaure</translation>
 <translation id="6114416803310251055">obsolet</translation>
 <translation id="6133088669883929098">Permet que tots els llocs utilitzin la generació de claus</translation>
 <translation id="6145799962557135888">Us permet definir una llista de patrons d'URL que especifiquen els llocs que no poden executar JavaScript. Si no es defineix aquesta política, s'utilitzarà el valor global predeterminat per a tots els llocs tant de la política "DefaultJavaScriptSetting", si es defineix, com d'un altre tipus de configuració personal de l'usuari.</translation>
-<translation id="614662973812186053">Aquesta política també controla la recopilació de dades d'ús i de diagnòstic d'Android.</translation>
+<translation id="614662973812186053">Aquesta política també controla la recollida de dades d'ús i de diagnòstic d'Android.</translation>
 <translation id="6155936611791017817">Defineix l'estat predeterminat del cursor gran a la pàgina d'inici de sessió</translation>
 <translation id="6157537876488211233">Llista de regles d'evitació de servidors intermediaris separada per comes</translation>
 <translation id="6158324314836466367">Nom de la botiga web de l'empresa (obsolet)</translation>
@@ -2054,6 +2065,11 @@
 <translation id="6943577887654905793">Nom de la preferència de Mac/Linux:</translation>
 <translation id="69525503251220566">Paràmetre que proporciona la funció de cerca per imatge per al proveïdor de cerca predeterminat</translation>
 <translation id="6956272732789158625">No permetis que cap lloc utilitzi la generació de claus</translation>
+<translation id="6965859329738616662">Especifica si es permet que un model d'atenuació intel·ligent ampliï el temps fins que s'atenua la pantalla.
+
+      Quan la pantalla està a punt d'atenuar-se, el model d'atenuació intel·ligent avalua si cal ajornar l'atenuació de la pantalla. Si l'ajorna, amplia el temps que passa fins que s'atenua la pantalla. En aquest cas, els retards per desactivar la pantalla, bloquejar-la i considerar-la inactiva s'ajusten per mantenir les mateixes distàncies amb el retard per atenuar la pantalla que es van configurar en un principi.
+
+      Si aquesta política es defineix en "true" o es deixa sense definir, s'activarà el model d'atenuació intel·ligent i es permetrà que ampliï els temps fins que s'atenua la pantalla. Si aquesta política es defineix en "false", el model d'atenuació intel·ligent no tindrà cap efecte sobre l'atenuació de la pantalla.</translation>
 <translation id="6982028490425791294">
       Si aquesta política s'estableix en "true", <ph name="PRODUCT_NAME" /> pot col·leccionar registres d'esdeveniments WebRTC dels serveis de Google (p. ex. Google Meet) i pujar-los a Google.
 
@@ -2474,6 +2490,13 @@
 <translation id="7980227303582973781">Sense restriccions especials</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Gira la pantalla 0 graus</translation>
+<translation id="8033913082323846868">Aquesta política es considera obsoleta a M70; en lloc seu, utilitza AutofillAddressEnabled i AutofillCreditCardEnabled.
+
+      Activa la funció Emplenament automàtic de <ph name="PRODUCT_NAME" /> i permet que els usuaris emplenin formularis web automàticament amb dades emmagatzemades anteriorment, com ara la informació de targetes de crèdit o d'adreces.
+
+      Si desactives aquesta opció de configuració, els usuaris no podran accedir a Emplenament automàtic.
+
+      Si actives aquesta opció de configuració o no hi estableixes cap valor, els usuaris podran continuar controlant Emplenament automàtic. D'aquesta manera, podran configurar perfils d'Emplenament automàtic i activar o desactivar Emplenament automàtic segons el seu criteri.</translation>
 <translation id="8044493735196713914">Informa del mode d'inici del dispositiu</translation>
 <translation id="8050080920415773384">Impressió nativa</translation>
 <translation id="8059164285174960932">URL on els clients d'accés remot han d'obtenir el testimoni d'autenticació</translation>
@@ -2797,6 +2820,19 @@
 
       Si aquesta política no es defineix, es pressuposa que s'aplica <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Aquesta política es considera obsoleta a M69. Substitueix-la per OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      La política especifica una llista d'orígens (URL) o de patrons de nom d'amfitrió (com ara "*.example.com") en què no s'aplicaran les restriccions de seguretat sobre orígens no segurs.
+
+      La intenció és permetre que les organitzacions elaborin una llista blanca d'orígens per a les aplicacions heretades que no poden implementar TLS, o bé que configurin un servidor de fases per als desenvolupaments web interns, de manera que els desenvolupadors puguin provar funcions que requereixin contexts segurs sense haver d'implementar TLS al servidor de fases. Aquesta política també impedirà que l'origen s'etiqueti com a "No segur" a l'omnibox.
+
+      Definir una llista d'URL d'aquesta política té el mateix efecte que assignar la marca de la línia d'ordres "--unsafely-treat-insecure-origin-as-secure" a una llista dels mateixos URL separats per comes. Si la política es defineix, substituirà la marca de la línia d'ordres.
+
+      Aquesta política es considera obsoleta a M69 
+per donar prioritat a OverrideSecurityRestrictionsOnInsecureOrigin. Si totes dues polítiques estan presents, OverrideSecurityRestrictionsOnInsecureOrigin substituirà aquesta.
+
+      Per obtenir més informació sobre els contexts segurs, consulta https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="8942616385591203339">Aquesta política controla si es pot mostrar el consentiment de sincronització quan s'inicia la sessió per primera vegada. Si mai no es necessitarà el consentiment de sincronització per a l'usuari, s'ha d'establir en "false".
       Si s'estableix en "false", no es mostrarà el consentiment de sincronització.
       Si s'estableix en "true", es podrà mostrar el consentiment de sincronització.</translation>
diff --git a/components/policy/resources/policy_templates_cs.xtb b/components/policy/resources/policy_templates_cs.xtb
index fc821fa8..455debf3 100644
--- a/components/policy/resources/policy_templates_cs.xtb
+++ b/components/policy/resources/policy_templates_cs.xtb
@@ -33,6 +33,17 @@
           Pokud je toto nastavení vypnuto nebo není nakonfigurováno, hostitel vzdálené pomoci poběží v kontextu uživatele a vzdálení uživatelé na počítači nebudou moci provádět interakci s okny, která vyžadují zvýšená oprávnění.</translation>
 <translation id="1096105751829466145">Výchozí poskytovatel vyhledávání</translation>
 <translation id="1099282607296956954">Aktivace izolace webů u všech webů</translation>
+<translation id="1100570158310952027">
+      Tato zásada určuje seznam zdrojů (adres URL) nebo vzorů názvů hostitelů (například „*.example.com“), na které se nebudou vztahovat bezpečnostní omezení nezabezpečených zdrojů.
+
+      Cílem je umožnit organizacím nastavit seznam povolených zdrojů pro starší aplikace, do kterých nelze implementovat protokol TLS, nebo nastavit zkušební server pro vývoj interních webových stránek, aby vývojáři mohli testovat funkce, které vyžadují zabezpečené kontexty, aniž by na testovacím serveru museli implementovat protokol TLS. Tato zásada také zabrání označení zdroje jako nezabezpečeného v omniboxu.
+
+      Nastavení seznamu adres URL v této zásadě má stejný dopad jako nastavení příznaku příkazového řádku --unsafely-treat-insecure-origin-as-secure na čárkami oddělený seznam stejných adres URL. Je-li nastavena tato zásada, bude jí příznak příkazového řádku přepsán.
+
+      Pokud je nastavená zásada UnsafelyTreatInsecureOriginAsSecure, tato zásada ji přepíše.
+
+      Další informace o bezpečných kontextech najdete na stránce https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Obslužné nástroje protokolů nastavené pomocí této zásady se nepoužívají při zpracovávání zpráv Intent systému Android.</translation>
 <translation id="1118093128235245168">Povolit webům žádat uživatele o udělení přístupu k připojenému zařízení USB</translation>
 <translation id="1128903365609589950">Slouží ke konfiguraci adresáře, který bude <ph name="PRODUCT_NAME" /> používat k ukládání souborů do mezipaměti na disku.
@@ -79,6 +90,7 @@
       Pokud tato zásada není nastavena nebo je nastavena na hodnotu false, v protokolu TLS nebudou povoleny šifrovací sady RC4. Nastavením této zásady na hodnotu true je možné zajistit kompatibilitu se zastaralým serverem. Toto nastavení by však mělo být použito pouze jako dočasné nouzové opatření a server by měl být překonfigurován.</translation>
 <translation id="1297182715641689552">Použít skript proxy serveru ve formátu PAC</translation>
 <translation id="1304973015437969093">ID aplikací/rozšíření a adresy URL aktualizací, které se mají nainstalovat na pozadí</translation>
+<translation id="1307454923744766368">Vzory zdrojů nebo názvů hostitelů, na které se nemají vztahovat omezení ohledně nezabezpečených zdrojů.</translation>
 <translation id="1313457536529613143">Určuje, o kolik procent bude prodloužena prodleva ztmavení obrazovky, když je v případě ztmavené obrazovky nebo záhy po vypnutí obrazovky zaznamenána aktivita uživatele.
 
 Pokud je tato zásada nastavena, udává procento, o které bude prodloužena prodleva ztmavení obrazovky, když je v případě ztmavené obrazovky nebo záhy po vypnutí obrazovky zaznamenána aktivita uživatele. Při prodloužení prodlevy ztmavení budou prodlouženy i prodlevy vypnutí, uzamčení obrazovky a nečinnosti tak, aby mezi nimi a prodlevou ztmavení zůstala stejná doba.
@@ -90,6 +102,11 @@
 <translation id="1327466551276625742">Povolit zobrazení výzvy ke konfiguraci sítě v režimu offline</translation>
 <translation id="1330145147221172764">Povolit softwarovou klávesnici</translation>
 <translation id="13356285923490863">Název zásady</translation>
+<translation id="1352174694615491349">Tato zásada umožňuje slučování připojení HTTP/2 při použití certifikátů klienta. Aby připojení bylo možné sloučit, musí název hostitele potenciálního nového připojení i název hostitele existujícího připojení odpovídat alespoň jednomu ze vzorů zadaných v této zásadě. Tato zásada je seznam hostitelů ve formátu filtru URLBlacklist: „example.com“ odpovídá doméně „example.com“ a všem subdoménám (např. „sub.example.com“), „.example.net“ však odpovídá pouze doméně „example.net“.
+
+      Slučování požadavků pro různé hostitele přes připojení, která používají certifikáty klientů, může vést k problémům se zabezpečením a ochranou soukromí, protože bude u všech požadavků použita ambientní autorita i v případě, že to uživatel výslovně nepovolil. Tato zásada je dočasná a v budoucím vydání bude odstraněna. Viz https://crbug.com/855690.
+
+      Je-li tato zásada ponechána nenastavená, použije se výchozí chování, při němž slučování připojení HTTP/2, která používají certifikáty klienta, není povoleno.</translation>
 <translation id="1353966721814789986">Stránky otevírané při spuštění</translation>
 <translation id="1359553908012294236">Pokud je tato zásada nastavena na hodnotu True nebo nastavena není, prohlížeč <ph name="PRODUCT_NAME" /> povolí přihlášení hosta. Přihlášení hosta v prohlížeči <ph name="PRODUCT_NAME" /> jsou profily, ve kterých jsou všechna okna v anonymním režimu.
 
@@ -170,6 +187,7 @@
 <translation id="1583248206450240930">Ve výchozím nastavení používat plugin <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="1599424828227887013">Aktivovat izolaci webů u určených zdrojů na zařízeních Android</translation>
 <translation id="1608755754295374538">Adresy URL, kterým bude udělen přístup pro záznam zvuku bez zobrazení výzvy</translation>
+<translation id="1615221548356595305">Pro tyto hostitele povolit slučování připojení HTTP/2 i při použití certifikátů klienta</translation>
 <translation id="1617235075406854669">Aktivovat smazání historie prohlížeče a stahování</translation>
 <translation id="163200210584085447">Vzory v tomto seznamu budou porovnány s žádající adresou URL. Pokud bude nalezena shoda, bude na přihlašovacích stránkách SAML udělen přístup k zařízením pro záznam videa. Pokud shoda nalezena nebude, přístup bude automaticky odepřen. Vzory se zástupnými znaky nejsou povoleny.</translation>
 <translation id="1634989431648355062">Povolit plugin <ph name="FLASH_PLUGIN_NAME" /> na těchto webech</translation>
@@ -1153,7 +1171,6 @@
       Pokud tuto zásadu ponecháte nenastavenou, bude shromažďování anonymizovaných dat zapnuto, ale uživatel to bude moci změnit.</translation>
 <translation id="4250680216510889253">Ne</translation>
 <translation id="4261820385751181068">Jazyk přihlašovací obrazovky zařízení</translation>
-<translation id="4264607809747169568">Ovládá dostupnost sdílených síťových složek pro Chrome OS</translation>
 <translation id="427220754384423013">Určuje, které tiskárny uživatel může používat.
 
 Tato zásada se použije, jen pokud je v zásadě <ph name="PRINTERS_WHITELIST" /> vybrána možnost <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1312,6 +1329,7 @@
       Je-li tato zásada aktivována, budou weby moci zároveň provádět navigaci a otevírat nová okna/karty.
       Pokud je tato zásada zakázána nebo není nastavena, budou mít weby současné provádění navigace a otevírání nových oken/karet zakázáno.</translation>
 <translation id="4680961954980851756">Aktivovat Automatické vyplňování</translation>
+<translation id="4703402283970867140">Povolit chytrému modelu ztmavování prodloužit dobu do ztmavení obrazovky</translation>
 <translation id="4722122254122249791">Aktivace izolace webů u určených zdrojů</translation>
 <translation id="4722399051042571387">Pokud je tato zásada nastavena na hodnotu false, uživatelé nebudou moci nastavit PIN, který je slabý a lze jej snadno uhodnout.
 
@@ -1539,13 +1557,6 @@
 
           Pokud tuto zásadu nenastavíte, použije se zásada AskNotifications a uživatelé ji budou moci změnit.</translation>
 <translation id="538108065117008131">Umožňuje pluginu <ph name="PRODUCT_FRAME_NAME" /> zpracovávat následující typy obsahu.</translation>
-<translation id="5391363090783552279">Je-li tato zásada nastavena na hodnotu true, bude se <ph name="PRODUCT_NAME" /> připojovat k zařízením Cast na všech IP adresách, nikoliv pouze na soukromých adresách RFC1918/RFC4913.
-
-          Je-li tato zásada nastavena na hodnotu false, bude se <ph name="PRODUCT_NAME" /> připojovat pouze k zařízením Cast na soukromých adresách RFC1918/RFC4913.
-
-          Pokud tato zásada není nastavena, bude se <ph name="PRODUCT_NAME" /> připojovat pouze k zařízením Cast na soukromých adresách RFC1918/RFC4913 s výjimkou případů, kdy je aktivována funkce CastAllowAllIPs.
-
-          Je-li zásada EnableMediaRouter nastavena na hodnotu false, hodnoty této zásady se nijak neprojeví.</translation>
 <translation id="5392172595902933844">Informace o stavu systému Android se odesílají zpět na server.
 
       Je-li tato zásada nastavena na hodnotu False nebo nenastavena, nebudou hlášeny žádné informace o stavu.
@@ -2104,6 +2115,10 @@
 <translation id="6943577887654905793">Název nastavení v systémech Mac/Linux:</translation>
 <translation id="69525503251220566">Parametr poskytující funkci vyhledávání podle obrázku pro výchozího poskytovatele vyhledávání</translation>
 <translation id="6956272732789158625">Nepovolit žádnému webu generovat klíče</translation>
+<translation id="6965859329738616662">Udává, zda chytrý model ztmavování může prodloužit dobu do ztmavení obrazovky.
+
+      Když se má obrazovka ztmavit, chytrý model ztmavování posoudí, zda by se ztmavení obrazovky nemělo odložit. Pokud chytrý model ztmavování ztmavení obrazovky odloží, prodlouží se tím doba do ztmavení obrazovky. Prodlevy vypnutí obrazovky, uzamčení obrazovky a nečinnosti se v tomto případě upraví tak, aby mezi nimi a prodlevou ztmavení zůstala původně nakonfigurovaná doba.
+      Pokud je tato zásada nastavená na hodnotu True nebo není nastavená, bude chytrý model ztmavování zapnut a bude mít povoleno prodloužit dobu do ztmavení obrazovky. Pokud je tato zásada nastavená na hodnotu False, chytrý model ztmavování na ztmavení obrazovky nebude mít vliv.</translation>
 <translation id="6982028490425791294">
       Je-li tato zásada nastavena na hodnotu true, má <ph name="PRODUCT_NAME" /> povoleno shromažďovat protokoly událostí WebRTC ze služeb Google (např. Google Meet) a nahrávat je do Googlu.
 
@@ -2546,6 +2561,13 @@
 <translation id="7980227303582973781">Bez zvláštních omezení</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Otočit obrazovku o 0 stupňů</translation>
+<translation id="8033913082323846868">Podpora této zásada byla ve verzi M70 ukončena. Použijte namísto ní zásady AutofillAddressEnabled a AutofillCreditCardEnabled.
+
+      Aktivuje v aplikaci <ph name="PRODUCT_NAME" /> funkci Automatické vyplňování a umožní uživatelům automaticky vyplňovat pole webových formulářů pomocí dříve uložených informací (například adres nebo čísel platebních karet).
+
+      Pokud toto nastavení deaktivujete, uživatelé nebudou mít k funkci Automatické vyplňování přístup.
+
+      Pokud toto nastavení aktivujete nebo nenastavíte žádnou hodnotu, zůstane funkce Automatické vyplňování pod kontrolou uživatelů. Budou moci nakonfigurovat profily této funkce a podle vlastního uvážení ji zapínat nebo vypínat.</translation>
 <translation id="8044493735196713914">Hlásit režim spuštění zařízení</translation>
 <translation id="8050080920415773384">Nativní tisk</translation>
 <translation id="8059164285174960932">Adresa URL, u které by klienti vzdáleného připojení měli obdržet ověřovací token</translation>
@@ -2868,6 +2890,18 @@
 
       Pokud tato zásada není nastavena, předpokládá se použití možnosti <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Od verze M69 tato zásada již není podporována. Použijte namísto ní zásadu OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Tato zásada určuje seznam zdrojů (adres URL) nebo vzorů názvů hostitelů (například „*.example.com“), na které se nebudou vztahovat bezpečnostní omezení nezabezpečených zdrojů.
+
+      Cílem je umožnit organizacím vytvořit seznam povolených zdrojů pro starší aplikace, do kterých nelze implementovat protokol TLS, nebo nastavit zkušební server pro vývoj interních webových stránek, aby vývojáři mohli testovat funkce, které vyžadují zabezpečené kontexty, aniž by na testovacím serveru museli implementovat protokol TLS. Tato zásada také zabrání označení zdroje jako nezabezpečeného v omniboxu.
+
+      Nastavení seznamu adres URL v této zásadě má stejný dopad jako nastavení příznaku příkazového řádku --unsafely-treat-insecure-origin-as-secure na čárkami oddělený seznam stejných adres URL. Je-li nastavena tato zásada, bude jí příznak příkazového řádku přepsán.
+
+      Podpora této zásady byla ve verzi M69 ukončena a byla nahrazena zásadou OverrideSecurityRestrictionsOnInsecureOrigin. Pokud jsou nastaveny obě tyto zásady, zásada OverrideSecurityRestrictionsOnInsecureOrigin tuto zásadu přepíše.
+
+      Další informace o bezpečných kontextech najdete na stránce https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="8942616385591203339">Tato zásada určuje, zda je možné uživateli při prvním přihlášení zobrazit žádost o souhlas se synchronizací. Pokud žádost o souhlas se synchronizací u uživatele není potřeba, měla by být nastavena na hodnotu false.
       Pokud je nastavena na hodnotu false, žádost o souhlas se synchronizací se nebude zobrazovat.
       Pokud je nastavena na hodnotu true nebo není nastavena, žádost o souhlas se synchronizací se může zobrazit.</translation>
diff --git a/components/policy/resources/policy_templates_da.xtb b/components/policy/resources/policy_templates_da.xtb
index 7a3bab4d..89ec277 100644
--- a/components/policy/resources/policy_templates_da.xtb
+++ b/components/policy/resources/policy_templates_da.xtb
@@ -33,6 +33,17 @@
           Hvis denne indstilling er deaktiveret eller ikke er konfigureret, køres den eksterne hjælpehost i brugerens kontekst, og eksterne brugere kan ikke interagere med vinduer med administratorrettigheder på skrivebordet.</translation>
 <translation id="1096105751829466145">Standardsøgemaskine</translation>
 <translation id="1099282607296956954">Aktivér isolering af websites for alle websites</translation>
+<translation id="1100570158310952027">
+      Denne politik angiver en liste over kilder (webadresser) eller mønstre (f.eks. "*example.com") for hostnames, hvor sikkerhedsbegrænsninger på usikre kilder ikke anvendes.
+
+Hensigten er at give organisationer mulighed for at angive hvidlistekilder for forældede apps, der ikke kan implementere TLS, eller konfigurere en testserver til intern webudvikling, så deres udviklere kan teste funktioner, der kræver sikre kontekster, uden at skulle anvende TLS på testserveren. Denne politik forhindrer desuden, at kilden mærkes som "Ikke sikker" i omnifeltet.
+
+Angivelse af en liste over webadresser i denne politik har den samme effekt som indstilling af kommandolinjemarkeringen "--unsafely-treat-insecure-origin-as-secure" på en kommasepareret liste over de samme webadresser. Hvis politikken er angivet, tilsidesætter den kommandolinjemarkeringen.
+
+Denne politik tilsidesætter UnsafelyTreatInsecureOriginAsSecure, hvis den er til stede.
+
+Du kan få flere oplysninger om sikre kontekster på https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">De protokolhandlere, der er angivet via denne politik, bruges ikke til håndtering af Android-formål.</translation>
 <translation id="1118093128235245168">Tillad, at websites anmoder en bruger om adgang til en tilsluttet USB-enhed i nærheden.</translation>
 <translation id="1128903365609589950">Konfigurerer det indeks, som <ph name="PRODUCT_NAME" /> anvender til at gemme cachelagrede filer på disken.
@@ -80,6 +91,7 @@
       Hvis politikken ikke er angivet eller er angivet til Falsk, aktiveres RC4-krypteringsprogrammer i TLS ikke. Alternativt kan den angives til Sandt for at bevare kompatibiliteten med en forældet server. Dette er en midlertidig løsning, og serveren bør rekonfigureres.</translation>
 <translation id="1297182715641689552">Brug et .pac-proxyscript</translation>
 <translation id="1304973015437969093">Udvidelses-/app-id'er og opdateringswebadresser skal installeres ubemærket</translation>
+<translation id="1307454923744766368">Kilder eller mønstre for hostname, hvor begrænsninger på usikre kilder ikke bør anvendes</translation>
 <translation id="1313457536529613143">Angiver den procentdel, som nedtoningsforsinkelsen på skærmen skaleres, når der observeres brugeraktivitet, mens skærmen er nedtonet, eller umiddelbart efter skærmen slukkes.
 
           Hvis denne politik indstilles, angiver den den procentdel, som nedtoningsforsinkelsen på skærmen skaleres, når der observeres brugeraktivitet, mens skærmen er nedtonet, eller umiddelbart efter skærmen slukkes. Når nedtoningsforsinkelsen skaleres, tilpasses forsinkelsen for skærmsluk, skærmlås og inaktivitet for at bibeholde samme afstande fra nedtoningsforsinkelsen på skærmen som i den oprindelige konfiguration.
@@ -91,6 +103,11 @@
 <translation id="1327466551276625742">Aktivér meddelelse om netværkskonfiguration, når du er offline</translation>
 <translation id="1330145147221172764">Aktivér skærmtastatur</translation>
 <translation id="13356285923490863">Navn på politik</translation>
+<translation id="1352174694615491349">Denne politik tillader sammenkædning af HTTP/2-forbindelser, når klientcertifikater er i brug. Både den potentielle nye forbindelses hostname og en eksisterende forbindelses hostname skal matche et eller flere mønstre, der beskrives i denne politik, for at kunne sammenkædes. Politikken er en liste over hosts, der bruger filterformatet URLBlacklist: "example.com" matcher "example.com" og alle underdomæner (f.eks. "under.example.com"), mens ".example.net" nøjagtigt matcher "example.net".
+
+Anmodninger om sammenkædning til forskellige hosts via forbindelser, der bruger klientcertifikater, kan medføre problemer med sikkerhed og fortrolighed, da ambient authority overføres til alle anmodninger, selv om brugeren ikke specifikt har godkendt dette. Denne politik er midlertidig og fjernes i en fremtidig udgivelse. Se https://crbug.com/855690.
+
+Hvis denne politik ikke er angivet, benyttes standardreglen, hvor ingen HTTP/2-forbindelser får tilladelse til sammenkædning med forbindelser ved hjælp af klientcertifikater.</translation>
 <translation id="1353966721814789986">Startsider</translation>
 <translation id="1359553908012294236">Hvis denne politik er angivet til sand eller ikke er konfigureret, aktiverer <ph name="PRODUCT_NAME" /> gæstelogins. Gæstelogins er <ph name="PRODUCT_NAME" />-profiler, hvor alle vinduer er i inkognitotilstand.
 
@@ -182,6 +199,7 @@
 <translation id="1583248206450240930">Brug <ph name="PRODUCT_FRAME_NAME" /> som standard</translation>
 <translation id="1599424828227887013">Aktivér isolering af websites for bestemte websites på Android-enheder</translation>
 <translation id="1608755754295374538">Webadresser, der får adgang til lydoptagelsesenheder, uden at du skal give tilladelse hertil</translation>
+<translation id="1615221548356595305">Tillad sammenkædning af HTTP/2-forbindelser for disse hosts, selv når der anvendes klientcertifikater</translation>
 <translation id="1617235075406854669">Aktivér sletning af browser- og downloadhistorik</translation>
 <translation id="163200210584085447">Mønstre på denne liste sammenlignes med sikkerhedskilden
       for den anmodede webadresse.  Hvis der findes et match, gives der
@@ -1162,7 +1180,6 @@
       Hvis politikken ikke konfigureres, aktiveres den anonyme dataindsamling fra indtastede webadresser, men brugeren kan ændre den.</translation>
 <translation id="4250680216510889253">Nej</translation>
 <translation id="4261820385751181068">Landestandard for loginskærme på enheder</translation>
-<translation id="4264607809747169568">Styrer tilgængelighed af fildeling via netværk for Chrome OS</translation>
 <translation id="427220754384423013">Angiver, hvilke printere en bruger kan anvende.
 
       Denne politik anvendes kun, hvis <ph name="PRINTERS_WHITELIST" /> er valgt for <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1313,6 +1330,7 @@
       Hvis politikken er aktiveret, kan websites navigere og åbne nye vinduer/faner samtidigt.
       Hvis politikken er deaktiveret eller ikke er angivet, kan websites ikke navigere eller åbne nye vinduer/faner samtidigt.</translation>
 <translation id="4680961954980851756">Aktiver AutoFyld</translation>
+<translation id="4703402283970867140">Aktivér smart nedtoningsmodel for at forlænge den tid, der går, inden skærmen nedtones</translation>
 <translation id="4722122254122249791">Aktivér isolering af websites for bestemte websites</translation>
 <translation id="4722399051042571387">Hvis den er angivet til falsk, kan brugerne ikke angive pinkoder, der er svage og nemme at gætte.
 
@@ -1523,13 +1541,6 @@
 <translation id="5370279767682621504">Aktivér understøttelse af HTTP/0.9 på ikke-standard-porte</translation>
 <translation id="5378985487213287085">Giver dig mulighed for at angive, om websites må vise underretninger på skrivebordet. Visning af underretninger på skrivebordet kan tillades som standard, nægtes som standard, eller brugeren kan blive spurgt, hver gang et website ønsker at vise underretninger på skrivebordet. Hvis denne politik ikke angives, anvendes "AskNotifications", og brugeren vil kunne ændre det.</translation>
 <translation id="538108065117008131">Tillad, at <ph name="PRODUCT_FRAME_NAME" /> håndterer følgende indholdstyper.</translation>
-<translation id="5391363090783552279">Hvis politikken er angivet som Sand, opretter <ph name="PRODUCT_NAME" /> forbindelse til Cast-enheder på alle IP-adresser og ikke kun på private adresser af typen RFC1918/RFC4913.
-
-          Hvis politikken er angivet som Falsk, opretter <ph name="PRODUCT_NAME" /> kun forbindelse til Cast-enheder på private adresser af typen RFC1918/RFC4913.
-
-          Hvis politikken ikke er angivet, opretter <ph name="PRODUCT_NAME" /> kun forbindelse til Cast-enheder på private adresser af typen RFC1918/RFC4913, medmindre funktionen CastAllowAllIPs er aktiveret.
-
-          Hvis politikken "EnableMediaRouter" er angivet som Falsk, har værdien for denne politik ingen virkning.</translation>
 <translation id="5392172595902933844">Der sendes oplysninger om status for Android tilbage til
       serveren.
 
@@ -2076,6 +2087,10 @@
 <translation id="6943577887654905793">Præferencenavn for Mac/Linux:</translation>
 <translation id="69525503251220566">Parameter, der leverer funktion til billedsøgning i standardsøgemaskinen</translation>
 <translation id="6956272732789158625">Tillad ikke, at websites anvender nøglegenerering</translation>
+<translation id="6965859329738616662">Angiver, om det er tilladt at bruge en smart nedtoningsmodel for at forlænge den tid, der går, inden skærmen nedtones.
+
+Når skærmen er ved at blive nedtonet, vurderer den smarte nedtoningsmodel, om nedtoningen af skærmen skal udskydes. Hvis den smarte nedtoningsmodel udskyder nedtoningen af skærmen, forlænges den tid, der går, inden skærmen nedtones. I dette tilfælde justeres skærmlåsen og inaktivitetsforsinkelsen, så de bevarer den samme afstand til skærmnedtoningsforsinkelsen som oprindeligt konfigureret.
+Hvis denne politik er angivet som sand eller ikke angives, aktiveres den smarte nedtoningsmodel, som får tilladelse til at forlænge den tid, der går, inden skærmen nedtones. Hvis denne politik er angivet som falsk, har den smarte nedtoningsmodel ikke indflydelse på skærmnedtoning.</translation>
 <translation id="6982028490425791294">
       Hvis politikken er angivet som sand, har <ph name="PRODUCT_NAME" /> tilladelse til at indsamle WebRTC-hændelseslogfiler fra Google-tjenester (f.eks. Google Meet) og uploade de pågældende logfiler til Google.
 
@@ -2501,6 +2516,13 @@
 <translation id="7980227303582973781">Ingen særlige begrænsninger</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Roter skærmen 0 grader</translation>
+<translation id="8033913082323846868">Denne politik er udfaset i M70. Brug AutofillAddressEnabled og AutofillCreditCardEnabled i stedet for.
+
+Aktiverer funktionen AutoFyld i <ph name="PRODUCT_NAME" /> og giver brugerne mulighed for automatisk at udfylde webformularer med oplysninger, der tidligere er gemt, såsom oplysninger om adresser og kreditkort.
+
+Hvis du deaktiverer denne indstilling, er AutoFyld ikke tilgængelig for brugerne.
+
+Hvis du aktiverer denne indstilling eller ikke konfigurerer en værdi, forbliver AutoFyld under brugerens kontrol. Dette giver brugerne mulighed for at konfigurere AutoFyld-profiler og for at aktivere og deaktivere AutoFyld efter eget valg.</translation>
 <translation id="8044493735196713914">Rapportér genstart på enheden</translation>
 <translation id="8050080920415773384">Indbygget udskrivning</translation>
 <translation id="8059164285174960932">Den webadresse, hvor klienten til fjernadgang skal hente deres godkendelsestoken</translation>
@@ -2818,6 +2840,18 @@
 
       Hvis politikken ikke angives, anvendes <ph name="PRINTERS_ALLOW_ALL" /> som standard.
       </translation>
+<translation id="8938932171964587769">Udfaset i M69. Brug OverrideSecurityRestrictionsOnInsecureOrigin i stedet for.
+
+Denne politik angiver en liste over kilder (webadresser) eller mønstre (f.eks. "*example.com") for hostnames, hvor sikkerhedsbegrænsninger på usikre kilder ikke anvendes.
+
+Hensigten er at give organisationer mulighed for at angive hvidlistekilder for forældede apps, der ikke kan implementere TLS, eller konfigurere en testserver til intern webudvikling, så deres udviklere kan teste funktioner, der kræver sikre kontekster, uden at skulle anvende TLS på testserveren. Denne politik forhindrer desuden, at kilden mærkes som "Ikke sikker" i omnifeltet.
+
+Angivelse af en liste over webadresser i denne politik har den samme effekt som indstilling af kommandolinjemarkeringen "--unsafely-treat-insecure-origin-as-secure" på en kommasepareret liste over de samme webadresser. Hvis politikken er angivet, tilsidesætter den kommandolinjemarkeringen.
+
+Denne politik er udfaset i M69 til fordel for OverrideSecurityRestrictionsOnInsecureOrigin. Hvis begge politikker er til stede, tilsidesættes denne politik af OverrideSecurityRestrictionsOnInsecureOrigin.
+
+Du kan få flere oplysninger om sikre kontekster på https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Denne politik styrer, hvorvidt samtykke til synkronisering kan vises til brugeren ved første login. Den bør angives som falsk, hvis brugeren aldrig behøver at bruge samtykke til synkronisering.
       Hvis den angives som falsk, vises samtykke til synkronisering ikke.
       Hvis den angives som sand eller slet ikke angives, vises samtykke til synkronisering.</translation>
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index c1aa982..525a484 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -33,6 +33,28 @@
           Ist diese Einstellung deaktiviert oder nicht konfiguriert, läuft der Host für Remote-Unterstützung nur im Nutzerbereich. Remote-Nutzer können nicht mit geöffneten Fenstern auf dem Desktop arbeiten.</translation>
 <translation id="1096105751829466145">Standardsuchmaschine</translation>
 <translation id="1099282607296956954">Website-Isolierung für jede Website aktivieren</translation>
+<translation id="1100570158310952027">
+      Mit dieser Richtlinie wird eine Liste von Quellen (URLs) oder Hostnamenmustern
+      wie "*.example.com" festgelegt, für die keine Sicherheitsbeschränkungen für
+      unsichere Quellen gelten.
+
+      Auf diese Weise können Organisationen Quellen für ältere Anwendungen,
+      die kein TLS bereitstellen können, auf die weiße Liste setzen oder einen
+      Testserver für die interne Webentwicklung einrichten, damit die Entwickler
+      Funktionen testen können, die einen sicheren Kontext erfordern, ohne TLS
+      auf dem Testserver bereitstellen zu müssen. Außerdem wird mit dieser Richtlinie
+      verhindert, dass die Quelle in der Omnibox als "Nicht sicher" gekennzeichnet wird.
+
+      Das Festlegen einer Liste von URLs in dieser Richtlinie hat den gleichen Effekt wie
+      das Festlegen des Befehlszeilenparameters "--unsafely-treat-insecure-origin-as-secure"
+      für eine durch Kommas getrennte Liste mit denselben URLs. Wenn diese Richtlinie
+      konfiguriert ist, wird der Befehlszeilenparameter überschrieben.
+
+      Mit dieser Richtlinie wird "UnsafelyTreatInsecureOriginAsSecure" überschrieben, sofern vorhanden.
+
+      Weitere Informationen zu sicheren Kontexten finden Sie unter
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Die über diese Richtlinie festgelegten Protokoll-Handler werden bei der Verarbeitung von Android-Intents nicht verwendet.</translation>
 <translation id="1118093128235245168">Websites dürfen den Nutzer um Zugriff auf ein angeschlossenes USB-Gerät bitten</translation>
 <translation id="1128903365609589950">Konfiguriert das Verzeichnis, in dem die Cache-Dateien von <ph name="PRODUCT_NAME" /> auf dem Datenträger gespeichert werden.
@@ -80,6 +102,8 @@
       Wenn die Richtlinie nicht konfiguriert oder auf "false" festgelegt ist, werden RC4-Verschlüsselungssammlungen in TLS nicht aktiviert. Sie kann auf "true" gestellt werden, um die Kompatibilität mit veralteten Servern zu gewährleisten. Hierbei handelt es sich jedoch um eine provisorische Maßnahme. Der Server sollte neu konfiguriert werden.</translation>
 <translation id="1297182715641689552">PAC-Proxy-Skript verwenden</translation>
 <translation id="1304973015437969093">Ohne Nutzereingriff zu installierende Erweiterungs-/App-IDs und Aktualisierungs-URLs</translation>
+<translation id="1307454923744766368">Quellen oder Hostnamenmuster, für die Einschränkungen für
+      unsichere Quellen nicht gelten sollen</translation>
 <translation id="1313457536529613143">Hiermit wird der Prozentsatz angegeben, um den die Spanne für die Bildschirmabdunkelung skaliert wird, wenn während der Bildschirmabdunkelung oder kurz nach der Bildschirmabschaltung Nutzeraktivität festgestellt wird.
 
           Wenn diese Richtlinie konfiguriert ist, wird damit der Prozentsatz für die Skalierung der Spanne für die Bildschirmabdunkelung angegeben, wenn während der Bildschirmabdunkelung oder kurz nach der Bildschirmabschaltung Nutzeraktivität festgestellt wird. Sollte die Abdunkelungsspanne skaliert werden, wird die Spanne für die Abschaltung und Sperre des Bildschirms sowie die Inaktivität so angepasst, dass die Abstände der ursprünglichen Konfiguration proportional beibehalten werden.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">Eingabeaufforderung zur Netzwerkkonfiguration im Offlinemodus aktivieren</translation>
 <translation id="1330145147221172764">Bildschirmtastatur aktivieren</translation>
 <translation id="13356285923490863">Richtlinienname</translation>
+<translation id="1352174694615491349">Mit dieser Richtlinie wird das Zusammenführen von HTTP/2-Verbindungen zugelassen, wenn Clientzertifikate verwendet werden. Dazu müssen der Hostname der potenziellen neuen Verbindung und der Hostname einer vorhandenen Verbindung mit einem oder mehreren Mustern übereinstimmen, die durch diese Richtlinie beschrieben werden. Die Richtlinie ist eine Liste von Hosts unter Verwendung des URLBlacklist-Filterformats: "example.com" entspricht "example.com" sowie allen Subdomains wie "sub.example.com", während ".example.net" nur "example.net" entspricht.
+
+      Anfragen zur Zusammenführung an unterschiedliche Hosts über Verbindungen, die Clientzertifikate verwenden, kann zu Sicherheits- und Datenschutzproblemen führen, da auf alle Anfragen das Prinzip der "Ambient Authority" angewendet wird, auch wenn der Nutzer dies nicht ausdrücklich autorisiert hat. Diese Richtlinie ist vorübergehend und wird in einer zukünftigen Version entfernt. Weitere Informationen finden Sie unter https://crbug.com/855690.
+
+      Wenn diese Richtlinie nicht konfiguriert ist, wird das Standardverhalten angewendet und das Zusammenführen von HTTP/2-Verbindungen für Verbindungen, die Clientzertifikate verwenden, ist nicht zulässig.</translation>
 <translation id="1353966721814789986">"Beim Start"-Seiten</translation>
 <translation id="1359553908012294236">Wenn für diese Richtlinie "true" festgelegt oder wenn sie nicht konfiguriert ist, sind Gastanmeldungen in <ph name="PRODUCT_NAME" /> möglich. Anmeldungen als Gast entsprechen <ph name="PRODUCT_NAME" />-Profilen, in denen sich alle Fenster im Inkognitomodus befinden.
 
@@ -175,6 +204,7 @@
 <translation id="1583248206450240930">Standardmäßig <ph name="PRODUCT_FRAME_NAME" /> verwenden</translation>
 <translation id="1599424828227887013">Website-Isolierung für angegebene Ursprünge auf Android-Geräten aktivieren</translation>
 <translation id="1608755754295374538">URLs, denen ohne Nachfrage Zugriff auf Audioaufnahmegeräte gestattet wird</translation>
+<translation id="1615221548356595305">Zusammenführen von HTTP/2-Verbindungen für diese Hosts zulassen, auch wenn Clientzertifikate verwendet werden</translation>
 <translation id="1617235075406854669">Löschen des Browserverlaufs und des Downloadverlaufs aktivieren</translation>
 <translation id="163200210584085447">Muster in dieser Liste werden mit der Sicherheitsherkunft
       der anfragenden URL abgeglichen. Bei einer Übereinstimmung wird der Zugriff
@@ -1145,7 +1175,6 @@
       Wenn diese Richtlinie nicht festgelegt wird, ist die anonymisierte URL-Datenerfassung aktiviert, aber der Nutzer kann diese Einstellung ändern.</translation>
 <translation id="4250680216510889253">Nein</translation>
 <translation id="4261820385751181068">Sprache der Anmeldeseite</translation>
-<translation id="4264607809747169568">Steuert die Verfügbarkeit von Netzwerkfreigaben unter Chrome OS</translation>
 <translation id="427220754384423013">Gibt die Drucker an, die ein Nutzer verwenden kann.
 
       Diese Richtlinie wird nur verwendet, wenn <ph name="PRINTERS_WHITELIST" /> für <ph name="BULK_PRINTERS_ACCESS_MODE" /> ausgewählt wurde.
@@ -1296,6 +1325,7 @@
       Wenn diese Richtlinie aktiviert ist, dürfen Websites gleichzeitig mit der Navigation neue Fenster oder Tabs öffnen.
       Wenn diese Richtlinie deaktiviert oder nicht festgelegt ist, dürfen Websites neue Fenster oder Tabs nicht gleichzeitig mit der Navigation öffnen.</translation>
 <translation id="4680961954980851756">AutoFill aktivieren</translation>
+<translation id="4703402283970867140">Intelligentem Dimmmodell erlauben, den Zeitraum bis zum Dimmen des Bildschirms zu verlängern</translation>
 <translation id="4722122254122249791">Website-Isolierung für angegebene Ursprünge aktivieren</translation>
 <translation id="4722399051042571387">Wenn "false" eingestellt ist, können Nutzer keine schwache PIN festlegen, die leicht zu erraten ist.
 
@@ -1508,13 +1538,6 @@
 <translation id="5370279767682621504">HTTP/0.9-Unterstützung für nicht standardmäßige Ports aktivieren</translation>
 <translation id="5378985487213287085">Ermöglicht Ihnen festzulegen, ob Websites Desktop-Benachrichtigungen anzeigen dürfen. Das Anzeigen von Desktop-Benachrichtigungen kann entweder standardmäßig gestattet oder nicht gestattet werden oder auf Anfrage beim Nutzer geschehen. Wenn diese Richtlinie nicht konfiguriert ist, so kommt "AskNotifications" zum Einsatz, wobei dies vom Nutzer geändert werden kann.</translation>
 <translation id="538108065117008131">Verarbeitung der folgenden Inhaltstypen durch <ph name="PRODUCT_FRAME_NAME" /> zulassen</translation>
-<translation id="5391363090783552279">Wenn diese Richtlinie auf "true" gesetzt ist, stellt <ph name="PRODUCT_NAME" /> eine Verbindung zu Übertragungsgeräten unter allen IP-Adressen her, nicht nur zu jenen unter privaten RFC1918- oder RFC4913-Adressen.
-
-          Wenn diese Richtlinie auf "false" gesetzt ist, stellt <ph name="PRODUCT_NAME" /> lediglich eine Verbindung zu Übertragungsgeräten unter privaten RFC1918- und RFC4913-Adressen her.
-
-          Wenn diese Richtlinie nicht festgelegt und die Funktion "CastAllowAllIPs" deaktiviert ist, stellt <ph name="PRODUCT_NAME" /> lediglich eine Verbindung zu Übertragungsgeräten unter privaten RFC1918- und RFC4913-Adressen her.
-
-          Wenn die Richtlinie "EnableMediaRouter" auf "false" gesetzt ist, hat der Wert dieser Richtlinie keine Wirkung.</translation>
 <translation id="5392172595902933844">Informationen zum Status von Android werden an den Server
       zurückgesendet.
 
@@ -2070,6 +2093,10 @@
 <translation id="6943577887654905793">Bevorzugter Mac-/Linux-Name:</translation>
 <translation id="69525503251220566">Parameter für Funktion zur bildgesteuerten Suche für Standardsuchanbieter</translation>
 <translation id="6956272732789158625">Schlüsselgenerierung für keine Website zulassen</translation>
+<translation id="6965859329738616662">Gibt an, ob der Zeitraum bis zum Dimmen des Bildschirms durch ein intelligentes Dimmmodell verlängert werden kann.
+
+      Kurz vor dem Dimmen des Bildschirms prüft das intelligente Dimmmodell, ob der Vorgang verzögert werden sollte. Wenn das Dimmen des Bildschirms durch das Modell verzögert wird, wird damit der Zeitraum verlängert. In diesem Fall werden die Verzögerungen für das Ausschalten des Bildschirms, die Bildschirmsperre und die Inaktivität entsprechend angepasst, um die ursprünglich konfigurierten Abstände beizubehalten.
+      Ist die Richtlinie auf "true" festgelegt oder nicht konfiguriert, wird das intelligente Dimmmodell aktiviert und der Zeitraum bis zum Dimmen des Bildschirms kann durch das Modell verlängert werden. Wenn die Richtlinie auf "false" festgelegt ist, wird das Dimmen des Bildschirms durch das intelligente Dimmmodell nicht beeinflusst.</translation>
 <translation id="6982028490425791294">
       Wenn diese Richtlinie auf "true" gesetzt ist, darf <ph name="PRODUCT_NAME" /> WebRTC-Ereignisprotokolle aus Google-Diensten (z. B. Google Meet) speichern und die Protokolle bei Google hochladen.
 
@@ -2494,6 +2521,13 @@
 <translation id="7980227303582973781">Keine besonderen Einschränkungen</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Bildschirm um 0 Grad drehen</translation>
+<translation id="8033913082323846868">Diese Richtlinie wurde in M70 eingestellt, bitte verwenden Sie stattdessen "AutofillAddressEnabled" und "AutofillCreditCardEnabled".
+
+      Aktiviert die AutoFill-Funktion von <ph name="PRODUCT_NAME" /> und ermöglicht es Nutzern, Webformulare mit zuvor gespeicherten Informationen wie Adresse oder Kreditkartendaten ausfüllen zu lassen.
+
+      Wenn Sie diese Einstellung deaktivieren, können Nutzer die AutoFill-Funktion nicht verwenden.
+
+      Ist diese Einstellung aktiviert oder nicht konfiguriert, kann der Nutzer selbst entscheiden, ob er AutoFill nutzen möchte. Er kann dann AutoFill-Profile konfigurieren und AutoFill nach eigenem Ermessen aktivieren und deaktivieren.</translation>
 <translation id="8044493735196713914">Startmodus von Geräten melden</translation>
 <translation id="8050080920415773384">Natives Drucken</translation>
 <translation id="8059164285174960932">URL, unter der Remotezugriff-Clients ihr Authentifizierungs-Token abrufen sollten</translation>
@@ -2807,6 +2841,33 @@
 
       Wenn die Richtlinie nicht festgelegt wird, wird angenommen, dass <ph name="PRINTERS_ALLOW_ALL" /> ausgewählt ist.
       </translation>
+<translation id="8938932171964587769">Eingestellt in M69. Verwenden Sie stattdessen
+      "OverrideSecurityRestrictionsOnInsecureOrigin".
+
+      Mit dieser Richtlinie wird eine Liste von Quellen (URLs) oder Hostnamenmustern
+      wie "*.example.com" festgelegt, für die keine Sicherheitsbeschränkungen
+      für unsichere Quellen gelten.
+
+      Auf diese Weise können Organisationen Quellen für ältere Anwendungen,
+      die kein TLS bereitstellen können, auf die weiße Liste setzen oder einen
+      Testserver für die interne Webentwicklung einrichten, damit die Entwickler
+      Funktionen testen können, die einen sicheren Kontext erfordern, ohne TLS
+      auf dem Testserver bereitstellen zu müssen. Außerdem wird mit dieser Richtlinie
+      verhindert, dass die Quelle in der Omnibox als "Nicht sicher" gekennzeichnet wird.
+
+      Das Festlegen einer Liste von URLs in dieser Richtlinie hat den gleichen Effekt
+      wie das Festlegen des Befehlszeilenparameters "--unsafely-treat-insecure-origin-as-secure"
+      für eine durch Kommas getrennte Liste mit denselben URLs. Wenn die Richtlinie konfiguriert
+      ist, wird der Befehlszeilenparameter überschrieben.
+
+      Diese Richtlinie wurde in M69 zugunsten von
+      "OverrideSecurityRestrictionsOnInsecureOrigin" eingestellt. Wenn beide Richtlinien
+      vorhanden sind, wird diese Richtlinie durch "OverrideSecurityRestrictionsOnInsecureOrigin"
+      überschrieben.
+
+      Weitere Informationen zu sicheren Kontexten finden Sie unter
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="8942616385591203339">Mit dieser Richtlinie wird festgelegt, ob die Einwilligung zur Synchronisierung dem Nutzer bei der ersten Anmeldung angezeigt werden kann. Sie sollte auf "false" gesetzt werden, wenn vom Nutzer keine Einwilligung zur Synchronisierung eingeholt werden muss.
       Wenn diese Richtlinie auf "false" gesetzt ist, wird die Einwilligung zur Synchronisierung nicht angezeigt.
       Falls die Richtlinie auf "true" festgelegt oder nicht konfiguriert ist, kann die Einwilligung zur Synchronisierung angezeigt werden.</translation>
diff --git a/components/policy/resources/policy_templates_el.xtb b/components/policy/resources/policy_templates_el.xtb
index d4a8c62..2ddac28 100644
--- a/components/policy/resources/policy_templates_el.xtb
+++ b/components/policy/resources/policy_templates_el.xtb
@@ -33,6 +33,31 @@
           Εάν αυτή η ρύθμιση είναι απενεργοποιημένη ή μη διαμορφωμένη, ο κεντρικός υπολογιστής απομακρυσμένης βοήθειας θα λειτουργεί στο περιβάλλον του χρήστη και οι απομακρυσμένοι χρήστες δεν θα μπορούν να αλληλεπιδρούν με υπερυψωμένα παράθυρα στην επιφάνεια εργασίας.</translation>
 <translation id="1096105751829466145">Προεπιλεγμένος πάροχος αναζήτησης</translation>
 <translation id="1099282607296956954">Ενεργοποίηση Απομόνωσης ιστοτόπου για κάθε ιστότοπο</translation>
+<translation id="1100570158310952027">
+      Η πολιτική καθορίζει μια λίστα προελεύσεων (URL) ή μοτίβων ονόματος κεντρικού υπολογιστή (όπως
+      "*.example.com"), για την οποία δεν θα ισχύουν περιορισμοί ασφάλειας σε
+      μη ασφαλείς προελεύσεις.
+
+      Στόχος είναι να επιτρέπεται στους οργανισμούς να προσθέτουν προελεύσεις στη λίστα επιτρεπόμενων για εφαρμογές
+      παλαιού τύπου που δεν μπορούν να πραγματοποιήσουν ανάπτυξη TLS ή να ρυθμίσουν έναν διακομιστή προετοιμασίας
+      για εσωτερική ανάπτυξη ιστού, προκειμένου να μπορούν οι προγραμματιστές τους να ελέγχουν λειτουργίες
+      που απαιτούν ασφαλή περιβάλλοντα χωρίς να απαιτείται η ανάπτυξη TLS στον διακομιστή
+      προετοιμασίας. Αυτή η πολιτική θα αποτρέπει επίσης την επισήμανση της προέλευσης ως
+      "Μη ασφαλής" στο κύριο πλαίσιο.
+
+      Η ρύθμιση μιας λίστας URL σε αυτήν την πολιτική έχει την ίδια επίδραση με τη ρύθμιση
+      μιας μεταβλητής γραμμής εντολών "--unsafely-treat-insecure-origin-as-secure" σε μια
+      λίστα διαχωρισμένη με κόμματα, η οποία περιλαμβάνει τα ίδια URL. Εάν η πολιτική έχει οριστεί, θα
+      παρακάμψει τη μεταβλητή γραμμής εντολών.
+
+      Αυτή η πολιτική καταργείται στην έκδοση M69 και αντικαθίσταται από το
+      OverrideSecurityRestrictionsOnInsecureOrigin. Εάν είναι παρούσες
+      και οι δύο πολιτικές, το OverrideSecurityRestrictionsOnInsecureOrigin θα παρακάμψει αυτήν την
+      πολιτική.
+
+      Για περισσότερες πληροφορίες σχετικά με τα ασφαλή περιβάλλοντα, ανατρέξτε στη διεύθυνση
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Οι δείκτες χειρισμού πρωτοκόλλου που ορίστηκαν μέσω αυτής της πολιτικής δεν χρησιμοποιούνται κατά τον χειρισμό Android intent.</translation>
 <translation id="1118093128235245168">Να επιτρέπεται στους ιστοτόπους η υποβολή αιτημάτων παροχής πρόσβασης σε μια συνδεδεμένη συσκευή USB</translation>
 <translation id="1128903365609589950">Ρυθμίζει τον κατάλογο που θα χρησιμοποιεί το <ph name="PRODUCT_NAME" /> για την αποθήκευση προσωρινά αποθηκευμένων αρχείων στον δίσκο.
@@ -80,6 +105,8 @@
       Αν η πολιτική δεν έχει οριστεί ή οριστεί σε false, οι σουίτες κρυπτογράφησης RC4 στο TLS δεν θα ενεργοποιηθούν. Εναλλακτικά, μπορεί να οριστεί σε true για τη διατήρηση της συμβατότητας με έναν μη ενημερωμένο διακομιστή. Αυτό αποτελεί μια πρόχειρη λύση και ο διακομιστής θα πρέπει να διαμορφωθεί ξανά.</translation>
 <translation id="1297182715641689552">Χρησιμοποιήστε ένα σενάριο διακομιστή μεσολάβησης .pac</translation>
 <translation id="1304973015437969093">Αναγνωριστικά επέκτασης/εφαρμογής και διευθύνσεις URL ενημέρωσης για αθόρυβη εγκατάσταση</translation>
+<translation id="1307454923744766368">Οι προελεύσεις ή τα μοτίβα ονόματος για τα οποία δεν θα πρέπει να ισχύουν
+      περιορισμοί σε μη ασφαλείς προελεύσεις</translation>
 <translation id="1313457536529613143">Προσδιορίζει το ποσοστό κατά το οποίο προσαρμόζεται η καθυστέρηση μείωσης της φωτεινότητας της οθόνης όταν παρατηρείται δραστηριότητα χρηστών ενώ η φωτεινότητα της οθόνης είναι μειωμένη ή λίγο μετά την απενεργοποίηση της οθόνης.
 
           Αν ρυθμιστεί αυτή η πολιτική, προσδιορίζει  το ποσοστό κατά το οποίο προσαρμόζεται η καθυστέρηση μείωσης της φωτεινότητας της οθόνης όταν παρατηρείται δραστηριότητα χρηστών ενώ η φωτεινότητα της οθόνης είναι μειωμένη ή λίγο μετά την απενεργοποίηση της οθόνης. Όταν γίνεται προσαρμογή της καθυστέρησης μείωσης της φωτεινότητας της οθόνης, οι καθυστερήσεις απενεργοποίησης και κλειδώματος της οθόνης προσαρμόζονται αναλόγως, ώστε να διατηρούνται οι ίδιες χρονικές διαφορές με τη μείωση φωτεινότητας που ορίζονται στις αρχικές ρυθμίσεις.
@@ -91,6 +118,11 @@
 <translation id="1327466551276625742">Ενεργοποίηση προτροπής διαμόρφωσης δικτύου εκτός σύνδεσης</translation>
 <translation id="1330145147221172764">Ενεργοποίηση πληκτρολογίου οθόνης</translation>
 <translation id="13356285923490863">Όνομα πολιτικής</translation>
+<translation id="1352174694615491349">Αυτή η πολιτική επιτρέπει τη συγχώνευση συνδέσεων HTTP/2 όταν χρησιμοποιούνται πιστοποιητικά πελάτη. Προκειμένου να επιτευχθεί η συγχώνευση, τόσο το όνομα κεντρικού υπολογιστή της πιθανής νέας σύνδεσης όσο και το όνομα υπολογιστή μιας υπάρχουσας σύνδεσης θα πρέπει να αντιστοιχούν σε ένα ή περισσότερα μοτίβα τα οποία περιγράφονται από αυτήν την πολιτική. Η πολιτική είναι μια λίστα κεντρικών υπολογιστών, οι οποίοι χρησιμοποιούν τη μορφή φίλτρου URLBlacklist: το "example.com" αντιστοιχεί στο "example.com" και σε όλους τους δευτερεύοντες τομείς (π.χ. "sub.example.com"), ενώ το ".example.net" αντιστοιχεί ακριβώς στο "example.net".
+
+      Τα αιτήματα συγχώνευσης σε διαφορετικούς κεντρικού υπολογιστές μέσω συνδέσεων οι οποίες χρησιμοποιούν πιστοποιητικά πελάτη μπορούν να προκαλέσουν ζητήματα ασφάλειας και απορρήτου. Για παράδειγμα, η αρχή περιβάλλοντος θα αποκαλύπτεται σε όλα τα αιτήματα, ακόμα και εάν ο χρήστης δεν παραχώρησε ρητή εξουσιοδότηση για αυτόν τον σκοπό. Αυτή η πολιτική είναι προσωρινή και θα καταργηθεί σε κάποια μελλοντική κυκλοφορία. Ανατρέξτε στη διεύθυνση https://crbug.com/855690.
+
+      Εάν αυτή η πολιτική δεν οριστεί, θα χρησιμοποιείται η προεπιλεγμένη συμπεριφορά αποκλεισμού τυχόν συγχώνευσης σύνδεσης HTTP/2 σε συνδέσεις που χρησιμοποιούν πιστοποιητικά πελάτη.</translation>
 <translation id="1353966721814789986">Σελίδες εκκίνησης</translation>
 <translation id="1359553908012294236">Αν αυτή η πολιτική έχει οριστεί ως αληθής ή δεν έχει διαμορφωθεί, το <ph name="PRODUCT_NAME" /> θα ενεργοποιήσει τις συνδέσεις επισκεπτών. Οι συνδέσεις επισκεπτών αποτελούν προφίλ του <ph name="PRODUCT_NAME" /> όπου όλα τα παράθυρα είναι στην κατάσταση ανώνυμης περιήγησης.
 
@@ -184,6 +216,7 @@
 <translation id="1583248206450240930">Χρήση του <ph name="PRODUCT_FRAME_NAME" /> από προεπιλογή</translation>
 <translation id="1599424828227887013">Ενεργοποίηση Απομόνωσης ιστοτόπου για καθορισμένες προελεύσεις σε συσκευές Android</translation>
 <translation id="1608755754295374538">Διευθύνσεις URL που θα έχουν πρόσβαση στις συσκευές καταγραφής ήχου χωρίς ερώτηση</translation>
+<translation id="1615221548356595305">Επιτρέψτε τη συγχώνευση των συνδέσεων HTTP/2 για αυτούς τους κεντρικούς υπολογιστές, ακόμα και όταν χρησιμοποιούνται πιστοποιητικά πελάτη</translation>
 <translation id="1617235075406854669">Ενεργοποίηση διαγραφής του ιστορικού περιήγησης και του ιστορικού λήψεων</translation>
 <translation id="163200210584085447">Τα μοτίβα που περιλαμβάνονται σε αυτήν τη λίστα θα αντιστοιχιστούν με την
       προέλευση ασφαλείας του URL που στέλνει το αίτημα.  Εάν βρεθεί αντιστοίχιση, θα παραχωρείται πρόσβαση
@@ -1187,7 +1220,6 @@
       Εάν αυτή η πολιτική δεν οριστεί, η συλλογή ανώνυμων δεδομένων με κλειδί URL θα ενεργοποιηθεί, αλλά ο χρήστης θα μπορεί να την αλλάξει.</translation>
 <translation id="4250680216510889253">Όχι</translation>
 <translation id="4261820385751181068">Τοπικές ρυθμίσεις οθόνης σύνδεσης συσκευής</translation>
-<translation id="4264607809747169568">Ελέγχει τη λειτουργία "Κοινόχρηστα αρχεία δικτύου" για τη διαθεσιμότητα του ChromeOS</translation>
 <translation id="427220754384423013">Καθορίζει τους εκτυπωτές που μπορεί να χρησιμοποιήσει ένας χρήστης.
 
       Αυτή η πολιτική χρησιμοποιείται μόνο εάν επιλεγεί η ρύθμιση <ph name="PRINTERS_WHITELIST" /> για τη λειτουργία <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1346,6 +1378,7 @@
       Εάν ενεργοποιηθεί αυτή η πολιτική, θα επιτρέπεται στους ιστοτόπους η ταυτόχρονη περιήγηση και το άνοιγμα αναδυόμενων παραθύρων/καρτελών.
       Εάν απενεργοποιηθεί αυτή η πολιτική, δεν θα επιτρέπεται στους ιστοτόπους η ταυτόχρονη περιήγηση και το άνοιγμα αναδυόμενων παραθύρων/καρτελών.</translation>
 <translation id="4680961954980851756">Ενεργοποίηση Αυτόματης Συμπλήρωσης</translation>
+<translation id="4703402283970867140">Ενεργοποιήστε το μοντέλο έξυπνης μείωσης φωτεινότητας, για να επεκτείνετε τον χρόνο μέχρι τον οποίο μειώνεται η φωτεινότητα της οθόνης</translation>
 <translation id="4722122254122249791">Ενεργοποίηση Απομόνωσης ιστοτόπου για καθορισμένες προελεύσεις</translation>
 <translation id="4722399051042571387">Αν έχει την τιμή "false", οι χρήστες δεν θα έχουν τη δυνατότητα να ρυθμίσουν PIN που δεν είναι ισχυρά και μπορεί εύκολα να μαντέψει κάποιος.
 
@@ -1574,13 +1607,6 @@
 
           Αν αυτή η πολιτική δεν καθοριστεί, θα χρησιμοποιηθεί η πολιτική ''AskNotifications'' και ο χρήστης θα μπορεί να την αλλάξει.</translation>
 <translation id="538108065117008131">Να επιτρέπεται στο <ph name="PRODUCT_FRAME_NAME" /> η διαχείριση των παρακάτω τύπων περιεχομένου.</translation>
-<translation id="5391363090783552279">Εάν αυτή η πολιτική έχει οριστεί ως αληθής (true), το <ph name="PRODUCT_NAME" /> θα συνδέεται σε συσκευές Cast σε όλες τις διευθύνσεις IP, όχι μόνο σε ιδιωτικές διευθύνσεις RFC1918/RFC4913.
-
-          Εάν αυτή η πολιτική οριστεί ως ψευδής (false), το <ph name="PRODUCT_NAME" /> θα συνδέεται σε συσκευές Cast μόνο στις ιδιωτικές διευθύνσεις RFC1918/RFC4913.
-
-          Εάν δεν οριστεί αυτή η πολιτική, το <ph name="PRODUCT_NAME" /> θα συνδέεται σε συσκευές Cast μόνο σε ιδιωτικές διευθύνσεις RFC1918/RFC4913, εκτός εάν ενεργοποιηθεί η λειτουργία CastAllowAllIPs.
-
-          Εάν η πολιτική "EnableMediaRouter" οριστεί ως ψευδής (false), τότε η τιμή αυτής της πολιτικής δεν θα επιφέρει καμία αλλαγή.</translation>
 <translation id="5392172595902933844">Οι πληροφορίες σχετικά με την κατάσταση του Android επιστρέφουν στον
       διακομιστή.
 
@@ -2149,6 +2175,10 @@
 <translation id="6943577887654905793">Όνομα προτίμησης Mac/Linux:</translation>
 <translation id="69525503251220566">Παράμετρος που παρέχει τη λειτουργία αναζήτησης βάσει εικόνας για τον προεπιλεγμένο πάροχο αναζήτησης</translation>
 <translation id="6956272732789158625">Να μην επιτρέπεται σε κανέναν ιστότοπο να χρησιμοποιεί τη δημιουργία κλειδιού</translation>
+<translation id="6965859329738616662">Καθορίζει εάν επιτρέπεται σε κάποιο μοντέλο έξυπνης μείωσης φωτεινότητας να επεκτείνει τον χρόνο μέχρι να μειωθεί η φωτεινότητα της οθόνης.
+
+      Όταν πρόκειται να μειωθεί η φωτεινότητα της οθόνης, το μοντέλο έξυπνης μείωσης φωτεινότητας αξιολογεί εάν θα πρέπει να απενεργοποιηθεί η μείωση φωτεινότητας της οθόνης. Εάν το μοντέλο έξυπνης μείωσης φωτεινότητας απενεργοποιήσει τη μείωση φωτεινότητας της οθόνης, επεκτείνει αποτελεσματικά τον χρόνο μέχρι τη μείωση φωτεινότητας της οθόνης. Σε αυτήν την περίπτωση, η απενεργοποίηση οθόνης, το κλείδωμα οθόνης και οι καθυστερήσεις αδράνειας προσαρμόζονται προκειμένου να διατηρηθούν οι ίδιες αποστάσεις από την καθυστέρηση μείωσης φωτεινότητας οθόνης σε σχέση με την αρχική διαμόρφωση.
+      Εάν αυτή η πολιτική οριστεί ως Αληθής ή δεν οριστεί, το μοντέλο έξυπνης μείωσης φωτεινότητας θα ενεργοποιηθεί και θα επιτρέπεται να επεκτείνει τον χρόνο μέχρι τη μείωση φωτεινότητας οθόνης. Εάν αυτή η πολιτική οριστεί ως Ψευδής, το μοντέλο έξυπνης μείωσης φωτεινότητας δεν θα επηρεάσει τη μείωση φωτεινότητας οθόνης.</translation>
 <translation id="6982028490425791294">
       Εάν η πολιτική οριστεί ως "αληθής", επιτρέπεται στο <ph name="PRODUCT_NAME" /> η συλλογή αρχείων καταγραφής συμβάντων WebRTC από υπηρεσίες Google (π.χ. το Google Meet) και η μεταφόρτωση αυτών των αρχείων καταγραφής στο Google.
 
@@ -2605,6 +2635,13 @@
 <translation id="7980227303582973781">Δεν υπάρχουν ειδικοί περιορισμοί</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Περιστροφή οθόνης κατά 0 μοίρες</translation>
+<translation id="8033913082323846868">Αυτή η πολιτική καταργήθηκε στην έκδοση M70. Χρησιμοποιήστε τα AutofillAddressEnabled και AutofillCreditCardEnabled .
+
+      Επιτρέπει τη λειτουργία Αυτόματης συμπλήρωσης του <ph name="PRODUCT_NAME" /> και επιτρέπει στους χρήστες την αυτόματη συμπλήρωση φορμών ιστού με χρήση πληροφοριών που έχουν αποθηκευτεί στο παρελθόν, όπως στοιχεία διεύθυνσης ή πιστωτικής κάρτας.
+
+      Εάν απενεργοποιήσετε αυτήν τη ρύθμιση, οι χρήστες δεν θα έχουν δυνατότητα πρόσβασης στην Αυτόματη συμπλήρωση.
+
+      Εάν ενεργοποιήσετε αυτήν τη ρύθμιση ή δεν διαμορφώσετε κάποια τιμή, η Αυτόματη συμπλήρωση θα παραμείνει υπό τον έλεγχο του χρήστη. Αυτό θα επιτρέψει στον χρήστη να διαμορφώσει τα προφίλ Αυτόματης συμπλήρωσης και να ενεργοποιεί ή να απενεργοποιεί την Αυτόματη συμπλήρωση όποτε θέλει.</translation>
 <translation id="8044493735196713914">Αναφορά λειτουργίας εκκίνησης συσκευής</translation>
 <translation id="8050080920415773384">Εγγενής εκτύπωση</translation>
 <translation id="8059164285174960932">URL όπου οι εφαρμογές πελάτες απομακρυσμένης πρόσβασης πρέπει να αποκτούν το διακριτικό ελέγχου ταυτότητας</translation>
@@ -2935,6 +2972,33 @@
 
       Εάν δεν οριστεί αυτή η πολιτική, θεωρείται ότι ισχύει η επιλογή <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Καταργήθηκε στην έκδοση M69. Χρησιμοποιήστε το
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Η πολιτική καθορίζει μια λίστα προελεύσεων (URL) ή μοτίβων ονόματος κεντρικού υπολογιστή (όπως
+      "*.example.com"), για την οποία δεν θα ισχύουν περιορισμοί ασφάλειας σε
+      μη ασφαλείς προελεύσεις.
+
+      Στόχος είναι να επιτρέπεται στους οργανισμούς να προσθέτουν προελεύσεις στη λίστα επιτρεπόμενων για εφαρμογές
+      παλαιού τύπου που δεν μπορούν να πραγματοποιήσουν ανάπτυξη TLS ή να ρυθμίσουν έναν διακομιστή προετοιμασίας
+      για εσωτερική ανάπτυξη ιστού, προκειμένου να μπορούν οι προγραμματιστές τους να ελέγχουν λειτουργίες
+      που απαιτούν ασφαλή περιβάλλοντα χωρίς να απαιτείται η ανάπτυξη TLS στον διακομιστή
+      προετοιμασίας. Αυτή η πολιτική θα αποτρέπει επίσης την επισήμανση της προέλευσης ως
+      "Μη ασφαλής" στο κύριο πλαίσιο.
+
+      Η ρύθμιση μιας λίστας URL σε αυτήν την πολιτική έχει την ίδια επίδραση με τη ρύθμιση
+      μιας μεταβλητής γραμμής εντολών "--unsafely-treat-insecure-origin-as-secure" σε μια
+      λίστα διαχωρισμένη με κόμματα, η οποία περιλαμβάνει τα ίδια URL. Εάν η πολιτική έχει οριστεί, θα
+      παρακάμψει τη μεταβλητή γραμμής εντολών.
+
+      Αυτή η πολιτική καταργείται στην έκδοση M69 και αντικαθίσταται από το
+      OverrideSecurityRestrictionsOnInsecureOrigin. Εάν είναι παρούσες
+      και οι δύο πολιτικές, το OverrideSecurityRestrictionsOnInsecureOrigin θα παρακάμψει αυτήν την
+      πολιτική.
+
+      Για περισσότερες πληροφορίες σχετικά με τα ασφαλή περιβάλλοντα, ανατρέξτε στη διεύθυνση
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Αυτή η πολιτική ελέγχει εάν η Συναίνεση συγχρονισμού μπορεί να εμφανιστεί στον χρήστη κατά την πρώτη σύνδεση. Θα πρέπει να οριστεί ως μη αληθής εάν η Συναίνεση συγχρονισμού δεν απαιτείται ποτέ για τον χρήστη.
       Εάν οριστεί ως μη αληθής, η Συναίνεση συγχρονισμού δεν θα εμφανίζεται.
       Εάν οριστεί αληθής ή δεν οριστεί, η Συναίνεση συγχρονισμού μπορεί να εμφανίζεται.</translation>
diff --git a/components/policy/resources/policy_templates_en-GB.xtb b/components/policy/resources/policy_templates_en-GB.xtb
index 2684935..8e5eb5b 100644
--- a/components/policy/resources/policy_templates_en-GB.xtb
+++ b/components/policy/resources/policy_templates_en-GB.xtb
@@ -1226,7 +1226,6 @@
       If this policy is left not set, URL-keyed anonymised data collection will be enabled but the user will be able to change it.</translation>
 <translation id="4250680216510889253">No</translation>
 <translation id="4261820385751181068">Device sign-in screen locale</translation>
-<translation id="4264607809747169568">Contorls Network File Shares for ChromeOS availibility</translation>
 <translation id="427220754384423013">Specifies the printers which a user can use.
 
       This policy is only used if <ph name="PRINTERS_WHITELIST" /> is chosen for <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1617,13 +1616,6 @@
 
           If this policy is left not set, 'AskNotifications' will be used and the user will be able to change it.</translation>
 <translation id="538108065117008131">Allow <ph name="PRODUCT_FRAME_NAME" /> to handle the following content types.</translation>
-<translation id="5391363090783552279">If this policy is set to true, <ph name="PRODUCT_NAME" /> will connect to Cast devices on all IP addresses, not just RFC1918/RFC4913 private addresses.
-
-          If this policy is set to false, <ph name="PRODUCT_NAME" /> will connect to Cast devices on RFC1918/RFC4913 private addresses only.
-
-          If this policy is not set, <ph name="PRODUCT_NAME" /> will connect to Cast devices on RFC1918/RFC4913 private addresses only, unless the CastAllowAllIPs feature is enabled.
-
-          If the policy 'EnableMediaRouter' is set to false, then this policy's value would have no effect.</translation>
 <translation id="5392172595902933844">Information about the status of Android is sent back to the
       server.
 
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index b8b0f3eb..ac582b6 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -33,6 +33,28 @@
           Si esta opción de configuración está inhabilitada o no se configura, el host de asistencia remota se ejecutará en el contexto del usuario, y los usuarios remotos no podrán interactuar con las ventanas con permisos elevados en el escritorio.</translation>
 <translation id="1096105751829466145">Proveedor de búsqueda predeterminado</translation>
 <translation id="1099282607296956954">Permite el aislamiento de todos los sitios</translation>
+<translation id="1100570158310952027">
+      La política especifica una lista de orígenes (URL) o patrones de nombres de host
+      (como "*.ejemplo.com") para los cuales se aplicarán restricciones de
+      seguridad en orígenes inseguros.
+
+      El objetivo es permitir que las organizaciones establezcan una lista blanca
+      de orígenes para apps heredadas que no pueden implementar TLS o
+      configuren un servidor de etapas para desarrollos web internos
+      con el objeto de que los desarrolladores prueben las funciones que
+      requieren contextos seguros sin tener que implementar TLS en el servidor
+      de etapas. Esta política también evitará que el origen se lo considere como "No seguro" en el cuadro multifunción.
+
+      Configurar una lista de URL en esta política tiene el mismo efecto que
+      configurar la marca de línea de comandos
+      "--unsafely-treat-insecure-origin-as-secure" en una lista de elementos
+      separados por comas de las mismas URL. Si se establece la política, se anulará la marca de línea de comandos.
+
+      Esta política anulará UnsafelyTreatInsecureOriginAsSecure si está presente.
+
+      Para obtener más información sobre contextos seguros, consulta
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Los controladores de protocolo establecidos mediante esta política no se usan cuando se controlan intents en Android.</translation>
 <translation id="1118093128235245168">Permite que los sitios soliciten al usuario que otorgue acceso a un dispositivo USB conectado</translation>
 <translation id="1128903365609589950">Configura el directorio que <ph name="PRODUCT_NAME" /> usará para almacenar archivos en caché en el disco.
@@ -79,6 +101,8 @@
       Si la política no se configura o se configura en false, los conjuntos de cifrado de RC4 en TLS no se habilitarán. De lo contrario, se puede configurar en true para mantener la compatibilidad con un servidor obsoleto. Esta medida es provisional y el servidor se debería volver a configurar.</translation>
 <translation id="1297182715641689552">Usar un script para proxy .pac</translation>
 <translation id="1304973015437969093">ID de extensiones/apps y direcciones URL de actualización para instalar en silencio</translation>
+<translation id="1307454923744766368">Los orígenes o patrones de nombres de host para los cuales no deben aplicarse
+      restricciones en los orígenes no seguros</translation>
 <translation id="1313457536529613143">Especifica el porcentaje de ajuste del tiempo de espera de inactividad de la pantalla cuando se observa la actividad del usuario con la pantalla oscurecida o poco después de que esta se haya desactivado.
 
           Si se establece esta política, se especificará el porcentaje de ajuste del tiempo de espera de inactividad de la pantalla cuando se observe la actividad del usuario con la pantalla oscurecida o poco después de que esta se haya desactivado. Cuando se ajusta el tiempo de espera de inactividad de la pantalla, se ajustan las demoras de desconexión, bloqueo y desactivación de la pantalla para mantener las mismas distancias del tiempo de espera de inactividad de la pantalla que la configuración original.
@@ -90,6 +114,11 @@
 <translation id="1327466551276625742">Habilitar mensaje de configuración de red si no hay conexión</translation>
 <translation id="1330145147221172764">Habilitar el teclado en pantalla</translation>
 <translation id="13356285923490863">Nombre de la política</translation>
+<translation id="1352174694615491349">Esta política permite la integración de la conexión HTTP/2 cuando se usan los certificados de cliente. Para lograr la integración, el nombre de host de la nueva conexión potencial y el de la conexión existente deben coincidir con uno o más patrones descritos en esta política, que está compuesta por una lista de hosts con el formato de filtro URLBlacklist: "ejemplo.com" coincide con "ejemplo.com" y todos los subdominios (p. ej. "sub.ejemplo.com"). A su vez, ".ejemplo.net" coincide exactamente con "ejemplo.net".
+
+      Las solicitudes de integración a diferentes hosts mediante conexiones que usan certificados de cliente pueden generar problemas de seguridad y privacidad, dado que la autoridad se manifestará para todas las solicitudes, incluso si el usuario no lo permitió de forma explícita. Esta política es temporal y se quitará en futuras actualizaciones. Consulta https://crbug.com/855690.
+
+      Si no se especifica esta política, se usará el comportamiento predeterminado de no permitir ninguna integración de conexiones HTTP/2 en conexiones que usen certificados de cliente.</translation>
 <translation id="1353966721814789986">Páginas de inicio</translation>
 <translation id="1359553908012294236">Si esta política no se configura o se establece en true, <ph name="PRODUCT_NAME" /> permitirá acceder como invitado. Los accesos como invitado son perfiles de <ph name="PRODUCT_NAME" /> en los que todas las ventanas están en modo de navegación de incógnito.
 
@@ -181,6 +210,7 @@
 <translation id="1583248206450240930">Utilizar <ph name="PRODUCT_FRAME_NAME" /> de manera predeterminada</translation>
 <translation id="1599424828227887013">Habilitar el aislamiento de sitios para orígenes específicos en dispositivos Android</translation>
 <translation id="1608755754295374538">Las URL que recibirán acceso a dispositivos de captura de audio sin solicitarlo</translation>
+<translation id="1615221548356595305">Permitir la integración de conexiones HTTP/2 para estos hosts incluso cuando se usan certificados de cliente</translation>
 <translation id="1617235075406854669">Habilita la eliminación del historial de descargas y del navegador.</translation>
 <translation id="163200210584085447">Los patrones en esta lista se compararán con el origen
        de seguridad de la URL solicitante. Si se encuentra una coincidencia,
@@ -1148,7 +1178,6 @@
       Si no se establece, se habilitará la recopilación, y el usuario podrá cambiarla.</translation>
 <translation id="4250680216510889253">No</translation>
 <translation id="4261820385751181068">Configuración regional de la pantalla de acceso del dispositivo</translation>
-<translation id="4264607809747169568">Controla la disponibilidad de "Network File Shares" para el Sistema operativo Chrome</translation>
 <translation id="427220754384423013">Especifica las impresoras que puede utilizar el usuario.
 
       Esta política solo se usa si se elige <ph name="PRINTERS_WHITELIST" /> para <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1299,6 +1328,7 @@
       Si se habilita esta política, se podrá navegar en los sitios y abrir ventanas o pestañas nuevas al mismo tiempo.
       Si se inhabilita o no se establece, no se podrá navegar en los sitios ni abrir ventanas o pestañas nuevas al mismo tiempo.</translation>
 <translation id="4680961954980851756">Habilitar Autocompletar</translation>
+<translation id="4703402283970867140">Habilitar un modelo de atenuación inteligente para extender el tiempo de atenuación de la pantalla</translation>
 <translation id="4722122254122249791">Permite el aislamiento de sitios específicos</translation>
 <translation id="4722399051042571387">Si esta política es falsa, los usuarios no podrán establecer PIN poco seguros y fáciles de adivinar.
 
@@ -1510,13 +1540,6 @@
 <translation id="5370279767682621504">Habilitar la compatibilidad con HTTP/0.9 en puertos no predeterminados</translation>
 <translation id="5378985487213287085">Te permite configurar si los sitios web pueden mostrar notificaciones de escritorio. Esto se puede permitir de manera predeterminada, se puede denegar de manera predeterminada o se le puede preguntar al usuario cada vez que un sitio web quiera mostrar notificaciones de escritorio. Si esta política no se configura, se usará "AskNotifications" y el usuario podrá cambiarlo.</translation>
 <translation id="538108065117008131">Permitir que <ph name="PRODUCT_FRAME_NAME" /> maneje los siguientes tipos de contenido.</translation>
-<translation id="5391363090783552279">Si esta política se establece como verdadera, <ph name="PRODUCT_NAME" /> se conectará a los dispositivos de transmisión en todas las direcciones IP, no solo en las direcciones privadas RFC1918/RFC4913
-
-          Si se establece como falsa, <ph name="PRODUCT_NAME" /> se conectará a los dispositivos de transmisión solo en las direcciones privadas RFC1918/RFC4913.
-
-          Si no se configura, <ph name="PRODUCT_NAME" /> se conectará a los dispositivos de solo en las direcciones privadas RFC1918/RFC4913, a menos que se habilite la función CastAllowAllIPs.
-
-          Si la política "EnableMediaRouter" se establece como falsa, el valor de esta política no tendrá efecto.</translation>
 <translation id="5392172595902933844">La información sobre el estado de Android se envía nuevamente al
       servidor.
 
@@ -2068,6 +2091,10 @@
 <translation id="6943577887654905793">Nombre de preferencia de Mac/Linux:</translation>
 <translation id="69525503251220566">Parámetro que proporciona una función de búsqueda por imagen para el proveedor de búsquedas predeterminado</translation>
 <translation id="6956272732789158625">No permitir que los sitios utilicen la generación de claves</translation>
+<translation id="6965859329738616662">Especifica si se permite que un modelo de atenuación inteligente extienda el tiempo de atenuación de la pantalla.
+
+      Cuando la pantalla está a punto de atenuarse, el modelo evalúa si debe posponerse la atenuación de la pantalla. Si es así, se el tiempo de atenuación. En este caso, se ajustan el apagado y el bloqueo de la pantalla, y el tiempo de inactividad para mantener las mismas distancias con respecto al tiempo de atenuación de la configuración original.
+      Si se establece esta política como verdadera o no se establece, se habilitará el modelo de atenuación inteligente y se permitirá que extienda el tiempo de atenuación. Si se establece como falsa, el modelo no modificará la atenuación.</translation>
 <translation id="6982028490425791294">
       Si la política se establece como verdadera, <ph name="PRODUCT_NAME" /> puede recopilar registros de acontecimientos de WebRTC provenientes de los servicios de Google (p. ej., Google Meet) y cargarlos a Google.
 
@@ -2493,6 +2520,13 @@
 <translation id="7980227303582973781">Sin restricciones especiales</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Rotar la pantalla 0 grados</translation>
+<translation id="8033913082323846868">Esta política deja de estar disponible en M70. En su lugar, utiliza AutofillAddressEnabled y AutofillCreditCardEnabled.
+
+      Habilita la función de "Autocompletar" de <ph name="PRODUCT_NAME" /> y permite que los usuarios completen automáticamente los formularios web con la información que se haya almacenado, como la dirección o información de la tarjeta de crédito.
+
+      Si se inhabilita esta configuración, los usuarios no podrán acceder a "Autocompletar".
+
+      Si se habilita o no se establece ningún valor, el usuario podrá controlar "Autocompletar". De esta manera, podrán configurar los perfiles de la función y activarla o desactivarla cuando lo deseen.</translation>
 <translation id="8044493735196713914">Modo de notificación de inicio de dispositivo</translation>
 <translation id="8050080920415773384">Impresión nativa</translation>
 <translation id="8059164285174960932">URL donde los clientes de acceso remoto deben obtener el token de autenticación</translation>
@@ -2829,6 +2863,33 @@
 
       Si no se establece esta política, se utiliza <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Dejó de estar disponible en M69. En su lugar, utiliza
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      La política especifica una lista de orígenes (URL) o patrones de nombres de
+      host (como "*.ejemplo.com") para los cuales no se aplicarán restricciones de
+      seguridad en orígenes no seguros.
+
+      El objetivo es permitir que las organizaciones establezcan una lista blanca
+      de orígenes para apps heredadas que no pueden implementar TLS o
+      configuren un servidor de etapas para desarrollos web internos
+      con el objeto de que los desarrolladores prueben las funciones que
+      requieren contextos seguros sin tener que implementar TLS en el servidor
+      de etapas. Esta política también evitará que el origen se lo considere como "No seguro" en el cuadro multifunción.
+
+      Configurar una lista de URL en esta política tiene el mismo efecto que
+      configurar la marca de línea de comandos
+      "--unsafely-treat-insecure-origin-as-secure" en una lista de elementos
+      separados por comas de las mismas URL. Si se establece la política, se anulará la marca de línea de comandos.
+
+      Esta política dejó de estar disponible en M69 y se reemplazó por
+      OverrideSecurityRestrictionsOnInsecureOrigin. Si están presentes ambas
+      políticas, OverrideSecurityRestrictionsOnInsecureOrigin anulará esta
+      política.
+
+      Para obtener más información sobre contextos seguros, consulta
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Esta política controla si se muestra el consentimiento de sincronización al usuario durante el primer acceso. Debe establecerse como falso si consideras que el usuario nunca necesitará este consentimiento.
       Si se establece como falso, no se mostrará el consentimiento.
       Si se establece como verdadero o no se establece, se puede mostrar el consentimiento.</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 3d0c57b..1deb3b4 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -33,6 +33,31 @@
           Si esta opción no se configura o se inhabilita, el host de asistencia remota se ejecutará en el contexto del usuario y los usuarios remotos no podrán interactuar con las ventanas que requieren permisos de administrador en el ordenador.</translation>
 <translation id="1096105751829466145">Proveedor de búsquedas predeterminadas</translation>
 <translation id="1099282607296956954">Habilitar el aislamiento de todos los sitios web</translation>
+<translation id="1100570158310952027">
+      La política define una lista de orígenes (URLs) o de patrones de nombre de host
+      (como "*.example.com") para los que no se aplican las restricciones de
+      seguridad de orígenes inseguros.
+
+      La intención es permitir que las organizaciones definan orígenes
+
+      incluidos en listas blancas para aplicaciones antiguas que no pueden
+      implementar TLS, o bien configuren un servidor provisional para desarrollar
+
+      web internas y conseguir que los desarrolladores puedan probar las
+      funciones que necesiten en contextos seguros sin tener que implementar
+      TLS en el servidor provisional. Esta política también evita que el origen
+      aparezca con la etiqueta No es seguro en el omnibox.
+
+      Definir la lista de URLs de esta política tiene el mismo resultado que
+      asignar el indicador de línea de comandos "--unsafely-treat-insecure-origin-
+      as-secure" a una lista de URL separadas por comas.
+      Al habilitar la política, se anula el indicador de línea de comandos.
+
+      Esta política anula UnsafelyTreatInsecureOriginAsSecure si está presente.
+
+      Para obtener más información sobre los contextos seguros, consulta la
+      página https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Los controladores de protocolo configurados a través de esta política no se utilizan al procesar los intents de Android.</translation>
 <translation id="1118093128235245168">Permitir que los sitios web pidan permiso al usuario para acceder a un dispositivo USB conectado</translation>
 <translation id="1128903365609589950">Configura el directorio que <ph name="PRODUCT_NAME" /> utilizará para guardar los archivos almacenados en la memoria caché en el disco.
@@ -79,6 +104,8 @@
       Si la política no se establece o se le asigna el valor false, no se habilitarán los conjuntos de cifrado de RC4 en TLS. Si por el contrario se le asigna el valor true, mantendrá la compatibilidad con un servidor obsoleto. Se trata de una medida provisional y el servidor se debería volver a configurar.</translation>
 <translation id="1297182715641689552">Utilizar una secuencia de comandos .pac de proxy</translation>
 <translation id="1304973015437969093">IDs de extensiones/aplicaciones y URLs de actualización que se instalan automáticamente</translation>
+<translation id="1307454923744766368">Orígenes o patrones de nombres de host en los que no se deben
+      aplicar restricciones de orígenes inseguros</translation>
 <translation id="1313457536529613143">Especifica el porcentaje de ajuste del tiempo de espera de inactividad de la pantalla cuando se observa la actividad del usuario con la pantalla oscurecida o poco después de que esta se haya desactivado.
 
           Si se establece esta política, se especificará el porcentaje de ajuste del tiempo de espera de inactividad de la pantalla cuando se observe la actividad del usuario con la pantalla oscurecida o poco después de que esta se haya desactivado. Cuando se ajusta el tiempo de espera de inactividad de la pantalla, se ajustan los retrasos de desconexión, bloqueo y desactivación de la pantalla para mantener las mismas distancias del tiempo de espera de inactividad de la pantalla que la configuración original.
@@ -90,6 +117,11 @@
 <translation id="1327466551276625742">Habilitar mensaje de configuración de red si no hay conexión</translation>
 <translation id="1330145147221172764">Habilitar teclado en pantalla</translation>
 <translation id="13356285923490863">Nombre de la política</translation>
+<translation id="1352174694615491349">Esta política permite la fusión de conexiones HTTP/2 cuando se usan certificados de cliente. Para que se fusionen, tanto el nombre de host de la nueva conexión posible como el de la conexión presente deben coincidir con uno o varios patrones descritos en esta política. La política es una lista de hosts que utilizan el formato de filtro URLBlacklist: "example.com" coincide con "example.com" y todos sus subdominios (como "sub.example.com"), mientras que ".example.net" coincide de forma exacta con "example.net".
+
+      Las solicitudes de fusión a diferentes hosts para conexiones que utilizan certificados de cliente pueden dar lugar a problemas de seguridad y privacidad, ya que a la autoridad de certificación se le presentarán todas las solicitudes, aunque el usuario no lo autorice de forma explícita. Esta política es temporal y se retirará en una versión futura. Consulta la página https://crbug.com/855690.
+
+      Si no se configura esta política, se realizará la acción predeterminada: no permitir la fusión de ninguna conexión HTTP/2 en conexiones que utilicen certificados de cliente.</translation>
 <translation id="1353966721814789986">Páginas de inicio</translation>
 <translation id="1359553908012294236">Si se asigna el valor true a esta política o si esta no se configura, <ph name="PRODUCT_NAME" /> habilitará los inicios de sesión como invitado. Los inicios de sesión como invitado son perfiles de <ph name="PRODUCT_NAME" /> en los que todas las ventanas están en modo de incógnito.
 
@@ -180,6 +212,7 @@
 <translation id="1583248206450240930">Utilizar <ph name="PRODUCT_FRAME_NAME" /> de forma predeterminada</translation>
 <translation id="1599424828227887013">Habilitar el aislamiento de sitios web específicos en dispositivos Android</translation>
 <translation id="1608755754295374538">URLs a las que se concederá acceso a dispositivos de captura de audio sin confirmación</translation>
+<translation id="1615221548356595305">Permitir la fusión de conexiones HTTP/2 para estos hosts aunque se utilicen certificados de cliente</translation>
 <translation id="1617235075406854669">Habilitar eliminación de historial de navegación y de descargas</translation>
 <translation id="163200210584085447">Los patrones de esta lista se compararán con el origen de seguridad
       de la URL solicitante. Si se encuentra alguna coincidencia, se concederá acceso a dispositivos de captura de vídeo
@@ -1193,7 +1226,6 @@
       Si dejas esta política sin configurar, la recogida de datos anónima con clave de URL se habilitará, pero el usuario podrá cambiar la opción.</translation>
 <translation id="4250680216510889253">No</translation>
 <translation id="4261820385751181068">Configuración regional para la pantalla de inicio de sesión del dispositivo</translation>
-<translation id="4264607809747169568">Controla si el uso compartido de archivos del sistema estará disponible en Chrome OS</translation>
 <translation id="427220754384423013">Especifica las impresoras que puede utilizar un usuario.
 
 
@@ -1354,6 +1386,7 @@
       Si se habilita esta política, los sitios web podrán abrir nuevas ventanas y pestañas y navegar de forma simultánea.
       Si se inhabilita esta política o no se configura, los sitios web no podrán abrir ventanas ni pestañas nuevas ni navegar de forma simultánea.</translation>
 <translation id="4680961954980851756">Habilitar Autocompletar</translation>
+<translation id="4703402283970867140">Habilitar el modelo de atenuación inteligente para alargar el tiempo que pasa hasta que la pantalla se atenúe.</translation>
 <translation id="4722122254122249791">Habilitar el aislamiento de sitios web específicos</translation>
 <translation id="4722399051042571387">Si se le asigna el valor false, los usuarios no podrán definir ningún PIN que no se considere seguro y que sea fácil de adivinar.
 
@@ -1585,13 +1618,6 @@
 
           Si no se establece esta política, se usará la política AskNotifications y el usuario podrá modificarla.</translation>
 <translation id="538108065117008131">Permitir que <ph name="PRODUCT_FRAME_NAME" /> gestione los tipos de contenido que se indican a continuación.</translation>
-<translation id="5391363090783552279">Si se le asigna el valor "True" a esta política, <ph name="PRODUCT_NAME" /> se conectará a dispositivos de transmisión de todas las direcciones IP y no solo de las direcciones privadas de RFC1918 y RFC4913.
-
-          Si se le asigna el valor "False" a esta política", <ph name="PRODUCT_NAME" /> solo se conectará a los dispositivos de transmisión de las direcciones privadas de RFC1918 y RFC4913.
-
-          Si no se le asigna ningún valor a esta política, <ph name="PRODUCT_NAME" /> solo se conectará a los dispositivos de transmisión de las direcciones privadas de RFC1918 y RFC4913, a menos que se habilite la función CastAllowAllIPs.
-
-          Si se le asigna el valor "False" a la política "EnableMediaRouter", el valor de esta política no tendrá ningún efecto.</translation>
 <translation id="5392172595902933844">La información sobre el estado de Android se envía al servidor.
 
       Si se asigna el valor false a la política o no se le asigna ningún valor, no se proporciona información sobre el estado.
@@ -2163,6 +2189,10 @@
 <translation id="6943577887654905793">Nombre de preferencia en Mac/Linux:</translation>
 <translation id="69525503251220566">Parámetro que proporciona una función de búsqueda por imagen para el proveedor de búsquedas predeterminado</translation>
 <translation id="6956272732789158625">No permitir que los sitios web utilicen la generación de claves</translation>
+<translation id="6965859329738616662">Especifica si a un modelo de atenuación inteligente se le permite alargar el tiempo que debe pasar hasta que la pantalla se atenúe.
+
+      Cuando la pantalla esté a punto de atenuarse, el modelo de atenuación inteligente evaluará si esta acción debe aplazarse. Si esto ocurre, este modelo alargará el tiempo que debe pasar hasta que la pantalla se atenúe. En este caso, los retrasos por inactividad, para apagar la pantalla o para bloquearla se ajustan para que mantengan las mismas distancias con la atenuación de pantalla que se configuraron al principio.
+      Si a esta política se le asigna el valor "True" o no se le asigna ningún valor, el modelo de atenuación inteligente se habilitará y podrá alargar el tiempo que debe pasar hasta que la pantalla se atenúe. Si se le asigna el valor "False", este modelo no afectará a la atenuación de la pantalla.</translation>
 <translation id="6982028490425791294">
       Si se le asigna el valor "True" a esta política", <ph name="PRODUCT_NAME" /> puede recopilar registros de eventos WebRTC de los servicios de Google (p. ej., Google Meet) y subirlos a Google.
 
@@ -2617,6 +2647,13 @@
 <translation id="7980227303582973781">Sin restricciones especiales</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Girar la pantalla 0 grados</translation>
+<translation id="8033913082323846868">Esta política está obsoleta en M70. Utiliza en su lugar AutofillAddressEnabled y AutofillCreditCardEnabled.
+
+      Habilita la función Autocompletar de <ph name="PRODUCT_NAME" /> y permite que los usuarios rellenen formularios web automáticamente con información almacenada anteriormente, como la dirección o la tarjeta de crédito.
+
+      Si se inhabilita esta opción, los usuarios no podrán acceder a la función Autocompletar.
+
+      Si se habilita esta opción o no se le asigna ningún valor, los usuarios controlarán la función Autocompletar: podrán configurar perfiles de Autocompletar y activarla o desactivarla según sus preferencias.</translation>
 <translation id="8044493735196713914">Notificar modo de inicio de dispositivo</translation>
 <translation id="8050080920415773384">Impresión nativa</translation>
 <translation id="8059164285174960932">URL en la que los clientes de acceso remoto deben obtener su token de autenticación</translation>
@@ -2949,6 +2986,34 @@
 
       Si no se establece esta política, se utilizará <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Obsoleta en M69. Utiliza en su lugar
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      La política define una lista de orígenes (URLs) o de patrones de
+      nombres de host (como "*.example.com") para los que no se aplican las
+      restricciones de seguridad de orígenes inseguros.
+
+      La intención es permitir que las organizaciones definan orígenes incluidos
+      en listas blancas para aplicaciones antiguas que no pueden implementar
+      TLS, o bien configuren un servidor provisional para desarrollar web internas
+      y conseguir que los desarrolladores puedan probar las funciones que
+      necesiten en contextos seguros sin tener que implementar TLS en el
+      servidor provisional. Esta política también evita que el origen aparezca con
+      la etiqueta No es seguro en el omnibox.
+
+      Definir la lista de URLs de esta política tiene el mismo resultado que
+      asignar el indicador de línea de comandos "--unsafely-treat-insecure-origin-
+      as-secure" a una lista de URL separadas por comas.
+      Al habilitar la política, se anula el indicador de línea de comandos.
+
+      Esta política está obsoleta en M69 y la sustituye
+      OverrideSecurityRestrictionsOnInsecureOrigin. Si ambas políticas están
+      presentes, OverrideSecurityRestrictionsOnInsecureOrigin anulará esta
+      política.
+
+      Para obtener más información sobre contextos seguros, consulta la página
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Esta política controla si se muestra Sync Consent al usuario durante el primer inicio de sesión. Se le debería asignar el valor "False" si no es necesario mostrar Sync Consent al usuario en ningún caso.
       Si se le asigna el valor "False", Sync Consent no se mostrará.
       Si se le asigna el valor "True" o no se le asigna ningún valor, Sync Consent no se puede mostrar.</translation>
diff --git a/components/policy/resources/policy_templates_et.xtb b/components/policy/resources/policy_templates_et.xtb
index 3e205f8..656d4c8 100644
--- a/components/policy/resources/policy_templates_et.xtb
+++ b/components/policy/resources/policy_templates_et.xtb
@@ -33,6 +33,30 @@
           Kui seade on keelatud või seadistamata, käitatakse kaugabi hosti kasutaja kontekstis ja kaugkasutajad ei saa töölaual suhelda administraatoriõigusi nõudvate akendega.</translation>
 <translation id="1096105751829466145">Vaikeotsingupakkuja</translation>
 <translation id="1099282607296956954">Saidi isoleerimise lubamine igal saidil</translation>
+<translation id="1100570158310952027">
+      Reegel määrab loendi lähtekohtadest (URL-id) või hostinimemustritest (nt
+      „*.example.com”), mille puhul ei kehti ebaturvaliste lähtekohtade
+      turvapiirangud.
+
+      Selle eesmärk on võimaldada organisatsioonidel seadistada lubatud 
+      lähtekohad pärandrakenduste jaoks, kus ei saa TLS-i juurutada, või
+      seadistada kontrollserver sisemise veebiarenduse jaoks,
+      mis võimaldab arendajatel testida turvakontekste nõudvaid funktsioone,
+      ilma et kontrollserveris oleks vaja juurutada TLS-i.
+      Reegel takistab ka omnikastikeses päritolule märke
+      „Ebaturvaline” lisamist.
+
+      Reeglis URL-ide loendi määramisel on sama mõju mis käsurea märgistuse
+
+      „--unsafely-treat-insecure-origin-as-secure” lisamisel samade URL-ide
+      komaeraldusega loendile. Kui reegel on määratud, alistab see
+      käsurea märgistuse.
+
+      Reegel alistab reegli UnsafelyTreatInsecureOriginAsSecure, kui see on määratud.
+
+      Vaadake lisateavet turvaliste kontekstide kohta aadressilt
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Selle reegliga määratud protokollitöötlejaid Androidi kavatsuste käsitlemisel ei kasutata.</translation>
 <translation id="1118093128235245168">Luba saitidel küsida kasutajalt luba ühendatud USB-seadmetele juurdepääsemisks</translation>
 <translation id="1128903365609589950">Seadistab kataloogi, mida <ph name="PRODUCT_NAME" /> kasutab vahemälus olevate failide kettale salvestamiseks.
@@ -80,6 +104,8 @@
       Kui reegel on määramata või selle väärtuseks on määratud Väär, siis ei ole RC4 šifreerimiskomplektid TLS-is lubatud. Selle väärtuseks võib olla määratud ka Tõene, et säilitada ühilduvus aegunud serveriga. See on ajutine meede ja server tuleks ümber seadistada.</translation>
 <translation id="1297182715641689552">Kasuta puhverserveri pac-skripti</translation>
 <translation id="1304973015437969093">Taustal installitavate laienduste/rakenduste ID-d ja värskenduste URL-id</translation>
+<translation id="1307454923744766368">Lähtekohad või hostinimede mustrid, mille puhul ei kehti
+      ebaturvaliste lähtekohtade piirangud</translation>
 <translation id="1313457536529613143">Määratleb ekraani tumenduse viivituse skaleerimismäära protsentides, kui täheldatakse kasutaja tegevust ekraani tumendamise ajal või peagi pärast ekraani väljalülitumist.
 
           Reegel määratleb ekraani tumenduse viivituse skaleerimismäära protsentides, kui täheldatakse kasutaja tegevust ekraani tumendamise ajal või peagi pärast ekraani väljalülitumist. Tumenduse viivituse skaleerimisel reguleeritakse ekraani väljalülitumise, ekraaniluku ja tegevusetu oleku viivitusi, et säilitada ekraanitumenduse viivitusest samu kaugusi mis algselt seadistatud.
@@ -91,6 +117,11 @@
 <translation id="1327466551276625742">Võrguseadistuse viiba lubamine, kui seade on võrguühenduseta</translation>
 <translation id="1330145147221172764">Luba ekraanil kuvatav klaviatuur</translation>
 <translation id="13356285923490863">Reegli nimi</translation>
+<translation id="1352174694615491349">See reegel lubab HTTP/2 ühenduse liitmise, kui kliendisertifikaadid on kasutuses. Liitmiseks peab nii potentsiaalse uue ühenduse hostinimi kui ka olemasoleva ühenduse hostinimi kattuma vähemalt ühe reeglis kirjeldatud mustriga. Reegel on hostide loend, mis põhineb filtri URLBlacklist vormingul: „example.com” vastendab domeeni „example.com” ja kõik alamdomeenid (nt „sub.example.com”), samas kui „.example.net” vastendab ainult domeeni „example.net”.
+
+      Kliendisertifikaate kasutatavatele eri hostidele edastatavad liitmistaotlused võivad põhjustada turva- ja privaatsusprobleeme, kuna üldine sertifitseerimisorgan edastatakse kõigile taotlustele, isegi kui kasutaja seda ei volitanud. Reegel on ajutine ja see eemaldatakse tulevases versioonis. Vt https://crbug.com/855690.
+
+      Kui reegel jäetakse määramata, kasutatakse vaikekäitumist, mille puhul ei lubata HTTP/2 ühenduse liitmist kliendisertifikaatidel põhinevate ühenduste korral.</translation>
 <translation id="1353966721814789986">Käivitamisel avatavad lehed</translation>
 <translation id="1359553908012294236">Kui selle reegli väärtuseks määratakse Tõene või seda ei seadistata, lubab teenus <ph name="PRODUCT_NAME" /> külaliste sisselogimise. Külaliste sisselogimised on teenuse <ph name="PRODUCT_NAME" /> profiilid, kus kõik aknad on inkognito režiimis.
 
@@ -184,6 +215,7 @@
 <translation id="1583248206450240930">Kasuta vaikimisi rakendust <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="1599424828227887013">Android-seadmetes saidi isoleerimise lubamine konkreetsete lähtekohtade puhul</translation>
 <translation id="1608755754295374538">URL-id, millele antakse ilma küsimata juurdepääs helijäädvustusseadmetele</translation>
+<translation id="1615221548356595305">Nende hostide puhul HTTP/2 ühenduste liitmise lubamine isegi kliendisertifikaatide kasutamisel</translation>
 <translation id="1617235075406854669">Brauseri ja allalaadimiste ajaloo kustutamise lubamine</translation>
 <translation id="163200210584085447">Selles loendis olevaid mustreid võrreldakse taotleva URL-i
       algse turvalisusega. Vaste leidmisel antakse SAML-i
@@ -1184,7 +1216,6 @@
       Kui jätate selle reegli määramata, on URL-i võtmetega anonüümsete andmete kogumine lubatud, kuid kasutaja saab seda muuta.</translation>
 <translation id="4250680216510889253">Ei</translation>
 <translation id="4261820385751181068">Seadme sisselogimisekraani lokaat</translation>
-<translation id="4264607809747169568">Juhib failide võrguhoidlate saadavalolekut Chrome OS-is</translation>
 <translation id="427220754384423013">Määrab printerid, mida kasutaja saab kasutada.
 
       Seda reeglit kasutatakse ainult siis, kui režiimis <ph name="BULK_PRINTERS_ACCESS_MODE" /> on valitud väärtus <ph name="PRINTERS_WHITELIST" />.
@@ -1343,6 +1374,7 @@
       Kui reegel on lubatud, tohivad saidid samal ajal navigeerida ja uusi aknaid/vahelehti avada.
       Kui reegel on keelatud või määramata, ei ole saitidel lubatud samal ajal navigeerida ja uusi aknaid/vahelehti avada.</translation>
 <translation id="4680961954980851756">Luba automaatne täitmine</translation>
+<translation id="4703402283970867140">Nutika hämardamismudeli lubamine, et pikendada ekraani hämardamise viiteaega</translation>
 <translation id="4722122254122249791">Saidi isoleerimise lubamine konkreetsete lähtekohtade puhul</translation>
 <translation id="4722399051042571387">Kui see on vale, ei saa kasutajad määrata PIN-koode, mis on nõrgad ja hõlpsalt äraarvatavad.
 
@@ -1571,13 +1603,6 @@
 
           Kui jätate selle reegli määramata, siis kasutatakse reeglit „AskNotifications” ja kasutaja saab seda muuta.</translation>
 <translation id="538108065117008131">Teenusel <ph name="PRODUCT_FRAME_NAME" /> järgmist tüüpi sisu käsitsemise lubamine.</translation>
-<translation id="5391363090783552279">Kui reegel on seatud väärtusele Tõene, loob <ph name="PRODUCT_NAME" /> ühenduse Casti seadmetega kõigi IP-aadresside, mitte ainult RFC1918/RFC4913 privaatsete aadresside kaudu.
-
-          Kui reegel on seatud väärtusele Väär, loob <ph name="PRODUCT_NAME" /> ühenduse Casti seadmetega ainult RFC1918/RFC4913 privaatsete aadresside kaudu.
-
-          Kui reegel on määramata, loob <ph name="PRODUCT_NAME" /> ühenduse Casti seadmetega ainult RFC1918/RFC4913 privaatsete aadresside kaudu, v.a juhul, kui funktsioon CastAllowAllIPs on lubatud.
-
-          Kui reegel „EnableMediaRouter” on seatud väärtusele Väär, ei ole selle reegli väärtusel mingit mõju.</translation>
 <translation id="5392172595902933844">Androidi olekuteave saadetakse tagasi
       serverisse.
 
@@ -2151,6 +2176,10 @@
 <translation id="6943577887654905793">Maci/Linuxi eelistuse nimi:</translation>
 <translation id="69525503251220566">Parameeter otsingu vaikepakkujale pildi järgi otsimise funktsiooni pakkumiseks</translation>
 <translation id="6956272732789158625">Ära luba ühelgi saidil võtmeid luua</translation>
+<translation id="6965859329738616662">Määrab, kas nutikal hämardamismudelil on lubatud ekraani hämardamise aega pikendada.
+
+      Kui ekraani hämardamine algab, uurib nutikas hämardamismudel, kas ekraani hämardamine tuleks edasi lükata. Kui nutikas hämardamismudel lükkab ekraani hämardamise edasi, pikendatakse sisuliselt aega, mille möödudes ekraan hämardatakse. Sel juhul reguleeritakse ka ekraani väljalülitamise, lukustamise ja tegevusetuse viiteaegu, et järgida algselt seadistatud hämardamisviivitust.
+      Kui reegel on määramata või seatud väärtusele Tõene, lubatakse nutikas hämardamismudel ja ekraani hämardamiseni kuluva aja pikendamine. Kui reegel on seatud väärtusele Väär, ei mõjuta nutikas hämardamismudel ekraani hämardamist.</translation>
 <translation id="6982028490425791294">
       Kui reegli väärtuseks määratakse Tõene, võib <ph name="PRODUCT_NAME" /> koguda Google'i teenustest (nt Google Meet) WebRTC sündmuselogisid ja need Google'i serveritesse üles laadida.
 
@@ -2603,6 +2632,13 @@
 <translation id="7980227303582973781">Eripiirangud puuduvad</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Ekraani pööramine 0 kraadi</translation>
+<translation id="8033913082323846868">See reegel on versioonist M70 eemaldatud, kasutage selle asemel reegleid AutofillAddressEnabled and AutofillCreditCardEnabled.
+
+Lubab rakenduse <ph name="PRODUCT_NAME" /> automaatse täitmise funktsiooni ja võimaldab kasutajatel varem talletatud teabe, näiteks aadressi ja krediitkaardi andmete, alusel veebivorme automaatselt täita.
+
+      Seade keelamisel ei saa automaatset täitmist kasutada.
+
+      Kui lubate seade või ei määra väärtust, siis saab kasutaja automaatset täitmist juhtida. See võimaldab neil seadistada automaatse täitmise profiile ning automaatse täitmise soovi korral sisse või välja lülitada.</translation>
 <translation id="8044493735196713914">Teabe saatmine seadme käivitusrežiimi kohta</translation>
 <translation id="8050080920415773384">Printimise omaprotsess</translation>
 <translation id="8059164285174960932">URL, kust kaugjuurdepääsuga kliendid peaksid saama autentimismärgi</translation>
@@ -2936,6 +2972,32 @@
 
       Kui see reegel on määramata, kasutatakse väärtust <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Reegel on versioonist M69 eemaldatud. Kasutage selle asemel reeglit
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Reegel määrab lähtekohtade (URL-id) või hostinimede mustrid (nt
+      „*.example.com”), mille puhul ei kehti ebaturvaliste lähtekohtade
+      turvapiirangud.
+
+      Selle eesmärk on võimaldada organisatsioonidel lisada lubatud loendisse 
+      pärandrakendusi, mis ei saa TLS-i juurutada, või seadistada sisese
+      veebiarenduse jaoks kontrollserveri, et arendajad saaksid testida turvalist
+      konteksti nõudvaid funktsioone ilma kontrollserverisse TLS-i juurutamata.
+      Reegel takistab ka omnikastikeses lähtekohale märke „Ebaturvaline” lisamist.
+
+      Selles reeglis URL-ide loendi määramisel on sama mõju mis samadest
+      URL-idest koosnevale komaeraldusega loendile käsurea märgistuse
+      „--unsafely-treat-insecure-origin-as-secure” määramisel. Kui reegel on
+      määratud, alistab see käsurea märgistuse.
+
+      Reegel on versioonis M69 asendatud reegliga
+      OverrideSecurityRestrictionsOnInsecureOrigin. Kui mõlemad reeglid on
+      kasutusel, alistab OverrideSecurityRestrictionsOnInsecureOrigin selle
+      reegli.
+
+      Turvaliste kontekstide kohta saate lisateavet aadressilt
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Reegel määrab, kas kasutajale võib esimesel sisselogimisel kuvada sünkroonimise nõusoleku. Kui kasutaja ei pea kunagi sünkroonimiseks nõusolekut andma, tuleb reegli väärtuseks määrata Väär.
       Kui reegel on seatud väärtusele Väär, ei kuvata sünkroonimise nõusolekut.
       Kui reegel on määramata või seatud väärtusele Tõene, võidakse kuvada sünkroonimise nõusolek.</translation>
diff --git a/components/policy/resources/policy_templates_fa.xtb b/components/policy/resources/policy_templates_fa.xtb
index 747cf37..907bd16 100644
--- a/components/policy/resources/policy_templates_fa.xtb
+++ b/components/policy/resources/policy_templates_fa.xtb
@@ -30,6 +30,30 @@
           اگر این تنظیم غیرفعال شود یا پیکربندی نشود، میزان کمک راه دور در زمینه کاربر اجرا خواهد شد و کاربران راه دور نمی‌توانند با پنجره‌های بالاآمده در میزکار تعامل داشته باشند.</translation>
 <translation id="1096105751829466145">ارائه دهنده جستجوی پیش‌فرض</translation>
 <translation id="1099282607296956954">فعال کردن «جداشدگی سایت» برای همه سایت‌ها</translation>
+<translation id="1100570158310952027">‏
+      این خط‌مشی فهرستی از مبدأها (نشانی‌های وب) یا الگوهای نام میزبان
+      (مانند «‎*.example.com») را مشخص می‌کند که محدودیت‌های امنیتی
+      مربوط به مبدأهای ناامن برای آن‌ها اعمال نمی‌شود.
+ 
+      
+      هدف این است که سازمان‌ها بتوانند برای برنامه‌های قدیمی که امکان
+      پیاده‌سازی TLS را ندارند، فهرست مبدأهای مجاز تنظیم کنند یا بتوانند
+      سروری شبه‌عملیاتی برای برنامه‌نویسی وب داخلی راه‌اندازی کنند تا
+      برنامه‌نویس‌های این سازمان‌ها بتوانند بدون اجبار به پیاده‌سازی TLS در
+      سرور شبه‌عملیاتی، ویژگی‌هایی را که نیازمند بافت ایمن هستند آزمایش کنند.
+      این خط‌مشی همچنین از برچسب خوردن مبدأ به‌عنوان «ایمن نیست» در
+      omnibox جلوگیری می‌کند.
+
+      تنظیم کردن فهرست نشانی‌های وب در این خط‌مشی همان اثری را دارد که تنظیم
+      پرچم خط فرمان «‎--unsafely-treat-insecure-origin-as-secure» بر فهرست
+      جداشده با ویرگول از این نشانی‌های وب دارد. اگر این خط‌مشی تنظیم شود،
+      پرچم خط فرمان لغو می‌شود.
+
+      این خط‌مشی UnsafelyTreatInsecureOriginAsSecure را درصورت وجود لغو می‌کند.
+
+      برای اطلاعات بیشتر درباره بافت‌های ایمن، به
+ https://www.w3.org/TR/secure-contexts/     ‎ بروید.
+      </translation>
 <translation id="1117535567637097036">‏کنترل‌کننده‌های پروتکل که ازطریق این خط‌مشی تنظیم شده‌اند هنگام کنترل اهداف Android استفاده نمی‌شوند.</translation>
 <translation id="1118093128235245168">‏به سایت‌ها اجازه دهید برای ارائه دسترسی به دستگاه USB متصل از کاربر درخواست کنند</translation>
 <translation id="1128903365609589950">‏دایرکتوری‌ای را پیکربندی می‌کند که <ph name="PRODUCT_NAME" /> برای ذخیره فایل‌های ذخیره‌شده در حافظه پنهان روی دیسک استفاده می‌کند.
@@ -75,6 +99,8 @@
       اگر این خط‌مشی تنظیم نشود یا روی نادرست تنظیم شود، مجموعه رمز RC4 در TLS فعال نمی‌شود. در غیر این صورت، می‌توان برای حفظ سازگاری با یک سرور قدیمی، این خط‌مشی را روی درست تنظیم کرد. این اقدام موقتی است و سرور باید پیکربندی مجدد شود.</translation>
 <translation id="1297182715641689552">‏استفاده از اسکریپت pac. برای پروکسی</translation>
 <translation id="1304973015437969093">شناسه افزونه‌ها/برنامه‌ها و نشانی وب به‌روزرسانی‌ها برای نصب در سکوت</translation>
+<translation id="1307454923744766368">مبدأها یا الگوهای نام میزبان که محدودیت‌های
+      مبدأهای ناامن نباید برای آن‌ها اعمال شود</translation>
 <translation id="1313457536529613143">درصدی را نشان می‌دهد که با آن تأخیر عدم فعالیت صفحه نمایش هنگامی که فعالیت کاربر موردنظر است و صفحه نمایش کم نور شده یا بلافاصله بعد از خاموش شدن صفحه نمایش، اندازه‌گیری می‌شود.
 
           اگر این خط‌مشی تنظیم شود، درصدی را نشان می‌دهد که با آن تأخیر عدم فعالیت صفحه نمایش، هنگامی که فعالیت کاربر موردنظر است و صفحه نمایش کم نور شده یا بلافاصله بعد از خاموش شدن صفحه نمایش، اندازه‌گیری می‌شود. وقتی تأخیر عدم فعالیت صفحه نمایش اندازه‌گیری شود، خاموش شدن صفحه و  تأخیر قفل و بدون فعالیت بودن صفحه به‌ گونه‌ای تنظیم می‌شود که تأخیر عدم فعالیت صفحه نمایش همانطوری باشد که در ابتدا پیکربندی شده بود.
@@ -86,6 +112,11 @@
 <translation id="1327466551276625742">فعال کردن فرمان پیکربندی شبکه در حالت آفلاین</translation>
 <translation id="1330145147221172764">فعال کردن صفحه‌کلید روی صفحه</translation>
 <translation id="13356285923490863">نام خط‌مشی</translation>
+<translation id="1352174694615491349">‏این خط‌مشی ادغام اتصال HTTP/2 را هنگام استفاده از گواهینامه‌های کارخواه ممکن می‌سازد. برای ادغام کردن، هم نام میزبان اتصال جدید و هم نام میزبان اتصال موجود باید با یک یا چند الگوی مشخص‌شده توسط این خط‌مشی مطابقت داشته باشد. این خط‌مشی فهرستی از چند میزبان است که از قالب فیلتر «URLBlacklist» استفاده می‌کنند: برای مثال «example.com» با «example.com» و همه زیردامنه‌ها (برای نمونه «sub.example.com») مطابقت دارد، درحالی‌که «‎.example.net» دقیقاً با «example.net» مطابقت دارد.
+
+      درخواست‌های ادغام به میزبان‌های مختلف ازطریق اتصال‌هایی که از گواهینامه کارخواه استفاده می‌کند، ممکن است باعث ایجاد مشکلات امنیتی و حریم خصوصی شود، زیرا حتی اگر کاربر این مورد را صراحتاً مجاز نکند، مجوز محیطی به همه درخواست‌ها منتقل می‌شود. این خط‌مشی موقت است و در نسخه‌های آتی حذف خواهد شد. برای اطلاعات بیشتر به https://crbug.com/855690 بروید.
+
+      اگر این خط‌مشی تنظیم نشود، از رفتار پیش‌فرض استفاده می‌شود. رفتار پیش‌فرض به این‌صورت است که در اتصال‌هایی که از گواهینامه کارخواه استفاده می‌کنند، به هیچ اتصال HTTP/2 اجازه ادغام داده نمی‌شود.</translation>
 <translation id="1353966721814789986">صفحات شروع به کار</translation>
 <translation id="1359553908012294236">اگر این خط‌مشی روی درست یا پیکربندی نشده تنظیم شود، <ph name="PRODUCT_NAME" /> ورود به سیستم مهمان را فعال می‌کند. ورود‌ به سیستم مهمان، نمایه <ph name="PRODUCT_NAME" /> است که در آن تمام پنجره‌ها در حالت ناشناس عمل می‌کنند.
 
@@ -179,6 +210,7 @@
 <translation id="1583248206450240930">از <ph name="PRODUCT_FRAME_NAME" /> به‌طور پیش‌فرض استفاده شود</translation>
 <translation id="1599424828227887013">‏فعال کردن «جداشدگی سایت» برای مبدأهای مشخص‌شده در دستگاه‌های Android</translation>
 <translation id="1608755754295374538">نشانی‌های وب که بدون سؤال از کاربر اجازه دسترسی به دستگاه‌های ضبط صدا را خواهند داشت</translation>
+<translation id="1615221548356595305">‏اجازه ادغام اتصال‌های HTTP/2 برای این میزبان‌ها حتی درصورت استفاده از گواهینامه‌های کارخواه</translation>
 <translation id="1617235075406854669">فعال‌سازی حذف سابقه مرور و بارگیری</translation>
 <translation id="163200210584085447">‏الگوهای این فهرست با نسخه اصلی نشانی وب درخواستی مطابقت داده می‌شوند
       اگر مورد منطبقی پیدا شد، دسترسی به دستگاه‌های ضبط ویدئو در صفحه‌های ورود به سیستم
@@ -1144,7 +1176,6 @@
       اگر این خط‌مشی تنظیم نشود، جمع‌آوری داده ناشناس‌شده حاوی نشانی وب فعال می‌شود اما کاربر می‌تواند آن را تغییر دهد.</translation>
 <translation id="4250680216510889253">نه</translation>
 <translation id="4261820385751181068">منطقه زبانی صفحه ورود به سیستم دستگاه</translation>
-<translation id="4264607809747169568">‏دردسترس بودن Network File Shares برای سیستم‌عامل Chrome را کنترل می‌کند</translation>
 <translation id="427220754384423013">‏چاپگرهایی را که کاربر می‌تواند استفاده کند مشخص می‌کند.
 
       این خط‌مشی فقط درصورت انتخاب <ph name="PRINTERS_WHITELIST" /> برای <ph name="BULK_PRINTERS_ACCESS_MODE" /> استفاده می‌شود.
@@ -1296,6 +1327,7 @@
       اگر این خط‌مشی فعال شود، به سایت‌ها اجازه پیمایش و باز کردن پنجره/برگه جدید به‌طور هم‌زمان داده می‌شود.
       اگر این خط‌مشی غیرفعال شود یا تنظیم نشود، به سایت‌ها اجازه پیمایش و باز کردن پنجره/برگه جدید به‌طور هم‌زمان داده نمی‌شود.</translation>
 <translation id="4680961954980851756">فعال کردن قابلیت تکمیل  خودکار</translation>
+<translation id="4703402283970867140">فعال کردن مدل کم‌نور شدن هوشمند برای افزایش مدت‌زمان کم شدن نور صفحه‌نمایش</translation>
 <translation id="4722122254122249791">فعال کردن «جداشدگی سایت» برای مبدأهای مشخص‌شده</translation>
 <translation id="4722399051042571387">اگر نادرست باشد، کاربر نمی‌تواند پین‌های ضعیف که به‌سادگی حدس زده می‌شوند، تنظیم کند.
 
@@ -1506,13 +1538,6 @@
 <translation id="5370279767682621504">‏فعال کردن پشتیبانی از HTTP/0.9 در درگاه‌های غیرپیش‌فرض</translation>
 <translation id="5378985487213287085">‏به شما امکان می‌دهد تعیین کنید آیا وب سایت‌ها مجاز به نمایش اعلان‌های دسکتاپ هستند. نمایش اعلان‌های دسکتاپ می‌تواند به صورت پیش‌فرض مجاز یا غیرمجاز باشد یا هر بار که یک وب سایت می‌خواهد اعلان دسکتاپی نشان دهد از کاربر سؤال شود. اگر این قانون تنظیم نشود "AskNotifications" استفاده می‌شود و کاربر می‌تواند آن را تغییر دهد.</translation>
 <translation id="538108065117008131">به <ph name="PRODUCT_FRAME_NAME" /> اجازه کنترل این نوع محتواها داده شود.</translation>
-<translation id="5391363090783552279">‏اگر این خط‌مشی روی درست تنظیم شود، <ph name="PRODUCT_NAME" /> در همه نشانی‌های IP (نه‌فقط نشانی‌های خصوصی RFC1918/RFC4913) به دستگاه‌های Cast متصل می‌شود.
-
-          اگر این خط‌مشی روی نادرست تنظیم شود، <ph name="PRODUCT_NAME" /> فقط در نشانی‌های خصوصی RFC1918/RFC4913 به دستگاه‌های Cast متصل می‌شود.
-
-          اگر این خط‌مشی تنظیم نشود، <ph name="PRODUCT_NAME" /> فقط در نشانی‌های خصوصی RFC1918/RFC4913 به دستگاه‌های Cast متصل می‌شود، مگراینکه ویژگی CastAllowAllIPs فعال باشد.
-
-          اگر خط‌مشی «EnableMediaRouter» روی نادرست تنظیم شود، مقدار این خط‌مشی تأثیری نخواهد داشت.</translation>
 <translation id="5392172595902933844">‏اطلاعات درباره وضعیت Android به سرور برگردانده
       می‌شود.
 
@@ -2063,6 +2088,10 @@
 <translation id="6943577887654905793">‏نام تنظیمات Mac/Linux:</translation>
 <translation id="69525503251220566">پارامتر قابلیت جستجو به وسیله تصویر را برای ارائه‌دهنده جستجوی پیش‌فرض ارائه می‌دهد</translation>
 <translation id="6956272732789158625">اجازه ندادن به هیچ سایتی برای استفاده از تولید کلید</translation>
+<translation id="6965859329738616662">تعیین می‌کند مدل کم‌نور شدن هوشمند می‌تواند مدت‌زمان کم‌نور شدن صفحه را افزایش دهد یا نه.
+
+وقتی صفحه‌نمایش در آستانه کم‌نور شدن است، مدل کم‌نور شدن هوشمند ارزیابی می‌کند کم شدن نور صفحه‌نمایش باید به تعویق بیفتد یا نه. اگر مدل کم‌نور شدن هوشمند کم شدن نور صفحه‌نمایش را به تعویق بیندازد، ‌مدت‌زمان کم نور شدن صفحه‌نمایش را به‌طور موثری افزایش می‌دهد. دراین‌صورت، تأخیرهای خاموش شدن صفحه، قفل شدن صفحه و بدون فعالیت شدن دستگاه طوری تنظیم می‌شود تا فاصله زمانی‌شان از کم شدن نور صفحه تفاوتی با پیکربندی اولیه نداشته باشد.
+      اگر این خط‌مشی روی «درست» تنظیم شود یا تنظیم نشود، مدل کم‌نور شدن هوشمند فعال می‌شود و به آن اجازه داده می‌شود زمان کم نور شدن صفحه را افزایش دهد. اگر این خط‌مشی روی «نادرست» تنظیم شود، مدل کم‌نور شدن هوشمند روی کم شدن نور صفحه تأثیری نمی‌گذارد.</translation>
 <translation id="6982028490425791294">‏
       اگر این خط‌مشی روی درست تنظیم شود، <ph name="PRODUCT_NAME" /> اجازه می‌یابد گزارش‌های وقایع WebRTC را از سرویس‌های Google (مثل Google Meet) جمع‌آوری کند و آن‌ها را در Google بارگذاری کند.
 
@@ -2489,6 +2518,13 @@
 <translation id="7980227303582973781">بدون محدودیت خاص</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">چرخش ۰ درجه‌ای صفحه</translation>
+<translation id="8033913082323846868">‏این خط‌مشی در M70 منسوخ شده است، لطفاً به‌جای آن از «AutofillAddressEnabled» و «AutofillCreditCardEnabled» استفاده کنید.
+
+      قابلیت «تکمیل خودکار» را در <ph name="PRODUCT_NAME" /> فعال می‌کند و به کاربران اجازه می‌دهد فرم‌ها را در وب با استفاده از اطلاعات ذخیره‌شده قبلی (مانند نشانی یا شمارهٔ کارت اعتباری) به‌صورت خودکار تکمیل کنند.
+
+      اگر این تنظیم غیرفعال شود، ویژگی «تکمیل خودکار» برای همه کاربران غیرقابل دسترس خواهد بود.
+
+      اگر این گزینه فعال شود یا مقداری به آن داده نشود، «تکمیل خودکار» تحت کنترل کاربر باقی می‌ماند. این حالت به کاربران اجازه می‌دهد بتوانند نمایه‌های «تکمیل خودکار» پیکربندی کنند و خودشان این ویژگی را فعال یا غیرفعال کنند.</translation>
 <translation id="8044493735196713914">گزارش حالت راه‌اندازی دستگاه</translation>
 <translation id="8050080920415773384">چاپ محلی</translation>
 <translation id="8059164285174960932">نشانی اینترنتی که در آن سرویس‌گیرنده‌های دسترسی راه دور باید رمز احراز هویت دریافت کنند</translation>
@@ -2813,6 +2849,34 @@
 
       اگر این خط‌مشی تنظیم نشود، <ph name="PRINTERS_ALLOW_ALL" /> استفاده خواهد شد.
       </translation>
+<translation id="8938932171964587769">‏در M69 منسوخ شده است. به‌جای آن
+از «OverrideSecurityRestrictionsOnInsecureOrigin» استفاده کنید.
+
+      این خط‌مشی فهرستی از مبدأها (نشانی‌های وب) یا الگوهای نام میزبان
+      (مانند «‎*.example.com») را مشخص می‌کند که محدودیت‌های امنیتی
+      مربوط به مبدأهای ناامن برای آن‌ها اعمال نمی‌شود.
+ 
+      هدف این است که سازمان‌ها بتوانند برای برنامه‌های قدیمی که امکان
+      پیاده‌سازی TLS را ندارند، فهرست مبدأهای مجاز تنظیم کنند یا بتوانند
+      سروری شبه‌عملیاتی برای برنامه‌نویسی وب داخلی راه‌اندازی کنند تا
+      برنامه‌نویس‌های این سازمان‌ها بتوانند بدون اجبار به پیاده‌سازی TLS در
+      سرور شبه‌عملیاتی، ویژگی‌هایی را که نیازمند بافت ایمن هستند آزمایش کنند.
+      این خط‌مشی همچنین از برچسب خوردن مبدأ به‌عنوان «ایمن نیست» در
+      omnibox جلوگیری می‌کند.
+
+      تنظیم کردن فهرست نشانی‌های وب در این خط‌مشی همان اثری را دارد که تنظیم
+      پرچم خط فرمان «‎--unsafely-treat-insecure-origin-as-secure» بر فهرست
+      جداشده با ویرگول از این نشانی‌های وب دارد. اگر این خط‌مشی تنظیم شود،
+      پرچم خط فرمان لغو می‌شود.
+
+      این خط‌مشی در M69 منسوخ شده است و
+      با «OverrideSecurityRestrictionsOnInsecureOrigin» جایگزین شده است.
+      اگر هر دو خط‌مشی موجود باشد،
+      «OverrideSecurityRestrictionsOnInsecureOrigin» این خط‌مشی را لغو می‌کند.
+
+      برای اطلاعات بیشتر درباره بافت‌های ایمن،
+      به https://www.w3.org/TR/secure-contexts/‎ بروید.
+      </translation>
 <translation id="8942616385591203339">این خط‌مشی کنترل می‌کند «موافقت با همگام‌سازی» درطول اولین ورود به سیستم به کاربر نشان داده شود یا نه. اگر «موافقت با همگام‌سازی» هیچ‌گاه برای کاربر نیاز نباشد، باید روی نادرست تنظیم شود.
       اگر روی نادرست تنظیم شود، «موافقت با همگام‌سازی» نمایش داده نمی‌شود.
       اگر روی درست تنظیم شود یا تنظیم نشود، «موافقت با همگام‌سازی» می‌تواند نمایش داده شود.</translation>
diff --git a/components/policy/resources/policy_templates_fi.xtb b/components/policy/resources/policy_templates_fi.xtb
index c06551a3..c1ad1cb 100644
--- a/components/policy/resources/policy_templates_fi.xtb
+++ b/components/policy/resources/policy_templates_fi.xtb
@@ -33,6 +33,28 @@
           Jos tämä asetus on poistettu käytöstä tai sitä ei ole määritetty, etätuen isäntä suoritetaan käyttäjän kontekstissa, jolloin etäkäyttäjä ei voi käyttää työpöydällä olevia järjestelmänvalvojan oikeuksia edellyttäviä ikkunoita.</translation>
 <translation id="1096105751829466145">Oletushakupalvelu</translation>
 <translation id="1099282607296956954">Ota sivuston eristäminen käyttöön kaikilla sivustoilla</translation>
+<translation id="1100570158310952027">
+      Käytäntö määrittelee ne alkuperät (URL-osoitteet) tai isäntänimimallit (esim.
+      *.example.com), joihin ei sovelleta suojaamattomien alkuperien
+      tietoturvarajoituksia.
+
+      Tällöin organisaatiot voivat määrittää sallittujen alkuperien luettelon vanhoille
+      sovelluksille, jotka eivät voi ottaa käyttöön TLS:ää, tai määrittää 
+      valmistelupalvelimen, jota käytetään sisäiseen verkkokehitykseen, jotta
+      kehittäjät voivat testata turvallisia konteksteja edellyttäviä ominaisuuksia ilman
+      TLS:n käyttöä valmistelupalvelimella. Tämä käytäntö myös estää lähteen
+      merkitsemisen ei-turvalliseksi omniboxissa.
+
+      Kun URL-osoitteita määritetään tällä käytännöllä, tämä vastaa
+      --unsafely-treat-insecure-origin-as-secure‑merkinnän antamista pilkuilla erotetuille
+      osoitteille komentorivillä. Jos tämä käytäntö on määritetty, se ohittaa 
+      komentorivimerkinnän.
+
+      Tämä käytäntö korvaa UnsafelyTreatInsecureOriginAsSecuren, jos se on käytössä.
+
+      Lisätietoja turvallisista konteksteista on osoitteessa
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Tämän käytännön kautta määritettyjä protokollan käsittelijöitä ei käytetä Android-tavoitteisiin.</translation>
 <translation id="1118093128235245168">Salli sivustojen pyytää käyttäjältä yhdistetyn USB-laitteen käyttöoikeutta</translation>
 <translation id="1128903365609589950">Määrittää levyllä sijaitsevan hakemiston, johon <ph name="PRODUCT_NAME" /> tallentaa välimuistitiedostot.
@@ -80,6 +102,8 @@
       Jos tätä käytäntöä ei aseteta tai jos sen arvo on epätosi, TLS:n RC4-salaustekniikoita ei oteta käyttöön. Jos yhteensopivuus vanhentuneen palvelimen kanssa täytyy varmistaa, arvoksi voidaan asettaa tosi. Tämä on kuitenkin tilapäinen toimenpide, ja palvelimen määritykset tulee tehdä uudelleen.</translation>
 <translation id="1297182715641689552">Käytä .pac-välityspalvelinkoodia</translation>
 <translation id="1304973015437969093">Laajennuksien ja sovellusten tunnukset ja päivitys-URL-osoitteet asennetaan taustalla</translation>
+<translation id="1307454923744766368">Alkuperät tai isäntänimimallit, joihin ei sovelleta
+      suojaamattomien alkuperien rajoituksia</translation>
 <translation id="1313457536529613143">Määrittää prosenttimäärän, jolla näytön himmennyksen viive skaalataan, kun käyttäjän toimia huomataan näytön ollessa himmennettynä tai pian näytön sammuttamisen jälkeen.
 
           Jos tämä käytäntö on asetettu, se määrittää prosenttimäärän, jolla näytön himmennyksen viive skaalataan, kun käyttäjän toimia huomataan näytön ollessa himmennettynä tai pian näytön sammuttamisen jälkeen. Kun himmennyksen viive on skaalattu, näytön sammutus-, lukitus- ja käyttämättömyysviiveet säädetään ylläpitämään samoja etäisyyksiä näytön himmennyksen viiveestä kuin alunperin määritettiin.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">Ota käyttöön verkon määrityskehote offline-tilassa</translation>
 <translation id="1330145147221172764">Ota ruutunäppäimistö käyttöön</translation>
 <translation id="13356285923490863">Käytännön nimi</translation>
+<translation id="1352174694615491349">Tämä käytäntö sallii HTTP/2-yhteyden yhdistämisen, kun käyttöoikeusvarmenteet ovat käytössä. Jotta ne voidaan yhdistää, sekä mahdollisen uuden yhteyden että olemassa olevan yhteyden isäntänimien on vastattava vähintään yhtä tässä käytännössä kuvattua mallia. Käytäntö on luettelo isäntiä, jotka käyttävät URLBlacklist-suodatinmuotoa: example.comin vastaavuuksia ovat example.com ja kaikki sen aliverkkotunnukset (esim. sub.example.com), kun taas .example.netin vastaavuus on vain example.net.
+
+      Eri käyttöoikeusvarmenteita käyttävien yhteyksien isännille lähetettävät yhdistämispyynnot voivat aiheuttaa tietoturva- ja yksityisyysongelmia, koska ympäristön relevanttius välitetään kaikille pyynnöille, vaikka käyttäjä ei nimenomaisesti vahvistanut tätä. Käytäntö on väliaikainen ja se poistetaan tulevassa julkaisussa. Lisätietoja: https://crbug.com/855690.
+
+      Jos käytäntöä ei ole määritetty, käytetään oletuskäytöstä eli sallitaan kaikkien sellaisten HTTP/2-yhteyksien yhdistäminen, joiden yhteydet käyttävät käyttöoikeusvarmenteita.</translation>
 <translation id="1353966721814789986">Käynnistyssivut:</translation>
 <translation id="1359553908012294236">Jos tämän käytännön arvoksi asetetaan Tosi tai sitä ei määritetä, <ph name="PRODUCT_NAME" /> sallii vieraskirjautumisen. Vieraskirjautumisessa <ph name="PRODUCT_NAME" /> käyttää profiilia, jonka kaikki ikkunat avataan incognito-tilassa.
 
@@ -182,6 +211,7 @@
 <translation id="1583248206450240930">Käytä tuotetta <ph name="PRODUCT_FRAME_NAME" /> oletuksena</translation>
 <translation id="1599424828227887013">Ota sivuston eristäminen käyttöön tiettyjen alkuperien kohdalla Android-laitteilla</translation>
 <translation id="1608755754295374538">URL-osoitteet, joille on myönnetty pääsy äänikaappauslaitteisiin ilman erillisen luvan pyytämistä</translation>
+<translation id="1615221548356595305">Salli HTTP/2-yhteyksien yhdistäminen näille isännille, vaikka käyttöoikeusvarmenteet olisivat käytössä</translation>
 <translation id="1617235075406854669">Salli selaus- ja lataushistorian poistaminen</translation>
 <translation id="163200210584085447">Tämän luettelon osoitemalleja verrataan pyytävän URL-osoitteen
       suojaustiedon alkuperään. Jos vastaavuus havaitaan, videontallennuslaitteiden
@@ -1156,7 +1186,6 @@
       Jos tätä käytäntöä ei ole määritetty, anonymisoidun datan kerääminen URL-avaimella on käytössä, mutta käyttäjä voi muuttaa asetusta.</translation>
 <translation id="4250680216510889253">Ei</translation>
 <translation id="4261820385751181068">Laitteen kirjautumisnäytön kieli- ja maa-asetus</translation>
-<translation id="4264607809747169568">Määrittää, onko Verkkotiedostojen jakaminen käytettävissä Chrome-käyttöjärjestelmässä</translation>
 <translation id="427220754384423013">Määritä tulostimet, joita käyttäjä voi käyttää.
 
       Tätä käytäntöä käytetään vain, jos <ph name="PRINTERS_WHITELIST" /> on valittuna asetuksen <ph name="BULK_PRINTERS_ACCESS_MODE" /> arvoksi.
@@ -1307,6 +1336,7 @@
       Jos tämä käytäntö on otettu käyttöön, sivustot saavat käyttää siirtymistoimintoja ja avata uusia ikkunoita tai välilehtiä samanaikaisesti.
       Jos tämä käytäntö on poistettu käytöstä tai sitä ei ole määritetty, sivustoja estetään käyttämästä siirtymistoimintoja ja avaamasta uusia ikkunoita tai välilehtiä samanaikaisesti.</translation>
 <translation id="4680961954980851756">Ota automaattinen täyttö käyttöön</translation>
+<translation id="4703402283970867140">Ota käyttöön älykäs himmennysmalli pidentääksesi näytön himmennysaikaa</translation>
 <translation id="4722122254122249791">Ota sivuston eristäminen käyttöön tiettyjen alkuperien kohdalla</translation>
 <translation id="4722399051042571387">Jos asetuksen arvo on epätosi, käyttäjät eivät voi asettaa heikkoja tai helposti arvattavia PIN-koodeja.
 
@@ -1517,13 +1547,6 @@
 <translation id="5370279767682621504">Ota käyttöön HTTP/0.9-tuki muissa kuin oletusporteissa</translation>
 <translation id="5378985487213287085">Voit määrittää, saavatko sivustot näyttää työpöytäilmoituksia. Työpöytäilmoituksien näyttäminen voidaan sallia oletuksena, kieltää oletuksena, tai käyttäjältä voidaan kysyä aina sivuston halutessa näyttää työpöytäilmoituksia. Jos tätä käytäntöä ei ole määritetty, käytetään AskNotifications-käytäntöä, ja käyttäjä voi muuttaa sitä.</translation>
 <translation id="538108065117008131">Anna tuotteen <ph name="PRODUCT_FRAME_NAME" /> käsitellä seuraavia sisältötyyppejä.</translation>
-<translation id="5391363090783552279">Jos tämän käytännön arvo on tosi, <ph name="PRODUCT_NAME" /> yhdistää kaikkiin Cast-laitteisiin kaikissa IP-osoitteissa, ei vain yksityisissä RFC1918- tai RFC4913-osoitteissa.
-
-          Jos tämän käytännön arvo on epätosi, <ph name="PRODUCT_NAME" /> yhdistää vain yksityisissä RFC1918- tai RFC4913-osoitteissa oleviin Cast-laitteisiin.
-
-          Jos tätä käytäntöä ei ole määritetty, <ph name="PRODUCT_NAME" /> yhdistää vain yksityisissä RFC1918- tai RFC4913-osoitteissa oleviin Cast-laitteisiin, paitsi jos CastAllowAllIPs-ominaisuus on käytössä.
-
-          Jos EnableMediaRouter-käytännön arvo on epätosi, tämän käytännön arvolla ei ole merkitystä.</translation>
 <translation id="5392172595902933844">Androidin tilatietoja lähetetään takaisin
       palvelimelle.
 
@@ -2074,6 +2097,10 @@
 <translation id="6943577887654905793">Mac/Linux-asetuksen nimi:</translation>
 <translation id="69525503251220566">Parametri, joka tarjoaa kuvan perusteella haku -ominaisuuden oletushakupalvelulle</translation>
 <translation id="6956272732789158625">Älä salli sivustojen käyttää avainten luomistoimintoa.</translation>
+<translation id="6965859329738616662">Määrittää, saako älykäs himmennysmalli pidentää näytön himmennysaikaa
+
+      Kun näyttöä ollaan himmentämässä, älykäs himmennysmalli arvioi, pitäisikö näytön himmennystä viivästyttää. Jos älykäs himmennysmalli viivästyttää näytön himmennystä, se pidentää sen myötä näytön himmennysaikaa. Tässä tapauksessa näytön sammuttamisen, näytön lukituksen ja käyttämättömyysajan viivästykset säädetään niin, että niissä pysyy samat etäisyydet näytön himmennysviiveeseen kuin alkuperäisissä asetuksissa.
+      Jos käytännön arvoksi on merkitty tosi tai sitä ei ole määritetty, älykäs himmennysmalli otetaan käyttöö ja sen annetaan pidentää näytön himmennysaikaa. Jos käytännön arvoksi on merkitty epätosi, älykäs himmennysmalli ei vaikuta näytön himmennykseen.</translation>
 <translation id="6982028490425791294">
       Jos tämän käytännön arvo on tosi, <ph name="PRODUCT_NAME" /> saa kerätä WebRTC-tapahtumalokeja Googlen palveluista (esim. Google Meet) ja lähettää niitä Googlelle.
 
@@ -2499,6 +2526,13 @@
 <translation id="7980227303582973781">Ei erikoisrajoituksia</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Kierrä näyttöä 0 astetta.</translation>
+<translation id="8033913082323846868">Tämä käytäntö on poistettu käytöstä M70:ssä, käytä sen sijaan AutofillAddressEnabled- ja AutofillCreditCardEnabled-käytäntöjä.
+
+      Ottaa käyttöön tuotteen <ph name="PRODUCT_NAME" /> automaattinen täyttö ‑ominaisuuden ja antaa käyttäjien täydentää verkkolomakkeita automaattisesti aiemmin tallennetuilla tiedoilla, kuten osoitteilla tai luottokorttitiedoilla.
+
+      Jos poistat tämän asetuksen käytöstä, automaattista täyttöä ei voi käyttää. 
+
+      Jos otat asetuksen käyttöön tai et määritä asetusta, automaattinen täyttö pysyy käyttäjän hallinnassa. Käyttäjä voi tällöin määrittää automaattisen täytön profiileja ja ottaa halutessaan automaattisen täytön käyttöön tai poistaa sen käytöstä.</translation>
 <translation id="8044493735196713914">Ilmoita laitteen tila uudelleenkäynnistyksen yhteydessä</translation>
 <translation id="8050080920415773384">Natiivitulostus</translation>
 <translation id="8059164285174960932">URL-osoite, josta etäkäytön asiakkaiden tulisi saada todennustunnus</translation>
@@ -2821,6 +2855,32 @@
 
       Jos tätä käytäntöä ei ole määritetty, oletusarvo on <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Poistettu käytöstä M69:ssä. Käytä sen sijaan
+      OverrideSecurityRestrictionsOnInsecureOrigin-käytäntöä.
+
+      Käytäntö määrittelee ne alkuperät (URL-osoitteet) tai isäntänimimallit
+      (esim. *.example.com), joihin ei sovelleta suojaamattomien alkuperien 
+      tietoturvarajoituksia.
+
+      Tällöin organisaatiot voivat määrittää sallittujen alkuperien luettelon
+      vanhoille sovelluksille, jotka eivät voi ottaa käyttöön TLS:ää, tai määrittää 
+      valmistelupalvelimen, jota käytetään sisäiseen verkkokehitykseen, jotta
+      kehittäjät voivat testata turvallisia konteksteja edellyttäviä ominaisuuksia ilman 
+      TLS:n käyttöä valmistelupalvelimella. Tämä käytäntö myös estää lähteen
+      merkitsemisen ei-turvalliseksi omniboxissa.
+
+      Kun URL-osoitteita määritetään tällä käytännöllä, tämä vastaa
+      --unsafely-treat-insecure-origin-as-securemerkinnän antamista pilkuilla erotetuille
+      osoitteille komentorivillä. Jos tämä käytäntö on määritetty, 
+      se ohittaa komentorivimerkinnän.
+
+      Käytäntö on poistettu käytöstä M69:ssä ja sen tilalla on nyt
+      OverrideSecurityRestrictionsOnInsecureOrigin. Jos molemmat käytännöt ovat
+      käytössä, OverrideSecurityRestrictionsOnInsecureOrigin korvaa tämän käytännön.
+
+      Lisätietoja turvallisista konteksteista on osoitteessa
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Tällä käytännöllä määritetään, voiko suostumuksen synkronointia näyttää käyttäjälle ensimmäisen kirjautumisen aikana. Arvon pitäisi olla epätosi, jos käyttäjän ei koskaan tarvitse käyttää suostumuksen synkronointia.
       Jos arvoksi on asetettu epätosi, suostumuksen synkronointia ei näytetä.
       Jos arvoksi on asetettu tosi tai käytäntöä ei ole määritetty, suostumuksen synkronointi voidaan näyttää.</translation>
diff --git a/components/policy/resources/policy_templates_fil.xtb b/components/policy/resources/policy_templates_fil.xtb
index a18eed7ac..7840629c 100644
--- a/components/policy/resources/policy_templates_fil.xtb
+++ b/components/policy/resources/policy_templates_fil.xtb
@@ -33,6 +33,28 @@
           Kung naka-disable o hindi naka-configure ang setting na ito, ang host ng remote na tulong ay patatakbuhin sa konteksto ng user at hindi magagawa ng mga remote na user na makipag-ugnayan sa mga elevated window sa desktop.</translation>
 <translation id="1096105751829466145">Default na provider ng paghahanap</translation>
 <translation id="1099282607296956954">I-enable ang Paghihiwalay ng Site para sa bawat site</translation>
+<translation id="1100570158310952027">
+      Tumutukoy ang patakaran ng isang listahan ng mga pinagmulan (mga URL) o pattern ng hostname (tulad
+      ng "*.example.com") kung saan hindi malalapat ang mga paghihigpit sa seguridad sa mga
+      hindi secure na pinagmulan.
+
+      Ang layunin ay payagan ang mga organisasyong magtakda ng mga pinagmulan ng whitelist para sa mga legacy
+      application kung saan hindi maaaring i-deploy ang TLS, o mag-set up ng staging server para sa
+      internal na pag-develop sa web nang sa gayon ay masubukan ng mga developer ng mga ito ang mga feature
+      na nangangailangan ng mga secure na konteksto nang hindi kinakailangang i-deploy ang TLS sa staging
+      server. Mapipigilan din ng patakarang ito na magkaroon ng label na
+      "Hindi Secure" ang origin sa omnibox.
+
+      Ang pagtatakda ng listahan ng mga URL sa patakarang ito ay may epektong katulad sa pagtatakda sa
+      command-line flag na '--unsafely-treat-insecure-origin-as-secure' sa isang
+      comma-separated list ng mga parehong URL. Kung itatakda ang patakaran,
+      io-override nito ang command-line flag.
+
+      Io-override ng patakarang ito ang UnsafelyTreatInsecureOriginAsSecure, kung mayroon man.
+
+      Para sa higit pang impormasyon sa mga secure na konteksto, tingnan sa
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Ang mga tagapangasiwa ng protocol na itinakda sa pamamagitan ng patakarang ito ay hindi ginagamit kapag nangangasiwa ng mga intent sa Android.</translation>
 <translation id="1118093128235245168">Payagan ang mga site na hilingin sa user na magbigay ng access sa isang nakakonektang USB device</translation>
 <translation id="1128903365609589950">Kino-configure ang direktoryong gagamitin ng <ph name="PRODUCT_NAME" /> para sa pag-iimbak ng mga naka-cache na file sa disk.
@@ -80,6 +102,8 @@
       Kung hindi itatakda ang patakaran, o kung itatakda ito sa false, hindi mae-enable ang mga RC4 na cipher suite sa TLS. Maaari itong itakda sa true upang manatili itong compatible sa isang lumang server. Isa lang itong pansamantalang solusyon at dapat pa ring i-configure ang server.</translation>
 <translation id="1297182715641689552">Gumamit ng .pac proxy script</translation>
 <translation id="1304973015437969093">Ang mga extension/app ID at URL sa pag-update na tahimik na ii-install</translation>
+<translation id="1307454923744766368">Mga pinagmulan o pattern ng hostname kung saan hindi dapat ilapat ang mga paghihigpit sa
+      mga hindi secure na pinagmulan</translation>
 <translation id="1313457536529613143">Tinutukoy ang porsyento ng pag-scale sa pag-aantala ng pagdilim ng screen kapag napansin ang pagkilos ng user habang madilim ang screen o kaagad pagkatapos i-off ang screen.
 
           Kung nakatakda ang patakarang ito, tinutukoy nito ang porsyento ng pag-scale sa pag-aantala ng pagdilim ng screen kapag napansin ang pagkilos ng user habang madilim ang screen o kaagad pagkatapos i-off ang screen. Kapag naka-scale ang pagkaantala ng pagdilim, masasaayos ang mga pagkaantala ng screen off, screen lock at idle upang panatilihin ang parehong agwat mula sa pag-aantala ng pagdilim ng screen gaya ng orihinal na pagkaka-configure.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">I-enable ang prompt ng configuration ng network kapag offline</translation>
 <translation id="1330145147221172764">I-enable ang on-screen na keyboard</translation>
 <translation id="13356285923490863">Pangalan ng Patakaran</translation>
+<translation id="1352174694615491349">Pinapayagan ng patakarang ito na pag-isahin ang HTTP/2 na koneksyon kapag gumagamit ng mga client certificate. Para pag-isahin, ang hostname ng posibleng bagong koneksyon at ang hostname ng kasalukuyang koneksyon ay dapat may magkatugmang isa o higit pang pattern na nakasaad sa patakarang ito. Ang patakaran ay isang listahan ng mga host gamit ang format ng filter ng URLBlacklist: Tumutugma ang "example.com" sa "example.com" at sa lahat ng subdomain (hal. "sub.example.com"), habang eksaktong tumutugma ang ".example.net" sa "example.net".
+
+      Ang mga kahilingan sa pag-iisa sa iba't ibang host sa pamamagitan ng mga koneksyong gumagamit ng mga client certificate ay maaaring makagawa ng mga isyu sa seguridad at privacy, dahil maipaparating ang ambient na awtoridad sa lahat ng kahilingan, kahit na hindi ito tahasang pinahintulutan ng user. Ang patakarang ito ay pansamantala at maaalis sa release sa hinaharap. Tingnan sa https://crbug.com/855690.
+
+      Kung hahayaang hindi nakatakda ang patakarang ito, gagamitin ang default na kagawian na hindi payagan ang anumang pag-iisa ng HTTP/2 na koneksyon sa mga koneksyong gumagamit ng mga client certificate.</translation>
 <translation id="1353966721814789986">Mga page sa startup</translation>
 <translation id="1359553908012294236">Kung itatakda ang patakarang ito sa true o kung hindi ito iko-configure, ie-enable ng <ph name="PRODUCT_NAME" /> ang mga pag-log in ng bisita. Ang mga pag-log in ng bisita ay mga profile sa <ph name="PRODUCT_NAME" /> kung saan nasa incognito mode ang lahat ng window.
 
@@ -184,6 +213,7 @@
 <translation id="1583248206450240930">Gamitin ang <ph name="PRODUCT_FRAME_NAME" /> bilang default</translation>
 <translation id="1599424828227887013">I-enable ang Pag-isolate ng Site para sa mga partikular na pinagmulan sa mga Android device</translation>
 <translation id="1608755754295374538">Mga URL na mabibigyan ng access sa mga device na nakakakuha ng audio nang walang prompt</translation>
+<translation id="1615221548356595305">Payagan ang pag-iisa ng mga HTTP/2 na koneksyon para sa mga host na ito kahit na gumamit ng mga client certificate</translation>
 <translation id="1617235075406854669">Paganahin ang pagtatanggal ng browser at kasaysayan ng pag-download</translation>
 <translation id="163200210584085447">Itutugma ang mga pattern na nasa listahang ito sa security
       origin ng humihiling na URL.  Kung may makikitang katugma, magbibigay ng access sa mga device na nagka-capture ng video sa mga page ng pag-login ng SAML.  Kung walang makitang
@@ -1185,7 +1215,6 @@
       Kung hahayaang hindi nakatakda ang patakarang ito, ie-enable ang pangongolekta ng naka-anonymize na data na may key ng URL ngunit mababago ito ng user.</translation>
 <translation id="4250680216510889253">Hindi</translation>
 <translation id="4261820385751181068">Lokal ng screen sa pag-sign in ng device</translation>
-<translation id="4264607809747169568">Kumokontrol sa Mga File Share sa Network para sa availability ng ChromeOS</translation>
 <translation id="427220754384423013">Tinutukoy ang mga printer na maaaring gamitin ng isang user.
 
       Gagamitin lang ang patakarang ito kung napili ang <ph name="PRINTERS_WHITELIST" /> para sa <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1344,6 +1373,7 @@
       Kung ie-enable ang patakarang ito, papayagan ang mga site na sabay-sabay na mag-navigate at magbukas ng mga bagong window/tab.
       Kung idi-disable o hindi itatakda ang patakarang ito, hindi papayagan ang mga site na sabay-sabay na mag-navigate at magbukas ng bagong window/tab.</translation>
 <translation id="4680961954980851756">Paganahin ang AutoFill</translation>
+<translation id="4703402283970867140">I-enable ang smart dim model para patagalin ang oras bago ma-dim ang screen</translation>
 <translation id="4722122254122249791">I-enable ang Paghihiwalay ng Site para sa mga tinukoy na pinagmulan</translation>
 <translation id="4722399051042571387">Kung false, hindi makakapagtakda ang mga user ng mga madaling mahulaan na PIN.
 
@@ -1571,13 +1601,6 @@
 
           Kung hinayaang hindi nakatakda ang patakarang ito, gagamitin ang 'AskNotifications' at magagawa ng user na baguhin ito.</translation>
 <translation id="538108065117008131">Payagan ang <ph name="PRODUCT_FRAME_NAME" /> na pamahalaan ang mga sumusunod na uri ng nilalaman.</translation>
-<translation id="5391363090783552279">Kung itatakda ang patakarang ito sa true, kokonekta ang <ph name="PRODUCT_NAME" /> sa mga Cast device sa lahat ng IP address, hindi lang sa mga pribadong address ng RFC1918/RFC4913.
-
-          Kung nakatakda ang patakarang ito sa false, kokonekta ang <ph name="PRODUCT_NAME" /> sa mga Cast device sa mga pribadong address ng RFC1918/RFC4913 lang.
-
-          Kung hindi nakatakda ang patakarang ito, kokonekta ang <ph name="PRODUCT_NAME" /> sa mga Cast device sa mga pribadong address ng RFC1918/RFC4913 lang, maliban na lang kung naka-enable ang feature na CastAllowAllIPs.
-
-          Kung nakatakda ang patakarang "EnableMediaRouter" sa false, walang magiging epekto ang value ng patakarang ito.</translation>
 <translation id="5392172595902933844">Ibinabalik ang impormasyon tungkol sa status ng Android sa server.
 
       Kung itatakda sa false o hahayaang hindi nakatakda ang patakaran, walang iuulat na impormasyon ng status.
@@ -2150,6 +2173,10 @@
 <translation id="6943577887654905793">Kagustuhang pangalan ng Mac/Linux:</translation>
 <translation id="69525503251220566">Parameter na nagbibigay ng tampok na maghanap sa pamamagitan ng larawan para sa default na provider ng paghahanap</translation>
 <translation id="6956272732789158625">Huwag payagan ang anumang site na gumamit ng pagbuo ng key</translation>
+<translation id="6965859329738616662">Tinutukoy kung papayagan ang smart dim model na patagalin ang oras bago ma-dim ang screen.
+
+      Kapag malapit nang ma-dim ang screen, sinusuri ng smart dim model kung dapat bang ipagpaliban ang pag-dim ng screen. Kung ipapagpaliban ng smart dim model ang pag-dim ng screen, papatagalin din nito ang oras bago ma-dim ang screen. Sa ganitong sitwasyon, maisasaayos ang pag-off ng screen, lock ng screen, at ang mga pagkaantala ng idle para mapanatili ang parehong mga pagitan mula sa pagkaantala ng pag-dim ng screen gaya ng orihinal na na-configure.
+      Kung itatakda ang patakarang ito sa True o hahayaang hindi nakatakda, mae-enable ang smart dim model at papayagang patagalin ang oras bago ma-dim ang screen. Kung itatakda ang patakarang ito sa False, hindi maaapektuhan ng smart dim model ang pag-dim ng screen.</translation>
 <translation id="6982028490425791294">
       Kung nakatakda ang patakaran sa true, pinapayagan ang <ph name="PRODUCT_NAME" /> na kolektahin ang mga log ng event sa WebRTC mula sa mga serbisyo ng Google (hal. Google Meet), at i-upload ang mga log na iyon sa Google.
 
@@ -2601,6 +2628,13 @@
 <translation id="7980227303582973781">Walang espesyal na paghihigpit</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">I-rotate ang screen nang 0 degrees</translation>
+<translation id="8033913082323846868">Hindi na ginagamit ang patakarang ito sa M70, pakigamit na lang ang AutofillAddressEnabled at AutofillCreditCardEnabled.
+
+      Ine-enable ang feature na AutoFill ng <ph name="PRODUCT_NAME" /> at binibigyang-daan ang mga user na awtomatikong kumpletuhin ang mga web form gamit ang mga dati nang na-store na impormasyon gaya ng address o impormasyon ng credit card.
+
+      Kung idi-disable mo ang setting na ito, hindi na maa-access ng mga user ang AutoFill.
+
+      Kung ie-enable mo ang setting na ito o hindi ka magtatakda ng value, mananatiling nasa kontrol ng user ang AutoFill. Sa pamamagitan nito, magagawa niyang i-configure ang mga profile ng AutoFill at i-on o i-off ang AutoFill kung gugustuhin niya.</translation>
 <translation id="8044493735196713914">Iulat ang boot mode ng device</translation>
 <translation id="8050080920415773384">Native na Pag-print</translation>
 <translation id="8059164285174960932">URL kung saan dapat makuha ng mga client ng malayuang pag-access ang kanilang token sa pagpapatotoo</translation>
@@ -2931,6 +2965,33 @@
 
       Kung hindi nakatakda ang patakaran, ipagpapalagay ang <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Hindi na magagamit sa M69. Gamitin na lang ang
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Tumutukoy ang patakaran ng listahan ng mga pinagmulan (mga URL) o pattern ng hostname (tulad
+      ng "*.example.com") kung saan hindi malalapat ang mga paghihigpit sa seguridad sa mga
+      hindi secure na pinagmulan.
+
+      Ang layunin ay payagan ang mga organisasyong magtakda ng mga pinagmulan ng whitelist para sa mga legacy
+      application kung saan hindi maaaring i-deploy ang TLS, o mag-set up ng staging server para sa
+      internal na pag-develop sa web nang sa gayon ay masubukan ng mga developer ng mga ito ang mga feature
+      na nangangailangan ng mga secure na konteksto nang hindi kinakailangang i-deploy ang TLS sa staging
+      server. Mapipigilan din ng patakarang ito na magkaroon ng label na
+      "Hindi Secure" ang origin sa omnibox.
+
+      Ang pagtatakda ng listahan ng mga URL sa patakarang ito ay may epektong katulad sa pagtatakda sa
+      command-line flag na '--unsafely-treat-insecure-origin-as-secure' sa isang
+      comma-separated list ng mga parehong URL. Kung itatakda ang patakaran,
+      io-override nito ang command-line flag.
+
+      Hindi na ginagamit ang patakarang ito sa M69 kapalit ng
+      OverrideSecurityRestrictionsOnInsecureOrigin. Kung mayroon ng parehong
+      patakaran, io-override ng OverrideSecurityRestrictionsOnInsecureOrigin ang
+      patakarang ito.
+
+      Para sa higit pang impormasyon sa mga secure na konteksto, tingnan sa
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Kinokontrol ng patakarang ito kung maaaring ipakita sa user ang Pahintulot sa Pag-sync sa panahon ng unang pag-sign in. Dapat ay nakatakda ito sa false kung hindi kailanman kinakailangan ang Pahintulot sa Pag-sync para sa user.
       Kung itatakda sa false, hindi ipapakita ang Pahintulot sa Pag-sync.
       Kung itatakda sa true o hindi itatakda, maaaring ipakita ang Pahintulot sa Pag-sync.</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 427bb7eb..327e271 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -33,6 +33,28 @@
           Si ce paramètre est désactivé ou non configuré, l'hôte d'assistance à distance est exécuté dans le contexte de l'utilisateur et les utilisateurs distants ne peuvent pas interagir avec des fenêtres élevées sur le Bureau.</translation>
 <translation id="1096105751829466145">Moteur de recherche par défaut</translation>
 <translation id="1099282607296956954">Activer l'isolation des sites pour tous les sites</translation>
+<translation id="1100570158310952027">
+      Cette règle répertorie les origines (URL) ou les modèles de nom d'hôte (par exemple,
+      "*.example.com") non soumis aux restrictions de sécurité applicables
+      aux origines non sécurisées.
+
+      L'objectif est de permettre aux organisations d'établir une liste blanche des origines
+      pour les anciennes applications qui ne peuvent pas déployer TLS, ou de configurer un serveur
+      de test pour les développements Web internes. Cela permet aux développeurs de tester
+      les fonctionnalités nécessitant des contextes sécurisés sans avoir à déployer TLS
+      sur le serveur de test. Cette règle empêche également que la mention "Non sécurisé"
+      soit attribuée à une origine dans l'omnibox.
+
+      Définir une liste d'URL dans cette règle a le même effet qu'utiliser
+      l'indicateur de ligne de commande "--unsafely-treat-insecure-origin-as-secure"
+      avec une liste des URL en question séparées par une virgule. Si la règle est définie,
+      elle remplace l'indicateur de ligne de commande.
+
+      Cette règle remplace l'indicateur UnsafelyTreatInsecureOriginAsSecure, si celui-ci est spécifié.
+
+      Pour en savoir plus sur les contextes sécurisés, consultez
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Les gestionnaires de protocoles définis par cette règle ne sont pas utilisés pour gérer les intents Android.</translation>
 <translation id="1118093128235245168">Autoriser les sites à demander à l'utilisateur d'accorder l'accès à un appareil USB connecté</translation>
 <translation id="1128903365609589950">Cette règle permet de configurer le répertoire utilisé par <ph name="PRODUCT_NAME" /> pour stocker les fichiers mis en cache sur le disque.
@@ -80,6 +102,8 @@
       Si cette règle n'est pas configurée, ou si elle est définie sur "False", les suites de chiffrement RC4 dans TLS ne seront pas activées. La règle peut être définie sur "True" pour assurer la compatibilité avec un serveur obsolète. Il s'agit là d'une solution provisoire, et le serveur devrait être reconfiguré.</translation>
 <translation id="1297182715641689552">Utiliser un script de proxy .pac</translation>
 <translation id="1304973015437969093">Identifiants d'extension ou d'application et URL de mise à jour à installer en arrière-plan</translation>
+<translation id="1307454923744766368">Origines ou modèles de nom d'hôte non soumis aux restrictions
+      applicables aux origines non sécurisées</translation>
 <translation id="1313457536529613143">Indique le pourcentage d'adaptation du délai d'assombrissement de l'écran en cas d'activité de l'utilisateur lors de la réduction de la luminosité ou peu de temps après la désactivation de l'écran.
 
           Si vous définissez cette règle, elle indique le pourcentage d'adaptation du délai de réduction de la luminosité de l'écran en cas d'activité de l'utilisateur lors de la réduction de la luminosité ou peu de temps après la désactivation de l'écran. En cas d'adaptation de ce délai, les délais de désactivation, de verrouillage et d'inactivité de l'écran sont ajustés pour maintenir le même décalage par rapport au délai d'assombrissement de l'écran initialement configuré.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">Activer l'invite de configuration réseau lorsque l'utilisateur n'est pas connecté</translation>
 <translation id="1330145147221172764">Activer le clavier à l'écran</translation>
 <translation id="13356285923490863">Nom de stratégie</translation>
+<translation id="1352174694615491349">Cette règle permet de procéder au multiplexage des connexions HTTP/2 lorsque des certificats client sont utilisés. Pour ce faire, le nom d'hôte de la nouvelle connexion potentielle et le nom d'une connexion existante doivent correspondre à un ou plusieurs modèles définis par la règle. Celle-ci permet d'établir une liste des hôtes selon le format de filtrage URLBlacklist, où une correspondance est établie entre "example.com" et "example.com" et tous les sous-domaines (par exemple, "sub.example.com"), tandis que ".example.net" correspond exactement à "example.net".
+
+      Les demandes de multiplexage vers différents hôtes via des connexions utilisant des certificats client peuvent poser des problèmes de sécurité et de confidentialité. En effet, l'autorité diffuse est accordée à toutes les demandes, sans l'autorisation expresse de l'utilisateur. Cette règle est provisoire et sera supprimée dans une version ultérieure. Pour en savoir plus, consultez la page https://crbug.com/855690.
+
+      Si cette règle n'est pas configurée, le multiplexage des connexions HTTP/2 utilisant des certificats client n'est pas autorisé par défaut.</translation>
 <translation id="1353966721814789986">Pages d'accueil</translation>
 <translation id="1359553908012294236">Si cette règle est définie sur "True" ou n'est pas définie, <ph name="PRODUCT_NAME" /> autorisera les connexions en tant qu'invité. Les connexions en tant qu'invité correspondent à des profils <ph name="PRODUCT_NAME" /> où toutes les fenêtres s'ouvrent en mode navigation privée.
 
@@ -185,6 +214,7 @@
 <translation id="1583248206450240930">Utiliser <ph name="PRODUCT_FRAME_NAME" /> par défaut</translation>
 <translation id="1599424828227887013">Activer l'isolation des sites pour des origines définies sur les appareils Android</translation>
 <translation id="1608755754295374538">URL autorisées à accéder aux appareils de capture audio sans avis préalable</translation>
+<translation id="1615221548356595305">Autoriser le multiplexage des connexions HTTP/2 pour les hôtes qui utilisent des certificats client</translation>
 <translation id="1617235075406854669">Activer la suppression de l'historique du navigateur et de l'historique des téléchargements</translation>
 <translation id="163200210584085447">Les formats de cette liste seront mis en correspondance avec la source
       de sécurité de l'URL à l'origine de la demande. En cas de correspondance,
@@ -1205,7 +1235,6 @@
       Si vous ne configurez pas cette règle, la collecte des données anonymes incluant les URL est activée, mais l'utilisateur pourra la modifier.</translation>
 <translation id="4250680216510889253">Non</translation>
 <translation id="4261820385751181068">Paramètres régionaux de l'écran de connexion de l'appareil</translation>
-<translation id="4264607809747169568">Vérifie la disponibilité de la fonctionnalité Partages de fichiers en réseau pour Chrome OS</translation>
 <translation id="427220754384423013">Indique les imprimantes auxquelles un utilisateur a accès.
 
       Cette règle est utilisée uniquement si <ph name="PRINTERS_WHITELIST" /> est sélectionné pour <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1363,6 +1392,7 @@
       Si cette règle est activée, les sites sont autorisés à parcourir et à ouvrir de nouvelles fenêtres ou de nouveaux onglets simultanément.
       Si cette règle est désactivée ou n'est pas définie, les sites ne sont pas autorisés à parcourir et à ouvrir une nouvelle fenêtre ou un nouvel onglet simultanément.</translation>
 <translation id="4680961954980851756">Activer la saisie automatique</translation>
+<translation id="4703402283970867140">Activer le modèle de réduction intelligente de la luminosité pour augmenter le délai d'assombrissement de l'écran</translation>
 <translation id="4722122254122249791">Activer l'isolation des sites pour des origines définies</translation>
 <translation id="4722399051042571387">Si la règle est configurée sur "false", les utilisateurs ne pourront pas définir un code faible et facile à deviner.
 
@@ -1594,13 +1624,6 @@
 
 Si cette règle n'est pas configurée, le paramètre "AskNotifications" est utilisé et l'utilisateur est en mesure de le modifier.</translation>
 <translation id="538108065117008131">Autoriser <ph name="PRODUCT_FRAME_NAME" /> à gérer les types de contenus suivants.</translation>
-<translation id="5391363090783552279">Si cette règle est définie sur "True", <ph name="PRODUCT_NAME" /> se connecte aux appareils Cast sur toutes les adresses IP, et pas seulement sur les adresses privées décrites dans la RFC 1918 ou la RFC 4913.
-
-          Si cette règle est définie sur "False", <ph name="PRODUCT_NAME" /> ne se connecte aux appareils Cast que sur les adresses privées décrites dans la RFC 1918 ou la RFC 4913.
-
-          Si cette règle n'est pas définie, <ph name="PRODUCT_NAME" /> ne se connecte aux appareils Cast que sur les adresses privées décrites dans la RFC 1918 ou la RFC 4913, sauf si la fonctionnalité "CastAllowAllIPs" est activée.
-
-          Si la règle "EnableMediaRouter" est définie sur "False", la valeur de la règle "MediaRouterCastAllowAIIIPs" n'a aucune incidence.</translation>
 <translation id="5392172595902933844">Cette règle renvoie au serveur des informations sur l'état d'Android.
 
       Si cette règle est définie sur "False" ou si elle n'est pas configurée, les informations sur l'état ne sont pas transmises.
@@ -2175,6 +2198,10 @@
 <translation id="6943577887654905793">Nom de préférence Mac/Linux :</translation>
 <translation id="69525503251220566">Paramètre qui active la fonctionnalité de recherche par image pour le moteur de recherche par défaut</translation>
 <translation id="6956272732789158625">Interdire à tous les sites d'utiliser la génération de clé</translation>
+<translation id="6965859329738616662">Détermine si un modèle de réduction intelligente de la luminosité peut augmenter le délai d'assombrissement de l'écran.
+
+      Lorsque la luminosité de l'écran est sur le point de baisser, le modèle de réduction intelligente de la luminosité évalue s'il convient ou non de différer le moment où l'écran s'assombrit. Si oui, la période de réduction de la luminosité est effectivement allongée, décalant d'autant le moment où l'écran s'éteint, se verrouille et se met en veille, ceci afin de maintenir l'intervalle initialement configuré.
+      Si cette règle est définie sur "True" ou n'est pas configurée, le modèle de réduction intelligente de la luminosité est activé et autorisé à allonger la période de réduction de la luminosité de l'écran. Si cette règle est définie sur "False", le modèle n'a pas d'incidence sur la manière dont l'écran baisse en luminosité.</translation>
 <translation id="6982028490425791294">
       Si la règle est définie sur "True", <ph name="PRODUCT_NAME" /> est autorisé à collecter les journaux d'événements WebRTC à partir des services Google (Google Meet, par exemple) et à les transférer vers Google.
 
@@ -2626,6 +2653,13 @@
 <translation id="7980227303582973781">Aucune restriction particulière</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Faire pivoter l'écran de 0 degré</translation>
+<translation id="8033913082323846868">Cette règle a été abandonnée dans la version M70. Veuillez utiliser les règles AutofillAddressEnabled et AutofillCreditCardEnabled à la place.
+
+      Active la fonctionnalité de saisie automatique de <ph name="PRODUCT_NAME" />, qui permet à l'utilisateur de remplir automatiquement des formulaires Web à partir de données stockées précédemment, telles qu'une adresse et des informations relatives à sa carte de crédit.
+
+      Si vous désactivez ce paramètre, la fonctionnalité de saisie automatique n'est pas accessible aux utilisateurs.
+
+      Si vous activez ce paramètre ou ne configurez pas de valeur, la fonctionnalité de saisie automatique peut être contrôlée par les utilisateurs. Ces derniers peuvent ainsi configurer des profils de saisie automatique, et activer ou désactiver la fonctionnalité de saisie automatique à leur guise.</translation>
 <translation id="8044493735196713914">Indiquer le mode de démarrage de l'appareil</translation>
 <translation id="8050080920415773384">Impression en mode natif</translation>
 <translation id="8059164285174960932">URL où les clients d'accès à distance doivent obtenir leur jeton d'authentification</translation>
@@ -2960,6 +2994,33 @@
 
       Si cette règle n'est pas définie, <ph name="PRINTERS_ALLOW_ALL" /> est supposé s'appliquer.
       </translation>
+<translation id="8938932171964587769">Cette règle a été abandonnée dans la version M69. Veuillez utiliser la règle
+      OverrideSecurityRestrictionsOnInsecureOrigin à la place.
+
+      Cette règle répertorie les origines (URL) ou les modèles de nom d'hôte (par exemple,
+      "*.example.com") non soumis aux restrictions de sécurité applicables
+      aux origines non sécurisées.
+
+      L'objectif est de permettre aux organisations d'établir une liste blanche des origines
+      pour les anciennes applications qui ne peuvent pas déployer TLS, ou de configurer
+      un serveur de test pour les développements Web internes. Cela permet aux développeurs de tester
+      les fonctionnalités nécessitant des contextes sécurisés sans avoir à déployer TLS
+      sur le serveur de test. Cette règle empêche également que la mention "Non sécurisé"
+      soit attribuée à une origine dans l'omnibox.
+
+      Définir une liste d'URL dans cette règle a le même effet qu'utiliser
+      l'indicateur de ligne de commande "--unsafely-treat-insecure-origin-as-secure"
+      avec une liste des URL en question séparées par une virgule. Si la règle est définie,
+      elle remplace l'indicateur de ligne de commande.
+
+      Cette règle a été abandonnée dans la version M69, au profit de la règle
+      OverrideSecurityRestrictionsOnInsecureOrigin. Elle est remplacée par
+      OverrideSecurityRestrictionsOnInsecureOrigin lorsque les deux règles
+      coexistent.
+
+      Pour en savoir plus sur les contextes sécurisés, consultez
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Permet d'activer l'affichage de l'autorisation de synchronisation lors de la première connexion de l'utilisateur. Si cette autorisation n'a jamais besoin d'être montrée à l'utilisateur, cette règle doit être définie sur False.
       Si cette règle est définie sur False, l'autorisation de synchronisation n'est pas affichée.
       Si cette règle est définie sur True ou si elle n'est pas configurée, l'autorisation de synchronisation peut être affichée.</translation>
diff --git a/components/policy/resources/policy_templates_gu.xtb b/components/policy/resources/policy_templates_gu.xtb
index 5f85c63..e64db8d 100644
--- a/components/policy/resources/policy_templates_gu.xtb
+++ b/components/policy/resources/policy_templates_gu.xtb
@@ -1353,7 +1353,6 @@
       જો આ નીતિ સેટ કર્યા વિનાની હશે, તો URL-કીવાળા અનામીકૃત ડેટાનું એકત્રીકરણ ચાલુ થશે, પણ વપરાશકર્તા તેને બદલી શકશે.</translation>
 <translation id="4250680216510889253">નહીં</translation>
 <translation id="4261820385751181068">ઉપકરણ સાઇન ઇન સ્ક્રીન લોકેલ</translation>
-<translation id="4264607809747169568">ChromeOSની ઉપલબ્ધતા માટે 'નેટવર્ક ફાઇલ શેર'નું નિયંત્રણ કરે છે</translation>
 <translation id="427220754384423013">વપરાશકર્તા ઉપયોગમાં લઈ શકે તે પ્રિન્ટરને ઉલ્લેખિત કરે છે.
 
       જો <ph name="PRINTERS_WHITELIST" />ને <ph name="BULK_PRINTERS_ACCESS_MODE" /> માટે પસંદ કર્યું હોય, તો જ આ નીતિનો ઉપયોગ કરવામાં આવે છે.
@@ -1779,13 +1778,6 @@
 
           જો આ નીતિ સેટ કર્યા વિના છોડેલી હોય, તો 'AskNotifications' નો ઉપયોગ થશે અને વપરાશકર્તા તેને બદલવા માટે સક્ષમ હશે.</translation>
 <translation id="538108065117008131"><ph name="PRODUCT_FRAME_NAME" /> ને નીચે આપેલા સામગ્રી પ્રકારોને વ્યવસ્થિત કરવાની મંજૂરી આપો.</translation>
-<translation id="5391363090783552279">જો આ નીતિને True પર સેટ કરેલ હોય, તો <ph name="PRODUCT_NAME" /> માત્ર RFC1918/RFC4913 ગોપનીય ઍડ્રેસ પરનાં જ નહીં, પરંતુ બધાં જ IP ઍડ્રેસ પરના કાસ્ટ ઉપકરણો પર કનેક્ટ કરશે.
-
-             જો આ નીતિને False પર સેટ કરેલ હોય, તો <ph name="PRODUCT_NAME" /> માત્ર RFC1918/RFC4913 ગોપનીય ઍડ્રેસ પરના કાસ્ટ ઉપકરણો પર જ કનેક્ટ કરશે.
-
-            જો આ નીતિ સેટ કરેલ ન હોય, તો <ph name="PRODUCT_NAME" /> માત્ર RFC1918/RFC4913 ગોપનીય ઍડ્રેસ પરના કાસ્ટ ઉપકરણો પર જ કનેક્ટ કરશે, સિવાય કે CastAllowAllIPની સુવિધા ચાલુ કરેલ હોય.
-
-            જો "EnableMediaRouter" નીતિ False પર સેટ કરેલ હોય, તો આ નીતિના મૂલ્યની કોઈ અસર નહીં થાય.</translation>
 <translation id="5392172595902933844">Android ની સ્થિતિ વિશેની માહિતીને સર્વર પર પાછી મોકલવામાં આવે છે.
 
       જો નીતિ false પર સેટ કરેલ હોય અથવા સેટ કર્યા વિના છોડી દેવામાં આવી હોય, તો કોઈ સ્થિતિ માહિતીની જાણ કરવામાં નહીં આવે.
diff --git a/components/policy/resources/policy_templates_hi.xtb b/components/policy/resources/policy_templates_hi.xtb
index 4ee4f9f..2f900d53 100644
--- a/components/policy/resources/policy_templates_hi.xtb
+++ b/components/policy/resources/policy_templates_hi.xtb
@@ -33,6 +33,28 @@
           अगर यह सेटिंग बंद की जाती है या कॉन्फ़िगर नहीं की जाती है तो, 'रिमोट सहायता होस्ट' उपयोगकर्ता के संदर्भ में चलेगा और रिमोट उपयोगकर्ता डेस्कटॉप पर एलिवेटेड विंडो में इंटरैक्ट नहीं कर सकेंगे.</translation>
 <translation id="1096105751829466145">सामान्य खोज प्रदाता</translation>
 <translation id="1099282607296956954">साइट आइसोलेशन को हर साइट के लिए चालू करें</translation>
+<translation id="1100570158310952027">
+      नीति ऐसे मूल की सूची (यूआरएल) या होस्टनाम पैटर्न (जैसे कि
+      "*.example.com") के बारे में बताती है जिनके लिए असुरक्षित मूल पर सुरक्षा पाबंदियां
+      लागू नहीं होंगी.
+
+      इसका इंटेंट संगठनों को लीगेसी ऐप्लिकेशन के लिए ऐसे स्वीकृत मूल सेट करने की
+      मंज़ूरी देना है जो TLS परिनियोजित नहीं कर सकते हैं या आंतरिक वेब डेवलपमेंट के लिए
+      एक स्टेजिंग सर्वर सेट अप करना है ताकि उनके डेवलपर स्टेजिंग सर्वर पर
+      TLS परिनियोजित करने की ज़रूरत के बिना सुरक्षा प्रसंगों की ज़रूरत वाली सुविधाओं का परीक्षण
+      कर सकें. यह नीति मूल को ऑम्निबॉक्स में "सुरक्षित नहीं" के रूप में
+      लेबल होने से भी रोकेगी.
+
+      इस नीति में यूआरएल की सूची सेट करने का असर वही होगा जैसा
+      कमांड-लाइन फ़्लैग '--unsafely-treat-insecure-origin-as-secure' को समान यूआरएल वाली
+      किसी कॉमा सेपरेटेड लिस्ट पर सेट करने का होता है. अगर नीति सेट की जाती है, तो वह
+      कमांड-लाइन फ़्लैग को ओवरराइड कर देगी.
+
+      अगर UnsafelyTreatInsecureOriginAsSecure मौजूद है, तो यह नीति उसे ओवरराइड कर देगी.
+
+      सुरक्षा प्रसंगों पर ज़्यादा जानकारी के लिए,
+      https://www.w3.org/TR/secure-contexts/ देखें.
+      </translation>
 <translation id="1117535567637097036">Android के इंटेंट प्रबंधित करते समय इस नीति द्वारा सेट किए गए प्रोटोकॉल हैंडलर का उपयोग नहीं किया जाता.</translation>
 <translation id="1118093128235245168">साइटों को उपयोगकर्ता से किसी कनेक्ट किए हुए यूएसबी डिवाइस का एक्सेस मांगने की अनुमति दें</translation>
 <translation id="1128903365609589950">यह नीति वह निर्देशिका कॉन्फ़िगर करती है, <ph name="PRODUCT_NAME" /> जिसका उपयोग डिस्क पर कैश फ़ाइलें सेव करने के लिए करेगा.
@@ -80,6 +102,8 @@
       यदि पॉलिसी को सेट नहीं किया जाता है या असत्य पर सेट किया जाता है, तो RC4 के सिफ़र सुइट को TLS में सक्षम नहीं किया जाएगा. अन्यथा किसी पुराने सर्वर के साथ संगतता बनाए रखने के लिए उसे सत्य पर सेट किया जा सकता है. यह एक स्‍टॉपगैप उपाय है और सर्वर को पुनः कॉन्फ़िगर किया जाना चाहिए.</translation>
 <translation id="1297182715641689552">किसी .pac प्रॉक्सी स्क्रिप्ट का उपयोग करें</translation>
 <translation id="1304973015437969093">बिना सूचना के इंस्टॉल किए जाने वाले एक्सटेंशन/ऐप्लिकेशन आईडी और अपडेट यूआरएल</translation>
+<translation id="1307454923744766368">ऐसे मूल या होस्टनाम पैटर्न जिनके लिए असुरक्षित मूल की पाबंदियां
+      लागू नहीं होनी चाहिए</translation>
 <translation id="1313457536529613143">स्क्रीन की रोशनी कम होने या स्क्रीन बंद हो जाने के तुरंत बाद उपयोगकर्ता की किसी गतिविधि का पता चलने पर, यह नीति, स्क्रीन की रोशनी कितनी देर में कम हो, इस समय को स्केल करने (घटाने या बढ़ाने) का प्रतिशत तय करती है.
 
           अगर यह नीति सेट हो तो, स्क्रीन की रोशनी कम होने या स्क्रीन बंद हो जाने के तुरंत बाद उपयोगकर्ता की किसी गतिविधि का पता चलने पर, स्क्रीन की रोशनी कितनी देर में कम हो, इस समय को घटाने या बढ़ाने का प्रतिशत तय करती है. जब इस समय को कम या ज़्यादा किया जाता है तो, बंद स्क्रीन, स्क्रीन लॉक और 'उपयोग में नहीं' की स्थिति में पहुंचने में लगने वाले समय को एडजस्ट किया जाता है. इसे ऐसे एडजस्ट किया जाता है कि इस समय और स्क्रीन की रोशनी कम होने में लगने वाले समय के बीच वही समान दूरी बनी रहे जो मूल रूप से कॉन्फ़िगर की गई है.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">ऑफ़लाइन होने पर नेटवर्क कॉन्फ़िगरेशन संकेत को सक्षम करें</translation>
 <translation id="1330145147221172764">ऑन-स्क्रीन कीबोर्ड सक्षम करें</translation>
 <translation id="13356285923490863">नीति का नाम</translation>
+<translation id="1352174694615491349">क्लाइंट प्रमाणपत्रों के इस्तेमाल में होने पर यह नीति HTTP/2 कनेक्शन को एक साथ मिलाने देती है. एक साथ मिलाने के लिए, संभावित नए कनेक्शन के होस्टनाम और मौजूदा कनेक्शन के होस्टनाम का मिलान इस नीति में बताए गए एक या इससे ज़्यादा पैटर्न से होना चाहिए. नीति उन होस्ट की एक सूची है जो URLBlacklist फ़िल्टर फ़ॉर्मेट का इस्तेमाल कर रहे हैं: "example.com" का मिलान "example.com" और सभी उपडोमेन (जैसे "sub.example.com") से होता है, वहीं ".example.net" का मिलान ठीक "example.net" से होता है.
+
+      क्लाइंट प्रमाणपत्रों का इस्तेमाल करने वाले कनेक्शन पर अलग-अलग होस्ट में किए जाने वाले Coalescing के अनुरोधों से सुरक्षा और निजता संबंधी समस्याएं आ सकती हैं, क्योंकि एंबिएंट अनुमति सभी अनुरोधों तक भेजी जाएगी, भले ही उपयोगकर्ता ने साफ़ तौर पर इसकी अनुमति नहीं दी हो. यह नीति कुछ समय के लिए है और इसे आने वाली रिलीज़ में हटा दिया जाएगा. https://crbug.com/855690 देखें.
+
+      अगर यह नीति सेट किए बिना छोड़ दी जाती है, तो फिर क्लाइंट प्रमाणपत्रों का इस्तेमाल करने वाले कनेक्शन पर किसी भी HTTP/2 कनेक्शन coalescing को मंज़ूरी नहीं देने के डिफ़ाॅल्ट व्यवहार का इस्तेमाल किया जाएगा.</translation>
 <translation id="1353966721814789986">स्टार्टअप पेज</translation>
 <translation id="1359553908012294236">यदि यह नीति सत्य पर सेट है या कॉन्‍फ़िगर नहीं है, तो <ph name="PRODUCT_NAME" /> के द्वारा मेहमान प्रवेश को सक्षम किया जाएगा. मेहमान प्रवेश वे <ph name="PRODUCT_NAME" /> प्रोफ़ाइल हैं जहां सभी विंडो गुप्त मोड में होती हैं.
 
@@ -184,6 +213,7 @@
 <translation id="1583248206450240930">सामान्य रूप से <ph name="PRODUCT_FRAME_NAME" /> का उपयोग करें</translation>
 <translation id="1599424828227887013">Android डिवाइसों पर बताए गए मूल के लिए साइट आइसोलेशन चालू करें</translation>
 <translation id="1608755754295374538">ऐसे यूआरएल, जिन्हें संकेत किए बिना ऑडियो कैप्चर डिवाइस एक्सेस करने की अनुमति होगी</translation>
+<translation id="1615221548356595305">इन होस्ट के लिए HTTP/2 कनेक्शन के लिए coalescing की मंज़ूरी दें, तब भी जबकि क्लाइंट प्रमाणपत्रों का इस्तेमाल किया जाता हो</translation>
 <translation id="1617235075406854669">ब्राउज़र और डाउनलोड इतिहास हटाना सक्षम करें</translation>
 <translation id="163200210584085447">इस सूची के पैटर्न का मिलान अनुरोध करने वाले
       यूआरएल के सुरक्षा मूल से किया जाएगा. अगर मिलान हो जाता है, तो SAML लॉगिन पृष्ठों
@@ -1194,7 +1224,6 @@
       अगर इस नीति को सेट किए बिना छोड़ दिया जाता है, तो 'यूआरएल-की' के साथ पहचान ज़ाहिर न करने वाले डेटा संग्रह की सेटिंग चालू कर दी जाएगी लेकिन उपयोगकर्ता इसे बदल सकेगा.</translation>
 <translation id="4250680216510889253">नहीं</translation>
 <translation id="4261820385751181068">डिवाइस प्रवेश स्क्रीन भाषा</translation>
-<translation id="4264607809747169568">ChromeOS की उपलब्धता के लिए, नेटवर्क फ़ाइल शेयर करने की सुविधा को नियंत्रित करती है</translation>
 <translation id="427220754384423013">उन प्रिंटर के बारे में बताती है जिनका इस्तेमाल कोई उपयोगकर्ता कर सकता है.
       इस नीति का इस्तेमाल तभी किया जाता है जब <ph name="BULK_PRINTERS_ACCESS_MODE" /> के लिए <ph name="PRINTERS_WHITELIST" /> को चुना गया हो.
 
@@ -1352,6 +1381,7 @@
       अगर यह नीति चालू होती है तो, साइटों पर एक ही समय में नेविगेट करने और नई विंडो/टैब खोलने की मंज़ूरी होगी.
       अगर यह नीति बंद होती है या सेट नहीं की जाती है तो, साइटों पर एक ही समय में नेविगेट करने और नई विंडो/टैब खोलने की मंज़ूरी नहीं होगी.</translation>
 <translation id="4680961954980851756">ऑटोमैटिक भरना सक्षम करें</translation>
+<translation id="4703402283970867140">स्क्रीन की रोशनी कम हो जाने तक, समय बढ़ाने के लिए 'स्मार्ट डिम मॉडल' चालू करें</translation>
 <translation id="4722122254122249791">साइट आइसोलेशन को खास-खास मूल के लिए चालू करें</translation>
 <translation id="4722399051042571387">अगर यह गलत होता है, तो उपयोगकर्ता ऐसे पिन सेट नहीं कर पाएंगे, जो कमज़ोर होते हैं और जिनका आसानी से अनुमान लगाया जा सकता है.
 
@@ -1584,13 +1614,6 @@
 
           अगर इस नीति को सेट किए बिना छोड़ दिया जाता है तो, 'AskNotifications' का उपयोग किया जाएगा और उपयोगकर्ता उसे बदल सकेगा.</translation>
 <translation id="538108065117008131"><ph name="PRODUCT_FRAME_NAME" /> को सामग्री के निम्‍न प्रकारों को प्रबंधित करने की सुविधा देता है.</translation>
-<translation id="5391363090783552279">अगर यह नीति सही पर सेट की जाती है, तो <ph name="PRODUCT_NAME" /> सिर्फ़ RFC1918/RFC4913 निजी पतों पर ही नहीं बल्कि सभी आईपी पतों पर कास्ट डिवाइस से कनेक्ट करेगा.
-
-          अगर यह नीति गलत पर सेट की जाती है, तो <ph name="PRODUCT_NAME" /> सिर्फ़ RFC1918/RFC4913 निजी पतों पर ही कास्ट डिवाइस से कनेक्ट करेगा.
-
-          अगर इस नीति को सेट नहीं किया जाता है, तो CastAllowAllIPs विशेषता के चालू रहने तक ही <ph name="PRODUCT_NAME" /> सिर्फ़ RFC1918/RFC4913 निजी पतों पर कास्ट डिवाइस से कनेक्ट करेगा.
-
-          अगर "EnableMediaRouter" नीति गलत पर सेट की जाती है, तो इस नीति के मान का कोई प्रभाव नहीं होगा.</translation>
 <translation id="5392172595902933844">Android की स्थिति की जानकारी सर्वर को वापस भेज दी
       जाती है.
 
@@ -2170,6 +2193,10 @@
 <translation id="6943577887654905793">Mac/Linux प्राथमिकता नाम:</translation>
 <translation id="69525503251220566">डिफ़ॉल्ट खोज प्रदाता के लिए चित्र-द्वारा-खोजें सुविधा प्रदान करने वाला पैरामीटर</translation>
 <translation id="6956272732789158625">किसी भी साइट को कुंजी जेनरेशन का उपयोग न करने दें</translation>
+<translation id="6965859329738616662">यह बताती है कि 'स्मार्ट डिम मॉडल' को रोशनी कम हो जाने तक समय बढ़ाने की मंज़ूरी है या नहीं.
+
+      जब स्क्रीन की रोशनी कम होने ही वाली होती है, तब 'स्मार्ट डिम मॉडल' यह मूल्यांकन करता है कि क्या स्क्रीन की रोशनी कम करने को टाला जाना चाहिए. अगर 'स्मार्ट डिम मॉडल' स्क्रीन की रोशनी कम करने को टाल देता है, तो वह स्क्रीन की रोशनी कम होने तक समय में बढ़ोतरी कर देता है. इस मामले में, स्क्रीन बंद होने, स्क्रीन लॉक होने और स्क्रीन का इस्तेमाल न होने के विलंब एडजस्ट हो जाते हैं जिससे स्क्रीन की रोशनी कम होने के विलंब का वही अंतर बनाए रखा जा सके जैसा मूल रूप से कॉन्फ़िगर किया गया है.
+      अगर यह नीति सही पर सेट की जाती है या सेट किए बिना छोड़ दी जाती है, तो 'स्मार्ट डिम मॉडल' चालू कर दिया जाएगा और उसे स्क्रीन की रोशनी कम होने तक समय में बढ़ोतरी करने की मंज़ूरी होगी. अगर यह नीति गलत पर सेट की जाती है, तो 'स्मार्ट डिम मॉडल' का स्क्रीन की रोशनी कम होने पर कोई असर नहीं पड़ेगा.</translation>
 <translation id="6982028490425791294">
       अगर नीति सही पर सेट की जाती है, तो <ph name="PRODUCT_NAME" /> को 'Google सेवाओं' (उदाहरण Google Meet) से 'WebRTC इवेंट लॉग' इकट्ठे करने और उन लॉग को Google पर अपलोड करने की अनुमति होती है.
       अगर नीति गलत पर सेट की जाती है या सेट नहीं की जाती है, तो <ph name="PRODUCT_NAME" /> ऐसे लॉग इकट्ठे नहीं कर पाएगा और न ही उन्हें अपलोड कर पाएगा.
@@ -2623,6 +2650,13 @@
 <translation id="7980227303582973781">कोई विशेष प्रतिबंध नहीं</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">स्‍क्रीन को 0 डिग्री घुमाएं</translation>
+<translation id="8033913082323846868">यह नीति M70 में हटा ली गई है, कृपया इसके बजाय AutofillAddressEnabled और AutofillCreditCardEnabled का इस्तेमाल करें.
+
+      <ph name="PRODUCT_NAME" /> की ऑटोमैटिक भरने की सुविधा चालू करती है और उपयोगकर्ताओं को पहले से संग्रहित जानकारी जैसे कि पता या क्रेडिट कार्ड से जुड़ी जानकारी का इस्तेमाल करके वेब फ़ॉर्म अपने आप पूरा करने देती है.
+
+      अगर आप इस सेटिंग को बंद करते हैं, तो उपयोगकर्ता अपने आप भरने की सुविधा (ऑटो फ़िल) का इस्तेमाल नहीं कर पाएंगे.
+
+      अगर आप इस सेटिंग को चालू करते हैं या कोई मान सेट नहीं करते हैं, तो अपने आप भरने की सुविधा (ऑटो फ़िल) उपयोगकर्ता के नियंत्रण में ही रहेगी. इससे वे अपने आप भरने की सुविधा (ऑटो फ़िल) प्रोफ़ाइल कॉन्फ़िगर कर पाएंगे और अपनी इच्छा से अपने आप भरने की सुविधा (ऑटो फ़िल) को चालू या बंद कर पाएंगे.</translation>
 <translation id="8044493735196713914">डिवाइस बूट मोड की रिपोर्ट करें</translation>
 <translation id="8050080920415773384">स्थानीय प्रिंटिंग</translation>
 <translation id="8059164285174960932">वह यूआरएल जहां से दूर से एक्सेस करने वाले क्‍लाइंट को अपनी पहचान करवाने वाला टोकन मिलना चाहिए</translation>
@@ -2949,6 +2983,18 @@
 
       अगर यह नीति सेट नहीं की जाती है, तो <ph name="PRINTERS_ALLOW_ALL" /> की स्थिति मानी जाती है.
       </translation>
+<translation id="8938932171964587769">M69 में हटा दी गई है. इसके बजाय OverrideSecurityRestrictionsOnInsecureOrigin का इस्तेमाल करें.
+
+यह नीति मूलों की सूची (यूआरएल) या होस्टनाम पैटर्न (जैसे कि "*.example.com") के बारे में बताती है जिसके बारे में असुरक्षित मूलों पर सुरक्षा पाबंदियां लागू नहीं होंगी.
+
+इसका इंटेंट संगठनों को लीगेसी ऐप्लिकेशन के लिए ऐसे मूलों की अनुमति देने देना है जो TLS परिनियोजित नहीं कर सकते हैं या आंतरिक वेब डेवलपमेंट के लिए एक स्टेजिंग सर्वर सेट अप करना है ताकि उनके डेवलपर स्टेजिंग सर्वर पर TLS परिनियोजित किए बिना सुरक्षा प्रसंगों की ज़रूरत वाली सुविधाओं को टेस्ट कर सकें. यह नीति ऑम्निबॉक्स में मूल को "सुरक्षित नहीं" लेबल होने से भी रोकेगी.
+
+इस नीति में यूआरएल की सूची सेट करने का असर वही होता है जैसा समान यूआरएल की कॉमा-सेपरेटेड सूची पर कमांड-लाइन फ़्लैग '--unsafely-treat-insecure-origin-as-secure' को सेट करने का होता है. अगर नीति सेट की जाती है, तो वह कमांड-लाइन फ़्लैग को ओवरराइड कर देगी.
+
+OverrideSecurityRestrictionsOnInsecureOrigin के समर्थन में इस नीति को M69 में हटा लिया गया है. अगर दोनों नीतियां मौजूद हों, तो OverrideSecurityRestrictionsOnInsecureOrigin इस नीति को ओवरराइड कर देगी.
+
+सुरक्षित प्रसंगों पर ज़्यादा जानकारी के लिए, https://www.w3.org/TR/secure-contexts/ देखें
+      </translation>
 <translation id="8942616385591203339">यह नीति नियंत्रित करती है कि क्या सिंक सहमति उपयोगकर्ता को पहले साइन-इन में दिखाई जा सकती है. अगर उपयोगकर्ता के लिए सिंक सहमति की कभी ज़रूरत नहीं है, तो उसे गलत पर सेट किया जाना चाहिए.
       गलत पर सेट किया गया होने पर, सिंक सहमति नहीं दिखाई जाएगी.
       सही पर सेट होने पर या सेट नहीं की गई होने पर, सिंक सहमति दिखाई जाएगी.</translation>
diff --git a/components/policy/resources/policy_templates_hr.xtb b/components/policy/resources/policy_templates_hr.xtb
index d59f22a..e88242e 100644
--- a/components/policy/resources/policy_templates_hr.xtb
+++ b/components/policy/resources/policy_templates_hr.xtb
@@ -33,6 +33,17 @@
           Ako je ta postavka onemogućena ili nije konfigurirana, host daljinske pomoći pokrenut će se u kontekstu korisnika i udaljeni korisnici neće moći pristupiti privilegiranim prozorima na računalu.</translation>
 <translation id="1096105751829466145">Zadani davatelj usluga pretraživanja</translation>
 <translation id="1099282607296956954">Omogući izolaciju web-lokacije za sve web-lokacije</translation>
+<translation id="1100570158310952027">
+      U pravilu se navodi popis polazišta (URL-ova) ili uzoraka naziva hosta (primjerice "*.example.com") na koje se neće primjenjivati sigurnosna ograničenja.
+
+      Namjera je omogućiti organizacijama da postave popis dopuštenih polazišta za stare aplikacije koje ne mogu upotrebljavati TLS ili da postave pripremni (engl. staging) poslužitelj za interni mrežni razvoj kako bi njihovi razvojni programeri mogli testirati značajke kojima su potrebni sigurni konteksti bez upotrebe TLS-a na pripremnom (engl. staging) poslužitelju. Tim će se pravilima također spriječiti da polazište bude označeno kao "Nesigurno" u višenamjenskom okviru.
+
+      Postavljanje popisa URL-ova u ovim pravilima ima jednak učinak kao i postavljanje oznake naredbenog retka '--unsafely-treat-insecure-origin-as-secure' na popis jednakih URL-ova odijeljenih zarezom. Ako je pravilo postavljeno, ono će nadjačati oznaku naredbenog retka.
+      Ovo pravilo nadjačava opciju UnsafelyTreatInsecureOriginAsSecure ako je ona prisutna.
+
+      Za više informacija o sigurnim kontekstima pogledajte
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Rukovatelji protokolom postavljeni putem ovog pravila ne upotrebljavaju se prilikom upotrebe Androidovih namjera.</translation>
 <translation id="1118093128235245168">Dopusti web-lokacijama da traže dopuštenje korisnika za pristup povezanom USB uređaju</translation>
 <translation id="1128903365609589950">Konfigurira direktorij koji će <ph name="PRODUCT_NAME" /> koristiti za pohranu predmemoriranih datoteka na disku.
@@ -80,6 +91,7 @@
       Ako se to pravilo ne postavi ili se postavi na "False", RC4 paketi šifri u TLS-u neće biti omogućeni. U protivnom se može postaviti na "True" radi održanja kompatibilnosti sa zastarjelim poslužiteljem. To je privremena mjera i poslužitelj se treba ponovo konfigurirati.</translation>
 <translation id="1297182715641689552">Upotrijebi .pac proxy skriptu</translation>
 <translation id="1304973015437969093">ID-jevi proširenja/aplikacija i URL-ovi ažuriranja koja će se instalirati u pozadini</translation>
+<translation id="1307454923744766368">Uzorci polazišta ili naziva hosta na koje se ograničenja o nesigurnim polazištima ne bi trebala primjenjivati</translation>
 <translation id="1313457536529613143">Određuje postotak odgode skaliranja zatamnjivanja zaslona kada se uoči aktivnosti korisnika dok se zaslon zatamnjuje ili ubrzo nakon što se zaslon isključi.
 
           Ako se to pravilo postavi, ono određuje postotak odgode skaliranja zatamnjivanja zaslona kada se uoči aktivnosti korisnika dok se zaslon zatamnjuje ili ubrzo nakon što se zaslon isključi. Kada se odgoda zatamnjivanja skalira, odgode isključivanja zaslona, zaključavanja zaslona i mirovanja podešavaju se kako bi se zadržali isti vremenski odmaci za odgodu zatamnjivanja zaslona koji su izvorno konfigurirani.
@@ -91,6 +103,11 @@
 <translation id="1327466551276625742">Omogući odzivnu poruku za konfiguraciju mreže tijekom izvanmrežnog rada</translation>
 <translation id="1330145147221172764">Omogući tipkovnicu na zaslonu</translation>
 <translation id="13356285923490863">Naziv pravila</translation>
+<translation id="1352174694615491349">Ovim pravilom omogućuje se spajanje HTTP/2 veze kad se upotrebljava certifikat klijenta, Kako bi se spojili, i naziv hosta potencijalne nove veze i naziv hosta postojeće veze moraju se podudarati s jednim uzorkom ili više uzoraka opisanih u ovom pravilu. Pravilo je popis hostova koji upotrebljavaju format filtra za URLBlacklist: "example.com" podudara se s "example.com" i svim poddomenama (npr. "sub.example.com"), dok se ".example.net" točno podudara s "example.net".
+
+      Zahtjevi za spajanje na različite hostove preko veza koje upotrebljavaju certifikate klijenta mogu dovesti do problema sa sigurnošću i privatnošću jer će okolno tijelo biti preneseno svim zahtjevima, čak i ako korisnik to nije izričito odobrio. Ovo je pravilo privremeno i bit će uklonjeno u budućem izdanju. Pogledajte https://crbug.com/855690.
+
+      Ako se ovo pravilo ne postavi, upotrebljavat će se zadano ponašanje u kojemu se nijednoj HTTP/2 vezi ne dopušta spajanje s vezama koje upotrebljavaju certifikate klijenta.</translation>
 <translation id="1353966721814789986">Početne stranice</translation>
 <translation id="1359553908012294236">Ako se pravilo postavi na "True" ili se ne konfigurira, <ph name="PRODUCT_NAME" /> omogućit će prijave gostiju. Prijave gostiju predstavljaju profile preglednika <ph name="PRODUCT_NAME" /> u kojima se svi prozori otvaraju u anonimnom načinu.
 
@@ -184,6 +201,7 @@
 <translation id="1583248206450240930">Upotrijebi <ph name="PRODUCT_FRAME_NAME" /> kao zadano</translation>
 <translation id="1599424828227887013">Omogućivanje izolacije web-lokacije za određena polazišta na Android uređajima</translation>
 <translation id="1608755754295374538">URL-ovi koji će dobiti pristup uređajima za snimanje zvuka bez postavljanja upita</translation>
+<translation id="1615221548356595305">Dopustite spajanje HTTP/2 veza za te hostove čak i kad se upotrebljavaju certifikati klijenta</translation>
 <translation id="1617235075406854669">Omogući brisanje povijesti preglednika i preuzimanja</translation>
 <translation id="163200210584085447">Uzorci na tom popisu usporedit će se sa sigurnosnim
       izvorištem URL-a koji šalje zahtjev. Ako se podudaranje pronađe, pristup
@@ -1155,7 +1173,6 @@
       Ako se to pravilo ne postavi, prikupljanje anonimiziranih podataka zaključano URL-om bit će omogućeno, no korisnik će to moći promijeniti.</translation>
 <translation id="4250680216510889253">Ne</translation>
 <translation id="4261820385751181068">Oznaka zemlje/jezika za zaslon za prijavu na uređaju</translation>
-<translation id="4264607809747169568">Određuje dostupnost mrežnog dijeljenja datoteka za OS Chrome</translation>
 <translation id="427220754384423013">Određuje pisače koje korisnik može upotrebljavati.
 
       To se pravilo upotrebljava samo ako je pravilo <ph name="PRINTERS_WHITELIST" /> odabrano za <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1306,6 +1323,7 @@
       Ako se to pravilo omogući, web-lokacijama će se omogućiti istovremena navigacija i otvaranje novih prozora ili kartica.
       Ako se to pravilo onemogući ili se ne postavi, web-lokacijama će se onemogućiti istovremena navigacija i otvaranje novih prozora ili kartica.</translation>
 <translation id="4680961954980851756">Omogući Automatsko popunjavanje</translation>
+<translation id="4703402283970867140">Omogućite model pametnog zatamnjenja kako bi se produljilo vrijeme do zatamnjenja zaslona</translation>
 <translation id="4722122254122249791">Omogući izolaciju web-lokacije za određene izvore</translation>
 <translation id="4722399051042571387">Ako se postavi na False, korisnici neće moći postavljati PIN-ove koji su slabi ili ih je lako odgonetnuti.
 
@@ -1523,13 +1541,6 @@
 <translation id="5370279767682621504">Omogući podršku za HTTP/0.9 na priključcima koji nisu zadani</translation>
 <translation id="5378985487213287085">Omogućuje da postavite smiju li web-lokacije prikazivati obavijesti radne površine. Prikazivanje obavijesti radne površine može biti dopušteno prema zadanim postavkama, odbijeno prema zadanim postavkama ili korisnik može primiti upit svaki put kad web-lokacija želi prikazati obavijest radne površine. Ako to pravilo nije postavljeno, upotrebljavat će se pravilo "AskNotifications", a korisnik će to moći promijeniti.</translation>
 <translation id="538108065117008131">Dopusti da <ph name="PRODUCT_FRAME_NAME" /> rukuje sljedećim vrstama sadržaja.</translation>
-<translation id="5391363090783552279">Ako se to pravilo postavi na True, usluga <ph name="PRODUCT_NAME" /> povezat će se s uređajima za emitiranje na svim IP adresama, a ne samo privatnim adresama RFC1918/RFC4913.
-
-          Ako se to pravilo postavi na False, usluga <ph name="PRODUCT_NAME" /> povezat će se s uređajima za emitiranje samo na privatnim adresama RFC1918/RFC4913.
-
-          Ako se to pravilo ne postavi, usluga <ph name="PRODUCT_NAME" /> povezat će se s uređajima za emitiranje samo na privatnim adresama RFC1918/RFC4913, osim ako se omogući značajka CastAllowAllIPs.
-
-          Ako se pravilo "EnableMediaRouter" postavi na False, vrijednost ovog pravila nema utjecaja.</translation>
 <translation id="5392172595902933844">Informacije o statusu Androida šalju se
       poslužitelju.
 
@@ -2075,6 +2086,10 @@
 <translation id="6943577887654905793">Naziv Mac/Linux preferencije:</translation>
 <translation id="69525503251220566">Značajka pretraživanja po slici koja pruža parametre za zadanog davatelja usluge pretraživanja</translation>
 <translation id="6956272732789158625">Nemoj dopustiti nijednoj web-lokaciji da upotrebljava generiranje ključeva</translation>
+<translation id="6965859329738616662">Navodi se je li dopušten model pametnog zatamnjenja kako bi se produljilo vrijeme do zatamnjenja zaslona.
+
+      Prije nego što se zaslon zatamni, model pametnog zatamnjenja procjenjuje treba li odgoditi zatamnjenje zaslona. Ako model pametnog zatamnjenja odgodi zatamnjenje zaslona, on učinkovito produljuje vrijeme dok zaslon ne bude zatamnjen. U tom se slučaju isključivanje zaslona, zaključavanje zaslona i odgode  mirovanja prilagođavaju kako bi zadržale jednaku udaljenost od odgode zatamnjenja zaslona kako je izvorno konfigurirano.
+      Ako je ovo pravilo postavljeno na True ili nije postavljeno, bit će omogućen model pametnog zatamnjenja te će biti dopušteno produljiti vrijeme dok zaslon ne bude zatamnjen. Ako je ovo pravilo postavljeno na False, model pametnog zatamnjenja neće utjecati na zatamnjenje zaslona.</translation>
 <translation id="6982028490425791294">
       Ako se pravilo postavi na True, <ph name="PRODUCT_NAME" /> ima dopuštenje prikupljati zapisnike događaja WebRTC s Googleovih usluga (npr. Google Meet) i prenijeti te zapisnike na Google.
 
@@ -2499,6 +2514,13 @@
 <translation id="7980227303582973781">Nema posebnih ograničenja</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Zakreni zaslon 0 stupnjeva</translation>
+<translation id="8033913082323846868">Ovo pravilo obustavljeno je u M70 te umjesto njega upotrebljavajte AutofillAddressEnabled i AutofillCreditCardEnabled.
+
+      Omogućuje značajku <ph name="PRODUCT_NAME" /> Automatskog popunjavanja i dopušta korisnicima da samostalno popune web-obrasce služeći se prethodno pohranjenim informacijama kao što su adresa ili podaci o kreditnoj kartici.
+
+      Ako onemogućite ovu postavku, značajka Automatskog popunjavanja neće biti dostupna korisnicima.
+
+      Ako omogućite ovu postavku ili ako ne postavite vrijednost, značajku Automatskog popunjavanja i dalje će kontrolirati korisnik. To im omogućuje konfiguraciju profila Automatskog popunjavanja te uključivanje ili isključivanje značajke Automatskog popunjavanja po vlastitom nahođenju.</translation>
 <translation id="8044493735196713914">Izvješće načina pokretanja uređaja</translation>
 <translation id="8050080920415773384">Nativni ispis</translation>
 <translation id="8059164285174960932">URL na kojem bi klijenti za daljinski pristup trebali dobiti token za autentifikaciju</translation>
@@ -2825,6 +2847,19 @@
 
       Ako se to pravilo ne postavi, pretpostavlja se da vrijedi <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Obustavljeno u M69. Umjesto toga upotrebljavajte      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Pravilom se navodi popis polazišta (URLs) ili uzoraka naziva hosta (primjerice "*.example.com") na koje se neće primjenjivati sigurnosna ograničenja o nesigurnim polazištima.
+
+      Namjera je omogućiti organizacijama da postave popis dopuštenih polazišta za stare aplikacije koje ne mogu upotrebljavati TLS ili da postave pripremni (engl. staging) poslužitelj za interni mrežni razvoj kako bi njihovi razvojni programeri mogli testirati značajke kojima su potrebni sigurni konteksti bez upotrebe TLS-a na pripremnom (engl. staging) poslužitelju. Tim će se pravilom također spriječiti da polazište bude označeno kao "Nesigurno" u višenamjenskom okviru.
+
+      Postavljanje popisa URL-ova u ovim pravilima ima jednak učinak kao i postavljanje oznake naredbenog retka '--unsafely-treat-insecure-origin-as-secure' na popis jednakih URL-ova odijeljenih zarezom. Ako se to pravilo postavi, nadjačat će oznaku naredbenog retka.
+      Ovo je pravilo obustavljeno u M69 u korist pravila
+      OverrideSecurityRestrictionsOnInsecureOrigin. Ako su prisutna oba pravila, pravilo OverrideSecurityRestrictionsOnInsecureOrigin nadjačava ovo pravilo.
+
+     Za više informacija o sigurnim kontekstima pogledajte
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Ovo pravilo određuje može li se prilikom prve prijave korisniku prikazivati pristanak na sinkronizaciju. Treba ga postaviti na False ako pristanak na sinkronizaciju nikad nije potreban za korisnika.
       Ako se postavi na False, pristanak na sinkronizaciju neće se prikazivati.
       Ako se postavi na True ili se ne postavi, pristanak na sinkronizaciju može se prikazati.</translation>
diff --git a/components/policy/resources/policy_templates_hu.xtb b/components/policy/resources/policy_templates_hu.xtb
index 45ab4e3..e58a4e0 100644
--- a/components/policy/resources/policy_templates_hu.xtb
+++ b/components/policy/resources/policy_templates_hu.xtb
@@ -33,6 +33,28 @@
           Ha a beállítás ki van kapcsolva vagy nincs beállítva, a távoli támogatás gazdagépe a felhasználó kontextusában fut, és a távoli felhasználók nem tudnak interakcióba lépni a kiemelt ablakokkal az asztali számítógépen.</translation>
 <translation id="1096105751829466145">Alapértelmezett keresési szolgáltató</translation>
 <translation id="1099282607296956954">Webhely-izoláció engedélyezése minden webhelynél</translation>
+<translation id="1100570158310952027">
+      Ez a házirend meghatározza azon eredetek (URL-ek) vagy gazdagépnévminták
+      (pl. „*.example.com”) listáját, amelyekre nem érvényesek a nem biztonságos
+      eredetekre vonatkozó biztonsági korlátozások.
+
+      A cél az, hogy a szervezetek beállíthassanak engedélyezőlistás eredeteket
+      a régi, TLS megvalósítására képtelen alkalmazások számára, vagy hogy
+      belső webfejlesztés céljából beállítsanak közzétételi szervert, amellyel a
+      fejlesztők anélkül tesztelhetik a biztonságos környezetet igénylő funkciókat,
+      hogy telepíteniük kellene a TLS-t. Ez a házirend azt is megakadályozza,
+      hogy a cím- és keresősáv nem biztonságosként jelölje meg az eredetet.
+
+      Az URL-ek listájának beállítása ugyanazt eredményezi, mint a parancssori
+      „--unsafely-treat-insecure-origin-as-secure” jelző beállítása ugyanazon URL-ek
+      vesszővel elválasztott listájánál. Ha a házirend be van állítva,
+      felülbírálja a parancssori jelzőt.
+
+      Ha az UnsafelyTreatInsecureOriginAsSecure házirend be van állítva, ez a házirend felülbírálja.
+
+      További információ a biztonságos környezetekről:
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Az ezen a házirenden keresztül megadott protokollkezelők az androidos „intent” elemek kezelésekor használaton kívül maradnak.</translation>
 <translation id="1118093128235245168">Engedélyezi azt, hogy a webhelyek hozzáférést kérjenek a felhasználótól a csatlakoztatott USB-eszközök használatára</translation>
 <translation id="1128903365609589950">Konfigurálja azt a könyvtárat, amelyet a <ph name="PRODUCT_NAME" /> a gyorsítótárazott fájlok lemezen történő tárolására fog használni.
@@ -80,6 +102,8 @@
       Ha a házirend nincs beállítva, illetve értéke hamis, akkor a TLS protokoll RC4 rejtjelezési csomagjai nem lesznek engedélyezve. Igaz értékre állítva megmarad a kompatibilitás az elavult szerverekkel. Ez átmeneti intézkedés, a szervert újra kell konfigurálni.</translation>
 <translation id="1297182715641689552">Használjon .pac proxyszkriptet</translation>
 <translation id="1304973015437969093">Bővítmény- és alkalmazásazonosítók és frissítési URL-ek csendes telepítése</translation>
+<translation id="1307454923744766368">Eredetek vagy gazdagépnévminták, melyekre nem érvényesek
+      a nem biztonságos eredetekre vonatkozó korlátozások</translation>
 <translation id="1313457536529613143">Azt a százalékot adja meg, amelynek alapján a képernyő-elsötétítési késleltetés skálázódik, ha az elsötétedés során, vagy röviddel a képernyő kikapcsolódása után felhasználói tevékenység történik.
 
           Ha a házirend be van állítva, megadja azt a százalékos értéket, amelynek alapján a képernyő-elsötétítési késleltetés skálázódik, ha az elsötétedés során, vagy röviddel a képernyő kikapcsolódása után felhasználói tevékenység történik. Az elsötétedési késleltetés skálázása esetén a képernyő-kikapcsolási, képernyő-zárolási és tétlenségi késleltetések is módosulnak, hogy ugyanannyi idő teljen el köztük a képernyő-elsötétítési késleltetéstől számítva, mint ami eredetileg be lett állítva.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">Hálózati konfigurációs értesítés offline állapotban való megjelenítésének engedélyezése</translation>
 <translation id="1330145147221172764">Képernyő-billentyűzet engedélyezése</translation>
 <translation id="13356285923490863">A szabály neve</translation>
+<translation id="1352174694615491349">Ez a házirend lehetővé teszi a HTTP/2-kapcsolatok egyesítését (coalescing) ügyféltanúsítványok használata esetén. Az egyesítés végrehajtásához a lehetséges új és a meglévő kapcsolat gazdagépnevének egyaránt egyeznie kell a házirend által meghatározott minták legalább egyikével. A házirend gazdagépek listáját tartalmazza az URLBlacklist szűrőformátummal: az „example.com” egyezik az „example.com” webhellyel és az összes aldomainjével (pl. „sub.example.com”), míg a „.example.net” pontosan egyezik az „example.net” webhellyel.
+
+      Az ügyféltanúsítványokat használó kapcsolatokon keresztül különböző gazdagépeknek küldött egyesítési kérelmek biztonsági és adatvédelmi problémákat vethetnek fel, ugyanis a környezeti jogosultságok az összes kérelemnek átadásra kerülnek, még akkor is, ha a felhasználó nem adott erre kifejezett engedélyt. Ez a házirend ideiglenes jellegű, valamelyik jövőbeni kiadásban megszűnik. Lásd: https://crbug.com/855690.
+
+      Ha nem állítja be ezt a házirendet, akkor a böngésző az alapértelmezett viselkedést mutatja, azaz nem engedélyezi a HTTP/2-kapcsolatok egyesítését az ügyféltanúsítványokat használó kapcsolatok esetében.</translation>
 <translation id="1353966721814789986">Kezdőoldalak</translation>
 <translation id="1359553908012294236">Ha a házirend értéke igaz, vagy ha nincs beállítva, akkor a <ph name="PRODUCT_NAME" /> engedélyezi a vendégüzemmódban történő bejelentkezést. A vendégüzemmód olyan profil a <ph name="PRODUCT_NAME" /> böngészőben, amelyben az összes ablak inkognitómódban van.
 
@@ -182,6 +211,7 @@
 <translation id="1583248206450240930">A <ph name="PRODUCT_FRAME_NAME" /> használata alapértelmezés szerint</translation>
 <translation id="1599424828227887013">Webhely-izoláció engedélyezése meghatározott forrásoknál androidos eszközökön</translation>
 <translation id="1608755754295374538">Azon URL-ek, amelyek rákérdezés nélkül hozzáférést kapnak a hangrögzítő eszközökhöz</translation>
+<translation id="1615221548356595305">A HTTP/2-kapcsolatok egyesítésének engedélyezése ezeknél a gazdagépeknél még ügyféltanúsítványok használata esetén is</translation>
 <translation id="1617235075406854669">Böngészési és letöltési előzmények törlésének engedélyezése</translation>
 <translation id="163200210584085447">A listában szereplő mintákat a rendszer egyezteti a kérelmező
       URL biztonsági eredetével. Ha van egyezés, a böngésző a SAML
@@ -1151,7 +1181,6 @@
       Ha a házirend beállítatlanul marad, az URL-alapú anonimizált adatgyűjtés aktív lesz, de a felhasználó kikapcsolhatja.</translation>
 <translation id="4250680216510889253">Nem</translation>
 <translation id="4261820385751181068">Az eszköz bejelentkezési képernyőjének nyelv- és országkódja</translation>
-<translation id="4264607809747169568">A ChromeOS rendelkezésre állására vonatkozó hálózati fájlmegosztásokat szabályozza</translation>
 <translation id="427220754384423013">Meghatározza, hogy mely nyomtatókat használhatja a felhasználó.
 
       A házirend csak akkor van használatban, ha a(z) <ph name="PRINTERS_WHITELIST" /> lehetőség van kiválasztva a(z) <ph name="BULK_PRINTERS_ACCESS_MODE" /> házirendnél.
@@ -1302,6 +1331,7 @@
       Ha engedélyezett ez a házirend, a webhelyeknek engedélyezve lesz, hogy egyszerre navigáljanak és nyissanak meg új ablakokat és lapokat.
       Ha le van tiltva ez a házirend, illetve nincs beállítva, a webhelyek számára le lesz tiltva, hogy egyszerre navigáljanak és nyissanak meg új ablakokat és lapokat.</translation>
 <translation id="4680961954980851756">Automatikus kitöltés engedélyezése</translation>
+<translation id="4703402283970867140">Intelligens elsötétítési modell engedélyezése a képernyő elsötétítési időtartamának növeléséhez</translation>
 <translation id="4722122254122249791">Webhely-izoláció engedélyezése meghatározott forrásoknál</translation>
 <translation id="4722399051042571387">Ha hamisra van állítva, a felhasználók nem tudnak majd gyenge vagy könnyen kitalálható jelszót beállítani.
 
@@ -1513,13 +1543,6 @@
 <translation id="5370279767682621504">A HTTP/0.9 támogatás engedélyezése a nem alapértelmezett portokon</translation>
 <translation id="5378985487213287085">Meghatározhatja, hogy a weboldalak megjeleníthessenek-e asztali értesítéseket. Az asztali értesítések megjelenítése lehet alapértelmezés szerint engedélyezett, alapértelmezés szerint tiltott, vagy megkérdezheti a felhasználót minden alkalommal, amikor egy webhely asztali értesítéseket kíván megjeleníteni. Ha a házirend konfigurálatlanul marad, a rendszer az "AskNotifications" értéket használja, amelyet a felhasználó módosíthat.</translation>
 <translation id="538108065117008131">A következő tartalomtípusok kezelésének engedélyezése a <ph name="PRODUCT_FRAME_NAME" /> számára.</translation>
-<translation id="5391363090783552279">Ha a házirend igaz értékre van állítva, a <ph name="PRODUCT_NAME" /> minden IP-cím esetén csatlakozik a Cast-eszközökhöz, nem csak RFC1918/RFC4913 privát címek esetén.
-
-          Ha a házirend értéke igaz, a <ph name="PRODUCT_NAME" /> csak a RFC1918/RFC4913 privát címeken lévő Cast-eszközökhöz csatlakozik.
-
-          Ha nincs beállítva a házirend, a <ph name="PRODUCT_NAME" /> csak a RFC1918/RFC4913 privát címeknél csatlakozik Cast-eszközökre, kivéve ha engedélyezve van a CastAllowAllIPs funkció.
-
-          Ha az „EnableMediaRouter” házirend értéke hamis, akkor hatástalan ennek a házirendnek az értéke.</translation>
 <translation id="5392172595902933844">Információk küldése az Android állapotáról a
       szervernek.
 
@@ -2074,6 +2097,10 @@
 <translation id="6943577887654905793">Mac/Linux preferencia neve:</translation>
 <translation id="69525503251220566">Paraméter az alapértelmezett keresési szolgáltatóval végezhető képalapú keresési funkció biztosításához</translation>
 <translation id="6956272732789158625">A kulcsgenerálás használatának letiltása minden webhelyen</translation>
+<translation id="6965859329738616662">Meghatározza, hogy lehet-e használni intelligens elsötétítési modellt, amely lehetővé teszi a képernyő elsötétített állapotáig tartó időtartam növelését.
+
+      Amikor a képernyő elsötétítésére kerül sor, az intelligens elsötétítési modell megállapítja, hogy el kell-e halasztani az elsötétítést. Ha a halasztás mellett dönt, meghosszabbítja az elsötétítésig hátralévő időt. Ebben az esetben a képernyő kikapcsolását és lezárását, illetve az üresjárati késleltetést úgy korrigálja, hogy megtartsa a képernyő elsötétítésénél eredetileg beállított időtávolságot.
+      Ha a házirend értéke Igaz, vagy ha nincs beállítva, akkor az intelligens elsötétítési modell aktiválódik, és lehetővé teszi a képernyő elsötétítéséig hátralévő idő növelését. Ha a házirend értéke Hamis, akkor az intelligens elsötétítési modell nem befolyásolja a képernyő elsötétítését.</translation>
 <translation id="6982028490425791294">
       Ha a házirend értéke igaz, a(z) <ph name="PRODUCT_NAME" /> engedélyt kap a WebRTC-eseménynaplók begyűjtésére a Google-szolgáltatásokból (pl. a Google Meet felületéről), valamint azok feltöltésére a Google rendszerébe.
 
@@ -2499,6 +2526,13 @@
 <translation id="7980227303582973781">Speciális korlátozás nélkül</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Képernyő elforgatása 0 fokkal</translation>
+<translation id="8033913082323846868">Ez a házirend megszűnt az M70-es kiadásban. Használja helyette az AutofillAddressEnabled és az AutofillCreditCardEnabled házirendeket.
+
+      Engedélyezi a <ph name="PRODUCT_NAME" /> automatikus kitöltés funkcióját, és lehetővé teszi a felhasználók számára az internetes űrlapok korábban tárolt adatokkal, például a címmel vagy a bankkártyaadatokkal történő automatikus kitöltését.
+
+      Ha letiltja a beállítást, a felhasználók nem használhatják az automatikus kitöltést.
+
+      Ha engedélyezi ezt a beállítást, vagy nem állítja be az értékét, az automatikus kitöltés funkció a felhasználó ellenőrzése alatt marad. Ez lehetővé teszi, hogy a felhasználók automatikus kitöltési profilokat állítsanak be, és saját belátásuk szerint kapcsolják ki vagy be az automatikus kitöltést.</translation>
 <translation id="8044493735196713914">Az eszköz indítási módjának jelentése</translation>
 <translation id="8050080920415773384">Natív nyomtatás</translation>
 <translation id="8059164285174960932">Az URL, ahol a távoli hozzáférésű kliensnek be kell szereznie a hitelesítési tokent</translation>
@@ -2821,6 +2855,33 @@
 
       Ha a házirend nincs beállítva, a(z) <ph name="PRINTERS_ALLOW_ALL" /> van érvényben.
       </translation>
+<translation id="8938932171964587769">Megszűnt az M69-es kiadásban. Használja helyette az
+      OverrideSecurityRestrictionsOnInsecureOrigin házirendet.
+
+      Ez a házirend meghatározza azon eredetek (URL-ek) vagy 
+      gazdagépnévminták (pl. „*.example.com”) listáját, amelyekre nem érvényesek
+      a nem biztonságos eredetekre vonatkozó biztonsági korlátozások.
+
+      A cél az, hogy a szervezetek beállíthassanak engedélyezőlistás eredeteket
+      a régi, TLS megvalósítására képtelen alkalmazások számára, vagy hogy
+      belső webfejlesztés céljából beállítsanak közzétételi szervert, amellyel a
+      fejlesztők anélkül tesztelhetik a biztonságos környezetet igénylő funkciókat,
+      hogy telepíteniük kellene a TLS-t. Ez a házirend azt is megakadályozza,
+      hogy a cím- és keresősáv nem biztonságosként jelölje meg az eredetet.
+
+      Az URL-ek listájának beállítása ugyanazt eredményezi, mint a parancssori
+      „--unsafely-treat-insecure-origin-as-secure” jelző beállítása ugyanazon URL-ek
+      vesszővel elválasztott listájánál. Ha a házirend be van állítva,
+      felülbírálja a parancssori jelzőt.
+
+      Ez a házirend megszűnt az M69-es kiadásba, helyére az
+      OverrideSecurityRestrictionsOnInsecureOrigin lépett. Ha mindkét házirend
+      engedélyezett, az OverrideSecurityRestrictionsOnInsecureOrigin
+      felülbírálja ezt a házirendet.
+
+      További információ a biztonságos környezetekről:
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Ez a házirend vezérli, hogy megjeleníthető-e szinkronizáláshoz való hozzájárulás a felhasználó számára az első bejelentkezés során. Értékét hamisra kell állítani, ha a felhasználónak sosincs szüksége a szinkronizáláshoz való hozzájáruláshoz.
       Ha a beállítás értéke hamis, a szinkronizáláshoz való hozzájárulás nem jelenik meg.
       Ha a beállítás értéke igaz, vagy ha a beállítás konfigurálatlanul marad, a szinkronizáláshoz való hozzájárulás megjeleníthető.</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 3424f4a..1d65d8c 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -33,6 +33,17 @@
           Jika setelan ini dinonaktifkan atau tidak dikonfigurasi, host bantuan jarak jauh akan dijalankan dalam konteks pengguna dan pengguna jarak jauh tidak dapat berinteraksi dengan jendela yang berada jauh di desktop.</translation>
 <translation id="1096105751829466145">Penyedia penelusuran default</translation>
 <translation id="1099282607296956954">Aktifkan Isolasi Situs untuk setiap situs</translation>
+<translation id="1100570158310952027">
+      Kebijakan ini menentukan daftar asal (URL) atau pola hostname (seperti "*.example.com") yang tidak dikenai pembatasan keamanan untuk asal yang tidak aman.
+
+      Tujuannya adalah mengizinkan organisasi menyiapkan asal yang diizinkan untuk aplikasi lama yang tidak dapat menerapkan TLS, atau menyiapkan server persiapan untuk pengembangan web internal agar developer mereka dapat menguji fitur yang memerlukan konteks aman tanpa harus menerapkan TLS di server persiapan. Dengan kebijakan ini, asal tidak akan dilabeli "Not Secure" di omnibox.
+
+      Menetapkan daftar URL dalam kebijakan ini memiliki efek yang sama dengan menetapkan tanda command-line '--unsafely-treat-insecure-origin-as-secure' ke daftar yang dipisahkan koma yang berisi URL yang sama. Jika ditetapkan, kebijakan ini akan mengganti tanda command-line.
+
+      Kebijakan ini akan mengganti UnsafelyTreatInsecureOriginAsSecure, jika ada.
+
+      Untuk informasi selengkapnya tentang konteks aman, lihat https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Penanganan protokol yang disetel melalui kebijakan ini tidak digunakan ketika menangani maksud Android.</translation>
 <translation id="1118093128235245168">Izinkan situs meminta pengguna memberikan akses ke perangkat USB yang tersambung</translation>
 <translation id="1128903365609589950">Mengonfigurasi direktori yang akan digunakan oleh <ph name="PRODUCT_NAME" /> untuk menyimpan file yang ada dalam cache pada disk.
@@ -80,6 +91,7 @@
       Jika kebijakan tidak disetel, atau disetel ke False, maka cipher suite RC4 di TLS tidak akan diaktifkan. Jika kebijakan disetel ke True, kebijakan akan tetap berlaku untuk mempertahankan kompatibilitas dengan server yang sudah usang. Tindakan ini hanya untuk sementara dan server sebaiknya dikonfigurasi ulang.</translation>
 <translation id="1297182715641689552">Gunakan skrip proxy .pac</translation>
 <translation id="1304973015437969093">ID Ekstensi/Aplikasi dan URL pembaruan akan dipasang di latar belakang</translation>
+<translation id="1307454923744766368">Asal atau pola hostname yang semestinya tidak dikenai pembatasan untuk asal yang tidak aman</translation>
 <translation id="1313457536529613143">Menentukan persentase yang digunakan untuk menskalakan penundaan layar redup saat mengamati aktivitas pengguna selagi layar diredupkan atau tak lama setelah layar dimatikan.
 
           Jika kebijakan ini disetel, kebijakan ini menentukan persentase yang digunakan untuk menskalakan penundaan layar redup saat mengamati aktivitas pengguna selagi layar diredupkan atau tak lama setelah layar dimatikan. Saat penundaan redup diskalakan, penundaan status menganggur, layar kunci, layar mati juga disesuaikan agar jarak waktu dari penundaan layar redup sesuai konfigurasi asli.
@@ -91,6 +103,11 @@
 <translation id="1327466551276625742">Aktifkan permintaan konfigurasi jaringan saat offline</translation>
 <translation id="1330145147221172764">Aktifkan keyboard di layar</translation>
 <translation id="13356285923490863">Nama Kebijakan</translation>
+<translation id="1352174694615491349">Kebijakan ini memungkinkan koneksi HTTP/2 bergabung saat sertifikat klien sedang digunakan. Agar dapat bergabung, hostname untuk calon koneksi baru dan hostname untuk koneksi yang sudah ada harus cocok dengan satu atau beberapa pola yang dijelaskan oleh kebijakan ini. Kebijakan ini berupa daftar host yang menggunakan format filter URLBlacklist: "example.com" cocok dengan "example.com" dan semua subdomain (misalnya "sub.example.com"), sedangkan ".example.net" cocok dengan "example.net".
+
+      Permintaan bergabung ke host lain melalui koneksi yang menggunakan sertifikat klien dapat menyebabkan masalah keamanan dan privasi, karena otoritas terdekat akan diperlihatkan ke semua permintaan, meskipun pengguna tidak memberikan izin secara eksplisit. Kebijakan ini bersifat sementara dan akan dihapus dalam rilis mendatang. Lihat https://crbug.com/855690.
+
+      Jika kebijakan ini tidak ditetapkan, maka perilaku default yang tidak mengizinkan koneksi HTTP/2 bergabung melalui koneksi yang menggunakan sertifikat klien akan digunakan.</translation>
 <translation id="1353966721814789986">Halaman permulaan</translation>
 <translation id="1359553908012294236">Jika kebijakan ini disetel ke True atau tidak dikonfigurasi, <ph name="PRODUCT_NAME" /> akan mengaktifkan proses masuk tamu. Proses masuk tamu adalah profil <ph name="PRODUCT_NAME" /> dengan semua jendela dalam mode penyamaran.
 
@@ -182,6 +199,7 @@
 <translation id="1583248206450240930">Gunakan <ph name="PRODUCT_FRAME_NAME" /> jika tidak diubah</translation>
 <translation id="1599424828227887013">Mengaktifkan Isolasi Situs untuk asal yang ditentukan di perangkat Android</translation>
 <translation id="1608755754295374538">URL yang akan diberi akses ke perangkat perekam audio tanpa peringatan</translation>
+<translation id="1615221548356595305">Izinkan koneksi HTTP/2 bergabung untuk host ini bahkan saat sertifikat klien digunakan</translation>
 <translation id="1617235075406854669">Aktifkan penghapusan histori download atau browser</translation>
 <translation id="163200210584085447">Pola dalam daftar ini akan dicocokkan dengan
       asal keamanan URL yang meminta.  Jika ditemukan kecocokan, akses ke perangkat
@@ -1151,7 +1169,6 @@
       Jika kebijakan ini dibiarkan tidak disetel, pengumpulan data anonim yang menyertakan URL akan diaktifkan, namun pengguna dapat mengubahnya.</translation>
 <translation id="4250680216510889253">Tidak</translation>
 <translation id="4261820385751181068">Lokal layar login perangkat</translation>
-<translation id="4264607809747169568">Mengontrol fitur Berbagi File Jaringan untuk ketersediaan Chrome OS</translation>
 <translation id="427220754384423013">Menentukan printer yang dapat digunakan pengguna.
 
       Kebijakan ini hanya digunakan jika <ph name="PRINTERS_WHITELIST" /> dipilih untuk <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1302,6 +1319,7 @@
 Jika kebijakan ini diaktifkan, situs akan diizinkan untuk menavigasi dan membuka jendela/tab baru secara bersamaan.
 Jika kebijakan ini dinonaktifkan atau tidak disetel, situs tidak akan dapat menavigasi dan membuka jendela/tab baru secara bersamaan.</translation>
 <translation id="4680961954980851756">Aktifkan IsiOtomatis</translation>
+<translation id="4703402283970867140">Aktifkan model redup smart untuk memperpanjang waktu hingga layar diredupkan</translation>
 <translation id="4722122254122249791">Aktifkan Isolasi Situs untuk asal yang ditetapkan</translation>
 <translation id="4722399051042571387">Jika "false", pengguna tidak dapat menyetel PIN yang lemah dan mudah ditebak.
 
@@ -1513,13 +1531,6 @@
 <translation id="5370279767682621504">Aktifkan dukungan HTTP/0.9 pada porta non-default</translation>
 <translation id="5378985487213287085">Memungkinkan Anda menyetel apakah situs web diizinkan untuk menampilkan pemberitahuan desktop. Menampilkan pemberitahuan desktop dapat diizinkan secara default, ditolak secara default, atau pengguna dapat ditanya setiap kali sebuah situs web ingin menampilkan pemberitahuan desktop. Jika kebijakan ini tidak disetel, 'AskNotifications' akan digunakan dan pengguna dapat mengubahnya.</translation>
 <translation id="538108065117008131">Izinkan <ph name="PRODUCT_FRAME_NAME" /> menangani jenis konten berikut.</translation>
-<translation id="5391363090783552279">Jika kebijakan ini disetel ke true, <ph name="PRODUCT_NAME" /> akan tersambung ke perangkat Cast di semua alamat IP, bukan hanya alamat pribadi RFC1918/RFC4913.
-
-          Jika kebijakan ini disetel ke false, <ph name="PRODUCT_NAME" /> hanya akan tersambung ke perangkat Cast di alamat pribadi RFC1918/RFC4913.
-
-          Jika kebijakan ini tidak disetel, <ph name="PRODUCT_NAME" /> hanya akan tersambung ke perangkat Cast di alamat pribadi RFC1918/RFC4913, kecuali fitur CastAllowAllIPs diaktifkan.
-
-          Jika kebijakan "EnableMediaRouter" disetel ke false, nilai kebijakan ini tidak akan berpengaruh.</translation>
 <translation id="5392172595902933844">Informasi tentang status Android dikirim kembali ke
       server.
 
@@ -2073,6 +2084,10 @@
 <translation id="6943577887654905793">Nama preferensi Mac/Linux:</translation>
 <translation id="69525503251220566">Parameter menyediakan fitur telusuri pakai gambar untuk penyedia penelusuran default</translation>
 <translation id="6956272732789158625">Jangan izinkan situs apa pun menggunakan pembuatan kunci</translation>
+<translation id="6965859329738616662">Menentukan apakah model redup smart diizinkan untuk memperpanjang waktu hingga layar diredupkan.
+
+      Saat layar akan diredupkan, model redup smart akan mengevaluasi apakah peredupan layar sebaiknya ditunda. Jika model redup smart menunda peredupan layar, maka hal itu secara efektif akan memperpanjang waktu hingga layar diredupkan. Dalam hal ini, penundaan layar nonaktif, layar terkunci, dan layar menganggur disesuaikan untuk mempertahankan agar interval penundaan peredupan layar tetap sama dengan yang semula dikonfigurasi.
+      Jika kebijakan ini ditetapkan ke True atau tidak ditetapkan, model redup smart akan diaktifkan dan diizinkan untuk memperpanjang waktu hingga layar diredupkan. Jika kebijakan ini ditetapkan ke False, model redup smart tidak akan memengaruhi peredupan layar.</translation>
 <translation id="6982028490425791294">
       Jika kebijakan disetel ke true, <ph name="PRODUCT_NAME" /> diizinkan untuk mengumpulkan log aktivitas WebRTC dari layanan Google (mis., Google Meet), dan mengupload log tersebut ke Google.
 
@@ -2498,6 +2513,13 @@
 <translation id="7980227303582973781">Tidak ada batasan khusus</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Putar layar sebesar 0 derajat</translation>
+<translation id="8033913082323846868">Kebijakan ini tidak digunakan lagi di M70. Sebagai gantinya, gunakan AutofillAddressEnabled dan AutofillCreditCardEnabled.
+
+      Mengaktifkan fitur AutoFill <ph name="PRODUCT_NAME" /> dan mengizinkan pengguna untuk melengkapi formulir web secara otomatis menggunakan informasi yang tersimpan sebelumnya, seperti alamat atau informasi kartu kredit.
+
+      Jika setelan ini dinonaktifkan, AutoFill tidak akan dapat diakses oleh pengguna.
+
+      Jika setelan ini diaktifkan atau nilainya tidak ditetapkan, AutoFill akan dapat dikontrol oleh pengguna. Penetapan ini akan memungkinkan pengguna untuk mengonfigurasi profil AutoFill dan mengaktifkan atau menonaktifkan AutoFill sesuai keinginan.</translation>
 <translation id="8044493735196713914">Laporkan mode boot perangkat</translation>
 <translation id="8050080920415773384">Pencetakan Asli</translation>
 <translation id="8059164285174960932">URL tempat klien akses jarak jauh seharusnya memperoleh token autentikasi mereka</translation>
@@ -2814,6 +2836,18 @@
 
       Jika kebijakan ini tidak disetel, <ph name="PRINTERS_ALLOW_ALL" /> akan diterapkan.
       </translation>
+<translation id="8938932171964587769">Tidak digunakan lagi di M69. Sebagai gantinya, gunakan OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Kebijakan ini menentukan daftar asal (URL) atau pola hostname (seperti "*.example.com") yang tidak dikenai pembatasan keamanan untuk asal yang tidak aman.
+
+      Tujuannya adalah mengizinkan organisasi memberikan akses ke asal untuk aplikasi lama yang tidak dapat menerapkan TLS, atau menyiapkan server persiapan untuk pengembangan web internal agar developer mereka dapat menguji fitur yang memerlukan konteks aman tanpa harus menerapkan TLS di server persiapan. Dengan kebijakan ini, asal tidak akan dilabeli "Not Secure" di omnibox.
+
+     Menetapkan daftar URL dalam kebijakan ini memiliki efek yang sama dengan menetapkan tanda command-line '--unsafely-treat-insecure-origin-as-secure' ke daftar yang dipisahkan koma yang berisi URL yang sama. Jika ditetapkan, kebijakan ini akan mengganti tanda command-line.
+
+      Kebijakan ini tidak lagi digunakan di M69 dan diganti OverrideSecurityRestrictionsOnInsecureOrigin. Jika kedua kebijakan ini ada, OverrideSecurityRestrictionsOnInsecureOrigin akan mengganti kebijakan ini.
+
+      Untuk informasi selengkapnya tentang konteks aman, lihat https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Kebijakan ini mengontrol apakah Izin Sinkronisasi dapat ditampilkan ke pengguna saat login pertama kali. Kebijakan ini harus disetel ke false jika Izin Sinkronisasi tidak diperlukan bagi pengguna.
       Jika disetel ke false, Izin Sinkronisasi tidak akan ditampilkan.
       Jika disetel ke true atau tidak disetel, Izin Sinkronisasi dapat ditampilkan.</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 51f858e..49c602b 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -33,6 +33,17 @@
           Se l'impostazione viene disattivata o non configurata, l'host dell'assistenza remota viene eseguito nel contesto dell'utente e gli utenti remoti non possono interagire con finestre con privilegi più elevati sul desktop.</translation>
 <translation id="1096105751829466145">Provider di ricerca predefinito</translation>
 <translation id="1099282607296956954">Attiva isolamento sito per ogni sito</translation>
+<translation id="1100570158310952027">
+      Questa norma consente di specificare un elenco di origini (URL) o di schemi di nomi host (ad esempio "*.example.com") a cui non vengono applicate limitazioni di sicurezza sulle origini non sicure.
+
+Lo scopo è consentire alle organizzazioni di configurare le origini della whitelist per le applicazioni precedenti che non possono implementare TLS o configurare un server di gestione temporanea per gli sviluppi web interni, di modo che gli sviluppatori possano testare le funzioni che richiedono contesti sicuri senza dover implementare TLS sul server di gestione temporanea. Questa norma impedisce inoltre che l'origine venga contrassegnata come "Non sicura" nella omnibox.
+
+L'impostazione di un elenco di URL in questa norma ha lo stesso effetto dell'impostazione del flag della riga di comando "--unsafely-treat-insecure-origin-as-secure" su un elenco separato da virgole degli stessi URL. Se viene impostata, questa norma sostituisce il flag della riga di comando.
+
+Questa norma sostituirà UnsafelyTreatInsecureOriginAsSecure, se presente.
+
+Per ulteriori informazioni sui contesti sicuri, visita il sito https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">I gestori di protocollo impostati tramite questa norma non sono utilizzati durante la gestione degli intent di Android.</translation>
 <translation id="1118093128235245168">Consenti ai siti di chiedere all'utente di concedere l'accesso a un dispositivo USB collegato</translation>
 <translation id="1128903365609589950">Consente di configurare la directory che <ph name="PRODUCT_NAME" /> utilizza per archiviare i file memorizzati nella cache sul disco.
@@ -77,6 +88,7 @@
       Se la norma non viene impostata o se viene impostata su false, i pacchetti di crittografia RC4 in TLS non saranno attivati. In alternativa, la norma può essere impostata su true per mantenere la compatibilità con un server obsoleto. Si tratta di una soluzione temporanea ed è necessario configurare nuovamente il server.</translation>
 <translation id="1297182715641689552">Utilizza uno script proxy .pac</translation>
 <translation id="1304973015437969093">ID app/estensioni e URL di aggiornamento da installare automaticamente</translation>
+<translation id="1307454923744766368">Origini o schemi di nomi host a cui non dovrebbero essere applicate limitazioni sulle origini non sicure.</translation>
 <translation id="1313457536529613143">Consente di specificare la percentuale di regolazione del ritardo di oscuramento dello schermo quando viene osservata l'attività dell'utente mentre lo schermo è oscurato o subito dopo lo spegnimento dello schermo.
 
 Se questa norma viene impostata, consente di specificare la percentuale di regolazione del ritardo di oscuramento dello schermo quando viene osservata l'attività dell'utente mentre lo schermo è oscurato o subito dopo lo spegnimento dello schermo. Quando il ritardo di oscuramento viene regolato, i ritardi di spegnimento, blocco e inattività dello schermo vengono regolati per mantenere gli stessi distacchi dal ritardo di oscuramento dello schermo configurato in origine.
@@ -88,6 +100,11 @@
 <translation id="1327466551276625742">Attivazione richiesta di configurazione della rete offline</translation>
 <translation id="1330145147221172764">Attiva tastiera sullo schermo</translation>
 <translation id="13356285923490863">Nome norma</translation>
+<translation id="1352174694615491349">Questa norma consente l'unione della connessione HTTP/2 quando sono in uso i certificati client. Perché possa verificarsi l'unione, nel nome host della nuova potenziale connessione e in quello della connessione esistente deve esistere una corrispondenza in uno o più schemi descritti da questa norma. La norma è un elenco di host che utilizzano il formato del filtro URLBlacklist: "example.com" corrispondente a "example.com" e tutti i sottodomini (ad esempio "sub.example.com"), mentre ".example.net" corrisponde esattamente a "example.net".
+
+Le richieste di coalescenza rivolte a diversi host tra connessioni che utilizzano certificati client possono creare problemi di privacy o di sicurezza, perché l'ambient authority viene comunicata a tutte le richieste anche se l'utente non ha dato alcuna autorizzazione esplicita. Questa norma è provvisoria e verrà rimossa in una release futura. Consulta il sito: https://crbug.com/855690.
+
+Se questa norma non viene impostata, verrà applicato il comportamento predefinito che non consente l'unione di connessioni HTTP/2 per le connessioni che utilizzano certificati client.</translation>
 <translation id="1353966721814789986">Pagine di avvio</translation>
 <translation id="1359553908012294236">Se questa norma viene impostata su true o non viene configurata, in <ph name="PRODUCT_NAME" /> verranno attivati gli accessi come ospite, che sono profili <ph name="PRODUCT_NAME" /> in cui tutte le finestre sono in modalità di navigazione in incognito.
 
@@ -175,6 +192,7 @@
 <translation id="1583248206450240930">Utilizza <ph name="PRODUCT_FRAME_NAME" /> per impostazione predefinita</translation>
 <translation id="1599424828227887013">Attiva isolamento dei siti per origini specificate su dispositivi Android</translation>
 <translation id="1608755754295374538">URL a cui verrà concesso l'accesso ai dispositivi di acquisizione audio senza richieste</translation>
+<translation id="1615221548356595305">Consenti l'unione di connessioni HTTP/2 per questi host anche quando sono in uso i certificati client</translation>
 <translation id="1617235075406854669">Attiva eliminazione cronologia del browser e dei download</translation>
 <translation id="163200210584085447">I pattern di questo elenco verranno confrontati con l'origine di sicurezza dell'URL richiedente. Se viene trovata una corrispondenza, l'accesso ai dispositivi di acquisizione video verrà concesso sulle pagine di accesso SAML. In caso contrario, l'accesso verrà automaticamente negato. Non sono consentite sequenze con caratteri jolly.</translation>
 <translation id="1634989431648355062">Consenti il plug-in <ph name="FLASH_PLUGIN_NAME" /> su questi siti</translation>
@@ -1131,7 +1149,6 @@
       Se questa norma non viene impostata, la raccolta di dati anonimizzati con chiave URL verrà attivata, ma l'utente potrà modificare l'impostazione.</translation>
 <translation id="4250680216510889253">No</translation>
 <translation id="4261820385751181068">Lingua della schermata di accesso del dispositivo</translation>
-<translation id="4264607809747169568">Consente di controllare la disponibilità della funzione Condivisioni file di rete per Chrome OS</translation>
 <translation id="427220754384423013">Consente di specificare le stampanti utilizzabili dagli utenti.
 
       Questa norma viene usata soltanto se viene selezionata l'opzione <ph name="PRINTERS_WHITELIST" /> per la norma <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1276,6 +1293,7 @@
       Se questa norma viene attivata, ai siti sarà concesso di navigare e aprire nuove finestre/schede contemporaneamente.
       Se questa norma viene disattivata o non viene impostata, ai siti non sarà concesso di navigare e aprire nuove finestre/schede contemporaneamente.</translation>
 <translation id="4680961954980851756">Abilita Compilazione automatica</translation>
+<translation id="4703402283970867140">Attiva il modello di oscuramento smart per ritardare l'oscuramento dello schermo</translation>
 <translation id="4722122254122249791">Attiva isolamento sito per origini specificate</translation>
 <translation id="4722399051042571387">Se questa norma viene impostata su false, gli utenti non potranno impostare PIN non sicuri e facili da intuire.
 
@@ -1485,13 +1503,6 @@
 <translation id="5370279767682621504">Attiva il supporto HTTP/0.9 sulle porte non predefinite</translation>
 <translation id="5378985487213287085">Permette di stabilire se consentire o meno la visualizzazione di notifiche desktop nei siti web. La visualizzazione di notifiche desktop può essere consentita o negata per impostazione predefinita oppure l'utente può ricevere una richiesta ogni volta che un sito web desidera visualizzare le notifiche desktop. Se questa norma non viene impostata, verrà utilizzato il valore "AskNotifications", che potrà essere modificato dagli utenti.</translation>
 <translation id="538108065117008131">Consenti a <ph name="PRODUCT_FRAME_NAME" /> di gestire i seguenti tipi di contenuto.</translation>
-<translation id="5391363090783552279">Se questa norma è impostata su True, <ph name="PRODUCT_NAME" /> si connetterà ai dispositivi Cast su tutti gli indirizzi IP, non soltanto su indirizzi privati RFC1918/RFC4913.
-
-          Se questa norma è impostata su False, <ph name="PRODUCT_NAME" /> si connetterà ai dispositivi Cast soltanto su indirizzi privati RFC1918/RFC4913.
-
-          Se questa norma non è impostata, <ph name="PRODUCT_NAME" /> si connetterà ai dispositivi Cast soltanto su indirizzi privati RFC1918/RFC4913, a meno che non sia attiva la funzione CastAllowAllIPs.
-
-          Se la norma "EnableMediaRouter" è impostata su False, allora il valore di questa norma non produrrà alcun effetto.</translation>
 <translation id="5392172595902933844">Le informazioni sullo stato di Android vengono rimandate al server.
 
       Se la norma viene impostata su false o non viene del tutto impostata, le informazioni sullo stato non vengono segnalate.
@@ -2032,6 +2043,10 @@
 <translation id="6943577887654905793">Nome di preferenza per Mac/Linux:</translation>
 <translation id="69525503251220566">Parametro che fornisce la funzione di ricerca tramite immagine per il provider di ricerca predefinito</translation>
 <translation id="6956272732789158625">Non consentire a nessun sito di utilizzare la generazione di chiavi</translation>
+<translation id="6965859329738616662">Specifica se al modello di oscuramento smart è consentito estendere la quantità di tempo prima che lo schermo venga oscurato.
+
+Quando lo schermo sta per essere oscurato, il modello di oscuramento smart valuta se posticipare l'azione. In tal caso, il tempo prima che lo schermo venga oscurato viene effettivamente prolungato e il ritardo di inattività, la disattivazione dello schermo e il blocco dello schermo vengono regolati in modo da rispettare gli intervalli di tempo rispetto al ritardo oscuramento schermo configurati in precedenza.
+Se questa norma è impostata su vero o non è impostata, il modello di oscuramento smart verrà attivato e la quantità di tempo prima che lo schermo venga oscurato verrà estesa. Se questa norma è impostata su falso, il modello di oscuramento smart non inciderà sull'oscuramento dello schermo.</translation>
 <translation id="6982028490425791294">
       Se questa norma viene impostata su true, <ph name="PRODUCT_NAME" /> è autorizzato a raccogliere log eventi WebRTC dai servizi Google (ad esempio Google Meet) e a caricarli su Google.
 
@@ -2455,6 +2470,13 @@
 <translation id="7980227303582973781">Nessuna limitazione speciale</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Ruota lo schermo di 0°</translation>
+<translation id="8033913082323846868">Questa norma è stata ritirata in M70, utilizza le norme AutofillAddressEnabled e AutofillCreditCardEnabled.
+
+Consente di attivare la funzione <ph name="PRODUCT_NAME" /> e permette agli utenti di eseguire il completamento automatico dei moduli web utilizzando informazioni memorizzate in precedenza, come l'indirizzo o i dati della carta di credito.
+
+Se disattivi questa impostazione, gli utenti non potranno utilizzare la funzione Compilazione automatica.
+
+Se attivi questa impostazione o non imposti un valore, la funzione Compilazione automatica potrà essere gestita dagli utenti, che potranno quindi configurare i profili di Compilazione automatica e attivare o disattivare a propria scelta questa funzione.</translation>
 <translation id="8044493735196713914">Indicazione modalità di avvio dispositivo</translation>
 <translation id="8050080920415773384">Stampa nativa</translation>
 <translation id="8059164285174960932">URL su cui i client di accesso remoto dovrebbero ottenere il token di autenticazione</translation>
@@ -2765,6 +2787,19 @@
 
       Se questa norma non viene impostata, viene usata l'opzione <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Ritirata in M69. Utilizza la norma OverrideSecurityRestrictionsOnInsecureOrigin.
+
+Questa norma consente di specificare un elenco di origini (URL) o di schemi di nomi host (ad esempio "*.example.com") a cui non vengono applicate limitazioni di sicurezza sulle origini non sicure.
+
+Lo scopo è consentire alle organizzazioni di configurare le origini della whitelist per le applicazioni precedenti che non possono implementare TLS o di configurare un server di gestione temporanea per gli sviluppi web interni, di modo che gli sviluppatori possano testare le funzioni che richiedono contesti sicuri senza dover implementare TLS sul server di gestione temporanea. Questa norma impedisce inoltre che l'origine venga contrassegnata come "Non sicura" nella omnibox.
+
+L'impostazione di un elenco di URL in questa norma ha lo stesso effetto dell'impostazione del flag della riga di comando "--unsafely-treat-insecure-origin-as-secure" su un elenco separato da virgole degli stessi URL. Se viene impostata, questa norma sostituisce il flag della riga di comando.
+
+Questa norma è stata ritirata in M69 in favore di OverrideSecurityRestrictionsOnInsecureOrigin. Se sono presenti entrambe le norme, verrà utilizzata OverrideSecurityRestrictionsOnInsecureOrigin.
+
+Per ulteriori informazioni sui contesti sicuri, visita il sito
+https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Questa norma consente di controllare se il consenso alla sincronizzazione può essere mostrato all'utente durante il primo accesso. Dovrebbe essere impostata su false se tale consenso non è mai necessario per l'utente.
       Se impostata su false, il consenso alla sincronizzazione non verrà visualizzato.
       Se impostata su true o non viene impostata, il consenso alla sincronizzazione può essere visualizzato.</translation>
diff --git a/components/policy/resources/policy_templates_iw.xtb b/components/policy/resources/policy_templates_iw.xtb
index 692e40e..1bb5d221 100644
--- a/components/policy/resources/policy_templates_iw.xtb
+++ b/components/policy/resources/policy_templates_iw.xtb
@@ -32,6 +32,23 @@
           אם ההגדרה הזו מושבתת או לא מוגדרת, מארח הסיוע מרחוק יופעל בהקשר המשתמש ומשתמשים מרוחקים לא יוכלו לבצע פעולות בחלונות עם הרשאות מתקדמות בשולחן העבודה.</translation>
 <translation id="1096105751829466145">ספק חיפוש המוגדר כברירת מחדל</translation>
 <translation id="1099282607296956954">הפעלת בידוד אתר בשביל כל אתר</translation>
+<translation id="1100570158310952027">‏
+      המדיניות הזו מגדירה רשימת מקורות (כתובות אתרים) או דפוסים של שמות מארחים (כמו 
+      ‎"*.example.com"‎) שיש להתייחס אליהם כאל מקור מאובטח.
+
+      המטרה היא להתיר לארגונים להגדיר מקורות ברשימת היתרים בשביל אפליקציות מדור קודם  
+      שאינן יכולות לפרוס TLS (אבטחת שכבת התעבורה), או להגדיר שרת ביניים לפיתוח אינטרנט 
+      פנימי כדי שהמפתחים יוכלו לבדוק תכונות שנחוץ להן הקשר מאובטח, ללא צורך בפריסה של 
+      TLS בשרת הביניים. המדיניות הזו גם תמנע תיוג של המקור כ"לא מאובטח" בסרגל הכתובות.
+
+      להגדרת רשימה של כתובות אתרים במדיניות הזו יש השפעה זהה לזו של הגדרת הסימון בשורת 
+      הפקודות '‎--unsafely-treat-insecure-origin-as-secure' כרשימה המופרדת בפסיקים שכוללת 
+      את אותן כתובות אתרים. אם המדיניות מוגדרת, היא תבטל את הסימון בשורת הפקודות.
+
+      המדיניות הזו תבטל את UnsafelyTreatInsecureOriginAsSecure, אם הוגדרה.
+
+      מידע נוסף על הקשרים מאובטחים זמין בכתובת https://www.w3.org/TR/secure-contexts/‎.
+      </translation>
 <translation id="1117535567637097036">‏מטפלי הפרוטוקול שהוגדרו דרך המדיניות הזו לא משמשים לטיפול במנגנוני Intent של Android.</translation>
 <translation id="1118093128235245168">‏אתרים יכולים לבקש מהמשתמש להעניק גישה אל התקן USB מחובר</translation>
 <translation id="1128903365609589950">‏מגדירה את הספרייה שתשמש את <ph name="PRODUCT_NAME" /> לאחסון קובצי מטמון בדיסק.
@@ -79,6 +96,7 @@
       אם המדיניות לא תוגדר או תוגדר כ-false, חבילות הצפנים של RC4 ב-TLS (אבטחת שכבת התעבורה) לא יופעלו. כדי למנוע זאת, אפשר להגדיר את המדיניות כ-true וכך לשמור על תאימות לשרת מיושן. זהו פתרון זמני, ויש להגדיר את השרת מחדש.</translation>
 <translation id="1297182715641689552">‏השתמש בסקריפט Proxy מסוג ‎.pac</translation>
 <translation id="1304973015437969093">מזהי תוספים/אפליקציות וכתובות אתרים של עדכונים המיועדים להתקנה שקטה</translation>
+<translation id="1307454923744766368">דפוסים של מקורות או שמות מארחים שיש להתייחס אליהם כאל מקור מאובטח</translation>
 <translation id="1313457536529613143">הגדרת האחוז שלפיו ייקבע שינוי קנה המידה של השהיית עמעום המסך כאשר מובחנת פעילות משתמש בזמן שהמסך מעומעם או מיד לאחר כיבוי המסך.
 
           אם מדיניות זו מוגדרת, היא מציינת את האחוז שלפיו ייקבע שינוי קנה המידה של השהיית עמעום המסך כאשר מובחנת פעילות משתמש בזמן שהמסך מעומעם או מיד לאחר כיבוי המסך. בעת שינוי קנה המידה של עמעום המסך, ההשהיות של כיבוי מסך, נעילת מסך ומצב סרק יותאמו לשמירה על אותם הפרשים מהשהיית עמעום המסך שהוגדרו במקור.
@@ -90,6 +108,11 @@
 <translation id="1327466551276625742">הפעל בקשה לתצורת רשת במצב לא מקוון</translation>
 <translation id="1330145147221172764">הפעל מקלדת על המסך</translation>
 <translation id="13356285923490863">שם מדיניות</translation>
+<translation id="1352174694615491349">‏המדיניות הזו מתירה איחוד של חיבורי HTTP/2 כשנעשה שימוש באישורי לקוח. כדי לבצע את האיחוד, שם המארח של החיבור הפוטנציאלי החדש ושם המארח של החיבור הקיים צריכים להתאים לדפוס אחד או יותר שתואר על-ידי המדיניות הזו. המדיניות היא רשימה של מארחים המשתמשים בפורמט המסנן URLBlacklist: ‏"example.com" תואם ל-"example.com" ולכל תתי-הדומיינים (למשל "sub.example.com"), בעוד ש-".example.net" תואם בדיוק ל-"example.net".
+
+      בקשות איחוד הנשלחות אל מארחים שונים בחיבורים שבהם נעשה שימוש באישור לקוח יכולות ליצור בעיות אבטחה ופרטיות, מפני שההרשאה הכללית תינתן לכל הבקשות, גם אם המשתמש לא התיר זאת באופן מפורש. המדיניות הזו זמנית ותוסר בגרסה עתידית. יש לעיין בכתובת https://crbug.com/855690.
+
+      אם המדיניות הזו לא תוגדר, תחול התנהגות ברירת המחדל שאינה מתירה איחוד של חיבורי HTTP/2 כשנעשה שימוש באישורי לקוח.</translation>
 <translation id="1353966721814789986">דפי הפעלה</translation>
 <translation id="1359553908012294236">‏אם מדיניות זו מוגדרת כ-true או אינה מוגדרת, <ph name="PRODUCT_NAME" /> יאפשר התחברויות של אורחים. התחברויות של אורחים הן פרופילים של <ph name="PRODUCT_NAME" /> שבהם כל החלונות הם במצב גלישה בסתר.
 
@@ -179,6 +202,7 @@
 <translation id="1583248206450240930">השתמש ב-<ph name="PRODUCT_FRAME_NAME" /> כברירת מחדל</translation>
 <translation id="1599424828227887013">‏הפעלת בידוד אתר בשביל מקורות ספציפיים במכשירי Android</translation>
 <translation id="1608755754295374538">כתובות אתרים שיקבלו גישה למכשירי הקלטת אודיו ללא הצגת בקשה</translation>
+<translation id="1615221548356595305">‏התרת איחוד של חיבורי HTTP/2 במארחים האלה, גם כשנעשה שימוש באישורי לקוח</translation>
 <translation id="1617235075406854669">הפעל את מחיקת היסטוריית הדפדפן וההורדות</translation>
 <translation id="163200210584085447">‏תבניות ברשימה הזו יעברו השוואה למקור האבטחה
       של כתובת האתר שממנה הגיעה הבקשה. אם תימצא התאמה, הגישה להתקני
@@ -1148,7 +1172,6 @@
       אם המדיניות הזאת לא מוגדרת, איסוף נתונים שעברו אנונימיזציה עם קידוד שכולל כתובת אתר יופעל, אבל המשתמשים יוכלו לשנות את ההגדרה.</translation>
 <translation id="4250680216510889253">לא</translation>
 <translation id="4261820385751181068">הגדרת המקום של מסך הכניסה במכשיר</translation>
-<translation id="4264607809747169568">‏שליטה בהגדרות התכונה 'התקן רשת לשיתוף קבצים' לקביעת הזמינות של ChromeOS</translation>
 <translation id="427220754384423013">‏מציינת את המדפסות הזמינות למשתמש.
 
       המדיניות הזו מופעלת רק אם האפשרות <ph name="PRINTERS_WHITELIST" /> נבחרה בשביל <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1300,6 +1323,7 @@
       אם המדיניות הזו מופעלת, אתרים יהיו רשאים לנווט בין חלונות/כרטיסיות חדשים ולפתוח אותם בו-זמנית.
       אם המדיניות הזו מושבתת או לא מוגדרת, אתרים לא יהיו רשאים לנווט בין חלונות/כרטיסיות חדשים ולפתוח אותם בו-זמנית.</translation>
 <translation id="4680961954980851756">הפעל מילוי אוטומטי</translation>
+<translation id="4703402283970867140">הפעלת מודל עמעום חכם להארכת הזמן עד לעמעום המסך</translation>
 <translation id="4722122254122249791">הפעלת בידוד אתר בשביל מקורות ספציפיים</translation>
 <translation id="4722399051042571387">‏אם המדיניות מוגדרת כ-false, המשתמשים לא יוכלו להגדיר קודי PIN חלשים וקלים לניחוש.
 
@@ -1510,13 +1534,6 @@
 <translation id="5370279767682621504">‏הפעלת תמיכה ב-HTTP/0.9 ביציאות שאינן מוגדרות כברירת מחדל</translation>
 <translation id="5378985487213287085">‏מאפשר לך לקבוע אם מותר לאתרים להציג התראות שולחן עבודה. ניתן להציג התראות שולחן עבודה כברירת מחדל, לדחות הצגת התראות אלה כברירת מחדל או שהמשתמש יתבקש להציג התראות שולחן עבודה בכל פעם שאתר מבקש זאת. אם לא הגדרת מדיניות זו, המערכת תשתמש ב'AskNotifications' והמשתמש יוכל לשנות זאת.</translation>
 <translation id="538108065117008131">אפשר ל-<ph name="PRODUCT_FRAME_NAME" /> לטפל בסוגי התוכן הבאים.</translation>
-<translation id="5391363090783552279">‏אם המדיניות מקבלת את הערך true, <ph name="PRODUCT_NAME" /> יתחבר למכשירי Cast בכל כתובת IP, ולא רק בכתובות פרטיות מסוג RFC1918/‏RFC4913.
-
-          אם המדיניות הזו מקבלת את הערך false, <ph name="PRODUCT_NAME" /> יתחבר למכשירי Cast בכתובות פרטיות בלבד מסוג RFC1918/‏RFC4913.
-
-          אם המדיניות הזו לא מוגדרת, <ph name="PRODUCT_NAME" /> יתחבר למכשירי Cast בכתובות פרטיות בלבד מסוג RFC1918/RFC4913, אלא אם התכונה CastAllowAllIPs מופעלת.
-
-          אם המדיניות EnableMediaRouter מקבלת את הערך false, לערך של המדיניות הזו לא תהיה השפעה.</translation>
 <translation id="5392172595902933844">‏מידע על הסטטוס של Android נשלח חזרה אל השרת.
 
       אם המדיניות מוגדרת כ-false או אינה מוגדרת, לא מדווחים פרטי סטטוס.
@@ -2063,6 +2080,11 @@
 <translation id="6943577887654905793">‏שם העדפה של Mac/‏Linux:</translation>
 <translation id="69525503251220566">פרמטר המספק תכונה של חיפוש לפי תמונות עבור ספק החיפוש המוגדר כברירת המחדל</translation>
 <translation id="6956272732789158625">אל תאפשר לאף אתר להשתמש ביצירת מפתחות</translation>
+<translation id="6965859329738616662">‏מציינת אם מודל של עמעום חכם מורשה להאריך את הזמן עד לעמעום המסך.
+
+      כשעומד להתרחש עמעום של המסך, מודל העמעום החכם בודק אם יש לדחות את העמעום. אם מודל העמעום החכם ידחה את העמעום, הוא מאריך את הזמן עד לביצוע העמעום. במקרה זה מעודכנות ההגדרות של עיכוב עד לכיבוי המסך, נעילת המסך וחוסר פעילות כדי לשמור על אותם פרקי זמן מעיכוב עמעום המסך כפי שהוגדרו במקור.
+
+      אם המדיניות מוגדרת כ-True או אינה מוגדרת, מודל העמעום החכם יופעל ויורשה להאריך את הזמן עד לעמעום המסך. אם המדיניות מוגדרת כ-False, מודל העמעום החכם לא ישפיע על עמעום המסך.</translation>
 <translation id="6982028490425791294">‏
       אם המדיניות הזו מוגדרת כ-true, ‏<ph name="PRODUCT_NAME" /> רשאי לאסוף יומנים של אירועי WebRTC משירותי Google (למשל Google Meet) ולהעלות את היומנים האלה אל Google.
 
@@ -2488,6 +2510,13 @@
 <translation id="7980227303582973781">ללא הגבלות מיוחדות</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">סובב את המסך ב-0 מעלות</translation>
+<translation id="8033913082323846868">‏המדיניות הזו הוצאה משימוש ב-M70, במקומה יש להשתמש ב-AutofillAddressEnabled וב-AutofillCreditCardEnabled instead.
+
+המדיניות מפעילה את תכונת המילוי האוטומטי של <ph name="PRODUCT_NAME" /> ומאפשרת למשתמשים להשלים אוטומטית טפסים באינטרנט באמצעות מידע שאוחסן בעבר, כגון כתובת או פרטי כרטיס אשראי.
+
+      אם הגדרה זו מושבתת, המילוי האוטומטי לא יהיה נגיש למשתמשים.
+
+      אם הגדרה זו מופעלת או לא נקבע ערך, המילוי האוטומטי יישאר בשליטתו של ​​המשתמש. דבר זה יאפשר לו להגדיר פרופילי מילוי אוטומטי ולהפעיל או להשבית מילוי אוטומטי על פי שיקול דעתו.</translation>
 <translation id="8044493735196713914">דיווח על מצב אתחול של המכשיר</translation>
 <translation id="8050080920415773384">הדפסה מקומית</translation>
 <translation id="8059164285174960932">כתובת אתר שבו לקוחות גישה מרחוק אמורים לקבל את אסימון האימות שלהם</translation>
@@ -2816,6 +2845,27 @@
 
       אם המדיניות הזו לא מוגדרת, נעשה שימוש באפשרות <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">‏הוצאה משימוש ב-M69. במקומה יש להשתמש ב-OverrideSecurityRestrictionsOnInsecureOrigin
+
+      המדיניות מגדירה רשימת מקורות (כתובות אתרים) או דפוסים של שמות מארחים (כמו 
+      ‎"*.example.com"‎) שיש להתייחס אליהם כאל מקור מאובטח.
+
+
+      המטרה היא להתיר לארגונים להגדיר מקורות ברשימת היתרים בשביל אפליקציות מדור קודם  
+      שאינן יכולות לפרוס TLS (אבטחת שכבת התעבורה), או להגדיר שרת ביניים לפיתוח אינטרנט 
+      פנימי כדי שהמפתחים יוכלו לבדוק תכונות שנחוץ להן הקשר מאובטח, ללא צורך בפריסה של 
+      TLS בשרת הביניים. המדיניות הזו גם תמנע תיוג של המקור כ"לא מאובטח" בסרגל הכתובות.
+
+      להגדרת רשימה של כתובות אתרים במדיניות הזו יש השפעה זהה לזו של הגדרת הסימון בשורת 
+      הפקודות '‎--unsafely-treat-insecure-origin-as-secure' כרשימה המופרדת בפסיקים שכוללת 
+      את אותן כתובות אתרים. אם המדיניות מוגדרת, היא תעקוף את הסימון בשורת הפקודות.
+
+      המדיניות הזו הוצאה משימוש ב-M69 והוחלפה ב-
+      OverrideSecurityRestrictionsOnInsecureOrigin. אם שתיהן הוגדרו, 
+      OverrideSecurityRestrictionsOnInsecureOrigin תבטל את המדיניות הזו.
+
+      מידע נוסף על הקשרים מאובטחים זמין בכתובת https://www.w3.org/TR/secure-contexts/‎
+      </translation>
 <translation id="8942616385591203339">‏המדיניות הזו קובעת אם אפשר להציג למשתמש את בקשת ההסכמה לסינכרון בכניסה הראשונה לחשבון. יש לקבוע אותה כ-false אם בקשת ההסכמה לסינכרון אף פעם אינה נחוצה למשתמש.
       אם היא מוגדרת כ-false, בקשת ההסכמה לסינכרון לא תוצג.
       אם היא מוגדרת כ-true או אינה מוגדרת, בקשת ההסכמה לסינכרון יכולה להופיע.</translation>
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index e651915..91262c39 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -33,6 +33,28 @@
           この設定が無効な場合や設定されていない場合、リモート アシスタンス ホストはユーザーのコンテキストで実行され、リモート ユーザーはデスクトップ上の権限昇格ウィンドウとやり取りできません。</translation>
 <translation id="1096105751829466145">デフォルトの検索プロバイダ</translation>
 <translation id="1099282607296956954">すべてのサイトに対してサイト分離を有効にする</translation>
+<translation id="1100570158310952027">
+      保護されていない発行元に関するセキュリティ制限の適用対象外となる
+      発行元(URL)またはホスト名パターン(例: *.example.com)のリストを
+      指定します。
+
+      このポリシーの目的は、TLS を実装できない以前のアプリケーションに対して
+      発行元のホワイトリストを組織が設定できるようにすること、または組織で
+      内部ウェブ開発用のステージング サーバーをセットアップし、ステージング 
+      サーバーに TLS を実装しなくても安全なコンテキストで機能をテストできる
+      ようにすることです。また、このポリシーを設定すると、アドレスバーで
+      発行元に「保護されていない」というラベルは表示されなくなります。
+
+      このポリシーで URL のリストを設定すると、コマンドライン フラグ
+      「--unsafely-treat-insecure-origin-as-secure」を使って同じ URL をカンマ
+      区切りリストで設定した場合と同じ効果が得られます。このポリシーが設定
+      されている場合、このコマンドライン フラグの指定は無視されます。
+
+      UnsafelyTreatInsecureOriginAsSecure も設定されている場合は、このポリシーが優先されます。
+
+      安全なコンテキストについて詳しくは、
+      https://www.w3.org/TR/secure-contexts/ をご覧ください。
+      </translation>
 <translation id="1117535567637097036">このポリシーで設定したプロトコル ハンドラは、Android インテントの処理には使用されません。</translation>
 <translation id="1118093128235245168">接続されている USB デバイスへのアクセスを求めるメッセージをユーザーに表示することをサイトに許可する</translation>
 <translation id="1128903365609589950"><ph name="PRODUCT_NAME" /> でキャッシュしたファイルをディスクに保存する際に使用するディレクトリを設定します。
@@ -79,6 +101,8 @@
       このポリシーが未設定または false に設定されている場合、TLS の RC4 暗号スイートは有効化されません。古いサーバーに対応するため、true に設定しておくこともできますが、あくまで暫定的な措置であり、サーバーを再設定する必要があります。</translation>
 <translation id="1297182715641689552">.pac プロキシ スクリプトを使用する</translation>
 <translation id="1304973015437969093">サイレント インストールされる拡張機能 / アプリの ID と更新 URL</translation>
+<translation id="1307454923744766368">保護されていない発行元に関する制限の適用対象外となる発行元
+      またはホスト名パターン</translation>
 <translation id="1313457536529613143">画面を暗くするまでの時間に掛ける倍率を指定します。これは、画面が暗くなっているときや画面の電源がオフになった直後にユーザー操作が検出された場合に使用されます。
 
           このポリシーを設定すると、画面が暗くなっているときや画面の電源がオフになった直後にユーザー操作が検出された場合に、このポリシーで指定された倍率が画面を暗くするまでの時間に掛けられます。画面を暗くするまでの時間が変更されるときは、画面の電源オフまでの時間、画面ロックまでの時間、およびアイドル時間も調整されます。これは、画面を暗くするまでの時間との差を当初の設定どおりに維持するためです。
@@ -90,6 +114,11 @@
 <translation id="1327466551276625742">オフライン時のネットワーク設定メッセージの表示を有効にする</translation>
 <translation id="1330145147221172764">画面キーボードを有効にする</translation>
 <translation id="13356285923490863">ポリシー名</translation>
+<translation id="1352174694615491349">クライアント証明書が使用されているときに HTTP/2 接続の統合を許可するよう指定します。接続を統合するには、新しい接続候補のホスト名と既存の接続のホスト名が、このポリシーに記述されているパターンの 1 つ以上に一致する必要があります。このポリシーでは、URLBlacklist フィルタの形式を使ってホストのリストを指定します。たとえば、「example.com」と指定すると「example.com」とすべてのサブドメイン(「sub.example.com」など)が一致することになりますが、「.example.net」と指定すると「example.net」のみが一致することになります。
+
+      クライアント証明書を使用する接続を介して異なるホストへのリクエストを統合すると、セキュリティやプライバシーの問題が発生する場合があります。これは、すべてのリクエストに対して、ユーザーが明示的に権限を与えていない場合でも間接的な権限が与えられてしまうためです。このポリシーは一時的なもので、将来のリリースで削除される予定です。https://crbug.com/855690 をご覧ください。
+
+      このポリシーが未設定の場合、クライアント証明書を使用する接続で HTTP/2 接続の統合は許可されません。これはデフォルトの動作です。</translation>
 <translation id="1353966721814789986">起動ページ</translation>
 <translation id="1359553908012294236">このポリシーが true に設定されているか未設定の場合、<ph name="PRODUCT_NAME" /> ではゲストモードでのログインが可能です。ゲストモードでのログインには、すべてのウィンドウをシークレット モードで表示する <ph name="PRODUCT_NAME" /> プロフィールが適用されます。
 
@@ -183,6 +212,7 @@
 <translation id="1583248206450240930">デフォルトで <ph name="PRODUCT_FRAME_NAME" /> を使用する</translation>
 <translation id="1599424828227887013">Android 端末で指定の発行元に対してサイト分離を有効にする</translation>
 <translation id="1608755754295374538">ユーザー確認なしで音声キャプチャ デバイスへのアクセスが許可される URL</translation>
+<translation id="1615221548356595305">クライアント証明書が使用されているときでも、指定したホストで HTTP/2 接続の統合を許可する</translation>
 <translation id="1617235075406854669">閲覧とダウンロードの履歴を削除可能にする</translation>
 <translation id="163200210584085447">このリストに指定されているパターンと、リクエスト元 URL の
       セキュリティ オリジンが照合されます。一致するものが見つかった場合は、
@@ -1151,7 +1181,6 @@
       このポリシーを未設定のままにすると、URL キーによる匿名化データの収集は有効になりますが、ユーザーはこの設定を変更できます。</translation>
 <translation id="4250680216510889253">いいえ</translation>
 <translation id="4261820385751181068">端末のログイン画面の言語 / 地域</translation>
-<translation id="4264607809747169568">Chrome OS でネットワーク ファイル共有を使用できるかどうかの設定</translation>
 <translation id="427220754384423013">ユーザーに使用を許可するプリンタを指定します。
 
       このポリシーは、<ph name="BULK_PRINTERS_ACCESS_MODE" /> の値に <ph name="PRINTERS_WHITELIST" /> が選択されている場合にのみ使用されます。
@@ -1302,6 +1331,7 @@
       このポリシーが有効な場合、サイトでは移動と同時に新しいウィンドウやタブを開くことができます。
       このポリシーが無効または未設定の場合、サイトでは移動と同時に新しいウィンドウやタブを開くことはできません。</translation>
 <translation id="4680961954980851756">自動入力を有効にする</translation>
+<translation id="4703402283970867140">スマート消灯モデルを有効にして、画面が暗くなるまでの時間を延長する</translation>
 <translation id="4722122254122249791">指定した発行元に対してサイト分離を有効にする</translation>
 <translation id="4722399051042571387">false の場合、ユーザーは強度が低く推測されやすい PIN を設定できません。
 
@@ -1513,13 +1543,6 @@
 <translation id="5370279767682621504">デフォルト以外のポートで HTTP/0.9 サポートを有効にする</translation>
 <translation id="5378985487213287085">ウェブサイトに対してデスクトップ通知の表示を許可するかどうかを設定できます。デスクトップ通知の表示は、デフォルトで許可または禁止することができます。また、ウェブサイトでデスクトップ通知が表示される前にユーザーが毎回確認することもできます。このポリシーが未設定の場合、「AskNotifications」が使用され、ユーザーはこの設定を変更できます。</translation>
 <translation id="538108065117008131"><ph name="PRODUCT_FRAME_NAME" /> に対して次のコンテンツ タイプの処理を許可する</translation>
-<translation id="5391363090783552279">このポリシーが true に設定されている場合、<ph name="PRODUCT_NAME" /> は、RFC1918 と RFC4913 のプライベート アドレスだけでなくすべての IP アドレスのキャスト デバイスに接続します。
-
-          このポリシーが false に設定されている場合、<ph name="PRODUCT_NAME" /> は、RFC1918 と RFC4913 のプライベート アドレスのキャスト デバイスにのみ接続します。
-
-          このポリシーが未設定の場合、<ph name="PRODUCT_NAME" /> は、RFC1918 と RFC4913 のプライベート アドレスのキャスト デバイスにのみ接続します(CastAllowAllIPs 機能が有効になっている場合を除く)。
-
-          EnableMediaRouter ポリシーが false に設定されている場合、このポリシーの値は適用されません。</translation>
 <translation id="5392172595902933844">Android のステータスに関する情報をサーバーに
       返します。
 
@@ -2073,6 +2096,10 @@
 <translation id="6943577887654905793">Mac/Linux 設定名:</translation>
 <translation id="69525503251220566">既定の検索プロバイダに画像検索機能を提供するパラメータ</translation>
 <translation id="6956272732789158625">すべてのサイトにキー生成の使用を許可しない</translation>
+<translation id="6965859329738616662">スマート消灯モデルを使って画面が暗くなるまでの時間を延長するかどうかを指定します。
+
+      スマート消灯モデルでは、画面が暗くなる時間が近づいたときに時間を延長するかどうかが判定され、延長する場合は最適な時間に調整されます。この場合、画面オフ、画面ロック、アイドル判定までの時間も、最初の指定と同じ間隔で調整されます。
+      このポリシーが True に設定されているか未設定の場合は、スマート消灯モデルが有効になり、画面が暗くなるまでの時間が必要に応じて延長されるようになります。このポリシーが False に設定されている場合は、画面が暗くなるまでの時間がスマート消灯モデルによって変更されることはありません。</translation>
 <translation id="6982028490425791294">
       このポリシーが true に設定されている場合は、<ph name="PRODUCT_NAME" /> に対して、Google サービス(Google Meet など)からの WebRTC イベントログの収集と、Google へのそれらのログのアップロードが許可されます。
 
@@ -2498,6 +2525,13 @@
 <translation id="7980227303582973781">特別な制限なし</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">画面を 0 度回転(回転なし)</translation>
+<translation id="8033913082323846868">このポリシーは M70 でサポート終了となりました。代わりに AutofillAddressEnabled と AutofillCreditCardEnabled を使用してください。
+
+      <ph name="PRODUCT_NAME" /> の自動入力機能を有効にし、ユーザーが以前に保存した情報(住所やクレジット カード情報など)を使用してウェブフォームに自動入力できるようにします。
+
+      この設定を無効にした場合、ユーザーは自動入力を利用できません。
+
+      この設定を有効にするか値を設定しない場合、ユーザーは自動入力を利用できます。ユーザーは自動入力プロフィールを設定して、自身の判断で自動入力をオンまたはオフにすることができます。</translation>
 <translation id="8044493735196713914">デバイス起動モードを報告する</translation>
 <translation id="8050080920415773384">ネイティブ印刷</translation>
 <translation id="8059164285174960932">リモート アクセス クライアントが認証トークンを取得する URL</translation>
@@ -2821,6 +2855,33 @@
 
       このポリシーが未設定の場合は、<ph name="PRINTERS_ALLOW_ALL" /> が選択された場合と同じ動作になります。
       </translation>
+<translation id="8938932171964587769">このポリシーは M69 でサポート終了となりました。代わりに
+      OverrideSecurityRestrictionsOnInsecureOrigin を使用してください。
+
+      保護されていない発行元に関するセキュリティ制限の適用対象外となる
+      発行元(URL)またはホスト名パターン(例: *.example.com)のリストを
+      指定します。
+
+      このポリシーの目的は、TLS を実装できない以前のアプリケーションに対して
+      発行元のホワイトリストを組織が設定できるようにすること、または組織で
+      内部ウェブ開発用のステージング サーバーをセットアップし、ステージング
+      サーバーに TLS を実装しなくても安全なコンテキストで機能をテストできる
+      ようにすることです。また、このポリシーを設定すると、アドレスバーで
+      発行元に「保護されていない」というラベルは表示されなくなります。
+
+      このポリシーで URL のリストを設定すると、コマンドライン フラグ
+      「--unsafely-treat-insecure-origin-as-secure」を使って同じ URL をカンマ
+      区切りリストで設定した場合と同じ効果が得られます。このポリシーが設定
+      されている場合、このコマンドライン フラグの指定は無視されます。
+
+      このポリシーは M69 でサポート終了となりました。代わりに
+      OverrideSecurityRestrictionsOnInsecureOrigin を使用してください。
+      両方のポリシーが設定されている場合は、このポリシーよりも
+      OverrideSecurityRestrictionsOnInsecureOrigin が優先されます。
+
+      安全なコンテキストについて詳しくは、
+      https://www.w3.org/TR/secure-contexts/ をご覧ください。
+      </translation>
 <translation id="8942616385591203339">初回ログイン時に同期の同意メッセージを表示できるかどうかを制御します。ユーザーに同期の同意メッセージを表示する必要がない場合は、このポリシーを false に設定します。
       このポリシーが false に設定されている場合、同期の同意メッセージは表示されません。
       このポリシーが true に設定されているか未設定の場合は、同期の同意メッセージを表示できます。</translation>
diff --git a/components/policy/resources/policy_templates_kn.xtb b/components/policy/resources/policy_templates_kn.xtb
index 1fe6690..8a86a9f 100644
--- a/components/policy/resources/policy_templates_kn.xtb
+++ b/components/policy/resources/policy_templates_kn.xtb
@@ -1257,7 +1257,6 @@
      ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ, ವೆಬ್‍ಪುಟಗಳ URL ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಅನಾಮಧೇಯ ಡೇಟಾ ಸಂಗ್ರಹವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಬಳಕೆದಾರರಿಗೆ ಅದನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation>
 <translation id="4250680216510889253">ಇಲ್ಲ</translation>
 <translation id="4261820385751181068">ಸಾಧನ ಸೈನ್-ಇನ್ ಪರದೆ ಸ್ಥಳ</translation>
-<translation id="4264607809747169568">ChromeOS ಲಭ್ಯತೆಗಾಗಿ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಫೈಲ್‌ಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ</translation>
 <translation id="427220754384423013">ಬಳಕೆದಾರರು ಬಳಸಬಹುದಾದ ಪ್ರಿಂಟರ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. 
 
 <ph name="PRINTERS_WHITELIST" /> ಅನ್ನು <ph name="BULK_PRINTERS_ACCESS_MODE" /> ಗಾಗಿ ಆರಿಸಿದಾಗ ಮಾತ್ರ ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
@@ -1641,13 +1640,6 @@
 <translation id="5370279767682621504">ಡಿಫಾಲ್ಟ್ ಅಲ್ಲದ ಪೋರ್ಟ್‌ಗಳಲ್ಲಿ HTTP/0.9 ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="5378985487213287085">ಡೆಸ್ಕ್‌ಟಾಪ್ ಅಧಿಸೂಚನೆಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಅನುಮತಿಸಲಾಗಿದೆಯೆ ಎಂದು ಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಡೆಸ್ಕ್‌ಟಾಪ್ ಅಧಿಸೂಚನೆಗಳ ಪ್ರದರ್ಶನವನ್ನು ಡಿಫಾಲ್ಟ್ ಆಗಿ ಅನುಮತಿಸಬಹುದು, ಡಿಫಾಲ್ಟ್ ಆಗಿ ನಿರಾಕರಿಸಬಹುದು ಅಥವಾ ಡೆಸ್ಕ್‌ಟಾಪ್ ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಬೇಕೆಂದಾಗಲೆಲ್ಲ ಬಳಕೆದಾರರನ್ನು ಕೇಳಬಹುದಾಗಿದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆಯೆ ಬಿಟ್ಟರೆ, 'AskNotifications' ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು ಅದನ್ನು ಬದಲಿಸಬಹುದಾಗಿದೆ.</translation>
 <translation id="538108065117008131">ಮುಂದಿನ ವಿಷಯದ ವಿಧಾನಗಳನ್ನು ನಿರ್ವಹಿಸಲು <ph name="PRODUCT_FRAME_NAME" /> ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ.</translation>
-<translation id="5391363090783552279">ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸಿದಲ್ಲಿ, <ph name="PRODUCT_NAME" /> ಕೇವಲ RFC1918/RFC4913 ಖಾಸಗಿ ವಿಳಾಸಗಳಷ್ಟೇ ಅಲ್ಲದೆ ಎಲ್ಲಾ IP ವಿಳಾಸಗಳಲ್ಲಿ ಬಿತ್ತರಿಸುವ ಸಾಧನಗಳಿಗೆ  ಸಂಪರ್ಕಗೊಳ್ಳುತ್ತದೆ.
-
-         ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದಲ್ಲಿ, RFC1918/RFC4913 ಖಾಸಗಿ ವಿಳಾಸಗಳಲ್ಲಿ ಮಾತ್ರ ಬಿತ್ತರಿಸುವ ಸಾಧನಗಳಿಗೆ <ph name="PRODUCT_NAME" /> ಸಂಪರ್ಕಗೊಳ್ಳುತ್ತದೆ.
-
-          ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದಲ್ಲಿ, CastAllowAllIPs ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸದ ಹೊರತು RFC1918/RFC4913 ಖಾಸಗಿ ವಿಳಾಸಗಳಲ್ಲಿ ಮಾತ್ರ ಬಿತ್ತರಿಸುವ ಸಾಧನಗಳಿಗೆ <ph name="PRODUCT_NAME" /> ಸಂಪರ್ಕಗೊಳ್ಳುತ್ತದೆ.
-
-          "EnableMediaRouter" ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದರೆ, ಈ ಕಾರ್ಯನೀತಿಯ ಮೌಲ್ಯವು ಯಾವುದೇ ಪರಿಣಾಮವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ.</translation>
 <translation id="5392172595902933844">Android ಸ್ಥಿತಿಯ ಕುರಿತಾದ ಮಾಹಿತಿಯನ್ನು ಸರ್ವರ್‌ಗೆ ಮರಳಿ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.
 
       ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದರೆ ಅಥವಾ ಹೊಂದಿಸದೇ ಇದ್ದರೆ, ಯಾವುದೇ ಸ್ಥಿತಿ ಮಾಹಿತಿಯನ್ನು ವರದಿ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 246b1b0b..4232a0b 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -33,6 +33,28 @@
           이 설정을 사용 중지하거나 설정하지 않으면 원격 지원 호스트가 사용자의 컨텍스트에서 실행되며 원격 사용자는 데스크톱에서 관리자 창으로 상호 작용할 수 없습니다.</translation>
 <translation id="1096105751829466145">기본 검색 공급자</translation>
 <translation id="1099282607296956954">모든 사이트에 사이트 격리 사용 설정</translation>
+<translation id="1100570158310952027">
+      이 정책에서는 안전하지 않은 출처의 보안 제한이 적용되지 않을
+      출처(URL) 또는 호스트 이름 패턴('*.example.com' 등)의 목록을
+      지정합니다.
+
+      이 정책을 통해 조직은 TLS를 배포할 수 없는 이전 애플리케이션에
+      허용할 출처를 설정하거나, 내부 웹 개발을 위한 스테이징 서버를
+      설정하여 개발자가 스테이징 서버에서 TLS를 배포하지 않고도 보안
+      컨텍스트를 필요로 하는 기능을 테스트할 수 있습니다.
+      이 정책은 또한 검색주소창에서 출처에 '주의 요함' 라벨이 표시되지 않게
+      해 줍니다.
+
+      이 정책에서 URL 목록을 설정하면 같은 URL의 쉼표로 구분된 목록에
+      명령줄 플래그 '--unsafely-treat-insecure-origin-as-secure'를 설정하는 것과
+      같은 효과가 나타납니다. 정책이 설정되면 명령줄 플래그가 재정의
+      됩니다.
+
+      UnsafelyTreatInsecureOriginAsSecure가 있는 경우 이 정책이 재정의됩니다.
+
+      보안 컨텍스트에 관해 자세히 알아보려면
+      https://www.w3.org/TR/secure-contexts/를 참조하세요.
+      </translation>
 <translation id="1117535567637097036">Android 인텐트를 처리할 때 이 정책을 통해 설정된 프로토콜 핸들러는 사용되지 않습니다.</translation>
 <translation id="1118093128235245168">사이트에서 사용자에게 연결된 USB 기기의 액세스 권한을 부여할지 묻도록 허용합니다.</translation>
 <translation id="1128903365609589950"><ph name="PRODUCT_NAME" />이(가) 캐시된 파일을 디스크에 저장할 때 사용할 디렉토리를 설정합니다.
@@ -80,6 +102,8 @@
       이 정책이 설정되지 않았거나 'false'로 설정된 경우 TLS RC4 암호화 기술이 사용되지 않습니다. 그렇지 않으면 정책을 'true'로 설정해 오래된 서버와의 호환성을 유지할 수 있습니다. 이는 임시 조치이며 서버는 다시 구성해야 합니다.</translation>
 <translation id="1297182715641689552">.pac 프록시 스크립트 사용</translation>
 <translation id="1304973015437969093">자동으로 설치되는 확장 프로그램/앱 ID와 업데이트 URL</translation>
+<translation id="1307454923744766368">안전하지 않은 출처에 대한 보안 제한을 적용하지 않을
+      출처 또는 호스트 이름 패턴</translation>
 <translation id="1313457536529613143">화면을 어둡게 하거나 화면을 끈 직후 사용자의 활동이 감지될 때 화면 어둡게 하기 지연 시간이 조정되는 비율을 지정합니다.
 
           이 정책이 설정된 경우 화면을 어둡게 하거나 화면을 끈 직후 사용자의 활동이 감지될 때 화면 어둡게 하기 지연 시간이 조정되는 비율을 지정합니다. 화면 어둡게 하기 지연 시간이 조정되면, 화면 꺼짐 지연 시간, 화면 잠금 지연 시간 및 유휴 지연 시간이 조정되어 원래 설정된 화면 어둡게 하기 지연 시간과 같은 간격을 유지하도록 조정됩니다.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">오프라인일 때 네트워크 설정 프롬프트를 사용하도록 설정</translation>
 <translation id="1330145147221172764">터치 키보드 사용</translation>
 <translation id="13356285923490863">정책 이름</translation>
+<translation id="1352174694615491349">이 정책을 사용하면 클라이언트 인증서가 사용될 때 HTTP/2 연결 병합이 허용됩니다. 연결을 병합하려면 잠재적인 새로운 연결의 호스트 이름과 및 기존 연결의 호스트 이름이 이 정책에서 설명된 패턴 중 하나 이상과 일치해야 합니다. 이 정책은 URLBlacklist 필터 형식을 사용하는 호스트의 목록입니다. 예를 들어, 'example.com'은 'example.com' 및 모든 하위 도메인(예: 'sub.example.com')과 일치하며 'example.net'은 'example.net'과 정확하게 일치합니다.
+
+      클라이언트 인증서를 사용하는 연결을 통해 다른 호스트로 병합 요청이 전송되면 보안 및 개인정보 보호 문제를 일으킬 수 있습니다. 사용자가 명확하게 승인하지 않아도 앰비언트 권한이 모든 요청에 전달되기 때문입니다. 이 정책은 일시적으로 사용되며, 향후 버전에서 삭제될 예정입니다. https://crbug.com/855690을 참조하세요.
+
+      이 정책이 설정되지 않으면 클라이언트 인증서를 사용하는 HTTP/2 연결 병합을 모두 허용하지 않는 기본 동작이 사용됩니다.</translation>
 <translation id="1353966721814789986">시작 페이지</translation>
 <translation id="1359553908012294236">이 정책이 'true'로 설정되거나 설정되지 않으면 <ph name="PRODUCT_NAME" />에서 게스트 로그인을 사용합니다. 게스트 로그인은 모든 창이 시크릿 모드로 실행되는 <ph name="PRODUCT_NAME" /> 프로필입니다.
 
@@ -184,6 +213,7 @@
 <translation id="1583248206450240930">기본으로 <ph name="PRODUCT_FRAME_NAME" /> 사용</translation>
 <translation id="1599424828227887013">Android 기기에서 지정된 출처의 사이트 격리 사용 설정</translation>
 <translation id="1608755754295374538">별도 메시지를 표시하지 않고 오디오 캡처 기기에 대한 액세스 권한이 부여되는 URL입니다.</translation>
+<translation id="1615221548356595305">클라이언트 인증서가 사용되는 경우에도 이러한 호스트에 HTTP/2 연결 병합 허용</translation>
 <translation id="1617235075406854669">브라우저 및 다운로드 기록을 삭제하도록 설정합니다.</translation>
 <translation id="163200210584085447">이 목록의 패턴을 요청 URL의 보안 출처와 비교합니다.
       일치하는 항목이 확인되는 경우 SAML 로그인 페이지에서
@@ -1188,7 +1218,6 @@
       이 정책을 설정하지 않은 경우 URL로 입력되며 익명으로 처리되는 데이터 수집이 사용 설정되지만 사용자가 이 설정을 변경할 수 있습니다.</translation>
 <translation id="4250680216510889253">아니요</translation>
 <translation id="4261820385751181068">기기 로그인 화면 언어</translation>
-<translation id="4264607809747169568">ChromeOS의 네트워크 파일 공유 가능 여부를 제어합니다.</translation>
 <translation id="427220754384423013">사용자가 사용할 수 있는 프린터를 지정합니다.
 
       이 정책은 <ph name="BULK_PRINTERS_ACCESS_MODE" />으(로) <ph name="PRINTERS_WHITELIST" />이(가) 선택되었을 때만 사용됩니다.
@@ -1347,6 +1376,7 @@
       이 정책을 사용 설정하면 사이트에서 동시에 새로운 창/탭을 탐색하고 열 수 있습니다.
       이 정책을 사용 중지하거나 설정하지 않으면 사이트에서 동시에 새로운 창/탭을 탐색하고 열 수 없습니다.</translation>
 <translation id="4680961954980851756">자동 완성 사용</translation>
+<translation id="4703402283970867140">스마트 밝기 낮추기 모델을 사용하여 화면이 어두워질 때까지의 시간 연장</translation>
 <translation id="4722122254122249791">지정된 출처의 사이트 격리 사용 설정</translation>
 <translation id="4722399051042571387">false인 경우 사용자는 보안 강도가 약하고 추측하기 쉬운 PIN을 설정할 수 없습니다.
 
@@ -1574,13 +1604,6 @@
 
           이 정책을 설정하지 않은 경우 'AskNotifications' 정책이 사용되며 사용자가 설정을 변경할 수 있습니다.</translation>
 <translation id="538108065117008131"><ph name="PRODUCT_FRAME_NAME" />이(가) 다음 콘텐츠 유형을 다루도록 허용</translation>
-<translation id="5391363090783552279">이 정책이 True로 설정된 경우 <ph name="PRODUCT_NAME" />에서 RFC1918/RFC4913 비공개 주소뿐 아니라 모든 IP 주소의 Cast 기기에 연결합니다.
-
-          이 정책이 False로 설정된 경우 <ph name="PRODUCT_NAME" />에서 RFC1918/RFC4913 비공개 주소의 Case 기기에만 연결합니다.
-
-          이 정책이 설정되지 않은 경우 CastAllowAllIPs 기능이 사용 설정되어 있지 않는 한 <ph name="PRODUCT_NAME" />에서 RFC1918/RFC4913 비공개 주소의 Cast 기기에만 연결합니다.
-
-          'EnableMediaRouter' 정책이 False로 설정된 경우 이 정책의 값은 아무런 영향을 미치지 않습니다.</translation>
 <translation id="5392172595902933844">Android 상태 관련 정보가 서버로 다시
       전송됩니다.
 
@@ -2152,6 +2175,10 @@
 <translation id="6943577887654905793">Mac 및 Linux 환경설정 이름:</translation>
 <translation id="69525503251220566">기본 검색엔진에 이미지로 검색 기능을 제공하는 매개변수</translation>
 <translation id="6956272732789158625">모든 사이트에서 키 생성 사용 허용 안함</translation>
+<translation id="6965859329738616662">스마트 밝기 낮추기 모델을 사용하여 화면이 어두워질 때까지의 시간을 연장하도록 허용할지 설정합니다.
+
+      화면이 어두워지기 직전에 스마트 밝기 낮추기 모델이 화면 밝기 낮추기를 지연할지 판단합니다. 스마트 밝기 낮추기 모델이 화면 밝기 낮추기를 지연하면 화면이 어두워질 때까지의 시간이 실질적으로 연장됩니다. 이 경우 화면 밝기 낮추기 지연 시간까지의 거리를 원래 설정과 동일하게 유지하기 위해 화면 꺼짐, 화면 잠금, 유휴상태 지연이 조정됩니다.
+      이 정책이 True로 설정되거나 설정되지 않으면 스마트 밝기 낮추기 모델이 사용되며 화면이 어두워질 때까지의 시간을 연장하도록 허용됩니다. 이 정책이 False로 설정되면 스마트 밝기 낮추기 모델이 화면 밝기 낮추기에 영향을 주지 않습니다.</translation>
 <translation id="6982028490425791294">
       이 정책이 true로 설정되어 있으면 <ph name="PRODUCT_NAME" />에서 Google 서비스(예: Google Meet)에서 WebRTC 이벤트 로그를 수집하고 이러한 로그를 Google로 업로드할 수 있도록 허용합니다.
 
@@ -2604,6 +2631,13 @@
 <translation id="7980227303582973781">특별한 제한 없음</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">화면을 0도 회전</translation>
+<translation id="8033913082323846868">이 정책은 M70에서 지원이 중단되었습니다. 대신 AutofillAddressEnabled 및 AutofillCreditCardEnabled를 사용하시기 바랍니다.
+
+      <ph name="PRODUCT_NAME" />의 자동 완성 기능을 사용 설정하여 사용자가 주소나 신용카드 정보와 같이 이전에 저장한 정보를 이용하여 웹 양식을 자동으로 완성할 수 있습니다.
+
+      이 설정을 사용 중지하면 사용자가 자동 완성을 사용할 수 없습니다.
+
+      이 설정을 사용 설정하거나 값을 지정하지 않으면 사용자가 자동 완성을 제어할 수 있게 됩니다. 따라서 사용자가 자동 완성 프로필을 설정하고 원하는 대로 자동완성을 사용하거나 사용 중지할 수 있습니다.</translation>
 <translation id="8044493735196713914">기기 부팅 모드 보고</translation>
 <translation id="8050080920415773384">기본 인쇄</translation>
 <translation id="8059164285174960932">원격 액세스 클라이언트가 인증 토큰을 확보해야 하는 URL</translation>
@@ -2934,6 +2968,33 @@
 
       이 정책이 설정되어 있지 않으면 <ph name="PRINTERS_ALLOW_ALL" />이(가) 기본적으로 사용됩니다.
       </translation>
+<translation id="8938932171964587769">M69에서 지원이 중단되었습니다. 대신
+      OverrideSecurityRestrictionsOnInsecureOrigin을 사용하시기 바랍니다.
+
+      이 정책에서는 안전하지 않은 출처에 대한 보한 제안을 적용하지
+      않을 출처(URL) 또는 호스트 이름 패턴('*.example.com' 등)의 목록을
+      지정합니다.
+
+      이 정책을 통해 조직은 TLS를 배포할 수 없는 이전 애플리케이션에
+      허용할 출처를 설정하거나 내부 웹 개발을 위한 스테이징 서버를
+      설정하여 개발자가 스테이징 서버에서 TLS를 배포하지 않고도 보안
+      컨텍스트를 필요로 하는 기능을 테스트할 수 있습니다.
+      이 정책은 또한 검색주소창에서 출처에 '주의 요함' 라벨이 표시되지 않게
+      해 줍니다.
+
+      이 정책에서 URL 목록을 설정하면 같은 URL의 쉼표로 구분된 목록에
+      명령줄 플래그 '--unsafely-treat-insecure-origin-as-secure'를 설정하는 것과
+      같은 효과가 나타납니다. 정책이 설정되면 명령줄 플래그가
+      재정의됩니다.
+
+      이 정책은 M69에서 지원 중단되어
+      OverrideSecurityRestrictionsOnInsecureOrigin으로 대체됩니다. 두 정책이
+      모두 사용되는 경우, OverrideSecurityRestrictionsOnInsecureOrigin가 이
+      정책을 재정의합니다.
+
+      보안 컨텍스트에 관해 자세히 알아보려면
+      https://www.w3.org/TR/secure-contexts/를 참조하세요.
+      </translation>
 <translation id="8942616385591203339">이 정책은 최초 로그인 시 사용자에게 동기화 동의 표시 여부를 제어합니다. 동기화 동의가 사용자에게 필요하지 않은 경우 False로 설정해야 합니다.
       False로 설정하면 동기화 동의가 표시되지 않습니다.
       True로 설정하거나 설정하지 않으면 동기화 동의를 표시할 수 있습니다.</translation>
diff --git a/components/policy/resources/policy_templates_lt.xtb b/components/policy/resources/policy_templates_lt.xtb
index 2d5fef8..6a8e6c7 100644
--- a/components/policy/resources/policy_templates_lt.xtb
+++ b/components/policy/resources/policy_templates_lt.xtb
@@ -33,6 +33,28 @@
           Jei šis nustatymas išjungtas arba nesukonfigūruotas, nuotolinės pagalbos prieglobos serveris bus vykdomas naudotojo kontekste ir nuotoliniai naudotojai negalės sąveikauti su pakeltais langais staliniame kompiuteryje.</translation>
 <translation id="1096105751829466145">Numatytasis paieškos teikėjas</translation>
 <translation id="1099282607296956954">Įgalinti visų svetainių atskyrimą</translation>
+<translation id="1100570158310952027">
+      Politikoje nurodytas šaltinių (URL) arba prieglobos serverio pavadinimo šablonų
+      (pvz., *.example.com), kuriems nebus taikomi nesaugių šaltinių apribojimai,
+      sąrašas.
+
+      Siekiama leisti organizacijoms nustatyti pasenusių programų, negalinčių
+      taikyti TLS, baltojo sąrašo šaltinius arba darbinį serverį vidiniams žiniatinklio
+      tobulinimams atlikti, kad organizacijų kūrėjai galėtų išbandyti funkcijas,
+      kurioms reikia saugaus konteksto, ir darbiniame serveryje nereikėtų diegti
+      TLS. Ši politika taip pat neleis, kad „omnibox“ šaltinis būtų pažymėtas kaip
+      „Nesaugus“.
+
+      Šioje politikoje nustačius URL sąrašą poveikis toks pat, kaip nustačius
+      komandinės eilutės žymą „--unsafely-treat-insecure-origin-as-secure“ į
+      kableliais atskirtų tų pačių URL sąrašą. Jei ši politika nustatyta, bus
+      nepaisoma komandinės eilutės žymos.
+
+      Ši politika nepaisys „UnsafelyTreatInsecureOriginAsSecure“ (jei yra).
+
+      Daugiau informacijos apie saugius kontekstus pateikiama adresu
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Protokolų doroklės, nustatytos pagal šią politiką, nenaudojamos apdorojant „Android“ tikslus.</translation>
 <translation id="1118093128235245168">Leisti svetainėms prašyti naudotojo suteikti galimybę pasiekti prijungtą USB įrenginį</translation>
 <translation id="1128903365609589950">Konfigūruojamas katalogas, kurį „<ph name="PRODUCT_NAME" />“ naudos, kad išsaugotų talpykloje saugomus failus diske.
@@ -80,6 +102,8 @@
       Jei politika nenustatyta arba nustatyta į „false“, TLS RC4 šifruotieji programų komplektai nebus įgalinti. Priešingu atveju ją galima nustatyti į „true“, kad būtų išsaugotas suderinamumas su pasenusiu serveriu. Tai laikina priemonė; serverį reikia iš naujo sukonfigūruoti.</translation>
 <translation id="1297182715641689552">Naudoti .pac tarpinio serverio scenarijų</translation>
 <translation id="1304973015437969093">Automatiškai diegiami plėtinių / programų ID ir atnaujinimo URL</translation>
+<translation id="1307454923744766368">Šaltiniai arba prieglobos serverio pavadinimo šablonai, kuriems netaikomi
+      nesaugių šaltinių apribojimai</translation>
 <translation id="1313457536529613143">Nurodomas ekrano užtemdymo delsos mastelio keitimo procentas, kai aptinkama naudotojo veikla ekranui esant užtemdytam ar iškart po to, kai ekranas išjungiamas.
 
          Jei ši politika nustatyta, ji nurodo ekrano užtemdymo delsos mastelio keitimo procentą, kai aptinkama naudotojo veikla ekranui esant užtemdytam ar iškart po to, kai ekranas išjungiamas. Kai užtemdymo delsa nustatyta, ekrano išjungimo, užrakinimo ir neveikos būsenos delsos koreguojamos siekiant išlaikyti vienodą laiką nuo pirminės sukonfigūruotos užtemdymo delsos.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">Įgalinti tinklo konfigūracijos raginimą, kai esate neprisijungę</translation>
 <translation id="1330145147221172764">Įgalinti ekrano klaviatūrą</translation>
 <translation id="13356285923490863">Politikos pavadinimas</translation>
+<translation id="1352174694615491349">Taikant šią politiką leidžiamas HTTP/2 ryšių susijungimas, kai naudojami kliento sertifikatai. Kad galėtų įvykti susijungimas, galimo naujo ryšio prieglobos serverio pavadinimas ir esamo ryšio prieglobos serverio pavadinimas turi atitikti vieną arba daugiau šioje politikoje aprašytų šablonų. Politika yra prieglobų sąrašas, kuriame naudojamas „URLBlacklist“ filtro formatas: example.com atitinka example.com ir visus padomenius (pvz., sub.example.com), o .example.net tiksliai atitinka .example.net.
+
+      Dėl susijungimo užklausų įvairioms priegloboms per ryšius, kuriuose naudojami kliento sertifikatai, gali kilti saugos ir privatumo problemų, nes visoms užklausoms bus suteiktos adaptyviosios prieigos teisės, net jei naudotojas tam tiesiogiai nesuteikė leidimo. Ši politika yra laikina ir būsimame leidime bus pašalinta. Žr. adresu https://crbug.com/855690.
+
+      Jei ši politika nenustatyta, bus taikoma numatytoji elgsena – neleisti HTTP/2 ryšiui susijungti su ryšiais, kuriuose naudojami kliento sertifikatai.</translation>
 <translation id="1353966721814789986">Paleisties puslapiai</translation>
 <translation id="1359553908012294236">Jei ši politika nustatyta į „true“ arba yra nesukonfigūruota, „<ph name="PRODUCT_NAME" />“ įgalins svečių prisijungimą. Svečių prisijungimas yra „<ph name="PRODUCT_NAME" />“ profiliai, kur visi langai naudojami inkognito režimu.
 
@@ -184,6 +213,7 @@
 <translation id="1583248206450240930">Naudoti „<ph name="PRODUCT_FRAME_NAME" />“ pagal numatytuosius nustatymus</translation>
 <translation id="1599424828227887013">Įgalinti nurodytų šaltinių svetainių atskyrimą „Android“ įrenginiuose</translation>
 <translation id="1608755754295374538">URL, kuriems bus suteikta prieiga prie garso užfiksavimo įrenginių be paraginimo</translation>
+<translation id="1615221548356595305">Leisti šių prieglobų HTTP/2 ryšių susijungimą, net jei naudojami kliento sertifikatai</translation>
 <translation id="1617235075406854669">Įgalinti naršyklės ištrynimą ir atsisiuntimo istoriją</translation>
 <translation id="163200210584085447">Šiame sąraše pateikti šablonai bus atitaikomi
       pagal užklausą pateikiančio URL saugos kilmę. Jei bus rasta atitiktis, prieiga prie vaizdo įrašus
@@ -1194,7 +1224,6 @@
       Jei ši politika bus palikta nenustatyta, URL pagrįsto anonimizuotų duomenų rinkimo funkcija bus įgalinta, bet naudotojas galės ją pakeisti.</translation>
 <translation id="4250680216510889253">Ne</translation>
 <translation id="4261820385751181068">Įrenginio prisijungimo ekrano lokalė</translation>
-<translation id="4264607809747169568">Valdomas „Chrome“ OS skirtų tinklo failų bendrinimo įrenginių pasiekiamumas</translation>
 <translation id="427220754384423013">Nurodomi spausdintuvai, kuriuos gali naudoti naudotojas.
 
       Ši politika naudojama, tik jei pasirinktas politikos „<ph name="BULK_PRINTERS_ACCESS_MODE" />“ nustatymas „<ph name="PRINTERS_WHITELIST" />“.
@@ -1353,6 +1382,7 @@
       Jei ši politika įgalinta, svetainėms bus leidžiama vienu metu naršyti ir atidaryti naujus langus / skirtukus.
       Jei ši politika išjungta arba nenustatyta, svetainėms nebus leidžiama vienu metu naršyti ir atidaryti naujų langų / skirtukų.</translation>
 <translation id="4680961954980851756">Įgalinti automatinį pildymą</translation>
+<translation id="4703402283970867140">Įgalinti išmanųjį pritemdymo modelį, kad būtų pratęstas laikas iki ekrano pritemdymo</translation>
 <translation id="4722122254122249791">Įgalinti konkrečių šaltinių svetainių atskyrimą</translation>
 <translation id="4722399051042571387">Jei ši politika nustatyta į „false“, naudotojai negalės nustatyti PIN kodų, kurie yra nesaugūs ir lengvai atspėjami.
 
@@ -1583,13 +1613,6 @@
 
           Nenustačius šios politikos, bus naudojama „Paklausti dėl pranešimų“ ir naudotojas (-a) galės tai pakeisti.</translation>
 <translation id="538108065117008131">Leisti „<ph name="PRODUCT_FRAME_NAME" />“ naudoti šio tipo turinį.</translation>
-<translation id="5391363090783552279">Jei ši politika nustatyta į „true“, „<ph name="PRODUCT_NAME" />“ prisijungs prie perdavimo įrenginių, pasiekiamų visais IP adresais, o ne tik RFC1918 / RFC4913 privačiais adresais.
-
-          Jei ši politika nustatyta į „false“, „<ph name="PRODUCT_NAME" />“ prisijungs prie perdavimo įrenginių, pasiekiamų tik RFC1918 / RFC4913 privačiais adresais.
-
-          Jei ši politika nenustatyta, „<ph name="PRODUCT_NAME" />“ prisijungs prie perdavimo įrenginių, pasiekiamų tik RFC1918 / RFC4913 privačiais adresais, nebent įgalinta funkcija „CastAllowAllIPs“.
-
-          Jei politika „EnableMediaRouter“ nustatyta į „false“, šios politikos vertė nedaro jokio poveikio.</translation>
 <translation id="5392172595902933844">Informacija apie „Android“ būseną siunčiama atgal į 
       serverį.
 
@@ -2160,6 +2183,10 @@
 <translation id="6943577887654905793">„Mac“ / „Linux“ nuostatos pavadinimas:</translation>
 <translation id="69525503251220566">Parametras, nurodantis paieškos pagal vaizdą funkciją numatytajam paieškos teikėjui</translation>
 <translation id="6956272732789158625">Neleisti jokiai svetainei naudoti rakto generavimo</translation>
+<translation id="6965859329738616662">Nurodoma, ar išmaniajam pritemdymo modeliui leidžiama pratęsti laiką iki ekrano pritemdymo.
+
+      Kai ekranas turėtų būti pritemdomas, išmanusis pritemdymo modelis įvertina, ar ekrano pritemdymo nereikia atidėti. Jei išmanusis pritemdymo modelis atideda ekrano pritemdymą, jis veiksmingai pratęsia laiką iki ekrano pritemdymo. Tokiu atveju ekrano išjungimo, ekrano užrakto ir neveikos būsenos delsos koreguojamos siekiant išlaikyti vienodą laiką nuo pirminės sukonfigūruotos pritemdymo delsos.
+      Jei ši politika nustatyta kaip „True“ arba paliekama nenustatyta, išmanusis pritemdymo modelis bus įgalintas ir jam bus leista pratęsti laiką iki ekrano pritemdymo. Jei ši politika nustatyta kaip „False“, išmanusis pritemdymo modelis neturės įtakos ekrano pritemdymui.</translation>
 <translation id="6982028490425791294">
       Jei ši politika nustatyta kaip „True“, „<ph name="PRODUCT_NAME" />“ leidžiama rinkti „WebRTC“ įvykių žurnalus iš „Google“ paslaugų (pvz., „Google Meet“) ir įkelti šiuos žurnalus į „Google“.
 
@@ -2610,6 +2637,13 @@
 <translation id="7980227303582973781">Nėra specialių apribojimų</translation>
 <translation id="7985242821674907985">„<ph name="PRODUCT_NAME" />“</translation>
 <translation id="802147957407376460">Pasukti ekraną 0 laipsnių kampu</translation>
+<translation id="8033913082323846868">Ši politika nebenaudojama naudojant M70. Naudokite „AutofillAddressEnabled“ ir „AutofillCreditCardEnabled“.
+
+      Įgalinama „<ph name="PRODUCT_NAME" />“ automatinio pildymo funkcija ir naudotojams leidžiama automatiškai pildyti žiniatinklio formas naudojant anksčiau išsaugotą informaciją, pvz., adresą arba kredito kortelės informaciją.
+
+      Jei šio nustatymo neleisite, naudotojai negalės naudoti automatinio pildymo funkcijos.
+
+      Jei šį nustatymą įgalinsite arba vertės nenustatysite, naudotojai ir toliau galės valdyti Automatinį pildymą. Taip jie galės konfigūruoti automatinio pildymo profilius ir savo nuožiūra įjungti arba išjungti Automatinio pildymo funkciją.</translation>
 <translation id="8044493735196713914">Pranešti įrenginio operacinės sistemos paleidimo būseną</translation>
 <translation id="8050080920415773384">Vietinis spausdinimas</translation>
 <translation id="8059164285174960932">URL, kur nuotolinės prieigos klientai turėtų gauti autentifikavimo prieigos raktą</translation>
@@ -2942,6 +2976,32 @@
 
       Jei ši politika nenustatyta, taikoma „<ph name="PRINTERS_ALLOW_ALL" />“.
       </translation>
+<translation id="8938932171964587769">Ši politika nebenaudojama naudojant M69. Naudokite
+      „OverrideSecurityRestrictionsOnInsecureOrigin“.
+
+      Politikoje nurodytas šaltinių (URL) arba prieglobos serverio pavadinimo 
+      šablonų (pvz., *.example.com), kuriems nebus taikomi nesaugių šaltinių 
+      apribojimai, sąrašas.
+
+      Siekiama leisti organizacijoms nustatyti pasenusių programų, negalinčių taikyti
+      TLS, baltojo sąrašo šaltinius arba darbinį serverį vidiniams žiniatinklio
+      tobulinimams atlikti, kad organizacijų kūrėjai galėtų išbandyti funkcijas,
+      kurioms reikia saugaus konteksto, ir darbiniame serveryje nereikėtų diegti
+      TLS. Ši politika taip pat neleis, kad „omnibox“ šaltinis būtų pažymėtas kaip
+      „Nesaugus“.
+
+      Šioje politikoje nustačius URL sąrašą poveikis toks pat, kaip nustačius
+      komandinės eilutės žymą „--unsafely-treat-insecure-origin-as-secure“ į
+      kableliais atskirtų tų pačių URL sąrašą. Jei ši politika nustatyta, bus
+      nepaisoma komandinės eilutės žymos.
+
+      Vietoj šios politikos M69 naudojama
+      „OverrideSecurityRestrictionsOnInsecureOrigin“. Jei yra abi politikos,
+      „OverrideSecurityRestrictionsOnInsecureOrigin“ pakeis šią politiką.
+
+      Daugiau informacijos apie saugius kontekstus pateikiama adresu
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Pagal šią politiką valdoma, ar sutikimas sinchronizuoti gali būti rodomas naudotojui prisijungiant pirmą kartą. Ji turi būti nustatyta kaip „false“, jei naudotojui niekada nereikia sutikimo sinchronizuoti.
       Nustačius kaip „false“, sutikimas sinchronizuoti nebus pateikiamas.
       Nustačius kaip „true“ arba nenustačius, sutikimas sinchronizuoti gali būti pateikiamas.</translation>
diff --git a/components/policy/resources/policy_templates_lv.xtb b/components/policy/resources/policy_templates_lv.xtb
index 0045436..95cd9cf 100644
--- a/components/policy/resources/policy_templates_lv.xtb
+++ b/components/policy/resources/policy_templates_lv.xtb
@@ -33,6 +33,17 @@
           Ja šis iestatījums ir atspējots vai nav konfigurēts, attālās palīdzības saimniekdators darbosies lietotāja kontekstā un attālie lietotāji nevarēs veikt darbības ar privileģētajiem logiem darbvirsmā.</translation>
 <translation id="1096105751829466145">Noklusējuma meklētājprogramma</translation>
 <translation id="1099282607296956954">Iespējot izolāciju visām vietnēm</translation>
+<translation id="1100570158310952027">
+      Šī politika nosaka avotu sarakstu (vietrāži URL) vai saimniekdatora nosaukumu modeļus (piemēram, “*.example.com”), kuriem nelieto nedrošu avotu drošības ierobežojumus.
+
+      Mērķis ir organizācijām atļaut iestatīt baltā saraksta avotus mantotajām lietojumprogrammām, kurās nevar izvietot TLS, vai iestatīt pakāpeniskās izlaišanas serveri iekšējai tīmekļa izstrādei, lai izstrādātāji varētu testēt funkcijas, kurām nepieciešama droša vide, neizvietojot TLS pakāpeniskās izlaišanas serverī. Ja tiks izmantota šī politika, universālajā lodziņā avots netiks apzīmēts kā “Nav droši”.
+
+      Iestatot vietrāžu URL sarakstu šajā politikā, iegūtie rezultāti būs tādi paši kā tad, ja komandrindas karodziņam “--unsafely-treat-insecure-origin-as-secure” iestatīsiet komatatdalītu sarakstu ar tiem pašiem vietrāžiem URL. Ja politika tiks iestatīta, komandrindas karodziņš tiks ignorēts.
+
+      Šī politika ignorēs politiku “UnsafelyTreatInsecureOriginAsSecure”, ja tā tiks izmantota.
+
+      Plašāku informāciju par drošu vidi skatiet vietnē https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Protokolu apdarinātāji, kas iestatīti, izmantojot šo politiku, netiek lietoti, kad tiek apstrādāti Android nolūki.</translation>
 <translation id="1118093128235245168">Atļaut vietnēm pieprasīt, lai lietotājs piešķirtu piekļuvi pievienotajai USB ierīcei</translation>
 <translation id="1128903365609589950">Konfigurē direktoriju, kuru <ph name="PRODUCT_NAME" /> izmantos kešatmiņā ievietoto failu glabāšanai diskā.
@@ -80,6 +91,7 @@
       Ja politika nav iestatīta vai ir iestatīta vērtība Nepatiesa, RC4 šifra komplekti standartā TLS netiks iespējoti. Politikai var iestatīt vērtību Patiesa, lai saglabātu saderību ar novecojušu serveri. Tas ir pagaidu risinājums, un serveris ir jākonfigurē atkārtoti.</translation>
 <translation id="1297182715641689552">Izmantot .pac starpniekservera skriptu</translation>
 <translation id="1304973015437969093">Paplašinājumu/lietotņu ID un atjauninājumu vietrāži URL instalēšanai klusajā režīmā</translation>
+<translation id="1307454923744766368">Avoti vai saimniekdatoru nosaukumu modeļi, kuriem nelieto nedrošu avotu ierobežojumus</translation>
 <translation id="1313457536529613143">Norāda aizkavi (procentos) līdz ekrāna aptumšošanai, kad tiek novērota lietotāja darbība, kamēr ekrāns ir aptumšots vai drīz pēc ekrāna izslēgšanas.
 
           Ja šī politika ir iestatīta, tā norāda aizkavi (procentos) līdz ekrāna aptumšošanai, kad tiek novērota lietotāja darbība, kamēr ekrāns ir aptumšots vai drīz pēc ekrāna izslēgšanas. Ja aptumšošanas aizkave ir mainīta, ekrāna izslēgšanas, ekrāna bloķēšanas un gaidstāves aizkaves tiek pielāgotas, lai nodrošinātu tādu pašu starplaiku no ekrāna aptumšošanas aizkaves, kāds bija sākotnēji konfigurēts.
@@ -91,6 +103,11 @@
 <translation id="1327466551276625742">Iespējot tīkla konfigurācijas uzvedni, kad dators darbojas bezsaistes režīmā</translation>
 <translation id="1330145147221172764">Iespējot ekrāna tastatūru</translation>
 <translation id="13356285923490863">Politikas nosaukums</translation>
+<translation id="1352174694615491349">Šī politika atļauj HTTP/2 savienojuma saaudzēšanu, kad tiek izmantoti klientu sertifikāti. Lai veiktu saaudzēšanu, gan potenciālā jaunā savienojuma saimniekdatora nosaukumam, gan esošā savienojuma saimniekdatora nosaukumam ir jāatbilst vienam vai vairākiem modeļiem, kas aprakstīti šajā politikā. Politika ir saimniekdatoru saraksts, kas izmanto politikas “URLBlacklist” filtra formātu: vienumam “example.com” atbilst “example.com” un visi apakšdomēni (piemēram, “sub.example.com”), savukārt vienumam “.example.net” precīzi atbilst “example.net”.
+
+      Saaudzēšanas pieprasījumi dažādiem saimniekdatoriem savienojumos, kuros tiek izmantoti klientu sertifikāti, var radīt drošības un konfidencialitātes problēmas, jo esošais pilnvarojums tiks piemērots visiem pieprasījumiem, pat ja lietotājs tos nebūs tieši atļāvis. Šī politika tiek izmantota īslaicīgi un tiks noņemta kādā no nākamajiem laidieniem. Plašāku informāciju skatiet vietnē https://crbug.com/855690.
+
+      Ja šī politika netiks iestatīta, tiks izmantots noklusējuma iestatījums: netiks atļauta nekāda HTTP/2 savienojuma saaudzēšana savienojumos, kuros tiek izmantoti klientu sertifikāti.</translation>
 <translation id="1353966721814789986">Sākumlapas</translation>
 <translation id="1359553908012294236">Ja šai politikai ir iestatīta vērtība Patiesa vai ja politika nav konfigurēta, pārlūkā <ph name="PRODUCT_NAME" /> tiek iespējota pieteikšanās viesa režīmā. Piesakoties viesa režīmā, tiek izveidoti <ph name="PRODUCT_NAME" /> profili, kuros visi logi ir inkognito režīmā.
 
@@ -184,6 +201,7 @@
 <translation id="1583248206450240930">Pēc noklusējuma lietot <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="1599424828227887013">Vietnes izolācijas iespējošana norādītiem sākumpunktiem Android ierīcēs</translation>
 <translation id="1608755754295374538">Vietrāži URL, kuriem tiks nodrošināta piekļuve audio tveršanas ierīcēm bez uzvednes parādīšanas.</translation>
+<translation id="1615221548356595305">Atļaut HTTP/2 savienojumu saaudzēšanu šiem saimniekdatoriem, pat ja tiek izmantoti klientu sertifikāti</translation>
 <translation id="1617235075406854669">Iespējot pārlūka un lejupielādes vēstures dzēšanu</translation>
 <translation id="163200210584085447">Šajā sarakstā pieejamajiem šabloniem tiks meklēta atbilstība
       pieprasītā URL drošības avotam. Ja tiks atrasta atbilstība, piekļuve video
@@ -1190,7 +1208,6 @@
       Ja šī politika nav iestatīta, uz vietrāžiem URL balstīta anonimizētu datu apkopošana ir iespējota, taču lietotājs to varēs mainīt.</translation>
 <translation id="4250680216510889253">Nē</translation>
 <translation id="4261820385751181068">Ierīces pierakstīšanās ekrāna lokalizācija</translation>
-<translation id="4264607809747169568">Kontrolē tīkla failu kopīgošanas ierīces ChromeOS pieejamībai</translation>
 <translation id="427220754384423013">Norāda printerus, ko lietotājs var izmantot.
 
       Šī politika tiek izmantota tikai tad, ja parametram <ph name="BULK_PRINTERS_ACCESS_MODE" /> ir izvēlēta vērtība <ph name="PRINTERS_WHITELIST" />.
@@ -1349,6 +1366,7 @@
       Ja šī politika ir iespējota, vietnēs drīkst vienlaikus pārvietoties un atvērt jaunus logus/cilnes.
       Ja šī politika ir atspējota, vietnēs nedrīkst vienlaikus pārvietoties un atvērt jaunus logus/cilnes.</translation>
 <translation id="4680961954980851756">Iespējo automātisko aizpildi</translation>
+<translation id="4703402283970867140">Iespējot viedās aptumšošanas modeli, lai paildzinātu laiku līdz ekrāna aptumšošanai</translation>
 <translation id="4722122254122249791">Iespējot izolāciju noteiktām vietnēm</translation>
 <translation id="4722399051042571387">Ja ir konfigurēta vērtība “false”, tiek novērsta nedrošu un viegli uzminamu PIN iestatīšana.
 
@@ -1580,13 +1598,6 @@
 
           Ja šī politika nav iestatīta, tiks lietota politika AskNotifications un lietotājs to varēs mainīt.</translation>
 <translation id="538108065117008131">Atļauj produktam <ph name="PRODUCT_FRAME_NAME" /> apstrādāt tālāk minētos satura veidus.</translation>
-<translation id="5391363090783552279">Ja šai politikai ir iestatīta vērtība “True”, <ph name="PRODUCT_NAME" /> izveidos savienojumu ar Cast ierīcēm visās IP adresēs, ne tikai RFC1918/RFC4913 privātajās adresēs.
-
-          Ja šai politikai ir iestatīta vērtība “False”, <ph name="PRODUCT_NAME" /> izveidos savienojumu ar Cast ierīcēm tikai RFC1918/RFC4913 privātajās adresēs.
-
-          Ja šī politika nav iestatīta, <ph name="PRODUCT_NAME" /> izveidos savienojumu ar Cast ierīcēm tikai RFC1918/RFC4913 privātajās adresēs, izņemot gadījumus, kad ir iespējota funkcija “CastAllowAllIPs”.
-
-          Ja politikai “EnableMediaRouter” ir iestatīta vērtība “False”, šīs politikas vērtība nebūs spēkā.</translation>
 <translation id="5392172595902933844">Informācija par Android statusu tiek nosūtīta atpakaļ uz
       serveri.
 
@@ -2155,6 +2166,10 @@
 <translation id="6943577887654905793">Mac/Linux preferences nosaukums:</translation>
 <translation id="69525503251220566">Parametrs, kas noklusējuma meklēšanas pakalpojumu sniedzējam nodrošina funkciju Meklēšana pēc attēla</translation>
 <translation id="6956272732789158625">Neatļaut izmantot atslēgu ģenerēšanu nevienā vietnē</translation>
+<translation id="6965859329738616662">Norāda, vai viedās aptumšošanas modelis var paildzināt laiku, līdz ekrāns ir aptumšots.
+
+      Pirms ekrāna aptumšošanas viedās aptumšošanas modelis izvērtē, vai ekrāna aptumšošana ir jāaizkavē. Ja viedās aptumšošanas modelis aizkavē ekrāna aptumšošanu, faktiski tiek paildzināts laiks līdz ekrāna aptumšošanai. Šādā gadījumā ekrāna izslēgšanas, ekrāna bloķēšanas un dīkstāves aizkaves tiek pielāgotas, lai nodrošinātu tādu pašu laiku kopš ekrāna aptumšošanas aizkaves, kā sākotnēji konfigurēts.
+      Ja politikai ir iestatīta vērtība “True” vai tā nav iestatīta, viedās aptumšošanas modelis tiek iespējots un var paildzināt laiku līdz ekrāna aptumšošanai. Ja politikai ir iestatīta vērtība “False”, viedās aptumšošanas modelis neietekmē ekrāna aptumšošanu.</translation>
 <translation id="6982028490425791294">
       Ja šai politikai ir iestatīta vērtība “True”, <ph name="PRODUCT_NAME" /> ir atļauts apkopot WebRTC notikumu žurnālus no Google pakalpojumiem (piem., Google Meet) un augšupielādēt šos žurnālus Google.
 
@@ -2607,6 +2622,13 @@
 <translation id="7980227303582973781">Nav specifisku ierobežojumu</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Pagriezt ekrānu par 0 grādiem</translation>
+<translation id="8033913082323846868">Šī politika laidienā M70 vairs netiek izmantota, lūdzu, tās vietā izmantojiet “AutofillAddressEnabled” un “AutofillCreditCardEnabled”.
+
+      Iespējo <ph name="PRODUCT_NAME" /> funkciju Automātiskā aizpilde un ļauj lietotājiem automātiski aizpildīt tīmekļa veidlapas, izmantojot iepriekš saglabātos datus, piemēram, informāciju par adresi vai kredītkarti.
+
+      Ja šis iestatījums ir atspējots, lietotāji nevarēs piekļūt funkcijai Automātiskā aizpilde.
+
+      Ja šis iestatījums ir iespējots vai tam nav iestatīta vērtība, lietotāji varēs pārvaldīt funkcijas Automātiskā aizpilde lietošanu. Tādējādi lietotāji varēs konfigurēt funkcijas Automātiskā aizpilde profilus un pēc saviem ieskatiem ieslēgt/izslēgt funkciju Automātiskā aizpilde.</translation>
 <translation id="8044493735196713914">Ziņot par ierīces sāknēšanas režīmu</translation>
 <translation id="8050080920415773384">Vietējā drukāšana</translation>
 <translation id="8059164285174960932">URL, kurā attālās piekļuves klientiem ir jāiegūst autentifikācijas pilnvara</translation>
@@ -2937,6 +2959,19 @@
 
       Ja šī politika nav iestatīta, tiek izmantota vērtība <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Netiek izmantota laidienā M69. Tās vietā izmantojiet politiku “OverrideSecurityRestrictionsOnInsecureOrigin”.
+
+      Šī politika nosaka avotu sarakstu (vietrāži URL) vai saimniekdatora nosaukumu modeļus (piemēram, “*.example.com”), kuriem nelietos nedrošu avotu drošības ierobežojumi.
+
+      Mērķis ir organizācijām atļaut iestatīt baltā saraksta avotus mantotajām lietojumprogrammām, kurās nevar izvietot TLS, vai iestatīt pakāpeniskās izlaišanas serveri iekšējai tīmekļa izstrādei, lai izstrādātāji varētu testēt funkcijas, kurām nepieciešama droša vide, neizvietojot TLS pakāpeniskās izlaišanas serverī. Ja tiks izmantota šī politika, universālajā lodziņā avots netiks apzīmēts kā “Nav droši”.
+
+      Iestatot vietrāžu URL sarakstu šajā politikā, iegūtie rezultāti būs tādi paši kā tad, ja komandrindas karodziņam “--unsafely-treat-insecure-origin-as-secure” iestatīsiet komatatdalītu sarakstu ar tiem pašiem vietrāžiem URL. Ja politika tiks iestatīta, komandrindas karodziņš tiks ignorēts.
+.
+
+      Šī politika laidienā M69 vairs netiek izmantota; tās vietā lietojiet politiku “OverrideSecurityRestrictionsOnInsecureOrigin”. Ja ir pieejamas abas politikas, “OverrideSecurityRestrictionsOnInsecureOrigin” ignorēs šo politiku.
+
+      Plašāku informāciju par drošu vidi skatiet vietnē https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="8942616385591203339">Šī politika nosaka, vai lietotājam pirmajā pierakstīšanās reizē tiek rādīts dialoglodziņš sinhronizācijas atļaušanai. Ja lietotājam nekad nav nepieciešams rādīt dialoglodziņu sinhronizācijas atļaušanai, politikai jāiestata vērtība “False”.
       Ja ir iestatīta vērtība “False”, dialoglodziņš sinhronizācijas atļaušanai netiks rādīts.
       Ja ir iestatīta vērtība “True” vai politika nav iestatīta, dialoglodziņš sinhronizācijas atļaušanai tiks rādīts.</translation>
diff --git a/components/policy/resources/policy_templates_ml.xtb b/components/policy/resources/policy_templates_ml.xtb
index 8d2ee89..3f54bab 100644
--- a/components/policy/resources/policy_templates_ml.xtb
+++ b/components/policy/resources/policy_templates_ml.xtb
@@ -34,6 +34,17 @@
           ഈ ക്രമീകരണം പ്രവർത്തനരഹിതമാക്കുകയോ കോൺഫിഗർ ചെയ്യാതിരിക്കുകയോ ആണെങ്കിൽ, റിമോട്ട് അസിസ്റ്റൻസ് ഹോസ്റ്റ്, ഉപയോക്താവിന്റെ പശ്ചാത്തലത്തിൽ റൺ ചെയ്യുന്നതിനാൽ ഡെസ്‌ക്‌ടോപ്പിലെ എലിവേറ്റഡ് വിൻഡോകളുമായി വിദൂര ഉപയോക്താക്കൾക്ക് സംവദിക്കാൻ കഴിയുകയുമില്ല.</translation>
 <translation id="1096105751829466145">സ്ഥിരസ്ഥിതി തിരയൽ ദാതാവ്</translation>
 <translation id="1099282607296956954">എല്ലാ സൈറ്റിനും സൈറ്റ് ഐസലേഷൻ പ്രവർത്തനക്ഷമമാക്കുക</translation>
+<translation id="1100570158310952027">
+      സുരക്ഷിതമല്ലാത്ത ഉറവിടങ്ങൾക്ക് മേലുള്ള സുരക്ഷാ നിയന്ത്രണങ്ങൾ ബാധകമല്ലാത്ത, ഉറവിടങ്ങളുടെ (URLs) അല്ലെങ്കിൽ ഹോസ്‌റ്റ്നാമ പാറ്റേണുകളുടെ ("*.example.com" പോലുള്ളവ) ഒരു ലിസ്‌റ്റ് ഈ നയം വ്യക്തമാക്കുന്നു.
+
+TLS വിന്യസിക്കാനാവാത്ത ലെഗസി ആപ്പുകൾക്ക് വൈറ്റ്ലി‌സ്‌റ്റ് ഉറവിടങ്ങൾ സജ്ജീകരിക്കാൻ അല്ലെങ്കിൽ വെബ് ഡെവലപ്പ്മെന്റിനായി സ്‌റ്റേജിംഗ് സെർവർ സജ്ജീകരിക്കാൻ സ്ഥാപനങ്ങളെ അനുവദിക്കുക എന്നതാണ് ഉദ്ദേശ്യം, ഇതുവഴി, സുരക്ഷിത സന്ദർഭങ്ങൾ ആവശ്യമായ ഞങ്ങളുടെ ഫീച്ചറുകളെ, സ്‌റ്റേജിംഗ് സെർവറിൽ TLS വിന്യസിക്കേണ്ടതിന്റെ ആവശ്യകതയില്ലാതെ ടെസ്‌റ്റ് ചെയ്യാൻ സ്ഥാപനങ്ങളുടെ ഡെവലപ്പർമാർക്കാവും. ഒമ്‌നിബോക്‌സിൽ, ഉറവിടങ്ങൾ "സുരക്ഷിതമല്ല" എന്ന് ലേബൽ ചെയ്യപ്പെടുന്നതിൽ നിന്ന് ഈ നയം തടയുകയും ചെയ്യും.
+
+ഈ നയത്തിൽ URL-കളുടെ ഒരു ലിസ്‌റ്റ് സജ്ജമാക്കുന്നത്, അതേ URL-കളുടെ കോമ കൊണ്ട് വേർതിരിച്ചിട്ടുള്ള ഒരു ലിസ്‌റ്റിലേക്ക് '--unsafely-treat-insecure-origin-as-secure' എന്ന കമാൻഡ്-ലൈൻ ഫ്ലാഗ് സജ്ജമാക്കുന്നതിന് തുല്യമാണ്. നയം സജ്ജമാക്കിയിട്ടുണ്ടെങ്കിൽ, കമാൻഡ്-ലൈൻ ഫ്ലാഗിനെ ഈ നയം അസാധുവാക്കും. 
+
+ദൃശ്യമാണെങ്കിൽ, UnsafelyTreatInsecureOriginAsSecure എന്നതിനെ ഈ നയം അസാധുവാക്കും. 
+
+സുരക്ഷിത സന്ദർഭങ്ങളെക്കുറിച്ച് കൂടുതൽ വിവരങ്ങൾക്ക്, https://www.w3.org/TR/secure-contexts/ കാണുക.
+      </translation>
 <translation id="1117535567637097036">Android ഇന്റന്റുകൾ കൈകാര്യം ചെയ്യുമ്പോൾ, ഈ നയം വഴി സജ്ജമാക്കിയ പ്രോട്ടോക്കോൾ ഹാൻഡ്‌ലറുകൾ ഉപയോഗിക്കില്ല.</translation>
 <translation id="1118093128235245168">കണക്‌റ്റ് ചെയ്‌ത USB ഉപകരണത്തിലേക്ക് ഉപയോക്താവിനോട് ആക്‌സസ് അനുവദിക്കാനായി ആവശ്യപ്പെടാൻ സൈറ്റുകളെ അനുവദിക്കുക</translation>
 <translation id="1128903365609589950">ഡിസ്‌ക്കിൽ കാഷെ ചെയ്‌ത ഫയലുകൾ സൂക്ഷിക്കുന്നതിന്, <ph name="PRODUCT_NAME" /> ഉപയോഗിക്കുന്ന ഡയറക്‌ടറി കോൺ‌ഫിഗർ ചെയ്യുന്നു.
@@ -84,6 +95,7 @@
       നയം സജ്ജമാക്കിയിട്ടില്ലെങ്കിലോ, ഈ നയം false ആയി സജ്ജമാക്കിയെങ്കിലോ TLS-ലെ RC4 സൈഫർ സ്യൂട്ടുകൾ പ്രവർത്തനക്ഷമമാക്കില്ല. അല്ല്ലെങ്കിൽ ഇത് ഒരു കാലഹരണപ്പെട്ട സെർവറുമായി അനുയോജ്യത നിലനിർത്താൻ true ആയി സജ്ജമാക്കിയേക്കാം. ഇതൊരു സ്‌റ്റോപ്പ്ഗ്യാപ്പ് അളവായതിനാൽ സെർവർ വീണ്ടും കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്.</translation>
 <translation id="1297182715641689552">ഒരു .pac പ്രോക്സി സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുക</translation>
 <translation id="1304973015437969093">ഉപയോക്തൃ ശ്രദ്ധ ആവശ്യമില്ലാതെ തന്നെ ഇൻസ്റ്റാളുചെയ്യേണ്ട വിപുലീകരണ/ആപ്പ് ഐഡികളും അപ്‌ഡേറ്റ് URL-കളും</translation>
+<translation id="1307454923744766368">സുരക്ഷിതമല്ലാത്ത ഉറവിടങ്ങൾക്ക് മേലുള്ള നിയന്ത്രണങ്ങൾ ബാധകമാവാൻ പാടില്ലാത്ത ഉറവിടങ്ങൾ അല്ലെങ്കിൽ ഹോസ്‌റ്റ് നാമ പാറ്റേണുകൾ</translation>
 <translation id="1313457536529613143">സ്‌ക്രീൻ മങ്ങുന്നതിനിടയിലോ സ്‌ക്രീൻ ഓഫായ ഉടനെയോ ഉപയോക്താവിന്റെ പ്രവർത്തനം നിരീക്ഷിക്കപ്പെടുമ്പോൾ സ്‌ക്രീൻ മങ്ങുന്നതിന്റെ കാലതാമസമനുസരിച്ചുള്ള ശതമാനം വ്യക്തമാക്കുന്നു.
 
          ഈ നയം സജ്ജമാക്കുകയാണെങ്കിൽ, സ്‌ക്രീൻ മങ്ങുന്നതിനിടയിലോ സ്‌ക്രീൻ ഓഫായ ഉടനെയോ ഉപയോക്താവിന്റെ പ്രവർത്തനം നിരീക്ഷിക്കപ്പെടുമ്പോൾ സ്‌ക്രീൻ മങ്ങുന്നതിന്റെ കാലതാമസമനുസരിച്ചുള്ള ശതമാനം വ്യക്തമാക്കുന്നു. സ്‌ക്രീൻ മങ്ങുന്നതിന്റെ കാലതാമസം സ്‌കെയിൽ ചെയ്‌തിരിക്കുമ്പോൾ, സ്‌ക്രീൻ ഓഫാകുന്നതിനും സ്‌ക്രീൻ ലോക്കാകുന്നതിനും നിഷ്‌ക്രിയമാകുന്നതിനുമുള്ള കാലതാമസം, സ്‌ക്രീൻ മങ്ങുന്നതിന്റെ കാലതാമസവുമായുള്ള സമാന സമയം തന്നെ നിലനിർത്തുന്നതിനായി തുടക്കത്തിൽ തന്നെ കോൺഫിഗർ ചെയ്‌തിരിക്കുന്ന രീതിയിൽ ക്രമീകരിക്കപ്പെടുന്നു.
@@ -102,6 +114,11 @@
       ഈ ക്രമീകരണം പ്രവർത്തനക്ഷമമാക്കുകയാണെങ്കിൽ, Google തിരയലിലെ SafeSearch, YouTube-ലെ മിതമായ നിയന്ത്രിത മോഡ് എന്നിവ എല്ലായ്‌പ്പോഴും സജീവമാകുന്നു.
 
       ഈ ക്രമീകരണം പ്രവർത്തനരഹിതമാക്കുകയോ മൂല്യം ഒന്നും സജ്ജമാക്കാതിരിക്കുകയോ ചെയ്യുകയാണെങ്കിൽ, Google തിരയലിലെ SafeSearch, YouTube-ലെ നിയന്ത്രിത മോഡ് എന്നിവ പ്രവർത്തനത്തിൽ വരില്ല.</translation>
+<translation id="1352174694615491349">ക്ലയന്റ് സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിക്കുമ്പോൾ HTTP / 2 കണക്ഷൻ ഒന്നിച്ച് ചേരുന്നത് ഈ നയം അനുവദിക്കുന്നു. ഒന്നിച്ച് ചേരുന്നതിന്, സാധ്യതയുള്ള പുതിയ കണക്ഷന്റെ ഹോസ്‌റ്റ് നാമവും, നിലവിലുള്ള കണക്ഷന്റെ ഹോസ്‌റ്റ് നാമവും, ഈ നയം വിവരിച്ചിട്ടുള്ള ഒന്നോ അതിലധകമോ പാറ്റേണുകളോട് പൊരുത്തപ്പെടണം. URLBlacklist ഫിൽട്ടർ ഫോർമാറ്റ് ഉപയോഗിക്കുന്ന ഹോസ്‌റ്റുകളുടെ ഒരു ലിസ്‌റ്റ് ആണ് ഈ നയം: "example.com" എന്നത് "example.com" എന്നതിനോടും എല്ലാ ഉപ ഡൊമെയ്‌നിനോടും (ഉദാ. "sub.example.com") പൊരുത്തപ്പെടുമ്പോൾ, ".example.net," കൃത്യമായി "example.net" എന്നതുമായി പൊരുത്തപ്പെടുന്നു.
+
+ക്ലയന്റ് സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിക്കുന്ന കണക്ഷനുകളിലെ വ്യത്യസ്‌ത ഹോസ്‌റ്റുകളിലേക്കുള്ള അഭ്യർത്ഥനകൾ ഒന്നിച്ച് ചേർക്കുന്നത് സുരക്ഷ, സ്വകാര്യത എന്നിവയെ സംബന്ധിച്ച പ്രശ്‌നങ്ങൾ സൃഷ്‌ടിച്ചേക്കാം, കാരണം ഉപയോക്താവ് സ്‌പഷ്‌ടമായി അംഗീകരിച്ചില്ലെങ്കിലും, എല്ലാ അഭ്യർത്ഥനകൾക്കും ആംബിയന്റ് അതോറിറ്റി നൽകും. ഈ നയം താൽക്കാലികമാണ്, ഭാവിയിലെ റിലീസിൽ അത് നീക്കം ചെയ്യും. Https://crbug.com/855690 കാണുക.
+
+നയം സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, ക്ലയൻറ് സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിക്കുന്ന കണക്ഷനുകളിൽ ഏതെങ്കിലും HTTP / 2 കണക്ഷൻ ഒന്നിച്ച് ചേർക്കുന്നത് അനുവദിക്കാത്ത ഡിഫോൾട്ട് രീതി ഉപയോഗിക്കപ്പെടും.</translation>
 <translation id="1353966721814789986">ആരംഭ പേജുകള്‍</translation>
 <translation id="1354452738176731363">ഈ നയം 'തെറ്റ്' എന്ന് സജ്ജമാക്കിയിരിക്കുമ്പോൾ, ഉപയോക്താവ് ലോഗിൻ ചെയ്യുന്ന സമയത്ത് ഉപകരണത്തിലേക്കുള്ള ഓഡിയോ ഔട്ട്പുട്ട് ലഭ്യമായേക്കില്ല.
 
@@ -216,6 +233,7 @@
 <translation id="1583248206450240930">സ്ഥിരസ്ഥിതിയായി <ph name="PRODUCT_FRAME_NAME" /> ഉപയോഗിക്കുക</translation>
 <translation id="1599424828227887013">Android ഉപകരണങ്ങളിലെ നിർദ്ദിഷ്‌ട ഉറവിടങ്ങൾക്ക് സൈറ്റ് മാറ്റിനിർത്തൽ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="1608755754295374538">ആവശ്യപ്പെടാതെ തന്നെ ഓഡിയോ ക്യാപ്‌ചർ ഉപകരണങ്ങളിലേക്ക് ആക്‌സസ്സ് ലഭിക്കുന്ന URL-കൾ</translation>
+<translation id="1615221548356595305">ക്ലയന്റ് സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിക്കുമ്പോൾ പോലും ഈ ഹോസ്‌റ്റുകൾക്കുള്ള HTTP/2 കണക്‌ഷനുകൾ ഒന്നിച്ച് ചേർക്കുന്നത് അനുവദിക്കുക</translation>
 <translation id="1617235075406854669">ബ്രൗസർ, ഡൗൺലോഡ് ചരിത്രം എന്നിവ ഇല്ലാതാക്കുന്നത് പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="163200210584085447">ഈ ലിസ്റ്റിലെ പാറ്റേണുകൾ, അഭ്യർത്ഥിക്കുന്ന URL-ന്റെ
       സുരക്ഷാ ഉറവിടവുമായി യോജിക്കുന്നതായിരിക്കും.  യോജിക്കുന്ന ഒരെണ്ണം
@@ -1349,7 +1367,6 @@
       ഈ നയം സജ്ജമാക്കാത്ത നിലയിലാണെങ്കിൽ, URL കീ ഉപയോഗിച്ച് അജ്ഞാതമാക്കിയ ഡാറ്റ ശേഖരണം പ്രവർത്തനക്ഷമമാകുമെങ്കിലും ഉപയോക്താവിന് അത് മാറ്റാനാവും.</translation>
 <translation id="4250680216510889253">ഇല്ല</translation>
 <translation id="4261820385751181068">ഉപകരണ സൈൻ ഇൻ സ്‌ക്രീൻ ഭാഷ</translation>
-<translation id="4264607809747169568">ChromeOS ലഭ്യതയ്ക്കായി നെറ്റ്‌വർക്ക് ഫയൽ പങ്കിടൽ നിയന്ത്രിക്കുന്നു</translation>
 <translation id="427220754384423013">ഒരു ഉപയോക്താവിന് ഉപയോഗിക്കാൻ കഴിയുന്ന പ്രിന്‍ററുകളെ ഇത് വ്യക്തമാക്കുന്നു.
 
       <ph name="BULK_PRINTERS_ACCESS_MODE" />-നായി <ph name="PRINTERS_WHITELIST" /> തിരഞ്ഞെടുത്തിട്ടുണ്ടെങ്കിൽ മാത്രമേ ഈ നയം ഉപയോഗിക്കപ്പെടുകയുള്ളൂ.
@@ -1526,6 +1543,7 @@
       ഈ നയം പ്രവർത്തനക്ഷമമാണെങ്കിൽ, സൈറ്റുകളെ ഒരേ സമയം നാവിഗേറ്റ് ചെയ്യാനും പുതിയ വിൻഡോകൾ/ടാബുകൾ തുറക്കാനും അനുവദിക്കും.
       ഈ നയം പ്രവർത്തനരഹിതമോ സജ്ജീകരിക്കാത്ത നിലയിലോ ആണെങ്കിൽ, സൈറ്റുകളെ ഒരേ സമയം നാവിഗേറ്റ് ചെയ്യാനും പുതിയ വിൻഡോൾ/ടാബ് തുറക്കാനും അനുവദിക്കില്ല.</translation>
 <translation id="4680961954980851756">ഓട്ടോഫില്‍ പ്രാപ്തമാക്കുക</translation>
+<translation id="4703402283970867140">സ്ക്രീൻ മങ്ങുന്നത് വരെ സമയം ദീർഘിപ്പിക്കുന്നതിന്, സ്‌മാർട്ട് ഡിം മോഡൽ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="4722122254122249791">പ്രത്യേക ഉറവിടങ്ങൾക്ക് മാത്രം സൈറ്റ് ഐസലേഷൻ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="4722399051042571387">തെറ്റ് എന്നാണെങ്കിൽ, ഉപയോക്താക്കൾക്ക് ദുർബലമായതും എളുപ്പത്തിൽ ഊഹിക്കാവുന്നതുമായ പിൻ നമ്പറുകൾ സജ്ജമാക്കാനാവില്ല.
 
@@ -1774,13 +1792,6 @@
 
           ഈ നയം സജ്ജീകരിക്കാത്ത നിലയിലാണെങ്കിൽ, 'AskNotifications' എന്നത് ഉപയോഗിക്കും കൂടാതെ ഉപയോക്താവിന് ഇത് മാറ്റാൻ കഴിയും.</translation>
 <translation id="538108065117008131">ഇനി പറയുന്ന ഉള്ളടക്ക തരങ്ങള്‍ കൈകാര്യം ചെയ്യാന്‍ <ph name="PRODUCT_FRAME_NAME" />-നെ അനുവദിക്കുന്നു.</translation>
-<translation id="5391363090783552279">ഈ നയം 'ട്രൂ' എന്ന് സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, RFC1918/RFC4913 സ്വകാര്യ വിലാസങ്ങളിലെ മാത്രമല്ല എല്ലാ IP വിലാസങ്ങളിലെ Cast ഉപകരണങ്ങളിലേക്കും <ph name="PRODUCT_NAME" /> കണക്‌റ്റ് ചെയ്യും.
-
-          ഈ നയം 'ഫാൾസ്' എന്ന് സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, RFC1918/RFC4913 സ്വകാര്യ വിലാസങ്ങളിലെ Cast ഉപകരണങ്ങളിലേക്ക് മാത്രമായിരിക്കും <ph name="PRODUCT_NAME" /> കണ‌ക്റ്റ് ചെയ്യുക.
-
-          ഈ നയം സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, CastAllowAllIPs ഫീച്ചറുകൾ പ്രവർത്തനക്ഷമമല്ലാത്ത പക്ഷം, RFC1918/RFC4913 സ്വകാര്യ വിലാസങ്ങളിലെ Cast ഉപകരണങ്ങളിലേക്ക് മാത്രം <ph name="PRODUCT_NAME" /> കണക്‌റ്റ് ചെയ്യും.
-
-          "EnableMediaRouter" നയം 'ഫാൾസ്' എന്ന് സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, അപ്പോൾ ഈ നയത്തിന്റെ മൂല്യത്തിൽ പ്രഭാവമൊന്നും ഉണ്ടാക്കില്ല.</translation>
 <translation id="5392172595902933844">Android-ന്റെ സ്‌റ്റാറ്റസിനെ കുറിച്ചുള്ള വിവരങ്ങൾ സെർവറിലേക്ക് തിരികെ അയയ്‌ക്കുന്നു.
 
      നയം 'തെറ്റ്' എന്ന് സജ്ജമാക്കുകയോ സജ്ജമാക്കാതെ വിടുകയോ ആണെങ്കിൽ, സ്‌റ്റാറ്റസ് വിവരങ്ങളൊന്നും റിപ്പോർട്ടുചെയ്യില്ല.
@@ -2407,6 +2418,11 @@
 <translation id="6943577887654905793">Mac/Linux മുന്‍ഗണന പേര്‌:</translation>
 <translation id="69525503251220566">സ്ഥിര തിരയൽ ദാതാവിനായി പാരാമീറ്റർ, ഇമേജ് പ്രകാരമുള്ള തിരയൽ സവിശേഷത നൽകുന്നു</translation>
 <translation id="6956272732789158625">കീ സൃഷ്‌ടിക്കൽ ഉപയോഗിക്കാൻ ഒരു സൈറ്റിനെയും അനുവദിക്കരുത്</translation>
+<translation id="6965859329738616662">സ്ക്രീൻ മങ്ങുന്നതുവരെ സമയം ദീർഘിപ്പിക്കാൻ സ്‌മാർട്ട് ഡിം മോഡലിന് അനുവാദമുണ്ടോ എന്ന് വ്യക്തമാക്കുന്നു.
+
+സ്ക്രീൻ മങ്ങിക്കാനാവുമ്പോൾ, സ്‌മാർട്ട് ഡിം മോഡൽ, സ്ക്രീനിന്റെ മങ്ങിക്കൽ നീട്ടിവെക്കണോ എന്ന് വിലയിരുത്തുന്നു. സ്‌മാർട്ട് ഡിം മോഡൽ സ്ക്രീൻ മങ്ങുന്നത് നീട്ടിവെക്കുന്നു എങ്കിൽ, സ്ക്രീൻ മങ്ങുന്നത് വരെയുള്ള സമയം ഇത് ഫലപ്രദമായി ദീർഘിപ്പിക്കും. ഈ സാഹചര്യത്തിൽ, സ്ക്രീൻ ഓഫ്, സ്ക്രീൻ ലോക്ക്, നിഷ്ക്രിയമായിരിക്കുമ്പോഴുള്ള കാലതാമസം എന്നിവ, യഥാർത്ഥത്തിൽ കോൺഫിഗർ ചെയ്‌ത അതേ സ്ക്രീൻ മങ്ങൽ കാലതാമസത്തിൽ നിന്നുള്ള പരിധികൾ നിലനിർത്താനായി ക്രമീകരിക്കപ്പെടുന്നു.
+
+ഈ നയം 'ശരി' എന്ന് സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിലോ സജ്ജീകരിക്കാതിരുന്നാലോ, സ്‌മാർട്ട് ഡിം മോഡൽ പ്രവർത്തനക്ഷമമാക്കുകയും സ്ക്രീൻ മങ്ങുന്നതുവരെ സമയം ദീർഘിപ്പിക്കാൻ അനുവദിക്കുകയും ചെയ്യും. ഈ നയം 'തെറ്റ്' എന്ന് സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, സ്ക്രീൻ മങ്ങിക്കുന്നതിനെ, സ്‌മാർട്ട് ഡിം മോഡൽ ബാധിക്കില്ല.</translation>
 <translation id="6982028490425791294">
       നയം 'ട്രൂ' ആയി സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, Google സേവനങ്ങളിൽ (ഉദാഹരണത്തിന് Google Meet) നിന്ന് WebRTC ഇവന്റ് ലോഗുകളെ ശേഖരിക്കുന്നതിനും ആ ലോഗുകൾ Google-ലേക്ക് അപ്‌ലോഡ് ചെയ്യുന്നതിനും <ph name="PRODUCT_NAME" /> അനുവദിക്കപ്പെടും.
 
@@ -2899,6 +2915,13 @@
 
       നിങ്ങള്‍ ഈ ക്രമീകരണം പ്രവർത്തനരഹിതമാക്കുകയാണെങ്കിൽ‍, ബുക്ക്‌മാര്‍ക്കുകൾ ചേർക്കുകയും നീക്കം‍ചെയ്യുകയും പരിഷ്കരിക്കുകയും ചെയ്യാൻ കഴിയില്ല. നിലവിലെ ബുക്ക്‍മാര്‍ക്കുകൾ ഇപ്പോഴും ലഭ്യമാണ്‌.</translation>
 <translation id="802147957407376460">സ്‌ക്രീൻ 0 ഡിഗ്രി തിരിക്കുക</translation>
+<translation id="8033913082323846868">ഈ നയം M70 ൽ അവസാനിപ്പിച്ചിരിക്കുന്നു, പകരം AutofillAddressEnabled, AutofillCreditCardEnabled എന്നിവ ഉപയോഗിക്കുക.
+
+<ph name="PRODUCT_NAME" />-ന്റെ സ്വമേധയാ പൂരിപ്പിക്കൽ ഫീച്ചൽ പ്രവർത്തനക്ഷമമാക്കുകയും വിലാസം അല്ലെങ്കിൽ ക്രെഡിറ്റ് കാർഡ് വിവരം എന്നിവ പോലുള്ള മുമ്പ് സംഭരിച്ച വിവരം ഉപയോഗിച്ച് വെബ് ഫോമുകൾ സ്വമേധയാ പൂർത്തിയാക്കാൻ ഉപയോക്താക്കളെ അനുവദിക്കുകയും ചെയ്യുന്നു.
+
+നിങ്ങൾ ഈ ക്രമീകരണം പ്രവർത്തനരഹിതമാക്കിയാൽ, സ്വമേധയാ പൂരിപ്പിക്കൽ ഉപയോക്താക്കൾക്ക് ആക്‌സസ് ചെയ്യാനാവില്ല.
+
+നിങ്ങൾ ഈ ക്രമീകരണം പ്രവർത്തനക്ഷമമാക്കുകയോ ഒരു മൂല്യം സജ്ജമാക്കാതിരിക്കുകയോ ചെയ്‌‌താൽ, സ്വമേധയാ പൂരിപ്പിക്കൽ തുടർന്നും ഉപയോക്താവിൻറെ നിയന്ത്രണത്തിലായിരിക്കും. ഇത്, സ്വമേധയാ പൂരിപ്പിക്കൽ പ്രൊഫൈലുകൾ കോൺഫിഗർ ചെയ്യാനും അവരുടെ സ്വന്തം വിവേചനാധികാരം ഉപയോഗിച്ച്, സ്വമേധയാ പൂരിപ്പിക്കൽ ഓണാക്കാനോ ഓഫാക്കാനോ ഉപയോക്താക്കളെ അനുവദിക്കുകയും ചെയ്യും.</translation>
 <translation id="8044493735196713914">ഉപകരണ ബൂട്ട് മോഡ് റിപ്പോർട്ടുചെയ്യുക</translation>
 <translation id="8050080920415773384">നേറ്റീവ് പ്രിന്റിംഗ്</translation>
 <translation id="8059164285174960932">റിമോട്ട് ആക്‌സസ്സ് ക്ലയന്റുകൾക്കുകൾ അവരുടെ പ്രാമാണീകരണ ടോക്കൺ നേടേണ്ട URL</translation>
@@ -3260,6 +3283,18 @@
 
       ഈ നയം സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, <ph name="PRINTERS_ALLOW_ALL" /> അനുമാനിക്കപ്പെടും.
       </translation>
+<translation id="8938932171964587769">M69-ൽ അവസാനിപ്പിച്ചിരിക്കുന്നു. പകരം OverrideSecurityRestrictionsOnInsecureOrigin ഉപയോഗിക്കുക.
+
+സുരക്ഷിതമല്ലാത്ത ഉറവിടങ്ങൾക്ക് മേലുള്ള സുരക്ഷാ നിയന്ത്രണങ്ങൾ ബാധകമല്ലാത്ത, ഉറവിടങ്ങളുടെ (URLs) അല്ലെങ്കിൽ ഹോസ്‌റ്റ്നാമ പാറ്റേണുകളുടെ ("*.example.com" പോലുള്ളവ) ഒരു ലിസ്‌റ്റ് ഈ നയം വ്യക്തമാക്കുന്നു.
+
+TLS വിന്യസിക്കാനാവാത്ത ലെഗസി ആപ്പുകൾക്ക് വൈറ്റ്ലി‌സ്‌റ്റ് ഉറവിടങ്ങൾ സജ്ജീകരിക്കാൻ അല്ലെങ്കിൽ വെബ് ഡെവലപ്പ്മെന്റിനായി സ്‌റ്റേജിംഗ് സെർവർ സജ്ജീകരിക്കാൻ സ്ഥാപനങ്ങളെ അനുവദിക്കുക എന്നതാണ് ഉദ്ദേശ്യം, ഇതുവഴി, സുരക്ഷിത സന്ദർഭങ്ങൾ ആവശ്യമായ ഞങ്ങളുടെ ഫീച്ചറുകളെ, സ്‌റ്റേജിംഗ് സെർവറിൽ TLS വിന്യസിക്കേണ്ടതിന്റെ ആവശ്യകതയില്ലാതെ ടെസ്‌റ്റ് ചെയ്യാൻ സ്ഥാപനങ്ങളുടെ ഡെവലപ്പർമാർക്കാവും. ഒമ്‌നിബോക്‌സിൽ, ഉറവിടങ്ങൾ "സുരക്ഷിതമല്ല" എന്ന് ലേബൽ ചെയ്യപ്പെടുന്നതിൽ നിന്ന് ഈ നയം തടയുകയും ചെയ്യും.
+
+ഈ നയത്തിൽ URL-കളുടെ ഒരു ലിസ്‌റ്റ് സജ്ജമാക്കുന്നത്, അതേ URL-കളുടെ കോമ കൊണ്ട് വേർതിരിച്ചിട്ടുള്ള ഒരു ലിസ്‌റ്റിലേക്ക് '--unsafely-treat-insecure-origin-as-secure' എന്ന കമാൻഡ്-ലൈൻ ഫ്ലാഗ് സജ്ജമാക്കുന്നതിന് തുല്യമാണ്. നയം സജ്ജമാക്കിയിട്ടുണ്ടെങ്കിൽ, കമാൻഡ്-ലൈൻ ഫ്ലാഗിനെ ഈ നയം അസാധുവാക്കും.
+
+ഈ നയം, OverrideSecurityRestrictionsOnInsecureOrigin-ന് വേണ്ടി, M69-ൽ അവസാനിപ്പിച്ചിരിക്കുന്നു. രണ്ട് നയങ്ങളും ദൃശ്യമാണെങ്കിൽ, OverrideSecurityRestrictionsOnInsecureOrigin ഈ നയത്തെ അസാധുവാക്കും.
+
+സുരക്ഷിതമായ സന്ദർഭങ്ങളെക്കുറിച്ച് കൂടുതൽ വിവരങ്ങൾക്ക്, https://www.w3.org/TR/secure-contexts/ കാണുക
+      </translation>
 <translation id="8942616385591203339">ഉപയോക്താവ് ആദ്യമായി സൈൻ ഇൻ ചെയ്യുന്ന സമയത്ത് സമന്വയ സമ്മതം പ്രദർശിപ്പിക്കാമോ എന്നത് ഈ നയം നിയന്ത്രിക്കുന്നു. ഉപയോക്താവിന് സമന്വയ സമ്മതം ഒരിക്കലും ആവശ്യമില്ലെങ്കിൽ, ഇത് തെറ്റ് എന്ന് സജ്ജീകരിക്കണം.
       തെറ്റ് എന്ന് സജ്ജീകരിച്ചാൽ, സമന്വയ സമ്മതം പ്രദർശിപ്പിക്കില്ല.
       ശരി എന്ന് സജ്ജീകരിച്ചാലോ സജ്ജീകരിക്കാതിരുന്നാലോ, സമന്വയ സമ്മതം പ്രദർശിപ്പിക്കാനാവും.</translation>
diff --git a/components/policy/resources/policy_templates_mr.xtb b/components/policy/resources/policy_templates_mr.xtb
index b66d259..1c5bc0e7 100644
--- a/components/policy/resources/policy_templates_mr.xtb
+++ b/components/policy/resources/policy_templates_mr.xtb
@@ -34,6 +34,17 @@
           ही सेटिंग अक्षम केली असल्यास किंवा कॉन्फिगर केलेली नसल्यास, दूरस्थ सहाय्य होस्ट वापरकर्त्याच्या संदर्भामध्ये चालेल आणि दूरस्थ वापरकर्ते डेस्कटॉपवर प्रगत विंडोशी परस्परसंवाद साधू शकणार नाहीत.</translation>
 <translation id="1096105751829466145">डीफॉल्ट शोध प्रदाता</translation>
 <translation id="1099282607296956954">प्रत्येक साइटसाठी साइट आयसोलेशन सुरू करा</translation>
+<translation id="1100570158310952027">
+      धोरण मूळची सूची (URL) किंवा होस्ट नाव नमूने (जसे की  "*.example.com") निर्दिष्ट करते ज्यासाठी असुरक्षित मूळांवरील सुरक्षितता प्रतिबंध लागू होणार नाहीत. 
+
+      TLS चे उपाययोजन करू शकत नाही, अशा परंपरागत अॅप्लिकेशनसाठी व्हाइलिस्ट मूळ सेट करता यावी म्हणून संस्थांना परवानगी देण्याचा किंवा अंतर्गत वेब डेव्हलपमेंटसाठी स्टेजिंग सर्व्हर सेट करण्याचा हेतू आहे, यामुळे त्यांचे डेव्हलपर TLS च्या स्टेजिंग सर्व्हरवरील उपाययोजनांशिवाय आवश्यक असलेल्या संदर्भाचे संरक्षण करण्यासाठी वैशिष्ट्ये वापरून पाहू शकतील. याशिवाय धोरणे ओमनीबॉक्समध्ये "सुरक्षित नाही" हे लेबल मूळाला लागू नये म्हणून प्रतिबंध करेल.
+      
+      या धोरणामध्‍ये URL ची सूची सेट करणे हे त्‍याच URL च्‍या स्वल्पविरामाने-विभक्त केलेल्या सूचीवर कमांड-लाइन फ्लॅग '--असुरक्षित मूळ URL ला असुरक्षितरीत्‍या सु‍रक्षित समजणे' सेट करण्‍या इतकेच प्रभावी आहे. 
+
+उपस्थित असल्‍यास, कमांड-लाइन फ्लॅग ओव्‍हरराइड होईल. 
+
+सुरक्षित संदर्भांच्‍या अधिक माहितीसाठी, https://www.w3.org/TR/secure-contexts/ पाहा.
+      </translation>
 <translation id="1117535567637097036">Android हेतू हाताळताना या धोरणाने सेट केलेले प्रोटोकॉल हँडलर वापरले जात नाहीत.</translation>
 <translation id="1118093128235245168">कनेक्ट केलेल्या USB डिव्हाइसला अ‍ॅक्सेसची मंजूरी देण्यासाठी वापरकर्त्यास विचारण्याची साइटना अनुमती देते</translation>
 <translation id="1128903365609589950">डिस्कवर कॅश   केलेल्या फायली संचयित करण्‍यासाठी <ph name="PRODUCT_NAME" /> वापरेल ती निर्देशिका कॉन्फिगर करते.
@@ -84,6 +95,7 @@
       धोरण सेट केले नसल्यास किंवा असत्य वर सेट केले असल्यास, TLS मध्ये योग्य असणारे RC4 सायफर सक्षम केले जाणार नाही. अन्यथा कालबाह्य सर्व्हरसह सुसंगतता टिकवून ठेवण्यासाठी ते सत्य वर सेट केले जाऊ शकते. हा एक तात्पुरता बदली उपाय आहे आणि सर्व्हर पुन्हा कॉन्फिगर केले जावे.</translation>
 <translation id="1297182715641689552">.pac प्रॉक्सी स्क्रिप्टचा वापर करा</translation>
 <translation id="1304973015437969093">शांतपणे इंस्टॉल केले जाणारे विस्तार/अॅप आयडी आणि अपडेट URL</translation>
+<translation id="1307454923744766368">मूळ किंवा होस्ट नाव पॅटर्न ज्यावर असुरक्षित मुळांवरील प्रतिबंध लागू नसावे</translation>
 <translation id="1313457536529613143">स्क्रीन मंद असताना किंवा स्क्रीन बंद केल्यानंतर लवकर जेव्हा वापरकर्ता गतिविधीवर लक्ष ठेवले जाते तेव्हा स्क्रीन मंद होण्याचा विलंब मोजण्याची टक्केवारी निर्दिष्ट करते.
 
           हे धोरण सेट असल्यास, ते स्क्रीन मंद असताना वापरकर्ता गतिविधीवर लक्ष ठेवले जाते तेव्हा किंवा स्क्रीन बंद केल्यानंतर लगेच स्क्रीन मंद होण्याचा विलंब मोजली जाणारी टक्केवारी निर्दिष्ट करते. जेव्हा मंद असण्याचा विलंब मोजला जातो, तेव्हा स्क्रीन बंद असणे, स्क्रीन लॉक आणि निष्क्रिय विलंब मूळतः कॉन्फिगर केल्याप्रमाणे स्क्रीन मंद होण्याच्या विलंबातील समान अंतर कायम ठेवण्यासाठी समायोजित केले जातात.
@@ -102,6 +114,11 @@
       तुम्ही ही सेटिंग चालू केल्यास, Google शोध मधील सुरक्षितशोध आणि मध्यम प्रतिबंधित मोड YouTube नेहमी सक्रिय असते.
 
       तुम्ही ही सेटिंग बंद केल्यास किंवा मूल्य सेट न केल्यास, Google शोध मधील सुरक्षितशोध आणि YouTube मधील प्रतिबंधित मोडची अंमलबजावणी केली जात नाही.</translation>
+<translation id="1352174694615491349">क्लायंट सर्टिफिकेट वापरात असतात तेव्हा हे धोरण HTTP/2 कनेक्शन एकत्र करण्याची परवानगी देते. संभाव्य नवीन कनेक्शनचे होस्ट नाव आणि सध्या सुरू असलेल्या कनेक्शनचे होस्ट नाव अशा दोहोंना क्रमाने एकत्र आणण्यासाठी या धोरणाद्वारे वर्णन केल्यानुसार एक किंवा त्यापेक्षा अधिक जुळणी होणे आवश्यक आहे. हे धोरण म्हणजे URLब्लॅकलिस्ट फिल्टर प्रकाराचा वापर करणाऱ्या होस्टची एक सूची आहे: "example.com"ची "example.com"बरोबर आणि सर्व सबडोमेन (उदाहरणार्थ. "sub.example.com") बरोबर जुळणी झाली पाहिजे , तर ".example.net"ची अचूकपणे "example.net" सोबत जुळणी झाली पाहिजे.
+
+      अनेक कनेक्शनमधून विविध होस्टची विनंती एकत्र करण्यासाठी क्लायंटची सर्टिफिकेट वापरल्यास सुरक्षितता आणि गोपनीयता समस्या निर्माण होऊ शकतात, जरी वापरकर्त्याने अधिकृतपणे सुस्पष्ट केलेले नसले, तरीही सभोवतालची अथॉरिटी सर्व विनंत्यांना सांगितली जाईल, हे धोरण तात्पुरते आहे आणि भविष्याकाळात ते काढून टाकले जाईल. https://crbug.com/855690 पाहा.
+
+      जर हे धोरण जर सेट केले गेले नाही तर डीफॉल्ट वर्तन कोणत्याही HTTP/2 कनेक्शन, क्लायंट सर्टिफिकेट वापरून कनेक्शनच्या एकत्रिकरणाला परवानगी देणार नाही.</translation>
 <translation id="1353966721814789986">स्टार्टअप पेज</translation>
 <translation id="1354452738176731363">हे धोरण असत्य वर सेट केलेले असते, तेव्हा वापरकर्ता लॉग इन असताना डीव्हाइसवर ऑडिओ आउटपुट उपलब्ध नसेल.
  हे धोरण ऑडिओ आउटपुटच्या सर्व प्रकारांना प्रभावित करते आणि फक्त अंगभूत स्पीकरवर नाही. ऑडिओ अॅक्सेसिबिलिटी वैशिष्ट्यांवर देखील या धोरणाद्वारे अडथळा आणला जातो. वापरकर्त्यास स्क्रीनरीडर आवश्यक असल्यास हे धोरण चालू करू नका.
@@ -210,6 +227,7 @@
 <translation id="1583248206450240930">डीफॉल्टनुसार <ph name="PRODUCT_FRAME_NAME" /> वापरा</translation>
 <translation id="1599424828227887013">Android डिव्हाइसवर निर्दिष्ट ओरिजिनसाठी साइट आयसोलेशन सुरू करा</translation>
 <translation id="1608755754295374538">सूचनेशिवाय ऑडिओ कॅप्चर डिव्हाइसेसवर प्रवेश मंजूर करणार असलेल्या URL</translation>
+<translation id="1615221548356595305">क्लायंट सर्टिफिकेट वापरली असली तरीही या होस्टसाठी HTTP/2 कनेक्शन एकत्र करण्याची परवानगी द्या</translation>
 <translation id="1617235075406854669">ब्राउझर आणि डाउनलोड इतिहास हटविणे सक्षम करा</translation>
 <translation id="163200210584085447">या सूचीमधील नमुने विनंती करणार्‍या URLच्या मूळ सुरक्षिततेशी जुळवले जातील.  जुळणी आढळल्यास, 
 SAML लॉगिन पृष्ठावर व्हिडिओ कॅप्चर डिव्हाइसेसवर प्रवेश करणे मंजूर केले जाईल. जुळणी न आढळल्यास, प्रवेश स्वयंचलितपणे नाकारला जाईल. वाइल्डकार्ड नमुन्यांना अनुमती नाही.</translation>
@@ -1331,7 +1349,6 @@
       हे धोरण सेट न केल्यास, URL-keyed अॅनोनिमाइझ केलेल्या डेटा संकलन सुरू केले जाईल परंतु वापरकर्ता ते बदलू शकेल.</translation>
 <translation id="4250680216510889253">नाही</translation>
 <translation id="4261820385751181068">डिव्हाइस साइन-इन स्क्रीन लोकॅल</translation>
-<translation id="4264607809747169568">ChromeOS उपलब्धतेसाठी नेटवर्क फाइल शेअर नियंत्रित करते</translation>
 <translation id="427220754384423013">वापरकर्ता कोणते प्रिंटर वापरू शकतो हे निर्दिष्ट करतो.
 
       केवळ <ph name="BULK_PRINTERS_ACCESS_MODE" /> साठी <ph name="PRINTERS_WHITELIST" /> निवडलेली असल्यासच हे धोरण वापरले जाते.
@@ -1509,6 +1526,7 @@
       हे धोरण सुरू केल्यास, साइटना एकाच वेळी नवीन विंडो/टॅब नेव्हिगेट करू दिले जाईल आणि उघडू दिले जाईल.
       हे धोरण बंद केल्यास, साइटना एकाच वेळी नवीन विंडो/टॅब नेव्हिगेट करू दिले जाणार नाही आणि उघडू दिले जाणार नाही.</translation>
 <translation id="4680961954980851756">AutoFill सक्षम करा </translation>
+<translation id="4703402283970867140">स्क्रीन अस्पष्ट होईपर्यंत वेळ वाढवण्यासाठी स्मार्ट डीम मॉडेल सुरू करा</translation>
 <translation id="4722122254122249791">निर्दिष्ट केलेल्या ओरिजिनसाठी साइट आयसोलेशन सुरू करा</translation>
 <translation id="4722399051042571387">असत्य असल्यास, कमकुवत आणि सहजपणे अंदाज घेता येणारे पिन सेट करण्‍यात वापरकर्ते अक्षम असतील.
 
@@ -1756,13 +1774,6 @@
 
           हे धोरण सेट न केल्यास 'सूचना विचारा' वापरण्‍यात येईल आणि वापरकर्ता ते बदलण्‍यास सक्षम असेल.</translation>
 <translation id="538108065117008131">पुढील सामग्री प्रकार हाताळण्यास <ph name="PRODUCT_FRAME_NAME" /> ला परवानगी द्या.</translation>
-<translation id="5391363090783552279">जर हे धोरण सत्य म्हणून सेट केले असेल तर, <ph name="PRODUCT_NAME" /> केवळ RFC1918/RFC4913 खाजगी अॅड्रेसवरच नाही, तर सर्वच आयपी अॅड्रेसवरील कास्‍ट डिव्‍हाइसशी कनेक्ट होईल.
-
-          जर हे धोरण असत्य म्हणून सेट केले असेल तर, <ph name="PRODUCT_NAME" /> केवळ RFC1918/RFC4913 खाजगी अॅड्रेसवरील कास्‍ट डिव्‍हाइसशी कनेक्ट होईल.
-
-          जर हे धोरण सेट केले नसेल तर, जोपर्यंत CastAllowAllIPs सुरू केले जाणार नाही तोपर्यंत <ph name="PRODUCT_NAME" /> केवळ RFC1918/RFC4913 खाजगी अॅड्रेसवरील कास्‍ट डिव्‍हाइसशी कनेक्ट होईल.
-
-          जर "EnableMediaRouter" धोरण असत्य म्हणून सेट केले असेल तर, या धोरणाच्या मूल्यावर कोणताही परिणाम होणार नाही.</translation>
 <translation id="5392172595902933844">Android च्या स्थितीविषयी माहिती परत सर्व्हरकडे पाठविली जाते.
 
       धोरण असत्य वर सेट केल्यास किंवा अनसेट केलेले ठेवल्‍यास, कोणत्याही स्थिती माहितीचा अहवाल दिला जात नाही.
@@ -2381,6 +2392,9 @@
 <translation id="6943577887654905793">Mac/Linux प्राधान्य नाव:</translation>
 <translation id="69525503251220566">डीफॉल्ट शोध प्रदात्याकरिता प्रतिमे-नुसार-शोध प्रदान करणारा प्राचल</translation>
 <translation id="6956272732789158625">कोणत्याही साइटला की निर्मिती वापरण्याची अनुमती देऊ नका</translation>
+<translation id="6965859329738616662">स्मार्ट डीम मॉडेलला स्क्रीन मंद होईपर्यंत वेळ वाढवण्याची अनुमती आहे की नाही हे निर्देशित करते. 
+      जेव्हा स्क्रीन मंद होत असते तेव्हा स्क्रीन मंद करण्यासाठी विलंब लावणे आवश्यक आहे का याचे स्मार्ट डीम मॉडेल गुणांकन करते. जर स्मार्ट डीम मॉडेलने स्क्रीन मंद करण्यासाठी विलंब लावला तर स्क्रीन मंद होईपर्यंत वेळ प्रभावीपणे वाढवली जाते. या प्रकरणात, स्क्रीन ऑफ, स्क्रीन लॉक आणि निष्क्रिय होण्यास लागणारा विलंब हा मूळत: कॉन्फिगर केल्याप्रमाणे स्क्रीन मंद होण्याच्या विलंबापासूनचे समान अंतर कायम ठेवण्यासाठी अॅडजस्ट केला जातो.
+      जर हे धोरण सत्य वर सेट असेल किंवा सेट केलेले नसेल तर स्मार्ट डीम मॉडेल सुरू होईल आणि स्क्रीन मंद होईपर्यंत वेळ वाढवण्यासाठी परवानगी देईल. हे धोरण असत्यवर सेट केलेले असेल तर स्मार्ट डीम मॉडेल स्क्रीन मंद होण्यावर प्रभाव होणार नाही.</translation>
 <translation id="6982028490425791294">
       हे धोरण सत्यवर सेट केल्यास, Google सेवांवरून (उदा. Google Meet) कार्यक्रम नोंदी संग्रहित करण्याची आणि त्या नोंदी Google वर अपलोड करण्याची <ph name="PRODUCT_NAME" /> ला अनुमती आहे.
 
@@ -2865,6 +2879,11 @@
 
      तुम्ही ही सेटिंग बंद केल्यास, बुकमार्क जोडले, काढले किंवा सुधारित केले जाऊ शकत नाहीत. विद्यमान असलेले बुकमार्क अद्याप उपलब्ध आहेत.</translation>
 <translation id="802147957407376460">स्क्रीन 0 अंश फिरवा</translation>
+<translation id="8033913082323846868">हे धोरण M70 मध्ये कालबाह्य झाले, याऐवजी AutofillAddressEnabled आणि AutofillCreditCardEnabled वापरा.
+
+<ph name="PRODUCT_NAME" /> चे ऑटोफिल वैशिष्ट्य सुरू करा आणि वापरकर्त्यांना पत्ता किंवा क्रेडिट कार्डाची माहिती यासारखी आधी स्टोर केलेली माहिती वापरून वेब फॉर्म ऑटोद्वारे पूर्ण करण्याची परवानगी द्या.
+जर तुम्ही ही सेटिंग्ज बंद केली, तर वापरकर्त्यांना  ऑटोफिल अॅक्सेस करता येणार नाही.
+जर तुम्ही ही सेटिंग्ज सुरू केली किंवा मूल्य सेट केले नाहीत तर ऑटोफिल वापरकर्त्यांच्या नियंत्रणात राहील. यामुळे त्यांना ऑटोफिल प्रोफाइल कॉन्फिगर करता येईल आणि स्वतःच्या विवेकबुद्धीने ऑटोफिल सुरू किंवा बंद करता येईल.</translation>
 <translation id="8044493735196713914">डिव्हाइस बूट मोडचा अहवाल द्या</translation>
 <translation id="8050080920415773384">मुळ प्रिंट</translation>
 <translation id="8059164285174960932">URL जिथे दूरस्थ प्रवेश क्लायंटनी त्यांचे प्रमाणीकरण टोकन मिळवावे</translation>
@@ -3217,6 +3236,17 @@
 
       हे धोरण सेट केले नसल्यास, <ph name="PRINTERS_ALLOW_ALL" /> गृहित धरले जाते.
       </translation>
+<translation id="8938932171964587769">M69 मध्ये कालबाह्य झाले. याऐवजी OverrideSecurityRestrictionsOnInsecureOrigin वापरा.
+
+धोरण मूळची सूची (URL) किंवा होस्ट नाव नमूने (जसे की  "*.example.com") निर्दिष्ट करते ज्यासाठी असुरक्षित मूळांवरील सुरक्षितता प्रतिबंध लागू होणार नाहीत.
+ 
+TLSचे उपाययोजन करू शकत नाही, अशा परंपरागत अॅप्लिकेशनसाठी व्हाइलिस्ट मूळ सेट करता यावी म्हणून संस्थांना परवानगी देण्याचा किंवा अंतर्गत वेब डेव्हलपमेंटसाठी स्टेजिंग सर्व्हर सेट करण्याचा हेतू आहे, यामुळे त्यांचे डेव्हलपर TLSच्या स्टेजिंग सर्व्हरवरील उपाययोजनांशिवाय आवश्यक असलेल्या संदर्भाचे संरक्षण करण्यासाठी वैशिष्ट्ये वापरून पाहू शकतील. याशिवाय धोरणे ओमनीबॉक्समध्ये "सुरक्षित नाही" हे लेबल मूळाला लागू नये म्हणून प्रतिबंध करेल.
+
+या धोरणामध्ये URLची सूची सेट करणे आणि '--unsafely-treat-insecure-origin-as-secure' अशा कमांडच्या धर्तीवरील फ्लॅग यांचा समान URL च्या स्वल्पविराम वेगळे असलेल्या सूचीसाठीचा परिणाम समान आहे. जर धोरण सेट असेल तर कमांड-लाइन फ्लॅगकडे दुर्लक्ष करता येईल.
+हे धोरण M69 मध्ये OverrideSecurityRestrictionsOnInsecureOrigin च्या नावाने 
+कालबाह्य झाले. जर दोन्ही धोरणे उपस्थित असतील तर OverrideSecurityRestrictionsOnInsecureOrigin मुळे या धोरणाकडे दुर्लक्ष केले जाईल. 
+सुरक्षिततेच्या आशयाबद्दल अधिक माहितीसाठी https://www.w3.org/TR/secure-contexts/ पाहा
+      </translation>
 <translation id="8942616385591203339">हे धोरण वापरकर्त्याला पहिल्या साइन-इनदरम्यान सिंक संमती दाखवली जाऊ शकते का ते नियंत्रित करते. वापरकर्त्यासाठी सिंक संमतीची कधीही गरज नसल्यास ते असत्यवर सेट केले पाहिजे.
       असत्यवर सेट केलेले असल्यास, सिंक संमती दाखवली जाणार नाही.
       सत्यवर सेट केलेले असल्यास किंवा सेट न केलेले असल्यास, सिंक संमती दाखवली जाऊ शकते.</translation>
diff --git a/components/policy/resources/policy_templates_ms.xtb b/components/policy/resources/policy_templates_ms.xtb
index e987310..e04d56d7 100644
--- a/components/policy/resources/policy_templates_ms.xtb
+++ b/components/policy/resources/policy_templates_ms.xtb
@@ -33,6 +33,30 @@
           Jika tetapan ini dilumpuhkan atau tidak dikonfigurasi, hos bantuan jauh akan dijalankan dalam konteks pengguna dan pengguna jauh tidak boleh berinteraksi dengan tetingkap ternaik pada desktop.</translation>
 <translation id="1096105751829466145">Pembekal carian lalai</translation>
 <translation id="1099282607296956954">Dayakan Pengasingan Tapak untuk setiap tapak</translation>
+<translation id="1100570158310952027">
+      Dasar ini menentukan senarai asalan (URL) atau corak nama hos (seperti
+      "*.contoh.com") yang baginya sekatan keselamatan terhadap
+      asalan yang tidak selamat tidak dikenakan.
+
+      Tujuannya adalah untuk membenarkan organisasi menetapkan asalan
+      senarai putih bagi aplikasi lama yang tidak dapat mengerah tugas TLS
+      atau menyediakan pelayan pemeringkatan untuk pembangunan web
+      dalaman agar pembangunnya boleh menguji ciri yang memerlukan
+      konteks selamat tanpa perlu mengerah tugas TLS pada pelayan.
+      pemeringkatan. Dasar ini juga menghalang asalan daripada dilabelkan
+      sebagai "Tidak Selamat" dalam kotak omni.
+
+      Menetapkan senarai URL dalam dasar ini mempunyai kesan yang
+      sama seperti menetapkan bendera baris perintah
+      '--unsafely-treat-insecure-origin-as-secure' kepada senarai dipisahkan
+      koma bagi URL yang sama. Jika dasar ini ditetapkan,
+      dasar ini akan mengatasi bendera baris perintah.
+
+      Dasar ini akan mengatasi UnsafelyTreatInsecureOriginAsSecure, jika ada.
+
+      Untuk mendapatkan maklumat lanjut tentang konteks selamat, lihat
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Pengendali protokol yang ditetapkan melalui dasar ini tidak digunakan semasa mengendalikan niat Android.</translation>
 <translation id="1118093128235245168">Benarkan tapak meminta pengguna memberikan akses kepada peranti USB yang disambungkan</translation>
 <translation id="1128903365609589950">Mengkonfigurasi direktori yang akan digunakan oleh <ph name="PRODUCT_NAME" /> untuk menyimpan fail cache pada cakera.
@@ -80,6 +104,8 @@
       Jika dasar ini tidak ditetapkan atau ditetapkan kepada palsu, maka suit sifer RC4 dalam TLS tidak akan didayakan. Jika tidak, dasar mungkin ditetapkan kepada benar untuk mengekalkan keserasian dengan pelayan yang sudah lapuk. Ini adalah langkah sementara dan pelayan harus dikonfigurasi semula.</translation>
 <translation id="1297182715641689552">Gunakan skrip proksi .pac</translation>
 <translation id="1304973015437969093">ID Sambungan/Apl dan URL kemas kini untuk dipasang secara senyap</translation>
+<translation id="1307454923744766368">Asalan atau corak nama hos yang baginya sekatan
+      terhadap asalan yang tidak selamat tidak dikenakan</translation>
 <translation id="1313457536529613143">Menentukan peratusan yang akan digunakan untuk menskala kelewatan pemalapan skrin apabila aktiviti pengguna diperhatikan semasa skrin dimalapkan atau tidak lama selepas skrin telah dimatikan. 
 
           Jika dasar ini ditetapkan, dasar ini menetapkan peratusan yang akan menskalakan kelewatan pemalapan skrin apabila aktiviti pengguna diperhatikan semasa skrin dimalapkan atau tidak lama selepas skrin telah dimatikan. Apabila kelewatan pemalapan diskalakan, kelewatan matikan skrin, kunci skrin dan melahu akan dilaraskan untuk mengekalkan jarak yang sama dari kelewatan pemalapan skrin seperti konfigurasi asal.
@@ -91,6 +117,11 @@
 <translation id="1327466551276625742">Dayakan gesaan konfigurasi rangkaian apabila di luar talian</translation>
 <translation id="1330145147221172764">Dayakan papan kekunci pada skrin</translation>
 <translation id="13356285923490863">Nama Dasar</translation>
+<translation id="1352174694615491349">Dasar ini membenarkan sambungan HTTP/2 bertaut apabila sijil pelanggan sedang digunakan. Untuk bertaut, nama hos bakal sambungan baharu dan juga nama hos sambungan yang sedia ada mesti sepadan dengan satu atau beberapa corak yang dihuraikan oleh dasar ini. Dasar ini ialah senarai hos yang menggunakan format penapis URLBlacklist: "contoh.com" sepadan dengan "contoh.com" dan semua subdomain (mis. "sub.contoh.com"), manakala ".contoh.net" benar-benar sepadan dengan "contoh.net".
+
+      Permintaan pertautan kepada hos yang berlainan melalui sambungan yang menggunakan sijil pelanggan boleh menimbulkan isu keselamatan dan privasi kerana keizinan ambien akan disampaikan kepada semua permintaan, walaupun pengguna tidak memberikan keizinan dengan jelas. Dasar ini bersifat sementara dan akan dialih keluar dalam keluaran yang akan datang. Lihat https://crbug.com/855690.
+
+      Jika dasar ini dibiarkan tidak ditetapkan, maka gelagat lalai yang tidak membenarkan mana-mana sambungan HTTP/2 bertaut pada sambungan yang menggunakan sijil pelanggan akan digunakan.</translation>
 <translation id="1353966721814789986">Halaman permulaan</translation>
 <translation id="1359553908012294236">Jika dasar ini ditetapkan kepada benar atau tidak dikonfigurasi, <ph name="PRODUCT_NAME" /> akan mendayakan log masuk tetamu. Log masuk tetamu merupakan profil <ph name="PRODUCT_NAME" /> yang semua tetingkapnya dalam mod inkognito.
 
@@ -184,6 +215,7 @@
 <translation id="1583248206450240930">Gunakan <ph name="PRODUCT_FRAME_NAME" /> secara lalai</translation>
 <translation id="1599424828227887013">Dayakan Pengasingan Tapak untuk asal yang ditentukan pada peranti Android</translation>
 <translation id="1608755754295374538">URL yang akan diberikan akses kepada peranti tangkapan audio tanpa gesaan</translation>
+<translation id="1615221548356595305">Benarkan pertautan sambungan HTTP/2 bagi hos ini walaupun sijil pelanggan sedang digunakan</translation>
 <translation id="1617235075406854669">Dayakan pemadaman sejarah penyemak imbas dan muat turun</translation>
 <translation id="163200210584085447">Corak dalam senarai ini akan dipadankan dengan keselamatan
       asal URL yang meminta.  Jika padanan ditemui, akses kepada peranti
@@ -1193,7 +1225,6 @@
       Jika dasar ini dibiarkan tanpa ditetapkan, pengumpulan data awanama termasuk URL akan didayakan, tetapi pengguna akan dapat menukarnya.</translation>
 <translation id="4250680216510889253">Tidak</translation>
 <translation id="4261820385751181068">Tempat peristiwa skrin log masuk peranti</translation>
-<translation id="4264607809747169568">Mengawal Perkongsian Fail Rangkaian untuk ketersediaan OS Chrome</translation>
 <translation id="427220754384423013">Menentukan pencetak yang boleh digunakan oleh pengguna.
 
       Dasar ini hanya digunakan jika <ph name="PRINTERS_WHITELIST" /> dipilih untuk <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1352,6 +1383,7 @@
       Jika dasar ini didayakan, tapak akan dibenarkan menavigasi dan membuka tetingkap/tab baharu secara serentak.
       Jika dasar ini dilumpuhkan atau tidak ditetapkan, tapak tidak dibenarkan menavigasi dan membuka tetingkap/tab baharu secara serentak.</translation>
 <translation id="4680961954980851756">Dayakan Auto Isi</translation>
+<translation id="4703402283970867140">Dayakan model pemalapan pintar untuk melanjutkan masa sehingga skrin dimalapkan</translation>
 <translation id="4722122254122249791">Dayakan Pengasingan Tapak untuk asal yang ditentukan</translation>
 <translation id="4722399051042571387">Jika palsu, pengguna tidak akan dapat menetapkan PIN yang lemah dan mudah diteka.
 
@@ -1578,13 +1610,6 @@
 
           Jika dasar ini dibiarkan tanpa ditetapkan, 'AskNotifications' akan digunakan dan pengguna akan boleh mengubahnya.</translation>
 <translation id="538108065117008131">Benarkan <ph name="PRODUCT_FRAME_NAME" /> untuk menguruskan jenis kandungan berikut.</translation>
-<translation id="5391363090783552279">Jika dasar ini ditetapkan kepada benar, <ph name="PRODUCT_NAME" /> akan menyambung ke peranti Cast pada semua alamat IP, bukan alamat peribadi RFC1918/RFC4913 semata-mata.
-
-          Jika dasar ini ditetapkan kepada palsu, <ph name="PRODUCT_NAME" /> akan menyambung ke peranti Cast pada alamat peribadi RFC1918/RFC4913 sahaja.
-
-          Jika dasar ini tidak ditetapkan, <ph name="PRODUCT_NAME" /> akan menyambung ke peranti Cast pada alamat peribadi RFC1918/RFC4913 sahaja, melainkan ciri CastAllowAllIPs didayakan.
-
-          Jika dasar "EnableMediaRouter" ditetapkan kepada palsu, maka nilai dasar ini tidak memberikan sebarang kesan.</translation>
 <translation id="5392172595902933844">Maklumat tentang status Android dihantar kembali ke
       pelayan.
 
@@ -2156,6 +2181,10 @@
 <translation id="6943577887654905793">Nama keutamaan Mac/Linux:</translation>
 <translation id="69525503251220566">Parameter yang menyediakan ciri cari melalui imej untuk penyedia carian lalai</translation>
 <translation id="6956272732789158625">Jangan benarkan mana-mana tapak untuk menggunakan penghasilan kunci</translation>
+<translation id="6965859329738616662">Menentukan sama ada model pemalapan pintar dibenarkan untuk melanjutkan masa sehingga skrin dimalapkan.
+
+      Apabila skrin hendak dimalapkan, model pemalapan pintar akan menilai sama ada pemalapan skrin harus ditunda. Jika model pemalapan pintar menunda pemalapan skrin, model itu melanjutkan masa sehingga skrin dimalapkan. Dalam kes ini, skrin dimatikan, kunci skrin dan kelengahan melahu dilaraskan untuk mengekalkan jarak yang sama dari kelengahan pemalapan skrin seperti yang dikonfigurasi pada asalnya.
+      Jika dasar ini ditetapkan kepada Benar atau dibiarkan tidak ditetapkan, model pemalapan pintar akan didayakan dan dibenarkan melanjutkan masa sehingga skrin dimalapkan. Jika dasar ini ditetapkan kepada Palsu, model pemalapan pintar tidak akan mempengaruhi pemalapan skrin.</translation>
 <translation id="6982028490425791294">
       Jika dasar ditetapkan kepada benar, <ph name="PRODUCT_NAME" /> dibenarkan mengumpulkan log peristiwa WebRTC daripada perkhidmatan Google (mis. Google Meet) dan memuat naik log tersebut ke Google.
 
@@ -2608,6 +2637,13 @@
 <translation id="7980227303582973781">Tiada sekatan khas</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Putar skrin 0 darjah</translation>
+<translation id="8033913082323846868">Dasar ini dimansuhkan dalam M70. Sebagai ganti, sila gunakan AutofillAddressEnabled dan AutofillCreditCardEnabled.
+
+      Mendayakan ciri Autolengkap <ph name="PRODUCT_NAME" /> dan membolehkan pengguna melengkapkan borang web secara automatik dengan menggunakan maklumat yang disimpan sebelum ini seperti alamat atau maklumat kad kredit.
+
+      Jika anda melumpuhkan tetapan ini, Autolengkap tidak akan dapat diakses oleh pengguna.
+
+      Jika anda mendayakan tetapan ini atau tidak menetapkan nilai, Autolengkap akan kekal di bawah kawalan pengguna. Perkara ini akan membenarkan mereka mengkonfigurasi profil Autolengkap dan menghidupkan atau mematikan Autolengkap mengikut budi bicara mereka sendiri.</translation>
 <translation id="8044493735196713914">Laporkan mod but peranti</translation>
 <translation id="8050080920415773384">Pencetakan Natif</translation>
 <translation id="8059164285174960932">URL di mana pelanggan akses jauh harus mendapatkan token pengesahan mereka</translation>
@@ -2941,6 +2977,35 @@
 
       Jika dasar ini tidak ditetapkan, <ph name="PRINTERS_ALLOW_ALL" /> akan digunakan.
       </translation>
+<translation id="8938932171964587769">Dimansuhkan dalam M69. Sebagai ganti, gunakan
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Dasar ini menentukan senarai asalan (URL) atau corak nama hos
+      (seperti "*.contoh.com") yang baginya sekatan keselamatan
+      terhadap asalan yang tidak selamat tidak dikenakan.
+
+      Tujuannya adalah untuk membenarkan organisasi menetapkan asalan
+      senarai putih bagi aplikasi lama yang tidak dapat mengerah tugas TLS
+      atau menyediakan pelayan pemeringkatan untuk pembangunan web
+      dalaman agar pembangunnya boleh menguji ciri yang memerlukan
+      konteks selamat tanpa perlu mengerah tugas TLS pada pelayan
+      pemeringkatan. Dasar ini juga akan menghalang asalan daripada
+      dilabelkan sebagai "Tidak Selamat" dalam kotak omni.
+
+      Menetapkan senarai URL dalam dasar ini mempunyai kesan yang
+      sama seperti menetapkan bendera baris perintah
+      '--unsafely-treat-insecure-origin-as-secure' kepada senarai dipisahkan
+      koma bagi URL yang sama. Jika dasar ini ditetapkan,
+      dasar ini akan mengatasi bendera baris perintah.
+
+      Dasar ini dimansuhkan dalam M69 dan digantikan dengan
+      OverrideSecurityRestrictionsOnInsecureOrigin. Jika kedua-dua dasar
+      ada, OverrideSecurityRestrictionsOnInsecureOrigin akan mengatasi
+      dasar ini.
+
+      Untuk mendapatkan maklumat lanjut tentang konteks selamat, lihat
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Dasar ini mengawal sama ada Persetujuan Penyegerakan boleh ditunjukkan kepada pengguna semasa log masuk pertama. Dasar ini harus ditetapkan kepada palsu jika Persetujuan Penyegerakan tidak diperlukan untuk pengguna.
       Jika ditetapkan kepada palsu, Persetujuan Penyegerakan tidak akan dipaparkan.
       Jika ditetapkan kepada benar atau tidak ditetapkan, Persetujuan Penyegerakan boleh dipaparkan.</translation>
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 297dc13..fd22a4b 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -33,6 +33,30 @@
           Als deze instelling is uitgeschakeld of niet geconfigureerd, wordt de host voor ondersteuning op afstand uitgevoerd in de context van de gebruiker en kan de externe gebruiker geen vensters met een verhoogde bevoegdheid op de desktop gebruiken.</translation>
 <translation id="1096105751829466145">Standaardzoekprovider</translation>
 <translation id="1099282607296956954">Site-isolatie inschakelen voor elke site</translation>
+<translation id="1100570158310952027">
+      Dit beleid definieert een lijst met beginpunten (URL's) of hostnaampatronen (zoals
+      '*.example.com') waarop beveiligingsbeperkingen voor onveilige beginpunten
+      niet van toepassing zijn.
+
+      De bedoeling is organisaties toe te staan beginpunten voor verouderde
+      apps die geen TLS kunnen implementeren, op de witte lijst te zetten,
+      of een faserende server voor interne webontwikkelingen in te stellen,
+      zodat de ontwikkelaars functies die een veilige context vereisen, kunnen
+      testen zonder TLS te hoeven implementeren op de faserende
+      server. Dit beleid verhindert ook dat het beginpunt wordt aangeduid als
+      onveilig in de omnibox.
+
+      Wanneer er een lijst met URL's wordt ingesteld in dit beleid,
+      heeft dit hetzelfde effect als wanneer de opdrachtregelmarkering
+      '--unsafely-treat-insecure-origin-as-secure' wordt ingesteld
+      op een door komma's gescheiden lijst met dezelfde URL's.
+      Als het beleid is ingesteld, wordt de opdrachtregelmarkering overschreven.
+
+      Dit beleid overschrijft UnsafelyTreatInsecureOriginAsSecure, indien aanwezig.
+
+      Voor meer informatie over een veilige context ga je naar
+      https://www.w3.org/TR/secure-contexts/.
+      </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="1128903365609589950">Hiermee wordt de directory geconfigureerd die <ph name="PRODUCT_NAME" /> gebruikt om gecachte bestanden op schijf op te slaan.
@@ -79,6 +103,8 @@
       Als het beleid niet is ingesteld of is ingesteld op 'onwaar', worden de RC4-coderingssuites in TLS niet ingeschakeld. Anders kan het worden ingesteld op 'waar' om compatibiliteit met een verouderde server te behouden. Dit is een tijdelijke oplossing en de server moet opnieuw worden geconfigureerd.</translation>
 <translation id="1297182715641689552">Een PAC-script voor de proxy gebruiken</translation>
 <translation id="1304973015437969093">ID's voor extensies/apps en URL's voor updates die op de achtergrond moeten worden geïnstalleerd</translation>
+<translation id="1307454923744766368">Beginpunten of hostnaampatronen waarvoor er geen beperkingen voor
+      onveilige beginpunten zouden moeten gelden.</translation>
 <translation id="1313457536529613143">Bepaalt het percentage waarmee de dimvertraging van het scherm wordt geschaald wanneer er activiteit van de gebruiker wordt waargenomen terwijl het scherm is gedimd of kort nadat het scherm is uitgeschakeld.
 
           Als dit beleid is ingeschakeld, bepaalt het het percentage waarmee de dimvertraging van het scherm wordt geschaald wanneer er activiteit van de gebruiker wordt waargenomen terwijl het scherm is gedimd of kort nadat het scherm is uitgeschakeld. Wanneer de dimvertraging is geschaald, worden de vertragingen 'Scherm uit', 'Schermvergrendeling' en 'Inactief' aangepast om dezelfde afstand van de dimvertraging van het scherm te behouden zoals oorspronkelijk was geconfigureerd.
@@ -90,6 +116,11 @@
 <translation id="1327466551276625742">Prompt voor netwerkconfiguratie inschakelen als je offline bent</translation>
 <translation id="1330145147221172764">Schermtoetsenbord inschakelen</translation>
 <translation id="13356285923490863">Naam van beleid</translation>
+<translation id="1352174694615491349">Dit beleid staat toe dat HTTP/2-verbindingen kunnen worden samengevoegd wanneer clientcertificaten worden gebruikt. De verbindingen kunnen alleen worden samengevoegd als zowel de hostnaam van de potentiële nieuwe verbinding als de hostnaam van een bestaande verbinding overeenkomen met een of meer patronen die in dit beleid worden beschreven. Dit beleid bestaat uit een lijst van hosts die de filterindeling URLBlacklist gebruiken: 'example.com' komt overeen met 'example.com' en alle subdomeinen (zoals 'sub.example.com'), terwijl '.example.net' exact overeenkomt met 'example.net'.
+
+      Er kunnen beveiligings- of privacyproblemen ontstaan bij samenvoegingsverzoeken voor verschillende hosts via verbindingen die clientcertificaten gebruiken. De ambient authority wordt namelijk toegepast op alle verzoeken, zelfs als de gebruiker hiervoor niet rechtstreeks een machtiging voor heeft gegeven. Dit beleid is tijdelijk en wordt verwijderd in een toekomstige release. Zie https://crbug.com/855690.
+
+      Als dit beleid niet wordt ingesteld, wordt het standaardgedrag toegepast. Dit houdt in dat HTTP/2-verbindingen niet kunnen worden samengevoegd voor verbindingen die clientcertificaten gebruiken.</translation>
 <translation id="1353966721814789986">Homepage's</translation>
 <translation id="1359553908012294236">Als dit beleid is ingesteld op 'waar' of niet is geconfigureerd, schakelt <ph name="PRODUCT_NAME" /> gast-logins in. Gast-logins zijn profielen van <ph name="PRODUCT_NAME" /> waarbij alle vensters in de incognitomodus worden geopend.
 
@@ -175,6 +206,7 @@
 <translation id="1583248206450240930"><ph name="PRODUCT_FRAME_NAME" /> standaard gebruiken</translation>
 <translation id="1599424828227887013">Site-isolatie inschakelen voor gespecificeerde herkomsten op Android-apparaten</translation>
 <translation id="1608755754295374538">URL's die zonder prompt toegang krijgen tot apparaten voor het vastleggen van audio</translation>
+<translation id="1615221548356595305">Toestaan dat HTTP/2-verbindingen voor deze hosts kunnen worden samengevoegd, zelfs als clientcertificaten worden gebruikt</translation>
 <translation id="1617235075406854669">Verwijderen van browser- en downloadgeschiedenis inschakelen</translation>
 <translation id="163200210584085447">Patronen in deze lijst worden vergeleken met de
       beveiligingsoorsprong van de aanvragende URL. Als een overeenkomst
@@ -1180,7 +1212,6 @@
       Als dit beleid niet wordt ingesteld, worden aan URL's gekoppelde, geanonimiseerde gegevens verzameld, maar kan de gebruiker dit wijzigen.</translation>
 <translation id="4250680216510889253">Nee</translation>
 <translation id="4261820385751181068">Taal voor inlogscherm van apparaat</translation>
-<translation id="4264607809747169568">Beheert Network File Shares voor Chrome OS-beschikbaarheid</translation>
 <translation id="427220754384423013">Hiermee worden de printers gespecificeerd die een gebruiker kan gebruiken.
 
       Dit beleid wordt alleen gebruikt als <ph name="PRINTERS_WHITELIST" /> is gekozen voor <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1339,6 +1370,7 @@
       Als je dit beleid inschakelt, kunnen sites tegelijkertijd navigeren en nieuwe vensters/tabbladen openen.
       Als dit beleid is uitgeschakeld of niet is ingesteld, kunnen sites niet tegelijkertijd navigeren en nieuwe vensters/tabbladen openen.</translation>
 <translation id="4680961954980851756">Automatisch aanvullen inschakelen</translation>
+<translation id="4703402283970867140">Slim dimmodel inschakelen, zodat het langer duurt tot het scherm wordt gedimd</translation>
 <translation id="4722122254122249791">Site-isolatie inschakelen voor gespecificeerde herkomsten</translation>
 <translation id="4722399051042571387">Als dit is ingesteld op 'false' (onwaar), kunnen gebruikers geen pincodes instellen die als zwak worden beschouwd en gemakkelijk kunnen worden geraden.
 
@@ -1564,13 +1596,6 @@
 
           Als dit beleid niet wordt ingesteld, wordt 'AskNotifications' gebruikt en kan de gebruiker dit aanpassen.</translation>
 <translation id="538108065117008131"><ph name="PRODUCT_FRAME_NAME" /> toestaan de volgende soorten content te verwerken.</translation>
-<translation id="5391363090783552279">Als dit beleid is ingesteld op true (waar), maakt <ph name="PRODUCT_NAME" /> verbinding met Cast-apparaten op alle IP-adressen en niet alleen op RFC1918/RFC4913-privéadressen.
-
-          Als dit beleid is ingesteld op false (onwaar), maakt <ph name="PRODUCT_NAME" /> alleen verbinding met Cast-apparaten op RFC1918/RFC4913-privéadressen.
-
-          Als dit beleid niet is ingesteld, maakt <ph name="PRODUCT_NAME" /> alleen verbinding met Cast-apparaten op RFC1918/RFC4913-privéadressen, tenzij de functie CastAllowAllIPs is ingeschakeld.
-
-          Als het beleid EnableMediaRouter is ingesteld op false (onwaar), heeft de waarde van dit beleid geen effect.</translation>
 <translation id="5392172595902933844">Informatie over de status van Android wordt teruggestuurd naar de
       server.
 
@@ -2134,6 +2159,10 @@
 <translation id="6943577887654905793">Voorkeursnaam voor Mac/Linux:</translation>
 <translation id="69525503251220566">Parameter die een functie voor zoeken op afbeelding levert voor de standaardzoekprovider</translation>
 <translation id="6956272732789158625">Sites niet toestaan sleutels te genereren</translation>
+<translation id="6965859329738616662">Bepaalt of een slim dimmodel ervoor mag zorgen dat het langer duurt tot het scherm wordt gedimd.
+
+      Wanneer het scherm bijna wordt gedimd, evalueert het slimme dimmodel of het dimmen moet worden uitgesteld, waardoor het langer duurt tot het scherm wordt gedimd. In dit geval worden de vertragingen aangepast voordat het scherm wordt uitgeschakeld, wordt vergrendeld of inactief wordt, zodat de tijden vanaf het moment dat het scherm wordt gedimd, zo blijven zoals oorspronkelijk is ingesteld.
+      Als dit beleid wordt ingesteld op 'waar' of niet wordt ingesteld, wordt het slimme dimmodel ingeschakeld, zodat het langer duurt voordat het scherm wordt gedimd. Als dit beleid wordt ingesteld op 'onwaar', heeft het slimme dimmodel geen invloed op het dimmen van het scherm.</translation>
 <translation id="6982028490425791294">
       Als het beleid is ingesteld op 'true' (waar), mag <ph name="PRODUCT_NAME" /> WebRTC-gebeurtenislogboeken van Google-services (zoals Google Meet) verzamelen en die logboeken uploaden naar Google.
 
@@ -2578,6 +2607,13 @@
 <translation id="7980227303582973781">Geen speciale beperkingen</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Scherm 0 graden draaien</translation>
+<translation id="8033913082323846868">Dit beleid is beëindigd in M70. Gebruik in plaats hiervan AutofillAddressEnabled en AutofillCreditCardEnabled.
+
+      Hiermee wordt de functie 'Automatisch aanvullen' van <ph name="PRODUCT_NAME" /> ingeschakeld en wordt gebruikers toegestaan webformulieren automatisch in te vullen met eerder opgeslagen informatie zoals adres- of creditcardgegevens.
+
+      Als je deze instelling uitschakelt, kunnen gebruikers de functie 'Automatisch aanvullen' niet gebruiken.
+
+      Als je de instelling inschakelt of geen waarde instelt, kunnen gebruikers de opties voor 'Automatisch aanvullen' zelf beheren. Zo kunnen ze profielen voor 'Automatisch aanvullen' configureren en de functie naar wens in- of uitschakelen.</translation>
 <translation id="8044493735196713914">Opstartmodus van apparaat melden</translation>
 <translation id="8050080920415773384">Systeemeigen printer</translation>
 <translation id="8059164285174960932">URL waarbij clients met externe toegang hun verificatietoken moeten ophalen</translation>
@@ -2911,6 +2947,35 @@
 
       Als dit beleid niet is ingesteld, wordt er uitgegaan van <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Beëindigd in M69. Gebruik in plaats hiervan
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Dit beleid definieert een lijst met beginpunten (URL's) of hostnaampatronen
+      (zoals '*.example.com') waarop beveiligingsbeperkingen voor onveilige
+      beginpunten niet van toepassing zijn.
+
+      De bedoeling is organisaties toe te staan beginpunten voor
+      verouderde apps die geen TLS kunnen implementeren, op
+      de witte lijst te zetten, of een faserende server voor interne
+      webontwikkelingen in te stellen, zodat de ontwikkelaars functies die een
+      veilige context vereisen, kunnen testen zonder TLS te hoeven implementeren
+      op de faserende server. Dit beleid verhindert ook dat het beginpunt wordt
+      aangeduid als onveilig in de omnibox.
+
+      Wanneer er een lijst met URL's wordt ingesteld
+      in dit beleid, heeft dit hetzelfde effect als wanneer de
+      opdrachtregelmarkering '--unsafely-treat-insecure-origin-as-secure' wordt
+      ingesteld op een door komma's gescheiden lijst met dezelfde URL's. Als het
+      beleid is ingesteld, wordt de opdrachtregelmarkering overschreven.
+
+      Dit beleid is beëindigd in M69 en is vervangen door
+      OverrideSecurityRestrictionsOnInsecureOrigin. Als beide beleidsvormen
+      aanwezig zijn, overschrijft OverrideSecurityRestrictionsOnInsecureOrigin
+      dit beleid.
+
+      Voor meer informatie over een veilige context ga je naar
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Dit beleid bepaalt of er informatie over toestemming voor synchronisatie mag worden getoond aan de gebruiker wanneer deze voor het eerst inlogt. De waarde moet op 'false' (onwaar) worden ingesteld als er nooit toestemming voor synchronisatie is vereist voor de gebruiker.
       Als dit is ingesteld op 'false' (onwaar), wordt er geen informatie over toestemming voor synchronisatie weergegeven.
       Als dit is ingesteld op 'true' (waar) of als dit niet is ingesteld, kan er informatie over toestemming voor synchronisatie worden weergegeven.</translation>
diff --git a/components/policy/resources/policy_templates_no.xtb b/components/policy/resources/policy_templates_no.xtb
index 708e45e5..1f2a0a1 100644
--- a/components/policy/resources/policy_templates_no.xtb
+++ b/components/policy/resources/policy_templates_no.xtb
@@ -33,6 +33,17 @@
           Hvis denne innstillingen er slått av eller ikke er angitt, kjøres verten for fjernhjelp i brukerens kontekst. Eksterne brukere kan i så fall ikke kommunisere via uthevede vinduer på skrivebordet.</translation>
 <translation id="1096105751829466145">Standard søkeleverandør</translation>
 <translation id="1099282607296956954">Slå på nettstedsisolering for alle nettsteder</translation>
+<translation id="1100570158310952027">
+      Denne regelen spesifiserer en liste med opprinnelser (nettadresser) eller mønstre for vertsnavn (for eksempel «*.example.com») der sikkerhetsbegrensninger for usikre opprinnelser ikke gjelder.
+
+Hensikten er å la organisasjoner godkjenne opprinnelser for eldre versjoner av programmer som ikke kan implementere TLS, eller å konfigurere en testtjener for intern nettutvikling, slik at utviklerne kan teste ut funksjoner som krever sikre kontekster uten å måtte implementere TLS på testtjeneren. Denne regelen hindrer også opprinnelsen fra å merkes som «Ikke sikker» i multifunksjonsfeltet.
+
+Når en liste med nettadresser angis i denne regelen, har det samme effekt som å angi kommandolinjeflagget «--unsafely-treat-unsecure-origin-as-secure» til en kommadelt liste med de samme nettadressene. Hvis regelen er angitt, overstyrer den kommandolinjeflagget.
+
+Denne regelen overstyrer UnsafelyTreatInsecureOriginAsSecure, hvis den regelen er til stede.
+
+For mer informasjon om sikkert innhold, se https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Protokollbehandlere som angis via denne regelen, brukes ikke når Android-intensjoner behandles.</translation>
 <translation id="1118093128235245168">La nettsteder be brukeren om tilgang til tilkoblede USB-enheter</translation>
 <translation id="1128903365609589950">Konfigurerer katalogen som <ph name="PRODUCT_NAME" /> skal bruke for å lagre bufrede filer på disken.
@@ -80,6 +91,7 @@
       Hvis regelen ikke er angitt eller er satt til false (usann), er ikke RC4-chifferserier i TLS slått på. Ellers kan den settes til true (sann) for å sikre kompatibilitet med en utdatert tjener. Dette er en midlertidig løsning, og tjeneren bør konfigureres på nytt.</translation>
 <translation id="1297182715641689552">Bruk et .pac-skript for mellomtjener</translation>
 <translation id="1304973015437969093">ID-er for utvidelser/apper og oppdateringsnettadresser som skal installeres stille</translation>
+<translation id="1307454923744766368">Opprinnelser eller mønstre for vertsnavn der begrensninger for usikre opprinnelser ikke skal gjelde</translation>
 <translation id="1313457536529613143">Angir hvordan prosentandelen for forsinkelse av skjermdemping skaleres når brukeraktiviteten observeres mens skjermen er dempet, eller kort tid etter skjermen er slått av.
 
           Hvis denne innstillingen angis, spesifiserer den hvordan prosentandelen for forsinkelse av skjermdemping skaleres når brukeraktiviteten observeres mens skjermen dempes, eller kort tid etter skjermen er slått av. Når dempingsforsinkelsen er skalert, blir forsinkelsen for avslått, låst og inaktiv skjerm justert slik at de har samme lengde fra skjermdempingsforsinkelsen som i den opprinnelige konfigurasjonen.
@@ -91,6 +103,11 @@
 <translation id="1327466551276625742">Aktiver melding om nettverkskonfigurasjon når du er uten nett.</translation>
 <translation id="1330145147221172764">Slå på skjermtastaturet</translation>
 <translation id="13356285923490863">Navn på retningslinje</translation>
+<translation id="1352174694615491349">Denne regelen tillater sammenslåing av HTTP/2-tilkoblinger når klientsertifikater brukes. For å utføre sammenslåingen må vertsnavnet til den potensielle nye tilkoblingen og vertsnavnet til en eksisterende tilkobling samsvare med ett eller flere mønstre beskrevet i denne regelen. Regelen er en liste over verter som bruker URLBlacklist-filterformatet: «example.com» samsvarer med «example.com» og alle underdomener (f.eks. «sub.example.com»), mens «.example.net» samsvarer nøyaktig med «example.net».
+
+      Forespørsler om sammenslåing til forskjellige verter over tilkoblinger som bruker klientsertifikater, kan føre til problemer med sikkerhet og personvern, fordi den passive instansen sendes til alle forespørsler, selv om brukere ikke uttrykkelig har godkjent dette. Denne regelen er midlertidig og blir fjernet i en fremtidig utgivelse. Gå til https://crbug.com/855690.
+
+      Hvis denne regelen ikke angis, brukes standardfunksjonaliteten der sammenslåing av HTTP/2-tilkoblinger der klientsertifikater brukes, ikke tillates.</translation>
 <translation id="1353966721814789986">Oppstartsider</translation>
 <translation id="1359553908012294236">Hvis denne regelen settes til true (sann) eller ikke konfigureres, slås gjestepålogginger på i <ph name="PRODUCT_NAME" />. Gjestepålogginger er <ph name="PRODUCT_NAME" />-profiler der alle vinduene er i inkognitomodus.
 
@@ -185,6 +202,7 @@
 <translation id="1583248206450240930">Bruk <ph name="PRODUCT_FRAME_NAME" /> som standard</translation>
 <translation id="1599424828227887013">Slå på nettstedsisolering for spesifiserte opprinnelser på Android-enheter</translation>
 <translation id="1608755754295374538">Nettadresser som uten forespørsel blir gitt tilgang til enheter med lydopptak</translation>
+<translation id="1615221548356595305">Tillat sammenslåing av HTTP/2-tilkoblinger for disse vertene selv når klientsertifikater brukes</translation>
 <translation id="1617235075406854669">Gjør det mulig å slette nettleser- og nedlastingslogg</translation>
 <translation id="163200210584085447">Mønstrene på denne listen stilles opp mot sikkerhetskilden
       til nettadressen forespørselen kommer fra. Hvis det finnes samsvar, blir det gitt
@@ -1176,7 +1194,6 @@
       Hvis du ikke angir noen innstilling for denne regelen, er anonymisert datainnsamling med nettadressenøkkel aktiv, men brukeren kan endre den.</translation>
 <translation id="4250680216510889253">Nei</translation>
 <translation id="4261820385751181068">Lokalitet for påloggingsskjermen på enheten</translation>
-<translation id="4264607809747169568">Kontroller tilgjengeligheten for delte nettverksressurser for ChromeOS</translation>
 <translation id="427220754384423013">Angir skriverne som en bruker kan bruke.
 
       Denne regelen brukes bare hvis <ph name="PRINTERS_WHITELIST" /> er valgt for <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1334,6 +1351,7 @@
       Hvis denne regelen er aktivert, kan nettsteder navigere og åpne nye vinduer eller faner samtidig.
       Hvis denne regelen er deaktivert eller ikke er angitt, kan ikke nettsteder navigere og åpne nye vinduer eller faner samtidig.</translation>
 <translation id="4680961954980851756">Aktiver Autofyll</translation>
+<translation id="4703402283970867140">Slå på den smarte modellen for nedtoning for å forlenge tiden det tar før skjermen nedtones</translation>
 <translation id="4722122254122249791">Slå på nettstedsisolering for spesifiserte opprinnelser</translation>
 <translation id="4722399051042571387">Hvis denne regelen er angitt som «false» (usann), kan ikke brukerne angi PIN-koder som er svake og enkle å gjette.
 
@@ -1558,13 +1576,6 @@
 
           Hvis denne retningslinjen ikke angis, brukes AskNotification, og brukeren kan endre på dette.</translation>
 <translation id="538108065117008131">Gi <ph name="PRODUCT_FRAME_NAME" /> tillatelse til å håndtere følgende innholdstyper.</translation>
-<translation id="5391363090783552279">Hvis denne regelen angis som «true» (sann), kobles <ph name="PRODUCT_NAME" /> til Cast-enheter på alle IP-adresser, ikke bare private RFC1918/RFC4913-adresser.
-
-          Hvis denne regelen angis som «false» (usann), kobles <ph name="PRODUCT_NAME" /> bare til Cast-enheter på private RFC1918/RFC4913-adresser.
-
-          Hvis denne regelen ikke er angitt, kobles <ph name="PRODUCT_NAME" /> bare til Cast-enheter på private RFC1918/RFC4913-adresser, med mindre CastAllowAllIPs-funksjonen er aktivert.
-
-          Hvis «EnableMediaRouter»-regelen er angitt som «false» (usann), har verdien for denne regelen ingen virkning.</translation>
 <translation id="5392172595902933844">Informasjon om Android-statusen sendes tilbake til
       tjeneren.
 
@@ -2137,6 +2148,10 @@
 <translation id="6943577887654905793">Innstillingsnavn for Mac/Linux:</translation>
 <translation id="69525503251220566">Parameteret som tilbyr search-by-image-funksjonen for standardsøkemotoren</translation>
 <translation id="6956272732789158625">Ikke tillat noen nettsteder å bruke nøkkelgenerering</translation>
+<translation id="6965859329738616662">Angir om en smart modell for nedtoning kan forlenge tiden det tar før skjermen nedtones.
+
+      Like før skjermen nedtones, evaluerer den smarte modellen for nedtoning om nedtoning av skjermen bør utsettes. Hvis den smarte modellen for nedtoning utsetter nedtoning av skjermen, forlenges tiden det tar før skjermen nedtones. I dette tilfellet blir utsettelsen av avslått skjerm, låseskjerm og inaktivitet justert til å samsvare med tidsrommet fra nedtoningsutsettelsen slik det ble konfigurert opprinnelig.
+      Hvis denne regelen er angitt som «True» (sann), eller hvis den ikke er angitt, slås den smarte modellen for nedtoning på, og den kan forlenge tiden det tar før skjermen nedtones. Hvis denne regelen er angitt som «False» (usann), påvirkes ikke nedtoning av skjermen av den smarte modellen for nedtoning.</translation>
 <translation id="6982028490425791294">
       Hvis regelen er satt til sann (true), tillater <ph name="PRODUCT_NAME" /> innhenting av WebRTC-aktivitetslogger fra Google-tjenester (f.eks. Google Meet) og opplasting av disse loggene til Google.
 
@@ -2583,6 +2598,13 @@
 <translation id="7980227303582973781">Ingen spesielle begrensninger</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Rotér skjermen 0 grader</translation>
+<translation id="8033913082323846868">Denne regelen er avviklet i M70. Bruk AutofillAddressEnabled og AutofillCreditCardEnabled i stedet.
+
+      Slå på autofyllfunksjonen i <ph name="PRODUCT_NAME" />, og gjør det mulig for brukere å fylle ut nettskjemaer automatisk ved hjelp av tidligere lagret informasjon, for eksempel adresser og kredittkortinformasjon.
+
+      Hvis du slår av denne innstillingen, blir autofyll utilgjengelig for brukerne.
+
+      Hvis du slår på denne innstillingen eller ikke angir noen verdi, kan brukeren kontrollere all funksjonalitet for autofyllfunksjonen. På den måten kan vedkommende konfigurere autofyllprofiler og slå av og på autofyllfunksjonen etter eget ønske.</translation>
 <translation id="8044493735196713914">Rapportering av oppstartsmodus for enhet</translation>
 <translation id="8050080920415773384">Integrert utskrift</translation>
 <translation id="8059164285174960932">Nettadressen der klienter for ekstern tilgang skal hente autentiseringstokenet sitt fra</translation>
@@ -2910,6 +2932,18 @@
 
       Hvis regelen ikke er angitt, brukes <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Avviklet i M69. Bruk OverrideSecurityRestrictionsOnInsecureOrigin i stedet.
+
+Denne regelen spesifiserer en liste med opprinnelser (nettadresser) eller mønstre for vertsnavn (for eksempel «*.example.com») der sikkerhetsbegrensninger for usikre opprinnelser ikke gjelder.
+
+Hensikten er å la organisasjoner godkjenne opprinnelser for eldre versjoner av programmer som ikke kan implementere TLS, eller å konfigurere en testtjener for intern nettutvikling, slik at utviklerne kan teste ut funksjoner som krever sikre kontekster, uten å måtte implementere TLS på testtjeneren. Denne regelen hindrer også opprinnelsen fra å merkes som «Ikke sikker» i multifunksjonsfeltet.
+
+Når en liste med nettadresser angis i denne regelen, har det samme effekt som å angi kommandolinjeflagget «--unsafely-treat-unsecure-origin-as-secure» til en kommadelt liste med de samme nettadressene. Hvis regelen er angitt, overstyrer den kommandolinjeflagget.
+
+Denne regelen er avviklet i M69 til fordel for OverrideSecurityRestrictionsOnInsecureOrigin. Hvis begge reglene er til stede, overstyrer OverrideSecurityRestrictionsOnInsecureOrigin denne regelen.
+
+For mer informasjon om sikkert innhold, se https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Denne regelen bestemmer om samtykke for synkronisering skal vises til brukeren ved første pålogging. Den skal angis som «False» (usann) hvis samtykke for synkronisering ikke er nødvendig for denne brukeren.
       Hvis regelen er angitt som «False» (usann), vises ikke samtykke for synkronisering.
       Hvis regelen er angitt som «True» (sann) eller ikke er angitt, vises samtykke for synkronisering.</translation>
diff --git a/components/policy/resources/policy_templates_pl.xtb b/components/policy/resources/policy_templates_pl.xtb
index 0a31246..7c6f06bc 100644
--- a/components/policy/resources/policy_templates_pl.xtb
+++ b/components/policy/resources/policy_templates_pl.xtb
@@ -31,6 +31,29 @@
           Jeśli to ustawienie jest wyłączone lub nieskonfigurowane, host pomocy zdalnej będzie uruchamiany w kontekście użytkownika, a użytkownicy zdalni nie będą mieć dostępu do okien z podwyższonym poziomem uprawnień na komputerze.</translation>
 <translation id="1096105751829466145">Domyślny dostawca wyszukiwania</translation>
 <translation id="1099282607296956954">Włącz izolację każdej witryny</translation>
+<translation id="1100570158310952027">
+      Ta zasada określa listę źródeł (adresów URL) lub wzorców nazw hosta
+      (np. „*.example.com”), dla których nie będą stosowane ograniczenia
+      dotyczące niezabezpieczonych źródeł.
+
+      Ta zasada pozwala organizacjom skonfigurować białą listę źródeł dla
+      starszych aplikacji, które nie mogą używać TLS. Umożliwia też skonfigurowanie
+      wewnętrznego serwera do testowania własnych stron internetowych, by 
+      programiści mogli testować funkcje, które wymagają bezpiecznych kontekstów,
+      bez wdrażania TLS na tym serwerze. Oprócz tego zasada powoduje, że źródło
+      nie będzie oznaczane jako strona „Niezabezpieczona” w omniboksie.
+
+      Określenie listy adresów URL w tej zasadzie działa tak samo jak podanie
+      tych adresów, oddzielonych przecinkami, we fladze wiersza poleceń
+      „--unsafely-treat-insecure-origin-as-secure”. Jeśli ta zasada jest skonfigurowana,
+      zastępuje flagę wiersza poleceń.
+
+      Ta zasada zastępuje zasadę UnsafelyTreatInsecureOriginAsSecure, jeśli obie
+      są skonfigurowane.
+
+      Więcej informacji o bezpiecznych kontekstach znajdziesz na stronie
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="1117535567637097036">Moduły obsługi protokołów ustawiane przez tę zasadę nie są używane podczas obsługi intencji Androida.</translation>
 <translation id="1118093128235245168">Zezwól, by strony prosiły użytkownika o przyznanie dostępu do podłączonych urządzeń USB</translation>
 <translation id="1128903365609589950">Pozwala skonfigurować katalog, w którym przeglądarka <ph name="PRODUCT_NAME" /> będzie przechowywać na dysku urządzenia pliki z pamięci podręcznej.
@@ -78,6 +101,8 @@
       Jeśli ta zasada nie jest ustawiona lub jest wyłączona, to mechanizmy szyfrowania RC4 w TLS będą wyłączone. Można ją włączyć dla zachowania zgodności z przestarzałym serwerem. Jest to rozwiązanie tymczasowe i konieczna jest zmiana konfiguracji serwera.</translation>
 <translation id="1297182715641689552">Używaj skryptu PAC serwera proxy</translation>
 <translation id="1304973015437969093">Identyfikatory rozszerzeń/aplikacji i adresy URL aktualizacji, które mają być instalowane dyskretnie</translation>
+<translation id="1307454923744766368">Źródła lub wzorce nazw hosta, dla których nie należy stosować
+      ograniczeń dla niezabezpieczonych źródeł</translation>
 <translation id="1313457536529613143">Określa wartość procentową skalowania opóźnienia przyciemnienia ekranu, gdy aktywność użytkownika zostanie wykryta po przyciemnieniu lub wkrótce po wyłączeniu ekranu.
 
           Ustawienie tej zasady pozwala określić wartość procentową skalowania opóźnienia przyciemnienia ekranu, gdy aktywność użytkownika zostanie wykryta po przyciemnieniu lub wkrótce po wyłączeniu ekranu. Skalowanie opóźnienia przyciemnienia powoduje, że opóźnienia wyłączenia i zablokowania ekranu oraz opóźnienie bezczynności są tak dostosowywane, by zachować pierwotnie ustawione odstępy od opóźnienia przyciemnienia ekranu.
@@ -89,6 +114,11 @@
 <translation id="1327466551276625742">Włącza pytanie o konfigurację sieci wyświetlane w trybie offline</translation>
 <translation id="1330145147221172764">Włącz klawiaturę ekranową</translation>
 <translation id="13356285923490863">Nazwa zasady</translation>
+<translation id="1352174694615491349">Ta zasada zezwala na zespolenie połączeń HTTP/2, gdy używane są certyfikaty klienta. Aby połączenia zostały zespolone, nazwa hosta potencjalnego nowego połączenia i nazwa hosta istniejącego połączenia muszą pasować do co najmniej jednego wzorca ustawionego w tej zasadzie. Zasada zawiera listę hostów w formacie filtra URLBlacklist: „example.com” pasuje do „example.com” i wszystkich subdomen (np. „sub.example.com”), a „.example.net” pasuje tylko do „example.net”.
+
+      Zespalanie żądań do różnych hostów, gdy połączenia używają certyfikatów klienta, może obniżać poziom bezpieczeństwa i prywatności, ponieważ uprawnienie uzyskane z otoczenia (ambient authority) będzie przekazywane wszystkim żądaniom – również wtedy, gdy użytkownik nie dał na to wyraźnej zgody. Ta zasada jest tymczasowa i zostanie usunięta w jednej z przyszłych wersji. Zobacz https://crbug.com/855690.
+
+      Jeśli ta zasada będzie nieskonfigurowana, stosowane będzie domyślne rozwiązanie: połączenia HTTP/2, które używają certyfikatów klienta, nie będą zespalane.</translation>
 <translation id="1353966721814789986">Strony otwierane po uruchomieniu</translation>
 <translation id="1359553908012294236">Jeśli ta zasada jest włączona lub nieskonfigurowana, <ph name="PRODUCT_NAME" /> będzie umożliwiać logowanie się w trybie gościa. Dane logowania gościa to profile <ph name="PRODUCT_NAME" />, dla których wszystkie okna otwierają się w trybie incognito.
 
@@ -180,6 +210,7 @@
 <translation id="1583248206450240930">Używaj domyślnie wtyczki <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="1599424828227887013">Włącz izolację witryn z określonych źródeł na urządzeniach z Androidem</translation>
 <translation id="1608755754295374538">Adresy URL, które bez pytania otrzymają dostęp do urządzeń do nagrywania dźwięku</translation>
+<translation id="1615221548356595305">Zezwól na zespalanie połączeń HTTP/2 z wymienionymi hostami nawet wtedy, gdy używane są certyfikaty klienta</translation>
 <translation id="1617235075406854669">Włącz usuwanie historii przeglądarki i pobierania</translation>
 <translation id="163200210584085447">Wzorce na tej liście są dopasowywane do źródła zabezpieczeń adresu URL,
       z którego pochodzi żądanie. Po znalezieniu odpowiednika dostęp do urządzeń
@@ -1149,7 +1180,6 @@
       Jeśli ta zasada nie została skonfigurowana, zbieranie zanonimizowanych danych z URL-em jako kluczem będzie włączone, ale użytkownik może to zmienić.</translation>
 <translation id="4250680216510889253">Nie</translation>
 <translation id="4261820385751181068">Ustawienia regionalne na ekranie logowania na urządzeniu</translation>
-<translation id="4264607809747169568">Określa dostępność sieciowych magazynów plików w Chrome OS</translation>
 <translation id="427220754384423013">Określa drukarki, z których może korzystać użytkownik.
 
       Ta zasada jest używana tylko wtedy, gdy dla zasady <ph name="BULK_PRINTERS_ACCESS_MODE" /> wybrano ustawienie <ph name="PRINTERS_WHITELIST" />.
@@ -1300,6 +1330,7 @@
       Jeśli ta zasada zostanie włączona, strony będą mogły otwierać nowe okna/karty podczas nawigowania.
       Jeśli ta zasada zostanie wyłączona lub nie zostanie ustawiona, strony nie będą mogły otwierać nowych okien/kart podczas nawigowania.</translation>
 <translation id="4680961954980851756">Włącz autouzupełnianie</translation>
+<translation id="4703402283970867140">Włącz model inteligentnego przyciemniania, by opóźniać przyciemnienie ekranu</translation>
 <translation id="4722122254122249791">Włącz izolację witryn z określonych źródeł</translation>
 <translation id="4722399051042571387">Jeśli to ustawienie jest wyłączone, użytkownicy nie mogą ustawiać kodów PIN, które są słabe i łatwe do odgadnięcia. Słabe kody PIN to na przykład ciągi takich samych cyfr (1111), kolejnych cyfr w porządku rosnącym (1234) lub malejącym (4321) i ciągi często używane. Domyślnie po wpisaniu słabego kodu PIN nie pojawia się komunikat o błędzie, a tylko ostrzeżenie.</translation>
 <translation id="4723829699367336876">Włącz omijanie zapory sieciowej przez klienta dostępu zdalnego</translation>
@@ -1507,13 +1538,6 @@
 <translation id="5370279767682621504">Włącz obsługę HTTP/0.9 w portach innych niż domyślne</translation>
 <translation id="5378985487213287085">Umożliwia określenie, czy witryny mogą wyświetlać powiadomienia na pulpicie. Wyświetlanie powiadomień na pulpicie może być domyślnie dozwolone lub zabronione bądź użytkownikowi może być wyświetlany monit za każdym razem, gdy witryna chce wyświetlić takie powiadomienie. W przypadku nieskonfigurowania tej zasady będzie używana zasada „AskNotifications”, a użytkownik będzie mógł zmienić to ustawienie.</translation>
 <translation id="538108065117008131">Zezwalaj wtyczce <ph name="PRODUCT_FRAME_NAME" /> na obsługę następujących typów treści</translation>
-<translation id="5391363090783552279">Jeśli ta zasada ma wartość true, <ph name="PRODUCT_NAME" /> będzie się łączyć z urządzeniami przesyłającymi pod wszystkimi adresami IP, a nie tylko pod adresami prywatnymi RFC1918/RFC4913.
-
-          Jeśli ta zasada ma wartość false, <ph name="PRODUCT_NAME" /> będzie się łączyć z urządzeniami przesyłającymi tylko pod adresami prywatnymi RFC1918/RFC4913.
-
-          Jeśli ta zasada nie zostanie ustawiona, <ph name="PRODUCT_NAME" /> będzie się łączyć z urządzeniami przesyłającymi tylko pod prywatnymi adresami RFC1918/RFC4913, chyba że zostanie włączona funkcja CastAllowAllIPs.
-
-          Jeśli zasada „EnableMediaRouter” będzie mieć wartość false, wartość ustawiona dla tej zasady nie będzie miała znaczenia.</translation>
 <translation id="5392172595902933844">Informacje o stanie Androida są wysyłane z powrotem na serwer.
 
       Jeśli zasada jest wyłączona lub nieskonfigurowana, nie są wysyłane żadne informacje o stanie.
@@ -2056,6 +2080,10 @@
 <translation id="6943577887654905793">Nazwa ustawienia w systemie macOS/Linux:</translation>
 <translation id="69525503251220566">Parametr udostępniający funkcję wyszukiwania obrazem dla domyślnego dostawcy wyszukiwania</translation>
 <translation id="6956272732789158625">Nie zezwalaj na generowanie kluczy w żadnej witrynie</translation>
+<translation id="6965859329738616662">Określa, czy model inteligentnego przyciemniania może opóźniać przyciemnienie ekranu.
+
+      W momencie, gdy ekran powinien zostać przyciemniony, model inteligentnego przyciemniania ocenia, czy należy opóźnić to działanie. Jeśli model inteligentnego przyciemniania opóźni przyciemnienie, to wydłuży czas, po którym ono nastąpi, a także skoryguje czas wyłączenia ekranu, zablokowania ekranu i bezczynności, by te działania nastąpiły w takim samym odstępie czasu od przyciemnienia, jak w oryginalnej konfiguracji.
+      Jeśli ta zasada ma wartość Prawda lub jest nieskonfigurowana, model inteligentnego przyciemniania będzie włączony i będzie mógł opóźniać przyciemnienie ekranu. Jeśli zasada ma wartość Fałsz, model inteligentnego przyciemniania nie będzie zmieniać czasu przyciemnienia.</translation>
 <translation id="6982028490425791294">
       Jeśli ta zasada ma wartość Fałsz, <ph name="PRODUCT_NAME" /> może zbierać dzienniki zdarzeń WebRTC z naszych usług (np. Google Meet) i przesyłać te dane do Google.
 
@@ -2485,6 +2513,13 @@
 <translation id="7980227303582973781">Brak ograniczeń specjalnych</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Obróć ekran o 0 stopni</translation>
+<translation id="8033913082323846868">Ta zasada została wycofana w M70. Zamiast niej należy używać zasad AutofillAddressEnabled i AutofillCreditCardEnabled.
+
+      Włącza funkcję autouzupełniania w <ph name="PRODUCT_NAME" /> i umożliwia użytkownikom automatyczne wypełnianie formularzy internetowych za pomocą zapisanych wcześniej informacji, takich jak adres czy dane karty kredytowej.
+
+      Jeśli wyłączysz to ustawienie, autouzupełnianie będzie niedostępne dla użytkowników.
+
+      Jeśli ustawienie jest włączone lub nieskonfigurowane, użytkownik zachowuje kontrolę nad autouzupełnianiem. Może wówczas konfigurować profile autouzupełniania oraz włączać i wyłączać tę funkcję według własnego uznania.</translation>
 <translation id="8044493735196713914">Zgłoś tryb uruchomienia urządzenia</translation>
 <translation id="8050080920415773384">Drukowanie natywne</translation>
 <translation id="8059164285174960932">Adres URL, dla którego klienty dostępu zdalnego powinny uzyskać token uwierzytelniania</translation>
@@ -2813,6 +2848,32 @@
 
       Jeśli ta zasada nie została skonfigurowana, domyślnie stosowana jest opcja <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Wycofana w M69. Zamiast niej należy używać zasady
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+Ta zasada określa listę źródeł (adresów URL) lub wzorców nazw hosta
+      (np. „*.example.com”), dla których nie będą stosowane ograniczenia
+      dotyczące niezabezpieczonych źródeł.
+
+      Ta zasada pozwala organizacjom skonfigurować białą listę źródeł dla
+      starszych aplikacji, które nie mogą używać TLS. TLS. Umożliwia też skonfigurowanie
+      wewnętrznego serwera do testowania własnych stron internetowych, by
+      programiści mogli testować funkcje, które wymagają bezpiecznych kontekstów,
+      bez wdrażania TLS na tym serwerze. Oprócz tego zasada powoduje, że źródło
+      nie będzie oznaczane jako strona „Niezabezpieczona” w omniboksie.
+
+      Określenie listy adresów URL w tej zasadzie działa tak samo jak podanie
+      tych adresów, oddzielonych przecinkami, we fladze wiersza poleceń
+      „--unsafely-treat-insecure-origin-as-secure”. Jeśli ta zasada jest skonfigurowana,
+      zastępuje flagę wiersza poleceń.
+
+      Ta zasada została wycofana w M69. Zastępuje ją zasada
+      OverrideSecurityRestrictionsOnInsecureOrigin. Jeśli obie zasady są skonfigurowane,
+      stosowana jest wyłącznie zasada OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Więcej informacji o bezpiecznych kontekstach znajdziesz na stronie
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Ta zasada określa, czy pytanie o synchronizację jest wyświetlane podczas pierwszego logowania. Jeśli nie ma potrzeby, by użytkownicy korzystali z pytania o synchronizację, należy wybrać wartość false.
       Jeśli wybierzesz wartość false, pytanie o synchronizację nie będzie wyświetlane.
       Jeśli wybierzesz wartość true lub pozostawisz to ustawienie nieskonfigurowane, pytanie o synchronizację będzie wyświetlane.</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index fd6de24..c35fba5f7 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -33,6 +33,28 @@
           Se esta configuração for desativada ou não for configurada, o host de assistência remota será executado no contexto do usuário, e os usuários remotos não poderão interagir com janelas elevadas na área de trabalho.</translation>
 <translation id="1096105751829466145">Provedor de pesquisa padrão</translation>
 <translation id="1099282607296956954">Ativar o Isolamento de todos os sites</translation>
+<translation id="1100570158310952027">
+      A política especifica uma lista de origens (URLs) ou padrões de nome de host (como
+      "*.example.com") aos quais as restrições de segurança sobre origens não seguras
+      não se aplicam.
+
+      O objetivo é permitir que organizações coloquem origens na lista de permissões para aplicativos
+      legados que não implantam TLS, ou que elas configurem um servidor temporário para
+      o desenvolvimento interno da Web, de modo que os desenvolvedores delas possam testar recursos
+      que exigem contextos seguros sem precisar implantar TLS no servidor
+      temporário. Esta política também impedirá que a origem seja rotulada
+      como "Não segura" na omnibox.
+
+      Configurar uma lista de URLs nesta política tem o mesmo efeito que configurar a
+      sinalização de linha de comando "--unsafely-treat-insecure-origin-as-secure" para uma
+      lista com os mesmos URLs separados por vírgula. Se a política for definida, ela
+      modificará a sinalização de linha de comando.
+
+      Esta política modificará UnsafelyTreatInsecureOriginAsSecure, se estiver presente.
+
+      Para ver mais informações sobre contextos seguros, acesse
+      https://www.w3.org/TR/secure-contexts/.
+      </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="1128903365609589950">Configura o diretório que o <ph name="PRODUCT_NAME" /> usará para armazenar arquivos em cache no disco.
@@ -76,6 +98,8 @@
       Se a política ainda não estiver configurada ou estiver configurada como "false", os pacotes de criptografia RC4 em TLS não serão ativados. Caso contrário, ela poderá ser configurada como "true" para manter a compatibilidade com um servidor desatualizado. Esta é uma medida temporária, e o servidor deve ser reconfigurado.</translation>
 <translation id="1297182715641689552">Usar um script de proxy .pac</translation>
 <translation id="1304973015437969093">IDs de extensões//aplicativos e URLs de atualização deverão ser instalados silenciosamente</translation>
+<translation id="1307454923744766368">Origens ou padrões de nome de host aos quais as restrições sobre
+      origens não seguras não se aplicam</translation>
 <translation id="1313457536529613143">Especifica o percentual pelo qual calcular o intervalo de escurecimento da tela quando é observada atividade do usuário enquanto a tela está esmaecida ou logo após a tela ser desligada.
 
           Se esta política for definida, especificará o percentual pelo qual calcular o intervalo de escurecimento da tela quando é observada atividade do usuário enquanto a tela está esmaecida ou logo após a tela ser desligada. Quando o intervalo de escurecimento é calculado, o desligamento, o bloqueio da tela e os intervalos de inatividade são ajustados para manter as mesmas distâncias do intervalo de escurecimento da configuração original.
@@ -87,6 +111,11 @@
 <translation id="1327466551276625742">Ativar prompt de configuração de rede quando estiver off-line</translation>
 <translation id="1330145147221172764">Ativar o teclado na tela</translation>
 <translation id="13356285923490863">Nome da política</translation>
+<translation id="1352174694615491349">Esta política permite a união da conexão HTTP/2 quando os certificados do cliente estão em uso. Para fazer a união, o nome do host da possível nova conexão e o nome do host de uma conexão já existente precisam corresponder a um ou mais padrões descritos nesta política. A política é uma lista de hosts que utilizam o formato de filtro URLBlacklist: "example.com" corresponde a "example.com" e a todos os subdomínios (por exemplo, "sub.example.com"), enquanto ".example.net" corresponde exatamente a "example.net".
+
+      Unir solicitações a diferentes hosts em conexões que utilizam certificados do cliente pode gerar problemas de segurança e privacidade, uma vez que a autoridade do ambiente será transmitida a todas as solicitações, mesmo que o usuário não autorize essa ação de forma explícita. Esta política é temporária e será removida em uma versão futura. Acesse https://crbug.com/855690.
+
+      Se esta política não for definida, o comportamento padrão será ativado, ou seja, não permitir a união de nenhuma conexão HTTP/2 em conexões que utilizam certificados do cliente.</translation>
 <translation id="1353966721814789986">Páginas de inicialização</translation>
 <translation id="1359553908012294236">Se esta política é definida como "true" ou não é configurada, o <ph name="PRODUCT_NAME" /> ativa os logins de convidados. Os logins de convidados são perfis do <ph name="PRODUCT_NAME" /> nos quais todas as janelas ficam no modo de navegação anônima.
 
@@ -178,6 +207,7 @@
 <translation id="1583248206450240930">Usar o <ph name="PRODUCT_FRAME_NAME" /> por padrão</translation>
 <translation id="1599424828227887013">Ativa o isolamento de sites para origens específicas em dispositivos Android</translation>
 <translation id="1608755754295374538">URLs que terão acesso a dispositivos de captura de áudio sem solicitação</translation>
+<translation id="1615221548356595305">Permitir a união de conexões HTTP/2 para esses hosts mesmo quando certificados do cliente são utilizados</translation>
 <translation id="1617235075406854669">Ativar exclusão do histórico do navegador e de downloads</translation>
 <translation id="163200210584085447">Os padrões nesta lista serão comparados com a origem
       de segurança do URL solicitante. Se for encontrada uma correspondência, o acesso a dispositivos de captura
@@ -1148,7 +1178,6 @@
       Se essa política não for configurada, a coleta de dados anônimos inseridos no URL estará ativa, mas o usuário poderá alterar isso.</translation>
 <translation id="4250680216510889253">Não</translation>
 <translation id="4261820385751181068">Localidade da tela de login do dispositivo</translation>
-<translation id="4264607809747169568">Controla o Compartilhamento de arquivos de rede para disponibilidade do ChromeOS</translation>
 <translation id="427220754384423013">Especifica as impressoras que um usuário pode usar.
 
       Esta política só será usada se <ph name="PRINTERS_WHITELIST" /> for escolhida para <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1299,6 +1328,7 @@
       Se esta política estiver ativada, os sites terão permissão para navegar e abrir novas janelas/guias simultaneamente.
       Se esta política estiver desativada ou não for configurada, os sites não terão permissão para navegar e abrir uma nova janela/guia simultaneamente.</translation>
 <translation id="4680961954980851756">Ativar Preenchimento automático</translation>
+<translation id="4703402283970867140">Ativar modelo de escurecimento inteligente para aumentar o tempo que a tela permanece ativa</translation>
 <translation id="4722122254122249791">Ativar o isolamento de sites para origens específicas</translation>
 <translation id="4722399051042571387">Se definida como false, os usuários não conseguirão configurar PINs que sejam fracos e fáceis de adivinhar.
 
@@ -1509,13 +1539,6 @@
 <translation id="5370279767682621504">Ativar suporte a HTTP/0.9 em portas não padrão</translation>
 <translation id="5378985487213287085">Permite que você defina se os websites são autorizados a exibir notificações na área de trabalho. A exibição de notificações na área de trabalho pode ser autorizada ou recusada por padrão ou o usuário pode ser solicitado a autorizar todas as vezes em que um website quiser exibir notificações na área de trabalho. Se esta política for deixada sem definição, a política "AskNotifications" será utilizada, podendo ser modificada pelo usuário.</translation>
 <translation id="538108065117008131">Permitir que o <ph name="PRODUCT_FRAME_NAME" /> lide com os seguintes tipos de conteúdo.</translation>
-<translation id="5391363090783552279">Se esta política estiver definida como verdadeira, o <ph name="PRODUCT_NAME" /> fará a conexão com os dispositivos de transmissão em todos os endereços IP, não apenas nos endereços privados RFC1918/RFC4913.
-
-          Se esta política estiver definida como falsa, o <ph name="PRODUCT_NAME" /> fará a conexão com os dispositivos de transmissão somente em endereços privados RFC1918/RFC4913.
-
-          Se esta política não estiver definida, o <ph name="PRODUCT_NAME" /> fará a conexão com os dispositivos de transmissão somente em endereços privados RFC1918/RFC4913, a menos que o recurso CastAllowAllIPs esteja ativado.
-
-          Se a política EnableMediaRouter estiver definida como falsa, o valor desta política não terá nenhum efeito.</translation>
 <translation id="5392172595902933844">As informações sobre o status do Android são enviadas de volta para o
       servidor.
 
@@ -2064,6 +2087,10 @@
 <translation id="6943577887654905793">Nome de preferência Mac/Linux:</translation>
 <translation id="69525503251220566">Parâmetro que fornece recursos de pesquisa por imagem para o provedor de pesquisa padrão</translation>
 <translation id="6956272732789158625">Não permitir que nenhum site use a geração de chaves</translation>
+<translation id="6965859329738616662">Especifica se um modelo de escurecimento inteligente é permitido para aumentar o tempo que a tela permanece ativa.
+
+      Quando a tela está prestes a escurecer, o modelo de escurecimento inteligente avalia se o escurecimento deve ser adiado. Se o modelo de escurecimento inteligente adiar o escurecimento da tela, ela permanecerá ativa por mais tempo. Neste caso, os intervalos de desativação de tela, bloqueio de tela e modo ocioso são ajustados para manter as mesmas distâncias do intervalo de escurecimento de tela originalmente configuradas.
+      Se esta política for definida como Verdadeira ou não for definida, o modelo de escurecimento inteligente será ativado e permitirá o aumento do tempo que a tela fica ativa. Se esta política for definida como Falsa, o modelo de escurecimento inteligente não influenciará o escurecimento da tela.</translation>
 <translation id="6982028490425791294">
       Se a política for definida como verdadeira, o <ph name="PRODUCT_NAME" /> poderá coletar logs de eventos WebRTC dos serviços do Google (por exemplo, do Google Meet) e enviá-los para o Google.
 
@@ -2489,6 +2516,13 @@
 <translation id="7980227303582973781">Nenhuma restrição especial</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Girar tela em 0 graus</translation>
+<translation id="8033913082323846868">O uso desta política foi suspenso no M70. Em vez dela, use AutofillAddressEnabled e AutofillCreditCardEnabled.
+
+      Ativa o recurso Preenchimento automático do <ph name="PRODUCT_NAME" /> e permite que os usuários preencham formulários da Web automaticamente usando informações previamente armazenadas, como dados de endereço ou cartão de crédito.
+
+      Se desativar esta configuração, os usuários não conseguirão usar o Preenchimento automático.
+
+      Se ativar esta configuração ou não definir um valor, o Preenchimento automático continuará sob o controle do usuário. Isso permitirá que ele configure perfis de Preenchimento automático e ative ou desative esse recurso quando quiser.</translation>
 <translation id="8044493735196713914">Informar modo de inicialização do dispositivo</translation>
 <translation id="8050080920415773384">Impressão nativa</translation>
 <translation id="8059164285174960932">URL no qual clientes de acesso remoto devem receber seu token de autenticação</translation>
@@ -2807,6 +2841,33 @@
 
       Se esta política não for definida, <ph name="PRINTERS_ALLOW_ALL" /> será adotada.
       </translation>
+<translation id="8938932171964587769">Uso suspenso no M69. Em vez dela,
+      use OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      A política especifica uma lista de origens (URLs) ou padrões de nome de host (como
+      "*.example.com") aos quais as restrições de segurança sobre origens não seguras
+      não se aplicam.
+
+      O objetivo é permitir que organizações coloquem origens na lista de permissões para aplicativos
+      legados que não implantam TLS, ou que elas configurem um servidor temporário para o
+      desenvolvimento interno da Web, de modo que os desenvolvedores delas possam testar recursos
+      que exigem contextos seguros sem precisar implantar TLS no servidor
+      temporário. Esta política também impedirá que a origem seja rotulada
+      como "Não segura" na omnibox.
+
+      Definir uma lista de URLs nesta política tem o mesmo efeito que definir a
+      sinalização de linha de comando "--unsafely-treat-insecure-origin-as-secure" para uma
+      lista com os mesmos URLs separados por vírgula. Se a política for definida, ela
+      modificará a sinalização de linha de comando.
+
+      O uso desta política foi suspenso no M69 para implementar a
+      OverrideSecurityRestrictionsOnInsecureOrigin. Se as duas políticas estiverem
+      presentes, OverrideSecurityRestrictionsOnInsecureOrigin modificará esta
+      política.
+
+      Para ver mais informações sobre contextos seguros, acesse
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Esta política controla se o consentimento de sincronização pode ser exibido para o usuário durante o primeiro login. É necessário defini-la como falsa se o consentimento de sincronização nunca for necessário para o usuário.
       Se definida como falsa, o consentimento de sincronização não será exibido.
       Se definida como verdadeira ou não definida, o consentimento de sincronização poderá ser exibido.</translation>
diff --git a/components/policy/resources/policy_templates_pt-PT.xtb b/components/policy/resources/policy_templates_pt-PT.xtb
index ab384e8..cbc33ae 100644
--- a/components/policy/resources/policy_templates_pt-PT.xtb
+++ b/components/policy/resources/policy_templates_pt-PT.xtb
@@ -33,6 +33,32 @@
           Se esta definição estiver desativada ou não estiver configurada, o anfitrião de assistência remota é executado no contexto do utilizador e os utilizadores remotos não conseguem interagir com janelas de prioridade elevada no ambiente de trabalho.</translation>
 <translation id="1096105751829466145">Motor de pesquisa predefinido</translation>
 <translation id="1099282607296956954">Ativar o Isolamento do site para todos os sites.</translation>
+<translation id="1100570158310952027">
+      A política especifica uma lista de origens (URLs) ou padrões de nomes
+      de anfitrião (como "*.example.com") aos quais as restrições de
+      segurança sobre origens inseguras não serão aplicadas.
+
+      A intenção é permitir que as entidades definam origens da lista de
+      autorizações para aplicações antigas que não possam implementar
+      o TLS ou configurem um servidor experimental para programação
+      Web interna, de forma que os respetivos programadores possam
+      testar funcionalidades que requeiram contextos seguros, sem a
+      necessidade de implementar o TLS no servidor experimental. Esta
+      política também evita que a origem tenha a etiqueta "Inseguro" na
+      caixa geral.
+
+      Definir uma lista de URLs nesta política tem o mesmo efeito que
+      definir o sinalizador de linha de comandos
+      "--unsafely-treat-insecure-origin-as-secure" numa lista separada por
+      vírgulas dos mesmos URLs. Se a política estiver definida, substitui o
+      sinalizador de linha de comandos.
+
+      Esta política vai substituir UnsafelyTreatInsecureOriginAsSecure, se
+      existente.
+
+      Para obter mais informações sobre contextos seguros, consulte
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Os controladores de protocolos definidos através desta política não são utilizados no processamento de intenções do Android.</translation>
 <translation id="1118093128235245168">Permitir que os sites solicitem ao utilizador a concessão de acesso a um dispositivo USB ligado</translation>
 <translation id="1128903365609589950">Configura o diretório que o <ph name="PRODUCT_NAME" /> irá utilizar para armazenar ficheiros em cache no disco.
@@ -80,6 +106,8 @@
       Se a política não for definida ou for definida como falsa, os conjuntos de cifras RC4 no TLS não estão ativados. Caso contrário, pode ser definida como verdadeira para manter a compatibilidade com um servidor desatualizado. Esta é uma medida temporária e é necessário voltar a configurar o servidor.</translation>
 <translation id="1297182715641689552">Utilizar um script de proxy .pac</translation>
 <translation id="1304973015437969093">Instalar IDs de extensões/aplicações e URLs de atualização silenciosamente</translation>
+<translation id="1307454923744766368">Origens ou padrões de nomes de anfitrião aos quais as restrições sobre
+      origens inseguras não devem ser aplicadas</translation>
 <translation id="1313457536529613143">Especifica a percentagem que determina a escala do atraso do esbatimento do ecrã quando há atividade da parte do utilizador, enquanto o ecrã é esbatido ou pouco depois de o ecrã ter sido desligado.
 
           Se esta política estiver definida, especifica a percentagem que determina a escala do atraso do esbatimento do ecrã quando há atividade da parte do utilizador, enquanto o ecrã é esbatido ou pouco depois de o ecrã ter sido desligado. Quando se determina a escala do atraso do esbatimento, o bloqueio e a ação de desligar o ecrã e atrasos inativos são ajustados para manter as mesmas distâncias do atraso de esbatimento do ecrã, conforme foi configurado originalmente.
@@ -91,6 +119,11 @@
 <translation id="1327466551276625742">Ativar o pedido de configuração da rede quando estiver offline</translation>
 <translation id="1330145147221172764">Ativar o teclado no ecrã</translation>
 <translation id="13356285923490863">Nome da Política</translation>
+<translation id="1352174694615491349">Esta política permite a união de ligações HTTP/2 quando são utilizados certificados de cliente. Para a união, o nome de anfitrião da potencial nova ligação e o nome de anfitrião de uma ligação existente têm de corresponder a um ou mais padrões descritos por esta política. A política é uma lista de anfitriões que utilizam o formato de filtro URLBlacklist: "example.com" corresponde a "example.com" e a todos os subdomínios (por exemplo, "sub.example.com"), enquanto ".example.net" corresponde exatamente a "example.net".
+
+      A união de pedidos para diferentes anfitriões através de ligações que utilizam certificados de cliente pode criar problemas de segurança e privacidade, uma vez que a autoridade do ambiente será transmitida a todos os pedidos, mesmo que o utilizador não o tenha autorizado explicitamente. Esta política é temporária e será removida numa versão futura. Consulte https://crbug.com/855690.
+
+      Se esta política não for definida, será utilizado o comportamento predefinido de não permitir qualquer união de ligações HTTP/2 para ligações que utilizam certificados de cliente.</translation>
 <translation id="1353966721814789986">Páginas de arranque</translation>
 <translation id="1359553908012294236">Se esta política for definida como verdadeira ou não for configurada, o <ph name="PRODUCT_NAME" /> permite inícios de sessão de convidados. Os inícios de sessão de convidados são perfis do <ph name="PRODUCT_NAME" /> em que todas as janelas estão no modo de navegação anónima.
 
@@ -183,6 +216,7 @@
 <translation id="1583248206450240930">Utilizar o <ph name="PRODUCT_FRAME_NAME" /> por predefinição</translation>
 <translation id="1599424828227887013">Ativar o isolamento de site para origens especificadas em dispositivos Android</translation>
 <translation id="1608755754295374538">URLs aos quais será concedido acesso a dispositivos de captura de áudio imediatamente</translation>
+<translation id="1615221548356595305">Permitir a união de ligações HTTP/2 para estes anfitriões, mesmo quando são utilizados certificados de cliente</translation>
 <translation id="1617235075406854669">Ativar a eliminação do histórico de transferências e do navegador</translation>
 <translation id="163200210584085447">Os padrões nesta lista serão comparados com a origem de
       segurança do URL que faz o pedido. Caso seja encontrada uma correspondência, o acesso a dispositivos de
@@ -704,7 +738,7 @@
 
           |time_window_limit| especifica um intervalo diário durante o qual a sessão do utilizador deve ser bloqueada. Suportamos apenas uma regra para cada dia da semana, pelo que o tamanho da matriz de |entries| pode variar entre 0 e 7. |starts_at| e |ends_at| são o início e o fim do limite do intervalo; se |ends_at| for menor do que |starts_at|, significa que |time_limit_window| termina no dia seguinte. |last_updated_millis| é a data/hora UTC em que a entrada foi atualizada pela última vez. É enviado como uma string porque a data/hora não seria suportada como um número inteiro.
 
-          |time_usage_limit| especifica uma quota de ecrã diária, pelo que, quando o utilizador a atinge, a respetiva sessão é bloqueada. Existe uma propriedade para cada dia da semana e esta deverá ser definida apenas se houver uma quota ativa para esse dia. |usage_quota_mins| é o período de tempo durante o qual o dispositivo gerido pode ser utilizado num dia e |reset_at| é a hora em que a quota de utilização é renovada. O valor predefinido para |reset_at| é meia-noite ({'hour': 0, 'minute': 0}). |last_updated_millis| é a data/hora UTC em que a entrada foi atualizada pela última vez. É enviado como uma string porque a data/hora não seria suportada como um número inteiro.
+          |time_usage_limit| especifica uma quota de ecrã diária, pelo que, quando o utilizador a atinge, a respetiva sessão é bloqueada. Existe uma propriedade para cada dia da semana e esta deverá ser definida apenas se houver uma quota ativa para esse dia. |usage_quota_mins| é o período de tempo durante o qual o dispositivo gerido pode ser utilizado num dia e |reset_at| é a hora em que a quota de utilização é renovada. O valor predefinido para |reset_at| é meia-noite ({"hour": 0, "minute": 0}). |last_updated_millis| é a data/hora UTC em que a entrada foi atualizada pela última vez. É enviado como uma string porque a data/hora não seria suportada como um número inteiro.
 
           |overrides| é fornecido para invalidar temporariamente uma ou mais das regras anteriores.
           * Se time_window_limit e time_usage_limit não estiverem ativos, é possível utilizar |LOCK| para bloquear o dispositivo.
@@ -1163,7 +1197,6 @@
       Se esta política não estiver definida, a recolha de dados anónimos com chave de URL é ativada, mas o utilizador pode alterá-la.</translation>
 <translation id="4250680216510889253">Não</translation>
 <translation id="4261820385751181068">Local do ecrã de início de sessão do dispositivo</translation>
-<translation id="4264607809747169568">Controla a disponibilidade das Partilhas de ficheiros na rede para o Chrome OS</translation>
 <translation id="427220754384423013">Especifica as impressoras disponíveis para um utilizador.
 
       Esta política é apenas utilizada se <ph name="PRINTERS_WHITELIST" /> for selecionado para <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1314,6 +1347,7 @@
       Se esta política estiver ativada, os sites são autorizados a navegar e a abrir novas janelas/novos separadores em simultâneo.
       Se esta política estiver desativada ou não definida, os sites deixam de ter autorização para navegar e abrir uma nova janela/um novo separador em simultâneo.</translation>
 <translation id="4680961954980851756">Ativar Preenchimento Automático</translation>
+<translation id="4703402283970867140">Ativar o modelo de escurecimento inteligente para prolongar o tempo até ao escurecimento do ecrã</translation>
 <translation id="4722122254122249791">Ativar o Isolamento do site para origens especificadas.</translation>
 <translation id="4722399051042571387">Se esta definição estiver configurada como falsa, os utilizadores não podem definir PINs fracos e fáceis de adivinhar.
 
@@ -1525,13 +1559,6 @@
 <translation id="5370279767682621504">Ativar a compatibilidade com HTTP/0.9 em portas não predefinidas</translation>
 <translation id="5378985487213287085">Permite definir se os Web sites estão autorizados a apresentar notificações no ambiente de trabalho. A apresentação de notificações no ambiente de trabalho pode ser permitida por predefinição, negada por predefinição ou o utilizador pode ser questionado sempre que um Web site pretenda apresentar notificações no ambiente de trabalho. Se esta política não for definida, será utilizada a definição "AskNotifications" e o utilizador poderá alterá-la.</translation>
 <translation id="538108065117008131">Permitir que o <ph name="PRODUCT_FRAME_NAME" /> processe os seguintes tipos de conteúdo.</translation>
-<translation id="5391363090783552279">Se esta política estiver definida como verdadeira, o <ph name="PRODUCT_NAME" /> irá ligar-se a dispositivos de transmissão em todos os endereços IP e não apenas nos endereços privados RFC1918/RFC4913.
-
-          Se esta política estiver definida como falsa, o <ph name="PRODUCT_NAME" /> irá ligar-se a dispositivos de transmissão apenas nos endereços privados RFC1918/RFC4913.
-
-          Se esta política não estiver definida, o <ph name="PRODUCT_NAME" /> irá ligar-se a dispositivos de transmissão apenas nos endereços privados RFC1918/RFC4913, a menos que a funcionalidade CastAllowAllIPs esteja ativada.
-
-          Se a política "EnableMediaRouter" estiver definida como falsa, o valor desta política não tem efeito.</translation>
 <translation id="5392172595902933844">As informações sobre o estado do Android são enviadas novamente para o
       servidor.
 
@@ -2085,6 +2112,10 @@
 <translation id="6943577887654905793">Nome de preferência do Mac/Linux</translation>
 <translation id="69525503251220566">Parâmetro que fornece a funcionalidade de pesquisa por imagem ao fornecedor de pesquisas predefinido</translation>
 <translation id="6956272732789158625">Não permitir que os sites utilizem a geração de chaves</translation>
+<translation id="6965859329738616662">Especifica se é permitido que um modelo de escurecimento inteligente prolongue o tempo até ao escurecimento do ecrã.
+
+      Quando o ecrã está prestes a ser escurecido, o modelo de escurecimento inteligente determina se essa ação deve ser adiada. Se o modelo de escurecimento inteligente adiar o escurecimento do ecrã, prolonga efetivamente o tempo até essa ação. Neste caso, os atrasos de desativação, de bloqueio do ecrã e de inatividade são ajustados para manter as mesmas distâncias relativamente ao atraso de escurecimento do ecrã, conforme configurado originalmente.
+      Se esta política não for definida ou estiver definida como verdadeira, o modelo de escurecimento inteligente será ativado para poder prolongar o tempo até ao escurecimento do ecrã. Se estiver definida como falsa, o modelo de escurecimento inteligente não irá influenciar o escurecimento do ecrã.</translation>
 <translation id="6982028490425791294">
       Se definir esta política como verdadeira, o <ph name="PRODUCT_NAME" /> obtém permissão para recolher registos de eventos WebRTC dos serviços Google (por exemplo, o Google Meet) e carregar os mesmos para a Google.
 
@@ -2512,6 +2543,13 @@
 <translation id="7980227303582973781">Sem restrições especiais</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Rodar o ecrã 0 graus</translation>
+<translation id="8033913082323846868">Esta política foi descontinuada no M70. Em alternativa, utilize AutofillAddressEnabled e AutofillCreditCardEnabled.
+
+      Ativa a funcionalidade Preenchimento automático do <ph name="PRODUCT_NAME" /> e permite que os utilizadores preencham automaticamente formulários Web ao utilizar informações anteriormente armazenadas, como endereços ou informações de cartões de crédito.
+
+      Se desativar esta definição, os utilizadores não podem aceder ao Preenchimento automático.
+
+      Se ativar esta definição ou não definir qualquer valor, os utilizadores podem controlar o Preenchimento automático, o que lhes permitirá configurar perfis de Preenchimento automático e ativar ou desativar esta funcionalidade conforme pretendam.</translation>
 <translation id="8044493735196713914">Comunicar modo de arranque do aparelho</translation>
 <translation id="8050080920415773384">Impressão nativa</translation>
 <translation id="8059164285174960932">URL onde os clientes de acesso remoto devem obter o respetivo símbolo de autenticação</translation>
@@ -2835,6 +2873,36 @@
 
       Se esta política não estiver definida, é assumida a opção <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Descontinuada no M69. Em alternativa,
+      utilize OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      A política especifica uma lista de origens (URLs) ou padrões de
+      nomes de anfitrião (como "*.example.com") aos quais as restrições de
+      segurança não serão aplicadas.
+
+      O objetivo é permitir que as entidades definam origens da lista de
+      autorizações para aplicações antigas que não possam implementar o
+      TLS ou configurem um servidor experimental para programação Web
+      interna, de forma que os respetivos programadores possam testar
+      funcionalidades que requeiram contextos seguros, sem a necessidade 
+      de implementar o TLS no servidor experimental. Esta política 
+      também evita que a origem tenha a etiqueta "Inseguro" na caixa
+      geral.
+
+      Definir uma lista de URLs nesta política tem o mesmo efeito que
+      definir o sinalizador de linha de comandos
+      "--unsafely-treat-insecure-origin-as-secure" numa lista separada por
+      vírgulas dos mesmos URLs. Se a política estiver definida, substitui o
+      sinalizador de linha de comandos.
+
+      Esta política foi descontinuada no M69 e substituída por
+      OverrideSecurityRestrictionsOnInsecureOrigin. Se ambas as políticas
+      estiverem presentes, OverrideSecurityRestrictionsOnInsecureOrigin
+      substitui esta política.
+
+      Para obter mais informações sobre contextos seguros, consulte
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Esta política controla se é possível mostrar o Consentimento de sincronização ao utilizador durante o primeiro início de sessão. Deve estar definida como falsa se o Consentimento de sincronização nunca for necessário para o utilizador.
       Se estiver definida como falsa, o Consentimento de sincronização não é apresentado.
       Se estiver definida como verdadeira ou se não estiver definida, é possível apresentar o Consentimento de sincronização.</translation>
diff --git a/components/policy/resources/policy_templates_ro.xtb b/components/policy/resources/policy_templates_ro.xtb
index dd29fc3..435e2ba 100644
--- a/components/policy/resources/policy_templates_ro.xtb
+++ b/components/policy/resources/policy_templates_ro.xtb
@@ -33,6 +33,17 @@
           Dacă această setare este dezactivată sau nu este configurată, gazda asistenței la distanță va rula în contextul utilizatorului, iar utilizatorii la distanță nu vor putea să interacționeze cu ferestrele cu privilegii superioare de pe computer.</translation>
 <translation id="1096105751829466145">Furnizor de căutare prestabilit</translation>
 <translation id="1099282607296956954">Activează Izolarea pentru fiecare site</translation>
+<translation id="1100570158310952027">
+      Politica specifică o listă de origini (adrese URL) sau modele de nume de gazdă (precum „*.example.com”) pentru care restricțiile de securitate cu privire la originile nesigure nu se vor aplica.
+
+Scopul este să permită organizațiilor să seteze origini din lista albă pentru aplicațiile vechi care nu pot implementa TLS sau să configureze un server de simulare pentru dezvoltările web interne, astfel încât dezvoltatorii lor să testeze funcții care necesită contexte sigure fără a trebui să implementeze TLS pe serverul de simulare. În plus, politica va împiedica etichetarea originii drept „Nesigură” în caseta polivalentă.
+
+Configurarea unei liste de adrese URL în această politică are același efect precum configurarea semnalizatorului de linie de comandă „--unsafely-treat-insecure-origin-as-secure” într-o listă cu aceleași adrese URL separate prin virgulă. Dacă politica este activată, ea va anula semnalizatorul de linie de comandă. 
+
+Această politică va înlocui UnsafelyTreatInsecureOriginAsSecure dacă este prezentă.
+
+Pentru mai multe informații despre contextele sigure, accesează https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Handlerele de protocol stabilite prin această politică nu sunt folosite pentru gestionarea intențiilor Android.</translation>
 <translation id="1118093128235245168">Permite site-urilor să-i solicite utilizatorului să acorde accesul la un dispozitiv USB conectat</translation>
 <translation id="1128903365609589950">Configurează directorul pe care <ph name="PRODUCT_NAME" /> îl va folosi pentru a stoca fișierele din memoria cache pe disc.
@@ -80,6 +91,7 @@
       Dacă această politică nu este configurată sau dacă este dezactivată, suitele de codificare RC4 din TLS nu vor fi activate. În caz contrar, politica poate fi activată pentru a se menține compatibilitatea cu un server învechit. Aceasta este o măsură temporară, iar serverul trebuie să fie reconfigurat.</translation>
 <translation id="1297182715641689552">Utilizează un script .pac pentru proxy</translation>
 <translation id="1304973015437969093">ID-uri pentru extensii/aplicații și adrese URL pentru actualizări de instalat în fundal</translation>
+<translation id="1307454923744766368">Origini sau modele de nume de gazdă pentru care nu se aplică restricțiile cu privire la originile nesigure</translation>
 <translation id="1313457536529613143">Specifică procentul de ajustare a intervalului până la reducerea luminozității ecranului atunci când se înregistrează activități ale utilizatorului în timp ce luminozitatea ecranului este redusă sau la scurt timp după ce ecranul a fost oprit.
 
           Dacă această politică este configurată, ea specifică procentul cu care este ajustat intervalul până la reducerea luminozității ecranului când se înregistrează activități ale utilizatorului în timp ce luminozitatea ecranului este redusă sau la scurt timp după ce ecranul a fost oprit. Dacă intervalul până la reducerea luminozității este ajustat, intervalele până la oprirea ecranului, blocarea ecranului sau trecerea la modul inactiv sunt modificate pentru a se păstra aceleași distanțe configurate inițial față de intervalul până la reducerea luminozității ecranului.
@@ -91,6 +103,11 @@
 <translation id="1327466551276625742">Activați solicitarea privind configurația rețelei, în modul offline</translation>
 <translation id="1330145147221172764">Activați tastatura pe ecran</translation>
 <translation id="13356285923490863">Numele politicii</translation>
+<translation id="1352174694615491349">Această politică permite fuzionarea conexiunilor HTTP/2 atunci când se folosesc certificatele client. Pentru a fuziona, numele de gazdă al potențialei conexiuni noi și cel al conexiunii existente trebuie să corespundă măcar unuia dintre tiparele descrise de această politică. Politica este o listă de gazde ce folosesc formatul de filtru URLBlacklist: „example.com” se potrivește cu „example.com” și toate subdomeniile (precum „sub.example.com”), în vreme ce „.example.net” se potrivește exact cu „example.net”.
+
+Solicitările de fuzionare pentru diferite gazde din conexiuni ce folosesc certificate client pot crea probleme de securitate și confidențialitate, deoarece autoritatea ambientală va fi transmisă tuturor solicitărilor, chiar dacă utilizatorul nu a aprobat explicit acest lucru. Această politică este temporară și va fi eliminată într-o versiune ulterioară. Accesează https://crbug.com/855690.
+
+Dacă politica nu este setată, se va folosi comportamentul prestabilit de a nu permite fuzionarea conexiunilor HTTP/2 pentru conexiunile care folosesc certificate client.</translation>
 <translation id="1353966721814789986">Pagini de pornire</translation>
 <translation id="1359553908012294236">Dacă această politică este activată sau nu este configurată, <ph name="PRODUCT_NAME" /> va permite conectările ca invitat. Conectările ca invitat sunt profiluri <ph name="PRODUCT_NAME" /> în care toate ferestrele sunt în modul incognito.
 
@@ -183,6 +200,7 @@
 <translation id="1583248206450240930">Utilizează <ph name="PRODUCT_FRAME_NAME" /> în mod prestabilit</translation>
 <translation id="1599424828227887013">Activează Izolarea site-ului pentru originile specificate pe dispozitive Android</translation>
 <translation id="1608755754295374538">Adresele URL cărora li se va acorda acces automat la dispozitivele de capturare a conținutului audio</translation>
+<translation id="1615221548356595305">Permite fuzionarea conexiunilor HTTP/2 pentru aceste gazde, chiar și atunci când se folosesc certificate client</translation>
 <translation id="1617235075406854669">Permite ștergerea istoricului browserului și a istoricului descărcărilor</translation>
 <translation id="163200210584085447">Șabloanele din această listă vor fi comparate cu
       originea de securitate a adresei URL solicitante. Dacă este identificată o potrivire, accesul la dispozitivele de capturare a
@@ -1165,7 +1183,6 @@
       Dacă politica nu este configurată, colectarea datelor anonimizate cu cheie URL va fi activă, dar utilizatorul o va putea modifica.</translation>
 <translation id="4250680216510889253">Nu</translation>
 <translation id="4261820385751181068">Limba de pe ecranul de conectare al dispozitivului</translation>
-<translation id="4264607809747169568">Controlează funcția Dispozitive de stocare în rețea pentru disponibilitatea sistemului de operare Chrome</translation>
 <translation id="427220754384423013">Specifică imprimantele pe care le poate folosi un utilizator.
 
       Această politică este folosită numai dacă opțiunea <ph name="PRINTERS_WHITELIST" /> este aleasă pentru <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1316,6 +1333,7 @@
       Dacă această politică este activată, site-urile vor avea permisiunea să navigheze și să deschidă ferestre/file noi în același timp.
       Dacă această politică este dezactivată sau nu este configurată, site-urile nu vor avea permisiunea să navigheze și să deschidă o fereastră/filă nouă în același timp.</translation>
 <translation id="4680961954980851756">Activează completarea automată</translation>
+<translation id="4703402283970867140">Activează modelul inteligent de reducere a luminozității pentru a extinde timpul până la întunecarea ecranului</translation>
 <translation id="4722122254122249791">Activează Izolarea site-ului pentru originile specificate</translation>
 <translation id="4722399051042571387">Dacă este dezactivată, utilizatorii nu vor putea configura coduri PIN slabe sau ușor de ghicit.
 
@@ -1531,13 +1549,6 @@
 <translation id="5370279767682621504">Activează compatibilitatea cu HTTP/0.9 pentru porturile care nu sunt prestabilite</translation>
 <translation id="5378985487213287085">Vă permite să setați dacă site-urile web au permisiunea de a afișa notificări pe desktop. Afișarea notificărilor pe desktop poate fi permisă în mod prestabilit, refuzată în mod prestabilit sau utilizatorul poate fi întrebat de fiecare dată când un site web vrea să afișeze notificări pe desktop. Dacă această politică nu este setată, va fi utilizată politica „AskNotifications”, iar utilizatorul va putea să o schimbe.</translation>
 <translation id="538108065117008131">Permite <ph name="PRODUCT_FRAME_NAME" /> să gestioneze următoarele tipuri de conținut.</translation>
-<translation id="5391363090783552279">Dacă această politică este activată, <ph name="PRODUCT_NAME" /> se va conecta la dispozitivele Google Cast folosind toate adresele IP, nu numai adresele private RFC1918/RFC4913.
-
-          Dacă această politică este dezactivată, <ph name="PRODUCT_NAME" /> se va conecta la dispozitivele Google Cast folosind numai adresele private RFC1918/RFC4913.
-
-          Dacă această politică nu este configurată, <ph name="PRODUCT_NAME" /> se va conecta la dispozitivele Google Cast folosind numai adresele private RFC1918/RFC4913, cu excepția cazului în care este activată funcția CastAllowAllIPs.
-
-          Dacă politica „EnableMediaRouter” este dezactivată, valoarea acestei politici nu va avea niciun efect.</translation>
 <translation id="5392172595902933844">Informațiile despre starea Android sunt trimise la
       server.
 
@@ -2090,6 +2101,10 @@
 <translation id="6943577887654905793">Nume preferință Mac/Linux:</translation>
 <translation id="69525503251220566">Parametru care pune la dispoziție funcția Căutare după imagine pentru furnizorul de căutare prestabilit</translation>
 <translation id="6956272732789158625">Nu permite niciunui site să folosească generarea cheilor</translation>
+<translation id="6965859329738616662">Specifică dacă un model inteligent de reducere a luminozității poate extinde timpul până la întunecarea ecranului
+
+Atunci când ecranul este pe cale să se întunece, modelul inteligent de reducere a luminozității evaluează dacă reducerea luminozității trebuie amânată. Dacă modelul inteligent de reducere a luminozității amână acest eveniment, el extinde practic timpul până când ecranul se întunecă. În acest caz, duratele până la închiderea ecranului, blocarea acestuia și dezactivare se ajustează pentru a păstra același distanțe față de configurația inițială de întunecare a ecranului.
+Dacă politica este setată la True sau nu este setată, modelul inteligent de reducere a luminozității va fi activat și va putea extinde timpul până la întunecarea ecranului. Dacă politica este setată la False, modelul inteligent de reducere a luminozității nu va influența întunecarea ecranului.</translation>
 <translation id="6982028490425791294">
       Dacă politica este activată, <ph name="PRODUCT_NAME" /> poate să colecteze jurnale de evenimente WebRTC din serviciile Google (de exemplu, Google Meet) și să le încarce pe Google.
 
@@ -2513,6 +2528,13 @@
 <translation id="7980227303582973781">Fără restricții speciale</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Rotește ecranul la 0 grade</translation>
+<translation id="8033913082323846868">În M70 s-a renunțat la dezvoltarea acestei politici; folosește AutofillAddressEnabled și AutofillCreditCardEnabled.
+
+      Activează funcția de Completare automată din <ph name="PRODUCT_NAME" /> și permite utilizatorilor să completeze automat formularele web folosind informațiile stocate anterior, cum ar fi adresa fizică sau informațiile cardului de credit.
+
+      Dacă dezactivezi această setare, Completarea automată va fi inaccesibilă pentru utilizatori.
+
+      Dacă activezi această setare sau nu configurezi o valoare, Completarea automată va rămâne sub controlul utilizatorului. Acest lucru va permite utilizatorilor să configureze profiluri pentru Completarea automată și să activeze sau să dezactiveze funcția Completare automată după cum doresc.</translation>
 <translation id="8044493735196713914">Raportați modul de pornire al dispozitivului</translation>
 <translation id="8050080920415773384">Printare nativă</translation>
 <translation id="8059164285174960932">Adresa URL de unde clienții cu acces la distanță își pot obține indicativul de autentificare</translation>
@@ -2836,6 +2858,18 @@
 
       Dacă politica nu este configurată, se va folosi <ph name="PRINTERS_ALLOW_ALL" /> în mod prestabilit.
       </translation>
+<translation id="8938932171964587769">În M69 s-a renunțat la dezvoltarea acestei politici. Folosește OverrideSecurityRestrictionsOnInsecureOrigin.
+
+Politica specifică o listă de origini (adrese URL) sau modele de nume de gazdă (precum „*.example.com”) pentru care restricțiile de securitate cu privire la originile nesigure nu se vor aplica.
+
+Scopul este să permită organizațiilor să seteze origini din lista albă pentru aplicațiile vechi care nu pot implementa TLS sau să configureze un server de simulare pentru dezvoltările web interne, astfel încât dezvoltatorii lor să testeze funcții care necesită contexte sigure fără a trebui să implementeze TLS pe serverul de simulare. În plus, politica va împiedica etichetarea originii drept „Nesigură” în caseta polivalentă.
+
+Configurarea unei liste de adrese URL în această politică are același efect precum configurarea semnalizatorului de linie de comandă „--unsafely-treat-insecure-origin-as-secure” într-o listă cu aceleași adrese URL separate prin virgulă. Dacă politica este activată, ea va anula semnalizatorul de linie de comandă.
+
+În M69 s-a renunțat la dezvoltarea acestei politici în favoarea OverrideSecurityRestrictionsOnInsecureOrigin. Dacă ambele politici sunt prezente, OverrideSecurityRestrictionsOnInsecureOrigin va înlocui această politică.
+
+Pentru mai multe informații despre contextele sigure, accesează https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Această politică gestionează dacă utilizatorul poate vedea Consimțământul de sincronizare la prima conectare. Ea trebuie setată la false dacă Consimțământul de sincronizare nu este niciodată necesar pentru utilizator.
       Dacă este setată la false, Consimțământul de sincronizare nu se va afișa.
       Dacă este setată la true sau nu este setată, Consimțământul de sincronizare se poate afișa.</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 9631173..7a45954 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -33,6 +33,27 @@
           Если эта настройка выключена или не задана, удаленный хост помощника подключится в контексте пользователя. Привилегированные окна в этом случае не будут доступны удаленным пользователям.</translation>
 <translation id="1096105751829466145">Поисковая система по умолчанию</translation>
 <translation id="1099282607296956954">Включить изоляцию для всех сайтов</translation>
+<translation id="1100570158310952027">
+      В данном правиле определяется список источников (URL-адресов) или
+      шаблонов имен хостов (например, *.example.com), которые будут
+      считаться безопасными.
+
+      Таким образом, у организаций появится возможность составлять списки
+      приложений, не использующих TLS, или настроить вспомогательный
+      сервер для внутренней веб-разработки и тестировать функции,
+      требующие безопасного контекста, без развертывания TLS. Кроме того,
+      указанные в данном правиле адреса не будут помечаться как
+      небезопасные в омнибоксе.
+
+      Правило аналогично параметру --unsafely-treat-insecure-origin-as-secure со
+      списком URL, разделенных запятыми. Если правило настроено, оно
+      переопределяет URL, указанные в параметре. Правило также заменяет
+      команду UnsafelyTreatInsecureOriginAsSecure.
+
+      Подробную информацию о безопасном контексте можно найти на
+      странице
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Обработчики протоколов, настроенные с помощью этого правила, не используются при обработке намерений Android.</translation>
 <translation id="1118093128235245168">Разрешить сайтам запрашивать доступ к подключенному USB-устройству</translation>
 <translation id="1128903365609589950">Определяет на диске каталог, где <ph name="PRODUCT_NAME" /> будет хранить кешированные файлы.
@@ -78,6 +99,8 @@
       Если правило не настроено или для него выбрано значение False, наборы шифров RC4 в TLS не будут включены. Если указано значение True, совместимость с устаревшим сервером сохранится. Однако помните, что это временная мера и сервер необходимо перенастроить.</translation>
 <translation id="1297182715641689552">Использовать скрипт PAC для прокси-сервера</translation>
 <translation id="1304973015437969093">Устанавливать идентификаторы расширений/приложений и URL обновлений без подтверждения пользователя</translation>
+<translation id="1307454923744766368">Адреса или шаблоны имен хостов, 
+      которые будут считаться безопасными</translation>
 <translation id="1313457536529613143">Коэффициент увеличения задержки затемнения экрана, если пользователь выполняет действия на устройстве после затемнения или вскоре после отключения экрана.
 
           Если это правило настроено, оно обозначает, на сколько процентов изменяется время задержки затемнения экрана, если пользователь выполняет действия на устройстве после затемнения или вскоре после отключения экрана. При этом соответствующим образом изменяется задержка отключения, блокировки экрана и перехода в режим ожидания.
@@ -89,6 +112,11 @@
 <translation id="1327466551276625742">При отсутствии подключения показывать запрос на настройку сети</translation>
 <translation id="1330145147221172764">Включить экранную клавиатуру</translation>
 <translation id="13356285923490863">Название правила</translation>
+<translation id="1352174694615491349">Данное правило разрешает повторное использование соединений HTTP/2 при применении сертификатов клиентов. Имена хостов текущего и нового соединений должны соответствовать одному или нескольким шаблонам, описанным в данном правиле. Оно представляет собой список хостов в формате черного списка URL: example.com соответствует example.com и всем субдоменам (например, sub.example.com), а .example.net соответствует только example.net.
+
+      Запрос повторного использования соединения, в котором применяется сертификат клиента, может вызвать нарушения безопасности и конфиденциальности, так как доступ будет открыт для всех запросов, даже если пользователь не подтвердит его. Это правило временное и в следующей версии будет удалено. Подробнее: https://crbug.com/855690.
+
+      Если это правило неактивно, повторное использование соединений HTTP/2 при применении сертификатов клиентов будет невозможно.</translation>
 <translation id="1353966721814789986">Страницы при запуске</translation>
 <translation id="1359553908012294236">Если это правило включено (значение True) или не настроено, в <ph name="PRODUCT_NAME" /> доступен вход через гостевой профиль (профиль <ph name="PRODUCT_NAME" />, в котором все окна открываются в режиме инкогнито).
 
@@ -171,6 +199,7 @@
 <translation id="1583248206450240930">Использовать <ph name="PRODUCT_FRAME_NAME" /> по умолчанию</translation>
 <translation id="1599424828227887013">Включить изоляцию для определенных сайтов на устройствах Android</translation>
 <translation id="1608755754295374538">URL, которым доступ к аудиозаписывающим устройствам предоставляется без запроса</translation>
+<translation id="1615221548356595305">Разрешить повторное использование соединений HTTP/2 для этих хостов, даже если применяются клиентские сертификаты</translation>
 <translation id="1617235075406854669">Удаление истории просмотров и загрузок браузера</translation>
 <translation id="163200210584085447">Шаблоны, указанные в списке, сверяются с 
       запрашивающим URL. При обнаружении соответствия доступ к
@@ -1132,7 +1161,6 @@
       Если это правило не настроено, анонимный сбор данных с помощью URL будет осуществляться, но пользователи смогут изменять его.</translation>
 <translation id="4250680216510889253">Нет</translation>
 <translation id="4261820385751181068">Региональные настройки экрана входа</translation>
-<translation id="4264607809747169568">Управление функцией совместного доступа к файлам в сети для Chrome OS</translation>
 <translation id="427220754384423013">Определяет принтеры, с которыми может работать пользователь.
 
       Применимо только в том случае, если в правиле <ph name="BULK_PRINTERS_ACCESS_MODE" /> задан параметр <ph name="PRINTERS_WHITELIST" />.
@@ -1286,6 +1314,7 @@
       Если правило включено, сайтам будет разрешено одновременно открывать новые окна или вкладки, а также переходить на новую страницу.
       Если правило отключено или не настроено, сайтам будет запрещено одновременно открывать новые окна или вкладки, а также переходить на новую страницу.</translation>
 <translation id="4680961954980851756">Включить автозаполнение</translation>
+<translation id="4703402283970867140">Включить умное затемнение, чтобы продлить время до затемнения экрана</translation>
 <translation id="4722122254122249791">Включить изоляцию для определенных сайтов</translation>
 <translation id="4722399051042571387">Если указать значение False, пользователи не смогут устанавливать ненадежные PIN-коды.
 
@@ -1497,13 +1526,6 @@
 <translation id="5370279767682621504">Включить поддержку HTTP/0.9 для портов, не заданных по умолчанию</translation>
 <translation id="5378985487213287085">Позволяет указать, каким сайтам разрешено отображать уведомления на рабочем столе. По умолчанию можно разрешить показ уведомлений, запретить его или настроить вывод запроса пользователю каждый раз, когда сайт должен показать уведомление. Если это правило не настроено, действует правило AskNotifications и пользователи могут самостоятельно изменить его значение.</translation>
 <translation id="538108065117008131">Разрешить <ph name="PRODUCT_FRAME_NAME" /> обрабатывать следующие типы содержания.</translation>
-<translation id="5391363090783552279">Если для правила задано значение True, <ph name="PRODUCT_NAME" /> будет подключаться к устройствам Google Cast на всех IP-адресах, а не только на закрытых адресах RFC1918/RFC4913.
-
-          Если для правила задано значение False, <ph name="PRODUCT_NAME" /> будет подключаться только к устройствам Google Cast на закрытых адресах RFC1918/RFC4913.
-
-          Если правило не настроено, <ph name="PRODUCT_NAME" /> будет подключаться к устройствам Google Cast только на закрытых адресах RFC1918/RFC4913 за исключением того случая, когда включена функция CastAllowAllIPs.
-
-          Если для правила EnableMediaRouter задано значение False, то правило MediaRouterCastAllowAllIPs работать не будет.</translation>
 <translation id="5392172595902933844">Отправляет информацию о состоянии Android
       на сервер.
 
@@ -2050,6 +2072,10 @@
 <translation id="6943577887654905793">Предпочтительное название для Mac и Linux:</translation>
 <translation id="69525503251220566">Параметр функции поиска изображений для поисковой системы по умолчанию</translation>
 <translation id="6956272732789158625">Запретить всем сайтам создавать ключи</translation>
+<translation id="6965859329738616662">Данное правило определяет возможность интеллектуальной модели затемнения продлевать время до затемнения экрана.
+
+      Умное затемнение оценивает, нужно ли отложить затемнение экрана. Если такая необходимость есть, время до затемнения, блокировки и выключения экрана продлевается.
+      Если это правило активно (True) или не задано, интеллектуальная модель затемнения будет включена и будет продлевать время до затемнения экрана. Если правило отключено (False), время до затемнения экрана меняться не будет.</translation>
 <translation id="6982028490425791294">
       Если задано значение True, <ph name="PRODUCT_NAME" /> сможет собирать журналы событий WebRTC из сервисов Google (например, Google Meet), и загружать их в Google.
 
@@ -2471,6 +2497,13 @@
 <translation id="7980227303582973781">Специальных ограничений нет</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Повернуть экран на 0 градусов</translation>
+<translation id="8033913082323846868">Не поддерживается в M70. Пожалуйста, используйте правила AutofillAddressEnabled и AutofillCreditCardEnabled.
+
+      Включает функцию автозаполнения в <ph name="PRODUCT_NAME" /> и разрешает автоматически заполнять веб-формы, например адреса или номера банковских карт.
+
+      Если этот параметр отключен, функция автозаполнения недоступна пользователям.
+
+      Если он включен или его значение не указано, пользователям будет доступна функция автозаполнения, и они смогут включать и отключать ее, а также настраивать профили автозаполнения.</translation>
 <translation id="8044493735196713914">Сообщать о режиме загрузки устройства</translation>
 <translation id="8050080920415773384">Оригинальная печать</translation>
 <translation id="8059164285174960932">URL, по которому клиенты удаленного доступа должны получать токены аутентификации</translation>
@@ -2792,6 +2825,31 @@
 
       Если правило не настроено, используется параметр <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Не поддерживается в M69. Используйте правило
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+      В данном правиле определяется список источников (URL-адресов) или
+      шаблонов имен хостов (например, *.example.com), которые будут
+      считаться безопасными.
+
+      Таким образом, у организаций появится возможность составлять списки
+      приложений, не использующих TLS, или настроить вспомогательный
+      сервер для внутренней веб-разработки и тестировать функции,
+      требующие безопасного контекста, без развертывания TLS. Кроме того,
+      указанные в данном правиле адреса не будут помечаться как
+      небезопасные в омнибоксе.
+
+      Правило аналогично параметру --unsafely-treat-insecure-origin-as-secure со
+      списком URL, разделенных запятыми. Если правило настроено, оно
+      переопределяет URL, указанные в параметре. Правило также заменяет
+      команду UnsafelyTreatInsecureOriginAsSecure.
+
+      В M69 это правило больше не используется. Если настроены оба
+      правила, OverrideSecurityRestrictionsOnInsecureOrigin заменит устаревшее.
+
+      Подробную информацию о безопасном контексте можно найти на
+      странице
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Это правило определяет, запрашивается ли у пользователя согласие на синхронизацию при первом входе. Если согласие не требуется, необходимо выбрать значение False.
       Если задано значение False, согласие на синхронизацию не запрашивается.
       Если задано значение True или правило не настроено, согласие на синхронизацию запрашивается.</translation>
diff --git a/components/policy/resources/policy_templates_sk.xtb b/components/policy/resources/policy_templates_sk.xtb
index f66fcf4d..398f3e5 100644
--- a/components/policy/resources/policy_templates_sk.xtb
+++ b/components/policy/resources/policy_templates_sk.xtb
@@ -1187,7 +1187,6 @@
       Ak toto pravidlo ponecháte nenastavené, anonymizované zhromažďovanie dát prostredníctvom kódovaných webových adries sa povolí, no používateľ ho bude môcť zmeniť.</translation>
 <translation id="4250680216510889253">Nie</translation>
 <translation id="4261820385751181068">Jazyk prihlasovacej obrazovky zariadenia</translation>
-<translation id="4264607809747169568">Riadi dostupnosť zdieľania súborov v sieti pre Chrome OS</translation>
 <translation id="427220754384423013">Umožňuje určiť tlačiarne, ktoré má používateľ k dispozícii.
 
       Toto pravidlo sa používa iba vtedy, keď je pre <ph name="BULK_PRINTERS_ACCESS_MODE" /> vybraná možnosť <ph name="PRINTERS_WHITELIST" />.
@@ -1575,13 +1574,6 @@
 
           Ak bude toto nastavenie ponechané nenastavené, použije sa pravidlo „AskNotifications“ a používateľ ho bude môcť zmeniť.</translation>
 <translation id="538108065117008131">Povoliť doplnku <ph name="PRODUCT_FRAME_NAME" /> spracovávať tieto typy obsahu.</translation>
-<translation id="5391363090783552279">Ak toto pravidlo nastavíte na hodnotu True, <ph name="PRODUCT_NAME" /> sa pripojí k zariadeniam Cast na všetkých adresách IP, nie iba na súkromných adresách RFC1918/RFC4913.
-
-          Ak toto pravidlo nastavíte na hodnotu False, <ph name="PRODUCT_NAME" /> sa pripojí k zariadeniam Cast iba na súkromných adresách RFC1918/RFC4913.
-
-          Ak toto pravidlo nenastavíte, <ph name="PRODUCT_NAME" /> sa pripojí k zariadeniam Cast iba na súkromných adresách RFC1918/RFC4913, pokiaľ nie je povolená funkcia CastAllowAllIPs.
-
-          Ak je pravidlo EnableMediaRouter nastavené na hodnotu False, nebude mať hodnota tohto pravidla žiadny účinok.</translation>
 <translation id="5392172595902933844">Informácie o stave Androidu sa odosielajú späť na
       server.
 
diff --git a/components/policy/resources/policy_templates_sl.xtb b/components/policy/resources/policy_templates_sl.xtb
index fd7a9e7..4e9b590e 100644
--- a/components/policy/resources/policy_templates_sl.xtb
+++ b/components/policy/resources/policy_templates_sl.xtb
@@ -33,6 +33,28 @@
           Če je ta nastavitev onemogočena ali ni konfigurirana, se gostitelj za oddaljeno pomoč izvaja v uporabnikovem kontekstu in oddaljeni uporabniki ne morejo uporabljati oken s skrbniškimi pravicami na namizju.</translation>
 <translation id="1096105751829466145">Privzeti iskalnik</translation>
 <translation id="1099282607296956954">Omogočanje osamitve spletnega mesta za vsako spletno mesto</translation>
+<translation id="1100570158310952027">
+      Pravilnik določa seznam izvorov (URL-jev) ali vzorcev imen gostitelja (na primer
+      »*.example.com«), za katere se varnostne omejitve v izvorih, ki niso varni,
+      ne uporabljajo.
+
+      Namen tega je omogočiti organizacijam nastavitev izvorov, uvrščenih na seznam dovoljenih, za starejše
+      aplikacije, ki ne morejo uvesti šifriranja TLS, ali nastavitev preizkusnega produkcijskega strežnika
+      za notranje spletno razvijanje, tako da lahko razvijalci preizkušajo funkcije,
+      ki zahtevajo varne kontekste, ne da bi bilo treba uvesti TLS v preizkusnem produkcijskem
+      strežniku. Ta pravilnik prav tako prepreči, da bi imel izvor v naslovni vrstici
+      oznako »Ni varno«.
+
+      Nastavitev seznama URL-jev v tem pravilniku ima enak učinek kot nastavitev
+      zastavice ukazne vrstice »--unsafely-treat-insecure-origin-as-secure« na seznamu,
+      ločenemu z vejicami, istih URL-jev. Če je pravilnik nastavljen,
+      preglasi zastavico ukazne vrstice.
+
+      Ta pravilnik preglasi pravilnik UnsafelyTreatInsecureOriginAsSecure, če je na voljo.
+
+      Več informacij o varnih kontekstih je na voljo na
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Rutine za obravnavo protokolov, nastavljene s tem pravilnikom, se ne uporabljajo pri obravnavi namer za Android.</translation>
 <translation id="1118093128235245168">Dovoli spletnim mestom, da od uporabnika zahtevajo, da omogoči dostop do povezane naprave USB</translation>
 <translation id="1128903365609589950">Konfigurira imenik, ki ga bo <ph name="PRODUCT_NAME" /> uporabljal za shranjevanje predpomnjenih datotek na disk.
@@ -80,6 +102,8 @@
       Če pravilnik ni nastavljen ali je onemogočen, šifrirane zbirke v protokolu TLS ne bodo omogočene, sicer pa je lahko omogočen zaradi ohranjanja združljivosti z zastarelim strežnikom. To je začasen ukrep in strežnik je treba na novo konfigurirati.</translation>
 <translation id="1297182715641689552">Uporabi skript .pac za proxy</translation>
 <translation id="1304973015437969093">ID-ji razširitev/aplikacij in URL-ji posodobitev se namestijo brez obveščanja</translation>
+<translation id="1307454923744766368">Izvori ali vzorci imena gostitelja, za katere se omejitve glede
+      izvorov, ki niso varni, ne smejo uporabljati</translation>
 <translation id="1313457536529613143">Določa odstotek spremembe zakasnitve zatemnitve zaslona, kadar se zazna dejavnost uporabnika, medtem ko je zaslon v zatemnjenem načinu ali kmalu potem ko je bil izklopljen.
 
 Če je nastavljen ta pravilnik, določa odstotek spremembe zakasnitve zatemnitve zaslona, kadar se zazna dejavnost uporabnika, medtem ko je zaslon v zatemnjenem načinu ali kmalu potem ko je bil izklopljen. S prilagoditvijo zatemnitve zaslona se prilagodijo tudi zakasnitve za izklop zaslona, zaklepanje zaslona in čas nedejavnosti, tako da se ohranijo enake razdalje od prvotno nastavljene zakasnitve za zatemnitev zaslona.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">Omogočanje poziva za konfiguracijo omrežja v stanju brez povezave</translation>
 <translation id="1330145147221172764">Omogoči zaslonsko tipkovnico</translation>
 <translation id="13356285923490863">Ime pravilnika</translation>
+<translation id="1352174694615491349">Ta pravilnik omogoča združevanje povezav HTTP/2, ko se uporabljajo potrdila odjemalca. Če želite združiti povezavi, se morata tako ime gostitelja morebitne nove povezave kot ime gostitelja obstoječe povezave ujemati z enim od vzorcev, ki jih opisuje ta pravilnik. Pravilnik sestavlja seznam gostiteljev, ki uporabljajo obliko filtra URLBlacklist: »example.com« se ujema z »example.com« in vsemi poddomenami (npr. »sub.example.com«), medtem ko se ».example.net« ujema točno z »example.net«.
+
+      Zahteve za združevanje, poslane različnim gostiteljem prek povezav, ki uporabljajo potrdila odjemalca, lahko povzročijo varnostne težave in težave glede zasebnosti, saj bo lokalno pooblastilo preneseno na vse zahteve, tudi če uporabnik tega ni izrecno odobril. Ta pravilnik je začasen in bo odstranjen v eni od prihodnjih različic. Glejte https://crbug.com/855690.
+
+      Če ta pravilnik ni nastavljen, bo uporabljeno privzeto delovanje, po katerem ni dovoljeno nobeno združevanje povezav HTTP/2 pri povezavah, ki uporabljajo potrdila odjemalca.</translation>
 <translation id="1353966721814789986">Začetne strani</translation>
 <translation id="1359553908012294236">Če je ta pravilnik omogočen ali ni nastavljen, <ph name="PRODUCT_NAME" /> omogoči prijave gostov. Prijave gostov so profili v brskalniku <ph name="PRODUCT_NAME" />, v katerih so vsa okna v načinu brez beleženja zgodovine.
 
@@ -184,6 +213,7 @@
 <translation id="1583248206450240930">Privzeto uporabi <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="1599424828227887013">Omogočanje osamitve spletnih mest za določene izvore v napravah Android</translation>
 <translation id="1608755754295374538">URL-ji, ki jim bo brez poziva dovoljen dostop do naprav za zajem zvoka</translation>
+<translation id="1615221548356595305">Dovoli združevanje povezav HTTP/2 za te gostitelje, tudi če se uporabljajo potrdila odjemalca</translation>
 <translation id="1617235075406854669">Omogočanje brisanja zgodovine brskalnika in prenosov</translation>
 <translation id="163200210584085447">Vzorci na tem seznamu se bodo primerjali z varnostnim
       izvorom zahtevajočega URL-ja. Če bo najdeno ujemanje, bo dostop
@@ -1200,7 +1230,6 @@
       Če ta pravilnik ni nastavljen, bo zbiranje anonimiziranih podatkov, ki vključujejo URL-je, omogočeno, vendar bo lahko uporabnik to spremenil.</translation>
 <translation id="4250680216510889253">Ne</translation>
 <translation id="4261820385751181068">Jezik na zaslonu za prijavo v napravi</translation>
-<translation id="4264607809747169568">Nadzira razpoložljivost omrežnih naprav za skupno rabo datotek v okolju OS Chrome</translation>
 <translation id="427220754384423013">Določa tiskalnike, ki jih uporabnik lahko uporablja.
 
       Ta pravilnik se uporablja samo, če je za pravilnik <ph name="BULK_PRINTERS_ACCESS_MODE" /> izbrana možnost <ph name="PRINTERS_WHITELIST" />.
@@ -1359,6 +1388,7 @@
       Če je ta pravilnik omogočen, bo spletnim mestom dovoljeno hkratno premikanje in odpiranje novih oken/zavihkov.
       Če je ta pravilnik onemogočen ali ni nastavljen, spletnim mestom ne bo dovoljeno hkratno premikanje in odpiranje novih oken/zavihkov.</translation>
 <translation id="4680961954980851756">Omogoči samodejno izpolnjevanje</translation>
+<translation id="4703402283970867140">Omogoči pametni model zatemnitve za podaljšanje časa do zatemnitve zaslona</translation>
 <translation id="4722122254122249791">Omogočanje osamitve spletnih mest za določene izvore</translation>
 <translation id="4722399051042571387">Če je nastavitev onemogočena, uporabniki ne bodo mogli nastaviti kod PIN, ki so šibke in jih je mogoče preprosto uganiti.
 
@@ -1588,13 +1618,6 @@
 
           Če ta pravilnik ni nastavljen, bo uporabljen pravilnik »AskNotifications« in uporabnik bo lahko to spremenil.</translation>
 <translation id="538108065117008131">Dovoli, da <ph name="PRODUCT_FRAME_NAME" /> obravnava te vrste vsebine.</translation>
-<translation id="5391363090783552279">Če je ta pravilnik nastavljen na »true«, se bo izdelek <ph name="PRODUCT_NAME" /> povezal z napravami za predvajanje na vseh naslovih IP, ne samo na zasebnih naslovih RFC1918/RFC4913.
-
-          Če je ta pravilnik nastavljen na »false«, se bo izdelek <ph name="PRODUCT_NAME" /> povezal samo z napravami za predvajanje na zasebnih naslovih RFC1918/RFC4913.
-
-          Če ta pravilnik ni nastavljen, se bo izdelek <ph name="PRODUCT_NAME" /> povezal samo z napravami za predvajanje na zasebnih naslovih RFC1918/RFC4913, razen če je omogočena funkcija CastAllowAllIPs.
-
-          Če je pravilnik »EnableMediaRouter« nastavljen na »false«, vrednost tega pravilnika ne bo imela nobenega vpliva.</translation>
 <translation id="5392172595902933844">Podatki o stanju Androida se pošljejo nazaj v
       strežnik.
 
@@ -2167,6 +2190,10 @@
 <translation id="6943577887654905793">Ime nastavitve za Mac/Linux:</translation>
 <translation id="69525503251220566">Parameter, ki omogoča funkcijo iskanja po sliki za privzetega ponudnika iskanja</translation>
 <translation id="6956272732789158625">Spletnim mestom ne dovoli uporabe ustvarjanja ključev</translation>
+<translation id="6965859329738616662">Določa, ali je pametnemu modelu zatemnitve dovoljeno podaljšati čas do zatemnitve zaslona.
+
+      Preden se zaslon zatemni, pametni model zatemnitve oceni, ali je treba zatemnitev zaslona odložiti. Če pametni model zatemnitve odloži zatemnitev zaslona, dejansko podaljša čas do zatemnitve zaslona. V tem primeru se časovna zamika izklopa zaslona in zaklepanja zaslona ter časovni zamik ob nedejavnosti prilagodijo, da ohranijo enako časovno razdaljo od prvotno konfigurirane zakasnitve zatemnitve zaslona.
+      Če je pravilnik omogočen ali ni nastavljen, je pametni model zatemnitve omogočen in sme podaljšati čas do zatemnitve zaslona. Če je pravilnik onemogočen, pametni model zatemnitve na zatemnitev zaslona ne vpliva.</translation>
 <translation id="6982028490425791294">
       Če je pravilnik omogočen, <ph name="PRODUCT_NAME" /> sme zbirati dnevnike dogodkov tehnologije WebRTC iz Googlovih storitev (npr. iz Googla Meet) in te dnevnike nalagati v Google.
 
@@ -2616,6 +2643,13 @@
 <translation id="7980227303582973781">Ni posebnih omejitev</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Sukanje zaslona za 0 stopinj</translation>
+<translation id="8033913082323846868">Ta pravilnik je zastarel v različici M70; namesto tega uporabite pravilnika AutofillAddressEnabled in AutofillCreditCardEnabled.
+
+      Omogoči funkcijo samodejnega izpolnjevanja v brskalniku <ph name="PRODUCT_NAME" /> in uporabnikom omogoča samodejno izpolnjevanje spletnih obrazcev s shranjenimi podatki, kot so naslov in podatki o kreditni kartici.
+
+      Če to nastavitev onemogočite, uporabniki ne bodo imeli dostopa do samodejnega izpolnjevanja.
+
+      Če to nastavitev omogočite ali ne nastavitev vrednosti, bo samodejno izpolnjevanje ostalo pod nadzorom uporabnika. Tako bo uporabnik lahko konfiguriral profile samodejnega izpolnjevanja in samodejno izpolnjevanje poljubno vklapljal in izklapljal.</translation>
 <translation id="8044493735196713914">Pošiljanje podatkov o načinu zagona naprave</translation>
 <translation id="8050080920415773384">Izvorno tiskanje</translation>
 <translation id="8059164285174960932">URL, na katerem morajo odjemalci za oddaljeni dostop pridobiti žeton za preverjanje pristnosti</translation>
@@ -2949,6 +2983,33 @@
 
       Če ta pravilnik ni nastavljen, se predvideva uporaba pravilnika <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Zastarel v različici M69. Namesto tega uporabite pravilnik
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Pravilnik določa seznam izvorov (URL-jev) ali vzorcev imen gostitelja (na primer
+      »*.example.com«), za katere se varnostne omejitve v izvorih, ki niso varni,
+      ne uporabljajo.
+
+      Namen tega je omogočiti organizacijam nastavitev izvorov, uvrščenih na seznam dovoljenih, za starejše
+      aplikacije, ki ne morejo uvesti šifriranja TLS, ali nastavitev preizkusnega produkcijskega strežnika
+      za notranje spletno razvijanje, tako da lahko razvijalci preizkušajo funkcije,
+      ki zahtevajo varne kontekste, ne da bi bilo treba uvesti TLS v preizkusnem produkcijskem
+      strežniku. Ta pravilnik prav tako prepreči, da bi imel izvor v naslovni vrstici
+      oznako »Ni varno«.
+
+      Nastavitev seznama URL-jev v tem pravilniku ima enak učinek kot nastavitev
+      zastavice ukazne vrstice »--unsafely-treat-insecure-origin-as-secure« na seznamu,
+      ločenemu z vejicami, istih URL-jev. Če je pravilnik nastavljen,
+      preglasi zastavico ukazne vrstice.
+
+      Ta pravilnik je zastarel v različici M69 in je bil nadomeščen s pravilnikom
+      OverrideSecurityRestrictionsOnInsecureOrigin. Če sta na voljo oba,
+      pravilnik OverrideSecurityRestrictionsOnInsecureOrigin preglasi ta
+      pravilnik.
+
+      Več informacij o varnih kontekstih je na voljo na
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Ta pravilnik nadzira, ali je soglasje za sinhronizacijo lahko prikazano uporabniku med prvo prijavo. Če soglasja za sinhronizacijo ne potrebujete za uporabnika, mora biti pravilnik onemogočen.
       Če je onemogočen, soglasje za sinhronizacijo ne bo prikazano.
       Če je omogočen ali ni nastavljen, je soglasje za sinhronizacijo mogoče prikazati.</translation>
diff --git a/components/policy/resources/policy_templates_sr.xtb b/components/policy/resources/policy_templates_sr.xtb
index 4ab271a..e20e469 100644
--- a/components/policy/resources/policy_templates_sr.xtb
+++ b/components/policy/resources/policy_templates_sr.xtb
@@ -33,6 +33,28 @@
           Ако је ово подешавање онемогућено или није конфигурисано, хост за даљинску помоћ ће се покренути у контексту корисника и удаљени корисници неће моћи да врше интеракцију са подигнутим прозорима на радној површини.</translation>
 <translation id="1096105751829466145">Подразумевани добављач претраге</translation>
 <translation id="1099282607296956954">Омогући Изолацију сајта за сваки сајт</translation>
+<translation id="1100570158310952027">
+      Ове смернице наводе листу извора (URL-ова) или образаца имена хостова (као што
+      је „*.example.com“) за које не важе безбедносна ограничења за небезбедне
+      изворе.
+
+      Њихов циљ је да омогуће организацијама да подесе белу листу извора за застареле
+      апликације које не могу да примењују TLS или да подесе сервер за тестирање за
+      интерно веб-програмирање да би њихови програмери могли да тестирају функције
+      које захтевају безбедне контексте без примене TLS-а на серверу
+      за тестирање. Ове смернице спречавају и да извор добије ознаку
+      „Није безбедно“ у омнибоксу.
+
+      Подешавање листе URL-ова у овим смерницама има исти ефекат као подешавање
+      ознаке командне линије „--unsafely-treat-insecure-origin-as-secure“ на
+      листу вредности раздвојених зарезима истих URL-ова. Ако се смернице подесе, оне
+      замењују ознаку командне линије.
+
+      Ове смернице замењују UnsafelyTreatInsecureOriginAsSecure, ако је подешен.
+
+      Додатне информације о безбедним контекстима потражите на
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Обрађивачи протокола подешени помоћу ових смерница се не користе при обради намера на Android-у.</translation>
 <translation id="1118093128235245168">Дозвољавај сајтовима да затраже од корисника да одобри приступ повезаном USB уређају</translation>
 <translation id="1128903365609589950">Конфигурише директоријум који ће <ph name="PRODUCT_NAME" /> користити за чување кешираних датотека на диску.
@@ -80,6 +102,8 @@
       Ако не подесите ове смернице или их подесите на Нетачно, онда RC4 пакети за шифровање у TLS-у неће бити омогућени. У супротном можете да их подесите на Тачно да би се очувала компатибилност са застарелим сервером. То је привремена мера и сервер треба да се поново конфигурише.</translation>
 <translation id="1297182715641689552">Користи .pac скрипту проксија</translation>
 <translation id="1304973015437969093">ИД-ови додатака/апликација и URL-ови за ажурирања који ће бити неприметно инсталирани</translation>
+<translation id="1307454923744766368">Извори или обрасци имена хостова за које не треба да важе
+      ограничења небезбедних извора</translation>
 <translation id="1313457536529613143">Одређују проценат до кога се време до замрачивања екрана мења када се региструје активност корисника док је екран замрачен или убрзо после искључивања екрана.
 
           Ако се ове смернице подесе, оне одређују проценат до кога се време до замрачивања екрана мења када се региструје активност корисника док је екран замрачен или убрзо после искључивања екрана. Када се време до замрачивања екрана промени, прилагођава се време до искључивања екрана, закључавања екрана или његовог преласка у стање мировања како би се одржале исте разлике између њих и времена до замрачивања екрана које су првобитно конфигурисане.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">Омогући упит за конфигурацију мреже у офлајн режиму</translation>
 <translation id="1330145147221172764">Омогући тастатуру на екрану</translation>
 <translation id="13356285923490863">Назив смерница</translation>
+<translation id="1352174694615491349">Ове смернице омогућавају обједињавање HTTP/2 веза док су сертификати клијента у употреби. Да би се обједињавање обавило, и име хоста потенцијалне нове везе и име хоста постојеће везе морају да се подударају са једним или више образаца описаних у овим смерницама. Смернице су листа хостова који користе формат филтера URLBlacklist: „example.com“ се подудара са „example.com“ и свим поддоменима (нпр. „sub.example.com“), док се „.example.net“ у потпуности подудара са „example.net“.
+
+      Захтеви за обједињавање упућени различитим хостовима преко веза које користе сертификате клијента могу да изазову проблеме са безбедношћу и приватношћу јер ће се локални ауторитет пренети на све захтеве, чак и у случају да корисник није дао експлицитно овлашћење за то. Ове смернице су привремене и биће уклоњене у будућем издању. Погледајте https://crbug.com/855690.
+
+      Ако се ове смернице не подесе, обједињавање HTTP/2 веза на везама које користе сертификате клијента подразумевано неће бити дозвољено.</translation>
 <translation id="1353966721814789986">Странице приликом покретања</translation>
 <translation id="1359553908012294236">Ако подесите ове смернице на Тачно или их не конфигуришете, <ph name="PRODUCT_NAME" /> ће омогућити пријављивање гостију. Гости се пријављују помоћу <ph name="PRODUCT_NAME" /> профила на којима су сви прозори у режиму без архивирања.
 
@@ -183,6 +212,7 @@
 <translation id="1583248206450240930">Користи <ph name="PRODUCT_FRAME_NAME" /> подразумевано</translation>
 <translation id="1599424828227887013">Омогућавају Изолацију сајтова за наведене изворе на Android уређајима</translation>
 <translation id="1608755754295374538">URL-ови којима ће бити одобрен приступ уређајима за снимање звука без приказивања упита</translation>
+<translation id="1615221548356595305">Дозволи обједињавање HTTP/2 веза за ове хостове чак и ако се користе сертификати клијента</translation>
 <translation id="1617235075406854669">Омогућавање брисања историје прегледача и преузимања</translation>
 <translation id="163200210584085447">Обрасци на овој листи ће се поредити са безбедносним
       пореклом URL-а који шаље захтев. Ако се пронађе подударање, приступ
@@ -1187,7 +1217,6 @@
       Ако не подесите ове смернице, прикупљање анонимних података преко URL кључева ће бити омогућено, али ће корисник моћи то да промени.</translation>
 <translation id="4250680216510889253">Не</translation>
 <translation id="4261820385751181068">Локалитет екрана за пријављивање на уређају</translation>
-<translation id="4264607809747169568">Контролишу доступност функције дељења датотека у мрежи за Chrome ОС</translation>
 <translation id="427220754384423013">Наводе штампаче које корисник може да користи.
 
       Ове смернице се користе само ако изаберете <ph name="PRINTERS_WHITELIST" /> за <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1346,6 +1375,7 @@
       Ако омогућите ове смернице, сајтовима ће бити дозвољено да се истовремено померају и отварају нове прозоре/картице.
       Ако онемогућите или не подесите ове смернице, сајтовима неће бити дозвољено да се истовремено померају и отварају нови прозор/картицу.</translation>
 <translation id="4680961954980851756">Омогући аутоматско попуњавање</translation>
+<translation id="4703402283970867140">Омогући да модел паметног затамњивања продужи време до затамњења екрана</translation>
 <translation id="4722122254122249791">Омогући Изолацију сајтова за наведене изворе</translation>
 <translation id="4722399051042571387">Ако је подешено на Нетачно, корисници неће моћи да подесе PIN-ове који су слаби и лако се погађају.
 
@@ -1574,13 +1604,6 @@
 
           Ако ове смернице нису подешене, користиће се смернице „AskNotifications“ и корисник ће то моћи да промени.</translation>
 <translation id="538108065117008131">Дозволите да <ph name="PRODUCT_FRAME_NAME" /> рукује следећим типовима садржаја.</translation>
-<translation id="5391363090783552279">Ако подесите ове смернице на Тачно, <ph name="PRODUCT_NAME" /> ће се повезивати са уређајима за пребацивање на свим IP адресама, а не само на приватним RFC1918/RFC4913 адресама.
-
-          Ако подесите ове смернице на Нетачно, <ph name="PRODUCT_NAME" /> ће се повезивати са уређајима за пребацивање само на приватним RFC1918/RFC4913 адресама.
-
-          Ако не подесите ове смернице, <ph name="PRODUCT_NAME" /> ће се повезивати са уређајима за пребацивање само на приватним RFC1918/RFC4913 адресама, осим ако се омогући функција CastAllowAllIPs.
-
-          Ако се смернице „EnableMediaRouter“ подесе на Нетачно, онда вредност ових смерница неће имати ефекта.</translation>
 <translation id="5392172595902933844">Информације о статусу Android-а се шаљу назад
       серверу.
 
@@ -2147,6 +2170,10 @@
 <translation id="6943577887654905793">Назив подешавања за Mac/Linux:</translation>
 <translation id="69525503251220566">Функција претраге према слици која пружа параметре за подразумеваног добављача претраге</translation>
 <translation id="6956272732789158625">Не дозволи ниједном сајту да користи генерисање шифара</translation>
+<translation id="6965859329738616662">Наводи да ли је моделу паметног затамњивања дозвољено да продужи време до затамњења екрана.
+
+      Непосредно пре затамњења екрана модел паметног затамњивања процењује да ли затамњење екрана треба одложити. Ако модел паметног затамњивања одложи затамњење екрана, продужава се време до затамњења. У том случају, одлагање искључивања екрана, закључавања екрана и неактивности екрана прилагођава се да би период одлагања затамњења екрана остао исти као што је првобитно било конфигурисано.
+      Ако се ове смернице подесе на „Тачно“ или се не подесе, модел паметног затамњивања је омогућен и може да продужи време до затамњења екрана. Ако се ове смернице подесе на „Нетачно“, модел паметног затамњивања не утиче на затамњење екрана.</translation>
 <translation id="6982028490425791294">
       Ако подесите ове смернице на Тачно, <ph name="PRODUCT_NAME" /> може да прикупља WebRTC евиденције догађаја из Google услуга (нпр. Google Meet) и отпрема их на Google.
 
@@ -2596,6 +2623,13 @@
 <translation id="7980227303582973781">Без посебних ограничења</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Ротира екран за 0 степени</translation>
+<translation id="8033913082323846868">Ове смернице су застареле са верзијом M70 и уместо њих треба да користите AutofillAddressEnabled и AutofillCreditCardEnabled.
+
+      Омогућавају функцију Аутоматско попуњавање у <ph name="PRODUCT_NAME" />-у и дозвољавају корисницима да аутоматски довршавају веб-обрасце помоћу раније сачуваних података, као што су адреса или подаци о кредитној картици.
+
+      Ако онемогућите ово подешавање, Аутоматско попуњавање неће бити доступно корисницима.
+
+      Ако омогућите ово подешавање или не подесите вредност, корисник ће и даље контролисати Аутоматско попуњавање. Ово ће му омогућити да конфигурише профиле Аутоматског попуњавања и укључује и искључује Аутоматско попуњавање по сопственом нахођењу.</translation>
 <translation id="8044493735196713914">Пријављивање режима покретања уређаја</translation>
 <translation id="8050080920415773384">Матично штампање</translation>
 <translation id="8059164285174960932">URL на ком клијенти за даљински приступ треба да добију токене за потврду аутентичности</translation>
@@ -2940,6 +2974,33 @@
 
       Ако не подесите ове смернице, подразумева се да важе смернице <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Застареле су са верзијом M69. Уместо њих
+      користите OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Ове смернице наводе листу извора (URL-овa) или образаца имена хостова (као што
+      је „*.example.com“) за које не важе безбедносна ограничења
+      небезбедних извора.
+
+      Њихов циљ је да омогуће организацијама да на белу листу ставе изворе
+      за застареле апликације које не могу да примењују TLS или да подесе сервер за тестирање
+      за интерно веб-програмирање да би њихови програмери могли да тестирају функције
+      које захтевају безбедне контексте без примене TLS-а на серверу за
+      тестирање. Ове смернице спречавају и да извор добије ознаку
+      „Није безбедно“ у омнибоксу.
+
+      Подешавање листе URL-ова у овим смерницама има исти ефекат као подешавање
+      ознаке командне линије „--unsafely-treat-insecure-origin-as-secure“ на
+      листу вредности раздвојених зарезима истих URL-ова. Ако се смернице подесе, оне
+      замењују ознаку командне линије.
+
+      Ове смернице су застареле са верзијом M69 у корист
+      смерница OverrideSecurityRestrictionsOnInsecureOrigin. Ако су присутне обе
+      смернице, OverrideSecurityRestrictionsOnInsecureOrigin замењује ове
+      смернице.
+
+      Додатне информације о безбедним контекстима потражите на
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Ове смернице контролишу да ли се сагласност за синхронизацију може приказивати кориснику током првог пријављивања. Треба их подесити на Нетачно ако за корисника никад није потребна сагласност за синхронизацију.
       Ако их подесите на Нетачно, сагласност за синхронизацију се не приказује.
       Ако их подесите на Тачно или их не подесите, сагласност за синхронизацију се може приказивати.</translation>
diff --git a/components/policy/resources/policy_templates_sv.xtb b/components/policy/resources/policy_templates_sv.xtb
index 57c4e972..bd67838 100644
--- a/components/policy/resources/policy_templates_sv.xtb
+++ b/components/policy/resources/policy_templates_sv.xtb
@@ -33,6 +33,28 @@
           Om inställningen är inaktiverad eller inte konfigurerad körs fjärrhjälpsvärden i användarens kontext och fjärranvändare kan inte interagera med fönster som öppnats med högre behörighet på datorn.</translation>
 <translation id="1096105751829466145">Standardsökleverantör</translation>
 <translation id="1099282607296956954">Aktivera webbplatsisolering för alla webbplatser</translation>
+<translation id="1100570158310952027">
+      Principen anger en lista över ursprung (webbadresser) eller värdnamnsmönster (till
+      exempel *.example.com) för vilka säkerhetsbegränsningarna för osäkra ursprung
+      inte ska gälla.
+
+      Avsikten är att tillåta att organisationer vitlistar ursprung för äldre
+      program som inte klarar TLS, eller att konfigurera en provkörningsserver för
+      intern webbutveckling så att deras utvecklare kan testa funktioner
+      som kräver säkra sammanhang utan att behöva köra TLS på
+      provkörningsservern. Med den här principen förhindras också att ursprunget märks
+      som Inte säker i adressfältet.
+
+      Att ange en lista över webbadresser i den här principen har samma effekt som
+      att ställa in kommandoradsflaggan --unsafely-treat-insecure-origin-as-secure
+      på en kommaavgränsad lista över samma webbadresser. Om principen anges
+      åsidosätts kommandoradsflaggan.
+
+      Med den här principen åsidosätts UnsafelyTreatInsecureOriginAsSecure om den används.
+
+      Mer information om säkra sammanhang finns på
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Protokollhanterarna som ställs in via den här principen används inte för intent i Android.</translation>
 <translation id="1118093128235245168">Tillåt att webbplatser begär åtkomst till en ansluten USB-enhet</translation>
 <translation id="1128903365609589950">Konfigurerar den katalog som <ph name="PRODUCT_NAME" /> ska använda för att lagra cachade filer på hårddisken.
@@ -80,6 +102,8 @@
       Om principen inte har ställts in eller är inställd på falskt kommer RC4-krypteringssviter inte att aktiveras. Principen kan ställas in som sant om kompatibilitet med en föråldrad server önskas bibehållas. Detta är en nödlösning, och servern bör omkonfigureras.</translation>
 <translation id="1297182715641689552">Använd en PAC-proxyskript</translation>
 <translation id="1304973015437969093">Tilläggs-/app-id:n och uppdateringsadresser som ska installeras obemärkt</translation>
+<translation id="1307454923744766368">Ursprung eller värdnamnsmönster som begränsningar av
+      osäkra ursprung inte ska gälla för</translation>
 <translation id="1313457536529613143">Anger den procentsats med vilken fördröjningen av skärmdämpningen skalanpassas när användaren gör något då skärmen är dämpad eller strax efter det att skärmen har stängts av.
 
           Om den här principen är inställd anges den procentsats med vilken fördröjningen av skärmdämpningen skalanpassas när användaren gör något eller strax efter det att skärmen har stängts av. När dämpningsfördröjningen skalanpassas anpassas fördröjningen av avstängningen av skärmen, skärmlåset och dödtiden så att samma avstånd från den ursprungligen angivna fördröjningen av skärmdämpningen bibehålls.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">Aktivera uppmaning att konfigurera nätverk om enheten är offline</translation>
 <translation id="1330145147221172764">Aktivera skärmtangentbordet</translation>
 <translation id="13356285923490863">Policynamn</translation>
+<translation id="1352174694615491349">Den här principen innebär att HTTP/2-anslutningar kombineras när klientcertifikat används. För att kunna kombineras måste värdnamnet för den potentiella nya anslutningen och värdnamnet för en befintlig anslutning stämma överens med ett eller flera mönster som beskrivs i den här principen. Principen är en lista över värdar i filterformatet URLBlacklist: example.com stämmer överens med example.com och alla underdomäner (t. ex. sub.example.com) medan .example.net stämmer exakt överens med example.net.
+
+      Kombinationsförfrågningar till olika värdar via anslutningar som använder klientcertifikat kan skapa säkerhets- och sekretessproblem eftersom den befintliga auktoriteten förmedlas till alla förfrågningar även om användaren inte uttryckligen auktoriserade detta. Den här principen är tillfällig och tas bort i en framtida version. Se https://crbug.com/855690.
+
+      Om den här principen inte anges används standardbeteendet att inte tillåta någon kombinering av HTTP/2-anslutningar för anslutningar som använder klientcertifikat.</translation>
 <translation id="1353966721814789986">Startsidor</translation>
 <translation id="1359553908012294236">Om den här principen är inställd på sant, eller om den inte är konfigurerad, aktiveras gästinloggning i <ph name="PRODUCT_NAME" />. Gästinloggningar är profiler i <ph name="PRODUCT_NAME" /> där alla fönster öppnas i inkognitoläge.
 
@@ -184,6 +213,7 @@
 <translation id="1583248206450240930">Använd <ph name="PRODUCT_FRAME_NAME" /> som standard</translation>
 <translation id="1599424828227887013">Aktivera webbplatsisolering för angivna ursprung på Android-enheter</translation>
 <translation id="1608755754295374538">Webbadresser som ska ges tillgång till ljudinspelningsenheter utan meddelande</translation>
+<translation id="1615221548356595305">TIllåt att HTTP/2-anslutningar kombineras för dessa värdar även när klientcertifikat används</translation>
 <translation id="1617235075406854669">Aktivera borttagning av webb- och nedladdningshistorik</translation>
 <translation id="163200210584085447">Mönster på den här listan kommer att matchas mot den begärande
       webbadressens säkerhetsursprung. Om det blir en träff får adressen
@@ -1195,7 +1225,6 @@
       Om principen lämnas utan inställning aktiveras insamling av anonymiserad data kopplad till webbadresser men användaren kan ändra detta.</translation>
 <translation id="4250680216510889253">Nej</translation>
 <translation id="4261820385751181068">Språkkod för enhetens inloggningsskärm</translation>
-<translation id="4264607809747169568">Styr om Network File Share är tillgängligt i ChromeOS</translation>
 <translation id="427220754384423013">Anger vilka skrivare som får användas.
 
       Den här principen används bara när <ph name="BULK_PRINTERS_ACCESS_MODE" /> är inställd på <ph name="PRINTERS_WHITELIST" />.
@@ -1354,6 +1383,7 @@
       Om den här principen är aktiverad kan webbplatser navigera och öppna nya fönster eller flikar samtidigt.
       Om den här principen är inaktiverad eller inte anges kan webbplatser inte navigera och öppna nya fönster eller flikar samtidigt.</translation>
 <translation id="4680961954980851756">Aktivera Autofyll</translation>
+<translation id="4703402283970867140">Aktivera smart dämpningsmodell för att förlänga tiden tills skärmen dämpas</translation>
 <translation id="4722122254122249791">Aktivera webbplatsisolering för enskilda ursprung</translation>
 <translation id="4722399051042571387">Om inställningen har konfigurerats som falsk kan inte användare ange pinkoder som är osäkra och lätta att gissa.
 
@@ -1585,13 +1615,6 @@
 
           Om policyn inte anges används AskNotifications och användaren kan ändra inställningen.</translation>
 <translation id="538108065117008131">Tillåt att <ph name="PRODUCT_FRAME_NAME" /> hanterar följande innehållstyper.</translation>
-<translation id="5391363090783552279">Om den här policyn är inställd på sant ansluter <ph name="PRODUCT_NAME" /> till Cast-enheter på alla IP-adresser, inte bara privata RFC1918/RFC4913-adresser.
-
-          Om den här policyn är inställd på falskt ansluter <ph name="PRODUCT_NAME" /> bara till Cast-enheter på privata RFC1918/RFC4913-adresser.
-
-          Om den här policyn inte är inställd ansluter <ph name="PRODUCT_NAME" /> bara till Cast-enheter på privata RFC1918/RFC4913-adresser, om inte funktionen CastAllowAllIPs är aktiverad.
-
-          Om policyn EnableMediaRouter är inställd på falskt har den här policyns värde ingen effekt.</translation>
 <translation id="5392172595902933844">Android-statusrapporter skickas till servern.
 
       Om principen har ställts in på falskt eller lämnats utan värde skickas ingen statusinformation.
@@ -2164,6 +2187,10 @@
 <translation id="6943577887654905793">Namn för Mac/Linux-inställning:</translation>
 <translation id="69525503251220566">Parameter som anger bildsökningsfunktionen för sökleverantören som är standard</translation>
 <translation id="6956272732789158625">Tillåt inte att någon webbplats använder nyckelgenerering</translation>
+<translation id="6965859329738616662">Anger om en smart modell för nedtoning får utöka tiden tills skärmen tonas ned.
+
+      När skärmen ska tonas ned utvärderar den smarta modellen för nedtoning om skärmens nedtoning ska skjutas upp. Om den smarta modellen för nedtoning skjuter upp nedtoningen, utökas tiden tills skärmen tonas ned. Då justeras även fördröjningarna för skärmavstängning, skärmlåsning och viloläge så att tiden från skärmens nedtoning blir samma som ursprungligen ställdes in.
+      Om den här principen är inställd på Sant eller inte ställs in aktiveras den smarta modellen för nedtoning och kan utöka tiden tills skärmen tonas ned. Om principen ställs in på Falskt påverkar inte den smarta modellen för nedtoning skärmens ljusstyrka.</translation>
 <translation id="6982028490425791294">
       Om principen är inställd på sant får <ph name="PRODUCT_NAME" /> samla in WebRTC-händelseloggar från Googles tjänster (t.ex. Google Meet) och ladda upp dem till Google.
 
@@ -2612,6 +2639,13 @@
 <translation id="7980227303582973781">Inga särskilda begränsningar</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Rotera skärmen 0 grader</translation>
+<translation id="8033913082323846868">Den här principen fasas ut i M70. Använd AutofillAddressEnabled och AutofillCreditCardEnabled i stället.
+
+      Aktiverar funktionen Autofyll för <ph name="PRODUCT_NAME" /> och tillåter att användare fyller i webbformulär automatiskt med tidigare lagrade uppgifter som adress och kreditkortsuppgifter.
+
+      Om du inaktiverar inställningen kan användarna inte använda Autofyll.
+
+      Om du inte aktiverar inställningen eller inte ställer in ett värde, förblir Autofyll under användarens kontroll. Det innebär att användaren kan konfigurera Autofyll-profiler och aktivera eller inaktivera Autofyll efter eget omdöme.</translation>
 <translation id="8044493735196713914">Rapportera omstartsläge för enhet</translation>
 <translation id="8050080920415773384">Integrerad utskrift</translation>
 <translation id="8059164285174960932">Webbadress där fjärråtkomstklienter erhåller sin autentiseringstoken</translation>
@@ -2944,6 +2978,32 @@
 
       Om inget värde anges för principen används <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Utfasat i M69. Använd
+      OverrideSecurityRestrictionsOnInsecureOrigin istället.
+
+      Principen anger en lista över ursprung (webbadresser) eller värdnamnsmönster
+      (som .example.com) för vilka säkerhetsbegränsningar för osäkra ursprung
+      inte ska gälla.
+
+      Avsikten är att tillåta att organisationer vitlistar ursprung för äldre
+      program som inte kan köra TLS, eller att konfigurera en provkörningsserver
+      för intern webbutveckling så att utvecklarna kan testa funktioner som kräver
+      säkra sammanhang utan att behöva köra TLS på provkörningsservern.
+      Med den här principen förhindras också att ursprunget märks som
+      Inte säkert i adressfältet.
+
+      Att ange en lista med webbadresser i den här principen har samma effekt
+      som att ställa in kommandoradsflaggan --unsafely-treat-insecure-origin-as-secure på en
+      kommaavgränsad lista över samma webbadresser. Om principen ställs in
+      åsidosätts kommandoradsflaggan.
+
+      Principen fasas ut i M69 och ersätts av
+      OverrideSecurityRestrictionsOnInsecureOrigin. Om båda principerna används
+      åsidosätts den här principen av OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Mer information om säkra sammanhang finns på
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Den här principen styr om samtycke till synkronisering får visas för användaren vid den första inloggningen. Den ska ställas in på falskt om samtycke till synkronisering aldrig behövs för användaren.
       Om principen är inställd på falskt visas inget samtycke till synkronisering.
       Om principen är inställd på sant eller lämnas utan inställning kan samtycke till synkronisering visas.</translation>
diff --git a/components/policy/resources/policy_templates_sw.xtb b/components/policy/resources/policy_templates_sw.xtb
index 56211a2..5bcc0f1 100644
--- a/components/policy/resources/policy_templates_sw.xtb
+++ b/components/policy/resources/policy_templates_sw.xtb
@@ -33,6 +33,18 @@
           Mipangilio hii ikizimwa au isipowekwa, seva pangishi ya usaidizi wa mbali itatumiwa katika muktadha wa mtumiaji na watumiaji wa mbali hawataweza kutumia madirisha yaliyoinuliwa kwenye eneo-kazi.</translation>
 <translation id="1096105751829466145">Kitoaji chaguomsingi cha utafutaji</translation>
 <translation id="1099282607296956954">Washa kipengele cha Utengaji wa Tovuti katika kila tovuti</translation>
+<translation id="1100570158310952027">
+      Sera hii inabainisha orodha ya vyanzo (URL) au mitindo ya majina ya seva pangishi (kama vile "*.example.com") ambako vizuizi vya usalama kwenye vyanzo visivyo salama havitatumika.
+
+      Nia yake ni kuruhusu mashirika yaweke vyanzo vya kutoa idhini kwenye programu za zamani ambazo haziwezi kutumia TLS au kuweka seva ya majaribio kwa ajili ya usanidi wa tovuti za ndani, ili wasanidi programu waweze kujaribu vipengele vinavyohitaji muktadha salama bila kutumia TLS kwenye seva ya majaribio. Sera hii pia itazuia chanzo kisiwekewa lebo ya  
+        "Si Salama" katika sanduku kuu.
+
+      Hatua ya kuweka orodha za URL katika sera hii ina athari sawa na kuweka mipanglio ya ripoti ya mstari wa amri '--unsafely-treat-insecure-origin-as-secure' kwenye orodha iliyotenganishwa kwa koma ya URL sawa. Iwapo sera hii imewekwa, itabatilisha ripoti ya mstari wa amri. 
+
+      Sera hii itabatilisha UnsafelyTreatInsecureOriginAsSecure, ikiwa imewekwa.
+
+      Kwa maelezo zaidi kuhusu miktadha salama, angalia    https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Vidhibiti vya itifaki vilivyowekwa kupitia sera hii havitumiwi wakati wa kushughulikia utaratibu wa kuratibu wa Android.</translation>
 <translation id="1118093128235245168">Ruhusu tovuti zimuombe mtumiaji atoe idhini ya kufikia kifaa cha USB</translation>
 <translation id="1128903365609589950">Huweka mipangilio ya saraka ambayo <ph name="PRODUCT_NAME" /> itatumia kuhifadhi faili zilizoakibishwa kwenye diski.
@@ -77,6 +89,7 @@
      Sera hii isipowekwa, au ikiwekwa kuwa sivyo basi mipangilio ya kriptografia ya RC4 katika TLS haitawashwa. Vinginevyo inaweza kuwekwa kuwa ndivyo ili kudumisha muoano na seva iliyokwisha muda. Huu ni mkakati tu wa muda na seva inapaswa kuwekwa mipangilio.</translation>
 <translation id="1297182715641689552">Tumia hati ya  proksi ya .pac</translation>
 <translation id="1304973015437969093">Vitambulisho vya Viendelezi/Programu na URL za sasisho vitasakinishwa kimyakimya</translation>
+<translation id="1307454923744766368">Mitindo ya vyanzo au ya majina ya seva pangishi ambako vizuizi vya vyanzo visivyo salama havipaswi kutumika</translation>
 <translation id="1313457536529613143">Hubainisha asilimia ambayo kuchelewa kwa mwangaza wa skrini kutaongezwa wakati shughuli ya mtumiaji inazingatiwa wakati skrini inapunguza mwangaza au mara baada ya skrini kuzimwa. 
 
 Kama sera hii imewekwa, inabainisha asilimia ambayo kuchelewa kwa mwangaza wa skrini huongezwa wakati shughuli ya mtumiaji inazingatiwa wakati skrini inapunguza mwangaza au mara baada ya skrini kuzimwa. Kuchelewa kwa mwangaza kunapoongezwa, kuzimwa kwa skrini, kufungwa kwa skrini na kucheleweshwa kwa kutofanya kitu hurekebishwa ili kudumisha umbali sawa kutoka kwa kucheleweshwa kwa mwangaza wa skrini kama ilivyosanidiwa kiasili. 
@@ -88,6 +101,11 @@
 <translation id="1327466551276625742">Washa ombi la usanidi wa mtandao inapokuwa nje ya mtandao</translation>
 <translation id="1330145147221172764">Washa kibodi ya skrini</translation>
 <translation id="13356285923490863">Jina la Sera</translation>
+<translation id="1352174694615491349">Sera hii huruhusu muunganisho wa HTTP/2 kuungana wakati vyeti vya mteja vinatumika. Ili kuungana, majina ya seva pangishi na muunganisho mpya unaotarajiwa na jina la seva pangishi la muunganisho uliopo lazima yalingane na mojawapo ya mtindo au mitindo zaidi iliyofafanuliwa katika sera hii. Sera hii ni orodha ya seva pangishi zinazotumia muundo wa kichujio cha faili wa URLBlacklist: "example.com" unalingana na "example.com" na vikoa vyote vidogo (k.m. "sub.example.com"). Pia, ".example.net" inalingana kabisa na "example.net".
+
+      Maombi ya kuungana kwenye seva pangishi tofauti kuhusu miuganisho ambayo inatumia vyeti vya mteja yanaweza kusababisha matatizo ya usalama na faragha, kwa kuwa mamlaka tulivu yatatekelezwa kwenye maombi yote, hata kama mtumiaji hakuidhinisha hali hii wazi. Sera hii ni ya muda na itaondolewa katika matoleo ya siku zijazo. Angalia https://crbug.com/855690.
+
+      Kama sera hii haitawekwa, basi hatua chaguomsingi ya kutoruhusu muunganisho wowote wa HTTP/2 kuungana na miunganisho unayotumia vyeti vya mteja itatumika.</translation>
 <translation id="1353966721814789986">Kurasa za kuanza</translation>
 <translation id="1359553908012294236">Sera hii ikiwekwa kuwa ndivyo au isisanidiwe, <ph name="PRODUCT_NAME" /> itawasha kipengee cha wageni kuingia katika akaunti. Kuingia katika akaunti kwa wageni ni wasifu wa <ph name="PRODUCT_NAME" /> ambapo madirisha yote yako katika hali fiche.
 
@@ -171,6 +189,7 @@
 <translation id="1583248206450240930">Tumia <ph name="PRODUCT_FRAME_NAME" /> kwa chaguomsingi</translation>
 <translation id="1599424828227887013">Washa sera ya Utengaji wa Tovuti katika vyanzo vilivyobainishwa kwenye vifaa vya Android</translation>
 <translation id="1608755754295374538">URL ambazo zitapewa ufikiaji wa vifaa vya kunasa sauti bila ushawishi</translation>
+<translation id="1615221548356595305">Ruhusu kuungana kwa miunganisho ya HTTP/2 ya seva hizi pangishi hata wakati vyeti vya mteja vinatumika.</translation>
 <translation id="1617235075406854669">Washa ufutaji wa historia ya upakuaji na kivinjari</translation>
 <translation id="163200210584085447">Michoro katika orodha hii italinganishwa na asili ya
       usalama wa ombi la URL. Zikilingana, idhini ya kufikia vifaa vya
@@ -1173,7 +1192,6 @@
       Sera hii isipowekwa, kipengele cha ukusanyaji wa faragha wa data ukitumia ufunguo wa URL kitabaki kikiwa kimewashwa lakini mtumiaji ataweza kukibadilisha.</translation>
 <translation id="4250680216510889253">La</translation>
 <translation id="4261820385751181068">Lugha ya skrini ya kuingia katika kifaa</translation>
-<translation id="4264607809747169568">Hudhibiti Faili za Kushiriki katika Mtandao kwa ajili ya upatikanaji wa ChromeOS</translation>
 <translation id="427220754384423013">Hubainisha printa ambazo mtumiaji anaweza kutumia.
 
       Sera hii hutumika tu ikiwa mipangilio ya <ph name="PRINTERS_WHITELIST" /> imechaguliwa katika <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1331,6 +1349,7 @@
       Sera hii ikiwashwa, tovuti zitaruhusiwa zivinjari kwa wakati mmoja na zifungue vichupo au madirisha mapya.
       Sera hii ikizimwa au isipowekwa, tovuti hazitaruhusiwa zivinjari kwa wakati mmoja wala kufungua kichupo au dirisha jipya.</translation>
 <translation id="4680961954980851756">Washa uwezo wa Kujaza kitomatiki</translation>
+<translation id="4703402283970867140">Ruhusu muundo mahiri wa kufifiliza mwangaza kuendelea hadi wakati mwangaza wa skrini utakuwa hafifu</translation>
 <translation id="4722122254122249791">Washa Utengaji wa Tovuti katika sehemu zilizobainishwa</translation>
 <translation id="4722399051042571387">Ikiwa sivyo, watumiaji hawataweza kuweka PIN ambazo ni dhaifu na rahisi kuzitambua. 
 
@@ -1557,13 +1576,6 @@
 
           Ikiwa sera hii itasalia kama haijawekwa,  'AskNotifications' itatumika na mtumiaji ataweza kuibadilisha.</translation>
 <translation id="538108065117008131">Ruhusu <ph name="PRODUCT_FRAME_NAME" /> kushughulikia aina zifuatazo za maudhui.</translation>
-<translation id="5391363090783552279">Sera hii ikiwekwa kuwa ndivyo, <ph name="PRODUCT_NAME" /> itaunganishwa na Vifaa vinavyotumia maudhui kwenye anwani zote za IP, si anwani za faragha za RFC1918/RFC4913 pekee.
-
-          Sera hii ikiwekwa kuwa sivyo, <ph name="PRODUCT_NAME" /> itaunganishwa na Vifaa vinavyotumia maudhui kwenye anwani za faragha za RFC1918/RFC4913 pekee.
-
-          Sera hii isipowekwa, <ph name="PRODUCT_NAME" /> itaunganishwa na Vifaa vinavyotuma maudhui kwenye anwani za faragha za RFC1918/RFC4913 pekee, isipokuwa kipengele cha CastAllowAllIPs kiwashwe.
-
-         Sera ya "EnableMediaRouter" ikiwekwa kuwa sivyo, inamaanisha kuwa thamani ya sera hii haitakuwa na athari yoyote.</translation>
 <translation id="5392172595902933844">Maelezo kuhusu hali ya Android yatatumwa kwenye seva.
 
       Sera hii ikiwekwa kuwa sivyo au isipowekwa, maelezo ya hali hayataripotiwa.
@@ -2129,6 +2141,11 @@
 <translation id="6943577887654905793">Jina la Mac/Linux inayopendelewa:</translation>
 <translation id="69525503251220566">Kigezo kinachotoa kipengele cha kutafuta kwa picha kwa mtoa huduma wa utafutaji chaguomsingi</translation>
 <translation id="6956272732789158625">Usiruhusu tovuti yoyote itumie uundaji ufunguo</translation>
+<translation id="6965859329738616662">Hubainisha ikiwa muundo mahari wa kufifiliza mwangaza unaruhusiwa kupitisha muda hadi wakati mwangaza wa skrini utakuwa hafifu.
+
+      Wakati mwangaza wa skrini uko karibu kuwa hafifu, muundo mahiri wa kufifiliza hutathmini ikiwa inafaa kuongeza muda wa kufifiliza mwangaza wa skrini. Ikiwa kipengele mahiri cha kufifiliza mwangaza kinaacha kufifiliza mwangaza wa skrini, kitaongeza muda hadi wakati skrini itafifilizwa. Katika hali hii, kipengele cha kuzima skrini, cha kufunga skrini na cha kuchelewesha kuweka skrini tuli, kitarekebishwa ili kudumisha kipindi sawa kuanzia ucheleweshaji wa kufifilizwa kwa mwangaza wa skrini jinsi ilivyopangwa hapo awali.
+
+      Ikiwa sera hii imewekwa kuwa Ndivyo au haijawekwa, kipengele cha muundo mahiri wa kufifiliza mwangaza kitawashwa na kuruhusiwa kupitisha muda hadi wakati mwangaza wa skrini itafifilizwa. Ikiwa sera hii inawekwa kuwa Sivyo, kipengele cha muundo mahiri wa kufifiliza skrini hakitaathiri ufifilizaji wa skrini.</translation>
 <translation id="6982028490425791294">
       Ukiweka sera hii kuwa 'ndivyo', <ph name="PRODUCT_NAME" /> itaruhusiwa kukusanya kumbukumbu za matukio ya WebRTC kutoka huduma za Google (k.m., Google Meet) na kupakia kumbukumbu hizo kwenye Google.
 
@@ -2570,6 +2587,13 @@
 <translation id="7980227303582973781">Hamna vikwazo maalum</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Zungusha skrini kwa digrii 0</translation>
+<translation id="8033913082323846868">Sera hii iliacha kuendesha huduma katika M70, badala yake, tafadhali tumia AutofillAddressEnabled na AutofillCreditCardEnabled.
+
+      Sera hii huwasha kipengele cha <ph name="PRODUCT_NAME" /> cha Kujaza Kiotomatiki na huruhusu watumiaji kujaza fomu za tovuti kwa kutumia maelezo yaliyohifadhiwa hapo awali kama vile anwani au maelezo ya kadi ya mikopo.    
+      
+     Ukizima mipangilio hii, watumiaji hawataweza kufikia kipengele cha Kujaza Kiotomatiki.
+
+     Ukiwasha mipangilo hii au usiweke thamani yoyote, kipengele cha Kujaza Kiotomatiki kitasalia chini ya udhibiti wa mtumiaji. Hali hii itaruhusu watumiaji kupanga wasifu wa kipengele cha Kujaza Kiotomatiki na kuwasha au kuzima kipengele cha Kujaza Kiotomatiki wakati wowote.</translation>
 <translation id="8044493735196713914">Ripoti modi ya kuwasha kifaa</translation>
 <translation id="8050080920415773384">Uchapishaji Asilia</translation>
 <translation id="8059164285174960932">URL ambapo seva teja za ufikiaji wa mbali zinapaswa kupata tokeni za uthibitishaji</translation>
@@ -2890,6 +2914,21 @@
 
       Ikiwa sera haijawekwa, <ph name="PRINTERS_ALLOW_ALL" /> itaendelea kutumika.
       </translation>
+<translation id="8938932171964587769">Iliacha kuendesha huduma katika M69. Badala yake, tumia
+      OverrideSecurityRestrictionsOnInsecureOrigin. 
+
+     Sera hii inabainisha orodha za vyanzo (URL) vitakavyochukuliwa kuwa muktadha salama (kama vile "*.example.com") ambako vizuizi vya usalama kwenye vyanzo visivyo salama havitatumika.
+
+      Nia yake ni kuruhusu mashirika yatoe idhini kwa programu za zamani ambazo haziwezi kutumia TLS au kuweka seva ya majaribio kwa ajili ya usanidi wa tovuti za ndani, ili wasanidi programu waweze kujaribu vipengele vinavyohitaji muktadha salama bila kutumia TLS kwenye seva ya majaribio. Sera hii pia inazuia chanzo kuwekewa lebo ya 
+      "Si salama" katika sanduku kuu.
+
+      Hatua ya kuweka orodha ya URL katika sera hii ina athari sawa na kuweka mipangilio ya ripoti ya mstari wa amri '--unsafely-treat-insecure-origin-as-secure' kwenye  orodha iliyotenganishwa kwa koma ya URL sawa. Kama sera imewekwa, itabatilisha ripoti ya mstari wa amri.
+
+      Sera hii iliacha kuendesha huduma katika M69 katika    OverrideSecurityRestrictionsOnInsecureOrigin. Ikiwa sera zote zimewekwa, OverrideSecurityRestrictionsOnInsecureOrigin itabatilisha sera hii.
+
+      Kwa maelezo zaidi kuhusu miktadha salama, angalia
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Sera hii inadhibiti ikiwa Idhini ya Kusawazisha inaweza kuonyeshwa kwa mtumiaji anapoingia katika akaunti kwa mara ya kwanza. Inapaswa kuwekwa kuwa sivyo ikiwa Idhini ya Kusawazisha haitahitajika kwa mtumiaji.
         Ikiwa imewekwa kuwa sivyo, Idhini ya Kusawazisha haitaonekana.
         Ikiwa imewekwa kuwa ndivyo au haijawekwa, Idhini ya Kusawazisha inaweza kuonyeshwa.</translation>
diff --git a/components/policy/resources/policy_templates_ta.xtb b/components/policy/resources/policy_templates_ta.xtb
index 5648a44d..6c721e8 100644
--- a/components/policy/resources/policy_templates_ta.xtb
+++ b/components/policy/resources/policy_templates_ta.xtb
@@ -33,6 +33,20 @@
           இந்தக் கொள்கை முடக்கப்பட்டாலோ அல்லது உள்ளமைக்கப்படவில்லை என்றாலோ, தொலைநிலை உதவி ஹோஸ்ட்டானது பயனரின் சூழலில் இயங்கும், தொலைநிலைப் பயனர்களால் டெஸ்க்டாப்பில் உயர்நிலைச் சாளரங்களை அணுக முடியாது.</translation>
 <translation id="1096105751829466145">இயல்புநிலை தேடல் வழங்குநர்</translation>
 <translation id="1099282607296956954">ஒவ்வொரு தளத்திலும் தளத்தைத் தனிப்படுத்தும் அம்சத்தை இயக்கு</translation>
+<translation id="1100570158310952027">
+      கொள்கையானது மூலங்கள் (URLகள்) அல்லது ஹோஸ்ட்பெயர் பேட்டர்ன்களின் ("*.example.com" போன்ற) பட்டியலைக் குறிப்பிடுகிறது, அவற்றுக்கு பாதுகாப்பற்ற மூலங்கள் குறித்த பாதுகாப்புக் கட்டுப்பாடுகள் பொருந்தாது.
+
+      TLSஸைப் பயன்படுத்த முடியாத லெகஸி ஆப்ஸ்களுக்கான ஏற்புப்பட்டியல் மூலங்களை அமைக்க அல்லது அக இணைய மேம்பாட்டுக்காக, சோதனைச் சேவையகத்தை அமைக்க நிறுவனங்களை அனுமதிப்பதே இதன் நோக்கமாகும், இதன் மூலம் அவற்றின் டெவெலப்பர்கள், சோதனைச் சேவையகத்தில் TLSஸைப் பயன்படுத்தாமல் பாதுகாப்பான சூழல்கள் தேவைப்படும் அம்சங்களைச் சோதிக்க முடியும். இந்தக் கொள்கையானது சர்வபுலத்தில் மூலம் “பாதுகாப்பற்றது” என லேபிளிடப்படுவதைத் தடுக்கவும் செய்யும்.
+
+      
+இந்தக் கொள்கையில் URLகளின் பட்டியலை அமைப்பது, காற்புள்ளியால் பிரிக்கப்பட்ட ஒரே URLகளின் பட்டியலுக்கு, '--unsafely-treat-insecure-origin-as-secure' எனும் கட்டளை வரிக் கொடியை அமைப்பதால் கிடைக்கும் அதே விளைவைக் கொண்டிருக்கும். இந்தக் கொள்கை அமைக்கப்பட்டால், கட்டளை வரிக் கொடி மேலெழுதப்படும்.
+.
+
+      UnsafelyTreatInsecureOriginAsSecure இருந்தால் அதை இந்தக் கொள்கை மேலெழுதும்.
+
+      பாதுகாப்பான சூழல்கள் பற்றிய கூடுதல் தகவல்களுக்கு
+      https://www.w3.org/TR/secure-contexts/ என்ற தளத்தைப் பார்க்கவும்.
+      </translation>
 <translation id="1117535567637097036">Android இன்டென்ட்களைப் பயன்படுத்தும் போது, இந்தக் கொள்கை மூலம் அமைத்த நெறிமுறை ஹேண்ட்லர்கள் பயன்படுத்தப்படாது.</translation>
 <translation id="1118093128235245168">இணைக்கப்பட்டுள்ள USB சாதன அணுகலைக் கொடுக்குமாறு பயனரிடம் கேட்கத் தளங்களை அனுமதிக்கும்</translation>
 <translation id="1128903365609589950">தற்காலிகமாகச் சேமிக்கப்பட்ட கோப்புகளை டிஸ்க்கில் சேமிப்பதற்காக <ph name="PRODUCT_NAME" /> பயன்படுத்தும் கோப்பகத்தை உள்ளமைக்கும்.
@@ -75,6 +89,8 @@
       கொள்கை அமைக்கப்படாவிட்டால், அல்லது false என அமைக்கப்பட்டால், TLS இல் உள்ள சைஃபர் பொதிகள் இயக்கப்படாது. அல்லது காலாவதியான சேவையகத்துடனான இணக்கத்தன்மையைத் தொடர அது true என அமைக்கப்படலாம். இது ஒரு இடைக்கால நடவடிக்கையாகும், சேவையகம் மீண்டும் உள்ளமைக்கப்பட வேண்டும்.</translation>
 <translation id="1297182715641689552">.pac ப்ராக்ஸி ஸ்கிரிப்ட்டைப் பயன்படுத்து</translation>
 <translation id="1304973015437969093">பின்னணியில் நிறுவப்பட வேண்டிய நீட்டிப்பு/பயன்பாட்டு ஐடிகளும் புதுப்பிப்பு URLகளும்</translation>
+<translation id="1307454923744766368">பாதுகாப்பற்ற மூலங்கள் குறித்த கட்டுப்பாடுகளைப் பயன்படுத்தக் கூடாத
+      மூலங்கள் அல்லது ஹோஸ்ட்பெயர் பேட்டர்ன்கள்</translation>
 <translation id="1313457536529613143">திரை மங்கலாகும்போது அல்லது திரை முடக்கப்பட்டவுடன் பயனரின் நடவடிக்கையைக் கண்காணிக்கும்போது அளவிடப்படும் மங்கல் தாமதத்தின் சதவீதத்தைக் குறிப்பிடுகிறது.
 
           இந்தக் கொள்கை அமைக்கப்பட்டால், திரை மங்கலாகும்போது அல்லது திரை முடக்கப்பட்டவுடன் பயனரின் நடவடிக்கையைக் கண்காணிக்கும்போது அளவிடப்படும் மங்கல் தாமதத்தின் சதவீதத்தைக் குறிப்பிடும். மங்கல் தாமதம் அளவிடப்படும்போது, மங்கல் தாமதத்திலிருந்து முதலில் உள்ளமைக்கப்பட்டபோது இருந்த அதே இடைவெளிகத் தொடர்வதற்குத் திரை முடக்கம், திரைப் பூட்டு மற்றும் செயலற்ற நிலை தாமதங்கள் சரிசெய்யப்படும்.
@@ -86,6 +102,11 @@
 <translation id="1327466551276625742">ஆஃப்லைனில் இருக்கும்போது பிணைய உள்ளமைவுத் தூண்டலை இயக்கு</translation>
 <translation id="1330145147221172764">திரை விசைப்பலகை இயக்கு</translation>
 <translation id="13356285923490863">கொள்கைப் பெயர்</translation>
+<translation id="1352174694615491349">கிளையன்ட் சான்றிதழ்கள் பயன்பாட்டில் இருக்கும்போது, இந்தக் கொள்கையானது HTTP/2 இணைப்பு ஒன்றிணைதலை அனுமதிக்கும். ஒன்றிணைப்பதற்காக, சாத்தியமுள்ள புதிய இணைப்பின் ஹோஸ்ட்பெயர், தற்போதுள்ள இணைப்பின் ஹோஸ்ட்பெயர் ஆகிய இரண்டுமே இந்தக் கொள்கை விளக்கும் ஒன்று அல்லது பல பேட்டர்ன்களுடன் பொருந்த வேண்டும். இந்தக் கொள்கையானது URLBlacklist வடிப்பான் வடிவமைப்பைப் பயன்படுத்துகின்ற ஹோஸ்ட்டுகளின் ஒரு பட்டியலாகும்: "example.com" ஆனது "example.com" மற்றும் அனைத்து உள்களங்களுடன் பொருந்துகிறது, அதேவேளை ".example.net" ஆனது "example.net" உடன் முழுதாகப் பொருந்துகிறது.
+
+      சூழல் அங்கீகாரத்தைப் பயனர் வெளிப்படையாக அங்கீகரிக்காவிட்டால் கூட, அது அனைத்துக் கோரிக்கைகளுக்கும் அனுப்பப்படும் என்பதால், கிளையன்ட் சான்றிதழ்களைப் பயன்படுத்துகின்ற இணைப்புகள் வழியாக வெவ்வேறு ஹோஸ்ட்டுகளுக்கான கோரிக்கைகளை ஒன்றிணைப்பது பாதுகாப்பு மற்றும் தனியுரிமைச் சிக்கல்களை உருவாக்கலாம். இந்தக் கொள்கை தற்காலிகமானது, எதிர்கால வெளியீட்டில் அகற்றப்படும். https://crbug.com/855690ஐப் பார்க்கவும்.
+
+      கொள்கையை அமைக்காமல் விட்டால், கிளையன்ட் சான்றிதழ்களைப் பயன்படுத்துகின்ற இணைப்புகளில் எந்தவொரு இணைப்பு ஒன்றிணைதலை அனுமதிக்காத இயல்பு நடத்தை பயன்படுத்தப்படும்.</translation>
 <translation id="1353966721814789986">தொடக்கப் பக்கங்கள்</translation>
 <translation id="1359553908012294236">இந்தக் கொள்கை true என அமைக்கப்பட்டிருந்தாலோ அல்லது உள்ளமைக்கப்படாமல் இருந்தாலோ, விருந்தினர் உள்நுழைவுகளை <ph name="PRODUCT_NAME" /> இயக்கும். விருந்தினர் உள்நுழைவுகள் என்பவை அனைத்துச் சாளரங்களும் மறைநிலைப் பயன்முறையில் இருக்கும் <ph name="PRODUCT_NAME" /> சுயவிவரங்களாகும்.
 
@@ -171,6 +192,7 @@
 <translation id="1583248206450240930"><ph name="PRODUCT_FRAME_NAME" /> ஐ இயல்புநிலையாகப் பயன்படுத்து</translation>
 <translation id="1599424828227887013">Android சாதனங்களில், குறிப்பிட்ட தளங்களில் தளத்தைத் தனிப்படுத்தும் அம்சத்தை இயக்கு</translation>
 <translation id="1608755754295374538">அறிவுறுத்தல் இல்லாமல் ஆடியோ பிடிப்புச் சாதனங்களுக்கு அணுகல் உள்ள URLகள்</translation>
+<translation id="1615221548356595305">கிளையன்ட் சான்றிதழ்களைப் பயன்படுத்தும்போதும் இந்த ஹோஸ்ட்டுகளுக்கான HTTP/2 இணைப்புகளின் ஒன்றிணைதலை அனுமதிக்கவும்.</translation>
 <translation id="1617235075406854669">உலாவி மற்றும் பதிவிறக்க வரலாற்றின் நீக்கத்தை இயக்கு</translation>
 <translation id="163200210584085447">இந்தப் பட்டியலில் உள்ள வடிவங்கள்,
       கோரப்படும் URL இன் பாதுகாப்பு மூலத்துடன் ஒப்பிடப்படும்.  ஏதேனும் பொருத்தம் இருந்தால், வீடியோ
@@ -1168,7 +1190,6 @@
       இந்தக் கொள்கையை அமைக்காவிட்டால், URLகளோடு சேகரிக்கப்படும் அடையாளமற்ற தரவுத் தொகுப்பு இயக்கப்படும், எனினும் பயனரால் அதை மாற்ற முடியும்.</translation>
 <translation id="4250680216510889253">இல்லை</translation>
 <translation id="4261820385751181068">சாதன உள்நுழைவுத் திரையின் மொழி</translation>
-<translation id="4264607809747169568">ChromeOSஸின் கிடைக்கும்நிலைக்கான ‘நெட்வொர்க் கோப்புப் பகிர்வுகள்’ அம்சத்தைக் கட்டுப்படுத்தும்</translation>
 <translation id="427220754384423013">பயனர் பயன்படுத்தக்கூடிய பிரிண்டர்களைக் குறிப்பிடும்.
 
       <ph name="BULK_PRINTERS_ACCESS_MODE" />க்கு <ph name="PRINTERS_WHITELIST" /> தேர்வு செய்யப்பட்டால் மட்டுமே, இந்தக் கொள்கை பயன்படுத்தப்படும்.
@@ -1324,6 +1345,7 @@
       இந்தக் கொள்கையானது இயக்கப்பட்டால், தளங்கள் புதிய சாளரங்கள்/தாவல்களைத் திறந்து அதே நேரத்தில் அங்கே ஒரு குறிப்பிட்ட பகுதிக்கு வழிசெலுத்தித் செல்ல அனுமதிக்கப்படும்.
       இந்தக் கொள்கையானது முடக்கப்பட்டாலோ அல்லது அமைக்கப்படவில்லை என்றாலோ, தளங்கள் புதிய சாளரங்கள்/தாவல்களைத் திறந்து அதே நேரத்தில் அங்கே ஒரு குறிப்பிட்ட பகுதிக்கு வழிசெலுத்தித் செல்ல அனுமதிக்கப்படாது.</translation>
 <translation id="4680961954980851756">தானியங்குநிரப்புதலை இயக்கு</translation>
+<translation id="4703402283970867140">திரை மங்கலாகும் வரையான நேரத்தை நீட்டிக்க, ஸ்மார்ட் மங்கலை இயக்கவும்</translation>
 <translation id="4722122254122249791">குறிப்பிட்ட தளங்களில் தளத்தைத் தனிப்படுத்தும் அம்சத்தை இயக்கு</translation>
 <translation id="4722399051042571387">தவறு என அமைத்தால், எளிதில் யூகிக்கக்கூடிய வலிமையற்ற பின்களைப் பயனர்களால் அமைக்க முடியாது.
 
@@ -1535,13 +1557,6 @@
 <translation id="5370279767682621504">இயல்புக்கு மாறான போர்ட்களில் HTTP/0.9 ஆதரவை இயக்கும்</translation>
 <translation id="5378985487213287085">டெஸ்க்டாப் அறிவிப்புகளைக் காண்பிக்க வலைத்தளங்கள் அனுமதிக்கின்றனவா என்பதை அமைக்க உங்களை அனுமதிக்கிறது. காண்பிக்கப்படும் டெஸ்க்டாப் அறிவிப்புகள் இயல்புநிலை மூலம் அனுமதிக்கப்படும், இயல்புநிலை மூலம் மறுக்கப்படும் அல்லது டெஸ்க்டாப் அறிவிப்புகளைக் காண்பிக்க வலைத்தளம் விரும்புகிறது என ஒவ்வொரு முறையும் பயனர் கேட்கப்படுவார். இந்தக் கொள்கையானது அமைக்கப்படாமல் விலக்கப்பட்டிருந்தால், 'அறிவிப்புகளைக் கேள்' என்பது பயன்படுத்தப்படும், பயனர் அதை மாற்ற இயலும்.</translation>
 <translation id="538108065117008131">பின்வரும் உள்ளடக்க வகைகளைக் கையாள <ph name="PRODUCT_FRAME_NAME" /> ஐ அனுமதி.</translation>
-<translation id="5391363090783552279">இந்தக் கொள்கையானது சரி என அமைக்கப்பட்டால், <ph name="PRODUCT_NAME" /> ஆனது RFC1918/RFC4913 என்ற தனிப்பட்ட முகவரிகளில் மட்டுமின்றி, எல்லா IP முகவரிகளிலும் உள்ள அனுப்பும் சாதனங்களுடனும் இணைக்கப்படும்.
-
-          இந்தக் கொள்கையானது தவறு என அமைக்கப்பட்டால், <ph name="PRODUCT_NAME" /> ஆனது  RFC1918/RFC4913 என்ற தனிப்பட்ட முகவரிகளில் உள்ள அனுப்பும் சாதனங்களில் மட்டும் இணைக்கப்படும்.
-
-          இந்தக் கொள்கையானது அமைக்கப்படவில்லை எனில், CastAllowAllIPs அம்சம் இயக்கப்படும் வரை, <ph name="PRODUCT_NAME" /> ஆனது RFC1918/RFC4913 என்ற தனிப்பட்ட முகவரிகளில் உள்ள அனுப்பும் சாதனங்களில் மட்டும் இணைக்கப்படும்.
-
-          "EnableMediaRouter" கொள்கை தவறு என அமைக்கப்பட்டால், இந்தக் கொள்கையின் மதிப்பில் எந்த மாற்றமும் ஏற்படாது.</translation>
 <translation id="5392172595902933844">Android இன் நிலை பற்றிய தகவல்
       சேவையகத்திற்கு அனுப்பப்படும்.
 
@@ -2086,6 +2101,10 @@
 <translation id="6943577887654905793">Mac/Linux விருப்பப் பெயர்:</translation>
 <translation id="69525503251220566">இயல்பு தேடல் வழங்குநருக்கான படம் மூலம் தேடு என்ற அம்சத்தை வழங்கும் அளவுரு</translation>
 <translation id="6956272732789158625">விசை உருவாக்கத்தைப் பயன்படுத்த எந்தத் தளத்தையும் அனுமதிக்க வேண்டாம்</translation>
+<translation id="6965859329738616662">திரை மங்கலாகுவது வரையான நேரத்தை நீட்டிக்க ஸ்மார்ட் மங்கல் மாதிரி அனுமதிக்கப்படுமா என்பதைக் குறிப்பிடும்.
+
+      திரை மங்கலாகப்போகும் சமயத்தில், திரை மங்குவதை ஒத்திவைக்க வேண்டுமா என் ஸ்மார்ட் மங்கல் மாதிரி மதிப்பீடு செய்யும். ஸ்மார் மங்கல் மாதிரியானது திரை மங்குவதை ஒத்திவைத்தால், திரை மங்கலாகுவது வரையான நேரத்தை அது பயனுள்ள முறையில் நீட்டிக்கும். இச்சந்தர்ப்பத்தில், திரை அணைவு, திரைப் பூட்டு, ஐடில் தாமங்கள் ஆகியவை, உண்மையில் உள்ளமைத்தவாறு திரை மங்கல் தாமதத்திலிருந்து அதேயளவு நேரங்களைப் பேணுமாறு சரிசெய்யப்படும்.
+      இந்தக் கொள்கையைச் சரி என அமைத்தால் அல்லது அதை அமைக்காமல் விட்டால், ஸ்மார்ட் மங்கல் மாதிரி இயக்கப்பட்டு, திரை மங்கலாகுவது வரையான நேரத்தை நீட்டிக்க அனுமதிக்கப்படும். இந்தக் கொள்கையைத் தவறு என அமைத்தால், ஸ்மார் மங்கல் மாதிரியானது திரையை மங்கலாக்குவதில் சம்பந்தப்படாது.</translation>
 <translation id="6982028490425791294">
       இந்தக் கொள்கையை ‘சரி’ என அமைத்தால், Google சேவைகளிலிருந்து (எ.கா Google Meet) WebRTC நிகழ்வுப் பதிவுகளைச் சேகரித்து, அவற்றை Googleளுக்குப் பதிவேற்ற <ph name="PRODUCT_NAME" />க்கு அனுமதியளிக்கப்படும்.
 
@@ -2513,6 +2532,13 @@
 <translation id="7980227303582973781">சிறப்புக் கட்டுப்பாடுகள் எதுவுமில்லை</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">திரையை 0 டிகிரிக்குச் சுழற்று</translation>
+<translation id="8033913082323846868">M70தில் இந்தக் கொள்கை நிராகரிக்கப்பட்டது, அதற்குப்பதில் AutofillAddressEnabled மற்றும் AutofillCreditCardEnabled ஆகியவற்றைப் பயன்படுத்தவும்.
+
+      <ph name="PRODUCT_NAME" /> இன் தானியங்கு நிரப்புதல் அம்சத்தை இயக்குகிறது, மேலும் முகவரி அல்லது கிரெடிட் கார்டு தகவல் போன்று முன்பே சேமிக்கப்பட்ட தகவல்களைப் பயன்படுத்தி வலைப் படிவங்களைத் தானாகவே நிரப்புவதற்கு பயனர்களை அனுமதிக்கிறது.
+
+      நீங்கள் இந்த அமைப்பை முடக்கினால், பயனர்கள் தன்னியக்கநிரப்புதல் அம்சத்தை அணுக முடியாது.
+
+      நீங்கள் இந்த அம்சத்தை இயக்கினால் அல்லது எந்தவொரு மதிப்பையும் இதற்கு தரவில்லை என்றால், தன்னியக்கநிரப்புதல் பயனரின் கட்டுப்பாட்டில் இருக்கும். இதனால் அவர்கள் தன்னியக்க நிரப்புதலை, அவர்களின் விருப்புரிமையின்படி இயக்கலாம் அல்லது அணைக்கலாம்.</translation>
 <translation id="8044493735196713914">சாதனத்தின் மறுஇயக்கப் பயன்முறையை அறிக்கையிடவும்</translation>
 <translation id="8050080920415773384">இயல்நிலை அச்சிடல்</translation>
 <translation id="8059164285174960932">தொலைநிலை அணுகல் க்ளையன்ட்கள் தங்கள் அங்கீகரிப்பு டோக்கனைப் பெற வேண்டிய URL</translation>
@@ -2827,6 +2853,25 @@
 
       இந்தக் கொள்கை அமைக்கப்படவில்லை என்றால், <ph name="PRINTERS_ALLOW_ALL" /> பயன்படுத்தப்படும்.
       </translation>
+<translation id="8938932171964587769">M69தில் நிராகரிக்கப்பட்டது. அதற்குப்பதில் 
+      OverrideSecurityRestrictionsOnInsecureOrigin என்பதைப் பயன்படுத்தவும்.
+
+     
+கொள்கையானது மூலங்கள் (URLகள்) அல்லது ஹோஸ்ட்பெயர் பேட்டர்ன்களின் ("*.example.com" போன்ற) பட்டியலைக் குறிப்பிடுகிறது, அவற்றுக்கு பாதுகாப்பற்ற மூலங்கள் குறித்த பாதுகாப்புக் கட்டுப்பாடுகள் பொருந்தாது
+.
+
+      
+TLSஸைப் பயன்படுத்த முடியாத லெகஸி ஆப்ஸ்களுக்கான ஏற்புப்பட்டியல் மூலங்களை அமைக்க அல்லது அக இணைய மேம்பாட்டுக்காக, சோதனைச் சேவையகத்தை அமைக்க நிறுவனங்களை அனுமதிப்பதே இதன் நோக்கமாகும், இதன் மூலம் அவற்றின் டெவெலப்பர்கள், சோதனைச் சேவையகத்தில் TLSஸைப் பயன்படுத்தாமல் பாதுகாப்பான சூழல்கள் தேவைப்படும் அம்சங்களைச் சோதிக்க முடியும். இந்தக் கொள்கையானது சர்வபுலத்தில் மூலம் “பாதுகாப்பற்றது” என லேபிளிடப்படுவதைத் தடுக்கவும் செய்யும்
+.
+
+      
+இந்தக் கொள்கையில் URLகளின் பட்டியலை அமைப்பது, காற்புள்ளியால் பிரிக்கப்பட்ட ஒரே URLகளின் பட்டியலுக்கு, '--unsafely-treat-insecure-origin-as-secure' எனும் கட்டளை வரிக் கொடியை அமைப்பதால் கிடைக்கும் அதே விளைவைக் கொண்டிருக்கும். இந்தக் கொள்கை அமைக்கப்பட்டால், கட்டளை வரிக் கொடி மேலெழுதப்படும். . UnsafelyTreatInsecureOriginAsSecure இருந்தால் அதை இந்தக் கொள்கை மேலெழுதும்.
+.
+
+      OverrideSecurityRestrictionsOnInsecureOriginனைக் கருத்தில் கொண்டு M69தில் இந்தக் கொள்கை நிராகரிக்கப்பட்டது. இரு கொள்கைகளும் இருந்தால், இந்தக் கொள்கையை, OverrideSecurityRestrictionsOnInsecureOrigin மேலெழுதும்.
+
+      பாதுகாப்பான சூழல்கள் பற்றிய கூடுதல் தகவல்களைப் பெற,       https://www.w3.org/TR/secure-contexts/ என்ற தளத்தைப் பார்க்கவும்
+      </translation>
 <translation id="8942616385591203339">முதல் உள்நுழைவின் போது, ஒத்திசைவு அனுமதி பயனருக்குக் காண்பிக்கப்பட வேண்டுமா என்பதை இந்தக் கொள்கை கட்டுப்படுத்துகிறது. பயனருக்கு ஒத்திசைவு அனுமதி ஒருபோதும் தேவைப்படாத சூழலில், இது தவறு என அமைக்கப்படும்.
       தவறு என அமைக்கப்பட்டால், ஒத்திசைவு அனுமதி காண்பிக்கப்படாது.
       சரி என அமைக்கப்பட்டால் அல்லது அமைக்கப்படவில்லை எனில், ஒத்திசைவு அனுமதி காண்பிக்கப்படும்.</translation>
diff --git a/components/policy/resources/policy_templates_te.xtb b/components/policy/resources/policy_templates_te.xtb
index 8c867a3d..c3de764 100644
--- a/components/policy/resources/policy_templates_te.xtb
+++ b/components/policy/resources/policy_templates_te.xtb
@@ -312,6 +312,7 @@
 <translation id="1914840757300882918">ఈ విధానాన్ని సెట్ చేస్తే, హోస్ట్ RemoteAccessHostTokenValidationUrlకు ప్రామాణీకరించడానికి ఇచ్చిన జారీదారు CNతో క్లయింట్ ప్రమాణపత్రాన్ని ఉపయోగిస్తుంది. ఏదైనా అందుబాటులో ఉన్న క్లయింట్ ప్రమాణపత్రాన్ని ఉపయోగించడానికి దాన్ని "*"కి సెట్ చేయండి.
 
 ఈ లక్షణం ప్రస్తుతం సర్వర్ తరపున నిలిపివేయబడింది.</translation>
+<translation id="1920046221095339924">పరికరంలో నిర్వహించబడిన సెషన్‌ను అనుమతించండి</translation>
 <translation id="1929709556673267855">పరికరాలకు అనుకూలంగా ఉండే ఎంటర్‌ప్రైజ్ ప్రింటర్‌ల కోసం కాన్ఫిగరేషన్‌లను అందిస్తుంది.
 
       <ph name="PRODUCT_OS_NAME" /> పరికరాలకు ప్రింటర్ కాన్ఫిగరేషన్‌లను అందించడానికి ఈ విధానం మిమ్మల్ని అనుమతిస్తుంది.  ఫార్మాట్ అన్నది NativePrinters నిఘంటువుని అనుసరించి ఉండాలి, వైట్‌లిస్టింగ్ లేదా బ్లాక్‌లిస్టింగ్ కోసం ఒక్కో ప్రింటర్ కోసం అదనంగా అవసరమైన "id" లేదా "guid" ఫీల్డ్ కూడా ఉండాలి.
@@ -345,6 +346,7 @@
 
       ఒకవేళ ఈ సెట్టింగ్‌ని ప్రారంభించినట్లైతే లేదా సెట్ చేయనట్లైతే, UIకి సంబంధించిన వరకు చిరునామాలు ఏవి ఆటోఫిల్‌ చేయాలో, చేయకూడదో వినియోగదారులు నియంత్రించవచ్చు.</translation>
 <translation id="1960840544413786116">subjectAlternativeName పొడిగింపు లేని స్థానిక విశ్వసనీయ యాంకర్‌ల ద్వారా మంజూరు చేయబడిన ప్రమాణపత్రాలను అనుమతించాలో లేదో నిశ్చయించండి</translation>
+<translation id="1962273523772270623">Google సేవల నుండి WebRTC ఈవెంట్ లాగ్‌ల సేకరణను అనుమతించండి</translation>
 <translation id="1964634611280150550">అజ్ఞాత మోడ్ నిలిపివేయబడింది</translation>
 <translation id="1964802606569741174">ఈ విధానం Android YouTube అనువర్తనంపై ఎలాంటి ప్రభావాన్ని చూపదు. YouTubeలో సురక్షిత మోడ్ అమలు చేయదలిస్తే, Android YouTube అనువర్తనం ఇన్‌స్టాలేషన్ అనుమతించకూడదు.</translation>
 <translation id="1969212217917526199">రిమోట్ ప్రాప్యత హోస్ట్ డీబగ్ బిల్డ్‌లలో విధానాలను భర్తీ చేస్తుంది.
@@ -1359,7 +1361,6 @@
       ఈ విధానాన్ని సెట్ చేయకపోతే, URL-కీ ఉన్న అజ్ఞాతీకరించిన డేటా సేకరణ ప్రారంభించబడుతుంది, కానీ వినియోగదారు దీన్ని మార్చగలుగుతారు.</translation>
 <translation id="4250680216510889253">కాదు</translation>
 <translation id="4261820385751181068">పరికర సైన్-ఇన్ స్క్రీన్ లొకేల్</translation>
-<translation id="4264607809747169568">ChromeOS లభ్యత కోసం నెట్‌వర్క్ ఫైల్ షేరింగ్‌లను నియంత్రిస్తుంది</translation>
 <translation id="427220754384423013">వినియోగదారు ఉపయోగించగల ప్రింటర్‌లను పేర్కొంటుంది.
 
       <ph name="BULK_PRINTERS_ACCESS_MODE" /> కోసం <ph name="PRINTERS_WHITELIST" />ని ఎంచుకున్నప్పుడు మాత్రమే ఈ విధానం ఉపయోగించబడుతుంది.
@@ -1796,12 +1797,6 @@
 <translation id="5370279767682621504">డిఫాల్ట్ యేతర పోర్ట్‌లలో HTTP/0.9 మద్దతును ప్రారంభించండి</translation>
 <translation id="5378985487213287085">వెబ్‌సైట్‌లు డెస్క్‌టాప్ ప్రకటనలు ప్రదర్శించవచ్చో, లేదో అని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. డిఫాల్ట్‌గా డెస్క్‌టాప్ ప్రకటనలను ప్రదర్శించడానికి అనుమతించబడతాయి, ఢిఫాల్ట్‌ను నిరాకరించినా లేదా వినియోగదారు ప్రతీసారి వినియోగదారు వెబ్‌సైట్ డెస్క్‌టాప్ ప్రకటనలను ప్రదర్శించాలా వద్దా అని అడగబడతారు. ఈ విధానం సెట్ చేయకుండా వదిలేస్తే, 'AskNotifications' ఉపయోగించబడుతుంది మరియు వినియోగదారు దీన్ని మార్చగలుగుతారు.</translation>
 <translation id="538108065117008131">ఈ క్రింది కంటెంట్ రకాలని నిర్వహించడానికి <ph name="PRODUCT_FRAME_NAME" />ని అనుమతించు.</translation>
-<translation id="5391363090783552279">ఈ విధానాన్ని ఒప్పు అని సెట్ చేస్తే, <ph name="PRODUCT_NAME" /> కేవలం RFC1918/RFC4913 ప్రైవేట్ చిరునామాలకు కాకుండా, అన్ని IP చిరునామాల్లో ప్రసార పరికరాలకు కనెక్ట్ చేస్తుంది.
-
-          ఈ విధానాన్ని తప్పు అని సెట్ చేస్తే, <ph name="PRODUCT_NAME" /> కేవలం RFC1918/RFC4913 ప్రైవేట్ చిరునామాలలోని, ప్రసార పరికరాలకు కనెక్ట్ చేస్తుంది.
-
-          ఈ విధానాన్ని సెట్ చేయకుంటే, CastAllowAllIPs ఫీచర్ ప్రారంభించబడనంత వరకు <ph name="PRODUCT_NAME" /> కేవలం RFC1918/RFC4913 ప్రైవేట్ చిరునామాల్లోని ప్రసార పరికరాలకి కనెక్ట్ చేస్తుంది.
-          విధానం "EnableMediaRouter"ని తప్పుకి సెట్ చేస్తే, ఈ విధానం విలువపై ఎటువంటి ప్రభావం ఉండదు.</translation>
 <translation id="5392172595902933844">Android యొక్క స్థితి గురించి సమాచారం తిరిగి సర్వర్‌కి
       పంపబడింది.
 
@@ -2269,6 +2264,11 @@
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే లేదా జాబితా ఖాళీగా ఉంటే అన్ని స్కీమ్‌లు <ph name="PRODUCT_NAME" />లో ప్రాప్యత చేయబడతాయి.</translation>
 <translation id="6652197835259177259">స్థానికంగా నిర్వహించబడే వినియోగదారుల సెట్టింగ్‌లు</translation>
 <translation id="6658245400435704251">పరికరం సర్వర్‌కు నవీకరణ మొదటిసారి విడుదల చేయబడిన సమయం నుండి నవీకరణ యొక్క దీని డౌన్‌లోడ్‌ను గరిష్టంగా ఎన్ని సెకన్ల వరకు నియమరహితంగా ఆలస్యం చేయాలో ఆ సెకన్ల సంఖ్యను నిర్దేశిస్తుంది. పరికరం గోడ గడియార సమయం దృష్ట్యా ఈ సమయంలో ఒక భాగం మరియు నవీకరణ తనిఖీల సంఖ్య దృష్ట్యా మిగిలిన భాగం వేచి ఉండవచ్చు. ఏ సందర్భంలో అయినా, స్కాటర్ నిర్దిష్ట సమయ మొత్తానికి అప్పర్ బౌండ్ చేయబడుతుంది అందువల్ల పరికరం ఎప్పటికీ నవీకరణను డౌన్‌లోడ్ చేయడానికి వేచి ఉండి ఎన్నడూ స్తంభించదు.</translation>
+<translation id="6665599130599311250">ఈ విధానాన్ని తప్పుకు సెట్ చేస్తే లేదా అసలు సెట్ చేయకుండా వదిలేస్తే, నిర్వహించబడిన అతిథి సెషన్ https://support.google.com/chrome/a/answer/3017014 - ప్రామాణిక "పబ్లిక్ సెషన్"లో డాక్యుమెంట్ చేయబడుతుంది.
+
+      ఈ విధానాన్ని ఒప్పుకి సెట్ చేస్తే, నిర్వహించబడే అతిథి సెషన్ "నిర్వహిత సెషన్" ప్రవర్తనను కొనసాగిస్తుంది, ఇది సాధారణ "పబ్లిక్ సెషన్‌ల" కోసం ఉన్న పలు పరిమితులను ప్రస్తావిస్తుంది.
+
+      ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారు దీన్ని మార్చలేరు లేదా భర్తీ చేయలేరు.</translation>
 <translation id="6665670272107384733">త్వరిత అన్‌లాక్‌ను ఉపయోగించడానికి వినియోగదారు పాస్‌వర్డ్‌ను ఎంత తరచుగా నమోదు చేయాలో సెట్ చేయండి</translation>
 <translation id="6681229465468164801">USB పరికరానికి యాక్సెస్ మంజూరు చేయమని వినియోగదారులను అడిగే సైట్‌లను అలా అడగనివ్వకుండా నివారించేలా ఆ సైట్‌లను పేర్కొనడం కోసం URL నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
@@ -2425,6 +2425,17 @@
 <translation id="6943577887654905793">Mac/Linux ప్రాధాన్య పేరు:</translation>
 <translation id="69525503251220566">డిఫాల్ట్ శోధన ప్రదాత కోసం చిత్రం ద్వారా శోధన లక్షణాన్ని అందిస్తున్న పరామితి</translation>
 <translation id="6956272732789158625">కీ ఉత్పాదనను ఉపయోగించడానికి ఏ సైట్‌ను అనుమతించవద్దు</translation>
+<translation id="6982028490425791294">
+      విధానాన్ని ఒప్పుకు సెట్ చేస్తే, Google సేవల నుండి WebRTC ఈవెంట్ లాగ్‌లను (ఉదా. Google Meet) సేకరించేందుకు <ph name="PRODUCT_NAME" /> అనుమతించబడుతుంది మరియు ఆ లాగ్‌లను Googleకు అప్‌లోడ్ చేయండి.
+
+      విధానాన్ని తప్పుకి సెట్ చేస్తే లేదా సెట్ చేయకున్నా, అలాంటి లాగ్‌లను <ph name="PRODUCT_NAME" /> సేకరించదు లేదా అప్‌లోడ్ చేయకపోవచ్చు.
+
+      ఈ లాగ్‌ల పంపిన మరియు అందుకున్న RTP ప్యాకెట్‌ల సమయం మరియు పరిమాణం, నెట్‌వర్క్‌లో రద్దీ గురించి అభిప్రాయం మరియు ఆడియో మరియు వీడియో ఫ్రేమ్‌ల యొక్క సమయం మరియు నాణ్యత గురించి మెటాడేటా వంటి సమాచారాన్ని కలిగి ఉంటాయి. ఈ సమాచారం బ్యాండ్‌విడ్త్ అంచనా సమస్యల వంటి, Chromeలో ఆడియో లేదా వీడియో కాల్‌లతో సమస్యలను డీబగ్ చేస్తున్నప్పుడు సహాయపడుతుంది. లాగ్‌లో కాల్ నుండి ఆడియో లేదా వీడియో కంటెంట్‌లను కలిగి ఉండదు.
+
+      ఈ డేటా సేకరణ కేవలం Google Hangouts లేదా Google Meet వంటి Google యొక్క వెబ్ సేవలు సక్రియం చేయబడుతుంది.
+
+      ఈ లాగ్‌లను సెషన్ ID ద్వారా, Google సేవ ద్వారా సేకరించిన ఇతర లాగ్‌లతో అనుబంధించవచ్చు; డీబగ్గింగ్ సులభం చేయడానికి ఇది ఉద్దేశించబడింది.
+      </translation>
 <translation id="6994082778848658360">రెండవ కారక ప్రమాణీకరణ ఈ ఫీచర్‌కు అనుకూలంగా ఉంటే దానిని అందించడానికి ఆన్-బోర్డ్ భద్రతా మూలకం హార్డ్‌వేర్‌ను ఎలా ఉపయోగించవచ్చో పేర్కొంటుంది. వినియోగదారు భౌగోళిక స్థానాన్ని గుర్తించడానికి యంత్ర శక్తి బటన్ ఉపయోగించబడుతుంది.
 
       'నిలిపివేయబడింది' ఎంచుకున్నట్లయితే, రెండవ కారకం అందించబడదు.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index 052c40c00..6c2832e 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -33,6 +33,28 @@
           หากปิดใช้การตั้งค่านี้หรือไม่ได้กำหนดค่าไว้ โฮสต์ความช่วยเหลือระยะไกลจะทำงานในบริบทของผู้ใช้และผู้ใช้ระยะไกลจะไม่สามารถโต้ตอบกับหน้าต่างที่ลอยอยู่บนเดสก์ท็อป</translation>
 <translation id="1096105751829466145">ผู้ให้บริการการค้นหาเริ่มต้น</translation>
 <translation id="1099282607296956954">เปิดใช้การแยกเว็บไซต์สำหรับทุกเว็บไซต์</translation>
+<translation id="1100570158310952027">
+      นโยบายนี้ระบุรายการของต้นทาง (URL) หรือรูปแบบชื่อโฮสต์
+      (เช่น "*.example.com") ที่จะไม่ใช้ข้อจำกัดด้านความปลอดภัย
+      กับต้นทางที่ไม่ปลอดภัย
+
+      นโยบายนี้มีไว้ให้องค์กรกำหนดต้นทางที่อนุญาตพิเศษสำหรับแอปพลิเคชันเดิม
+      ที่ใช้งาน TLS ไม่ได้ หรือกำหนดเซิร์ฟเวอร์ชั่วคราว
+      สำหรับการพัฒนาเว็บภายใน เพื่อให้นักพัฒนาซอฟต์แวร์ทดสอบฟีเจอร์
+      ที่ต้องใช้บริบทที่ปลอดภัยโดยไม่ต้องทำให้ TLS ใช้งานได้ในเซิร์ฟเวอร์ชั่วคราว
+      นโยบายจะช่วยป้องกันไม่ให้ระบบติดป้ายกำกับต้นทางว่า
+      "ไม่ปลอดภัย" ในแถบอเนกประสงค์
+
+      การกำหนดรายการ URL ในนโยบายนี้มีผลเหมือนกับการตั้งค่า
+      สถานะบรรทัดคำสั่ง "--unsafely-treat-insecure-origin-as-secure"
+      เป็นรายการ URL เดียวกันที่คั่นด้วยจุลภาค หากตั้งค่านโยบายนี้
+      นโยบายจะลบล้างสถานะบรรทัดคำสั่ง
+
+      นโยบายนี้จะลบล้าง UnsafelyTreatInsecureOriginAsSecure หากมี
+
+      สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบริบทที่ปลอดภัย โปรดดูที่
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="1117535567637097036">ไม่มีการใช้เครื่องจัดการโปรโตคอลที่ตั้งค่าผ่านนโยบายนี้ระหว่างการจัดการ Intent ของ Android</translation>
 <translation id="1118093128235245168">อนุญาตให้เว็บไซต์ขอสิทธิ์จากผู้ใช้เพื่อเข้าถึงอุปกรณ์ USB ที่เชื่อมต่ออยู่</translation>
 <translation id="1128903365609589950">กำหนดค่าไดเรกทอรีที่ <ph name="PRODUCT_NAME" /> จะใช้สำหรับการจัดเก็บไฟล์แคชบนดิสก์
@@ -80,6 +102,8 @@
       หากไม่มีการตั้งค่านโยบายนี้หรือตั้งค่าเป็น False จะทำให้ไม่มีการเปิดใช้ชุดการเข้ารหัสของ RC4 ใน TLS มิเช่นนั้น อาจตั้งค่าเป็น True เพื่อรักษาความเข้ากันได้กับเซิร์ฟเวอร์ที่ล้าสมัย ซึ่งการดำเนินการนี้เป็นเพียงมาตรการชั่วคราวและควรกำหนดค่าเซิร์ฟเวอร์อีกครั้ง</translation>
 <translation id="1297182715641689552">ใช้สคริปต์พร็อกซี .pac</translation>
 <translation id="1304973015437969093">รหัสส่วนขยาย/แอปและ URL การอัปเดตจะติดตั้งอยู่ในพื้นหลัง</translation>
+<translation id="1307454923744766368">ต้นทางหรือรูปแบบชื่อโฮสต์ที่ไม่ควรใช้ข้อจำกัด
+      เกี่ยวกับต้นทางที่ไม่ปลอดภัย</translation>
 <translation id="1313457536529613143">ระบุเปอร์เซ็นต์ของระดับการปรับการหน่วงเวลาการสลัวหน้าจอเมื่อสังเกตพบกิจกรรมของผู้ใช้ในขณะที่หน้าจอสลัวลง หรือไม่นานหลังจากที่หน้าจอถูกปิดไป
 
           หากนโยบายนี้มีการตั้งค่า นโยบายจะระบุเปอร์เซ็นต์ของระดับการปรับการหน่วงเวลาการสลัวหน้าจอเมื่อสังเกตพบกิจกรรมของผู้ใช้ในขณะที่หน้าจอสลัวลง หรือไม่นานหลังจากที่หน้าจอถูกปิดไป เมื่อมีการปรับระดับการหน่วงเวลาการสลัว การปิดหน้าจอ การล็อกหน้าจอ และการหน่วงเวลาการไม่ใช้งานจะได้รับการปรับเปลี่ยนเพื่อรักษาระยะจากการหน่วงเวลาการสลัวหน้าจอให้อยู่ในระดับเดียวกันกับค่ากำหนดเดิม
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">เปิดใช้พรอมต์การกำหนดค่าเครือข่ายเมื่อออฟไลน์</translation>
 <translation id="1330145147221172764">เปิดใช้แป้นพิมพ์บนหน้าจอ</translation>
 <translation id="13356285923490863">ชื่อนโยบาย</translation>
+<translation id="1352174694615491349">นโยบายนี้อนุญาตให้มีการรวมการเชื่อมต่อ HTTP/2 เมื่อใช้ใบรับรองไคลเอ็นต์อยู่ โดยทั้งชื่อโฮสต์ของการเชื่อมต่อใหม่ที่เป็นไปได้และชื่อโฮสต์ของการเชื่อมต่อเดิมต้องตรงกับรูปแบบอย่างใดอย่างหนึ่งที่อธิบายไว้ในนโยบายนี้ จึงจะรวมการเชื่อมต่อได้ นโยบายนี้คือรายการโฮสต์ที่ใช้รูปแบบตัวกรอง URLBlacklist ดังต่อไปนี้ "example.com" ตรงกับ "example.com" และโดเมนย่อยทั้งหมด (เช่น "sub.example.com") ขณะที่ ".example.net" ตรงกับ "example.net" ทุกประการ
+
+      คำขอรวมกับโฮสต์อื่นผ่านการเชื่อมต่อที่ใช้ใบรับรองไคลเอ็นต์อาจสร้างปัญหาด้านความปลอดภัยและความเป็นส่วนตัว เนื่องจากผู้ออกใบรับรองแวดล้อมจะได้รับคำขอทั้งหมด แม้ว่าผู้ใช้จะไม่ได้ให้สิทธิ์อย่างชัดแจ้ง นโยบายนี้เป็นแบบชั่วคราวและระบบจะนำออกในรุ่นต่อไป โปรดดู https://crbug.com/855690
+
+      หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะใช้ลักษณะการทำงานเริ่มต้นที่ไม่อนุญาตการรวมการเชื่อมต่อ HTTP/2 ในการเชื่อมต่อที่ใช้ใบรับรองไคลเอ็นต์</translation>
 <translation id="1353966721814789986">หน้าเริ่มต้นใช้งาน</translation>
 <translation id="1359553908012294236">หากตั้งค่านโยบายนี้เป็น True หรือไม่ได้กำหนดค่า <ph name="PRODUCT_NAME" /> จะเปิดใช้การเข้าสู่ระบบแบบผู้เยี่ยมชม การเข้าสู่ระบบแบบผู้เยี่ยมชมเป็นโปรไฟล์ของ <ph name="PRODUCT_NAME" /> ซึ่งหน้าต่างทุกบานจะอยู่ในโหมดไม่ระบุตัวตน
 
@@ -178,6 +207,7 @@
 <translation id="1583248206450240930">ใช้ <ph name="PRODUCT_FRAME_NAME" /> โดยค่าเริ่มต้น</translation>
 <translation id="1599424828227887013">เปิดใช้การแยกเว็บไซต์สำหรับต้นทางที่เจาะจงในอุปกรณ์ Android</translation>
 <translation id="1608755754295374538">URL ที่จะได้รับสิทธิ์การเข้าถึงอุปกรณ์จับเสียงโดยไม่ต้องแจ้ง</translation>
+<translation id="1615221548356595305">อนุญาตการรวมการเชื่อมต่อ HTTP/2 สำหรับโฮสต์เหล่านี้แม้จะมีการใช้ใบรับรองไคลเอ็นต์</translation>
 <translation id="1617235075406854669">เปิดใช้งานการนำออกเบราว์เซอร์และประวัติการดาวน์โหลด</translation>
 <translation id="163200210584085447">รูปแบบในรายการนี้จะได้รับการจับคู่กับต้นทาง
       การรักษาความปลอดภัยของ URL ที่ขอ หากพบว่าตรงกัน ระบบจะอนุญาตให้
@@ -1142,7 +1172,6 @@
       หากไม่ได้ตั้งค่านโยบายนี้ จะมีการเปิดใช้การรวบรวมข้อมูลที่ไม่ระบุตัวบุคคลซึ่งผูกกับ URL แต่ผู้ใช้จะเปลี่ยนการตั้งค่าได้</translation>
 <translation id="4250680216510889253">ไม่มี</translation>
 <translation id="4261820385751181068">ภาษาในหน้าจอการลงชื่อเข้าใช้อุปกรณ์</translation>
-<translation id="4264607809747169568">ควบคุมพื้นที่แชร์ไฟล์ของเครือข่ายเพื่อความพร้อมใช้งานของ ChromeOS</translation>
 <translation id="427220754384423013">ระบุเครื่องพิมพ์ที่ผู้ใช้ใช้งานได้
 
       ใช้นโยบายนี้ต่อเมื่อเลือก <ph name="PRINTERS_WHITELIST" /> สำหรับโหมด <ph name="BULK_PRINTERS_ACCESS_MODE" /> เท่านั้น
@@ -1293,6 +1322,7 @@
       หากเปิดใช้นโยบายนี้ เว็บไซต์จะมีสิทธิ์นำทางและเปิดหน้าต่าง/แท็บใหม่ไปพร้อมกันได้
       หากปิดใช้หรือไม่ได้ตั้งค่านโยบายนี้ เว็บไซต์จะไม่มีสิทธิ์นำทางและเปิดหน้าต่าง/แท็บใหม่ไปพร้อมกัน</translation>
 <translation id="4680961954980851756">เปิดใช้งานการป้อนอัตโนมัติ</translation>
+<translation id="4703402283970867140">เปิดใช้รูปแบบการหรี่แสงอัจฉริยะเพื่อขยายเวลาจนกว่าหน้าจอจะหรี่แสง</translation>
 <translation id="4722122254122249791">เปิดใช้การแยกเว็บไซต์สำหรับต้นทางที่เจาะจง</translation>
 <translation id="4722399051042571387">หากเป็น False ผู้ใช้จะไม่สามารถตั้งค่า PIN ที่หละหลวมและเดาได้ง่าย
 
@@ -1504,13 +1534,6 @@
 <translation id="5370279767682621504">เปิดใช้การรองรับ HTTP/0.9 บนพอร์ตที่ไม่ใช่ค่าเริ่มต้น</translation>
 <translation id="5378985487213287085">ช่วยให้คุณกำหนดว่าเว็บไซต์จะได้รับอนุญาตให้แสดงการแจ้งเตือนเดสก์ท็อปหรือไม่ การแสดงการแจ้งเตือนเดสก์ท็อปอาจจะได้รับอนุญาตโดยค่าเริ่มต้น ปฏิเสธโดยค่าเริ่มต้น หรือผู้ใช้อาจได้รับคำถามทุกครั้งที่เว็บไซต์ต้องการจะแสดงการแจ้งเตือนเดสก์ท็อป หากนโยบายนี้ไม่มีการตั้งค่าไว้ จะมีการใช้ "AskNotifications" และผู้ใช้สามารถจะเปลี่ยนแปลงได้</translation>
 <translation id="538108065117008131">อนุญาตให้ <ph name="PRODUCT_FRAME_NAME" /> จัดการประเภทเนื้อหาดังต่อไปนี้</translation>
-<translation id="5391363090783552279">หากตั้งค่านโยบายเป็น "จริง" <ph name="PRODUCT_NAME" /> จะเชื่อมต่อกับอุปกรณ์แคสต์ในที่อยู่ IP ทั้งหมด ไม่ใช่แค่ที่อยู่ส่วนตัว RFC1918/RFC4913
-
-          หากตั้งค่านโยบายนี้เป็น "เท็จ" <ph name="PRODUCT_NAME" /> จะเชื่อมต่อกับอุปกรณ์แคสต์ในที่อยู่ส่วนตัว RFC1918/RFC4913 เท่านั้น
-
-          หากไม่ได้ตั้งค่านโยบายนี้ <ph name="PRODUCT_NAME" /> จะเชื่อมต่อกับอุปกรณ์แคสต์ในที่อยู่ส่วนตัว RFC1918/RFC4913 เท่านั้น ยกเว้นว่าจะเปิดใช้ฟีเจอร์ CastAllowAllIPs
-
-          หากตั้งค่านโยบาย "EnableMediaRouter" เป็น "เท็จ" ค่าของนโยบายนี้จะไม่มีผลบังคับใช้</translation>
 <translation id="5392172595902933844">ระบบส่งข้อมูลเกี่ยวกับสถานะของ Android กลับไปยัง
       เซิร์ฟเวอร์
 
@@ -2062,6 +2085,10 @@
 <translation id="6943577887654905793">ชื่อค่ากำหนด Mac/Linux:</translation>
 <translation id="69525503251220566">พารามิเตอร์ที่ให้ฟีเจอร์การค้นหาโดยภาพสำหรับผู้ให้บริการการค้นหาเริ่มต้น</translation>
 <translation id="6956272732789158625">ไม่อนุญาตให้เว็บไซต์ใดๆ ใช้การสร้างคีย์</translation>
+<translation id="6965859329738616662">ระบุว่าจะอนุญาตให้รูปแบบการหรี่แสงอัจฉริยะขยายเวลาจนกว่าหน้าจอจะหรี่แสงหรือไม่
+
+      เมื่อหน้าจอกำลังจะหรี่แสง รูปแบบการหรี่แสงอัจฉริยะจะประเมินว่าควรเลื่อนการหรี่แสงหน้าจอออกไปก่อนหรือไม่ หากรูปแบบการหรี่แสงอัจฉริยะเลื่อนการหรี่แสง จะมีการขยายเวลาอย่างมีประสิทธิภาพจนกว่าแสงหน้าจอจะหรี่ลง ในกรณีนี้ ระบบจะปรับการปิดหน้าจอ การล็อกหน้าจอ และการหน่วงเวลาของการไม่ใช้งาน เพื่อรักษาระยะจากการหน่วงเวลาการหรี่แสงหน้าจอให้อยู่ในระดับเดียวกันกับค่ากำหนดเดิม
+      หากตั้งค่านโยบายนี้เป็น "จริง" หรือไม่ได้ตั้งค่า ระบบจะเปิดใช้รูปแบบการหรี่แสงอัจฉริยะและอนุญาตให้ขยายเวลาจนกว่าแสงหน้าจอจะหรี่ลง หากตั้งค่านโยบายนี้เป็น "เท็จ" รูปแบบการหรี่แสงอัจฉริยะจะไม่มีผลต่อการหรี่แสงหน้าจอ</translation>
 <translation id="6982028490425791294">
       หากตั้งค่านโยบายเป็น "จริง" <ph name="PRODUCT_NAME" /> จะได้รับอนุญาตให้รวบรวมบันทึกเหตุการณ์ WebRTC จากบริการของ Google (เช่น Google Meet) และอัปโหลดบันทึกไปยัง Google
 
@@ -2493,6 +2520,13 @@
 <translation id="7980227303582973781">ไม่มีข้อจำกัดพิเศษ</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">หมุนหน้าจอ 0 องศา</translation>
+<translation id="8033913082323846868">นโยบายนี้เลิกใช้งานไปแล้วใน M70 โปรดใช้ AutofillAddressEnabled และ AutofillCreditCardEnabled แทน
+
+      เปิดใช้ฟีเจอร์ป้อนอัตโนมัติของ <ph name="PRODUCT_NAME" /> และอนุญาตให้ผู้ใช้เติมคำอัตโนมัติในเว็บฟอร์มโดยใช้ข้อมูลที่เก็บไว้ก่อนหน้านี้ เช่น ที่อยู่หรือข้อมูลบัตรเครดิต
+
+      หากคุณปิดใช้การตั้งค่านี้ ผู้ใช้จะเข้าถึงฟีเจอร์ป้อนอัตโนมัติไม่ได้
+
+      หากคุณเปิดใช้การตั้งค่านี้หรือไม่ได้กำหนดค่าไว้ ผู้ใช้จะยังคงเป็นผู้ควบคุมฟีเจอร์ป้อนอัตโนมัติ ซึ่งจะทำให้ผู้ใช้กำหนดค่าโปรไฟล์ป้อนอัตโนมัติและเปิดหรือปิดป้อนอัตโนมัติได้ตามที่เห็นสมควร</translation>
 <translation id="8044493735196713914">รายงานโหมดการบูตอุปกรณ์</translation>
 <translation id="8050080920415773384">การพิมพ์ดั้งเดิม</translation>
 <translation id="8059164285174960932">URL ที่ไคลเอ็นต์การเข้าถึงระยะไกลควรรับโทเค็นการตรวจสอบสิทธิ์</translation>
@@ -2813,6 +2847,33 @@
 
       หากไม่ได้กำหนดค่านโยบายนี้ไว้ ระบบจะถือว่าเลือก <ph name="PRINTERS_ALLOW_ALL" /> ไว้
       </translation>
+<translation id="8938932171964587769">เลิกใช้งานแล้วใน M69 โปรดใช้
+      OverrideSecurityRestrictionsOnInsecureOrigin แทน
+
+      นโยบายนี้จะระบุรายการของต้นทาง (URL) หรือรูปแบบชื่อโฮสต์
+      (เช่น "*.example.com") ที่จะไม่ใช้ข้อจำกัดด้านความปลอดภัย
+      กับต้นทางที่ไม่ปลอดภัย
+
+      นโยบายนี้มีไว้ให้องค์กรกำหนดต้นทางที่อนุญาตพิเศษสำหรับแอปพลิเคชันเดิม
+      ที่ใช้งาน TLS ไม่ได้ หรือกำหนดเซิร์ฟเวอร์ชั่วคราว สำหรับการพัฒนาเว็บภายใน
+      เพื่อให้นักพัฒนาซอฟต์แวร์ทดสอบฟีเจอร์
+      ที่ต้องใช้บริบทที่ปลอดภัยโดยไม่ต้องทำให้ TLS ใช้งานได้ในเซิร์ฟเวอร์ชั่วคราว
+      นโยบายจะช่วยป้องกันไม่ให้ระบบติดป้ายกำกับต้นทางว่า
+      "ไม่ปลอดภัย" ในแถบอเนกประสงค์
+
+      การกำหนดรายการ URL ในนโยบายนี้มีผลเหมือนกับการตั้งค่า
+      สถานะบรรทัดคำสั่ง "--unsafely-treat-insecure-origin-as-secure"
+      เป็นรายการ URL เดียวกันที่คั่นด้วยจุลภาค หากตั้งค่านโยบายนี้
+      นโยบายจะลบล้างสถานะบรรทัดคำสั่งดังกล่าว
+
+      นโยบายนี้เลิกใช้งานแล้วใน M69 เพื่อเริ่มใช้
+      OverrideSecurityRestrictionsOnInsecureOrigin หากมีทั้ง 2 นโยบาย
+      OverrideSecurityRestrictionsOnInsecureOrigin จะลบล้าง
+      นโยบายนี้
+
+      สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบริบทที่ปลอดภัย โปรดดูที่
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">นโยบายนี้ควบคุมว่าการขอคำยินยอมให้ซิงค์จะแสดงต่อผู้ใช้รายหนึ่งๆ ในระหว่างที่ลงชื่อเข้าใช้เป็นครั้งแรกได้หรือไม่ ตั้งค่านโยบายนี้เป็นเท็จหากไม่จำเป็นต้องขอคำยินยอมให้ซิงค์จากผู้ใช้
       หากตั้งค่าเป็นเท็จ ระบบจะไม่แสดงการขอคำยินยอมให้ซิงค์
       หากตั้งค่าเป็นจริงหรือไม่ได้ตั้งค่า ระบบจะแสดงการขอคำยินยอมให้ซิงค์</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 078d6bd..163fb7b7 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -34,6 +34,15 @@
           Bu ayar devre dışı bırakılır veya yapılandırılmazsa uzaktan yardım ana makinesi, kullanıcının içeriğinde çalışır ve uzak kullanıcılar, masaüstündeki yükseltilmiş pencerelerle etkileşimde bulunamaz.</translation>
 <translation id="1096105751829466145">Varsayılan arama sağlayıcı</translation>
 <translation id="1099282607296956954">Site İzolasyonu'nu her site için etkinleştirme</translation>
+<translation id="1100570158310952027">
+      Bu politika, güvenli olmayan başlangıç noktalarında güvenlik kısıtlamalarının geçerli olmayacağı başlangıç noktalarının (URL'ler) veya ana makine adı kalıplarının (örneğin, "*.example.com") bir listesini belirtir.
+
+      Burada amaç, kuruluşların TLS dağıtamayan eski uygulamalar için beyaz liste başlangıç noktaları ayarlamalarına veya dahili web geliştirmeleri için hazırlık sunucusu kurulumu yapmalarına olanak tanımaktır. Böylece kuruluşların geliştiricileri hazırlık sunucusunda TLS dağıtmak zorunda kalmadan güvenli içerik gerektiren özellikleri test edebilirler. Bu politika, başlangıç noktasının çok amaçlı adres çubuğunda "Güvenli Değil" olarak etiketlenmesini de önler.
+
+      Bu politikada bir URL listesi ayarlamakla, aynı URL'lerin virgülle ayrılmış bir listesine "--unsafely-treat-insecure-origin-as-secure" komut satırı işaretini ayarlamak aynı sonucu verir. Bu politika ayarlanırsa komut satırı işaretini geçersiz kılar.
+ 
+     Güvenli içerikler ile ilgili daha fazla bilgi için https://www.w3.org/TR/secure-contexts/ adresine bakın.
+      </translation>
 <translation id="1117535567637097036">Bu politika aracılığıyla ayarlanan protokol işleyicileri, Android amaçları işlenirken kullanılmaz.</translation>
 <translation id="1118093128235245168">Sitelerin, bağlı bir USB cihazına erişmek için kullanıcıdan izin istemesine izin ver</translation>
 <translation id="1128903365609589950"><ph name="PRODUCT_NAME" /> uygulamasının önbelleğe alınan dosyaları diskte saklamak için kullanacağı dizini yapılandırır.
@@ -81,6 +90,7 @@
       Politika ayarlanmamışsa veya yanlış seçeneğine ayarlanmışsa, TLS'deki RC4 şifre paketleri etkinleştirilmez. Aksi takdirde, eski bir sunucuyla uyumluluğun korunması için doğru seçeneğine ayarlanabilir. Bu geçici bir tedbirdir ve sunucu yeniden yapılandırılmalıdır.</translation>
 <translation id="1297182715641689552">.pac proxy komut dosyası kullan</translation>
 <translation id="1304973015437969093">Uzantı/Uygulama kimlikleri ve güncelleme URL'leri sessizce yüklenir</translation>
+<translation id="1307454923744766368">Güvenli olmayan başlangıç noktalarında kısıtlamaların uygulanmayacağı başlangıç noktaları ve ana makine adı kalıpları</translation>
 <translation id="1313457536529613143">Ekran kararmış durumdayken veya kapandıktan hemen sonra bir kullanıcı etkinliği algılandığında, ekranın kararmasındaki gecikmenin ölçekleneceği yüzdeyi belirtir.
 
           Bu politika ayarlanırsa, ekran karardığında veya ekran kapandıktan hemen sonra bir kullanıcı etkinliği algılandığında, ekranın kararmasındaki gecikmenin ölçekleneceği yüzdeyi belirtir. Ekran kararma gecikmesi ölçeklendiğinde, ekran kapanması, ekran kilidi ve boşta bekleme gecikmeleriyle ilgili süreler, orijinal olarak yapılandırılan ekran kararma gecikmesine göre aynı oran korunacak biçimde ayarlanır.
@@ -92,6 +102,11 @@
 <translation id="1327466551276625742">Çevrimdışı iken ağ yapılandırma istemini etkinleştir</translation>
 <translation id="1330145147221172764">Ekran klavyesini etkinleştir</translation>
 <translation id="13356285923490863">Politika Adı</translation>
+<translation id="1352174694615491349">Bu politika, istemci sertifikaları kullanımdayken HTTP/2 bağlantısının birleşmesine olanak tanır. Birleşme için hem potansiyel yeni bağlantı ana makine adının hem de mevcut bir bağlantının ana makine adının, bu politika tarafından açıklanan bir veya daha fazla kalıpla eşleşmesi gerekir. Politika, URLBlacklist filtre biçiminin kullanıldığı bir ana makine listesidir: "example.com", "example.com" ve tüm alt alan adlarıyla (ör. "sub.example.com") eşleşirken, ".example.net" tam olarak "example.net" ile eşleşir.
+
+      İstemci sertifikaları kullanan bağlantılar üzerinden farklı ana makinelerle birleşme istekleri, kullanıcı açık bir şekilde yetkilendirilmemiş olsa bile ortam yetkisi tüm isteklere aktarılacağından güvenlik ve gizlilikle ilgili sorunlara yol açabilir. Bu geçici bir politikadır ve gelecekte yayınlanacak bir sürümde kaldırılacaktır. Bilgi için https://crbug.com/855690 adresine bakın.
+
+      Bu politika ayarlanmadan bırakılırsa, istemci sertifikaları kullanan bağlantılarda HTTP/2 bağlantı birleşmesine izin vermeme varsayılan davranışı kullanılır.</translation>
 <translation id="1353966721814789986">Başlangıç sayfaları</translation>
 <translation id="1359553908012294236">Bu politika doğru seçeneğine ayarlanırsa veya yapılandırılmazsa <ph name="PRODUCT_NAME" />, misafir modunda giriş yapılmasına izin verir. Misafir modunda girişler, tüm pencerelerin gizli modda açıldığı <ph name="PRODUCT_NAME" /> profilleridir.
 
@@ -183,6 +198,7 @@
 <translation id="1583248206450240930">Varsayılan olarak <ph name="PRODUCT_FRAME_NAME" /> ürününü kullan</translation>
 <translation id="1599424828227887013">Android cihazlarda Site İzolasyonu'nu belirtilen kaynaklar için etkinleştirme</translation>
 <translation id="1608755754295374538">Soru sorulmadan ses yakalama cihazlarına erişim verilecek URL'ler</translation>
+<translation id="1615221548356595305">İstemci sertifikaları kullanıldığında bile bu ana makineler için HTTP/2 bağlantılarının birleşmesine izin ver</translation>
 <translation id="1617235075406854669">Tarayıcı ve indirme geçmişinin silinmesini etkinleştir</translation>
 <translation id="163200210584085447">Bu listedeki kalıplar, istek yapan URL'nin güvenlik kaynağı ile
       karşılaştırılır. Eşleşme bulunursa, SAML giriş sayfalarında video
@@ -1180,7 +1196,6 @@
       Bu politika ayarlanmadan bırakılırsa URL içeren veya URL'lerle ilişkili anonim veri toplama özelliği etkinleştirilir ancak kullanıcı tarafından kapatılabilir.</translation>
 <translation id="4250680216510889253">Hayır</translation>
 <translation id="4261820385751181068">Cihaz oturum açma ekranı yerel ayarı</translation>
-<translation id="4264607809747169568">ChromeOS için Ağ Üzerinde Dosya Paylaşımı'nın kullanılabilirliğini kontrol eder</translation>
 <translation id="427220754384423013">Kullanıcının kullanabileceği yazıcıları belirtir.
 
       Bu politika yalnızca <ph name="BULK_PRINTERS_ACCESS_MODE" /> için <ph name="PRINTERS_WHITELIST" /> değeri seçilirse kullanılır.
@@ -1339,6 +1354,7 @@
       Bu politika etkinleştirilirse sitelerin eşzamanlı olarak gezinmesine ve yeni pencereler/sekmeler açmasına izin verilir.
       Bu politika devre dışı bırakılır veya ayarlanmazsa sitelerin eşzamanlı olarak gezinmesine ve yeni bir pencere/sekme açmasına izin verilmez.</translation>
 <translation id="4680961954980851756">Otomatik Doldurmayı etkinleştir</translation>
+<translation id="4703402283970867140">Ekranın karartma süresini uzatmak için akıllı karartma modelini etkinleştir</translation>
 <translation id="4722122254122249791">Site İzolasyonu'nu belirtilen kaynaklar için etkinleştirme</translation>
 <translation id="4722399051042571387">False (yanlış) değerinde, kullanıcılar zayıf ve kolayca tahmin edilebilecek PIN'ler ayarlayamaz.
 
@@ -1566,13 +1582,6 @@
 
           Bu politika ayarlanmadan bırakılırsa, 'AskNotifications' kullanılır ve kullanıcı ayarı değiştirebilir.</translation>
 <translation id="538108065117008131"><ph name="PRODUCT_FRAME_NAME" /> için aşağıdaki içerik türlerini işlemeye izin ver.</translation>
-<translation id="5391363090783552279">Bu politika doğru değerine ayarlanırsa <ph name="PRODUCT_NAME" />, sadece RFC1918/RFC4913 özel adreslerine sahip olanlara değil, tüm IP adreslerindeki Yayın cihazlarına bağlanır.
-
-          Bu politika yanlış değerine ayarlanırsa <ph name="PRODUCT_NAME" />, yalnızca RFC1918/RFC4913 özel adreslerindeki Yayın cihazlarına bağlanır.
-
-          Bu politika ayarlanmazsa <ph name="PRODUCT_NAME" />, CastAllowAllIPs özelliği etkinleştirilmediği sürece yalnızca RFC1918/RFC4913 özel adreslerindeki Yayın cihazlarına bağlanır.
-
-          "EnableMediaRouter" politikası yanlış değerine ayarlanırsa bu politikanın değerinin herhangi bir etkisi olmaz.</translation>
 <translation id="5392172595902933844">Android'in durumuyla ilgili bilgiler sunucuya geri gönderilir.
 
       Politika yanlış (false) değerine ayarlanır veya ayarlanmadan bırakılırsa durum bilgisi bildirilmez.
@@ -2144,6 +2153,10 @@
 <translation id="6943577887654905793">Mac/Linux tercih adı:</translation>
 <translation id="69525503251220566">Varsayılan arama sağlayıcısı için resme göre arama özelliği sağlayan parametre</translation>
 <translation id="6956272732789158625">Hiçbir sitenin anahtar oluşturma işlevini kullanmasına izin verme</translation>
+<translation id="6965859329738616662">Ekran karartma süresini uzatmak için akıllı karartma modeline izin verip verilmeyeceğini belirtir.
+
+      Ekran karartılmak üzereyken akıllı karartma modeli, ekranı karartmanın geciktirilmesinin gerekip gerekmediğini değerlendirir. Akıllı karartma modeli ekranın karartılmasını geciktirirse, ekranın karartılması için gereken süre etkili şekilde uzar. Bu durumda, ekran kapatma, ekran kilidi ve işlem yapılmadan geçen süre gecikmeleri, ekran karartma gecikmesinin başlangıçta yapılandırıldığı değerle aynı süreyi koruyacak şekilde ayarlanır. 
+      Bu politika True (Doğru) değerine ayarlanır veya ayarlanmadan bırakılırsa akıllı karartma modeli etkinleşir ve ekranı karartma süresini uzatmasına izin verilir. Bu politika False (Yanlış) değerine ayarlanırsa akıllı karartma modeli, ekran karartmayı etkilemez.</translation>
 <translation id="6982028490425791294">
       Bu politika doğru (true) değerine ayarlanırsa, <ph name="PRODUCT_NAME" /> ürünün Google hizmetlerinden (ör. Google Meet) WebRTC etkinlik günlüklerini toplamasına ve bu günlükleri Google'a yüklemesine izin verilir.
 
@@ -2588,6 +2601,13 @@
 <translation id="7980227303582973781">Özel kısıtlama yok</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Ekranı 0 derece döndür</translation>
+<translation id="8033913082323846868">Bu politika M70 sürümünde kullanımdan kaldırılmıştır. Lütfen bunun yerine AutofillAddressEnabled ve AutofillCreditCardEnabled politikalarını kullanın.
+
+      <ph name="PRODUCT_NAME" /> içinde bulunan Otomatik Doldurma özelliğini etkinleştirir ve kullanıcıların adresler ve kredi kartı bilgileri gibi önceden saklanmış bilgileri kullanarak web formlarını otomatik bir şekilde doldurmalarına olanak sağlar.
+
+      Bu ayarı devre dışı bırakırsanız kullanıcılar Otomatik Doldurma özelliğine erişemezler.
+
+      Bu ayarı etkinleştirirseniz veya bir değer ayarlamazsanız, Otomatik Doldurma kullanıcının denetimi altında kalır. Böylece kullanıcılara, Otomatik Doldurma profillerini yapılandırma ve kendi istedikleri şekilde Otomatik Doldurma özelliğini açıp kapama olanağı verilir.</translation>
 <translation id="8044493735196713914">Rapor cihazı önyükleme modu</translation>
 <translation id="8050080920415773384">Yerel Yazdırma</translation>
 <translation id="8059164285174960932">Uzaktan erişim istemcilerinin kimlik doğrulama jetonunu edinmesi gerektiği URL</translation>
@@ -2926,6 +2946,18 @@
 
       Bu politika ayarlanmazsa <ph name="PRINTERS_ALLOW_ALL" /> uygulanır.
       </translation>
+<translation id="8938932171964587769">M69 sürümünde kullanımdan kaldırılmıştır. Bunun yerine OverrideSecurityRestrictionsOnInsecureOrigin politikasını kullanın.
+
+      Bu politika, güvenli olmayan başlangıç noktalarında güvenlik kısıtlamalarının uygulanmayacağı başlangıç noktalarının (URL'ler) veya ana makine adı kalıplarının (örneğin, "*.example.com") bir listesini belirtir. 
+
+      Burada amaç, kuruluşların TLS dağıtamayan eski uygulamalar için beyaz liste başlangıç noktaları ayarlamalarına veya dahili web geliştirmeleri için hazırlık sunucusu kurulumu yapmalarına olanak tanımaktır. Böylece kuruluşların geliştiricileri hazırlık sunucusunda TLS dağıtmak zorunda kalmadan güvenli içerik gerektiren özellikleri test edebilirler. Bu politika, başlangıç noktasının çok amaçlı adres çubuğunda "Güvenli Değil" olarak etiketlenmesini de önler.
+
+      Bu politikada bir URL listesi ayarlamakla, aynı URL'lerin virgülle ayrılmış bir listesine "--unsafely-treat-insecure-origin-as-secure" komut satırı işaretini ayarlamak aynı sonucu verir. Bu politika ayarlanırsa, komut satırı işaretini geçersiz kılar.
+
+      Bu politika, M69 sürümünde kullanımdan kaldırılmış ve yerine OverrideSecurityRestrictionsOnInsecureOrigin kullanılması tavsiye edilmiştir. Her iki politika da mevcutsa, OverrideSecurityRestrictionsOnInsecureOrigin bu politikayı geçersiz kılar.
+
+      Güvenli içerikler hakkında daha fazla bilgi için https://www.w3.org/TR/secure-contexts/ adresine bakın.
+      </translation>
 <translation id="8942616385591203339">Bu politika, Senkronizasyon İzni'nin ilk oturum açma sırasında kullanıcıya gösterilip gösterilemeyeceğini kontrol eder. Kullanıcı için Senkronizasyon İzni'ne hiçbir zaman gerek duyulmuyorsa false (yanlış) değerine ayarlanmalıdır.
       False (yanlış) değerine ayarlanırsa Senkronizasyon İzni görüntülenmez.
       True (doğru) değerine ayarlanır veya hiç ayarlanmazsa Senkronizasyon İzni görüntülenebilir.</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 8d700d2e..64f4387 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -33,6 +33,31 @@
           Якщо це налаштування вимкнено або не налаштовано, хост віддаленої допомоги запускатиметься в контексті користувача, і віддалені користувачі не зможуть взаємодіяти з вікнами на його робочому столі.</translation>
 <translation id="1096105751829466145">Пошукова служба за умовчанням</translation>
 <translation id="1099282607296956954">Увімкнути Ізоляцію сайтів для кожного сайту</translation>
+<translation id="1100570158310952027">
+      Це правило визначає перелік джерел (URL-адрес) або зразків імені хосту
+      (як-от "*.example.com"), для яких не застосовуватимуться обмеження
+      щодо безпеки для незахищених джерел.
+
+
+      Мета – дати змогу організаціям налаштовувати дозволені джерела для
+      застарілих додатків, які не можуть застосовувати TLS, або налаштовувати
+      проміжний сервер для внутрішніх веб-розробок, щоб можна було
+      тестувати функції, для яких потрібен безпечний контекст, не використовуючи
+      TLS. Завдяки цьому правилу джерела не матимуть мітки "Ненадійне"
+      в універсальному вікні пошуку.
+
+      Налаштувати список URL-адрес у цьому правилі – це те саме, що
+      встановити для позначки командного рядка
+      "--unsafely-treat-insecure-origin-as-secure" відокремлений комами список тих
+      самих URL-адрес. Якщо це правило налаштовано, воно замінює позначку
+      командного рядка.
+
+      Це правило замінює правило UnsafelyTreatInsecureOriginAsSecure (якщо
+      таке є).
+
+      Докладніше про безпечні контексти читайте на сторінці
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Обробники протоколу, налаштовані за допомогою цього правила, не використовуються під час обробки намірів Android.</translation>
 <translation id="1118093128235245168">Дозволити сайтам запитувати в користувача доступ до підключеного пристрою USB</translation>
 <translation id="1128903365609589950">Налаштовується каталог, у який <ph name="PRODUCT_NAME" /> зберігатиме кешовані файли.
@@ -80,6 +105,7 @@
       Якщо це правило не налаштовано або має значення "false", набори шифрів RC4 в TLS не працюватимуть. Або для правила можна вибрати значення "true", щоб підтримувати сумісність із застарілим сервером. Це тимчасовий захід. Налаштування сервера буде змінено.</translation>
 <translation id="1297182715641689552">Використовувати сценарій .pac проксі-сервера</translation>
 <translation id="1304973015437969093">Ідентифікатори розширень або додатків і URL-адреси оновлень, які встановлюються без попередження</translation>
+<translation id="1307454923744766368">Джерела та зразки імені хосту, для яких не застосовуватимуться обмеження для незахищених джерел</translation>
 <translation id="1313457536529613143">Указує відсоток, за яким масштабують затримку затемнення екрана, коли помічено активність користувача під час затемнення екрана чи невдовзі після його вимкнення.
 
           Якщо це правило встановлено, указується відсоток, за яким масштабується затримка затемнення екрана, коли помічено активність користувача під час затемнення екрана чи невдовзі після його вимкнення. Якщо затримку затемнення екрана масштабовано, відповідно налаштовуються затримки вимкнення та блокування екрана та затримка через неактивність, щоб зберігати такі самі проміжки часу від затримки затемнення екрана, як налаштовано раніше.
@@ -91,6 +117,11 @@
 <translation id="1327466551276625742">Вмикати запит на конфігурацію мережі в режимі офлайн</translation>
 <translation id="1330145147221172764">Увімкнути екранну клавіатуру</translation>
 <translation id="13356285923490863">Назва правила</translation>
+<translation id="1352174694615491349">Це правило дозволяє злиття з’єднань HTTP/2, коли використовуються сертифікати клієнта. Для злиття потрібно, щоб імена хостів потенційного та наявного підключень збігалися з одним чи кількома шаблонами, які описані в цьому правилі. Це правило містить список хостів, які використовують формат фільтра заборонених URL-адрес: "example.com" відповідає "example.com" і всім субдоменам (наприклад, "sub.example.com"), а ".example.net" точно збігається з "example.net".
+
+      Запити на злиття різних хостів через підключення, які використовують сертифікати клієнта, можуть спричиняти проблеми з безпекою та конфіденційністю, оскільки зовнішній дозвіл передаватиметься всім запитам, навіть якщо користувач явно не надав його. Це правило тимчасове та буде вилучене в наступних випусках. Докладніше читайте за посиланням https://crbug.com/855690.
+
+      Якщо це правило не налаштовано, тоді використовуватиметься поведінка за умовчанням (заборона злиття з’єднань HTTP/2 через підключення, які використовують сертифікати клієнта).</translation>
 <translation id="1353966721814789986">Сторінки запуску</translation>
 <translation id="1359553908012294236">Якщо це правило не налаштовано або має значення "true", <ph name="PRODUCT_NAME" /> увімкне перегляд у гостьовому режимі. У цьому режимі <ph name="PRODUCT_NAME" /> відкриває анонімні вікна.
 
@@ -183,6 +214,7 @@
 <translation id="1583248206450240930">Використовувати <ph name="PRODUCT_FRAME_NAME" /> за умовчанням</translation>
 <translation id="1599424828227887013">Увімкнути Ізоляцію сайтів для вказаних джерел на пристроях Android</translation>
 <translation id="1608755754295374538">URL-адреси, яким завжди надаватиметься доступ до пристроїв запису аудіо</translation>
+<translation id="1615221548356595305">Дозволити злиття з’єднань HTTP/2 для цих хостів, навіть якщо використовуються сертифікати клієнта.</translation>
 <translation id="1617235075406854669">Увімкнути видалення історії веб-перегляду та завантажень</translation>
 <translation id="163200210584085447">Зразки в цьому списку зіставлятимуться з джерелом
       безпеки URL-адреси, що надсилає запит. Якщо буде знайдено збіг, доступ до пристроїв
@@ -1156,7 +1188,6 @@
       Якщо це правило не налаштовано, збір анонімних даних, захищених паролем URL-адрес, буде ввімкнено, але користувач зможе змінити це.</translation>
 <translation id="4250680216510889253">ні</translation>
 <translation id="4261820385751181068">Мовний код на екрані входу на пристрої</translation>
-<translation id="4264607809747169568">Керує доступністю спільних мережевих файлів в ОС Chrome</translation>
 <translation id="427220754384423013">Указує принтери, доступні для користувачів.
 
       Це правило застосовується, якщо для <ph name="BULK_PRINTERS_ACCESS_MODE" /> вибрано <ph name="PRINTERS_WHITELIST" />.
@@ -1305,6 +1336,7 @@
       Якщо це правило ввімкнено, сайти зможуть одночасно виконувати навігацію та відкривати нові вікна чи вкладки.
       Якщо це правило вимкнено або не налаштовано, сайти не зможуть одночасно виконувати навігацію та відкривати нові вікна чи вкладки.</translation>
 <translation id="4680961954980851756">Увімкнути автозаповнення</translation>
+<translation id="4703402283970867140">Увімкнути модель розумного затемнення, щоб збільшити час активності екрана</translation>
 <translation id="4722122254122249791">Увімкнути Ізоляцію сайтів для вказаних джерел</translation>
 <translation id="4722399051042571387">Якщо для цього параметра вибрано значення false, користувачі не зможуть створювати ненадійні PIN-коди, які легко вгадати.
 
@@ -1516,13 +1548,6 @@
 <translation id="5370279767682621504">Увімкнути підтримку протоколу HTTP/0.9 для нестандартних портів</translation>
 <translation id="5378985487213287085">Дозволяє вказувати, чи можуть веб-сайти показувати сповіщення на робочому столі. Показ сповіщень на робочому столі можна дозволити за умовчанням, заборонити за умовчанням або отримувати запит, коли веб-сайт хоче показати сповіщення на робочому столі. Якщо це правило не встановлено, використовується правило "AskNotifications", але користувач може його змінити.</translation>
 <translation id="538108065117008131">Дозволити <ph name="PRODUCT_FRAME_NAME" /> обробляти перелічені типи вмісту.</translation>
-<translation id="5391363090783552279">Якщо це правило має значення true, <ph name="PRODUCT_NAME" /> під’єднуватиметься до пристроїв Google Cast на всіх IP-адресах, а не лише на приватних адресах RFC1918/RFC4913.
-
-          Якщо правило має значення false, <ph name="PRODUCT_NAME" /> під’єднуватиметься лише до пристроїв Google Cast, які мають приватні адреси RFC1918/RFC4913.
-
-          Якщо правило не налаштовано, <ph name="PRODUCT_NAME" /> під’єднуватиметься лише до пристроїв Google Cast із приватними адресами RFC1918/RFC4913, за умови, що функцію CastAllowAllIPs вимкнено.
-
-          Якщо правило EnableMediaRouter має значення false, тоді воно не діятиме.</translation>
 <translation id="5392172595902933844">Інформація про статус пристрою Android надсилається на
       сервер.
 
@@ -2068,6 +2093,10 @@
 <translation id="6943577887654905793">Назва налаштування в Mac/Linux:</translation>
 <translation id="69525503251220566">Параметр, що додаає функцію пошуку за зображенням у пошукову систему за умовчанням</translation>
 <translation id="6956272732789158625">Заборонити всім сайтам генерувати ключі</translation>
+<translation id="6965859329738616662">Визначає, чи модель розумного затемнення може збільшувати час активності екрана.
+
+      Коли екран має згаснути, модель розумного затемнення оцінює, чи потрібно відкласти цю дію. Якщо модель розумного затемнення відкладає вимкнення екрана, час його активності збільшується. У такому випадку затримки вимкнення, блокування й неактивності екрана налаштовуються відповідно, щоб проміжки часу від затримки затемнення екрана відповідали попереднім налаштуванням.
+      Якщо це правило має значення true або його не налаштовано, модель розумного затемнення буде ввімкнено, і вона зможе збільшувати час активності екрана. Якщо це правило має значення false, модель розумного затемнення не зможе впливати на час затемнення екрана.</translation>
 <translation id="6982028490425791294">
       Якщо для цього правила вибрано значення true, <ph name="PRODUCT_NAME" /> може збирати журнали подій WebRTC із сервісів Google (як-от Google Meet) і завантажувати їх у Google.
 
@@ -2494,6 +2523,13 @@
 <translation id="7980227303582973781">Немає особливих обмежень</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Обернути екран на 0 градусів</translation>
+<translation id="8033913082323846868">Це правило більше не підтримується у версії M70. Натомість використовуйте правила AutofillAddressEnabled і AutofillCreditCardEnabled.
+
+      Вмикає функцію автозаповнення в <ph name="PRODUCT_NAME" /> і дає змогу користувачам автоматично заповнювати веб-форми, використовуючи раніше збережену інформацію, як-от адресу або дані кредитної картки.
+
+      Якщо вимкнути це налаштування, функція автозаповнення буде недоступною для користувачів.
+
+      Якщо це налаштування ввімкнено або не налаштовано, функцією автозаповнення керує користувач. Завдяки цьому він зможе налаштовувати профілі автозаповнення та вмикати або вимикати функцію автозаповнення на власний розсуд.</translation>
 <translation id="8044493735196713914">Повідомляти про режим завантаження пристрою</translation>
 <translation id="8050080920415773384">Власний друк</translation>
 <translation id="8059164285174960932">URL-адреса, за якою клієнти віддаленого доступу мають отримати маркер автентифікації</translation>
@@ -2817,6 +2853,33 @@
 
       Якщо правило не налаштовано, застосовується параметр <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
+<translation id="8938932171964587769">Не підтримується у версії M69. Натомість використовуйте правило
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Це правило визначає перелік джерел (URL-адрес) або зразки імені хосту
+      (як-от "*.example.com"), для яких не застосовуватимуться обмеження
+      щодо безпеки для незахищених джерел.
+
+      Мета – дати змогу організаціям налаштовувати дозволені джерела для
+      застарілих додатків, які не можуть застосовувати TLS, або налаштовувати
+      проміжний сервер для внутрішніх веб-розробок, щоб можна було
+      тестувати функції, для яких потрібен безпечний контекст, не використовуючи
+      TLS. Завдяки цьому правилу джерела не матимуть мітки "Ненадійне"
+      в універсальному вікні пошуку.
+
+      Налаштувати список URL-адрес у цьому правилі – це те саме, що
+      встановити для позначки командного рядка
+      "--unsafely-treat-insecure-origin-as-secure" відокремлений комами список
+      тих самих URL-адрес. Якщо це правило налаштовано, воно замінює
+      позначку командного рядка.
+
+      Це правило більше не підтримується у версії M69. Його замінено на
+      правило OverrideSecurityRestrictionsOnInsecureOrigin. Якщо є обидва,
+      OverrideSecurityRestrictionsOnInsecureOrigin замінить це правило.
+
+      Докладніше про безпечні контексти читайте на сторінці
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Це правило визначає, чи можна показувати Синхронізацію згоди під час першого входу користувача. Для нього потрібно встановити значення false, якщо користувачеві ніколи не потрібна Синхронізація згоди.
       Якщо вибрано значення false, Синхронізація згоди не показуватиметься.
       Якщо це правило не налаштовано або має значення true, Синхронізація згоди може показуватися.</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index e061da5..2c48e12 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -33,6 +33,28 @@
           Nếu cài đặt này bị tắt hoặc không được định cấu hình, máy chủ hỗ trợ từ xa sẽ chạy trên ngữ cảnh của người dùng và người dùng ở xa không thể tương tác với cửa sổ bật lên trên màn hình.</translation>
 <translation id="1096105751829466145">Nhà cung cấp dịch vụ tìm kiếm mặc định</translation>
 <translation id="1099282607296956954">Bật chính sách Cô lập trang web cho mọi trang web</translation>
+<translation id="1100570158310952027">
+      Chính sách này xác định danh sách (các URL) nguồn gốc hoặc mẫu tên máy chủ (chẳng hạn
+      như "*.example.com") mà các hạn chế về bảo mật đối với nguồn gốc không an toàn
+      sẽ không áp dụng.
+
+      Mục đích là nhằm cho phép các tổ chức thiết lập nguồn gốc danh sách cho phép đối với
+      ứng dụng cũ không thể triển khai TLS, hoặc thiết lập một máy chủ theo giai đoạn
+      để phát triển web nội bộ sao cho các nhà phát triển có thể thử nghiệm các tính năng
+      yêu cầu ngữ ảnh an toàn mà không phải triển khai TLS trên máy chủ
+      theo giai đoạn. Ngoài ra, chính sách này sẽ ngăn không cho gắn nhãn nguồn gốc này là
+      "Không bảo mật" trong thanh địa chỉ.
+
+      Việc đặt một danh sách URL trong chính sách này có tác dụng tương tự như đặt
+      cờ dòng lệnh '--unsafely-treat-insecure-origin-as-secure' cho một
+      danh sách được phân tách bằng dấu phẩy gồm các URL tương tự. Nếu bạn đặt chính sách này,
+      thì chính sách này sẽ ghi đè cờ dòng lệnh.
+
+      Chính sách này sẽ ghi đè UnsafelyTreatInsecureOriginAsSecure nếu có.
+
+      Để biết thêm thông tin về ngữ cảnh an toàn, hãy truy cập vào
+      https://www.w3.org/TR/secure-contexts/.
+      </translation>
 <translation id="1117535567637097036">Trình xử lý giao thức được đặt qua chính sách này không được sử dụng khi xử lý các cơ chế của Android.</translation>
 <translation id="1118093128235245168">Cho phép các trang web yêu cầu người dùng cấp quyền truy cập vào một thiết bị USB đã kết nối</translation>
 <translation id="1128903365609589950">Định cấu hình thư mục mà <ph name="PRODUCT_NAME" /> sẽ sử dụng để lưu trữ các tệp được lưu trữ trong bộ nhớ đệm trên đĩa.
@@ -80,6 +102,8 @@
       Nếu chính sách này không được đặt hoặc được đặt thành false thì bộ mã hóa RC4 trong TLS sẽ không được bật. Ngoài ra, chính sách có thể được đặt thành true để duy trì khả năng tương thích với máy chủ lỗi thời. Đây là một biện pháp tạm thời và cần phải định cấu hình lại máy chủ.</translation>
 <translation id="1297182715641689552">Sử dụng tập lệnh proxy .pac</translation>
 <translation id="1304973015437969093">Cần ID tiện ích/ứng dụng và URL cập nhật để tự động cài đặt</translation>
+<translation id="1307454923744766368">Các nguồn gốc hoặc mẫu tên máy chủ mà các hạn chế đối với
+      nguồn gốc không an toàn không được áp dụng</translation>
 <translation id="1313457536529613143">Chỉ định tỷ lệ phần trăm theo đó độ trễ mờ màn hình được xác định khi hoạt động của người dùng được quan sát thấy lúc màn hình bị làm mờ hoặc ngay sau khi màn hình tắt.
 
           Nếu chính sách này được đặt, chính sách chỉ định tỷ lệ phần trăm theo đó độ trễ mờ màn hình được xác định khi hoạt động của người dùng được quan sát thấy lúc màn hình bị làm mờ hoặc ngay sau khi màn hình tắt. Khi độ trễ mờ màn hình được xác định tỷ lệ, độ trễ tắt màn hình, độ trễ khóa màn hình và độ trễ khi không hoạt động được điều chỉnh để duy trì cùng khoảng cách với độ trễ mờ màn hình như được định cấu hình ban đầu.
@@ -91,6 +115,11 @@
 <translation id="1327466551276625742">Bật lời nhắc về cấu hình mạng khi ngoại tuyến</translation>
 <translation id="1330145147221172764">Bật bàn phím ảo</translation>
 <translation id="13356285923490863">Tên chính sách</translation>
+<translation id="1352174694615491349">Chính sách này cho phép hợp nhất đường kết nối HTTP/2 khi sử dụng chứng chỉ ứng dụng khách. Để hợp nhất, cả tên miền của đường kết nối tiềm năng mới và tên miền của đường kết nối hiện có phải phù hợp với một hoặc nhiều mẫu như mô tả trong chính sách này. Chính sách này là một danh sách các máy chủ sử dụng định dạng bộ lọc URLBlacklist: "example.com" phù hợp với "example.com" và mọi tên miền phụ (chẳng hạn như "sub.example.com"), trong khi đó, ".example.net" lại hoàn toàn phù hợp với "example.net".
+
+      Yêu cầu hợp nhất gửi tới các máy chủ khác nhau qua đường kết nối dùng chứng chỉ ứng dụng khách có thể gây ra các vấn đề về bảo mật và quyền riêng tư, bởi vì tất cả các yêu cầu đều được cấp phép rộng rãi, kể cả khi người dùng không cho phép rõ ràng. Chính sách này là tạm thời và sẽ bị xóa bỏ trong bản phát hành tương lai. Hãy truy cập vào https://crbug.com/855690 để tìm hiểu thêm.
+
+      Nếu bạn không đặt chính sách này, thì hoạt động mặc định sẽ được sử dụng, trong đó không cho phép hợp nhất đường kết nối HTTP/2 đối với các đường kết nối sử dụng chứng chỉ ứng dụng khách.</translation>
 <translation id="1353966721814789986">Trang khởi động</translation>
 <translation id="1359553908012294236">Nếu chính sách này được đặt thành true hoặc không được định cấu hình, <ph name="PRODUCT_NAME" /> sẽ bật chế độ đăng nhập khách. Chế độ đăng nhập khách là hồ sơ <ph name="PRODUCT_NAME" /> trong đó tất cả cửa sổ đều ở chế độ ẩn danh.
 
@@ -184,6 +213,7 @@
 <translation id="1583248206450240930">Sử dụng <ph name="PRODUCT_FRAME_NAME" /> theo mặc định</translation>
 <translation id="1599424828227887013">Bật tính năng Cách ly trang web cho nguồn gốc đã chỉ định trên thiết bị Android</translation>
 <translation id="1608755754295374538">Các URL sẽ được cấp quyền truy cập thiết bị ghi âm mà không cần phải hiển thị lời nhắc</translation>
+<translation id="1615221548356595305">Cho phép hợp nhất các đường kết nối HTTP/2 đối với những máy chủ này kể cả khi sử dụng chứng chỉ ứng dụng khách</translation>
 <translation id="1617235075406854669">Bật xóa lịch sử trình duyệt và lịch sử tải xuống</translation>
 <translation id="163200210584085447">Các mẫu trong danh sách này sẽ được đối sánh dựa trên nguồn gốc
       bảo mật của URL yêu cầu.  Nếu tìm thấy mẫu phù hợp, quyền
@@ -1187,7 +1217,6 @@
       Nếu bạn không đặt chính sách này, tính năng thu thập dữ liệu ẩn danh có khóa URL sẽ bật nhưng người dùng có thể thay đổi mục cài đặt này.</translation>
 <translation id="4250680216510889253">Không</translation>
 <translation id="4261820385751181068">Ngôn ngữ màn hình đăng nhập thiết bị</translation>
-<translation id="4264607809747169568">Kiểm soát tính năng Chia sẻ tệp trong mạng cho hoạt động của ChromeOS</translation>
 <translation id="427220754384423013">Chỉ định các máy in mà người dùng có thể sử dụng.
 
       Chỉ sử dụng chính sách này nếu đã chọn <ph name="PRINTERS_WHITELIST" /> cho <ph name="BULK_PRINTERS_ACCESS_MODE" />.
@@ -1346,6 +1375,7 @@
       Nếu bạn đã bật chính sách này, thì các trang web sẽ được phép chuyển tới và mở các cửa sổ/tab mới cùng một lúc.
       Nếu bạn đã tắt hoặc chưa đặt chính sách này, các trang web sẽ không được phép chuyển tới và mở cửa sổ/tab mới cùng một lúc.</translation>
 <translation id="4680961954980851756">Bật Tự động điền</translation>
+<translation id="4703402283970867140">Bật mô hình làm mờ thông minh để kéo dài thời gian cho đến khi màn hình mờ đi</translation>
 <translation id="4722122254122249791">Bật chính sách Cô lập trang web cho các nguồn gốc đã xác định</translation>
 <translation id="4722399051042571387">Nếu đặt thành false, người dùng sẽ không thể đặt các mã PIN yếu và dễ đoán.
 
@@ -1576,13 +1606,6 @@
 
           Nếu không thiết lập chính sách này, 'AskNotifications' sẽ được sử dụng và người dùng có thể thay đổi cài đặt này.</translation>
 <translation id="538108065117008131">Cho phép <ph name="PRODUCT_FRAME_NAME" /> xử lý các loại nội dung sau.</translation>
-<translation id="5391363090783552279">Nếu bạn đặt chính sách này thành true, <ph name="PRODUCT_NAME" /> sẽ kết nối với Thiết bị truyền trên tất cả các địa chỉ IP chứ không chỉ các địa chỉ riêng RFC1918/RFC4913.
-
-          Nếu bạn đặt chính sách này thành false, <ph name="PRODUCT_NAME" /> sẽ chỉ kết nối với Thiết bị truyền trên các địa chỉ riêng RFC1918/RFC4913.
-
-          Nếu bạn chưa đặt chính sách này, <ph name="PRODUCT_NAME" /> sẽ chỉ kết nối với Thiết bị truyền trên các địa chỉ riêng RFC1918/RFC4913, trừ khi tính năng CastAllowAllIPs được bật enabled.
-
-          Nếu bạn đặt chính sách "EnableMediaRouter" thành false, thì khi đó giá trị của chính sách này sẽ không có hiệu lực.</translation>
 <translation id="5392172595902933844">Thông tin về trạng thái của Android được gửi lại cho
       máy chủ.
 
@@ -2154,6 +2177,10 @@
 <translation id="6943577887654905793">Tên tùy chọn Mac/Linux:</translation>
 <translation id="69525503251220566">Tham số cung cấp tính năng tìm theo hình ảnh cho nhà cung cấp dịch vụ tìm kiếm mặc định</translation>
 <translation id="6956272732789158625">Không cho phép bất kỳ trang web nào sử dụng tạo khóa</translation>
+<translation id="6965859329738616662">Nêu rõ liệu mô hình làm mờ thông minh có được phép kéo dài thời gian cho đến khi màn hình mờ đi hay không.
+
+      Khi màn hình sắp mờ đi, mô hình làm mờ thông minh sẽ đánh giá xem có nên làm chậm quá trình làm mờ màn hình hay không. Nếu mô hình làm mờ thông minh làm chậm quá trình mờ màn hình, thì có nghĩa mô hình này đã kéo dài được thời gian cho đến khi màn hình mờ đi. Trong trường hợp này, độ trễ tắt màn hình, độ trễ khóa màn hình và độ trễ khi không hoạt động sẽ được điều chỉnh để duy trì cùng khoảng cách với độ trễ mờ màn hình như được định cấu hình ban đầu.
+      Nếu bạn đặt chính sách này là True hoặc không đặt, thì mô hình làm mờ thông minh sẽ bật và được phép kéo dài thời gian cho đến khi màn hình mờ đi. Nếu bạn đặt chính sách này là False, thì mô hình làm mờ thông minh sẽ không ảnh hưởng tới quá trình làm mờ màn hình.</translation>
 <translation id="6982028490425791294">
       Nếu bạn đặt chính sách này là true, thì <ph name="PRODUCT_NAME" /> được phép thu thập nhật ký sự kiện WebRTC từ các dịch vụ của Google (ví dụ: Google Meet), và tải các nhật ký đó lên Google.
 
@@ -2595,6 +2622,13 @@
 <translation id="7980227303582973781">Không có hạn chế đặc biệt</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">Xoay màn hình 0 độ</translation>
+<translation id="8033913082323846868">Chính sách này không còn được dùng trong M70, thay vào đó, hãy sử dụng AutofillAddressEnabled và AutofillCreditCardEnabled.
+
+      Bật tính năng Tự động điền của <ph name="PRODUCT_NAME" /> và cho phép người dùng tự động hoàn thành các biểu mẫu web bằng cách sử dụng thông tin đã lưu trữ trước đây, chẳng hạn như địa chỉ và thông tin thẻ tín dụng.
+
+      Nếu bạn tắt tùy chọn cài đặt này, thì người dùng sẽ không sử dụng được tính năng Tự động điền.
+
+      Nếu bạn bật hoặc không đặt giá trị cho tùy chọn cài đặt này, thì người dùng vẫn có quyền kiểm soát đối với tính năng Tự động điền. Điều này sẽ cho phép họ định cấu hình cho hồ sơ Tự động điền và bật hoặc tắt tính năng này theo ý mình.</translation>
 <translation id="8044493735196713914">Báo cáo chế độ khởi động thiết bị</translation>
 <translation id="8050080920415773384">In bản gốc</translation>
 <translation id="8059164285174960932">URL nơi ứng dụng truy cập từ xa sẽ lấy mã thông báo xác thực</translation>
@@ -2925,6 +2959,33 @@
 
       Nếu bạn chưa đặt chính sách này, thì <ph name="PRINTERS_ALLOW_ALL" /> sẽ là tùy chọn mặc định.
       </translation>
+<translation id="8938932171964587769">Không còn được dùng trong M69. Thay vào đó, hãy sử dụng
+      OverrideSecurityRestrictionsOnInsecureOrigin.
+
+      Chính sách này xác định danh sách (các URL) nguồn gốc hoặc mẫu tên máy chủ (chẳng hạn
+      như "*.example.com") mà các hạn chế về bảo mật đối với nguồn gốc không an toàn
+      sẽ không áp dụng.
+
+      Mục đích là nhằm cho phép các tổ chức thiết lập các nguồn gốc danh sách cho phép đối với ứng dụng
+      cũ không thể triển khai TLS, hoặc thiết lập một máy chủ theo giai đoạn
+      để phát triển web nội bộ sao cho các nhà phát triển có thể thử nghiệm các tính năng
+      yêu cầu ngữ ảnh an toàn mà không phải triển khai TLS trên máy chủ
+      theo giai đoạn. Ngoài ra, chính sách này sẽ ngăn không cho gắn nhãn nguồn gốc này là
+      "Không bảo mật" trong thanh địa chỉ.
+
+      Việc đặt một danh sách URL trong chính sách này có tác dụng tương tự như đặt
+      cờ dòng lệnh '--unsafely-treat-insecure-origin-as-secure' cho một
+      danh sách được phân tách bằng dấu phẩy gồm các URL tương tự. Nếu bạn đặt chính sách này, thì chính sách này sẽ
+      ghi đè cờ dòng lệnh.
+
+      Chính sách này không còn được dùng trong M69 và thay bằng
+      OverrideSecurityRestrictionsOnInsecureOrigin. Nếu xuất hiện cả hai chính sách,
+      thì OverrideSecurityRestrictionsOnInsecureOrigin sẽ ghi đè
+      chính sách này.
+
+      Để biết thêm thông tin về ngữ cảnh an toàn, hãy truy cập vào
+      https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">Chính sách này sẽ kiểm soát liệu màn hình Đồng ý đồng bộ hóa có hiển thị với người dùng trong lần đăng nhập đầu tiên hay không. Bạn nên đặt chính sách này thành false nếu không cần hiển thị màn hình Đồng ý đồng bộ hóa cho người dùng.
       Nếu đặt chính sách thành false, thì màn hình Đồng ý đồng bộ hóa sẽ không hiển thị.
       Nếu đặt thành true hoặc không đặt chính sách này, thì màn hình Đồng ý đồng bộ hóa có thể được hiển thị.</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 540a0be..1d4b99e 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -1114,7 +1114,6 @@
       如果未设置此政策,系统将启用包含网址的匿名化数据收集功能,但用户将能够更改此设置。</translation>
 <translation id="4250680216510889253">否</translation>
 <translation id="4261820385751181068">设备登录屏幕语言区域</translation>
-<translation id="4264607809747169568">控制是否允许在 Chrome 操作系统中使用网络文件共享功能</translation>
 <translation id="427220754384423013">指定用户可以使用的打印机。
 
       仅当为 <ph name="BULK_PRINTERS_ACCESS_MODE" /> 选择了 <ph name="PRINTERS_WHITELIST" /> 时,才可使用此政策。
@@ -1473,13 +1472,6 @@
 <translation id="5370279767682621504">在非默认端口上启用 HTTP/0.9 支持</translation>
 <translation id="5378985487213287085">可让您设置是否允许网站显示桌面通知。默认情况下,可以允许或拒绝显示桌面通知,也可以在每次网站要显示桌面通知时询问用户。如果未设置此政策,系统将使用“AskNotifications”并允许用户更改此设置。</translation>
 <translation id="538108065117008131">允许“<ph name="PRODUCT_FRAME_NAME" />”处理以下内容类型。</translation>
-<translation id="5391363090783552279">如果此政策设为 true,<ph name="PRODUCT_NAME" /> 将连接到位于所有 IP 地址的 Cast 设备,而不是只连接到位于 RFC1918/RFC4913 私有地址的 Cast 设备。
-
-          如果此政策设为 false,<ph name="PRODUCT_NAME" /> 将只连接到位于 RFC1918/RFC4913 私有地址的 Cast 设备。
-
-          如果此政策未设置,那么除非已启用 CastAllowAllIPs 功能,否则 <ph name="PRODUCT_NAME" /> 将只连接到位于 RFC1918/RFC4913 私有地址的 Cast 设备。
-
-          如果“EnableMediaRouter”政策设为 false,那么此政策的值将不会发挥任何作用。</translation>
 <translation id="5392172595902933844">系统会将有关 Android 状态的信息发送回服务器。
 
       如果此政策设为 false 或未设置,系统便不会报告状态信息。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 7e7b1632..d4f2fb9e 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -33,6 +33,17 @@
           如果停用或未指定這項設定,遠端協助主機則會在使用者的作業環境中執行,遠端使用者將無法在桌面上操控權限較高的視窗。</translation>
 <translation id="1096105751829466145">預設搜尋引擎</translation>
 <translation id="1099282607296956954">為所有網站啟用網站隔離</translation>
+<translation id="1100570158310952027">
+      這項政策可指定要視為安全內容的來源 (網址) 或主機名稱模式 (例如「*.example.com」),清單中的內容來源將不會套用針對不安全來源的安全性限制。
+
+這項政策的用途是讓機構為無法部署傳輸層安全標準 (TLS) 的舊版應用程式設定許可清單來源,或是方便機構設定內部網頁開發所需的暫存伺服器。這樣一來,機構的開發人員就能測試需要安全內容的功能,而不必在暫存伺服器上部署傳輸層安全標準 (TLS)。此外,這項政策也能避免系統在網址列中將指定來源加上「不安全」標籤。
+
+你可以在這項政策中設定網址清單,或是將「--unsafely-treat-insecure-origin-as-secure」命令列標記設為相同的網址清單 (以逗號分隔),兩者的效果相同。如果設定這項政策,就會覆寫命令列標記。
+
+這項政策會覆寫 UnsafelyTreatInsecureOriginAsSecure 政策 (如已設定)。
+
+如要進一步瞭解安全內容,請參閱 https://www.w3.org/TR/secure-contexts/。
+      </translation>
 <translation id="1117535567637097036">處理 Android 調用請求時,系統不會使用透過這項政策設定的通訊協定處理常式。</translation>
 <translation id="1118093128235245168">允許網站要求使用者授權存取已連線的 USB 裝置</translation>
 <translation id="1128903365609589950">設定 <ph name="PRODUCT_NAME" /> 在磁碟中儲存快取檔案時所使用的目錄。
@@ -80,6 +91,7 @@
       如果未設定這項政策或將其設為 False,系統就不會在 TLS 中啟用 RC4 加密套件。您也可以將這項政策設為 True,以保持與過舊伺服器的相容性。這種方法是權宜之計,伺服器應重新設定,才是正確的做法。</translation>
 <translation id="1297182715641689552">使用 .pac Proxy 指令碼</translation>
 <translation id="1304973015437969093">自動在背景中安裝的擴充功能/應用程式 ID 和更新網址</translation>
+<translation id="1307454923744766368">不適用不安全來源相關限制的來源或主機名稱模式</translation>
 <translation id="1313457536529613143">指定裝置在螢幕變暗時或螢幕關閉後不久偵測到使用者活動時的調暗延遲時間延長百分比。
 
           如果你設定這項政策,表示裝置會在螢幕變暗時或螢幕關閉後不久偵測到使用者活動時,根據指定的百分比延長調暗延遲時間。如果延遲時間延長,關閉螢幕、鎖定螢幕和閒置狀態的延遲時間也會隨之調整,以維持原本所設定的相同時間比例。
@@ -91,6 +103,11 @@
 <translation id="1327466551276625742">離線時啟用網路設定提示</translation>
 <translation id="1330145147221172764">啟用螢幕小鍵盤</translation>
 <translation id="13356285923490863">政策名稱</translation>
+<translation id="1352174694615491349">這項政策可在用戶端憑證已有人使用的情況下,允許 HTTP/2 連線合併。如要合併,新連線的主機名稱和現有連線的主機名稱必須與這項政策的一或多個模式相符。這項政策所設定的主機清單採用「URLBlacklist」篩選器格式:「example.com」與其所有子網域 (例如「sub.example.com」) 均符合「example.com」這項篩選條件,而「.example.net」則與「example.net」完全相符。
+
+如果透過採用用戶端憑證的連線,將不同主機的要求合併,則會導致安全性和隱私權問題,這是因為即便使用者並未明確給予授權,系統仍會將周遭授權傳送給所有的要求。這項政策僅是暫時性措施,未來將會予以移除。詳情請參閱 https://crbug.com/855690。
+
+如果你未設定這項政策,則系統預設行為會是不允許使用用戶端憑證的連線合併 HTTP/2 連線。</translation>
 <translation id="1353966721814789986">起始網頁</translation>
 <translation id="1359553908012294236">如果將這項政策設為 True 或未設定,<ph name="PRODUCT_NAME" /> 會啟用訪客登入。訪客登入是 <ph name="PRODUCT_NAME" /> 設定檔,其中的所有視窗都處於無痕模式。
 
@@ -181,6 +198,7 @@
 <translation id="1583248206450240930">根據預設使用 <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="1599424828227887013">在 Android 裝置上為指定來源啟用網站隔離</translation>
 <translation id="1608755754295374538">系統會直接授權存取音訊擷取裝置而不需提示的網址</translation>
+<translation id="1615221548356595305">即使在用戶端憑證已有人使用的情況下,仍允許這些主機合併 HTTP/2 連線</translation>
 <translation id="1617235075406854669">啟用刪除瀏覽器和下載記錄</translation>
 <translation id="163200210584085447">系統會比對這份清單中的模式與要求網址的
       安全性來源。如果找到相符的結果,系統就會
@@ -1153,7 +1171,6 @@
       如果未設定這項政策,系統將啟用輸入網址匿名資料收集功能,但使用者可以變更這項設定。</translation>
 <translation id="4250680216510889253">否</translation>
 <translation id="4261820385751181068">裝置登入畫面語言代碼</translation>
-<translation id="4264607809747169568">控管是否允許在 Chrome 作業系統使用網路檔案共用功能</translation>
 <translation id="427220754384423013">指定哪些印表機是可以使用的。
 
       只有在為 <ph name="BULK_PRINTERS_ACCESS_MODE" /> 選擇 <ph name="PRINTERS_WHITELIST" /> 的情況下,這項政策才有作用。
@@ -1304,6 +1321,7 @@
       如果啟用這項政策,即可同時在多個網站中進行瀏覽及開啟新視窗/分頁。
       如果停用這項政策或不予設定,則無法同時在多個網站中進行瀏覽及開啟新視窗/分頁。</translation>
 <translation id="4680961954980851756">啟用自動填入</translation>
+<translation id="4703402283970867140">啟用智慧型調光模式來延長使用時間,直到螢幕變暗為止</translation>
 <translation id="4722122254122249791">為指定來源啟用網站隔離</translation>
 <translation id="4722399051042571387">如果設為 False,使用者將無法設定系統判定強度不足而容易被破解的 PIN。
 
@@ -1515,13 +1533,6 @@
 <translation id="5370279767682621504">在非預設通訊埠啟用 HTTP/0.9 支援功能</translation>
 <translation id="5378985487213287085">允許你設定是否要讓網站顯示桌面通知。你可以將網站預設為允許或禁止顯示桌面通知,也可以設為每次網站要顯示桌面通知時再詢問使用者。如果未設定這項政策,系統會使用「AskNotifications」,但使用者可以變更這項設定。</translation>
 <translation id="538108065117008131">允許 <ph name="PRODUCT_FRAME_NAME" /> 處理下列內容類型。</translation>
-<translation id="5391363090783552279">如果將這項政策設為 True,<ph name="PRODUCT_NAME" /> 會連線至所有 IP 位址上的 Cast 裝置,而不是只有 RFC1918/RFC4913 私人位址上的 Cast 裝置。
-
-          如果將這項政策設為 False,<ph name="PRODUCT_NAME" /> 將只會連線至 RFC1918/RFC4913 私人位址上的 Cast 裝置。
-
-          如果未設定這項政策,除非啟用 CastAllowAllIPs 功能,否則 <ph name="PRODUCT_NAME" /> 只會連線至 RFC1918/RFC4913 私人位址上的 Cast 裝置。
-
-          如果將「EnableMediaRouter」政策設為 False,則這項政策的值不會有任何效果。</translation>
 <translation id="5392172595902933844">將 Android 狀態的相關資訊傳回
       伺服器。
 
@@ -2073,6 +2084,11 @@
 <translation id="6943577887654905793">Mac/Linux 偏好設定名稱:</translation>
 <translation id="69525503251220566">為預設搜尋引擎提供圖片搜尋功能的參數</translation>
 <translation id="6956272732789158625">不允許任何網站使用金鑰產生功能</translation>
+<translation id="6965859329738616662">指定是否允許智慧型調光模式延長使用時間,直到螢幕變暗為止。
+
+在螢幕即將變暗時,智慧型調光模式會評估是否要延遲螢幕變暗的時間。如果智慧型調光模式決定延遲螢幕變暗的時間,使用時間就會確實延長至螢幕變暗為止。在這種情況下,關閉螢幕、鎖定螢幕和閒置狀態的延遲時間也會隨之調整,以維持原本所設定的相同時間比例。
+
+如果你將這項政策設為 True 或不予設定,系統會啟用智慧型調光模式並允許延長使用時間,直到螢幕變暗為止。如果將這項政策設為 False,智慧型調光模式便無法管理螢幕的調光設定。</translation>
 <translation id="6982028490425791294">
       如果將這項政策設為 True,<ph name="PRODUCT_NAME" /> 就能從 Google 服務 (例如 Google Meet) 收集 WebRTC 事件記錄,並將這些記錄上傳至 Google。
 
@@ -2498,6 +2514,13 @@
 <translation id="7980227303582973781">無特殊限制</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
 <translation id="802147957407376460">將畫面旋轉 0 度</translation>
+<translation id="8033913082323846868">這項政策自 M70 起已淘汰,請改用 AutofillAddressEnabled 和 AutofillCreditCardEnabled。
+
+啟用「<ph name="PRODUCT_NAME" />」的「自動填入」功能,並允許使用者使用先前儲存的地址或信用卡資料等資訊自動填寫網路表單。
+
+如果你停用這項設定,使用者就無法使用「自動填入」功能。
+
+如果你啟用這項設定或未設定任何值,使用者就能自行管理「自動填入」功能。也就是說,使用者可以設定「自動填入」設定檔,並可自行決定是否要開啟「自動填入」功能。</translation>
 <translation id="8044493735196713914">回報裝置啟動模式</translation>
 <translation id="8050080920415773384">原生列印</translation>
 <translation id="8059164285174960932">遠端存取用戶端取得驗證憑證的來源網址</translation>
@@ -2811,6 +2834,19 @@
 
       如果未設定這項政策,系統會自動採用 <ph name="PRINTERS_ALLOW_ALL" />。
       </translation>
+<translation id="8938932171964587769">這項政策自 M69 起已淘汰,請改用 OverrideSecurityRestrictionsOnInsecureOrigin。
+
+這項政策可指定要視為安全內容的來源 (網址) 或主機名稱模式 (例如「*.example.com」),清單中的內容來源將不會套用針對不安全來源的安全性限制。
+
+這項政策的用途是讓機構為無法部署傳輸層安全標準 (TLS) 的舊版應用程式設定許可清單來源,或是方便機構設定內部網頁開發所需的暫存伺服器。這樣一來,機構的開發人員就能測試需要安全內容的功能,而不必在暫存伺服器上部署傳輸層安全標準 (TLS)。此外,這項政策也能避免系統在網址列中將指定來源加上「不安全」標籤。
+
+你可以在這項政策中設定網址清單,或是將「--unsafely-treat-insecure-origin-as-secure」命令列標記設為相同的網址清單 (以逗號分隔),兩者的效果相同。如果設定這項政策,就會覆寫命令列標記。
+
+      這項政策自 M69 起已淘汰,由 OverrideSecurityRestrictionsOnInsecureOrigin 取代。如果兩項政策同時存在,OverrideSecurityRestrictionsOnInsecureOrigin 
+將會覆寫這項政策。
+
+如要進一步瞭解安全內容,請參閱 https://www.w3.org/TR/secure-contexts/
+      </translation>
 <translation id="8942616385591203339">這項政策可控制是否可在使用者初次登入時,向使用者顯示同步處理同意聲明。如果使用者不需要查看同步處理同意聲明,則應設為 false。
       如果設為 false,就不會顯示同步處理同意聲明。
       如果設為 true 或不予設定,則可顯示同步處理同意聲明。</translation>
diff --git a/components/safe_browsing/db/v4_database.cc b/components/safe_browsing/db/v4_database.cc
index 3523a2a..317382b 100644
--- a/components/safe_browsing/db/v4_database.cc
+++ b/components/safe_browsing/db/v4_database.cc
@@ -280,9 +280,18 @@
     stores.push_back(std::make_pair(next_store.first, next_store.second.get()));
   }
 
-  base::PostTaskAndReplyWithResult(db_task_runner_.get(), FROM_HERE,
-                                   base::Bind(&VerifyChecksums, stores),
-                                   db_ready_for_updates_callback);
+  base::PostTaskAndReplyWithResult(
+      db_task_runner_.get(), FROM_HERE, base::Bind(&VerifyChecksums, stores),
+      base::Bind(&V4Database::OnChecksumVerified,
+                 weak_factory_on_io_.GetWeakPtr(),
+                 std::move(db_ready_for_updates_callback)));
+}
+
+void V4Database::OnChecksumVerified(
+    DatabaseReadyForUpdatesCallback db_ready_for_updates_callback,
+    const std::vector<ListIdentifier>& stores_to_reset) {
+  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  db_ready_for_updates_callback.Run(stores_to_reset);
 }
 
 bool V4Database::IsStoreAvailable(const ListIdentifier& identifier) const {
diff --git a/components/safe_browsing/db/v4_database.h b/components/safe_browsing/db/v4_database.h
index 600b382..6f008ee2 100644
--- a/components/safe_browsing/db/v4_database.h
+++ b/components/safe_browsing/db/v4_database.h
@@ -218,9 +218,9 @@
                          std::unique_ptr<V4Store> store);
 
   // See |VerifyChecksum|.
-  void VerifyChecksumOnTaskRunner(
-      const scoped_refptr<base::SingleThreadTaskRunner>& callback_task_runner,
-      DatabaseReadyForUpdatesCallback db_ready_for_updates_callback);
+  void OnChecksumVerified(
+      DatabaseReadyForUpdatesCallback db_ready_for_updates_callback,
+      const std::vector<ListIdentifier>& stores_to_reset);
 
   bool IsStoreAvailable(const ListIdentifier& identifier) const;
 
diff --git a/components/safe_browsing/db/v4_database_unittest.cc b/components/safe_browsing/db/v4_database_unittest.cc
index d5db0e6..6de1f7517 100644
--- a/components/safe_browsing/db/v4_database_unittest.cc
+++ b/components/safe_browsing/db/v4_database_unittest.cc
@@ -452,6 +452,27 @@
   EXPECT_TRUE(verify_checksum_called_back_);
 }
 
+TEST_F(V4DatabaseTest, VerifyChecksumCancelled) {
+  bool hash_prefix_matches = true;
+  RegisterFactory(hash_prefix_matches);
+
+  V4Database::Create(task_runner_, database_dirname_, list_infos_,
+                     callback_db_ready_);
+  created_but_not_called_back_ = true;
+  WaitForTasksOnTaskRunner();
+  EXPECT_EQ(true, created_and_called_back_);
+
+  EXPECT_FALSE(verify_checksum_called_back_);
+  v4_database_->VerifyChecksum(base::Bind(
+      &V4DatabaseTest::VerifyChecksumCallback, base::Unretained(this)));
+  EXPECT_FALSE(verify_checksum_called_back_);
+  // Destroy database.
+  V4Database::Destroy(std::move(v4_database_));
+  WaitForTasksOnTaskRunner();
+  // Callback should not be called since database is destroyed.
+  EXPECT_FALSE(verify_checksum_called_back_);
+}
+
 // Test that we can properly check for unsupported stores
 TEST_F(V4DatabaseTest, TestStoresAvailable) {
   bool hash_prefix_matches = false;
diff --git a/components/safe_search_api/BUILD.gn b/components/safe_search_api/BUILD.gn
index 6a65818a..7883ba3f 100644
--- a/components/safe_search_api/BUILD.gn
+++ b/components/safe_search_api/BUILD.gn
@@ -18,10 +18,11 @@
   ]
 }
 
-source_set("unit_tests") {
+source_set("test_support") {
   testonly = true
   sources = [
-    "url_checker_unittest.cc",
+    "stub_url_checker.cc",
+    "stub_url_checker.h",
   ]
   deps = [
     ":safe_search_api",
@@ -31,6 +32,21 @@
     "//net/traffic_annotation:test_support",
     "//services/network:test_support",
     "//services/network/public/cpp",
+    "//url",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [
+    "url_checker_unittest.cc",
+  ]
+  deps = [
+    ":safe_search_api",
+    ":test_support",
+    "//base",
+    "//base/test:test_support",
+    "//net",
     "//testing/gmock",
     "//testing/gtest",
     "//url",
diff --git a/components/safe_search_api/stub_url_checker.cc b/components/safe_search_api/stub_url_checker.cc
new file mode 100644
index 0000000..0871c75
--- /dev/null
+++ b/components/safe_search_api/stub_url_checker.cc
@@ -0,0 +1,72 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/safe_search_api/stub_url_checker.h"
+
+#include "base/json/json_writer.h"
+#include "base/values.h"
+#include "components/safe_search_api/url_checker.h"
+#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
+#include "services/network/public/cpp/shared_url_loader_factory.h"
+#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
+#include "url/gurl.h"
+
+namespace safe_search_api {
+
+namespace {
+
+constexpr char kSafeSearchApiUrl[] =
+    "https://safesearch.googleapis.com/v1:classify";
+
+std::string BuildResponse(bool is_porn) {
+  base::DictionaryValue dict;
+  auto classification_dict = std::make_unique<base::DictionaryValue>();
+  if (is_porn)
+    classification_dict->SetBoolean("pornography", is_porn);
+  auto classifications_list = std::make_unique<base::ListValue>();
+  classifications_list->Append(std::move(classification_dict));
+  dict.SetWithoutPathExpansion("classifications",
+                               std::move(classifications_list));
+  std::string result;
+  base::JSONWriter::Write(dict, &result);
+  return result;
+}
+
+}  // namespace
+
+StubURLChecker::StubURLChecker()
+    : test_shared_loader_factory_(
+          base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
+              &test_url_loader_factory_)) {}
+
+StubURLChecker::~StubURLChecker() = default;
+
+std::unique_ptr<URLChecker> StubURLChecker::BuildURLChecker(size_t cache_size) {
+  return std::make_unique<URLChecker>(test_shared_loader_factory_,
+                                      TRAFFIC_ANNOTATION_FOR_TESTS,
+                                      std::string(), cache_size);
+}
+
+void StubURLChecker::SetUpValidResponse(bool is_porn) {
+  SetUpResponse(net::OK, BuildResponse(is_porn));
+}
+
+void StubURLChecker::SetUpFailedResponse() {
+  SetUpResponse(net::ERR_ABORTED, std::string());
+}
+
+void StubURLChecker::ClearResponses() {
+  test_url_loader_factory_.ClearResponses();
+}
+
+void StubURLChecker::SetUpResponse(net::Error error,
+                                   const std::string& response) {
+  network::URLLoaderCompletionStatus status(error);
+  status.decoded_body_length = response.size();
+  test_url_loader_factory_.AddResponse(GURL(kSafeSearchApiUrl),
+                                       network::ResourceResponseHead(),
+                                       response, status);
+}
+
+}  // namespace safe_search_api
diff --git a/components/safe_search_api/stub_url_checker.h b/components/safe_search_api/stub_url_checker.h
new file mode 100644
index 0000000..10ec2a1
--- /dev/null
+++ b/components/safe_search_api/stub_url_checker.h
@@ -0,0 +1,60 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_SAFE_SEARCH_API_STUB_URL_CHECKER_H_
+#define COMPONENTS_SAFE_SEARCH_API_STUB_URL_CHECKER_H_
+
+#include <memory>
+#include <string>
+
+#include "base/macros.h"
+#include "base/memory/scoped_refptr.h"
+#include "net/base/net_errors.h"
+#include "services/network/test/test_url_loader_factory.h"
+
+namespace network {
+class SharedURLLoaderFactory;
+}  // namespace network
+
+namespace safe_search_api {
+
+class URLChecker;
+
+// Helper class to stub out a URLLoaderFactory for use with URLChecker. This
+// lets tests control the response the URLChecker will receive from the Safe
+// Search API. Used to test both URLChecker itself and classes that use it.
+// This class builds a real URLChecker but maintains control over it to set up
+// fake responses.
+class StubURLChecker {
+ public:
+  StubURLChecker();
+  ~StubURLChecker();
+
+  // Returns a URLChecker that will use the stubbed-out responses. Can be called
+  // before or after setting up the responses.
+  std::unique_ptr<URLChecker> BuildURLChecker(size_t cache_size);
+
+  // Sets the stub to return a successful response to all Safe Search API calls
+  // from now on.
+  void SetUpValidResponse(bool is_porn);
+
+  // Sets the stub to respond to all Safe Search API calls with a failure from
+  // now on.
+  void SetUpFailedResponse();
+
+  // Clears the stub so it won't return any response from now on.
+  void ClearResponses();
+
+ private:
+  void SetUpResponse(net::Error error, const std::string& response);
+
+  network::TestURLLoaderFactory test_url_loader_factory_;
+  scoped_refptr<network::SharedURLLoaderFactory> test_shared_loader_factory_;
+
+  DISALLOW_COPY_AND_ASSIGN(StubURLChecker);
+};
+
+}  // namespace safe_search_api
+
+#endif  // COMPONENTS_SAFE_SEARCH_API_STUB_URL_CHECKER_H_
diff --git a/components/safe_search_api/url_checker_unittest.cc b/components/safe_search_api/url_checker_unittest.cc
index 66ceb44..7d40e46 100644
--- a/components/safe_search_api/url_checker_unittest.cc
+++ b/components/safe_search_api/url_checker_unittest.cc
@@ -11,18 +11,13 @@
 #include <utility>
 
 #include "base/callback.h"
-#include "base/json/json_writer.h"
 #include "base/macros.h"
 #include "base/message_loop/message_loop.h"
 #include "base/stl_util.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/threading/thread_task_runner_handle.h"
-#include "base/values.h"
+#include "components/safe_search_api/stub_url_checker.h"
 #include "net/base/net_errors.h"
-#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
-#include "services/network/public/cpp/shared_url_loader_factory.h"
-#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
-#include "services/network/test/test_url_loader_factory.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
@@ -33,7 +28,7 @@
 
 namespace {
 
-const size_t kCacheSize = 2;
+constexpr size_t kCacheSize = 2;
 
 const char* kURLs[] = {
     "http://www.randomsite1.com", "http://www.randomsite2.com",
@@ -43,40 +38,12 @@
     "http://www.randomsite9.com",
 };
 
-const char kSafeSearchApiUrl[] =
-    "https://safesearch.googleapis.com/v1:classify";
-
-std::string BuildResponse(bool is_porn) {
-  base::DictionaryValue dict;
-  auto classification_dict = std::make_unique<base::DictionaryValue>();
-  if (is_porn)
-    classification_dict->SetBoolean("pornography", is_porn);
-  auto classifications_list = std::make_unique<base::ListValue>();
-  classifications_list->Append(std::move(classification_dict));
-  dict.SetWithoutPathExpansion("classifications",
-                               std::move(classifications_list));
-  std::string result;
-  base::JSONWriter::Write(dict, &result);
-  return result;
-}
-
-std::string BuildPornResponse() {
-  return BuildResponse(true);
-}
-
 }  // namespace
 
 class SafeSearchURLCheckerTest : public testing::Test {
  public:
   SafeSearchURLCheckerTest()
-      : next_url_(0),
-        test_shared_loader_factory_(
-            base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
-                &test_url_loader_factory_)),
-        checker_(test_shared_loader_factory_,
-                 TRAFFIC_ANNOTATION_FOR_TESTS,
-                 "us",
-                 kCacheSize) {}
+      : next_url_(0), checker_(stub_url_checker_.BuildURLChecker(kCacheSize)) {}
 
   MOCK_METHOD3(OnCheckDone,
                void(const GURL& url,
@@ -89,19 +56,9 @@
     return GURL(kURLs[next_url_++]);
   }
 
-  void SetupResponse(const GURL& url,
-                     net::Error error,
-                     const std::string& response) {
-    network::URLLoaderCompletionStatus status(error);
-    status.decoded_body_length = response.size();
-    test_url_loader_factory_.AddResponse(GURL(kSafeSearchApiUrl),
-                                         network::ResourceResponseHead(),
-                                         response, status);
-  }
-
   // Returns true if the result was returned synchronously (cache hit).
   bool CheckURL(const GURL& url) {
-    bool cached = checker_.CheckURL(
+    bool cached = checker_->CheckURL(
         url, base::BindOnce(&SafeSearchURLCheckerTest::OnCheckDone,
                             base::Unretained(this)));
     return cached;
@@ -110,14 +67,14 @@
   void WaitForResponse() { base::RunLoop().RunUntilIdle(); }
 
   bool SendValidResponse(const GURL& url, bool is_porn) {
-    SetupResponse(url, net::OK, BuildResponse(is_porn));
+    stub_url_checker_.SetUpValidResponse(is_porn);
     bool result = CheckURL(url);
     WaitForResponse();
     return result;
   }
 
   bool SendFailedResponse(const GURL& url) {
-    SetupResponse(url, net::ERR_ABORTED, std::string());
+    stub_url_checker_.SetUpFailedResponse();
     bool result = CheckURL(url);
     WaitForResponse();
     return result;
@@ -125,9 +82,8 @@
 
   size_t next_url_;
   base::MessageLoop message_loop_;
-  network::TestURLLoaderFactory test_url_loader_factory_;
-  scoped_refptr<network::SharedURLLoaderFactory> test_shared_loader_factory_;
-  URLChecker checker_;
+  StubURLChecker stub_url_checker_;
+  std::unique_ptr<URLChecker> checker_;
 };
 
 TEST_F(SafeSearchURLCheckerTest, Simple) {
@@ -162,7 +118,7 @@
   ASSERT_FALSE(SendValidResponse(url2, false));
 
   // Now we should get results synchronously, without a network request.
-  test_url_loader_factory_.ClearResponses();
+  stub_url_checker_.ClearResponses();
   EXPECT_CALL(*this, OnCheckDone(url2, Classification::SAFE, false));
   ASSERT_TRUE(CheckURL(url2));
   EXPECT_CALL(*this, OnCheckDone(url1, Classification::SAFE, false));
@@ -179,7 +135,7 @@
 TEST_F(SafeSearchURLCheckerTest, CoalesceRequestsToSameURL) {
   GURL url(GetNewURL());
   // Start two checks for the same URL.
-  SetupResponse(url, net::OK, BuildResponse(false));
+  stub_url_checker_.SetUpValidResponse(false);
   ASSERT_FALSE(CheckURL(url));
   ASSERT_FALSE(CheckURL(url));
   // A single response should answer both of those checks
@@ -190,7 +146,7 @@
 TEST_F(SafeSearchURLCheckerTest, CacheTimeout) {
   GURL url(GetNewURL());
 
-  checker_.SetCacheTimeoutForTesting(base::TimeDelta::FromSeconds(0));
+  checker_->SetCacheTimeoutForTesting(base::TimeDelta::FromSeconds(0));
 
   EXPECT_CALL(*this, OnCheckDone(url, Classification::SAFE, false));
   ASSERT_FALSE(SendValidResponse(url, false));
@@ -226,7 +182,7 @@
   {
     GURL url("https://sites.google.com/porn");
     EXPECT_CALL(*this, OnCheckDone(url, Classification::UNSAFE, _));
-    SetupResponse(url, net::OK, BuildPornResponse());
+    stub_url_checker_.SetUpValidResponse(true);
     bool cache_hit = CheckURL(url);
     ASSERT_FALSE(cache_hit);
     WaitForResponse();
@@ -234,7 +190,7 @@
   {
     GURL url("https://youtube.com/porn");
     EXPECT_CALL(*this, OnCheckDone(url, Classification::UNSAFE, _));
-    SetupResponse(url, net::OK, BuildPornResponse());
+    stub_url_checker_.SetUpValidResponse(true);
     bool cache_hit = CheckURL(url);
     ASSERT_FALSE(cache_hit);
     WaitForResponse();
diff --git a/components/scheduling_metrics/OWNERS b/components/scheduling_metrics/OWNERS
index 88a3022c..550f0e6 100644
--- a/components/scheduling_metrics/OWNERS
+++ b/components/scheduling_metrics/OWNERS
@@ -1,7 +1,7 @@
 # LON scheduling team
 altimin@chromium.org
 alexclarke@chromium.org
-esecker@chromium.org
+eseckler@chromium.org
 skyostil@chromium.org
 
 # WAT speed metrics team
diff --git a/components/signin/core/browser/account_tracker_service_unittest.cc b/components/signin/core/browser/account_tracker_service_unittest.cc
index 9f13eb0..e1b623ff 100644
--- a/components/signin/core/browser/account_tracker_service_unittest.cc
+++ b/components/signin/core/browser/account_tracker_service_unittest.cc
@@ -9,6 +9,7 @@
 
 #include "base/files/scoped_temp_dir.h"
 #include "base/strings/stringprintf.h"
+#include "base/strings/utf_string_conversions.h"
 #include "base/test/scoped_task_environment.h"
 #include "build/build_config.h"
 #include "components/image_fetcher/core/image_data_fetcher.h"
@@ -292,8 +293,6 @@
     pref_service_.registry()->RegisterInt64Pref(
         AccountFetcherService::kLastUpdatePref, 0);
     signin_client_.reset(new TestSigninClient(&pref_service_));
-    signin_client_->SetURLRequestContext(new net::TestURLRequestContextGetter(
-        scoped_task_environment_.GetMainThreadTaskRunner()));
 
     account_tracker_.reset(new AccountTrackerService());
     account_tracker_->Initialize(signin_client_.get());
diff --git a/components/signin/core/browser/signin_client.h b/components/signin/core/browser/signin_client.h
index 7d96d81..dec60e6 100644
--- a/components/signin/core/browser/signin_client.h
+++ b/components/signin/core/browser/signin_client.h
@@ -24,9 +24,6 @@
 class Observer;
 }
 
-namespace net {
-class URLRequestContextGetter;
-}
 namespace network {
 class SharedURLLoaderFactory;
 
@@ -35,10 +32,6 @@
 }
 }
 
-namespace network {
-class SharedURLLoaderFactory;
-}
-
 // An interface that needs to be supplied to the Signin component by its
 // embedder.
 class SigninClient : public KeyedService {
@@ -61,10 +54,6 @@
   // Gets the preferences associated with the client.
   virtual PrefService* GetPrefs() = 0;
 
-  // Returns the URL request context information associated with the client.
-  // DEPRECATED, new code should be using GetURLLoaderFactory instead.
-  virtual net::URLRequestContextGetter* GetURLRequestContext() = 0;
-
   // Returns the SharedURLLoaderFactory that should be used to fetch resources
   // associated with the client.
   virtual scoped_refptr<network::SharedURLLoaderFactory>
diff --git a/components/signin/core/browser/signin_manager_unittest.cc b/components/signin/core/browser/signin_manager_unittest.cc
index 12f3566b..e9daf4e4 100644
--- a/components/signin/core/browser/signin_manager_unittest.cc
+++ b/components/signin/core/browser/signin_manager_unittest.cc
@@ -13,6 +13,7 @@
 #include "base/compiler_specific.h"
 #include "base/message_loop/message_loop.h"
 #include "base/run_loop.h"
+#include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/pref_service.h"
@@ -31,9 +32,6 @@
 #include "google_apis/gaia/gaia_constants.h"
 #include "google_apis/gaia/gaia_urls.h"
 #include "net/cookies/cookie_monster.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context_getter.h"
-#include "net/url_request/url_request_status.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -88,8 +86,6 @@
                                 GaiaConstants::kChromeSource,
                                 &test_signin_client_),
         account_consistency_(signin::AccountConsistencyMethod::kDisabled) {
-    test_signin_client_.SetURLRequestContext(
-        new net::TestURLRequestContextGetter(loop_.task_runner()));
     AccountFetcherService::RegisterPrefs(user_prefs_.registry());
     AccountTrackerService::RegisterPrefs(user_prefs_.registry());
     SigninManagerBase::RegisterProfilePrefs(user_prefs_.registry());
diff --git a/components/signin/core/browser/test_signin_client.cc b/components/signin/core/browser/test_signin_client.cc
index a6c3c69..48afdc7 100644
--- a/components/signin/core/browser/test_signin_client.cc
+++ b/components/signin/core/browser/test_signin_client.cc
@@ -36,10 +36,6 @@
   signed_in_password_ = password;
 }
 
-net::URLRequestContextGetter* TestSigninClient::GetURLRequestContext() {
-  return request_context_.get();
-}
-
 scoped_refptr<network::SharedURLLoaderFactory>
 TestSigninClient::GetURLLoaderFactory() {
   return shared_factory_;
@@ -49,11 +45,6 @@
   return nullptr;
 }
 
-void TestSigninClient::SetURLRequestContext(
-    net::URLRequestContextGetter* request_context) {
-  request_context_ = request_context;
-}
-
 std::string TestSigninClient::GetProductVersion() { return ""; }
 
 void TestSigninClient::SetNetworkCallsDelayed(bool value) {
diff --git a/components/signin/core/browser/test_signin_client.h b/components/signin/core/browser/test_signin_client.h
index 11faa2ec..3f40c6e 100644
--- a/components/signin/core/browser/test_signin_client.h
+++ b/components/signin/core/browser/test_signin_client.h
@@ -14,7 +14,6 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "components/signin/core/browser/signin_client.h"
-#include "net/url_request/url_request_test_util.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
 #include "services/network/test/test_url_loader_factory.h"
@@ -51,16 +50,7 @@
   // Returns the empty string.
   std::string GetProductVersion() override;
 
-  // Returns a manually provided URLRequestContextGetter.
-  net::URLRequestContextGetter* GetURLRequestContext() override;
-
-  // Tells GetURLRequestContext() what to return.
-  void SetURLRequestContext(net::URLRequestContextGetter* request_context);
-
-  // Wraps the test_url_loader_factory(). Note that this is totally independent
-  // of GetURLRequestContext(), so you may need to set some things differently
-  // based on what API the consumer is using, while transition away from
-  // URLRequestContextGetter is going on.
+  // Wraps the test_url_loader_factory().
   scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override;
 
   // Returns nullptr.
@@ -97,7 +87,6 @@
   void PreGaiaLogout(base::OnceClosure callback) override;
 
  private:
-  scoped_refptr<net::URLRequestContextGetter> request_context_;
   network::TestURLLoaderFactory test_url_loader_factory_;
   scoped_refptr<network::SharedURLLoaderFactory> shared_factory_;
 
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 4377c4a..8fa076a 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;የእርስዎ መሣሪያ ቀን እና ሰዓት (<ph name="DATE_AND_TIME" />) ትክክል ስላልሆኑ ወደ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> የግል ግንኙነት ሊመሰረት አይችልም።&lt;/p&gt;
 
       &lt;p&gt;እባክዎ በ&lt;strong&gt;ቅንብሮች&lt;/strong&gt; መተግበሪያው የ&lt;strong&gt;አጠቃላይ&lt;/strong&gt; ክፍል ላይ ቀን እና ሰዓቱን ያስተካክሉ።&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">ይህን ድረ-ገጽ በማሳየት ላይ ሳለ የሆነ ችግር ተፈጥሯል።</translation>
 <translation id="1592005682883173041">አካባቢያዊ የውሂብ መድረሻ</translation>
 <translation id="1594030484168838125">ምረጥ</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">ልክ ያልሆነ ጥያቄ ወይም የጥያቄ ልኬቶች</translation>
 <translation id="1826516787628120939">በመፈተሸ ላይ</translation>
 <translation id="1834321415901700177">ይህ ጣቢያ ጎጂ ፕሮግራሞችን ይዟል</translation>
+<translation id="1839551713262164453">የመመሪያ እሴቶችን ማረጋገጥ ከስህተቶች ጋር አልተሳካም</translation>
 <translation id="1840414022444569775">ይህ የካርድ ቁጥር አስቀድሞ ስራ ላይ ውሏል</translation>
 <translation id="1842969606798536927">ይክፈሉ</translation>
 <translation id="1871208020102129563">የ.pac ስክሪፕት ዩአርኤል ሳይሆን ተኪ አገልጋዮችን እንዲጠቀም ነው ተኪ የተዋቀረው።</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">ጠይቅ</translation>
 <translation id="2359629602545592467">በርካታ</translation>
 <translation id="2359808026110333948">ቀጥል</translation>
+<translation id="2360873523816792727">ካርዶችዎን በሁሉም መሣሪያዎች ላይ ለመጠቀም ስምረትን ያብሩ።</translation>
 <translation id="2365563543831475020">በ<ph name="CRASH_TIME" /> ላይ የተያዘው የብልሽት ሪፖርት አልተሰቀለም</translation>
 <translation id="2367567093518048410">ደረጃ</translation>
 <translation id="2378238891085281592">እርስዎ የግል ሆነዋል</translation>
@@ -350,11 +353,13 @@
           <ph name="LIST_ITEM" />ኩኪዎች እና የጣቢያ ውሂብ
           <ph name="LIST_ITEM" />በቅጾች ውስጥ የገባ መረጃ
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">ካርዶችን ይመልከቱ</translation>
 <translation id="3369192424181595722">የሰዓት ስህተት</translation>
 <translation id="337363190475750230">አቅርቦት ተቋርጧል</translation>
 <translation id="3377188786107721145">የመምሪያ ትንተና ስህተት</translation>
 <translation id="3380365263193509176">ያልታወቀ ስህተት</translation>
 <translation id="3380864720620200369">የደንበኛ መታወቂያ፦</translation>
+<translation id="3387261909427947069">የመክፈያ ዘዴዎች</translation>
 <translation id="3391030046425686457">የመላኪያ አድራሻ</translation>
 <translation id="3395827396354264108">የመውሰጃ ዘዴ</translation>
 <translation id="3399952811970034796">የመላኪያ አድራሻ</translation>
@@ -451,6 +456,7 @@
 <translation id="4110652170750985508">የእርስዎን ክፍያ ይገምግሙ</translation>
 <translation id="4116663294526079822">ሁልጊዜ በዚህ ጣቢያ ላይ ፍቀድ</translation>
 <translation id="4117700440116928470">የመመሪያ ወሰን አይደገፍም።</translation>
+<translation id="4119109454650683048">እባክዎ ከታች ያለውን መረጃ ይመልከቱና ካስፈለገ ማናቸውም ስህተቶችን ያስተካክሉ</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 ሌላ}one{# ሌሎች}other{# ሌሎች}}</translation>
 <translation id="4130226655945681476">የአውታረ መረብ ገመዶችን፣ ሞደም እና ራውተርን በመፈተሽ ላይ</translation>
 <translation id="413544239732274901">የበለጠ ለመረዳት</translation>
@@ -556,6 +562,7 @@
 <translation id="4854362297993841467">የማድረሻ ዘዴው አይገኝም። የተለየ ዘዴ ይሞክሩ።</translation>
 <translation id="4858792381671956233">ይህን ገጽ መጎብኘት ችግር ካለው ወላጆችዎንጠይቀዋል</translation>
 <translation id="4876305945144899064">ምንም የተጠቃሚ ስም የለም</translation>
+<translation id="4879491255372875719">ራስ-ሰር (ነባሪ)</translation>
 <translation id="4880827082731008257">የፍለጋ ታሪክ</translation>
 <translation id="4881695831933465202">ክፈት</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />፣ <ph name="TYPE_2" />፣, <ph name="TYPE_3" /></translation>
@@ -621,6 +628,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">ሁሉንም የተቀመጡ የይለፍ ቃላት አሳይ</translation>
 <translation id="5287240709317226393">ኩኪዎችን አሳይ</translation>
+<translation id="5288108484102287882">የመመሪያ እሴቶችን ማረጋገጥ ማስጠንቀቂያዎችን አስነስቷል</translation>
 <translation id="5299298092464848405">መምሪያን መተንተን ላይ ስህተት</translation>
 <translation id="5308380583665731573">ይገናኙ</translation>
 <translation id="5308689395849655368">የብልሽት ሪፖርት ማድረግ ተሰናክሏል።</translation>
@@ -633,6 +641,7 @@
 <translation id="536296301121032821">የመምሪያ ቅንብሮችን ማከማቸት አልተሳካም</translation>
 <translation id="5371425731340848620">ካርድ ያዘምኑ</translation>
 <translation id="5377026284221673050">«የእርስዎ ሰዓት ቀርቷል» ወይም «የእርስዎ ሰዓት ቀድሟል» ወይም «&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;»</translation>
+<translation id="5384855140246857529">ካርዶችዎን በሁሉም መሣሪያዎችዎ ላይ ለመጠቀም በመለያ ይግቡና ስምረትን ያብሩ።</translation>
 <translation id="5386426401304769735">የዚህ ጣቢያ የዕውቅና ማረጋገጫ ሰንሰለቱ SHA-1 በመጠቀም የተፈረመ የዕውቅና ማረጋገጫን ያካትታል።</translation>
 <translation id="5387961145478138773">ወደ የእርስዎ ተወዳጅ የGoogle መተግበሪያዎች ፈጣን መዳረሻ ያግኙ</translation>
 <translation id="540969355065856584">ይህ አገልጋይ <ph name="DOMAIN" /> መሆኑን ሊያረጋግጥ አልቻለም፤ የደህንነት እውቅና ማረጋገጫው በዚህ ጊዜ ላይ የሚሰራ አይደለም። ይሄ በተሳሳተ አወቃቀር ወይም አንድ አጥቂ ግንኙነትዎን በመጥለፉ የተከሰተ ሊሆን ይችላል።</translation>
@@ -708,6 +717,7 @@
 <translation id="5893752035575986141">ክሬዲት ካርዶች ተቀባይነት አላቸው።</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (ሰምሯል)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 ጥቅም ላይ ያለ}one{# ጥቅም ላይ ያለ}other{# ጥቅም ላይ}}</translation>
+<translation id="5922853866070715753">በቃ ሊያልቅ ነው</translation>
 <translation id="5939518447894949180">ዳግም አስጀምር</translation>
 <translation id="5967592137238574583">የዕውቂያ መረጃን ያርትዑ</translation>
 <translation id="5967867314010545767">ከታሪክ አስወግድ</translation>
@@ -728,6 +738,7 @@
 <translation id="6051221802930200923"><ph name="SITE" /> የዕውቅና ማረጋገጫ ሚስማር መሰካትን ስለሚጠቀም ድር ጣቢያውን አሁን መጎብኘት አይችሉም። የአውታረ መረብ ስህተቶች እና ጥቃቶች ብዙውን ጊዜ ጊዜያዊ ስለሆኑ ይህ ገጽ በኋላ ላይ ሊሠራ ይችላል።</translation>
 <translation id="6059925163896151826">የዩኤስቢ መሣሪያዎች</translation>
 <translation id="6071091556643036997">የመመሪያው አይነት ልክ ያልሆነ ነው።</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{በመላ መሣሪያዎች ላይ ይበልጥ ፈጥነው ተመዝግበው ለመውጣት ይህ ካርድ በGoogle መለያዎ ላይ ይቀመጣል።}one{በመላ መሣሪያዎች ላይ ይበልጥ ፈጥነው ተመዝግበው ለመውጣት እነዚህ ካርዶች በGoogle መለያዎ ላይ ይቀመጣሉ።}other{በመላ መሣሪያዎች ላይ ይበልጥ ፈጥነው ተመዝግበው ለመውጣት እነዚህ ካርዶች በGoogle መለያዎ ላይ ይቀመጣሉ።}}</translation>
 <translation id="6080696365213338172">በአስተዳዳሪ የቀረበ የእውቅና ማረጋገጫ በመጠቀም ይዘት ደርሰዋል። ለ<ph name="DOMAIN" /> የሚያቀርቡት ውሂብ በአስተዳዳሪዎ ሊያዝ ይችላል።</translation>
 <translation id="610911394827799129">የእርስዎ Google መለያ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ላይ ሌሎች የአሰሳ ታሪክ ዓይነቶች ሊኖረው ይችላል።</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{ምንም}=1{1 የይለፍ ቃል (የተሰመረ)}one{# የይለፍ ቃሎች (የተሰመሩ)}other{# የይለፍ ቃሎች (የተሰመሩ)}}</translation>
@@ -830,6 +841,7 @@
 <translation id="6965978654500191972">መሣሪያ</translation>
 <translation id="6970216967273061347">ወረዳ</translation>
 <translation id="6973656660372572881">ሁለቱም ቋሚ ተኪ አገልጋዮች እና የ.pac ስክሪፕት ዩአርኤል ተገልጸዋል።</translation>
+<translation id="6979440798594660689">ድምጸ-ከል አድርግ (ነባሪ)</translation>
 <translation id="6984479912851154518">በውጫዊ ማከማቻ በኩል ለማጫወት ከግል ሁነታ በመውጣት ላይ። ይቀጥል?</translation>
 <translation id="6989763994942163495">የላቁ ቅንብሮችን አሳይ...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -850,6 +862,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> እና <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ተጨማሪ}one{<ph name="PAYMENT_METHOD_PREVIEW" /> እና <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ተጨማሪ}other{<ph name="PAYMENT_METHOD_PREVIEW" /> እና <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ተጨማሪ}}</translation>
 <translation id="717330890047184534">የGaia መታወቂያ፦</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> እና <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ተጨማሪ}one{<ph name="SHIPPING_OPTION_PREVIEW" /> እና <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ተጨማሪ}other{<ph name="SHIPPING_OPTION_PREVIEW" /> እና <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ተጨማሪ}}</translation>
+<translation id="7179323680825933600">የመክፈያ ዘዴዎችን አስቀምጥ እና ሙላ</translation>
 <translation id="7180611975245234373">አድስ</translation>
 <translation id="7182878459783632708">ምንም መምሪያዎች አልተዋቀሩም</translation>
 <translation id="7186367841673660872">ይህ ገጽ ከ<ph name="ORIGINAL_LANGUAGE" />ወደ<ph name="LANGUAGE_LANGUAGE" />ተተርጉሟል</translation>
@@ -861,6 +874,9 @@
 <translation id="7220786058474068424">በማስሄድ ላይ</translation>
 <translation id="724691107663265825">ፊት ያለው ጣቢያ ተንኮል-አዘል ዌር አለው</translation>
 <translation id="724975217298816891">የካርድ ዝርዝሮችዎን ለማዘመን የ<ph name="CREDIT_CARD" /> ጊዜ ማለፊያ ቀን እና ሲቪሲ ያስገቡ። አንዴ ካረጋገጡ በኋላ የካርድ ዝርዝሮችዎ ለዚህ ጣቢያ ይጋራሉ።</translation>
+<translation id="7251437084390964440">የአውታረ መረብ ውቅረቱ የኦኤንሲ መስፈርቱን አያሟላም። አንዳንድ የውቅረቱ ክፍሎች ላይመጡ ይችላሉ።
+ተጨማሪ ዝርዝሮች፦
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">የእርስዎ የኮምፒዩተር ቀን እና ሰዓት (<ph name="DATE_AND_TIME" />) ልክ ስላልሆኑ የግል ግንኙነት ወደ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ሊመሰረት አይችልም።</translation>
 <translation id="7260504762447901703">መዳረሻን ሻር</translation>
 <translation id="7271803869921933038">ተቀባይነት ያላቸው የቅድመ-ክፍያ ካርዶች</translation>
@@ -1038,6 +1054,9 @@
 <translation id="8398259832188219207">የብልሽት ሪፖርት <ph name="UPLOAD_TIME" /> ላይ ተሰቅሏል</translation>
 <translation id="8412145213513410671">ብልሽቶች (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">ተመሳሳዩ የይለፍ ሐረጉን ሁለት ጊዜ ማስገባት አለብዎት።</translation>
+<translation id="8416694386774425977">የአውታረ መረቡ ውቅረት ልክ ያልሆነ እና ሊመጣ የማይችል ነው።
+ተጨማሪ ዝርዝሮች፦
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">ቅንብሮች</translation>
 <translation id="8433057134996913067">ይህ ከአብዛኛዎቹ የድር ጣቢያዎች ዘግቶ ያስወጣዎታል።</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">እንደገና ይሞክሩ</translation>
 <translation id="8728672262656704056">ማንነት የማያሳውቅ ሁነታ ውስጥ ገብተዋል</translation>
 <translation id="8730621377337864115">ተከናውኗል</translation>
+<translation id="8733831205558190772">ሁሉም ካርዶችዎ በአንዲት ቦታ ላይ</translation>
 <translation id="8738058698779197622">ደህንነቱ የተጠበቀ ግንኙነት ለመመስረት፣ የእርስዎ ሰዓት በትክክል መቀናበር ያስፈልገዋል። ይህን የሆነበት ምክንያት የድር ጣቢያዎች ራሳቸውን ለማሳወቅ የሚጠቀሙባቸው የምስክር ወረቀቶች የሚሰሩት ለተወሰኑ ክፍለ ጊዜያቶች ብቻ ስለሆነ ነው። የእርስዎ መሣሪያ ሰዓት ልክ እንዳለመሆኑ መጠን Chromium እነዚህን ምስክር ወረቀቶች ሊያረጋግጣቸው አይችልም።</translation>
 <translation id="8740359287975076522">የ<ph name="HOST_NAME" /> &lt;abbr id="dnsDefinition"&gt;የዲኤንኤስ አድራሻ&lt;/abbr&gt; ሊገኝ አልተቻለም። ችግሩን በመመርመር ላይ።</translation>
 <translation id="874846938927089722">ተቀባይነት ያላቸው የክሬዲት እና የቅድመ-ክፍያ ካርዶች</translation>
 <translation id="8759274551635299824">ይህ ካርድ የአገልግሎት ጊዜው አብቅቷል</translation>
 <translation id="8761567432415473239">Google የጥንቃቄ አሰሳ በቅርብ ጊዜ በ<ph name="SITE" /> ላይ <ph name="BEGIN_LINK" />ጎጂ ፕሮግርራሞችን አግኝቷል<ph name="END_LINK" />።</translation>
 <translation id="8763927697961133303">የዩኤስቢ መሣሪያ</translation>
+<translation id="8768895707659403558">የእርስዎን ዕልባቶችን በሁሉም መሣሪያዎችዎ ላይ ለመጠቀም <ph name="SIGN_IN_LINK" />።</translation>
 <translation id="8790007591277257123">&amp;ሰርዝን ድገም</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{ይህ ካርድ ወደ የእርስዎ Google መለያ ታክሏል። አሁን በመለያ ከገባ ማንኛውም መሣሪያ ሊጠቀሙበት ይችላሉ።}one{እነዚህ ካርዶች ወደ የእርስዎ Google መለያ ታክለዋል። አሁን በመለያ ከገባ ማንኛውም መሣሪያ ሊጠቀሙባቸው ይችላሉ።}other{እነዚህ ካርዶች ወደ የእርስዎ Google መለያ ታክለዋል። አሁን በመለያ ከገባ ማንኛውም መሣሪያ ሊጠቀሙባቸው ይችላሉ።}}</translation>
 <translation id="8792621596287649091">የ<ph name="ORG_NAME" /> መለያዎን መዳረሻ ሊያጡ ወይም የማንነት ስርቆት ሊያጋጥመዎት ይችላሉ። Chromium የይለፍ ቃልዎን አሁን እንዲቀይሩ ይመክራል።</translation>
 <translation id="8800988563907321413">በአቅራቢያዎ ያሉ የአስተያየት ጥቆማዎች እዚህ ይመጣሉ</translation>
 <translation id="8820817407110198400">ዕልባቶች</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index bb6a721b..7173725 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">‏&lt;p&gt;تعذر إنشاء اتصال خاص بـ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> نظرًا لأن تاريخ ووقت جهازك (<ph name="DATE_AND_TIME" />) غير صحيحين.&lt;/p&gt;
 
           &lt;p&gt;يُرجى تعديل التاريخ والوقت من القسم &lt;strong&gt;عام&lt;/strong&gt; في تطبيق &lt;strong&gt;الإعدادات&lt;/strong&gt; .&lt;/p&gt;</translation>
+<translation id="1581080074034554886">‏رمز التحقق من البطاقة (CVC)</translation>
 <translation id="1583429793053364125">حدث خطأ في شيء ما أثناء عرض صفحة الويب هذه.</translation>
 <translation id="1592005682883173041">الوصول إلى البيانات المحلية</translation>
 <translation id="1594030484168838125">اختيار</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">طلب غير صالح، أو معلمات طلب غير صالحة</translation>
 <translation id="1826516787628120939">حساب شيكات</translation>
 <translation id="1834321415901700177">يحتوي هذا الموقع على برامج ضارة</translation>
+<translation id="1839551713262164453">لقد تعذّر التحقق من قيم السياسة مع ظهور أخطاء.</translation>
 <translation id="1840414022444569775">رقم البطاقة هذا مستخدم من قبل</translation>
 <translation id="1842969606798536927">الدفع</translation>
 <translation id="1871208020102129563">‏تم تعيين الخادم الوكيل لاستخدام الخوادم الوكيلة الثابتة وليس عنوان URL لنص برمجي pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">طلب</translation>
 <translation id="2359629602545592467">متعددة</translation>
 <translation id="2359808026110333948">المتابعة</translation>
+<translation id="2360873523816792727">لاستخدام بطاقاتك على جميع الأجهزة، يُرجى تفعيل المزامنة.</translation>
 <translation id="2365563543831475020">لم يتم تحميل تقرير الأعطال الذي تم الحصول عليه في <ph name="CRASH_TIME" /></translation>
 <translation id="2367567093518048410">المستوى</translation>
 <translation id="2378238891085281592">الانتقال إلى التصفّح المتخفي</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />ملفات تعريف الارتباط وبيانات الموقع
           <ph name="LIST_ITEM" />المعلومات التي تم إدخالها في النماذج
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">عرض البطاقات</translation>
 <translation id="3369192424181595722">خطأ في الساعة</translation>
 <translation id="337363190475750230">تم إلغاء التوفير</translation>
 <translation id="3377188786107721145">خطأ في تحليل السياسة</translation>
 <translation id="3380365263193509176">خطأ غير معروف</translation>
 <translation id="3380864720620200369">معرِّف العميل:</translation>
+<translation id="3387261909427947069">طرق الدفع</translation>
 <translation id="3391030046425686457">عنوان التسليم</translation>
 <translation id="3395827396354264108">طريقة الاستلام</translation>
 <translation id="3399952811970034796">عنوان التسليم</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">مراجعة الدفعة</translation>
 <translation id="4116663294526079822">إلغاء الحظر دومًا على هذا الموقع</translation>
 <translation id="4117700440116928470">نطاق السياسة غير متوافق.</translation>
+<translation id="4119109454650683048">يُرجى التحقُّق من المعلومات الواردة أدناه وإصلاح أي أخطاء إذا لزم الأمر.</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{عنصر واحد آخر}zero{# عنصر آخر}two{عنصران آخران (#)}few{# عناصر أخرى}many{# عنصرًا آخر}other{# عنصر آخر}}</translation>
 <translation id="4130226655945681476">التحقق من كابلات الشبكة، والمودم، وجهاز التوجيه</translation>
 <translation id="413544239732274901">مزيد من المعلومات</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">طريقة التسليم هذه غير متاحة. جرِّب طريقة أخرى.</translation>
 <translation id="4858792381671956233">لقد سألت والديك ما إذا كانت زيارة هذا الموقع مناسبةً لك</translation>
 <translation id="4876305945144899064">ليس هناك اسم مستخدم</translation>
+<translation id="4879491255372875719">الإعداد التلقائي (تلقائي)</translation>
 <translation id="4880827082731008257">سجلّ البحث</translation>
 <translation id="4881695831933465202">فتح</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />، <ph name="TYPE_2" />، <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">عرض جميع كلمات المرور المحفوظة</translation>
 <translation id="5287240709317226393">عرض ملفات تعريف الارتباط</translation>
+<translation id="5288108484102287882">لقد أدى التحقُّق من قيم السياسة إلى ظهور تحذيرات.</translation>
 <translation id="5299298092464848405">خطأ في تحليل السياسة</translation>
 <translation id="5308380583665731573">اتصال</translation>
 <translation id="5308689395849655368">ميزة الإبلاغ عن الأعطال غير مفعّلة.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">تعذّر تخزين إعدادات السياسة</translation>
 <translation id="5371425731340848620">تحديث البطاقة</translation>
 <translation id="5377026284221673050">‏""توقيت ساعتك متأخِّر" أو "توقيت ساعتك متقدِّم" أو "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">لاستخدام بطاقاتك على جميع الأجهزة، يُرجى تسجيل الدخول وتفعيل المزامنة.</translation>
 <translation id="5386426401304769735">‏تتضمن سلسلة الشهادات لهذا الموقع شهادة موقعة باستخدام SHA-1.</translation>
 <translation id="5387961145478138773">‏الحصول على إمكانية الوصول السريع إلى تطبيقات Google المفضلة لديك</translation>
 <translation id="540969355065856584">لم يتمكن هذا الخادم من إثبات أنه <ph name="DOMAIN" />؛ بل إن شهادة الأمان الخاصة به غير صالحة حاليًا. وربما يكون السبب في ذلك وجود خطأ في التكوين أو اعترض أحد المهاجمين للاتصال.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">يتم قبول بطاقات الائتمان.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (تمت المزامنة)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 قيد الاستخدام}zero{# قيد الاستخدام}two{# قيد الاستخدام}few{# قيد الاستخدام}many{# قيد الاستخدام}other{# قيد الاستخدام}}</translation>
+<translation id="5922853866070715753">أوشك على الانتهاء</translation>
 <translation id="5939518447894949180">إعادة</translation>
 <translation id="5967592137238574583">تعديل معلومات الاتصال</translation>
 <translation id="5967867314010545767">إزالة من السجل</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">لا يمكنك زيارة <ph name="SITE" /> في الوقت الحالي لأن الموقع يستخدم أداة التحقق من صحة الشهادات. أخطاء الشبكة والهجمات عليها عادةً ما تكون مؤقتة، لذا ستعمل هذه الصفحة في وقت لاحق على الأرجح.</translation>
 <translation id="6059925163896151826">‏أجهزة USB</translation>
 <translation id="6071091556643036997">نوع السياسة غير صالح.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{‏سيتم حفظ هذه البطاقة في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}zero{‏سيتم حفظ هذه البطاقات في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}two{‏سيتم حفظ هاتين البطاقتين في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}few{‏سيتم حفظ هذه البطاقات في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}many{‏سيتم حفظ هذه البطاقات في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}other{‏سيتم حفظ هذه البطاقات في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}}</translation>
 <translation id="6080696365213338172">لقد دخلت إلى المحتوى باستخدام شهادة وفرها المشرف. ويمكن أن يعترض المشرف طريق البيانات التي تقدمها إلى <ph name="DOMAIN" />.</translation>
 <translation id="610911394827799129">‏قد يتضمن حسابك على Google نماذج أخرى من سجل التصفح على <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{بدون}=1{ كلمة مرور واحدة (تمت مزامنتها)}two{كلمتا مرور (#) (تمت مزامنتهما)}few{# كلمات مرور (تمت مزامنتها)}many{# كلمة مرور (تمت مزامنتها)}other{# كلمة مرور (تمت مزامنتها)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">جهاز</translation>
 <translation id="6970216967273061347">المنطقة</translation>
 <translation id="6973656660372572881">‏تم تحديد كل من الخوادم الوكيلة الثابتة وعنوان URL للنص البرمجي pac.</translation>
+<translation id="6979440798594660689">كتم الصوت (تلقائي)</translation>
 <translation id="6984479912851154518">ستتم مغادرة وضع التصفّح المتخفي للدفع عبر تطبيق خارجي. هل تريد المتابعة؟</translation>
 <translation id="6989763994942163495">عرض الإعدادات المتقدمة...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> وطريقة دفع <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> أخرى}two{<ph name="PAYMENT_METHOD_PREVIEW" /> وطريقتا دفع <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> أخريان}few{<ph name="PAYMENT_METHOD_PREVIEW" /> و<ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> طرق دفع أخرى}many{<ph name="PAYMENT_METHOD_PREVIEW" /> و<ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> طريقة دفع أخرى}other{<ph name="PAYMENT_METHOD_PREVIEW" /> و<ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> طريقة دفع أخرى}}</translation>
 <translation id="717330890047184534">‏معرّف GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> وخيار <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> آخر}two{<ph name="SHIPPING_OPTION_PREVIEW" /> وخياران (<ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />) آخران}few{<ph name="SHIPPING_OPTION_PREVIEW" /> و<ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> خيارات أخرى}many{<ph name="SHIPPING_OPTION_PREVIEW" /> و<ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> خيارًا آخر}other{<ph name="SHIPPING_OPTION_PREVIEW" /> و<ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> خيار آخر}}</translation>
+<translation id="7179323680825933600">حفظ طرق الدفع وملؤها</translation>
 <translation id="7180611975245234373">تحديث</translation>
 <translation id="7182878459783632708">لم يتم تعيين أي سياسات</translation>
 <translation id="7186367841673660872">تمت ترجمة هذه الصفحة من اللغة<ph name="ORIGINAL_LANGUAGE" />إلى اللغة<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">جارٍ المعالجة</translation>
 <translation id="724691107663265825">يحتوي موقع الويب المقصود على برامج ضارة</translation>
 <translation id="724975217298816891">‏أدخل تاريخ انتهاء الصلاحية ورمز التحقق من البطاقة (CVC) لـ <ph name="CREDIT_CARD" /> لتحديث تفاصيل بطاقتك. بعد تأكيدك، ستتم مشاركة تفاصيل بطاقتك مع هذا الموقع.</translation>
+<translation id="7251437084390964440">‏لا تتوافق تهيئة الشبكة مع معيار ONC. وقد لا تُستورَد أجزاء من التهيئة.
+التفاصيل الإضافية:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">تعذر إنشاء اتصال خاص بـ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> نظرًا لأن التاريخ والوقت لجهاز الكمبيوتر (<ph name="DATE_AND_TIME" />) غير صحيحين.</translation>
 <translation id="7260504762447901703">إبطال حق الدخول</translation>
 <translation id="7271803869921933038">بطاقات الدفع المُسبق المقبولة</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">تم تحميل تقرير الأعطال في <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">الأعطال (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">يجب إدخال عبارة المرور نفسها مرتين.</translation>
+<translation id="8416694386774425977">تهيئة الشبكة غير صالحة ويتعذّر استيرادها.
+التفاصيل الإضافية:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">الإعدادات</translation>
 <translation id="8433057134996913067">سيؤدي هذا إلى خروجك من معظم مواقع الويب.</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">أعد المحاولة</translation>
 <translation id="8728672262656704056">لقد انتقلت إلى التصفّح المتخفي</translation>
 <translation id="8730621377337864115">تم</translation>
+<translation id="8733831205558190772">كل بطاقاتك في مكان واحد</translation>
 <translation id="8738058698779197622">‏لإنشاء اتصال آمن، فإنك بحاجة إلى ضبط ساعتك بشكل صحيح. وذلك لأن الشهادات التي تستخدمها مواقع الويب لتعريف نفسها تكون صالحة فقط لفترات محددة من الوقت. فإذا كانت ساعة جهازك غير صحيحة، فلن يتمكن Chromium من التحقق من هذه الشهادات.</translation>
 <translation id="8740359287975076522">‏تعذر العثور على &lt;/abbr&gt;عنوان نظام أسماء النطاقات (DNS)‏&lt;abbr id="dnsDefinition"&gt; لـ <ph name="HOST_NAME" />. جارٍ تشخيص المشكلة.</translation>
 <translation id="874846938927089722">بطاقات الائتمان وبطاقات الدفع المسبق المقبولة</translation>
 <translation id="8759274551635299824">هذه البطاقة منتهية الصلاحية</translation>
 <translation id="8761567432415473239">‏عثر ‏‫التصفح الآمن من Google‬ مؤخرًا <ph name="BEGIN_LINK" />على برامج ضارة<ph name="END_LINK" /> في <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">‏جهاز USB</translation>
+<translation id="8768895707659403558">لاستخدام بطاقاتك على جميع أجهزتك، <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">إعادة الح&amp;ذف</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{‏أُضيفت هذه البطاقة إلى حسابك على Google. ويمكنك الآن استخدامها من أي جهاز سُجِّل الدخول عليه.}zero{‏أُضيفت هذه البطاقات إلى حسابك على Google. ويمكنك الآن استخدامها من أي جهاز سُجِّل الدخول عليه.}two{‏أُضيفت هاتان البطاقتان إلى حسابك على Google. ويمكنك الآن استخدامهما من أي جهاز سُجِّل الدخول عليه.}few{‏أُضيفت هذه البطاقات إلى حسابك على Google. ويمكنك الآن استخدامها من أي جهاز سُجِّل الدخول عليه.}many{‏أُضيفت هذه البطاقات إلى حسابك على Google. ويمكنك الآن استخدامها من أي جهاز سُجِّل الدخول عليه.}other{‏أُضيفت هذه البطاقات إلى حسابك على Google. ويمكنك الآن استخدامها من أي جهاز سُجِّل الدخول عليه.}}</translation>
 <translation id="8792621596287649091">‏قد تفقد إمكانية الوصول إلى حسابك على <ph name="ORG_NAME" /> أو تتعرض لسرقة هويتك. لذا يوصي Chromium بتغيير كلمة مرورك الآن.</translation>
 <translation id="8800988563907321413">تظهر اقتراحاتك "المجاورة" هنا</translation>
 <translation id="8820817407110198400">الإشارات المرجعية</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index a6d60f2..7e5561d 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Не може да се установи частна връзка с/ъс <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, тъй като датата и часът на устройството ви (<ph name="DATE_AND_TIME" />) са неправилни.&lt;/p&gt;
 
 &lt;p&gt;Моля, коригирайте датата и часа от секцията &lt;strong&gt;General&lt;/strong&gt; на приложението &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Възникна проблем при показването на тази уеб страница.</translation>
 <translation id="1592005682883173041">Достъп до локални данни</translation>
 <translation id="1594030484168838125">Избор</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Заявката или параметрите й са невалидни</translation>
 <translation id="1826516787628120939">Извършва се проверка</translation>
 <translation id="1834321415901700177">Този сайт съдържа опасни програми</translation>
+<translation id="1839551713262164453">Проверката на стойностите на правилата не бе успешна – възникнаха грешки</translation>
 <translation id="1840414022444569775">Този номер на карта вече се използва</translation>
 <translation id="1842969606798536927">Плащане</translation>
 <translation id="1871208020102129563">За прокси сървъра е зададено да използва фиксирани прокси сървъри, а не URL адрес на скрипт във формат .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Попитайте ме</translation>
 <translation id="2359629602545592467">Няколко</translation>
 <translation id="2359808026110333948">Напред</translation>
+<translation id="2360873523816792727">За да използвате картите си на всичките си устройства, включете синхронизирането.</translation>
 <translation id="2365563543831475020">Сигналът за срив, записан в/ъв <ph name="CRASH_TIME" />, не бе качен</translation>
 <translation id="2367567093518048410">Ниво</translation>
 <translation id="2378238891085281592">Преминахте в режим на частно сърфиране</translation>
@@ -351,11 +354,13 @@
 <ph name="LIST_ITEM" />„бисквитките“ и данните за сайтове;
 <ph name="LIST_ITEM" />въведените във формуляри данни.
 <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Преглед на картите</translation>
 <translation id="3369192424181595722">Грешка в часовника</translation>
 <translation id="337363190475750230">Обезпечаването е отменено</translation>
 <translation id="3377188786107721145">Грешка при синтактичния анализ на правилото</translation>
 <translation id="3380365263193509176">Неизвестна грешка</translation>
 <translation id="3380864720620200369">Идент. № на клиентската програма:</translation>
+<translation id="3387261909427947069">Начини на плащане</translation>
 <translation id="3391030046425686457">Адрес за бърза доставка</translation>
 <translation id="3395827396354264108">Начин на вземане</translation>
 <translation id="3399952811970034796">Адрес за бърза доставка</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Преглед на плащането ви</translation>
 <translation id="4116663294526079822">Разрешаване винаги на този сайт</translation>
 <translation id="4117700440116928470">Обхватът на правилата не се поддържа.</translation>
+<translation id="4119109454650683048">Моля, проверете информацията по-долу и поправете евентуалните грешки</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{още 1 елемент}other{още # елемента}}</translation>
 <translation id="4130226655945681476">Проверете мрежовите кабели, модема и маршрутизатора.</translation>
 <translation id="413544239732274901">Научете повече</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Този начин на бърза доставка не се поддържа. Опитайте с друг.</translation>
 <translation id="4858792381671956233">Попитахте родителите си дали може да посетите този сайт</translation>
 <translation id="4876305945144899064">Няма потребителско име</translation>
+<translation id="4879491255372875719">Автоматично (стандартно)</translation>
 <translation id="4880827082731008257">Търсене в историята</translation>
 <translation id="4881695831933465202">Отваряне</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" /> и <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
 <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Показване на всички запазени пароли</translation>
 <translation id="5287240709317226393">Показване на „бисквитките“</translation>
+<translation id="5288108484102287882">При проверката на стойностите на правилата възникнаха предупреждения</translation>
 <translation id="5299298092464848405">Грешка при синтактичния анализ на правилото</translation>
 <translation id="5308380583665731573">Свързване</translation>
 <translation id="5308689395849655368">Изпращането на сигнали за сривове е деактивирано.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Съхраняването на настройките за правилото не бе успешно</translation>
 <translation id="5371425731340848620">Актуализиране на картата</translation>
 <translation id="5377026284221673050">„Часовникът ви е назад“, „Часовникът ви е напред“ или „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;“</translation>
+<translation id="5384855140246857529">За да използвате картите си на всичките си устройства, влезте в профила си и включете синхронизирането.</translation>
 <translation id="5386426401304769735">Веригата от сертификати за този сайт съдържа сертификат, подписан с SHA-1.</translation>
 <translation id="5387961145478138773">Получете бърз достъп до любимите си приложения на Google</translation>
 <translation id="540969355065856584">Сървърът не можа да докаже, че е <ph name="DOMAIN" />. Понастоящем сертификатът му за сигурност не е валиден. Това може да се дължи на неправилно конфигуриране или на прихващане на връзката ви от извършител на атака.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Приемат се кредитни карти.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (синхронизирано)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Използва се 1}other{Използват се #}}</translation>
+<translation id="5922853866070715753">Почти готово</translation>
 <translation id="5939518447894949180">Нулиране</translation>
 <translation id="5967592137238574583">Редактиране на информацията за връзка</translation>
 <translation id="5967867314010545767">Премахване от историята</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">В момента не можете да посетите <ph name="SITE" />, защото уебсайтът използва метод за допълнително потвърждаване на сертификатите. Обикновено грешките в мрежата и атаките срещу нея са временни, така че тази страница вероятно ще работи по-късно.</translation>
 <translation id="6059925163896151826">USB устройства</translation>
 <translation id="6071091556643036997">Типът на правилата е невалиден.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Тази карта ще бъде запазена в профила ви в Google за по-бързо плащане от различни устройства.}other{Тези карти ще бъдат запазени в профила ви в Google за по-бързо плащане от различни устройства.}}</translation>
 <translation id="6080696365213338172">Осъществихте достъп до съдържанието посредством осигурен от администратора сертификат. Данните, които предоставите на <ph name="DOMAIN" />, могат да бъдат прихванати от администратора ви.</translation>
 <translation id="610911394827799129">В профила ви в Google може да има други видове история на сърфиране, съхранявани на адрес <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Няма}=1{1 парола (синхронизирана)}other{# пароли (синхронизирани)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Устройство</translation>
 <translation id="6970216967273061347">Окръг</translation>
 <translation id="6973656660372572881">Посочени са както фиксирани прокси сървъри, така и URL адрес на скрипт във формат .pac.</translation>
+<translation id="6979440798594660689">Заглушаване (стандартно)</translation>
 <translation id="6984479912851154518">Ще напуснете режима на частно сърфиране, за да платите във външно приложение. Искате ли да продължите?</translation>
 <translation id="6989763994942163495">Показване на разширените настройки...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> и още <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> и още <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Идентификатор в GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> и още <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> и още <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Запазване и попълване на начини на плащане</translation>
 <translation id="7180611975245234373">Опресняване</translation>
 <translation id="7182878459783632708">Няма зададени правила</translation>
 <translation id="7186367841673660872">Тази страница е преведена от<ph name="ORIGINAL_LANGUAGE" />на<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Обработва се</translation>
 <translation id="724691107663265825">На хоризонта се задава сайт със злонамерен софтуер</translation>
 <translation id="724975217298816891">Въведете датата на валидност и кода за проверка за <ph name="CREDIT_CARD" />, за да актуализирате данните за картата си. След като я потвърдите, те ще бъдат споделени с този сайт.</translation>
+<translation id="7251437084390964440">Конфигурацията на мрежата не спазва стандарта на ONC. Възможно е части от нея да не са импортирани.
+Допълнителни подробности:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Не може да се установи частна връзка с/ъс <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, тъй като датата и часът на компютъра ви (<ph name="DATE_AND_TIME" />) са неправилни.</translation>
 <translation id="7260504762447901703">Отмяна на достъпа</translation>
 <translation id="7271803869921933038">Приемани предплатени карти</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Сигналът за срив е качен в/ъв <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Сривове (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Трябва да въведете един и същи пропуск два пъти.</translation>
+<translation id="8416694386774425977">Конфигурацията на мрежата е невалидна и не можа да се импортира.
+Допълнителни подробности:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" />, <ph name="SECOND_LABEL" />, <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Настройки</translation>
 <translation id="8433057134996913067">Ще излезете от повечето уебсайтове.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Опитайте отново</translation>
 <translation id="8728672262656704056">Преминахте в режим „инкогнито“</translation>
 <translation id="8730621377337864115">Готово</translation>
+<translation id="8733831205558190772">Всички ваши карти на едно място</translation>
 <translation id="8738058698779197622">За установяване на сигурна връзка е необходимо часовникът ви да е верен. Това е така, защото сертификатите, с които уебсайтовете се идентифицират, са валидни само за конкретни периоди от време. Тъй като часовникът на устройството ви не е верен, Chromium не може да потвърди тези сертификати.</translation>
 <translation id="8740359287975076522">&lt;abbr id="dnsDefinition"&gt;DNS адресът&lt;/abbr&gt; на <ph name="HOST_NAME" /> не можа да бъде намерен. Проблемът се диагностицира.</translation>
 <translation id="874846938927089722">Приемани кредитни и предплатени карти</translation>
 <translation id="8759274551635299824">Тази карта е изтекла</translation>
 <translation id="8761567432415473239">Google Безопасно сърфиране наскоро <ph name="BEGIN_LINK" />откри опасни програми<ph name="END_LINK" /> на <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">USB устройство</translation>
+<translation id="8768895707659403558">За да използвате картите си на всичките си устройства, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Възстановяване на изтриването</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Картата бе добавена в профила ви в Google. Сега можете да я използвате от всяко устройство, на което сте влезли в профила си.}other{Картите бяха добавени в профила ви в Google. Сега можете да ги използвате от всяко устройство, на което сте влезли в профила си.}}</translation>
 <translation id="8792621596287649091">Възможно е да загубите достъп до профила си в/ъв <ph name="ORG_NAME" /> или самоличността ви да бъде открадната. Chromium препоръчва да промените паролата си сега.</translation>
 <translation id="8800988563907321413">Тук ще се показват предложения за неща в близост</translation>
 <translation id="8820817407110198400">Отметки</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index b472294..f1d728a8 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;No es pot establir una connexió privada amb <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> perquè la data i l'hora (<ph name="DATE_AND_TIME" />) del vostre dispositiu no són correctes.&lt;/p&gt;
 
       &lt;p&gt;Canvieu la data i l'hora a la secció &lt;strong&gt;General&lt;/strong&gt; de l'aplicació &lt;strong&gt;Configuració&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">S'ha produït un error en mostrar aquesta pàgina web.</translation>
 <translation id="1592005682883173041">Accés a les dades locals</translation>
 <translation id="1594030484168838125">Tria</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Sol·licitud o paràmetres de la sol·licitud no vàlids</translation>
 <translation id="1826516787628120939">S'està comprovant</translation>
 <translation id="1834321415901700177">Aquest lloc conté programes perjudicials</translation>
+<translation id="1839551713262164453">S'han produït errors a la validació dels valors de la política</translation>
 <translation id="1840414022444569775">Aquest número de targeta ja s'utilitza</translation>
 <translation id="1842969606798536927">Pagament</translation>
 <translation id="1871208020102129563">El servidor intermediari està configurat perquè utilitzi servidors intermediaris fixos, en lloc d'un URL d'script .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Pregunta-ho</translation>
 <translation id="2359629602545592467">Diverses</translation>
 <translation id="2359808026110333948">Continua</translation>
+<translation id="2360873523816792727">Per utilitzar les targetes en tots els dispositius, activa la sincronització.</translation>
 <translation id="2365563543831475020">L'informe d'error capturat (<ph name="CRASH_TIME" />) no s'ha penjat</translation>
 <translation id="2367567093518048410">Nivell</translation>
 <translation id="2378238891085281592">Has passat al mode privat</translation>
@@ -226,7 +229,7 @@
 <translation id="2495083838625180221">Analitzador JSON</translation>
 <translation id="2495093607237746763">Si s'activa aquesta casella, Chromium desa una còpia de la vostra targeta al dispositiu per agilitzar l'emplenament de formularis.</translation>
 <translation id="2498091847651709837">Escaneja una targeta nova</translation>
-<translation id="2501278716633472235">Enrere</translation>
+<translation id="2501278716633472235">Torna</translation>
 <translation id="2503184589641749290">Targetes de dèbit i de prepagament acceptades</translation>
 <translation id="2515629240566999685">Comprova el senyal a la teva zona.</translation>
 <translation id="2524461107774643265">Afegeix més informació</translation>
@@ -302,7 +305,7 @@
 <translation id="3010559122411665027">Entrada de llista "<ph name="ENTRY_INDEX" />": <ph name="ERROR" /></translation>
 <translation id="301521992641321250">Bloquejada automàticament</translation>
 <translation id="3024663005179499861">Tipus de política incorrecte</translation>
-<translation id="3037605927509011580">Oh, no!</translation>
+<translation id="3037605927509011580">Vaja!</translation>
 <translation id="3041612393474885105">Informació del certificat</translation>
 <translation id="3064966200440839136">Per pagar amb una aplicació externa sortiràs del mode d'incògnit. Vols continuar?</translation>
 <translation id="3083099961703215236">{COUNT,plural, =0{Cap}=1{1 contrasenya}other{# contrasenyes}}</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Les galetes i les dades de llocs web
           <ph name="LIST_ITEM" />La informació que introdueixis en formularis
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Mostra les targetes</translation>
 <translation id="3369192424181595722">Error de rellotge</translation>
 <translation id="337363190475750230">No administrat</translation>
 <translation id="3377188786107721145">S'ha produït un error en analitzar la política</translation>
 <translation id="3380365263193509176">Error desconegut</translation>
 <translation id="3380864720620200369">Identificador de client:</translation>
+<translation id="3387261909427947069">Formes de pagament</translation>
 <translation id="3391030046425686457">Adreça d'entrega</translation>
 <translation id="3395827396354264108">Mètode de recollida</translation>
 <translation id="3399952811970034796">Adreça d'entrega</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Revisa el pagament</translation>
 <translation id="4116663294526079822">Permet sempre en aquest lloc web</translation>
 <translation id="4117700440116928470">L'àmbit de la política no s'admet.</translation>
+<translation id="4119109454650683048">Revisa la informació següent i corregeix-ne els errors, si cal</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 element més}other{# elements més}}</translation>
 <translation id="4130226655945681476">Comprova els cables de xarxa, el mòdem i l'encaminador.</translation>
 <translation id="413544239732274901">Més informació</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Aquest mètode d'entrega no està disponible. Prova'n un altre.</translation>
 <translation id="4858792381671956233">Has demanat permís als teus pares per visitar aquest lloc</translation>
 <translation id="4876305945144899064">Sense nom d'usuari</translation>
+<translation id="4879491255372875719">Automàtic (opció predeterminada)</translation>
 <translation id="4880827082731008257">Cerca a l'historial</translation>
 <translation id="4881695831933465202">Obre</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Mostra totes les contrasenyes desades</translation>
 <translation id="5287240709317226393">Mostra les galetes</translation>
+<translation id="5288108484102287882">La validació dels valors de la política ha generat advertiments</translation>
 <translation id="5299298092464848405">S'ha produït un error en analitzar la política</translation>
 <translation id="5308380583665731573">Connecta</translation>
 <translation id="5308689395849655368">La creació d'informes de bloqueig està desactivada.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">No s'ha pogut emmagatzemar la configuració de la política</translation>
 <translation id="5371425731340848620">Actualitza la targeta</translation>
 <translation id="5377026284221673050">"El rellotge està endarrerit", "El rellotge està avançat" o "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Per utilitzar les targetes en tots els dispositius, inicia la sessió i activa la sincronització.</translation>
 <translation id="5386426401304769735">La cadena de certificats d'aquest lloc conté un certificat que s'ha signat amb SHA-1.</translation>
 <translation id="5387961145478138773">Accedeix ràpidament a les teves aplicacions de Google preferides</translation>
 <translation id="540969355065856584">Aquest servidor no ha pogut demostrar que sigui <ph name="DOMAIN" /> perquè el seu certificat de seguretat no és vàlid en aquest moment. Això pot ser a causa d'una configuració incorrecta o d'un atacant que intercepta la connexió.</translation>
@@ -682,7 +691,7 @@
 <translation id="5689199277474810259">Exporta a JSON</translation>
 <translation id="5689516760719285838">Ubicació</translation>
 <translation id="570530837424789914">Gestiona...</translation>
-<translation id="5705882733397021510">Enrere</translation>
+<translation id="5705882733397021510">Torna</translation>
 <translation id="57094364128775171">Suggereix una contrasenya segura…</translation>
 <translation id="5710435578057952990">La identitat d'aquest lloc web no ha estat verificada.</translation>
 <translation id="5719499550583120431">S'accepten targetes de prepagament.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">S'accepten targetes de crèdit.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (informació sincronitzada)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 en ús}other{# en ús}}</translation>
+<translation id="5922853866070715753">Ja queda poc</translation>
 <translation id="5939518447894949180">Restableix</translation>
 <translation id="5967592137238574583">Edita la informació de contacte</translation>
 <translation id="5967867314010545767">Elimina de l'historial</translation>
@@ -719,7 +729,7 @@
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">Any</translation>
 <translation id="6016158022840135739">{COUNT,plural, =1{Pàgina 1}other{Pàgina #}}</translation>
-<translation id="6017850046339264347">Pot ser que els atacants que es troben a <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> instal·lin aplicacions enganyoses que es facin passar per qui no són o recopilin dades que podrien utilitzar-se per fer un seguiment de la teva activitat. <ph name="BEGIN_LEARN_MORE_LINK" />Més informació<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="6017850046339264347">Pot ser que els atacants que es troben a <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> instal·lin aplicacions enganyoses que es facin passar per qui no són o recullin dades que podrien utilitzar-se per fer un seguiment de la teva activitat. <ph name="BEGIN_LEARN_MORE_LINK" />Més informació<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6025416945513303461"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /> (informació sincronitzada)</translation>
 <translation id="6027201098523975773">Escriu un nom</translation>
 <translation id="6039846035001940113">Si el problema continua, contacta amb el propietari del lloc web.</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">En aquests moments no pots visitar <ph name="SITE" /> perquè el lloc web fa servir una fixació de certificat. Els atacs i els errors de xarxa acostumen a ser temporals, o sigui que probablement la pàgina funcionarà més endavant.</translation>
 <translation id="6059925163896151826">Dispositius USB</translation>
 <translation id="6071091556643036997">El tipus de política no és vàlid.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Aquesta targeta es desarà al Compte de Google per poder pagar més ràpidament des de qualsevol dispositiu.}other{Aquestes targetes es desaran al Compte de Google per poder pagar més ràpidament des de qualsevol dispositiu.}}</translation>
 <translation id="6080696365213338172">Heu 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="610911394827799129">A <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />, trobaràs altres maneres d'explorar l'historial del teu compte de Google</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Cap}=1{1 contrasenya (sincronitzada)}other{# contrasenyes (sincronitzades)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Dispositiu</translation>
 <translation id="6970216967273061347">Districte</translation>
 <translation id="6973656660372572881">S'especifiquen tant els servidors intermediaris fixos com un URL d'script .pac.</translation>
+<translation id="6979440798594660689">Silencia (opció predeterminada)</translation>
 <translation id="6984479912851154518">Per pagar amb una aplicació externa sortiràs del mode privat. Vols continuar?</translation>
 <translation id="6989763994942163495">Mostra la configuració avançada...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> i <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> més}other{<ph name="PAYMENT_METHOD_PREVIEW" /> i <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> més}}</translation>
 <translation id="717330890047184534">Identificador de Gaia:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> i <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> més}other{<ph name="SHIPPING_OPTION_PREVIEW" /> i <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> més}}</translation>
+<translation id="7179323680825933600">Desa i emplena les formes de pagament</translation>
 <translation id="7180611975245234373">Actualitza</translation>
 <translation id="7182878459783632708">Cap política definida</translation>
 <translation id="7186367841673660872">Aquesta pàgina s'ha traduït de:<ph name="ORIGINAL_LANGUAGE" />a:<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">S'està processant</translation>
 <translation id="724691107663265825">Aquest lloc web conté programari maliciós</translation>
 <translation id="724975217298816891">Introdueix la data de caducitat i el CVC de la targeta <ph name="CREDIT_CARD" /> per actualitzar-ne els detalls. Un cop confirmada, els detalls de la targeta es compartiran amb aquest lloc.</translation>
+<translation id="7251437084390964440">La configuració de la xarxa no compleix l'estàndard ONC. Pot ser que algunes opcions de configuració no s'hagin importat.
+Detalls addicionals:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">No s'ha pogut establir una connexió privada amb <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> perquè la data i l'hora (<ph name="DATE_AND_TIME" />) de l'ordinador no són correctes.</translation>
 <translation id="7260504762447901703">Revoca l'accés</translation>
 <translation id="7271803869921933038">Targetes de prepagament acceptades</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Informe d'error penjat el <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Bloqueigs (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Heu d'introduir la mateixa frase de contrasenya dues vegades.</translation>
+<translation id="8416694386774425977">La configuració de la xarxa no és vàlida i no s'ha pogut importar.
+Detalls addicionals:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Configuració</translation>
 <translation id="8433057134996913067">Amb aquesta acció es tancarà la sessió a la majoria de llocs web.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Torna-ho a provar</translation>
 <translation id="8728672262656704056">Has passat al mode d'incògnit</translation>
 <translation id="8730621377337864115">Fet</translation>
+<translation id="8733831205558190772">Totes les targetes en un sol lloc</translation>
 <translation id="8738058698779197622">Per establir una connexió segura, el rellotge ha d'estar ben ajustat, perquè els certificats que els llocs web fan servir per identificar-se només són vàlids per a períodes de temps concrets. Com que el rellotge del dispositiu no està ben ajustat, Chromium no pot verificar aquests certificats.</translation>
 <translation id="8740359287975076522">No s'ha trobat l'&lt;abbr id="dnsDefinition"&gt;adreça DNS&lt;/abbr&gt; de <ph name="HOST_NAME" />. S'està diagnosticant el problema.</translation>
 <translation id="874846938927089722">Targetes de crèdit i de prepagament acceptades</translation>
 <translation id="8759274551635299824">Aquesta targeta ha caducat</translation>
 <translation id="8761567432415473239">Recentment, amb Navegació segura de Google s'han <ph name="BEGIN_LINK" />detectat programes perjudicials<ph name="END_LINK" /> al lloc <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Dispositiu USB</translation>
+<translation id="8768895707659403558">Per utilitzar les targetes en tots els dispositius, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Refés la supressió</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Aquesta targeta s'ha afegit al Compte de Google. Ara la pots utilitzar des de qualsevol dispositiu en què tinguis la sessió iniciada.}other{Aquestes targetes s'han afegit al Compte de Google. Ara les pots utilitzar des de qualsevol dispositiu en què tinguis la sessió iniciada.}}</translation>
 <translation id="8792621596287649091">Podries perdre l'accés al compte de <ph name="ORG_NAME" /> o tenir problemes de suplantació d'identitat. Chromium et recomana que canviïs la contrasenya ara.</translation>
 <translation id="8800988563907321413">Els suggeriments més propers es mostren aquí</translation>
 <translation id="8820817407110198400">Adreces d'interès</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index 394f0d6..f812448 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Soukromé připojení k doméně <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nelze navázat, protože máte v zařízení nastaveno chybné datum a čas (<ph name="DATE_AND_TIME" />).&lt;/p&gt;
 
       &lt;p&gt;Datum a čas upravte v aplikaci &lt;strong&gt;Nastavení&lt;/strong&gt; v sekci &lt;strong&gt;Obecné&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Při zobrazování této webové stránky došlo k chybě.</translation>
 <translation id="1592005682883173041">Přístup k místním datům</translation>
 <translation id="1594030484168838125">Zvolit</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Neplatný požadavek nebo parametry požadavku</translation>
 <translation id="1826516787628120939">Probíhá kontrola</translation>
 <translation id="1834321415901700177">Tento web obsahuje škodlivé programy</translation>
+<translation id="1839551713262164453">Ověření hodnot zásad selhalo s chybami</translation>
 <translation id="1840414022444569775">Toto číslo karty již existuje</translation>
 <translation id="1842969606798536927">Zaplatit</translation>
 <translation id="1871208020102129563">Proxy je nastaveno na používání pevně daných serverů proxy, nikoliv adresy URL skriptu PAC.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Zeptat se</translation>
 <translation id="2359629602545592467">Několik</translation>
 <translation id="2359808026110333948">Pokračovat</translation>
+<translation id="2360873523816792727">Chcete-li své karty používat na všech zařízeních, zapněte synchronizaci.</translation>
 <translation id="2365563543831475020">Zpráva o selhání pořízená <ph name="CRASH_TIME" /> nebyla nahrána</translation>
 <translation id="2367567093518048410">Úroveň</translation>
 <translation id="2378238891085281592">Jste v soukromém režimu</translation>
@@ -348,11 +351,13 @@
           <ph name="LIST_ITEM" />soubory cookie a data webů,
           <ph name="LIST_ITEM" />údaje zadané do formulářů.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Zobrazit karty</translation>
 <translation id="3369192424181595722">Chyba hodin</translation>
 <translation id="337363190475750230">Vyřazeno</translation>
 <translation id="3377188786107721145">Chyba analýzy zásady</translation>
 <translation id="3380365263193509176">Neznámá chyba</translation>
 <translation id="3380864720620200369">Číslo klienta:</translation>
+<translation id="3387261909427947069">Platební metody</translation>
 <translation id="3391030046425686457">Adresa doručení</translation>
 <translation id="3395827396354264108">Způsob vyzvednutí</translation>
 <translation id="3399952811970034796">Adresa doručení</translation>
@@ -448,6 +453,7 @@
 <translation id="4110652170750985508">Kontrola platby</translation>
 <translation id="4116663294526079822">Povolit vždy na tomto webu</translation>
 <translation id="4117700440116928470">Rozsah zásady není podporován.</translation>
+<translation id="4119109454650683048">Zkontrolujte níže uvedené údaje a v případě potřeby opravte chyby</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 další}few{# další}many{# další}other{# dalších}}</translation>
 <translation id="4130226655945681476">Zkontrolovat síťové kabely, modem a směrovač</translation>
 <translation id="413544239732274901">Další informace</translation>
@@ -553,6 +559,7 @@
 <translation id="4854362297993841467">Tento způsob doručení není k dispozici. Zkuste použít jiný způsob.</translation>
 <translation id="4858792381671956233">Požádal(a) jsi rodiče o povolení návštěvy tohoto webu.</translation>
 <translation id="4876305945144899064">Žádné uživatelské jméno</translation>
+<translation id="4879491255372875719">Automatické (výchozí)</translation>
 <translation id="4880827082731008257">Hledat v historii</translation>
 <translation id="4881695831933465202">Otevřít</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -618,6 +625,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Zobrazit všechna uložená hesla</translation>
 <translation id="5287240709317226393">Zobrazit soubory cookie</translation>
+<translation id="5288108484102287882">Ověření hodnot zásad vygenerovalo upozornění</translation>
 <translation id="5299298092464848405">Při analýze zásady došlo k chybě</translation>
 <translation id="5308380583665731573">Připojení</translation>
 <translation id="5308689395849655368">Zprávy o selhání jsou zakázány.</translation>
@@ -630,6 +638,7 @@
 <translation id="536296301121032821">Ukládání nastavení zásady se nezdařilo</translation>
 <translation id="5371425731340848620">Aktualizace karty</translation>
 <translation id="5377026284221673050">Vaše hodiny se zpožďují, Vaše hodiny jdou napřed nebo &lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;</translation>
+<translation id="5384855140246857529">Chcete-li své karty používat na všech zařízeních, přihlaste se a zapněte synchronizaci.</translation>
 <translation id="5386426401304769735">Řetězec certifikátů tohoto webu obsahuje certifikát podepsaný algoritmem SHA-1.</translation>
 <translation id="5387961145478138773">Získejte rychlý přístup ke svým oblíbeným aplikacím Google</translation>
 <translation id="540969355065856584">Server nedokázal prokázat, že patří doméně <ph name="DOMAIN" />. Jeho bezpečnostní certifikát v tuto chvíli není platný. Může to být způsobeno nesprávnou konfigurací nebo tím, že vaše připojení zachytává útočník.</translation>
@@ -705,6 +714,7 @@
 <translation id="5893752035575986141">Obchodník přijímá kreditní karty.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (synchronizováno)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Používá se 1}few{Používají se #}many{Používá se #}other{Používá se #}}</translation>
+<translation id="5922853866070715753">Téměř dokončeno</translation>
 <translation id="5939518447894949180">Resetovat</translation>
 <translation id="5967592137238574583">Úprava kontaktních údajů</translation>
 <translation id="5967867314010545767">Odstranit z historie</translation>
@@ -725,6 +735,7 @@
 <translation id="6051221802930200923">Web <ph name="SITE" /> teď nemůžete navštívit, protože používá připínání certifikátů. Síťové chyby a útoky jsou obvykle dočasné, tato stránka pravděpodobně později bude fungovat.</translation>
 <translation id="6059925163896151826">Zařízení USB</translation>
 <translation id="6071091556643036997">Typ zásady je neplatný.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Tato karta se kvůli zrychlení plateb na různých zařízeních uloží do vašeho účtu Google.}few{Tyto karty se kvůli zrychlení plateb na různých zařízeních uloží do vašeho účtu Google.}many{Tyto karty se kvůli zrychlení plateb na různých zařízeních uloží do vašeho účtu Google.}other{Tyto karty se kvůli zrychlení plateb na různých zařízeních uloží do vašeho účtu Google.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Žádné}=1{1 heslo (synchronizováno)}few{# hesla (synchronizováno)}many{# hesla (synchronizováno)}other{# hesel (synchronizováno)}}</translation>
@@ -826,6 +837,7 @@
 <translation id="6965978654500191972">Zařízení</translation>
 <translation id="6970216967273061347">Obvod</translation>
 <translation id="6973656660372572881">Určeny jsou pevně dané servery proxy i adresa URL skriptu PAC.</translation>
+<translation id="6979440798594660689">Ztlumit (výchozí)</translation>
 <translation id="6984479912851154518">Chystáte se opustit soukromý režim, abyste mohli zaplatit v externí aplikaci. Chcete pokračovat?</translation>
 <translation id="6989763994942163495">Zobrazit rozšířená nastavení...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -846,6 +858,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> další}few{<ph name="PAYMENT_METHOD_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> další}many{<ph name="PAYMENT_METHOD_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> další}other{<ph name="PAYMENT_METHOD_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> dalších}}</translation>
 <translation id="717330890047184534">ID Gaia:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> další}few{<ph name="SHIPPING_OPTION_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> další}many{<ph name="SHIPPING_OPTION_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> další}other{<ph name="SHIPPING_OPTION_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> dalších}}</translation>
+<translation id="7179323680825933600">Ukládat a vyplňovat platební metody</translation>
 <translation id="7180611975245234373">Obnovit</translation>
 <translation id="7182878459783632708">Nebyly nastaveny žádné zásady</translation>
 <translation id="7186367841673660872">Tato stránka byla přeložena z jazyka<ph name="ORIGINAL_LANGUAGE" />do jazyka<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -857,6 +870,8 @@
 <translation id="7220786058474068424">Zpracovávání</translation>
 <translation id="724691107663265825">Webové stránky, které chcete otevřít, obsahují malware</translation>
 <translation id="724975217298816891">Chcete-li aktualizovat údaje o kartě, zadejte datum vypršení platnosti a kód CVC karty <ph name="CREDIT_CARD" />. Po ověření budou údaje o kartě sdíleny s tímto webem.</translation>
+<translation id="7251437084390964440">Konfigurace sítě neodpovídá standardu ONC. Může se stát, že některé části konfigurace nebudou importovány. Další podrobnosti:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Soukromé připojení k doméně <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nelze navázat, protože máte v počítači nastaveno chybné datum a čas (<ph name="DATE_AND_TIME" />).</translation>
 <translation id="7260504762447901703">Zrušit přístup</translation>
 <translation id="7271803869921933038">Přijímané předplacené karty</translation>
@@ -1034,6 +1049,9 @@
 <translation id="8398259832188219207">Zpráva o selhání nahraná <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Selhání (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Stejnou heslovou frázi musíte zadat dvakrát.</translation>
+<translation id="8416694386774425977">Konfigurace sítě je neplatná a nelze ji importovat.
+Další podrobnosti:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Nastavení</translation>
 <translation id="8433057134996913067">Budete odhlášeni z většiny webů.</translation>
@@ -1066,13 +1084,16 @@
 <translation id="8725066075913043281">Zkusit znovu</translation>
 <translation id="8728672262656704056">Jste v anonymním režimu</translation>
 <translation id="8730621377337864115">Hotovo</translation>
+<translation id="8733831205558190772">Všechny platební karty na jediném místě</translation>
 <translation id="8738058698779197622">Aby bylo možné navázat zabezpečené spojení, hodiny musejí být nastaveny správně. Důvodem je, že certifikáty, pomocí kterých se weby identifikují, platí pouze pro pevně daná období. Jelikož hodiny v zařízení nejsou nastaveny správně, prohlížeč Chromium tyto certifikáty nemůže ověřit.</translation>
 <translation id="8740359287975076522">&lt;abbr id="dnsDefinition"&gt;Adresu DNS&lt;/abbr&gt; webu <ph name="HOST_NAME" /> nelze najít. Diagnostikování problému…</translation>
 <translation id="874846938927089722">Přijímané kreditní a předplacené karty</translation>
 <translation id="8759274551635299824">Platnost této karty vypršela</translation>
 <translation id="8761567432415473239">Bezpečné prohlížení Google na webu <ph name="SITE" /> nedávno <ph name="BEGIN_LINK" />nalezlo škodlivé programy<ph name="END_LINK" />.</translation>
 <translation id="8763927697961133303">Zařízení USB</translation>
+<translation id="8768895707659403558">Chcete-li své karty používat na všech zařízeních, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Opakovat smazání</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Tato karta byla přidána do vašeho účtu Google. Můžete ji teď používat ze všech zařízení, v nichž jste přihlášeni.}few{Tyto karty byly přidány do vašeho účtu Google. Můžete je teď používat ze všech zařízení, v nichž jste přihlášeni.}many{Tyto karty byly přidány do vašeho účtu Google. Můžete je teď používat ze všech zařízení, v nichž jste přihlášeni.}other{Tyto karty byly přidány do vašeho účtu Google. Můžete je teď používat ze všech zařízení, v nichž jste přihlášeni.}}</translation>
 <translation id="8792621596287649091">Mohli byste ztratit přístup k účtu <ph name="ORG_NAME" /> nebo by mohlo dojít k odcizení vaší identity. Doporučujeme vám okamžitě změnit heslo.</translation>
 <translation id="8800988563907321413">Zde se zobrazí návrhy funkce Nablízku</translation>
 <translation id="8820817407110198400">Záložky</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index 945adfb..1290171 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Der kan ikke oprettes en privat forbindelse til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, da datoen og tiden på din enhed (<ph name="DATE_AND_TIME" />) er forkert.&lt;/p&gt;
 
       &lt;p&gt;Juster datoen og tiden i sektionen &lt;strong&gt;Generelt&lt;/strong&gt; i appen &lt;strong&gt;Indstillinger&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Der opstod en fejl ved visningen af denne webside.</translation>
 <translation id="1592005682883173041">Lokal dataadgang</translation>
 <translation id="1594030484168838125">Vælg</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Ugyldig anmodning eller anmodningsparametre</translation>
 <translation id="1826516787628120939">Kontrollerer</translation>
 <translation id="1834321415901700177">Dette website indeholder skadelige programmer</translation>
+<translation id="1839551713262164453">Validering af politikværdier mislykkedes med fejl</translation>
 <translation id="1840414022444569775">Dette kortnummer bruges allerede</translation>
 <translation id="1842969606798536927">Betal</translation>
 <translation id="1871208020102129563">Proxy er indstillet til at bruge faste proxyservere, ikke webadresser til .pac-scripts.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Spørg</translation>
 <translation id="2359629602545592467">Flere</translation>
 <translation id="2359808026110333948">Fortsæt</translation>
+<translation id="2360873523816792727">Aktivér synkronisering for at bruge dine kort på alle enheder.</translation>
 <translation id="2365563543831475020">Nedbrudsrapporten, der blev registreret <ph name="CRASH_TIME" />, blev ikke uploadet</translation>
 <translation id="2367567093518048410">Niveau</translation>
 <translation id="2378238891085281592">Du er nu i privat tilstand</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Cookies og websitedata
           <ph name="LIST_ITEM" />Oplysninger, du angiver i formularer
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Se kort</translation>
 <translation id="3369192424181595722">Urfejl</translation>
 <translation id="337363190475750230">Fjernet</translation>
 <translation id="3377188786107721145">Det opstod en fejl ved parsing af politik</translation>
 <translation id="3380365263193509176">Ukendt fejl</translation>
 <translation id="3380864720620200369">Klient-id:</translation>
+<translation id="3387261909427947069">Betalingsmetoder</translation>
 <translation id="3391030046425686457">Leveringsadresse</translation>
 <translation id="3395827396354264108">Afhentningsmetode</translation>
 <translation id="3399952811970034796">Leveringsadresse</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Gennemgå din betaling</translation>
 <translation id="4116663294526079822">Tillad altid på dette website</translation>
 <translation id="4117700440116928470">Politikkens omfang understøttes ikke.</translation>
+<translation id="4119109454650683048">Tjek nedenstående oplysninger, og ret om nødvendigt eventuelle fejl</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 anden/andet}one{# anden/andet}other{# andre}}</translation>
 <translation id="4130226655945681476">Kontrollere netværkskabler, modem og router</translation>
 <translation id="413544239732274901">Få flere oplysninger</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Denne leveringsmetode er ikke tilgængelig. Prøv en anden metode.</translation>
 <translation id="4858792381671956233">Du har spurgt dine forældre, om det er i orden at besøge dette website.</translation>
 <translation id="4876305945144899064">Intet brugernavn</translation>
+<translation id="4879491255372875719">Automatisk (standard)</translation>
 <translation id="4880827082731008257">Søg i historikken</translation>
 <translation id="4881695831933465202">Åbn</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Se alle gemte adgangskoder</translation>
 <translation id="5287240709317226393">Vis cookies</translation>
+<translation id="5288108484102287882">Validering af politikværdier har genereret advarsler</translation>
 <translation id="5299298092464848405">Der opstod en fejl ved parsing af politik</translation>
 <translation id="5308380583665731573">Få forbindelse</translation>
 <translation id="5308689395849655368">Rapportering af nedbrud er deaktiveret.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Der kunne ikke gemmes indstillinger for politik</translation>
 <translation id="5371425731340848620">Opdater kortet</translation>
 <translation id="5377026284221673050">"Dit ur er bagud" eller "Dit ur er forud" eller "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Log ind, og aktivér synkronisering for at bruge dine kort på alle enheder.</translation>
 <translation id="5386426401304769735">Certifikatkæden for dette website indeholder et certifikat, der er signeret med SHA-1.</translation>
 <translation id="5387961145478138773">Få hurtig adgang til dine foretrukne Google-apps.</translation>
 <translation id="540969355065856584">Denne server kunne ikke bevise, at den er <ph name="DOMAIN" />, da dens sikkerhedscertifikat ikke er gyldigt i øjeblikket. Dette kan skyldes en fejlkonfiguration, eller at en hacker har opfanget din forbindelse.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Kreditkort accepteres.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (synkroniseret)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 i brug}one{# i brug}other{# i brug}}</translation>
+<translation id="5922853866070715753">Næsten færdig</translation>
 <translation id="5939518447894949180">Nulstil</translation>
 <translation id="5967592137238574583">Rediger kontaktoplysninger</translation>
 <translation id="5967867314010545767">Fjern fra historik</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Du kan ikke besøge <ph name="SITE" /> lige nu, da websitet bruger certifikatlåsning. Netværksfejl og angreb er normalt midlertidige, så siden vil sandsynligvis fungere igen senere.</translation>
 <translation id="6059925163896151826">USB-enheder</translation>
 <translation id="6071091556643036997">Politiktypen er ugyldig.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Dette kort gemmes på din Google-konto for at gøre det hurtigere at betale på tværs af enheder.}one{Dette kort gemmes på din Google-konto for at gøre det hurtigere at betale på tværs af enheder.}other{Disse kort gemmes på din Google-konto for at gøre det hurtigere at betale på tværs af enheder.}}</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="610911394827799129">Din Google-konto kan have andre former for browserhistorik på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Ingen}=1{1 adgangskode (synkroniseret)}one{# adgangskode (synkroniseret)}other{# adgangskoder (synkroniseret)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Enhed</translation>
 <translation id="6970216967273061347">Distrikt</translation>
 <translation id="6973656660372572881">Både faste proxyservere og en webadresse for .pac-script angives.</translation>
+<translation id="6979440798594660689">Slå lyden fra (standard)</translation>
 <translation id="6984479912851154518">Du forlader privat tilstand for at betale via en ekstern app. Vil du fortsætte?</translation>
 <translation id="6989763994942163495">Vis avancerede indstillinger...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> anden}one{<ph name="PAYMENT_METHOD_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> anden}other{<ph name="PAYMENT_METHOD_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> andre}}</translation>
 <translation id="717330890047184534">Gaia-id:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> anden}one{<ph name="SHIPPING_OPTION_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> anden}other{<ph name="SHIPPING_OPTION_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> andre}}</translation>
+<translation id="7179323680825933600">Gem og udfyld betalingsmetoder</translation>
 <translation id="7180611975245234373">Opdater</translation>
 <translation id="7182878459783632708">Ingen politikker er indstillet</translation>
 <translation id="7186367841673660872">Denne side er oversat fra<ph name="ORIGINAL_LANGUAGE" />til<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Behandler</translation>
 <translation id="724691107663265825">Det site, du er på vej til, indeholder malware</translation>
 <translation id="724975217298816891">Opdater dine kortoplysninger ved at indtaste udløbsdatoen og kontrolkoden for <ph name="CREDIT_CARD" />. Når du bekræfter, deles dine kortoplysninger med dette website.</translation>
+<translation id="7251437084390964440">Netværkskonfigurationen overholder ikke ONC-standarden. Dele af konfiguration kan muligvis ikke importeres.
+Yderligere oplysninger:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Der kunne ikke oprettes en privat forbindelse til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, da dato og tid (<ph name="DATE_AND_TIME" />) på din enhed er forkerte.</translation>
 <translation id="7260504762447901703">Tilbagekald adgangstilladelsen</translation>
 <translation id="7271803869921933038">Accepterede forudbetalte kort</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Nedbrudsrapporten blev uploadet <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Nedbrud (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Du skal angive den samme adgangssætning to gange.</translation>
+<translation id="8416694386774425977">Netværkskonfigurationen er ugyldig og kunne ikke importeres.
+Yderligere oplysninger:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Indstillinger</translation>
 <translation id="8433057134996913067">Dette logger dig ud af de fleste websites.</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">Forsøg igen</translation>
 <translation id="8728672262656704056">Du er nu i inkognito</translation>
 <translation id="8730621377337864115">Udfør</translation>
+<translation id="8733831205558190772">Alle dine kort samlet ét sted</translation>
 <translation id="8738058698779197622">For at kunne oprette en sikker forbindelse skal dit ur være indstillet korrekt. Det er vigtigt, da de certifikater, som websites bruger til at identificere sig selv, kun er gyldige i bestemte tidsperioder. Da uret på din enhed går forkert, kan Chromium ikke bekræfte disse certifikater.</translation>
 <translation id="8740359287975076522">&lt;abbr id="dnsDefinition"&gt;DNS-adressen&lt;/abbr&gt; for <ph name="HOST_NAME" /> blev ikke fundet. Diagnosticerer problemet.</translation>
 <translation id="874846938927089722">Accepterede kreditkort og forudbetalte kort</translation>
 <translation id="8759274551635299824">Kortet er udløbet</translation>
 <translation id="8761567432415473239">Beskyttet browsing i Google har for nylig <ph name="BEGIN_LINK" />fundet skadelige programmer<ph name="END_LINK" /> på <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">USB-enhed</translation>
+<translation id="8768895707659403558"><ph name="SIGN_IN_LINK" /> for at bruge dine kort på alle dine enheder.</translation>
 <translation id="8790007591277257123">&amp;Annuller fortryd sletning</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Dette kort er føjet til din Google-konto. Du kan nu bruge det på enhver enhed, hvor du er logget ind.}one{Dette kort er føjet til din Google-konto. Du kan nu bruge det på enhver enhed, hvor du er logget ind.}other{Disse kort er føjet til din Google-konto. Du kan nu bruge dem på enhver enhed, hvor du er logget ind.}}</translation>
 <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="8820817407110198400">Bogmærker</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 7e8423a..b29a738 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Es kann keine private Verbindung zu <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> hergestellt werden, weil Datum und Uhrzeit (<ph name="DATE_AND_TIME" />) Ihres Geräts falsch sind.&lt;/p&gt;
 
           &lt;p&gt;Stellen Sie in der App &lt;strong&gt;Einstellungen&lt;/strong&gt; im Bereich &lt;strong&gt;Allgemein&lt;/strong&gt; Datum und Uhrzeit richtig ein.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Fehler beim Anzeigen dieser Webseite.</translation>
 <translation id="1592005682883173041">Zugriff auf lokale Daten</translation>
 <translation id="1594030484168838125">Auswählen</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Anfrage oder Anfrageparameter ungültig</translation>
 <translation id="1826516787628120939">Überprüfung läuft</translation>
 <translation id="1834321415901700177">Diese Website enthält schädliche Programme</translation>
+<translation id="1839551713262164453">Die Validierung der Richtlinienwerte hat Fehler ergeben und ist fehlgeschlagen</translation>
 <translation id="1840414022444569775">Diese Kartennummer wird bereits verwendet</translation>
 <translation id="1842969606798536927">Bezahlen</translation>
 <translation id="1871208020102129563">Der Proxy ist zur Verwendung von festen Proxyservern konfiguriert, nicht zur Verwendung einer PAC-Skript-URL.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Fragen</translation>
 <translation id="2359629602545592467">Mehrere</translation>
 <translation id="2359808026110333948">Weiter</translation>
+<translation id="2360873523816792727">Wenn Sie Ihre Karten auf allen Geräten verwenden möchten, aktivieren Sie die Synchronisierung.</translation>
 <translation id="2365563543831475020">Absturzbericht erfasst am <ph name="CRASH_TIME" />, wurde nicht hochgeladen</translation>
 <translation id="2367567093518048410">Ebene</translation>
 <translation id="2378238891085281592">Sie befinden sich jetzt im privaten Modus</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Cookies und Websitedaten
           <ph name="LIST_ITEM" />In Formulare eingegebene Informationen
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Karten ansehen</translation>
 <translation id="3369192424181595722">Fehler bei der Uhrzeit</translation>
 <translation id="337363190475750230">Bereitstellung aufgehoben</translation>
 <translation id="3377188786107721145">Fehler beim Parsen der Richtlinie</translation>
 <translation id="3380365263193509176">Unbekannter Fehler</translation>
 <translation id="3380864720620200369">Client-ID:</translation>
+<translation id="3387261909427947069">Zahlungsmethoden</translation>
 <translation id="3391030046425686457">Lieferadresse</translation>
 <translation id="3395827396354264108">Abholoption</translation>
 <translation id="3399952811970034796">Lieferadresse</translation>
@@ -409,7 +414,7 @@
 <translation id="3736520371357197498">Wenn Sie die Sicherheitsrisiken kennen, können Sie <ph name="BEGIN_LINK" />diese unsichere Website aufrufen<ph name="END_LINK" />, bevor die gefährlichen Programme entfernt wurden.</translation>
 <translation id="3739623965217189342">Von Ihnen kopierter Link</translation>
 <translation id="3744899669254331632">Sie können <ph name="SITE" /> zurzeit nicht aufrufen, weil die Website verschlüsselte Anmeldedaten gesendet hat, die von Chromium nicht verarbeitet werden können. Netzwerkfehler und Angriffe sind in der Regel nur vorübergehend, sodass die Seite wahrscheinlich später wieder funktioniert.</translation>
-<translation id="3748148204939282805">Hacker könnten auf <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> etwa versuchen, Sie zur Installation von Software oder zur Herausgabe von Daten wie Passwörter, Telefonnummern oder Kreditkartendaten zu bewegen. <ph name="BEGIN_LEARN_MORE_LINK" />Weitere Informationen<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="3748148204939282805">Hacker könnten auf <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> etwa versuchen, Sie zur Installation von Software oder zur Herausgabe von Daten wie Passwörtern, Telefonnummern oder Kreditkartendetails zu bewegen. <ph name="BEGIN_LEARN_MORE_LINK" />Weitere Informationen<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="375403751935624634">Aufgrund eines Serverfehlers ist die Übersetzung fehlgeschlagen.</translation>
 <translation id="3759461132968374835">Es liegen keine kürzlich gemeldeten Abstürze vor. Abstürze, die bei deaktivierter Absturzberichtsfunktion aufgetreten sind, werden hier nicht angezeigt.</translation>
 <translation id="3765032636089507299">Die Seite "Safe Browsing" wird überarbeitet.</translation>
@@ -451,6 +456,7 @@
 <translation id="4110652170750985508">Zahlung überprüfen</translation>
 <translation id="4116663294526079822">Auf dieser Website immer zulassen</translation>
 <translation id="4117700440116928470">Richtlinienbereich wird nicht unterstützt.</translation>
+<translation id="4119109454650683048">Lesen Sie sich die Informationen unten durch und beheben Sie falls nötig die vorhandenen Fehler</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 weiterer}other{# weitere}}</translation>
 <translation id="4130226655945681476">Netzwerkkabel, Modem und Router prüfen</translation>
 <translation id="413544239732274901">Weitere Informationen</translation>
@@ -556,6 +562,7 @@
 <translation id="4854362297993841467">Diese Lieferoption ist nicht verfügbar. Bitte wählen Sie eine andere Option aus.</translation>
 <translation id="4858792381671956233">Du hast deine Eltern gefragt, ob du diese Website besuchen darfst</translation>
 <translation id="4876305945144899064">Kein Nutzername</translation>
+<translation id="4879491255372875719">Automatisch (Standard)</translation>
 <translation id="4880827082731008257">Im Verlauf suchen</translation>
 <translation id="4881695831933465202">Öffnen</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -621,6 +628,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Alle gespeicherten Passwörter anzeigen</translation>
 <translation id="5287240709317226393">Cookies anzeigen</translation>
+<translation id="5288108484102287882">Die Validierung der Richtlinienwerte hat Warnungen ergeben</translation>
 <translation id="5299298092464848405">Fehler beim Parsen der Richtlinie</translation>
 <translation id="5308380583665731573">Verbinden</translation>
 <translation id="5308689395849655368">Die Absturzberichtsfunktion ist deaktiviert.</translation>
@@ -633,6 +641,7 @@
 <translation id="536296301121032821">Fehler beim Speichern der Richtlinieneinstellungen</translation>
 <translation id="5371425731340848620">Karte aktualisieren</translation>
 <translation id="5377026284221673050">"Ihre Uhr geht nach", "Ihre Uhr geht vor" oder "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<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="5387961145478138773">Schnellen Zugriff auf Ihre bevorzugten Google-Apps erhalten</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>
@@ -708,6 +717,7 @@
 <translation id="5893752035575986141">Kreditkarten werden akzeptiert.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (synchronisiert)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 wird verwendet}other{# werden verwendet}}</translation>
+<translation id="5922853866070715753">Fast fertig</translation>
 <translation id="5939518447894949180">Zurücksetzen</translation>
 <translation id="5967592137238574583">Kontaktdaten bearbeiten</translation>
 <translation id="5967867314010545767">Aus Verlauf entfernen</translation>
@@ -721,13 +731,14 @@
 <translation id="6017850046339264347">Angreifer auf der Website <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> könnten betrügerische Apps installieren, die scheinbar einem anderen Zweck dienen oder Daten erfassen, um Sie auszuspionieren. <ph name="BEGIN_LEARN_MORE_LINK" />Weitere Informationen<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6025416945513303461"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /> (synchronisiert)</translation>
 <translation id="6027201098523975773">Geben Sie einen Namen ein</translation>
-<translation id="6039846035001940113">Falls das Problem weiterhin besteht, wenden Sie sich an den Inhaber der Website.</translation>
+<translation id="6039846035001940113">Falls das Problem weiterhin besteht, wenden Sie sich an den Eigentümer der Website.</translation>
 <translation id="6040143037577758943">Schließen</translation>
 <translation id="6047233362582046994">Wenn Sie die Sicherheitsrisiken kennen, können Sie <ph name="BEGIN_LINK" />diese Website aufrufen<ph name="END_LINK" />, bevor die schädlichen Apps entfernt wurden.</translation>
 <translation id="6047927260846328439">Mit diesen Inhalten wird möglicherweise versucht, Sie zu täuschen und so zur Installation von Software oder der Offenlegung personenbezogener Daten zu bringen. <ph name="BEGIN_LINK" />Trotzdem anzeigen<ph name="END_LINK" /></translation>
 <translation id="6051221802930200923">Sie können <ph name="SITE" /> zurzeit nicht aufrufen, weil die Website das Zertifikats-Pinning nutzt. Netzwerkfehler und Angriffe sind in der Regel nur vorübergehend, sodass die Seite wahrscheinlich später wieder funktioniert.</translation>
 <translation id="6059925163896151826">USB-Geräte</translation>
 <translation id="6071091556643036997">Der Richtlinientyp ist ungültig.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Diese Karte wird in Ihrem Google-Konto gespeichert, um den Bezahlvorgang geräteübergreifend zu beschleunigen.}other{Diese Karten werden in Ihrem Google-Konto gespeichert, um den Bezahlvorgang geräteübergreifend zu beschleunigen.}}</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="610911394827799129">Möglicherweise verfügt Ihr Google-Konto unter <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> über andere Browserverläufe.</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Keine}=1{1 Passwort (synchronisiert)}other{# Passwörter (synchronisiert)}}</translation>
@@ -830,6 +841,7 @@
 <translation id="6965978654500191972">Gerät</translation>
 <translation id="6970216967273061347">Bezirk</translation>
 <translation id="6973656660372572881">Sowohl feste Proxyserver als auch eine PAC-Skript-URL sind festgelegt.</translation>
+<translation id="6979440798594660689">Stummschalten (Standard)</translation>
 <translation id="6984479912851154518">Der private Modus wird beendet, um über eine externe Anwendung zu zahlen. Weiter?</translation>
 <translation id="6989763994942163495">Erweiterte Einstellungen anzeigen</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -850,6 +862,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> und <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> weitere}other{<ph name="PAYMENT_METHOD_PREVIEW" /> und <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> weitere}}</translation>
 <translation id="717330890047184534">GAIA-ID:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> und <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> weitere}other{<ph name="SHIPPING_OPTION_PREVIEW" /> und <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> weitere}}</translation>
+<translation id="7179323680825933600">Zahlungsmethoden speichern und ausfüllen</translation>
 <translation id="7180611975245234373">Aktualisieren</translation>
 <translation id="7182878459783632708">Keine Richtlinien festgelegt</translation>
 <translation id="7186367841673660872">Diese Seite wurde von<ph name="ORIGINAL_LANGUAGE" />in<ph name="LANGUAGE_LANGUAGE" />übersetzt.</translation>
@@ -861,6 +874,9 @@
 <translation id="7220786058474068424">Verarbeitung läuft</translation>
 <translation id="724691107663265825">Malware auf nachfolgender Website</translation>
 <translation id="724975217298816891">Geben Sie das Gültigkeitsdatum und den CVC für <ph name="CREDIT_CARD" /> ein, um Ihre Kartendetails zu aktualisieren. Nach erfolgter Bestätigung werden die Kartendetails an diese Website weitergegeben.</translation>
+<translation id="7251437084390964440">Die Netzwerkkonfiguration entspricht nicht dem ONC-Standard. Die Konfiguration wird unter Umständen nicht vollständig importiert.
+Weitere Details:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Es kann keine private Verbindung zu <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> hergestellt werden, weil Datum und Uhrzeit Ihres Computers falsch sind (<ph name="DATE_AND_TIME" />).</translation>
 <translation id="7260504762447901703">Zugriff entziehen</translation>
 <translation id="7271803869921933038">Akzeptierte Prepaidkarten</translation>
@@ -1038,6 +1054,9 @@
 <translation id="8398259832188219207">Absturzbericht hochgeladen am <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Abstürze (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Sie müssen zweimal dieselbe Passphrase eingeben.</translation>
+<translation id="8416694386774425977">Die Netzwerkkonfiguration ist ungültig und konnte nicht importiert werden.
+Weitere Details:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" />, <ph name="SECOND_LABEL" />, <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Einstellungen</translation>
 <translation id="8433057134996913067">Dadurch werden Sie von den meisten Websites abgemeldet.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Erneut versuchen</translation>
 <translation id="8728672262656704056">Sie haben den Inkognitomodus aktiviert</translation>
 <translation id="8730621377337864115">Fertig</translation>
+<translation id="8733831205558190772">Alle Ihre Karten an einem Ort</translation>
 <translation id="8738058698779197622">Zum Aufbau einer sicheren Verbindung muss die Uhrzeit richtig eingestellt sein. Der Grund hierfür ist, dass Websites sich mithilfe von Zertifikaten identifizieren, die nur für einen bestimmten Zeitraum gelten. Da die Uhrzeit Ihres Geräts falsch ist, kann Chromium diese Zertifikate nicht bestätigen.</translation>
 <translation id="8740359287975076522">Die &lt;abbr id="dnsDefinition"&gt;DNS-Adresse&lt;/abbr&gt; von <ph name="HOST_NAME" /> wurde nicht gefunden. Eine Problemdiagnose wird durchgeführt.</translation>
 <translation id="874846938927089722">Akzeptierte Kredit- und Prepaidkarten</translation>
 <translation id="8759274551635299824">Diese Karte ist abgelaufen</translation>
 <translation id="8761567432415473239">Google Safe Browsing hat vor Kurzem <ph name="BEGIN_LINK" />schädliche Programme<ph name="END_LINK" /> auf <ph name="SITE" /> gefunden.</translation>
 <translation id="8763927697961133303">USB-Gerät</translation>
+<translation id="8768895707659403558">Karten auf allen Ihren Geräten nutzen: <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Löschen wiederholen</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Diese Karte wurde Ihrem Google-Konto hinzugefügt. Sie kann jetzt auf allen angemeldeten Geräten verwendet werden.}other{Diese Karten wurden Ihrem Google-Konto hinzugefügt. Sie können jetzt auf allen angemeldeten Geräten verwendet werden.}}</translation>
 <translation id="8792621596287649091">Sie könnten den Zugriff auf Ihr <ph name="ORG_NAME" />-Konto verlieren oder zum Opfer von Identitätsdiebstahl werden. Chromium empfiehlt Ihnen, Ihr Passwort jetzt zu ändern.</translation>
 <translation id="8800988563907321413">Hier werden Ihre Vorschläge in der Nähe angezeigt</translation>
 <translation id="8820817407110198400">Lesezeichen</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index 1ab407c3..32021a3d2 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Δεν είναι δυνατή η επίτευξη ιδιωτικής σύνδεσης με τον τομέα <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> επειδή η ημερομηνία και η ώρα (<ph name="DATE_AND_TIME" />) της συσκευής σας είναι λανθασμένες.&lt;/p&gt;
 
       &lt;p&gt;Προσαρμόστε την ημερομηνία και την ώρα από την ενότητα &lt;strong&gt;Γενικές&lt;/strong&gt; της εφαρμογής &lt;strong&gt;Ρυθμίσεις&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Παρουσιάστηκε πρόβλημα κατά την εμφάνιση αυτής της ιστοσελίδας.</translation>
 <translation id="1592005682883173041">Πρόσβαση σε τοπικά δεδομένα</translation>
 <translation id="1594030484168838125">Επιλογή</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Μη έγκυρο αίτημα ή παράμετροι αιτήματος</translation>
 <translation id="1826516787628120939">Έλεγχος</translation>
 <translation id="1834321415901700177">Αυτός ο ιστότοπος περιέχει κακόβουλα προγράμματα</translation>
+<translation id="1839551713262164453">Η επικύρωση των τιμών πολιτικής απέτυχε αφού παρουσίασε σφάλματα</translation>
 <translation id="1840414022444569775">Αυτός ο αριθμός κάρτας χρησιμοποιείται ήδη</translation>
 <translation id="1842969606798536927">Πληρωμή</translation>
 <translation id="1871208020102129563">Ο διακομιστής μεσολάβησης έχει ρυθμιστεί να χρησιμοποιεί διακομιστές μεσολάβησης και όχι μια διεύθυνση URL σεναρίου .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Να γίνεται ερώτηση</translation>
 <translation id="2359629602545592467">Πολλά</translation>
 <translation id="2359808026110333948">Συνέχεια</translation>
+<translation id="2360873523816792727">Για να χρησιμοποιείτε τις κάρτες σας σε όλες τις συσκευές, ενεργοποιήστε τον συγχρονισμό.</translation>
 <translation id="2365563543831475020">Οι αναφορές σφαλμάτων που καταγράφηκαν <ph name="CRASH_TIME" /> δεν έχουν μεταφορτωθεί</translation>
 <translation id="2367567093518048410">Επίπεδο</translation>
 <translation id="2378238891085281592">Πραγματοποιείτε ιδιωτική περιήγηση</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Cookie και δεδομένα ιστοτόπου
           <ph name="LIST_ITEM" />Πληροφορίες που εισάγετε σε φόρμες
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Προβολή καρτών</translation>
 <translation id="3369192424181595722">Σφάλμα ρολογιού</translation>
 <translation id="337363190475750230">Κατάργηση παροχής</translation>
 <translation id="3377188786107721145">Σφάλμα ανάλυσης πολιτικής</translation>
 <translation id="3380365263193509176">Άγνωστο σφάλμα</translation>
 <translation id="3380864720620200369">Αναγνωριστικό πελάτη:</translation>
+<translation id="3387261909427947069">Τρόποι πληρωμής</translation>
 <translation id="3391030046425686457">Διεύθυνση παράδοσης</translation>
 <translation id="3395827396354264108">Τρόπος παραλαβής</translation>
 <translation id="3399952811970034796">Διεύθυνση παράδοσης</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Έλεγχος πληρωμής</translation>
 <translation id="4116663294526079822">Να επιτρέπεται πάντα σε αυτόν τον ιστότοπο</translation>
 <translation id="4117700440116928470">Το εύρος της πολιτικής δεν υποστηρίζεται.</translation>
+<translation id="4119109454650683048">Ελέγξτε τις πληροφορίες που ακολουθούν και επιδιορθώστε τυχόν σφάλματα, εάν είναι απαραίτητο</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 ακόμα}other{# ακόμα}}</translation>
 <translation id="4130226655945681476">Έλεγχος καλωδίων, μόντεμ και δρομολογητή δικτύου</translation>
 <translation id="413544239732274901">Μάθετε περισσότερα</translation>
@@ -558,6 +564,7 @@
 <translation id="4854362297993841467">Αυτός ο τρόπος παράδοσης δεν είναι διαθέσιμος. Δοκιμάστε έναν άλλο τρόπο.</translation>
 <translation id="4858792381671956233">Ρώτησες τους γονείς σου εάν σου επιτρέπουν να επισκεφτείς αυτόν τον ιστότοπο</translation>
 <translation id="4876305945144899064">Δεν υπάρχει όνομα χρήστη</translation>
+<translation id="4879491255372875719">Αυτόματος (προεπιλογή)</translation>
 <translation id="4880827082731008257">Αναζήτηση ιστορικού</translation>
 <translation id="4881695831933465202">Άνοιγμα</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -623,6 +630,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Εμφάνιση όλων των αποθηκευμένων κωδικών πρόσβασης</translation>
 <translation id="5287240709317226393">Εμφάνιση cookie</translation>
+<translation id="5288108484102287882">Η επικύρωση των τιμών πολιτικής είχε ως αποτέλεσμα την εμφάνιση προειδοποιήσεων</translation>
 <translation id="5299298092464848405">Σφάλμα ανάλυσης πολιτικής</translation>
 <translation id="5308380583665731573">Σύνδεση</translation>
 <translation id="5308689395849655368">Η αναφορά σφαλμάτων είναι απενεργοποιημένη.</translation>
@@ -635,6 +643,7 @@
 <translation id="536296301121032821">Αποτυχία αποθήκευσης ρυθμίσεων πολιτικής</translation>
 <translation id="5371425731340848620">Ενημέρωση κάρτας</translation>
 <translation id="5377026284221673050">"Το ρολόι σας πάει πίσω" ή "Το ρολόι σας πάει μπροστά" ή "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Για να χρησιμοποιείτε τις κάρτες σας σε όλες τις συσκευές, συνδεθείτε και ενεργοποιήστε τον συγχρονισμό.</translation>
 <translation id="5386426401304769735">Η αλυσίδα πιστοποιητικού για αυτόν τον ιστότοπο περιέχει ένα πιστοποιητικό το οποίο είναι υπογεγραμμένο με χρήση SHA-1.</translation>
 <translation id="5387961145478138773">Αποκτήστε γρήγορη πρόσβαση στις αγαπημένες σας Εφαρμογές Google</translation>
 <translation id="540969355065856584">Αυτός ο διακομιστής δεν μπόρεσε να αποδείξει ότι είναι <ph name="DOMAIN" />. Το πιστοποιητικό ασφαλείας του δεν είναι έγκυρο αυτήν τη στιγμή. Αυτό μπορεί να οφείλεται σε εσφαλμένη ρύθμιση ή σε κάποιον εισβολέα που παρεμβαίνει στη σύνδεσή σας.</translation>
@@ -710,6 +719,7 @@
 <translation id="5893752035575986141">Οι πιστωτικές κάρτες γίνονται δεκτές.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (συγχρονισμένο)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 σε χρήση}other{# σε χρήση}}</translation>
+<translation id="5922853866070715753">Σχεδόν ολοκληρώθηκε</translation>
 <translation id="5939518447894949180">Επαναφορά</translation>
 <translation id="5967592137238574583">Επεξεργασία στοιχείων επικοινωνίας</translation>
 <translation id="5967867314010545767">Κατάργηση από το ιστορικό</translation>
@@ -730,6 +740,7 @@
 <translation id="6051221802930200923">Δεν μπορείτε να επισκεφτείτε το <ph name="SITE" /> αυτήν τη στιγμή επειδή ο ιστότοπος χρησιμοποιεί certificate pinning (κλείδωμα πιστοποιητικών). Τα σφάλματα δικτύου και οι επιθέσεις είναι συνήθως προσωρινά, συνεπώς αυτή η σελίδα πιθανότατα θα λειτουργήσει αργότερα.</translation>
 <translation id="6059925163896151826">Συσκευές USB</translation>
 <translation id="6071091556643036997">Ο τύπος πολιτικής δεν είναι έγκυρος.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Αυτή η κάρτα θα αποθηκευτεί στον Λογαριασμό σας Google προκειμένου να ολοκληρώνετε τις αγορές σας πιο γρήγορα στις συσκευές που χρησιμοποιείτε.}other{Αυτές οι κάρτες θα αποθηκευτούν στον Λογαριασμό σας Google προκειμένου να ολοκληρώνετε τις αγορές σας πιο γρήγορα στις συσκευές που χρησιμοποιείτε.}}</translation>
 <translation id="6080696365213338172">Η πρόσβασή σας στο περιεχόμενο πραγματοποιήθηκε με τη χρήση ενός πιστοποιητικού που παρασχέθηκε από διαχειριστή. Τα δεδομένα που παρέχετε στο <ph name="DOMAIN" /> μπορεί να ελέγχονται από το διαχειριστή σας.</translation>
 <translation id="610911394827799129">Ο Λογαριασμός Google ενδέχεται να διαθέτει άλλες μορφές ιστορικού περιήγησης στη διεύθυνση <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Κανένας}=1{1 κωδικός πρόσβασης (συγχρονισμένος)}other{# κωδικοί πρόσβασης (συγχρονισμένοι)}}</translation>
@@ -832,6 +843,7 @@
 <translation id="6965978654500191972">Συσκευή</translation>
 <translation id="6970216967273061347">Περιοχή</translation>
 <translation id="6973656660372572881">Καθορίζονται τόσο οι σταθεροί διακομιστές μεσολάβησης όσο και μια διεύθυνση URL σεναρίου .pac.</translation>
+<translation id="6979440798594660689">Σίγαση (προεπιλογή)</translation>
 <translation id="6984479912851154518">Αποχώρηση από την κατάσταση ιδιωτικής περιήγησης για πληρωμή μέσω εξωτερικής εφαρμογής. Συνέχεια;</translation>
 <translation id="6989763994942163495">Εμφάνιση σύνθετων ρυθμίσεων…</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -852,6 +864,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> και <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ακόμη}other{<ph name="PAYMENT_METHOD_PREVIEW" /> και <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ακόμη}}</translation>
 <translation id="717330890047184534">Αναγνωριστικό Gaia:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> και <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ακόμη}other{<ph name="SHIPPING_OPTION_PREVIEW" /> και <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ακόμη}}</translation>
+<translation id="7179323680825933600">Αποθήκευση και συμπλήρωση τρόπων πληρωμής</translation>
 <translation id="7180611975245234373">Ανανέωση</translation>
 <translation id="7182878459783632708">Δεν έχουν οριστεί πολιτικές</translation>
 <translation id="7186367841673660872">Αυτή η σελίδα έχει μεταφραστεί από τα<ph name="ORIGINAL_LANGUAGE" />στα<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -863,6 +876,9 @@
 <translation id="7220786058474068424">Επεξεργασία</translation>
 <translation id="724691107663265825">Ο ιστότοπος μετάβασης περιέχει κακόβουλο λογισμικό</translation>
 <translation id="724975217298816891">Εισαγάγετε την ημερομηνία λήξης και τον κωδικό CVC για την πιστωτική κάρτα <ph name="CREDIT_CARD" />, προκειμένου να ενημερώσετε τα στοιχεία της κάρτας σας. Μετά την επιβεβαίωση, θα κοινοποιηθούν τα στοιχεία της κάρτας σας με αυτόν τον ιστότοπο.</translation>
+<translation id="7251437084390964440">Η διαμόρφωση δικτύου δεν συμμορφώνεται με το πρότυπο ONC. Ορισμένα τμήματα αυτής της διαμόρφωσης μπορεί να μην εισαχθούν
+Πρόσθετες λεπτομέρειες:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Δεν είναι δυνατή η επίτευξη ιδιωτικής σύνδεσης με τον τομέα <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> επειδή η ημερομηνία και η ώρα (<ph name="DATE_AND_TIME" />) του υπολογιστή σας είναι λανθασμένες.</translation>
 <translation id="7260504762447901703">Ανάκληση πρόσβασης</translation>
 <translation id="7271803869921933038">Αποδεκτές προπληρωμένες κάρτες</translation>
@@ -1040,6 +1056,9 @@
 <translation id="8398259832188219207">Η αναφορά σφαλμάτων μεταφορτώθηκε στις <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Σφάλματα (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Πρέπει να εισαγάγετε δύο φορές την ίδια φράση πρόσβασης.</translation>
+<translation id="8416694386774425977">Η διαμόρφωση δικτύου είναι μη έγκυρη και δεν ήταν δυνατή η εισαγωγή της.
+Πρόσθετες λεπτομέρειες:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Ρυθμίσεις</translation>
 <translation id="8433057134996913067">Αυτή η ενέργεια θα σας αποσυνδέσει από τους περισσότερους ιστότοπους.</translation>
@@ -1072,13 +1091,16 @@
 <translation id="8725066075913043281">Προσπαθήστε ξανά</translation>
 <translation id="8728672262656704056">Πραγματοποιείτε ανώνυμη περιήγηση</translation>
 <translation id="8730621377337864115">Ολοκληρώθηκε</translation>
+<translation id="8733831205558190772">Όλες οι κάρτες σας σε ένα σημείο</translation>
 <translation id="8738058698779197622">Για την επίτευξη μιας ασφαλούς σύνδεσης, θα πρέπει να γίνει σωστή ρύθμιση του ρολογιού σας. Αυτό οφείλεται στο γεγονός ότι τα πιστοποιητικά που χρησιμοποιούν οι ιστότοποι για την ταυτοποίησή τους είναι έγκυρα μόνο για συγκεκριμένες χρονικές περιόδους. Εφόσον το ρολόι της συσκευής σας δεν είναι σωστά ρυθμισμένο, το Chromium δεν μπορεί να επαληθεύσει αυτά τα πιστοποιητικά.</translation>
 <translation id="8740359287975076522">Δεν ήταν δυνατός ο εντοπισμός της &lt;abbr id="dnsDefinition"&gt;διεύθυνσης DNS&lt;/abbr&gt; του κεντρικού υπολογιστή <ph name="HOST_NAME" />. Γίνεται διάγνωση του προβλήματος.</translation>
 <translation id="874846938927089722">Αποδεκτές πιστωτικές και προπληρωμένες κάρτες</translation>
 <translation id="8759274551635299824">Αυτή η κάρτα έχει λήξει</translation>
 <translation id="8761567432415473239">Η ασφαλής περιήγηση Google <ph name="BEGIN_LINK" />εντόπισε επιβλαβή προγράμματα<ph name="END_LINK" /> πρόσφατα στο <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Συσκευή USB</translation>
+<translation id="8768895707659403558">Για να χρησιμοποιείτε τις κάρτες σας σε όλες τις συσκευές σας, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Επανάληψη διαγραφής</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Αυτή η κάρτα προστέθηκε στον Λογαριασμό σας Google. Μπορείτε πλέον να την χρησιμοποιείτε από οποιαδήποτε συνδεδεμένη συσκευή.}other{Αυτές οι κάρτες προστέθηκαν στον Λογαριασμό σας Google. Μπορείτε πλέον να τις χρησιμοποιείτε από οποιαδήποτε συνδεδεμένη συσκευή.}}</translation>
 <translation id="8792621596287649091">Μπορεί να χάσετε την πρόσβαση στον λογαριασμό σας <ph name="ORG_NAME" /> ή να πέσετε θύμα κλοπής στοιχείων ταυτότητας. Το Chromium συνιστά να αλλάξετε τον κωδικό πρόσβασής σας τώρα.</translation>
 <translation id="8800988563907321413">Οι προτάσεις σε κοντινή απόσταση εμφανίζονται εδώ</translation>
 <translation id="8820817407110198400">Σελιδοδείκτες</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index 3c4ef17..dc7cd2a6 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;No se puede establecer una conexión privada a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> porque la fecha y la hora del dispositivo (<ph name="DATE_AND_TIME" />) son incorrectas.&lt;/p&gt;
 
       &lt;p&gt;Ajusta la fecha y la hora desde la sección &lt;strong&gt;General&lt;/strong&gt; de la app de &lt;strong&gt;Configuración&lt;/strong&gt; .&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Se produjo un error al mostrar la página web.</translation>
 <translation id="1592005682883173041">Acceso a datos locales</translation>
 <translation id="1594030484168838125">Seleccionar</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Solicitud o parámetros de solicitud no válidos</translation>
 <translation id="1826516787628120939">Comprobando</translation>
 <translation id="1834321415901700177">Este sitio contiene programas dañinos</translation>
+<translation id="1839551713262164453">Se produjeron errores en la validación de los valores de la política</translation>
 <translation id="1840414022444569775">Este número de tarjeta ya está en uso</translation>
 <translation id="1842969606798536927">Pagar</translation>
 <translation id="1871208020102129563">El proxy está configurado para usar servidores proxy fijos, no una URL de script .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Preguntar</translation>
 <translation id="2359629602545592467">Varias</translation>
 <translation id="2359808026110333948">Continuar</translation>
+<translation id="2360873523816792727">Para usar tus tarjetas en todos los dispositivos, activa la sincronización.</translation>
 <translation id="2365563543831475020">El informe de fallos que se capturó a las <ph name="CRASH_TIME" /> no se cargó</translation>
 <translation id="2367567093518048410">Nivel</translation>
 <translation id="2378238891085281592">Estás en modo privado</translation>
@@ -352,11 +355,13 @@
           <ph name="LIST_ITEM" />Cookies y datos de sitios
           <ph name="LIST_ITEM" />Información que ingreses en formularios
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Ver tarjetas</translation>
 <translation id="3369192424181595722">Error de reloj</translation>
 <translation id="337363190475750230">Desaprovisionado</translation>
 <translation id="3377188786107721145">Error al analizar la política</translation>
 <translation id="3380365263193509176">Error desconocido</translation>
 <translation id="3380864720620200369">ID de cliente:</translation>
+<translation id="3387261909427947069">Formas de pago</translation>
 <translation id="3391030046425686457">Dirección de entrega</translation>
 <translation id="3395827396354264108">Método de retiro</translation>
 <translation id="3399952811970034796">Dirección de entrega</translation>
@@ -453,6 +458,7 @@
 <translation id="4110652170750985508">Revisar el pago</translation>
 <translation id="4116663294526079822">Permitir siempre en este sitio</translation>
 <translation id="4117700440116928470">No se admite el alcance de la política.</translation>
+<translation id="4119109454650683048">Comprueba la información que se muestra a continuación y, si es necesario, soluciona los errores</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 más}other{# más}}</translation>
 <translation id="4130226655945681476">Comprobar los cables de red, el módem y el router</translation>
 <translation id="413544239732274901">Más información</translation>
@@ -558,6 +564,7 @@
 <translation id="4854362297993841467">Este método de entrega no está disponible. Prueba otro método.</translation>
 <translation id="4858792381671956233">Les preguntaste a tus padres si puedes visitar este sitio</translation>
 <translation id="4876305945144899064">Sin nombre de usuario</translation>
+<translation id="4879491255372875719">Automático (predeterminado)</translation>
 <translation id="4880827082731008257">Buscar historial</translation>
 <translation id="4881695831933465202">Abrir</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -623,6 +630,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Mostrar todas las contraseñas guardadas</translation>
 <translation id="5287240709317226393">Mostrar cookies</translation>
+<translation id="5288108484102287882">La validación de los valores de la política generó advertencias</translation>
 <translation id="5299298092464848405">Error al analizar la política</translation>
 <translation id="5308380583665731573">Conectar</translation>
 <translation id="5308689395849655368">Notificación de fallas desactivada.</translation>
@@ -635,6 +643,7 @@
 <translation id="536296301121032821">Error al almacenar la configuración de la política</translation>
 <translation id="5371425731340848620">Actualizar tarjeta</translation>
 <translation id="5377026284221673050">"El reloj está atrasado", "El reloj está adelantado" o "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Para usar tus tarjetas en todos los dispositivos, accede a tu cuenta y activa la sincronización.</translation>
 <translation id="5386426401304769735">La cadena del certificado de este sitio web contiene un certificado que se firmó con SHA-1.</translation>
 <translation id="5387961145478138773">Obtén acceso rápido a tus apps de Google favoritas</translation>
 <translation id="540969355065856584">Este servidor no pudo demostrar que se trata de <ph name="DOMAIN" />; el certificado de seguridad no es válido en este momento. Esto puede deberse a una configuración incorrecta o a un ataque que intercepta tu conexión.</translation>
@@ -710,6 +719,7 @@
 <translation id="5893752035575986141">Se aceptan tarjetas de crédito.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizado)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 en uso}other{# en uso}}</translation>
+<translation id="5922853866070715753">Ya casi</translation>
 <translation id="5939518447894949180">Restablecer</translation>
 <translation id="5967592137238574583">Editar la información de contacto</translation>
 <translation id="5967867314010545767">Eliminar del historial</translation>
@@ -730,6 +740,7 @@
 <translation id="6051221802930200923">No puedes visitar <ph name="SITE" /> ahora porque el sitio web usa la fijación de certificados. Los ataques y errores de red suelen ser temporales, por lo que es posible que esta página funcione más tarde.</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
 <translation id="6071091556643036997">El tipo de política no es válido.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Esta tarjeta se guardará en tu cuenta de Google para que puedas confirmar compras en diferentes dispositivos de manera más rápida.}other{Estas tarjetas se guardarán en tu cuenta de Google para que puedas confirmar compras en diferentes dispositivos de manera más rápida.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Ninguna}=1{1 contraseña (sincronizada)}other{# contraseñas (sincronizadas)}}</translation>
@@ -832,6 +843,7 @@
 <translation id="6965978654500191972">Dispositivo</translation>
 <translation id="6970216967273061347">Distrito</translation>
 <translation id="6973656660372572881">Se especifican servidores proxy fijos y URL de secuencias de comandos .pac.</translation>
+<translation id="6979440798594660689">Silenciar (predeterminado)</translation>
 <translation id="6984479912851154518">Saldrás del modo privado para pagar mediante una aplicación externa. ¿Deseas continuar?</translation>
 <translation id="6989763994942163495">Mostrar configuración avanzada...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -852,6 +864,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> y <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> más}other{<ph name="PAYMENT_METHOD_PREVIEW" /> y <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> más}}</translation>
 <translation id="717330890047184534">ID de GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> y <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> más}other{<ph name="SHIPPING_OPTION_PREVIEW" /> y <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> más}}</translation>
+<translation id="7179323680825933600">Guardar y completar formas de pago</translation>
 <translation id="7180611975245234373">Actualizar</translation>
 <translation id="7182878459783632708">No hay políticas establecidas.</translation>
 <translation id="7186367841673660872">Esta página se tradujo de<ph name="ORIGINAL_LANGUAGE" />a<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -863,6 +876,9 @@
 <translation id="7220786058474068424">Procesando</translation>
 <translation id="724691107663265825">Este sitio web contiene software malicioso</translation>
 <translation id="724975217298816891">Ingresa la fecha de vencimiento y el CVC de la tarjeta <ph name="CREDIT_CARD" /> para actualizar sus datos. Después de confirmarla, los datos de tu tarjeta se compartirán con este sitio.</translation>
+<translation id="7251437084390964440">La configuración de red no cumple con el estándar ONC. Es posible que no se importen algunas partes de la configuración.
+Detalles adicionales:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">No se puede establecer una conexión privada a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> porque la fecha y la hora del equipo (<ph name="DATE_AND_TIME" />) son incorrectas.</translation>
 <translation id="7260504762447901703">Revocar acceso</translation>
 <translation id="7271803869921933038">Tarjetas de prepago aceptadas</translation>
@@ -1040,6 +1056,9 @@
 <translation id="8398259832188219207">El informe de fallos se cargó el <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Bloqueos (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Debes ingresar la misma frase de contraseña dos veces.</translation>
+<translation id="8416694386774425977">La configuración de red no es válida y no se pudo importar.
+Detalles adicionales:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Configuración</translation>
 <translation id="8433057134996913067">Si realizas esta acción, saldrás de la mayoría de los sitios web.</translation>
@@ -1072,13 +1091,16 @@
 <translation id="8725066075913043281">Intentar nuevamente</translation>
 <translation id="8728672262656704056">Estás en modo incógnito</translation>
 <translation id="8730621377337864115">Listo</translation>
+<translation id="8733831205558190772">Todas tus tarjetas en un solo lugar</translation>
 <translation id="8738058698779197622">Para establecer una conexión segura, el reloj debe estar configurado correctamente. Esto se debe a que los certificados que usan los sitios web para su identificación solo son válidos por períodos de tiempo específicos. Debido a que la configuración del reloj del dispositivo es incorrecta, Chromium no puede verificar estos certificados.</translation>
 <translation id="8740359287975076522">No se encontró <ph name="HOST_NAME" />’s &lt;abbr id="dnsDefinition"&gt;DNS address&lt;/abbr&gt;. Se está diagnosticando el problema.</translation>
 <translation id="874846938927089722">Tarjetas de crédito y prepago aceptadas</translation>
 <translation id="8759274551635299824">La tarjeta está vencida</translation>
 <translation id="8761567432415473239">La navegación segura de Google <ph name="BEGIN_LINK" />encontró programas peligrosos<ph name="END_LINK" /> recientemente en <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Dispositivo USB</translation>
+<translation id="8768895707659403558">Para usar tus tarjetas en todos los dispositivos, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Rehacer Eliminar</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Se agregó esta tarjeta a tu cuenta de Google. Ahora puedes usarla en cualquier dispositivo en el que accedas a tu cuenta.}other{Se agregaron estas tarjetas a tu cuenta de Google. Ahora puedes usarlas en cualquier dispositivo en el que accedas a tu cuenta.}}</translation>
 <translation id="8792621596287649091">Es posible que hayas perdido el acceso a tu cuenta de <ph name="ORG_NAME" /> o sufrido un robo de identidad. Chromium te recomienda que cambies la contraseña ahora.</translation>
 <translation id="8800988563907321413">Las sugerencias de la sección Cercanas aparecen aquí</translation>
 <translation id="8820817407110198400">Favoritos</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index 91af3da..3b5f309 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;No se puede establecer una conexión privada con <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> porque la fecha y la hora de tu dispositivo (<ph name="DATE_AND_TIME" />) no son correctas.&lt;/p&gt;
 
       &lt;p&gt;Ajusta la fecha y la hora en la sección &lt;strong&gt;General&lt;/strong&gt; de la aplicación &lt;strong&gt;Configuración&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Se ha producido un error al mostrar esta página web.</translation>
 <translation id="1592005682883173041">Acceso a datos locales</translation>
 <translation id="1594030484168838125">Seleccionar</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Parámetros de solicitud o solicitud no válidos</translation>
 <translation id="1826516787628120939">Comprobando</translation>
 <translation id="1834321415901700177">Este sitio web contiene programas dañinos</translation>
+<translation id="1839551713262164453">No se ha podido hacer la validación de los valores de la política porque se han producido errores</translation>
 <translation id="1840414022444569775">Esta tarjeta de crédito ya está en uso</translation>
 <translation id="1842969606798536927">Pagar</translation>
 <translation id="1871208020102129563">Se ha configurado el proxy de forma que use servidores proxy fijos, en lugar de una URL de secuencia de comandos .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Preguntar</translation>
 <translation id="2359629602545592467">Varias</translation>
 <translation id="2359808026110333948">Continuar</translation>
+<translation id="2360873523816792727">Para utilizar las tarjetas en todos tus dispositivos, activa la sincronización.</translation>
 <translation id="2365563543831475020">No se ha subido el informe sobre fallos registrado el <ph name="CRASH_TIME" /></translation>
 <translation id="2367567093518048410">Nivel</translation>
 <translation id="2378238891085281592">Has entrado en modo privado.</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Las cookies y los datos de sitios web
           <ph name="LIST_ITEM" />La información introducida en formularios
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Ver tarjetas</translation>
 <translation id="3369192424181595722">Error del reloj</translation>
 <translation id="337363190475750230">Desaprovisionado</translation>
 <translation id="3377188786107721145">Error al analizar la política</translation>
 <translation id="3380365263193509176">Error desconocido</translation>
 <translation id="3380864720620200369">ID de cliente:</translation>
+<translation id="3387261909427947069">Métodos de pago</translation>
 <translation id="3391030046425686457">Dirección de entrega</translation>
 <translation id="3395827396354264108">Método de recogida</translation>
 <translation id="3399952811970034796">Dirección de entrega</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Revisa tu pago</translation>
 <translation id="4116663294526079822">Permitir siempre en este sitio</translation>
 <translation id="4117700440116928470">No se admite el alcance de la política.</translation>
+<translation id="4119109454650683048">Comprueba la información que aparece más abajo y corrige los errores si es necesario</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{Uno más}other{# más}}</translation>
 <translation id="4130226655945681476">Comprobar los cables de red, el módem y el router</translation>
 <translation id="413544239732274901">Más información</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Este método de entrega no está disponible. Selecciona otro.</translation>
 <translation id="4858792381671956233">Has solicitado permiso a tus padres para poder acceder a este sitio web</translation>
 <translation id="4876305945144899064">Ningún nombre de usuario</translation>
+<translation id="4879491255372875719">Automático (predeterminado)</translation>
 <translation id="4880827082731008257">Buscar en el historial</translation>
 <translation id="4881695831933465202">Abrir</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" /> y <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Mostrar todas las contraseñas guardadas</translation>
 <translation id="5287240709317226393">Mostrar cookies</translation>
+<translation id="5288108484102287882">La validación de los valores de las políticas ha generado advertencias</translation>
 <translation id="5299298092464848405">Error al analizar la política</translation>
 <translation id="5308380583665731573">Conectar</translation>
 <translation id="5308689395849655368">Notificación de fallos inhabilitada</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Error al almacenar la configuración de la política</translation>
 <translation id="5371425731340848620">Actualizar tarjeta</translation>
 <translation id="5377026284221673050">"Tu reloj está atrasado" o "Tu reloj está adelantado" o "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Para utilizar las tarjetas en todos tus dispositivos, inicia sesión y activa la sincronización.</translation>
 <translation id="5386426401304769735">La cadena de certificados de este sitio web contiene un certificado firmado con SHA-1.</translation>
 <translation id="5387961145478138773">Accede rápidamente a tus aplicaciones de Google favoritas</translation>
 <translation id="540969355065856584">Este servidor no ha podido probar que su dominio es <ph name="DOMAIN" />, ya que su certificado de seguridad no es válido en este momento. Esto puede deberse a una configuración incorrecta o a que un atacante haya interceptado la conexión.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Se aceptan tarjetas de crédito.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizado)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 en uso}other{# en uso}}</translation>
+<translation id="5922853866070715753">Casi hemos acabado</translation>
 <translation id="5939518447894949180">Restablecer</translation>
 <translation id="5967592137238574583">Edita la información de contacto</translation>
 <translation id="5967867314010545767">Eliminar del historial</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">No puedes acceder a <ph name="SITE" /> en este momento porque el sitio web utiliza la fijación de certificados. Los ataques y los errores de red suelen ser temporales, por lo que es probable que esta página funcione más tarde.</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
 <translation id="6071091556643036997">El tipo de política no es válido.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Esta tarjeta se guardará en tu cuenta de Google para tramitar compras de forma más rápida en todos los dispositivos.}other{Estas tarjetas se guardarán en tu cuenta de Google para tramitar compras de forma más rápida en todos los dispositivos.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Ninguna}=1{1 contraseña (sincronizada)}other{# contraseñas (sincronizadas)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Dispositivo</translation>
 <translation id="6970216967273061347">Distrito</translation>
 <translation id="6973656660372572881">Se especifican tanto servidores proxy fijos como una URL de secuencia de comandos .pac.</translation>
+<translation id="6979440798594660689">Silenciar (predeterminado)</translation>
 <translation id="6984479912851154518">Saldrás del modo privado para hacer un pago en una aplicación externa. ¿Quieres continuar?</translation>
 <translation id="6989763994942163495">Mostrar configuración avanzada...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> y <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> más}other{<ph name="PAYMENT_METHOD_PREVIEW" /> y <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> más}}</translation>
 <translation id="717330890047184534">ID de GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> y <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> más}other{<ph name="SHIPPING_OPTION_PREVIEW" /> y <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> más}}</translation>
+<translation id="7179323680825933600">Guardar y autocompletar métodos de pago</translation>
 <translation id="7180611975245234373">Actualizar</translation>
 <translation id="7182878459783632708">No hay políticas establecidas.</translation>
 <translation id="7186367841673660872">Esta página se ha traducido del<ph name="ORIGINAL_LANGUAGE" />al<ph name="LANGUAGE_LANGUAGE" />.</translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Procesando pago</translation>
 <translation id="724691107663265825">El sitio web al que vas a acceder contiene software malicioso</translation>
 <translation id="724975217298816891">Introduce la fecha de caducidad y el código CVC de la tarjeta <ph name="CREDIT_CARD" /> para actualizar sus detalles. Cuando la confirmes, su información se compartirá con este sitio web.</translation>
+<translation id="7251437084390964440">La configuración de red no cumple el estándar ONC. Es posible que no se importen algunas partes de la configuración.
+Más información:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">No se puede establecer una conexión privada con <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> porque la fecha y la hora de tu ordenador (<ph name="DATE_AND_TIME" />) no son correctas.</translation>
 <translation id="7260504762447901703">Revoca el acceso</translation>
 <translation id="7271803869921933038">Tarjetas prepago aceptadas</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Informe sobre fallos subido el <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Fallos (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Debes introducir la misma frase de contraseña dos veces.</translation>
+<translation id="8416694386774425977">La configuración de red no es válida y no se ha podido importar.
+Más información:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Configuración</translation>
 <translation id="8433057134996913067">Con esta opción, tu sesión se cerrará en la mayoría de sitios web.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Volver a intentarlo</translation>
 <translation id="8728672262656704056">Has iniciado una sesión de incógnito</translation>
 <translation id="8730621377337864115">Listo</translation>
+<translation id="8733831205558190772">Todas tus tarjetas en un único lugar</translation>
 <translation id="8738058698779197622">Para establecer una conexión segura, tu reloj debe estar correctamente configurado. Esto se debe a que los certificados utilizados por los sitios web para identificarse son solo válidos durante períodos específicos de tiempo. Dado que la hora de tu dispositivo no es correcta, Chromium no puede verificar estos certificados.</translation>
 <translation id="8740359287975076522">No se ha podido encontrar la &lt;abbr id="dnsDefinition"&gt;dirección DNS&lt;/abbr&gt; de la página <ph name="HOST_NAME" />. Se está diagnosticando el problema.</translation>
 <translation id="874846938927089722">Tarjetas prepago y de crédito aceptadas</translation>
 <translation id="8759274551635299824">La tarjeta ha caducado</translation>
 <translation id="8761567432415473239">La función de Navegación Segura de Google <ph name="BEGIN_LINK" />encontró programas dañinos<ph name="END_LINK" /> recientemente en el sitio <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Dispositivo USB</translation>
+<translation id="8768895707659403558">Para utilizar las tarjetas en todos tus dispositivos, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Rehacer eliminación</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Se ha añadido esta tarjeta a tu cuenta de Google. Ahora puedes utilizarla desde cualquier dispositivo en el que inicies sesión.}other{Se han añadido estas tarjetas a tu cuenta de Google. Ahora puedes utilizarlas desde cualquier dispositivo en el que inicies sesión.}}</translation>
 <translation id="8792621596287649091">Podrías perder el acceso a tu cuenta de <ph name="ORG_NAME" /> o tener problemas de suplantación de identidad. Chromium te recomienda que cambies tu contraseña ahora.</translation>
 <translation id="8800988563907321413">Las sugerencias de la sección Cercanas aparecen aquí</translation>
 <translation id="8820817407110198400">Marcadores</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index c97d5d4..6c6e2af 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Domeeniga <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ei saa privaatset ühendust luua, kuna seadme kuupäev ja kellaaeg (<ph name="DATE_AND_TIME" />DATE_AND_TIME) on valed.&lt;/p&gt;
 
           &lt;p&gt;Kohandage kuupäeva ja kellaaega rakenduse &lt;strong&gt;Seaded&lt;/strong&gt; jaotises &lt;strong&gt;Üldine&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Veebilehe kuvamisel läks midagi valesti.</translation>
 <translation id="1592005682883173041">Juurdepääs kohalikele andmetele</translation>
 <translation id="1594030484168838125">Vali</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Taotlus või selle parameetrid on kehtetud</translation>
 <translation id="1826516787628120939">Kontrollimine</translation>
 <translation id="1834321415901700177">See sait sisaldab kahjulikke programme</translation>
+<translation id="1839551713262164453">Reegli väärtuste valideerimine nurjus ja selle käigus ilmnesid vead</translation>
 <translation id="1840414022444569775">See kaardinumber on juba kasutusel</translation>
 <translation id="1842969606798536927">Maksmine</translation>
 <translation id="1871208020102129563">Puhverserver on seatud kasutama fikseeritud puhverservereid, mitte pac-skripti URL-i.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Küsi</translation>
 <translation id="2359629602545592467">Mitu</translation>
 <translation id="2359808026110333948">Jätka</translation>
+<translation id="2360873523816792727">Kõigis seadmetes kaartide kasutamiseks lülitage sünkroonimine sisse.</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" /> talletatud krahhiaruannet ei laaditud üles</translation>
 <translation id="2367567093518048410">Tase</translation>
 <translation id="2378238891085281592">Olete privaatses režiimis</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />küpsisefailid ja saidi andmed;
           <ph name="LIST_ITEM" />vormidesse sisestatud teave.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Kuva kaardid</translation>
 <translation id="3369192424181595722">Kella viga</translation>
 <translation id="337363190475750230">Eraldatud</translation>
 <translation id="3377188786107721145">Viga reegli sõelumisel</translation>
 <translation id="3380365263193509176">Tundmatu viga</translation>
 <translation id="3380864720620200369">Kliendi ID:</translation>
+<translation id="3387261909427947069">Makseviisid</translation>
 <translation id="3391030046425686457">Kohaletoimetamise aadress</translation>
 <translation id="3395827396354264108">Kättesaamisviis</translation>
 <translation id="3399952811970034796">Kohaletoimetamisaadress</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Vaadake makse üle</translation>
 <translation id="4116663294526079822">Luba sellel saidil alati</translation>
 <translation id="4117700440116928470">Reegli ulatust ei toetata.</translation>
+<translation id="4119109454650683048">Vaadake allolevat teavet ja vajaduse korral parandage vead</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{veel 1}other{veel #}}</translation>
 <translation id="4130226655945681476">Kontrollige võrgukaableid, modemit ja ruuterit</translation>
 <translation id="413544239732274901">Lisateave</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">See kohaletoimetamisviis pole saadaval. Proovige mõnda teist kohaletoimetamisviisi.</translation>
 <translation id="4858792381671956233">Küsisite oma vanematelt, kas võite seda lehte külastada</translation>
 <translation id="4876305945144899064">Kasutajanimi puudub</translation>
+<translation id="4879491255372875719">Automaatne (vaikimisi)</translation>
 <translation id="4880827082731008257">Otsi ajaloost</translation>
 <translation id="4881695831933465202">Ava</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Kuva kõik salvestatud paroolid</translation>
 <translation id="5287240709317226393">Kuva küpsised</translation>
+<translation id="5288108484102287882">Reegli väärtuste valideerimisel ilmnesid hoiatused</translation>
 <translation id="5299298092464848405">Reegli sõelumisel ilmnes viga</translation>
 <translation id="5308380583665731573">Ühendamine</translation>
 <translation id="5308689395849655368">Krahhide aruandlus on keelatud.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Reegli seadete talletamine ebaõnnestus</translation>
 <translation id="5371425731340848620">Värskendage kaarti</translation>
 <translation id="5377026284221673050">„Teie kell on ajast maas” või „Teie kell on ajast ees” või „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;”</translation>
+<translation id="5384855140246857529">Kõigis seadmetes kaartide kasutamiseks logige sisse ja lülitage sünkroonimine sisse.</translation>
 <translation id="5386426401304769735">Selle saidi sertifikaadiahel sisaldab sertifikaati, mis on allkirjastatud SHA-1-ga.</translation>
 <translation id="5387961145478138773">Hankige kiirem juurdepääs oma Google'i lemmikrakendustele</translation>
 <translation id="540969355065856584">Server ei suutnud tõestada, et see on domeen <ph name="DOMAIN" />; selle turvasertifikaat pole praegu kehtiv. Selle põhjuseks võib olla vale seadistus või ründaja, kes on sekkunud teie ühendusse.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Kaupmees aktsepteerib krediitkaarte.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (sünkroonitud)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 on kasutusel}other{# on kasutusel}}</translation>
+<translation id="5922853866070715753">Peaaegu valmis</translation>
 <translation id="5939518447894949180">Lähtesta</translation>
 <translation id="5967592137238574583">Kontaktteabe muutmine</translation>
 <translation id="5967867314010545767">Eemalda ajaloost</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Te ei saa saiti <ph name="SITE" /> praegu külastada, sest veebisait kasutab sertifikaadi kinnitamist. Võrguvead ja -rünnakud on tavaliselt ajutised, nii et leht tõenäoliselt hiljem töötab.</translation>
 <translation id="6059925163896151826">USB-seadmed</translation>
 <translation id="6071091556643036997">Reegli tüüp on sobimatu.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{See kaart salvestatakse teie Google'i kontole, et saaksite kõigis seadmetes kiiremini ostude eest tasuda.}other{Need kaardid salvestatakse teie Google'i kontole, et saaksite kõigis seadmetes kiiremini ostude eest tasuda.}}</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="610911394827799129">Aadressil <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> võib teie Google'i kontol olla muus vormis sirvimisajalugu</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Ühtegi}=1{1 parool (sünkroonitud)}other{# parooli (sünkroonitud)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Seade</translation>
 <translation id="6970216967273061347">Ringkond</translation>
 <translation id="6973656660372572881">Määratud on nii fikseeritud puhverserverid kui ka pac-skriptiga URL.</translation>
+<translation id="6979440798594660689">Vaigista (vaikeseade)</translation>
 <translation id="6984479912851154518">Väljute privaatsest režiimist, et välise rakenduse kaudu maksta. Kas soovite jätkata?</translation>
 <translation id="6989763994942163495">Kuva täpsemad seaded ...</translation>
 <translation id="7012363358306927923">Hiina UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> ja veel <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> ja veel <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Gaia ID:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> ja veel <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> ja veel <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Salvesta ja sisesta makseviisid</translation>
 <translation id="7180611975245234373">Värskenda</translation>
 <translation id="7182878459783632708">Reegleid pole määratud</translation>
 <translation id="7186367841673660872">See leht on tõlgitud keelest<ph name="ORIGINAL_LANGUAGE" />keelde<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Töötlemine</translation>
 <translation id="724691107663265825">Avatav veebisait sisaldab pahavara</translation>
 <translation id="724975217298816891">Kaardi üksikasjade värskendamiseks sisestage krediitkaardi <ph name="CREDIT_CARD" /> aegumiskuupäev ja CVC. Kui selle kinnitate, jagatakse teie kaardi üksikasju selle saidiga.</translation>
+<translation id="7251437084390964440">Võrgu seadistus ei vasta ONC standardile. On võimalik, et seadistuse mõnd osa ei saa importida.
+Lisateave:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Privaatset ühendust ei saa domeeniga <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> luua, kuna arvuti kuupäev ja kellaaeg (<ph name="DATE_AND_TIME" />) on valed.</translation>
 <translation id="7260504762447901703">Juurdepääsu tühistamine</translation>
 <translation id="7271803869921933038">Aktsepteeritavad ettemakstud kaardid</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Krahhiaruanne laaditi üles ajal <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Krahhid (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Peate sisestama sama parooli kaks korda.</translation>
+<translation id="8416694386774425977">Võrgu seadistus on sobimatu ja seda ei saa importida.
+Lisateave:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Seaded</translation>
 <translation id="8433057134996913067">See logib teid välja enamikult veebisaitidelt.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Proovi uuesti</translation>
 <translation id="8728672262656704056">Olete inkognito režiimis</translation>
 <translation id="8730621377337864115">Valmis</translation>
+<translation id="8733831205558190772">Kõik teie kaardid ühes kohas</translation>
 <translation id="8738058698779197622">Turvalise ühenduse loomiseks peab kell olema õigesti seadistatud. See on nii, kuna sertifikaadid, mida veebisaidid kasutavad enda tuvastamiseks, kehtivad ainult teatud perioodi jooksul. Kuna teie seadme kell on vale, ei saa Chromium neid sertifikaate kinnitada.</translation>
 <translation id="8740359287975076522">Hosti <ph name="HOST_NAME" /> &lt;abbr id="dnsDefinition"&gt;DNS-aadressi&lt;/abbr&gt; ei leitud. Probleemi diagnoositakse.</translation>
 <translation id="874846938927089722">Aktsepteeritavad ettemakstud ja krediitkaardid</translation>
 <translation id="8759274551635299824">See kaart on aegunud</translation>
 <translation id="8761567432415473239">Google'i ohutu sirvimine <ph name="BEGIN_LINK" />tuvastas hiljuti kahjulikud programmid<ph name="END_LINK" /> saidil <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">USB-seade</translation>
+<translation id="8768895707659403558">Kõigis seadmetes kaartide kasutamiseks <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Kustuta uuesti</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{See kaart lisati teie Google'i kontole. Nüüd saate seda kasutada kõigis seadmetes, kus olete sisse logitud.}other{Need kaardid lisati teie Google'i kontole. Nüüd saate neid kasutada kõigis seadmetes, kus olete sisse logitud.}}</translation>
 <translation id="8792621596287649091">Võite kaotada juurdepääsu oma teenuse <ph name="ORG_NAME" /> kontole või teie identiteet võidakse varastada. Chromium soovitab teil kohe oma parooli muuta.</translation>
 <translation id="8800988563907321413">Teie lähedalasuvad soovitused kuvatakse siin</translation>
 <translation id="8820817407110198400">Järjehoidjad</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 7915a63..95edc069 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">‏&lt;p&gt;اتصال خصوصی به <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> برقرار نشد، زیرا تاریخ و زمان دستگاه شما (<ph name="DATE_AND_TIME" />) نادرست است.&lt;/p&gt;
 
           &lt;p&gt;لطفاً تاریخ و زمان را در بخش &lt;strong&gt;عمومی&lt;/strong&gt; برنامه &lt;strong&gt;تنظیمات&lt;/strong&gt; تنظیم کنید.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">هنگام نمایش این صفحه وب مشکلی پیش آمد.</translation>
 <translation id="1592005682883173041">دسترسی داده محلی</translation>
 <translation id="1594030484168838125">انتخاب</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">پارامترهای درخواست یا درخواست نامعتبر</translation>
 <translation id="1826516787628120939">در حال بررسی</translation>
 <translation id="1834321415901700177">این سایت محتوی برنامه‌های مضر است</translation>
+<translation id="1839551713262164453">اعتبارسنجی مقادیر خط‌مشی با خطا متوقف شد</translation>
 <translation id="1840414022444569775">این شماره کارت قبلاً استفاده شده است</translation>
 <translation id="1842969606798536927">پرداخت</translation>
 <translation id="1871208020102129563">‏تنظیم پروکسی به گونه‌ای است که از سرورهای ثابت پروکسی استفاده کند و از آدرس اسکریپت pac. استفاده نکند.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">سؤال شود</translation>
 <translation id="2359629602545592467">چند ارز</translation>
 <translation id="2359808026110333948">ادامه</translation>
+<translation id="2360873523816792727">برای اینکه از کارت‌هایتان در همه دستگاه‌ها استفاده کنید، همگام‌سازی را روشن کنید.</translation>
 <translation id="2365563543831475020">گزارش خرابی ثبت‌شده در <ph name="CRASH_TIME" /> بارگذاری نشد</translation>
 <translation id="2367567093518048410">سطح</translation>
 <translation id="2378238891085281592">به حالت ناشناس رفته‌اید</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />کوکی‌ها و داده‌های سایت
           <ph name="LIST_ITEM" />اطلاعات واردشده در فرم‌ها
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">مشاهده کارت‌ها</translation>
 <translation id="3369192424181595722">خطای ساعت</translation>
 <translation id="337363190475750230">لغو مجوز شد</translation>
 <translation id="3377188786107721145">خطای تجزیه خط‌مشی</translation>
 <translation id="3380365263193509176">خطای ناشناس</translation>
 <translation id="3380864720620200369">شناسه سرویس‌گیرنده:</translation>
+<translation id="3387261909427947069">روش‌های پرداخت</translation>
 <translation id="3391030046425686457">نشانی ارسال</translation>
 <translation id="3395827396354264108">روش تحویل گرفتن</translation>
 <translation id="3399952811970034796">نشانی ارسال</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">مرور پرداخت</translation>
 <translation id="4116663294526079822">همیشه مجاز در این سایت</translation>
 <translation id="4117700440116928470">محدوده خط‌مشی پشتیبانی نمی‌شود.</translation>
+<translation id="4119109454650683048">لطفاً اطلاعات زیر را بررسی کنید و درصورت لزوم خطاها را برطرف کنید</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{۱ مورد دیگر}one{# مورد دیگر}other{# مورد دیگر}}</translation>
 <translation id="4130226655945681476">بررسی کابل‌های شبکه، مودم یا رهیاب</translation>
 <translation id="413544239732274901">بیشتر بدانید</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">این روش تحویل در دسترس نیست. روش دیگری را امتحان کنید.</translation>
 <translation id="4858792381671956233">از والدینتان پرسیدید آیا اجازه بازدید از این سایت را دارید</translation>
 <translation id="4876305945144899064">بدون نام کاربری</translation>
+<translation id="4879491255372875719">خودکار (پیش‌فرض)</translation>
 <translation id="4880827082731008257">سابقه جستجو</translation>
 <translation id="4881695831933465202">باز کردن</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />،‏ <ph name="TYPE_2" />،‏ <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">نمایش همه گذرواژه‌های ذخیره‌شده</translation>
 <translation id="5287240709317226393">نمایش کوکی‌ها</translation>
+<translation id="5288108484102287882">اعتبارسنجی مقادیر خط‌مشی با چند هشدار به پایان رسید</translation>
 <translation id="5299298092464848405">خطا در تجزیه خط‌‌مشی</translation>
 <translation id="5308380583665731573">اتصال</translation>
 <translation id="5308689395849655368">گزارش خرابی غیر فعال است.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">تنظیمات خط‌‌مشی ذخیره نشد</translation>
 <translation id="5371425731340848620">به‌روزرسانی کارت</translation>
 <translation id="5377026284221673050">‏«ساعتتان عقب است» یا «ساعتتان جلو است» یا «&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;»</translation>
+<translation id="5384855140246857529">برای اینکه از کارت‌هایتان در همه دستگاه‌ها استفاده کنید، به سیستم وارد شوید و همگام‌سازی را روشن کنید.</translation>
 <translation id="5386426401304769735">‏زنجیره گواهی این سایت حاوی یک گواهی با امضای SHA-1 است.</translation>
 <translation id="5387961145478138773">‏دسترسی سریع به برنامه‌های Google دلخواه</translation>
 <translation id="540969355065856584">این سرور نتوانست ثابت کند که <ph name="DOMAIN" /> است؛ در حال حاضر، گواهی امنیتی آن معتبر نیست. ممکن است این مشکل به دلیل پیکربندی نادرست یا قطع اتصال شما توسط حمله‌کننده ایجاد شده باشد.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">کارت‌های اعتباری پذیرفته می‌شوند.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (همگام‌سازی‌شده)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{۱ کوکی درحال استفاده}one{# کوکی درحال استفاده}other{# کوکی درحال استفاده}}</translation>
+<translation id="5922853866070715753">تقريباً تمام است</translation>
 <translation id="5939518447894949180">بازنشانی</translation>
 <translation id="5967592137238574583">ویرایش اطلاعات تماس</translation>
 <translation id="5967867314010545767">حذف از سابقه</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">درحال‌حاضر نمی‌توانید از <ph name="SITE" /> دیدن کنید، زیرا وب‌سایت از پین کردن گواهینامه استفاده می‌کند. خطاهای شبکه و حمله‌ها موقتی هستند، بنابراین احتمالاً این صفحه بعداً کار خواهد کرد.</translation>
 <translation id="6059925163896151826">‏دستگاه‌های USB</translation>
 <translation id="6071091556643036997">نوع خط‌مشی نامعتبر است.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{‏برای پرداخت سریع‌تر در همه دستگاه‌ها، این کارت در حساب Google شما ذخیره می‌شود.}one{‏برای پرداخت سریع‌تر در همه دستگاه‌ها، این کارت‌ها در حساب Google شما ذخیره می‌شود.}other{‏برای پرداخت سریع‌تر در همه دستگاه‌ها، این کارت‌ها در حساب Google شما ذخیره می‌شود.}}</translation>
 <translation id="6080696365213338172">شما با استفاده از گواهی ارائه شده توسط سرپرست سیستم به محتوا دسترسی پیدا کرده‌اید. داده‌هایی که به <ph name="DOMAIN" /> ارائه می‌کنید ممکن است توسط سرپرست سیستم رهگیری شوند.</translation>
 <translation id="610911394827799129">‏ممکن است حساب Google شما اشکال دیگری از سابقه مرور در <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> داشته باشد</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{هیچ‌کدام}=1{۱ گذرواژه (همگام‌سازی‌شده)}one{# گذرواژه (همگام‌سازی‌شده)}other{# گذرواژه (همگام‌سازی‌شده)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">دستگاه</translation>
 <translation id="6970216967273061347">حوزه</translation>
 <translation id="6973656660372572881">‏هم سرورهای پروکسی ثابت و هم آدرس اسکریپت pac. مشخص شده‌اند.</translation>
+<translation id="6979440798594660689">بی‌صدا (پیش‌فرض)</translation>
 <translation id="6984479912851154518">درحال خروج از حالت ناشناس، برای پرداخت ازطریق برنامه‌ای خارجی. ادامه می‌دهید؟</translation>
 <translation id="6989763994942163495">نمایش تنظیمات پیشرفته ...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> و <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> روش دیگر}one{<ph name="PAYMENT_METHOD_PREVIEW" /> و <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> روش دیگر}other{<ph name="PAYMENT_METHOD_PREVIEW" /> و <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> روش دیگر}}</translation>
 <translation id="717330890047184534">‏شناسه Gaia:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> و <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> گزینه دیگر}one{<ph name="SHIPPING_OPTION_PREVIEW" /> و <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> گزینه دیگر}other{<ph name="SHIPPING_OPTION_PREVIEW" /> و <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> گزینه دیگر}}</translation>
+<translation id="7179323680825933600">ذخیره و تکمیل روش‌های پرداخت</translation>
 <translation id="7180611975245234373">بازخوانی</translation>
 <translation id="7182878459783632708">هیچ خط‌مشی‌ای تنظیم نشده است</translation>
 <translation id="7186367841673660872">این صفحه از <ph name="ORIGINAL_LANGUAGE" /> به <ph name="LANGUAGE_LANGUAGE" /> ترجمه شده است</translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">درحال پردازش</translation>
 <translation id="724691107663265825">این وب‌سایت بدافزار دارد</translation>
 <translation id="724975217298816891">‏برای به‌روزرسانی جزئیات کارتتان، تاریخ انقضا و CVC کارت <ph name="CREDIT_CARD" /> را وارد کنید. بعد از تأیید شدن، جزئیات کارتتان با این سایت به اشتراک گذاشته می‌شود.</translation>
+<translation id="7251437084390964440">‏پیکربندی شبکه با استاندارد ONC مطابقت ندارد. ممکن است بعضی از قسمت‌های پیکربندی وارد نشود.
+توضیحات بیشتر:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">اتصال خصوصی به <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> برقرار نمی‌شود زیرا تاریخ و زمان رایانه شما (<ph name="DATE_AND_TIME" />) نادرست است.</translation>
 <translation id="7260504762447901703">لغو دسترسی</translation>
 <translation id="7271803869921933038">کارت‌های پیش‌پرداخت قابل‌قبول</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">گزارش خرابی در <ph name="UPLOAD_TIME" /> بارگذاری شد</translation>
 <translation id="8412145213513410671">خرابی ها (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">شما باید همان عبارت عبور را دوبار وارد کنید.</translation>
+<translation id="8416694386774425977">پیکربندی شبکه نامعتبر است و نمی‌توان آن را وارد کرد.
+توضیحات بیشتر:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">تنظیمات</translation>
 <translation id="8433057134996913067">با این کار از سیستم بیشتر وب‌سایت‌ها خارج می‌شوید.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">سعی مجدد</translation>
 <translation id="8728672262656704056">اکنون در حالت ناشناس هستید</translation>
 <translation id="8730621377337864115">تمام</translation>
+<translation id="8733831205558190772">همه کارت‌هایتان در یک مکان</translation>
 <translation id="8738058698779197622">‏به منظور برقراری یک اتصال امن، لازم است که ساعت شما به درستی تنظیم شود. زیرا گواهینامه‌هایی که وب‌سایت‌ها برای شناسایی خودشان استفاده می‌کنند تنها برای دوره‌های زمانی خاصی معتبر هستند. از آنجایی که ساعت دستگاه نادرست است، Chromium نمی‌تواند این گواهینامه‌ها را تأیید کند.</translation>
 <translation id="8740359287975076522">‏<ph name="HOST_NAME" />’s &lt;abbr id="dnsDefinition"&gt;آدرس DNS&lt;/abbr&gt; پیدا نشد. درحال بررسی برای تشخیص مشکل.</translation>
 <translation id="874846938927089722">کارت‌های اعتباری و پیش‌پرداخت قابل‌قبول</translation>
 <translation id="8759274551635299824">کارت منقضی شده است</translation>
 <translation id="8761567432415473239">‏مرور ایمن Google اخیراً <ph name="BEGIN_LINK" />برنامه‌های خطرناک<ph name="END_LINK" /> را در <ph name="SITE" /> پیدا کرده است.</translation>
 <translation id="8763927697961133303">‏دستگاه USB</translation>
+<translation id="8768895707659403558">برای اینکه از کارت‌هایتان در همه دستگاه‌هایتان استفاده کنید، <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;انجام مجدد حذف</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{‏این کارت به حساب Google شما اضافه شد. اکنون در همه دستگاه‌های واردشده به سیستم می‌توانید از آن استفاده کنید.}one{‏این کارت‌ها به حساب Google شما اضافه شد. اکنون در همه دستگاه‌های واردشده به سیستم می‌توانید از آن‌ها استفاده کنید.}other{‏این کارت‌ها به حساب Google شما اضافه شد. اکنون در همه دستگاه‌های واردشده به سیستم می‌توانید از آن‌ها استفاده کنید.}}</translation>
 <translation id="8792621596287649091">‏ممکن است دسترسی به حساب <ph name="ORG_NAME" /> را از دست بدهید یا به سرقت هویت دچار شوید. Chromium توصیه می‌کند هم‌اکنون گذرواژه‌تان را تغییر دهید.</translation>
 <translation id="8800988563907321413">پیشنهادات اطراف شما در اینجا نشان داده می‌شوند</translation>
 <translation id="8820817407110198400">نشانک‌ها</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index 53028580..2c7ac982 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Verkkotunnukseen <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ei voi muodostaa salattua yhteyttä, koska laitteesi aika ja päivämäärä (<ph name="DATE_AND_TIME" />) ovat virheelliset.&lt;/p&gt;
 
           &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="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Jokin meni vikaan tätä verkkosivua näytettäessä.</translation>
 <translation id="1592005682883173041">Tietojen paikallinen käyttö</translation>
 <translation id="1594030484168838125">Valitse</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Pyyntö on virheellinen tai pyynnön parametrit ovat virheelliset</translation>
 <translation id="1826516787628120939">Tarkistetaan</translation>
 <translation id="1834321415901700177">Tämä sivusto sisältää haitallisia ohjelmia</translation>
+<translation id="1839551713262164453">Käytäntöarvojen vahvistus epäonnistui sisältäen virheitä</translation>
 <translation id="1840414022444569775">Tämä korttinumero on jo käytössä.</translation>
 <translation id="1842969606798536927">Maksa</translation>
 <translation id="1871208020102129563">Välityspalvelin on asetettu käyttämään kiinteitä välityspalvelimia, ei .pac-URL-osoitetta.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Kysy</translation>
 <translation id="2359629602545592467">Useita</translation>
 <translation id="2359808026110333948">Jatka</translation>
+<translation id="2360873523816792727">Jos haluat käyttää kortteja kaikilla laitteillasi, ota synkronointi käyttöön.</translation>
 <translation id="2365563543831475020">Kaatumisraportti tallennettu <ph name="CRASH_TIME" />, ei vielä lähetetty</translation>
 <translation id="2367567093518048410">Taso</translation>
 <translation id="2378238891085281592">Olet siirtynyt yksityiseen tilaan</translation>
@@ -352,11 +355,13 @@
           <ph name="LIST_ITEM" />evästeitä ja sivuston tietoja
           <ph name="LIST_ITEM" />lomakkeisiin syötettyjä tietoja.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Näytä kortit</translation>
 <translation id="3369192424181595722">Väärä kellonaika</translation>
 <translation id="337363190475750230">Poistettu käytöstä</translation>
 <translation id="3377188786107721145">Virhe jäsennettäessä käytäntöä</translation>
 <translation id="3380365263193509176">Tuntematon virhe</translation>
 <translation id="3380864720620200369">Asiakastunnus:</translation>
+<translation id="3387261909427947069">Maksutavat</translation>
 <translation id="3391030046425686457">Toimitusosoite</translation>
 <translation id="3395827396354264108">Noutotapa</translation>
 <translation id="3399952811970034796">Toimitusosoite</translation>
@@ -453,6 +458,7 @@
 <translation id="4110652170750985508">Tarkasta maksu</translation>
 <translation id="4116663294526079822">Salli aina tässä sivustossa</translation>
 <translation id="4117700440116928470">Käytännön laajuutta ei tueta.</translation>
+<translation id="4119109454650683048">Tarkista tiedot alta ja korjaa mahdolliset virheet</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 muu}other{# muuta}}</translation>
 <translation id="4130226655945681476">Tarkista verkkojohdot, modeemi ja reititin.</translation>
 <translation id="413544239732274901">Lisätietoja</translation>
@@ -558,6 +564,7 @@
 <translation id="4854362297993841467">Tämä toimitustapa ei ole käytettävissä. Kokeile toista tapaa.</translation>
 <translation id="4858792381671956233">Pyysit vanhemmiltasi lupaa käydä tällä sivustolla.</translation>
 <translation id="4876305945144899064">Ei käyttäjänimeä</translation>
+<translation id="4879491255372875719">Automaattinen (oletus)</translation>
 <translation id="4880827082731008257">Haku historiasta</translation>
 <translation id="4881695831933465202">Avaa</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -623,6 +630,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Näytä kaikki tallennetut salasanat</translation>
 <translation id="5287240709317226393">Näytä evästeet</translation>
+<translation id="5288108484102287882">Käytäntöarvojen vahvistus aiheutti varoituksia</translation>
 <translation id="5299298092464848405">Virhe jäsennettäessä käytäntöä</translation>
 <translation id="5308380583665731573">Muodosta yhteys</translation>
 <translation id="5308689395849655368">Kaatumisraportit on poistettu käytöstä.</translation>
@@ -635,6 +643,7 @@
 <translation id="536296301121032821">Käytännön asetuksien tallentaminen epäonnistui</translation>
 <translation id="5371425731340848620">Päivitä kortti</translation>
 <translation id="5377026284221673050">"Kellosi jätättää", "Kellosi edistää" tai "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Jos haluat käyttää kortteja kaikilla laitteillasi, kirjaudu sisään ja ota synkronointi käyttöön.</translation>
 <translation id="5386426401304769735">Tämän sivuston varmenneketju sisältää varmenteen, joka on allekirjoitettu SHA-1:llä.</translation>
 <translation id="5387961145478138773">Pääset käyttämään Googlen sovelluksia nopeasti</translation>
 <translation id="540969355065856584">Palvelin ei voinut todistaa olevansa <ph name="DOMAIN" />, sillä sen suojausvarmenne ei tällä hetkellä ole kelvollinen. Tämä voi johtua määritysvirheestä tai verkkoyhteytesi siepanneesta hyökkääjästä.</translation>
@@ -710,6 +719,7 @@
 <translation id="5893752035575986141">Luottokortit hyväksytään.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (synkronoitu)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 käytössä}other{# käytössä}}</translation>
+<translation id="5922853866070715753">Lähes valmis</translation>
 <translation id="5939518447894949180">Tyhjennä</translation>
 <translation id="5967592137238574583">Muokkaa yhteystietoja</translation>
 <translation id="5967867314010545767">Poista historiasta</translation>
@@ -730,6 +740,7 @@
 <translation id="6051221802930200923"><ph name="SITE" /> ei juuri nyt ole käytettävissä, koska se käyttää varmenteiden kiinnittämistä. Verkkovirheet ja hyökkäykset ovat yleensä väliaikaisia, joten sivu luultavasti toimii myöhemmin.</translation>
 <translation id="6059925163896151826">USB-laitteet</translation>
 <translation id="6071091556643036997">Käytäntötyyppi on virheellinen.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Tämä kortti tallennetaan Google-tilillesi nopeampaa maksamista varten kaikilla laitteilla.}other{Nämä kortit tallennetaan Google-tilillesi nopeampaa maksamista varten kaikilla laitteilla.}}</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="610911394827799129">Google-tililläsi voi olla muita selaushistoriatietoja osoitteessa <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Ei mitään}=1{1 salasana (synkronoitu)}other{# salasanaa (synkronoitu)}}</translation>
@@ -832,6 +843,7 @@
 <translation id="6965978654500191972">Laite</translation>
 <translation id="6970216967273061347">Alue</translation>
 <translation id="6973656660372572881">Sekä kiinteät välityspalvelimet että .pac-URL-osoite on määritetty.</translation>
+<translation id="6979440798594660689">Mykistä (oletus)</translation>
 <translation id="6984479912851154518">Yksityinen tila suljetaan, jotta voit tehdä maksun ulkoisella sovelluksella. Haluatko jatkaa?</translation>
 <translation id="6989763994942163495">Näytä lisäasetukset...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -852,6 +864,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> ja <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> toinen}other{<ph name="PAYMENT_METHOD_PREVIEW" /> ja <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> muuta}}</translation>
 <translation id="717330890047184534">Gaia-tunnus:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> ja <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> toinen}other{<ph name="SHIPPING_OPTION_PREVIEW" /> ja <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> muuta}}</translation>
+<translation id="7179323680825933600">Tallenna ja täytä maksutavat</translation>
 <translation id="7180611975245234373">Päivitä</translation>
 <translation id="7182878459783632708">Käytäntöjä ei ole asetettu</translation>
 <translation id="7186367841673660872">Tämä sivu on käännetty kielestä<ph name="ORIGINAL_LANGUAGE" />kielelle<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -863,6 +876,9 @@
 <translation id="7220786058474068424">Käsitellään.</translation>
 <translation id="724691107663265825">Seuraava verkkosivusto sisältää haittaohjelmia</translation>
 <translation id="724975217298816891">Päivitä kortin <ph name="CREDIT_CARD" /> tiedot antamalla sen CVC ja vanhenemispäivämäärä. Vahvistamisen jälkeen korttisi tiedot jaetaan sivuston kanssa.</translation>
+<translation id="7251437084390964440">Verkkoasetukset eivät noudata ONC-standardia. Kaikkia asetuksia ei välttämättä tuoda.
+Lisätietoja:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Verkkotunnukseen <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ei voi muodostaa salattua yhteyttä, koska tietokoneesi aika ja päivämäärä (<ph name="DATE_AND_TIME" />) ovat virheelliset.</translation>
 <translation id="7260504762447901703">Peruuta käyttöoikeus</translation>
 <translation id="7271803869921933038">Hyväksytyt prepaid-kortit</translation>
@@ -1040,6 +1056,9 @@
 <translation id="8398259832188219207">Kaatumisraportti lähetetty <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Kaatumiset (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Kirjoita sama tunnuslause kahdesti.</translation>
+<translation id="8416694386774425977">Verkkoasetukset ovat virheelliset eikä niitä voi tuoda.
+Lisätietoja:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Asetukset</translation>
 <translation id="8433057134996913067">Sinut kirjataan ulos useimmilta verkkosivustoilta.</translation>
@@ -1072,13 +1091,16 @@
 <translation id="8725066075913043281">Yritä uudelleen</translation>
 <translation id="8728672262656704056">Olet muuttunut näkymättömäksi</translation>
 <translation id="8730621377337864115">Valmis</translation>
+<translation id="8733831205558190772">Kaikki korttisi yhdessä paikassa</translation>
 <translation id="8738058698779197622">Kellosi täytyy asettaa oikeaan aikaan, jotta salattu yhteys voidaan muodostaa. Tämä johtuu siitä, että verkkosivustojen tunnistamisessa käytettävät varmenteet ovat voimassa vain tiettyinä ajanjaksoina. Chromium ei voi vahvistaa varmenteita, koska laitteesi kello on väärässä ajassa.</translation>
 <translation id="8740359287975076522">Sivuston <ph name="HOST_NAME" /> &lt;abbr id="dnsDefinition"&gt;DNS-osoitetta&lt;/abbr&gt; ei löydy. Ongelmaa diagnosoidaan.</translation>
 <translation id="874846938927089722">Hyväksytyt luotto- ja prepaid-kortit</translation>
 <translation id="8759274551635299824">Tämä kortti on vanhentunut.</translation>
 <translation id="8761567432415473239">Google-selaussuoja <ph name="BEGIN_LINK" />löysi hiljattain haitallisia ohjelmia<ph name="END_LINK" /> sivustolta <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">USB-laite</translation>
+<translation id="8768895707659403558">Jos haluat käyttää kortteja kaikilla laitteillasi, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Toista poisto</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Tämä kortti on lisätty Google-tilillesi. Nyt voit käyttää sitä miltä tahansa sisäänkirjautuneelta laitteelta.}other{Nämä kortit on lisätty Google-tilillesi. Nyt voit käyttää niitä miltä tahansa sisäänkirjautuneelta laitteelta.}}</translation>
 <translation id="8792621596287649091">Saatat menettää <ph name="ORG_NAME" />-tilisi käyttöoikeuden tai joutua identiteettivarkauden uhriksi. Chromium suosittelee salasanan vaihtamista välittömästi.</translation>
 <translation id="8800988563907321413">Nearby-ehdotuksesi näkyvät tässä.</translation>
 <translation id="8820817407110198400">Kirjanmerkit</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 7349aef..cf78e57 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Hindi makapagtatag ng pribadong koneksyon sa <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> dahil mali ang petsa at oras ng iyong device (<ph name="DATE_AND_TIME" />).&lt;/p&gt;
 
       &lt;p&gt;Mangyaring isaayos ang petsa at oras mula sa seksyong &lt;strong&gt;Pangkalahatan&lt;/strong&gt; ng app na &lt;strong&gt;Mga Setting&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Nagkaroon ng problema habang ipinapakita ang webpage na ito.</translation>
 <translation id="1592005682883173041">Access sa Lokal na Data</translation>
 <translation id="1594030484168838125">Pumili</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Di-wastong kahilingan o mga parameter ng kahilingan</translation>
 <translation id="1826516787628120939">Sinusuri</translation>
 <translation id="1834321415901700177">Naglalaman ng mga mapanirang program ang site na ito</translation>
+<translation id="1839551713262164453">Hindi na-validate ang mga value ng patakaran at may mga error</translation>
 <translation id="1840414022444569775">Nagamit na ang numero ng card na ito</translation>
 <translation id="1842969606798536927">Magbayad</translation>
 <translation id="1871208020102129563">Nakatakda ang proxy upang gumamit ng mga hindi nababagong proxy server, hindi ng isang .pac script URL.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Magtanong</translation>
 <translation id="2359629602545592467">Marami</translation>
 <translation id="2359808026110333948">Magpatuloy</translation>
+<translation id="2360873523816792727">Para magamit ang iyong mga card sa lahat ng device, i-on ang pag-sync.</translation>
 <translation id="2365563543831475020">Hindi na-upload ang nakuhang ulat ng pag-crash noong <ph name="CRASH_TIME" /></translation>
 <translation id="2367567093518048410">Antas</translation>
 <translation id="2378238891085281592">Nakapribado ka</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Cookies at data ng site
           <ph name="LIST_ITEM" />Impormasyong nilagay sa mga form
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Tingnan ang mga card</translation>
 <translation id="3369192424181595722">Error sa orasan</translation>
 <translation id="337363190475750230">Naalis sa pagkakaprobisyon</translation>
 <translation id="3377188786107721145">Error sa pag-parse ng patakaran</translation>
 <translation id="3380365263193509176">Hindi kilalang error</translation>
 <translation id="3380864720620200369">Client ID:</translation>
+<translation id="3387261909427947069">Mga Paraan ng Pagbabayad</translation>
 <translation id="3391030046425686457">Address kung saan maghahatid</translation>
 <translation id="3395827396354264108">Pamamaraan sa pag-pick up</translation>
 <translation id="3399952811970034796">Delivery Address</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Suriin ang iyong pagbabayad</translation>
 <translation id="4116663294526079822">Palaging payagan sa site na ito</translation>
 <translation id="4117700440116928470">Hindi sinusuportahan ang saklaw ng patakaran.</translation>
+<translation id="4119109454650683048">Pakitingnan ang impormasyon sa ibaba at ayusin ang anumang error, kung kinakailangan</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>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Hindi available ang pamamaraan ng paghahatid na ito. Sumubok ng ibang pamamaraan.</translation>
 <translation id="4858792381671956233">Tinanong mo sa iyong mga magulang kung maaari mong bisitahin ang site na ito</translation>
 <translation id="4876305945144899064">Walang username</translation>
+<translation id="4879491255372875719">Awtomatiko (default)</translation>
 <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>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Ipakita ang lahat ng naka-save na password</translation>
 <translation id="5287240709317226393">Ipakita ang cookies</translation>
+<translation id="5288108484102287882">Na-validate ang mga value ng patakaran at nagkaroon ng mga babala</translation>
 <translation id="5299298092464848405">Error sa pag-parse ng patakaran</translation>
 <translation id="5308380583665731573">Kumonekta</translation>
 <translation id="5308689395849655368">Hindi pinagana ang pag-uulat ng pag-crash.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Nabigo i-load ang mga setting ng patakaran sa store</translation>
 <translation id="5371425731340848620">I-update ang card</translation>
 <translation id="5377026284221673050">"Nahuhuli ang iyong orasan" o "Nauuna ang iyong orasan" o "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<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="5387961145478138773">Makakuha ng mabilis na access sa iyong mga paboritong Google App</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>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Tinatanggap ang mga credit card.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (naka-sync)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 ang ginagamit}one{# ang ginagamit}other{# ang ginagamit}}</translation>
+<translation id="5922853866070715753">Malapit nang matapos</translation>
 <translation id="5939518447894949180">I-reset</translation>
 <translation id="5967592137238574583">I-edit ang Impormasyon ng Contact</translation>
 <translation id="5967867314010545767">Alisin sa history</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Hindi mo maaaring bisitahin ang <ph name="SITE" /> sa ngayon dahil gumagamit ng pag-pin ng certificate 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="6059925163896151826">Mga USB device</translation>
 <translation id="6071091556643036997">Invalid ang uri ng patakaran.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Mase-save ang card na ito sa iyong Google Account para sa mas mabilis na pag-check out sa lahat ng device.}one{Mase-save ang mga card na ito sa iyong Google Account para sa mas mabilis na pag-check out sa lahat ng device.}other{Mase-save ang mga card na ito sa iyong Google Account para sa mas mabilis na pag-check out sa lahat ng device.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Wala}=1{1 password (naka-sync)}one{# password (naka-sync)}other{# na password (naka-sync)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Device</translation>
 <translation id="6970216967273061347">Distrito</translation>
 <translation id="6973656660372572881">Tinukoy ang parehong mga hindi nababagong proxy server at isang .pac script URL.</translation>
+<translation id="6979440798594660689">I-mute (default)</translation>
 <translation id="6984479912851154518">Aalis sa pribadong mode para magbayad sa pamamagitan ng external na application. Magpatuloy?</translation>
 <translation id="6989763994942163495">Ipakita ang mga advanced na setting...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> at <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> pa}one{<ph name="PAYMENT_METHOD_PREVIEW" /> at <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> pa}other{<ph name="PAYMENT_METHOD_PREVIEW" /> at <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> pa}}</translation>
 <translation id="717330890047184534">Gaia ID:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> at <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> pa}one{<ph name="SHIPPING_OPTION_PREVIEW" /> at <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> pa}other{<ph name="SHIPPING_OPTION_PREVIEW" /> at <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> pa}}</translation>
+<translation id="7179323680825933600">I-save at Punan ang Mga Paraan ng Pagbabayad</translation>
 <translation id="7180611975245234373">I-refresh</translation>
 <translation id="7182878459783632708">Walang nakatakdang mga patakaran</translation>
 <translation id="7186367841673660872">Naisalin ang pahinang ito mula sa<ph name="ORIGINAL_LANGUAGE" />sa<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Pinoproseso</translation>
 <translation id="724691107663265825">Naglalaman ng malware ang site</translation>
 <translation id="724975217298816891">Ilagay ang petsa ng expiration at CVC para sa <ph name="CREDIT_CARD" /> upang i-update ang mga detalye ng iyong card. Kapag nagkumpirma ka na, ibabahagi ang mga detalye ng iyong card sa site na ito.</translation>
+<translation id="7251437084390964440">Hindi sumusunod ang configuration ng network sa pamantayan ng ONC. Hindi maaaring i-import ang mga bahagi ng configuration.
+Mga karagdagang detalye:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Hindi makapagtatag ng pribadong koneksyon sa <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> dahil mali ang petsa at oras ng iyong computer (<ph name="DATE_AND_TIME" />).</translation>
 <translation id="7260504762447901703">Bawiin ang access</translation>
 <translation id="7271803869921933038">Mga Tinatanggap na Prepaid Card</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Na-upload ang ulat ng pag-crash noong <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Mga Pag-crash (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Dapat mong ilagay ang parehong passphrase nang dalawang beses.</translation>
+<translation id="8416694386774425977">Invalid ang configuration ng network at hindi ito ma-import.
+Mga karagdagang detalye:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Mga Setting</translation>
 <translation id="8433057134996913067">Masa-sign out ka sa karamihan ng mga website.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Muling subukan</translation>
 <translation id="8728672262656704056">Naging incognito ka</translation>
 <translation id="8730621377337864115">Tapos na</translation>
+<translation id="8733831205558190772">Lahat ng card mo sa iisang lugar</translation>
 <translation id="8738058698779197622">Upang makapagtatag ng secure na koneksyon, kailangang itakda nang tama ang iyong orasan. Ito ay dahil sa may-bisa lang ang mga certificate na ginagamit ng mga website upang tukuyin ang mga sarili ng mga ito sa loob ng mga partikular na tagal ng panahon. Dahil mali ang orasan ng iyong device, hindi ma-verify ng Chromium ang mga certificate na ito.</translation>
 <translation id="8740359287975076522">Hindi makita ang &lt;abbr id="dnsDefinition"&gt;DNS address&lt;/abbr&gt; ng <ph name="HOST_NAME" />. Dina-diagnose ang problema.</translation>
 <translation id="874846938927089722">Mga Tinatanggap na Credit at Prepaid Card</translation>
 <translation id="8759274551635299824">Nag-expire na ang card na ito</translation>
 <translation id="8761567432415473239">Ang Google Safe Browsing ay may <ph name="BEGIN_LINK" />natagpuang mga nakakasirang program<ph name="END_LINK" /> sa <ph name="SITE" /> kamakailan.</translation>
 <translation id="8763927697961133303">USB device</translation>
+<translation id="8768895707659403558">Para magamit ang iyong mga card sa lahat ng device mo, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Gawing muli ang pagtanggal</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Naidagdag na ang card na ito sa iyong Google Account. Magagamit mo na ito ngayon mula sa anumang naka-sign in na device.}one{Naidagdag na ang mga card na ito sa iyong Google Account. Magagamit mo na ngayon ang mga ito mula sa anumang naka-sign in na device.}other{Naidagdag na ang mga card na ito sa iyong Google Account. Magagamit mo na ngayon ang mga ito mula sa anumang naka-sign in na device.}}</translation>
 <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="8820817407110198400">Mga Bookmark</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index 0c1cf47ff..7a42e12 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Impossible d'établir une connexion privée à <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> : la date et l'heure de votre appareil (<ph name="DATE_AND_TIME" />) sont incorrectes.&lt;/p&gt;
 
       &lt;p&gt;Veuillez ajuster la date et l'heure dans la section &lt;strong&gt;Général&lt;/strong&gt; de l'application &lt;strong&gt;Réglages&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Une erreur s'est produite lors de l'affichage de la page Web.</translation>
 <translation id="1592005682883173041">Accès aux données locales</translation>
 <translation id="1594030484168838125">Sélectionner</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">La demande ou ses paramètres ne sont pas valides.</translation>
 <translation id="1826516787628120939">Vérification en cours…</translation>
 <translation id="1834321415901700177">Ce site contient des programmes dangereux</translation>
+<translation id="1839551713262164453">Échec de la validation des valeurs de règle avec des erreurs</translation>
 <translation id="1840414022444569775">Ce numéro de carte est déjà utilisé</translation>
 <translation id="1842969606798536927">Paiement</translation>
 <translation id="1871208020102129563">Le proxy est configuré pour utiliser des serveurs proxy déterminés, pas une URL de script .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Demander</translation>
 <translation id="2359629602545592467">Plusieurs</translation>
 <translation id="2359808026110333948">Continuer</translation>
+<translation id="2360873523816792727">Activez la synchronisation pour utiliser vos cartes sur tous vos appareils.</translation>
 <translation id="2365563543831475020">Le rapport d'erreur enregistré le <ph name="CRASH_TIME" /> n'a pas été importé.</translation>
 <translation id="2367567093518048410">Niveau</translation>
 <translation id="2378238891085281592">Vous êtes passé en mode privé</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Les cookies et les données de sites
           <ph name="LIST_ITEM" />Les informations saisies dans les formulaires
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Afficher les cartes</translation>
 <translation id="3369192424181595722">Erreur de l'horloge</translation>
 <translation id="337363190475750230">Révoqué</translation>
 <translation id="3377188786107721145">Erreur d'analyse de la règle.</translation>
 <translation id="3380365263193509176">Erreur inconnue.</translation>
 <translation id="3380864720620200369">ID client :</translation>
+<translation id="3387261909427947069">Modes de paiement</translation>
 <translation id="3391030046425686457">Adresse de livraison</translation>
 <translation id="3395827396354264108">Mode d'enlèvement</translation>
 <translation id="3399952811970034796">Adresse de livraison</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Vérifier votre paiement</translation>
 <translation id="4116663294526079822">Toujours autoriser sur ce site</translation>
 <translation id="4117700440116928470">La portée de la règle n'est pas compatible.</translation>
+<translation id="4119109454650683048">Veuillez vérifier les informations ci-dessous et corriger les erreurs éventuelles</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 autre}one{# autre}other{# autres}}</translation>
 <translation id="4130226655945681476">Vérifiez les câbles réseau, le modem et le routeur.</translation>
 <translation id="413544239732274901">En savoir plus</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Mode de livraison non disponible. Choisissez-en un autre.</translation>
 <translation id="4858792381671956233">Une demande d'autorisation a été envoyée à tes parents pour la consultation de ce site</translation>
 <translation id="4876305945144899064">Aucun nom d'utilisateur</translation>
+<translation id="4879491255372875719">Automatique (par défaut)</translation>
 <translation id="4880827082731008257">Rechercher dans l'historique</translation>
 <translation id="4881695831933465202">Ouvrir</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Afficher tous les mots de passe enregistrés</translation>
 <translation id="5287240709317226393">Afficher les cookies</translation>
+<translation id="5288108484102287882">La validation des valeurs de règle a renvoyé des avertissements</translation>
 <translation id="5299298092464848405">Erreur d'analyse de la règle.</translation>
 <translation id="5308380583665731573">Connexion</translation>
 <translation id="5308689395849655368">L'envoi de rapports d'erreur est désactivé.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Échec du stockage des paramètres de la règle.</translation>
 <translation id="5371425731340848620">Mettre à jour la carte</translation>
 <translation id="5377026284221673050">"Votre horloge est en retard.", "Votre horloge est en avance." ou "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Connectez-vous et activez la synchronisation pour utiliser vos cartes sur tous vos appareils.</translation>
 <translation id="5386426401304769735">La chaîne de certificats de ce site contient un certificat signé avec SHA-1.</translation>
 <translation id="5387961145478138773">Accédez rapidement à vos applications Google préférées</translation>
 <translation id="540969355065856584">Impossible de vérifier que ce serveur est bien <ph name="DOMAIN" />, car son certificat de sécurité actuel n'est pas valide. Cela peut être dû à une mauvaise configuration ou bien à l'interception de votre connexion par un pirate informatique.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Les cartes de crédit sont acceptées.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (synchronisés)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 en cours d'utilisation}one{# en cours d'utilisation}other{# en cours d'utilisation}}</translation>
+<translation id="5922853866070715753">Vous avez presque terminé !</translation>
 <translation id="5939518447894949180">Réinitialiser</translation>
 <translation id="5967592137238574583">Modifier les coordonnées</translation>
 <translation id="5967867314010545767">Supprimer de l'historique</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Le site <ph name="SITE" /> est actuellement inaccessible, car il utilise l'épinglage des certificats. Les erreurs réseau et les attaques sont généralement temporaires. Vous devriez donc pouvoir accéder à cette page plus tard.</translation>
 <translation id="6059925163896151826">Appareils USB</translation>
 <translation id="6071091556643036997">Ce type de règle n'est pas valide.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Cette carte sera enregistrée dans votre compte Google, ce qui vous permettra de payer plus rapidement sur tous vos appareils.}one{Cette carte sera enregistrée dans votre compte Google, ce qui vous permettra de payer plus rapidement sur tous vos appareils.}other{Ces cartes seront enregistrées dans votre compte Google, ce qui vous permettra de payer plus rapidement sur tous vos appareils.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Aucun}=1{1 mot de passe (synchronisé)}one{# mot de passe (synchronisé)}other{# mots de passe (synchronisés)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Périphérique</translation>
 <translation id="6970216967273061347">District</translation>
 <translation id="6973656660372572881">Les serveurs proxy déterminés et une URL de script .pac sont spécifiés tous les deux.</translation>
+<translation id="6979440798594660689">Coupé (par défaut)</translation>
 <translation id="6984479912851154518">En payant via une application externe, vous allez quitter le mode privé. Voulez-vous continuer ?</translation>
 <translation id="6989763994942163495">Afficher les paramètres avancés…</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> et <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> autre}one{<ph name="PAYMENT_METHOD_PREVIEW" /> et <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> autre}other{<ph name="PAYMENT_METHOD_PREVIEW" /> et <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> autres}}</translation>
 <translation id="717330890047184534">Identifiant GAIA :</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> et <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> autre}one{<ph name="SHIPPING_OPTION_PREVIEW" /> et <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> autre}other{<ph name="SHIPPING_OPTION_PREVIEW" /> et <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> autres}}</translation>
+<translation id="7179323680825933600">Enregistrer et renseigner les modes de paiement</translation>
 <translation id="7180611975245234373">Actualiser</translation>
 <translation id="7182878459783632708">Aucune règle n'est définie</translation>
 <translation id="7186367841673660872">Cette page en<ph name="ORIGINAL_LANGUAGE" />a été traduite en<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Traitement en cours</translation>
 <translation id="724691107663265825">Le site que vous allez ouvrir contient des logiciels malveillants</translation>
 <translation id="724975217298816891">Saisissez la date d'expiration et le code CVC de la carte <ph name="CREDIT_CARD" /> pour mettre à jour les informations relatives à celle-ci. Une fois la validation effectuée, les informations seront partagées avec ce site.</translation>
+<translation id="7251437084390964440">La configuration du réseau ne respecte pas les normes de l'ONC. Il est possible que des parties de la configuration ne soient pas importées.
+Informations supplémentaires :
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Impossible d'établir une connexion privée à <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> : la date et l'heure de votre ordinateur (<ph name="DATE_AND_TIME" />) sont incorrectes.</translation>
 <translation id="7260504762447901703">Révoquer l'accès</translation>
 <translation id="7271803869921933038">Cartes prépayées acceptées</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Rapport d'erreur importé le <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Erreurs (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Vous devez saisir deux fois la même phrase secrète.</translation>
+<translation id="8416694386774425977">Impossible d'importer la configuration du réseau : elle n'est pas valide.
+Informations supplémentaires :
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Paramètres</translation>
 <translation id="8433057134996913067">Vous serez déconnecté de la plupart des sites.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Réessayer</translation>
 <translation id="8728672262656704056">Vous êtes passé en mode navigation privée</translation>
 <translation id="8730621377337864115">OK</translation>
+<translation id="8733831205558190772">Toutes vos cartes au même endroit</translation>
 <translation id="8738058698779197622">Afin d'établir une connexion sécurisée, votre horloge doit être réglée correctement. Les certificats permettant aux sites Web de s'identifier sont en effet valides pendant une période précise. Si l'horloge de votre appareil est incorrecte, Chromium n'est pas en mesure de vérifier la validité des certificats.</translation>
 <translation id="8740359287975076522">L'&lt;abbr id="dnsDefinition"&gt;adresse DNS&lt;/abbr&gt; de <ph name="HOST_NAME" /> est introuvable. Identification du problème…</translation>
 <translation id="874846938927089722">Cartes de crédit et cartes prépayées acceptées</translation>
 <translation id="8759274551635299824">Carte arrivée à expiration</translation>
 <translation id="8761567432415473239">La fonctionnalité de navigation sécurisée a récemment permis de <ph name="BEGIN_LINK" />détecter des programmes dangereux<ph name="END_LINK" /> sur le site <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Périphérique USB</translation>
+<translation id="8768895707659403558">Pour utiliser vos cartes sur tous vos appareils, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Rétablir la suppression</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Cette carte a été ajoutée à votre compte Google. Vous pouvez maintenant l'utiliser sur tous les appareils sur lesquels vous êtes connecté.}one{Cette carte a été ajoutée à votre compte Google. Vous pouvez maintenant l'utiliser sur tous les appareils sur lesquels vous êtes connecté.}other{Ces cartes ont été ajoutées à votre compte Google. Vous pouvez maintenant les utiliser sur tous les appareils sur lesquels vous êtes connecté.}}</translation>
 <translation id="8792621596287649091">Vous risquez de perdre l'accès à votre compte <ph name="ORG_NAME" /> ou d'être victime d'usurpation d'identité. L'équipe Chromium vous recommande de modifier votre mot de passe maintenant.</translation>
 <translation id="8800988563907321413">Vos suggestions à proximité s'affichent ici</translation>
 <translation id="8820817407110198400">Favoris</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index 849e69f..d4af989 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;<ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> से निजी कनेक्‍शन स्‍थापित नहीं किया जा सकता क्‍योंकि आपके डिवाइस का दिनांक और समय (<ph name="DATE_AND_TIME" />) गलत है.&lt;/p&gt;
 
       &lt;p&gt;कृपया दिनांक और समय को &lt;strong&gt;सेटिंग&lt;/strong&gt; ऐप के &lt;strong&gt;सामान्‍य&lt;/strong&gt; अनुभाग से एडजस्‍ट करें.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">सीवीसी</translation>
 <translation id="1583429793053364125">यह वेबपेज प्रदर्शित करते समय कोई समस्या हुई.</translation>
 <translation id="1592005682883173041">स्थानीय डेटा एक्सेस</translation>
 <translation id="1594030484168838125">चुनें</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">अमान्य अनुरोध या अनुरोध पैरामीटर</translation>
 <translation id="1826516787628120939">जाँच की जा रही है</translation>
 <translation id="1834321415901700177">इस साइट में हानिकारक प्रोग्राम हैं</translation>
+<translation id="1839551713262164453">गड़बड़ियों के चलते नीति मानों की पुष्टि नहीं हो सकी</translation>
 <translation id="1840414022444569775">इस कार्ड नंबर का उपयोग पहले ही किया जा चुका है</translation>
 <translation id="1842969606798536927">भुगतान करें</translation>
 <translation id="1871208020102129563">प्रॉक्‍सी की सेटिंग इस तरह से की गई है कि वह फ़िक्‍स्‍ड प्रॉक्‍सी सर्वर इस्तेमाल करे, न कि .pac स्‍क्रिप्‍ट यूआरअल.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">पूछें</translation>
 <translation id="2359629602545592467">एक से अधिक</translation>
 <translation id="2359808026110333948">जारी रखें</translation>
+<translation id="2360873523816792727">सभी डिवाइस पर अपने कार्ड का इस्तेमाल करने के लिए, 'सिंक करें' चालू करें.</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" /> पर कैप्चर की गई ख़राबी रिपोर्ट अपलोड नहीं की गई</translation>
 <translation id="2367567093518048410">स्तर</translation>
 <translation id="2378238891085281592">आप ’निजी’ मोड में चले गए हैं</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />कुकी और साइट डेटा
           <ph name="LIST_ITEM" />फ़ॉर्म में डाली गई जानकारी
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">कार्ड देखें</translation>
 <translation id="3369192424181595722">घड़ी गड़बड़ी</translation>
 <translation id="337363190475750230">प्रावधान रद्द</translation>
 <translation id="3377188786107721145">नीति पार्स गड़बड़ी</translation>
 <translation id="3380365263193509176">अज्ञात गड़बड़ी</translation>
 <translation id="3380864720620200369">क्लाइंट आईडी:</translation>
+<translation id="3387261909427947069">भुगतान के तरीके</translation>
 <translation id="3391030046425686457">वितरण पता</translation>
 <translation id="3395827396354264108">पिकअप का तरीका</translation>
 <translation id="3399952811970034796">डिलीवरी का पता</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">अपना भुगतान देखें</translation>
 <translation id="4116663294526079822">इस साइट पर हमेशा अनुमति दें</translation>
 <translation id="4117700440116928470">नीति क्षेत्र समर्थित नहीं है.</translation>
+<translation id="4119109454650683048">कृपया नीचे दी गई जानकारी देखें और अगर ज़रूरी हो तो सभी गड़बड़ियों को ठीक करें</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 अन्य}one{# अन्‍य}other{# अन्‍य}}</translation>
 <translation id="4130226655945681476">नेटवर्क केबल, मोडेम और राउटर की जाँच करें</translation>
 <translation id="413544239732274901">अधिक जानें</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">वितरण का यह तरीका उपलब्ध नहीं है. कोई दूसरा तरीका आज़माएं.</translation>
 <translation id="4858792381671956233">आपने अपने अभिभावकों से पूछा है कि इस साइट पर जाना ठीक है या नहीं</translation>
 <translation id="4876305945144899064">कोई उपयोगकर्ता नाम नहीं</translation>
+<translation id="4879491255372875719">अपने आप (डिफ़ॉल्ट)</translation>
 <translation id="4880827082731008257">खोज इतिहास</translation>
 <translation id="4881695831933465202">खोलें</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">सेव किए गए सभी पासवर्ड दिखाएं</translation>
 <translation id="5287240709317226393">कुकी दिखाएं</translation>
+<translation id="5288108484102287882">नीति मानों की पुष्टि से चेतावनियां मिली हैं</translation>
 <translation id="5299298092464848405">नीति पार्स करने में गड़बड़ी</translation>
 <translation id="5308380583665731573">कनेक्ट करें</translation>
 <translation id="5308689395849655368">क्रैश की रिपोर्ट करना अक्षम कर दिया गया है.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">नीति सेटिंग संग्रहित करने में विफल</translation>
 <translation id="5371425731340848620">कार्ड अपडेट करें</translation>
 <translation id="5377026284221673050">"आपकी घड़ी पीछे चल रही है" या "आपकी घड़ी आगे चल रही है" या "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">सभी डिवाइस पर अपने कार्ड का इस्तेमाल करने के लिए, साइन इन करें और 'सिंक करें' चालू करें.</translation>
 <translation id="5386426401304769735">इस साइट की प्रमाणपत्र श्रृंखला में, SHA-1 का उपयोग करके हस्ताक्षर किया गया प्रमाणपत्र शामिल है.</translation>
 <translation id="5387961145478138773">अपने पसंदीदा 'Google ऐप्लिकेशन' झटपट एक्सेस करें</translation>
 <translation id="540969355065856584">यह सर्वर यह प्रमाणित नहीं कर सका कि यह <ph name="DOMAIN" /> है; इसका सुरक्षा प्रमाण पत्र इस समय मान्य नहीं है. ऐसा गलत कॉन्फ़िगरेशन या किसी आक्रमणकर्ता द्वारा आपके कनेक्शन में अवरोध डालने के कारण हो सकता है.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">क्रेडिट कार्ड स्वीकार किए जाते हैं.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (सिंक किया गया)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 उपयोग में है}one{# उपयोग में हैं}other{# उपयोग में हैं}}</translation>
+<translation id="5922853866070715753">करीब-करीब हो गया है</translation>
 <translation id="5939518447894949180">रीसेट करें</translation>
 <translation id="5967592137238574583">संपर्क जानकारी में बदलाव करें</translation>
 <translation id="5967867314010545767">इतिहास से निकालें</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">आप इस समय <ph name="SITE" /> पर नहीं जा सकते क्योंकि वेबसाइट, प्रमाणपत्र पिनिंग का उपयोग करती है. नेटवर्क की गड़बड़ियां और हमले आमतौर पर कुछ समय के लिए होते हैं इसलिए यह पेज शायद बाद में ठीक से काम करेगा.</translation>
 <translation id="6059925163896151826">USB डिवाइस</translation>
 <translation id="6071091556643036997">नीति का प्रकार गलत है.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{सभी डिवाइस पर तेज़ी से चेकआउट करने के लिए यह कार्ड आपके Google खाते में सेव किया जाएगा.}one{सभी डिवाइस पर तेज़ी से चेकआउट करने के लिए ये कार्ड आपके Google खाते में सेव किए जाएंगे.}other{सभी डिवाइस पर तेज़ी से चेकआउट करने के लिए ये कार्ड आपके Google खाते में सेव किए जाएंगे.}}</translation>
 <translation id="6080696365213338172">आपने व्यवस्थापक द्वारा प्रदत्त प्रमाणपत्र के उपयोग से सामग्री एक्सेस की है. आपके द्वारा <ph name="DOMAIN" /> को प्रदान किया गया डेटा आपके व्यवस्थापक द्वारा बीच में रोका जा सकता है.</translation>
 <translation id="610911394827799129">आपके Google खाते में <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> पर दूसरी तरह के ब्राउज़िंग इतिहास हो सकते हैं</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{कुछ नहीं}=1{1 पासवर्ड (सिंक किया हुआ)}one{# पासवर्ड (सिंक किए हुए)}other{# पासवर्ड (सिंक किए हुए)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">डिवाइस</translation>
 <translation id="6970216967273061347">जिला</translation>
 <translation id="6973656660372572881">फ़िक्‍स्‍ड प्रॉक्‍सी सर्वर और .pac स्‍क्रिप्‍ट URL दोनों ही बताए गए हैं.</translation>
+<translation id="6979440798594660689">म्यूट करें (डिफ़ॉल्ट)</translation>
 <translation id="6984479912851154518">किसी बाहरी ऐप्लिकेशन के ज़रिए भुगतान करने के लिए 'निजी' मोड छोड़ रहे हैं. जारी रखना चाहते हैं?</translation>
 <translation id="6989763994942163495">अतिरिक्त सेटिंग दिखाएं...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> और <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> अन्य}one{<ph name="PAYMENT_METHOD_PREVIEW" /> और <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> अन्य}other{<ph name="PAYMENT_METHOD_PREVIEW" /> और <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> अन्य}}</translation>
 <translation id="717330890047184534">Gaia आईडी:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> और <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> अन्य}one{<ph name="SHIPPING_OPTION_PREVIEW" /> और <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> अन्य}other{<ph name="SHIPPING_OPTION_PREVIEW" /> और <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> अन्य}}</translation>
+<translation id="7179323680825933600">भुगतान के तरीके सेव करें और भरें</translation>
 <translation id="7180611975245234373">रीफ्रेश करें</translation>
 <translation id="7182878459783632708">कोई नीति सेट नहीं की गई है</translation>
 <translation id="7186367841673660872">इस पेज का <ph name="ORIGINAL_LANGUAGE" />से<ph name="LANGUAGE_LANGUAGE" /> में अनुवाद कर दिया गया है</translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">संसाधित हो रहा है</translation>
 <translation id="724691107663265825">साइट में आगे मैलवेयर हैं</translation>
 <translation id="724975217298816891">अपने कार्ड विवरण अपडेट करने के लिए <ph name="CREDIT_CARD" /> का समय समाप्ति दिनांक और CVC डालें. आपकी तरफ से पुष्टि हो जाने पर, आपके कार्ड के विवरण इस साइट के साथ शेयर किए जाएंगे.</translation>
+<translation id="7251437084390964440">नेटवर्क कॉन्फ़िगरेशन ONC मानक के मुताबिक नहीं है. हो सकता है कि कॉन्फ़िगरेशन के कुछ हिस्से नहीं लाए गए हों.
+और ज़्यादा जानकारी:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> से एक निजी कनेक्‍शन स्‍थापित नहीं किया जा सकता क्‍योंकि आपके कंप्‍यूटर का दिनांक और समय (<ph name="DATE_AND_TIME" />) गलत है.</translation>
 <translation id="7260504762447901703">एक्सेस निरस्त करें</translation>
 <translation id="7271803869921933038">स्वीकार किए जाने वाले प्रीपेड कार्ड</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">ख़राबी रिपोर्ट <ph name="UPLOAD_TIME" /> पर अपलोड की गई</translation>
 <translation id="8412145213513410671">क्रैश (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">आपको वही पासफ़्रेज़ दोबारा दर्ज करना होगा.</translation>
+<translation id="8416694386774425977">नेटवर्क कॉन्फ़िगरेशन गलत है और उसे लाया नहीं जा सका.
+और ज़्यादा जानकारी:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">सेटिंग</translation>
 <translation id="8433057134996913067">इससे आप अधिकांश वेबसाइट से प्रस्थान कर जाएंगे.</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">पुन: प्रयास करें</translation>
 <translation id="8728672262656704056">आप गुप्त मोड में चले गए हैं</translation>
 <translation id="8730621377337864115">पूर्ण</translation>
+<translation id="8733831205558190772">आपके सभी कार्ड एक ही जगह पर</translation>
 <translation id="8738058698779197622">सुरक्षित कनेक्‍शन स्‍थापित करने के लिए, आपकी घड़ी को ठीक से सेट किए जाने की आवश्‍यकता है. ऐसा इसलिए क्‍योंकि वेबसाइटों द्वारा स्‍वयं की पहचान करने के लिए उपयोग किए जाने वाले प्रमाण पत्र केवल विशिष्‍ट समयावधियों के लिए ही मान्‍य होते हैं. चूंकि आपके डिवाइस की घड़ी गलत है, इसलिए क्रोमियम इन प्रमाणपत्रों को सत्‍यापित नहीं कर सकता.</translation>
 <translation id="8740359287975076522"><ph name="HOST_NAME" /> का &lt;abbr id="dnsDefinition"&gt;DNS पता&lt;/abbr&gt; प्राप्त नहीं किया जा सका. समस्या का निदान किया जा रहा है.</translation>
 <translation id="874846938927089722">स्वीकार किए जाने वाले क्रेडिट और प्रीपेड कार्ड</translation>
 <translation id="8759274551635299824">इस कार्ड की अवधि खत्म हो चुकी है</translation>
 <translation id="8761567432415473239">Google सुरक्षित ब्राउज़िंग को <ph name="SITE" /> पर हाल ही में <ph name="BEGIN_LINK" />हानिकारक प्रोग्राम मिले हैं<ph name="END_LINK" />.</translation>
 <translation id="8763927697961133303">USB डिवाइस</translation>
+<translation id="8768895707659403558">अपने सभी डिवाइस पर अपने कार्ड का इस्तेमाल करने के लिए, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;हटाना फिर से करें</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{यह कार्ड आपके Google खाते में जोड़ दिया गया है. अब आप किसी भी साइन-इन किए हुए डिवाइस से इसका इस्तेमाल कर सकते हैं.}one{ये कार्ड आपके Google खाते में जोड़ दिए गए हैं. अब आप किसी भी साइन-इन किए हुए डिवाइस से इनका इस्तेमाल कर सकते हैं.}other{ये कार्ड आपके Google खाते में जोड़ दिए गए हैं. अब आप किसी भी साइन-इन किए हुए डिवाइस से इनका इस्तेमाल कर सकते हैं.}}</translation>
 <translation id="8792621596287649091">आप अपने <ph name="ORG_NAME" /> खाते का एक्सेस खो सकते हैं या आपकी पहचान चोरी हो सकती है. क्रोमियम आपको इसी समय अपना पासवर्ड बदलने का सुझाव देता है.</translation>
 <translation id="8800988563907321413">आपके आस-पास के सुझाव यहां दिखाई देंगे</translation>
 <translation id="8820817407110198400">बुकमार्क</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index 4f1c6c8f..b33f74c 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Sigurna veza s domenom <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ne može se uspostaviti jer datum i vrijeme na uređaju (<ph name="DATE_AND_TIME" />) nisu točni.&lt;/p&gt;
 
       &lt;p&gt;Prilagodite datum i vrijeme putem odjeljka &lt;strong&gt;Općenito&lt;/strong&gt; u aplikaciji &lt;strong&gt;Postavke&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Nešto nije u redu s prikazivanjem ove web-stranice.</translation>
 <translation id="1592005682883173041">Pristup lokalnim podacima</translation>
 <translation id="1594030484168838125">Odaberi</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Nevažeći zahtjev ili parametri zahtjeva</translation>
 <translation id="1826516787628120939">Provjera</translation>
 <translation id="1834321415901700177">Ova web-lokacija sadrži štetne programe</translation>
+<translation id="1839551713262164453">Potvrđivanje vrijednosti pravila nije uspjelo zbog pogrešaka</translation>
 <translation id="1840414022444569775">Taj se broj kartice već upotrebljava</translation>
 <translation id="1842969606798536927">Plaćanje</translation>
 <translation id="1871208020102129563">Proxy poslužitelj postavljen je na upotrebu fiksnih proxy poslužitelja, a ne URL .pac skripte.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Upitaj</translation>
 <translation id="2359629602545592467">Veći broj</translation>
 <translation id="2359808026110333948">Nastavi</translation>
+<translation id="2360873523816792727">Da biste upotrebljavali kartice na svim uređajima, uključite sinkronizaciju.</translation>
 <translation id="2365563543831475020">Izvješće o rušenju programa generirano <ph name="CRASH_TIME" /> još nije preneseno</translation>
 <translation id="2367567093518048410">Razina</translation>
 <translation id="2378238891085281592">Sada ste u privatnom načinu</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />kolačiće i podatke o web-lokacijama
           <ph name="LIST_ITEM" />informacije koje unesete u obrasce.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Pogledaj kartice</translation>
 <translation id="3369192424181595722">Pogreška sata</translation>
 <translation id="337363190475750230">Dodjela je uklonjena</translation>
 <translation id="3377188786107721145">Pogreška pri analizi pravila</translation>
 <translation id="3380365263193509176">Nepoznata pogreška</translation>
 <translation id="3380864720620200369">ID klijenta:</translation>
+<translation id="3387261909427947069">Načini plaćanja</translation>
 <translation id="3391030046425686457">Adresa za dostavu</translation>
 <translation id="3395827396354264108">Način preuzimanja</translation>
 <translation id="3399952811970034796">Adresa za dostavu</translation>
@@ -451,6 +456,7 @@
 <translation id="4110652170750985508">Pregledajte uplatu</translation>
 <translation id="4116663294526079822">Uvijek dopusti na ovoj web-lokaciji</translation>
 <translation id="4117700440116928470">Opseg pravila nije podržan.</translation>
+<translation id="4119109454650683048">Provjerite informacije u nastavku i ispravite pogreške ako je to potrebno</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 druga stavka}one{# druga stavka}few{# druge stavke}other{# drugih stavki}}</translation>
 <translation id="4130226655945681476">provjerite mrežne kabele, modem i usmjerivač</translation>
 <translation id="413544239732274901">Saznajte više</translation>
@@ -556,6 +562,7 @@
 <translation id="4854362297993841467">Taj način dostave nije dostupan. Pokušajte s nekim drugim načinom.</translation>
 <translation id="4858792381671956233">Pitao si roditelje smiješ li otvoriti tu web-lokaciju</translation>
 <translation id="4876305945144899064">Nema korisničkog imena</translation>
+<translation id="4879491255372875719">Automatski (zadano)</translation>
 <translation id="4880827082731008257">Pretraži povijest</translation>
 <translation id="4881695831933465202">Otvori</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -621,6 +628,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Prikaži sve spremljene zaporke</translation>
 <translation id="5287240709317226393">Pokaži kolačiće</translation>
+<translation id="5288108484102287882">Potvrđivanje vrijednosti pravila rezultirala je upozorenjima</translation>
 <translation id="5299298092464848405">Pogreška u pravilu analize</translation>
 <translation id="5308380583665731573">Povežite se</translation>
 <translation id="5308689395849655368">Onemogućeno je izvješćivanje o padu.</translation>
@@ -633,6 +641,7 @@
 <translation id="536296301121032821">Pohrana postavki pravila nije uspjela</translation>
 <translation id="5371425731340848620">Ažuriranje kartice</translation>
 <translation id="5377026284221673050">"Sat kasni" ili "Sat ide unaprijed" ili "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Da biste svoje kartice upotrebljavali na svim uređajima, prijavite se i uključite sinkronizaciju.</translation>
 <translation id="5386426401304769735">Lanac certifikata za ovu web-lokaciju sadrži certifikat s SHA-1 potpisom.</translation>
 <translation id="5387961145478138773">Brzo pristupajte svojim omiljenim Googleovim aplikacijama</translation>
 <translation id="540969355065856584">Poslužitelj nije uspio dokazati da je <ph name="DOMAIN" />; njegov sigurnosni certifikat trenutačno nije važeći. Uzrok tomu može biti pogrešna konfiguracija ili napadač koji je prekinuo vašu vezu.</translation>
@@ -708,6 +717,7 @@
 <translation id="5893752035575986141">Prihvaćaju se kreditne kartice.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (sinkronizirano)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 u upotrebi}one{# u upotrebi}few{# u upotrebi}other{# u upotrebi}}</translation>
+<translation id="5922853866070715753">Skoro gotovo</translation>
 <translation id="5939518447894949180">Ponovno postavi</translation>
 <translation id="5967592137238574583">Uredite podatke za kontakt</translation>
 <translation id="5967867314010545767">Ukloni iz povijesti</translation>
@@ -728,6 +738,7 @@
 <translation id="6051221802930200923">Trenutačno ne možete otvoriti <ph name="SITE" /> jer web-lokacija upotrebljava prikvačivanje certifikata. Mrežne pogreške i napadi obično su privremeni, tako da će stranica kasnije vjerojatno funkcionirati.</translation>
 <translation id="6059925163896151826">USB uređaji</translation>
 <translation id="6071091556643036997">Vrsta pravila nije važeća.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Ova kartica bit će spremljena na vaš Google račun radi brže provjere među uređajima.}one{Ove kartica bit će spremljene na vaš Google račun radi brže provjere među uređajima.}few{Ove kartica bit će spremljene na vaš Google račun radi brže provjere među uređajima.}other{Ove kartica bit će spremljene na vaš Google račun radi brže provjere među uređajima.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Nijedna}=1{1 zaporka (sinkronizirana)}one{# zaporka (sinkronizirana)}few{# zaporke (sinkronizirane)}other{# zaporki (sinkroniziranih)}}</translation>
@@ -830,6 +841,7 @@
 <translation id="6965978654500191972">Uređaj</translation>
 <translation id="6970216967273061347">Distrikt</translation>
 <translation id="6973656660372572881">Određeni su fiksni proxy poslužitelji i URL .pac skripte.</translation>
+<translation id="6979440798594660689">Bez zvuka (zadano)</translation>
 <translation id="6984479912851154518">Napuštate privatni način rada da biste platili putem vanjske aplikacije. Želite li nastaviti?</translation>
 <translation id="6989763994942163495">Pokaži napredne postavke...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -850,6 +862,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> i još <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" /> i još <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}few{<ph name="PAYMENT_METHOD_PREVIEW" /> i još <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> i još <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">ID za GAIA-u:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> i još <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" /> i još <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" /> i još <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> i još <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Spremi i popuni načine plaćanja</translation>
 <translation id="7180611975245234373">Osvježi</translation>
 <translation id="7182878459783632708">Nije postavljeno nijedno pravilo</translation>
 <translation id="7186367841673660872">Ova je stranica prevedena s jezika<ph name="ORIGINAL_LANGUAGE" />na<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -861,6 +874,9 @@
 <translation id="7220786058474068424">Obrada</translation>
 <translation id="724691107663265825">Web-lokacija pred vama sadrži zlonamjerni softver</translation>
 <translation id="724975217298816891">Unesite datum isteka i CVC za karticu <ph name="CREDIT_CARD" /> da biste ažurirali podatke o kartici. Nakon što ih potvrdite, podaci o kartici dijelit će se s ovom web-lokacijom.</translation>
+<translation id="7251437084390964440">Konfiguracija mreže nije u skladu sa standardom ONC. Dijelovi konfiguracije možda neće biti uvezeni.
+Dodatne pojedinosti:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Sigurnu vezu s domenom <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nije moguće uspostaviti jer datum i vrijeme na računalu (<ph name="DATE_AND_TIME" />) nisu točni.</translation>
 <translation id="7260504762447901703">Opoziv pristupa</translation>
 <translation id="7271803869921933038">Prihvaćene pretplatne kartice</translation>
@@ -1038,6 +1054,9 @@
 <translation id="8398259832188219207">Izvješće o rušenju programa preneseno u <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Padovi (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Morate dvaput unijeti istu zaporku.</translation>
+<translation id="8416694386774425977">Konfiguracija mreže nije važeća i nije se mogla uvesti.
+Dodatne pojedinosti:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Postavke</translation>
 <translation id="8433057134996913067">Time ćete se odjaviti s većine web-lokacija.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Pokušajte ponovo</translation>
 <translation id="8728672262656704056">Radite u anonimnom načinu</translation>
 <translation id="8730621377337864115">Gotovo</translation>
+<translation id="8733831205558190772">Sve kartice na jednom mjestu</translation>
 <translation id="8738058698779197622">Za uspostavu sigurne veze sat mora biti točno postavljen. To je zato što certifikati koje web-lokacije upotrebljavaju za međusobnu identifikaciju vrijede samo određeno vrijeme. Budući da sat na vašem uređaju nije točan, Chromium ne može potvrditi te certifikate.</translation>
 <translation id="8740359287975076522">&lt;abbr id="dnsDefinition"&gt;DNS adresa&lt;/abbr&gt; hosta <ph name="HOST_NAME" /> nije pronađena. U tijeku je dijagnosticiranje problema.</translation>
 <translation id="874846938927089722">Prihvaćene kreditne i pretplatne kartice</translation>
 <translation id="8759274551635299824">Ta je kartica istekla</translation>
 <translation id="8761567432415473239">Googleovo Sigurno pregledavanje nedavno je <ph name="BEGIN_LINK" />pronašlo štetne programe<ph name="END_LINK" /> na web-lokaciji <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">USB uređaj</translation>
+<translation id="8768895707659403558">Da biste sve svoje kartice upotrebljavali na svim svojim uređajima, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Ponovi brisanje</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Ova kartica dodana je na vaš Google račun. Možete je upotrebljavati sa svakog uređaja na koji ste prijavljeni.}one{Ove kartice dodane su na vaš Google račun. Možete ih upotrebljavati sa svakog uređaja na koji ste prijavljeni.}few{Ove kartice dodane su na vaš Google račun. Možete ih upotrebljavati sa svakog uređaja na koji ste prijavljeni.}other{Ove kartice dodane su na vaš Google račun. Možete ih upotrebljavati sa svakog uređaja na koji ste prijavljeni.}}</translation>
 <translation id="8792621596287649091">Mogli biste izgubiti pristup svojem <ph name="ORG_NAME" /> računu ili bi netko mogao ukrasti vaš identitet. Chromium preporučuje da odmah promijenite zaporku.</translation>
 <translation id="8800988563907321413">Ovdje se prikazuju prijedlozi u blizini za vas</translation>
 <translation id="8820817407110198400">Knjižne oznake</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 9b0cd1d..4f9e098 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Nem hozható létre privát kapcsolat a következővel: <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, mert az eszköz dátum- és időbeállítása helytelen (<ph name="DATE_AND_TIME" />).&lt;/p&gt;
 
       &lt;p&gt;Módosítsa a dátumot és az időt a &lt;strong&gt;Beállítások&lt;/strong&gt; alkalmazás &lt;strong&gt;Általános&lt;/strong&gt; részében.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Valami nem sikerült a weboldal megjelenítése során.</translation>
 <translation id="1592005682883173041">Helyi adatok elérése</translation>
 <translation id="1594030484168838125">Kiválaszt</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Érvénytelen kérés vagy kérésparaméter</translation>
 <translation id="1826516787628120939">Ellenőrzés</translation>
 <translation id="1834321415901700177">A webhely ártalmas programokat tartalmaz</translation>
+<translation id="1839551713262164453">A házirendértékek ellenőrzése hibák miatt sikertelen</translation>
 <translation id="1840414022444569775">A kártyaszám már használatban van</translation>
 <translation id="1842969606798536927">Fizetés</translation>
 <translation id="1871208020102129563">A proxy fix proxyszerverek használatára van beállítva, nem pedig .pac típusú szkript URL címének használatára.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Kérés</translation>
 <translation id="2359629602545592467">Több</translation>
 <translation id="2359808026110333948">Folytatás</translation>
+<translation id="2360873523816792727">Ha az összes eszközén szeretné használni kártyáit, kapcsolja be a szinkronizálást.</translation>
 <translation id="2365563543831475020">A(z) <ph name="CRASH_TIME" /> időpontban készült hibajelentés nincs feltöltve</translation>
 <translation id="2367567093518048410">Szint</translation>
 <translation id="2378238891085281592">Ön privát módra váltott.</translation>
@@ -349,11 +352,13 @@
           <ph name="LIST_ITEM" />Cookie-k és webhelyadatok
           <ph name="LIST_ITEM" />Űrlapokon megadott adatok
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Kártyák megtekintése</translation>
 <translation id="3369192424181595722">Órahiba</translation>
 <translation id="337363190475750230">Deaktiválva</translation>
 <translation id="3377188786107721145">Irányelv-előfeldolgozási hiba</translation>
 <translation id="3380365263193509176">Ismeretlen hiba</translation>
 <translation id="3380864720620200369">Ügyfél-azonosító:</translation>
+<translation id="3387261909427947069">Fizetési módok</translation>
 <translation id="3391030046425686457">Szállítási cím</translation>
 <translation id="3395827396354264108">Átvételi mód</translation>
 <translation id="3399952811970034796">Szállítási cím</translation>
@@ -450,6 +455,7 @@
 <translation id="4110652170750985508">Befizetés áttekintése</translation>
 <translation id="4116663294526079822">Mindig engedélyezze ezen az oldalon</translation>
 <translation id="4117700440116928470">Az irányelv hatásköre nem támogatott.</translation>
+<translation id="4119109454650683048">Ellenőrizze az alábbi adatokat, és ha szükséges, javítsa ki a hibákat</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 egyéb}other{# egyéb}}</translation>
 <translation id="4130226655945681476">A hálózati kábelek, a modem és a router ellenőrzése</translation>
 <translation id="413544239732274901">További információ</translation>
@@ -555,6 +561,7 @@
 <translation id="4854362297993841467">Ez a kézbesítési mód nem áll rendelkezésre. Próbálkozzon másik móddal.</translation>
 <translation id="4858792381671956233">Megkérdezted a szüleidet, hogy meg szabad-e látogatnod ezt a webhelyet</translation>
 <translation id="4876305945144899064">Nincs felhasználónév</translation>
+<translation id="4879491255372875719">Automatikus (alapértelmezett)</translation>
 <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>
@@ -620,6 +627,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Az összes mentett jelszó megjelenítése</translation>
 <translation id="5287240709317226393">Cookie-k megjelenítése</translation>
+<translation id="5288108484102287882">A házirendértékek ellenőrzése során figyelmeztetések merültek fel</translation>
 <translation id="5299298092464848405">Irányelv-előfeldolgozási hiba</translation>
 <translation id="5308380583665731573">Csatlakozás</translation>
 <translation id="5308689395849655368">A hibabejelentés ki van kapcsolva.</translation>
@@ -632,6 +640,7 @@
 <translation id="536296301121032821">Az irányelv-beállítások tárolása sikertelen</translation>
 <translation id="5371425731340848620">Kártya frissítése</translation>
 <translation id="5377026284221673050">„Az óra késik”, „Az óra siet” vagy „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;”</translation>
+<translation id="5384855140246857529">Ha az összes eszközén szeretné használni kártyáit, jelentkezzen be, és kapcsolja be a szinkronizálást.</translation>
 <translation id="5386426401304769735">A webhely tanúsítványlánca SHA-1 titkosítással aláírt tanúsítványt tartalmaz.</translation>
 <translation id="5387961145478138773">Gyors hozzáférés kedvenc Google-alkalmazásaihoz</translation>
 <translation id="540969355065856584">A szerver nem tudta bizonyítani, hogy valóban a(z) <ph name="DOMAIN" /> domainbe tartozik; biztonsági tanúsítványa jelenleg nem érvényes. Ennek oka lehet konfigurációs hiba, vagy hogy egy támadó eltérítette az Ön kapcsolatát.</translation>
@@ -707,6 +716,7 @@
 <translation id="5893752035575986141">Elfogadott hitelkártyák.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (szinkronizálva)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 van használatban}other{# van használatban}}</translation>
+<translation id="5922853866070715753">Majdnem kész</translation>
 <translation id="5939518447894949180">Visszaállítás</translation>
 <translation id="5967592137238574583">Kapcsolattartási adatok szerkesztése</translation>
 <translation id="5967867314010545767">Eltávolítás az előzmények közül</translation>
@@ -727,6 +737,7 @@
 <translation id="6051221802930200923">Pillanatnyilag nem tudja felkeresni a(z) <ph name="SITE" /> webhelyet, mivel a webhely tanúsítványrögzítést használ. A hálózati hibák és támadások rendszerint átmenetiek, ezért az említett oldal működése később valószínűleg helyreáll.</translation>
 <translation id="6059925163896151826">USB-eszközök</translation>
 <translation id="6071091556643036997">A házirend típusa érvénytelen.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Ezt a kártyát a rendszer elmenti az Ön Google-fiókjába, hogy gyorsabban fizethessen minden eszközén.}other{Ezeket a kártyákat a rendszer elmenti az Ön Google-fiókjába, hogy gyorsabban fizethessen minden eszközén.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Nincs}=1{1 jelszó (szinkronizálva)}other{# jelszó (szinkronizálva)}}</translation>
@@ -829,6 +840,7 @@
 <translation id="6965978654500191972">Készülék</translation>
 <translation id="6970216967273061347">Kerület</translation>
 <translation id="6973656660372572881">Mindkét fix proxyszerver és egy .Pac típusú szkript URL-címe meg van adva.</translation>
+<translation id="6979440798594660689">Némítás (alapértelmezett)</translation>
 <translation id="6984479912851154518">Elhagyja a privát módot külső alkalmazással történő fizetéshez. Folytatja?</translation>
 <translation id="6989763994942163495">Speciális beállítások megjelenítése...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -849,6 +861,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> és további <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> és további <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Gaia-azonosító:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> és további <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> és további <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Fizetési módok mentése és betöltése</translation>
 <translation id="7180611975245234373">Frissítés</translation>
 <translation id="7182878459783632708">Nincsenek beállított házirendek</translation>
 <translation id="7186367841673660872">Ezt az oldalt<ph name="ORIGINAL_LANGUAGE" />nyelvről fordítottuk<ph name="LANGUAGE_LANGUAGE" />nyelvre.</translation>
@@ -860,6 +873,9 @@
 <translation id="7220786058474068424">Feldolgozás alatt</translation>
 <translation id="724691107663265825">A megnyíló oldal rosszindulatú programot tartalmaz</translation>
 <translation id="724975217298816891">Adja meg a(z) <ph name="CREDIT_CARD" /> kártya lejárati dátumát és CVC-kódját. Az ellenőrzést követően a böngésző megosztja kártyaadatait ezzel a webhellyel.</translation>
+<translation id="7251437084390964440">A hálózati konfiguráció nem felel meg az ONC szabványnak. A konfiguráció egyes részeit nem lehet importálni.
+További részletek:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Nem hozható létre privát kapcsolat a következővel: <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, mert a számítógép dátum- és időbeállítása helytelen (<ph name="DATE_AND_TIME" />).</translation>
 <translation id="7260504762447901703">Hozzáférés visszavonása</translation>
 <translation id="7271803869921933038">Elfogadott feltöltőkártyák</translation>
@@ -1037,6 +1053,9 @@
 <translation id="8398259832188219207">A hibajelentés feltöltésének ideje: <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Rendszerösszeomlások ( <ph name="CRASH_COUNT" /> )</translation>
 <translation id="8412392972487953978">Mindkét alkalommal ugyanazt az összetett jelszót kell megadnia.</translation>
+<translation id="8416694386774425977">A hálózati konfiguráció érvénytelen és nem importálható.
+További részletek:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Beállítások</translation>
 <translation id="8433057134996913067">Ezzel kijelentkezik a legtöbb webhelyről.</translation>
@@ -1069,13 +1088,16 @@
 <translation id="8725066075913043281">Újrapróbálás</translation>
 <translation id="8728672262656704056">Ön inkognitómódra váltott</translation>
 <translation id="8730621377337864115">Kész</translation>
+<translation id="8733831205558190772">Az összes kártya egy helyen</translation>
 <translation id="8738058698779197622">Biztonságos kapcsolat létrehozásához az órát pontosan be kell állítani. Ez azért szükséges, mert a webhelyek által az azonosításukra használt tanúsítványok csak adott ideig érvényesek. Mivel az eszköz órája nem pontos, a Chromium nem tudja ellenőrizni ezeket a tanúsítványokat.</translation>
 <translation id="8740359287975076522">A(z) <ph name="HOST_NAME" /> &lt;abbr id="dnsDefinition"&gt;DNS-címe&lt;/abbr&gt; nem található. A probléma diagnosztizálása folyamatban van.</translation>
 <translation id="874846938927089722">Elfogadott hitel- és feltöltőkártyák</translation>
 <translation id="8759274551635299824">A kártya lejárt</translation>
 <translation id="8761567432415473239">A Google Biztonságos Böngészés nemrég <ph name="BEGIN_LINK" />ártalmas programokat talált<ph name="END_LINK" /> a következő webhelyen: <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">USB-eszköz</translation>
+<translation id="8768895707659403558">Ha az összes eszközön szeretné használni a kártyákat: <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Törlés újra</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{A kártya hozzá lett adva a Google-fiókjához. Mostantól bármelyik bejelentkezett eszközön használhatja.}other{A kártyák hozzá lettek adva a Google-fiókjához. Mostantól bármelyik bejelentkezett eszközön használhatja őket.}}</translation>
 <translation id="8792621596287649091">Elveszítheti a hozzáférést <ph name="ORG_NAME" />-fiókjához, vagy visszaélhetnek személyes adataival. A Chromium azt javasolja, hogy azonnal módosítsa jelszavát.</translation>
 <translation id="8800988563907321413">A közeli javaslatok helye</translation>
 <translation id="8820817407110198400">Könyvjelzők</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index ade6356..9834d06 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Sambungan pribadi ke <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tidak dapat dibuat karena tanggal dan waktu (<ph name="DATE_AND_TIME" />) perangkat Anda tidak benar.&lt;/p&gt;
 
       &lt;p&gt;Sesuaikan tanggal dan waktu dari bagian &lt;strong&gt;Umum&lt;/strong&gt; aplikasi &lt;strong&gt;Setelan&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Terjadi masalah sewaktu menampilkan halaman web ini.</translation>
 <translation id="1592005682883173041">Akses Data Lokal</translation>
 <translation id="1594030484168838125">Pilih</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Permintaan atau parameter permintaan tidak valid</translation>
 <translation id="1826516787628120939">Memeriksa</translation>
 <translation id="1834321415901700177">Situs ini berisi program yang berbahaya</translation>
+<translation id="1839551713262164453">Validasi nilai kebijakan gagal karena terjadi error</translation>
 <translation id="1840414022444569775">Nomor kartu ini telah digunakan</translation>
 <translation id="1842969606798536927">Bayar</translation>
 <translation id="1871208020102129563">Proxy disetel untuk menggunakan server proxy tetap, bukan URL skrip .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Tanya</translation>
 <translation id="2359629602545592467">Beberapa</translation>
 <translation id="2359808026110333948">Lanjut</translation>
+<translation id="2360873523816792727">Untuk menggunakan kartu di semua perangkat Anda, aktifkan sinkronisasi.</translation>
 <translation id="2365563543831475020">Laporan kerusakan yang diambil pada pukul <ph name="CRASH_TIME" /> tidak diupload</translation>
 <translation id="2367567093518048410">Tingkat</translation>
 <translation id="2378238891085281592">Anda telah masuk mode rahasia</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Cookie dan data situs
           <ph name="LIST_ITEM" />Informasi yang dimasukkan dalam formulir
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Lihat kartu</translation>
 <translation id="3369192424181595722">Kesalahan jam</translation>
 <translation id="337363190475750230">Di-deprovision</translation>
 <translation id="3377188786107721145">Kesalahan penguraian kebijakan</translation>
 <translation id="3380365263193509176">Kesalahan tidak dikenal</translation>
 <translation id="3380864720620200369">ID Klien:</translation>
+<translation id="3387261909427947069">Metode Pembayaran</translation>
 <translation id="3391030046425686457">Alamat pengiriman</translation>
 <translation id="3395827396354264108">Metode pengambilan</translation>
 <translation id="3399952811970034796">Alamat Pengiriman</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Tinjau pembayaran</translation>
 <translation id="4116663294526079822">Selalu izinkan di situs ini</translation>
 <translation id="4117700440116928470">Lingkup kebijakan tidak didukung.</translation>
+<translation id="4119109454650683048">Harap periksa info di bawah dan perbaiki error yang muncul, jika perlu</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 lainnya}other{# lainnya}}</translation>
 <translation id="4130226655945681476">Periksa kabel jaringan, modem, dan router</translation>
 <translation id="413544239732274901">Pelajari lebih lanjut</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Metode pengiriman tidak tersedia. Coba metode lain.</translation>
 <translation id="4858792381671956233">Kamu telah meminta izin kepada orang tua untuk mengunjungi situs ini</translation>
 <translation id="4876305945144899064">Tidak ada nama pengguna</translation>
+<translation id="4879491255372875719">Otomatis (default)</translation>
 <translation id="4880827082731008257">Telusuri histori</translation>
 <translation id="4881695831933465202">Buka</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Tampilkan semua sandi tersimpan</translation>
 <translation id="5287240709317226393">Tampilkan cookie</translation>
+<translation id="5288108484102287882">Validasi nilai kebijakan telah memunculkan peringatan</translation>
 <translation id="5299298092464848405">Kebijakan kesalahan penguraian</translation>
 <translation id="5308380583665731573">Sambungkan</translation>
 <translation id="5308689395849655368">Pelaporan kondisi ngadat dinonaktifkan.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Gagal menyimpan setelan kebijakan</translation>
 <translation id="5371425731340848620">Perbarui kartu</translation>
 <translation id="5377026284221673050">"Jam Anda terlalu lambat" atau "Jam Anda terlalu cepat" atau "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Untuk menggunakan kartu di semua perangkat, harap login dan aktifkan sinkronisasi.</translation>
 <translation id="5386426401304769735">Rantai sertifikat untuk situs ini berisi sertifikat yang ditandatangani menggunakan SHA-1.</translation>
 <translation id="5387961145478138773">Dapatkan akses instan ke Aplikasi Google favorit Anda</translation>
 <translation id="540969355065856584">Server ini tidak dapat membuktikan bahwa ini adalah <ph name="DOMAIN" />; sertifikat keamanannya saat ini tidak valid. Hal ini mungkin disebabkan oleh kesalahan konfigurasi atau ada penyerang yang mengganggu sambungan internet Anda.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Kartu kredit diterima.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (disinkronkan)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 terpakai}other{# terpakai}}</translation>
+<translation id="5922853866070715753">Hampir selesai</translation>
 <translation id="5939518447894949180">Setel ulang</translation>
 <translation id="5967592137238574583">Edit Info Kontak</translation>
 <translation id="5967867314010545767">Hapus dari histori</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Anda tidak dapat membuka <ph name="SITE" /> sekarang karena situs menggunakan penyematan sertifikat. Error jaringan dan serangan biasanya bersifat sementara, sehingga halaman ini mungkin akan berfungsi nanti.</translation>
 <translation id="6059925163896151826">Perangkat USB</translation>
 <translation id="6071091556643036997">Jenis kebijakan tidak valid.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Kartu ini akan disimpan ke Akun Google Anda untuk mempercepat proses pembayaran di semua perangkat.}other{Kartu-kartu ini akan disimpan ke Akun Google Anda untuk mempercepat proses pembayaran di semua perangkat.}}</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="610911394827799129">Akun Google Anda mungkin memiliki bentuk histori browsing lainnya di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Tidak ada}=1{1 sandi (disinkronkan)}other{# sandi (disinkronkan)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Perangkat</translation>
 <translation id="6970216967273061347">Distrik</translation>
 <translation id="6973656660372572881">Server proxy tetap dan URL skrip .pac telah ditentukan.</translation>
+<translation id="6979440798594660689">Matikan (default)</translation>
 <translation id="6984479912851154518">Keluar dari mode rahasia untuk membayar melalui aplikasi eksternal. Lanjutkan?</translation>
 <translation id="6989763994942163495">Tampilkan setelan lanjutan...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> dan <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> lainnya}other{<ph name="PAYMENT_METHOD_PREVIEW" /> dan <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> lainnya}}</translation>
 <translation id="717330890047184534">ID GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> dan <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> lainnya}other{<ph name="SHIPPING_OPTION_PREVIEW" /> dan <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> lainnya}}</translation>
+<translation id="7179323680825933600">Simpan dan Isi Metode Pembayaran</translation>
 <translation id="7180611975245234373">Segarkan</translation>
 <translation id="7182878459783632708">Tidak ada kebijakan yang disetel</translation>
 <translation id="7186367841673660872">Halaman ini telah diterjemahkan dari<ph name="ORIGINAL_LANGUAGE" />ke<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,7 @@
 <translation id="7220786058474068424">Dalam proses</translation>
 <translation id="724691107663265825">Situs yang akan dibuka berisi software perusak</translation>
 <translation id="724975217298816891">Masukkan tanggal habis masa berlaku dan CVC untuk <ph name="CREDIT_CARD" /> guna memperbarui detail kartu. Setelah mengonfirmasi, detail kartu Anda akan dibagikan dengan situs ini.</translation>
+<translation id="7251437084390964440">Konfigurasi jaringan tidak mematuhi standar ONC. Sebagian konfigurasi mungkin tidak diimpor. Detail tambahan: <ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Sambungan pribadi ke <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tidak dapat dibuat karena tanggal dan waktu (<ph name="DATE_AND_TIME" />) komputer Anda tidak benar.</translation>
 <translation id="7260504762447901703">Cabut akses</translation>
 <translation id="7271803869921933038">Kartu Prabayar yang Diterima</translation>
@@ -1039,6 +1053,7 @@
 <translation id="8398259832188219207">Laporan kerusakan diupload pada <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Ngadat (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Anda harus memasukkan frasa sandi yang sama dua kali.</translation>
+<translation id="8416694386774425977">Konfigurasi jaringan tidak valid dan tidak dapat diimpor. Detail tambahan: <ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Setelan</translation>
 <translation id="8433057134996913067">Tindakan ini akan mengeluarkan Anda dari sebagian besar situs web.</translation>
@@ -1070,13 +1085,16 @@
 <translation id="8725066075913043281">Coba lagi</translation>
 <translation id="8728672262656704056">Anda masuk mode penyamaran</translation>
 <translation id="8730621377337864115">Selesai</translation>
+<translation id="8733831205558190772">Semua kartu Anda di satu tempat</translation>
 <translation id="8738058698779197622">Untuk membuat sambungan aman, jam perlu disetel dengan benar. Hal ini karena sertifikat yang digunakan situs web untuk mengidentifikasi situs web tersebut hanya valid untuk jangka waktu tertentu. Karena jam perangkat tidak benar, Chromium tidak dapat memverifikasi sertifikat ini.</translation>
 <translation id="8740359287975076522">&lt;abbr id="dnsDefinition"&gt;Alamat DNS&lt;/abbr&gt; <ph name="HOST_NAME" /> tidak dapat ditemukan. Mendiagnosis masalah.</translation>
 <translation id="874846938927089722">Kartu Kredit dan Prabayar yang Diterima</translation>
 <translation id="8759274551635299824">Kartu sudah tidak aktif</translation>
 <translation id="8761567432415473239">Google Safe Browsing baru-baru ini <ph name="BEGIN_LINK" />menemukan program berbahaya<ph name="END_LINK" /> di <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Perangkat USB</translation>
+<translation id="8768895707659403558">Untuk menggunakan kartu Anda di semua perangkat, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Ulangi penghapusan</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Kartu ini telah ditambahkan ke Akun Google Anda. Anda kini dapat menggunakannya dari perangkat mana pun yang digunakan untuk login.}other{Kartu-kartu ini telah ditambahkan ke Akun Google Anda. Anda kini dapat menggunakannya dari perangkat mana pun yang digunakan untuk login.}}</translation>
 <translation id="8792621596287649091">Anda dapat kehilangan akses ke akun <ph name="ORG_NAME" /> atau mengalami pencurian identitas. Chromium menyarankan Anda untuk mengubah sandi sekarang.</translation>
 <translation id="8800988563907321413">Saran terdekat muncul di sini</translation>
 <translation id="8820817407110198400">Bookmark</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 1d8145e..839e1d1 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Impossibile stabilire una connessione privata con il sito <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> perché data e ora del dispositivo (<ph name="DATE_AND_TIME" />) non sono corrette.&lt;/p&gt;
 
       &lt;p&gt;Regola data e ora nella sezione &lt;strong&gt;Generali&lt;/strong&gt; dell'app &lt;strong&gt;Impostazioni&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Si è verificato un problema durante la visualizzazione della pagina web.</translation>
 <translation id="1592005682883173041">Accesso ai dati locali</translation>
 <translation id="1594030484168838125">Scegli</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Richiesta o parametri della richiesta non validi</translation>
 <translation id="1826516787628120939">Verifica in corso...</translation>
 <translation id="1834321415901700177">Il sito contiene programmi dannosi.</translation>
+<translation id="1839551713262164453">Si sono verificati degli errori e la convalida dei valori della norma non è riuscita</translation>
 <translation id="1840414022444569775">Questo numero di carta è già stato usato</translation>
 <translation id="1842969606798536927">Paga</translation>
 <translation id="1871208020102129563">L'impostazione del proxy prevede l'utilizzo di server proxy fissi, non di un URL script .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Chiedi</translation>
 <translation id="2359629602545592467">Multiple</translation>
 <translation id="2359808026110333948">Continua</translation>
+<translation id="2360873523816792727">Attiva la sincronizzazione per utilizzare le tue carte su tutti i dispositivi.</translation>
 <translation id="2365563543831475020">Il rapporto sugli arresti anomali generato il giorno <ph name="CRASH_TIME" /> non è stato caricato</translation>
 <translation id="2367567093518048410">Livello</translation>
 <translation id="2378238891085281592">Navigazione privata attiva</translation>
@@ -348,11 +351,13 @@
           <ph name="LIST_ITEM" />Cookie e dati dei siti
           <ph name="LIST_ITEM" />Informazioni inserite nei moduli
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Visualizza le carte</translation>
 <translation id="3369192424181595722">Errore dell'orologio</translation>
 <translation id="337363190475750230">Deprovisioning effettuato</translation>
 <translation id="3377188786107721145">Errore di analisi del criterio</translation>
 <translation id="3380365263193509176">Errore sconosciuto</translation>
 <translation id="3380864720620200369">ID client:</translation>
+<translation id="3387261909427947069">Metodi di pagamento</translation>
 <translation id="3391030046425686457">Indirizzo di consegna</translation>
 <translation id="3395827396354264108">Metodo di ritiro</translation>
 <translation id="3399952811970034796">Indirizzo di consegna</translation>
@@ -449,6 +454,7 @@
 <translation id="4110652170750985508">Verifica il pagamento</translation>
 <translation id="4116663294526079822">Consenti sempre su questo sito</translation>
 <translation id="4117700440116928470">L'ambito della norma non è supportato.</translation>
+<translation id="4119109454650683048">Controlla le informazioni riportate di seguito e correggi gli eventuali errori</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 altro}other{# altri}}</translation>
 <translation id="4130226655945681476">Controllare i cavi di rete, il modem e il router</translation>
 <translation id="413544239732274901">Ulteriori informazioni</translation>
@@ -554,6 +560,7 @@
 <translation id="4854362297993841467">Questo metodo di consegna non è disponibile. Prova un metodo diverso.</translation>
 <translation id="4858792381671956233">Hai chiesto ai tuoi genitori se puoi visitare questo sito</translation>
 <translation id="4876305945144899064">Nessun nome utente</translation>
+<translation id="4879491255372875719">Automatica (impostazione predefinita)</translation>
 <translation id="4880827082731008257">Cerca nella cronologia</translation>
 <translation id="4881695831933465202">Apri</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -619,6 +626,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Mostra tutte le password salvate</translation>
 <translation id="5287240709317226393">Mostra cookie</translation>
+<translation id="5288108484102287882">La convalida dei valori della norma ha generato degli avvisi</translation>
 <translation id="5299298092464848405">Errore durante l'analisi del criterio</translation>
 <translation id="5308380583665731573">Connessione</translation>
 <translation id="5308689395849655368">La segnalazione degli arresti anomali è disattivata.</translation>
@@ -631,6 +639,7 @@
 <translation id="536296301121032821">Archiviazione delle impostazioni criterio non riuscita</translation>
 <translation id="5371425731340848620">Aggiorna carta</translation>
 <translation id="5377026284221673050">"L'orologio è indietro", "L'orologio è avanti" oppure "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Accedi e attiva la sincronizzazione per utilizzare le tue carte su tutti i dispositivi.</translation>
 <translation id="5386426401304769735">Il certificato di questo sito contiene un certificato che è stato firmato utilizzando SHA-1.</translation>
 <translation id="5387961145478138773">Accedi velocemente alle tue app Google preferite</translation>
 <translation id="540969355065856584">Questo server non è riuscito a verificare che si tratta di <ph name="DOMAIN" />; il relativo certificato di sicurezza non è considerato valido in questa fase. Il problema potrebbe essere dovuto a un'errata configurazione o a un malintenzionato che ha intercettato la connessione.</translation>
@@ -706,6 +715,7 @@
 <translation id="5893752035575986141">Le carte di credito sono accettate.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizzati)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 in uso}other{# in uso}}</translation>
+<translation id="5922853866070715753">Hai quasi finito.</translation>
 <translation id="5939518447894949180">Ripristina</translation>
 <translation id="5967592137238574583">Modifica informazioni di contatto</translation>
 <translation id="5967867314010545767">Rimuovi da cronologia</translation>
@@ -726,6 +736,7 @@
 <translation id="6051221802930200923">Al momento non puoi visitare il sito web <ph name="SITE" /> perché utilizza il blocco dei certificati. In genere gli errori di rete e gli attacchi sono temporanei, pertanto questa pagina potrebbe funzionare più tardi.</translation>
 <translation id="6059925163896151826">Dispositivi USB</translation>
 <translation id="6071091556643036997">Il tipo di norma non è valido.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{ Questa carta verrà salvata nel tuo Account Google per un pagamento più rapido su tutti i dispositivi.}other{ Queste carte verranno salvate nel tuo Account Google per un pagamento più rapido su tutti i dispositivi.}}</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="610911394827799129">Il tuo account Google potrebbe avere altri tipi di cronologia di navigazione all'indirizzo <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Nessuna}=1{1 password (sincronizzata)}other{# password (sincronizzate)}}</translation>
@@ -827,6 +838,7 @@
 <translation id="6965978654500191972">Dispositivo</translation>
 <translation id="6970216967273061347">Distretto</translation>
 <translation id="6973656660372572881">Sono stati specificati sia i server proxy fissi che un URL script .pac.</translation>
+<translation id="6979440798594660689">Disattivazione audio (impostazione predefinita)</translation>
 <translation id="6984479912851154518">Per procedere al pagamento tramite un'applicazione esterna, uscirai dalla modalità di navigazione privata. Vuoi continuare?</translation>
 <translation id="6989763994942163495">Mostra impostazioni avanzate...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -847,6 +859,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> e <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> altro}other{<ph name="PAYMENT_METHOD_PREVIEW" /> e altri <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">ID GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> e <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> altra}other{<ph name="SHIPPING_OPTION_PREVIEW" /> e altre <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Salva e compila i metodi di pagamento</translation>
 <translation id="7180611975245234373">Aggiorna</translation>
 <translation id="7182878459783632708">Nessuna norma impostata</translation>
 <translation id="7186367841673660872">Questa pagina è stata tradotta da<ph name="ORIGINAL_LANGUAGE" />a<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -858,6 +871,9 @@
 <translation id="7220786058474068424">Elaborazione in corso</translation>
 <translation id="724691107663265825">Il sito che stai per visitare contiene malware</translation>
 <translation id="724975217298816891">Inserisci la data di scadenza e il codice CVC della carta <ph name="CREDIT_CARD" /> per aggiornare i relativi dettagli. Dopo essere stati confermati, i dettagli della carta saranno condivisi con questo sito.</translation>
+<translation id="7251437084390964440">La configurazione di rete non è conforme allo standard ONC. Parti della configurazione potrebbero non essere importate.
+Ulteriori dettagli:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Impossibile stabilire una connessione privata con il sito <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> perché data e ora del computer (<ph name="DATE_AND_TIME" />) sono sbagliate.</translation>
 <translation id="7260504762447901703">Revoca accesso</translation>
 <translation id="7271803869921933038">Carte prepagate accettate</translation>
@@ -1035,6 +1051,9 @@
 <translation id="8398259832188219207">Rapporto sugli arresti anomali caricato in data <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Arresti anomali (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Devi inserire la stessa passphrase due volte.</translation>
+<translation id="8416694386774425977">La configurazione di rete non è valida e non può essere importata.
+Ulteriori dettagli:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Impostazioni</translation>
 <translation id="8433057134996913067">In questo modo uscirai dalla maggior parte dei siti web.</translation>
@@ -1066,13 +1085,16 @@
 <translation id="8725066075913043281">Riprova</translation>
 <translation id="8728672262656704056">Sei passato alla navigazione in incognito</translation>
 <translation id="8730621377337864115">Fine</translation>
+<translation id="8733831205558190772">Tutte le carte in un unico posto</translation>
 <translation id="8738058698779197622">Per poter stabilire una connessione protetta, l'orologio deve essere impostato correttamente perché i certificati utilizzati dai siti web per identificarsi sono validi soltanto per determinati periodi di tempo. L'orologio del dispositivo è sbagliato, pertanto Chromium non può verificare i certificati.</translation>
 <translation id="8740359287975076522">Impossibile trovare l'&lt;abbr id="dnsDefinition"&gt;indirizzo DNS&lt;/abbr&gt; di <ph name="HOST_NAME" />. Stiamo analizzando il problema.</translation>
 <translation id="874846938927089722">Carte di credito e prepagate accettate</translation>
 <translation id="8759274551635299824">La carta è scaduta</translation>
 <translation id="8761567432415473239">La funzione Navigazione sicura di Google <ph name="BEGIN_LINK" />ha trovato di recente programmi dannosi<ph name="END_LINK" /> su <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Dispositivo USB</translation>
+<translation id="8768895707659403558">Per utilizzare le tue carte su tutti i tuoi dispositivi, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Ripeti eliminazione</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{ Questa carta è stata aggiunta al tuo Account Google. Ora puoi utilizzarla da qualsiasi dispositivo su cui hai eseguito l'accesso.}other{ Queste carte sono state aggiunte al tuo Account Google. Ora puoi utilizzarle da qualsiasi dispositivo su cui hai eseguito l'accesso.}}</translation>
 <translation id="8792621596287649091">Potresti non riuscire più ad accedere al tuo account <ph name="ORG_NAME" /> o subire un furto d'identità. Chromium ti consiglia di cambiare subito la password.</translation>
 <translation id="8800988563907321413">I suggerimenti Qui vicino vengono visualizzati qui</translation>
 <translation id="8820817407110198400">Preferiti</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index 00579a1..553acb32 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">‏&lt;p&gt;לא ניתן ליצור חיבור פרטי אל <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> משום שהתאריך והשעה במכשיר שלך (<ph name="DATE_AND_TIME" />) שגויים.&lt;/p&gt;
 
       &lt;p&gt;שנה את התאריך והשעה בקטע &lt;strong&gt;כללי&lt;/strong&gt; באפליקציה &lt;strong&gt;הגדרות&lt;/strong&gt;‏.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">משהו השתבש בעת הצגת דף אינטרנט זה.</translation>
 <translation id="1592005682883173041">גישה לנתונים מקומיים</translation>
 <translation id="1594030484168838125">בחר</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">הבקשה או הפרמטרים של הבקשה אינם חוקיים</translation>
 <translation id="1826516787628120939">מתבצעת בדיקה</translation>
 <translation id="1834321415901700177">האתר הזה מכיל תוכניות מזיקות</translation>
+<translation id="1839551713262164453">אימות ערכי המדיניות נכשל והתרחשו שגיאות</translation>
 <translation id="1840414022444569775">מספר הכרטיס הזה כבר נמצא בשימוש</translation>
 <translation id="1842969606798536927">שלם</translation>
 <translation id="1871208020102129563">‏שרת ה-Proxy מוגדר להשתמש בשרתי Proxy קבועים, לא בכתובת אתר של סקריפט ‎.Pac</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">שאל</translation>
 <translation id="2359629602545592467">מטבעות מרובים</translation>
 <translation id="2359808026110333948">המשך</translation>
+<translation id="2360873523816792727">כדי להשתמש בכרטיסים שלך בכל המכשירים, יש להפעיל סנכרון.</translation>
 <translation id="2365563543831475020">דוח הקריסה שתועד ב-<ph name="CRASH_TIME" /> לא הועלה</translation>
 <translation id="2367567093518048410">רמה</translation>
 <translation id="2378238891085281592">עברת למצב פרטי</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />קובצי Cookie ונתוני אתרים
           <ph name="LIST_ITEM" />מידע שהוזן בטפסים
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">הצגת כרטיסים</translation>
 <translation id="3369192424181595722">שגיאת שעון</translation>
 <translation id="337363190475750230">ניהול התצורה בוטל</translation>
 <translation id="3377188786107721145">שגיאה בניתוח המדיניות</translation>
 <translation id="3380365263193509176">שגיאה לא ידועה</translation>
 <translation id="3380864720620200369">מספר לקוח:</translation>
+<translation id="3387261909427947069">אמצעי תשלום</translation>
 <translation id="3391030046425686457">כתובת למשלוח</translation>
 <translation id="3395827396354264108">שיטת איסוף</translation>
 <translation id="3399952811970034796">כתובת למשלוח</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">בדיקת התשלום</translation>
 <translation id="4116663294526079822">אפשר תמיד באתר זה</translation>
 <translation id="4117700440116928470">היקף המדיניות אינו נתמך.</translation>
+<translation id="4119109454650683048">עליך לעיין במידע שבהמשך ולתקן שגיאות, אם יש צורך</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{אחד נוסף}two{שניים נוספים}many{# נוספים}other{# נוספים}}</translation>
 <translation id="4130226655945681476">בדוק את כבלי הרשת, את המודם ואת הנתב</translation>
 <translation id="413544239732274901">מידע נוסף</translation>
@@ -561,6 +567,7 @@
 <translation id="4854362297993841467">שיטת המסירה הזו אינה זמינה. עליך לבחור שיטה אחרת.</translation>
 <translation id="4858792381671956233">שאלת את ההורים שלך אם אתה יכול לגשת לאתר הזה</translation>
 <translation id="4876305945144899064">אין שם משתמש</translation>
+<translation id="4879491255372875719">אוטומטי (ברירת מחדל)</translation>
 <translation id="4880827082731008257">חפש בהיסטוריה</translation>
 <translation id="4881695831933465202">פתח</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -626,6 +633,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">הצגת כל הסיסמאות השמורות</translation>
 <translation id="5287240709317226393">‏הצגת קובצי Cookie</translation>
+<translation id="5288108484102287882">בעקבות אימות ערכי המדיניות הופיעו אזהרות</translation>
 <translation id="5299298092464848405">שגיאה בניתוח המדיניות</translation>
 <translation id="5308380583665731573">התחברות</translation>
 <translation id="5308689395849655368">דיווח קריסות מושבת.</translation>
@@ -638,6 +646,7 @@
 <translation id="536296301121032821">אחסון הגדרות המדיניות נכשל</translation>
 <translation id="5371425731340848620">עדכון כרטיס</translation>
 <translation id="5377026284221673050">‏"השעון מאחר", "השעון מקדים" או "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">כדי להשתמש בכרטיסים שלך בכל המכשירים, יש להיכנס לחשבון ולהפעיל את הסנכרון</translation>
 <translation id="5386426401304769735">‏שרשרת האישורים של האתר הזה כוללת אישור שנחתם באמצעות SHA-1.</translation>
 <translation id="5387961145478138773">‏קבלת גישה מהירה אל אפליקציות Google האהובות</translation>
 <translation id="540969355065856584">שרת זה לא הצליח להוכיח שהוא <ph name="DOMAIN" />; אישור האבטחה שלו אינו תקף כעת. הסיבה לכך עשויה להיות תצורה שגויה או שתוקף מיירט את החיבור שלך.</translation>
@@ -714,6 +723,7 @@
 <translation id="5893752035575986141">אפשר לשלם באמצעות כרטיסי אשראי.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (מסונכרנים)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{אחד נמצא בשימוש}two{שניים נמצאים בשימוש}many{# נמצאים בשימוש}other{# נמצאים בשימוש}}</translation>
+<translation id="5922853866070715753">עוד רגע מסיימים</translation>
 <translation id="5939518447894949180">אפס</translation>
 <translation id="5967592137238574583">עריכת הפרטים ליצירת קשר</translation>
 <translation id="5967867314010545767">הסר מההיסטוריה</translation>
@@ -734,6 +744,7 @@
 <translation id="6051221802930200923">נכון לעכשיו אי אפשר לבקר באתר <ph name="SITE" />, מאחר שבאתר הזה נעשה שימוש בנעיצת אישורים. שגיאות רשת ומתקפות הן בדרך כלל זמניות, כך שהדף הזה יחזור כנראה לפעול מאוחר יותר.</translation>
 <translation id="6059925163896151826">‏מכשירי USB</translation>
 <translation id="6071091556643036997">סוג המדיניות אינו חוקי.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{‏הכרטיס הזה יישמר בחשבון Google שלך כדי לאפשר תהליך מהיר יותר בקופה בכל המכשירים שברשותך.}two{‏הכרטיסים האלה יישמרו בחשבון Google שלך כדי לאפשר תהליך מהיר יותר בקופה בכל המכשירים שברשותך.}many{‏הכרטיסים האלה יישמרו בחשבון Google שלך כדי לאפשר תהליך מהיר יותר בקופה בכל המכשירים שברשותך.}other{‏הכרטיסים האלה יישמרו בחשבון Google שלך כדי לאפשר תהליך מהיר יותר בקופה בכל המכשירים שברשותך.}}</translation>
 <translation id="6080696365213338172">ניגשת לתוכן באמצעות אישור שהוענק על ידי מנהל מערכת. מנהל המערכת שלך עשוי ליירט נתונים שתספק ל-<ph name="DOMAIN" />.</translation>
 <translation id="610911394827799129">‏ייתכן שלחשבון Google שלך משויכים סוגים אחרים של היסטוריית גלישה בכתובת <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{ללא}=1{סיסמה אחת (מסונכרנת)}two{שתי סיסמאות (מסונכרנות)}many{# סיסמאות (מסונכרנות)}other{# סיסמאות (מסונכרנות)}}</translation>
@@ -836,6 +847,7 @@
 <translation id="6965978654500191972">התקן</translation>
 <translation id="6970216967273061347">מחוז</translation>
 <translation id="6973656660372572881">‏צוינו שרתי Proxy קבועים וכתובת אתר של הסקריפט מסוג ‎.Pac</translation>
+<translation id="6979440798594660689">השתקה (ברירת מחדל)</translation>
 <translation id="6984479912851154518">בחרת לצאת ממצב פרטי כדי לשלם באמצעות אפליקציה חיצונית. להמשיך?</translation>
 <translation id="6989763994942163495">הצג הגדרות מתקדמות...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -856,6 +868,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}two{<ph name="PAYMENT_METHOD_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}many{<ph name="PAYMENT_METHOD_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">‏מזהה GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}two{<ph name="SHIPPING_OPTION_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}many{<ph name="SHIPPING_OPTION_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">שמירה ומילוי של אמצעי תשלום</translation>
 <translation id="7180611975245234373">רענן</translation>
 <translation id="7182878459783632708">לא הוגדרה מדיניות</translation>
 <translation id="7186367841673660872">דף זה תורגם מ<ph name="ORIGINAL_LANGUAGE" />ל<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -867,6 +880,9 @@
 <translation id="7220786058474068424">מעבד</translation>
 <translation id="724691107663265825">האתר שלפניך מכיל תוכנה זדונית</translation>
 <translation id="724975217298816891">הזן את תאריך התפוגה ואת קוד האימות של <ph name="CREDIT_CARD" /> כדי לעדכן את פרטי הכרטיס. ברגע שתאשר, פרטי הכרטיס שלך ישותפו עם האתר הזה.</translation>
+<translation id="7251437084390964440">‏תצורת הרשת אינה תואמת לתקן ONC. ייתכן שחלקים מהתצורה לא ייכללו בייבוא.
+פרטים נוספים:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">לא ניתן ליצור חיבור פרטי אל <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> מפני שהתאריך והשעה (<ph name="DATE_AND_TIME" />) במחשב שלך שגויים.</translation>
 <translation id="7260504762447901703">בטל גישה</translation>
 <translation id="7271803869921933038">כרטיסים משולמים מראש שהסוחר מקבל</translation>
@@ -1044,6 +1060,9 @@
 <translation id="8398259832188219207">דוח קריסה הועלה ב-<ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">קריסות (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">עליך להזין את אותו משפט-סיסמה פעמיים.</translation>
+<translation id="8416694386774425977">תצורת הרשת אינה חוקית ולא ניתן לייבא אותה.
+פרטים נוספים:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">הגדרות</translation>
 <translation id="8433057134996913067">פעולה זו תוציא אותך מהחשבון ברוב האתרים.</translation>
@@ -1076,13 +1095,16 @@
 <translation id="8725066075913043281">נסה שוב</translation>
 <translation id="8728672262656704056">עברת למצב גלישה בסתר</translation>
 <translation id="8730621377337864115">בוצע</translation>
+<translation id="8733831205558190772">כל הכרטיסים שלך במקום אחד</translation>
 <translation id="8738058698779197622">‏כדי ליצור חיבור מאובטח, השעון צריך להיות מוגדר כהלכה. הסיבה לכך היא שהאישורים שבהם אתרים משתמשים כדי לזהות את עצמם תקפים רק למשך פרקי זמן מסוימים. מאחר שהשעון במכשיר שלך שגוי, Chromium לא יכול לאמת את האישורים האלו.</translation>
 <translation id="8740359287975076522">‏לא ניתן היה למצוא את &lt;abbr id="dnsDefinition"&gt;כתובת ה-DNS&lt;/abbr&gt; של <ph name="HOST_NAME" />. מאבחן את הבעיה.</translation>
 <translation id="874846938927089722">כרטיסי אשראי וכרטיסים משולמים מראש שהסוחר מקבל</translation>
 <translation id="8759274551635299824">פג תוקפו של הכרטיס</translation>
 <translation id="8761567432415473239">‏גלישה בטוחה של Google <ph name="BEGIN_LINK" />איתרה לאחרונה תוכניות מזיקות<ph name="END_LINK" /> באתר <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">‏התקן USB</translation>
+<translation id="8768895707659403558">כדי להשתמש בכרטיסים שלך בכל המכשירים שברשותך, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;ביצוע מחדש של מחיקה</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{‏הכרטיס הזה נוסף אל חשבון Google שלך. אפשר עכשיו להשתמש בו מכל מכשיר שבו התחברת לחשבון.}two{‏הכרטיסים האלה נוספו אל חשבון Google שלך. אפשר עכשיו להשתמש בהם מכל מכשיר שבו התחברת לחשבון.}many{‏הכרטיסים האלה נוספו אל חשבון Google שלך. אפשר עכשיו להשתמש בהם מכל מכשיר שבו התחברת לחשבון.}other{‏הכרטיסים האלה נוספו אל חשבון Google שלך. אפשר עכשיו להשתמש בהם מכל מכשיר שבו התחברת לחשבון.}}</translation>
 <translation id="8792621596287649091">‏הגישה שלך לחשבון <ph name="ORG_NAME" /> עשויה להישלל והזהות שלך עשויה להיגנב. ההמלצה של Chromium היא לשנות את הסיסמה עכשיו.</translation>
 <translation id="8800988563907321413">כאן מופיעות הצעות עבורך למקומות קרובים</translation>
 <translation id="8820817407110198400">סימניות</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index 0fc28ca0..4b81e66 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;デバイスの日時(<ph name="DATE_AND_TIME" />)が正しくないため、<ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> へのプライベート接続を確立できません。&lt;/p&gt;
 
       &lt;p&gt;&lt;strong&gt;設定&lt;/strong&gt;アプリの [&lt;strong&gt;全般&lt;/strong&gt;] セクションで日時を調整してください。&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC コード</translation>
 <translation id="1583429793053364125">このウェブページを表示中に問題が発生しました。</translation>
 <translation id="1592005682883173041">ローカルデータへのアクセス</translation>
 <translation id="1594030484168838125">選択</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">無効なリクエストまたはリクエスト パラメータです</translation>
 <translation id="1826516787628120939">確認中</translation>
 <translation id="1834321415901700177">このサイトには有害なプログラムが含まれています</translation>
+<translation id="1839551713262164453">ポリシーの値を検証できませんでした(エラーが発生しました)</translation>
 <translation id="1840414022444569775">このカード番号はすでに使用されています</translation>
 <translation id="1842969606798536927">お支払い</translation>
 <translation id="1871208020102129563">プロキシは .pac スクリプト URL ではなく固定プロキシ サーバーを使用するように設定されています。</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">確認する</translation>
 <translation id="2359629602545592467">複数</translation>
 <translation id="2359808026110333948">続行</translation>
+<translation id="2360873523816792727">お使いのどの端末でも同じカードを使用するには、同期を有効にします。</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" /> に作成されたクラッシュ レポートはアップロードされませんでした</translation>
 <translation id="2367567093518048410">レベル</translation>
 <translation id="2378238891085281592">プライベート モードです</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Cookie とサイトデータ
           <ph name="LIST_ITEM" />フォームに入力した情報
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">カードを表示</translation>
 <translation id="3369192424181595722">時計のエラー</translation>
 <translation id="337363190475750230">プロビジョニングが解除されました</translation>
 <translation id="3377188786107721145">ポリシー解析エラーです</translation>
 <translation id="3380365263193509176">不明なエラー</translation>
 <translation id="3380864720620200369">クライアント ID:</translation>
+<translation id="3387261909427947069">お支払い方法</translation>
 <translation id="3391030046425686457">配送先住所</translation>
 <translation id="3395827396354264108">受け取り方法</translation>
 <translation id="3399952811970034796">配達先住所</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">お支払いの確認</translation>
 <translation id="4116663294526079822">このサイトでは常に許可</translation>
 <translation id="4117700440116928470">ポリシーの適用範囲がサポートされていません。</translation>
+<translation id="4119109454650683048">下記の情報を確認し、間違いがあれば修正してください</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{他 1 件}other{他 # 件}}</translation>
 <translation id="4130226655945681476">ネットワーク ケーブル、モデム、ルーターを確認する</translation>
 <translation id="413544239732274901">詳細</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">この配達方法はご利用いただけません。別の方法を選択してください。</translation>
 <translation id="4858792381671956233">このサイトを開いてもよいかの問い合わせを保護者に送信しました</translation>
 <translation id="4876305945144899064">ユーザー名が指定されていません</translation>
+<translation id="4879491255372875719">自動(デフォルト)</translation>
 <translation id="4880827082731008257">履歴を検索</translation>
 <translation id="4881695831933465202">開く</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />、<ph name="TYPE_2" />、<ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">保存したパスワードをすべて表示</translation>
 <translation id="5287240709317226393">Cookie を表示</translation>
+<translation id="5288108484102287882">ポリシー値の検証で警告が返されました</translation>
 <translation id="5299298092464848405">ポリシーの解析中にエラーが発生しました</translation>
 <translation id="5308380583665731573">接続</translation>
 <translation id="5308689395849655368">障害レポートが無効になっています。</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">ポリシー設定を保存できませんでした</translation>
 <translation id="5371425731340848620">カードを更新</translation>
 <translation id="5377026284221673050">「時計が遅れています」、「時計が進んでいます」、「&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;」</translation>
+<translation id="5384855140246857529">お使いのどの端末でも同じカードを使用するには、ログインして同期を有効にします。</translation>
 <translation id="5386426401304769735">このサイトの証明書チェーンには SHA-1 を使って署名された証明書が含まれています。</translation>
 <translation id="5387961145478138773">お気に入りの Google アプリにすばやくアクセスします</translation>
 <translation id="540969355065856584">このサーバーが <ph name="DOMAIN" /> であることを確認できませんでした。このサーバーのセキュリティ証明書は現在有効ではありません。設定が不適切か、悪意のあるユーザーによって接続が妨害されている可能性があります。</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">クレジット カードをご利用いただけます。</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" />(同期済み)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 個が使用中}other{# 個が使用中}}</translation>
+<translation id="5922853866070715753">ほぼ完了です</translation>
 <translation id="5939518447894949180">リセット</translation>
 <translation id="5967592137238574583">連絡先情報の編集</translation>
 <translation id="5967867314010545767">履歴から削除</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923"><ph name="SITE" /> では証明書ピンニングが使用されているため、現在アクセスできません。通常、ネットワーク エラーやネットワークへの攻撃は一時的なものです。しばらくするとページにアクセスできるようになります。</translation>
 <translation id="6059925163896151826">USB デバイス</translation>
 <translation id="6071091556643036997">ポリシーのタイプが無効です。</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{このカードは Google アカウントに保存されます。以降は他の端末でもスピーディにお支払い手続きが可能です。}other{これらのカードは Google アカウントに保存されます。以降は他の端末でもスピーディにお支払い手続きが可能です。}}</translation>
 <translation id="6080696365213338172">管理者が提供する証明書を使用してコンテンツにアクセスしています。<ph name="DOMAIN" /> に提供するデータは管理者によって傍受される可能性があります。</translation>
 <translation id="610911394827799129">お使いの Google アカウントの <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> に、他の形式の閲覧履歴が記録されている場合があります</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{なし}=1{1 個のパスワード(同期済み)}other{# 個のパスワード(同期済み)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">デバイス</translation>
 <translation id="6970216967273061347">地区</translation>
 <translation id="6973656660372572881">固定プロキシ サーバーと .pac スクリプト URL の両方が指定されています。</translation>
+<translation id="6979440798594660689">ミュート(デフォルト)</translation>
 <translation id="6984479912851154518">外部アプリケーションでのお支払い処理に進むため、プライベート モードを解除します。続行しますか?</translation>
 <translation id="6989763994942163495">詳細設定を表示...</translation>
 <translation id="7012363358306927923">中国銀聯</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" />(他 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> 件)}other{<ph name="PAYMENT_METHOD_PREVIEW" />(他 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> 件)}}</translation>
 <translation id="717330890047184534">GAIA ID:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" />(他 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> 件)}other{<ph name="SHIPPING_OPTION_PREVIEW" />(他 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> 件)}}</translation>
+<translation id="7179323680825933600">お支払い方法の保存と入力</translation>
 <translation id="7180611975245234373">更新</translation>
 <translation id="7182878459783632708">ポリシーが設定されていません</translation>
 <translation id="7186367841673660872">このページは<ph name="ORIGINAL_LANGUAGE" />から<ph name="LANGUAGE_LANGUAGE" />に翻訳されました</translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">処理しています</translation>
 <translation id="724691107663265825">アクセス先のサイトで不正なソフトウェアを検出しました</translation>
 <translation id="724975217298816891">カードの詳細を更新するには <ph name="CREDIT_CARD" /> の有効期限と CVC を入力します。確認を行うと、カードの詳細がこのサイトと共有されます。</translation>
+<translation id="7251437084390964440">ネットワーク設定が ONC 標準に準拠していません。設定の一部がインポートされない可能性があります。
+詳細:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">パソコンの日時(<ph name="DATE_AND_TIME" />)が正しくないため、<ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> へのプライベート接続を確立できません。</translation>
 <translation id="7260504762447901703">アクセス権を取り消します</translation>
 <translation id="7271803869921933038">利用可能なプリペイド カード</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">クラッシュ レポートが <ph name="UPLOAD_TIME" /> にアップロードされました</translation>
 <translation id="8412145213513410671">障害数(<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">同じパスフレーズを 2 回入力する必要があります。</translation>
+<translation id="8416694386774425977">ネットワーク設定が無効なためインポートできませんでした。
+詳細:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">設定</translation>
 <translation id="8433057134996913067">ほとんどのウェブサイトからログアウトします。</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">やり直し</translation>
 <translation id="8728672262656704056">シークレット モードです</translation>
 <translation id="8730621377337864115">完了</translation>
+<translation id="8733831205558190772">すべてのカードを 1 か所で保管</translation>
 <translation id="8738058698779197622">安全な接続を確立するには時計が正しく設定されている必要があります。この理由は、本物のウェブサイトであることを示すためにウェブサイトで使用される証明書には、有効期間(発効日時と失効日時)が設定されているためです。デバイスの時計が正しくないため、Chromium ではこれらの証明書を確認できません。</translation>
 <translation id="8740359287975076522"><ph name="HOST_NAME" /> の &lt;abbr id="dnsDefinition"&gt;DNS アドレス&lt;/abbr&gt;が見つかりませんでした。問題を診断しています。</translation>
 <translation id="874846938927089722">利用可能なクレジット カードとプリペイド カード</translation>
 <translation id="8759274551635299824">このカードは有効期限が切れています</translation>
 <translation id="8761567432415473239"><ph name="SITE" /> では最近、Google セーフ ブラウジングにより<ph name="BEGIN_LINK" />有害なプログラムが検出<ph name="END_LINK" />されました。</translation>
 <translation id="8763927697961133303">USB デバイス</translation>
+<translation id="8768895707659403558">お使いのどの端末でも同じカードを使用するには、<ph name="SIGN_IN_LINK" />します。</translation>
 <translation id="8790007591277257123">削除のやり直し(&amp;R)</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{このカードは Google アカウントに追加済みです。ログインしているすべての端末でこのカードを使用できます。}other{これらのカードは Google アカウントに追加済みです。ログインしているすべての端末でこのカードを使用できます。}}</translation>
 <translation id="8792621596287649091"><ph name="ORG_NAME" /> アカウントにアクセスできなくなったり、個人情報が盗まれたりする可能性があります。今すぐパスワードを変更することをおすすめします。</translation>
 <translation id="8800988563907321413">周辺のおすすめの場所がここに表示されます</translation>
 <translation id="8820817407110198400">ブックマーク</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index 35c19a3..8e5560c 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;기기의 날짜와 시간(<ph name="DATE_AND_TIME" />)이 잘못되어 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />에 비공개로 연결할 수 없습니다.&lt;/p&gt;
 
       &lt;p&gt;&lt;strong&gt;설정&lt;/strong&gt; 앱의 &lt;strong&gt;일반&lt;/strong&gt; 섹션에서 날짜와 시간을 맞추세요.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">이 웹페이지를 표시하는 도중 문제가 발생했습니다.</translation>
 <translation id="1592005682883173041">로컬 데이터 액세스</translation>
 <translation id="1594030484168838125">선택</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">잘못된 요청 또는 요청 매개변수</translation>
 <translation id="1826516787628120939">확인 중</translation>
 <translation id="1834321415901700177">이 사이트에 유해한 프로그램이 있습니다.</translation>
+<translation id="1839551713262164453">오류가 발생하여 정책 값의 유효성을 검사하지 못했습니다.</translation>
 <translation id="1840414022444569775">이미 사용된 카드 번호입니다.</translation>
 <translation id="1842969606798536927">결제하기</translation>
 <translation id="1871208020102129563">프록시가 .pac 스크립트 URL이 아닌 고정 프록시 서버를 사용하도록 설정됩니다.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">확인</translation>
 <translation id="2359629602545592467">복수</translation>
 <translation id="2359808026110333948">계속</translation>
+<translation id="2360873523816792727">어느 기기에서나 카드를 사용하려면 동기화를 사용 설정하세요.</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" />에 캡처된 비정상 종료 보고서가 업로드되지 않았습니다.</translation>
 <translation id="2367567093518048410">수준</translation>
 <translation id="2378238891085281592">시크릿 모드로 전환됨</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />쿠키 및 사이트 데이터
           <ph name="LIST_ITEM" />양식에 입력한 정보
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">카드 보기</translation>
 <translation id="3369192424181595722">시계 오류</translation>
 <translation id="337363190475750230">사용 중단됨</translation>
 <translation id="3377188786107721145">정책 파싱 오류</translation>
 <translation id="3380365263193509176">알 수 없는 오류가 발생했습니다.</translation>
 <translation id="3380864720620200369">클라이언트 ID:</translation>
+<translation id="3387261909427947069">결제 수단</translation>
 <translation id="3391030046425686457">배송지 주소</translation>
 <translation id="3395827396354264108">수령 방법</translation>
 <translation id="3399952811970034796">배달 주소</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">결제 검토</translation>
 <translation id="4116663294526079822">이 사이트에서 항상 허용</translation>
 <translation id="4117700440116928470">지원되지 않는 정책 범위입니다.</translation>
+<translation id="4119109454650683048">아래 정보를 확인하고 필요한 경우 오류를 수정하세요.</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{외 1개}other{외 #개}}</translation>
 <translation id="4130226655945681476">네트워크 케이블, 모뎀, 라우터 확인</translation>
 <translation id="413544239732274901">자세히 알아보기</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">사용할 수 없는 배달 방법입니다. 다른 방법을 선택하세요.</translation>
 <translation id="4858792381671956233">이 사이트를 방문해도 괜찮은지 부모님께 문의했습니다.</translation>
 <translation id="4876305945144899064">사용자 이름 없음</translation>
+<translation id="4879491255372875719">자동(기본값)</translation>
 <translation id="4880827082731008257">기록 검색</translation>
 <translation id="4881695831933465202">열기</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">저장된 비밀번호 모두 표시</translation>
 <translation id="5287240709317226393">쿠키 표시</translation>
+<translation id="5288108484102287882">정책 값 유효성 검사 결과 경고가 발생했습니다.</translation>
 <translation id="5299298092464848405">정책을 파싱하는 중 오류 발생</translation>
 <translation id="5308380583665731573">연결</translation>
 <translation id="5308689395849655368">비정상 종료 보고가 사용 중지되었습니다.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">정책 설정 저장 실패</translation>
 <translation id="5371425731340848620">카드 업데이트</translation>
 <translation id="5377026284221673050">'시간이 너무 먼 과거로 설정되어 있습니다.', '시간이 너무 먼 미래로 설정되어 있습니다.', 또는  '&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;'</translation>
+<translation id="5384855140246857529">어느 기기에서나 카드를 사용하려면 로그인하고 동기화를 사용 설정하세요.</translation>
 <translation id="5386426401304769735">이 사이트의 인증서 체인은 SHA-1을 사용하여 서명된 인증서를 포함합니다.</translation>
 <translation id="5387961145478138773">즐겨 사용하는 Google 앱에 빠르게 액세스합니다.</translation>
 <translation id="540969355065856584">이 서버가 <ph name="DOMAIN" />임을 입증할 수 없습니다. 서버의 보안 인증서가 현재 유효하지 않습니다. 서버를 잘못 설정했거나 해커가 연결을 가로채고 있기 때문일 수 있습니다.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">신용카드를 사용할 수 있습니다.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" />(동기화됨)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1개 사용 중}other{#개 사용 중}}</translation>
+<translation id="5922853866070715753">거의 완료되었습니다</translation>
 <translation id="5939518447894949180">초기화</translation>
 <translation id="5967592137238574583">연락처 정보 수정</translation>
 <translation id="5967867314010545767">기록에서 삭제</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">현재 <ph name="SITE" />에서 인증서 고정을 사용하기 때문에 방문할 수 없습니다. 네트워크 오류와 공격은 대부분 일시적이므로 나중에 이 페이지가 정상적으로 작동할 수 있습니다.</translation>
 <translation id="6059925163896151826">USB 기기</translation>
 <translation id="6071091556643036997">잘못된 정책 유형입니다.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{모든 기기에서 신속하게 결제하기 위해 이 카드가 Google 계정에 저장됩니다.}other{모든 기기에서 신속하게 결제하기 위해 이 카드가 Google 계정에 저장됩니다.}}</translation>
 <translation id="6080696365213338172">관리자 제공 인증서를 사용하여 콘텐츠에 액세스했습니다. 사용자가 <ph name="DOMAIN" />에 제공한 데이터가 관리자에 의해 차단될 수 있습니다.</translation>
 <translation id="610911394827799129">Google 계정의 내 활동(<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />)에는 인터넷 방문 기록이 다른 형식으로 남아 있을 수도 있습니다</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{없음}=1{비밀번호 1개(동기화됨)}other{비밀번호 #개(동기화됨)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">기기</translation>
 <translation id="6970216967273061347">구</translation>
 <translation id="6973656660372572881">고정 프록시 서버와 .pac 스크립트 URL이 모두 지정되어 있습니다.</translation>
+<translation id="6979440798594660689">음소거(기본값)</translation>
 <translation id="6984479912851154518">시크릿 모드를 종료하고 외부 애플리케이션에서 결제합니다. 계속하시겠습니까?</translation>
 <translation id="6989763994942163495">고급 설정 표시</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> 외 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />개}other{<ph name="PAYMENT_METHOD_PREVIEW" /> 외 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />개}}</translation>
 <translation id="717330890047184534">GAIA ID:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> 외 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />개}other{<ph name="SHIPPING_OPTION_PREVIEW" /> 외 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />개}}</translation>
+<translation id="7179323680825933600">결제 수단 저장 및 자동 입력</translation>
 <translation id="7180611975245234373">새로고침</translation>
 <translation id="7182878459783632708">설정된 정책 없음</translation>
 <translation id="7186367841673660872">이 페이지는<ph name="ORIGINAL_LANGUAGE" />에서<ph name="LANGUAGE_LANGUAGE" />로 번역되었습니다.</translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">처리 중</translation>
 <translation id="724691107663265825">다음 사이트에 멀웨어가 있습니다.</translation>
 <translation id="724975217298816891">카드 세부정보를 업데이트하려면 <ph name="CREDIT_CARD" /> 카드의 만료일과 CVC를 입력하세요. 카드를 확인하면 카드 세부정보가 이 사이트와 공유됩니다.</translation>
+<translation id="7251437084390964440">네트워크 설정이 ONC 표준을 준수하지 않습니다. 일부 설정을 가져오지 못했을 수도 있습니다.
+추가 세부정보:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">컴퓨터의 날짜와 시간(<ph name="DATE_AND_TIME" />)이 잘못되어 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />에 대한 비공개 연결을 설정할 수 없습니다.</translation>
 <translation id="7260504762447901703">액세스 취소</translation>
 <translation id="7271803869921933038">사용 가능한 선불카드</translation>
@@ -1038,6 +1054,9 @@
 <translation id="8398259832188219207">비정상 종료 보고서가 <ph name="UPLOAD_TIME" />에 업로드됨</translation>
 <translation id="8412145213513410671">비정상 종료(<ph name="CRASH_COUNT" />회)</translation>
 <translation id="8412392972487953978">동일한 암호를 두 번 입력해야 합니다.</translation>
+<translation id="8416694386774425977">네트워크 설정이 잘못되어 가져올 수 없습니다.
+추가 세부정보:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">설정</translation>
 <translation id="8433057134996913067">이 작업을 수행하면 대부분의 웹사이트에서 로그아웃됩니다.</translation>
@@ -1069,13 +1088,16 @@
 <translation id="8725066075913043281">다시 시도하세요</translation>
 <translation id="8728672262656704056">시크릿 모드로 전환됨</translation>
 <translation id="8730621377337864115">완료</translation>
+<translation id="8733831205558190772">모든 카드를 한곳에 보관</translation>
 <translation id="8738058698779197622">보안 연결을 설정하려면 시계가 올바로 설정되어 있어야 합니다. 웹사이트가 자신을 식별하는 데 사용하는 인증서가 특정 기간에만 유효하기 때문입니다. 기기의 시계가 잘못 설정되어 Chromium에서 이 인증서를 확인할 수 없습니다.</translation>
 <translation id="8740359287975076522"><ph name="HOST_NAME" />의 &lt;abbr id="dnsDefinition"&gt;DNS 주소&lt;/abbr&gt;를 찾을 수 없습니다. 문제를 진단하는 중입니다.</translation>
 <translation id="874846938927089722">사용 가능한 신용카드 및 선불카드</translation>
 <translation id="8759274551635299824">만료된 카드입니다.</translation>
 <translation id="8761567432415473239">Google 세이프 브라우징 결과 <ph name="SITE" />에서 최근 <ph name="BEGIN_LINK" />악성 프로그램이 발견<ph name="END_LINK" />되었습니다.</translation>
 <translation id="8763927697961133303">USB 기기</translation>
+<translation id="8768895707659403558">어느 기기에서나 카드를 사용하려면 <ph name="SIGN_IN_LINK" />하세요.</translation>
 <translation id="8790007591277257123">삭제 다시 실행(&amp;R)</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Google 계정에 카드가 추가되었습니다. 로그인된 모든 기기에서 이 카드를 사용할 수 있습니다.}other{Google 계정에 카드가 추가되었습니다. 로그인된 모든 기기에서 이 카드를 사용할 수 있습니다.}}</translation>
 <translation id="8792621596287649091"><ph name="ORG_NAME" /> 계정에 액세스할 수 없게 되거나 신원 도용이 발생할 수도 있습니다. 따라서 지금 비밀번호를 변경하는 것이 좋습니다.</translation>
 <translation id="8800988563907321413">근처 추천 항목이 여기에 표시됩니다.</translation>
 <translation id="8820817407110198400">북마크</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 178e1d8c..b8baf79c 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Nepavyksta užmegzti privataus ryšio su <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, nes įrenginio data ir laikas (<ph name="DATE_AND_TIME" />) yra netinkami.&lt;/p&gt;
 
       &lt;p&gt;Koreguokite datą ir laiką programos &lt;strong&gt;Settings&lt;/strong&gt; skiltyje &lt;strong&gt;General&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Rodant šį tinklalapį įvyko nenumatyta klaida.</translation>
 <translation id="1592005682883173041">Prieiga prie vietinių duomenų</translation>
 <translation id="1594030484168838125">Pasirinkti</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Netinkama užklausa arba jos parametrai</translation>
 <translation id="1826516787628120939">Tikrinama</translation>
 <translation id="1834321415901700177">Šioje svetainėje yra kenkėjiškų programų</translation>
+<translation id="1839551713262164453">Nepavyko patvirtinti politikos verčių (rasta klaidų)</translation>
 <translation id="1840414022444569775">Šis kortelės numeris jau naudojamas</translation>
 <translation id="1842969606798536927">Mokėti</translation>
 <translation id="1871208020102129563">Įgaliotasis serveris nustatytas naudoti fiksuotų įgaliotųjų serverių, o ne .pac scenarijaus URL.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Paklausti</translation>
 <translation id="2359629602545592467">Kelios</translation>
 <translation id="2359808026110333948">Tęsti</translation>
+<translation id="2360873523816792727">Norėdami naudoti korteles visuose įrenginiuose, įjunkite sinchronizavimą.</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" /> užfiksuota strigčių ataskaita nebuvo įkelta</translation>
 <translation id="2367567093518048410">Lygis</translation>
 <translation id="2378238891085281592">Įjungėte privatų režimą</translation>
@@ -352,11 +355,13 @@
           <ph name="LIST_ITEM" />slapukų ir svetainių duomenų;
           <ph name="LIST_ITEM" />formose įvestos informacijos.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Peržiūrėti korteles</translation>
 <translation id="3369192424181595722">Laikrodžio klaida</translation>
 <translation id="337363190475750230">Teikimas nutrauktas</translation>
 <translation id="3377188786107721145">Politikos analizės klaida</translation>
 <translation id="3380365263193509176">Nežinoma klaida</translation>
 <translation id="3380864720620200369">Kliento ID:</translation>
+<translation id="3387261909427947069">Mokėjimo metodai</translation>
 <translation id="3391030046425686457">Pristatymo adresas</translation>
 <translation id="3395827396354264108">Paėmimo metodas</translation>
 <translation id="3399952811970034796">Pristatymo adresas</translation>
@@ -453,6 +458,7 @@
 <translation id="4110652170750985508">Mokėjimo peržiūra</translation>
 <translation id="4116663294526079822">Visada leisti šioje svetainėje</translation>
 <translation id="4117700440116928470">Politikos aprėptis nepalaikoma.</translation>
+<translation id="4119109454650683048">Patikrinkite toliau pateiktą informaciją ir prireikus ištaisykite klaidas</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{Dar 1}one{Dar #}few{Dar #}many{Dar #}other{Dar #}}</translation>
 <translation id="4130226655945681476">Patikrinti tinklo laidus, modemą ir maršruto parinktuvą</translation>
 <translation id="413544239732274901">Sužinokite daugiau</translation>
@@ -558,6 +564,7 @@
 <translation id="4854362297993841467">Šis pristatymo metodas nepasiekiamas. Išbandykite kitą metodą.</translation>
 <translation id="4858792381671956233">Paprašėte tėvų leidimo apsilankyti šiame puslapyje</translation>
 <translation id="4876305945144899064">Nėra naudotojo vardo</translation>
+<translation id="4879491255372875719">Automatinis (numatytasis)</translation>
 <translation id="4880827082731008257">Ieškoti istorijoje</translation>
 <translation id="4881695831933465202">Atidaryti</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -623,6 +630,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Rodyti visus išsaugotus slaptažodžius</translation>
 <translation id="5287240709317226393">Rodyti slapukus</translation>
+<translation id="5288108484102287882">Patvirtinant politikos vertes pateikta įspėjimų</translation>
 <translation id="5299298092464848405">Analizuojant politiką įvyko klaida</translation>
 <translation id="5308380583665731573">Prisijungti</translation>
 <translation id="5308689395849655368">Strigčių ataskaitų teikimas neleidžiamas.</translation>
@@ -635,6 +643,7 @@
 <translation id="536296301121032821">Išsaugant politikos nustatymus įvyko klaida</translation>
 <translation id="5371425731340848620">Atnaujinkite kortelę</translation>
 <translation id="5377026284221673050">„Laikrodis atsilieka“, „Laikrodis skuba“ arba „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;“</translation>
+<translation id="5384855140246857529">Norėdami naudoti korteles visuose įrenginiuose, prisijunkite ir įjunkite sinchronizavimą.</translation>
 <translation id="5386426401304769735">Šios svetainės sertifikatų grandinėje yra sertifikatas, pasirašytas naudojant SHA-1.</translation>
 <translation id="5387961145478138773">Greičiau pasiekite mėgstamiausias „Google“ programas</translation>
 <translation id="540969355065856584">Šiam serveriui nepavyko patvirtinti, kad jis yra <ph name="DOMAIN" />; šiuo metu jo saugos sertifikatas negalioja. Tai gali būti dėl netinkamos konfigūracijos arba dėl ryšį pertraukusio užgrobėjo.</translation>
@@ -710,6 +719,7 @@
 <translation id="5893752035575986141">Kredito kortelės tinkamos.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (sinchronizuota)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Naudojamas 1 slapukas}one{Naudojamas # slapukas}few{Naudojami # slapukai}many{Naudojama # slapuko}other{Naudojama # slapukų}}</translation>
+<translation id="5922853866070715753">Beveik atlikta</translation>
 <translation id="5939518447894949180">Nustatyti iš naujo</translation>
 <translation id="5967592137238574583">Kontaktinės informacijos redagavimas</translation>
 <translation id="5967867314010545767">Pašalinti iš istorijos</translation>
@@ -730,6 +740,7 @@
 <translation id="6051221802930200923">Šiuo metu negalite apsilankyti <ph name="SITE" />, nes svetainėje naudojamas sertifikatų prisegimas. Tinklo klaidos ir užpuolimai dažniausiai yra laikini, todėl šis puslapis vėliau tikriausiai veiks.</translation>
 <translation id="6059925163896151826">USB įrenginiai</translation>
 <translation id="6071091556643036997">Politikos tipas netinkamas.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Ši kortelė bus išsaugota „Google“ paskyroje, kad galėtumėte greičiau apdoroti mokėjimą naudodami įrenginius.}one{Šios kortelės bus išsaugotos „Google“ paskyroje, kad galėtumėte greičiau apdoroti mokėjimą naudodami įrenginius.}few{Šios kortelės bus išsaugotos „Google“ paskyroje, kad galėtumėte greičiau apdoroti mokėjimą naudodami įrenginius.}many{Šios kortelės bus išsaugotos „Google“ paskyroje, kad galėtumėte greičiau apdoroti mokėjimą naudodami įrenginius.}other{Šios kortelės bus išsaugotos „Google“ paskyroje, kad galėtumėte greičiau apdoroti mokėjimą naudodami įrenginius.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Nėra}=1{1 slaptažodis (sinchronizuotas)}one{# slaptažodis (sinchronizuotas)}few{# slaptažodžiai (sinchronizuoti)}many{# slaptažodžio (sinchronizuota)}other{# slaptažodžių (sinchronizuota)}}</translation>
@@ -832,6 +843,7 @@
 <translation id="6965978654500191972">Įrenginys</translation>
 <translation id="6970216967273061347">Rajonas</translation>
 <translation id="6973656660372572881">Nurodyti fiksuoti įgaliotieji serveriai ir .pac scenarijaus URL.</translation>
+<translation id="6979440798594660689">Nutildyti (numatytasis)</translation>
 <translation id="6984479912851154518">Išjungiate privatų režimą, kad galėtumėte sumokėti naudodami išorinę programą. Tęsti?</translation>
 <translation id="6989763994942163495">Rodyti išplėstinius nustatymus...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -852,6 +864,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> ir dar <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" /> ir dar <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}few{<ph name="PAYMENT_METHOD_PREVIEW" /> ir dar <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}many{<ph name="PAYMENT_METHOD_PREVIEW" /> ir dar <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> ir dar <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">„Gaia“ ID:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> ir dar <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" /> ir dar <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" /> ir dar <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}many{<ph name="SHIPPING_OPTION_PREVIEW" /> ir dar <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> ir dar <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Išsaugoti ir užpildyti mokėjimo metodų informaciją</translation>
 <translation id="7180611975245234373">Atnaujinti</translation>
 <translation id="7182878459783632708">Nenustatyta jokia politika</translation>
 <translation id="7186367841673660872">Šis puslapis išverstas iš<ph name="ORIGINAL_LANGUAGE" />į<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -863,6 +876,9 @@
 <translation id="7220786058474068424">Apdorojama</translation>
 <translation id="724691107663265825">Svetainėje, kurioje ketinate apsilankyti, yra kenkėjiškų programų</translation>
 <translation id="724975217298816891">Jei norite atnaujinti išsamią kortelės informaciją, įveskite „<ph name="CREDIT_CARD" />“ galiojimo pabaigos datą ir kortelės saugos kodą (CVC). Kai patvirtinsite, išsami kortelės informacija bus bendrinama su šia svetaine.</translation>
+<translation id="7251437084390964440">Tinklo konfigūracija neatitinka ONC standarto. Kai kurių konfigūracijos dalių negalima importuoti.
+Papildoma išsami informacija:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Nepavyksta užmegzti privataus ryšio su <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, nes kompiuterio data ir laikas (<ph name="DATE_AND_TIME" />) yra netinkami.</translation>
 <translation id="7260504762447901703">Anuliuoti prieigą</translation>
 <translation id="7271803869921933038">Tinkamos išankstinio mokėjimo kortelės</translation>
@@ -1040,6 +1056,9 @@
 <translation id="8398259832188219207">Strigčių ataskaita įkelta <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Strigtys (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Reikia du kartus įvesti tą pačią slaptafrazę.</translation>
+<translation id="8416694386774425977">Tinklo konfigūracija netinkama ir jos nepavyko importuoti.
+Papildoma išsami informacija:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Nustatymai</translation>
 <translation id="8433057134996913067">Tai atlikę atsijungsite nuo daugumos svetainių.</translation>
@@ -1072,13 +1091,16 @@
 <translation id="8725066075913043281">Bandyti dar kartą</translation>
 <translation id="8728672262656704056">Veikia inkognito režimas</translation>
 <translation id="8730621377337864115">Atlikta</translation>
+<translation id="8733831205558190772">Visos jūsų kortelės vienoje vietoje</translation>
 <translation id="8738058698779197622">Jei norite užmegzti saugų ryšį, turėsite tinkamai nustatyti laikrodį. To reikalaujama todėl, kad svetainių tapatybei įrodyti naudojami sertifikatai galioja tik tam tikrą laikotarpį. Kadangi įrenginio laikrodis nustatytas netinkamai, „Chromium“ negali tinkamai patvirtinti sertifikatų.</translation>
 <translation id="8740359287975076522">Nepavyko rasti <ph name="HOST_NAME" /> &lt;abbr id="dnsDefinition"&gt;DNS adreso&lt;/abbr&gt;. Nustatoma problema.</translation>
 <translation id="874846938927089722">Tinkamos kredito ir išankstinio mokėjimo kortelės</translation>
 <translation id="8759274551635299824">Ši kortelė nebegalioja</translation>
 <translation id="8761567432415473239">„Google“ saugaus naršymo funkcija neseniai <ph name="BEGIN_LINK" />rado kenkėjiškų programų<ph name="END_LINK" /> <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">USB įrenginys</translation>
+<translation id="8768895707659403558">Norėdami naudoti korteles visuose įrenginiuose, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Ištrinti dar kartą</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Ši kortelė pridėta prie „Google“ paskyros. Dabar galite ją naudoti iš bet kurio įrenginio, kuriame esate prisijungę.}one{Šios kortelės pridėtos prie „Google“ paskyros. Dabar galite jas naudoti iš bet kurio įrenginio, kuriame esate prisijungę.}few{Šios kortelės pridėtos prie „Google“ paskyros. Dabar galite jas naudoti iš bet kurio įrenginio, kuriame esate prisijungę.}many{Šios kortelės pridėtos prie „Google“ paskyros. Dabar galite jas naudoti iš bet kurio įrenginio, kuriame esate prisijungę.}other{Šios kortelės pridėtos prie „Google“ paskyros. Dabar galite jas naudoti iš bet kurio įrenginio, kuriame esate prisijungę.}}</translation>
 <translation id="8792621596287649091">Galite prarasti galimybę pasiekti „<ph name="ORG_NAME" />“ paskyrą arba gali būti pavogta tapatybė. „Chromium“ rekomenduoja pakeisti slaptažodį dabar.</translation>
 <translation id="8800988563907321413">Netoliese esantys pasiūlymai jums rodomi čia</translation>
 <translation id="8820817407110198400">Žymės</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index f8073b7..2bf6947 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Nevar izveidot privātu savienojumu ar <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, jo jūsu ierīces datums un laiks (<ph name="DATE_AND_TIME" />) nav pareizi.&lt;/p&gt;
 
       &lt;p&gt;Lūdzu, koriģējiet datumu un laiku lietotnes &lt;strong&gt;Iestatījumi&lt;/strong&gt; sadaļā &lt;strong&gt;Vispārīgi&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Šīs tīmekļa lapas rādīšanas laikā radās kļūda.</translation>
 <translation id="1592005682883173041">Piekļuve lokālajiem datiem</translation>
 <translation id="1594030484168838125">Izvēlēties</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Pieprasījums vai tā parametri nebija derīgi.</translation>
 <translation id="1826516787628120939">Pārbaude</translation>
 <translation id="1834321415901700177">Šī vietne satur kaitnieciskas programmas</translation>
+<translation id="1839551713262164453">Politikas vērtību validēšana neizdevās, tika konstatētas kļūdas</translation>
 <translation id="1840414022444569775">Šis kartes numurs jau tiek izmantots.</translation>
 <translation id="1842969606798536927">Maksāt</translation>
 <translation id="1871208020102129563">Starpniekserveris ir iestatīts, lai tas lietotu fiksētus starpniekserverus, nevis .pac skripta URL.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Vaicāt</translation>
 <translation id="2359629602545592467">Vairākas</translation>
 <translation id="2359808026110333948">Turpināt</translation>
+<translation id="2360873523816792727">Lai kartes varētu izmantot visās ierīcēs, ieslēdziet sinhronizāciju.</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" /> notverts ziņojums par avāriju; netika lejupielādēts</translation>
 <translation id="2367567093518048410">Līmenis</translation>
 <translation id="2378238891085281592">Jūs esat atvēris privāto režīmu</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />sīkfaili un vietņu dati;
           <ph name="LIST_ITEM" />veidlapās ievadītā informācija.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Skatīt kartes</translation>
 <translation id="3369192424181595722">Pulksteņa kļūda</translation>
 <translation id="337363190475750230">Tika noņemta piekļuve</translation>
 <translation id="3377188786107721145">Radās politikas parsēšanas kļūda.</translation>
 <translation id="3380365263193509176">Nezināma kļūda</translation>
 <translation id="3380864720620200369">Klienta ID:</translation>
+<translation id="3387261909427947069">Maksājumu veidi</translation>
 <translation id="3391030046425686457">Piegādes adrese</translation>
 <translation id="3395827396354264108">Saņemšanas veids</translation>
 <translation id="3399952811970034796">Piegādes adrese</translation>
@@ -451,6 +456,7 @@
 <translation id="4110652170750985508">Maksājuma pārskatīšana</translation>
 <translation id="4116663294526079822">Vienmēr atļaut šajā vietnē</translation>
 <translation id="4117700440116928470">Politikas diapazons netiek atbalstīts.</translation>
+<translation id="4119109454650683048">Lūdzu, pārbaudiet tālāk sniegto informāciju un nepieciešamības gadījumā labojiet kļūdas</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>
@@ -556,6 +562,7 @@
 <translation id="4854362297993841467">Šis piegādes veids nav pieejams. Izmēģiniet citu veidu.</translation>
 <translation id="4858792381671956233">Jūs lūdzāt vecākiem atļauju apmeklēt šo lapu</translation>
 <translation id="4876305945144899064">Nav lietotājvārda</translation>
+<translation id="4879491255372875719">Automātiski (noklusējums)</translation>
 <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>
@@ -621,6 +628,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Rādīt visas saglabātās paroles</translation>
 <translation id="5287240709317226393">Rādīt sīkfailus</translation>
+<translation id="5288108484102287882">Validējot politikas vērtības, tika konstatētas kļūdas</translation>
 <translation id="5299298092464848405">Parsējot politiku, radās kļūda.</translation>
 <translation id="5308380583665731573">Pievienošana</translation>
 <translation id="5308689395849655368">Avāriju pārskatu izveide ir atspējota.</translation>
@@ -633,6 +641,7 @@
 <translation id="536296301121032821">Neizdevās saglabāt politikas iestatījumus.</translation>
 <translation id="5371425731340848620">Kartes atjaunināšana</translation>
 <translation id="5377026284221673050">“Pulkstenis atpaliek”, “Pulkstenis steidzas” vai “&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;”</translation>
+<translation id="5384855140246857529">Lai kartes varētu izmantot visās ierīcēs, pierakstieties un ieslēdziet sinhronizāciju.</translation>
 <translation id="5386426401304769735">Šīs vietnes sertifikātu ķēdē ir iekļauts sertifikāts, kas ir parakstīts, izmantojot SHA-1.</translation>
 <translation id="5387961145478138773">Ātrāk piekļūstiet iecienītajām Google lietotnēm</translation>
 <translation id="540969355065856584">Šis serveris nevarēja pierādīt, ka šī ir vietne <ph name="DOMAIN" />; tā drošības sertifikāts šobrīd nav derīgs. Iespējams, tas ir nepareizas konfigurācijas dēļ vai arī kāds ļaunprātīgi izmanto jūsu savienojumu.</translation>
@@ -708,6 +717,7 @@
 <translation id="5893752035575986141">Tiek pieņemtas kredītkartes.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (veikta sinhronizācija)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 tiek lietots}zero{# tiek lietoti}one{# tiek lietots}other{# tiek lietoti}}</translation>
+<translation id="5922853866070715753">Gandrīz pabeigts</translation>
 <translation id="5939518447894949180">Atiestatīt</translation>
 <translation id="5967592137238574583">Kontaktinformācijas rediģēšana</translation>
 <translation id="5967867314010545767">Noņemt no vēstures</translation>
@@ -728,6 +738,7 @@
 <translation id="6051221802930200923">Pašlaik nevarat apmeklēt vietni <ph name="SITE" />, jo tajā tiek izmantota sertifikātu piespraušana. Tā kā tīkla kļūdas un uzbrukumi parasti ir īslaicīgi, visticamāk, šī lapa vēlāk darbosies.</translation>
 <translation id="6059925163896151826">USB ierīces</translation>
 <translation id="6071091556643036997">Politikas veids nav derīgs.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Šī karte tiks saglabāta jūsu Google kontā, lai paātrinātu norēķināšanos dažādās ierīcēs.}zero{Šīs kartes tiks saglabātas jūsu Google kontā, lai paātrinātu norēķināšanos dažādās ierīcēs.}one{Šīs kartes tiks saglabātas jūsu Google kontā, lai paātrinātu norēķināšanos dažādās ierīcēs.}other{Šīs kartes tiks saglabātas jūsu Google kontā, lai paātrinātu norēķināšanos dažādās ierīcēs.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Nav}=1{1 parole (sinhronizēta)}zero{# paroles (sinhronizētas)}one{# parole (sinhronizēta)}other{# paroles (sinhronizētas)}}</translation>
@@ -830,6 +841,7 @@
 <translation id="6965978654500191972">Ierīce</translation>
 <translation id="6970216967273061347">Rajons</translation>
 <translation id="6973656660372572881">Ir norādīti gan fiksēti starpniekserveri, gan .pac skripta URL.</translation>
+<translation id="6979440798594660689">Izslēgt skaņu (noklusējums)</translation>
 <translation id="6984479912851154518">Ja maksāšanai tiks izmantota ārējā lietojumprogramma, tiks aizvērts privātais režīms. Vai turpināt?</translation>
 <translation id="6989763994942163495">Rādīt papildu iestatījumus...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -850,6 +862,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> un vēl <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}zero{<ph name="PAYMENT_METHOD_PREVIEW" /> un vēl <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" /> un vēl <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> un vēl <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">GAIA ID:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> un vēl <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}zero{<ph name="SHIPPING_OPTION_PREVIEW" /> un vēl <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" /> un vēl <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> un vēl <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Saglabāt un aizpildīt maksājumu veidus</translation>
 <translation id="7180611975245234373">Atsvaidzināt</translation>
 <translation id="7182878459783632708">Nav iestatīta neviena politika</translation>
 <translation id="7186367841673660872">Šī lapa ir tulkota no<ph name="ORIGINAL_LANGUAGE" />valodas<ph name="LANGUAGE_LANGUAGE" />valodā</translation>
@@ -861,6 +874,9 @@
 <translation id="7220786058474068424">Notiek apstrāde</translation>
 <translation id="724691107663265825">Vietnē ir ļaunprātīga programmatūra</translation>
 <translation id="724975217298816891">Lai atjauninātu kartes informāciju, ievadiet kredītkartes <ph name="CREDIT_CARD" /> derīguma termiņu un CVC. Pēc apstiprināšanas kartes informācija tiks kopīgota ar šo vietni.</translation>
+<translation id="7251437084390964440">Tīkla konfigurācija neatbilst standartam ONC. Iespējams, konfigurācijas daļas netiks importētas.
+Papildu informācija:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Nevar izveidot privātu savienojumu ar <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, jo jūsu datora datums un laiks (<ph name="DATE_AND_TIME" />) nav pareizs.</translation>
 <translation id="7260504762447901703">Atsaukt piekļuvi</translation>
 <translation id="7271803869921933038">Atbalstītās priekšapmaksas kartes</translation>
@@ -1038,6 +1054,9 @@
 <translation id="8398259832188219207">Avāriju pārskats augšupielādēts: <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Avārijas (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Viena un tā pati ieejas frāze jāievada divreiz.</translation>
+<translation id="8416694386774425977">Tīkla konfigurācija nav derīga, un to nevarēja importēt.
+Papildu informācija:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" />, <ph name="SECOND_LABEL" />, <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Iestatījumi</translation>
 <translation id="8433057134996913067">Šādi tiksiet izrakstīts no lielākās daļas vietņu.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Mēģināt vēlreiz</translation>
 <translation id="8728672262656704056">Jūs esat atvēris inkognito režīmu</translation>
 <translation id="8730621377337864115">Gatavs</translation>
+<translation id="8733831205558190772">Visas kartes vienuviet</translation>
 <translation id="8738058698779197622">Lai izveidotu drošu savienojumu, ir jāiestata pareizs pulksteņa laiks. Tas ir nepieciešams, jo sertifikāti, kurus vietnes izmanto, lai tiktu identificētas, ir derīgi tikai noteiktos laika periodos. Tā kā jūsu ierīces pulkstenis nav pareizi iestatīts, Chromium nevar verificēt šos sertifikātus.</translation>
 <translation id="8740359287975076522">Nevarēja atrast <ph name="HOST_NAME" /> &lt;abbr id="dnsDefinition"&gt;DNS adresi&lt;/abbr&gt;. Notiek problēmas diagnosticēšana.</translation>
 <translation id="874846938927089722">Atbalstītās kredītkartes un priekšapmaksas kartes</translation>
 <translation id="8759274551635299824">Kartes derīguma termiņš ir beidzies</translation>
 <translation id="8761567432415473239">Google drošās pārlūkošanas tehnoloģija nesen vietnē <ph name="SITE" /> <ph name="BEGIN_LINK" />atklāja kaitīgas programmas<ph name="END_LINK" />.</translation>
 <translation id="8763927697961133303">USB ierīce</translation>
+<translation id="8768895707659403558">Lai kartes varētu izmantot visās ierīcēs, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Atcelt dzēšanas atsaukšanu</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Šī karte ir pievienota jūsu Google kontam. Tagad to varat izmantot visās ierīcēs, kurās esat pierakstījies.}zero{Šīs kartes ir pievienotas jūsu Google kontam. Tagad tās varat izmantot visās ierīcēs, kurās esat pierakstījies.}one{Šīs kartes ir pievienotas jūsu Google kontam. Tagad tās varat izmantot visās ierīcēs, kurās esat pierakstījies.}other{Šīs kartes ir pievienotas jūsu Google kontam. Tagad tās varat izmantot visās ierīcēs, kurās esat pierakstījies.}}</translation>
 <translation id="8792621596287649091">Varat zaudēt piekļuvi savam <ph name="ORG_NAME" /> kontam, vai jūsu identitāte var tikt nozagta. Chromium iesaka nekavējoties nomainīt paroli.</translation>
 <translation id="8800988563907321413">Šeit tiks parādīti funkcijas Tuvumā ieteikumi</translation>
 <translation id="8820817407110198400">Grāmatzīmes</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index db5d25e..8e3579e8 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;നിങ്ങളുടെ ഉപകരണത്തിന്റെ തീയതിയും സമയവും (<ph name="DATE_AND_TIME" />) തെറ്റായതിനാൽ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> എന്നതിലേക്ക് ഒരു സ്വകാര്യ കണക്ഷൻ സ്ഥാപിക്കാനാകില്ല.&lt;/p&gt;
 
           &lt;p&gt;&lt;strong&gt;ക്രമീകരണ&lt;/strong&gt; ആപ്പിന്റെ &lt;strong&gt;പൊതുവായവ&lt;/strong&gt; വിഭാഗത്തിൽ നിന്ന് തീയതിയും സമയവും ക്രമീകരിക്കുക.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">ഈ വെബ്‌പേജ് പ്രദർശിപ്പിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു.</translation>
 <translation id="1592005682883173041">പ്രാദേശിക ഡാറ്റ ആക്‌സസ്സ്</translation>
 <translation id="1594030484168838125">തിരഞ്ഞെടുക്കുക</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">അഭ്യർത്ഥന അല്ലെങ്കിൽ അഭ്യർത്ഥന പാരാമീറ്ററുകൾ അസാധുവാണ്</translation>
 <translation id="1826516787628120939">പരിശോധിക്കുന്നു</translation>
 <translation id="1834321415901700177">ഈ സൈറ്റിൽ ദോഷകരമായ പ്രോഗ്രാമുകൾ അടങ്ങിയിരിക്കുന്നു</translation>
+<translation id="1839551713262164453">നയ മൂല്യങ്ങളുടെ സാധൂകരണം പിശകുകളോടെ പരാജയപ്പെട്ടു</translation>
 <translation id="1840414022444569775">ഈ കാർഡ് ‌നമ്പർ മുമ്പ് ഉപയോഗിച്ചിട്ടുണ്ട്</translation>
 <translation id="1842969606798536927">പണമടയ്‌ക്കുക</translation>
 <translation id="1871208020102129563">സ്ഥിരമായ പ്രോക്‌സി സെർവറുകൾ ഉപയോഗിക്കുന്നതിനായി പ്രോക്‌സി സജ്ജീകരിച്ചിരിക്കുന്നു, ഒരു .pac സ്‌ക്രിപ്റ്റ് URL ഉപയോഗിക്കുന്നതിനല്ല.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">ചോദിക്കുക</translation>
 <translation id="2359629602545592467">ഒന്നിലധികം</translation>
 <translation id="2359808026110333948">തുടരൂ</translation>
+<translation id="2360873523816792727">എല്ലാ ഉപകരണങ്ങളിലും നിങ്ങളുടെ കാർഡുകൾ ഉപയോഗിക്കുന്നതിന്, സമന്വയിപ്പിക്കൽ ഓണാക്കുക.</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" />-ന് ക്യാപ്‌ച്ചർ ചെയ്‌ത ക്രാഷ് റിപ്പോർട്ട് അപ്‌ലോഡുചെയ്‌തിട്ടില്ല</translation>
 <translation id="2367567093518048410">നില</translation>
 <translation id="2378238891085281592">നിങ്ങൾ സ്വകാര്യ മോഡിലേക്ക് മാറിയിരിക്കുന്നു</translation>
@@ -350,11 +353,13 @@
           <ph name="LIST_ITEM" />കുക്കികളും സൈറ്റ് ഡാറ്റയും
           <ph name="LIST_ITEM" />ഫോമുകളിൽ നൽകുന്ന വിവരങ്ങൾ
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">കാർഡുകൾ കാണുക</translation>
 <translation id="3369192424181595722">ക്ലോക്കിലെ പിശക്</translation>
 <translation id="337363190475750230">ഡിപ്രൊവിഷൻ ചെയ്‌തു</translation>
 <translation id="3377188786107721145">നയം പാഴ്‌സുചെയ്യുന്നതിൽ പിശക്</translation>
 <translation id="3380365263193509176">അജ്ഞാതമായ പിശക്</translation>
 <translation id="3380864720620200369">ക്ലയന്റ് ID:</translation>
+<translation id="3387261909427947069">പേയ്‌മെന്റ് രീതികൾ</translation>
 <translation id="3391030046425686457">ഡെലിവർ ചെയ്യേണ്ട വിലാസം</translation>
 <translation id="3395827396354264108">പിക്കപ്പ് രീതി</translation>
 <translation id="3399952811970034796">ഡെലിവറി നൽകേണ്ട വിലാസം</translation>
@@ -451,6 +456,7 @@
 <translation id="4110652170750985508">നിങ്ങളുടെ പേയ്‌മെന്റ് അവലോകനം ചെയ്യുക</translation>
 <translation id="4116663294526079822">ഈ സൈറ്റിൽ എല്ലായ്‌പ്പോഴും അനുവദിക്കുക</translation>
 <translation id="4117700440116928470">നയ സ്‌കോപ്പ് പിന്തുണയ്ക്കുന്നില്ല.</translation>
+<translation id="4119109454650683048">ചുവടെയുള്ള വിവരം പരിശോധിച്ച്, ആവശ്യമെങ്കിൽ, ഏതെങ്കിലും പിശകുകളുള്ളത് പരിഹരിക്കുക</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{മറ്റൊരെണ്ണം}other{മറ്റ് # എണ്ണം}}</translation>
 <translation id="4130226655945681476">നെറ്റ്‌വർക്ക് കേബിളുകളും മോഡവും റൂട്ടറും പരിശോധിക്കുന്നു</translation>
 <translation id="413544239732274901">കൂടുതലറിയുക</translation>
@@ -556,6 +562,7 @@
 <translation id="4854362297993841467">ഈ ഡെലിവറി രീതി ലഭ്യമല്ല. മറ്റൊരു രീതി പരീക്ഷിക്കുക.</translation>
 <translation id="4858792381671956233">ഈ സൈറ്റ് സന്ദർശിക്കുന്നതിന് നിങ്ങൾ രക്ഷിതാക്കളോട് അനുമതി ആവശ്യപ്പെട്ടു</translation>
 <translation id="4876305945144899064">ഉപയോക്തൃനാമമില്ല</translation>
+<translation id="4879491255372875719">സ്വമേധയാ (ഡിഫോൾട്ട്)</translation>
 <translation id="4880827082731008257">തിരയൽ ചരിത്രം</translation>
 <translation id="4881695831933465202">തുറക്കുക</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -621,6 +628,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">സംരക്ഷിച്ച എല്ലാ പാസ്‌വേഡുകളും കാണിക്കുക</translation>
 <translation id="5287240709317226393">കുക്കികള്‍ കാണിക്കുക</translation>
+<translation id="5288108484102287882">നയ മൂല്യങ്ങളുടെ സാധൂകരണം മുന്നറിയിപ്പുകൾ സൃഷ്‌ടിച്ചിട്ടുണ്ട്</translation>
 <translation id="5299298092464848405">നയം പാഴ്‌സുചെയ്യുന്നതിൽ പിശക്</translation>
 <translation id="5308380583665731573">കണക്‌റ്റുചെയ്യുക</translation>
 <translation id="5308689395849655368">ക്രാഷ് റിപ്പോര്‍ട്ടുചെയ്യല്‍ അപ്രാപ്തമാക്കി.</translation>
@@ -633,6 +641,7 @@
 <translation id="536296301121032821">നയ ക്രമീകരണങ്ങൾ സംഭരിക്കുന്നതിൽ പരാജയപ്പെട്ടു</translation>
 <translation id="5371425731340848620">കാർഡ് അപ്ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="5377026284221673050">"നിങ്ങളുടെ സമയം പിന്നിലാണ്" അല്ലെങ്കിൽ "നിങ്ങളുടെ സമയം മുന്നിലാണ്" അല്ലെങ്കിൽ "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">എല്ലാ ഉപകരണങ്ങളിലും നിങ്ങളുടെ കാർഡുകൾ ഉപയോഗിക്കുന്നതിന്, സൈൻ ഇൻ ചെയ്‌ത് സമന്വയിപ്പിക്കൽ ഓണാക്കുക.</translation>
 <translation id="5386426401304769735">ഈ സൈറ്റിന്റെ സർട്ടിഫിക്കറ്റ് ചെയിനിൽ SHA-1 ഉപയോഗിച്ച് സൈൻ ചെയ്‌ത ഒരു സർട്ടിഫിക്കറ്റ് അടങ്ങിയിരിക്കുന്നു.</translation>
 <translation id="5387961145478138773">നിങ്ങളുടെ പ്രിയപ്പെട്ട Google ആപ്പുകളിലേക്ക് വേഗത്തിൽ ആക്‌സസ് നേടുക</translation>
 <translation id="540969355065856584">ഈ സെർവറിന് അത് <ph name="DOMAIN" /> ആണെന്ന് തെളിയിക്കാനായില്ല; അതിന്റെ സുരക്ഷ സർട്ടിഫിക്കറ്റിന് ഇപ്പോൾ സാധുതയുള്ളതല്ല. തെറ്റായ കോൺഫിഗറേഷൻ കാരണമോ ഒരു ആക്രമണകാരി നിങ്ങളുടെ കണക്ഷനെ തടസ്സപ്പെടുത്തുന്നത് കൊണ്ടോ ആയിരിക്കാം ഇത് സംഭവിച്ചത്.</translation>
@@ -708,6 +717,7 @@
 <translation id="5893752035575986141">ക്രെഡിറ്റ് കാർഡുകൾ സ്വീകരിക്കുന്നു.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (സമന്വയിപ്പിച്ചത്)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{ഒരെണ്ണം ഉപയോഗത്തിലുണ്ട്}other{# എണ്ണം ഉപയോഗത്തിലുണ്ട്}}</translation>
+<translation id="5922853866070715753">ഏതാണ്ട് പൂർത്തിയായി</translation>
 <translation id="5939518447894949180">വീണ്ടും സജ്ജീകരിക്കുക</translation>
 <translation id="5967592137238574583">കോൺടാക്‌റ്റ് വിവരം എഡിറ്റുചെയ്യുക</translation>
 <translation id="5967867314010545767">ചരിത്രത്തിൽ നിന്നും നീക്കംചെയ്യുക</translation>
@@ -728,6 +738,7 @@
 <translation id="6051221802930200923"><ph name="SITE" /> എന്ന വെബ്‌സൈറ്റ് സർട്ടിഫിക്കറ്റ് പിന്നിംഗ് ഉപയോഗിക്കുന്നതിനാൽ നിങ്ങൾക്കിപ്പോൾ അത് സന്ദർശിക്കാനാകില്ല. നെറ്റ്‌വർക്ക് പിശകുകളും ആക്രമണങ്ങളും സാധാരണയായി താൽക്കാലികമായിരിക്കും, അതിനാൽ ഈ പേജ് മിക്കവാറും പിന്നീട് പ്രവർത്തിക്കും.</translation>
 <translation id="6059925163896151826">USB ഉപകരണങ്ങൾ</translation>
 <translation id="6071091556643036997">സാധുതയില്ലാത്ത നയ തരം.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{ഉപകരണങ്ങളിൽ ഉടനീളം വേഗത്തിൽ ചെക്കൗട്ട് ചെയ്യാനായി ഈ കാർഡ് നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് സംരക്ഷിക്കും.}other{ഉപകരണങ്ങളിൽ ഉടനീളം വേഗത്തിൽ ചെക്കൗട്ട് ചെയ്യാനായി ഈ കാർഡുകൾ നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് സംരക്ഷിക്കും.}}</translation>
 <translation id="6080696365213338172">അഡ്‌മിനിസ്‌ട്രേറ്റർ നൽകിയ സർട്ടിഫിക്കറ്റ് ഉപയോഗിച്ച് നിങ്ങൾ ഉള്ളടക്കം ആക്‌സസ്സുചെയ്‌തു. നിങ്ങൾ <ph name="DOMAIN" /> എന്നതിലേക്ക് നൽകുന്ന ഡാറ്റ അഡ്‌മിനിസ്‌ട്രേറ്റർക്ക് തടയാനാവും.</translation>
 <translation id="610911394827799129">നിങ്ങളുടെ Google അക്കൗണ്ടിന് <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> എന്നതിൽ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രമുണ്ടായിരിക്കാം.</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{ഒന്നുമില്ല}=1{ഒരു പാസ്‌വേഡ് (സമന്വയിപ്പിച്ചത്)}other{# പാസ്‌വേഡുകൾ (സമന്വയിപ്പിച്ചത്)}}</translation>
@@ -830,6 +841,7 @@
 <translation id="6965978654500191972">ഉപാധി</translation>
 <translation id="6970216967273061347">ജില്ല</translation>
 <translation id="6973656660372572881">സ്ഥിരമായ പ്രോക്‌സി സെർവറുകളും ഒരു സ്‌ക്രിപ്റ്റ് URL-ഉം വ്യക്തമാക്കിയിരിക്കുന്നു.</translation>
+<translation id="6979440798594660689">മ്യൂട്ട് ചെയ്യുക (ഡിഫോൾട്ട്)</translation>
 <translation id="6984479912851154518">ഒരു എക്‌സ്‌റ്റേണൽ അപ്ലിക്കേഷൻ വഴി പണമടയ്‌ക്കുന്നതിന് വേണ്ടി സ്വകാര്യ മോഡ് വിടുന്നു. തുടരണോ?</translation>
 <translation id="6989763994942163495">വിപുലമായ ക്രമീകരണങ്ങൾ കാണിക്കുക...</translation>
 <translation id="7012363358306927923">ചൈന UnionPay</translation>
@@ -850,6 +862,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> എന്നതും മറ്റ് <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> എണ്ണവും}other{<ph name="PAYMENT_METHOD_PREVIEW" /> എന്നതും മറ്റ് <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> എണ്ണവും}}</translation>
 <translation id="717330890047184534">Gaia ഐഡി:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> എന്നതും മറ്റ് <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> എണ്ണവും}other{<ph name="SHIPPING_OPTION_PREVIEW" /> എന്നതും മറ്റ് <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> എണ്ണവും}}</translation>
+<translation id="7179323680825933600">പേയ്‌മെന്റ് രീതികൾ സംരക്ഷിച്ച് പൂരിപ്പിക്കുക</translation>
 <translation id="7180611975245234373">പുതുക്കുക</translation>
 <translation id="7182878459783632708">നയങ്ങളൊന്നും സജ്ജമാക്കിയിട്ടില്ല</translation>
 <translation id="7186367841673660872">ഈ പേജ്<ph name="ORIGINAL_LANGUAGE" />ല്‍‌ നിന്നും<ph name="LANGUAGE_LANGUAGE" />ലേക്ക് വിവര്‍‌ത്തനം ചെയ്‌തു</translation>
@@ -861,6 +874,9 @@
 <translation id="7220786058474068424">പ്രോസസ്സുചെയ്യുന്നു</translation>
 <translation id="724691107663265825">സൈറ്റിൽ മാൽവെയർ അടങ്ങിയിരിക്കുന്നു</translation>
 <translation id="724975217298816891">നിങ്ങളുടെ കാർഡ് വിശദാംശങ്ങൾ അപ്‌ഡേറ്റുചെയ്യാൻ <ph name="CREDIT_CARD" />-ന്റെ കാലാവധി തീരുന്ന തീയതിയും CVC-യും നൽകുക. സ്ഥിരീകരിച്ച് കഴിഞ്ഞാൽ, ഈ സൈറ്റുമായി കാർഡ് വിശദാംശങ്ങൾ പങ്കിടും.</translation>
+<translation id="7251437084390964440">നെറ്റ്‌വർക്ക് കോൺഫിഗറേഷൻ, ONC നിലവാരത്തിന് അനുസരിച്ചുള്ളതല്ല. കോൺഫിഗറേഷൻ ഭാഗങ്ങൾ ഇമ്പോർട്ട് ചെയ്‌തേക്കില്ല.
+കൂടുതൽ വിശദാംശങ്ങൾ:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">നിങ്ങളുടെ കമ്പ്യൂട്ടറിന്റെ തീയതിയും സമയവും (<ph name="DATE_AND_TIME" />) തെറ്റായതിനാൽ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> എന്നതിലേക്കുള്ള സ്വകാര്യ കണക്ഷൻ സ്ഥാപിക്കാനാവില്ല.</translation>
 <translation id="7260504762447901703">ആക്‌സസ്സ് റദ്ദാക്കുക</translation>
 <translation id="7271803869921933038">സ്വീകരിക്കുന്ന പ്രീപെയ്ഡ് കാർഡുകൾ</translation>
@@ -1036,6 +1052,9 @@
 <translation id="8398259832188219207">ക്രാഷ് റിപ്പോർട്ട് <ph name="UPLOAD_TIME" />-ന് അപ്‌ലോഡുചെയ്‌തു</translation>
 <translation id="8412145213513410671">ക്രാഷുകള്‍ <ph name="CRASH_COUNT" /></translation>
 <translation id="8412392972487953978">നിങ്ങള്‍ സമാന പാസ്ഫ്രെയ്സ് രണ്ടുതവണ നല്‍കണം.</translation>
+<translation id="8416694386774425977">നെറ്റ്‌വർക്ക് കോൺഫിഗറേഷൻ അസാധുവായതിനാൽ ഇമ്പോർട്ട് ചെയ്യാൻ കഴിഞ്ഞില്ല.
+കൂടുതൽ വിശദാംശങ്ങൾ:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">ക്രമീകരണങ്ങള്‍</translation>
 <translation id="8433057134996913067">ഇത് നിങ്ങളെ മിക്ക വെബ്‌സൈറ്റുകളിൽ നിന്നും സൈൻ ഔട്ട് ചെയ്യിക്കും.</translation>
@@ -1068,13 +1087,16 @@
 <translation id="8725066075913043281">വീണ്ടും ശ്രമിക്കുക</translation>
 <translation id="8728672262656704056">നിങ്ങൾ അദൃശ്യ വിൻഡോയിലാണ്</translation>
 <translation id="8730621377337864115">പൂർത്തിയാക്കി</translation>
+<translation id="8733831205558190772">നിങ്ങളുടെ എല്ലാ കാർഡുകളും ഒരു സ്‌ഥലത്ത്</translation>
 <translation id="8738058698779197622">ഒരു സുരക്ഷിത കണക്ഷൻ സ്ഥാപിക്കുന്നതിന്, നിങ്ങളുടെ ക്ലോക്ക് ശരിയായി സജ്ജീകരിക്കേണ്ടതുണ്ട്. വെബ്‌സൈറ്റുകൾ സ്വയം തിരിച്ചറിയുന്നതിന് ഉപയോഗിക്കുന്ന സർട്ടിഫിക്കറ്റുകൾ, നിർദ്ദിഷ്‌ട സമയ പരിധിയ്‌ക്ക് മാത്രമായി സാധുതയുള്ളതിനാലാണിത്. നിങ്ങളുടെ ഉപകരണത്തിന്റെ ക്ലോക്ക് തെറ്റായിരിക്കുന്നതിനാൽ, Chromium-ന് ഈ സർട്ടിഫിക്കറ്റുകൾ പരിശോധിച്ചുറപ്പിക്കാനാവില്ല.</translation>
 <translation id="8740359287975076522"><ph name="HOST_NAME" /> ഹോസ്‌റ്റിന്റെ &lt;abbr id="dnsDefinition"&gt;DNS വിലാസം&lt;/abbr&gt; കണ്ടെത്താനായില്ല. പ്രശ്‌നം നിർണ്ണയിക്കുന്നു.</translation>
 <translation id="874846938927089722">സ്വീകരിക്കുന്ന ക്രെഡിറ്റ് കാർഡുകളും പ്രീപെയ്ഡ് കാർഡുകളും</translation>
 <translation id="8759274551635299824">ഈ കാർഡ് കാലഹരണപ്പെട്ടു</translation>
 <translation id="8761567432415473239">Google സുരക്ഷിത ബ്രൗസിംഗ് <ph name="SITE" /> എന്നതിൽ ഈയിടെ <ph name="BEGIN_LINK" />ദോഷകരമായ പ്രോഗ്രാമുകൾ കണ്ടെത്തി<ph name="END_LINK" />.</translation>
 <translation id="8763927697961133303">USB ഉപകരണം</translation>
+<translation id="8768895707659403558">എല്ലാ ഉപകരണങ്ങളിലും നിങ്ങളുടെ കാർഡുകൾ ഉപയോഗിക്കുന്നതിന്, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;ഇല്ലാതാക്കുന്നത് വീണ്ടും ചെയ്യുക</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{ഈ കാർഡ് നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് ചേർത്തു. സൈൻ-ഇൻ-ചെയ്‌ത ഏത് ഉപകരണത്തിൽ നിന്നും നിങ്ങൾക്ക് അത് ഉപയോഗിക്കാനാവും.}other{ഈ കാർഡുകൾ നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് ചേർത്തു. സൈൻ-ഇൻ-ചെയ്‌ത ഏത് ഉപകരണത്തിൽ നിന്നും നിങ്ങൾക്ക് അവ ഉപയോഗിക്കാനാവും.}}</translation>
 <translation id="8792621596287649091">നിങ്ങളുടെ <ph name="ORG_NAME" /> അക്കൗണ്ടിലേക്കുള്ള ആക്‌സസ് നഷ്‌ടമാകാനോ നിങ്ങളുടെ ഐഡന്‍റിറ്റി മോഷ്ടിക്കപ്പെടാനോ സാധ്യതയുണ്ട്. ഇപ്പോൾ തന്നെ പാസ്‍വേഡ് മാറ്റാൻ Chromium ശുപാർശ ചെയ്യുന്നു.</translation>
 <translation id="8800988563907321413">നിങ്ങളുടെ സമീപത്തുള്ള നിർദ്ദേശങ്ങൾ ഇവിടെ ദൃശ്യമാകും</translation>
 <translation id="8820817407110198400">ബുക്ക്‌മാര്‍ക്കുകള്‍</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index f32268b..6f74053 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;आपल्या डिव्हाइसची तारीख आणि वेळ (<ph name="DATE_AND_TIME" />) चुकीची असल्यामुळे <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> सह खाजगी कनेक्शन इंस्टॉल केले जाऊ शकत नाही.&lt;/p&gt;
 
       &lt;p&gt;कृपया &lt;strong&gt;सेटिंग्ज&lt;/strong&gt; अॅपच्या &lt;strong&gt;सर्वसाधारण&lt;/strong&gt; विभागातील तारीख आणि वेळ समायोजित करा.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">हे वेबपृष्‍ठ प्रदर्शित करताना काहीतरी चूक झाली.</translation>
 <translation id="1592005682883173041">स्थानिक डेटा प्रवेश</translation>
 <translation id="1594030484168838125">निवडा</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">अवैध विनंती किंवा विनंती मापदंड</translation>
 <translation id="1826516787628120939">तपासत आहे</translation>
 <translation id="1834321415901700177">या साइटमध्ये धोकादायक प्रोग्राम आहेत</translation>
+<translation id="1839551713262164453">धोरण मूल्यांची वैधता एररसह अयशस्वी झाली आहे</translation>
 <translation id="1840414022444569775">हा कार्ड नंबर आधी वापरला गेला आहे</translation>
 <translation id="1842969606798536927">देय द्या</translation>
 <translation id="1871208020102129563">प्रॉक्सी निश्चित प्रॉक्सी सर्व्हर वापरण्‍यास सेट करण्‍यात आले आहे, .pac स्क्रिप्ट URL नव्हे.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">विचारा</translation>
 <translation id="2359629602545592467">अनेक</translation>
 <translation id="2359808026110333948">सुरू ठेवा</translation>
+<translation id="2360873523816792727">सर्व डिव्हाइसवर तुमची कार्डे वापरण्यासाठी सिंक सुरू करा.</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" /> वाजता कॅप्चर केलेला क्रॅश अहवाल अपलोड केला नाही</translation>
 <translation id="2367567093518048410">दर्जा</translation>
 <translation id="2378238891085281592">तुम्ही खाजगी मोडमध्ये गेला आहात</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />कुकीज आणि साइट डेटा
           <ph name="LIST_ITEM" />फॉर्ममध्ये टाकलेली माहिती
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">कार्डे पाहा</translation>
 <translation id="3369192424181595722">घड्याळ एरर</translation>
 <translation id="337363190475750230">तरतूद रद्द केली</translation>
 <translation id="3377188786107721145">धोरण विश्लेषण एरर</translation>
 <translation id="3380365263193509176">अज्ञात एरर</translation>
 <translation id="3380864720620200369">क्लायंट आयडी:</translation>
+<translation id="3387261909427947069">पेमेंट पद्धती</translation>
 <translation id="3391030046425686457">वितरण पत्ता</translation>
 <translation id="3395827396354264108">पिकअप पद्धत</translation>
 <translation id="3399952811970034796">वितरण पत्ता</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">तुमचे पेमेंट पुन्हा एकदा तपासा</translation>
 <translation id="4116663294526079822">या साइटवर नेहमी अनुमती द्या</translation>
 <translation id="4117700440116928470">धोरण कक्षा समर्थित नाही.</translation>
+<translation id="4119109454650683048">कृपया खालील माहिती तपासा आणि आवश्यकता असल्यास एररचे निराकरण करा</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{अन्य 1}one{अन्य #}other{अन्य #}}</translation>
 <translation id="4130226655945681476">नेटवर्क केबल, मोडेम आणि राउटर तपासत आहे</translation>
 <translation id="413544239732274901">आणखी जाणून घ्या</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">ही वितरण पद्धत उपलब्ध नाही. वेगळी पद्धत वापरून पहा.</translation>
 <translation id="4858792381671956233">या साइटला भेट देणे ठीक आहे का ते आपण आपल्‍या पालकांना विचारले</translation>
 <translation id="4876305945144899064">वापरकर्तानाव नाही</translation>
+<translation id="4879491255372875719">आपोआप (डीफॉल्ट)</translation>
 <translation id="4880827082731008257">इतिहास शोध</translation>
 <translation id="4881695831933465202">उघडा</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">सर्व सेव्ह केलेले पासवर्ड दाखवा</translation>
 <translation id="5287240709317226393">कुकीज दाखवा</translation>
+<translation id="5288108484102287882">धोरण मूल्यांच्या वैधतेमुळे चेतावण्या वाढल्या आहेत</translation>
 <translation id="5299298092464848405">धोरण विश्लेषित करताना एरर</translation>
 <translation id="5308380583665731573">कनेक्‍ट करा</translation>
 <translation id="5308689395849655368">क्रॅश अहवाल अक्षम केला गेला आहे.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">धोरण सेटिंग्ज संचयित करण्यात अयशस्वी</translation>
 <translation id="5371425731340848620">कार्ड अपडेट करा</translation>
 <translation id="5377026284221673050">"तुमचे क्लॉक मागे पडले आहे" किंवा "तुमचे क्लॉक वेळेपेक्षा पुढे आहे" किंवा "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">तुमच्या सर्व डिव्हाइसवर तुमची कार्डे वापरण्यासाठी साइन इन करा आणि सिंक सुरू करा.</translation>
 <translation id="5386426401304769735">या साइटसाठी असलेल्या प्रमाणपत्र श्रृंखलेत SHA-1 वापरून स्वाक्षरी केलेले प्रमाणपत्र असते.</translation>
 <translation id="5387961145478138773">तुमच्या आवडत्या Google अॅप्सचा झटपट अॅक्सेस मिळवा</translation>
 <translation id="540969355065856584">हा सर्व्हर <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षितता प्रमाणपत्र यावेळी वैध नाही. हे कदाचित चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्ता आपले कनेक्शन आंतरखंडित करीत असल्‍यामुळे होऊ शकते.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">क्रेडिट कार्डे स्वीकारली जातात.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (सिंक केलेले)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 वापरात आहे}one{# वापरात आहे}other{# वापरात आहेत}}</translation>
+<translation id="5922853866070715753">जवळजवळ पूर्ण झाले</translation>
 <translation id="5939518447894949180">रीसेट करा</translation>
 <translation id="5967592137238574583">संपर्क माहिती संपादित करा</translation>
 <translation id="5967867314010545767">इतिहासातून काढा</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">ही वेबसाइट प्रमाणपत्र पिनिंग वापरत असल्यामुळे तुम्ही आत्ता <ph name="SITE" /> पाहू शकणार नाही. नेटवर्क एरर आणि आक्रमणे शक्यतो तात्पुरती असतात, त्यामुळे हे पेज नंतर पाहता येईल.</translation>
 <translation id="6059925163896151826">USB डिव्हाइसेस</translation>
 <translation id="6071091556643036997">धोरणाचा प्रकार चुकीचा आहे.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{सर्व डिव्हाइसवरून जलद चेकआउट करता यावे यासाठी हे कार्ड तुमच्या Google खात्यावर सेव्ह केले जाईल.}one{सर्व डिव्हाइसवरून जलद चेकआउट करता यावे यासाठी ही कार्डे तुमच्या Google खात्यावर सेव्ह केली जातील.}other{सर्व डिव्हाइसवरून जलद चेकआउट करता यावे यासाठी हे कार्ड तुमच्या Google खात्यावर सेव्ह केले जाईल.}}</translation>
 <translation id="6080696365213338172">आपण प्रशासकाने-प्रदान केलेले प्रमाणपत्र वापरून सामग्रीमध्ये प्रवेश केला. आपण <ph name="DOMAIN" /> वर प्रदान करता तो डेटा आपल्या प्रशासकाद्वारे अंतःखंडित केला जाऊ शकतो.</translation>
 <translation id="610911394827799129">तुमच्या Google खात्यामध्ये <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> वर ब्राउझिंग इतिहासाची अन्य स्वरूपे असू शकतात.</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{काहीही नाही}=1{1 पासवर्ड (सिंक केलेला)}one{# पासवर्ड (सिंक केलेला)}other{# पासवर्ड (सिंक केलेले)}}</translation>
@@ -832,6 +843,7 @@
 <translation id="6965978654500191972">डिव्हाइस</translation>
 <translation id="6970216967273061347">‍जिल्‍हा</translation>
 <translation id="6973656660372572881">निश्चित प्रॉक्सी सर्व्हर आणि .pac स्क्रिप्ट URL निर्दिष्‍ट करण्‍यात आले आहेत.</translation>
+<translation id="6979440798594660689">निःशब्द करा (डीफॉल्ट)</translation>
 <translation id="6984479912851154518">बाह्य अॅप्लिकेशनने पैसे भरण्यासाठी खाजगी मोड सोडत आहे. सुरू ठेवायचे का?</translation>
 <translation id="6989763994942163495">प्रगत सेटिंग्ज दर्शवा...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -852,6 +864,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> आणखी}one{<ph name="PAYMENT_METHOD_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> आणखी}other{<ph name="PAYMENT_METHOD_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> आणखी}}</translation>
 <translation id="717330890047184534">Gaia आयडी:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> आणखी}one{<ph name="SHIPPING_OPTION_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> आणखी}other{<ph name="SHIPPING_OPTION_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> आणखी}}</translation>
+<translation id="7179323680825933600">पेमेंट पद्धती सेव्ह करा आणि भरा</translation>
 <translation id="7180611975245234373">रिफ्रेश करा</translation>
 <translation id="7182878459783632708">कोणतीही धोरणे सेट नाहीत</translation>
 <translation id="7186367841673660872">हे पृष्ठ<ph name="ORIGINAL_LANGUAGE" />मधून<ph name="LANGUAGE_LANGUAGE" />मध्ये अनुवादित केले गेले आहे</translation>
@@ -863,6 +876,9 @@
 <translation id="7220786058474068424">प्रक्रिया करत आहे</translation>
 <translation id="724691107663265825">साइटमध्ये पुढे मालवेअर आहे</translation>
 <translation id="724975217298816891">आपले कार्ड तपशील अपडेट करण्‍यासाठी <ph name="CREDIT_CARD" /> करिता कालबाह्यता तारीख आणि CVC प्रविष्‍ट करा. आपण पुष्टी केल्यावर, आपले कार्ड तपशील या साइटसह सामायिक केले जातील.</translation>
+<translation id="7251437084390964440">नेटवर्क कॉन्फिगरेशन ONC स्टँडर्डचे पालन करत नाही. कॉन्फिगरेशनचे भाग कदाचित आयात करता येणार नाहीत.
+अतिरिक्त तपशील:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">आपल्या संगणकाची तारीख आणि वेळ (<ph name="DATE_AND_TIME" />) चुकीची असल्यामुळे <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> सह खाजगी कनेक्शन इंस्टॉल केले जाऊ शकत नाही.</translation>
 <translation id="7260504762447901703">प्रवेश रद्द करा</translation>
 <translation id="7271803869921933038">स्वीकारली जाणारी प्रीपेड कार्डे</translation>
@@ -1040,6 +1056,9 @@
 <translation id="8398259832188219207">क्रॅश अहवाल <ph name="UPLOAD_TIME" /> वाजता अपलोड केला</translation>
 <translation id="8412145213513410671">क्रॅश (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">आपण समान सांकेतिक वाक्यांश दोनदा एंटर करणे आवश्यक आहे.</translation>
+<translation id="8416694386774425977">नेटवर्क कॉन्फिगरेशन चुकीचे आहे आणि आयात केले जाऊ शकत नाही.
+अतिरिक्त तपशील:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">सेटिंग्ज</translation>
 <translation id="8433057134996913067">हे आपल्याला बहुतांश वेबसाइट वरून साइन आउट करेल.</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">पुन्हा प्रयत्न करा</translation>
 <translation id="8728672262656704056">तुम्ही गुप्त मोडमध्ये आहात</translation>
 <translation id="8730621377337864115">पूर्ण झाले</translation>
+<translation id="8733831205558190772">तुमची सर्व कार्डे एकाच ठिकाणी आहेत</translation>
 <translation id="8738058698779197622">एक सुरक्षित कनेक्‍शन स्‍थापित करण्‍यापूर्वी, आपले घड्‍याळ योग्यरित्या सेट केले असणे आवश्यक आहे. कारण वेबसाइट त्यांना स्‍वत:ला ओळखण्‍यासाठी वापरतात ती प्रमाणपत्रे केवळ निर्दिष्‍ट केलेल्‍या कालावधीसाठी वैध असतात. आपल्‍या डिव्‍हाइसचे घड्‍याळ चुकीचे असल्‍यामुळे, Chromium ही प्रमाणपत्रे सत्यापित करू शकत नाही.</translation>
 <translation id="8740359287975076522"><ph name="HOST_NAME" />चा &lt;abbr id="dnsDefinition"&gt;DNS पत्ता&lt;/abbr&gt; शोधणे शक्य झाले नाही. समस्येचे निराकरण करीत आहे.</translation>
 <translation id="874846938927089722">स्वीकारली जाणारी क्रेडिट आणि प्रीपेड कार्डे</translation>
 <translation id="8759274551635299824">या कार्डची मुदत संपली आहे</translation>
 <translation id="8761567432415473239">Google सुरक्षित ब्राउझिंग ला <ph name="SITE" /> वर अलीकडे <ph name="BEGIN_LINK" />हानिकारक प्रोग्राम आढळले आहेत<ph name="END_LINK" />.</translation>
 <translation id="8763927697961133303">USB डिव्हाइस</translation>
+<translation id="8768895707659403558">तुमच्या सर्व डिव्हाइसवर तुमची कार्डे वापरण्यासाठी, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;पुन्हा करा हटवा</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{हे कार्ड तुमच्या Google खात्यात जोडले गेले. तुम्ही ते आता साइन इन केलेल्या कोणत्याही डिव्हाइसवरून वापरू शकता.}one{हे कार्ड तुमच्या Google खात्यात जोडले गेले. तुम्ही ते आता साइन इन केलेल्या कोणत्याही डिव्हाइसवरून वापरू शकता.}other{ही कार्डे तुमच्या Google खात्यात जोडली गेली. तुम्ही ती आता साइन इन केलेल्या कोणत्याही डिव्हाइसवरून वापरू शकता.}}</translation>
 <translation id="8792621596287649091">तुम्ही तुमच्या Google <ph name="ORG_NAME" /> चा अॅक्सेस गमावू शकता किंवा तुमची संवेदनशील माहिती चोरीला जाऊ शकते. Chromium लगेच तुमचा पासवर्ड बदलण्याची शिफारस करत आहे.</translation>
 <translation id="8800988563907321413">आपल्या जवळपासच्या सूचना येथे दिसतात</translation>
 <translation id="8820817407110198400">Bookmarks</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index c120a8cf..a978476 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Sambungan peribadi ke <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tidak boleh diwujudkan kerana tarikh dan masa peranti anda (<ph name="DATE_AND_TIME" />) tidak betul.&lt;/p&gt;
 
           &lt;p&gt;Sila laraskan tarikh dan masa daripada bahagian &lt;strong&gt;Umum&lt;/strong&gt; bagi apl &lt;strong&gt;Tetapan&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Kesilapan berlaku semasa memaparkan halaman web ini.</translation>
 <translation id="1592005682883173041">Akses Data Setempat</translation>
 <translation id="1594030484168838125">Pilih</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Permintaan atau parameter permintaan tidak sah</translation>
 <translation id="1826516787628120939">Menyemak</translation>
 <translation id="1834321415901700177">Tapak ini mengandungi atur cara berbahaya</translation>
+<translation id="1839551713262164453">Pengesahan nilai dasar gagal dengan ralat</translation>
 <translation id="1840414022444569775">Nombor kad ini sudah digunakan</translation>
 <translation id="1842969606798536927">Bayar</translation>
 <translation id="1871208020102129563">Proksi ditetapkan untuk menggunakan pelayan proksi tetap, bukannya URL skrip .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Tanya</translation>
 <translation id="2359629602545592467">Berbilang</translation>
 <translation id="2359808026110333948">Teruskan</translation>
+<translation id="2360873523816792727">Untuk menggunakan kad anda pada semua peranti, hidupkan penyegerakan.</translation>
 <translation id="2365563543831475020">Laporan ranap sistem yang dirakam pada <ph name="CRASH_TIME" /> tidak dimuat naik</translation>
 <translation id="2367567093518048410">Tahap</translation>
 <translation id="2378238891085281592">Anda menggunakan mod peribadi</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Kuki dan data tapak
           <ph name="LIST_ITEM" />Maklumat yang dimasukkan dalam borang
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Lihat kad</translation>
 <translation id="3369192424181595722">Ralat Jam</translation>
 <translation id="337363190475750230">Nyahperuntukkan</translation>
 <translation id="3377188786107721145">Ralat menghuraikan dasar</translation>
 <translation id="3380365263193509176">Ralat tidak diketahui</translation>
 <translation id="3380864720620200369">ID Pelanggan:</translation>
+<translation id="3387261909427947069">Kaedah Pembayaran</translation>
 <translation id="3391030046425686457">Alamat penghantaran</translation>
 <translation id="3395827396354264108">Kaedah pengambilan</translation>
 <translation id="3399952811970034796">Alamat Penghantaran</translation>
@@ -453,6 +458,7 @@
 <translation id="4110652170750985508">Semak pembayaran anda</translation>
 <translation id="4116663294526079822">Sentiasa benarkan di tapak ini</translation>
 <translation id="4117700440116928470">Skop dasar tidak disokong.</translation>
+<translation id="4119109454650683048">Sila semak maklumat di bawah dan betulkan sebarang ralat, jika perlu</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 yang lain}other{# yang lain}}</translation>
 <translation id="4130226655945681476">Memeriksa kabel rangkaian, modem dan penghala</translation>
 <translation id="413544239732274901">Ketahui lebih lanjut</translation>
@@ -558,6 +564,7 @@
 <translation id="4854362297993841467">Kaedah penghantaran ini tidak tersedia. Cuba kaedah lain.</translation>
 <translation id="4858792381671956233">Anda telah bertanya kepada ibu bapa anda sama ada OK untuk melawat tapak ini</translation>
 <translation id="4876305945144899064">Tiada nama pengguna</translation>
+<translation id="4879491255372875719">Automatik (lalai)</translation>
 <translation id="4880827082731008257">Sejarah carian</translation>
 <translation id="4881695831933465202">Buka</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -623,6 +630,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Tunjukkan semua kata laluan yang disimpan</translation>
 <translation id="5287240709317226393">Tunjukkan kuki</translation>
+<translation id="5288108484102287882">Pengesahan nilai dasar telah menimbulkan amaran</translation>
 <translation id="5299298092464848405">Ralat semasa menghuraikan dasar</translation>
 <translation id="5308380583665731573">Sambung</translation>
 <translation id="5308689395849655368">Pelaporan nahas dilumpuhkan.</translation>
@@ -635,6 +643,7 @@
 <translation id="536296301121032821">Gagal menyimpan tetapan dasar</translation>
 <translation id="5371425731340848620">Kemas kini kad</translation>
 <translation id="5377026284221673050">"Jam anda lambat" atau "Jam anda cepat" atau "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Untuk menggunakan kad anda pada semua peranti, log masuk dan hidupkan penyegerakan.</translation>
 <translation id="5386426401304769735">Rantaian sijil untuk tapak ini mengandungi sijil yang ditandatangani menggunakan SHA-1.</translation>
 <translation id="5387961145478138773">Dapatkan akses pantas ke Google Apps kegemaran anda</translation>
 <translation id="540969355065856584">Pelayan ini tidak dapat membuktikan bahawa pelayan adalah <ph name="DOMAIN" />; sijil keselamatan pelayan tidak sah pada masa ini. Ini mungkin disebabkan oleh kesilapan konfigurasi atau penyerang memintas sambungan anda.</translation>
@@ -710,6 +719,7 @@
 <translation id="5893752035575986141">Kad kredit diterima.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (disegerakkan)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 sedang digunakan}other{# sedang digunakan}}</translation>
+<translation id="5922853866070715753">Hampir selesai</translation>
 <translation id="5939518447894949180">Tetapkan semula</translation>
 <translation id="5967592137238574583">Edit Maklumat Hubungan</translation>
 <translation id="5967867314010545767">Buang daripada sejarah</translation>
@@ -730,6 +740,7 @@
 <translation id="6051221802930200923">Anda tidak boleh melawati <ph name="SITE" /> sekarang kerana tapak web ini menggunakan penyematan sijil. Ralat dan serangan rangkaian biasanya bersifat sementara. Oleh sebab itu, halaman ini mungkin akan berfungsi semula kemudian.</translation>
 <translation id="6059925163896151826">Peranti USB</translation>
 <translation id="6071091556643036997">Jenis dasar tidak sah.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Kad ini akan disimpan ke Akaun Google anda untuk mempercepatkan proses pembayaran pada semua peranti.}other{Kad ini akan disimpan ke Akaun Google anda untuk mempercepatkan proses pembayaran pada semua peranti.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Tiada}=1{1 kata laluan (disegerakkan)}other{# kata laluan (disegerakkan)}}</translation>
@@ -832,6 +843,7 @@
 <translation id="6965978654500191972">Peranti</translation>
 <translation id="6970216967273061347">Daerah</translation>
 <translation id="6973656660372572881">Pelayan proksi tetap dan juga URL skrip .pac tidak ditetapkan.</translation>
+<translation id="6979440798594660689">Redam (lalai)</translation>
 <translation id="6984479912851154518">Meninggalkan mod peribadi untuk membayar melalui aplikasi luar. Teruskan?</translation>
 <translation id="6989763994942163495">Paparkan tetapan lanjutan...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -852,6 +864,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> dan <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> lagi}other{<ph name="PAYMENT_METHOD_PREVIEW" /> dan <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> lagi}}</translation>
 <translation id="717330890047184534">ID Gaia:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> dan <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> lagi}other{<ph name="SHIPPING_OPTION_PREVIEW" /> dan <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> lagi}}</translation>
+<translation id="7179323680825933600">Simpan dan Lengkapkan Kaedah Pembayaran</translation>
 <translation id="7180611975245234373">Muat semula</translation>
 <translation id="7182878459783632708">Tiada dasar ditetapkan</translation>
 <translation id="7186367841673660872">Halaman ini telah diterjemahkan dari<ph name="ORIGINAL_LANGUAGE" />ke<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -863,6 +876,9 @@
 <translation id="7220786058474068424">Memproses</translation>
 <translation id="724691107663265825">Tapak di hadapan mengandungi perisian hasad</translation>
 <translation id="724975217298816891">Masukkan tarikh tamat tempoh dan CVC untuk <ph name="CREDIT_CARD" /> bagi mengemas kini butiran kad anda. Setelah anda mengesahkan, butiran kad anda akan dikongsi dengan tapak ini.</translation>
+<translation id="7251437084390964440">Konfigurasi rangkaian tidak mematuhi standard ONC. Sebahagian konfigurasi tidak boleh diimport.
+Butiran tambahan:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Sambungan peribadi ke <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tidak boleh diwujudkan kerana tarikh dan masa komputer anda (<ph name="DATE_AND_TIME" />) tidak betul.</translation>
 <translation id="7260504762447901703">Batalkan akses</translation>
 <translation id="7271803869921933038">Kad Prabayar yang Diterima</translation>
@@ -1040,6 +1056,9 @@
 <translation id="8398259832188219207">Laporan ranap sistem dimuat naik pada <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Nahas (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Anda mesti memasukkan frasa laluan yang sama dua kali.</translation>
+<translation id="8416694386774425977">Konfigurasi rangkaian tidak sah dan tidak boleh diimport.
+Butiran tambahan:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Tetapan</translation>
 <translation id="8433057134996913067">Pemadaman ini akan membuatkan anda dilog keluar daripada kebanyakan tapak web.</translation>
@@ -1072,13 +1091,16 @@
 <translation id="8725066075913043281">Cuba lagi</translation>
 <translation id="8728672262656704056">Anda menggunakan mod inkognito</translation>
 <translation id="8730621377337864115">Selesai</translation>
+<translation id="8733831205558190772">Semua kad anda di satu tempat</translation>
 <translation id="8738058698779197622">Untuk mewujudkan sambungan yang selamat, jam anda perlu ditetapkan dengan betul. Ini kerana sijil yang digunakan oleh tapak web untuk mengenal pastinya hanya sah untuk tempoh masa yang tertentu. Memandangkan jam peranti anda tidak betul, Chromium tidak boleh mengesahkan sijil-sijil ini.</translation>
 <translation id="8740359287975076522">&lt;abbr id="dnsDefinition"&gt;Alamat DNS&lt;/abbr&gt; <ph name="HOST_NAME" /> tidak ditemui. Masalah sedang didiagnosis.</translation>
 <translation id="874846938927089722">Kad Kredit dan Prabayar yang Diterima</translation>
 <translation id="8759274551635299824">Kad ini telah tamat tempoh</translation>
 <translation id="8761567432415473239">Penyemakan Imbas Selamat Google baru-baru ini <ph name="BEGIN_LINK" />menemui atur cara berbahaya<ph name="END_LINK" /> pada <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Peranti USB</translation>
+<translation id="8768895707659403558">Untuk menggunakan kad pada semua peranti anda, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Buat semula pemadaman</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Kad ini telah ditambahkan pada Akaun Google anda. Kini anda boleh menggunakannya daripada mana-mana peranti yang dilog masuk.}other{Kad ini telah ditambahkan pada Akaun Google anda. Kini anda boleh menggunakannya daripada mana-mana peranti yang dilog masuk.}}</translation>
 <translation id="8792621596287649091">Anda boleh kehilangan akses kepada akaun <ph name="ORG_NAME" /> anda atau mengalami kecurian identiti. Chromium mengesyorkan supaya kata laluan anda ditukar sekarang.</translation>
 <translation id="8800988563907321413">Cadangan berdekatan anda dipaparkan di sini</translation>
 <translation id="8820817407110198400">Penanda buku</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 3f0e028..fdbd4ec 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Er kan geen privéverbinding met <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tot stand worden gebracht, omdat de datum en tijd van je apparaat (<ph name="DATE_AND_TIME" />) onjuist zijn.&lt;/p&gt;
 
           &lt;p&gt;Pas in het gedeelte &lt;strong&gt;Algemeen&lt;/strong&gt; van de app &lt;strong&gt;Instellingen&lt;/strong&gt; de datum en tijd aan.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Er is iets misgegaan met het weergeven van deze webpagina.</translation>
 <translation id="1592005682883173041">Lokale gegevenstoegang</translation>
 <translation id="1594030484168838125">Kiezen</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Ongeldige aanvraag of aanvraagparameters</translation>
 <translation id="1826516787628120939">Controleren</translation>
 <translation id="1834321415901700177">Deze site bevat schadelijke programma's</translation>
+<translation id="1839551713262164453">De validatie van de beleidswaarden is mislukt doordat er fouten zijn opgetreden</translation>
 <translation id="1840414022444569775">Dit kaartnummer wordt al gebruikt</translation>
 <translation id="1842969606798536927">Betalen</translation>
 <translation id="1871208020102129563">Proxy is ingesteld op het gebruik van vaste proxyservers, niet op een script-URL van het PAC-type.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Vragen</translation>
 <translation id="2359629602545592467">Meerdere</translation>
 <translation id="2359808026110333948">Doorgaan</translation>
+<translation id="2360873523816792727">Als je je kaarten op alle apparaten wilt gebruiken, moet je synchronisatie inschakelen.</translation>
 <translation id="2365563543831475020">Het crashrapport dat is vastgelegd op <ph name="CRASH_TIME" />, is niet geüpload</translation>
 <translation id="2367567093518048410">Niveau</translation>
 <translation id="2378238891085281592">Je gebruikt de privémodus</translation>
@@ -348,11 +351,13 @@
           <ph name="LIST_ITEM" />Cookies en sitegegevens
           <ph name="LIST_ITEM" />Informatie die is opgegeven in formulieren
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Kaarten bekijken</translation>
 <translation id="3369192424181595722">Klokfout</translation>
 <translation id="337363190475750230">Uitgeschreven</translation>
 <translation id="3377188786107721145">Fout bij het parseren van beleid</translation>
 <translation id="3380365263193509176">Onbekende fout</translation>
 <translation id="3380864720620200369">Klant-ID:</translation>
+<translation id="3387261909427947069">Betaalmethoden</translation>
 <translation id="3391030046425686457">Afleveradres</translation>
 <translation id="3395827396354264108">Ophaalmethode</translation>
 <translation id="3399952811970034796">Bezorgadres</translation>
@@ -448,6 +453,7 @@
 <translation id="4110652170750985508">Je betaling controleren</translation>
 <translation id="4116663294526079822">Altijd toestaan op deze site</translation>
 <translation id="4117700440116928470">Beleidsbereik wordt niet ondersteund.</translation>
+<translation id="4119109454650683048">Controleer de onderstaande informatie en los eventuele fouten op</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 andere persoon}other{# andere mensen}}</translation>
 <translation id="4130226655945681476">Controleer de netwerkkabels, modem en router</translation>
 <translation id="413544239732274901">Meer informatie</translation>
@@ -553,6 +559,7 @@
 <translation id="4854362297993841467">Deze bezorgingsmethode is niet beschikbaar. Kies een andere methode.</translation>
 <translation id="4858792381671956233">Je hebt je ouders gevraagd of je deze site mag bezoeken</translation>
 <translation id="4876305945144899064">Geen gebruikersnaam</translation>
+<translation id="4879491255372875719">Automatisch (standaard)</translation>
 <translation id="4880827082731008257">Geschiedenis doorzoeken</translation>
 <translation id="4881695831933465202">Openen</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -618,6 +625,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Alle opgeslagen wachtwoorden weergeven</translation>
 <translation id="5287240709317226393">Cookies weergeven</translation>
+<translation id="5288108484102287882">Tijdens de validatie van de beleidswaarden zijn er waarschuwingen geconstateerd</translation>
 <translation id="5299298092464848405">Fout bij het parseren van het beleid</translation>
 <translation id="5308380583665731573">Verbinding maken</translation>
 <translation id="5308689395849655368">Crashrapportage is uitgeschakeld.</translation>
@@ -630,6 +638,7 @@
 <translation id="536296301121032821">Opslaan van beleidsinstellingen is mislukt</translation>
 <translation id="5371425731340848620">Kaart updaten</translation>
 <translation id="5377026284221673050">'Je klok loopt achter', 'Je klok loopt voor' of '&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;'</translation>
+<translation id="5384855140246857529">Als je je kaarten op alle apparaten wilt gebruiken, moet je inloggen en synchronisatie inschakelen.</translation>
 <translation id="5386426401304769735">De certificaatketen voor deze site bevat een certificaat dat is ondertekend met SHA-1.</translation>
 <translation id="5387961145478138773">Snel toegang tot je favoriete Google-apps</translation>
 <translation id="540969355065856584">Deze server kan niet bewijzen dat dit <ph name="DOMAIN" /> is. Het beveiligingscertificaat is momenteel niet geldig. Dit kan worden veroorzaakt door een verkeerde configuratie of een aanvaller die je verbinding onderschept.</translation>
@@ -705,6 +714,7 @@
 <translation id="5893752035575986141">Creditcards worden geaccepteerd.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (gesynchroniseerd)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 in gebruik}other{# in gebruik}}</translation>
+<translation id="5922853866070715753">Bijna klaar</translation>
 <translation id="5939518447894949180">Resetten</translation>
 <translation id="5967592137238574583">Contactgegevens bewerken</translation>
 <translation id="5967867314010545767">Verwijderen uit geschiedenis</translation>
@@ -725,6 +735,7 @@
 <translation id="6051221802930200923">Je kunt <ph name="SITE" /> momenteel niet bezoeken, omdat de website gebruikmaakt van certificaatpinning. Netwerkfouten en aanvallen zijn doorgaans tijdelijk, dus deze pagina werkt later waarschijnlijk correct.</translation>
 <translation id="6059925163896151826">USB-apparaten</translation>
 <translation id="6071091556643036997">Het type beleid is ongeldig.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Deze kaart wordt opgeslagen in je Google-account, zodat je op verschillende apparaten sneller kunt betalen.}other{Deze kaarten worden opgeslagen in je Google-account, zodat je op verschillende apparaten sneller kunt betalen.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Geen}=1{1 wachtwoord (gesynchroniseerd)}other{# wachtwoorden (gesynchroniseerd)}}</translation>
@@ -826,6 +837,7 @@
 <translation id="6965978654500191972">Apparaat</translation>
 <translation id="6970216967273061347">District</translation>
 <translation id="6973656660372572881">Zowel vaste proxyservers als een pac-script-URL worden gespecificeerd.</translation>
+<translation id="6979440798594660689">Dempen (standaard)</translation>
 <translation id="6984479912851154518">Je verlaat de privémodus om te betalen via een externe app. Doorgaan?</translation>
 <translation id="6989763994942163495">Geavanceerde instellingen weergeven...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -846,6 +858,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> en nog <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> en nog <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Gaia-ID:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> en nog <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> en nog <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Betaalmethoden toevoegen en invullen</translation>
 <translation id="7180611975245234373">Vernieuwen</translation>
 <translation id="7182878459783632708">Geen beleid ingesteld</translation>
 <translation id="7186367841673660872">Deze pagina is vertaald van het<ph name="ORIGINAL_LANGUAGE" />in het<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -857,6 +870,9 @@
 <translation id="7220786058474068424">Verwerken</translation>
 <translation id="724691107663265825">De volgende website bevat malware</translation>
 <translation id="724975217298816891">Geef de vervaldatum en CVC-code voor <ph name="CREDIT_CARD" /> op om je creditcardgegevens te updaten. Zodra je bevestigt, worden je creditcardgegevens gedeeld met deze site.</translation>
+<translation id="7251437084390964440">De netwerkconfiguratie voldoet niet aan de ONC-standaard. Delen van de configuratie worden mogelijk niet geïmporteerd.
+Aanvullende informatie:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Er kan geen privéverbinding met <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tot stand worden gebracht, omdat de datum en tijd van de computer (<ph name="DATE_AND_TIME" />) onjuist zijn.</translation>
 <translation id="7260504762447901703">Toegang intrekken</translation>
 <translation id="7271803869921933038">Geaccepteerde prepaidkaarten</translation>
@@ -1034,6 +1050,9 @@
 <translation id="8398259832188219207">Crashrapport geüpload op <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Crashes (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Je moet twee keer dezelfde wachtwoordzin opgeven.</translation>
+<translation id="8416694386774425977">De netwerkconfiguratie is ongeldig en kan niet worden geïmporteerd.
+Aanvullende informatie:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Instellingen</translation>
 <translation id="8433057134996913067">Hiermee word je uitgelogd van de meeste websites.</translation>
@@ -1065,13 +1084,16 @@
 <translation id="8725066075913043281">Opnieuw proberen</translation>
 <translation id="8728672262656704056">Je bent incognito</translation>
 <translation id="8730621377337864115">Gereed</translation>
+<translation id="8733831205558190772">Al je kaarten op één plek</translation>
 <translation id="8738058698779197622">Als je een beveiligde verbinding tot stand wilt brengen, moet je klok goed zijn ingesteld. Dit moet omdat de certificaten die deze websites gebruiken om zichzelf te identificeren, slechts gedurende bepaalde perioden geldig zijn. Aangezien de klok van je apparaat niet goed is ingesteld, kan Chromium deze certificaten niet verifiëren.</translation>
 <translation id="8740359287975076522">Het &lt;abbr id="dnsDefinition"&gt;DNS-adres&lt;/abbr&gt; van <ph name="HOST_NAME" /> kan niet worden gevonden. Er wordt een diagnose van het probleem uitgevoerd.</translation>
 <translation id="874846938927089722">Geaccepteerde creditcards en prepaidkaarten</translation>
 <translation id="8759274551635299824">Deze kaart is verlopen</translation>
 <translation id="8761567432415473239">Google Safe Browsing heeft onlangs <ph name="BEGIN_LINK" />schadelijke programma's gevonden<ph name="END_LINK" /> op <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">USB-apparaat</translation>
+<translation id="8768895707659403558">Als je je kaarten op alle apparaten wilt gebruiken, moet je <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Opnieuw verwijderen</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Deze kaart is toegevoegd aan je Google-account. Je kunt deze nu gebruiken op elk apparaat waarop je bent ingelogd.}other{Deze kaarten zijn toegevoegd aan je Google-account. Je kunt deze nu gebruiken op elk apparaat waarop je bent ingelogd.}}</translation>
 <translation id="8792621596287649091">Je kunt de toegang tot je account van <ph name="ORG_NAME" /> kwijtraken of slachtoffer worden van identiteitsdiefstal. Chromium raadt je aan je wachtwoord nu te wijzigen.</translation>
 <translation id="8800988563907321413">Je suggesties voor in de buurt worden hier weergegeven</translation>
 <translation id="8820817407110198400">Bladwijzers</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index e34bab5..a645da0e 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Vi kan ikke opprette noen privat tilkobling til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, fordi datoen og klokkeslettet (<ph name="DATE_AND_TIME" />) på enheten din er feil.&lt;/p&gt;
 
       &lt;p&gt;Juster datoen og klokkeslettet under &lt;strong&gt;Generelt&lt;/strong&gt; i &lt;strong&gt;Innstillinger&lt;/strong&gt;-appen.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Noe gikk galt under åpningen av denne nettsiden.</translation>
 <translation id="1592005682883173041">Tilgang til lokale data</translation>
 <translation id="1594030484168838125">Velg</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Ugyldig forespørsel eller forespørselsparametere</translation>
 <translation id="1826516787628120939">Kontrollerer</translation>
 <translation id="1834321415901700177">Dette nettstedet inneholder skadelige programmer</translation>
+<translation id="1839551713262164453">Validering av regelverdier mislyktes med feil</translation>
 <translation id="1840414022444569775">Dette kortnummeret er brukt allerede</translation>
 <translation id="1842969606798536927">Betal</translation>
 <translation id="1871208020102129563">Mellomtjeneren er angitt til å bruke statiske proxytjenere, ikke en nettadresse med .pac-skript.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Spør</translation>
 <translation id="2359629602545592467">Flere</translation>
 <translation id="2359808026110333948">Fortsett</translation>
+<translation id="2360873523816792727">For å bruke kortene dine på alle enheter, slå på synkronisering.</translation>
 <translation id="2365563543831475020">Programstopprapporten fra <ph name="CRASH_TIME" /> ble ikke lastet opp</translation>
 <translation id="2367567093518048410">Nivå</translation>
 <translation id="2378238891085281592">Nå er du i privatmodus</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />informasjonskapsler og nettstedsdata
           <ph name="LIST_ITEM" />informasjon du skriver inn i skjemaer
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Vis kort</translation>
 <translation id="3369192424181595722">Klokkefeil</translation>
 <translation id="337363190475750230">Godkjenningen er opphevet</translation>
 <translation id="3377188786107721145">Feil under analysen av enhetsinnstillinger</translation>
 <translation id="3380365263193509176">Ukjent feil</translation>
 <translation id="3380864720620200369">Klient-ID:</translation>
+<translation id="3387261909427947069">Betalingsmåter</translation>
 <translation id="3391030046425686457">Leveringsadresse</translation>
 <translation id="3395827396354264108">Hentemetode</translation>
 <translation id="3399952811970034796">Leveringsadresse</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Gjennomgå betalingen</translation>
 <translation id="4116663294526079822">Tillat alltid på dette nettstedet</translation>
 <translation id="4117700440116928470">Omfanget for innstillingen støttes ikke.</translation>
+<translation id="4119109454650683048">Gå gjennom informasjonen nedenfor, og løs eventuelle feil</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 til}other{# til}}</translation>
 <translation id="4130226655945681476">Sjekk nettverkskablene, modemet og ruteren</translation>
 <translation id="413544239732274901">Finn ut mer</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Denne leveringsmetoden er ikke tilgjengelig. Prøv en annen metode.</translation>
 <translation id="4858792381671956233">Du har spurt foreldrene dine om det er greit å besøke dette nettstedet</translation>
 <translation id="4876305945144899064">Uten brukernavn</translation>
+<translation id="4879491255372875719">Automatisk (standard)</translation>
 <translation id="4880827082731008257">Søk i loggen</translation>
 <translation id="4881695831933465202">Åpne</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Vis alle lagrede passord</translation>
 <translation id="5287240709317226393">Vis informasjonskapsler</translation>
+<translation id="5288108484102287882">Det har oppstått advarsler under validering av regelverdier</translation>
 <translation id="5299298092464848405">Feil under analysen av enhetsinnstillingene</translation>
 <translation id="5308380583665731573">Koble til</translation>
 <translation id="5308689395849655368">Rapportering av programstopp er deaktivert.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Kunne ikke lagre angivelsen for enhetsinnstillinger</translation>
 <translation id="5371425731340848620">Oppdater kortet</translation>
 <translation id="5377026284221673050">«Klokken går for sent», «Klokken går for fort» eller «&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;»</translation>
+<translation id="5384855140246857529">For å bruke kortene dine på alle enheter, logg på og slå på synkronisering.</translation>
 <translation id="5386426401304769735">Sertifikatkjeden for dette nettstedet inneholder et sertifikat som er signert med SHA-1.</translation>
 <translation id="5387961145478138773">Få rask tilgang til favorittappene dine fra Google</translation>
 <translation id="540969355065856584">Denne tjeneren kunne ikke bevise at den er <ph name="DOMAIN" />. Sikkerhetssertifikatet til tjeneren er ikke gyldig for øyeblikket. Dette kan være forårsaket av en feilkonfigurasjon eller en angriper som lytter på tilkoblingen din.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Kredittkort godtas.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (synkronisert)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 er i bruk}other{# er i bruk}}</translation>
+<translation id="5922853866070715753">Nesten ferdig</translation>
 <translation id="5939518447894949180">Tilbakestill</translation>
 <translation id="5967592137238574583">Endre kontaktinformasjonen</translation>
 <translation id="5967867314010545767">Fjern fra loggen</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Du kan ikke gå til <ph name="SITE" /> akkurat nå, siden nettstedet bruker sertifikatfesting. Nettverksfeil og -angrep er vanligvis midlertidige, så denne siden fungerer sannsynligvis senere.</translation>
 <translation id="6059925163896151826">USB-enheter</translation>
 <translation id="6071091556643036997">Regeltypen er ugyldig.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Dette kortet blir lagret i Google-kontoen din for raskere betaling på flere enheter.}other{Disse kortene blir lagret i Google-kontoen din for raskere betaling på flere enheter.}}</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="610911394827799129">Det kan hende Google-kontoen din har andre typer nettlesingslogger på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Ingen}=1{1 passord (synkronisert)}other{# passord (synkronisert)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Enhet</translation>
 <translation id="6970216967273061347">Område</translation>
 <translation id="6973656660372572881">Både statiske proxytjenere og en .pac-skriptnettadresse er angitt.</translation>
+<translation id="6979440798594660689">Kutt lyden (standard)</translation>
 <translation id="6984479912851154518">Går ut av privatmodus for å betale via en ekstern app. Vil du fortsette?</translation>
 <translation id="6989763994942163495">Vis avanserte innstillinger</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> til}other{<ph name="PAYMENT_METHOD_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> til}}</translation>
 <translation id="717330890047184534">Gaia-ID:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> til}other{<ph name="SHIPPING_OPTION_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> til}}</translation>
+<translation id="7179323680825933600">Lagre, og fyll ut betalingsmåter</translation>
 <translation id="7180611975245234373">Last inn på nytt</translation>
 <translation id="7182878459783632708">Ingen retningslinjer er angitt</translation>
 <translation id="7186367841673660872">Denne siden har blitt oversatt fra<ph name="ORIGINAL_LANGUAGE" />til<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,8 @@
 <translation id="7220786058474068424">Behandler</translation>
 <translation id="724691107663265825">Nettstedet du er på vei til, inneholder skadelig programvare</translation>
 <translation id="724975217298816891">Skriv inn utløpsdatoen og verifiseringskoden for <ph name="CREDIT_CARD" /> for å oppdatere kortinformasjonen din. Når du bekrefter, deles denne informasjonen med dette nettstedet.</translation>
+<translation id="7251437084390964440">Nettverkskonfigurasjonen overholder ikke ONC-standarden. Deler av konfigurasjonen kan muligens ikke importeres. Mer informasjon:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">En privat forbindelse til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> kan ikke opprettes fordi datoen og klokkeslettet (<ph name="DATE_AND_TIME" />) på datamaskinen er feil.</translation>
 <translation id="7260504762447901703">Opphev tilgangen</translation>
 <translation id="7271803869921933038">Godkjente forhåndsbetalte kort</translation>
@@ -1039,6 +1054,9 @@
 <translation id="8398259832188219207">Programstopprapport lastet opp <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Kræsj (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Du må angi den samme passordfrasen to ganger.</translation>
+<translation id="8416694386774425977">Nettverkskonfigurasjonen er ugyldig og kan ikke importeres.
+Mer informasjon:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Innstillinger</translation>
 <translation id="8433057134996913067">Dette logger deg av de fleste nettsteder.</translation>
@@ -1070,13 +1088,16 @@
 <translation id="8725066075913043281">Prøv igjen</translation>
 <translation id="8728672262656704056">Du er nå i inkognitomodus</translation>
 <translation id="8730621377337864115">Ferdig</translation>
+<translation id="8733831205558190772">Alle kortene dine på ett sted</translation>
 <translation id="8738058698779197622">Klokken din må være riktig stilt for at du skal kunne opprette en sikker forbindelse. Sertifikatene som nettsteder bruker til å identifisere seg med, er nemlig bare gyldige i en viss tid. Siden enhetens klokke er feil, kan ikke Chromium kontrollere disse sertifikatene.</translation>
 <translation id="8740359287975076522">&lt;abbr id="dnsDefinition"&gt;DNS-adressen&lt;/abbr&gt; til <ph name="HOST_NAME" /> ble ikke funnet. Problemet diagnostiseres.</translation>
 <translation id="874846938927089722">Godkjente kredittkort og forhåndsbetalte kort</translation>
 <translation id="8759274551635299824">Dette kortet er utløpt</translation>
 <translation id="8761567432415473239">Google Safe Browsing oppdaget nylig <ph name="BEGIN_LINK" />skadelige programmer<ph name="END_LINK" /> på <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">USB-enhet</translation>
+<translation id="8768895707659403558">For å bruke kortene dine på alle enhetene dine, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Slett likevel</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Dette kortet er lagt til i Google-kontoen din. Nå kan du bruke det fra alle påloggede enheter.}other{Disse kortene er lagt til i Google-kontoen din. Nå kan du bruke dem fra alle påloggede enheter.}}</translation>
 <translation id="8792621596287649091">Du kan miste tilgangen til <ph name="ORG_NAME" />-kontoen din eller bli utsatt for identitetstyveri. Chromium anbefaler at du endrer passordet ditt nå.</translation>
 <translation id="8800988563907321413">Forslagene dine om ting like ved vises her</translation>
 <translation id="8820817407110198400">Bokmerker</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index 0286670..8e76bad4 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Nie można nawiązać prywatnego połączenia z <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, bo data i godzina (<ph name="DATE_AND_TIME" />) ustawione na urządzeniu są nieprawidłowe.&lt;/p&gt;
 
       &lt;p&gt;Popraw datę i godzinę w sekcji &lt;strong&gt;Ogólne&lt;/strong&gt; w aplikacji &lt;strong&gt;Ustawienia&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Podczas wyświetlania strony wystąpił błąd.</translation>
 <translation id="1592005682883173041">Lokalny dostęp do danych</translation>
 <translation id="1594030484168838125">Wybierz</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Nieprawidłowe żądanie lub jego parametry</translation>
 <translation id="1826516787628120939">Sprawdzam</translation>
 <translation id="1834321415901700177">Ta strona zawiera szkodliwe programy</translation>
+<translation id="1839551713262164453">Weryfikacja wartości zasad nie udała się z powodu błędów</translation>
 <translation id="1840414022444569775">Ten numer karty jest już używany</translation>
 <translation id="1842969606798536927">Zapłać</translation>
 <translation id="1871208020102129563">Proxy skonfigurowano do używania stałych serwerów proxy, a nie URL-a skryptu PAC.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Pytaj</translation>
 <translation id="2359629602545592467">Różne</translation>
 <translation id="2359808026110333948">Dalej</translation>
+<translation id="2360873523816792727">Aby używać swoich kart na wszystkich urządzeniach, włącz synchronizację.</translation>
 <translation id="2365563543831475020">Raport o awarii utworzony w dniu: <ph name="CRASH_TIME" /> nie został przesłany</translation>
 <translation id="2367567093518048410">Poziom</translation>
 <translation id="2378238891085281592">Jesteś w trybie prywatnym</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />plików cookie i danych ze stron internetowych;
           <ph name="LIST_ITEM" />informacji, które wpisujesz w formularzach.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Przeglądanie kart</translation>
 <translation id="3369192424181595722">Błąd zegara</translation>
 <translation id="337363190475750230">Anulowano obsługę</translation>
 <translation id="3377188786107721145">Podczas przetwarzania zasady wystąpił błąd</translation>
 <translation id="3380365263193509176">Nieznany błąd</translation>
 <translation id="3380864720620200369">Identyfikator klienta:</translation>
+<translation id="3387261909427947069">Formy płatności</translation>
 <translation id="3391030046425686457">Adres dostawy</translation>
 <translation id="3395827396354264108">Metoda odbioru</translation>
 <translation id="3399952811970034796">Adres dostawy</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Sprawdź szczegóły płatności</translation>
 <translation id="4116663294526079822">Zawsze zezwalaj w tej witrynie</translation>
 <translation id="4117700440116928470">Ten zakres zasad nie jest obsługiwany.</translation>
+<translation id="4119109454650683048">Sprawdź poniższe informacje i popraw błędy</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 inny wpis}few{# inne wpisy}many{# innych wpisów}other{# innego wpisu}}</translation>
 <translation id="4130226655945681476">Sprawdź kable sieciowe, modem i router</translation>
 <translation id="413544239732274901">Więcej informacji</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Ta metoda dostawy jest niedostępna. Wybierz inną.</translation>
 <translation id="4858792381671956233">Zapytałeś rodziców, czy możesz wejść na tę stronę</translation>
 <translation id="4876305945144899064">Brak nazwy użytkownika</translation>
+<translation id="4879491255372875719">Automatycznie (domyślnie)</translation>
 <translation id="4880827082731008257">Przeszukaj historię</translation>
 <translation id="4881695831933465202">Otwórz</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Pokaż wszystkie zapisane hasła</translation>
 <translation id="5287240709317226393">Pokaż pliki cookie</translation>
+<translation id="5288108484102287882">Weryfikacja wartości zasad zakończyła się z ostrzeżeniami</translation>
 <translation id="5299298092464848405">Podczas przetwarzania zasady wystąpił błąd</translation>
 <translation id="5308380583665731573">Połącz</translation>
 <translation id="5308689395849655368">Funkcja zgłaszania awarii jest wyłączona.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Zapisanie ustawień zasady nie powiodło się</translation>
 <translation id="5371425731340848620">Zaktualizuj dane karty</translation>
 <translation id="5377026284221673050">„Twój zegar się spóźnia” lub „Twój zegar się śpieszy” lub „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;”</translation>
+<translation id="5384855140246857529">Aby używać swoich kart na wszystkich urządzeniach, zaloguj się i włącz synchronizację.</translation>
 <translation id="5386426401304769735">Łańcuch certyfikatów tej witryny zawiera certyfikat podpisany za pomocą SHA-1.</translation>
 <translation id="5387961145478138773">Zapewnij sobie szybki dostęp do ulubionych aplikacji Google</translation>
 <translation id="540969355065856584">Ten serwer nie może udowodnić, że należy do domeny <ph name="DOMAIN" />. Jego certyfikat bezpieczeństwa nie jest obecnie ważny. Może to być spowodowane nieprawidłową konfiguracją lub przechwyceniem połączenia przez atakującego.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Karty kredytowe są akceptowane.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (zsynchronizowane)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{W użyciu: 1}few{W użyciu: #}many{W użyciu: #}other{W użyciu: #}}</translation>
+<translation id="5922853866070715753">Prawie gotowe</translation>
 <translation id="5939518447894949180">Resetuj</translation>
 <translation id="5967592137238574583">Edytuj dane kontaktowe</translation>
 <translation id="5967867314010545767">Usuń z historii</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Nie możesz teraz otworzyć strony <ph name="SITE" />, ponieważ stosuje ona przypinanie certyfikatów. Błędy sieciowe i ataki są zazwyczaj tymczasowe, więc prawdopodobnie strona będzie dostępna później.</translation>
 <translation id="6059925163896151826">Urządzenia USB</translation>
 <translation id="6071091556643036997">Typ zasady jest nieprawidłowy.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Ta karta zostanie zapisana na Twoim koncie Google, by umożliwić Ci szybsze płacenie na wszystkich urządzeniach.}few{Te karty zostaną zapisane na Twoim koncie Google, by umożliwić Ci szybsze płacenie na wszystkich urządzeniach.}many{Te karty zostaną zapisane na Twoim koncie Google, by umożliwić Ci szybsze płacenie na wszystkich urządzeniach.}other{Te karty zostaną zapisane na Twoim koncie Google, by umożliwić Ci szybsze płacenie na wszystkich urządzeniach.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Brak}=1{1 hasło (synchronizowane)}few{# hasła (synchronizowane)}many{# haseł (synchronizowanych)}other{# hasła (synchronizowanego)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Urządzenie</translation>
 <translation id="6970216967273061347">Okręg</translation>
 <translation id="6973656660372572881">Określono zarówno stałe serwery proxy, jak i URL skryptu PAC.</translation>
+<translation id="6979440798594660689">Wycisz (domyślnie)</translation>
 <translation id="6984479912851154518">Opuszczasz tryb prywatny, by zapłacić w zewnętrznej aplikacji. Kontynuować?</translation>
 <translation id="6989763994942163495">Pokaż ustawienia zaawansowane...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> i jeszcze <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}few{<ph name="PAYMENT_METHOD_PREVIEW" /> i jeszcze <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}many{<ph name="PAYMENT_METHOD_PREVIEW" /> i jeszcze <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> i jeszcze <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Identyfikator GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> i jeszcze <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" /> i jeszcze <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}many{<ph name="SHIPPING_OPTION_PREVIEW" /> i jeszcze <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> i jeszcze <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Zapisuj i automatycznie uzupełniaj informacje o formach płatności</translation>
 <translation id="7180611975245234373">Odśwież</translation>
 <translation id="7182878459783632708">Brak ustawionych zasad</translation>
 <translation id="7186367841673660872">Ta strona została przetłumaczona z języka<ph name="ORIGINAL_LANGUAGE" />na język<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Przetwarzanie</translation>
 <translation id="724691107663265825">Strona, którą chcesz otworzyć, zawiera złośliwe oprogramowanie</translation>
 <translation id="724975217298816891">Wpisz datę ważności i kod CVC karty <ph name="CREDIT_CARD" />, by zaktualizować jej szczegółowe dane. Po potwierdzeniu zostaną one udostępnione tej stronie.</translation>
+<translation id="7251437084390964440">Konfiguracja sieci jest niezgodna ze standardem ONC. Jej część mogła nie zostać zaimportowana.
+Dodatkowe informacje:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Nie można nawiązać prywatnego połączenia z <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, ponieważ data i godzina (<ph name="DATE_AND_TIME" />) ustawione na komputerze są nieprawidłowe.</translation>
 <translation id="7260504762447901703">Anuluj dostęp</translation>
 <translation id="7271803869921933038">Akceptowane karty przedpłacone</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Raport o awarii przesłano: <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Awarie (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Musisz dwukrotnie wpisać to samo hasło.</translation>
+<translation id="8416694386774425977">Konfiguracja sieci jest nieprawidłowa i nie można jej zaimportować.
+Dodatkowe informacje:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Ustawienia</translation>
 <translation id="8433057134996913067">Zostaniesz wylogowany z większości stron internetowych.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Spróbuj ponownie</translation>
 <translation id="8728672262656704056">Jesteś w trybie incognito</translation>
 <translation id="8730621377337864115">Gotowe</translation>
+<translation id="8733831205558190772">Wszystkie karty w jednym miejscu</translation>
 <translation id="8738058698779197622">Aby nawiązać bezpieczne połączenie, Twój zegar musi mieć ustawioną prawidłową godzinę. Jest to wymagane, ponieważ certyfikaty używane do identyfikacji stron internetowych są ważne tylko przez określony czas. Ponieważ zegar Twojego urządzenia nie jest ustawiony prawidłowo, Chromium nie może zweryfikować tych certyfikatów.</translation>
 <translation id="8740359287975076522">Nie znaleziono &lt;abbr id="dnsDefinition"&gt;adresu DNS&lt;/abbr&gt; serwera <ph name="HOST_NAME" />. Diagnozujemy problem.</translation>
 <translation id="874846938927089722">Akceptowane karty kredytowe i przedpłacone</translation>
 <translation id="8759274551635299824">Ta karta straciła ważność</translation>
 <translation id="8761567432415473239">Funkcja Bezpieczne przeglądanie Google ostatnio <ph name="BEGIN_LINK" />znalazła szkodliwe<ph name="END_LINK" /> programy na <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Urządzenie USB</translation>
+<translation id="8768895707659403558">Aby używać swoich kart na wszystkich urządzeniach, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Ponów usunięcie</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Ta karta została dodana do Twojego konta Google. Możesz jej teraz używać na każdym urządzeniu, na którym się zalogujesz.}few{Te karty zostały dodane do Twojego konta Google. Możesz ich teraz używać na każdym urządzeniu, na którym się zalogujesz.}many{Te karty zostały dodane do Twojego konta Google. Możesz ich teraz używać na każdym urządzeniu, na którym się zalogujesz.}other{Te karty zostały dodane do Twojego konta Google. Możesz ich teraz używać na każdym urządzeniu, na którym się zalogujesz.}}</translation>
 <translation id="8792621596287649091">Możesz stracić dostęp do swojego konta <ph name="ORG_NAME" /> lub paść ofiarą kradzieży tożsamości. Chromium zaleca natychmiastową zmianę hasła.</translation>
 <translation id="8800988563907321413">Tutaj wyświetlają się sugestie witryn w pobliżu</translation>
 <translation id="8820817407110198400">Zakładki</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index f695084..ae555e37 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Não é possível estabelecer uma conexão particular com <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> porque a data e hora do seu dispositivo (<ph name="DATE_AND_TIME" />) estão incorretas.&lt;/p&gt;
 
       &lt;p&gt;Ajuste a data e hora na seção &lt;strong&gt;Geral&lt;/strong&gt; do aplicativo &lt;strong&gt;Config.&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Algo deu errado ao exibir esta página da Web.</translation>
 <translation id="1592005682883173041">Acesso a dados locais</translation>
 <translation id="1594030484168838125">Escolher</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Solicitação ou parâmetros de solicitação inválidos</translation>
 <translation id="1826516787628120939">Em verificação</translation>
 <translation id="1834321415901700177">Este site contém programas perigosos</translation>
+<translation id="1839551713262164453">Falha com erros na validação dos valores da política</translation>
 <translation id="1840414022444569775">Este número de cartão já está sendo usado</translation>
 <translation id="1842969606798536927">Pagar</translation>
 <translation id="1871208020102129563">O proxy foi configurado para utilizar servidores de proxy fixo e não um URL de script .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Perguntar</translation>
 <translation id="2359629602545592467">Várias</translation>
 <translation id="2359808026110333948">Continuar</translation>
+<translation id="2360873523816792727">Para usar seus cartões em todos os dispositivos, ative a sincronização.</translation>
 <translation id="2365563543831475020">O relatório de erros registrado em <ph name="CRASH_TIME" /> não foi enviado</translation>
 <translation id="2367567093518048410">Nível</translation>
 <translation id="2378238891085281592">Você está em modo privado</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />cookies e dados de sites
           <ph name="LIST_ITEM" />informações fornecidas em formulários
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Ver cartões</translation>
 <translation id="3369192424181595722">Erro do relógio</translation>
 <translation id="337363190475750230">Desprovisionado</translation>
 <translation id="3377188786107721145">Erro de análise da política</translation>
 <translation id="3380365263193509176">Erro desconhecido</translation>
 <translation id="3380864720620200369">ID do cliente:</translation>
+<translation id="3387261909427947069">Formas de pagamento</translation>
 <translation id="3391030046425686457">Endereço de entrega</translation>
 <translation id="3395827396354264108">Método de retirada</translation>
 <translation id="3399952811970034796">Endereço de Entrega</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Analisar seu pagamento</translation>
 <translation id="4116663294526079822">Sempre permitir neste site</translation>
 <translation id="4117700440116928470">O escopo da política não é suportado.</translation>
+<translation id="4119109454650683048">Revise as informações abaixo e, se necessário, corrija os erros</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{mais 1}one{mais #}other{mais #}}</translation>
 <translation id="4130226655945681476">Verificar os cabos de rede, modem e roteador</translation>
 <translation id="413544239732274901">Saiba mais</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Esse método de entrega não está disponível. Tente um método diferente.</translation>
 <translation id="4858792381671956233">Você perguntou aos seus responsáveis se pode visitar este site</translation>
 <translation id="4876305945144899064">Sem nome de usuário</translation>
+<translation id="4879491255372875719">Automático (padrão)</translation>
 <translation id="4880827082731008257">Histórico de pesquisa</translation>
 <translation id="4881695831933465202">Abrir</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Mostrar todas as senhas salvas</translation>
 <translation id="5287240709317226393">Mostrar cookies</translation>
+<translation id="5288108484102287882">A validação dos valores da política gerou alguns avisos</translation>
 <translation id="5299298092464848405">Política de análise de erros</translation>
 <translation id="5308380583665731573">Conectar-se</translation>
 <translation id="5308689395849655368">O relatório de erros está desativado.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Falha ao armazenar as configurações da política</translation>
 <translation id="5371425731340848620">Atualizar cartão</translation>
 <translation id="5377026284221673050">"Seu relógio está atrasado", "Seu relógio está adiantado" ou "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Para usar seus cartões em todos os dispositivos, faça login e ative a sincronização.</translation>
 <translation id="5386426401304769735">A cadeia de certificados desse site contém um certificado assinado usando SHA-1.</translation>
 <translation id="5387961145478138773">Acesse rapidamente seus apps favoritos do Google</translation>
 <translation id="540969355065856584">Este servidor não conseguiu provar que é <ph name="DOMAIN" />. O certificado de segurança dele não é válido no momento. Isso pode ser causado por uma configuração incorreta ou pela interceptação da sua conexão por um invasor.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Cartões de crédito são aceitos.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizado)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 em uso}one{# em uso}other{# em uso}}</translation>
+<translation id="5922853866070715753">Quase pronto</translation>
 <translation id="5939518447894949180">Redefinir</translation>
 <translation id="5967592137238574583">Edite as Informações de Contato</translation>
 <translation id="5967867314010545767">Remover do histórico</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Não é possível acessar <ph name="SITE" /> no momento, porque o site usa bloqueio de certificados. Como os ataques e erros de rede são geralmente temporários, esta pagina provavelmente funcionará mais tarde.</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
 <translation id="6071091556643036997">O tipo de política é inválido.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Este cartão será salvo na sua Conta do Google para agilizar os pagamentos nos dispositivos.}one{Este cartão será salvo na sua Conta do Google para agilizar os pagamentos nos dispositivos.}other{Estes cartões serão salvos na sua Conta do Google para agilizar os pagamentos nos dispositivos.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Nenhuma}=1{1 senha (sincronizada)}one{# senha (sincronizada)}other{# senhas (sincronizadas)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Dispositivo</translation>
 <translation id="6970216967273061347">Distrito</translation>
 <translation id="6973656660372572881">Ambos os servidores proxy fixo e um URL de script .pac foram especificados.</translation>
+<translation id="6979440798594660689">Desativar som (padrão)</translation>
 <translation id="6984479912851154518">Saindo do modo privado para fazer um pagamento com um aplicativo externo. Continuar?</translation>
 <translation id="6989763994942163495">Mostrar configurações avançadas...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" /> e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Código Gaia:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> e mais <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" /> e mais <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> e mais <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Salvar e preencher as formas de pagamento</translation>
 <translation id="7180611975245234373">Atualizar</translation>
 <translation id="7182878459783632708">Não há políticas definidas</translation>
 <translation id="7186367841673660872">Esta página foi traduzida de<ph name="ORIGINAL_LANGUAGE" />para<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Processando</translation>
 <translation id="724691107663265825">O site a seguir contém malware</translation>
 <translation id="724975217298816891">Digite a data de validade e o CVC do <ph name="CREDIT_CARD" /> para atualizar os detalhes do cartão. Depois da confirmação, os detalhes do cartão serão compartilhados com esse site.</translation>
+<translation id="7251437084390964440">A configuração de rede não está de acordo com o padrão ONC. É possível que partes da configuração não sejam importadas.
+Mais detalhes:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Não é possível estabelecer uma conexão privada com <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, porque a data e a hora do seu computador (<ph name="DATE_AND_TIME" />) estão incorretas.</translation>
 <translation id="7260504762447901703">Revogar acesso</translation>
 <translation id="7271803869921933038">Cartões pré-pagos aceitos</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Relatório de erros enviado em <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Falhas (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Você deve inserir a mesma senha duas vezes.</translation>
+<translation id="8416694386774425977">A configuração de rede é inválida e não pôde ser importada.
+Mais detalhes:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Configurações</translation>
 <translation id="8433057134996913067">Essa opção desconecta você da maioria dos websites.</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">Tentar novamente</translation>
 <translation id="8728672262656704056">Você está navegando sem deixar rastros</translation>
 <translation id="8730621377337864115">Concluído</translation>
+<translation id="8733831205558190772">Todos os seus cartões em um só lugar</translation>
 <translation id="8738058698779197622">Para estabelecer uma conexão segura, o relógio precisa ser ajustado corretamente. Isso ocorre porque os certificados que os websites usam para se identificar são válidos apenas por períodos específicos. Como o relógio do seu dispositivo está incorreto, o Chromium não pode verificar esses certificados.</translation>
 <translation id="8740359287975076522">Não foi possível encontrar o &lt;abbr id="dnsDefinition"&gt;endereço DNS&lt;/abbr&gt; de <ph name="HOST_NAME" />. Diagnosticando o problema.</translation>
 <translation id="874846938927089722">Cartões de crédito e pré-pagos aceitos</translation>
 <translation id="8759274551635299824">Este cartão expirou</translation>
 <translation id="8761567432415473239">Recentemente, a Navegação Segura do Google <ph name="BEGIN_LINK" />encontrou programas nocivos<ph name="END_LINK" /> no site <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Dispositivo USB</translation>
+<translation id="8768895707659403558">Para usar seus cartões em todos os dispositivos, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Refazer excluir</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Esse cartão foi adicionado à sua Conta do Google. Agora você pode usá-lo em qualquer dispositivo conectado.}one{Esse cartão foi adicionado à sua Conta do Google. Agora você pode usá-lo em qualquer dispositivo conectado.}other{Esses cartões foram adicionados à sua Conta do Google. Agora você pode usá-los em qualquer dispositivo conectado.}}</translation>
 <translation id="8792621596287649091">Você pode perder o acesso à sua conta de <ph name="ORG_NAME" /> ou ter sua identidade roubada. O Chromium recomenda que sua senha seja alterada agora.</translation>
 <translation id="8800988563907321413">As sugestões de itens nas proximidades são exibidas aqui</translation>
 <translation id="8820817407110198400">Favoritos</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index 1370b47..1f2ca0fb5 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Não é possível estabelecer uma ligação privada a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, porque a data e a hora (<ph name="DATE_AND_TIME" />) do seu dispositivo estão incorretas.&lt;/p&gt;
 
       &lt;p&gt;Ajuste a data e a hora na secção &lt;strong&gt;Geral&lt;/strong&gt; da aplicação &lt;strong&gt;Definições&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Ocorreu um erro ao apresentar esta página Web.</translation>
 <translation id="1592005682883173041">Acesso aos dados locais</translation>
 <translation id="1594030484168838125">Escolher</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Pedido ou parâmetros do pedido inválidos</translation>
 <translation id="1826516787628120939">A verificar</translation>
 <translation id="1834321415901700177">Este site contém programas prejudiciais</translation>
+<translation id="1839551713262164453">A validação dos valores da política falhou devido a erros.</translation>
 <translation id="1840414022444569775">Este número do cartão já está a ser utilizado.</translation>
 <translation id="1842969606798536927">Pagar</translation>
 <translation id="1871208020102129563">O proxy está definido para utilizar servidores proxy fixos e não um URL de script .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Perguntar</translation>
 <translation id="2359629602545592467">Várias</translation>
 <translation id="2359808026110333948">Continuar</translation>
+<translation id="2360873523816792727">Para utilizar os seus cartões em todos os dispositivos, ative a sincronização.</translation>
 <translation id="2365563543831475020">O relatório de falhas capturado <ph name="CRASH_TIME" /> não foi carregado</translation>
 <translation id="2367567093518048410">Nível</translation>
 <translation id="2378238891085281592">Entrou no modo privado</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Os cookies e os dados de sites
           <ph name="LIST_ITEM" />As informações introduzidas em formulários
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Ver cartões</translation>
 <translation id="3369192424181595722">Erro de relógio</translation>
 <translation id="337363190475750230">Desaprovisionado</translation>
 <translation id="3377188786107721145">Erro de análise da política</translation>
 <translation id="3380365263193509176">Erro desconhecido</translation>
 <translation id="3380864720620200369">ID do Cliente:</translation>
+<translation id="3387261909427947069">Métodos de pagamento</translation>
 <translation id="3391030046425686457">Endereço de entrega</translation>
 <translation id="3395827396354264108">Método de recolha</translation>
 <translation id="3399952811970034796">Endereço de entrega</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Rever o seu pagamento</translation>
 <translation id="4116663294526079822">Permitir sempre neste Website</translation>
 <translation id="4117700440116928470">O âmbito da política não é suportado.</translation>
+<translation id="4119109454650683048">Verifique as informações abaixo e corrija quaisquer erros, se necessário.</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 outro}other{# outros}}</translation>
 <translation id="4130226655945681476">Verificar os cabos de rede, o modem e o router</translation>
 <translation id="413544239732274901">Saiba mais</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Este método de fornecimento não está disponível. Experimente um método diferente.</translation>
 <translation id="4858792381671956233">Perguntaste aos teus pais se podes aceder a este site.</translation>
 <translation id="4876305945144899064">Sem nome de utilizador</translation>
+<translation id="4879491255372875719">Automático (predefinição)</translation>
 <translation id="4880827082731008257">Pesquisar histórico</translation>
 <translation id="4881695831933465202">Abrir</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Mostrar todas as palavras-passe guardadas</translation>
 <translation id="5287240709317226393">Mostrar cookies</translation>
+<translation id="5288108484102287882">A validação dos valores da política gerou avisos.</translation>
 <translation id="5299298092464848405">Erro ao analisar a política</translation>
 <translation id="5308380583665731573">Ligar</translation>
 <translation id="5308689395849655368">O relatório de falha está desativado.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Falha ao armazenar as definições da política</translation>
 <translation id="5371425731340848620">Atualizar cartão</translation>
 <translation id="5377026284221673050">"O seu relógio está atrasado" ou "O seu relógio está adiantado" ou "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Para utilizar os seus cartões em todos os dispositivos, inicie sessão e ative a sincronização.</translation>
 <translation id="5386426401304769735">A cadeia de certificados inclui um certificado assinado através de SHA-1.</translation>
 <translation id="5387961145478138773">Obtenha acesso rápido às suas aplicações Google favoritas.</translation>
 <translation id="540969355065856584">Este servidor não conseguiu provar que é <ph name="DOMAIN" />; de momento, o respetivo certificado de segurança não é válido. Isto pode ser provocado por uma configuração incorreta ou por um atacante que esteja a intercetar a sua ligação.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Os cartões de crédito são admitidos.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizados)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 em utilização}other{# em utilização}}</translation>
+<translation id="5922853866070715753">Estamos quase a terminar</translation>
 <translation id="5939518447894949180">Repor</translation>
 <translation id="5967592137238574583">Editar informações de contacto</translation>
 <translation id="5967867314010545767">Remover do histórico</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Não pode visitar <ph name="SITE" /> neste momento, porque o Website utiliza a afixação de certificados. Os erros de rede e os ataques são geralmente temporários, pelo que esta página deverá funcionar mais tarde.</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
 <translation id="6071091556643036997">O tipo de política é inválido.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Este cartão será guardado na sua Conta Google para um pagamento mais rápido em vários dispositivos.}other{Estes cartões serão guardados na sua Conta Google para um pagamento mais rápido em vários dispositivos.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Nenhuma}=1{1 palavra-passe (sincronizada)}other{# palavras-passe (sincronizadas)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Dispositivo</translation>
 <translation id="6970216967273061347">Distrito</translation>
 <translation id="6973656660372572881">Foram especificados servidores proxy fixos e um URL de script .pac.</translation>
+<translation id="6979440798594660689">Desativar som (predefinição)</translation>
 <translation id="6984479912851154518">Está a sair do modo privado para pagar através de uma aplicação externa. Pretende continuar?</translation>
 <translation id="6989763994942163495">Mostrar definições avançadas...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">ID Gaia:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> e mais <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> e mais <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Guardar e preencher métodos de pagamento</translation>
 <translation id="7180611975245234373">Atualizar</translation>
 <translation id="7182878459783632708">Não estão definidas políticas</translation>
 <translation id="7186367841673660872">Esta página foi traduzida de<ph name="ORIGINAL_LANGUAGE" />para<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">A processar</translation>
 <translation id="724691107663265825">O site que pretende visitar contém software malicioso</translation>
 <translation id="724975217298816891">Introduza a data de validade e o Código de Segurança/CVC de <ph name="CREDIT_CARD" /> para atualizar os detalhes do cartão. Ao confirmar, os detalhes do cartão são partilhados com este site.</translation>
+<translation id="7251437084390964440">A configuração de rede não cumpre a norma ONC. Partes da configuração podem não ser importadas.
+Detalhes adicionais:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Não é possível estabelecer uma ligação privada a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, porque a data e a hora do computador (<ph name="DATE_AND_TIME" />) estão incorretas.</translation>
 <translation id="7260504762447901703">Revogar acesso</translation>
 <translation id="7271803869921933038">Cartões pré-pagos aceites</translation>
@@ -1038,6 +1054,9 @@
 <translation id="8398259832188219207">Relatório de falhas carregado no(a) <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Falhas (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Tem de introduzir a mesma frase de acesso duas vezes.</translation>
+<translation id="8416694386774425977">A configuração de rede é inválida e não foi possível importá-la.
+Detalhes adicionais:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Definições</translation>
 <translation id="8433057134996913067">Esta opção termina a sessão na maioria dos Sites.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Tentar novamente</translation>
 <translation id="8728672262656704056">Está anónimo</translation>
 <translation id="8730621377337864115">Concluído</translation>
+<translation id="8733831205558190772">Todos os seus cartões num único local</translation>
 <translation id="8738058698779197622">Para estabelecer uma ligação segura, o relógio tem de ser definido corretamente. Isto deve-se ao facto de os certificados que os Sites utilizam para se identificarem serem apenas válidos para períodos de tempo específicos. Uma vez que o relógio do seu dispositivo está incorreto, o Chromium não consegue validar estes certificados.</translation>
 <translation id="8740359287975076522">Não foi possível encontrar o &lt;abbr id="dnsDefinition"&gt;endereço DNS&lt;/abbr&gt; de <ph name="HOST_NAME" />. Estamos a diagnosticar o problema.</translation>
 <translation id="874846938927089722">Cartões de crédito e pré-pagos aceites</translation>
 <translation id="8759274551635299824">Este cartão expirou</translation>
 <translation id="8761567432415473239">A Navegação Segura do Google <ph name="BEGIN_LINK" />encontrou programas prejudiciais<ph name="END_LINK" /> recentemente em <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Dispositivo USB</translation>
+<translation id="8768895707659403558">Para utilizar os seus cartões em todos os dispositivos, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Refazer eliminação</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Este cartão foi adicionado à sua Conta Google. Agora pode utilizá-lo em qualquer dispositivo com sessão iniciada.}other{Estes cartões foram adicionados à sua Conta Google. Agora pode utilizá-los em qualquer dispositivo com sessão iniciada.}}</translation>
 <translation id="8792621596287649091">Pode perder o acesso à sua conta do serviço <ph name="ORG_NAME" /> ou ser vítima de roubo de identidade. O Chromium recomenda a alteração da palavra-passe agora.</translation>
 <translation id="8800988563907321413">As sugestões próximas aparecem aqui</translation>
 <translation id="8820817407110198400">Marcadores</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 8c326d3..7bf6346 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;O conexiune privată la <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nu poate fi stabilită, deoarece data și ora dispozitivului (<ph name="DATE_AND_TIME" />) sunt incorecte.&lt;/p&gt;
 
           &lt;p&gt;Corectează data și ora din secțiunea &lt;strong&gt;General&lt;/strong&gt; a aplicației &lt;strong&gt;Setări&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">A apărut o eroare la afișarea paginii web.</translation>
 <translation id="1592005682883173041">Accesul la datele locale</translation>
 <translation id="1594030484168838125">Alegeți</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Solicitarea sau parametrii săi sunt greșiți</translation>
 <translation id="1826516787628120939">Se verifică</translation>
 <translation id="1834321415901700177">Acest site conține programe dăunătoare</translation>
+<translation id="1839551713262164453">Validarea valorilor de politică a returnat erori</translation>
 <translation id="1840414022444569775">Numărul cardului este folosit deja</translation>
 <translation id="1842969606798536927">Plătiți</translation>
 <translation id="1871208020102129563">Configurația proxy este setată să utilizeze servere proxy fixe, și nu o adresă URL pentru scripturi .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Întreabă-mă</translation>
 <translation id="2359629602545592467">Mai multe</translation>
 <translation id="2359808026110333948">Continuă</translation>
+<translation id="2360873523816792727">Pentru a-ți folosi cardurile pe toate dispozitivele, activează sincronizarea.</translation>
 <translation id="2365563543831475020">Raportul de blocare creat <ph name="CRASH_TIME" /> nu a fost încărcat</translation>
 <translation id="2367567093518048410">Nivel</translation>
 <translation id="2378238891085281592">Ai trecut în modul privat</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />cookie-urile și datele privind site-urile;
           <ph name="LIST_ITEM" />informațiile introduse în formulare.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Vezi cardurile</translation>
 <translation id="3369192424181595722">Eroare de ceas</translation>
 <translation id="337363190475750230">Scos din uz</translation>
 <translation id="3377188786107721145">Eroare la analizarea politicii</translation>
 <translation id="3380365263193509176">Eroare necunoscută</translation>
 <translation id="3380864720620200369">Cod de client:</translation>
+<translation id="3387261909427947069">Metode de plată</translation>
 <translation id="3391030046425686457">Adresă de livrare</translation>
 <translation id="3395827396354264108">Metodă de preluare</translation>
 <translation id="3399952811970034796">Adresă de livrare</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Examinează plata</translation>
 <translation id="4116663294526079822">Permiteți întotdeauna pe acest site</translation>
 <translation id="4117700440116928470">Domeniul politicii nu este acceptat.</translation>
+<translation id="4119109454650683048">Verifică informațiile de mai jos și remediază eventualele erori</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{încă 1}few{încă #}other{încă #}}</translation>
 <translation id="4130226655945681476">să verifici cablurile de rețea, modemul și routerul;</translation>
 <translation id="413544239732274901">Află mai multe</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Această metodă de livrare nu este disponibilă. Încearcă altă metodă.</translation>
 <translation id="4858792381671956233">Ți-ai întrebat părinții dacă poți accesa acest site</translation>
 <translation id="4876305945144899064">Niciun nume de utilizator</translation>
+<translation id="4879491255372875719">Automat (prestabilit)</translation>
 <translation id="4880827082731008257">Caută în istoric</translation>
 <translation id="4881695831933465202">Deschide</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Afișează toate parolele salvate</translation>
 <translation id="5287240709317226393">Afișați cookie-urile</translation>
+<translation id="5288108484102287882">Validarea valorilor de politică a returnat avertismente</translation>
 <translation id="5299298092464848405">Eroare la analizarea politicii</translation>
 <translation id="5308380583665731573">Conectează-te</translation>
 <translation id="5308689395849655368">Raportarea blocărilor este dezactivată.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Setările pentru politică nu au putut fi stocate</translation>
 <translation id="5371425731340848620">Actualizează cardul</translation>
 <translation id="5377026284221673050">„Ora este setată în trecut”, „Ora este setată în viitor” sau „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;”</translation>
+<translation id="5384855140246857529">Pentru a-ți folosi cardurile pe toate dispozitivele, conectează-te și activează sincronizarea.</translation>
 <translation id="5386426401304769735">Lanțul de certificate pentru acest site conține un certificat semnat folosind SHA-1.</translation>
 <translation id="5387961145478138773">Obține acces rapid la aplicațiile tale Google preferate</translation>
 <translation id="540969355065856584">Acest server nu a putut dovedi că este <ph name="DOMAIN" />; momentan, certificatul de securitate nu este valid. Cauza poate fi o configurare greșită sau interceptarea conexiunii de un atacator.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Se acceptă carduri de credit.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizat)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 în uz}few{# în uz}other{# în uz}}</translation>
+<translation id="5922853866070715753">Aproape finalizat</translation>
 <translation id="5939518447894949180">Resetează</translation>
 <translation id="5967592137238574583">Editează informațiile de contact</translation>
 <translation id="5967867314010545767">Eliminați din istoric</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Nu poți accesa <ph name="SITE" /> acum, deoarece site-ul folosește fixarea certificatelor. Erorile de rețea și atacurile sunt de obicei temporare și probabil că această pagină va funcționa mai târziu.</translation>
 <translation id="6059925163896151826">Dispozitive USB</translation>
 <translation id="6071091556643036997">Tipul de politică nu este valid.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Acest card va fi salvat în Contul Google pentru finalizarea mai ușoară a plății pe toate dispozitivele.}few{Aceste carduri vor fi salvate în Contul Google pentru finalizarea mai ușoară a plății pe toate dispozitivele.}other{Aceste carduri vor fi salvate în Contul Google pentru finalizarea mai ușoară a plății pe toate dispozitivele.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Niciuna}=1{1 parolă (sincronizată)}few{# parole (sincronizate)}other{# de parole (sincronizate)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Dispozitiv</translation>
 <translation id="6970216967273061347">Județ</translation>
 <translation id="6973656660372572881">Sunt specificate atât servere proxy fixe, cât și o adresă URL pentru scripturi .pac.</translation>
+<translation id="6979440798594660689">Dezactivează sunetul (prestabilit)</translation>
 <translation id="6984479912851154518">Vei părăsi modul privat pentru a plăti folosind o aplicație externă. Continui?</translation>
 <translation id="6989763994942163495">Afișează setările avansate...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> și încă <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}few{<ph name="PAYMENT_METHOD_PREVIEW" /> și încă <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> și încă <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Cod Gaia:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" /> și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Salvează și completează metodele de plată</translation>
 <translation id="7180611975245234373">Actualizați</translation>
 <translation id="7182878459783632708">Nu au fost setate politici</translation>
 <translation id="7186367841673660872">Această pagină a fost tradusă din <ph name="ORIGINAL_LANGUAGE" /> în <ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Se procesează</translation>
 <translation id="724691107663265825">Site-ul pe care urmează să îl accesezi conține programe malware</translation>
 <translation id="724975217298816891">Introdu data de expirare și codul CVC pentru <ph name="CREDIT_CARD" />, pentru a actualiza detaliile cardului. După ce confirmi, acest site va avea acces la detaliile cardului tău.</translation>
+<translation id="7251437084390964440">Configurația rețelei nu respectă standardul ONC. Este posibil ca anumite părți ale configurației să nu fie importate.
+Detalii suplimentare:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">O conexiune privată la <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nu poate fi stabilită, deoarece data și ora computerului (<ph name="DATE_AND_TIME" />) sunt incorecte.</translation>
 <translation id="7260504762447901703">Revocă accesul</translation>
 <translation id="7271803869921933038">Carduri preplătite acceptate</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Raport de blocare încărcat <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Blocări (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Trebuie să introduci aceeași expresie de acces de două ori.</translation>
+<translation id="8416694386774425977">Configurația rețelei este nevalidă și nu a putut fi importată.
+Detalii suplimentare:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Setări</translation>
 <translation id="8433057134996913067">Astfel, te vei deconecta de pe majoritatea site-urilor.</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">Încearcă din nou</translation>
 <translation id="8728672262656704056">Ați trecut în modul incognito</translation>
 <translation id="8730621377337864115">Terminat</translation>
+<translation id="8733831205558190772">Toate cardurile tale într-un singur loc</translation>
 <translation id="8738058698779197622">Pentru a stabili o conexiune securizată, ceasul trebuie să fie setat corect. Aceasta deoarece certificatele pe care site-urile le folosesc pentru a se identifica sunt valabile numai pentru anumite intervale de timp. Din moment ce ora de pe dispozitiv este incorectă, Chromium nu poate verifica aceste certificate.</translation>
 <translation id="8740359287975076522">&lt;abbr id="dnsDefinition"&gt;Adresa DNS&lt;/abbr&gt; pentru <ph name="HOST_NAME" /> nu a putut fi găsită. Se diagnostichează problema.</translation>
 <translation id="874846938927089722">Carduri de credit și preplătite acceptate</translation>
 <translation id="8759274551635299824">Acest card este expirat</translation>
 <translation id="8761567432415473239">Recent, Navigarea sigură Google a <ph name="BEGIN_LINK" />descoperit programe dăunătoare<ph name="END_LINK" /> pe <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Dispozitiv USB</translation>
+<translation id="8768895707659403558">Pentru a-ți folosi cardurile pe toate dispozitivele, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Repetați ștergerea</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Acest card a fost adăugat în Contul tău Google. Acum îl poți folosi de pe orice dispozitiv conectat.}few{Aceste carduri au fost adăugate în Contul tău Google. Acum le poți folosi de pe orice dispozitiv conectat.}other{Aceste carduri au fost adăugate în Contul tău Google. Acum le poți folosi de pe orice dispozitiv conectat.}}</translation>
 <translation id="8792621596287649091">Este posibil să pierzi accesul la contul <ph name="ORG_NAME" /> sau să fii victima unui furt de identitate. Chromium îți recomandă să îți schimbi acum parola.</translation>
 <translation id="8800988563907321413">Sugestiile pentru În apropiere sunt afișate aici</translation>
 <translation id="8820817407110198400">Marcaje</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index 3dacd3e..6b8a54c6 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Не удалось установить защищенное соединение с доменом <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> из-за неверных настроек системных часов и календаря (<ph name="DATE_AND_TIME" />).&lt;/p&gt;
 
       &lt;p&gt;Установите точную дату и время. Для этого откройте раздел &lt;strong&gt;Общие&lt;/strong&gt; в приложении &lt;strong&gt;Настройки&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">При загрузке этой страницы возникли неполадки.</translation>
 <translation id="1592005682883173041">Доступ к данным на устройстве</translation>
 <translation id="1594030484168838125">Выбрать</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Недопустимый запрос или неверные параметры запроса</translation>
 <translation id="1826516787628120939">Проверка</translation>
 <translation id="1834321415901700177">Сайт содержит вредоносное ПО</translation>
+<translation id="1839551713262164453">Не удалось выполнить проверку значений политик</translation>
 <translation id="1840414022444569775">Карта с таким номером уже используется</translation>
 <translation id="1842969606798536927">Оплатить</translation>
 <translation id="1871208020102129563">Выбрано использование фиксированных прокси-серверов, а не URL PAC-скрипта.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Спрашивать</translation>
 <translation id="2359629602545592467">Несколько</translation>
 <translation id="2359808026110333948">Далее</translation>
+<translation id="2360873523816792727">Чтобы использовать карты на всех ваших устройствах, включите синхронизацию.</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" />: получен отчет о сбое (не загружен)</translation>
 <translation id="2367567093518048410">Уровень</translation>
 <translation id="2378238891085281592">Вы работаете в режиме инкогнито</translation>
@@ -350,11 +353,13 @@
           <ph name="LIST_ITEM" />файлы cookie и данные сайтов;
           <ph name="LIST_ITEM" />сведения, которые вы указываете в формах.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Список карт</translation>
 <translation id="3369192424181595722">Ошибка часов</translation>
 <translation id="337363190475750230">Отключен</translation>
 <translation id="3377188786107721145">Не удалось выполнить анализ политики</translation>
 <translation id="3380365263193509176">Неизвестная ошибка</translation>
 <translation id="3380864720620200369">Идентификатор клиента:</translation>
+<translation id="3387261909427947069">Способы оплаты</translation>
 <translation id="3391030046425686457">Адрес доставки</translation>
 <translation id="3395827396354264108">Способ выдачи</translation>
 <translation id="3399952811970034796">Адрес доставки</translation>
@@ -451,6 +456,7 @@
 <translation id="4110652170750985508">Просмотр платежа</translation>
 <translation id="4116663294526079822">Всегда разрешать на этом сайте</translation>
 <translation id="4117700440116928470">Область действия правил не поддерживается.</translation>
+<translation id="4119109454650683048">Проверьте данные и исправьте ошибки, если они есть.</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{ещё 1 вариант}one{ещё # вариант}few{ещё # варианта}many{ещё # вариантов}other{ещё # варианта}}</translation>
 <translation id="4130226655945681476">Проверьте сетевые кабели, модем и маршрутизатор.</translation>
 <translation id="413544239732274901">Подробнее...</translation>
@@ -556,6 +562,7 @@
 <translation id="4854362297993841467">Этот способ доставки недоступен. Выберите другой.</translation>
 <translation id="4858792381671956233">Запрос на просмотр сайта отправлен вашим родителям</translation>
 <translation id="4876305945144899064">Имя пользователя не указано</translation>
+<translation id="4879491255372875719">Автоматически (по умолчанию)</translation>
 <translation id="4880827082731008257">Искать в истории</translation>
 <translation id="4881695831933465202">Открыть</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" /> и <ph name="TYPE_3" /></translation>
@@ -621,6 +628,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Показать все сохраненные пароли</translation>
 <translation id="5287240709317226393">Показать файлы сookie</translation>
+<translation id="5288108484102287882">При проверке значений политик возникли некритичные ошибки</translation>
 <translation id="5299298092464848405">Не удалось выполнить анализ политики</translation>
 <translation id="5308380583665731573">Подключение</translation>
 <translation id="5308689395849655368">Отчеты о сбоях отключены.</translation>
@@ -633,6 +641,7 @@
 <translation id="536296301121032821">Не удалось сохранить настройки политики</translation>
 <translation id="5371425731340848620">Изменить информацию о карте</translation>
 <translation id="5377026284221673050">"Часы отстают", "Часы спешат" или &lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;</translation>
+<translation id="5384855140246857529">Чтобы пользоваться картами на всех своих устройствах, войдите в аккаунт и включите синхронизацию.</translation>
 <translation id="5386426401304769735">В цепочке сертификатов этого сайта есть сертификат, подписанный с помощью алгоритма SHA-1.</translation>
 <translation id="5387961145478138773">Быстрый доступ к любимым приложениям Google</translation>
 <translation id="540969355065856584">Не удалось подтвердить, что это сервер <ph name="DOMAIN" />. Его сертификат безопасности может быть недействителен в настоящее время. Возможно, сервер настроен неправильно или кто-то пытается перехватить ваши данные.</translation>
@@ -708,6 +717,7 @@
 <translation id="5893752035575986141">Принимаются кредитные карты.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (данные синхронизируются)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Используется 1 файл cookie}one{Используется # файл cookie}few{Используется # файла cookie}many{Используется # файлов cookie}other{Используется # файла cookie}}</translation>
+<translation id="5922853866070715753">Почти готово…</translation>
 <translation id="5939518447894949180">Сбросить</translation>
 <translation id="5967592137238574583">Измените контактную информацию</translation>
 <translation id="5967867314010545767">Удалить из истории</translation>
@@ -728,6 +738,7 @@
 <translation id="6051221802930200923">Веб-сайт <ph name="SITE" /> использует механизм Certificate Pinning, поэтому на нем могла произойти подмена сертификата. Открыть сайт в настоящее время нельзя. Сбой мог быть вызван сетевой ошибкой или действиями злоумышленников. Скорее всего, сайт заработает через некоторое время.</translation>
 <translation id="6059925163896151826">USB-устройства</translation>
 <translation id="6071091556643036997">Указан неверный тип правил.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Данные этой карты будут сохранены в аккаунте Google и доступны на других устройствах.}one{Данные этих карт будут сохранены в аккаунте Google и доступны на других устройствах.}few{Данные этих карт будут сохранены в аккаунте Google и доступны на других устройствах.}many{Данные этих карт будут сохранены в аккаунте Google и доступны на других устройствах.}other{Данные этих карт будут сохранены в аккаунте Google и доступны на других устройствах.}}</translation>
 <translation id="6080696365213338172">Вы используете сертификат, предоставленный администратором, поэтому он может заблокировать передачу данных на сайт <ph name="DOMAIN" />.</translation>
 <translation id="610911394827799129">Информация о других ваших действиях в Интернете может также храниться на странице <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Нет}=1{1 синхронизированный пароль}one{# синхронизированный пароль}few{# синхронизированных пароля}many{# синхронизированных паролей}other{# синхронизированного пароля}}</translation>
@@ -830,6 +841,7 @@
 <translation id="6965978654500191972">Устройство</translation>
 <translation id="6970216967273061347">Район</translation>
 <translation id="6973656660372572881">Указаны как фиксированные прокси-серверы, так и URL PAC-скриптов.</translation>
+<translation id="6979440798594660689">Без звука (по умолчанию)</translation>
 <translation id="6984479912851154518">Вы выйдете из режима инкогнито, чтобы произвести оплату во внешнем приложении. Продолжить?</translation>
 <translation id="6989763994942163495">Показать дополнительные настройки</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -850,6 +862,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> и ещё <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> способ оплаты}one{<ph name="PAYMENT_METHOD_PREVIEW" /> и ещё <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> способ оплаты}few{<ph name="PAYMENT_METHOD_PREVIEW" /> и ещё <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> способа оплаты}many{<ph name="PAYMENT_METHOD_PREVIEW" /> и ещё <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> способов оплаты}other{<ph name="PAYMENT_METHOD_PREVIEW" /> и ещё <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> способа оплаты}}</translation>
 <translation id="717330890047184534">Идентификатор GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> и ещё <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> вариант доставки}one{<ph name="SHIPPING_OPTION_PREVIEW" /> и ещё <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> вариант доставки}few{<ph name="SHIPPING_OPTION_PREVIEW" /> и ещё <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> варианта доставки}many{<ph name="SHIPPING_OPTION_PREVIEW" /> и ещё <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> вариантов доставки}other{<ph name="SHIPPING_OPTION_PREVIEW" /> и ещё <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> варианта доставки}}</translation>
+<translation id="7179323680825933600">Сохранять и автоматически подставлять платежные данные</translation>
 <translation id="7180611975245234373">Обновить</translation>
 <translation id="7182878459783632708">Правила не заданы</translation>
 <translation id="7186367841673660872">Эта страница была переведена автоматически<ph name="ORIGINAL_LANGUAGE" />&gt;<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -861,6 +874,9 @@
 <translation id="7220786058474068424">Подождите…</translation>
 <translation id="724691107663265825">Осторожно, вредоносное ПО!</translation>
 <translation id="724975217298816891">Введите срок действия и CVC-код карты <ph name="CREDIT_CARD" />. После этого ее данные будут переданы сайту.</translation>
+<translation id="7251437084390964440">Некоторые элементы сетевой конфигурации невозможно импортировать, поскольку она не соответствует стандарту ONC.
+Подробнее:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Не удалось установить защищенное соединение с доменом <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> из-за неверных настроек системных часов и календаря (<ph name="DATE_AND_TIME" />).</translation>
 <translation id="7260504762447901703">Запретить доступ</translation>
 <translation id="7271803869921933038">Карты предоплаты, которые принимаются к оплате</translation>
@@ -1038,6 +1054,9 @@
 <translation id="8398259832188219207"><ph name="UPLOAD_TIME" />: отчет о сбоях загружен.</translation>
 <translation id="8412145213513410671">Сбои (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Необходимо дважды ввести одну и ту же кодовую фразу.</translation>
+<translation id="8416694386774425977">Импорт невозможен: недопустимая конфигурация сети.
+Подробнее:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Настройки</translation>
 <translation id="8433057134996913067">На большинстве сайтов будет выполнен выход из аккаунта.</translation>
@@ -1069,13 +1088,16 @@
 <translation id="8725066075913043281">Повторить попытку</translation>
 <translation id="8728672262656704056">Вы перешли в режим инкогнито</translation>
 <translation id="8730621377337864115">Готово</translation>
+<translation id="8733831205558190772">Карты всегда под рукой</translation>
 <translation id="8738058698779197622">Для создания безопасного подключения необходимо, чтобы показания системных часов были верны. Причина в том, что сертификаты для идентификации сайтов имеют ограниченный срок действия. Если часы на устройстве неточны, Chromium не может проверить актуальность этих сертификатов.</translation>
 <translation id="8740359287975076522">Не удается найти &lt;abbr id="dnsDefinition"&gt;DNS-адрес&lt;/abbr&gt; сайта <ph name="HOST_NAME" />. Выполняется диагностика.</translation>
 <translation id="874846938927089722">Кредитные карты и карты предоплаты, которые принимаются к оплате</translation>
 <translation id="8759274551635299824">Срок действия карты истек.</translation>
 <translation id="8761567432415473239">Система Google по проверке безопасности сайтов недавно обнаружила на <ph name="SITE" /> <ph name="BEGIN_LINK" />вредоносное ПО<ph name="END_LINK" />.</translation>
 <translation id="8763927697961133303">USB-устройство</translation>
+<translation id="8768895707659403558">Чтобы использовать карты на всех своих устройствах, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Повторить удаление</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Данные карты сохранены в аккаунте Google и доступны на всех устройствах, где выполнен вход.}one{Данные карт сохранены в аккаунте Google и доступны на всех устройствах, где выполнен вход.}few{Данные карт сохранены в аккаунте Google и доступны на всех устройствах, где выполнен вход.}many{Данные карт сохранены в аккаунте Google и доступны на всех устройствах, где выполнен вход.}other{Данные карт сохранены в аккаунте Google и доступны на всех устройствах, где выполнен вход.}}</translation>
 <translation id="8792621596287649091">Кто-то посторонний мог получить доступ к вашим личным данным или аккаунту в домене <ph name="ORG_NAME" />. Рекомендуем немедленно сменить пароль.</translation>
 <translation id="8800988563907321413">Здесь появятся рекомендации.</translation>
 <translation id="8820817407110198400">Закладки</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index 3fc9b86..50815c6 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Zasebne povezave z domeno <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ni mogoče vzpostaviti, ker sta datum in ura (<ph name="DATE_AND_TIME" />) v napravi nepravilna.&lt;/p&gt;
 
       &lt;p&gt;V razdelku &lt;strong&gt;Splošno&lt;/strong&gt; aplikacije &lt;strong&gt;Nastavitve&lt;/strong&gt; prilagodite datum in uro.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Med prikazom spletne strani je prišlo do napake.</translation>
 <translation id="1592005682883173041">Dostop do lokalnih podatkov</translation>
 <translation id="1594030484168838125">Izberi</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Neveljavna zahteva ali parametri zahteve</translation>
 <translation id="1826516787628120939">Preverjanje</translation>
 <translation id="1834321415901700177">Na tem spletnem mestu so škodljivi programi</translation>
+<translation id="1839551713262164453">Preverjanje vrednosti pravilnika je bilo neuspešno z napakami</translation>
 <translation id="1840414022444569775">Ta številka kartice je že v uporabi</translation>
 <translation id="1842969606798536927">Plačilo</translation>
 <translation id="1871208020102129563">Proxy je nastavljen na uporabo stalnih strežnikov proxy, ne na URL skripta .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Vprašaj</translation>
 <translation id="2359629602545592467">Več valut</translation>
 <translation id="2359808026110333948">Nadaljuj</translation>
+<translation id="2360873523816792727">Če želite uporabljati kartice v vseh napravah, vklopite sinhronizacijo.</translation>
 <translation id="2365563543831475020">Poročilo o zrušitvi, zajeto takrat: <ph name="CRASH_TIME" />, ni bilo naloženo</translation>
 <translation id="2367567093518048410">Raven</translation>
 <translation id="2378238891085281592">Uporabljate zasebni način</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />piškotkov in podatkov spletnih mest,
           <ph name="LIST_ITEM" />podatkov, vnesenih v obrazce.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Ogled kartic</translation>
 <translation id="3369192424181595722">Napaka ure</translation>
 <translation id="337363190475750230">Nepripravljen</translation>
 <translation id="3377188786107721145">Napaka pri razčlenjevanju pravilnika</translation>
 <translation id="3380365263193509176">Neznana napaka</translation>
 <translation id="3380864720620200369">ID odjemalca:</translation>
+<translation id="3387261909427947069">Plačilna sredstva</translation>
 <translation id="3391030046425686457">Naslov za dostavo</translation>
 <translation id="3395827396354264108">Način prevzema</translation>
 <translation id="3399952811970034796">Naslov za dostavo</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Pregled plačila</translation>
 <translation id="4116663294526079822">Vedno dovoli na tem spletnem mestu</translation>
 <translation id="4117700440116928470">Obseg pravilnika ni podprt.</translation>
+<translation id="4119109454650683048">Preverite spodnje podatke in po potrebi popravite napake</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{in še 1 drug}one{in še # drug}two{in še # druga}few{in še # drugi}other{in še # drugih}}</translation>
 <translation id="4130226655945681476">preveriti omrežne kable, modem in usmerjevalnik</translation>
 <translation id="413544239732274901">Več o tem</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Ta način pošiljanja ni na voljo. Poskusite uporabiti drugega.</translation>
 <translation id="4858792381671956233">Starše si vprašal(-a), ali smeš obiskati to spletno mesto</translation>
 <translation id="4876305945144899064">Ni uporabniškega imena</translation>
+<translation id="4879491255372875719">Samodejno (privzeto)</translation>
 <translation id="4880827082731008257">Zgodovina iskanja</translation>
 <translation id="4881695831933465202">Odpri</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Prikaži vsa shranjena gesla</translation>
 <translation id="5287240709317226393">Pokaži piškotke</translation>
+<translation id="5288108484102287882">Preverjanje vrednosti pravilnika je aktiviralo opozorila</translation>
 <translation id="5299298092464848405">Napaka pri razčlenjevanju pravilnika</translation>
 <translation id="5308380583665731573">Povezovanje</translation>
 <translation id="5308689395849655368">Poročanje o zrušitvah je onemogočeno.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Nastavitev pravilnika ni bilo mogoče shraniti</translation>
 <translation id="5371425731340848620">Posodobite kartico</translation>
 <translation id="5377026284221673050">Ura zaostaja« ali »Ura prehiteva« ali »&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;«</translation>
+<translation id="5384855140246857529">Če želite uporabljati kartice v vseh napravah, se prijavite in vklopite sinhronizacijo.</translation>
 <translation id="5386426401304769735">Veriga potrdil za to spletno mesto vsebuje potrdilo, podpisano z algoritmom SHA-1.</translation>
 <translation id="5387961145478138773">Hiter dostop do priljubljenih Googlovih aplikacij</translation>
 <translation id="540969355065856584">Strežniku ni uspelo dokazati, da je <ph name="DOMAIN" />; njegovo varnostno potrdilo trenutno ni veljavno. Razlog za to je lahko napačna konfiguracija ali napadalčevo prestrezanje povezave.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Sprejema kreditne kartice.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (sinhronizirano)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 v uporabi}one{# v uporabi}two{# v uporabi}few{# v uporabi}other{# v uporabi}}</translation>
+<translation id="5922853866070715753">Skoraj končano</translation>
 <translation id="5939518447894949180">Ponastavi</translation>
 <translation id="5967592137238574583">Urejanje podatkov o stiku</translation>
 <translation id="5967867314010545767">Odstrani iz zgodovine</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Spletnega mesta <ph name="SITE" /> trenutno ni mogoče obiskati, ker uporablja pripenjanje potrdil. Napake omrežja in napadi na omrežje so običajno začasni, zato bo ta stran verjetno delovala pozneje.</translation>
 <translation id="6059925163896151826">Naprave USB</translation>
 <translation id="6071091556643036997">Vrsta pravilnika je neveljavna.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Ta kartica bo shranjena v Google Račun zaradi hitrejšega dokončanja nakupov v vseh napravah.}one{Te kartice bodo shranjene v Google Račun zaradi hitrejšega dokončanja nakupov v vseh napravah.}two{Te kartice bodo shranjene v Google Račun zaradi hitrejšega dokončanja nakupov v vseh napravah.}few{Te kartice bodo shranjene v Google Račun zaradi hitrejšega dokončanja nakupov v vseh napravah.}other{Te kartice bodo shranjene v Google Račun zaradi hitrejšega dokončanja nakupov v vseh napravah.}}</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="610911394827799129">V Google Računu so morda druge vrste zgodovine brskanja na <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Brez}=1{1 geslo (sinhronizirano)}one{# geslo (sinhronizirano)}two{# gesli (sinhronizirani)}few{# gesla (sinhronizirana)}other{# gesel (sinhroniziranih)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Naprava</translation>
 <translation id="6970216967273061347">Okraj</translation>
 <translation id="6973656660372572881">Določeni so stalni strežniki proxy in URL skripta .pac.</translation>
+<translation id="6979440798594660689">Izklop zvoka (privzeto)</translation>
 <translation id="6984479912851154518">Zaradi plačila v zunanji aplikaciji boste zapustili zasebni način. Želite nadaljevati?</translation>
 <translation id="6989763994942163495">Prikaži dodatne nastavitve ...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> in še <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" /> in še <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}two{<ph name="PAYMENT_METHOD_PREVIEW" /> in še <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}few{<ph name="PAYMENT_METHOD_PREVIEW" /> in še <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> in še <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">ID za Gaio:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> in še <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" /> in še <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}two{<ph name="SHIPPING_OPTION_PREVIEW" /> in še <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" /> in še <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> in še <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Shranjevanje in izpolnjevanje plačilnih sredstev</translation>
 <translation id="7180611975245234373">Osveži</translation>
 <translation id="7182878459783632708">Ni nastavljenih pravilnikov</translation>
 <translation id="7186367841673660872">Ta stran je bila prevedena iz jezika<ph name="ORIGINAL_LANGUAGE" />v jezik<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Obdelovanje</translation>
 <translation id="724691107663265825">Spletno mesto z zlonamerno programsko opremo</translation>
 <translation id="724975217298816891">Vnesite datum poteka in CVC za <ph name="CREDIT_CARD" />, da posodobite podatke o kartici. Ko potrdite, bodo temu spletnemu mestu razkriti podatki o kartici.</translation>
+<translation id="7251437084390964440">Omrežna konfiguracija ne ustreza standardu ONC. Deli konfiguracije morda niso bili uvoženi.
+Dodatne podrobnosti:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Zasebne povezave z domeno <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ni mogoče vzpostaviti, ker sta datum in ura (<ph name="DATE_AND_TIME" />) v računalniku nepravilna.</translation>
 <translation id="7260504762447901703">Ukinitev dostopa</translation>
 <translation id="7271803869921933038">Sprejete predplačniške kartice</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Poročilo o zrušitvi je bilo naloženo takrat: <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Zrušitve (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Dvakrat morate vnesti isto geslo.</translation>
+<translation id="8416694386774425977">Omrežna konfiguracija je neveljavna in je ni mogoče uvoziti.
+Dodatne podrobnosti:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" />, <ph name="SECOND_LABEL" />, <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Nastavitve</translation>
 <translation id="8433057134996913067">S tem boste odjavljeni z večine spletnih mest.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Poskusite znova</translation>
 <translation id="8728672262656704056">Uporabljate način brez beleženja zgodovine</translation>
 <translation id="8730621377337864115">Končano</translation>
+<translation id="8733831205558190772">Vse kartice na enem mestu</translation>
 <translation id="8738058698779197622">Če želite vzpostaviti varno povezavo, mora biti ura pravilno nastavljena. Potrdila, ki jih uporabljajo spletna mesta za prepoznavanje, namreč veljajo samo določen čas. Ker je ura sistema nepravilna, Chromium teh potrdil ne more preveriti.</translation>
 <translation id="8740359287975076522">&lt;abbr id="dnsDefinition"&gt;Naslova DNS&lt;/abbr&gt; spletnega mesta <ph name="HOST_NAME" /> ni bilo mogoče najti. Poteka diagnosticiranje težave.</translation>
 <translation id="874846938927089722">Sprejete kreditne in predplačniške kartice</translation>
 <translation id="8759274551635299824">Ta kartica je potekla</translation>
 <translation id="8761567432415473239">Googlova funkcija varnega brskanja je nedavno <ph name="BEGIN_LINK" />odkrila škodljive programe<ph name="END_LINK" /> na spletnem mestu <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Naprava USB</translation>
+<translation id="8768895707659403558">Če želite uporabljati kartice v vseh napravah, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Uveljavi izbris</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Ta kartica je dodana v Google Račun. Zdaj jo lahko uporabljate v poljubni napravi, v kateri ste prijavljeni.}one{Te kartice so dodane v Google Račun. Zdaj jih lahko uporabljate v poljubni napravi, v kateri ste prijavljeni.}two{Te kartice so dodane v Google Račun. Zdaj jih lahko uporabljate v poljubni napravi, v kateri ste prijavljeni.}few{Te kartice so dodane v Google Račun. Zdaj jih lahko uporabljate v poljubni napravi, v kateri ste prijavljeni.}other{Te kartice so dodane v Google Račun. Zdaj jih lahko uporabljate v poljubni napravi, v kateri ste prijavljeni.}}</translation>
 <translation id="8792621596287649091">Izgubite lahko dostop do računa za <ph name="ORG_NAME" /> ali postanete žrtev kraje identitete. Chromium priporoča, da spremenite geslo.</translation>
 <translation id="8800988563907321413">Tu so prikazani predlogi v bližini</translation>
 <translation id="8820817407110198400">Zaznamki</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index 1d8fcac..ad9d6d0 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Није могуће успоставити приватну везу са доменом <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> јер датум и време на уређају (<ph name="DATE_AND_TIME" />) нису тачни.&lt;/p&gt;
 
       &lt;p&gt;Прилагодите датум и време у одељку &lt;strong&gt;Опште&lt;/strong&gt; у апликацији &lt;strong&gt;Подешавања&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Дошло је до грешке при приказивању ове веб-странице.</translation>
 <translation id="1592005682883173041">Приступ локалним подацима</translation>
 <translation id="1594030484168838125">Одабери</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Неважећи захтев или параметри захтева</translation>
 <translation id="1826516787628120939">Провера</translation>
 <translation id="1834321415901700177">Овај сајт садржи штетне програме</translation>
+<translation id="1839551713262164453">Валидација вредности смерница није успела уз грешке</translation>
 <translation id="1840414022444569775">Овај број картице се већ користи</translation>
 <translation id="1842969606798536927">Плаћање</translation>
 <translation id="1871208020102129563">Прокси је подешен да користи фиксне прокси сервере, а не URL адресу .pac скрипте.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Питај</translation>
 <translation id="2359629602545592467">Више</translation>
 <translation id="2359808026110333948">Настави</translation>
+<translation id="2360873523816792727">Да бисте користили картице на свим уређајима, укључите синхронизацију.</translation>
 <translation id="2365563543831475020">Извештај о отказивању снимљен у <ph name="CRASH_TIME" /> није отпремљен</translation>
 <translation id="2367567093518048410">Ниво</translation>
 <translation id="2378238891085281592">Прешли сте на режим приватног прегледања</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />колачиће и податке о сајтовима
           <ph name="LIST_ITEM" />информације које уносите у обрасцима
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Прикажи картице</translation>
 <translation id="3369192424181595722">Грешка на сату</translation>
 <translation id="337363190475750230">Онемогућен је</translation>
 <translation id="3377188786107721145">Грешка при рашчлањивању смерница</translation>
 <translation id="3380365263193509176">Непозната грешка</translation>
 <translation id="3380864720620200369">ИД клијента:</translation>
+<translation id="3387261909427947069">Начини плаћања</translation>
 <translation id="3391030046425686457">Адреса испоруке</translation>
 <translation id="3395827396354264108">Начин преузимања</translation>
 <translation id="3399952811970034796">Адреса испоруке</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Прегледајте уплату</translation>
 <translation id="4116663294526079822">Увек дозволи на овом сајту</translation>
 <translation id="4117700440116928470">Опсег смерница није подржан.</translation>
+<translation id="4119109454650683048">Проверите информације испод и по потреби исправите грешке</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{још 1}one{још #}few{још #}other{још #}}</translation>
 <translation id="4130226655945681476">да проверите мрежне каблове, модем и рутер</translation>
 <translation id="413544239732274901">Сазнајте више</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Овај начин испоруке није доступан. Испробајте неки други начин.</translation>
 <translation id="4858792381671956233">Питао/ла си родитеље да ли смеш да посетиш овај сајт</translation>
 <translation id="4876305945144899064">Нема корисничког имена</translation>
+<translation id="4879491255372875719">Аутоматски (подразумевано)</translation>
 <translation id="4880827082731008257">Претражи историју</translation>
 <translation id="4881695831933465202">Отвори</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Прикажи све сачуване лозинке</translation>
 <translation id="5287240709317226393">Прикажи колачиће</translation>
+<translation id="5288108484102287882">Валидација вредности смерница је активирала упозорења</translation>
 <translation id="5299298092464848405">Грешка при рашчлањивању смерница</translation>
 <translation id="5308380583665731573">Повезивање</translation>
 <translation id="5308689395849655368">Извештавање о отказивању је онемогућено.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Складиштење подешавања смерница није успело</translation>
 <translation id="5371425731340848620">Ажурирајте картицу</translation>
 <translation id="5377026284221673050">„Сат касни“ или „Сат жури“ или „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;“</translation>
+<translation id="5384855140246857529">Да бисте користили картице на свим уређајима, пријавите се и укључите синхронизацију.</translation>
 <translation id="5386426401304769735">Ланац сертификата за овај сајт садржи сертификат потписан помоћу алгоритма SHA-1.</translation>
 <translation id="5387961145478138773">Брзо приступајте омиљеним Google апликацијама</translation>
 <translation id="540969355065856584">Овај сервер не може да докаже да је <ph name="DOMAIN" />; његов безбедносни сертификат тренутно није важећи. Узрок томе је можда погрешна конфигурација или нападач који је прекинуо везу.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Прихватају се кредитне картице.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (синхронизовано)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Користи се 1}one{Користи се #}few{Користе се #}other{Користи се #}}</translation>
+<translation id="5922853866070715753">Скоро је готово</translation>
 <translation id="5939518447894949180">Ресетуј</translation>
 <translation id="5967592137238574583">Измените контакт информације</translation>
 <translation id="5967867314010545767">Уклони из историје</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Тренутно не можете да посетите <ph name="SITE" /> јер веб-сајт користи проверу сертификата. Грешке и напади на мрежи су обично привремени, па ће ова страница вероватно функционисати касније.</translation>
 <translation id="6059925163896151826">USB уређаји</translation>
 <translation id="6071091556643036997">Овај тип смерница је неважећи.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Ова картица ће бити сачувана на Google налогу ради бржег плаћања на свим уређајима.}one{Ове картице ће бити сачуване на Google налогу ради бржег плаћања на свим уређајима.}few{Ове картице ће бити сачуване на Google налогу ради бржег плаћања на свим уређајима.}other{Ове картице ће бити сачуване на Google налогу ради бржег плаћања на свим уређајима.}}</translation>
 <translation id="6080696365213338172">Приступали сте садржају помоћу сертификата који је обезбедио администратор. Администратор може да пресретне податке које обезбедите домену <ph name="DOMAIN" />.</translation>
 <translation id="610911394827799129">Google налог може да има друге облике историје прегледања на <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{None}=1{1 лозинка (синхронизована)}one{# лозинка (синхронизована)}few{# лозинке (синхронизоване)}other{# лозинки (синхронизованих)}}</translation>
@@ -830,6 +841,7 @@
 <translation id="6965978654500191972">Уређај</translation>
 <translation id="6970216967273061347">Дистрикт</translation>
 <translation id="6973656660372572881">Наведени су и фиксни прокси сервери и URL адреса .pac скрипте.</translation>
+<translation id="6979440798594660689">Искључен (подразумевано)</translation>
 <translation id="6984479912851154518">Напустићете режим приватног прегледања да бисте платили у спољној апликацији. Желите ли да наставите?</translation>
 <translation id="6989763994942163495">Прикажи напредна подешавања...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -850,6 +862,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> и још <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" /> и још <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}few{<ph name="PAYMENT_METHOD_PREVIEW" /> и још <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> и још <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Gaia ИД:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> и још <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" /> и још <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" /> и још <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> и још <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Чувај и уноси начине плаћања</translation>
 <translation id="7180611975245234373">Освежи</translation>
 <translation id="7182878459783632708">Нису подешене никакве смернице</translation>
 <translation id="7186367841673660872">Ова страница је преведена са језика:<ph name="ORIGINAL_LANGUAGE" />на<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -861,6 +874,9 @@
 <translation id="7220786058474068424">Обрада</translation>
 <translation id="724691107663265825">Сајт који ћете посетити садржи малвер</translation>
 <translation id="724975217298816891">Унесите рок трајања и CVC за картицу <ph name="CREDIT_CARD" /> да бисте ажурирали податке о картици. Када будете потврдили, подаци о картици ће бити послати овом сајту.</translation>
+<translation id="7251437084390964440">Конфигурација мреже није у складу са ONC стандардом. Делови конфигурације можда нису увезени.
+Додатни детаљи:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Није могуће успоставити приватну везу са доменом <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> јер време и датум на рачунару (<ph name="DATE_AND_TIME" />) нису тачни.</translation>
 <translation id="7260504762447901703">Опозовите приступ</translation>
 <translation id="7271803869921933038">Припејд картице које се прихватају</translation>
@@ -1038,6 +1054,9 @@
 <translation id="8398259832188219207">Извештај о отказивању је отпремљен у: <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Отказивања (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Потребно је да двапут унесете исту приступну фразу.</translation>
+<translation id="8416694386774425977">Конфигурација мреже је неважећа и не може да се увезе.
+Додатни детаљи:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Подешавања</translation>
 <translation id="8433057134996913067">Овако ћете се одјавити са већине веб-сајтова.</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">Пробајте поново</translation>
 <translation id="8728672262656704056">Прешли сте у режим Без архивирања</translation>
 <translation id="8730621377337864115">Готово</translation>
+<translation id="8733831205558190772">Све ваше картице на једном месту</translation>
 <translation id="8738058698779197622">Да бисте успоставили безбедну везу, сат на уређају мора да буде тачан. То је зато што сертификати које веб-сајтови користе за идентификацију важе само одређени временски период. Пошто сат на вашем уређају није тачан, Chromium не може да верификује ове сертификате.</translation>
 <translation id="8740359287975076522">Нисмо успели да пронађемо &lt;abbr id="dnsDefinition"&gt;DNS адресу&lt;/abbr&gt; хоста <ph name="HOST_NAME" />. Покушавамо да утврдимо у чему је проблем.</translation>
 <translation id="874846938927089722">Кредитне и припејд картице које се прихватају</translation>
 <translation id="8759274551635299824">Ова картица је истекла</translation>
 <translation id="8761567432415473239">Google безбедно прегледање је недавно <ph name="BEGIN_LINK" />открило штетне програме<ph name="END_LINK" /> на <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">USB уређај</translation>
+<translation id="8768895707659403558">Да бисте користили картице на свим уређајима, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Понови брисање</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Ова картица је додата на Google налог. Сада можете да је користите са било ког уређаја на ком сте пријављени.}one{Ове картице су додате на Google налог. Сада можете да их користите са било ког уређаја на ком сте пријављени.}few{Ове картице су додате на Google налог. Сада можете да их користите са било ког уређаја на ком сте пријављени.}other{Ове картице су додате на Google налог. Сада можете да их користите са било ког уређаја на ком сте пријављени.}}</translation>
 <translation id="8792621596287649091">Можете да изгубите приступ налогу за <ph name="ORG_NAME" /> или би могло да дође до крађе идентитета. Chromium вам препоручује да одмах промените лозинку.</translation>
 <translation id="8800988563907321413">Предлози у близини ће се приказивати овде</translation>
 <translation id="8820817407110198400">Обележивачи</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index 3860969f..c4d2686 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Det gick inte att upprätta en privat anslutning till <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> eftersom enhetens datum och tid (<ph name="DATE_AND_TIME" />) inte stämmer.&lt;/p&gt;
 
       &lt;p&gt;Ändra datumet och tiden under &lt;strong&gt;Allmänt&lt;/strong&gt; i appen &lt;strong&gt;Inställningar&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Ett fel uppstod när webbsidan skulle visas.</translation>
 <translation id="1592005682883173041">Lokal dataåtkomst</translation>
 <translation id="1594030484168838125">Välj</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Begäran eller parametrar i begäran var ogiltiga</translation>
 <translation id="1826516787628120939">Kontrollerar</translation>
 <translation id="1834321415901700177">Den här webbplatsen innehåller skadliga program</translation>
+<translation id="1839551713262164453">Valideringen av principvärdena har misslyckats med fel</translation>
 <translation id="1840414022444569775">Detta kortnummer används redan</translation>
 <translation id="1842969606798536927">Betala</translation>
 <translation id="1871208020102129563">Proxyn är inställd på att använda fasta proxyservrar, inte en webbadress med PAC-skript.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Fråga</translation>
 <translation id="2359629602545592467">Flera</translation>
 <translation id="2359808026110333948">Fortsätt</translation>
+<translation id="2360873523816792727">Aktivera synkronisering så kan du använda korten på alla enheter.</translation>
 <translation id="2365563543831475020">Felrapport som skapades <ph name="CRASH_TIME" /> laddades inte upp</translation>
 <translation id="2367567093518048410">Nivå</translation>
 <translation id="2378238891085281592">Du surfar privat</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />cookies och webbplatsdata
           <ph name="LIST_ITEM" />uppgifter som angetts i formulär.
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Visa kort</translation>
 <translation id="3369192424181595722">Fel på klockan</translation>
 <translation id="337363190475750230">Tagen ur bruk</translation>
 <translation id="3377188786107721145">Fel vid analys av policyn</translation>
 <translation id="3380365263193509176">Okänt fel</translation>
 <translation id="3380864720620200369">Klient-ID:</translation>
+<translation id="3387261909427947069">Betalningsmetoder</translation>
 <translation id="3391030046425686457">Leveransadress</translation>
 <translation id="3395827396354264108">Alternativ för utlämning</translation>
 <translation id="3399952811970034796">Leveransadress</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Granska betalningen</translation>
 <translation id="4116663294526079822">Tillåt alltid på den här webbplatsen</translation>
 <translation id="4117700440116928470">Principens omfattning stöds inte.</translation>
+<translation id="4119109454650683048">Läs informationen nedan och åtgärda eventuella fel</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 till}other{# till}}</translation>
 <translation id="4130226655945681476">Kontrollera nätverkskablar, modem och router</translation>
 <translation id="413544239732274901">Läs mer</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Det här leveranssättet är inte tillgängligt. Testa ett annat alternativ.</translation>
 <translation id="4858792381671956233">Du har frågat dina föräldrar om lov att besöka den här webbplatsen.</translation>
 <translation id="4876305945144899064">Inget användarnamn</translation>
+<translation id="4879491255372875719">Automatiskt (standard)</translation>
 <translation id="4880827082731008257">Sök i historiken</translation>
 <translation id="4881695831933465202">Öppna</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Visa alla sparade lösenord</translation>
 <translation id="5287240709317226393">Visa cookies</translation>
+<translation id="5288108484102287882">Valideringen av principvärdena har utlöst varningar</translation>
 <translation id="5299298092464848405">Det uppstod ett fel när policyn analyserades</translation>
 <translation id="5308380583665731573">Ansluta</translation>
 <translation id="5308689395849655368">Krashrapportering har  inaktiverats.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Det gick inte att spara policyinställningarna</translation>
 <translation id="5371425731340848620">Uppdatera kortet</translation>
 <translation id="5377026284221673050">Klockan går efter, Klockan går före eller &lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;</translation>
+<translation id="5384855140246857529">Logga in och aktivera synkronisering så kan du använda korten på alla enheter.</translation>
 <translation id="5386426401304769735">Certifikatkedjan för den här webbplatsen innehåller ett certifikat som signerades med SHA-1.</translation>
 <translation id="5387961145478138773">Få snabb åtkomst till dina favoritappar från Google</translation>
 <translation id="540969355065856584">Servern kunde inte bevisa att det är <ph name="DOMAIN" />. Dess säkerhetscertifikat är inte giltigt för närvarande. Detta kan bero på en felaktig konfiguration eller att någon kapat din anslutning.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Kreditkort får användas.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (synkroniserade)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 används}other{# används}}</translation>
+<translation id="5922853866070715753">Nästan klart</translation>
 <translation id="5939518447894949180">Återställ</translation>
 <translation id="5967592137238574583">Redigera kontaktuppgifter</translation>
 <translation id="5967867314010545767">Ta bort från historiken</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Du kan inte besöka <ph name="SITE" /> just nu eftersom tekniken att fästa certifikat används på webbplatsen. Nätverksfel och attacker är ofta tillfälliga, så sidan kommer förmodligen att fungera senare.</translation>
 <translation id="6059925163896151826">USB-enheter</translation>
 <translation id="6071091556643036997">Ogiltig policytyp.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Kortet sparas i ditt Google-konto så att du kan betala snabbare på alla enheter.}other{Korten sparas i ditt Google-konto så att du kan betala snabbare på alla enheter.}}</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="610911394827799129">Det kan finnas andra former av webbhistorik i Google-kontot på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Ingen}=1{1 lösenord (synkroniserat)}other{# lösenord (synkroniserade)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Enhet</translation>
 <translation id="6970216967273061347">Distrikt</translation>
 <translation id="6973656660372572881">Både fasta proxyservrar och en webbadress för PAC-skript anges.</translation>
+<translation id="6979440798594660689">Ljud av (standard)</translation>
 <translation id="6984479912851154518">Om du betalar i en extern app sker inte det i privat läge. Vill du fortsätta?</translation>
 <translation id="6989763994942163495">Visa avancerade inställningar ...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> och <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> till}other{<ph name="PAYMENT_METHOD_PREVIEW" /> och <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> till}}</translation>
 <translation id="717330890047184534">Gaia-id:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> och <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> till}other{<ph name="SHIPPING_OPTION_PREVIEW" /> och <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> till}}</translation>
+<translation id="7179323680825933600">Spara och fyll i betalningsmetoder</translation>
 <translation id="7180611975245234373">Uppdatera</translation>
 <translation id="7182878459783632708">Inga policyer har ställts in</translation>
 <translation id="7186367841673660872">Sidan har översatts från<ph name="ORIGINAL_LANGUAGE" />till<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Bearbetning pågår</translation>
 <translation id="724691107663265825">Det förekommer skadlig programvara på följande sida</translation>
 <translation id="724975217298816891">Ange utgångsdatum och CVC-kod för <ph name="CREDIT_CARD" /> om du vill uppdatera kortinformationen. När du bekräftar delas kortinformationen med den här webbplatsen.</translation>
+<translation id="7251437084390964440">Nätverkskonfigurationen uppfyller inte ONC-standarden. Det kan hända att delar av konfigurationen inte kan importeras.
+Mer information.
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Det gick inte att upprätta en privat anslutning till <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> eftersom datorns datum och tid (<ph name="DATE_AND_TIME" />) inte stämmer.</translation>
 <translation id="7260504762447901703">Återkalla åtkomst</translation>
 <translation id="7271803869921933038">Godkända förbetalda kort</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Kraschrapporten laddades upp den <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Krascher (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Du måste ange samma lösenfras två gånger.</translation>
+<translation id="8416694386774425977">Nätverkskonfigurationen är ogiltig och kunde inte importeras.
+Mer information:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Inställningar</translation>
 <translation id="8433057134996913067">Alternativet innebär att du loggas ut från de flesta webbplatser.</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">Försök igen</translation>
 <translation id="8728672262656704056">Du surfar inkognito</translation>
 <translation id="8730621377337864115">Klart</translation>
+<translation id="8733831205558190772">Alla kort samlade på ett ställe</translation>
 <translation id="8738058698779197622">Om du vill upprätta en säker anslutning måste klockan vara rätt inställd. Det beror på att certifikaten som webbplatserna använder för att identifiera sig endast är giltiga under vissa tidsperioder. Chromium kan inte verifiera certifikaten eftersom klockan på enheten inte stämmer.</translation>
 <translation id="8740359287975076522">Det gick inte att hitta <ph name="HOST_NAME" />s &lt;abbr id="dnsDefinition"&gt;DNS-adress&lt;/abbr&gt;. Diagnostiserar problemet.</translation>
 <translation id="874846938927089722">Godkända kreditkort och förbetalda kort</translation>
 <translation id="8759274551635299824">Kortets giltighetstid har löpt ut</translation>
 <translation id="8761567432415473239">Googles tjänst Säker webbsökning <ph name="BEGIN_LINK" />hittade skadliga program<ph name="END_LINK" /> på <ph name="SITE" /> nyligen.</translation>
 <translation id="8763927697961133303">USB-enhet</translation>
+<translation id="8768895707659403558"><ph name="SIGN_IN_LINK" /> om du vill använda dina kort på alla enheter.</translation>
 <translation id="8790007591277257123">&amp;Gör om Ta bort</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Det här kortet har lagts till i ditt Google-konto. Du kan nu använda det på alla enheter där du är inloggad.}other{De här korten har lagts till i ditt Google-konto. Du kan nu använda dem på alla enheter där du är inloggad.}}</translation>
 <translation id="8792621596287649091">Du kan förlora åtkomsten till kontot på <ph name="ORG_NAME" /> eller bli utsatt för identitetsstöld. Du rekommenderas att ändra lösenordet nu.</translation>
 <translation id="8800988563907321413">Förslag på webbsidor i närheten visas här</translation>
 <translation id="8820817407110198400">Bokmärken</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index 1665aa7..cad8fae 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Muunganisho wa faragha kwenye <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> hauwezi kutambuliwa kwa sababu tarehe na wakati wa kifaa chako <ph name="DATE_AND_TIME" /> si sahihi.&lt;/p&gt;
 
           &lt;p&gt;Tafadhali rekebisha tarehe na wakati kutoka kwenye &lt;strong&gt;sehemu ya Jumla&lt;/strong&gt; ya &lt;strong&gt;programu ya Mipangilio&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Hitilafu ilitokea wakati wa kuonyesha ukurasa huu wa wavuti.</translation>
 <translation id="1592005682883173041">Ufikiaji wa Data Iliyo Katika Kifaa Chako</translation>
 <translation id="1594030484168838125">Chagua</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Ombi au vigezo vya ombi batili</translation>
 <translation id="1826516787628120939">Inakagua</translation>
 <translation id="1834321415901700177">Tovuti hii ina programu hatari</translation>
+<translation id="1839551713262164453">Imeshindwa kuthibitisha thamani za sera kutokana na hitilafu</translation>
 <translation id="1840414022444569775">Nambari hii ya kadi tayari imetumika</translation>
 <translation id="1842969606798536927">Lipa</translation>
 <translation id="1871208020102129563">Proksi imewekwa ili kutumia seva za proksi thabiti, siyo URL ya hati .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Uliza</translation>
 <translation id="2359629602545592467">Nyingi</translation>
 <translation id="2359808026110333948">Endelea</translation>
+<translation id="2360873523816792727">Ili utumie kadi zako kwenye vifaa vyako vyote, washa kipengele cha kusawazisha.</translation>
 <translation id="2365563543831475020">Ripoti ya kuacha kufanya kazi iliyochukuliwa <ph name="CRASH_TIME" /> haikupakiwa</translation>
 <translation id="2367567093518048410">Kiwango</translation>
 <translation id="2378238891085281592">Unatumia hali ya faragha</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Data ya vidakuzi na tovuti
           <ph name="LIST_ITEM" />Maelezo unayojaza katika fomu
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Angalia kadi</translation>
 <translation id="3369192424181595722">Hitilafu ya saa</translation>
 <translation id="337363190475750230">Imewekwa katika hali ya kutotumika</translation>
 <translation id="3377188786107721145">Hitilafu ya kuchanganua sera</translation>
 <translation id="3380365263193509176">Hitilafu isiyojulikana</translation>
 <translation id="3380864720620200369">Kitambulisho cha Mteja:</translation>
+<translation id="3387261909427947069">Njia za Kulipa</translation>
 <translation id="3391030046425686457">Mahali pa kupeleka</translation>
 <translation id="3395827396354264108">Mbinu ya kuchukua</translation>
 <translation id="3399952811970034796">Mahali Bidhaa Itapelekwa</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Kagua malipo yako</translation>
 <translation id="4116663294526079822">Ruhusu mara kwa mara kwenye tovuti hii</translation>
 <translation id="4117700440116928470">Upeo wa sera hauwezi kutumika.</translation>
+<translation id="4119109454650683048">Tafadhali kagua maelezo yaliyo hapa chini na urekebishe hitilafu zozote, panapohitajika.</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{Nyingine 1 }other{Nyingine #}}</translation>
 <translation id="4130226655945681476">Kukagua kebo za mtandao, modemu au kisambaza data</translation>
 <translation id="413544239732274901">Pata maelezo zaidi</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Njia hii ya kusafirisha haitumiki. Jaribu njia tofauti.</translation>
 <translation id="4858792381671956233">Umewaomba wazazi wako ruhusa ya kuutembelea ukurasa huu.</translation>
 <translation id="4876305945144899064">Hakuna jina la mtumiaji</translation>
+<translation id="4879491255372875719">Kiotomatiki (chaguomsingi)</translation>
 <translation id="4880827082731008257">Tafuta katika historia</translation>
 <translation id="4881695831933465202">Fungua</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Onyesha manenosiri yote yaliyohifadhiwa</translation>
 <translation id="5287240709317226393">Onyesha vidakuzi</translation>
+<translation id="5288108484102287882">Imethibitisha thamani za sera na kutoa maonyo.</translation>
 <translation id="5299298092464848405">Hitilafu wakati wa kuchanganua sera</translation>
 <translation id="5308380583665731573">Unganisha</translation>
 <translation id="5308689395849655368">Kuripoti uharibifu kumelemazwa.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Imeshindwa kuhifadhi mipangilio ya sera</translation>
 <translation id="5371425731340848620">Badilisha maelezo ya kadi</translation>
 <translation id="5377026284221673050">"Saa yako iko nyuma" au "Saa yako iko mbele" au "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Ingia katika akaunti na uwashe kipengele cha kusawazisha ili utumie kadi zako kwenye vifaa vyako vyote.</translation>
 <translation id="5386426401304769735">Msururu wa cheti wa tovuti hii una cheti kilichotiwa sahihi kwa kutumia SHA-1.</translation>
 <translation id="5387961145478138773">Fikia kwa haraka Programu za Google unazopenda.</translation>
 <translation id="540969355065856584">Seva hii haikuweza kuthibitisha kuwa ni <ph name="DOMAIN" />; cheti chake cha usalama si sahihi kwa sasa. Hii inaweza kusababishwa na usanidi usiofaa au mvamizi kuingilia muunganisho wako.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Kadi za mikopo zinakubaliwa.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (imesawazishwa)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 kinatumika}other{ # vinatumika}}</translation>
+<translation id="5922853866070715753">Unakaribia kumaliza</translation>
 <translation id="5939518447894949180">Weka upya</translation>
 <translation id="5967592137238574583">Badilisha Maelezo ya Mawasiliano</translation>
 <translation id="5967867314010545767">Ondoa kwenye historia</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Huwezi kutembelea <ph name="SITE" /> sasa hivi kwa sababu tovuti hii inatumia ubandikaji cheti. Hitilafu na uvamizi wa mtandao kwa kawaida huwa vya muda, kwa hivyo ukurasa huu huenda utafanya kazi baadaye.</translation>
 <translation id="6059925163896151826">Vifaa vya USB</translation>
 <translation id="6071091556643036997">Aina ya sera si sahihi.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Tutahifadhi kadi hii kwenye Akaunti yako ya Google ili uweze kuifikia kwa haraka katika vifaa vyote.}other{Tutahifadhi kadi hizi kwenye Akaunti yako ya Google ili uweze kuzifikia kwa haraka katika vifaa vyote.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Hamna}=1{Nenosiri 1 (limesawazishwa)}other{Manenosiri # (yamesawazishwa)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Kifaa</translation>
 <translation id="6970216967273061347">Wilaya</translation>
 <translation id="6973656660372572881">Seva zote za proksi thabiti na URL ya hati ya .pac zimebainishwa.</translation>
+<translation id="6979440798594660689">Zima (chaguomsingi)</translation>
 <translation id="6984479912851154518">Unafunga hali ya faragha ili ulipe kupitia programu ya nje. Ungependa kuendelea?</translation>
 <translation id="6989763994942163495">Onyesha mipangilio ya kina...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> na nyingine <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> na nyingine <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Kitambulisho cha Gaia</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> na nyingine <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> na nyingine <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Hifadhi na Ujaze Njia za Kulipa</translation>
 <translation id="7180611975245234373">Onyesha upya</translation>
 <translation id="7182878459783632708">Hakuna sera zilizowekwa</translation>
 <translation id="7186367841673660872">Ukurasa huu umetafsiriwa kutoka<ph name="ORIGINAL_LANGUAGE" />hadi<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,7 @@
 <translation id="7220786058474068424">Malipo yanashughulikiwa</translation>
 <translation id="724691107663265825">Tovuti unayoelekea kufungua ina programu hasidi</translation>
 <translation id="724975217298816891">Weka tarehe ya kuisha kwa muda wa matumizi na CVC ya <ph name="CREDIT_CARD" /> ili usasishe maelezo ya kadi yako. Baada ya kuthibitisha, maelezo ya kadi yako yatashirikiwa na tovuti hii.</translation>
+<translation id="7251437084390964440">Mipangilio ya mtandao haitii kiwango cha ONC. Huenda baadhi ya mipangilio haitapakiwa. Maelezo ya ziada: <ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Muunganisho wa faragha kwenye <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> hauwezi kutambuliwa kwa sababu tarehe na wakati wa kompyuta yako (<ph name="DATE_AND_TIME" />) si sahihi.</translation>
 <translation id="7260504762447901703">Batilisha ufikiaji</translation>
 <translation id="7271803869921933038">Kadi za Kulipia Awali Zinazokubaliwa</translation>
@@ -1039,6 +1053,7 @@
 <translation id="8398259832188219207">Ripoti ya kuacha kufanya kazi ilipakiwa  <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Mivurugo ( <ph name="CRASH_COUNT" /> )</translation>
 <translation id="8412392972487953978">Lazima uingize kaulisiri ile ile mara mbili.</translation>
+<translation id="8416694386774425977">Mipangilio ya mtandao si sahihi na haingeweza kupakiwa. Maelezo ya ziada: <ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Mipangilio</translation>
 <translation id="8433057134996913067">Kufanya hivyo kutakuondoa kwenye tovuti nyingi.</translation>
@@ -1071,13 +1086,16 @@
 <translation id="8725066075913043281">Jaribu tena</translation>
 <translation id="8728672262656704056">Unavinjari katika hali fiche</translation>
 <translation id="8730621377337864115">Nimemaliza</translation>
+<translation id="8733831205558190772">Kadi zako zote katika sehemu moja</translation>
 <translation id="8738058698779197622">Ili kutambua muunganisho salama, saa yako inahitaji kuwekwa sahihi. Hii ni kwa sababu vyeti ambavyo tovuti hutumia kujitambua ni sahihi kwa vipindi mahususi pekee. Kwa kuwa saa ya kifaa chako si sahihi, Chromium haiwezi kuthibitisha vyeti hivi.</translation>
 <translation id="8740359287975076522"><ph name="HOST_NAME" /> &lt;abbr id="dnsDefinition"&gt;anwani ya DNS&lt;/abbr&gt; haikupatikana. Tatizo linachunguzwa.</translation>
 <translation id="874846938927089722">Kadi za Mikopo na za Kulipia Awali Zinazokubaliwa</translation>
 <translation id="8759274551635299824">Muda wa matumizi wa kadi hii umekwisha</translation>
 <translation id="8761567432415473239">Kuvinjari Salama kwa Google <ph name="BEGIN_LINK" />kulipata programu zinazodhuru<ph name="END_LINK" /> kwenye <ph name="SITE" /> hivi karibuni.</translation>
 <translation id="8763927697961133303">Kifaa cha USB</translation>
+<translation id="8768895707659403558">Ili utumie kadi zako kwenye vifaa vyako vyote, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">Rudia kufuta</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Tumeongeza kadi hii kwenye Akaunti yako ya Google. Sasa unaweza kuitumia kwenye kifaa chochote unachotumia kuingia katika akaunti.}other{Tumeongeza kadi hizi kwenye Akaunti yako ya Google. Sasa unaweza kuzitumia kwenye kifaa chochote unachotumia kuingia katika akaunti.}}</translation>
 <translation id="8792621596287649091">Unaweza kupoteza uwezo wa kufikia Akaunti yako ya <ph name="ORG_NAME" /> au kuibiwa utambulisho. Chromium inapendekeza ubadilishe nenosiri lako la sasa.</translation>
 <translation id="8800988563907321413">Mapendekezo ya maudhui ya uhamishaji wa karibu yataonekana hapa</translation>
 <translation id="8820817407110198400">Alamisho</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index dcf958e..7f968efa 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;உங்கள் சாதனத்தின் தேதி மற்றும் நேரம் (<ph name="DATE_AND_TIME" />) தவறாக இருப்பதால் <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> என்கிற டொமைனிற்குத் தனிப்பட்ட இணைப்பை ஏற்படுத்த முடியவில்லை.&lt;/p&gt;
 
       &lt;p&gt;தேதி மற்றும் நேரத்தை &lt;strong&gt;அமைப்புகள்&lt;/strong&gt; பயன்பாட்டின் &lt;strong&gt;பொது&lt;/strong&gt; என்கிற பகுதியில் மாற்றவும்.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">இந்த இணையப்பக்கத்தைக் காட்டும்போது ஏதோ தவறு ஏற்பட்டது.</translation>
 <translation id="1592005682883173041">அகத் தரவு அணுகல்</translation>
 <translation id="1594030484168838125">தேர்வுசெய்</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">தவறான கோரிக்கை அல்லது கோரிக்கை அளவுருக்கள்</translation>
 <translation id="1826516787628120939">சரிபார்க்கிறது</translation>
 <translation id="1834321415901700177">இந்தத் தளத்தில் தீங்கிழைக்கும் நிரல்கள் உள்ளன</translation>
+<translation id="1839551713262164453">கொள்கை மதிப்புகளின் சரிபார்ப்பு பிழைகளுடன் தோல்வியில் முடிந்தது.</translation>
 <translation id="1840414022444569775">இந்தக் கார்டு எண் ஏற்கனவே சேர்க்கப்பட்டுள்ளது</translation>
 <translation id="1842969606798536927">பணம் செலுத்துக</translation>
 <translation id="1871208020102129563">நிலையான ப்ராக்ஸி சேவையகங்களைப் பயன்படுத்த ப்ராக்ஸி அமைக்கப்பட்டுள்ளது, .pac ஸ்கிரிப்ட் URL அல்ல.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">கேள்</translation>
 <translation id="2359629602545592467">பல</translation>
 <translation id="2359808026110333948">தொடர்க</translation>
+<translation id="2360873523816792727">உங்கள் சாதனங்கள் அனைத்திலும் உங்கள் கார்டுகளைப் பயன்படுத்த, ஒத்திசைவை இயக்கலாம்.</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" /> அன்று பெற்ற சிதைவு அறிக்கை பதிவேற்றப்படவில்லை</translation>
 <translation id="2367567093518048410">நிலை</translation>
 <translation id="2378238891085281592">மறைநிலையில் இருக்கிறீர்கள்</translation>
@@ -348,11 +351,13 @@
           <ph name="LIST_ITEM" />குக்கீகள் மற்றும் தளத் தரவு
           <ph name="LIST_ITEM" />படிவங்களில் உள்ளிடும் தகவல்
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">கார்டுகளைக் காட்டு</translation>
 <translation id="3369192424181595722">கடிகாரப் பிழை</translation>
 <translation id="337363190475750230">விடுவித்தது</translation>
 <translation id="3377188786107721145">கொள்கையை அலசுவதில் பிழை</translation>
 <translation id="3380365263193509176">அறியப்படாத பிழை</translation>
 <translation id="3380864720620200369">கிளையன்ட் ஐடி:</translation>
+<translation id="3387261909427947069">கட்டண முறைகள்</translation>
 <translation id="3391030046425686457">டெலிவரி முகவரி</translation>
 <translation id="3395827396354264108">பிக்அப் முறை</translation>
 <translation id="3399952811970034796">டெலிவரி முகவரி</translation>
@@ -449,6 +454,7 @@
 <translation id="4110652170750985508">உங்கள் கட்டணத்தை மதிப்பாய்வு செய்யவும்</translation>
 <translation id="4116663294526079822">இந்தத் தளத்தில் எப்போதும் அனுமதி</translation>
 <translation id="4117700440116928470">கொள்கையின் நோக்கம் ஆதரிக்கப்படவில்லை.</translation>
+<translation id="4119109454650683048">கீழுள்ள தகவலைப் பார்த்து, தேவைப்பட்டால் பிழைகள் எவற்றையும் சரிசெய்யவும்</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{மேலும் ஒன்று}other{மேலும் #}}</translation>
 <translation id="4130226655945681476">நெட்வொர்க் கேபிள்கள், மோடம், ரூட்டர் ஆகியவற்றைச் சரிபார்க்கவும்</translation>
 <translation id="413544239732274901">மேலும் அறிக</translation>
@@ -554,6 +560,7 @@
 <translation id="4854362297993841467">இந்த டெலிவரி முறை இல்லை. வேறு முறையைப் பயன்படுத்திப் பார்க்கவும்.</translation>
 <translation id="4858792381671956233">இந்தத் தளத்தைப் பார்வையிடலாமா என, நீங்கள் பெற்றோரிடம் கேட்டுள்ளீர்கள்</translation>
 <translation id="4876305945144899064">பயனர்பெயர் இல்லை</translation>
+<translation id="4879491255372875719">தானியங்கு (இயல்பு)</translation>
 <translation id="4880827082731008257">வரலாற்றில் தேடு</translation>
 <translation id="4881695831933465202">திற</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -619,6 +626,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">சேமித்த எல்லாக் கடவுச்சொற்களையும் காட்டு</translation>
 <translation id="5287240709317226393">குக்கீகளைக் காட்டும்</translation>
+<translation id="5288108484102287882">கொள்கை மதிப்புகளின் சரிபார்ப்பில் எச்சரிக்கைகள் கிடைத்துள்ளன</translation>
 <translation id="5299298092464848405">கொள்கையை அலசுவதில் பிழை</translation>
 <translation id="5308380583665731573">இணை</translation>
 <translation id="5308689395849655368">செயலிழப்பு புகாரளித்தல் முடக்கப்பட்டுள்ளது.</translation>
@@ -631,6 +639,7 @@
 <translation id="536296301121032821">கொள்கை அமைப்புகளைச் சேமிப்பதில் தோல்வி</translation>
 <translation id="5371425731340848620">கார்டை மாற்றவும்</translation>
 <translation id="5377026284221673050">"நேரம் பின்தங்கியுள்ளது" அல்லது "நேரம் கூடுதலாக அமைக்கப்பட்டுள்ளது" அல்லது "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">உங்கள் சாதனங்கள் அனைத்திலும் உங்கள் கார்டுகளைப் பயன்படுத்த, உள்நுழைந்து, ஒத்திசைவை இயக்கவும்.</translation>
 <translation id="5386426401304769735">இந்தச் சான்றிதழ் சங்கிலியில், SHA-1ஐப் பயன்படுத்தி கையொப்பமிடப்பட்ட சான்றிதழ் உள்ளது.</translation>
 <translation id="5387961145478138773">உங்களுக்குப் பிடித்த Google ஆப்ஸை விரைவாக அணுகலாம்</translation>
 <translation id="540969355065856584"><ph name="DOMAIN" /> டொமைனை, சேவையகம் உறுதிப்படுத்தவில்லை; அதற்கான காரணங்கள்: இதன் பாதுகாப்புச் சான்றிதழ் தற்போது செல்லுபடியானதல்ல. இது தவறான உள்ளமைவினால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation>
@@ -706,6 +715,7 @@
 <translation id="5893752035575986141">கிரெடிட் கார்டுகள் ஏற்கப்படுகின்றன.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (ஒத்திசைக்கப்பட்டது)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{ஒரு குக்கீ பயன்படுத்தப்படுகிறது}other{# குக்கீகள் பயன்படுத்தப்படுகின்றன}}</translation>
+<translation id="5922853866070715753">கிட்டத்தட்ட முடிந்துவிட்டது</translation>
 <translation id="5939518447894949180">மீட்டமை</translation>
 <translation id="5967592137238574583">தொடர்புத் தகவலைத் திருத்தவும்</translation>
 <translation id="5967867314010545767">வரலாற்றிலிருந்து அகற்று</translation>
@@ -726,6 +736,7 @@
 <translation id="6051221802930200923"><ph name="SITE" /> தளமானது சர்டிஃபிகேட் பின்னிங்கைப் பயன்படுத்துவதால், தற்போது அதைப் பார்க்க முடியாது. பொதுவாக நெட்வொர்க் பிழைகளும் பாதிப்புகளும் தற்காலிகமானவை என்பதால், இந்தப் பக்கம் பின்னர் சரியாகச் செயல்படக்கூடும்.</translation>
 <translation id="6059925163896151826">USB சாதனங்கள்</translation>
 <translation id="6071091556643036997">கொள்கை வகை செல்லுபடியாகவில்லை.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{சாதனங்களில் வேகமாகச் செக் அவுட் செய்வதற்காக, இந்தக் கார்டு உங்கள் Google கணக்கில் சேமிக்கப்படும்.}other{சாதனங்களில் வேகமாகச் செக் அவுட் செய்வதற்காக, இந்தக் கார்டுகள் உங்கள் Google கணக்கில் சேமிக்கப்படும்.}}</translation>
 <translation id="6080696365213338172">நிர்வாகி வழங்கிய சான்றிதழைப் பயன்படுத்தி உள்ளடக்கத்தை அணுகியுள்ளீர்கள். <ph name="DOMAIN" /> க்கு நீங்கள் வழங்கிய தரவானது உங்கள் நிர்வாகியால் இடைமறிக்கப்படலாம்.</translation>
 <translation id="610911394827799129"><ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> என்ற முகவரியில், உங்கள் Google கணக்கிற்கான பிற வகை உலாவல் வரலாறும் இருக்கக்கூடும்</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{ஏதுமில்லை}=1{1 கடவுச்சொல் (ஒத்திசைத்தது)}other{# கடவுச்சொற்கள் (ஒத்திசைத்தவை)}}</translation>
@@ -827,6 +838,7 @@
 <translation id="6965978654500191972">சாதனம்</translation>
 <translation id="6970216967273061347">மாவட்டம்</translation>
 <translation id="6973656660372572881">நிலையான ப்ராக்ஸி சேவையகங்களும் .pac ஸ்கிரிப்ட் URL ஆகிய இரண்டும் குறிப்பிடப்பட்டுள்ளது.</translation>
+<translation id="6979440798594660689">முடக்கு (இயல்பு)</translation>
 <translation id="6984479912851154518">மூன்றாம் தரப்பு ஆப்ஸின் மூலம் பணத்தைச் செலுத்த, மறைநிலையிலிருந்து வெளியேறுகிறது. தொடரவா?</translation>
 <translation id="6989763994942163495">மேம்பட்ட அமைப்புகளைக் காண்பி...</translation>
 <translation id="7012363358306927923">சீனா UnionPay</translation>
@@ -847,6 +859,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" />, மேலும் <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" />, மேலும் <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Gaia ஐடி:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" />, மேலும் <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />, மேலும் <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">கட்டண முறைகளைச் சேமித்துத் தானாக நிரப்பு</translation>
 <translation id="7180611975245234373">புதுப்பி</translation>
 <translation id="7182878459783632708">கொள்கைகள் அமைக்கப்படவில்லை</translation>
 <translation id="7186367841673660872">இந்தப் பக்கமானது<ph name="ORIGINAL_LANGUAGE" />இலிருந்து<ph name="LANGUAGE_LANGUAGE" />க்கு மொழிபெயர்க்கப்பட்டது</translation>
@@ -858,6 +871,9 @@
 <translation id="7220786058474068424">செயல்படுத்துகிறது</translation>
 <translation id="724691107663265825">தளத்தில் தீப்பொருள் உள்ளது</translation>
 <translation id="724975217298816891">கார்டு விவரங்களைப் புதுப்பிக்க, <ph name="CREDIT_CARD" /> இன் காலாவதி தேதியையும் CVC எண்ணையும் உள்ளிடவும். உறுதிசெய்த பின்னர், உங்கள் கார்டு விவரங்கள் இந்தத் தளத்திற்குப் பகிரப்படும்.</translation>
+<translation id="7251437084390964440">நெட்வொர்க் உள்ளமைவானது ONC தரத்துடன் இணங்கவில்லை. உள்ளமைவின் பகுதிகள் இறக்குமதியாகாமல் போகக்கூடும்.
+கூடுதல் விவரங்கள்:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">உங்கள் கணினியின் தேதி மற்றும் நேரம் (<ph name="DATE_AND_TIME" />) தவறாக இருப்பதால் <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> க்கான தனிப்பட்ட இணைப்பை ஏற்படுத்த முடியவில்லை.</translation>
 <translation id="7260504762447901703">அணுகலை ரத்துசெய்</translation>
 <translation id="7271803869921933038">ஏற்கப்படும் ப்ரீபெய்டு கார்டுகள்</translation>
@@ -1035,6 +1051,9 @@
 <translation id="8398259832188219207">சிதைவு அறிக்கை பதிவேற்றப்பட்ட தேதி: <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">செயலிழப்புகள் (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">நீங்கள் கண்டிப்பாக ஒரே கடவுச்சொற்றொடரை இரு முறை உள்ளிட வேண்டும்.</translation>
+<translation id="8416694386774425977">நெட்வொர்க் உள்ளமைவு தவறானது மேலும் அதை இறக்குமதி செய்ய முடியவில்லை.
+கூடுதல் விவரங்கள்:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">அமைப்புகள்</translation>
 <translation id="8433057134996913067">இதனால் பெரும்பாலான வலைத்தளங்களில் இருந்து வெளியேற்றப்படுவீர்கள்.</translation>
@@ -1066,13 +1085,16 @@
 <translation id="8725066075913043281">மீண்டும் முயற்சிக்கவும்</translation>
 <translation id="8728672262656704056">மறைநிலைக்குச் சென்றுவிட்டீர்கள்</translation>
 <translation id="8730621377337864115">முடிந்தது</translation>
+<translation id="8733831205558190772">உங்கள் கார்டுகள் அனைத்தும் ஒரே இடத்தில்</translation>
 <translation id="8738058698779197622">பாதுகாப்பான இணைப்பை அமைக்க, கடிகாரம் சரியாக அமைக்கப்பட வேண்டும். இதற்குக் காரணம், இணையதளங்கள் தங்களைத் தானே அடையாளப்படுத்த பயன்படுத்தும் சான்றிதழ்கள் குறிப்பிட்ட காலநேரத்திற்கே செல்லுபடியாகும். உங்கள் சாதனத்தின் கடிகாரம் தவறாக இருந்தால், Chromium இந்தச் சான்றிதழ்களைச் சரிபார்க்காது.</translation>
 <translation id="8740359287975076522"><ph name="HOST_NAME" />’s &lt;abbr id="dnsDefinition"&gt;DNS முகவரியைக்&lt;/abbr&gt; கண்டறிய முடியவில்லை. சிக்கலை ஆய்வு செய்கிறது.</translation>
 <translation id="874846938927089722">ஏற்கப்படும் கிரெடிட் மற்றும் ப்ரீபெய்டு கார்டுகள்</translation>
 <translation id="8759274551635299824">கார்டு காலாவதியாகிவிட்டது</translation>
 <translation id="8761567432415473239">Google பாதுகாப்பான தேடல், <ph name="SITE" /> இல் சமீபத்தில் <ph name="BEGIN_LINK" />தீங்கான நிரல்களைக் கண்டறிந்தது<ph name="END_LINK" />.</translation>
 <translation id="8763927697961133303">USB சாதனம்</translation>
+<translation id="8768895707659403558">உங்கள் சாதனங்கள் அனைத்திலும் உங்கள் கார்டுகளைப் பயன்படுத்த, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;நீக்குதலை மீண்டும் செய்</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{இந்தக் கார்டு உங்கள் Google கணக்கில் சேர்க்கப்பட்டுள்ளது. நீங்கள் எந்தவொரு உள்நுழைந்த சாதனத்திலிருந்தும் இப்போது அதைப் பயன்படுத்தலாம்.}other{இந்தக் கார்டுகள் உங்கள் Google கணக்கில் சேர்க்கப்பட்டுள்ளன. நீங்கள் எந்தவொரு உள்நுழைந்த சாதனத்திலிருந்தும் இப்போது அவற்றைப் பயன்படுத்தலாம்.}}</translation>
 <translation id="8792621596287649091"><ph name="ORG_NAME" /> கணக்கிற்கான அணுகலை நீங்கள் இழக்கக்கூடும் அல்லது அடையாளத் திருட்டை எதிர்கொள்ளக்கூடும். இப்போதே உங்கள் கடவுச்சொல்லை மாற்றும்படி Chromium பரிந்துரைக்கிறது.</translation>
 <translation id="8800988563907321413">உங்கள் அருகிலுள்ளவற்றுக்கான பரிந்துரைகள் இங்கே தோன்றும்</translation>
 <translation id="8820817407110198400">புத்தகக்குறிகள்</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index e3bb5f1e..db902b2c 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -210,6 +210,7 @@
 <translation id="2359808026110333948">కొనసాగు</translation>
 <translation id="2365563543831475020"><ph name="CRASH_TIME" />కి సంగ్రహించిన క్రాష్ నివేదిక అప్‌లోడ్ కాలేదు</translation>
 <translation id="2367567093518048410">స్థాయి</translation>
+<translation id="2378238891085281592">మీరు ప్రైవేట్ మోడ్‌లోకి వెళ్లారు</translation>
 <translation id="2384307209577226199">ఎంటర్‌ప్రైజ్ డిఫాల్ట్</translation>
 <translation id="2386255080630008482">సర్వర్ ప్రమాణపత్రం రద్దు చెయ్యబడింది.</translation>
 <translation id="2392959068659972793">విలువ సెట్ చేయని విధానాలను చూపు</translation>
@@ -517,6 +518,7 @@
 <translation id="450710068430902550">నిర్వాహకుడితో భాగస్వామ్యం</translation>
 <translation id="4515275063822566619">కార్డ్‌లు మరియు చిరునామాలు Chrome మరియు మీ Google ఖాతా (<ph name="ACCOUNT_EMAIL" />) నుండి పొందినవి. మీరు <ph name="BEGIN_LINK" />సెట్టింగ్‌లు<ph name="END_LINK" />లో వాటిని నిర్వహించవచ్చు.</translation>
 <translation id="4522570452068850558">వివరాలు</translation>
+<translation id="4524805452350978254">కార్డ్‌లను నిర్వహించండి</translation>
 <translation id="4552089082226364758">ఫ్లాష్</translation>
 <translation id="4558551763791394412">మీ పొడిగింపులను నిలిపివేయడం ప్రయత్నించండి.</translation>
 <translation id="457875822857220463">బట్వాడా</translation>
@@ -703,6 +705,7 @@
 <translation id="5866257070973731571">ఫోన్ నంబర్‌ను జోడించండి</translation>
 <translation id="5869405914158311789">ఈ సైట్‌ను చేరుకోలేకపోయాము</translation>
 <translation id="5869522115854928033">సేవ్  చేసిన పాస్‌వర్డ్‌లు</translation>
+<translation id="5887400589839399685">కార్డ్ సేవ్ చేయబడింది</translation>
 <translation id="5893752035575986141">క్రెడిట్ కార్డ్‌లు ఆమోదించబడతాయి.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (సమకాలీకరించబడింది)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 వినియోగంలో ఉంది}other{# వినియోగంలో ఉన్నాయి}}</translation>
@@ -822,11 +825,13 @@
 <translation id="6948701128805548767">పికప్ పద్ధతులు మరియు అవసరాలను చూడాలంటే, చిరునామాని ఎంచుకోండి</translation>
 <translation id="6949872517221025916">పాస్‌వర్డ్‌ను రీసెట్ చేయండి</translation>
 <translation id="6950684638814147129">JSON విలువను అన్వయిస్తుండగా ఎర్రర్ ఏర్పడింది: <ph name="ERROR" /></translation>
+<translation id="6957624206566198865">కొత్త ప్రైవేట్ ట్యాబ్‌లో పేజీని తెరవండి</translation>
 <translation id="6957887021205513506">సర్వర్ ధృవీకరణ పత్రం చెల్లదు.</translation>
 <translation id="6965382102122355670">సరే</translation>
 <translation id="6965978654500191972">పరికరం</translation>
 <translation id="6970216967273061347">జిల్లా</translation>
 <translation id="6973656660372572881">రెండు స్థిర ప్రాక్సీ సర్వర్లు మరియు ఒక .pac స్క్రిప్ట్ URL పేర్కొనబడ్డాయి.</translation>
+<translation id="6984479912851154518">బాహ్య అప్లికేషన్ ద్వారా చెల్లించడానికి ప్రైవేట్ మోడ్ నుండి నిష్క్రమిస్తోంది. కొనసాగించాలా?</translation>
 <translation id="6989763994942163495">అధునాతన సెట్టింగ్‌లను చూపించు...</translation>
 <translation id="7012363358306927923">చైనా యూనియన్ పే</translation>
 <translation id="7016992613359344582">ఈ ఛార్జ్‌లు ఒకే సారి చెల్లించేవి లేదా పునరావృతంగా చెల్లించాల్సినవి కావచ్చు మరియు స్పష్టంగా పేర్కొనబడకపోవచ్చు.</translation>
@@ -1078,6 +1083,7 @@
 <translation id="8820817407110198400">బుక్‌మార్క్‌లు</translation>
 <translation id="883848425547221593">ఇతర బుక్‌మార్క్‌లు:</translation>
 <translation id="884264119367021077">షిప్పింగ్ చిరునామా</translation>
+<translation id="8846319957959474018">బుక్‌మార్క్‌లతో సులభంగా యాప్‌లను తెరవండి</translation>
 <translation id="884923133447025588">ఏ రద్దు విధానం కనుగొనబడలేదు.</translation>
 <translation id="885730110891505394">Googleతో భాగస్వామ్యం</translation>
 <translation id="8858065207712248076">మీరు మీ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> పాస్‌వర్డ్‌ని ఇతర సైట్‌లలో తిరిగి ఉపయోగించినట్లయితే దీనిని రీసెట్ చేయాల్సిందిగా Chrome సిఫార్సు చేస్తోంది.</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index 99d54ab..faf83a3 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;ไม่สามารถสร้างการเชื่อมต่อส่วนตัวไปที่ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> เนื่องจากวันที่และเวลา (<ph name="DATE_AND_TIME" />) ในอุปกรณ์ไม่ถูกต้อง&lt;/p&gt;
 
       &lt;p&gt;โปรดปรับวันที่และเวลาจากหัวข้อ&lt;strong&gt;ทั่วไป&lt;/strong&gt;ในแอป&lt;strong&gt;การตั้งค่า&lt;/strong&gt;&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">มีสิ่งผิดปกติเกิดขึ้นในขณะที่แสดงหน้าเว็บนี้</translation>
 <translation id="1592005682883173041">การเข้าถึงข้อมูลในเครื่อง</translation>
 <translation id="1594030484168838125">เลือก</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">คำขอหรือพารามิเตอร์คำขอไม่ถูกต้อง</translation>
 <translation id="1826516787628120939">กำลังตรวจสอบ</translation>
 <translation id="1834321415901700177">เว็บไซต์นี้มีโปรแกรมอันตราย</translation>
+<translation id="1839551713262164453">การตรวจสอบความถูกต้องของค่านโยบายมีข้อผิดพลาดและล้มเหลว</translation>
 <translation id="1840414022444569775">มีการใช้หมายเลขบัตรนี้แล้ว</translation>
 <translation id="1842969606798536927">จ่าย</translation>
 <translation id="1871208020102129563">พร็อกซีถูกตั้งค่าให้ใช้พร็อกซีเซิร์ฟเวอร์แบบคงที่ ไม่ใช่ URL สคริปต์ .pac</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">ถาม</translation>
 <translation id="2359629602545592467">หลายรายการ</translation>
 <translation id="2359808026110333948">ดำเนินการต่อ</translation>
+<translation id="2360873523816792727">เปิดการซิงค์เพื่อใช้บัตรในอุปกรณ์ทุกเครื่อง</translation>
 <translation id="2365563543831475020">รายงานข้อขัดข้องเมื่อ <ph name="CRASH_TIME" /> ยังไม่ได้อัปโหลด</translation>
 <translation id="2367567093518048410">ระดับ</translation>
 <translation id="2378238891085281592">คุณเข้าสู่โหมดส่วนตัวแล้ว</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />คุกกี้และข้อมูลไซต์
           <ph name="LIST_ITEM" />ข้อมูลที่กรอกในฟอร์ม
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">ดูบัตร</translation>
 <translation id="3369192424181595722">ข้อผิดพลาดของนาฬิกา</translation>
 <translation id="337363190475750230">ยกเลิกการจัดเตรียมแล้ว</translation>
 <translation id="3377188786107721145">ข้อผิดพลาดในการแยกวิเคราะห์นโยบาย</translation>
 <translation id="3380365263193509176">ข้อผิดพลาดที่ไม่รู้จัก</translation>
 <translation id="3380864720620200369">รหัสลูกค้า:</translation>
+<translation id="3387261909427947069">วิธีการชำระเงิน</translation>
 <translation id="3391030046425686457">ที่อยู่สำหรับจัดส่ง</translation>
 <translation id="3395827396354264108">วิธีการรับสินค้า</translation>
 <translation id="3399952811970034796">ที่อยู่สำหรับจัดส่ง</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">ตรวจสอบการชำระเงิน</translation>
 <translation id="4116663294526079822">อนุญาตบนไซต์นี้เสมอ</translation>
 <translation id="4117700440116928470">ขอบข่ายนโยบายไม่ได้รับการสนับสนุน</translation>
+<translation id="4119109454650683048">โปรดตรวจสอบข้อมูลด้านล่างและแก้ไขข้อผิดพลาดหากจำเป็น</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{อีก 1 รายการ}other{อีก # รายการ}}</translation>
 <translation id="4130226655945681476">ตรวจสอบสายเครือข่าย โมเด็ม และเราเตอร์</translation>
 <translation id="413544239732274901">ดูข้อมูลเพิ่มเติม</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">วิธีการนำส่งสินค้านี้ไม่พร้อมให้บริการ โปรดลองใช้วิธีการอื่น</translation>
 <translation id="4858792381671956233">คุณถามผู้ปกครองแล้วว่าสามารถเข้าชมเว็บไซต์นี้ได้ไหม</translation>
 <translation id="4876305945144899064">ไม่มีชื่อผู้ใช้</translation>
+<translation id="4879491255372875719">อัตโนมัติ (ค่าเริ่มต้น)</translation>
 <translation id="4880827082731008257">ค้นประวัติการเข้าชม</translation>
 <translation id="4881695831933465202">เปิด</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" /> และ <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">แสดงรหัสผ่านที่บันทึกไว้ทั้งหมด</translation>
 <translation id="5287240709317226393">แสดงคุกกี้</translation>
+<translation id="5288108484102287882">มีคำเตือนจากการตรวจสอบความถูกต้องของค่านโยบาย</translation>
 <translation id="5299298092464848405">ข้อผิดพลาดในการแยกวิเคราะห์นโยบาย</translation>
 <translation id="5308380583665731573">เชื่อมต่อ</translation>
 <translation id="5308689395849655368">การรายงานข้อขัดข้องถูกปิดใช้งาน</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">ไม่สามารถจัดเก็บการตั้งค่านโยบาย</translation>
 <translation id="5371425731340848620">อัปเดตบัตร</translation>
 <translation id="5377026284221673050">"นาฬิกาของคุณช้ากว่าปัจจุบัน" หรือ "นาฬิกาของคุณเร็วกว่าปัจจุบัน" หรือ "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">ลงชื่อเข้าใช้และเปิดการซิงค์เพื่อใช้บัตรในอุปกรณ์ทุกเครื่อง</translation>
 <translation id="5386426401304769735">กลุ่มใบรับรองสำหรับเว็บไซต์นี้มีใบรับรองที่ลงนามโดยใช้ SHA-1</translation>
 <translation id="5387961145478138773">เข้าถึงแอป Google ที่คุณชอบได้อย่างรวดเร็ว</translation>
 <translation id="540969355065856584">เซิร์ฟเวอร์นี้ไม่สามารถพิสูจน์ได้ว่าเป็น <ph name="DOMAIN" /> เนื่องจากใบรับรองความปลอดภัยไม่สามารถใช้ได้ในขณะนี้ ซึ่งอาจเป็นเพราะการกำหนดค่าที่ไม่ถูกต้องหรือมีผู้โจมตีที่ขัดขวางการเชื่อมต่อของคุณ</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">รับบัตรเครดิต</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (ซิงค์แล้ว)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{ใช้งานอยู่ 1 รายการ}other{ใช้งานอยู่ # รายการ}}</translation>
+<translation id="5922853866070715753">เกือบเสร็จแล้ว</translation>
 <translation id="5939518447894949180">รีเซ็ต</translation>
 <translation id="5967592137238574583">แก้ไขข้อมูลติดต่อ</translation>
 <translation id="5967867314010545767">ลบจากประวัติการเข้าชม</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">คุณไม่สามารถไปที่ <ph name="SITE" /> ได้ในขณะนี้เนื่องจากเว็บไซต์ใช้การตรึงใบรับรอง โดยปกติข้อผิดพลาดของเครือข่ายและการโจมตีจะเกิดขึ้นเพียงชั่วคราว หน้านี้จึงอาจใช้งานได้ในภายหลัง</translation>
 <translation id="6059925163896151826">อุปกรณ์ USB</translation>
 <translation id="6071091556643036997">ประเภทนโยบายไม่ถูกต้อง</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{ระบบจะบันทึกบัตรใบนี้ลงในบัญชี Google ของคุณเพื่อการชำระเงินที่เร็วขึ้นในอุปกรณ์ทุกเครื่อง}other{ระบบจะบันทึกบัตรเหล่านี้ลงในบัญชี Google ของคุณเพื่อการชำระเงินที่เร็วขึ้นในอุปกรณ์ทุกเครื่อง}}</translation>
 <translation id="6080696365213338172">คุณเข้าถึงเนื้อหาโดยใช้ใบรับรองที่ผู้ดูแลระบบออกให้ ข้อมูลที่คุณให้กับ <ph name="DOMAIN" /> อาจถูกสกัดกั้นโดยผู้ดูแลระบบ</translation>
 <translation id="610911394827799129">บัญชี Google อาจมีประวัติการท่องเว็บรูปแบบอื่นๆ ที่ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{ไม่มี}=1{รหัสผ่าน (ที่ซิงค์) 1 รายการ}other{รหัสผ่าน (ที่ซิงค์) # รายการ}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">อุปกรณ์</translation>
 <translation id="6970216967273061347">เขต</translation>
 <translation id="6973656660372572881">มีการระบุทั้งพร็อกซีเซิร์ฟเวอร์แบบคงที่และ URL สคริปต์ .pac ไว้</translation>
+<translation id="6979440798594660689">ปิดเสียง (ค่าเริ่มต้น)</translation>
 <translation id="6984479912851154518">ออกจากโหมดส่วนตัวเพื่อชำระเงินผ่านแอปพลิเคชันภายนอก ดำเนินการต่อไหม</translation>
 <translation id="6989763994942163495">แสดงการตั้งค่าขั้นสูง...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> และอีก <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> รายการ}other{<ph name="PAYMENT_METHOD_PREVIEW" /> และอีก <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> รายการ}}</translation>
 <translation id="717330890047184534">รหัส GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> และอีก <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> วิธี}other{<ph name="SHIPPING_OPTION_PREVIEW" /> และอีก <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> วิธี}}</translation>
+<translation id="7179323680825933600">บันทึกและกรอกวิธีการชำระเงิน</translation>
 <translation id="7180611975245234373">รีเฟรช</translation>
 <translation id="7182878459783632708">ไม่ได้กำหนดนโยบายไว้</translation>
 <translation id="7186367841673660872">แปลหน้าเว็บนี้จาก<ph name="ORIGINAL_LANGUAGE" />เป็น<ph name="LANGUAGE_LANGUAGE" />แล้ว</translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">กำลังดำเนินการ</translation>
 <translation id="724691107663265825">ไซต์ที่จะเปิดมีมัลแวร์</translation>
 <translation id="724975217298816891">ป้อนวันหมดอายุและ CVC สำหรับ <ph name="CREDIT_CARD" /> เพื่ออัปเดตรายละเอียดของบัตร เมื่อคุณยืนยันแล้ว รายละเอียดบัตรของคุณจะแชร์กับเว็บไซต์นี้</translation>
+<translation id="7251437084390964440">การกำหนดค่าเครือข่ายไม่เป็นไปตามมาตรฐาน ONC ระบบอาจไม่นำเข้าการกำหนดค่าบางส่วน
+รายละเอียดเพิ่มเติม:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">ไม่สามารถเริ่มการเชื่อมต่อส่วนตัวกับ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ได้เนื่องจากวันที่และเวลาของคอมพิวเตอร์ (<ph name="DATE_AND_TIME" />) ไม่ถูกต้อง</translation>
 <translation id="7260504762447901703">เพิกถอนสิทธิ์การเข้าถึง</translation>
 <translation id="7271803869921933038">บัตรเติมเงินที่ยอมรับ</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">อัปโหลดรายงานข้อขัดข้องเมื่อ <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">ข้อขัดข้อง (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">คุณต้องป้อนข้อความรหัสผ่านที่เหมือนกันสองครั้ง</translation>
+<translation id="8416694386774425977">การกำหนดค่าเครือข่ายไม่ถูกต้องและนำเข้าไม่ได้
+รายละเอียดเพิ่มเติม:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">การตั้งค่า</translation>
 <translation id="8433057134996913067">วิธีนี้จะทำให้คุณออกจากระบบของเว็บไซต์ส่วนใหญ่</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">ลองอีกครั้ง</translation>
 <translation id="8728672262656704056">คุณได้เข้าสู่โหมดไม่ระบุตัวตนแล้ว</translation>
 <translation id="8730621377337864115">เสร็จสิ้น</translation>
+<translation id="8733831205558190772">เก็บบัตรทุกใบของคุณไว้ในที่เดียว</translation>
 <translation id="8738058698779197622">หากต้องเริ่มการเชื่อมต่อที่ปลอดภัย นาฬิกาจะต้องตั้งค่าไว้อย่างถูกต้อง เนื่องจากใบรับรองที่เว็บไซต์ใช้เพื่อระบุตนเองจะใช้ได้เฉพาะช่วงเวลาหนึ่งเท่านั้น นาฬิกาของอุปกรณ์ไม่ถูกต้อง Chromium จึงไม่สามารถยืนยันใบรับรองเหล่านี้ได้</translation>
 <translation id="8740359287975076522">ไม่พบ&lt;abbr id="dnsDefinition"&gt;ที่อยู่ DNS&lt;/abbr&gt; ของ <ph name="HOST_NAME" /> กำลังวินิจฉัยปัญหา</translation>
 <translation id="874846938927089722">บัตรเครดิตและบัตรเติมเงินที่ยอมรับ</translation>
 <translation id="8759274551635299824">บัตรนี้หมดอายุแล้ว</translation>
 <translation id="8761567432415473239">Google Safe Browsing <ph name="BEGIN_LINK" />พบโปรแกรมที่เป็นอันตราย<ph name="END_LINK" />บน <ph name="SITE" /> เมื่อเร็วๆ นี้</translation>
 <translation id="8763927697961133303">อุปกรณ์ USB</translation>
+<translation id="8768895707659403558"><ph name="SIGN_IN_LINK" />เพื่อใช้บัตรในอุปกรณ์ทุกเครื่อง</translation>
 <translation id="8790007591277257123">&amp;ทำซ้ำการนำออก</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{เพิ่มบัตรใบนี้ลงในบัญชี Google แล้ว คุณใช้บัตรใบนี้จากอุปกรณ์ทุกเครื่องที่ลงชื่อเข้าใช้อยู่ได้แล้วในขณะนี้}other{เพิ่มบัตรเหล่านี้ลงในบัญชี Google แล้ว คุณใช้บัตรเหล่านี้จากอุปกรณ์ทุกเครื่องที่ลงชื่อเข้าใช้อยู่ได้แล้วในขณะนี้}}</translation>
 <translation id="8792621596287649091">คุณอาจเข้าถึงบัญชี <ph name="ORG_NAME" /> ไม่ได้หรือถูกโจรกรรมข้อมูลประจำตัว Chromium ขอแนะนำให้เปลี่ยนรหัสผ่านตอนนี้เลย</translation>
 <translation id="8800988563907321413">คำแนะนำในบริเวณใกล้เคียงจะปรากฏที่นี่</translation>
 <translation id="8820817407110198400">บุ๊กมาร์ก</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index c7a3146..071e2cb 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Cihazınızın tarih ve saati (<ph name="DATE_AND_TIME" />) yanlış olduğundan <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> alan adına gizli bir bağlantı kurulamadı.&lt;/p&gt;
 
       &lt;p&gt;Lütfen &lt;strong&gt;Ayarlar&lt;/strong&gt; uygulamasının &lt;strong&gt;Genel&lt;/strong&gt; bölümünden tarih ve saati ayarlayın.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Bu web sayfasını görüntülerken bir hata oluştu.</translation>
 <translation id="1592005682883173041">Yerel Veri Erişimi</translation>
 <translation id="1594030484168838125">Seç</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Geçersiz istek veya istek parametreleri</translation>
 <translation id="1826516787628120939">Kontrol ediliyor</translation>
 <translation id="1834321415901700177">Bu site zararlı programlar içeriyor</translation>
+<translation id="1839551713262164453">Politika değerlerini doğrulama işlemi hatalarla başarısız oldu</translation>
 <translation id="1840414022444569775">Bu kart numarası zaten kullanılıyor</translation>
 <translation id="1842969606798536927">Ödeme</translation>
 <translation id="1871208020102129563">Proxy, bir .pac komut dosyası URL'sini değil, sabit proxy sunucuları kullanacak şekilde ayarlanır.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Sor</translation>
 <translation id="2359629602545592467">Birden fazla</translation>
 <translation id="2359808026110333948">Devam Et</translation>
+<translation id="2360873523816792727">Kartlarınızı tüm cihazlarınızda kullanmak için senkronizasyonu etkinleştirin.</translation>
 <translation id="2365563543831475020">Yakalanan kilitlenme raporu (<ph name="CRASH_TIME" />) yüklenmedi</translation>
 <translation id="2367567093518048410">Düzey</translation>
 <translation id="2378238891085281592">Gizli moda geçtiniz</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Çerezler ve site verileri
           <ph name="LIST_ITEM" />Formlara girilen bilgiler
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Kartları göster</translation>
 <translation id="3369192424181595722">Saat hatası</translation>
 <translation id="337363190475750230">Temel hazırlık iptal edildi</translation>
 <translation id="3377188786107721145">Politika ayrıştırma hatası</translation>
 <translation id="3380365263193509176">Bilinmeyen hata</translation>
 <translation id="3380864720620200369">İstemci Kimliği:</translation>
+<translation id="3387261909427947069">Ödeme Yöntemleri</translation>
 <translation id="3391030046425686457">Teslimat adresi</translation>
 <translation id="3395827396354264108">Alım yöntemi</translation>
 <translation id="3399952811970034796">Teslimat Adresi</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Ödemenizi inceleyin</translation>
 <translation id="4116663294526079822">Bu sitede her zaman izin ver</translation>
 <translation id="4117700440116928470">Politika kapsamı desteklenmiyor.</translation>
+<translation id="4119109454650683048">Lütfen aşağıdaki bilgileri kontrol edin ve gerekiyorsa hataları düzeltin</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 öğe daha}other{# öğe daha}}</translation>
 <translation id="4130226655945681476">Ağ kabloları, modem ve yönlendirici kontrol ediliyor</translation>
 <translation id="413544239732274901">Daha fazla bilgi</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Bu teslimat yöntemi kullanılamıyor. Farklı bir yöntem deneyin.</translation>
 <translation id="4858792381671956233">Ebeveynlerinize bu siteyi ziyaret etmenizin uygun olup olmadığını sordunuz</translation>
 <translation id="4876305945144899064">Kullanıcı adı yok</translation>
+<translation id="4879491255372875719">Otomatik (varsayılan)</translation>
 <translation id="4880827082731008257">Geçmişte ara</translation>
 <translation id="4881695831933465202">Aç</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Tüm kayıtlı şifreleri göster</translation>
 <translation id="5287240709317226393">Çerezleri göster</translation>
+<translation id="5288108484102287882">Politika değerlerini doğrulama işlemi uyarılarla sonuçlandı</translation>
 <translation id="5299298092464848405">Politika ayrıştırma hatası</translation>
 <translation id="5308380583665731573">Bağlan</translation>
 <translation id="5308689395849655368">Kilitlenme bildirme devre dışı.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Politika ayarları saklanamadı</translation>
 <translation id="5371425731340848620">Kartı güncelle</translation>
 <translation id="5377026284221673050">"Saatiniz geri", "Saatiniz ileri" veya "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Kartlarınızı tüm cihazlarınızda kullanmak için oturum açın ve senkronizasyonu etkinleştirin.</translation>
 <translation id="5386426401304769735">Bu sitenin sertifika zinciri, SHA-1 kullanılarak imzalanmış bir sertifika içeriyor.</translation>
 <translation id="5387961145478138773">Favori Google Uygulamalarınıza kolayca erişin</translation>
 <translation id="540969355065856584">Bu sunucu <ph name="DOMAIN" /> olduğunu kanıtlayamadı. Güvenlik sertifikası şu anda geçerli değil. Bu durum, bir yanlış yapılandırmadan veya bağlantıya müdahale eden bir saldırgandan kaynaklanıyor olabilir.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Kredi kartları kabul edilir.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (senkronize edildi)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 çerez kullanımda}other{# çerez kullanımda}}</translation>
+<translation id="5922853866070715753">Tamamlanmak üzere</translation>
 <translation id="5939518447894949180">Sıfırla</translation>
 <translation id="5967592137238574583">İletişim Bilgilerini Düzenleyin</translation>
 <translation id="5967867314010545767">Geçmişten kaldır.</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923"><ph name="SITE" /> sitesi sertifika sabitleme yöntemi kullandığından siteyi şu anda ziyaret edemezsiniz. Ağ hataları ve saldırılar genellikle geçici olduğundan bu sayfa muhtemelen daha sonra çalışacaktır.</translation>
 <translation id="6059925163896151826">USB cihazları</translation>
 <translation id="6071091556643036997">Politika türü geçersiz.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Bu kart, tüm cihazlarınızda daha hızlı ödeme yapılabilmesi için Google Hesabınıza kaydedilecek.}other{Bu kartlar, tüm cihazlarınızda daha hızlı ödeme yapılabilmesi için Google Hesabınıza kaydedilecek.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Yok}=1{1 şifre (senkronize edildi)}other{# şifre (senkronize edildi)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Cihaz</translation>
 <translation id="6970216967273061347">Bölge</translation>
 <translation id="6973656660372572881">Hem sabit proxy sunucular hem de bir .pac komut dosyası URL'si belirtildi.</translation>
+<translation id="6979440798594660689">Sesi kapat (varsayılan)</translation>
 <translation id="6984479912851154518">Harici bir uygulama üzerinden ödeme gerçekleştirmek için gizli moddan çıkılacak. Devam edilsin mi?</translation>
 <translation id="6989763994942163495">Gelişmiş ayarları göster...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> ve <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> yöntem daha}other{<ph name="PAYMENT_METHOD_PREVIEW" /> ve <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> yöntem daha}}</translation>
 <translation id="717330890047184534">Gaia Kimliği:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> ve <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> seçenek daha}other{<ph name="SHIPPING_OPTION_PREVIEW" /> ve <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> seçenek daha}}</translation>
+<translation id="7179323680825933600">Ödeme Yöntemlerini Kaydet ve Doldur</translation>
 <translation id="7180611975245234373">Yenile</translation>
 <translation id="7182878459783632708">Hiçbir politika ayarlanmamış</translation>
 <translation id="7186367841673660872">Bu sayfa,<ph name="ORIGINAL_LANGUAGE" />dilinden<ph name="LANGUAGE_LANGUAGE" />diline çevrilmiştir</translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">İşleme koyuluyor</translation>
 <translation id="724691107663265825">Gideceğiniz site kötü amaçlı yazılım içeriyor</translation>
 <translation id="724975217298816891">Kart ayrıntılarınızı güncellemek için <ph name="CREDIT_CARD" /> numaralı karta ilişkin son kullanma tarihini ve CVC kodunu girin. Onayladığınızda kart ayrıntılarınız bu siteyle paylaşılacaktır.</translation>
+<translation id="7251437084390964440">Ağ yapılandırması ONC standardına uymuyor. Yapılandırmanın bazı bölümleri içe aktarılamaz.
+Ek ayrıntılar:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Bilgisayarınızın tarih ve saati (<ph name="DATE_AND_TIME" />) yanlış olduğundan <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> alan adına gizli bir bağlantı kurulamıyor.</translation>
 <translation id="7260504762447901703">Erişimi iptal et</translation>
 <translation id="7271803869921933038">Kabul Edilen Ön Ödemeli Kartlar</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Kilitlenme raporunun yüklenme zamanı: <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Kilitlenme Sayısı (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Aynı parolayı iki kez girmelisiniz.</translation>
+<translation id="8416694386774425977">Ağ yapılandırması geçersiz ve içe aktarılamadı.
+Ek ayrıntılar:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Ayarlar</translation>
 <translation id="8433057134996913067">Bu işlem, çoğu web sitesinden çıkış yapmanıza neden olacak.</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">Yeniden dene</translation>
 <translation id="8728672262656704056">Gizli moda geçtiniz</translation>
 <translation id="8730621377337864115">Bitti</translation>
+<translation id="8733831205558190772">Tüm kartlarınız tek bir yerde</translation>
 <translation id="8738058698779197622">Güvenli bir bağlantı kurmak için saatinizin doğru ayarlanmış olması gerekir. Bunun sebebi, web sitelerinin kendilerini tanımlamak için kullandıkları sertifikaların sadece belli süreler için geçerli olmasıdır. Cihazınızın saati yanlış olduğundan, Chromium bu sertifikaları doğrulayamaz.</translation>
 <translation id="8740359287975076522"><ph name="HOST_NAME" /> ana makinesinin &lt;abbr id="dnsDefinition"&gt;DNS adresi&lt;/abbr&gt; bulunamadı. Sorun teşhis ediliyor.</translation>
 <translation id="874846938927089722">Kabul Edilen Kredi Kartları ve Ön Ödemeli Kartlar</translation>
 <translation id="8759274551635299824">Bu kartın kullanım süresi doldu</translation>
 <translation id="8761567432415473239">Google Güvenli Tarama, yakın zamanda <ph name="SITE" /> sitesinde <ph name="BEGIN_LINK" />zararlı programlar buldu<ph name="END_LINK" />.</translation>
 <translation id="8763927697961133303">USB cihaz</translation>
+<translation id="8768895707659403558">Kartlarınızı tüm cihazlarınızda kullanmak için <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">Silmeyi &amp;yeniden yap</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Bu kart, Google Hesabınıza eklendi. Artık oturum açtığınız herhangi bir cihazdan kullanabilirsiniz.}other{Bu kartlar, Google Hesabınıza eklendi. Artık oturum açtığınız herhangi bir cihazdan kullanabilirsiniz.}}</translation>
 <translation id="8792621596287649091"><ph name="ORG_NAME" /> hesabınıza erişimi kaybedebilir veya kimlik hırsızlığına maruz kalabilirsiniz. Chromium, şifrenizi hemen değiştirmenizi önerir.</translation>
 <translation id="8800988563907321413">Yakın çevrenizle ilgili öneriler burada görünür</translation>
 <translation id="8820817407110198400">Favoriler</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index 2f13c51..4385599b9 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Не вдається встановити конфіденційне з’єднання із сайтом <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, оскільки на вашому пристрої неправильно налаштовано дату й час (<ph name="DATE_AND_TIME" />).&lt;/p&gt;
 
       &lt;p&gt;Налаштуйте дату й час у розділі &lt;strong&gt;Загальні&lt;/strong&gt; додатка &lt;strong&gt;Налаштування&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Під час показу цієї сторінки сталася помилка.</translation>
 <translation id="1592005682883173041">Доступ до локальних даних</translation>
 <translation id="1594030484168838125">Вибрати</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Недійсний запит або параметри запиту</translation>
 <translation id="1826516787628120939">Перевірка</translation>
 <translation id="1834321415901700177">Цей сайт містить шкідливі програми</translation>
+<translation id="1839551713262164453">Не вдалося перевірити значення правила. Знайдено помилки</translation>
 <translation id="1840414022444569775">Цей номер картки вже використовується</translation>
 <translation id="1842969606798536927">Оплатити</translation>
 <translation id="1871208020102129563">Проксі-сервер налаштовано на використання фіксованих проксі-серверів, а не URL-адреси сценарію .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Запитати</translation>
 <translation id="2359629602545592467">Декілька</translation>
 <translation id="2359808026110333948">Продовжити</translation>
+<translation id="2360873523816792727">Щоб використовувати картки на всіх своїх пристроях, увімкніть синхронізацію.</translation>
 <translation id="2365563543831475020">Звіт про аварійне завершення роботи о <ph name="CRASH_TIME" /> не завантажено</translation>
 <translation id="2367567093518048410">Рівень</translation>
 <translation id="2378238891085281592">Ви перейшли в приватний режим</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />файли cookie та дані із сайтів
           <ph name="LIST_ITEM" />дані, які ви заповнюєте у формах
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Переглянути картки</translation>
 <translation id="3369192424181595722">Помилка годинника</translation>
 <translation id="337363190475750230">Деініціалізовано</translation>
 <translation id="3377188786107721145">Помилка аналізу правила</translation>
 <translation id="3380365263193509176">Невідома помилка</translation>
 <translation id="3380864720620200369">Ідентифікатор клієнта:</translation>
+<translation id="3387261909427947069">Способи оплати</translation>
 <translation id="3391030046425686457">Адреса доставки</translation>
 <translation id="3395827396354264108">Спосіб отримання</translation>
 <translation id="3399952811970034796">Адреса доставки</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Переглянути платіж</translation>
 <translation id="4116663294526079822">Завжди дозволяти на цьому сайті</translation>
 <translation id="4117700440116928470">Правило не підтримується.</translation>
+<translation id="4119109454650683048">Перевірте інформацію нижче та виправте помилки (якщо потрібно).</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{і ще 1 елемент даних}one{і ще # елемент даних}few{і ще # елементи даних}many{і ще # елементів даних}other{і ще # елемента даних}}</translation>
 <translation id="4130226655945681476">перевірити мережевий кабель, модем і маршрутизатор</translation>
 <translation id="413544239732274901">Докладніше</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Цей спосіб доставки недоступний. Виберіть інший спосіб.</translation>
 <translation id="4858792381671956233">Ви надіслали батькам запит на перегляд цього сайту</translation>
 <translation id="4876305945144899064">Немає імені користувача</translation>
+<translation id="4879491255372875719">Автоматично (за умовчанням)</translation>
 <translation id="4880827082731008257">Пошук в історії</translation>
 <translation id="4881695831933465202">Відкрити</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Показати всі збережені паролі</translation>
 <translation id="5287240709317226393">Показати cookie-файли</translation>
+<translation id="5288108484102287882">Під час перевірки значень правила виявлено застереження</translation>
 <translation id="5299298092464848405">Помилка аналізу правила</translation>
 <translation id="5308380583665731573">Під’єднатися</translation>
 <translation id="5308689395849655368">Повідомлення про аварійне завершення роботи вимкнено.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Помилка збереження налаштувань правила</translation>
 <translation id="5371425731340848620">Оновити картку</translation>
 <translation id="5377026284221673050">"Ваш годинник відстає", "Ваш годинник спішить" або "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Щоб використовувати картки на всіх своїх пристроях, увійдіть в обліковий запис і ввімкніть синхронізацію.</translation>
 <translation id="5386426401304769735">Ланцюжок сертифіката цього сайту містить сертифікат, підписаний за допомогою SHA-1.</translation>
 <translation id="5387961145478138773">Отримуйте швидкий доступ до улюблених додатків Google</translation>
 <translation id="540969355065856584">Серверу не вдалося підтвердити, що це <ph name="DOMAIN" />. Його сертифікат безпеки зараз недійсний. Можливі причини: неправильна конфігурація або хтось перехопив ваше з’єднання.</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Кредитні картки, які приймаються.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (синхронізовано)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Використовується 1 файл}one{Використовується # файл}few{Використовуються # файли}many{Використовуються # файлів}other{Використовуються # файлу}}</translation>
+<translation id="5922853866070715753">Майже готово</translation>
 <translation id="5939518447894949180">Скинути</translation>
 <translation id="5967592137238574583">Змініть контактну інформацію</translation>
 <translation id="5967867314010545767">Видалити з історії</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Зараз не можна перейти на сторінку <ph name="SITE" />, оскільки цей веб-сайт використовує закріплення сертифікатів. Помилки мережі й атаки зазвичай тимчасові, тому ця сторінка, скоріш за все, запрацює пізніше.</translation>
 <translation id="6059925163896151826">Пристрої USB</translation>
 <translation id="6071091556643036997">Це правило недійсне.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Цю картку буде збережено в обліковому записі Google для швидшої оплати на різних пристроях.}one{Ці картки буде збережено в обліковому записі Google для швидшої оплати на різних пристроях.}few{Ці картки буде збережено в обліковому записі Google для швидшої оплати на різних пристроях.}many{Ці картки буде збережено в обліковому записі Google для швидшої оплати на різних пристроях.}other{Ці картки буде збережено в обліковому записі Google для швидшої оплати на різних пристроях.}}</translation>
 <translation id="6080696365213338172">Ви отримали доступ до вмісту, використовуючи наданий адміністратором сертифікат. Адміністратор може перехоплювати дані, які ви надасте домену <ph name="DOMAIN" />.</translation>
 <translation id="610911394827799129">У вашому обліковому записі Google на сторінці <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> можуть бути інші форми історії веб-перегляду</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{Немає}=1{1 пароль (синхронізовано)}one{# пароль (синхронізовано)}few{# паролі (синхронізовано)}many{# паролів (синхронізовано)}other{# пароля (синхронізовано)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Пристрій</translation>
 <translation id="6970216967273061347">Район або округ</translation>
 <translation id="6973656660372572881">Указано фіксовані проксі-сервери та URL-адреса сценарію .pac.</translation>
+<translation id="6979440798594660689">Без звуку (за умовчанням)</translation>
 <translation id="6984479912851154518">Щоб оплатити в зовнішньому додатку, ви вийдете з приватного режиму. Продовжити?</translation>
 <translation id="6989763994942163495">Показати розширені налаштування...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> і ще <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" /> і ще <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}few{<ph name="PAYMENT_METHOD_PREVIEW" /> і ще <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}many{<ph name="PAYMENT_METHOD_PREVIEW" /> і ще <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> і ще <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="717330890047184534">Ідентифікатор GAIA:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> і ще <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" /> і ще <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" /> і ще <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}many{<ph name="SHIPPING_OPTION_PREVIEW" /> і ще <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> і ще <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
+<translation id="7179323680825933600">Зберігати й заповнювати способи оплати</translation>
 <translation id="7180611975245234373">Оновити</translation>
 <translation id="7182878459783632708">Правила не встановлено</translation>
 <translation id="7186367841673660872">Цю сторінку перекладено. Мова оригіналу:<ph name="ORIGINAL_LANGUAGE" />мова перекладу:<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Обробка</translation>
 <translation id="724691107663265825">Сайт містить зловмисне програмне забезпечення</translation>
 <translation id="724975217298816891">Введіть термін дії та код CVC картки <ph name="CREDIT_CARD" />, щоб оновити її дані. Щойно ви підтвердите дані картки, цей сайт отримає доступ до них.</translation>
+<translation id="7251437084390964440">Конфігурація мережі не відповідає стандарту ONC. Вона може імпортуватися частково.
+Додаткові відомості:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Не вдається встановити конфіденційне з’єднання з <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, оскільки на комп’ютері встановлено неправильні дату й час (<ph name="DATE_AND_TIME" />).</translation>
 <translation id="7260504762447901703">Скасувати доступ</translation>
 <translation id="7271803869921933038">Передплачені картки, які приймаються до оплати</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Дата завантаження звіту про аварійне завершення роботи: <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Аварійне завершення роботи (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Потрібно двічі ввести однакову парольну фразу.</translation>
+<translation id="8416694386774425977">Конфігурація мережі недійсна та не може імпортуватися.
+Додаткові відомості:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Налаштування</translation>
 <translation id="8433057134996913067">Ви вийдете з облікового запису на більшості веб-сайтів.</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">Повторити спробу</translation>
 <translation id="8728672262656704056">Ви перейшли в режим анонімного перегляду</translation>
 <translation id="8730621377337864115">Готово</translation>
+<translation id="8733831205558190772">Усі ваші картки в хмарі</translation>
 <translation id="8738058698779197622">Щоб установити безпечне з’єднання, потрібно правильно вказати час, оскільки сертифікати, які веб-сайти використовують для самоідентифікації дійсні лише протягом певного періоду часу. Час на вашому пристрої неправильний, тому Chromium не може перевірити сертифікати.</translation>
 <translation id="8740359287975076522">&lt;abbr id="dnsDefinition"&gt;Адресу DNS&lt;/abbr&gt; хосту <ph name="HOST_NAME" /> не знайдено. Діагностика проблеми.</translation>
 <translation id="874846938927089722">Кредитні та передплачені картки, які приймаються до оплати</translation>
 <translation id="8759274551635299824">Термін дії цієї картки минув</translation>
 <translation id="8761567432415473239">Функція безпечного перегляду від Google нещодавно <ph name="BEGIN_LINK" />виявила шкідливі програми<ph name="END_LINK" /> на сайті <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Пристрій USB</translation>
+<translation id="8768895707659403558">Щоб використовувати картки на всіх своїх пристроях, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Повторити видалення</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Цю картку додано в обліковий запис Google. Тепер нею можна користуватися на будь-якому пристрої, де ви ввійшли в обліковий запис.}one{Ці картки додано в обліковий запис Google. Тепер ними можна користуватися на будь-якому пристрої, де ви ввійшли в обліковий запис.}few{Ці картки додано в обліковий запис Google. Тепер ними можна користуватися на будь-якому пристрої, де ви ввійшли в обліковий запис.}many{Ці картки додано в обліковий запис Google. Тепер ними можна користуватися на будь-якому пристрої, де ви ввійшли в обліковий запис.}other{Ці картки додано в обліковий запис Google. Тепер ними можна користуватися на будь-якому пристрої, де ви ввійшли в обліковий запис.}}</translation>
 <translation id="8792621596287649091">Ви можете втратити доступ до облікового запису, який вам надає <ph name="ORG_NAME" />, або хтось може викрасти вашу особисту інформацію. Chromium радить змінити пароль.</translation>
 <translation id="8800988563907321413">Тут відображатимуться пропозиції</translation>
 <translation id="8820817407110198400">Закладки</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 66856de1..2248271d 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;Không thể thiết lập kết nối riêng tư với <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> vì ngày và giờ (<ph name="DATE_AND_TIME" />) trên thiết bị của bạn không chính xác.&lt;/p&gt;
 
       &lt;p&gt;Hãy điều chỉnh ngày và giờ từ phần &lt;strong&gt;Chung&lt;/strong&gt; của ứng dụng &lt;strong&gt;Cài đặt&lt;/strong&gt;.&lt;/p&gt;</translation>
+<translation id="1581080074034554886">CVC</translation>
 <translation id="1583429793053364125">Đã xảy ra lỗi khi hiển thị trang web này.</translation>
 <translation id="1592005682883173041">Quyền truy cập dữ liệu cục bộ</translation>
 <translation id="1594030484168838125">Chọn</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">Yêu cầu hoặc tham số yêu cầu không hợp lệ</translation>
 <translation id="1826516787628120939">Đang kiểm tra</translation>
 <translation id="1834321415901700177">Trang web này có chứa các chương trình độc hại</translation>
+<translation id="1839551713262164453">Xác thực các giá trị của chính sách không thành công do xảy ra lỗi</translation>
 <translation id="1840414022444569775">Số thẻ này đã được sử dụng</translation>
 <translation id="1842969606798536927">Thanh toán</translation>
 <translation id="1871208020102129563">Proxy được đặt để sử dụng máy chủ proxy cố định chứ không phải URL tập lệnh .pac.</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">Yêu cầu</translation>
 <translation id="2359629602545592467">Nhiều</translation>
 <translation id="2359808026110333948">Tiếp tục</translation>
+<translation id="2360873523816792727">Để sử dụng thẻ trên tất cả các thiết bị, hãy bật tính năng đồng bộ hóa.</translation>
 <translation id="2365563543831475020">Báo cáo sự cố được ghi lại vào <ph name="CRASH_TIME" /> chưa được tải lên</translation>
 <translation id="2367567093518048410">Mức độ</translation>
 <translation id="2378238891085281592">Bạn đã chuyển sang chế độ riêng tư</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Cookie và dữ liệu trang web
           <ph name="LIST_ITEM" />Thông tin đã nhập trong biểu mẫu
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">Xem thẻ</translation>
 <translation id="3369192424181595722">Lỗi đồng hồ</translation>
 <translation id="337363190475750230">Đã hủy cấp phép</translation>
 <translation id="3377188786107721145">Lỗi phân tích cú pháp chính sách</translation>
 <translation id="3380365263193509176">Lỗi không xác định</translation>
 <translation id="3380864720620200369">ID ứng dụng khách:</translation>
+<translation id="3387261909427947069">Phương thức thanh toán</translation>
 <translation id="3391030046425686457">Địa chỉ giao hàng</translation>
 <translation id="3395827396354264108">Phương thức nhận hàng</translation>
 <translation id="3399952811970034796">Địa chỉ giao hàng</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">Xem xét thanh toán của bạn</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="4119109454650683048">Vui lòng kiểm tra thông tin bên dưới và sửa lỗi nếu cần thiết</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>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">Phương thức phân phối này không có sẵn. Hãy thử một phương thức khác.</translation>
 <translation id="4858792381671956233">Bạn đã hỏi cha mẹ mình xem có thể truy cập vào trang này hay không</translation>
 <translation id="4876305945144899064">Không có tên người dùng</translation>
+<translation id="4879491255372875719">Tự động (mặc định)</translation>
 <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>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">Hiển thị tất cả mật khẩu đã lưu</translation>
 <translation id="5287240709317226393">Hiển thị cookie</translation>
+<translation id="5288108484102287882">Xuất hiện cảnh báo khi xác thực các giá trị của chính sách</translation>
 <translation id="5299298092464848405">Lỗi phân tích cú pháp chính sách</translation>
 <translation id="5308380583665731573">Kết nối</translation>
 <translation id="5308689395849655368">Báo cáo sự cố bị tắt.</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">Không thể lưu trữ cài đặt chính sách</translation>
 <translation id="5371425731340848620">Cập nhật thẻ</translation>
 <translation id="5377026284221673050">"Đồng hồ của bạn chạy chậm" hoặc "Đồng hồ của bạn chạy nhanh" hay "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
+<translation id="5384855140246857529">Để sử dụng thẻ trên tất cả các thiết bị, hãy đăng nhập và bật tính năng đồng bộ hóa.</translation>
 <translation id="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="5387961145478138773">Truy cập nhanh vào Google Apps ưa thích của bạn</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>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">Thẻ tín dụng được chấp nhận.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (được đồng bộ hóa)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Đang sử dụng 1 cookie}other{Đang sử dụng # cookie}}</translation>
+<translation id="5922853866070715753">Sắp hoàn tất</translation>
 <translation id="5939518447894949180">Đặt lại</translation>
 <translation id="5967592137238574583">Chỉnh sửa thông tin liên hệ</translation>
 <translation id="5967867314010545767">Xóa khỏi lịch sử</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">Bạn không thể truy cập vào <ph name="SITE" /> ngay bây giờ do trang web sử dụng tính năng ghim chứng chỉ. 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="6059925163896151826">Thiết bị USB</translation>
 <translation id="6071091556643036997">Loại chính sách là không hợp lệ.</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{Thẻ này sẽ được lưu vào Tài khoản Google của bạn để thanh toán nhanh hơn trên các thiết bị.}other{Các thẻ này sẽ được lưu vào Tài khoản Google của bạn để thanh toán nhanh hơn trên các thiết bị.}}</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="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>
 <translation id="6144381551823904650">{COUNT,plural, =0{Không có}=1{1 mật khẩu (đã đồng bộ hóa)}other{# mật khẩu (đã đồng bộ hóa)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">Thiết bị</translation>
 <translation id="6970216967273061347">Quận</translation>
 <translation id="6973656660372572881">Cả hai máy chủ proxy cố định và URL tập lệnh .pac đều được chỉ định.</translation>
+<translation id="6979440798594660689">Tắt tiếng (mặc định)</translation>
 <translation id="6984479912851154518">Đang rời khỏi chế độ riêng tư để thanh toán qua một ứng dụng bên ngoài. Bạn có muốn tiếp tục không?</translation>
 <translation id="6989763994942163495">Hiển thị cài đặt nâng cao...</translation>
 <translation id="7012363358306927923">China UnionPay</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> và <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> phương thức thanh toán khác}other{<ph name="PAYMENT_METHOD_PREVIEW" /> và <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> phương thức thanh toán khác}}</translation>
 <translation id="717330890047184534">ID Gaia:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> và <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> tùy chọn giao hàng khác}other{<ph name="SHIPPING_OPTION_PREVIEW" /> và <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> tùy chọn giao hàng khác}}</translation>
+<translation id="7179323680825933600">Lưu và điền phương thức thanh toán</translation>
 <translation id="7180611975245234373">Làm mới</translation>
 <translation id="7182878459783632708">Không có chính sách nào được đặt</translation>
 <translation id="7186367841673660872">Trang này đã được dịch từ<ph name="ORIGINAL_LANGUAGE" />sang<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">Đang xử lý</translation>
 <translation id="724691107663265825">Trang web bạn sắp truy cập chứa phần mềm độc hại</translation>
 <translation id="724975217298816891">Nhập ngày hết hạn và CVC cho <ph name="CREDIT_CARD" /> để cập nhật chi tiết thẻ của bạn. Sau khi bạn xác nhận, chi tiết thẻ của bạn sẽ được chia sẻ với trang web này.</translation>
+<translation id="7251437084390964440">Cấu hình mạng này không tuân thủ tiêu chuẩn ONC. Một số phần của cấu hình có thể không nhập được.
+Thông tin chi tiết bổ sung:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">Không thể thiết lập kết nối riêng tư với <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> vì ngày và giờ (<ph name="DATE_AND_TIME" />) trên máy tính của bạn không đúng.</translation>
 <translation id="7260504762447901703">Thu hồi quyền truy cập</translation>
 <translation id="7271803869921933038">Thẻ trả trước được chấp nhận</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">Báo cáo sự cố được tải lên vào <ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">Sự cố (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">Bạn phải nhập cùng một cụm mật khẩu hai lần.</translation>
+<translation id="8416694386774425977">Cấu hình mạng này là không hợp lệ và không thể nhập được.
+Thông tin chi tiết bổ sung:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">Cài đặt</translation>
 <translation id="8433057134996913067">Thao tác này sẽ đăng xuất bạn khỏi hầu hết các trang web.</translation>
@@ -1071,13 +1090,16 @@
 <translation id="8725066075913043281">Thử lại</translation>
 <translation id="8728672262656704056">Bạn đã chuyển sang chế độ ẩn danh</translation>
 <translation id="8730621377337864115">Hoàn tất</translation>
+<translation id="8733831205558190772">Tất cả thẻ của bạn ở cùng một nơi</translation>
 <translation id="8738058698779197622">Để thiết lập kết nối an toàn, bạn cần đặt thời gian đúng cho đồng hồ. Nguyên nhân là do chứng chỉ mà các trang web dùng để tự nhận dạng chỉ có hiệu lực trong khoảng thời gian cụ thể. Vì đồng hồ trên thiết bị của bạn không đúng nên Chromium không thể xác minh các chứng chỉ này.</translation>
 <translation id="8740359287975076522">Không thể tìm thấy &lt;abbr id="dnsDefinition"&gt;địa chỉ DNS&lt;/abbr&gt; của <ph name="HOST_NAME" />. Đang chẩn đoán sự cố.</translation>
 <translation id="874846938927089722">Thẻ tín dụng và thẻ trả trước được chấp nhận</translation>
 <translation id="8759274551635299824">Thẻ này đã hết hạn</translation>
 <translation id="8761567432415473239">Gần đây, Duyệt web an toàn của Google <ph name="BEGIN_LINK" />tìm thấy chương trình độc hại<ph name="END_LINK" /> trên trang <ph name="SITE" />.</translation>
 <translation id="8763927697961133303">Thiết bị USB</translation>
+<translation id="8768895707659403558">Để sử dụng thẻ trên tất cả các thiết bị, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="8790007591277257123">&amp;Làm lại xóa</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{Đã thêm thẻ này vào Tài khoản Google của bạn. Bây giờ, bạn có thể sử dụng thẻ này trên mọi thiết bị đã đăng nhập.}other{Đã thêm các thẻ này vào Tài khoản Google của bạn. Bây giờ, bạn có thể sử dụng các thẻ này trên mọi thiết bị đã đăng nhập.}}</translation>
 <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="8820817407110198400">Dấu trang</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index 2579002..3578cf8 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -99,6 +99,7 @@
 <translation id="1559572115229829303">&lt;p&gt;您裝置的日期和時間 (<ph name="DATE_AND_TIME" />) 不正確,因此無法與 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> 建立私人連線。&lt;/p&gt;
 
       &lt;p&gt;請前往「設定」應用程式的「一般設定」專區調整日期和時間。&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;</translation>
+<translation id="1581080074034554886">信用卡安全碼</translation>
 <translation id="1583429793053364125">顯示這個網頁時發生錯誤。</translation>
 <translation id="1592005682883173041">本機資料存取權</translation>
 <translation id="1594030484168838125">選擇</translation>
@@ -138,6 +139,7 @@
 <translation id="1821930232296380041">要求或要求參數無效</translation>
 <translation id="1826516787628120939">檢查中</translation>
 <translation id="1834321415901700177">這個網站含有有害程式</translation>
+<translation id="1839551713262164453">發生錯誤,政策值驗證失敗</translation>
 <translation id="1840414022444569775">這組信用卡號碼已經使用過了</translation>
 <translation id="1842969606798536927">支付</translation>
 <translation id="1871208020102129563">Proxy 設定為使用固定的 Proxy 伺服器,而非 .pac 指令碼網址。</translation>
@@ -208,6 +210,7 @@
 <translation id="2356070529366658676">詢問</translation>
 <translation id="2359629602545592467">多種</translation>
 <translation id="2359808026110333948">繼續</translation>
+<translation id="2360873523816792727">如要將卡片同步到所有裝置,請開啟同步功能。</translation>
 <translation id="2365563543831475020">當機報告擷取時間:<ph name="CRASH_TIME" /> (尚未上傳)</translation>
 <translation id="2367567093518048410">等級</translation>
 <translation id="2378238891085281592">你已啟用私密模式</translation>
@@ -351,11 +354,13 @@
           <ph name="LIST_ITEM" />Cookie 和網站資料
           <ph name="LIST_ITEM" />你在表單中輸入的資訊
         <ph name="END_LIST" /></translation>
+<translation id="3366477098757335611">查看卡片</translation>
 <translation id="3369192424181595722">時鐘錯誤</translation>
 <translation id="337363190475750230">已取消佈建</translation>
 <translation id="3377188786107721145">政策解析錯誤</translation>
 <translation id="3380365263193509176">未知的錯誤</translation>
 <translation id="3380864720620200369">用戶端 ID:</translation>
+<translation id="3387261909427947069">付款方式</translation>
 <translation id="3391030046425686457">快遞地址</translation>
 <translation id="3395827396354264108">取件方式</translation>
 <translation id="3399952811970034796">快遞地址</translation>
@@ -452,6 +457,7 @@
 <translation id="4110652170750985508">查看您的付款</translation>
 <translation id="4116663294526079822">永遠允許在這個網站執行</translation>
 <translation id="4117700440116928470">系統不支援這項政策的範圍。</translation>
+<translation id="4119109454650683048">請確認下方資訊,並視需要修改錯誤內容</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{以及另外 1 項表單資料}other{以及另外 # 項表單資料}}</translation>
 <translation id="4130226655945681476">檢查網路線、數據機和路由器</translation>
 <translation id="413544239732274901">瞭解詳情</translation>
@@ -557,6 +563,7 @@
 <translation id="4854362297993841467">不支援所選的快遞方式,請改選其他方式。</translation>
 <translation id="4858792381671956233">你已詢問家長是否同意你造訪這個網站</translation>
 <translation id="4876305945144899064">沒有使用者名稱</translation>
+<translation id="4879491255372875719">自動 (預設)</translation>
 <translation id="4880827082731008257">搜尋記錄</translation>
 <translation id="4881695831933465202">開啟</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />、<ph name="TYPE_2" />,<ph name="TYPE_3" /></translation>
@@ -622,6 +629,7 @@
     <ph name="END_LIST" /></translation>
 <translation id="5285570108065881030">顯示所有已儲存的密碼</translation>
 <translation id="5287240709317226393">顯示 Cookie</translation>
+<translation id="5288108484102287882">政策值驗證作業出現警告訊息</translation>
 <translation id="5299298092464848405">解析政策時發生錯誤</translation>
 <translation id="5308380583665731573">連線</translation>
 <translation id="5308689395849655368">當機報告功能已停用。</translation>
@@ -634,6 +642,7 @@
 <translation id="536296301121032821">無法儲存政策設定</translation>
 <translation id="5371425731340848620">更新信用卡</translation>
 <translation id="5377026284221673050">「你的時鐘時間過慢」、「你的時鐘時間過快」或 「&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;」</translation>
+<translation id="5384855140246857529">如要將卡片同步到所有裝置,請登入並開啟同步功能。</translation>
 <translation id="5386426401304769735">這個網站的憑證鏈結包含使用 SHA-1 進行簽署的憑證。</translation>
 <translation id="5387961145478138773">快速存取你喜愛的 Google 應用程式</translation>
 <translation id="540969355065856584">這個伺服器無法證明所屬網域為 <ph name="DOMAIN" />;其安全性憑證目前無效。這可能是因為設定錯誤,或是有攻擊者攔截您的連線所致。</translation>
@@ -709,6 +718,7 @@
 <translation id="5893752035575986141">接受簽帳金融卡。</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (已同步)</translation>
 <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{目前使用 1 個 Cookie}other{目前使用 # 個 Cookie}}</translation>
+<translation id="5922853866070715753">即將完成</translation>
 <translation id="5939518447894949180">重設</translation>
 <translation id="5967592137238574583">編輯聯絡資訊</translation>
 <translation id="5967867314010545767">從記錄中移除</translation>
@@ -729,6 +739,7 @@
 <translation id="6051221802930200923">目前無法造訪 <ph name="SITE" />,因為這個網站使用憑證鎖定功能。網路錯誤和攻擊行為通常是暫時性的,因此這個網頁可能稍後就會恢復正常狀態。</translation>
 <translation id="6059925163896151826">USB 裝置</translation>
 <translation id="6071091556643036997">政策類型無效。</translation>
+<translation id="6078024795140153212">{NUM_CARDS,plural, =1{系統會將這張卡片儲存至你的 Google 帳戶,讓你在不同裝置上都能享受便捷的結帳體驗。}other{系統會將這些卡片儲存至你的 Google 帳戶,讓你在不同裝置上都能享受便捷的結帳體驗。}}</translation>
 <translation id="6080696365213338172">你使用了管理員提供的憑證存取內容,因此管理員可攔截你傳送至「<ph name="DOMAIN" />」的資料。</translation>
 <translation id="610911394827799129">你的 Google 帳戶仍可能保留了其他類型的瀏覽記錄 (可前往 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 查詢)。</translation>
 <translation id="6144381551823904650">{COUNT,plural, =0{無}=1{1 組密碼 (保持同步)}other{# 組密碼 (保持同步)}}</translation>
@@ -831,6 +842,7 @@
 <translation id="6965978654500191972">裝置</translation>
 <translation id="6970216967273061347">區</translation>
 <translation id="6973656660372572881">已指定固定的 Proxy 伺服器和 .pac 指令碼網址。</translation>
+<translation id="6979440798594660689">靜音 (預設)</translation>
 <translation id="6984479912851154518">即將離開私密模式,改為使用外部應用程式付款,要繼續嗎?</translation>
 <translation id="6989763994942163495">顯示進階設定...</translation>
 <translation id="7012363358306927923">中國銀聯</translation>
@@ -851,6 +863,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> 和另外 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> 種付款方式}other{<ph name="PAYMENT_METHOD_PREVIEW" /> 和另外 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> 種付款方式}}</translation>
 <translation id="717330890047184534">GAIA ID:</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" />和另外 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> 種選項}other{<ph name="SHIPPING_OPTION_PREVIEW" />和另外 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> 種選項}}</translation>
+<translation id="7179323680825933600">儲存及填入付款方式</translation>
 <translation id="7180611975245234373">重新整理</translation>
 <translation id="7182878459783632708">沒有設定任何政策</translation>
 <translation id="7186367841673660872">此網頁內容已由<ph name="ORIGINAL_LANGUAGE" />翻譯成<ph name="LANGUAGE_LANGUAGE" /></translation>
@@ -862,6 +875,9 @@
 <translation id="7220786058474068424">處理中</translation>
 <translation id="724691107663265825">你要造訪的網站含有惡意軟體</translation>
 <translation id="724975217298816891">請輸入 <ph name="CREDIT_CARD" /> 的有效日期和信用卡安全碼,更新您的信用卡詳細資訊。完成驗證後,這個網站就會取得您的信用卡詳細資訊。</translation>
+<translation id="7251437084390964440">網路設定未遵循 ONC 標準,系統可能無法匯入部分設定。
+其他詳細資料:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="725866823122871198">你電腦的日期和時間 (<ph name="DATE_AND_TIME" />) 不正確,因此無法與 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> 建立私人連線。</translation>
 <translation id="7260504762447901703">撤銷存取權</translation>
 <translation id="7271803869921933038">接受的預付卡</translation>
@@ -1039,6 +1055,9 @@
 <translation id="8398259832188219207">當機報告上傳時間:<ph name="UPLOAD_TIME" /></translation>
 <translation id="8412145213513410671">當機次數 (<ph name="CRASH_COUNT" />)</translation>
 <translation id="8412392972487953978">你必須輸入兩次相同的通關密語。</translation>
+<translation id="8416694386774425977">網路設定無效,無法匯入。
+其他詳細資料:
+<ph name="DEBUG_INFO" /></translation>
 <translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
 <translation id="8428213095426709021">設定</translation>
 <translation id="8433057134996913067">您會因此登出大多數網站。</translation>
@@ -1070,13 +1089,16 @@
 <translation id="8725066075913043281">再試一次</translation>
 <translation id="8728672262656704056">你已進入無痕模式</translation>
 <translation id="8730621377337864115">完成</translation>
+<translation id="8733831205558190772">集中管理所有卡片</translation>
 <translation id="8738058698779197622">你必須正確設定時鐘,才能建立安全連線。這是因為網站驗證身分時所使用的憑證僅於特定一段時間內有效。由於你裝置的時鐘不正確,因此 Chromium 無法驗證這些憑證。</translation>
 <translation id="8740359287975076522">找不到 <ph name="HOST_NAME" /> 的 &lt;abbr id="dnsDefinition"&gt;DNS 位址&lt;/abbr&gt;,正在診斷問題。</translation>
 <translation id="874846938927089722">接受的信用卡和預付卡</translation>
 <translation id="8759274551635299824">這張信用卡已過期</translation>
 <translation id="8761567432415473239">Google 安全瀏覽最近在「<ph name="SITE" />」<ph name="BEGIN_LINK" />發現了有害程式<ph name="END_LINK" />。</translation>
 <translation id="8763927697961133303">USB 裝置</translation>
+<translation id="8768895707659403558">如要在所有裝置上使用你的卡片,請<ph name="SIGN_IN_LINK" />。</translation>
 <translation id="8790007591277257123">重做刪除(&amp;R)</translation>
+<translation id="8790803786526555470">{NUM_CARDS,plural, =1{這張卡片已新增至你的 Google 帳戶,你現在可以在任何已登入帳戶的裝置上使用這張卡片。}other{這些卡片已新增至你的 Google 帳戶,你現在可以在任何已登入帳戶的裝置上使用這些卡片。}}</translation>
 <translation id="8792621596287649091">你可能會失去 <ph name="ORG_NAME" /> 帳戶存取權,或身分遭到冒用。Chromium 建議你立即變更密碼。</translation>
 <translation id="8800988563907321413">這裡會顯示系統建議你瀏覽的鄰近網頁</translation>
 <translation id="8820817407110198400">書籤</translation>
diff --git a/components/tracing/common/trace_startup_config.cc b/components/tracing/common/trace_startup_config.cc
index 7c20d3f..2e344fd3 100644
--- a/components/tracing/common/trace_startup_config.cc
+++ b/components/tracing/common/trace_startup_config.cc
@@ -67,6 +67,8 @@
   // Filter only browser process events.
   base::trace_event::TraceConfig::ProcessFilterConfig process_config(
       {base::GetCurrentProcId()});
+  // First 10k events at start are sufficient to debug startup traces.
+  trace_config.SetTraceBufferSizeInEvents(10000);
   trace_config.SetProcessFilterConfig(process_config);
   // Enable argument filter since we could be background tracing.
   trace_config.EnableArgumentFilter();
diff --git a/components/translate/core/browser/resources/translate.js b/components/translate/core/browser/resources/translate.js
index 6e96d00..b2ece17 100644
--- a/components/translate/core/browser/resources/translate.js
+++ b/components/translate/core/browser/resources/translate.js
@@ -102,14 +102,28 @@
    */
   var endTime = 0.0;
 
+  /**
+   * Callback invoked when Translate Element's ready state is known.
+   * @type {Function}
+   */
+  var readyCallback;
+
+  /**
+   * Callback invoked when Translate Element's translation result is known.
+   * @type {Function}
+   */
+  var resultCallback;
+
   function checkLibReady() {
     if (lib.isAvailable()) {
       readyTime = performance.now();
       libReady = true;
+      invokeReadyCallback();
       return;
     }
     if (checkReadyCount++ > 5) {
       errorCode = ERROR['TRANSLATION_TIMEOUT'];
+      invokeReadyCallback();
       return;
     }
     setTimeout(checkLibReady, 100);
@@ -123,17 +137,53 @@
       errorCode = ERROR['TRANSLATION_ERROR'];
       // We failed to translate, restore so the page is in a consistent state.
       lib.restore();
+      invokeResultCallback();
     } else if (typeof opt_error == 'number' && opt_error != 0) {
       errorCode = TRANSLATE_ERROR_TO_ERROR_CODE_MAP[opt_error];
       lib.restore();
+      invokeResultCallback();
     }
-    if (finished)
+    if (finished) {
       endTime = performance.now();
+      invokeResultCallback();
+    }
+  }
+
+  function invokeReadyCallback() {
+    if (readyCallback) {
+      readyCallback();
+    }
+  }
+
+  function invokeResultCallback() {
+    if (resultCallback) {
+      resultCallback();
+    }
   }
 
   // Public API.
   return {
     /**
+     * Setter for readyCallback. No op if already set.
+     * @param {Function} callback The function to be invoked.
+     */
+    set readyCallback(callback) {
+      if (!readyCallback) {
+        readyCallback = callback;
+      }
+    },
+
+    /**
+     * Setter for resultCallback. No op if already set.
+     * @param {Function} callback The function to be invoked.
+     */
+    set resultCallback(callback) {
+      if (!resultCallback) {
+        resultCallback = callback;
+      }
+    },
+
+    /**
      * Whether the library is ready.
      * The translate function should only be called when |libReady| is true.
      * @type {boolean}
@@ -235,6 +285,7 @@
       } catch (err) {
         console.error('Translate: ' + err);
         errorCode = ERROR['UNEXPECTED_SCRIPT_ERROR'];
+        invokeResultCallback();
         return false;
       }
       return true;
@@ -270,6 +321,7 @@
         translateApiKey = undefined;
         serverParams = undefined;
         gtTimeInfo = undefined;
+        invokeReadyCallback();
         return;
       }
       // The TranslateService is not available immediately as it needs to start
diff --git a/components/translate/ios/browser/ios_translate_driver.h b/components/translate/ios/browser/ios_translate_driver.h
index 4fffe22..4ef97966 100644
--- a/components/translate/ios/browser/ios_translate_driver.h
+++ b/components/translate/ios/browser/ios_translate_driver.h
@@ -77,13 +77,6 @@
                              int page_seq_no,
                              const std::string& original_page_language,
                              double translation_time);
-  // Checks if the current running page translation is finished or errored and
-  // notifies the browser accordingly.  If the translation has not terminated,
-  // posts a task to check again later.
-  // Similar to TranslateHelper::CheckTranslateStatus on desktop.
-  void CheckTranslateStatus(const std::string& source_language,
-                            const std::string& target_language,
-                            int page_seq_no);
 
   // Returns true if the user has not navigated away and the the page is not
   // being destroyed.
diff --git a/components/translate/ios/browser/ios_translate_driver.mm b/components/translate/ios/browser/ios_translate_driver.mm
index 837b1d9..87409a6 100644
--- a/components/translate/ios/browser/ios_translate_driver.mm
+++ b/components/translate/ios/browser/ios_translate_driver.mm
@@ -37,11 +37,6 @@
 namespace translate {
 
 namespace {
-// The delay we wait in milliseconds before checking whether the translation has
-// finished.
-// Note: This should be kept in sync with the constant of the same name in
-// translate_ios.js.
-const int kTranslateStatusCheckDelayMs = 400;
 // Language name passed to the Translate element for it to detect the language.
 const char kAutoDetectionLanguage[] = "auto";
 
@@ -225,15 +220,6 @@
                                      translate_errors);
 }
 
-void IOSTranslateDriver::CheckTranslateStatus(
-    const std::string& source_language,
-    const std::string& target_language,
-    int page_seq_no) {
-  if (!IsPageValid(page_seq_no))
-    return;
-  translate_controller_->CheckTranslateStatus();
-}
-
 bool IOSTranslateDriver::IsPageValid(int page_seq_no) const {
   bool user_navigated_away = page_seq_no != page_seq_no_;
   return !user_navigated_away && web_state_;
@@ -260,12 +246,6 @@
                            ? source_language_
                            : kAutoDetectionLanguage;
   translate_controller_->StartTranslation(source_language_, target_language_);
-  // Check the status of the translation -- after a delay.
-  base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
-      FROM_HERE, base::Bind(&IOSTranslateDriver::CheckTranslateStatus,
-                            weak_method_factory_.GetWeakPtr(), source_language_,
-                            target_language_, pending_page_seq_no_),
-      base::TimeDelta::FromMilliseconds(kTranslateStatusCheckDelayMs));
 }
 
 void IOSTranslateDriver::OnTranslateComplete(
diff --git a/components/translate/ios/browser/js_translate_manager.h b/components/translate/ios/browser/js_translate_manager.h
index e5cac85..3fdd067 100644
--- a/components/translate/ios/browser/js_translate_manager.h
+++ b/components/translate/ios/browser/js_translate_manager.h
@@ -24,14 +24,6 @@
 // after the injection.
 @property(nonatomic, copy) NSString* script;
 
-// Injects JS to constantly check if the translate script is ready and informs
-// the Obj-C side when it is.
-- (void)injectWaitUntilTranslateReadyScript;
-
-// After a translation has been initiated, injects JS to check if the
-// translation has finished/failed and informs the Obj-C when it is.
-- (void)injectTranslateStatusScript;
-
 // Starts translation of the page from |source| language to |target| language.
 // Equivalent to TranslateHelper::StartTranslation().
 - (void)startTranslationFrom:(const std::string&)source
diff --git a/components/translate/ios/browser/js_translate_manager.mm b/components/translate/ios/browser/js_translate_manager.mm
index 6e36d713..e9f295a2 100644
--- a/components/translate/ios/browser/js_translate_manager.mm
+++ b/components/translate/ios/browser/js_translate_manager.mm
@@ -47,16 +47,6 @@
   _translationScript = [script copy];
 }
 
-- (void)injectWaitUntilTranslateReadyScript {
-  [self.receiver executeJavaScript:@"__gCrWeb.translate.checkTranslateReady()"
-                 completionHandler:nil];
-}
-
-- (void)injectTranslateStatusScript {
-  [self.receiver executeJavaScript:@"__gCrWeb.translate.checkTranslateStatus()"
-                 completionHandler:nil];
-}
-
 - (void)startTranslationFrom:(const std::string&)source
                           to:(const std::string&)target {
   NSString* script =
diff --git a/components/translate/ios/browser/resources/translate_ios.js b/components/translate/ios/browser/resources/translate_ios.js
index 9b9f329..3f43a0a 100644
--- a/components/translate/ios/browser/resources/translate_ios.js
+++ b/components/translate/ios/browser/resources/translate_ios.js
@@ -3,89 +3,33 @@
 // found in the LICENSE file.
 
 /**
- * @fileoverview Installs Translate management functions on the __gCrWeb object.
+ * @fileoverview Installs iOS Translate callbacks on cr.googleTranslate.
  *
  * TODO(crbug.com/659442): Enable checkTypes, checkVars errors for this file.
  * @suppress {checkTypes, checkVars}
  */
 
-__gCrWeb.translate = {};
-
-// Store translate namespace object in a global __gCrWeb object referenced by a
-// string, so it does not get renamed by closure compiler during the
-// minification.
-__gCrWeb['translate'] = __gCrWeb.translate;
-
 (function() {
 /**
- * The delay a wait performed (in milliseconds) before checking whether the
- * translation has finished.
- * @type {number}
+ * Sets a callback to inform host of the ready state of the translate element.
  */
-__gCrWeb.translate.TRANSLATE_STATUS_CHECK_DELAY = 400;
-
-/**
- * The delay in milliseconds that we'll wait to check if a page has finished
- * loading before attempting a translation.
- * @type {number}
- */
-__gCrWeb.translate.TRANSLATE_LOAD_CHECK_DELAY = 150;
-
-/**
- * The maximum number of times a check is performed to see if the translate
- * library injected in the page is ready.
- * @type {number}
- */
-__gCrWeb.translate.MAX_TRANSLATE_INIT_CHECK_ATTEMPTS = 5;
-
-// The number of times polling for the ready status of the translate script has
-//  been performed.
-var translationAttemptCount = 0;
-
-/**
- * Polls every TRANSLATE_LOAD_CHECK_DELAY milliseconds to check if the translate
- * script is ready and informs the host when it is.
- */
-__gCrWeb.translate['checkTranslateReady'] = function() {
-  translationAttemptCount += 1;
-  if (cr.googleTranslate.libReady) {
-    translationAttemptCount = 0;
-    __gCrWeb.message.invokeOnHost({
-        'command': 'translate.ready',
-        'timeout': false,
-        'loadTime': cr.googleTranslate.loadTime,
-        'readyTime': cr.googleTranslate.readyTime});
-  } else if (translationAttemptCount >=
-             __gCrWeb.translate.MAX_TRANSLATE_INIT_CHECK_ATTEMPTS) {
-    __gCrWeb.message.invokeOnHost({
-        'command': 'translate.ready',
-        'timeout': true});
-  } else {
-    // The translation is still pending, check again later.
-    window.setTimeout(__gCrWeb.translate.checkTranslateReady,
-                      __gCrWeb.translate.TRANSLATE_LOAD_CHECK_DELAY);
-  }
+cr.googleTranslate.readyCallback = function() {
+  __gCrWeb.message.invokeOnHost({
+      'command': 'translate.ready',
+      'timeout': cr.googleTranslate.error,
+      'loadTime': cr.googleTranslate.loadTime,
+      'readyTime': cr.googleTranslate.readyTime});
 }
 
 /**
- * Polls every TRANSLATE_STATUS_CHECK_DELAY milliseconds to check if translate
- * is ready and informs the host when it is.
+ * Sets a callback to inform host of the result of translation.
  */
-__gCrWeb.translate['checkTranslateStatus'] = function() {
-  if (cr.googleTranslate.error) {
-    __gCrWeb.message.invokeOnHost({'command': 'translate.status',
-                                   'success': false});
-  } else if (cr.googleTranslate.finished) {
-    __gCrWeb.message.invokeOnHost({
-        'command': 'translate.status',
-        'success': true,
-        'originalPageLanguage': cr.googleTranslate.sourceLang,
-        'translationTime': cr.googleTranslate.translationTime});
-  } else {
-    // The translation is still pending, check again later.
-    window.setTimeout(__gCrWeb.translate.checkTranslateStatus,
-                      __gCrWeb.translate.TRANSLATE_STATUS_CHECK_DELAY);
-  }
+cr.googleTranslate.resultCallback = function() {
+  __gCrWeb.message.invokeOnHost({
+      'command': 'translate.status',
+      'success': !cr.googleTranslate.error,
+      'originalPageLanguage': cr.googleTranslate.sourceLang,
+      'translationTime': cr.googleTranslate.translationTime});
 }
 
 }());  // anonymous function
diff --git a/components/translate/ios/browser/translate_controller.h b/components/translate/ios/browser/translate_controller.h
index 0623d5f..1b91fef 100644
--- a/components/translate/ios/browser/translate_controller.h
+++ b/components/translate/ios/browser/translate_controller.h
@@ -62,10 +62,6 @@
   void StartTranslation(const std::string& source_language,
                         const std::string& target_language);
 
-  // Checks the translation status and calls the observer when it is done.
-  // This method must be called after StartTranslation().
-  void CheckTranslateStatus();
-
   // Changes the JsTranslateManager used by this TranslateController.
   // Only used for testing.
   void SetJsTranslateManagerForTesting(JsTranslateManager* manager);
diff --git a/components/translate/ios/browser/translate_controller.mm b/components/translate/ios/browser/translate_controller.mm
index d3051ab..b125f48 100644
--- a/components/translate/ios/browser/translate_controller.mm
+++ b/components/translate/ios/browser/translate_controller.mm
@@ -50,7 +50,6 @@
     const std::string& translate_script) {
   [js_manager_ setScript:base::SysUTF8ToNSString(translate_script)];
   [js_manager_ inject];
-  [js_manager_ injectWaitUntilTranslateReadyScript];
 }
 
 void TranslateController::RevertTranslation() {
@@ -62,10 +61,6 @@
   [js_manager_ startTranslationFrom:source_language to:target_language];
 }
 
-void TranslateController::CheckTranslateStatus() {
-  [js_manager_ injectTranslateStatusScript];
-}
-
 void TranslateController::SetJsTranslateManagerForTesting(
     JsTranslateManager* manager) {
   js_manager_.reset(manager);
diff --git a/components/unified_consent/unified_consent_service.cc b/components/unified_consent/unified_consent_service.cc
index a753863..084c1eb 100644
--- a/components/unified_consent/unified_consent_service.cc
+++ b/components/unified_consent/unified_consent_service.cc
@@ -4,6 +4,7 @@
 
 #include "components/unified_consent/unified_consent_service.h"
 
+#include "base/logging.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/scoped_observer.h"
 #include "base/threading/sequenced_task_runner_handle.h"
@@ -18,8 +19,48 @@
 #include "components/unified_consent/pref_names.h"
 #include "components/unified_consent/unified_consent_service_client.h"
 
+namespace unified_consent {
+
 namespace {
 
+// Histogram recorded at startup to log which Google services are enabled.
+const char kSyncAndGoogleServicesSettingsHistogram[] =
+    "UnifiedConsent.SyncAndGoogleServicesSettings";
+
+// Records a sample in the kSyncAndGoogleServicesSettingsHistogram. Wrapped in a
+// function to avoid code size issues caused by histogram macros.
+void RecordSettingsHistogramSample(SettingsHistogramValue value) {
+  UMA_HISTOGRAM_ENUMERATION(kSyncAndGoogleServicesSettingsHistogram, value);
+}
+
+// Checks if a pref is enabled and if so, records a sample in the
+// kSyncAndGoogleServicesSettingsHistogram. Returns true if a sample was
+// recorded.
+bool RecordSettingsHistogramFromPref(const char* pref_name,
+                                     PrefService* pref_service,
+                                     SettingsHistogramValue value) {
+  if (!pref_service->GetBoolean(pref_name))
+    return false;
+  RecordSettingsHistogramSample(value);
+  return true;
+}
+
+// Checks if a service is enabled and if so, records a sample in the
+// kSyncAndGoogleServicesSettingsHistogram. Returns true if a sample was
+// recorded.
+bool RecordSettingsHistogramFromService(
+    UnifiedConsentServiceClient* client,
+    UnifiedConsentServiceClient::Service service,
+    SettingsHistogramValue value) {
+  if (client->GetServiceState(service) !=
+      UnifiedConsentServiceClient::ServiceState::kEnabled) {
+    return false;
+  }
+
+  RecordSettingsHistogramSample(value);
+  return true;
+}
+
 // Used for observing the sync service and finishing the rollback once the sync
 // engine is initialized.
 // Note: This object is suicidal - it will kill itself after it finishes the
@@ -77,8 +118,6 @@
 
 }  // namespace
 
-namespace unified_consent {
-
 UnifiedConsentService::UnifiedConsentService(
     std::unique_ptr<UnifiedConsentServiceClient> service_client,
     PrefService* pref_service,
@@ -113,6 +152,8 @@
   if (!AreAllNonPersonalizedServicesEnabled() && IsUnifiedConsentGiven()) {
     SetUnifiedConsentGiven(false);
   }
+
+  RecordSettingsHistogram();
 }
 
 UnifiedConsentService::~UnifiedConsentService() {}
@@ -158,6 +199,8 @@
 }
 
 void UnifiedConsentService::SetUnifiedConsentGiven(bool unified_consent_given) {
+  // Unified consent cannot be enabled if the user is not signed in.
+  DCHECK(!unified_consent_given || identity_manager_->HasPrimaryAccount());
   pref_service_->SetBoolean(prefs::kUnifiedConsentGiven, unified_consent_given);
 }
 
@@ -166,7 +209,7 @@
 }
 
 bool UnifiedConsentService::ShouldShowConsentBump() {
-  if (base::FeatureList::IsEnabled(unified_consent::kForceUnifiedConsentBump))
+  if (base::FeatureList::IsEnabled(kForceUnifiedConsentBump))
     return true;
 
   return pref_service_->GetBoolean(prefs::kShouldShowUnifiedConsentBump);
@@ -420,4 +463,31 @@
          syncer::SyncService::TransportState::ACTIVE;
 }
 
+void UnifiedConsentService::RecordSettingsHistogram() {
+  bool metric_recorded = false;
+
+  if (IsUnifiedConsentGiven()) {
+    RecordSettingsHistogramSample(SettingsHistogramValue::kUnifiedConsentGiven);
+    metric_recorded = true;
+  }
+  if (identity_manager_->HasPrimaryAccount() &&
+      sync_service_->GetPreferredDataTypes().Has(syncer::USER_EVENTS)) {
+    RecordSettingsHistogramSample(SettingsHistogramValue::kUserEvents);
+    metric_recorded = true;
+  }
+  metric_recorded |= RecordSettingsHistogramFromPref(
+      prefs::kUrlKeyedAnonymizedDataCollectionEnabled, pref_service_,
+      SettingsHistogramValue::kUrlKeyedAnonymizedDataCollection);
+  metric_recorded |= RecordSettingsHistogramFromService(
+      service_client_.get(),
+      UnifiedConsentServiceClient::Service::kSafeBrowsingExtendedReporting,
+      SettingsHistogramValue::kSafeBrowsingExtendedReporting);
+  metric_recorded |= RecordSettingsHistogramFromService(
+      service_client_.get(), UnifiedConsentServiceClient::Service::kSpellCheck,
+      SettingsHistogramValue::kSpellCheck);
+
+  if (!metric_recorded)
+    RecordSettingsHistogramSample(SettingsHistogramValue::kNone);
+}
+
 }  //  namespace unified_consent
diff --git a/components/unified_consent/unified_consent_service.h b/components/unified_consent/unified_consent_service.h
index 6d2bb478..f1a85b8 100644
--- a/components/unified_consent/unified_consent_service.h
+++ b/components/unified_consent/unified_consent_service.h
@@ -37,6 +37,8 @@
   kCompleted = 10,
 };
 
+// Used in histograms. Do not change existing values, append new values at the
+// end.
 enum class ConsentBumpSuppressReason {
   kNone,
   kNotSignedIn,
@@ -45,9 +47,24 @@
   kSettingsOptIn,
   kUserSignedOut,
   kSyncPaused,
+
   kMaxValue = kSyncPaused
 };
 
+// Google services that can be toggled in user settings.
+// Used in histograms. Do not change existing values, append new values at the
+// end.
+enum class SettingsHistogramValue {
+  kNone = 0,
+  kUnifiedConsentGiven = 1,
+  kUserEvents = 2,
+  kUrlKeyedAnonymizedDataCollection = 3,
+  kSafeBrowsingExtendedReporting = 4,
+  kSpellCheck = 5,
+
+  kMaxValue = kSpellCheck
+};
+
 // A browser-context keyed service that is used to manage the user consent
 // when UnifiedConsent feature is enabled.
 class UnifiedConsentService : public KeyedService,
@@ -132,6 +149,10 @@
   // |SyncService::OnUserChoseDatatypes|.
   bool IsSyncConfigurable();
 
+  // Records a sample for each bucket enabled by the user (except kNone).
+  // kNone is recorded when none of the other buckets are recorded.
+  void RecordSettingsHistogram();
+
   std::unique_ptr<UnifiedConsentServiceClient> service_client_;
   PrefService* pref_service_;
   identity::IdentityManager* identity_manager_;
diff --git a/components/unified_consent/unified_consent_service_unittest.cc b/components/unified_consent/unified_consent_service_unittest.cc
index b6b7a96..d14b0da 100644
--- a/components/unified_consent/unified_consent_service_unittest.cc
+++ b/components/unified_consent/unified_consent_service_unittest.cc
@@ -580,4 +580,60 @@
   base::RunLoop().RunUntilIdle();
 }
 
+TEST_F(UnifiedConsentServiceTest, SettingsHistogram_None) {
+  base::HistogramTester histogram_tester;
+  // Disable all services.
+  sync_service_.OnUserChoseDatatypes(false, syncer::ModelTypeSet());
+  CreateConsentService();
+
+  histogram_tester.ExpectUniqueSample(
+      "UnifiedConsent.SyncAndGoogleServicesSettings",
+      SettingsHistogramValue::kNone, 1);
+}
+
+TEST_F(UnifiedConsentServiceTest, SettingsHistogram_UnifiedConsentGiven) {
+  base::HistogramTester histogram_tester;
+  // Unified consent is given.
+  identity_test_environment_.SetPrimaryAccount("testaccount");
+  pref_service_.SetInteger(
+      prefs::kUnifiedConsentMigrationState,
+      static_cast<int>(unified_consent::MigrationState::kCompleted));
+  pref_service_.SetBoolean(prefs::kUnifiedConsentGiven, true);
+  CreateConsentService(true);
+
+  histogram_tester.ExpectBucketCount(
+      "UnifiedConsent.SyncAndGoogleServicesSettings",
+      SettingsHistogramValue::kNone, 0);
+  histogram_tester.ExpectBucketCount(
+      "UnifiedConsent.SyncAndGoogleServicesSettings",
+      SettingsHistogramValue::kUnifiedConsentGiven, 1);
+  histogram_tester.ExpectBucketCount(
+      "UnifiedConsent.SyncAndGoogleServicesSettings",
+      SettingsHistogramValue::kUserEvents, 1);
+  histogram_tester.ExpectBucketCount(
+      "UnifiedConsent.SyncAndGoogleServicesSettings",
+      SettingsHistogramValue::kUrlKeyedAnonymizedDataCollection, 1);
+  histogram_tester.ExpectBucketCount(
+      "UnifiedConsent.SyncAndGoogleServicesSettings",
+      SettingsHistogramValue::kSafeBrowsingExtendedReporting, 1);
+  histogram_tester.ExpectBucketCount(
+      "UnifiedConsent.SyncAndGoogleServicesSettings",
+      SettingsHistogramValue::kSpellCheck, 1);
+  histogram_tester.ExpectTotalCount(
+      "UnifiedConsent.SyncAndGoogleServicesSettings", 5);
+}
+
+TEST_F(UnifiedConsentServiceTest, SettingsHistogram_NoUnifiedConsentGiven) {
+  base::HistogramTester histogram_tester;
+  // Unified consent is not given. Only spellcheck is enabled.
+  pref_service_.SetBoolean(kSpellCheckDummyEnabled, true);
+  CreateConsentService();
+
+  // kUserEvents should have no sample even though the sync preference is set,
+  // because the user is not signed in.
+  histogram_tester.ExpectUniqueSample(
+      "UnifiedConsent.SyncAndGoogleServicesSettings",
+      SettingsHistogramValue::kSpellCheck, 1);
+}
+
 }  // namespace unified_consent
diff --git a/components/viz/host/BUILD.gn b/components/viz/host/BUILD.gn
index 660099d..93fc819 100644
--- a/components/viz/host/BUILD.gn
+++ b/components/viz/host/BUILD.gn
@@ -11,6 +11,9 @@
   sources = [
     "client_frame_sink_video_capturer.cc",
     "client_frame_sink_video_capturer.h",
+    "gpu_client.cc",
+    "gpu_client.h",
+    "gpu_client_delegate.h",
     "hit_test/hit_test_query.cc",
     "hit_test/hit_test_query.h",
     "hit_test/hit_test_region_observer.h",
@@ -50,6 +53,7 @@
   public_deps = [
     "//gpu/command_buffer/client",
     "//gpu/ipc/host",
+    "//services/ui/public/interfaces",
     "//services/viz/privileged/interfaces/compositing",
     "//services/viz/public/interfaces",
     "//ui/gfx/geometry",
diff --git a/components/viz/host/DEPS b/components/viz/host/DEPS
index c24c606..1fe6066e 100644
--- a/components/viz/host/DEPS
+++ b/components/viz/host/DEPS
@@ -10,6 +10,7 @@
   "+gpu/ipc/common",
   "+gpu/ipc/host",
   "+mojo/public/cpp",
+  "+services/ui/public/interfaces",
   "+services/viz/privileged/interfaces",
   "+services/viz/public/interfaces",
   "+services/viz/public/interfaces/hit_test",
diff --git a/content/browser/gpu/gpu_client_impl.cc b/components/viz/host/gpu_client.cc
similarity index 69%
rename from content/browser/gpu/gpu_client_impl.cc
rename to components/viz/host/gpu_client.cc
index 454ac28..4f64d87 100644
--- a/content/browser/gpu/gpu_client_impl.cc
+++ b/components/viz/host/gpu_client.cc
@@ -2,40 +2,20 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "content/browser/gpu/gpu_client_impl.h"
+#include "components/viz/host/gpu_client.h"
 
 #include "components/viz/host/host_gpu_memory_buffer_manager.h"
-#include "content/browser/gpu/browser_gpu_client_delegate.h"
-#include "content/common/child_process_host_impl.h"
 #include "gpu/ipc/client/gpu_channel_host.h"
 #include "gpu/ipc/common/gpu_memory_buffer_impl.h"
 #include "gpu/ipc/common/gpu_memory_buffer_impl_shared_memory.h"
 #include "services/viz/privileged/interfaces/gl/gpu_service.mojom.h"
 
-namespace content {
+namespace viz {
 
-// static
-std::unique_ptr<GpuClient, base::OnTaskRunnerDeleter> GpuClient::Create(
-    ui::mojom::GpuRequest request,
-    ConnectionErrorHandlerClosure connection_error_handler,
-    scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
-  const int client_id = ChildProcessHostImpl::GenerateChildProcessUniqueId();
-  const uint64_t client_tracing_id =
-      ChildProcessHostImpl::ChildProcessUniqueIdToTracingProcessId(client_id);
-  std::unique_ptr<GpuClientImpl, base::OnTaskRunnerDeleter> gpu_client(
-      new GpuClientImpl(std::make_unique<BrowserGpuClientDelegate>(), client_id,
-                        client_tracing_id, task_runner),
-      base::OnTaskRunnerDeleter(task_runner));
-  gpu_client->SetConnectionErrorHandler(std::move(connection_error_handler));
-  gpu_client->Add(std::move(request));
-  return gpu_client;
-}
-
-GpuClientImpl::GpuClientImpl(
-    std::unique_ptr<GpuClientDelegate> delegate,
-    int client_id,
-    uint64_t client_tracing_id,
-    scoped_refptr<base::SingleThreadTaskRunner> task_runner)
+GpuClient::GpuClient(std::unique_ptr<GpuClientDelegate> delegate,
+                     int client_id,
+                     uint64_t client_tracing_id,
+                     scoped_refptr<base::SingleThreadTaskRunner> task_runner)
     : delegate_(std::move(delegate)),
       client_id_(client_id),
       client_tracing_id_(client_tracing_id),
@@ -43,22 +23,22 @@
       weak_factory_(this) {
   DCHECK(delegate_);
   gpu_bindings_.set_connection_error_handler(
-      base::BindRepeating(&GpuClientImpl::OnError, base::Unretained(this),
+      base::BindRepeating(&GpuClient::OnError, base::Unretained(this),
                           ErrorReason::kConnectionLost));
 }
 
-GpuClientImpl::~GpuClientImpl() {
+GpuClient::~GpuClient() {
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
   gpu_bindings_.CloseAllBindings();
   OnError(ErrorReason::kInDestructor);
 }
 
-void GpuClientImpl::Add(ui::mojom::GpuRequest request) {
+void GpuClient::Add(ui::mojom::GpuRequest request) {
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
   gpu_bindings_.AddBinding(this, std::move(request));
 }
 
-void GpuClientImpl::OnError(ErrorReason reason) {
+void GpuClient::OnError(ErrorReason reason) {
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
   ClearCallback();
   if (gpu_bindings_.empty() && delegate_) {
@@ -71,23 +51,23 @@
     std::move(connection_error_handler_).Run(this);
 }
 
-void GpuClientImpl::PreEstablishGpuChannel() {
+void GpuClient::PreEstablishGpuChannel() {
   if (task_runner_->RunsTasksInCurrentSequence()) {
     EstablishGpuChannel(EstablishGpuChannelCallback());
   } else {
     task_runner_->PostTask(
         FROM_HERE,
-        base::BindOnce(&GpuClientImpl::EstablishGpuChannel,
-                       base::Unretained(this), EstablishGpuChannelCallback()));
+        base::BindOnce(&GpuClient::EstablishGpuChannel, base::Unretained(this),
+                       EstablishGpuChannelCallback()));
   }
 }
 
-void GpuClientImpl::SetConnectionErrorHandler(
+void GpuClient::SetConnectionErrorHandler(
     ConnectionErrorHandlerClosure connection_error_handler) {
   connection_error_handler_ = std::move(connection_error_handler);
 }
 
-void GpuClientImpl::OnEstablishGpuChannel(
+void GpuClient::OnEstablishGpuChannel(
     mojo::ScopedMessagePipeHandle channel_handle,
     const gpu::GPUInfo& gpu_info,
     const gpu::GpuFeatureInfo& gpu_feature_info,
@@ -118,13 +98,12 @@
   }
 }
 
-void GpuClientImpl::OnCreateGpuMemoryBuffer(
-    CreateGpuMemoryBufferCallback callback,
-    gfx::GpuMemoryBufferHandle handle) {
+void GpuClient::OnCreateGpuMemoryBuffer(CreateGpuMemoryBufferCallback callback,
+                                        gfx::GpuMemoryBufferHandle handle) {
   std::move(callback).Run(std::move(handle));
 }
 
-void GpuClientImpl::ClearCallback() {
+void GpuClient::ClearCallback() {
   if (!callback_)
     return;
   EstablishGpuChannelCallback callback = std::move(callback_);
@@ -133,7 +112,7 @@
   DCHECK(!callback_);
 }
 
-void GpuClientImpl::EstablishGpuChannel(EstablishGpuChannelCallback callback) {
+void GpuClient::EstablishGpuChannel(EstablishGpuChannelCallback callback) {
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
   // At most one channel should be requested. So clear previous request first.
   ClearCallback();
@@ -155,17 +134,17 @@
   gpu_channel_requested_ = true;
   delegate_->EstablishGpuChannel(
       client_id_, client_tracing_id_,
-      base::BindOnce(&GpuClientImpl::OnEstablishGpuChannel,
+      base::BindOnce(&GpuClient::OnEstablishGpuChannel,
                      weak_factory_.GetWeakPtr()));
 }
 
-void GpuClientImpl::CreateJpegDecodeAccelerator(
+void GpuClient::CreateJpegDecodeAccelerator(
     media::mojom::JpegDecodeAcceleratorRequest jda_request) {
   if (auto* gpu_service = delegate_->EnsureGpuService())
     gpu_service->CreateJpegDecodeAccelerator(std::move(jda_request));
 }
 
-void GpuClientImpl::CreateVideoEncodeAcceleratorProvider(
+void GpuClient::CreateVideoEncodeAcceleratorProvider(
     media::mojom::VideoEncodeAcceleratorProviderRequest vea_provider_request) {
   if (auto* gpu_service = delegate_->EnsureGpuService()) {
     gpu_service->CreateVideoEncodeAcceleratorProvider(
@@ -173,7 +152,7 @@
   }
 }
 
-void GpuClientImpl::CreateGpuMemoryBuffer(
+void GpuClient::CreateGpuMemoryBuffer(
     gfx::GpuMemoryBufferId id,
     const gfx::Size& size,
     gfx::BufferFormat format,
@@ -191,12 +170,12 @@
 
   gpu_memory_buffer_manager->AllocateGpuMemoryBuffer(
       id, client_id_, size, format, usage, gpu::kNullSurfaceHandle,
-      base::BindOnce(&GpuClientImpl::OnCreateGpuMemoryBuffer,
+      base::BindOnce(&GpuClient::OnCreateGpuMemoryBuffer,
                      weak_factory_.GetWeakPtr(), std::move(callback)));
 }
 
-void GpuClientImpl::DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id,
-                                           const gpu::SyncToken& sync_token) {
+void GpuClient::DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id,
+                                       const gpu::SyncToken& sync_token) {
   if (auto* gpu_memory_buffer_manager =
           delegate_->GetGpuMemoryBufferManager()) {
     gpu_memory_buffer_manager->DestroyGpuMemoryBuffer(id, client_id_,
@@ -204,9 +183,9 @@
   }
 }
 
-void GpuClientImpl::CreateGpuMemoryBufferFactory(
+void GpuClient::CreateGpuMemoryBufferFactory(
     ui::mojom::GpuMemoryBufferFactoryRequest request) {
   gpu_memory_buffer_factory_bindings_.AddBinding(this, std::move(request));
 }
 
-}  // namespace content
+}  // namespace viz
diff --git a/content/browser/gpu/gpu_client_impl.h b/components/viz/host/gpu_client.h
similarity index 72%
rename from content/browser/gpu/gpu_client_impl.h
rename to components/viz/host/gpu_client.h
index 0b91dc926..7a388be 100644
--- a/content/browser/gpu/gpu_client_impl.h
+++ b/components/viz/host/gpu_client.h
@@ -2,29 +2,31 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CONTENT_BROWSER_GPU_GPU_CLIENT_IMPL_H_
-#define CONTENT_BROWSER_GPU_GPU_CLIENT_IMPL_H_
+#ifndef COMPONENTS_VIZ_HOST_GPU_CLIENT_H_
+#define COMPONENTS_VIZ_HOST_GPU_CLIENT_H_
 
 #include "base/callback_forward.h"
 #include "base/memory/weak_ptr.h"
-#include "content/browser/gpu/gpu_client_delegate.h"
-#include "content/public/browser/gpu_client.h"
+#include "components/viz/host/gpu_client_delegate.h"
+#include "components/viz/host/viz_host_export.h"
 #include "mojo/public/cpp/bindings/binding_set.h"
+#include "services/ui/public/interfaces/gpu.mojom.h"
 
-namespace content {
+namespace viz {
 
-class GpuClientImpl : public ui::mojom::GpuMemoryBufferFactory,
-                      public ui::mojom::Gpu,
-                      public GpuClient {
+class VIZ_HOST_EXPORT GpuClient : public ui::mojom::GpuMemoryBufferFactory,
+                                  public ui::mojom::Gpu {
  public:
-  // GpuClientImpl must be destroyed on the thread associated with
-  // |task_runner|.
-  GpuClientImpl(std::unique_ptr<GpuClientDelegate> delegate,
-                int client_id,
-                uint64_t client_tracing_id,
-                scoped_refptr<base::SingleThreadTaskRunner> task_runner);
+  using ConnectionErrorHandlerClosure =
+      base::OnceCallback<void(GpuClient* client)>;
 
-  ~GpuClientImpl() override;
+  // GpuClient must be destroyed on the thread associated with |task_runner|.
+  GpuClient(std::unique_ptr<GpuClientDelegate> delegate,
+            int client_id,
+            uint64_t client_tracing_id,
+            scoped_refptr<base::SingleThreadTaskRunner> task_runner);
+
+  ~GpuClient() override;
 
   // This needs to be run on the thread associated with |task_runner_|.
   void Add(ui::mojom::GpuRequest request);
@@ -85,14 +87,14 @@
   gpu::GpuFeatureInfo gpu_feature_info_;
   ConnectionErrorHandlerClosure connection_error_handler_;
   // |task_runner_| is associated with the thread |gpu_bindings_| is bound on.
-  // GpuClientImpl instance is bound to this thread, and must be destroyed on
-  // this thread.
+  // GpuClient instance is bound to this thread, and must be destroyed on this
+  // thread.
   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
-  base::WeakPtrFactory<GpuClientImpl> weak_factory_;
+  base::WeakPtrFactory<GpuClient> weak_factory_;
 
-  DISALLOW_COPY_AND_ASSIGN(GpuClientImpl);
+  DISALLOW_COPY_AND_ASSIGN(GpuClient);
 };
 
-}  // namespace content
+}  // namespace viz
 
-#endif  // CONTENT_BROWSER_GPU_GPU_CLIENT_IMPL_H_
+#endif  // COMPONENTS_VIZ_HOST_GPU_CLIENT_H_
diff --git a/content/browser/gpu/gpu_client_delegate.h b/components/viz/host/gpu_client_delegate.h
similarity index 82%
rename from content/browser/gpu/gpu_client_delegate.h
rename to components/viz/host/gpu_client_delegate.h
index d3d2513..51a283a 100644
--- a/content/browser/gpu/gpu_client_delegate.h
+++ b/components/viz/host/gpu_client_delegate.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 CONTENT_BROWSER_GPU_GPU_CLIENT_DELEGATE_H_
-#define CONTENT_BROWSER_GPU_GPU_CLIENT_DELEGATE_H_
+#ifndef COMPONENTS_VIZ_HOST_GPU_CLIENT_DELEGATE_H_
+#define COMPONENTS_VIZ_HOST_GPU_CLIENT_DELEGATE_H_
 
 #include "base/callback_forward.h"
 #include "mojo/public/cpp/system/message_pipe.h"
@@ -19,9 +19,6 @@
 }
 
 class HostGpuMemoryBufferManager;
-}  // namespace viz
-
-namespace content {
 
 // Delegate interface that GpuClientImpl uses to get the current GpuService
 // instance and establish GPU channel for a client. These functions are
@@ -48,7 +45,7 @@
 
   // Returns the current instance of GPU service. If GPU service is not running,
   // tries to launch it. If the launch is unsuccessful, returns nullptr.
-  virtual viz::mojom::GpuService* EnsureGpuService() = 0;
+  virtual mojom::GpuService* EnsureGpuService() = 0;
 
   // Sends a request to establish a GPU channel for a client to the GPU service.
   // If GPU service is not running, tries to launch it and send the request.
@@ -56,10 +53,10 @@
                                    uint64_t client_tracing_id,
                                    EstablishGpuChannelCallback callback) = 0;
 
-  // Returns the current viz::HostGpuMemoryBufferManager instance.
-  virtual viz::HostGpuMemoryBufferManager* GetGpuMemoryBufferManager() = 0;
+  // Returns the current HostGpuMemoryBufferManager instance.
+  virtual HostGpuMemoryBufferManager* GetGpuMemoryBufferManager() = 0;
 };
 
-}  // namespace content
+}  // namespace viz
 
-#endif  // CONTENT_BROWSER_GPU_GPU_CLIENT_DELEGATE_H_
+#endif  // COMPONENTS_VIZ_HOST_GPU_CLIENT_DELEGATE_H_
diff --git a/components/viz/test/data/blending_and_filter.png b/components/viz/test/data/blending_and_filter.png
deleted file mode 100644
index f231475f3..0000000
--- a/components/viz/test/data/blending_and_filter.png
+++ /dev/null
Binary files differ
diff --git a/components/viz/test/data/blending_render_pass.png b/components/viz/test/data/blending_render_pass.png
deleted file mode 100644
index 9186864..0000000
--- a/components/viz/test/data/blending_render_pass.png
+++ /dev/null
Binary files differ
diff --git a/components/viz/test/data/blending_render_pass_mask.png b/components/viz/test/data/blending_render_pass_mask.png
deleted file mode 100644
index 21d792a..0000000
--- a/components/viz/test/data/blending_render_pass_mask.png
+++ /dev/null
Binary files differ
diff --git a/components/viz/test/data/blending_transparent.png b/components/viz/test/data/blending_transparent.png
deleted file mode 100644
index f98607e4..0000000
--- a/components/viz/test/data/blending_transparent.png
+++ /dev/null
Binary files differ
diff --git a/components/viz/test/data/blending_with_root.png b/components/viz/test/data/blending_with_root.png
deleted file mode 100644
index 276df1d7..0000000
--- a/components/viz/test/data/blending_with_root.png
+++ /dev/null
Binary files differ
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index d4d9634f..65ebf2aa 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -136,6 +136,7 @@
     "//services/device/public/mojom:generic_sensor",
     "//services/file:lib",
     "//services/file/public/mojom",
+    "//services/media_session/public/mojom",
     "//services/metrics",
     "//services/metrics/public/cpp:metrics_cpp",
     "//services/network:network_service",
@@ -878,9 +879,7 @@
     "gpu/browser_gpu_client_delegate.h",
     "gpu/compositor_util.cc",
     "gpu/compositor_util.h",
-    "gpu/gpu_client_delegate.h",
-    "gpu/gpu_client_impl.cc",
-    "gpu/gpu_client_impl.h",
+    "gpu/gpu_client.cc",
     "gpu/gpu_data_manager_impl.cc",
     "gpu/gpu_data_manager_impl.h",
     "gpu/gpu_data_manager_impl_private.cc",
@@ -1147,7 +1146,6 @@
     "media/session/audio_focus_manager.h",
     "media/session/audio_focus_observer.cc",
     "media/session/audio_focus_observer.h",
-    "media/session/audio_focus_type.h",
     "media/session/media_metadata_sanitizer.cc",
     "media/session/media_metadata_sanitizer.h",
     "media/session/media_session_android.cc",
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index 2e0f37f..3e3c05ed 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -2279,6 +2279,7 @@
   return base::SysUTF16ToNSString(owner_->GetValue());
 }
 
+// TODO(crbug.com/865101) Remove this once the autofill state works.
 - (BOOL)isFocusedInputWithSuggestions {
   if (!owner_->IsPlainTextField())
     return false;
@@ -2291,6 +2292,8 @@
 - (NSNumber*)valueAutofillAvailable {
   if (![self instanceActive])
     return nil;
+  // TODO(crbug.com/865101) Use this instead:
+  // return owner_->HasState(ax::mojom::State::kAutofillAvailable) ? @YES : @NO;
   return [self isFocusedInputWithSuggestions] ? @YES : @NO;
 }
 
diff --git a/content/browser/accessibility/dump_accessibility_browsertest_base.cc b/content/browser/accessibility/dump_accessibility_browsertest_base.cc
index c97d5c9..76f0cce 100644
--- a/content/browser/accessibility/dump_accessibility_browsertest_base.cc
+++ b/content/browser/accessibility/dump_accessibility_browsertest_base.cc
@@ -213,7 +213,7 @@
   base::FilePath expected_file;
   std::string expected_contents_raw;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     base::ReadFileToString(file_path, &html_contents);
 
     // Read the expected file.
diff --git a/content/browser/accessibility/dump_accessibility_events_browsertest.cc b/content/browser/accessibility/dump_accessibility_events_browsertest.cc
index 3d3fd4a..b914cec 100644
--- a/content/browser/accessibility/dump_accessibility_events_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_events_browsertest.cc
@@ -155,7 +155,7 @@
   base::FilePath test_path = GetTestFilePath("accessibility", "event");
 
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::PathExists(test_path)) << test_path.LossyDisplayName();
   }
 
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index a09888fda..898af5d 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -77,7 +77,7 @@
   void RunAriaTest(const base::FilePath::CharType* file_path) {
     base::FilePath test_path = GetTestFilePath("accessibility", "aria");
     {
-      base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+      base::ScopedAllowBlockingForTesting allow_blocking;
       ASSERT_TRUE(base::PathExists(test_path)) << test_path.LossyDisplayName();
     }
     base::FilePath aria_file = test_path.Append(base::FilePath(file_path));
@@ -88,7 +88,7 @@
   void RunAomTest(const base::FilePath::CharType* file_path) {
     base::FilePath test_path = GetTestFilePath("accessibility", "aom");
     {
-      base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+      base::ScopedAllowBlockingForTesting allow_blocking;
       ASSERT_TRUE(base::PathExists(test_path)) << test_path.LossyDisplayName();
     }
     base::FilePath aom_file = test_path.Append(base::FilePath(file_path));
@@ -99,7 +99,7 @@
   void RunCSSTest(const base::FilePath::CharType* file_path) {
     base::FilePath test_path = GetTestFilePath("accessibility", "css");
     {
-      base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+      base::ScopedAllowBlockingForTesting allow_blocking;
       ASSERT_TRUE(base::PathExists(test_path)) << test_path.LossyDisplayName();
     }
     base::FilePath css_file = test_path.Append(base::FilePath(file_path));
@@ -110,7 +110,7 @@
   void RunHtmlTest(const base::FilePath::CharType* file_path) {
     base::FilePath test_path = GetTestFilePath("accessibility", "html");
     {
-      base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+      base::ScopedAllowBlockingForTesting allow_blocking;
       ASSERT_TRUE(base::PathExists(test_path)) << test_path.LossyDisplayName();
     }
     base::FilePath html_file = test_path.Append(base::FilePath(file_path));
diff --git a/content/browser/background_fetch/background_fetch_data_manager.h b/content/browser/background_fetch/background_fetch_data_manager.h
index 3bf92cd..253831a 100644
--- a/content/browser/background_fetch/background_fetch_data_manager.h
+++ b/content/browser/background_fetch/background_fetch_data_manager.h
@@ -73,7 +73,6 @@
                               const BackgroundFetchRegistration&)>;
   using NextRequestCallback =
       base::OnceCallback<void(scoped_refptr<BackgroundFetchRequestInfo>)>;
-  using NumRequestsCallback = base::OnceCallback<void(size_t)>;
 
   BackgroundFetchDataManager(
       BrowserContext* browser_context,
diff --git a/content/browser/background_fetch/background_fetch_data_manager_unittest.cc b/content/browser/background_fetch/background_fetch_data_manager_unittest.cc
index ae78170..6ef08fc2 100644
--- a/content/browser/background_fetch/background_fetch_data_manager_unittest.cc
+++ b/content/browser/background_fetch/background_fetch_data_manager_unittest.cc
@@ -452,7 +452,7 @@
       operation_ptr_vec[0]->request = request;
 
       handle.value()->BatchOperation(
-          std::move(operation_ptr_vec),
+          std::move(operation_ptr_vec), true /* fail_on_duplicates */,
           base::BindOnce(&BackgroundFetchDataManagerTest::DidDeleteFromCache,
                          base::Unretained(this), run_loop.QuitClosure()),
           base::DoNothing());
diff --git a/content/browser/browser_child_process_host_impl.cc b/content/browser/browser_child_process_host_impl.cc
index 9a003419..993ba40 100644
--- a/content/browser/browser_child_process_host_impl.cc
+++ b/content/browser/browser_child_process_host_impl.cc
@@ -277,6 +277,7 @@
                  weak_factory_.GetWeakPtr(),
                  base::ThreadTaskRunnerHandle::Get()),
       terminate_on_shutdown));
+  ShareMetricsAllocatorToProcess();
 }
 
 const ChildProcessData& BrowserChildProcessHostImpl::GetData() const {
@@ -389,7 +390,6 @@
   delegate_->OnChannelConnected(peer_pid);
 
   if (IsProcessLaunched()) {
-    ShareMetricsAllocatorToProcess();
     BrowserThread::PostTask(
         BrowserThread::UI, FROM_HERE,
         base::BindOnce(&NotifyProcessLaunchedAndConnected, data_.Duplicate()));
@@ -608,7 +608,6 @@
   delegate_->OnProcessLaunched();
 
   if (is_channel_connected_) {
-    ShareMetricsAllocatorToProcess();
     BrowserThread::PostTask(
         BrowserThread::UI, FROM_HERE,
         base::BindOnce(&NotifyProcessLaunchedAndConnected, data_.Duplicate()));
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
index d8a7aaf4..a8dc1e7 100644
--- a/content/browser/browser_main_loop.cc
+++ b/content/browser/browser_main_loop.cc
@@ -298,12 +298,8 @@
   VLOG(0) << "Completed startup tracing to " << trace_file.value();
 }
 
-// Disable optimizations for this block of functions so the compiler doesn't
-// merge them all together. This makes it possible to tell what thread was
-// unresponsive by inspecting the callstack.
-MSVC_DISABLE_OPTIMIZE()
-MSVC_PUSH_DISABLE_WARNING(4748)
-
+// Tell compiler not to inline this function so it's possible to tell what
+// thread was unresponsive by inspecting the callstack.
 NOINLINE void ResetThread_IO(
     std::unique_ptr<BrowserProcessSubThread> io_thread) {
   const int line_number = __LINE__;
@@ -311,9 +307,6 @@
   base::debug::Alias(&line_number);
 }
 
-MSVC_POP_WARNING()
-MSVC_ENABLE_OPTIMIZE();
-
 #if defined(OS_WIN)
 // Creates a memory pressure monitor using automatic thresholds, or those
 // specified on the command-line. Ownership is passed to the caller.
diff --git a/content/browser/browser_process_sub_thread.cc b/content/browser/browser_process_sub_thread.cc
index ac099a0..9172012 100644
--- a/content/browser/browser_process_sub_thread.cc
+++ b/content/browser/browser_process_sub_thread.cc
@@ -161,10 +161,8 @@
   }
 }
 
-// We disable optimizations for Run specifications so the compiler doesn't merge
-// them all together.
-MSVC_DISABLE_OPTIMIZE()
-MSVC_PUSH_DISABLE_WARNING(4748)
+// Mark following two functions as NOINLINE so the compiler doesn't merge
+// them together.
 
 NOINLINE void BrowserProcessSubThread::UIThreadRun(base::RunLoop* run_loop) {
   const int line_number = __LINE__;
@@ -178,9 +176,6 @@
   base::debug::Alias(&line_number);
 }
 
-MSVC_POP_WARNING()
-MSVC_ENABLE_OPTIMIZE();
-
 void BrowserProcessSubThread::IOThreadCleanUp() {
   DCHECK_CALLED_ON_VALID_THREAD(browser_thread_checker_);
 
diff --git a/content/browser/browser_side_navigation_browsertest.cc b/content/browser/browser_side_navigation_browsertest.cc
index b4cf78fe..852370d 100644
--- a/content/browser/browser_side_navigation_browsertest.cc
+++ b/content/browser/browser_side_navigation_browsertest.cc
@@ -422,7 +422,7 @@
       shell()->web_contents()->GetMainFrame());
 
   // Prepare a file for the upload form.
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_temp_dir;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   base::ScopedTempDir temp_dir;
   base::FilePath file_path;
   std::string file_content("test-file-content");
diff --git a/content/browser/cache_storage/cache_storage_cache.cc b/content/browser/cache_storage/cache_storage_cache.cc
index 2b2797e..b22fb32e 100644
--- a/content/browser/cache_storage/cache_storage_cache.cc
+++ b/content/browser/cache_storage/cache_storage_cache.cc
@@ -168,6 +168,63 @@
   return true;
 }
 
+// Check batch operation list for duplicate entries.
+bool HasDuplicateOperations(
+    const std::vector<blink::mojom::BatchOperationPtr>& operations) {
+  using blink::mojom::BatchOperation;
+
+  if (operations.size() < 2) {
+    return false;
+  }
+
+  // Create a temporary sorted vector of the operations to support quickly
+  // finding potentially duplicate entries.  Multiple entries may have the
+  // same URL, but differ by VARY header, so a sorted list is easier to
+  // work with than a map.
+  //
+  // Note, this will use 512 bytes of stack space on 64-bit devices.  The
+  // static size attempts to accommodate most typical Cache.addAll() uses in
+  // service worker install events while not blowing up the stack too much.
+  base::StackVector<BatchOperation*, 64> sorted;
+  sorted->reserve(operations.size());
+  for (const auto& op : operations) {
+    sorted->push_back(op.get());
+  }
+  std::sort(sorted->begin(), sorted->end(),
+            [](BatchOperation* left, BatchOperation* right) {
+              return left->request.url < right->request.url;
+            });
+
+  // Check each entry in the sorted vector for any duplicates.  Since the
+  // list is sorted we only need to inspect the immediate neighbors that
+  // have the same URL.  This results in an average complexity of O(n log n).
+  // If the entire list has entries with the same URL and different VARY
+  // headers then this devolves into O(n^2).
+  for (auto outer = sorted->cbegin(); outer != sorted->cend(); ++outer) {
+    const BatchOperation* outer_op = *outer;
+    for (auto inner = std::next(outer); inner != sorted->cend(); ++inner) {
+      const BatchOperation* inner_op = *inner;
+      // Since the list is sorted we can stop looking at neighbors after
+      // the first different URL.
+      if (outer_op->request.url != inner_op->request.url) {
+        break;
+      }
+      // VaryMatches() is asymmetric since the operation depends on the VARY
+      // header in the target response.  Since we only visit each pair of
+      // entries once we need to perform the VaryMatches() call in both
+      // directions.
+      if (VaryMatches(outer_op->request.headers, inner_op->request.headers,
+                      inner_op->response->headers) ||
+          VaryMatches(outer_op->request.headers, inner_op->request.headers,
+                      outer_op->response->headers)) {
+        return true;
+      }
+    }
+  }
+
+  return false;
+}
+
 GURL RemoveQueryParam(const GURL& url) {
   url::Replacements<char> replacements;
   replacements.ClearQuery();
@@ -535,6 +592,7 @@
 
 void CacheStorageCache::BatchOperation(
     std::vector<blink::mojom::BatchOperationPtr> operations,
+    bool fail_on_duplicates,
     ErrorCallback callback,
     BadMessageCallback bad_message_callback) {
   if (backend_state_ == BACKEND_CLOSED) {
@@ -544,6 +602,30 @@
     return;
   }
 
+  // From BatchCacheOperations:
+  //
+  //   https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm
+  //
+  // "If the result of running Query Cache with operation’s request,
+  //  operation’s options, and addedItems is not empty, throw an
+  //  InvalidStateError DOMException."
+  //
+  // Note, the spec checks CacheQueryOptions like ignoreSearch, etc, but
+  // currently there is no way for script to trigger a batch operation with
+  // those set.  The only exposed API is addAll() which does not allow
+  // options to be passed.  Therefore, assume default options below.  This
+  // is enforced in the mojo interface by not passing any options arguments.
+  //
+  // Note, we are currently only rejecting on duplicates based on a feature
+  // flag while web compat is assessed.  (https://crbug.com/720919)
+
+  if (fail_on_duplicates && HasDuplicateOperations(operations)) {
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE, base::BindOnce(std::move(callback),
+                                  CacheStorageError::kErrorDuplicateOperation));
+    return;
+  }
+
   // Estimate the required size of the put operations. The size of the deletes
   // is unknown and not considered.
   base::CheckedNumeric<uint64_t> safe_space_required = 0;
diff --git a/content/browser/cache_storage/cache_storage_cache.h b/content/browser/cache_storage/cache_storage_cache.h
index 16b89bc..6e5ce62 100644
--- a/content/browser/cache_storage/cache_storage_cache.h
+++ b/content/browser/cache_storage/cache_storage_cache.h
@@ -144,6 +144,7 @@
   // TODO(nhiroki): This function should run all operations atomically.
   // http://crbug.com/486637
   void BatchOperation(std::vector<blink::mojom::BatchOperationPtr> operations,
+                      bool fail_on_duplicates,
                       ErrorCallback callback,
                       BadMessageCallback bad_message_callback);
   void BatchDidGetUsageAndQuota(
diff --git a/content/browser/cache_storage/cache_storage_cache_unittest.cc b/content/browser/cache_storage/cache_storage_cache_unittest.cc
index 4a2b0f49..60286cb9 100644
--- a/content/browser/cache_storage/cache_storage_cache_unittest.cc
+++ b/content/browser/cache_storage/cache_storage_cache_unittest.cc
@@ -495,11 +495,12 @@
   }
 
   CacheStorageError BatchOperation(
-      std::vector<blink::mojom::BatchOperationPtr> operations) {
+      std::vector<blink::mojom::BatchOperationPtr> operations,
+      bool fail_on_duplicates = true) {
     std::unique_ptr<base::RunLoop> loop(new base::RunLoop());
 
     cache_->BatchOperation(
-        std::move(operations),
+        std::move(operations), fail_on_duplicates,
         base::BindOnce(&CacheStorageCacheTest::ErrorTypeCallback,
                        base::Unretained(this), base::Unretained(loop.get())),
         base::BindOnce(&OnBadMessage, base::Unretained(&bad_message_reason_)));
@@ -897,7 +898,7 @@
   operations.emplace_back(std::move(operation));
   std::unique_ptr<base::RunLoop> loop(new base::RunLoop());
   cache_->BatchOperation(
-      std::move(operations),
+      std::move(operations), true /* fail_on_duplicate */,
       base::BindOnce(&CacheStorageCacheTestP::ErrorTypeCallback,
                      base::Unretained(this), base::Unretained(loop.get())),
       CacheStorageCache::BadMessageCallback());
@@ -910,15 +911,17 @@
 }
 
 TEST_P(CacheStorageCacheTestP, PutBadMessage) {
+  // Two unique puts that will collectively overflow unit64_t size of the
+  // batch operation.
   blink::mojom::BatchOperationPtr operation1 =
       blink::mojom::BatchOperation::New(blink::mojom::OperationType::kPut,
                                         body_request_, CreateBlobBodyResponse(),
                                         nullptr /* match_params */);
   operation1->response->blob->size = std::numeric_limits<uint64_t>::max();
   blink::mojom::BatchOperationPtr operation2 =
-      blink::mojom::BatchOperation::New(blink::mojom::OperationType::kPut,
-                                        body_request_, CreateBlobBodyResponse(),
-                                        nullptr /* match_params */);
+      blink::mojom::BatchOperation::New(
+          blink::mojom::OperationType::kPut, body_request_with_query_,
+          CreateBlobBodyResponse(), nullptr /* match_params */);
   operation2->response->blob->size = std::numeric_limits<uint64_t>::max();
 
   std::vector<blink::mojom::BatchOperationPtr> operations;
@@ -945,7 +948,7 @@
   EXPECT_FALSE(callback_response_->blob);
 }
 
-TEST_P(CacheStorageCacheTestP, PutReplaceInBatch) {
+TEST_P(CacheStorageCacheTestP, PutReplaceInBatchFails) {
   blink::mojom::BatchOperationPtr operation1 =
       blink::mojom::BatchOperation::New();
   operation1->operation_type = blink::mojom::OperationType::kPut;
@@ -962,7 +965,33 @@
   operations.push_back(std::move(operation1));
   operations.push_back(std::move(operation2));
 
-  EXPECT_EQ(CacheStorageError::kSuccess, BatchOperation(std::move(operations)));
+  EXPECT_EQ(CacheStorageError::kErrorDuplicateOperation,
+            BatchOperation(std::move(operations)));
+
+  // Neither operation should have completed.
+  EXPECT_FALSE(Match(body_request_));
+}
+
+TEST_P(CacheStorageCacheTestP, PutReplaceInBatchWithDuplicateCheckingDisabled) {
+  blink::mojom::BatchOperationPtr operation1 =
+      blink::mojom::BatchOperation::New();
+  operation1->operation_type = blink::mojom::OperationType::kPut;
+  operation1->request = body_request_;
+  operation1->response = CreateNoBodyResponse();
+
+  blink::mojom::BatchOperationPtr operation2 =
+      blink::mojom::BatchOperation::New();
+  operation2->operation_type = blink::mojom::OperationType::kPut;
+  operation2->request = body_request_;
+  operation2->response = CreateBlobBodyResponse();
+
+  std::vector<blink::mojom::BatchOperationPtr> operations;
+  operations.push_back(std::move(operation1));
+  operations.push_back(std::move(operation2));
+
+  EXPECT_EQ(
+      CacheStorageError::kSuccess,
+      BatchOperation(std::move(operations), false /* fail_on_duplicates */));
 
   // |operation2| should win.
   EXPECT_TRUE(Match(body_request_));
@@ -1892,7 +1921,7 @@
   std::vector<blink::mojom::BatchOperationPtr> operations1;
   operations1.emplace_back(std::move(operation1));
   cache_->BatchOperation(
-      std::move(operations1),
+      std::move(operations1), true /* fail_on_duplicate */,
       base::BindOnce(&CacheStorageCacheTest::SequenceCallback,
                      base::Unretained(this), 1, &sequence_out,
                      close_loop1.get()),
@@ -1912,7 +1941,7 @@
   std::vector<blink::mojom::BatchOperationPtr> operations2;
   operations2.emplace_back(std::move(operation2));
   cache_->BatchOperation(
-      std::move(operations2),
+      std::move(operations2), true /* fail_on_duplicate */,
       base::BindOnce(&CacheStorageCacheTest::SequenceCallback,
                      base::Unretained(this), 2, &sequence_out,
                      close_loop2.get()),
diff --git a/content/browser/cache_storage/cache_storage_dispatcher_host.cc b/content/browser/cache_storage/cache_storage_dispatcher_host.cc
index 63b9d6a..c2882a4 100644
--- a/content/browser/cache_storage/cache_storage_dispatcher_host.cc
+++ b/content/browser/cache_storage/cache_storage_dispatcher_host.cc
@@ -168,6 +168,7 @@
   }
 
   void Batch(std::vector<blink::mojom::BatchOperationPtr> batch_operations,
+             bool fail_on_duplicates,
              BatchCallback callback) override {
     content::CacheStorageCache* cache = cache_handle_.value();
     if (!cache) {
@@ -175,7 +176,7 @@
       return;
     }
     cache->BatchOperation(
-        std::move(batch_operations),
+        std::move(batch_operations), fail_on_duplicates,
         base::BindOnce(&CacheImpl::OnCacheBatchCallback,
                        weak_factory_.GetWeakPtr(), std::move(callback)),
         base::BindOnce(&CacheImpl::OnBadMessage, weak_factory_.GetWeakPtr(),
diff --git a/content/browser/cache_storage/cache_storage_manager_unittest.cc b/content/browser/cache_storage/cache_storage_manager_unittest.cc
index d1e328f3..44220d0 100644
--- a/content/browser/cache_storage/cache_storage_manager_unittest.cc
+++ b/content/browser/cache_storage/cache_storage_manager_unittest.cc
@@ -495,7 +495,7 @@
     operations.emplace_back(std::move(operation));
     base::RunLoop loop;
     cache->BatchOperation(
-        std::move(operations),
+        std::move(operations), true /* fail_on_duplicate */,
         base::BindOnce(&CacheStorageManagerTest::CachePutCallback,
                        base::Unretained(this), base::Unretained(&loop)),
         CacheStorageCache::BadMessageCallback());
@@ -518,7 +518,7 @@
     operations.emplace_back(std::move(operation));
     base::RunLoop loop;
     cache->BatchOperation(
-        std::move(operations),
+        std::move(operations), true /* fail_on_duplicate */,
         base::BindOnce(&CacheStorageManagerTest::CacheDeleteCallback,
                        base::Unretained(this), base::Unretained(&loop)),
         CacheStorageCache::BadMessageCallback());
diff --git a/content/browser/cross_site_transfer_browsertest.cc b/content/browser/cross_site_transfer_browsertest.cc
index 104842f..28626c31 100644
--- a/content/browser/cross_site_transfer_browsertest.cc
+++ b/content/browser/cross_site_transfer_browsertest.cc
@@ -288,7 +288,7 @@
   EXPECT_TRUE(NavigateToURL(shell(), form_url));
 
   // Prepare a file to upload.
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_temp_dir;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   base::ScopedTempDir temp_dir;
   base::FilePath file_path;
   std::string file_content("test-file-content");
@@ -381,7 +381,7 @@
             form_contents->GetMainFrame()->GetProcess()->GetID());
 
   // Prepare a file to upload.
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_temp_dir;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   base::ScopedTempDir temp_dir;
   base::FilePath file_path;
   std::string file_content("test-file-content");
diff --git a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc b/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
index aa29868..5567dd78 100644
--- a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
+++ b/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
@@ -2438,7 +2438,7 @@
     std::string file_contents;
 
     {
-      base::ThreadRestrictions::ScopedAllowIO allow_io_during_test_verification;
+      base::ScopedAllowBlockingForTesting allow_blocking;
       bool read = base::ReadFileToString(path, &file_contents);
       EXPECT_TRUE(read) << "Failed reading file: " << path.value() << std::endl;
       if (!read)
diff --git a/content/browser/download/download_browsertest.cc b/content/browser/download/download_browsertest.cc
index 58882960..3ae60d75 100644
--- a/content/browser/download/download_browsertest.cc
+++ b/content/browser/download/download_browsertest.cc
@@ -869,7 +869,7 @@
     std::string file_contents;
 
     {
-      base::ThreadRestrictions::ScopedAllowIO allow_io_during_test_verification;
+      base::ScopedAllowBlockingForTesting allow_blocking;
       bool read = base::ReadFileToString(path, &file_contents);
       EXPECT_TRUE(read) << "Failed reading file: " << path.value() << std::endl;
       if (!read)
@@ -906,14 +906,14 @@
   }
 
   static bool PathExists(const base::FilePath& path) {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_during_test_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     return base::PathExists(path);
   }
 
   static void ReadAndVerifyFileContents(int seed,
                                         int64_t expected_size,
                                         const base::FilePath& path) {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_during_test_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     base::File file(path, base::File::FLAG_OPEN | base::File::FLAG_READ);
     ASSERT_TRUE(file.IsValid());
     int64_t file_length = file.GetLength();
@@ -1812,7 +1812,7 @@
 
   // Delete the intermediate file.
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_testing;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(PathExists(download->GetFullPath()));
     ASSERT_TRUE(base::DeleteFile(download->GetFullPath(), false));
   }
@@ -2360,7 +2360,7 @@
   std::string output = TestDownloadHttpResponse::GetPatternBytes(
       parameters.pattern_generator_seed, 0, kIntermediateSize);
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_EQ(kIntermediateSize, base::WriteFile(intermediate_file_path,
                                                  output.data(), output.size()));
   }
@@ -2413,7 +2413,7 @@
   std::string output = TestDownloadHttpResponse::GetPatternBytes(
       parameters.pattern_generator_seed + 1, 0, kIntermediateSize);
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_EQ(kIntermediateSize, base::WriteFile(intermediate_file_path,
                                                  output.data(), output.size()));
   }
@@ -2467,7 +2467,7 @@
   std::string output = TestDownloadHttpResponse::GetPatternBytes(
       parameters.pattern_generator_seed, 0, kIntermediateSize);
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_EQ(kIntermediateSize, base::WriteFile(intermediate_file_path,
                                                  output.data(), output.size()));
   }
@@ -2532,7 +2532,7 @@
   const int kIntermediateSize = 1331;
   std::vector<char> buffer(kIntermediateSize);
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_EQ(kIntermediateSize, base::WriteFile(intermediate_file_path,
                                                  buffer.data(), buffer.size()));
   }
@@ -2614,7 +2614,7 @@
   std::string output = TestDownloadHttpResponse::GetPatternBytes(
       parameters.pattern_generator_seed, 0, kIntermediateSize - 100);
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_EQ(
         kIntermediateSize - 100,
         base::WriteFile(intermediate_file_path, output.data(), output.size()));
@@ -2687,7 +2687,7 @@
   std::string output = TestDownloadHttpResponse::GetPatternBytes(
       parameters.pattern_generator_seed, 0, kIntermediateSize + 100);
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_EQ(
         kIntermediateSize + 100,
         base::WriteFile(intermediate_file_path, output.data(), output.size()));
@@ -3189,7 +3189,7 @@
 }
 
 IN_PROC_BROWSER_TEST_F(DownloadContentTest, DownloadAttributeSameSiteCookie) {
-  base::ThreadRestrictions::ScopedAllowIO allow_io_during_test;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   net::EmbeddedTestServer test_server;
   ASSERT_TRUE(test_server.InitializeAndListen());
 
diff --git a/content/browser/download/mhtml_generation_browsertest.cc b/content/browser/download/mhtml_generation_browsertest.cc
index 4fe15df..5d8e517f 100644
--- a/content/browser/download/mhtml_generation_browsertest.cc
+++ b/content/browser/download/mhtml_generation_browsertest.cc
@@ -150,7 +150,7 @@
   }
 
   int64_t ReadFileSizeFromDisk(base::FilePath path) {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_to_test_file_size;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     int64_t file_size;
     if (!base::GetFileSize(path, &file_size)) return -1;
     return file_size;
@@ -250,7 +250,7 @@
   EXPECT_GT(ReadFileSizeFromDisk(path), 100);  // Verify the actual file size.
 
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     std::string mhtml;
     ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
     EXPECT_THAT(mhtml,
@@ -412,7 +412,7 @@
   EXPECT_GT(ReadFileSizeFromDisk(path), 100);  // Verify the actual file size.
 
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     std::string mhtml;
     ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
     EXPECT_THAT(mhtml, HasSubstr("Content-Transfer-Encoding: base64"));
@@ -439,7 +439,7 @@
   EXPECT_GT(ReadFileSizeFromDisk(path), 100);  // Verify the actual file size.
 
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     std::string mhtml;
     ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
     EXPECT_THAT(mhtml, HasSubstr("Content-Transfer-Encoding: binary"));
@@ -461,7 +461,7 @@
 
   std::string mhtml;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
   }
 
@@ -489,7 +489,7 @@
 
   std::string mhtml;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
   }
 
@@ -520,7 +520,7 @@
 
   std::string mhtml;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
   }
 
@@ -547,7 +547,7 @@
 
   std::string mhtml;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
   }
 
@@ -590,7 +590,7 @@
 
   std::string mhtml;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(params.file_path, &mhtml));
   }
 }
@@ -617,7 +617,7 @@
 
   std::string mhtml;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(params.file_path, &mhtml));
   }
 }
@@ -658,7 +658,7 @@
 
   std::string mhtml;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
   }
 
@@ -687,7 +687,7 @@
 
   std::string mhtml;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
   }
 
@@ -728,7 +728,7 @@
 
   std::string mhtml;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_content_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(path, &mhtml));
   }
 
diff --git a/content/browser/geolocation/geolocation_service_impl.cc b/content/browser/geolocation/geolocation_service_impl.cc
index 342e68a..6bd7410 100644
--- a/content/browser/geolocation/geolocation_service_impl.cc
+++ b/content/browser/geolocation/geolocation_service_impl.cc
@@ -7,7 +7,6 @@
 #include "content/browser/permissions/permission_controller_impl.h"
 #include "content/public/browser/permission_type.h"
 #include "content/public/browser/render_frame_host.h"
-#include "content/public/common/content_features.h"
 #include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom.h"
 
 namespace content {
@@ -72,8 +71,7 @@
 void GeolocationServiceImpl::CreateGeolocation(
     mojo::InterfaceRequest<device::mojom::Geolocation> request,
     bool user_gesture) {
-  if (base::FeatureList::IsEnabled(features::kUseFeaturePolicyForPermissions) &&
-      !render_frame_host_->IsFeatureEnabled(
+  if (!render_frame_host_->IsFeatureEnabled(
           blink::mojom::FeaturePolicyFeature::kGeolocation)) {
     return;
   }
diff --git a/content/browser/geolocation/geolocation_service_impl_unittest.cc b/content/browser/geolocation/geolocation_service_impl_unittest.cc
index fab1efd2..3c9d772 100644
--- a/content/browser/geolocation/geolocation_service_impl_unittest.cc
+++ b/content/browser/geolocation/geolocation_service_impl_unittest.cc
@@ -13,7 +13,6 @@
 #include "content/public/browser/permission_controller.h"
 #include "content/public/browser/permission_type.h"
 #include "content/public/browser/site_isolation_policy.h"
-#include "content/public/common/content_features.h"
 #include "content/public/common/service_manager_connection.h"
 #include "content/public/test/mock_permission_manager.h"
 #include "content/public/test/navigation_simulator.h"
@@ -166,9 +165,6 @@
   }
 
   // The embedded frame is not whitelisted.
-  ScopedFeatureList feature_list;
-  feature_list.InitFromCommandLine(
-      features::kUseFeaturePolicyForPermissions.name, std::string());
   CreateEmbeddedFrameAndGeolocationService(/*allow_via_feature_policy=*/false);
 
   permission_manager()->SetRequestCallback(
@@ -197,9 +193,6 @@
   }
 
   // Whitelist the embedded frame.
-  ScopedFeatureList feature_list;
-  feature_list.InitFromCommandLine(
-      features::kUseFeaturePolicyForPermissions.name, std::string());
   CreateEmbeddedFrameAndGeolocationService(/*allow_via_feature_policy=*/true);
 
   permission_manager()->SetRequestCallback(
diff --git a/content/browser/gpu/browser_gpu_client_delegate.cc b/content/browser/gpu/browser_gpu_client_delegate.cc
index 53663d8..b6327743 100644
--- a/content/browser/gpu/browser_gpu_client_delegate.cc
+++ b/content/browser/gpu/browser_gpu_client_delegate.cc
@@ -14,7 +14,7 @@
 namespace {
 
 void OnEstablishGpuChannel(
-    GpuClientDelegate::EstablishGpuChannelCallback callback,
+    viz::GpuClientDelegate::EstablishGpuChannelCallback callback,
     mojo::ScopedMessagePipeHandle channel_handle,
     const gpu::GPUInfo& gpu_info,
     const gpu::GpuFeatureInfo& gpu_feature_info,
@@ -22,18 +22,19 @@
   if (!callback)
     return;
 
-  GpuClientDelegate::EstablishGpuChannelStatus delegate_status;
+  viz::GpuClientDelegate::EstablishGpuChannelStatus delegate_status;
   switch (status) {
     case GpuProcessHost::EstablishChannelStatus::GPU_ACCESS_DENIED:
       delegate_status =
-          GpuClientDelegate::EstablishGpuChannelStatus::kGpuAccessDenied;
+          viz::GpuClientDelegate::EstablishGpuChannelStatus::kGpuAccessDenied;
       break;
     case GpuProcessHost::EstablishChannelStatus::GPU_HOST_INVALID:
       delegate_status =
-          GpuClientDelegate::EstablishGpuChannelStatus::kGpuHostInvalid;
+          viz::GpuClientDelegate::EstablishGpuChannelStatus::kGpuHostInvalid;
       break;
     case GpuProcessHost::EstablishChannelStatus::SUCCESS:
-      delegate_status = GpuClientDelegate::EstablishGpuChannelStatus::kSuccess;
+      delegate_status =
+          viz::GpuClientDelegate::EstablishGpuChannelStatus::kSuccess;
       break;
   }
   std::move(callback).Run(std::move(channel_handle), gpu_info, gpu_feature_info,
diff --git a/content/browser/gpu/browser_gpu_client_delegate.h b/content/browser/gpu/browser_gpu_client_delegate.h
index 37fd18f6..18150dc 100644
--- a/content/browser/gpu/browser_gpu_client_delegate.h
+++ b/content/browser/gpu/browser_gpu_client_delegate.h
@@ -5,11 +5,11 @@
 #ifndef CONTENT_BROWSER_GPU_BROWSER_GPU_CLIENT_DELEGATE_H_
 #define CONTENT_BROWSER_GPU_BROWSER_GPU_CLIENT_DELEGATE_H_
 
-#include "content/browser/gpu/gpu_client_delegate.h"
+#include "components/viz/host/gpu_client_delegate.h"
 
 namespace content {
 
-class BrowserGpuClientDelegate : public GpuClientDelegate {
+class BrowserGpuClientDelegate : public viz::GpuClientDelegate {
  public:
   BrowserGpuClientDelegate();
   ~BrowserGpuClientDelegate() override;
diff --git a/content/browser/gpu/gpu_client.cc b/content/browser/gpu/gpu_client.cc
new file mode 100644
index 0000000..33fba31f
--- /dev/null
+++ b/content/browser/gpu/gpu_client.cc
@@ -0,0 +1,28 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/public/browser/gpu_client.h"
+
+#include "content/browser/gpu/browser_gpu_client_delegate.h"
+#include "content/common/child_process_host_impl.h"
+
+namespace content {
+
+std::unique_ptr<viz::GpuClient, base::OnTaskRunnerDeleter> CreateGpuClient(
+    ui::mojom::GpuRequest request,
+    viz::GpuClient::ConnectionErrorHandlerClosure connection_error_handler,
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
+  const int client_id = ChildProcessHostImpl::GenerateChildProcessUniqueId();
+  const uint64_t client_tracing_id =
+      ChildProcessHostImpl::ChildProcessUniqueIdToTracingProcessId(client_id);
+  std::unique_ptr<viz::GpuClient, base::OnTaskRunnerDeleter> gpu_client(
+      new viz::GpuClient(std::make_unique<BrowserGpuClientDelegate>(),
+                         client_id, client_tracing_id, task_runner),
+      base::OnTaskRunnerDeleter(task_runner));
+  gpu_client->SetConnectionErrorHandler(std::move(connection_error_handler));
+  gpu_client->Add(std::move(request));
+  return gpu_client;
+}
+
+}  // namespace content
diff --git a/content/browser/indexed_db/indexed_db_browsertest.cc b/content/browser/indexed_db/indexed_db_browsertest.cc
index 860e36a..e4f3274 100644
--- a/content/browser/indexed_db/indexed_db_browsertest.cc
+++ b/content/browser/indexed_db/indexed_db_browsertest.cc
@@ -420,7 +420,7 @@
   base::FilePath log_file_path =
       GetContext()->data_path().Append(leveldb_dir).Append(log_file);
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_verification;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     int64_t size;
     EXPECT_TRUE(base::GetFileSize(log_file_path, &size));
     EXPECT_GT(size, 0);
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc
index da35abf..35983462 100644
--- a/content/browser/loader/navigation_url_loader_impl.cc
+++ b/content/browser/loader/navigation_url_loader_impl.cc
@@ -800,11 +800,12 @@
     if (!base::FeatureList::IsEnabled(network::features::kNetworkService)) {
       DCHECK(!interceptors_.empty());
       DCHECK(default_request_handler_factory_);
-      // The only way to come here is to enable ServiceWorkerServicification
-      // without NetworkService. We know that the service worker's request
-      // interceptor has already intercepted and decided not to handle the
+      // The only way to come here is to enable ServiceWorkerServicification or
+      // SignedExchange without NetworkService. We know that their request
+      // interceptors have already intercepted and decided not to handle the
       // request.
-      DCHECK(blink::ServiceWorkerUtils::IsServicificationEnabled());
+      DCHECK(blink::ServiceWorkerUtils::IsServicificationEnabled() ||
+             signed_exchange_utils::IsSignedExchangeHandlingEnabled());
       default_loader_used_ = true;
       // Update |request_info_| when following a redirect.
       if (url_chain_.size() > 0) {
@@ -1212,6 +1213,8 @@
       if (interceptor->MaybeCreateLoaderForResponse(
               response, &response_url_loader_, &response_client_request,
               url_loader_.get())) {
+        if (response_loader_binding_.is_bound())
+          response_loader_binding_.Close();
         response_loader_binding_.Bind(std::move(response_client_request));
         default_loader_used_ = false;
         url_loader_.reset();
diff --git a/content/browser/locks/lock_manager.cc b/content/browser/locks/lock_manager.cc
index a7768d0..dc5384db 100644
--- a/content/browser/locks/lock_manager.cc
+++ b/content/browser/locks/lock_manager.cc
@@ -287,7 +287,7 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   if (wait == WaitMode::PREEMPT && mode != LockMode::EXCLUSIVE) {
-    mojo::ReportBadMessage("Invalid option combinaton");
+    mojo::ReportBadMessage("Invalid option combination");
     return;
   }
 
diff --git a/content/browser/media/media_devices_permission_checker.cc b/content/browser/media/media_devices_permission_checker.cc
index 6a8aee9..8c16627a 100644
--- a/content/browser/media/media_devices_permission_checker.cc
+++ b/content/browser/media/media_devices_permission_checker.cc
@@ -9,14 +9,12 @@
 
 #include "base/bind.h"
 #include "base/command_line.h"
-#include "base/feature_list.h"
 #include "content/browser/frame_host/render_frame_host_delegate.h"
 #include "content/browser/frame_host/render_frame_host_impl.h"
 #include "content/common/media/media_devices.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/render_process_host.h"
-#include "content/public/common/content_features.h"
 #include "content/public/common/content_switches.h"
 #include "url/gurl.h"
 #include "url/origin.h"
@@ -43,12 +41,10 @@
       frame_host, origin, MEDIA_DEVICE_AUDIO_CAPTURE);
   bool mic_feature_policy = true;
   bool camera_feature_policy = true;
-  if (base::FeatureList::IsEnabled(features::kUseFeaturePolicyForPermissions)) {
-    mic_feature_policy = frame_host->IsFeatureEnabled(
-        blink::mojom::FeaturePolicyFeature::kMicrophone);
-    camera_feature_policy = frame_host->IsFeatureEnabled(
-        blink::mojom::FeaturePolicyFeature::kCamera);
-  }
+  mic_feature_policy = frame_host->IsFeatureEnabled(
+      blink::mojom::FeaturePolicyFeature::kMicrophone);
+  camera_feature_policy =
+      frame_host->IsFeatureEnabled(blink::mojom::FeaturePolicyFeature::kCamera);
 
   MediaDevicesManager::BoolDeviceTypes result;
   // Speakers.
diff --git a/content/browser/media/media_devices_permission_checker_unittest.cc b/content/browser/media/media_devices_permission_checker_unittest.cc
index 5e95d2b..bb82f2e 100644
--- a/content/browser/media/media_devices_permission_checker_unittest.cc
+++ b/content/browser/media/media_devices_permission_checker_unittest.cc
@@ -5,12 +5,10 @@
 #include "content/browser/media/media_devices_permission_checker.h"
 
 #include "base/run_loop.h"
-#include "base/test/scoped_feature_list.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_delegate.h"
-#include "content/public/common/content_features.h"
 #include "content/public/common/media_stream_request.h"
 #include "content/public/test/test_renderer_host.h"
 #include "content/test/test_render_view_host.h"
@@ -101,8 +99,6 @@
 // feature_policy_unittest.cc and in
 // render_frame_host_feature_policy_unittest.cc.
 TEST_F(MediaDevicesPermissionCheckerTest, CheckPermissionWithFeaturePolicy) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kUseFeaturePolicyForPermissions);
   // Mic and Camera should be enabled by default for a frame (if permission is
   // granted).
   EXPECT_TRUE(CheckPermission(MEDIA_DEVICE_TYPE_AUDIO_INPUT));
@@ -117,14 +113,6 @@
                                 /*enabled=*/false);
   EXPECT_TRUE(CheckPermission(MEDIA_DEVICE_TYPE_AUDIO_INPUT));
   EXPECT_FALSE(CheckPermission(MEDIA_DEVICE_TYPE_VIDEO_INPUT));
-
-  // Ensure that the policy is ignored if kUseFeaturePolicyForPermissions is
-  // disabled.
-  base::test::ScopedFeatureList empty_feature_list;
-  empty_feature_list.InitAndDisableFeature(
-      features::kUseFeaturePolicyForPermissions);
-  EXPECT_TRUE(CheckPermission(MEDIA_DEVICE_TYPE_AUDIO_INPUT));
-  EXPECT_TRUE(CheckPermission(MEDIA_DEVICE_TYPE_VIDEO_INPUT));
 }
 
 }  // namespace
diff --git a/content/browser/media/media_internals.cc b/content/browser/media/media_internals.cc
index 8762ea5..95cb7dc3 100644
--- a/content/browser/media/media_internals.cc
+++ b/content/browser/media/media_internals.cc
@@ -810,7 +810,7 @@
 
 #if !defined(OS_ANDROID)
 void MediaInternals::OnFocusGained(MediaSession* media_session,
-                                   AudioFocusType type) {
+                                   media_session::mojom::AudioFocusType type) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
diff --git a/content/browser/media/media_internals.h b/content/browser/media/media_internals.h
index 3f7f452..fb457d9 100644
--- a/content/browser/media/media_internals.h
+++ b/content/browser/media/media_internals.h
@@ -33,9 +33,13 @@
 struct MediaLogEvent;
 }
 
-namespace content {
-
+namespace media_session {
+namespace mojom {
 enum class AudioFocusType;
+}  // namespace mojom
+}  // namespace media_session
+
+namespace content {
 
 // This class stores information about currently active media.
 // TODO(crbug.com/812557): Remove inheritance from media::AudioLogFactory once
@@ -123,7 +127,8 @@
 
 #if !defined(OS_ANDROID)
   // AudioFocusObserver implementation.
-  void OnFocusGained(MediaSession* media_session, AudioFocusType type) override;
+  void OnFocusGained(MediaSession* media_session,
+                     media_session::mojom::AudioFocusType type) override;
   void OnFocusLost(MediaSession* media_session) override;
 #endif
 
diff --git a/content/browser/media/media_internals_unittest.cc b/content/browser/media/media_internals_unittest.cc
index 631e305..a591c7e4 100644
--- a/content/browser/media/media_internals_unittest.cc
+++ b/content/browser/media/media_internals_unittest.cc
@@ -17,7 +17,6 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "build/build_config.h"
 #include "content/browser/media/session/audio_focus_manager.h"
-#include "content/browser/media/session/audio_focus_type.h"
 #include "content/browser/media/session/media_session_impl.h"
 #include "content/public/test/test_browser_context.h"
 #include "content/public/test/test_browser_thread_bundle.h"
@@ -26,6 +25,7 @@
 #include "media/base/channel_layout.h"
 #include "media/base/media_log.h"
 #include "media/base/media_switches.h"
+#include "services/media_session/public/mojom/audio_focus.mojom.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/gfx/geometry/size.h"
@@ -104,6 +104,8 @@
 
 namespace content {
 
+using AudioFocusType = media_session::mojom::AudioFocusType;
+
 class MediaInternalsVideoCaptureDeviceTest : public testing::Test,
                                              public MediaInternalsTestBase {
  public:
@@ -352,7 +354,7 @@
   std::unique_ptr<TestWebContents> web_contents1 = CreateWebContents();
   web_contents1->SetTitle(base::UTF8ToUTF16(kTestTitle1));
   MediaSessionImpl* media_session1 = MediaSessionImpl::Get(web_contents1.get());
-  media_session1->RequestSystemAudioFocus(AudioFocusType::Gain);
+  media_session1->RequestSystemAudioFocus(AudioFocusType::kGain);
   base::RunLoop().RunUntilIdle();
 
   // Check JSON is what we expect.
@@ -371,7 +373,8 @@
   std::unique_ptr<TestWebContents> web_contents2 = CreateWebContents();
   web_contents2->SetTitle(base::UTF8ToUTF16(kTestTitle2));
   MediaSessionImpl* media_session2 = MediaSessionImpl::Get(web_contents2.get());
-  media_session2->RequestSystemAudioFocus(AudioFocusType::GainTransientMayDuck);
+  media_session2->RequestSystemAudioFocus(
+      AudioFocusType::kGainTransientMayDuck);
   base::RunLoop().RunUntilIdle();
 
   // Check JSON is what we expect.
diff --git a/content/browser/media/session/audio_focus_delegate.h b/content/browser/media/session/audio_focus_delegate.h
index 4feaefa3..03d7935 100644
--- a/content/browser/media/session/audio_focus_delegate.h
+++ b/content/browser/media/session/audio_focus_delegate.h
@@ -7,9 +7,14 @@
 
 #include "content/browser/media/session/audio_focus_manager.h"
 
+namespace media_session {
+namespace mojom {
+enum class AudioFocusType;
+}  // namespace mojom
+}  // namespace media_session
+
 namespace content {
 
-enum class AudioFocusType;
 class MediaSessionImpl;
 
 // AudioFocusDelegate is an interface abstracting audio focus handling for the
@@ -22,7 +27,8 @@
 
   virtual ~AudioFocusDelegate() = default;
 
-  virtual bool RequestAudioFocus(AudioFocusType audio_focus_type) = 0;
+  virtual bool RequestAudioFocus(
+      media_session::mojom::AudioFocusType audio_focus_type) = 0;
   virtual void AbandonAudioFocus() = 0;
 };
 
diff --git a/content/browser/media/session/audio_focus_delegate_android.cc b/content/browser/media/session/audio_focus_delegate_android.cc
index d2ddbcb..9aa7b0a 100644
--- a/content/browser/media/session/audio_focus_delegate_android.cc
+++ b/content/browser/media/session/audio_focus_delegate_android.cc
@@ -5,9 +5,9 @@
 #include "content/browser/media/session/audio_focus_delegate_android.h"
 
 #include "base/android/jni_android.h"
-#include "content/browser/media/session/audio_focus_type.h"
 #include "content/browser/media/session/media_session_impl.h"
 #include "jni/AudioFocusDelegate_jni.h"
+#include "services/media_session/public/mojom/audio_focus.mojom.h"
 
 using base::android::JavaParamRef;
 
@@ -31,12 +31,13 @@
 }
 
 bool AudioFocusDelegateAndroid::RequestAudioFocus(
-    AudioFocusType audio_focus_type) {
+    media_session::mojom::AudioFocusType audio_focus_type) {
   JNIEnv* env = base::android::AttachCurrentThread();
   DCHECK(env);
   return Java_AudioFocusDelegate_requestAudioFocus(
       env, j_media_session_delegate_,
-      audio_focus_type == AudioFocusType::GainTransientMayDuck);
+      audio_focus_type ==
+          media_session::mojom::AudioFocusType::kGainTransientMayDuck);
 }
 
 void AudioFocusDelegateAndroid::AbandonAudioFocus() {
diff --git a/content/browser/media/session/audio_focus_delegate_android.h b/content/browser/media/session/audio_focus_delegate_android.h
index b91e71ee..c25ee5c1 100644
--- a/content/browser/media/session/audio_focus_delegate_android.h
+++ b/content/browser/media/session/audio_focus_delegate_android.h
@@ -10,6 +10,12 @@
 #include "base/android/scoped_java_ref.h"
 #include "content/browser/media/session/audio_focus_delegate.h"
 
+namespace media_session {
+namespace mojom {
+enum class AudioFocusType;
+}  // namespace mojom
+}  // namespace media_session
+
 namespace content {
 
 enum class AudioFocusType;
@@ -23,7 +29,8 @@
 
   void Initialize();
 
-  bool RequestAudioFocus(AudioFocusType audio_focus_type) override;
+  bool RequestAudioFocus(
+      media_session::mojom::AudioFocusType audio_focus_type) override;
   void AbandonAudioFocus() override;
 
   // Called when the Android system requests the MediaSession to be suspended.
diff --git a/content/browser/media/session/audio_focus_delegate_default.cc b/content/browser/media/session/audio_focus_delegate_default.cc
index 381d4b5..97ab22673 100644
--- a/content/browser/media/session/audio_focus_delegate_default.cc
+++ b/content/browser/media/session/audio_focus_delegate_default.cc
@@ -6,11 +6,13 @@
 
 #include "base/command_line.h"
 #include "content/browser/media/session/audio_focus_manager.h"
-#include "content/browser/media/session/audio_focus_type.h"
 #include "media/base/media_switches.h"
+#include "services/media_session/public/mojom/audio_focus.mojom.h"
 
 namespace content {
 
+using AudioFocusType = media_session::mojom::AudioFocusType;
+
 namespace {
 
 // AudioFocusDelegateDefault is the default implementation of
diff --git a/content/browser/media/session/audio_focus_manager.cc b/content/browser/media/session/audio_focus_manager.cc
index 13921aa..9142164 100644
--- a/content/browser/media/session/audio_focus_manager.cc
+++ b/content/browser/media/session/audio_focus_manager.cc
@@ -5,12 +5,14 @@
 #include "content/browser/media/session/audio_focus_manager.h"
 
 #include "content/browser/media/session/audio_focus_observer.h"
-#include "content/browser/media/session/audio_focus_type.h"
 #include "content/browser/media/session/media_session_impl.h"
 #include "content/public/browser/web_contents.h"
+#include "services/media_session/public/mojom/audio_focus.mojom.h"
 
 namespace content {
 
+using AudioFocusType = media_session::mojom::AudioFocusType;
+
 // static
 AudioFocusManager* AudioFocusManager::GetInstance() {
   return base::Singleton<AudioFocusManager>::get();
@@ -34,7 +36,7 @@
   // too much. Maybe it's better to do some abstraction and refactoring to clean
   // up the relation between AudioFocusManager and MediaSessionImpl.
   // See https://crbug.com/651069
-  if (type == AudioFocusType::GainTransientMayDuck) {
+  if (type == AudioFocusType::kGainTransientMayDuck) {
     for (auto* old_session : audio_focus_stack_) {
       old_session->StartDucking();
     }
diff --git a/content/browser/media/session/audio_focus_manager.h b/content/browser/media/session/audio_focus_manager.h
index 1380c8c..744f24a 100644
--- a/content/browser/media/session/audio_focus_manager.h
+++ b/content/browser/media/session/audio_focus_manager.h
@@ -12,9 +12,14 @@
 #include "content/common/content_export.h"
 #include "content/public/browser/web_contents_observer.h"
 
+namespace media_session {
+namespace mojom {
+enum class AudioFocusType;
+}  // namespace mojom
+}  // namespace media_session
+
 namespace content {
 
-enum class AudioFocusType;
 class AudioFocusObserver;
 class MediaSessionImpl;
 
@@ -23,7 +28,8 @@
   // Returns Chromium's internal AudioFocusManager.
   static AudioFocusManager* GetInstance();
 
-  void RequestAudioFocus(MediaSessionImpl* media_session, AudioFocusType type);
+  void RequestAudioFocus(MediaSessionImpl* media_session,
+                         media_session::mojom::AudioFocusType type);
 
   void AbandonAudioFocus(MediaSessionImpl* media_session);
 
diff --git a/content/browser/media/session/audio_focus_manager_unittest.cc b/content/browser/media/session/audio_focus_manager_unittest.cc
index 2317c884..d740d1e 100644
--- a/content/browser/media/session/audio_focus_manager_unittest.cc
+++ b/content/browser/media/session/audio_focus_manager_unittest.cc
@@ -9,7 +9,6 @@
 #include "base/command_line.h"
 #include "base/run_loop.h"
 #include "content/browser/media/session/audio_focus_observer.h"
-#include "content/browser/media/session/audio_focus_type.h"
 #include "content/browser/media/session/media_session_impl.h"
 #include "content/browser/media/session/media_session_player_observer.h"
 #include "content/public/test/mock_render_process_host.h"
@@ -18,10 +17,13 @@
 #include "content/test/test_web_contents.h"
 #include "media/base/media_content_type.h"
 #include "media/base/media_switches.h"
+#include "services/media_session/public/mojom/audio_focus.mojom.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
 namespace content {
 
+using AudioFocusType = media_session::mojom::AudioFocusType;
+
 namespace {
 
 class MockAudioFocusObserver : public AudioFocusObserver {
@@ -74,7 +76,7 @@
         AudioFocusManager::GetInstance()->audio_focus_stack_;
     for (auto iter = audio_focus_stack.rbegin();
          iter != audio_focus_stack.rend(); ++iter) {
-      if ((*iter)->audio_focus_type() == AudioFocusType::Gain)
+      if ((*iter)->audio_focus_type() == AudioFocusType::kGain)
         return (*iter);
     }
     return nullptr;
@@ -86,7 +88,7 @@
         AudioFocusManager::GetInstance()->audio_focus_stack_;
     for (auto iter = audio_focus_stack.rbegin();
          iter != audio_focus_stack.rend(); ++iter) {
-      if ((*iter)->audio_focus_type() == AudioFocusType::GainTransientMayDuck)
+      if ((*iter)->audio_focus_type() == AudioFocusType::kGainTransientMayDuck)
         ++count;
       else
         break;
@@ -143,13 +145,13 @@
 
   ASSERT_EQ(nullptr, GetAudioFocusedSession());
 
-  RequestAudioFocus(media_session_1, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_1, AudioFocusType::kGain);
   ASSERT_EQ(media_session_1, GetAudioFocusedSession());
 
-  RequestAudioFocus(media_session_2, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_2, AudioFocusType::kGain);
   ASSERT_EQ(media_session_2, GetAudioFocusedSession());
 
-  RequestAudioFocus(media_session_3, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_3, AudioFocusType::kGain);
   ASSERT_EQ(media_session_3, GetAudioFocusedSession());
 }
 
@@ -159,10 +161,10 @@
 
   ASSERT_EQ(nullptr, GetAudioFocusedSession());
 
-  RequestAudioFocus(media_session, AudioFocusType::Gain);
+  RequestAudioFocus(media_session, AudioFocusType::kGain);
   ASSERT_EQ(media_session, GetAudioFocusedSession());
 
-  RequestAudioFocus(media_session, AudioFocusType::Gain);
+  RequestAudioFocus(media_session, AudioFocusType::kGain);
   ASSERT_EQ(media_session, GetAudioFocusedSession());
 }
 
@@ -170,11 +172,11 @@
   std::unique_ptr<WebContents> web_contents(CreateWebContents());
   MediaSessionImpl* media_session = MediaSessionImpl::Get(web_contents.get());
 
-  RequestAudioFocus(media_session, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session, AudioFocusType::kGainTransientMayDuck);
   ASSERT_EQ(nullptr, GetAudioFocusedSession());
   ASSERT_EQ(1, GetTransientMaybeDuckCount());
 
-  RequestAudioFocus(media_session, AudioFocusType::Gain);
+  RequestAudioFocus(media_session, AudioFocusType::kGain);
   ASSERT_EQ(media_session, GetAudioFocusedSession());
   ASSERT_EQ(0, GetTransientMaybeDuckCount());
 }
@@ -183,11 +185,11 @@
   std::unique_ptr<WebContents> web_contents(CreateWebContents());
   MediaSessionImpl* media_session = MediaSessionImpl::Get(web_contents.get());
 
-  RequestAudioFocus(media_session, AudioFocusType::Gain);
+  RequestAudioFocus(media_session, AudioFocusType::kGain);
   ASSERT_EQ(media_session, GetAudioFocusedSession());
   ASSERT_EQ(0, GetTransientMaybeDuckCount());
 
-  RequestAudioFocus(media_session, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session, AudioFocusType::kGainTransientMayDuck);
   ASSERT_EQ(nullptr, GetAudioFocusedSession());
   ASSERT_EQ(1, GetTransientMaybeDuckCount());
   ASSERT_FALSE(IsSessionDucking(media_session));
@@ -202,15 +204,15 @@
   MediaSessionImpl* media_session_2 =
       MediaSessionImpl::Get(web_contents_2.get());
 
-  RequestAudioFocus(media_session_1, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_1, AudioFocusType::kGain);
   ASSERT_EQ(0, GetTransientMaybeDuckCount());
   ASSERT_FALSE(IsSessionDucking(media_session_1));
 
-  RequestAudioFocus(media_session_2, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session_2, AudioFocusType::kGainTransientMayDuck);
   ASSERT_EQ(1, GetTransientMaybeDuckCount());
   ASSERT_TRUE(IsSessionDucking(media_session_1));
 
-  RequestAudioFocus(media_session_1, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session_1, AudioFocusType::kGainTransientMayDuck);
   ASSERT_EQ(2, GetTransientMaybeDuckCount());
   ASSERT_FALSE(IsSessionDucking(media_session_1));
 }
@@ -219,7 +221,7 @@
   std::unique_ptr<WebContents> web_contents(CreateWebContents());
   MediaSessionImpl* media_session = MediaSessionImpl::Get(web_contents.get());
 
-  RequestAudioFocus(media_session, AudioFocusType::Gain);
+  RequestAudioFocus(media_session, AudioFocusType::kGain);
   ASSERT_EQ(media_session, GetAudioFocusedSession());
 
   AbandonAudioFocus(media_session);
@@ -238,7 +240,7 @@
   std::unique_ptr<WebContents> web_contents(CreateWebContents());
   MediaSessionImpl* media_session = MediaSessionImpl::Get(web_contents.get());
 
-  RequestAudioFocus(media_session, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session, AudioFocusType::kGainTransientMayDuck);
   ASSERT_EQ(1, GetTransientMaybeDuckCount());
 
   MockAudioFocusObserver observer;
@@ -257,11 +259,11 @@
   MediaSessionImpl* media_session_2 =
       MediaSessionImpl::Get(web_contents_2.get());
 
-  RequestAudioFocus(media_session_1, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_1, AudioFocusType::kGain);
   ASSERT_EQ(0, GetTransientMaybeDuckCount());
   ASSERT_FALSE(IsSessionDucking(media_session_1));
 
-  RequestAudioFocus(media_session_2, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session_2, AudioFocusType::kGainTransientMayDuck);
   ASSERT_EQ(1, GetTransientMaybeDuckCount());
   ASSERT_TRUE(IsSessionDucking(media_session_1));
 
@@ -271,7 +273,7 @@
   AbandonAudioFocus(media_session_2);
   ASSERT_EQ(0, GetTransientMaybeDuckCount());
 
-  RequestAudioFocus(media_session_1, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_1, AudioFocusType::kGain);
   ASSERT_FALSE(IsSessionDucking(media_session_1));
 }
 
@@ -284,11 +286,11 @@
   MediaSessionImpl* media_session_2 =
       MediaSessionImpl::Get(web_contents_2.get());
 
-  RequestAudioFocus(media_session_1, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_1, AudioFocusType::kGain);
   ASSERT_EQ(0, GetTransientMaybeDuckCount());
   ASSERT_FALSE(IsSessionDucking(media_session_1));
 
-  RequestAudioFocus(media_session_2, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session_2, AudioFocusType::kGainTransientMayDuck);
   ASSERT_EQ(1, GetTransientMaybeDuckCount());
   ASSERT_TRUE(IsSessionDucking(media_session_1));
 
@@ -306,10 +308,10 @@
   MediaSessionImpl* media_session_2 =
       MediaSessionImpl::Get(web_contents_2.get());
 
-  RequestAudioFocus(media_session_1, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_1, AudioFocusType::kGain);
   ASSERT_FALSE(IsSessionDucking(media_session_1));
 
-  RequestAudioFocus(media_session_2, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session_2, AudioFocusType::kGainTransientMayDuck);
   ASSERT_TRUE(IsSessionDucking(media_session_1));
 }
 
@@ -322,9 +324,9 @@
   MediaSessionImpl* media_session_2 =
       MediaSessionImpl::Get(web_contents_2.get());
 
-  RequestAudioFocus(media_session_2, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session_2, AudioFocusType::kGainTransientMayDuck);
 
-  RequestAudioFocus(media_session_1, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_1, AudioFocusType::kGain);
   ASSERT_TRUE(media_session_2->IsSuspended());
 }
 
@@ -341,13 +343,13 @@
   MediaSessionImpl* media_session_3 =
       MediaSessionImpl::Get(web_contents_3.get());
 
-  RequestAudioFocus(media_session_1, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_1, AudioFocusType::kGain);
   ASSERT_FALSE(IsSessionDucking(media_session_1));
 
-  RequestAudioFocus(media_session_2, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session_2, AudioFocusType::kGainTransientMayDuck);
   ASSERT_TRUE(IsSessionDucking(media_session_1));
 
-  RequestAudioFocus(media_session_3, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session_3, AudioFocusType::kGainTransientMayDuck);
   ASSERT_TRUE(IsSessionDucking(media_session_1));
 
   AbandonAudioFocus(media_session_2);
@@ -361,7 +363,7 @@
   std::unique_ptr<WebContents> web_contents(CreateWebContents());
   MediaSessionImpl* media_session = MediaSessionImpl::Get(web_contents.get());
 
-  RequestAudioFocus(media_session, AudioFocusType::Gain);
+  RequestAudioFocus(media_session, AudioFocusType::kGain);
   ASSERT_EQ(media_session, GetAudioFocusedSession());
 
   web_contents.reset();
@@ -372,7 +374,7 @@
   std::unique_ptr<WebContents> web_contents(CreateWebContents());
   MediaSessionImpl* media_session = MediaSessionImpl::Get(web_contents.get());
 
-  RequestAudioFocus(media_session, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session, AudioFocusType::kGainTransientMayDuck);
   ASSERT_EQ(1, GetTransientMaybeDuckCount());
 
   web_contents.reset();
@@ -388,10 +390,10 @@
   MediaSessionImpl* media_session_2 =
       MediaSessionImpl::Get(web_contents_2.get());
 
-  RequestAudioFocus(media_session_1, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_1, AudioFocusType::kGain);
   ASSERT_FALSE(IsSessionDucking(media_session_1));
 
-  RequestAudioFocus(media_session_2, AudioFocusType::GainTransientMayDuck);
+  RequestAudioFocus(media_session_2, AudioFocusType::kGainTransientMayDuck);
   ASSERT_TRUE(IsSessionDucking(media_session_1));
 
   web_contents_2.reset();
@@ -422,7 +424,7 @@
   media_session_1->AddPlayer(
       pepper_observer_.get(), 0, media::MediaContentType::Pepper);
 
-  RequestAudioFocus(media_session_2, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_2, AudioFocusType::kGain);
 
   ASSERT_EQ(media_session_2, GetAudioFocusedSession());
   ASSERT_TRUE(media_session_1->IsActive());
@@ -445,8 +447,8 @@
   media_session_1->AddPlayer(
       pepper_observer_.get(), 0, media::MediaContentType::Pepper);
 
-  RequestAudioFocus(media_session_2, AudioFocusType::Gain);
-  RequestAudioFocus(media_session_3, AudioFocusType::Gain);
+  RequestAudioFocus(media_session_2, AudioFocusType::kGain);
+  RequestAudioFocus(media_session_3, AudioFocusType::kGain);
 
   ASSERT_EQ(media_session_3, GetAudioFocusedSession());
   ASSERT_TRUE(media_session_2->IsSuspended());
@@ -474,15 +476,15 @@
   std::unique_ptr<WebContents> web_contents(CreateWebContents());
   MediaSessionImpl* media_session = MediaSessionImpl::Get(web_contents.get());
 
-  RequestAudioFocus(media_session, AudioFocusType::Gain);
+  RequestAudioFocus(media_session, AudioFocusType::kGain);
   EXPECT_EQ(media_session, GetAudioFocusedSession());
 
   {
     MockAudioFocusObserver observer;
-    EXPECT_CALL(observer, OnFocusGained(media_session, AudioFocusType::Gain))
+    EXPECT_CALL(observer, OnFocusGained(media_session, AudioFocusType::kGain))
         .Times(0);
 
-    RequestAudioFocus(media_session, AudioFocusType::Gain);
+    RequestAudioFocus(media_session, AudioFocusType::kGain);
     EXPECT_EQ(media_session, GetAudioFocusedSession());
   }
 }
@@ -494,9 +496,9 @@
   {
     MockAudioFocusObserver observer;
     EXPECT_CALL(observer, OnFocusGained(media_session,
-                                        AudioFocusType::GainTransientMayDuck));
+                                        AudioFocusType::kGainTransientMayDuck));
 
-    RequestAudioFocus(media_session, AudioFocusType::GainTransientMayDuck);
+    RequestAudioFocus(media_session, AudioFocusType::kGainTransientMayDuck);
     EXPECT_EQ(1, GetTransientMaybeDuckCount());
   }
 
diff --git a/content/browser/media/session/audio_focus_observer.h b/content/browser/media/session/audio_focus_observer.h
index ff66057..8b2b245 100644
--- a/content/browser/media/session/audio_focus_observer.h
+++ b/content/browser/media/session/audio_focus_observer.h
@@ -8,9 +8,14 @@
 #include "base/macros.h"
 #include "content/common/content_export.h"
 
+namespace media_session {
+namespace mojom {
+enum class AudioFocusType;
+}  // namespace mojom
+}  // namespace media_session
+
 namespace content {
 
-enum class AudioFocusType;
 class MediaSession;
 
 // The observer for observing audio focus events. This will not work on Android
@@ -21,7 +26,8 @@
   ~AudioFocusObserver();
 
   // The given |MediaSession| gained audio focus with the specified type.
-  virtual void OnFocusGained(MediaSession*, AudioFocusType) = 0;
+  virtual void OnFocusGained(MediaSession*,
+                             media_session::mojom::AudioFocusType) = 0;
 
   // The given |NediaSession| lost audio focus.
   virtual void OnFocusLost(MediaSession*) = 0;
diff --git a/content/browser/media/session/audio_focus_type.h b/content/browser/media/session/audio_focus_type.h
deleted file mode 100644
index 8772599e..0000000
--- a/content/browser/media/session/audio_focus_type.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_MEDIA_SESSION_AUDIO_FOCUS_TYPE_H_
-#define CONTENT_BROWSER_MEDIA_SESSION_AUDIO_FOCUS_TYPE_H_
-
-namespace content {
-
-// The different types of audio focus a MediaSession can request.
-enum class AudioFocusType {
-  // When a media session requests the Gain audio focus type the following will
-  // happen:
-  //  - any existing media sessions will be suspended.
-  //  - any pepper media sessions will be ducked.
-  // In most cases media sessions should request this type.
-  Gain,
-
-  // When a media session requests the GainTransientMayDuck audio focus type it
-  // will duck any existing media sessions. This is useful for short lived audio
-  // that needs to play over existing audio e.g. notifications.
-  GainTransientMayDuck,
-};
-
-}  // namespace content
-
-#endif  // CONTENT_BROWSER_MEDIA_SESSION_AUDIO_FOCUS_TYPE_H_
diff --git a/content/browser/media/session/media_session_android.cc b/content/browser/media/session/media_session_android.cc
index 80c72d7..e110c52 100644
--- a/content/browser/media/session/media_session_android.cc
+++ b/content/browser/media/session/media_session_android.cc
@@ -6,13 +6,13 @@
 
 #include "base/android/jni_array.h"
 #include "base/time/time.h"
-#include "content/browser/media/session/audio_focus_type.h"
 #include "content/browser/media/session/media_session_impl.h"
 #include "content/browser/web_contents/web_contents_android.h"
 #include "content/browser/web_contents/web_contents_impl.h"
 #include "content/common/android/media_metadata_android.h"
 #include "content/public/browser/media_session.h"
 #include "jni/MediaSessionImpl_jni.h"
+#include "services/media_session/public/mojom/audio_focus.mojom.h"
 
 namespace content {
 
@@ -168,7 +168,7 @@
     const base::android::JavaParamRef<jobject>& j_obj) {
   DCHECK(media_session());
   static_cast<MediaSessionImpl*>(media_session())
-      ->RequestSystemAudioFocus(AudioFocusType::Gain);
+      ->RequestSystemAudioFocus(media_session::mojom::AudioFocusType::kGain);
 }
 
 WebContentsAndroid* MediaSessionAndroid::GetWebContentsAndroid() {
diff --git a/content/browser/media/session/media_session_impl.cc b/content/browser/media/session/media_session_impl.cc
index 679602d..1d7602f 100644
--- a/content/browser/media/session/media_session_impl.cc
+++ b/content/browser/media/session/media_session_impl.cc
@@ -9,7 +9,6 @@
 #include "base/numerics/ranges.h"
 #include "base/strings/string_util.h"
 #include "content/browser/media/session/audio_focus_delegate.h"
-#include "content/browser/media/session/audio_focus_type.h"
 #include "content/browser/media/session/media_session_controller.h"
 #include "content/browser/media/session/media_session_player_observer.h"
 #include "content/browser/media/session/media_session_service_impl.h"
@@ -19,6 +18,7 @@
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
 #include "media/base/media_content_type.h"
+#include "services/media_session/public/mojom/audio_focus.mojom.h"
 #include "third_party/blink/public/platform/modules/mediasession/media_session.mojom.h"
 
 #if defined(OS_ANDROID)
@@ -89,6 +89,8 @@
 
 }  // anonymous namespace
 
+using AudioFocusType = media_session::mojom::AudioFocusType;
+
 using MediaSessionSuspendedSource =
     MediaSessionUmaHelper::MediaSessionSuspendedSource;
 
@@ -210,16 +212,16 @@
 
   AudioFocusType required_audio_focus_type;
   if (media_content_type == media::MediaContentType::Persistent)
-    required_audio_focus_type = AudioFocusType::Gain;
+    required_audio_focus_type = AudioFocusType::kGain;
   else
-    required_audio_focus_type = AudioFocusType::GainTransientMayDuck;
+    required_audio_focus_type = AudioFocusType::kGainTransientMayDuck;
 
   // If the audio focus is already granted and is of type Content, there is
   // nothing to do. If it is granted of type Transient the requested type is
   // also transient, there is also nothing to do. Otherwise, the session needs
   // to request audio focus again.
   if (audio_focus_state_ == State::ACTIVE &&
-      (audio_focus_type_ == AudioFocusType::Gain ||
+      (audio_focus_type_ == AudioFocusType::kGain ||
        audio_focus_type_ == required_audio_focus_type)) {
     normal_players_.insert(PlayerIdentifier(observer, player_id));
     return true;
@@ -421,7 +423,8 @@
   // inactive. Also, the session will be uncontrollable if it contains one-shot
   // players.
   return audio_focus_state_ != State::INACTIVE &&
-         audio_focus_type_ == AudioFocusType::Gain && one_shot_players_.empty();
+         audio_focus_type_ == AudioFocusType::kGain &&
+         one_shot_players_.empty();
 }
 
 bool MediaSessionImpl::IsActuallyPaused() const {
@@ -570,7 +573,7 @@
 MediaSessionImpl::MediaSessionImpl(WebContents* web_contents)
     : WebContentsObserver(web_contents),
       audio_focus_state_(State::INACTIVE),
-      audio_focus_type_(AudioFocusType::GainTransientMayDuck),
+      audio_focus_type_(AudioFocusType::kGainTransientMayDuck),
       is_ducking_(false),
       ducking_volume_multiplier_(kDefaultDuckingVolumeMultiplier),
       routed_service_(nullptr) {
@@ -665,7 +668,7 @@
 
 bool MediaSessionImpl::AddPepperPlayer(MediaSessionPlayerObserver* observer,
                                        int player_id) {
-  bool success = RequestSystemAudioFocus(AudioFocusType::Gain);
+  bool success = RequestSystemAudioFocus(AudioFocusType::kGain);
   DCHECK(success);
 
   pepper_players_.insert(PlayerIdentifier(observer, player_id));
@@ -678,7 +681,7 @@
 
 bool MediaSessionImpl::AddOneShotPlayer(MediaSessionPlayerObserver* observer,
                                         int player_id) {
-  if (!RequestSystemAudioFocus(AudioFocusType::Gain))
+  if (!RequestSystemAudioFocus(AudioFocusType::kGain))
     return false;
 
   one_shot_players_.insert(PlayerIdentifier(observer, player_id));
diff --git a/content/browser/media/session/media_session_impl.h b/content/browser/media/session/media_session_impl.h
index 0e73ddc..514c140 100644
--- a/content/browser/media/session/media_session_impl.h
+++ b/content/browser/media/session/media_session_impl.h
@@ -34,6 +34,12 @@
 enum class MediaContentType;
 }  // namespace media
 
+namespace media_session {
+namespace mojom {
+enum class AudioFocusType;
+}  // namespace mojom
+}  // namespace media_session
+
 namespace content {
 
 class AudioFocusDelegate;
@@ -46,8 +52,6 @@
 class MediaSessionServiceImpl;
 class MediaSessionServiceImplBrowserTest;
 
-enum class AudioFocusType;
-
 #if defined(OS_ANDROID)
 class MediaSessionAndroid;
 #endif  // defined(OS_ANDROID)
@@ -165,7 +169,7 @@
 
   // Returns the audio focus type. The type is updated everytime after the
   // session requests audio focus.
-  CONTENT_EXPORT AudioFocusType audio_focus_type() const {
+  CONTENT_EXPORT media_session::mojom::AudioFocusType audio_focus_type() const {
     return audio_focus_type_;
   }
 
@@ -203,7 +207,8 @@
 
   // Requests audio focus to the AudioFocusDelegate.
   // Returns whether the request was granted.
-  CONTENT_EXPORT bool RequestSystemAudioFocus(AudioFocusType audio_focus_type);
+  CONTENT_EXPORT bool RequestSystemAudioFocus(
+      media_session::mojom::AudioFocusType audio_focus_type);
 
   // Returns debugging information to be displayed on chrome://media-internals.
   struct DebugInfo {
@@ -311,7 +316,7 @@
 
   State audio_focus_state_;
   MediaSession::SuspendType suspend_type_;
-  AudioFocusType audio_focus_type_;
+  media_session::mojom::AudioFocusType audio_focus_type_;
 
   MediaSessionUmaHelper uma_helper_;
 
diff --git a/content/browser/media/session/media_session_impl_browsertest.cc b/content/browser/media/session/media_session_impl_browsertest.cc
index 34a6c72..9e0730d 100644
--- a/content/browser/media/session/media_session_impl_browsertest.cc
+++ b/content/browser/media/session/media_session_impl_browsertest.cc
@@ -16,7 +16,6 @@
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/simple_test_tick_clock.h"
 #include "content/browser/media/session/audio_focus_delegate.h"
-#include "content/browser/media/session/audio_focus_type.h"
 #include "content/browser/media/session/media_session_service_impl.h"
 #include "content/browser/media/session/mock_media_session_observer.h"
 #include "content/browser/media/session/mock_media_session_player_observer.h"
@@ -25,6 +24,7 @@
 #include "content/public/test/content_browser_test.h"
 #include "content/shell/browser/shell.h"
 #include "media/base/media_content_type.h"
+#include "services/media_session/public/mojom/audio_focus.mojom.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
 using content::WebContents;
@@ -36,6 +36,8 @@
 using content::MediaSessionUmaHelper;
 using content::MockMediaSessionPlayerObserver;
 
+using AudioFocusType = media_session::mojom::AudioFocusType;
+
 using ::testing::Eq;
 using ::testing::Expectation;
 using ::testing::NiceMock;
@@ -53,7 +55,7 @@
     ON_CALL(*this, RequestAudioFocus(_)).WillByDefault(::testing::Return(true));
   }
 
-  MOCK_METHOD1(RequestAudioFocus, bool(content::AudioFocusType));
+  MOCK_METHOD1(RequestAudioFocus, bool(AudioFocusType));
   MOCK_METHOD0(AbandonAudioFocus, void());
 };
 
@@ -121,7 +123,7 @@
 
   bool IsActive() { return media_session_->IsActive(); }
 
-  content::AudioFocusType GetSessionAudioFocusType() {
+  AudioFocusType GetSessionAudioFocusType() {
     return media_session_->audio_focus_type();
   }
 
@@ -356,7 +358,7 @@
                        CanRequestFocusBeforePlayerCreation) {
   auto player_observer = std::make_unique<MockMediaSessionPlayerObserver>();
 
-  media_session_->RequestSystemAudioFocus(content::AudioFocusType::Gain);
+  media_session_->RequestSystemAudioFocus(AudioFocusType::kGain);
   EXPECT_TRUE(IsActive());
 
   StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
@@ -541,21 +543,19 @@
 
   // Starting a player with a given type should set the session to that type.
   StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
-  EXPECT_EQ(content::AudioFocusType::GainTransientMayDuck,
-            GetSessionAudioFocusType());
+  EXPECT_EQ(AudioFocusType::kGainTransientMayDuck, GetSessionAudioFocusType());
 
   // Adding a player of the same type should have no effect on the type.
   StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
-  EXPECT_EQ(content::AudioFocusType::GainTransientMayDuck,
-            GetSessionAudioFocusType());
+  EXPECT_EQ(AudioFocusType::kGainTransientMayDuck, GetSessionAudioFocusType());
 
   // Adding a player of Content type should override the current type.
   StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
-  EXPECT_EQ(content::AudioFocusType::Gain, GetSessionAudioFocusType());
+  EXPECT_EQ(AudioFocusType::kGain, GetSessionAudioFocusType());
 
   // Adding a player of the Transient type should have no effect on the type.
   StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
-  EXPECT_EQ(content::AudioFocusType::Gain, GetSessionAudioFocusType());
+  EXPECT_EQ(AudioFocusType::kGain, GetSessionAudioFocusType());
 
   EXPECT_TRUE(player_observer->IsPlaying(0));
   EXPECT_TRUE(player_observer->IsPlaying(1));
@@ -569,7 +569,7 @@
   EXPECT_FALSE(player_observer->IsPlaying(2));
   EXPECT_FALSE(player_observer->IsPlaying(3));
 
-  EXPECT_EQ(content::AudioFocusType::Gain, GetSessionAudioFocusType());
+  EXPECT_EQ(AudioFocusType::kGain, GetSessionAudioFocusType());
 
   SystemResume();
 
@@ -578,7 +578,7 @@
   EXPECT_TRUE(player_observer->IsPlaying(2));
   EXPECT_TRUE(player_observer->IsPlaying(3));
 
-  EXPECT_EQ(content::AudioFocusType::Gain, GetSessionAudioFocusType());
+  EXPECT_EQ(AudioFocusType::kGain, GetSessionAudioFocusType());
 }
 
 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ControlsShowForContent) {
@@ -1071,10 +1071,10 @@
   auto player_observer = std::make_unique<MockMediaSessionPlayerObserver>();
 
   EXPECT_CALL(*mock_audio_focus_delegate(),
-              RequestAudioFocus(content::AudioFocusType::Gain))
+              RequestAudioFocus(AudioFocusType::kGain))
       .Times(1);
   EXPECT_CALL(*mock_audio_focus_delegate(),
-              RequestAudioFocus(::testing::Ne(content::AudioFocusType::Gain)))
+              RequestAudioFocus(::testing::Ne(AudioFocusType::kGain)))
       .Times(0);
   StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot);
   StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
diff --git a/content/browser/renderer_host/browser_compositor_view_mac.h b/content/browser/renderer_host/browser_compositor_view_mac.h
index 254be13..0929304 100644
--- a/content/browser/renderer_host/browser_compositor_view_mac.h
+++ b/content/browser/renderer_host/browser_compositor_view_mac.h
@@ -13,10 +13,12 @@
 #include "components/viz/common/surfaces/parent_local_surface_id_allocator.h"
 #include "components/viz/common/surfaces/scoped_surface_id_allocator.h"
 #include "content/browser/renderer_host/delegated_frame_host.h"
+#include "content/public/common/screen_info.h"
 #include "ui/compositor/compositor.h"
 #include "ui/compositor/compositor_observer.h"
 #include "ui/compositor/layer_observer.h"
 #include "ui/display/display.h"
+#include "ui/gfx/ca_layer_params.h"
 
 namespace ui {
 class AcceleratedWidgetMacNSView;
diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc
index 85efab95..7ede8c7 100644
--- a/content/browser/renderer_host/delegated_frame_host.cc
+++ b/content/browser/renderer_host/delegated_frame_host.cc
@@ -168,19 +168,6 @@
                                                transformed_point);
 }
 
-bool DelegatedFrameHost::TransformPointToCoordSpaceForView(
-    const gfx::PointF& point,
-    RenderWidgetHostViewBase* target_view,
-    gfx::PointF* transformed_point,
-    viz::EventSource source) {
-  if (!HasFallbackSurface())
-    return false;
-
-  return target_view->TransformPointToLocalCoordSpace(
-      point, viz::SurfaceId(frame_sink_id_, active_local_surface_id_),
-      transformed_point, source);
-}
-
 void DelegatedFrameHost::SetNeedsBeginFrames(bool needs_begin_frames) {
   if (enable_viz_) {
     NOTIMPLEMENTED();
diff --git a/content/browser/renderer_host/delegated_frame_host.h b/content/browser/renderer_host/delegated_frame_host.h
index 87b9b923..dd7b574 100644
--- a/content/browser/renderer_host/delegated_frame_host.h
+++ b/content/browser/renderer_host/delegated_frame_host.h
@@ -17,8 +17,6 @@
 #include "components/viz/host/host_frame_sink_client.h"
 #include "content/browser/compositor/image_transport_factory.h"
 #include "content/browser/renderer_host/dip_util.h"
-#include "content/browser/renderer_host/render_widget_host_impl.h"
-#include "content/browser/renderer_host/render_widget_host_view_base.h"
 #include "content/common/content_export.h"
 #include "services/viz/public/interfaces/compositing/compositor_frame_sink.mojom.h"
 #include "services/viz/public/interfaces/hit_test/hit_test_region_list.mojom.h"
@@ -146,17 +144,6 @@
       const viz::SurfaceId& original_surface,
       gfx::PointF* transformed_point);
 
-  // Given a RenderWidgetHostViewBase that renders to a Surface that is
-  // contained within this class' Surface, find the relative transform between
-  // the Surfaces and apply it to a point. Returns false if a Surface has not
-  // yet been created or if |target_view| is not a descendant RWHV from our
-  // client.
-  bool TransformPointToCoordSpaceForView(
-      const gfx::PointF& point,
-      RenderWidgetHostViewBase* target_view,
-      gfx::PointF* transformed_point,
-      viz::EventSource source = viz::EventSource::ANY);
-
   void SetNeedsBeginFrames(bool needs_begin_frames);
   void SetWantsAnimateOnlyBeginFrames();
   void DidNotProduceFrame(const viz::BeginFrameAck& ack);
diff --git a/content/browser/renderer_host/input/fling_controller_unittest.cc b/content/browser/renderer_host/input/fling_controller_unittest.cc
index ec85c9c1..50163e39 100644
--- a/content/browser/renderer_host/input/fling_controller_unittest.cc
+++ b/content/browser/renderer_host/input/fling_controller_unittest.cc
@@ -282,8 +282,10 @@
   EXPECT_EQ(WebInputEvent::kGestureScrollEnd, last_sent_gesture_.GetType());
 }
 
+// TDOO(http://crbug.com/875777): We should do use better comparison method for
+// floating point numbers.
 TEST_F(FlingControllerTest,
-       EarlyTouchpadFlingCancelationOnInertialGSUAckNotConsumed) {
+       DISABLED_EarlyTouchpadFlingCancelationOnInertialGSUAckNotConsumed) {
   base::TimeTicks progress_time = base::TimeTicks::Now();
   SimulateFlingStart(blink::kWebGestureDeviceTouchpad, gfx::Vector2dF(1000, 0));
   EXPECT_TRUE(FlingInProgress());
diff --git a/content/browser/renderer_host/media/media_stream_ui_proxy.cc b/content/browser/renderer_host/media/media_stream_ui_proxy.cc
index 6220f3a..43c3b83d 100644
--- a/content/browser/renderer_host/media/media_stream_ui_proxy.cc
+++ b/content/browser/renderer_host/media/media_stream_ui_proxy.cc
@@ -7,13 +7,11 @@
 #include <utility>
 
 #include "base/command_line.h"
-#include "base/feature_list.h"
 #include "base/macros.h"
 #include "content/browser/frame_host/frame_tree_node.h"
 #include "content/browser/frame_host/render_frame_host_delegate.h"
 #include "content/browser/frame_host/render_frame_host_impl.h"
 #include "content/public/browser/browser_thread.h"
-#include "content/public/common/content_features.h"
 #include "content/public/common/content_switches.h"
 #include "media/capture/video/fake_video_capture_device.h"
 #include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom.h"
@@ -25,9 +23,6 @@
 bool IsFeatureEnabled(RenderFrameHost* rfh,
                       bool tests_use_fake_render_frame_hosts,
                       blink::mojom::FeaturePolicyFeature feature) {
-  if (!base::FeatureList::IsEnabled(features::kUseFeaturePolicyForPermissions))
-    return true;
-
   // Some tests don't (or can't) set up the RenderFrameHost. In these cases we
   // just ignore feature policy checks (there is no feature policy to test).
   if (!rfh && tests_use_fake_render_frame_hosts)
diff --git a/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc b/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc
index bd7a391c..54c050b 100644
--- a/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc
+++ b/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc
@@ -9,10 +9,8 @@
 
 #include "base/message_loop/message_loop.h"
 #include "base/run_loop.h"
-#include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
 #include "content/browser/frame_host/render_frame_host_delegate.h"
-#include "content/public/common/content_features.h"
 #include "content/public/test/test_browser_thread.h"
 #include "content/test/test_render_frame_host.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -403,8 +401,6 @@
 };
 
 TEST_F(MediaStreamUIProxyFeaturePolicyTest, FeaturePolicy) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kUseFeaturePolicyForPermissions);
   MediaStreamDevices devices;
   MediaStreamRequestResult result;
 
@@ -448,19 +444,6 @@
       &devices, &result);
   EXPECT_EQ(MEDIA_DEVICE_PERMISSION_DENIED, result);
   ASSERT_EQ(0u, devices.size());
-
-  // Ensure that the policy is ignored if kUseFeaturePolicyForPermissions is
-  // disabled.
-  base::test::ScopedFeatureList empty_feature_list;
-  empty_feature_list.InitAndDisableFeature(
-      features::kUseFeaturePolicyForPermissions);
-  GetResultForRequest(CreateRequest(main_rfh(), MEDIA_DEVICE_AUDIO_CAPTURE,
-                                    MEDIA_DEVICE_VIDEO_CAPTURE),
-                      &devices, &result);
-  EXPECT_EQ(MEDIA_DEVICE_OK, result);
-  ASSERT_EQ(2u, devices.size());
-  EXPECT_EQ(MEDIA_DEVICE_AUDIO_CAPTURE, devices[0].type);
-  EXPECT_EQ(MEDIA_DEVICE_VIDEO_CAPTURE, devices[1].type);
 }
 
 }  // namespace content
diff --git a/content/browser/renderer_host/media/service_video_capture_provider.cc b/content/browser/renderer_host/media/service_video_capture_provider.cc
index 52ae899..34445f2 100644
--- a/content/browser/renderer_host/media/service_video_capture_provider.cc
+++ b/content/browser/renderer_host/media/service_video_capture_provider.cc
@@ -4,7 +4,6 @@
 
 #include "content/browser/renderer_host/media/service_video_capture_provider.h"
 
-#include "content/browser/gpu/gpu_client_impl.h"
 #include "content/browser/renderer_host/media/service_video_capture_device_launcher.h"
 #include "content/browser/renderer_host/media/video_capture_dependencies.h"
 #include "content/browser/renderer_host/media/video_capture_factory_delegate.h"
diff --git a/content/browser/renderer_host/render_process_host_browsertest.cc b/content/browser/renderer_host/render_process_host_browsertest.cc
index c772552..b168086 100644
--- a/content/browser/renderer_host/render_process_host_browsertest.cc
+++ b/content/browser/renderer_host/render_process_host_browsertest.cc
@@ -136,38 +136,6 @@
   DISALLOW_COPY_AND_ASSIGN(NonSpareRendererContentBrowserClient);
 };
 
-// Sometimes the renderer process's ShutdownRequest (corresponding to the
-// ViewMsg_WasSwappedOut from a previous navigation) doesn't arrive until after
-// the browser process decides to re-use the renderer for a new purpose.  This
-// test makes sure the browser doesn't let the renderer die in that case.  See
-// http://crbug.com/87176.
-IN_PROC_BROWSER_TEST_F(RenderProcessHostTest,
-                       ShutdownRequestFromActiveTabIgnored) {
-  ASSERT_TRUE(embedded_test_server()->Start());
-
-  GURL test_url = embedded_test_server()->GetURL("/simple_page.html");
-  NavigateToURL(shell(), test_url);
-  RenderProcessHost* rph =
-      shell()->web_contents()->GetMainFrame()->GetProcess();
-
-  host_destructions_ = 0;
-  process_exits_ = 0;
-
-  rph->AddObserver(this);
-
-  static_cast<mojom::RendererHost*>(static_cast<RenderProcessHostImpl*>(rph))
-      ->ShutdownRequest();
-
-  // If the RPH sends a mistaken ProcessShutdown, the renderer process
-  // will take some time to die. Wait for a second tab to load in order to give
-  // that time to happen.
-  NavigateToURL(CreateBrowser(), test_url);
-
-  EXPECT_EQ(0, process_exits_);
-  if (!host_destructions_)
-    rph->RemoveObserver(this);
-}
-
 IN_PROC_BROWSER_TEST_F(RenderProcessHostTest,
                        GuestsAreNotSuitableHosts) {
   // Set max renderers to 1 to force running out of processes.
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 4e81b65..01489ef 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -65,6 +65,7 @@
 #include "components/metrics/single_sample_metrics.h"
 #include "components/tracing/common/tracing_switches.h"
 #include "components/viz/common/switches.h"
+#include "components/viz/host/gpu_client.h"
 #include "content/browser/appcache/appcache_dispatcher_host.h"
 #include "content/browser/appcache/chrome_appcache_service.h"
 #include "content/browser/background_fetch/background_fetch_context.h"
@@ -91,7 +92,6 @@
 #include "content/browser/frame_host/render_frame_message_filter.h"
 #include "content/browser/gpu/browser_gpu_client_delegate.h"
 #include "content/browser/gpu/compositor_util.h"
-#include "content/browser/gpu/gpu_client_impl.h"
 #include "content/browser/gpu/gpu_process_host.h"
 #include "content/browser/gpu/shader_cache_factory.h"
 #include "content/browser/histogram_controller.h"
@@ -1467,7 +1467,7 @@
     const int id = GetID();
     const uint64_t tracing_id =
         ChildProcessHostImpl::ChildProcessUniqueIdToTracingProcessId(id);
-    gpu_client_.reset(new GpuClientImpl(
+    gpu_client_.reset(new viz::GpuClient(
         std::make_unique<BrowserGpuClientDelegate>(), id, tracing_id,
         BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)));
   }
@@ -1999,7 +1999,7 @@
     // |gpu_client_| outlives the registry, because its destruction is posted to
     // IO thread from the destructor of |this|.
     registry->AddInterface(base::BindRepeating(
-        &GpuClientImpl::Add, base::Unretained(gpu_client_.get())));
+        &viz::GpuClient::Add, base::Unretained(gpu_client_.get())));
   }
 
   registry->AddInterface(
@@ -4048,22 +4048,6 @@
   holder->Hold(sessions, view_route_id);
 }
 
-void RenderProcessHostImpl::ShutdownRequest() {
-  // Notify any contents that the renderer might shut down.
-  for (auto& observer : observers_) {
-    observer.RenderProcessShutdownRequested(this);
-  }
-
-  // Don't shut down if there are active RenderViews, or if there are pending
-  // RenderViews being swapped back in.
-  // In single process mode, we never shutdown the renderer.
-  if (pending_views_ || run_renderer_in_process() || GetActiveViewCount() > 0) {
-    return;
-  }
-
-  child_control_interface_->ProcessShutdown();
-}
-
 void RenderProcessHostImpl::SuddenTerminationChanged(bool enabled) {
   SetSuddenTerminationAllowed(enabled);
 }
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h
index 69dd9aa4..c2edcee 100644
--- a/content/browser/renderer_host/render_process_host_impl.h
+++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -72,11 +72,14 @@
 class SharedPersistentMemoryAllocator;
 }
 
+namespace viz {
+class GpuClient;
+}
+
 namespace content {
 class BrowserPluginMessageFilter;
 class ChildConnection;
 class FileSystemManagerImpl;
-class GpuClientImpl;
 class IndexedDBDispatcherHost;
 class InProcessChildThreadParams;
 class MediaStreamTrackMetricsHost;
@@ -484,7 +487,6 @@
   void GetBrowserHistogram(const std::string& name,
                            BrowserHistogramCallback callback) override;
   void SuddenTerminationChanged(bool enabled) override;
-  void ShutdownRequest() override;
 
   void BindRouteProvider(mojom::RouteProviderAssociatedRequest request);
 
@@ -825,7 +827,7 @@
   scoped_refptr<ResourceMessageFilter> resource_message_filter_;
   std::unique_ptr<FileSystemManagerImpl, BrowserThread::DeleteOnIOThread>
       file_system_manager_impl_;
-  std::unique_ptr<GpuClientImpl, BrowserThread::DeleteOnIOThread> gpu_client_;
+  std::unique_ptr<viz::GpuClient, BrowserThread::DeleteOnIOThread> gpu_client_;
   std::unique_ptr<PushMessagingManager, BrowserThread::DeleteOnIOThread>
       push_messaging_manager_;
 
diff --git a/content/browser/renderer_host/render_widget_host_ns_view_client.h b/content/browser/renderer_host/render_widget_host_ns_view_client.h
index c7e67f8..5efb19f2 100644
--- a/content/browser/renderer_host/render_widget_host_ns_view_client.h
+++ b/content/browser/renderer_host/render_widget_host_ns_view_client.h
@@ -13,6 +13,7 @@
 class WebGestureEvent;
 class WebMouseEvent;
 class WebMouseWheelEvent;
+class WebTouchEvent;
 }  // namespace blink
 
 namespace ui {
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index 7823c96..92cb870 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -420,6 +420,7 @@
   page_scale_ = metadata.page_scale_factor;
   min_page_scale_ = metadata.min_page_scale_factor;
   max_page_scale_ = metadata.max_page_scale_factor;
+  current_surface_size_ = metadata.viewport_size_in_pixels;
 }
 
 void RenderWidgetHostViewAndroid::Focus() {
@@ -878,6 +879,10 @@
   view_.OnBackgroundColorChanged(color);
 }
 
+bool RenderWidgetHostViewAndroid::HasFallbackSurface() const {
+  return delegated_frame_host_ && delegated_frame_host_->HasFallbackSurface();
+}
+
 void RenderWidgetHostViewAndroid::CopyFromSurface(
     const gfx::Rect& src_subrect,
     const gfx::Size& output_size,
@@ -1361,6 +1366,9 @@
     const cc::RenderFrameMetadata& metadata) {
   SynchronizeVisualProperties(cc::DeadlinePolicy::UseDefaultDeadline(),
                               metadata.local_surface_id);
+  // We've just processed new RenderFrameMetadata and potentially embedded a
+  // new surface for that data. Check if we need to evict it.
+  EvictFrameIfNecessary();
 }
 
 void RenderWidgetHostViewAndroid::ShowInternal() {
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
index e0a31d43..a7ebd18 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -340,6 +340,7 @@
  protected:
   // RenderWidgetHostViewBase:
   void UpdateBackgroundColor() override;
+  bool HasFallbackSurface() const override;
 
  private:
   MouseWheelPhaseHandler* GetMouseWheelPhaseHandler() override;
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 c9e67f81..51e04f2 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -1642,6 +1642,10 @@
   return true;
 }
 
+bool RenderWidgetHostViewAura::HasFallbackSurface() const {
+  return delegated_frame_host_ && delegated_frame_host_->HasFallbackSurface();
+}
+
 bool RenderWidgetHostViewAura::TransformPointToCoordSpaceForView(
     const gfx::PointF& point,
     RenderWidgetHostViewBase* target_view,
@@ -1655,8 +1659,10 @@
   // In TransformPointToLocalCoordSpace() there is a Point-to-Pixel conversion,
   // but it is not necessary here because the final target view is responsible
   // for converting before computing the final transform.
-  return delegated_frame_host_->TransformPointToCoordSpaceForView(
-      point, target_view, transformed_point, source);
+  if (!HasFallbackSurface())
+    return false;
+  return target_view->TransformPointToLocalCoordSpace(
+      point, GetCurrentSurfaceId(), transformed_point, source);
 }
 
 viz::FrameSinkId RenderWidgetHostViewAura::GetRootFrameSinkId() {
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h
index 5f75e19..919ecd79 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.h
+++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -354,6 +354,7 @@
 
   // RenderWidgetHostViewBase:
   void UpdateBackgroundColor() override;
+  bool HasFallbackSurface() const override;
 
  private:
   friend class DelegatedFrameHostClientAura;
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
index 421d192..0e6510c5 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -296,7 +296,7 @@
     return GetDelegatedFrameHost()->HasPrimarySurface();
   }
 
-  bool HasFallbackSurface() const {
+  bool HasFallbackSurface() const override {
     return GetDelegatedFrameHost()->HasFallbackSurface();
   }
 
diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc
index 1b55c4d6..8af90b2 100644
--- a/content/browser/renderer_host/render_widget_host_view_base.cc
+++ b/content/browser/renderer_host/render_widget_host_view_base.cc
@@ -352,6 +352,11 @@
   }
 }
 
+bool RenderWidgetHostViewBase::HasFallbackSurface() const {
+  NOTREACHED();
+  return false;
+}
+
 void RenderWidgetHostViewBase::SetPopupType(blink::WebPopupType popup_type) {
   popup_type_ = popup_type;
 }
diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h
index 040353e..b4cc836 100644
--- a/content/browser/renderer_host/render_widget_host_view_base.h
+++ b/content/browser/renderer_host/render_widget_host_view_base.h
@@ -373,9 +373,11 @@
       const gfx::PointF& point,
       const viz::SurfaceId& original_surface,
       gfx::PointF* transformed_point);
-
-  // Transform a point that is in the coordinate space for the current
-  // RenderWidgetHostView to the coordinate space of the target_view.
+  // Given a RenderWidgetHostViewBase that renders to a Surface that is
+  // contained within this class' Surface, find the relative transform between
+  // the Surfaces and apply it to a point. Returns false if a Surface has not
+  // yet been created or if |target_view| is not a descendant RWHV from our
+  // client.
   virtual bool TransformPointToCoordSpaceForView(
       const gfx::PointF& point,
       RenderWidgetHostViewBase* target_view,
@@ -602,6 +604,8 @@
       const blink::WebGestureEvent& event,
       InputEventAckState ack_result);
 
+  virtual bool HasFallbackSurface() const;
+
   // The model object. Members will become private when
   // RenderWidgetHostViewGuest is removed.
   RenderWidgetHostImpl* host_;
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h
index 534e667..2207ed1 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.h
+++ b/content/browser/renderer_host/render_widget_host_view_mac.h
@@ -490,6 +490,7 @@
 
   // RenderWidgetHostViewBase:
   void UpdateBackgroundColor() override;
+  bool HasFallbackSurface() const override;
 
   // Gets a textual view of the page's contents, and passes it to the callback
   // provided.
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index b12b3c3..d12dde5 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -1222,6 +1222,10 @@
   return true;
 }
 
+bool RenderWidgetHostViewMac::HasFallbackSurface() const {
+  return browser_compositor_->GetDelegatedFrameHost()->HasFallbackSurface();
+}
+
 bool RenderWidgetHostViewMac::TransformPointToCoordSpaceForView(
     const gfx::PointF& point,
     RenderWidgetHostViewBase* target_view,
@@ -1232,9 +1236,10 @@
     return true;
   }
 
-  return browser_compositor_->GetDelegatedFrameHost()
-      ->TransformPointToCoordSpaceForView(point, target_view, transformed_point,
-                                          source);
+  if (!HasFallbackSurface())
+    return false;
+  return target_view->TransformPointToLocalCoordSpace(
+      point, GetCurrentSurfaceId(), transformed_point, source);
 }
 
 viz::FrameSinkId RenderWidgetHostViewMac::GetRootFrameSinkId() {
diff --git a/content/browser/security_exploit_browsertest.cc b/content/browser/security_exploit_browsertest.cc
index 0156a5f3..e9cb49eb 100644
--- a/content/browser/security_exploit_browsertest.cc
+++ b/content/browser/security_exploit_browsertest.cc
@@ -654,7 +654,7 @@
       root->current_frame_host()->GetProcess());
 
   // Prepare a file to upload.
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_temp_dir;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   base::ScopedTempDir temp_dir;
   base::FilePath file_path;
   std::string file_content("test-file-content");
diff --git a/content/browser/service_manager/common_browser_interfaces.cc b/content/browser/service_manager/common_browser_interfaces.cc
index 86941e4..1d19c0d 100644
--- a/content/browser/service_manager/common_browser_interfaces.cc
+++ b/content/browser/service_manager/common_browser_interfaces.cc
@@ -15,9 +15,9 @@
 #include "base/task_runner.h"
 #include "build/build_config.h"
 #include "components/discardable_memory/service/discardable_shared_memory_manager.h"
+#include "components/viz/host/gpu_client.h"
 #include "content/browser/browser_main_loop.h"
 #include "content/browser/gpu/browser_gpu_client_delegate.h"
-#include "content/browser/gpu/gpu_client_impl.h"
 #include "content/common/child_process_host_impl.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/common/connection_filter.h"
@@ -103,7 +103,7 @@
     const uint64_t gpu_client_tracing_id =
         ChildProcessHostImpl::ChildProcessUniqueIdToTracingProcessId(
             gpu_client_id);
-    auto gpu_client = std::make_unique<GpuClientImpl>(
+    auto gpu_client = std::make_unique<viz::GpuClient>(
         std::make_unique<BrowserGpuClientDelegate>(), gpu_client_id,
         gpu_client_tracing_id,
         BrowserThread::GetTaskRunnerForThread(BrowserThread::IO));
@@ -115,7 +115,7 @@
   }
 
   void OnGpuConnectionClosed(const service_manager::Identity& service_identity,
-                             GpuClient* client) {
+                             viz::GpuClient* client) {
     DCHECK_CURRENTLY_ON(BrowserThread::IO);
     gpu_clients_.erase(service_identity);
   }
@@ -133,7 +133,7 @@
   service_manager::BinderRegistryWithArgs<
       const service_manager::BindSourceInfo&>
       registry_;
-  std::map<service_manager::Identity, std::unique_ptr<GpuClientImpl>>
+  std::map<service_manager::Identity, std::unique_ptr<viz::GpuClient>>
       gpu_clients_;
 
   DISALLOW_COPY_AND_ASSIGN(ConnectionFilterImpl);
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
index 02d3e59a..48bd9c4 100644
--- a/content/browser/site_per_process_browsertest.cc
+++ b/content/browser/site_per_process_browsertest.cc
@@ -5425,19 +5425,13 @@
   // RenderFrameHost should be pending deletion after the last navigation.
   EXPECT_FALSE(rfh->is_active());
 
-  // Wait for process A to exit so we can reinitialize it cleanly for the next
-  // navigation.  Since process A doesn't have any active views, it will
-  // initiate shutdown via ChildProcessHostMsg_ShutdownRequest.  After process
-  // A shuts down, the |rfh| and |rvh| should get destroyed via
-  // OnRenderProcessGone.
-  //
-  // Not waiting for process shutdown here could lead to the |rvh| being
-  // reused, now that there is no notion of pending deletion RenderViewHosts.
-  // This would also be fine; however, the race in https://crbug.com/535246
-  // still needs to be addressed and tested in that case.
-  RenderProcessHostWatcher process_exit_observer(
-      rvh->GetProcess(), RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT);
-  process_exit_observer.Wait();
+  // Without the SwapOut ACK and timer, the process A will never shutdown.
+  // Simulate the process being killed now.
+  content::RenderProcessHostWatcher crash_observer(
+      rvh->GetProcess(),
+      content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT);
+  EXPECT_TRUE(rvh->GetProcess()->Shutdown(0));
+  crash_observer.Wait();
 
   // Verify that the RVH and RFH for A were cleaned up.
   EXPECT_FALSE(root->frame_tree()->GetRenderViewHost(site_instance));
@@ -7210,29 +7204,6 @@
   EXPECT_FALSE(rvh->is_swapped_out_);
 }
 
-// Helper class to wait for a ShutdownRequest message to arrive.
-class ShutdownObserver : public RenderProcessHostObserver {
- public:
-  ShutdownObserver() = default;
-
-  void RenderProcessShutdownRequested(RenderProcessHost* host) override {
-    has_received_shutdown_request_ = true;
-    run_loop_.Quit();
-  }
-
-  void Wait() { run_loop_.Run(); }
-
-  bool has_received_shutdown_request() {
-    return has_received_shutdown_request_;
-  }
-
- private:
-  base::RunLoop run_loop_;
-  bool has_received_shutdown_request_ = false;
-
-  DISALLOW_COPY_AND_ASSIGN(ShutdownObserver);
-};
-
 // Test for https://crbug.com/568836.  From an A-embed-B page, navigate the
 // subframe from B to A.  This cleans up the process for B, but the test delays
 // the browser side from killing the B process right away.  This allows the
@@ -7269,26 +7240,16 @@
 
   // Navigate the subframe away from b.com.  Since this is the last active
   // frame in the b.com process, this causes the RenderWidget and RenderView to
-  // be closed.  If this succeeds without crashing, the renderer will release
-  // the process and send a ShutdownRequest to the browser
-  // process to ask whether it's ok to terminate.  Thus, wait for this message
-  // to ensure that the RenderView and widget were closed without crashing.
-  ShutdownObserver shutdown_observer;
-  subframe_process->AddObserver(&shutdown_observer);
+  // be closed.
   NavigateFrameToURL(root->child_at(0),
                      embedded_test_server()->GetURL("a.com", "/title1.html"));
-  shutdown_observer.Wait();
-  subframe_process->RemoveObserver(&shutdown_observer);
 
-  // TODO(alexmos): Navigating the subframe back to b.com at this point would
-  // trigger the race in https://crbug.com/535246, where the browser process
-  // tries to reuse the b.com process thinking it's still initialized, whereas
-  // the process has actually been destroyed by the renderer (but the browser
-  // process hasn't heard the OnChannelError yet).  This race will need to be
-  // fixed.
-
+  // Release the process.
+  RenderProcessHostWatcher process_shutdown_observer(
+      subframe_process, RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT);
   subframe_process->DecrementKeepAliveRefCount(
       RenderProcessHostImpl::KeepAliveClientType::kFetch);
+  process_shutdown_observer.Wait();
 }
 
 // Tests that an input event targeted to a out-of-process iframe correctly
@@ -11908,14 +11869,11 @@
 namespace {
 
 // A helper class that watches for SwapOut ACK messages, allowing them
-// to go through but remembering that the message was received.  It also
-// watches for any ShutdownRequests coming from the renderer and ensures that
-// the SwapOut ACK is received prior to those.
+// to go through but remembering that the message was received.
 class SwapoutACKReceivedFilter : public BrowserMessageFilter {
  public:
   explicit SwapoutACKReceivedFilter(RenderProcessHost* process)
       : BrowserMessageFilter(FrameMsgStart) {
-    process->AddObserver(&shutdown_observer_);
     process->AddFilter(this);
   }
 
@@ -11928,17 +11886,12 @@
   // BrowserMessageFilter:
   bool OnMessageReceived(const IPC::Message& message) override {
     if (message.type() == FrameHostMsg_SwapOut_ACK::ID) {
-      // This ensures that the SwapOut ACK arrived before any
-      // renderer-initiated process shutdown requests.
-      EXPECT_FALSE(shutdown_observer_.has_received_shutdown_request())
-          << " Shutdown request should be received after the swapout ACK";
       received_ = true;
     }
     return false;
   }
 
   bool received_ = false;
-  ShutdownObserver shutdown_observer_;
   DISALLOW_COPY_AND_ASSIGN(SwapoutACKReceivedFilter);
 };
 
diff --git a/content/browser/tracing/cast_tracing_agent.cc b/content/browser/tracing/cast_tracing_agent.cc
index 1ebf9cb..7790980 100644
--- a/content/browser/tracing/cast_tracing_agent.cc
+++ b/content/browser/tracing/cast_tracing_agent.cc
@@ -9,7 +9,7 @@
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/logging.h"
-#include "base/task/task_scheduler/task_scheduler.h"
+#include "base/task/post_task.h"
 #include "base/trace_event/trace_config.h"
 #include "chromecast/tracing/system_tracing_common.h"
 #include "content/public/browser/browser_thread.h"
@@ -47,10 +47,9 @@
                 tracing::mojom::TraceDataType::STRING,
                 false /* supports_explicit_clock_sync */,
                 base::kNullProcessId) {
-  task_runner_ =
-      base::TaskScheduler::GetInstance()->CreateSequencedTaskRunnerWithTraits(
-          {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-           base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN});
+  task_runner_ = base::CreateSequencedTaskRunnerWithTraits(
+      {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+       base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN});
 }
 
 CastTracingAgent::~CastTracingAgent() = default;
diff --git a/content/browser/tracing/tracing_controller_browsertest.cc b/content/browser/tracing/tracing_controller_browsertest.cc
index 2649d7e..40ee6778 100644
--- a/content/browser/tracing/tracing_controller_browsertest.cc
+++ b/content/browser/tracing/tracing_controller_browsertest.cc
@@ -162,7 +162,7 @@
                                             const base::FilePath& file_path) {
     disable_recording_done_callback_count_++;
     {
-      base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_verifications;
+      base::ScopedAllowBlockingForTesting allow_blocking;
       EXPECT_TRUE(PathExists(file_path));
       int64_t file_size;
       base::GetFileSize(file_path, &file_size);
@@ -466,7 +466,7 @@
                        MAYBE_EnableAndStopTracingWithFilePath) {
   base::FilePath file_path;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_creating_test_file;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     base::CreateTemporaryFile(&file_path);
   }
   TestStartAndStopTracingFile(file_path);
diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/browser/web_package/signed_exchange_handler.cc
index 5c3262f6..d37bc91f 100644
--- a/content/browser/web_package/signed_exchange_handler.cc
+++ b/content/browser/web_package/signed_exchange_handler.cc
@@ -98,6 +98,7 @@
   if (!SignedExchangeSignatureHeaderField::GetVersionParamFromContentType(
           content_type, &version_) ||
       version_ != SignedExchangeVersion::kB1) {
+    // TODO(https://crbug.com/874323): Extract and redirect to the fallback URL.
     base::SequencedTaskRunnerHandle::Get()->PostTask(
         FROM_HERE, base::BindOnce(&SignedExchangeHandler::RunErrorCallback,
                                   weak_factory_.GetWeakPtr(),
@@ -264,8 +265,8 @@
         nullptr);
   }
   std::move(headers_callback_)
-      .Run(error, GURL(), std::string(), network::ResourceResponseHead(),
-           nullptr);
+      .Run(error, envelope_ ? envelope_->request_url() : GURL(), std::string(),
+           network::ResourceResponseHead(), nullptr);
   state_ = State::kHeadersCallbackCalled;
 }
 
diff --git a/content/browser/web_package/signed_exchange_handler_unittest.cc b/content/browser/web_package/signed_exchange_handler_unittest.cc
index e49c4d0..30d8e49 100644
--- a/content/browser/web_package/signed_exchange_handler_unittest.cc
+++ b/content/browser/web_package/signed_exchange_handler_unittest.cc
@@ -45,6 +45,8 @@
 const uint64_t kSignatureHeaderDate = 1520834000;
 const int kOutputBufferSize = 4096;
 
+constexpr char kTestSxgInnerURL[] = "https://test.example.org/test/";
+
 // "wildcard_example.org.public.pem.cbor" has these dummy data in "ocsp" and
 // "sct" fields.
 constexpr base::StringPiece kDummyOCSPDer = "OCSP";
@@ -232,6 +234,7 @@
 
   bool read_header() const { return read_header_; }
   net::Error error() const { return error_; }
+  const GURL& inner_url() const { return inner_url_; }
   const network::ResourceResponseHead& resource_response() const {
     return resource_response_;
   }
@@ -277,12 +280,13 @@
 
  private:
   void OnHeaderFound(net::Error error,
-                     const GURL&,
+                     const GURL& url,
                      const std::string&,
                      const network::ResourceResponseHead& resource_response,
                      std::unique_ptr<net::SourceStream> payload_stream) {
     read_header_ = true;
     error_ = error;
+    inner_url_ = url;
     resource_response_ = resource_response;
     payload_stream_ = std::move(payload_stream);
   }
@@ -296,6 +300,7 @@
 
   bool read_header_ = false;
   net::Error error_;
+  GURL inner_url_;
   network::ResourceResponseHead resource_response_;
   std::unique_ptr<net::SourceStream> payload_stream_;
 };
@@ -308,6 +313,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_TRUE(inner_url().is_empty());
 }
 
 TEST_P(SignedExchangeHandlerTest, Simple) {
@@ -338,6 +344,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::OK, error());
+  EXPECT_EQ(kTestSxgInnerURL, inner_url());
   EXPECT_EQ(200, resource_response().headers->response_code());
   EXPECT_EQ("text/html", resource_response().mime_type);
   EXPECT_EQ("utf-8", resource_response().charset);
@@ -407,6 +414,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_TRUE(inner_url().is_empty());
 }
 
 TEST_P(SignedExchangeHandlerTest, TruncatedInHeader) {
@@ -420,6 +428,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_TRUE(inner_url().is_empty());
 }
 
 TEST_P(SignedExchangeHandlerTest, CertWithoutExtensionShouldBeRejected) {
@@ -450,6 +459,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_EQ(kTestSxgInnerURL, inner_url());
   // Drain the MockSourceStream, otherwise its destructer causes DCHECK failure.
   ReadStream(source_, nullptr);
 }
@@ -517,6 +527,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_EQ(kTestSxgInnerURL, inner_url());
   // Drain the MockSourceStream, otherwise its destructer causes DCHECK failure.
   ReadStream(source_, nullptr);
 }
@@ -551,6 +562,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_EQ("https://test.example.com/test/", inner_url());
   // Drain the MockSourceStream, otherwise its destructer causes DCHECK failure.
   ReadStream(source_, nullptr);
 }
@@ -582,6 +594,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_EQ(kTestSxgInnerURL, inner_url());
   // Drain the MockSourceStream, otherwise its destructer causes DCHECK failure.
   ReadStream(source_, nullptr);
 }
@@ -613,6 +626,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_EQ(kTestSxgInnerURL, inner_url());
   // Drain the MockSourceStream, otherwise its destructer causes DCHECK failure.
   ReadStream(source_, nullptr);
 }
@@ -645,6 +659,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_EQ(kTestSxgInnerURL, inner_url());
   // Drain the MockSourceStream, otherwise its destructer causes DCHECK failure.
   ReadStream(source_, nullptr);
 }
@@ -678,6 +693,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_EQ(kTestSxgInnerURL, inner_url());
   // Drain the MockSourceStream, otherwise its destructer causes DCHECK failure.
   ReadStream(source_, nullptr);
 }
@@ -763,6 +779,7 @@
 
   ASSERT_TRUE(read_header());
   EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error());
+  EXPECT_EQ(kTestSxgInnerURL, inner_url());
   // Drain the MockSourceStream, otherwise its destructer causes DCHECK failure.
   ReadStream(source_, nullptr);
 }
diff --git a/content/browser/web_package/signed_exchange_loader.cc b/content/browser/web_package/signed_exchange_loader.cc
index 0a58a08..5da5d2c 100644
--- a/content/browser/web_package/signed_exchange_loader.cc
+++ b/content/browser/web_package/signed_exchange_loader.cc
@@ -96,6 +96,7 @@
     url::Origin request_initiator,
     uint32_t url_loader_options,
     int load_flags,
+    bool should_redirect_on_failure,
     const base::Optional<base::UnguessableToken>& throttling_profile_id,
     std::unique_ptr<SignedExchangeDevToolsProxy> devtools_proxy,
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
@@ -110,6 +111,7 @@
       request_initiator_(request_initiator),
       url_loader_options_(url_loader_options),
       load_flags_(load_flags),
+      should_redirect_on_failure_(should_redirect_on_failure),
       throttling_profile_id_(throttling_profile_id),
       devtools_proxy_(std::move(devtools_proxy)),
       url_loader_factory_(std::move(url_loader_factory)),
@@ -291,8 +293,21 @@
     const network::ResourceResponseHead& resource_response,
     std::unique_ptr<net::SourceStream> payload_stream) {
   if (error) {
-    // This will eventually delete |this|.
-    forwarding_client_->OnComplete(network::URLLoaderCompletionStatus(error));
+    if (error != net::ERR_INVALID_SIGNED_EXCHANGE ||
+        !should_redirect_on_failure_ || request_url.is_empty()) {
+      // Let the request fail.
+      // This will eventually delete |this|.
+      forwarding_client_->OnComplete(network::URLLoaderCompletionStatus(error));
+      return;
+    }
+    // Make a fallback redirect to |request_url|.
+    DCHECK(!has_redirected_to_fallback_url_);
+    has_redirected_to_fallback_url_ = true;
+    DCHECK(outer_response_timing_info_);
+    forwarding_client_->OnReceiveRedirect(
+        CreateRedirectInfo(request_url, outer_request_url_),
+        std::move(outer_response_timing_info_)->CreateRedirectResponseHead());
+    forwarding_client_.reset();
     return;
   }
 
diff --git a/content/browser/web_package/signed_exchange_loader.h b/content/browser/web_package/signed_exchange_loader.h
index ad69d869..15142386 100644
--- a/content/browser/web_package/signed_exchange_loader.h
+++ b/content/browser/web_package/signed_exchange_loader.h
@@ -45,6 +45,8 @@
   using URLLoaderThrottlesGetter = base::RepeatingCallback<
       std::vector<std::unique_ptr<content::URLLoaderThrottle>>()>;
 
+  // If |should_redirect_on_failure| is true, verification failure causes a
+  // redirect to the fallback URL.
   SignedExchangeLoader(
       const GURL& outer_request_url,
       const network::ResourceResponseHead& outer_response,
@@ -53,6 +55,7 @@
       url::Origin request_initiator,
       uint32_t url_loader_options,
       int load_flags,
+      bool should_redirect_on_failure,
       const base::Optional<base::UnguessableToken>& throttling_profile_id,
       std::unique_ptr<SignedExchangeDevToolsProxy> devtools_proxy,
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
@@ -60,6 +63,10 @@
       scoped_refptr<net::URLRequestContextGetter> request_context_getter);
   ~SignedExchangeLoader() override;
 
+  bool HasRedirectedToFallbackURL() const {
+    return has_redirected_to_fallback_url_;
+  }
+
   // network::mojom::URLLoaderClient implementation
   // Only OnStartLoadingResponseBody() and OnComplete() are called.
   void OnReceiveResponse(
@@ -139,6 +146,8 @@
   url::Origin request_initiator_;
   const uint32_t url_loader_options_;
   const int load_flags_;
+  const bool should_redirect_on_failure_;
+  bool has_redirected_to_fallback_url_ = false;
   const base::Optional<base::UnguessableToken> throttling_profile_id_;
   std::unique_ptr<SignedExchangeDevToolsProxy> devtools_proxy_;
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
diff --git a/content/browser/web_package/signed_exchange_prefetch_handler.cc b/content/browser/web_package/signed_exchange_prefetch_handler.cc
index c28252b..ddb1d0c5 100644
--- a/content/browser/web_package/signed_exchange_prefetch_handler.cc
+++ b/content/browser/web_package/signed_exchange_prefetch_handler.cc
@@ -51,7 +51,8 @@
   signed_exchange_loader_ = std::make_unique<SignedExchangeLoader>(
       outer_request_url, response, std::move(client), std::move(endpoints),
       std::move(request_initiator), network::mojom::kURLLoadOptionNone,
-      load_flags, throttling_profile_id,
+      load_flags, false /* should_redirect_to_fallback */,
+      throttling_profile_id,
       std::make_unique<SignedExchangeDevToolsProxy>(
           outer_request_url, response, std::move(frame_tree_node_id_getter),
           base::nullopt /* devtools_navigation_token */, report_raw_headers),
diff --git a/content/browser/web_package/signed_exchange_request_handler.cc b/content/browser/web_package/signed_exchange_request_handler.cc
index 05aa1f0c..012c03b 100644
--- a/content/browser/web_package/signed_exchange_request_handler.cc
+++ b/content/browser/web_package/signed_exchange_request_handler.cc
@@ -66,6 +66,11 @@
     std::move(callback).Run({});
     return;
   }
+  if (signed_exchange_loader_->HasRedirectedToFallbackURL()) {
+    signed_exchange_loader_ = nullptr;
+    std::move(callback).Run({});
+    return;
+  }
 
   std::move(callback).Run(
       base::BindOnce(&SignedExchangeRequestHandler::StartResponse,
@@ -77,6 +82,7 @@
     network::mojom::URLLoaderPtr* loader,
     network::mojom::URLLoaderClientRequest* client_request,
     ThrottlingURLLoader* url_loader) {
+  DCHECK(!signed_exchange_loader_);
   if (!signed_exchange_utils::ShouldHandleAsSignedHTTPExchange(
           request_initiator_.GetURL(), response)) {
     return false;
@@ -92,14 +98,14 @@
   // this is fine.
   signed_exchange_loader_ = std::make_unique<SignedExchangeLoader>(
       url_, response, std::move(client), url_loader->Unbind(),
-      std::move(request_initiator_), url_loader_options_, load_flags_,
-      throttling_profile_id_,
+      request_initiator_, url_loader_options_, load_flags_,
+      true /* should_redirect_to_fallback */, throttling_profile_id_,
       std::make_unique<SignedExchangeDevToolsProxy>(
           url_, response,
           base::BindRepeating([](int id) { return id; }, frame_tree_node_id_),
-          std::move(devtools_navigation_token_), report_raw_headers_),
-      std::move(url_loader_factory_), std::move(url_loader_throttles_getter_),
-      std::move(request_context_getter_));
+          devtools_navigation_token_, report_raw_headers_),
+      url_loader_factory_, url_loader_throttles_getter_,
+      request_context_getter_);
   return true;
 }
 
diff --git a/content/browser/web_package/signed_exchange_request_handler_browsertest.cc b/content/browser/web_package/signed_exchange_request_handler_browsertest.cc
index 5a22a72..ae29bbd 100644
--- a/content/browser/web_package/signed_exchange_request_handler_browsertest.cc
+++ b/content/browser/web_package/signed_exchange_request_handler_browsertest.cc
@@ -255,17 +255,17 @@
 IN_PROC_BROWSER_TEST_F(SignedExchangeRequestHandlerBrowserTest, CertNotFound) {
   InstallUrlInterceptor(GURL("https://cert.example.org/cert.msg"),
                         "content/test/data/sxg/404.msg");
+  InstallUrlInterceptor(GURL("https://test.example.org/test/"),
+                        "content/test/data/sxg/fallback.html");
 
   embedded_test_server()->ServeFilesFromSourceDirectory("content/test/data");
   ASSERT_TRUE(embedded_test_server()->Start());
   GURL url = embedded_test_server()->GetURL("/sxg/test.example.org_test.sxg");
 
-  NavigationFailureObserver failure_observer(shell()->web_contents());
+  base::string16 title = base::ASCIIToUTF16("Fallback URL response");
+  TitleWatcher title_watcher(shell()->web_contents(), title);
   NavigateToURL(shell(), url);
-  EXPECT_TRUE(failure_observer.did_fail());
-  NavigationEntry* entry =
-      shell()->web_contents()->GetController().GetVisibleEntry();
-  EXPECT_EQ(PAGE_TYPE_ERROR, entry->GetPageType());
+  EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
 }
 
 IN_PROC_BROWSER_TEST_F(
@@ -304,6 +304,8 @@
   InstallUrlInterceptor(
       GURL("https://cert.example.org/cert.msg"),
       "content/test/data/sxg/test.example.org.public.pem.cbor");
+  InstallUrlInterceptor(GURL("https://test.example.org/test/"),
+                        "content/test/data/sxg/fallback.html");
 
   // Use "real" CertVerifier.
   SignedExchangeHandler::SetCertVerifierForTesting(nullptr);
@@ -330,12 +332,10 @@
                                                     "*OCSP*");
   shell()->web_contents()->SetDelegate(&console_observer);
 
-  NavigationFailureObserver failure_observer(shell()->web_contents());
+  base::string16 title = base::ASCIIToUTF16("Fallback URL response");
+  TitleWatcher title_watcher(shell()->web_contents(), title);
   NavigateToURL(shell(), url);
-  EXPECT_TRUE(failure_observer.did_fail());
-  NavigationEntry* entry =
-      shell()->web_contents()->GetController().GetVisibleEntry();
-  EXPECT_EQ(PAGE_TYPE_ERROR, entry->GetPageType());
+  EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
 
   // Verify that it failed at the OCSP check step.
   // TODO(https://crbug.com/803774): Find a better way than matching against the
diff --git a/content/browser/webauth/authenticator_impl.cc b/content/browser/webauth/authenticator_impl.cc
index 5895b07..f5f7638 100644
--- a/content/browser/webauth/authenticator_impl.cc
+++ b/content/browser/webauth/authenticator_impl.cc
@@ -568,11 +568,14 @@
   client_data_json_ = SerializeCollectedClientDataToJson(
       client_data::kGetType, caller_origin, std::move(options->challenge));
 
+  auto ctap_request = CreateCtapGetAssertionRequest(
+      ConstructClientDataHash(client_data_json_), std::move(options),
+      alternative_application_parameter_);
+  auto opt_platform_authenticator_info =
+      CreatePlatformAuthenticatorIfAvailableAndCheckIfCredentialExists(
+          ctap_request);
   request_ = std::make_unique<device::GetAssertionRequestHandler>(
-      connector_, protocols_,
-      CreateCtapGetAssertionRequest(ConstructClientDataHash(client_data_json_),
-                                    std::move(options),
-                                    alternative_application_parameter_),
+      connector_, protocols_, std::move(ctap_request),
       base::BindOnce(&AuthenticatorImpl::OnSignResponse,
                      weak_factory_.GetWeakPtr()));
 
@@ -585,7 +588,7 @@
   request_->set_observer(request_delegate_.get());
 
   request_->SetPlatformAuthenticatorOrMarkUnavailable(
-      CreatePlatformAuthenticatorIfAvailable());
+      std::move(opt_platform_authenticator_info));
 }
 
 void AuthenticatorImpl::IsUserVerifyingPlatformAuthenticatorAvailable(
@@ -852,26 +855,56 @@
       ->GetBrowserContext();
 }
 
-std::unique_ptr<device::FidoAuthenticator>
-AuthenticatorImpl::CreatePlatformAuthenticatorIfAvailable() {
 #if defined(OS_MACOSX)
-  // Incognito mode disables platform authenticators, so check for availability
-  // first.
-  if (!IsUserVerifyingPlatformAuthenticatorAvailableImpl()) {
-    return nullptr;
-  }
-
+namespace {
+std::unique_ptr<device::fido::mac::TouchIdAuthenticator>
+CreateTouchIdAuthenticatorIfAvailable(
+    const AuthenticatorRequestClientDelegate* request_delegate) {
   // Not all embedders may provide an authenticator config.
   auto opt_authenticator_config =
-      request_delegate_->GetTouchIdAuthenticatorConfig();
+      request_delegate->GetTouchIdAuthenticatorConfig();
   if (!opt_authenticator_config) {
     return nullptr;
   }
   return device::fido::mac::TouchIdAuthenticator::CreateIfAvailable(
       std::move(opt_authenticator_config->keychain_access_group),
       std::move(opt_authenticator_config->metadata_secret));
+}
+}  // namespace
+#endif
+
+base::Optional<device::PlatformAuthenticatorInfo>
+AuthenticatorImpl::CreatePlatformAuthenticatorIfAvailable() {
+  // Incognito mode disables platform authenticators, so check for availability
+  // first.
+  if (!IsUserVerifyingPlatformAuthenticatorAvailableImpl()) {
+    return base::nullopt;
+  }
+#if defined(OS_MACOSX)
+  return device::PlatformAuthenticatorInfo(
+      CreateTouchIdAuthenticatorIfAvailable(request_delegate_.get()), false);
 #else
-  return nullptr;
+  return base::nullopt;
+#endif
+}
+
+base::Optional<device::PlatformAuthenticatorInfo> AuthenticatorImpl::
+    CreatePlatformAuthenticatorIfAvailableAndCheckIfCredentialExists(
+        const device::CtapGetAssertionRequest& request) {
+  // Incognito mode disables platform authenticators, so check for availability
+  // first.
+  if (!IsUserVerifyingPlatformAuthenticatorAvailableImpl()) {
+    return base::nullopt;
+  }
+#if defined(OS_MACOSX)
+  std::unique_ptr<device::fido::mac::TouchIdAuthenticator> authenticator =
+      CreateTouchIdAuthenticatorIfAvailable(request_delegate_.get());
+  const bool has_credential =
+      authenticator->HasCredentialForGetAssertionRequest(request);
+  return device::PlatformAuthenticatorInfo(std::move(authenticator),
+                                           has_credential);
+#else
+  return base::nullopt;
 #endif
 }
 
diff --git a/content/browser/webauth/authenticator_impl.h b/content/browser/webauth/authenticator_impl.h
index 50b4c55a..6dfe4e2 100644
--- a/content/browser/webauth/authenticator_impl.h
+++ b/content/browser/webauth/authenticator_impl.h
@@ -31,7 +31,8 @@
 
 namespace device {
 
-class FidoAuthenticator;
+struct PlatformAuthenticatorInfo;
+class CtapGetAssertionRequest;
 class FidoRequestHandlerBase;
 
 enum class FidoReturnCode : uint8_t;
@@ -155,8 +156,11 @@
       blink::mojom::GetAssertionAuthenticatorResponsePtr response);
   void Cleanup();
 
-  std::unique_ptr<device::FidoAuthenticator>
+  base::Optional<device::PlatformAuthenticatorInfo>
   CreatePlatformAuthenticatorIfAvailable();
+  base::Optional<device::PlatformAuthenticatorInfo>
+  CreatePlatformAuthenticatorIfAvailableAndCheckIfCredentialExists(
+      const device::CtapGetAssertionRequest& request);
 
   BrowserContext* browser_context() const;
 
diff --git a/content/browser/webui/web_ui_mojo_browsertest.cc b/content/browser/webui/web_ui_mojo_browsertest.cc
index d8ab9ec..3f403159 100644
--- a/content/browser/webui/web_ui_mojo_browsertest.cc
+++ b/content/browser/webui/web_ui_mojo_browsertest.cc
@@ -45,7 +45,7 @@
 bool g_got_message = false;
 
 base::FilePath GetFilePathForJSResource(const std::string& path) {
-  base::ThreadRestrictions::ScopedAllowIO allow_io_from_test_callbacks;
+  base::ScopedAllowBlockingForTesting allow_blocking;
 
   std::string binding_path = "gen/" + path;
 #if defined(OS_WIN)
@@ -60,7 +60,7 @@
 // up the generated file from disk and returns it.
 bool GetResource(const std::string& id,
                  const WebUIDataSource::GotDataCallback& callback) {
-  base::ThreadRestrictions::ScopedAllowIO allow_io_from_test_callbacks;
+  base::ScopedAllowBlockingForTesting allow_blocking;
 
   std::string contents;
   if (base::EndsWith(id, ".mojom.js", base::CompareCase::SENSITIVE)) {
@@ -274,7 +274,7 @@
   // files. If the bindings file doesn't exist assume we're on such a bot and
   // pass.
   // TODO(sky): remove this conditional when isolates support copying from gen.
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_file_existence_check;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   const base::FilePath test_file_path(GetFilePathForJSResource(resource_path));
   if (base::PathExists(test_file_path))
     return true;
diff --git a/content/common/renderer_host.mojom b/content/common/renderer_host.mojom
index 9b35f6fb..09d5d27 100644
--- a/content/common/renderer_host.mojom
+++ b/content/common/renderer_host.mojom
@@ -16,8 +16,4 @@
   // Notify the browser that this render process can or can't be suddenly
   // terminated.
   SuddenTerminationChanged(bool enabled);
-
-  // Request a child_control.Shutdown message to be sent to the renderer. This
-  // may not initiate a shutdown sequence in some cases.
-  ShutdownRequest();
 };
diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java
index bd09e1f..853b152 100644
--- a/content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java
@@ -60,6 +60,10 @@
         return mDelegate;
     }
 
+    public long getNativePtr() {
+        return mNativeRenderFrameHostAndroid;
+    }
+
     @Override
     public String getLastCommittedURL() {
         if (mNativeRenderFrameHostAndroid == 0) return null;
@@ -95,11 +99,6 @@
         nativeNotifyUserActivation(mNativeRenderFrameHostAndroid);
     }
 
-    @Override
-    public void executeJavaScriptForTests(String script, Callback<String> callback) {
-        nativeExecuteJavaScriptForTests(mNativeRenderFrameHostAndroid, script, callback);
-    }
-
     /**
      * Return the AndroidOverlay routing token for this RenderFrameHostImpl.
      */
@@ -114,6 +113,4 @@
     private native UnguessableToken nativeGetAndroidOverlayRoutingToken(
             long nativeRenderFrameHostAndroid);
     private native void nativeNotifyUserActivation(long nativeRenderFrameHostAndroid);
-    private native void nativeExecuteJavaScriptForTests(
-            long nativeRenderFrameHostAndroid, String script, Callback<String> callback);
 }
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
index 2da2a29..5c46b88 100644
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -342,11 +342,6 @@
     }
 
     @Override
-    public RenderFrameHost getFocusedFrame() {
-        return nativeGetFocusedFrame(mNativeWebContentsAndroid);
-    }
-
-    @Override
     public String getTitle() {
         return nativeGetTitle(mNativeWebContentsAndroid);
     }
@@ -900,7 +895,6 @@
     private native void nativeSetTopLevelNativeWindow(
             long nativeWebContentsAndroid, WindowAndroid windowAndroid);
     private native RenderFrameHost nativeGetMainFrame(long nativeWebContentsAndroid);
-    private native RenderFrameHost nativeGetFocusedFrame(long nativeWebContentsAndroid);
     private native String nativeGetTitle(long nativeWebContentsAndroid);
     private native String nativeGetVisibleURL(long nativeWebContentsAndroid);
     private native String nativeGetEncoding(long nativeWebContentsAndroid);
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/RenderFrameHost.java b/content/public/android/java/src/org/chromium/content_public/browser/RenderFrameHost.java
index 5c219b5b..19adb2a 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/RenderFrameHost.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/RenderFrameHost.java
@@ -40,15 +40,6 @@
     void notifyUserActivation();
 
     /**
-     * Runs the given JavaScript in the RenderFrameHost.
-     *
-     * @param script A String containing the JavaScript to run.
-     * @param callback The Callback that will be called with the result of the JavaScript execution
-     *        serialized to a String using JSONStringValueSerializer.
-     */
-    void executeJavaScriptForTests(String script, Callback<String> callback);
-
-    /**
      * Returns whether we're in incognito mode.
      *
      * @return {@code true} if we're in incoginto mode.
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
index 66e7e38..d827a25 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
@@ -131,11 +131,6 @@
     RenderFrameHost getMainFrame();
 
     /**
-     * @return The focused frame in this WebContents.
-     */
-    RenderFrameHost getFocusedFrame();
-
-    /**
      * @return The title for the current visible page.
      */
     String getTitle();
diff --git a/content/public/app/mojo/content_browser_manifest.json b/content/public/app/mojo/content_browser_manifest.json
index 19b1bd4..7ef2e14 100644
--- a/content/public/app/mojo/content_browser_manifest.json
+++ b/content/public/app/mojo/content_browser_manifest.json
@@ -42,7 +42,6 @@
           "blink.mojom.EmbeddedFrameSinkProvider",
           "blink.mojom.FileUtilitiesHost",
           "blink.mojom.FileSystemManager",
-          "blink.mojom.LockManager",
           "blink.mojom.Hyphenation",
           "blink.mojom.MimeRegistry",
           "blink.mojom.PluginRegistry",
diff --git a/content/public/app/mojo/content_renderer_manifest.json b/content/public/app/mojo/content_renderer_manifest.json
index 70c67820..4ae4abe 100644
--- a/content/public/app/mojo/content_renderer_manifest.json
+++ b/content/public/app/mojo/content_renderer_manifest.json
@@ -5,6 +5,7 @@
     "service_manager:connector": {
       "provides": {
         "browser": [
+          "blink.mojom.CrashMemoryMetricsReporter",
           "blink.mojom.LeakDetector",
           "blink.mojom.OomIntervention",
           "blink.mojom.WebDatabase",
diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn
index ae850f99..d0f74db0 100644
--- a/content/public/browser/BUILD.gn
+++ b/content/public/browser/BUILD.gn
@@ -352,6 +352,7 @@
   ]
   deps = [
     "//cc",
+    "//components/viz/host",
     "//content/browser",  # Must not be public_deps!
     "//device/fido",
     "//gpu",
diff --git a/content/public/browser/DEPS b/content/public/browser/DEPS
index 699b840..dd3a17f 100644
--- a/content/public/browser/DEPS
+++ b/content/public/browser/DEPS
@@ -3,6 +3,7 @@
   # TODO(qinmin): move it to services/download when download becomes a service.
   "+components/download/public/common",
   "+components/viz/common",
+  "+components/viz/host",
   "+device/usb/public/mojom",
   "+device/fido",
   "+services/device/public",
diff --git a/content/public/browser/gpu_client.h b/content/public/browser/gpu_client.h
index d5d249b..b8d1245 100644
--- a/content/public/browser/gpu_client.h
+++ b/content/public/browser/gpu_client.h
@@ -7,24 +7,17 @@
 
 #include <memory>
 
-#include "base/callback_forward.h"
+#include "components/viz/host/gpu_client.h"
 #include "content/common/content_export.h"
 #include "services/ui/public/interfaces/gpu.mojom.h"
 
 namespace content {
 
-// GpuClient provides an implementation of ui::mojom::Gpu.
-class CONTENT_EXPORT GpuClient {
- public:
-  virtual ~GpuClient() {}
-
-  using ConnectionErrorHandlerClosure =
-      base::OnceCallback<void(GpuClient* client)>;
-  static std::unique_ptr<GpuClient, base::OnTaskRunnerDeleter> Create(
-      ui::mojom::GpuRequest request,
-      ConnectionErrorHandlerClosure connection_error_handler,
-      scoped_refptr<base::SingleThreadTaskRunner> task_runner);
-};
+CONTENT_EXPORT
+std::unique_ptr<viz::GpuClient, base::OnTaskRunnerDeleter> CreateGpuClient(
+    ui::mojom::GpuRequest request,
+    viz::GpuClient::ConnectionErrorHandlerClosure connection_error_handler,
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner);
 
 }  // namespace content
 
diff --git a/content/public/browser/render_process_host_observer.h b/content/public/browser/render_process_host_observer.h
index fca52416..60e3668f 100644
--- a/content/public/browser/render_process_host_observer.h
+++ b/content/public/browser/render_process_host_observer.h
@@ -23,10 +23,6 @@
   // RenderProcessHost.
   virtual void RenderProcessReady(RenderProcessHost* host) {}
 
-  // This method is invoked when the process when the process could shut down
-  // but may or may not be allowed.
-  virtual void RenderProcessShutdownRequested(RenderProcessHost* host) {}
-
   // This method is invoked when the process of the observed RenderProcessHost
   // exits (either normally or with a crash). To determine if the process closed
   // normally or crashed, examine the |status| parameter.
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
index 0a040f4..cbd1d3d2 100644
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -448,11 +448,6 @@
 const base::Feature kTouchpadAsyncPinchEvents{
     "TouchpadAsyncPinchEvents", base::FEATURE_DISABLED_BY_DEFAULT};
 
-// Use Feature Policy to gate the use of permission features like midi,
-// geolocation, camera, microphone, etc.
-const base::Feature kUseFeaturePolicyForPermissions{
-    "UseFeaturePolicyForPermissions", base::FEATURE_ENABLED_BY_DEFAULT};
-
 // An experimental simple user-activation model where the user gesture state is
 // tracked through a frame-based state instead of the gesture tokens we use
 // today.
@@ -475,6 +470,13 @@
 const base::Feature kV8VmFuture{"V8VmFuture",
                                 base::FEATURE_DISABLED_BY_DEFAULT};
 
+// Controls the decode acceleration of JPEG images (as opposed to camera
+// captures) in Chrome OS using the VA-API.
+// TODO(andrescj): remove or enable by default in Chrome OS once
+// https://crbug.com/868400 is resolved.
+const base::Feature kVaapiJpegImageDecodeAcceleration{
+    "VaapiJpegImageDecodeAcceleration", base::FEATURE_DISABLED_BY_DEFAULT};
+
 // Enable WebAssembly structured cloning.
 // http://webassembly.org/
 const base::Feature kWebAssembly{"WebAssembly",
@@ -680,7 +682,7 @@
 
 // Enable IOSurface based screen capturer.
 const base::Feature kIOSurfaceCapturer{"IOSurfaceCapturer",
-                                       base::FEATURE_DISABLED_BY_DEFAULT};
+                                       base::FEATURE_ENABLED_BY_DEFAULT};
 
 // The V2 sandbox on MacOS removes the unsandboed warmup phase and sandboxes the
 // entire life of the process.
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
index ae18650..7d82122a1 100644
--- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h
@@ -105,12 +105,12 @@
 CONTENT_EXPORT extern const base::Feature kTopDocumentIsolation;
 CONTENT_EXPORT extern const base::Feature kTouchpadAsyncPinchEvents;
 CONTENT_EXPORT extern const base::Feature kTouchpadOverscrollHistoryNavigation;
-CONTENT_EXPORT extern const base::Feature kUseFeaturePolicyForPermissions;
 CONTENT_EXPORT extern const base::Feature kUserActivationV2;
 CONTENT_EXPORT extern const base::Feature kV8ContextSnapshot;
 CONTENT_EXPORT extern const base::Feature kV8LowMemoryModeForSubframes;
 CONTENT_EXPORT extern const base::Feature kV8Orinoco;
 CONTENT_EXPORT extern const base::Feature kV8VmFuture;
+CONTENT_EXPORT extern const base::Feature kVaapiJpegImageDecodeAcceleration;
 CONTENT_EXPORT extern const base::Feature kWebAssembly;
 CONTENT_EXPORT extern const base::Feature kWebAssemblyStreaming;
 CONTENT_EXPORT extern const base::Feature kWebAssemblyBaseline;
diff --git a/content/public/test/android/BUILD.gn b/content/public/test/android/BUILD.gn
index 6e550af..702b5f6 100644
--- a/content/public/test/android/BUILD.gn
+++ b/content/public/test/android/BUILD.gn
@@ -34,6 +34,7 @@
     "javatests/src/org/chromium/content/browser/test/ContentJUnit4ClassRunner.java",
     "javatests/src/org/chromium/content/browser/test/InterstitialPageDelegateAndroid.java",
     "javatests/src/org/chromium/content/browser/test/NativeLibraryTestRule.java",
+    "javatests/src/org/chromium/content/browser/test/RenderFrameHostTestExt.java",
     "javatests/src/org/chromium/content/browser/test/mock/MockRenderFrameHost.java",
     "javatests/src/org/chromium/content/browser/test/mock/MockWebContents.java",
     "javatests/src/org/chromium/content/browser/test/util/ClickUtils.java",
@@ -62,6 +63,7 @@
   jni_package = "content/public/test"
   sources = [
     "javatests/src/org/chromium/content/browser/test/InterstitialPageDelegateAndroid.java",
+    "javatests/src/org/chromium/content/browser/test/RenderFrameHostTestExt.java",
     "javatests/src/org/chromium/content/browser/test/util/DOMUtils.java",
     "javatests/src/org/chromium/content/browser/test/util/WebContentsUtils.java",
   ]
@@ -80,6 +82,7 @@
     "dom_utils.cc",
     "interstitial_page_delegate_android.cc",
     "interstitial_page_delegate_android.h",
+    "render_frame_host_test_ext.cc",
     "web_contents_utils.cc",
   ]
   deps = [
diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/RenderFrameHostTestExt.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/RenderFrameHostTestExt.java
new file mode 100644
index 0000000..d1a5549
--- /dev/null
+++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/RenderFrameHostTestExt.java
@@ -0,0 +1,36 @@
+// Copyright 2017 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.content.browser.test;
+
+import org.chromium.base.Callback;
+import org.chromium.base.annotations.JNINamespace;
+import org.chromium.content.browser.framehost.RenderFrameHostImpl;
+import org.chromium.content_public.browser.RenderFrameHost;
+
+/**
+ * The Java wrapper around RenderFrameHost to allow executing javascript for tests.
+ */
+@JNINamespace("content")
+public class RenderFrameHostTestExt {
+    private final long mNativeRenderFrameHost;
+
+    public RenderFrameHostTestExt(RenderFrameHost host) {
+        mNativeRenderFrameHost = ((RenderFrameHostImpl) host).getNativePtr();
+    }
+
+    /**
+     * Runs the given JavaScript in the RenderFrameHost.
+     *
+     * @param script A String containing the JavaScript to run.
+     * @param callback The Callback that will be called with the result of the JavaScript execution
+     *        serialized to a String using JSONStringValueSerializer.
+     */
+    public void executeJavaScriptForTests(String script, Callback<String> callback) {
+        nativeExecuteJavaScriptForTests(script, callback, mNativeRenderFrameHost);
+    }
+
+    private static native void nativeExecuteJavaScriptForTests(
+            String script, Callback<String> callback, long nativeRenderFrameHost);
+}
diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/mock/MockRenderFrameHost.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/mock/MockRenderFrameHost.java
index b4bd1727..ee11de9c 100644
--- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/mock/MockRenderFrameHost.java
+++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/mock/MockRenderFrameHost.java
@@ -29,9 +29,6 @@
     public void notifyUserActivation() {}
 
     @Override
-    public void executeJavaScriptForTests(String script, Callback<String> callback) {}
-
-    @Override
     public boolean isIncognito() {
         return false;
     }
diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/mock/MockWebContents.java
index 90e75b2d..4d18417 100644
--- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/mock/MockWebContents.java
+++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/mock/MockWebContents.java
@@ -76,11 +76,6 @@
     }
 
     @Override
-    public RenderFrameHost getFocusedFrame() {
-        return renderFrameHost;
-    }
-
-    @Override
     public String getTitle() {
         return null;
     }
diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/WebContentsUtils.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/WebContentsUtils.java
index b81bc848..449f2e9 100644
--- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/WebContentsUtils.java
+++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/WebContentsUtils.java
@@ -5,10 +5,12 @@
 package org.chromium.content.browser.test.util;
 
 import org.chromium.base.annotations.JNINamespace;
+import org.chromium.content_public.browser.RenderFrameHost;
 import org.chromium.content_public.browser.WebContents;
 
 /**
  * Collection of test-only WebContents utilities.
+ * TODO(jinsukkim): Move test utilities to content_public.
  */
 @JNINamespace("content")
 public class WebContentsUtils {
@@ -22,6 +24,15 @@
         nativeReportAllFrameSubmissions(webContents, enabled);
     }
 
+    /**
+     * Gets the currently focused {@link RenderFrameHost} instance for a given {@link WebContents}.
+     * @param webContents The WebContents in use.
+     */
+    public static RenderFrameHost getFocusedFrame(final WebContents webContents) {
+        return nativeGetFocusedFrame(webContents);
+    }
+
     private static native void nativeReportAllFrameSubmissions(
             WebContents webContents, boolean enabled);
+    private static native RenderFrameHost nativeGetFocusedFrame(WebContents webContents);
 }
diff --git a/content/public/test/android/render_frame_host_test_ext.cc b/content/public/test/android/render_frame_host_test_ext.cc
new file mode 100644
index 0000000..9c017b84
--- /dev/null
+++ b/content/public/test/android/render_frame_host_test_ext.cc
@@ -0,0 +1,46 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/android/callback_android.h"
+#include "base/android/jni_string.h"
+#include "base/json/json_string_value_serializer.h"
+#include "content/public/browser/render_frame_host.h"
+#include "content/public/browser/web_contents.h"
+#include "jni/RenderFrameHostTestExt_jni.h"
+
+using base::android::JavaParamRef;
+using base::android::JavaRef;
+using base::android::ScopedJavaLocalRef;
+
+namespace content {
+
+namespace {
+
+void OnExecuteJavaScriptResult(const JavaRef<jobject>& jcallback,
+                               const base::Value* value) {
+  std::string result;
+  JSONStringValueSerializer serializer(&result);
+  bool value_serialized = serializer.SerializeAndOmitBinaryValues(*value);
+  DCHECK(value_serialized);
+  base::android::RunStringCallbackAndroid(jcallback, result);
+}
+
+}  // namespace
+
+void JNI_RenderFrameHostTestExt_ExecuteJavaScriptForTests(
+    JNIEnv* env,
+    const JavaParamRef<jclass>& clazz,
+    const JavaParamRef<jstring>& jscript,
+    const JavaParamRef<jobject>& jcallback,
+    jlong render_frame_host_ptr) {
+  base::string16 script(ConvertJavaStringToUTF16(env, jscript));
+  auto callback = base::BindRepeating(
+      &OnExecuteJavaScriptResult,
+      base::android::ScopedJavaGlobalRef<jobject>(env, jcallback));
+  RenderFrameHost* render_frame_host =
+      reinterpret_cast<RenderFrameHost*>(render_frame_host_ptr);
+  render_frame_host->ExecuteJavaScriptForTests(script, callback);
+}
+
+}  // namespace content
diff --git a/content/public/test/android/web_contents_utils.cc b/content/public/test/android/web_contents_utils.cc
index a3dd16d..0dfeb53e 100644
--- a/content/public/test/android/web_contents_utils.cc
+++ b/content/public/test/android/web_contents_utils.cc
@@ -4,6 +4,7 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/scoped_java_ref.h"
+#include "content/browser/frame_host/render_frame_host_impl.h"
 #include "content/browser/renderer_host/render_widget_host_impl.h"
 #include "content/public/browser/render_frame_metadata_provider.h"
 #include "content/public/browser/render_view_host.h"
@@ -11,6 +12,7 @@
 #include "jni/WebContentsUtils_jni.h"
 
 using base::android::JavaParamRef;
+using base::android::ScopedJavaLocalRef;
 
 namespace content {
 
@@ -28,4 +30,13 @@
   provider->ReportAllFrameSubmissionsForTesting(enabled);
 }
 
+ScopedJavaLocalRef<jobject> JNI_WebContentsUtils_GetFocusedFrame(
+    JNIEnv* env,
+    const JavaParamRef<jclass>& clazz,
+    const JavaParamRef<jobject>& jweb_contents) {
+  WebContents* web_contents = WebContents::FromJavaWebContents(jweb_contents);
+  return static_cast<RenderFrameHostImpl*>(web_contents->GetFocusedFrame())
+      ->GetJavaRenderFrameHost();
+}
+
 }  // namespace content
diff --git a/content/public/test/content_browser_test_utils.cc b/content/public/test/content_browser_test_utils.cc
index 4a1d1be..04c58ae 100644
--- a/content/public/test/content_browser_test_utils.cc
+++ b/content/public/test/content_browser_test_utils.cc
@@ -30,7 +30,7 @@
 
 base::FilePath GetTestFilePath(const char* dir, const char* file) {
   base::FilePath path;
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_path_service;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   base::PathService::Get(DIR_TEST_DATA, &path);
   if (dir)
     path = path.AppendASCII(dir);
diff --git a/content/renderer/accessibility/blink_ax_enum_conversion.cc b/content/renderer/accessibility/blink_ax_enum_conversion.cc
index 3b504e2..d51402b4 100644
--- a/content/renderer/accessibility/blink_ax_enum_conversion.cc
+++ b/content/renderer/accessibility/blink_ax_enum_conversion.cc
@@ -25,6 +25,9 @@
   else if (o.Role() == blink::kWebAXRolePopUpButton)
     dst->SetHasPopup(ax::mojom::HasPopup::kMenu);
 
+  if (o.IsAutofillAvailable())
+    dst->AddState(ax::mojom::State::kAutofillAvailable);
+
   if (o.IsHovered())
     dst->AddState(ax::mojom::State::kHovered);
 
diff --git a/content/renderer/dom_serializer_browsertest.cc b/content/renderer/dom_serializer_browsertest.cc
index 2b18860..41936c3 100644
--- a/content/renderer/dom_serializer_browsertest.cc
+++ b/content/renderer/dom_serializer_browsertest.cc
@@ -677,7 +677,7 @@
   std::string original_contents;
   {
     // Read original contents for later comparison.
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_verifications;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(xml_file_path, &original_contents));
   }
 
@@ -703,7 +703,7 @@
   std::string original_contents;
   {
     // Read original contents for later comparison .
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_verifications;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     ASSERT_TRUE(base::ReadFileToString(page_file_path, &original_contents));
   }
 
diff --git a/content/renderer/media/stream/user_media_client_impl.cc b/content/renderer/media/stream/user_media_client_impl.cc
index bee0a48..a06fe0a 100644
--- a/content/renderer/media/stream/user_media_client_impl.cc
+++ b/content/renderer/media/stream/user_media_client_impl.cc
@@ -33,6 +33,21 @@
 
 static int g_next_request_id = 0;
 
+// The histogram counts the number of calls to the JS API
+// getUserMedia or getDisplayMedia().
+void UpdateAPICount(blink::WebUserMediaRequest::MediaType media_type) {
+  blink::WebRTCAPIName api_name = blink::WebRTCAPIName::kGetUserMedia;
+  switch (media_type) {
+    case blink::WebUserMediaRequest::MediaType::kUserMedia:
+      api_name = blink::WebRTCAPIName::kGetUserMedia;
+      break;
+    case blink::WebUserMediaRequest::MediaType::kDisplayMedia:
+      api_name = blink::WebRTCAPIName::kGetDisplayMedia;
+      break;
+  }
+  UpdateWebRTCMethodCount(api_name);
+}
+
 }  // namespace
 
 UserMediaClientImpl::Request::Request(std::unique_ptr<UserMediaRequest> request)
@@ -124,10 +139,6 @@
 
 void UserMediaClientImpl::RequestUserMedia(
     const blink::WebUserMediaRequest& web_request) {
-  // Save histogram data so we can see how much GetUserMedia is used.
-  // The histogram counts the number of calls to the JS API
-  // webGetUserMedia.
-  UpdateWebRTCMethodCount(blink::WebRTCAPIName::kGetUserMedia);
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(!web_request.IsNull());
   DCHECK(web_request.Audio() || web_request.Video());
@@ -138,6 +149,9 @@
              static_cast<blink::WebFrame*>(
                  web_request.OwnerDocument().GetFrame()));
 
+  // Save histogram data so we can see how much GetUserMedia is used.
+  UpdateAPICount(web_request.MediaRequestType());
+
   if (RenderThreadImpl::current()) {
     RenderThreadImpl::current()->peer_connection_tracker()->TrackGetUserMedia(
         web_request);
diff --git a/content/renderer/media/webrtc/rtc_peer_connection_handler.cc b/content/renderer/media/webrtc/rtc_peer_connection_handler.cc
index b41ed0ff..15300ae 100644
--- a/content/renderer/media/webrtc/rtc_peer_connection_handler.cc
+++ b/content/renderer/media/webrtc/rtc_peer_connection_handler.cc
@@ -42,7 +42,6 @@
 #include "media/base/media_switches.h"
 #include "third_party/blink/public/platform/web_media_constraints.h"
 #include "third_party/blink/public/platform/web_rtc_answer_options.h"
-#include "third_party/blink/public/platform/web_rtc_configuration.h"
 #include "third_party/blink/public/platform/web_rtc_data_channel_init.h"
 #include "third_party/blink/public/platform/web_rtc_ice_candidate.h"
 #include "third_party/blink/public/platform/web_rtc_legacy_stats.h"
@@ -188,38 +187,6 @@
 
 // Converter functions from Blink types to WebRTC types.
 
-// This function doesn't assume |webrtc_config| is empty. Any fields in
-// |blink_config| replace the corresponding fields in |webrtc_config|, but
-// fields that only exist in |webrtc_config| are left alone.
-void GetNativeRtcConfiguration(
-    const blink::WebRTCConfiguration& blink_config,
-    webrtc::PeerConnectionInterface::RTCConfiguration* webrtc_config) {
-  DCHECK(webrtc_config);
-
-  webrtc_config->servers = blink_config.ice_servers;
-  webrtc_config->type = blink_config.ice_transport_policy;
-  webrtc_config->bundle_policy = blink_config.bundle_policy;
-  webrtc_config->rtcp_mux_policy = blink_config.rtcp_mux_policy;
-
-  switch (blink_config.sdp_semantics) {
-    case blink::WebRTCSdpSemantics::kPlanB:
-      webrtc_config->sdp_semantics = webrtc::SdpSemantics::kPlanB;
-      break;
-    case blink::WebRTCSdpSemantics::kUnifiedPlan:
-      webrtc_config->sdp_semantics = webrtc::SdpSemantics::kUnifiedPlan;
-      break;
-    case blink::WebRTCSdpSemantics::kDefault:
-      NOTREACHED();
-  }
-
-  webrtc_config->certificates.clear();
-  for (const auto& blink_certificate : blink_config.certificates) {
-    webrtc_config->certificates.push_back(blink_certificate);
-  }
-
-  webrtc_config->ice_candidate_pool_size = blink_config.ice_candidate_pool_size;
-}
-
 absl::optional<bool> ConstraintToOptional(
     const blink::WebMediaConstraints& constraints,
     const blink::BooleanConstraint blink::WebMediaTrackConstraintSet::*picker) {
@@ -665,26 +632,6 @@
   return false;
 }
 
-enum SdpSemanticRequested {
-  kSdpSemanticRequestedDefault,
-  kSdpSemanticRequestedPlanB,
-  kSdpSemanticRequestedUnifiedPlan,
-  kSdpSemanticRequestedMax
-};
-
-SdpSemanticRequested GetSdpSemanticRequested(
-    blink::WebRTCSdpSemantics sdp_semantics) {
-  switch (sdp_semantics) {
-    case blink::WebRTCSdpSemantics::kDefault:
-      return kSdpSemanticRequestedDefault;
-    case blink::WebRTCSdpSemantics::kPlanB:
-      return kSdpSemanticRequestedPlanB;
-    case blink::WebRTCSdpSemantics::kUnifiedPlan:
-      return kSdpSemanticRequestedUnifiedPlan;
-  }
-  NOTREACHED();
-  return kSdpSemanticRequestedDefault;
-}
 
 MediaStreamTrackMetrics::Kind MediaStreamTrackMetricsKind(
     const blink::WebMediaStreamTrack& track) {
@@ -741,16 +688,13 @@
       base::WeakPtr<PeerConnectionTracker> tracker,
       scoped_refptr<base::SingleThreadTaskRunner> task_runner,
       PeerConnectionTracker::Action action,
-      blink::WebRTCSdpSemantics sdp_semantics)
+      webrtc::SdpSemantics sdp_semantics)
       : handler_(handler),
         main_thread_(task_runner),
         web_request_(web_request),
         tracker_(tracker),
         action_(action),
-        sdp_semantics_(sdp_semantics) {
-    DCHECK(sdp_semantics_ == blink::WebRTCSdpSemantics::kPlanB ||
-           sdp_semantics_ == blink::WebRTCSdpSemantics::kUnifiedPlan);
-  }
+        sdp_semantics_(sdp_semantics) {}
 
   void OnSetDescriptionComplete(
       webrtc::RTCError error,
@@ -770,10 +714,10 @@
 
       // Process the rest of the state changes differently depending on SDP
       // semantics.
-      if (sdp_semantics_ == blink::WebRTCSdpSemantics::kPlanB) {
+      if (sdp_semantics_ == webrtc::SdpSemantics::kPlanB) {
         ProcessStateChangesPlanB(std::move(states));
       } else {
-        DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kUnifiedPlan);
+        DCHECK_EQ(sdp_semantics_, webrtc::SdpSemantics::kUnifiedPlan);
         ProcessStateChangesUnifiedPlan(std::move(states));
       }
 
@@ -811,7 +755,7 @@
   }
 
   void ProcessStateChangesPlanB(WebRtcSetDescriptionObserver::States states) {
-    DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kPlanB);
+    DCHECK_EQ(sdp_semantics_, webrtc::SdpSemantics::kPlanB);
     // Determine which receivers have been removed before processing the
     // removal as to not invalidate the iterator.
     std::vector<RTCRtpReceiver*> removed_receivers;
@@ -858,7 +802,7 @@
 
   void ProcessStateChangesUnifiedPlan(
       WebRtcSetDescriptionObserver::States states) {
-    DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kUnifiedPlan);
+    DCHECK_EQ(sdp_semantics_, webrtc::SdpSemantics::kUnifiedPlan);
     handler_->OnModifyTransceivers(
         std::move(states.transceiver_states),
         action_ == PeerConnectionTracker::ACTION_SET_REMOTE_DESCRIPTION);
@@ -869,7 +813,7 @@
   blink::WebRTCVoidRequest web_request_;
   base::WeakPtr<PeerConnectionTracker> tracker_;
   PeerConnectionTracker::Action action_;
-  blink::WebRTCSdpSemantics sdp_semantics_;
+  webrtc::SdpSemantics sdp_semantics_;
 };
 
 // Receives notifications from a PeerConnection object about state changes. The
@@ -1020,8 +964,6 @@
       track_adapter_map_(
           new WebRtcMediaStreamTrackAdapterMap(dependency_factory_,
                                                task_runner)),
-      // This will be overwritten to the actual value used at Initialize().
-      sdp_semantics_(blink::WebRTCSdpSemantics::kDefault),
       task_runner_(std::move(task_runner)),
       weak_factory_(this) {
   CHECK(client_);
@@ -1049,9 +991,9 @@
 }
 
 bool RTCPeerConnectionHandler::Initialize(
-    const blink::WebRTCConfiguration& server_configuration,
-    const blink::WebMediaConstraints& options,
-    blink::WebRTCSdpSemantics original_sdp_semantics_value) {
+    const webrtc::PeerConnectionInterface::RTCConfiguration&
+        server_configuration,
+    const blink::WebMediaConstraints& options) {
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
   DCHECK(frame_);
 
@@ -1061,10 +1003,7 @@
   peer_connection_tracker_ =
       RenderThreadImpl::current()->peer_connection_tracker()->AsWeakPtr();
 
-  sdp_semantics_ = server_configuration.sdp_semantics;
-  DCHECK(sdp_semantics_ == blink::WebRTCSdpSemantics::kPlanB ||
-         sdp_semantics_ == blink::WebRTCSdpSemantics::kUnifiedPlan);
-  GetNativeRtcConfiguration(server_configuration, &configuration_);
+  configuration_ = server_configuration;
 
   // Choose between RTC smoothness algorithm and prerenderer smoothing.
   // Prerenderer smoothing is turned on if RTC smoothness is turned off.
@@ -1093,16 +1032,12 @@
                                                      options, frame_);
   }
 
-  UMA_HISTOGRAM_ENUMERATION(
-      "WebRTC.PeerConnection.SdpSemanticRequested",
-      GetSdpSemanticRequested(original_sdp_semantics_value),
-      kSdpSemanticRequestedMax);
-
   return true;
 }
 
 bool RTCPeerConnectionHandler::InitializeForTest(
-    const blink::WebRTCConfiguration& server_configuration,
+    const webrtc::PeerConnectionInterface::RTCConfiguration&
+        server_configuration,
     const blink::WebMediaConstraints& options,
     const base::WeakPtr<PeerConnectionTracker>& peer_connection_tracker) {
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
@@ -1110,10 +1045,7 @@
   CHECK(!initialize_called_);
   initialize_called_ = true;
 
-  sdp_semantics_ = server_configuration.sdp_semantics;
-  DCHECK(sdp_semantics_ == blink::WebRTCSdpSemantics::kPlanB ||
-         sdp_semantics_ == blink::WebRTCSdpSemantics::kUnifiedPlan);
-  GetNativeRtcConfiguration(server_configuration, &configuration_);
+  configuration_ = server_configuration;
 
   peer_connection_observer_ =
       new Observer(weak_factory_.GetWeakPtr(), task_runner_);
@@ -1266,10 +1198,10 @@
       new WebRtcSetDescriptionObserverImpl(
           weak_factory_.GetWeakPtr(), request, peer_connection_tracker_,
           task_runner_, PeerConnectionTracker::ACTION_SET_LOCAL_DESCRIPTION,
-          sdp_semantics_));
+          configuration_.sdp_semantics));
 
   bool surface_receivers_only =
-      (sdp_semantics_ == blink::WebRTCSdpSemantics::kPlanB);
+      (configuration_.sdp_semantics == webrtc::SdpSemantics::kPlanB);
   scoped_refptr<webrtc::SetSessionDescriptionObserver> webrtc_observer(
       WebRtcSetLocalDescriptionObserverHandler::Create(
           task_runner_, signaling_thread(), native_peer_connection_,
@@ -1335,10 +1267,10 @@
       new WebRtcSetDescriptionObserverImpl(
           weak_factory_.GetWeakPtr(), request, peer_connection_tracker_,
           task_runner_, PeerConnectionTracker::ACTION_SET_REMOTE_DESCRIPTION,
-          sdp_semantics_));
+          configuration_.sdp_semantics));
 
   bool surface_receivers_only =
-      (sdp_semantics_ == blink::WebRTCSdpSemantics::kPlanB);
+      (configuration_.sdp_semantics == webrtc::SdpSemantics::kPlanB);
   rtc::scoped_refptr<webrtc::SetRemoteDescriptionObserverInterface>
       webrtc_observer(WebRtcSetRemoteDescriptionObserverHandler::Create(
                           task_runner_, signaling_thread(),
@@ -1433,21 +1365,42 @@
       std::move(description_cb), "pendingRemoteDescription");
 }
 
+const webrtc::PeerConnectionInterface::RTCConfiguration&
+RTCPeerConnectionHandler::GetConfiguration() const {
+  return configuration_;
+}
+
 webrtc::RTCErrorType RTCPeerConnectionHandler::SetConfiguration(
-    const blink::WebRTCConfiguration& blink_config) {
+    const webrtc::PeerConnectionInterface::RTCConfiguration& blink_config) {
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
   TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::setConfiguration");
-  GetNativeRtcConfiguration(blink_config, &configuration_);
+
+  // Update the configuration with the potentially modified fields
+  webrtc::PeerConnectionInterface::RTCConfiguration new_configuration =
+      configuration_;
+  new_configuration.servers = blink_config.servers;
+  new_configuration.type = blink_config.type;
+  new_configuration.bundle_policy = blink_config.bundle_policy;
+  new_configuration.rtcp_mux_policy = blink_config.rtcp_mux_policy;
+  new_configuration.sdp_semantics = blink_config.sdp_semantics;
+  new_configuration.certificates = blink_config.certificates;
+  new_configuration.ice_candidate_pool_size =
+      blink_config.ice_candidate_pool_size;
 
   if (peer_connection_tracker_)
-    peer_connection_tracker_->TrackSetConfiguration(this, configuration_);
+    peer_connection_tracker_->TrackSetConfiguration(this, new_configuration);
 
   webrtc::RTCError webrtc_error;
-  bool ret =
-      native_peer_connection_->SetConfiguration(configuration_, &webrtc_error);
+  bool ret = native_peer_connection_->SetConfiguration(new_configuration,
+                                                       &webrtc_error);
   // The boolean return value is made redundant by the error output param; just
   // DCHECK that they're consistent.
   DCHECK_EQ(ret, webrtc_error.type() == webrtc::RTCErrorType::NONE);
+
+  if (webrtc_error.ok()) {
+    configuration_ = new_configuration;
+  }
+
   return webrtc_error.type();
 }
 
@@ -1570,7 +1523,7 @@
 RTCPeerConnectionHandler::AddTransceiverWithTrack(
     const blink::WebMediaStreamTrack& web_track,
     const webrtc::RtpTransceiverInit& init) {
-  DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kUnifiedPlan);
+  DCHECK_EQ(configuration_.sdp_semantics, webrtc::SdpSemantics::kUnifiedPlan);
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
   std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef> track_ref =
       track_adapter_map_->GetOrCreateLocalTrackAdapter(web_track);
@@ -1617,7 +1570,7 @@
 RTCPeerConnectionHandler::AddTransceiverWithKind(
     std::string kind,
     const webrtc::RtpTransceiverInit& init) {
-  DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kUnifiedPlan);
+  DCHECK_EQ(configuration_.sdp_semantics, webrtc::SdpSemantics::kUnifiedPlan);
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
   cricket::MediaType media_type;
   if (kind == webrtc::MediaStreamTrackInterface::kAudioKind) {
@@ -1709,7 +1662,7 @@
   auto transceiver_state = std::move(transceiver_states[0]);
 
   std::unique_ptr<blink::WebRTCRtpTransceiver> web_transceiver;
-  if (sdp_semantics_ == blink::WebRTCSdpSemantics::kPlanB) {
+  if (configuration_.sdp_semantics == webrtc::SdpSemantics::kPlanB) {
     // Plan B: Create sender only.
     DCHECK(transceiver_state.sender_state());
     auto webrtc_sender = transceiver_state.sender_state()->webrtc_sender();
@@ -1722,7 +1675,7 @@
     web_transceiver = std::make_unique<RTCRtpSenderOnlyTransceiver>(
         std::make_unique<RTCRtpSender>(*rtp_senders_.back().get()));
   } else {
-    DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kUnifiedPlan);
+    DCHECK_EQ(configuration_.sdp_semantics, webrtc::SdpSemantics::kUnifiedPlan);
     // Unified Plan: Create or recycle a transceiver.
     auto transceiver = CreateOrUpdateTransceiver(std::move(transceiver_state));
     web_transceiver = std::move(transceiver);
@@ -1752,10 +1705,11 @@
   std::vector<rtc::scoped_refptr<webrtc::RtpTransceiverInterface>> transceivers;
   if (error_or_sender->ok()) {
     auto sender = error_or_sender->value();
-    if (sdp_semantics_ == blink::WebRTCSdpSemantics::kPlanB) {
+    if (configuration_.sdp_semantics == webrtc::SdpSemantics::kPlanB) {
       transceivers = {new SurfaceSenderStateOnly(sender)};
     } else {
-      DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kUnifiedPlan);
+      DCHECK_EQ(configuration_.sdp_semantics,
+                webrtc::SdpSemantics::kUnifiedPlan);
       rtc::scoped_refptr<webrtc::RtpTransceiverInterface>
           transceiver_for_sender = nullptr;
       for (const auto& transceiver :
@@ -1777,7 +1731,7 @@
 RTCPeerConnectionHandler::RemoveTrack(blink::WebRTCRtpSender* web_sender) {
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
   TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::RemoveTrack");
-  if (sdp_semantics_ == blink::WebRTCSdpSemantics::kPlanB) {
+  if (configuration_.sdp_semantics == webrtc::SdpSemantics::kPlanB) {
     if (RemoveTrackPlanB(web_sender)) {
       // In Plan B, null indicates success.
       std::unique_ptr<blink::WebRTCRtpTransceiver> web_transceiver = nullptr;
@@ -1787,13 +1741,13 @@
     // peerconnectioninterface.h is updated. https://crbug.com/webrtc/9534
     return webrtc::RTCError(webrtc::RTCErrorType::INVALID_STATE);
   }
-  DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kUnifiedPlan);
+  DCHECK_EQ(configuration_.sdp_semantics, webrtc::SdpSemantics::kUnifiedPlan);
   return RemoveTrackUnifiedPlan(web_sender);
 }
 
 bool RTCPeerConnectionHandler::RemoveTrackPlanB(
     blink::WebRTCRtpSender* web_sender) {
-  DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kPlanB);
+  DCHECK_EQ(configuration_.sdp_semantics, webrtc::SdpSemantics::kPlanB);
   auto web_track = web_sender->Track();
   auto it = FindSender(web_sender->Id());
   if (it == rtp_senders_.end())
@@ -1827,7 +1781,7 @@
 RTCPeerConnectionHandler::RemoveTrackUnifiedPlan(
     blink::WebRTCRtpSender* web_sender) {
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
-  DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kUnifiedPlan);
+  DCHECK_EQ(configuration_.sdp_semantics, webrtc::SdpSemantics::kUnifiedPlan);
   auto it = FindSender(web_sender->Id());
   if (it == rtp_senders_.end())
     return webrtc::RTCError(webrtc::RTCErrorType::INVALID_PARAMETER);
@@ -2139,7 +2093,7 @@
 void RTCPeerConnectionHandler::OnModifyTransceivers(
     std::vector<RtpTransceiverState> transceiver_states,
     bool is_remote_description) {
-  DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kUnifiedPlan);
+  DCHECK_EQ(configuration_.sdp_semantics, webrtc::SdpSemantics::kUnifiedPlan);
   std::vector<std::unique_ptr<blink::WebRTCRtpTransceiver>> web_transceivers(
       transceiver_states.size());
   PeerConnectionTracker::TransceiverUpdatedReason update_reason =
@@ -2342,7 +2296,7 @@
 std::unique_ptr<RTCRtpTransceiver>
 RTCPeerConnectionHandler::CreateOrUpdateTransceiver(
     RtpTransceiverState transceiver_state) {
-  DCHECK_EQ(sdp_semantics_, blink::WebRTCSdpSemantics::kUnifiedPlan);
+  DCHECK_EQ(configuration_.sdp_semantics, webrtc::SdpSemantics::kUnifiedPlan);
   DCHECK(transceiver_state.is_initialized());
   DCHECK(transceiver_state.sender_state());
   DCHECK(transceiver_state.receiver_state());
diff --git a/content/renderer/media/webrtc/rtc_peer_connection_handler.h b/content/renderer/media/webrtc/rtc_peer_connection_handler.h
index 9fff828..091723a 100644
--- a/content/renderer/media/webrtc/rtc_peer_connection_handler.h
+++ b/content/renderer/media/webrtc/rtc_peer_connection_handler.h
@@ -26,7 +26,6 @@
 #include "content/renderer/media/webrtc/webrtc_media_stream_track_adapter_map.h"
 #include "ipc/ipc_platform_file.h"
 #include "third_party/blink/public/platform/web_media_stream_source.h"
-#include "third_party/blink/public/platform/web_rtc_configuration.h"
 #include "third_party/blink/public/platform/web_rtc_peer_connection_handler.h"
 #include "third_party/blink/public/platform/web_rtc_stats_request.h"
 #include "third_party/blink/public/platform/web_rtc_stats_response.h"
@@ -103,15 +102,15 @@
 
   // Initialize method only used for unit test.
   bool InitializeForTest(
-      const blink::WebRTCConfiguration& server_configuration,
+      const webrtc::PeerConnectionInterface::RTCConfiguration&
+          server_configuration,
       const blink::WebMediaConstraints& options,
       const base::WeakPtr<PeerConnectionTracker>& peer_connection_tracker);
 
   // blink::WebRTCPeerConnectionHandler implementation
-  bool Initialize(
-      const blink::WebRTCConfiguration& server_configuration,
-      const blink::WebMediaConstraints& options,
-      blink::WebRTCSdpSemantics original_sdp_semantics_value) override;
+  bool Initialize(const webrtc::PeerConnectionInterface::RTCConfiguration&
+                      server_configuration,
+                  const blink::WebMediaConstraints& options) override;
 
   void CreateOffer(const blink::WebRTCSessionDescriptionRequest& request,
                    const blink::WebMediaConstraints& options) override;
@@ -137,8 +136,11 @@
   blink::WebRTCSessionDescription PendingLocalDescription() override;
   blink::WebRTCSessionDescription PendingRemoteDescription() override;
 
+  const webrtc::PeerConnectionInterface::RTCConfiguration& GetConfiguration()
+      const override;
   webrtc::RTCErrorType SetConfiguration(
-      const blink::WebRTCConfiguration& configuration) override;
+      const webrtc::PeerConnectionInterface::RTCConfiguration& configuration)
+      override;
   bool AddICECandidate(
       scoped_refptr<blink::WebRTCICECandidate> candidate) override;
   bool AddICECandidate(
@@ -340,11 +342,7 @@
   // In Plan B, senders and receivers are added or removed independently of one
   // another. In Unified Plan, senders and receivers are created in pairs as
   // transceivers. Transceivers may become inactive, but are never removed.
-  // The value of this member affects the behavior of some methods and what
-  // information is surfaced from webrtc. After Initialize(), this is the actual
-  // mode used, meaning "kDefault" is no longer a valid value.
   // TODO(hbos): Implement transceiver behaviors. https://crbug.com/777617
-  blink::WebRTCSdpSemantics sdp_semantics_;
   // Content layer correspondents of |webrtc::RtpSenderInterface|.
   std::vector<std::unique_ptr<RTCRtpSender>> rtp_senders_;
   // Content layer correspondents of |webrtc::RtpReceiverInterface|.
diff --git a/content/renderer/media/webrtc/rtc_peer_connection_handler_unittest.cc b/content/renderer/media/webrtc/rtc_peer_connection_handler_unittest.cc
index 06c3314..e281ec9 100644
--- a/content/renderer/media/webrtc/rtc_peer_connection_handler_unittest.cc
+++ b/content/renderer/media/webrtc/rtc_peer_connection_handler_unittest.cc
@@ -44,7 +44,6 @@
 #include "third_party/blink/public/platform/web_media_stream.h"
 #include "third_party/blink/public/platform/web_media_stream_source.h"
 #include "third_party/blink/public/platform/web_media_stream_track.h"
-#include "third_party/blink/public/platform/web_rtc_configuration.h"
 #include "third_party/blink/public/platform/web_rtc_data_channel_handler.h"
 #include "third_party/blink/public/platform/web_rtc_data_channel_init.h"
 #include "third_party/blink/public/platform/web_rtc_dtmf_sender_handler.h"
@@ -279,8 +278,8 @@
     mock_dependency_factory_.reset(new MockPeerConnectionDependencyFactory());
     pc_handler_ = CreateRTCPeerConnectionHandlerUnderTest();
     mock_tracker_.reset(new NiceMock<MockPeerConnectionTracker>());
-    blink::WebRTCConfiguration config;
-    config.sdp_semantics = blink::WebRTCSdpSemantics::kPlanB;
+    webrtc::PeerConnectionInterface::RTCConfiguration config;
+    config.sdp_semantics = webrtc::SdpSemantics::kPlanB;
     blink::WebMediaConstraints constraints;
     EXPECT_TRUE(pc_handler_->InitializeForTest(
         config, constraints, mock_tracker_.get()->AsWeakPtr()));
@@ -764,22 +763,19 @@
 }
 
 TEST_F(RTCPeerConnectionHandlerTest, setConfiguration) {
-  blink::WebRTCConfiguration config;
-  config.sdp_semantics = blink::WebRTCSdpSemantics::kPlanB;
+  webrtc::PeerConnectionInterface::RTCConfiguration config;
+  config.sdp_semantics = webrtc::SdpSemantics::kPlanB;
 
   EXPECT_CALL(*mock_tracker_.get(),
               TrackSetConfiguration(pc_handler_.get(), _));
-  // TODO(perkj): Test that the parameters in |config| can be translated when a
-  // WebRTCConfiguration can be constructed. It's WebKit class and can't be
-  // initialized from a test.
   EXPECT_EQ(webrtc::RTCErrorType::NONE, pc_handler_->SetConfiguration(config));
 }
 
 // Test that when an error occurs in SetConfiguration, it's converted to a
 // blink error and false is returned.
 TEST_F(RTCPeerConnectionHandlerTest, setConfigurationError) {
-  blink::WebRTCConfiguration config;
-  config.sdp_semantics = blink::WebRTCSdpSemantics::kPlanB;
+  webrtc::PeerConnectionInterface::RTCConfiguration config;
+  config.sdp_semantics = webrtc::SdpSemantics::kPlanB;
 
   mock_peer_connection_->set_setconfiguration_error_type(
       webrtc::RTCErrorType::INVALID_MODIFICATION);
diff --git a/content/renderer/media/webrtc/webrtc_uma_histograms_unittest.cc b/content/renderer/media/webrtc/webrtc_uma_histograms_unittest.cc
index 3f7a4fa..b0c44b8 100644
--- a/content/renderer/media/webrtc/webrtc_uma_histograms_unittest.cc
+++ b/content/renderer/media/webrtc/webrtc_uma_histograms_unittest.cc
@@ -20,38 +20,37 @@
   MOCK_METHOD1(LogUsage, void(blink::WebRTCAPIName));
 };
 
-TEST(PerSessionWebRTCAPIMetrics, NoCallOngoingGetUserMedia) {
+class PerSessionWebRTCAPIMetricsTest
+    : public testing::Test,
+      public testing::WithParamInterface<blink::WebRTCAPIName> {
+ public:
+  PerSessionWebRTCAPIMetricsTest() = default;
+  ~PerSessionWebRTCAPIMetricsTest() override = default;
+
+ protected:
   MockPerSessionWebRTCAPIMetrics metrics;
-  EXPECT_CALL(metrics, LogUsage(_)).Times(1);
-  metrics.LogUsageOnlyOnce(blink::WebRTCAPIName::kGetUserMedia);
+};
+
+TEST_P(PerSessionWebRTCAPIMetricsTest, NoCallOngoing) {
+  blink::WebRTCAPIName api_name = GetParam();
+  EXPECT_CALL(metrics, LogUsage(api_name)).Times(1);
+  metrics.LogUsageOnlyOnce(api_name);
 }
 
-TEST(PerSessionWebRTCAPIMetrics, CallOngoingGetUserMedia) {
-  MockPerSessionWebRTCAPIMetrics metrics;
+TEST_P(PerSessionWebRTCAPIMetricsTest, CallOngoing) {
+  blink::WebRTCAPIName api_name = GetParam();
   metrics.IncrementStreamCounter();
-  EXPECT_CALL(metrics, LogUsage(blink::WebRTCAPIName::kGetUserMedia)).Times(1);
-  metrics.LogUsageOnlyOnce(blink::WebRTCAPIName::kGetUserMedia);
+  EXPECT_CALL(metrics, LogUsage(api_name)).Times(1);
+  metrics.LogUsageOnlyOnce(api_name);
 }
 
-TEST(PerSessionWebRTCAPIMetrics, NoCallOngoingGetMediaDevices) {
-  MockPerSessionWebRTCAPIMetrics metrics;
-  EXPECT_CALL(metrics, LogUsage(_)).Times(1);
-  metrics.LogUsageOnlyOnce(blink::WebRTCAPIName::kEnumerateDevices);
-}
-
-TEST(PerSessionWebRTCAPIMetrics, CallOngoingGetMediaDevices) {
-  MockPerSessionWebRTCAPIMetrics metrics;
-  metrics.IncrementStreamCounter();
-  EXPECT_CALL(metrics, LogUsage(blink::WebRTCAPIName::kEnumerateDevices))
-      .Times(1);
-  metrics.LogUsageOnlyOnce(blink::WebRTCAPIName::kEnumerateDevices);
-}
-
-TEST(PerSessionWebRTCAPIMetrics, NoCallOngoingRTCPeerConnection) {
-  MockPerSessionWebRTCAPIMetrics metrics;
-  EXPECT_CALL(metrics, LogUsage(blink::WebRTCAPIName::kRTCPeerConnection));
-  metrics.LogUsageOnlyOnce(blink::WebRTCAPIName::kRTCPeerConnection);
-}
+INSTANTIATE_TEST_CASE_P(
+    PerSessionWebRTCAPIMetricsTest,
+    PerSessionWebRTCAPIMetricsTest,
+    ::testing::ValuesIn({blink::WebRTCAPIName::kGetUserMedia,
+                         blink::WebRTCAPIName::kGetDisplayMedia,
+                         blink::WebRTCAPIName::kEnumerateDevices,
+                         blink::WebRTCAPIName::kRTCPeerConnection}));
 
 TEST(PerSessionWebRTCAPIMetrics, NoCallOngoingMultiplePC) {
   MockPerSessionWebRTCAPIMetrics metrics;
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 6357e06..85d62b2 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -1645,15 +1645,13 @@
 }
 
 void RenderThreadImpl::OnProcessFinalRelease() {
-  if (on_channel_error_called())
-    return;
-  // The child process shutdown sequence is a request response based mechanism,
-  // where we send out an initial feeler request to the child process host
-  // instance in the browser to verify if it's ok to shutdown the child process.
-  // The browser then sends back a response if it's ok to shutdown. This avoids
-  // race conditions if the process refcount is 0 but there's an IPC message
-  // inflight that would addref it.
-  GetRendererHost()->ShutdownRequest();
+  // Do not shutdown the process. The browser process is the only one
+  // responsible for renderer shutdown.
+  //
+  // Renderer process used to request self shutdown. It has been removed. It
+  // caused race conditions, where the browser process was reusing renderer
+  // processes that were shutting down.
+  // See https://crbug.com/535246 or https://crbug.com/873541/#c8.
 }
 
 bool RenderThreadImpl::OnControlMessageReceived(const IPC::Message& msg) {
diff --git a/content/shell/test_runner/web_ax_object_proxy.cc b/content/shell/test_runner/web_ax_object_proxy.cc
index cc148f2c..c6e64d97 100644
--- a/content/shell/test_runner/web_ax_object_proxy.cc
+++ b/content/shell/test_runner/web_ax_object_proxy.cc
@@ -671,6 +671,8 @@
       .SetProperty("selectionEndLineNumber",
                    &WebAXObjectProxy::SelectionEndLineNumber)
       .SetProperty("isAtomic", &WebAXObjectProxy::IsAtomic)
+      .SetProperty("isAutofillAvailable",
+                   &WebAXObjectProxy::IsAutofillAvailable)
       .SetProperty("isBusy", &WebAXObjectProxy::IsBusy)
       .SetProperty("isRequired", &WebAXObjectProxy::IsRequired)
       .SetProperty("isEditable", &WebAXObjectProxy::IsEditable)
@@ -1064,6 +1066,11 @@
   return accessibility_object_.LiveRegionAtomic();
 }
 
+bool WebAXObjectProxy::IsAutofillAvailable() {
+  accessibility_object_.UpdateLayoutAndCheckValidity();
+  return accessibility_object_.IsAutofillAvailable();
+}
+
 bool WebAXObjectProxy::IsBusy() {
   accessibility_object_.UpdateLayoutAndCheckValidity();
   SparseAttributeAdapter attribute_adapter;
diff --git a/content/shell/test_runner/web_ax_object_proxy.h b/content/shell/test_runner/web_ax_object_proxy.h
index 79d25a6..5c67b14 100644
--- a/content/shell/test_runner/web_ax_object_proxy.h
+++ b/content/shell/test_runner/web_ax_object_proxy.h
@@ -94,6 +94,7 @@
   int SelectionEndLineNumber();
 
   bool IsAtomic();
+  bool IsAutofillAvailable();
   bool IsBusy();
   bool IsRequired();
   bool IsEditableRoot();
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index ddad876..e11b184 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -308,6 +308,7 @@
     "//ipc",
     "//media/mojo/clients",
     "//media/mojo/interfaces",
+    "//services/media_session/public/mojom",
     "//third_party/blink/public:blink",
     "//third_party/blink/public:test_support",
   ]
diff --git a/content/test/content_browser_test_test.cc b/content/test/content_browser_test_test.cc
index edbe899..55bfa62 100644
--- a/content/test/content_browser_test_test.cc
+++ b/content/test/content_browser_test_test.cc
@@ -69,7 +69,7 @@
 
 // Tests that browser tests print the callstack when a child process crashes.
 IN_PROC_BROWSER_TEST_F(ContentBrowserTest, RendererCrashCallStack) {
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_temp_dir;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   base::ScopedTempDir temp_dir;
   ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
   base::CommandLine new_test =
@@ -110,7 +110,7 @@
 
 // Tests that browser tests print the callstack on asserts.
 IN_PROC_BROWSER_TEST_F(ContentBrowserTest, BrowserCrashCallStack) {
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_temp_dir;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   base::ScopedTempDir temp_dir;
   ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
   base::CommandLine new_test =
diff --git a/content/test/data/sxg/fallback.html b/content/test/data/sxg/fallback.html
new file mode 100644
index 0000000..6ab3710
--- /dev/null
+++ b/content/test/data/sxg/fallback.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<title>Fallback URL response</title>
+<body>
+</body>
diff --git a/content/test/data/sxg/generate-test-sxgs.sh b/content/test/data/sxg/generate-test-sxgs.sh
index c020908e..1a8b24a 100755
--- a/content/test/data/sxg/generate-test-sxgs.sh
+++ b/content/test/data/sxg/generate-test-sxgs.sh
@@ -63,7 +63,7 @@
   -content test.html \
   -certificate prime256v1-sha256.public.pem \
   -certUrl https://cert.example.org/cert.msg \
-  -validityUrl https://test.example.org/resource.validity.msg \
+  -validityUrl https://test.example.com/resource.validity.msg \
   -privateKey prime256v1.key \
   -date 2018-03-12T05:53:20Z \
   -o test.example.com_invalid_test.sxg \
diff --git a/content/test/data/sxg/test.example.com_invalid_test.sxg b/content/test/data/sxg/test.example.com_invalid_test.sxg
index 8e3d869..8b0c965 100644
--- a/content/test/data/sxg/test.example.com_invalid_test.sxg
+++ b/content/test/data/sxg/test.example.com_invalid_test.sxg
Binary files differ
diff --git a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
index dc6bbb7..cfd45d06 100644
--- a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
+++ b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
@@ -434,6 +434,8 @@
         ['sierra', 'intel'], bug=705865)
     self.Fail('conformance2/textures/misc/tex-mipmap-levels.html',
         ['sierra', 'intel'], bug=705865)
+    self.Fail('conformance2/textures/misc/tex-mipmap-levels.html',
+        ['sierra', 'amd'], bug=870856)
 
     # Regressions in 10.13
     self.Fail('deqp/functional/gles3/fbocolorbuffer/tex2d_00.html',
@@ -646,15 +648,13 @@
     # self.Fail('conformance2/rendering/texture-switch-performance.html',
     #     ['mac', 'amd'], bug=735483)
 
-    # The following failure is a regression in the Mac AMD OpenGL
-    # driver on 10.13.6 specifically. Unfortunately when the test
-    # fails, it fails three times in a row, so we must mark it failing
-    # rather than flaky.
+    # The following two failures are a regression in the Mac AMD
+    # OpenGL driver on 10.13.6 specifically. Unfortunately when the
+    # tests fail, they fail three times in a row, so we must mark them
+    # failing rather than flaky.
     self.Fail('conformance2/textures/misc/tex-mipmap-levels.html',
         ['highsierra', 'amd'], bug=870856)
-    # The following flaky failure is also a regression on 10.13.6
-    # specifically.
-    self.Flaky('conformance2/textures/misc/tex-base-level-bug.html',
+    self.Fail('conformance2/textures/misc/tex-base-level-bug.html',
         ['highsierra', 'amd'], bug=870856)
     self.Fail('deqp/functional/gles3/shaderoperator/common_functions.html',
         ['mac', 'amd'], bug=820225)
diff --git a/content/test/ppapi/ppapi_test.cc b/content/test/ppapi/ppapi_test.cc
index 12a14ee..9e063875 100644
--- a/content/test/ppapi/ppapi_test.cc
+++ b/content/test/ppapi/ppapi_test.cc
@@ -67,7 +67,7 @@
 GURL PPAPITestBase::GetTestFileUrl(const std::string& test_case) {
   base::FilePath test_path;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_test_setup;
+    base::ScopedAllowBlockingForTesting allow_blocking;
 
     EXPECT_TRUE(base::PathService::Get(base::DIR_SOURCE_ROOT, &test_path));
     test_path = test_path.Append(FILE_PATH_LITERAL("ppapi"));
diff --git a/content/test/webui_resource_browsertest.cc b/content/test/webui_resource_browsertest.cc
index 14ac100..ae2ff77 100644
--- a/content/test/webui_resource_browsertest.cc
+++ b/content/test/webui_resource_browsertest.cc
@@ -27,7 +27,7 @@
   // Runs all test functions in |file|, waiting for them to complete.
   void RunTest(const base::FilePath& file) {
     {
-      base::ThreadRestrictions::ScopedAllowIO allow_io_for_file_existence_check;
+      base::ScopedAllowBlockingForTesting allow_blocking;
       ASSERT_TRUE(PathExists(file));
     }
 
diff --git a/device/fido/fido_request_handler_base.cc b/device/fido/fido_request_handler_base.cc
index 841428f9..f8b72ec4 100644
--- a/device/fido/fido_request_handler_base.cc
+++ b/device/fido/fido_request_handler_base.cc
@@ -19,6 +19,20 @@
 
 namespace device {
 
+// PlatformAuthenticatorInfo --------------------------
+
+PlatformAuthenticatorInfo::PlatformAuthenticatorInfo(
+    std::unique_ptr<FidoAuthenticator> authenticator_,
+    bool has_recognized_mac_touch_id_credential_)
+    : authenticator(std::move(authenticator_)),
+      has_recognized_mac_touch_id_credential(
+          has_recognized_mac_touch_id_credential_) {}
+PlatformAuthenticatorInfo::PlatformAuthenticatorInfo(
+    PlatformAuthenticatorInfo&&) = default;
+PlatformAuthenticatorInfo& PlatformAuthenticatorInfo::operator=(
+    PlatformAuthenticatorInfo&&) = default;
+PlatformAuthenticatorInfo::~PlatformAuthenticatorInfo() = default;
+
 // FidoRequestHandlerBase::TransportAvailabilityInfo --------------------------
 
 FidoRequestHandlerBase::TransportAvailabilityInfo::TransportAvailabilityInfo() =
@@ -208,13 +222,17 @@
 }
 
 void FidoRequestHandlerBase::SetPlatformAuthenticatorOrMarkUnavailable(
-    std::unique_ptr<FidoAuthenticator> authenticator) {
-  if (authenticator &&
+    base::Optional<PlatformAuthenticatorInfo> platform_authenticator_info) {
+  if (platform_authenticator_info &&
       base::ContainsKey(transport_availability_info_.available_transports,
                         FidoTransportProtocol::kInternal)) {
-    DCHECK(authenticator->AuthenticatorTransport() ==
-           FidoTransportProtocol::kInternal);
-    AddAuthenticator(std::move(authenticator));
+    DCHECK(platform_authenticator_info->authenticator);
+    DCHECK(
+        (platform_authenticator_info->authenticator->AuthenticatorTransport() ==
+         FidoTransportProtocol::kInternal));
+    transport_availability_info_.has_recognized_mac_touch_id_credential =
+        platform_authenticator_info->has_recognized_mac_touch_id_credential;
+    AddAuthenticator(std::move(platform_authenticator_info->authenticator));
   } else {
     transport_availability_info_.available_transports.erase(
         FidoTransportProtocol::kInternal);
diff --git a/device/fido/fido_request_handler_base.h b/device/fido/fido_request_handler_base.h
index 9060b7b..9871dbb7 100644
--- a/device/fido/fido_request_handler_base.h
+++ b/device/fido/fido_request_handler_base.h
@@ -33,6 +33,17 @@
 class FidoDevice;
 class FidoTask;
 
+struct COMPONENT_EXPORT(DEVICE_FIDO) PlatformAuthenticatorInfo {
+  PlatformAuthenticatorInfo(std::unique_ptr<FidoAuthenticator> authenticator,
+                            bool has_recognized_mac_touch_id_credential);
+  PlatformAuthenticatorInfo(PlatformAuthenticatorInfo&&);
+  PlatformAuthenticatorInfo& operator=(PlatformAuthenticatorInfo&& other);
+  ~PlatformAuthenticatorInfo();
+
+  std::unique_ptr<FidoAuthenticator> authenticator;
+  bool has_recognized_mac_touch_id_credential;
+};
+
 // Base class that handles device discovery/removal. Each FidoRequestHandlerBase
 // is owned by FidoRequestManager and its lifetime is equivalent to that of a
 // single WebAuthn request. For each authenticator, the per-device work is
@@ -126,7 +137,7 @@
   // |AuthenticatorImpl| must call this method after invoking |set_oberver| even
   // if no platform authenticator is available, in which case it passes nullptr.
   void SetPlatformAuthenticatorOrMarkUnavailable(
-      std::unique_ptr<FidoAuthenticator> authenticator);
+      base::Optional<PlatformAuthenticatorInfo> platform_authenticator_info);
 
   TransportAvailabilityInfo& transport_availability_info() {
     return transport_availability_info_;
diff --git a/device/fido/fido_request_handler_unittest.cc b/device/fido/fido_request_handler_unittest.cc
index 31e71768..e700915b 100644
--- a/device/fido/fido_request_handler_unittest.cc
+++ b/device/fido/fido_request_handler_unittest.cc
@@ -55,12 +55,18 @@
   ~TestTransportAvailabilityObserver() override {}
 
   void WaitForAndExpectAvailableTransportsAre(
-      base::flat_set<FidoTransportProtocol> expected_transports) {
+      base::flat_set<FidoTransportProtocol> expected_transports,
+      base::Optional<bool> has_recognized_mac_touch_id_credential =
+          base::nullopt) {
     transport_availability_notification_receiver_.WaitForCallback();
     auto result =
         std::get<0>(*transport_availability_notification_receiver_.result());
     EXPECT_THAT(result.available_transports,
                 ::testing::UnorderedElementsAreArray(expected_transports));
+    if (has_recognized_mac_touch_id_credential) {
+      EXPECT_EQ(*has_recognized_mac_touch_id_credential,
+                result.has_recognized_mac_touch_id_credential);
+    }
   }
 
  protected:
@@ -192,7 +198,7 @@
             {FidoTransportProtocol::kUsbHumanInterfaceDevice,
              FidoTransportProtocol::kBluetoothLowEnergy}),
         cb_.callback());
-    handler->SetPlatformAuthenticatorOrMarkUnavailable(nullptr);
+    handler->SetPlatformAuthenticatorOrMarkUnavailable(base::nullopt);
     return handler;
   }
 
@@ -403,10 +409,43 @@
       callback().callback());
   request_handler->set_observer(&observer);
   request_handler->SetPlatformAuthenticatorOrMarkUnavailable(
-      std::move(authenticator));
+      PlatformAuthenticatorInfo(std::move(authenticator), false));
 
   observer.WaitForAndExpectAvailableTransportsAre(
-      {FidoTransportProtocol::kInternal});
+      {FidoTransportProtocol::kInternal},
+      false /* has_recognized_mac_touch_id_credential */);
+
+  callback().WaitForCallback();
+  EXPECT_TRUE(request_handler->is_complete());
+  EXPECT_EQ(FidoReturnCode::kSuccess, callback().status());
+}
+
+// SetPlatformAuthenticatorOrMarkUnavailable should propagate the
+// has_recognized_mac_touch_id_credential field.
+TEST_F(FidoRequestHandlerTest,
+       TestSetPlatformAuthenticatorHasTouchIdCredential) {
+  // A platform authenticator usually wouldn't usually use a FidoDevice, but
+  // that's not the point of the test here. The test is only trying to ensure
+  // the authenticator gets injected and used.
+  auto device = MockFidoDevice::MakeCtap();
+  EXPECT_CALL(*device, GetId()).WillRepeatedly(testing::Return("device0"));
+  // Device returns success response.
+  device->ExpectRequestAndRespondWith(std::vector<uint8_t>(),
+                                      CreateFakeSuccessDeviceResponse());
+  device->SetDeviceTransport(FidoTransportProtocol::kInternal);
+  auto authenticator = std::make_unique<FakeFidoAuthenticator>(device.get());
+
+  TestTransportAvailabilityObserver observer;
+  auto request_handler = std::make_unique<FakeFidoRequestHandler>(
+      base::flat_set<FidoTransportProtocol>({FidoTransportProtocol::kInternal}),
+      callback().callback());
+  request_handler->set_observer(&observer);
+  request_handler->SetPlatformAuthenticatorOrMarkUnavailable(
+      PlatformAuthenticatorInfo(std::move(authenticator), true));
+
+  observer.WaitForAndExpectAvailableTransportsAre(
+      {FidoTransportProtocol::kInternal},
+      true /* has_recognized_mac_touch_id_credential */);
 
   callback().WaitForCallback();
   EXPECT_TRUE(request_handler->is_complete());
@@ -419,7 +458,7 @@
       base::flat_set<FidoTransportProtocol>({FidoTransportProtocol::kInternal}),
       callback().callback());
   request_handler->set_observer(&observer);
-  request_handler->SetPlatformAuthenticatorOrMarkUnavailable(nullptr);
+  request_handler->SetPlatformAuthenticatorOrMarkUnavailable(base::nullopt);
 
   observer.WaitForAndExpectAvailableTransportsAre({});
 }
diff --git a/device/fido/get_assertion_handler_unittest.cc b/device/fido/get_assertion_handler_unittest.cc
index f65ec41..cdc8c1e 100644
--- a/device/fido/get_assertion_handler_unittest.cc
+++ b/device/fido/get_assertion_handler_unittest.cc
@@ -142,11 +142,12 @@
   }
 
  protected:
-  std::unique_ptr<FidoAuthenticator> CreatePlatformAuthenticator() {
+  base::Optional<PlatformAuthenticatorInfo> CreatePlatformAuthenticator() {
     if (!mock_platform_device_)
-      return nullptr;
-    return std::make_unique<FidoDeviceAuthenticator>(
-        mock_platform_device_.get());
+      return base::nullopt;
+    return PlatformAuthenticatorInfo(
+        std::make_unique<FidoDeviceAuthenticator>(mock_platform_device_.get()),
+        false /* has_recognized_mac_touch_id_credential_available */);
   }
 
   base::test::ScopedTaskEnvironment scoped_task_environment_{
@@ -162,6 +163,17 @@
       GetTestableTransportProtocols();
 };
 
+TEST_F(FidoGetAssertionHandlerTest, TransportAvailabilityInfo) {
+  auto request_handler =
+      CreateGetAssertionHandlerWithRequest(CtapGetAssertionRequest(
+          test_data::kRelyingPartyId, test_data::kClientDataHash));
+
+  EXPECT_EQ(FidoRequestHandlerBase::RequestType::kGetAssertion,
+            request_handler->transport_availability_info().request_type);
+  EXPECT_EQ(test_data::kRelyingPartyId,
+            request_handler->transport_availability_info().rp_id);
+}
+
 TEST_F(FidoGetAssertionHandlerTest, CtapRequestOnSingleDevice) {
   auto request_handler = CreateGetAssertionHandlerCtap();
   discovery()->WaitForCallToStartAndSimulateSuccess();
diff --git a/device/fido/get_assertion_request_handler.cc b/device/fido/get_assertion_request_handler.cc
index d43fea3..73dd5867 100644
--- a/device/fido/get_assertion_request_handler.cc
+++ b/device/fido/get_assertion_request_handler.cc
@@ -159,7 +159,7 @@
           std::move(completion_callback)),
       request_(std::move(request)),
       weak_factory_(this) {
-  transport_availability_info().rp_id = request.rp_id();
+  transport_availability_info().rp_id = request_.rp_id();
   transport_availability_info().request_type =
       FidoRequestHandlerBase::RequestType::kGetAssertion;
 
diff --git a/device/fido/mac/authenticator.h b/device/fido/mac/authenticator.h
index 15cec5e..d03d06f 100644
--- a/device/fido/mac/authenticator.h
+++ b/device/fido/mac/authenticator.h
@@ -44,6 +44,9 @@
 
   ~TouchIdAuthenticator() override;
 
+  bool HasCredentialForGetAssertionRequest(
+      const CtapGetAssertionRequest& request);
+
   // FidoAuthenticator
   void MakeCredential(CtapMakeCredentialRequest request,
                       MakeCredentialCallback callback) override;
diff --git a/device/fido/mac/authenticator.mm b/device/fido/mac/authenticator.mm
index 11d3757..d422d58 100644
--- a/device/fido/mac/authenticator.mm
+++ b/device/fido/mac/authenticator.mm
@@ -4,12 +4,15 @@
 
 #include "device/fido/mac/authenticator.h"
 
+#include <algorithm>
+
 #import <LocalAuthentication/LocalAuthentication.h>
 
 #include "base/feature_list.h"
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
 #include "base/optional.h"
+#include "base/stl_util.h"
 #include "base/strings/string_piece.h"
 #include "device/base/features.h"
 #include "device/fido/authenticator_supported_options.h"
@@ -55,6 +58,35 @@
 
 TouchIdAuthenticator::~TouchIdAuthenticator() = default;
 
+bool TouchIdAuthenticator::HasCredentialForGetAssertionRequest(
+    const CtapGetAssertionRequest& request) {
+  if (__builtin_available(macOS 10.12.2, *)) {
+    std::set<std::vector<uint8_t>> allow_list_credential_ids;
+    // Extract applicable credential IDs from the allowList, if the request has
+    // one. If not, any credential matching the RP works.
+    if (request.allow_list()) {
+      for (const auto& credential_descriptor : *request.allow_list()) {
+        if (credential_descriptor.credential_type() !=
+            CredentialType::kPublicKey)
+          continue;
+
+        if (!credential_descriptor.transports().empty() &&
+            !base::ContainsKey(credential_descriptor.transports(),
+                               FidoTransportProtocol::kInternal))
+          continue;
+
+        allow_list_credential_ids.insert(credential_descriptor.id());
+      }
+    }
+
+    return FindCredentialInKeychain(keychain_access_group_, metadata_secret_,
+                                    request.rp_id(), allow_list_credential_ids,
+                                    nullptr /* LAContext */) != base::nullopt;
+  }
+  NOTREACHED();
+  return false;
+}
+
 void TouchIdAuthenticator::MakeCredential(CtapMakeCredentialRequest request,
                                           MakeCredentialCallback callback) {
   if (__builtin_available(macOS 10.12.2, *)) {
diff --git a/device/fido/mac/get_assertion_operation.mm b/device/fido/mac/get_assertion_operation.mm
index 0f93bad..af51174 100644
--- a/device/fido/mac/get_assertion_operation.mm
+++ b/device/fido/mac/get_assertion_operation.mm
@@ -12,6 +12,7 @@
 #include "base/mac/foundation_util.h"
 #include "base/mac/mac_logging.h"
 #include "base/mac/scoped_cftyperef.h"
+#include "base/stl_util.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "device/fido/fido_constants.h"
@@ -55,9 +56,14 @@
   std::set<std::vector<uint8_t>> allowed_credential_ids;
   if (request().allow_list()) {
     for (const PublicKeyCredentialDescriptor& desc : *request().allow_list()) {
-      if (desc.credential_type() != CredentialType::kPublicKey) {
+      if (desc.credential_type() != CredentialType::kPublicKey)
         continue;
-      }
+
+      if (!desc.transports().empty() &&
+          !base::ContainsKey(desc.transports(),
+                             FidoTransportProtocol::kInternal))
+        continue;
+
       allowed_credential_ids.insert(desc.id());
     }
   }
diff --git a/device/fido/mac/keychain.mm b/device/fido/mac/keychain.mm
index 33f542b..d2e0fa79 100644
--- a/device/fido/mac/keychain.mm
+++ b/device/fido/mac/keychain.mm
@@ -8,6 +8,7 @@
 
 #include "base/mac/foundation_util.h"
 #include "base/mac/mac_logging.h"
+#include "base/stl_util.h"
 #include "base/strings/sys_string_conversions.h"
 #include "device/fido/mac/credential_metadata.h"
 
@@ -135,7 +136,7 @@
                              CFDataGetBytePtr(application_label) +
                                  CFDataGetLength(application_label));
     if (credential_id_filter.empty() ||
-        credential_id_filter.find(cid) != credential_id_filter.end()) {
+        base::ContainsKey(credential_id_filter, cid)) {
       private_key.reset(key, base::scoped_policy::RETAIN);
       credential_id = std::move(cid);
       break;
diff --git a/device/fido/make_credential_handler_unittest.cc b/device/fido/make_credential_handler_unittest.cc
index 723ba2a..e51a7a4e 100644
--- a/device/fido/make_credential_handler_unittest.cc
+++ b/device/fido/make_credential_handler_unittest.cc
@@ -141,11 +141,12 @@
   }
 
  protected:
-  std::unique_ptr<FidoAuthenticator> CreatePlatformAuthenticator() {
+  base::Optional<PlatformAuthenticatorInfo> CreatePlatformAuthenticator() {
     if (!mock_platform_device_)
-      return nullptr;
-    return std::make_unique<FidoDeviceAuthenticator>(
-        mock_platform_device_.get());
+      return base::nullopt;
+    return PlatformAuthenticatorInfo(
+        std::make_unique<FidoDeviceAuthenticator>(mock_platform_device_.get()),
+        false /* has_recognized_mac_touch_id_credential_available */);
   }
 
   base::test::ScopedFeatureList scoped_feature_list_;
@@ -161,6 +162,15 @@
       GetTestableTransportProtocols();
 };
 
+TEST_F(FidoMakeCredentialHandlerTest, TransportAvailabilityInfo) {
+  auto request_handler = CreateMakeCredentialHandler();
+
+  EXPECT_EQ(FidoRequestHandlerBase::RequestType::kMakeCredential,
+            request_handler->transport_availability_info().request_type);
+  EXPECT_EQ(test_data::kRelyingPartyId,
+            request_handler->transport_availability_info().rp_id);
+}
+
 TEST_F(FidoMakeCredentialHandlerTest, TestCtap2MakeCredentialWithFlagEnabled) {
   auto request_handler = CreateMakeCredentialHandler();
   discovery()->WaitForCallToStartAndSimulateSuccess();
diff --git a/device/fido/make_credential_request_handler.cc b/device/fido/make_credential_request_handler.cc
index 924faa5..6586589d 100644
--- a/device/fido/make_credential_request_handler.cc
+++ b/device/fido/make_credential_request_handler.cc
@@ -108,7 +108,7 @@
       authenticator_selection_criteria_(
           std::move(authenticator_selection_criteria)),
       weak_factory_(this) {
-  transport_availability_info().rp_id = request.rp().rp_id();
+  transport_availability_info().rp_id = request_parameter_.rp().rp_id();
   transport_availability_info().request_type =
       FidoRequestHandlerBase::RequestType::kMakeCredential;
   Start();
diff --git a/device/fido/strings/fido_strings_am.xtb b/device/fido/strings/fido_strings_am.xtb
index 92406ec2..146c2ab 100644
--- a/device/fido/strings/fido_strings_am.xtb
+++ b/device/fido/strings/fido_strings_am.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="am">
+<translation id="6082592655150610743"><ph name="APP_NAME" /> ላይ ማንነትዎን ያረጋግጡ</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_ar.xtb b/device/fido/strings/fido_strings_ar.xtb
index 198ea62..28a99e14 100644
--- a/device/fido/strings/fido_strings_ar.xtb
+++ b/device/fido/strings/fido_strings_ar.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ar">
+<translation id="6082592655150610743">إثبات هويتك من خلال <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_bg.xtb b/device/fido/strings/fido_strings_bg.xtb
index 6681995..180f20bb 100644
--- a/device/fido/strings/fido_strings_bg.xtb
+++ b/device/fido/strings/fido_strings_bg.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="bg">
+<translation id="6082592655150610743">потвърди самоличността ви в(ъв) <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_ca.xtb b/device/fido/strings/fido_strings_ca.xtb
index 71cdd772..36c2e57e 100644
--- a/device/fido/strings/fido_strings_ca.xtb
+++ b/device/fido/strings/fido_strings_ca.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ca">
+<translation id="6082592655150610743">verificar la teva identitat a <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_cs.xtb b/device/fido/strings/fido_strings_cs.xtb
index dc153a85..929ba6d 100644
--- a/device/fido/strings/fido_strings_cs.xtb
+++ b/device/fido/strings/fido_strings_cs.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="cs">
+<translation id="6082592655150610743">ověřit vaši identitu v aplikaci <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_da.xtb b/device/fido/strings/fido_strings_da.xtb
index 1256832..5d86e40 100644
--- a/device/fido/strings/fido_strings_da.xtb
+++ b/device/fido/strings/fido_strings_da.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="da">
+<translation id="6082592655150610743">bekræfte din identitet i <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_de.xtb b/device/fido/strings/fido_strings_de.xtb
index 43dd909..44b6bb1 100644
--- a/device/fido/strings/fido_strings_de.xtb
+++ b/device/fido/strings/fido_strings_de.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="de">
+<translation id="6082592655150610743">Ihre Identität bei <ph name="APP_NAME" /> bestätigen</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_el.xtb b/device/fido/strings/fido_strings_el.xtb
index 1b096642..0abd0958 100644
--- a/device/fido/strings/fido_strings_el.xtb
+++ b/device/fido/strings/fido_strings_el.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="el">
+<translation id="6082592655150610743">επαληθεύσει την ταυτότητά σας στην εφαρμογή <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_es-419.xtb b/device/fido/strings/fido_strings_es-419.xtb
index b652ed0..0a24869 100644
--- a/device/fido/strings/fido_strings_es-419.xtb
+++ b/device/fido/strings/fido_strings_es-419.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="es-419">
+<translation id="6082592655150610743">verificar tu identidad en <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_es.xtb b/device/fido/strings/fido_strings_es.xtb
index 4d4f400..e7e29f7 100644
--- a/device/fido/strings/fido_strings_es.xtb
+++ b/device/fido/strings/fido_strings_es.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="es">
+<translation id="6082592655150610743">verificar tu identidad en <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_et.xtb b/device/fido/strings/fido_strings_et.xtb
index ab777bc5..a0a94bf 100644
--- a/device/fido/strings/fido_strings_et.xtb
+++ b/device/fido/strings/fido_strings_et.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="et">
+<translation id="6082592655150610743">rakenduses <ph name="APP_NAME" /> teie isikut kinnitada</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_fa.xtb b/device/fido/strings/fido_strings_fa.xtb
index 4cff15d..1f8513b8 100644
--- a/device/fido/strings/fido_strings_fa.xtb
+++ b/device/fido/strings/fido_strings_fa.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="fa">
+<translation id="6082592655150610743">هویتتان را در <ph name="APP_NAME" /> تأیید کنید</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_fi.xtb b/device/fido/strings/fido_strings_fi.xtb
index 60ba9aa..e64fe8f 100644
--- a/device/fido/strings/fido_strings_fi.xtb
+++ b/device/fido/strings/fido_strings_fi.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="fi">
+<translation id="6082592655150610743">vahvista henkilöllisyytesi sovelluksessa <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_fil.xtb b/device/fido/strings/fido_strings_fil.xtb
index 8f6a880..dfdecc4 100644
--- a/device/fido/strings/fido_strings_fil.xtb
+++ b/device/fido/strings/fido_strings_fil.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="fil">
+<translation id="6082592655150610743">i-verify ang iyong pagkakakilanlan sa <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_fr.xtb b/device/fido/strings/fido_strings_fr.xtb
index bf48975a..5ca987ec 100644
--- a/device/fido/strings/fido_strings_fr.xtb
+++ b/device/fido/strings/fido_strings_fr.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="fr">
+<translation id="6082592655150610743">valider votre identité sur <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_hi.xtb b/device/fido/strings/fido_strings_hi.xtb
index 279503cd..680928e 100644
--- a/device/fido/strings/fido_strings_hi.xtb
+++ b/device/fido/strings/fido_strings_hi.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="hi">
+<translation id="6082592655150610743"><ph name="APP_NAME" /> पर अपनी पहचान की पुष्टि करें</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_hr.xtb b/device/fido/strings/fido_strings_hr.xtb
index 9ec62af..a228982 100644
--- a/device/fido/strings/fido_strings_hr.xtb
+++ b/device/fido/strings/fido_strings_hr.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="hr">
+<translation id="6082592655150610743">potvrdi svoj identitet na <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_hu.xtb b/device/fido/strings/fido_strings_hu.xtb
index bdc02ee..d4f2950 100644
--- a/device/fido/strings/fido_strings_hu.xtb
+++ b/device/fido/strings/fido_strings_hu.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="hu">
+<translation id="6082592655150610743">ellenőrizni az Ön személyazonosságát a következőben: <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_id.xtb b/device/fido/strings/fido_strings_id.xtb
index 5f2882d..14627d1 100644
--- a/device/fido/strings/fido_strings_id.xtb
+++ b/device/fido/strings/fido_strings_id.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="id">
+<translation id="6082592655150610743">verifikasi identitas Anda di <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_it.xtb b/device/fido/strings/fido_strings_it.xtb
index e7df702..73fcd97 100644
--- a/device/fido/strings/fido_strings_it.xtb
+++ b/device/fido/strings/fido_strings_it.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="it">
+<translation id="6082592655150610743">verificare la tua identità su <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_iw.xtb b/device/fido/strings/fido_strings_iw.xtb
index a29d4ad..d928685c 100644
--- a/device/fido/strings/fido_strings_iw.xtb
+++ b/device/fido/strings/fido_strings_iw.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="iw">
+<translation id="6082592655150610743">אימות הזהות שלך ב-<ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_ja.xtb b/device/fido/strings/fido_strings_ja.xtb
index d8a3543..fd0ef49 100644
--- a/device/fido/strings/fido_strings_ja.xtb
+++ b/device/fido/strings/fido_strings_ja.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ja">
+<translation id="6082592655150610743"><ph name="APP_NAME" /> での本人確認</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_ko.xtb b/device/fido/strings/fido_strings_ko.xtb
index 558b05b..6ed0e4e 100644
--- a/device/fido/strings/fido_strings_ko.xtb
+++ b/device/fido/strings/fido_strings_ko.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ko">
+<translation id="6082592655150610743"><ph name="APP_NAME" />에서 본인 확인을 진행</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_lt.xtb b/device/fido/strings/fido_strings_lt.xtb
index f20c0fa2..1e8ef93 100644
--- a/device/fido/strings/fido_strings_lt.xtb
+++ b/device/fido/strings/fido_strings_lt.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="lt">
+<translation id="6082592655150610743">patvirtinkite savo tapatybę programoje „<ph name="APP_NAME" />“</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_lv.xtb b/device/fido/strings/fido_strings_lv.xtb
index 6f3afbc..f5237b59 100644
--- a/device/fido/strings/fido_strings_lv.xtb
+++ b/device/fido/strings/fido_strings_lv.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="lv">
+<translation id="6082592655150610743">verificēt jūsu identitāti vietnē <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_ml.xtb b/device/fido/strings/fido_strings_ml.xtb
index e01197e..7930d88 100644
--- a/device/fido/strings/fido_strings_ml.xtb
+++ b/device/fido/strings/fido_strings_ml.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ml">
+<translation id="6082592655150610743"><ph name="APP_NAME" />-ൽ നിങ്ങളുടെ ഐഡന്റിറ്റി പരിശോധിച്ച് ഉറപ്പിക്കുക</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_mr.xtb b/device/fido/strings/fido_strings_mr.xtb
index b137924e..f2244166 100644
--- a/device/fido/strings/fido_strings_mr.xtb
+++ b/device/fido/strings/fido_strings_mr.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="mr">
+<translation id="6082592655150610743"><ph name="APP_NAME" /> वर तुमच्या ओळखीची पडताळणी करा</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_ms.xtb b/device/fido/strings/fido_strings_ms.xtb
index 518685dd..d6acdfd 100644
--- a/device/fido/strings/fido_strings_ms.xtb
+++ b/device/fido/strings/fido_strings_ms.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ms">
+<translation id="6082592655150610743">sahkan identiti anda pada <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_nl.xtb b/device/fido/strings/fido_strings_nl.xtb
index 05ab957..dda9a332 100644
--- a/device/fido/strings/fido_strings_nl.xtb
+++ b/device/fido/strings/fido_strings_nl.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="nl">
+<translation id="6082592655150610743">je identiteit te verifiëren op <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_no.xtb b/device/fido/strings/fido_strings_no.xtb
index ede4de30..5df8dfadb 100644
--- a/device/fido/strings/fido_strings_no.xtb
+++ b/device/fido/strings/fido_strings_no.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="no">
+<translation id="6082592655150610743">bekrefte identiteten din i <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_pl.xtb b/device/fido/strings/fido_strings_pl.xtb
index 1bf17bd5..f8f09b7 100644
--- a/device/fido/strings/fido_strings_pl.xtb
+++ b/device/fido/strings/fido_strings_pl.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="pl">
+<translation id="6082592655150610743">zweryfikować Twoją tożsamość na <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_pt-BR.xtb b/device/fido/strings/fido_strings_pt-BR.xtb
index de39dfa..584b5bd 100644
--- a/device/fido/strings/fido_strings_pt-BR.xtb
+++ b/device/fido/strings/fido_strings_pt-BR.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="pt-BR">
+<translation id="6082592655150610743">verificar sua identidade no <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_pt-PT.xtb b/device/fido/strings/fido_strings_pt-PT.xtb
index 0b98ee77..e5ecb9d 100644
--- a/device/fido/strings/fido_strings_pt-PT.xtb
+++ b/device/fido/strings/fido_strings_pt-PT.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="pt-PT">
+<translation id="6082592655150610743">validar a sua identidade em <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_ro.xtb b/device/fido/strings/fido_strings_ro.xtb
index 7129eb4..444c4ad 100644
--- a/device/fido/strings/fido_strings_ro.xtb
+++ b/device/fido/strings/fido_strings_ro.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ro">
+<translation id="6082592655150610743">confirmă-ți identitatea în <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_ru.xtb b/device/fido/strings/fido_strings_ru.xtb
index 6dfaa442..81f214b 100644
--- a/device/fido/strings/fido_strings_ru.xtb
+++ b/device/fido/strings/fido_strings_ru.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ru">
+<translation id="6082592655150610743">подтвердить вашу личность в приложении <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_sl.xtb b/device/fido/strings/fido_strings_sl.xtb
index 31b5a1a..2736e96 100644
--- a/device/fido/strings/fido_strings_sl.xtb
+++ b/device/fido/strings/fido_strings_sl.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="sl">
+<translation id="6082592655150610743">preveriti vašo identiteto v aplikaciji <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_sr.xtb b/device/fido/strings/fido_strings_sr.xtb
index 984d7192..5109025 100644
--- a/device/fido/strings/fido_strings_sr.xtb
+++ b/device/fido/strings/fido_strings_sr.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="sr">
+<translation id="6082592655150610743">верификује ваш идентитет у апликацији <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_sv.xtb b/device/fido/strings/fido_strings_sv.xtb
index 9a787b8..66c9752e 100644
--- a/device/fido/strings/fido_strings_sv.xtb
+++ b/device/fido/strings/fido_strings_sv.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="sv">
+<translation id="6082592655150610743">verifiera din identitet på <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_sw.xtb b/device/fido/strings/fido_strings_sw.xtb
index 9aa61cb..2b0b594e 100644
--- a/device/fido/strings/fido_strings_sw.xtb
+++ b/device/fido/strings/fido_strings_sw.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="sw">
+<translation id="6082592655150610743">thibitisha utambulisho wako kwenye <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_ta.xtb b/device/fido/strings/fido_strings_ta.xtb
index c983c75f2..8f0cfb409 100644
--- a/device/fido/strings/fido_strings_ta.xtb
+++ b/device/fido/strings/fido_strings_ta.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ta">
+<translation id="6082592655150610743"><ph name="APP_NAME" /> இல் உங்கள் அடையாளத்தைச் சரிபார்க்கவும்</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_th.xtb b/device/fido/strings/fido_strings_th.xtb
index dbe6a601..71200bf 100644
--- a/device/fido/strings/fido_strings_th.xtb
+++ b/device/fido/strings/fido_strings_th.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="th">
+<translation id="6082592655150610743">ยืนยันตัวตนของคุณใน <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_tr.xtb b/device/fido/strings/fido_strings_tr.xtb
index d99480c0..fb9120f89 100644
--- a/device/fido/strings/fido_strings_tr.xtb
+++ b/device/fido/strings/fido_strings_tr.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="tr">
+<translation id="6082592655150610743"><ph name="APP_NAME" /> uygulamasında kimliğinizi doğrulamak</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_uk.xtb b/device/fido/strings/fido_strings_uk.xtb
index 6e80099d..50eee6c 100644
--- a/device/fido/strings/fido_strings_uk.xtb
+++ b/device/fido/strings/fido_strings_uk.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="uk">
+<translation id="6082592655150610743">підтвердити вашу особу в додатку <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_vi.xtb b/device/fido/strings/fido_strings_vi.xtb
index 8a42ab1..94960f9b 100644
--- a/device/fido/strings/fido_strings_vi.xtb
+++ b/device/fido/strings/fido_strings_vi.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="vi">
+<translation id="6082592655150610743">xác minh danh tính của bạn trên <ph name="APP_NAME" /></translation>
 </translationbundle>
\ No newline at end of file
diff --git a/device/fido/strings/fido_strings_zh-TW.xtb b/device/fido/strings/fido_strings_zh-TW.xtb
index 3e0c306..5c9de02 100644
--- a/device/fido/strings/fido_strings_zh-TW.xtb
+++ b/device/fido/strings/fido_strings_zh-TW.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-TW">
+<translation id="6082592655150610743">向 <ph name="APP_NAME" /> 驗證你的身分</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/BUILD.gn b/extensions/BUILD.gn
index bbf20653..e7d9de91 100644
--- a/extensions/BUILD.gn
+++ b/extensions/BUILD.gn
@@ -145,6 +145,7 @@
     "//extensions/browser:test_support",
     "//extensions/browser/api:api_registration",
     "//extensions/common",
+    "//extensions/common:core_api_provider",
     "//extensions/common/api",
     "//extensions/common/api:extensions_features",
     "//net:test_support",
diff --git a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc
index 97c9f6c..03bc89b 100644
--- a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc
+++ b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc
@@ -109,10 +109,9 @@
   flat::FinishExtensionIndexedRulesetBuffer(builder_, root_offset);
 }
 
-FlatRulesetIndexer::SerializedData FlatRulesetIndexer::GetData() {
+base::span<const uint8_t> FlatRulesetIndexer::GetData() {
   DCHECK(finished_);
-  return SerializedData(builder_.GetBufferPointer(),
-                        base::strict_cast<size_t>(builder_.GetSize()));
+  return base::make_span(builder_.GetBufferPointer(), builder_.GetSize());
 }
 
 FlatRulesetIndexer::UrlPatternIndexBuilder* FlatRulesetIndexer::GetBuilder(
diff --git a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h
index c0abf29..d71e543 100644
--- a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h
+++ b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h
@@ -6,9 +6,9 @@
 #define EXTENSIONS_BROWSER_API_DECLARATIVE_NET_REQUEST_FLAT_RULESET_INDEXER_H_
 
 #include <stddef.h>
-#include <utility>
 #include <vector>
 
+#include "base/containers/span.h"
 #include "base/macros.h"
 #include "components/url_pattern_index/url_pattern_index.h"
 #include "extensions/browser/api/declarative_net_request/flat/extension_ruleset_generated.h"
@@ -24,9 +24,6 @@
 // Request API.
 class FlatRulesetIndexer {
  public:
-  // Represents the address and the size of the buffer storing the ruleset.
-  using SerializedData = std::pair<const uint8_t*, size_t>;
-
   FlatRulesetIndexer();
   ~FlatRulesetIndexer();
 
@@ -41,7 +38,7 @@
 
   // Returns the data buffer, which is still owned by FlatRulesetIndexer.
   // Finish() must be called prior to calling this.
-  SerializedData GetData();
+  base::span<const uint8_t> GetData();
 
  private:
   using UrlPatternIndexBuilder = url_pattern_index::UrlPatternIndexBuilder;
diff --git a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer_unittest.cc b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer_unittest.cc
index 437d22f..282a628 100644
--- a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer_unittest.cc
+++ b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer_unittest.cc
@@ -195,15 +195,15 @@
     indexer.AddUrlRule(rule);
 
   indexer.Finish();
-  FlatRulesetIndexer::SerializedData data = indexer.GetData();
+  base::span<const uint8_t> data = indexer.GetData();
   EXPECT_EQ(
       blocking_rules.size() + allowing_rules.size() + redirect_rules.size(),
       indexer.indexed_rules_count());
-  flatbuffers::Verifier verifier(data.first, data.second);
+  flatbuffers::Verifier verifier(data.data(), data.size());
   ASSERT_TRUE(flat::VerifyExtensionIndexedRulesetBuffer(verifier));
 
   const flat::ExtensionIndexedRuleset* ruleset =
-      flat::GetExtensionIndexedRuleset(data.first);
+      flat::GetExtensionIndexedRuleset(data.data());
   ASSERT_TRUE(ruleset);
 
   VerifyIndexEquality(blocking_rules, ruleset->blocking_index());
diff --git a/extensions/browser/api/declarative_net_request/ruleset_matcher.cc b/extensions/browser/api/declarative_net_request/ruleset_matcher.cc
index 68ce298..414fe13 100644
--- a/extensions/browser/api/declarative_net_request/ruleset_matcher.cc
+++ b/extensions/browser/api/declarative_net_request/ruleset_matcher.cc
@@ -6,6 +6,7 @@
 
 #include <utility>
 
+#include "base/containers/span.h"
 #include "base/files/file_util.h"
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
@@ -47,8 +48,10 @@
     return kLoadErrorFileRead;
 
   // This guarantees that no memory access will end up outside the buffer.
-  if (!IsValidRulesetData(reinterpret_cast<const uint8_t*>(ruleset_data.data()),
-                          ruleset_data.size(), expected_ruleset_checksum)) {
+  if (!IsValidRulesetData(
+          base::make_span(reinterpret_cast<const uint8_t*>(ruleset_data.data()),
+                          ruleset_data.size()),
+          expected_ruleset_checksum)) {
     return kLoadErrorRulesetVerification;
   }
 
diff --git a/extensions/browser/api/declarative_net_request/test_utils.cc b/extensions/browser/api/declarative_net_request/test_utils.cc
index 9546bf6..86f7b3c 100644
--- a/extensions/browser/api/declarative_net_request/test_utils.cc
+++ b/extensions/browser/api/declarative_net_request/test_utils.cc
@@ -6,9 +6,8 @@
 
 #include <string>
 
-#include "base/files/file_util.h"
 #include "base/threading/thread_restrictions.h"
-#include "extensions/browser/api/declarative_net_request/utils.h"
+#include "extensions/browser/api/declarative_net_request/ruleset_matcher.h"
 #include "extensions/browser/extension_prefs.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/file_util.h"
@@ -26,14 +25,10 @@
     return false;
   }
 
-  std::string data;
-  if (!base::ReadFileToString(
-          file_util::GetIndexedRulesetPath(extension.path()), &data)) {
-    return false;
-  }
-
-  return IsValidRulesetData(reinterpret_cast<const uint8_t*>(data.c_str()),
-                            data.size(), expected_checksum);
+  std::unique_ptr<RulesetMatcher> matcher;
+  return RulesetMatcher::CreateVerifiedMatcher(
+             file_util::GetIndexedRulesetPath(extension.path()),
+             expected_checksum, &matcher) == RulesetMatcher::kLoadSuccess;
 }
 
 }  // namespace declarative_net_request
diff --git a/extensions/browser/api/declarative_net_request/utils.cc b/extensions/browser/api/declarative_net_request/utils.cc
index 2770a8e..753b23b 100644
--- a/extensions/browser/api/declarative_net_request/utils.cc
+++ b/extensions/browser/api/declarative_net_request/utils.cc
@@ -40,8 +40,8 @@
 namespace dnr_api = extensions::api::declarative_net_request;
 
 // Returns the checksum of the given serialized |data|.
-int GetChecksum(const FlatRulesetIndexer::SerializedData& data) {
-  uint32_t hash = base::PersistentHash(data.first, data.second);
+int GetChecksum(base::span<const uint8_t> data) {
+  uint32_t hash = base::PersistentHash(data.data(), data.size());
 
   // Strip off the sign bit since this needs to be persisted in preferences
   // which don't support unsigned ints.
@@ -50,7 +50,7 @@
 
 // Helper function to persist the indexed ruleset |data| for |extension|.
 bool PersistRuleset(const Extension& extension,
-                    const FlatRulesetIndexer::SerializedData& data,
+                    base::span<const uint8_t> data,
                     int* ruleset_checksum) {
   DCHECK(ruleset_checksum);
 
@@ -59,10 +59,12 @@
 
   // Create the directory corresponding to |path| if it does not exist and then
   // persist the ruleset.
-  const int data_size = base::checked_cast<int>(data.second);
+  if (!base::IsValueInRangeForNumericType<int>(data.size()))
+    return false;
+  const int data_size = static_cast<int>(data.size());
   const bool success =
       base::CreateDirectory(path.DirName()) &&
-      base::WriteFile(path, reinterpret_cast<const char*>(data.first),
+      base::WriteFile(path, reinterpret_cast<const char*>(data.data()),
                       data_size) == data_size;
 
   if (success)
@@ -130,9 +132,7 @@
   indexer.Finish();
   UMA_HISTOGRAM_TIMES(kIndexRulesTimeHistogram, timer.Elapsed());
 
-  // The actual data buffer is still owned by |indexer|.
-  const FlatRulesetIndexer::SerializedData data = indexer.GetData();
-  if (!PersistRuleset(extension, data, ruleset_checksum))
+  if (!PersistRuleset(extension, indexer.GetData(), ruleset_checksum))
     return ParseInfo(ParseResult::ERROR_PERSISTING_RULESET);
 
   if (!all_rules_parsed) {
@@ -268,12 +268,9 @@
   }
 }
 
-bool IsValidRulesetData(const uint8_t* data,
-                        size_t size,
-                        int expected_checksum) {
-  flatbuffers::Verifier verifier(data, size);
-  FlatRulesetIndexer::SerializedData serialized_data(data, size);
-  return expected_checksum == GetChecksum(serialized_data) &&
+bool IsValidRulesetData(base::span<const uint8_t> data, int expected_checksum) {
+  flatbuffers::Verifier verifier(data.data(), data.size());
+  return expected_checksum == GetChecksum(data) &&
          flat::VerifyExtensionIndexedRulesetBuffer(verifier);
 }
 
diff --git a/extensions/browser/api/declarative_net_request/utils.h b/extensions/browser/api/declarative_net_request/utils.h
index 6b126a8..629d038 100644
--- a/extensions/browser/api/declarative_net_request/utils.h
+++ b/extensions/browser/api/declarative_net_request/utils.h
@@ -11,6 +11,7 @@
 #include <vector>
 
 #include "base/callback_forward.h"
+#include "base/containers/span.h"
 #include "base/macros.h"
 #include "base/optional.h"
 
@@ -76,11 +77,9 @@
                           const Extension& extension,
                           IndexAndPersistRulesCallback callback);
 
-// Returns true if |data| and |size| represent a valid data buffer containing
-// indexed ruleset data with |expected_checksum|.
-bool IsValidRulesetData(const uint8_t* data,
-                        size_t size,
-                        int expected_checksum);
+// Returns true if |data| represents a valid data buffer containing indexed
+// ruleset data with |expected_checksum|.
+bool IsValidRulesetData(base::span<const uint8_t> data, int expected_checksum);
 
 }  // namespace declarative_net_request
 }  // namespace extensions
diff --git a/extensions/browser/api/sockets_udp/sockets_udp_apitest.cc b/extensions/browser/api/sockets_udp/sockets_udp_apitest.cc
index 8c3060f4..837ed6c 100644
--- a/extensions/browser/api/sockets_udp/sockets_udp_apitest.cc
+++ b/extensions/browser/api/sockets_udp/sockets_udp_apitest.cc
@@ -49,8 +49,9 @@
 }
 
 // Disable SocketsUdpExtension on Mac due to time out.
-// See https://crbug.com/844402
-#if defined(OS_MACOSX)
+// See https://crbug.com/844402.
+// Disable on Linux for flakiness. See https://crbug.com/875920.
+#if defined(OS_MACOSX) || defined(OS_LINUX)
 #define MAYBE_SocketsUdpExtension DISABLED_SocketsUdpExtension
 #else
 #define MAYBE_SocketsUdpExtension SocketsUdpExtension
diff --git a/extensions/browser/guest_view/app_view/app_view_apitest.cc b/extensions/browser/guest_view/app_view/app_view_apitest.cc
index 95d036c..2debb5a6 100644
--- a/extensions/browser/guest_view/app_view/app_view_apitest.cc
+++ b/extensions/browser/guest_view/app_view/app_view_apitest.cc
@@ -184,7 +184,8 @@
 // Tests that <appview> correctly processes parameters passed on connect.
 // This test should fail to connect because the embedded app (skeleton) will
 // refuse the data passed by the embedder app and deny the request.
-IN_PROC_BROWSER_TEST_F(AppViewTest, TestAppViewRefusedDataShouldFail) {
+// Disabled for flakiness on multiple platforms. See https://crbug.com/875908.
+IN_PROC_BROWSER_TEST_F(AppViewTest, DISABLED_TestAppViewRefusedDataShouldFail) {
   RunTest("testAppViewRefusedDataShouldFail",
           "app_view/apitest",
           "app_view/apitest/skeleton");
diff --git a/extensions/browser/updater/update_service.cc b/extensions/browser/updater/update_service.cc
index df22e6a..090cd7ba 100644
--- a/extensions/browser/updater/update_service.cc
+++ b/extensions/browser/updater/update_service.cc
@@ -41,17 +41,31 @@
   UMA_HISTOGRAM_ENUMERATION("Extensions.ExtensionUpdaterUpdateResults",
                             update_result,
                             ExtensionUpdaterUpdateResult::UPDATE_RESULT_COUNT);
+
   // This UMA histogram measures update check results of the unified extension
   // updater.
   UMA_HISTOGRAM_ENUMERATION("Extensions.UnifiedExtensionUpdaterUpdateResults",
                             update_result,
                             ExtensionUpdaterUpdateResult::UPDATE_RESULT_COUNT);
-  if (update_result == ExtensionUpdaterUpdateResult::UPDATE_CHECK_ERROR)
-    base::UmaHistogramSparse(
-        "Extensions.UnifiedExtensionUpdaterUpdateCheckErrors", error_code);
-  else if (update_result == ExtensionUpdaterUpdateResult::UPDATE_DOWNLOAD_ERROR)
-    base::UmaHistogramSparse("Extensions.UnifiedExtensionUpdaterDownloadErrors",
-                             error_code);
+
+  switch (update_result) {
+    case ExtensionUpdaterUpdateResult::UPDATE_CHECK_ERROR:
+      base::UmaHistogramSparse(
+          "Extensions.UnifiedExtensionUpdaterUpdateCheckErrors", error_code);
+      break;
+    case ExtensionUpdaterUpdateResult::UPDATE_DOWNLOAD_ERROR:
+      base::UmaHistogramSparse(
+          "Extensions.UnifiedExtensionUpdaterDownloadErrors", error_code);
+      break;
+    case ExtensionUpdaterUpdateResult::UPDATE_SERVICE_ERROR:
+      UMA_HISTOGRAM_ENUMERATION(
+          "Extensions.UnifiedExtensionUpdaterUpdateServiceErrors",
+          static_cast<update_client::Error>(error_code),
+          update_client::Error::MAX_VALUE);
+      break;
+    default:
+      break;
+  }
 }
 
 }  // namespace
@@ -135,65 +149,16 @@
     case Events::COMPONENT_UPDATE_ERROR:
       complete_event = true;
       finish_delayed_installation = true;
-      {
-        update_client::ErrorCategory error_category =
-            update_client::ErrorCategory::kNone;
-        update_client::CrxUpdateItem update_item;
-        if (update_client_->GetCrxUpdateState(extension_id, &update_item)) {
-          // When update_client_->GetCrxUpdateState(...) returns false, it means
-          // that |update_client_| can't find any information about this
-          // |extension_id|. It could be possible that |extension_id| was
-          // uninstalled when |update_client_| was checking for updates.
-          // (see bug http://crbug.com/869663).
-          error_category = update_item.error_category;
-        }
-        switch (error_category) {
-          case update_client::ErrorCategory::kUpdateCheck:
-            ReportUpdateCheckResult(
-                ExtensionUpdaterUpdateResult::UPDATE_CHECK_ERROR,
-                update_item.error_code);
-            break;
-          case update_client::ErrorCategory::kDownload:
-            ReportUpdateCheckResult(
-                ExtensionUpdaterUpdateResult::UPDATE_DOWNLOAD_ERROR,
-                update_item.error_code);
-            break;
-          case update_client::ErrorCategory::kUnpack:
-          case update_client::ErrorCategory::kInstall:
-            ReportUpdateCheckResult(
-                ExtensionUpdaterUpdateResult::UPDATE_INSTALL_ERROR, 0);
-            break;
-          case update_client::ErrorCategory::kNone:
-          case update_client::ErrorCategory::kService:
-            ReportUpdateCheckResult(
-                ExtensionUpdaterUpdateResult::UPDATE_SERVICE_ERROR, 0);
-            break;
-        }
-      }
+      HandleComponentUpdateErrorEvent(extension_id);
       break;
     case Events::COMPONENT_NOT_UPDATED:
       complete_event = true;
       finish_delayed_installation = true;
       ReportUpdateCheckResult(ExtensionUpdaterUpdateResult::NO_UPDATE, 0);
       break;
-    case Events::COMPONENT_UPDATE_FOUND: {
-      UMA_HISTOGRAM_COUNTS_100("Extensions.ExtensionUpdaterUpdateFoundCount",
-                               1);
-      {
-        update_client::CrxUpdateItem update_item;
-        if (update_client_->GetCrxUpdateState(extension_id, &update_item)) {
-          VLOG(3) << "UpdateService::OnEvent COMPONENT_UPDATE_FOUND: "
-                  << extension_id << " "
-                  << update_item.next_version.GetString();
-          UpdateDetails update_info(extension_id, update_item.next_version);
-          content::NotificationService::current()->Notify(
-              extensions::NOTIFICATION_EXTENSION_UPDATE_FOUND,
-              content::NotificationService::AllBrowserContextsAndSources(),
-              content::Details<UpdateDetails>(&update_info));
-        }
-      }
+    case Events::COMPONENT_UPDATE_FOUND:
+      HandleComponentUpdateFoundEvent(extension_id);
       break;
-    }
     case Events::COMPONENT_CHECKING_FOR_UPDATES:
     case Events::COMPONENT_WAIT:
     case Events::COMPONENT_UPDATE_READY:
@@ -360,4 +325,55 @@
     update_client_->RemoveObserver(observer);
 }
 
+void UpdateService::HandleComponentUpdateErrorEvent(
+    const std::string& extension_id) const {
+  update_client::ErrorCategory error_category =
+      update_client::ErrorCategory::kNone;
+  int error_code = 0;
+  update_client::CrxUpdateItem update_item;
+  if (update_client_->GetCrxUpdateState(extension_id, &update_item)) {
+    error_category = update_item.error_category;
+    error_code = update_item.error_code;
+  }
+
+  switch (error_category) {
+    case update_client::ErrorCategory::kUpdateCheck:
+      ReportUpdateCheckResult(ExtensionUpdaterUpdateResult::UPDATE_CHECK_ERROR,
+                              error_code);
+      break;
+    case update_client::ErrorCategory::kDownload:
+      ReportUpdateCheckResult(
+          ExtensionUpdaterUpdateResult::UPDATE_DOWNLOAD_ERROR, error_code);
+      break;
+    case update_client::ErrorCategory::kUnpack:
+    case update_client::ErrorCategory::kInstall:
+      ReportUpdateCheckResult(
+          ExtensionUpdaterUpdateResult::UPDATE_INSTALL_ERROR, 0);
+      break;
+    case update_client::ErrorCategory::kNone:
+    case update_client::ErrorCategory::kService:
+      ReportUpdateCheckResult(
+          ExtensionUpdaterUpdateResult::UPDATE_SERVICE_ERROR, error_code);
+      break;
+  }
+}
+
+void UpdateService::HandleComponentUpdateFoundEvent(
+    const std::string& extension_id) const {
+  UMA_HISTOGRAM_COUNTS_100("Extensions.ExtensionUpdaterUpdateFoundCount", 1);
+
+  update_client::CrxUpdateItem update_item;
+  if (!update_client_->GetCrxUpdateState(extension_id, &update_item)) {
+    return;
+  }
+
+  VLOG(3) << "UpdateService::OnEvent COMPONENT_UPDATE_FOUND: " << extension_id
+          << " " << update_item.next_version.GetString();
+  UpdateDetails update_info(extension_id, update_item.next_version);
+  content::NotificationService::current()->Notify(
+      extensions::NOTIFICATION_EXTENSION_UPDATE_FOUND,
+      content::NotificationService::AllBrowserContextsAndSources(),
+      content::Details<UpdateDetails>(&update_info));
+}
+
 }  // namespace extensions
diff --git a/extensions/browser/updater/update_service.h b/extensions/browser/updater/update_service.h
index 7fc1c3f..cc0bda7 100644
--- a/extensions/browser/updater/update_service.h
+++ b/extensions/browser/updater/update_service.h
@@ -102,6 +102,8 @@
   void AddUpdateClientObserver(update_client::UpdateClient::Observer* observer);
   void RemoveUpdateClientObserver(
       update_client::UpdateClient::Observer* observer);
+  void HandleComponentUpdateErrorEvent(const std::string& extension_id) const;
+  void HandleComponentUpdateFoundEvent(const std::string& extension_id) const;
 
  private:
   content::BrowserContext* browser_context_;
diff --git a/extensions/common/BUILD.gn b/extensions/common/BUILD.gn
index d0399d6..beb5ff8 100644
--- a/extensions/common/BUILD.gn
+++ b/extensions/common/BUILD.gn
@@ -356,6 +356,21 @@
     }
   }
 
+  # NOTE: This is separate from ":common" because it depends on
+  # extensions/common/api:extensions_features, which in turn depends on
+  # :common.
+  source_set("core_api_provider") {
+    sources = [
+      "core_extensions_api_provider.cc",
+      "core_extensions_api_provider.h",
+    ]
+
+    deps = [
+      ":common",
+      "//extensions/common/api:extensions_features",
+    ]
+  }
+
   source_set("test_support") {
     testonly = true
 
diff --git a/extensions/common/core_extensions_api_provider.cc b/extensions/common/core_extensions_api_provider.cc
new file mode 100644
index 0000000..f5330ba4
--- /dev/null
+++ b/extensions/common/core_extensions_api_provider.cc
@@ -0,0 +1,51 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "extensions/common/core_extensions_api_provider.h"
+
+#include "extensions/common/api/api_features.h"
+#include "extensions/common/api/behavior_features.h"
+#include "extensions/common/api/generated_schemas.h"
+#include "extensions/common/api/manifest_features.h"
+#include "extensions/common/api/permission_features.h"
+#include "extensions/common/features/json_feature_provider_source.h"
+#include "extensions/grit/extensions_resources.h"
+
+namespace extensions {
+
+CoreExtensionsAPIProvider::CoreExtensionsAPIProvider() = default;
+CoreExtensionsAPIProvider::~CoreExtensionsAPIProvider() = default;
+
+void CoreExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) {
+  AddCoreAPIFeatures(provider);
+}
+
+void CoreExtensionsAPIProvider::AddManifestFeatures(FeatureProvider* provider) {
+  AddCoreManifestFeatures(provider);
+}
+
+void CoreExtensionsAPIProvider::AddPermissionFeatures(
+    FeatureProvider* provider) {
+  AddCorePermissionFeatures(provider);
+}
+
+void CoreExtensionsAPIProvider::AddBehaviorFeatures(FeatureProvider* provider) {
+  AddCoreBehaviorFeatures(provider);
+}
+
+void CoreExtensionsAPIProvider::AddAPIJSONSources(
+    JSONFeatureProviderSource* json_source) {
+  json_source->LoadJSON(IDR_EXTENSION_API_FEATURES);
+}
+
+bool CoreExtensionsAPIProvider::IsAPISchemaGenerated(const std::string& name) {
+  return api::GeneratedSchemas::IsGenerated(name);
+}
+
+base::StringPiece CoreExtensionsAPIProvider::GetAPISchema(
+    const std::string& name) {
+  return api::GeneratedSchemas::Get(name);
+}
+
+}  // namespace extensions
diff --git a/extensions/common/core_extensions_api_provider.h b/extensions/common/core_extensions_api_provider.h
new file mode 100644
index 0000000..1bda340f
--- /dev/null
+++ b/extensions/common/core_extensions_api_provider.h
@@ -0,0 +1,33 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EXTENSIONS_COMMON_CORE_EXTENSIONS_API_PROVIDER_H_
+#define EXTENSIONS_COMMON_CORE_EXTENSIONS_API_PROVIDER_H_
+
+#include "base/macros.h"
+#include "extensions/common/extensions_api_provider.h"
+
+namespace extensions {
+
+class CoreExtensionsAPIProvider : public ExtensionsAPIProvider {
+ public:
+  CoreExtensionsAPIProvider();
+  ~CoreExtensionsAPIProvider() override;
+
+  // ExtensionsAPIProvider:
+  void AddAPIFeatures(FeatureProvider* provider) override;
+  void AddManifestFeatures(FeatureProvider* provider) override;
+  void AddPermissionFeatures(FeatureProvider* provider) override;
+  void AddBehaviorFeatures(FeatureProvider* provider) override;
+  void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override;
+  bool IsAPISchemaGenerated(const std::string& name) override;
+  base::StringPiece GetAPISchema(const std::string& name) override;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(CoreExtensionsAPIProvider);
+};
+
+}  // namespace extensions
+
+#endif  // EXTENSIONS_COMMON_CORE_EXTENSIONS_API_PROVIDER_H_
diff --git a/extensions/common/extensions_api_provider.h b/extensions/common/extensions_api_provider.h
new file mode 100644
index 0000000..df96603
--- /dev/null
+++ b/extensions/common/extensions_api_provider.h
@@ -0,0 +1,48 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EXTENSIONS_COMMON_EXTENSIONS_API_PROVIDER_H_
+#define EXTENSIONS_COMMON_EXTENSIONS_API_PROVIDER_H_
+
+#include <string>
+
+#include "base/macros.h"
+#include "base/strings/string_piece_forward.h"
+
+namespace extensions {
+class FeatureProvider;
+class JSONFeatureProviderSource;
+
+// A class to provide API-specific bits and bobs to the extensions system.
+// This allows for composition of multiple providers, so that we can easily
+// selectively add features in different configurations.
+class ExtensionsAPIProvider {
+ public:
+  ExtensionsAPIProvider() {}
+  virtual ~ExtensionsAPIProvider() {}
+
+  // Adds feature definitions to the given |provider| of the specified type.
+  virtual void AddAPIFeatures(FeatureProvider* provider) = 0;
+  virtual void AddManifestFeatures(FeatureProvider* provider) = 0;
+  virtual void AddPermissionFeatures(FeatureProvider* provider) = 0;
+  virtual void AddBehaviorFeatures(FeatureProvider* provider) = 0;
+
+  // Adds resources containing the JSON API definitions.
+  virtual void AddAPIJSONSources(JSONFeatureProviderSource* json_source) = 0;
+
+  // Returns true if this provider knows about a generated schema for the given
+  // api |name|.
+  virtual bool IsAPISchemaGenerated(const std::string& name) = 0;
+
+  // Returns a the contents of the generated schema for the given api |name|,
+  // or an empty string if this provider doesn't know of the generated API.
+  virtual base::StringPiece GetAPISchema(const std::string& name) = 0;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ExtensionsAPIProvider);
+};
+
+}  // namespace extensions
+
+#endif  // EXTENSIONS_COMMON_EXTENSIONS_API_PROVIDER_H_
diff --git a/extensions/common/extensions_client.cc b/extensions/common/extensions_client.cc
index 7dd5df2..faf84094 100644
--- a/extensions/common/extensions_client.cc
+++ b/extensions/common/extensions_client.cc
@@ -6,6 +6,9 @@
 
 #include "base/logging.h"
 #include "extensions/common/extension_icon_set.h"
+#include "extensions/common/extensions_api_provider.h"
+#include "extensions/common/features/feature_provider.h"
+#include "extensions/common/features/json_feature_provider_source.h"
 #include "extensions/common/manifest_handlers/icons_handler.h"
 
 namespace extensions {
@@ -21,10 +24,74 @@
   return g_client;
 }
 
+void ExtensionsClient::Set(ExtensionsClient* client) {
+  // This can happen in unit tests, where the utility thread runs in-process.
+  if (g_client)
+    return;
+  g_client = client;
+  g_client->Initialize();
+}
+
+ExtensionsClient::ExtensionsClient() = default;
+ExtensionsClient::~ExtensionsClient() = default;
+
+std::unique_ptr<FeatureProvider> ExtensionsClient::CreateFeatureProvider(
+    const std::string& name) const {
+  auto feature_provider = std::make_unique<FeatureProvider>();
+  using ProviderMethod = void (ExtensionsAPIProvider::*)(FeatureProvider*);
+  ProviderMethod method = nullptr;
+  if (name == "api") {
+    method = &ExtensionsAPIProvider::AddAPIFeatures;
+  } else if (name == "manifest") {
+    method = &ExtensionsAPIProvider::AddManifestFeatures;
+  } else if (name == "permission") {
+    method = &ExtensionsAPIProvider::AddPermissionFeatures;
+  } else if (name == "behavior") {
+    method = &ExtensionsAPIProvider::AddBehaviorFeatures;
+  } else {
+    NOTREACHED();
+  }
+  for (const auto& api_provider : api_providers_)
+    ((*api_provider).*method)(feature_provider.get());
+
+  return feature_provider;
+}
+
+std::unique_ptr<JSONFeatureProviderSource>
+ExtensionsClient::CreateAPIFeatureSource() const {
+  auto source = std::make_unique<JSONFeatureProviderSource>("api");
+  for (const auto& api_provider : api_providers_)
+    api_provider->AddAPIJSONSources(source.get());
+  return source;
+}
+
+bool ExtensionsClient::IsAPISchemaGenerated(const std::string& name) const {
+  for (const auto& provider : api_providers_) {
+    if (provider->IsAPISchemaGenerated(name))
+      return true;
+  }
+  return false;
+}
+
+base::StringPiece ExtensionsClient::GetAPISchema(
+    const std::string& name) const {
+  for (const auto& provider : api_providers_) {
+    base::StringPiece api = provider->GetAPISchema(name);
+    if (!api.empty())
+      return api;
+  }
+  return base::StringPiece();
+}
+
+void ExtensionsClient::AddAPIProvider(
+    std::unique_ptr<ExtensionsAPIProvider> provider) {
+  api_providers_.push_back(std::move(provider));
+}
+
 std::set<base::FilePath> ExtensionsClient::GetBrowserImagePaths(
     const Extension* extension) {
   std::set<base::FilePath> paths;
-  extensions::IconsInfo::GetIcons(extension).GetPaths(&paths);
+  IconsInfo::GetIcons(extension).GetPaths(&paths);
   return paths;
 }
 
@@ -36,12 +103,4 @@
   return std::string();
 }
 
-void ExtensionsClient::Set(ExtensionsClient* client) {
-  // This can happen in unit tests, where the utility thread runs in-process.
-  if (g_client)
-    return;
-  g_client = client;
-  g_client->Initialize();
-}
-
 }  // namespace extensions
diff --git a/extensions/common/extensions_client.h b/extensions/common/extensions_client.h
index 21917cd..7c3417b 100644
--- a/extensions/common/extensions_client.h
+++ b/extensions/common/extensions_client.h
@@ -24,6 +24,7 @@
 
 class APIPermissionSet;
 class Extension;
+class ExtensionsAPIProvider;
 class FeatureProvider;
 class JSONFeatureProviderSource;
 class PermissionMessageProvider;
@@ -35,7 +36,34 @@
  public:
   typedef std::vector<std::string> ScriptingWhitelist;
 
-  virtual ~ExtensionsClient() {}
+  // Return the extensions client.
+  static ExtensionsClient* Get();
+
+  // Initialize the extensions system with this extensions client.
+  static void Set(ExtensionsClient* client);
+
+  ExtensionsClient();
+  virtual ~ExtensionsClient();
+
+  // Create a FeatureProvider for a specific feature type, e.g. "permission".
+  std::unique_ptr<FeatureProvider> CreateFeatureProvider(
+      const std::string& name) const;
+
+  // Returns the dictionary of the API features json file.
+  // TODO(devlin): We should find a way to remove this.
+  std::unique_ptr<JSONFeatureProviderSource> CreateAPIFeatureSource() const;
+
+  // Returns true iff a schema named |name| is generated.
+  bool IsAPISchemaGenerated(const std::string& name) const;
+
+  // Gets the generated API schema named |name|.
+  base::StringPiece GetAPISchema(const std::string& name) const;
+
+  // Adds a new API provider.
+  void AddAPIProvider(std::unique_ptr<ExtensionsAPIProvider> provider);
+
+  //////////////////////////////////////////////////////////////////////////////
+  // Virtual Functions:
 
   // Initializes global state. Not done in the constructor because unit tests
   // can create additional ExtensionsClients because the utility thread runs
@@ -54,15 +82,6 @@
   // Returns the application name. For example, "Chromium" or "app_shell".
   virtual const std::string GetProductName() = 0;
 
-  // Create a FeatureProvider for a specific feature type, e.g. "permission".
-  virtual std::unique_ptr<FeatureProvider> CreateFeatureProvider(
-      const std::string& name) const = 0;
-
-  // Returns the dictionary of the API features json file.
-  // TODO(devlin): We should find a way to remove this.
-  virtual std::unique_ptr<JSONFeatureProviderSource> CreateAPIFeatureSource()
-      const = 0;
-
   // Takes the list of all hosts and filters out those with special
   // permission strings. Adds the regular hosts to |new_hosts|,
   // and adds any additional permissions to |permissions|.
@@ -89,12 +108,6 @@
   // Returns false if content scripts are forbidden from running on |url|.
   virtual bool IsScriptableURL(const GURL& url, std::string* error) const = 0;
 
-  // Returns true iff a schema named |name| is generated.
-  virtual bool IsAPISchemaGenerated(const std::string& name) const = 0;
-
-  // Gets the generated API schema named |name|.
-  virtual base::StringPiece GetAPISchema(const std::string& name) const = 0;
-
   // Determines if certain fatal extensions errors should be surpressed
   // (i.e., only logged) or allowed (i.e., logged before crashing).
   virtual bool ShouldSuppressFatalErrors() const = 0;
@@ -137,11 +150,10 @@
   // Returns the user agent used by the content module.
   virtual std::string GetUserAgent() const;
 
-  // Return the extensions client.
-  static ExtensionsClient* Get();
+ private:
+  std::vector<std::unique_ptr<ExtensionsAPIProvider>> api_providers_;
 
-  // Initialize the extensions system with this extensions client.
-  static void Set(ExtensionsClient* client);
+  DISALLOW_COPY_AND_ASSIGN(ExtensionsClient);
 };
 
 }  // namespace extensions
diff --git a/extensions/shell/BUILD.gn b/extensions/shell/BUILD.gn
index 4acb120a..75475a73 100644
--- a/extensions/shell/BUILD.gn
+++ b/extensions/shell/BUILD.gn
@@ -61,6 +61,7 @@
     "//extensions/browser/api:api_registration",
     "//extensions/browser/kiosk",
     "//extensions/common",
+    "//extensions/common:core_api_provider",
     "//extensions/common/api",
     "//extensions/renderer",
     "//extensions/shell/browser/system_logs",
@@ -170,6 +171,8 @@
     "browser/shell_web_view_guest_delegate.h",
     "common/shell_content_client.cc",
     "common/shell_content_client.h",
+    "common/shell_extensions_api_provider.cc",
+    "common/shell_extensions_api_provider.h",
     "common/shell_extensions_client.cc",
     "common/shell_extensions_client.h",
     "common/switches.cc",
diff --git a/extensions/shell/common/shell_extensions_api_provider.cc b/extensions/shell/common/shell_extensions_api_provider.cc
new file mode 100644
index 0000000..893b987d
--- /dev/null
+++ b/extensions/shell/common/shell_extensions_api_provider.cc
@@ -0,0 +1,50 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "extensions/shell/common/shell_extensions_api_provider.h"
+
+#include "extensions/common/features/json_feature_provider_source.h"
+#include "extensions/shell/common/api/generated_schemas.h"
+#include "extensions/shell/common/api/shell_api_features.h"
+#include "extensions/shell/grit/app_shell_resources.h"
+
+namespace extensions {
+
+ShellExtensionsAPIProvider::ShellExtensionsAPIProvider() = default;
+ShellExtensionsAPIProvider::~ShellExtensionsAPIProvider() = default;
+
+void ShellExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) {
+  AddShellAPIFeatures(provider);
+}
+
+void ShellExtensionsAPIProvider::AddManifestFeatures(
+    FeatureProvider* provider) {
+  // No shell-specific manifest features.
+}
+
+void ShellExtensionsAPIProvider::AddPermissionFeatures(
+    FeatureProvider* provider) {
+  // No shell-specific permission features.
+}
+
+void ShellExtensionsAPIProvider::AddBehaviorFeatures(
+    FeatureProvider* provider) {
+  // No shell-specific behavior features.
+}
+
+void ShellExtensionsAPIProvider::AddAPIJSONSources(
+    JSONFeatureProviderSource* json_source) {
+  json_source->LoadJSON(IDR_SHELL_EXTENSION_API_FEATURES);
+}
+
+bool ShellExtensionsAPIProvider::IsAPISchemaGenerated(const std::string& name) {
+  return shell::api::ShellGeneratedSchemas::IsGenerated(name);
+}
+
+base::StringPiece ShellExtensionsAPIProvider::GetAPISchema(
+    const std::string& name) {
+  return shell::api::ShellGeneratedSchemas::Get(name);
+}
+
+}  // namespace extensions
diff --git a/extensions/shell/common/shell_extensions_api_provider.h b/extensions/shell/common/shell_extensions_api_provider.h
new file mode 100644
index 0000000..5f88167
--- /dev/null
+++ b/extensions/shell/common/shell_extensions_api_provider.h
@@ -0,0 +1,33 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EXTENSIONS_SHELL_COMMON_SHELL_EXTENSIONS_API_PROVIDER_H_
+#define EXTENSIONS_SHELL_COMMON_SHELL_EXTENSIONS_API_PROVIDER_H_
+
+#include "base/macros.h"
+#include "extensions/common/extensions_api_provider.h"
+
+namespace extensions {
+
+class ShellExtensionsAPIProvider : public ExtensionsAPIProvider {
+ public:
+  ShellExtensionsAPIProvider();
+  ~ShellExtensionsAPIProvider() override;
+
+  // ExtensionsAPIProvider:
+  void AddAPIFeatures(FeatureProvider* provider) override;
+  void AddManifestFeatures(FeatureProvider* provider) override;
+  void AddPermissionFeatures(FeatureProvider* provider) override;
+  void AddBehaviorFeatures(FeatureProvider* provider) override;
+  void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override;
+  bool IsAPISchemaGenerated(const std::string& name) override;
+  base::StringPiece GetAPISchema(const std::string& name) override;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ShellExtensionsAPIProvider);
+};
+
+}  // namespace extensions
+
+#endif  // EXTENSIONS_SHELL_COMMON_SHELL_EXTENSIONS_API_PROVIDER_H_
diff --git a/extensions/shell/common/shell_extensions_client.cc b/extensions/shell/common/shell_extensions_client.cc
index 76c61e9..9f22190 100644
--- a/extensions/shell/common/shell_extensions_client.cc
+++ b/extensions/shell/common/shell_extensions_client.cc
@@ -12,26 +12,17 @@
 #include "base/macros.h"
 #include "components/version_info/version_info.h"
 #include "content/public/common/user_agent.h"
-#include "extensions/common/api/api_features.h"
-#include "extensions/common/api/behavior_features.h"
-#include "extensions/common/api/generated_schemas.h"
-#include "extensions/common/api/manifest_features.h"
-#include "extensions/common/api/permission_features.h"
 #include "extensions/common/common_manifest_handlers.h"
+#include "extensions/common/core_extensions_api_provider.h"
 #include "extensions/common/extension_urls.h"
 #include "extensions/common/extensions_aliases.h"
-#include "extensions/common/features/feature_provider.h"
-#include "extensions/common/features/json_feature_provider_source.h"
 #include "extensions/common/features/simple_feature.h"
 #include "extensions/common/manifest_handler.h"
 #include "extensions/common/permissions/permission_message_provider.h"
 #include "extensions/common/permissions/permissions_info.h"
 #include "extensions/common/permissions/permissions_provider.h"
 #include "extensions/common/url_pattern_set.h"
-#include "extensions/grit/extensions_resources.h"
-#include "extensions/shell/common/api/generated_schemas.h"
-#include "extensions/shell/common/api/shell_api_features.h"
-#include "extensions/shell/grit/app_shell_resources.h"
+#include "extensions/shell/common/shell_extensions_api_provider.h"
 
 namespace extensions {
 
@@ -76,7 +67,10 @@
 ShellExtensionsClient::ShellExtensionsClient()
     : extensions_api_permissions_(ExtensionsAPIPermissions()),
       webstore_base_url_(extension_urls::kChromeWebstoreBaseURL),
-      webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) {}
+      webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) {
+  AddAPIProvider(std::make_unique<CoreExtensionsAPIProvider>());
+  AddAPIProvider(std::make_unique<ShellExtensionsAPIProvider>());
+}
 
 ShellExtensionsClient::~ShellExtensionsClient() {
 }
@@ -103,33 +97,6 @@
   return "app_shell";
 }
 
-std::unique_ptr<FeatureProvider> ShellExtensionsClient::CreateFeatureProvider(
-    const std::string& name) const {
-  auto provider = std::make_unique<FeatureProvider>();
-  if (name == "api") {
-    AddCoreAPIFeatures(provider.get());
-    AddShellAPIFeatures(provider.get());
-  } else if (name == "manifest") {
-    AddCoreManifestFeatures(provider.get());
-  } else if (name == "permission") {
-    AddCorePermissionFeatures(provider.get());
-  } else if (name == "behavior") {
-    AddCoreBehaviorFeatures(provider.get());
-  } else {
-    NOTREACHED();
-  }
-  return provider;
-}
-
-std::unique_ptr<JSONFeatureProviderSource>
-ShellExtensionsClient::CreateAPIFeatureSource() const {
-  std::unique_ptr<JSONFeatureProviderSource> source(
-      new JSONFeatureProviderSource("api"));
-  source->LoadJSON(IDR_EXTENSION_API_FEATURES);
-  source->LoadJSON(IDR_SHELL_EXTENSION_API_FEATURES);
-  return source;
-}
-
 void ShellExtensionsClient::FilterHostPermissions(
     const URLPatternSet& hosts,
     URLPatternSet* new_hosts,
@@ -161,22 +128,6 @@
   return true;
 }
 
-bool ShellExtensionsClient::IsAPISchemaGenerated(
-    const std::string& name) const {
-  return api::GeneratedSchemas::IsGenerated(name) ||
-         shell::api::ShellGeneratedSchemas::IsGenerated(name);
-}
-
-base::StringPiece ShellExtensionsClient::GetAPISchema(
-    const std::string& name) const {
-  // Schema for app_shell-only APIs.
-  if (shell::api::ShellGeneratedSchemas::IsGenerated(name))
-    return shell::api::ShellGeneratedSchemas::Get(name);
-
-  // Core extensions APIs.
-  return api::GeneratedSchemas::Get(name);
-}
-
 bool ShellExtensionsClient::ShouldSuppressFatalErrors() const {
   return true;
 }
diff --git a/extensions/shell/common/shell_extensions_client.h b/extensions/shell/common/shell_extensions_client.h
index 18abfff4..e103a09 100644
--- a/extensions/shell/common/shell_extensions_client.h
+++ b/extensions/shell/common/shell_extensions_client.h
@@ -25,10 +25,6 @@
   const PermissionMessageProvider& GetPermissionMessageProvider()
       const override;
   const std::string GetProductName() override;
-  std::unique_ptr<FeatureProvider> CreateFeatureProvider(
-      const std::string& name) const override;
-  std::unique_ptr<JSONFeatureProviderSource> CreateAPIFeatureSource()
-      const override;
   void FilterHostPermissions(const URLPatternSet& hosts,
                              URLPatternSet* new_hosts,
                              PermissionIDSet* permissions) const override;
@@ -38,8 +34,6 @@
       const Extension* extension,
       const APIPermissionSet& api_permissions) const override;
   bool IsScriptableURL(const GURL& url, std::string* error) const override;
-  bool IsAPISchemaGenerated(const std::string& name) const override;
-  base::StringPiece GetAPISchema(const std::string& name) const override;
   bool ShouldSuppressFatalErrors() const override;
   void RecordDidSuppressFatalError() override;
   const GURL& GetWebstoreBaseURL() const override;
diff --git a/extensions/test/test_extensions_client.cc b/extensions/test/test_extensions_client.cc
index 82a9157..65d0bcfe 100644
--- a/extensions/test/test_extensions_client.cc
+++ b/extensions/test/test_extensions_client.cc
@@ -11,16 +11,10 @@
 #include "base/command_line.h"
 #include "base/files/file_path.h"
 #include "base/stl_util.h"
-#include "extensions/common/api/api_features.h"
-#include "extensions/common/api/behavior_features.h"
-#include "extensions/common/api/generated_schemas.h"
-#include "extensions/common/api/manifest_features.h"
-#include "extensions/common/api/permission_features.h"
 #include "extensions/common/common_manifest_handlers.h"
+#include "extensions/common/core_extensions_api_provider.h"
 #include "extensions/common/extension_urls.h"
 #include "extensions/common/extensions_aliases.h"
-#include "extensions/common/features/feature_provider.h"
-#include "extensions/common/features/json_feature_provider_source.h"
 #include "extensions/common/manifest_handler.h"
 #include "extensions/common/permissions/extensions_api_permissions.h"
 #include "extensions/common/permissions/permissions_info.h"
@@ -32,7 +26,9 @@
 
 TestExtensionsClient::TestExtensionsClient()
     : webstore_base_url_(extension_urls::kChromeWebstoreBaseURL),
-      webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) {}
+      webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) {
+  AddAPIProvider(std::make_unique<CoreExtensionsAPIProvider>());
+}
 
 TestExtensionsClient::~TestExtensionsClient() {
 }
@@ -81,31 +77,6 @@
   return "extensions_test";
 }
 
-std::unique_ptr<FeatureProvider> TestExtensionsClient::CreateFeatureProvider(
-    const std::string& name) const {
-  auto provider = std::make_unique<FeatureProvider>();
-  if (name == "api") {
-    AddCoreAPIFeatures(provider.get());
-  } else if (name == "manifest") {
-    AddCoreManifestFeatures(provider.get());
-  } else if (name == "permission") {
-    AddCorePermissionFeatures(provider.get());
-  } else if (name == "behavior") {
-    AddCoreBehaviorFeatures(provider.get());
-  } else {
-    NOTREACHED();
-  }
-  return provider;
-}
-
-std::unique_ptr<JSONFeatureProviderSource>
-TestExtensionsClient::CreateAPIFeatureSource() const {
-  std::unique_ptr<JSONFeatureProviderSource> source(
-      new JSONFeatureProviderSource("api"));
-  source->LoadJSON(IDR_EXTENSION_API_FEATURES);
-  return source;
-}
-
 void TestExtensionsClient::FilterHostPermissions(
     const URLPatternSet& hosts,
     URLPatternSet* new_hosts,
@@ -134,16 +105,6 @@
   return true;
 }
 
-bool TestExtensionsClient::IsAPISchemaGenerated(
-    const std::string& name) const {
-  return api::GeneratedSchemas::IsGenerated(name);
-}
-
-base::StringPiece TestExtensionsClient::GetAPISchema(
-    const std::string& name) const {
-  return api::GeneratedSchemas::Get(name);
-}
-
 bool TestExtensionsClient::ShouldSuppressFatalErrors() const {
   return true;
 }
diff --git a/extensions/test/test_extensions_client.h b/extensions/test/test_extensions_client.h
index 972bc226..b5c4fd0 100644
--- a/extensions/test/test_extensions_client.h
+++ b/extensions/test/test_extensions_client.h
@@ -33,10 +33,6 @@
   const PermissionMessageProvider& GetPermissionMessageProvider()
       const override;
   const std::string GetProductName() override;
-  std::unique_ptr<FeatureProvider> CreateFeatureProvider(
-      const std::string& name) const override;
-  std::unique_ptr<JSONFeatureProviderSource> CreateAPIFeatureSource()
-      const override;
   void FilterHostPermissions(const URLPatternSet& hosts,
                              URLPatternSet* new_hosts,
                              PermissionIDSet* permissions) const override;
@@ -46,8 +42,6 @@
       const Extension* extension,
       const APIPermissionSet& api_permissions) const override;
   bool IsScriptableURL(const GURL& url, std::string* error) const override;
-  bool IsAPISchemaGenerated(const std::string& name) const override;
-  base::StringPiece GetAPISchema(const std::string& name) const override;
   bool ShouldSuppressFatalErrors() const override;
   void RecordDidSuppressFatalError() override;
   const GURL& GetWebstoreBaseURL() const override;
diff --git a/google_apis/BUILD.gn b/google_apis/BUILD.gn
index 9ceb65e0..f7af0ec 100644
--- a/google_apis/BUILD.gn
+++ b/google_apis/BUILD.gn
@@ -229,6 +229,18 @@
   }
 }
 
+source_set("run_all_unittests") {
+  testonly = true
+  sources = [
+    "run_all_unittests.cc",
+  ]
+
+  deps = [
+    "//base/test:test_support",
+    "//mojo/core/embedder",
+  ]
+}
+
 test("google_apis_unittests") {
   sources = [
     "gaia/gaia_auth_fetcher_unittest.cc",
@@ -245,7 +257,6 @@
     "gaia/ubertoken_fetcher_unittest.cc",
     "google_api_keys_unittest.cc",
     "google_api_keys_unittest.h",
-    "test/run_all_unittests.cc",
   ]
 
   data = [
@@ -256,10 +267,10 @@
 
   deps = [
     ":google_apis",
+    ":run_all_unittests",
     ":test_support",
     "//base",
     "//base/test:test_support",
-    "//mojo/core/embedder",
     "//testing/gmock",
     "//testing/gtest",
   ]
diff --git a/google_apis/DEPS b/google_apis/DEPS
index 81c8611..918e9ba3 100644
--- a/google_apis/DEPS
+++ b/google_apis/DEPS
@@ -1,7 +1,9 @@
 include_rules = [
   "-chrome",
   "-content",
+  "+base/test",
   "+crypto",
+  "+mojo/core/embedder",
   "+mojo/edk",
   "+net",
   "+services/network/public",
diff --git a/google_apis/gaia/DEPS b/google_apis/gaia/DEPS
index 35ee2420..ba5d5aa 100644
--- a/google_apis/gaia/DEPS
+++ b/google_apis/gaia/DEPS
@@ -12,6 +12,5 @@
   r"|ubertoken_fetcher_unittest\.cc"
   r")": [
     "+services/network/test",
-    "+mojo/core/embedder",
   ],
-}
\ No newline at end of file
+}
diff --git a/google_apis/gcm/BUILD.gn b/google_apis/gcm/BUILD.gn
index bc2bef948..401a94d 100644
--- a/google_apis/gcm/BUILD.gn
+++ b/google_apis/gcm/BUILD.gn
@@ -157,7 +157,6 @@
     "engine/mcs_client_unittest.cc",
     "engine/registration_request_unittest.cc",
     "engine/unregistration_request_unittest.cc",
-    "test/run_all_unittests.cc",
   ]
 
   deps = [
@@ -165,7 +164,7 @@
     ":test_support",
     "//base",
     "//base/test:test_support",
-    "//mojo/core/embedder",
+    "//google_apis:run_all_unittests",
     "//mojo/public/cpp/system:system",
     "//net",
     "//net:test_support",
diff --git a/google_apis/gcm/test/DEPS b/google_apis/gcm/test/DEPS
deleted file mode 100644
index 9243dcd6..0000000
--- a/google_apis/gcm/test/DEPS
+++ /dev/null
@@ -1,3 +0,0 @@
-include_rules = [
-  "+mojo/core/embedder",
-]
diff --git a/google_apis/gcm/test/run_all_unittests.cc b/google_apis/run_all_unittests.cc
similarity index 91%
rename from google_apis/gcm/test/run_all_unittests.cc
rename to google_apis/run_all_unittests.cc
index 939a23ce..f4da01b 100644
--- a/google_apis/gcm/test/run_all_unittests.cc
+++ b/google_apis/run_all_unittests.cc
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/message_loop/message_loop.h"
 #include "base/test/launcher/unit_test_launcher.h"
 #include "base/test/test_suite.h"
 #include "mojo/core/embedder/embedder.h"
diff --git a/google_apis/test/DEPS b/google_apis/test/DEPS
deleted file mode 100644
index 9243dcd6..0000000
--- a/google_apis/test/DEPS
+++ /dev/null
@@ -1,3 +0,0 @@
-include_rules = [
-  "+mojo/core/embedder",
-]
diff --git a/google_apis/test/run_all_unittests.cc b/google_apis/test/run_all_unittests.cc
deleted file mode 100644
index 939a23ce..0000000
--- a/google_apis/test/run_all_unittests.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/message_loop/message_loop.h"
-#include "base/test/launcher/unit_test_launcher.h"
-#include "base/test/test_suite.h"
-#include "mojo/core/embedder/embedder.h"
-
-int main(int argc, char** argv) {
-  base::TestSuite test_suite(argc, argv);
-
-  mojo::core::Init();
-  return base::LaunchUnitTests(
-      argc, argv,
-      base::BindOnce(&base::TestSuite::Run, base::Unretained(&test_suite)));
-}
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 15c40ad..8c7e4f10 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -3485,7 +3485,7 @@
   framebuffer_manager_.reset(new FramebufferManager(
       group_->max_draw_buffers(), group_->max_color_attachments(),
       group_->framebuffer_completeness_cache()));
-  texture_manager()->AddFramebufferManager(framebuffer_manager_.get());
+  group_->texture_manager()->AddFramebufferManager(framebuffer_manager_.get());
 
   query_manager_.reset(new GLES2QueryManager(this, feature_info_.get()));
 
@@ -5121,8 +5121,8 @@
       fence->Invalidate();
     }
 
-    if (texture_manager())
-      texture_manager()->MarkContextLost();
+    if (group_ && group_->texture_manager())
+      group_->texture_manager()->MarkContextLost();
     state_.MarkContextLost();
   }
   deschedule_until_finished_fences_.clear();
@@ -5162,8 +5162,9 @@
 
   if (framebuffer_manager_.get()) {
     framebuffer_manager_->Destroy(have_context);
-    if (texture_manager())
-      texture_manager()->RemoveFramebufferManager(framebuffer_manager_.get());
+    if (group_->texture_manager())
+      group_->texture_manager()->RemoveFramebufferManager(
+          framebuffer_manager_.get());
     framebuffer_manager_.reset();
   }
 
@@ -17755,7 +17756,7 @@
     return;
   }
 
-  mailbox_manager()->ProduceTexture(mailbox, texture_ref->texture());
+  group_->mailbox_manager()->ProduceTexture(mailbox, texture_ref->texture());
 }
 
 void GLES2DecoderImpl::DoCreateAndConsumeTextureINTERNAL(
@@ -17786,7 +17787,7 @@
     return;
   }
   Texture* texture =
-      static_cast<Texture*>(mailbox_manager()->ConsumeTexture(mailbox));
+      static_cast<Texture*>(group_->mailbox_manager()->ConsumeTexture(mailbox));
   if (!texture) {
     // Create texture to handle invalid mailbox (see http://crbug.com/472465).
     bool result = GenTexturesHelper(1, &client_id);
@@ -19803,7 +19804,7 @@
   size_t size = texture->texture()->estimated_size();
   ServiceDiscardableHandle handle(std::move(buffer), shm_offset, shm_id);
   GetContextGroup()->discardable_manager()->InsertLockedTexture(
-      texture_id, size, texture_manager(), std::move(handle));
+      texture_id, size, group_->texture_manager(), std::move(handle));
   return error::kNoError;
 }
 
@@ -19818,7 +19819,7 @@
   ServiceDiscardableManager* discardable_manager =
       GetContextGroup()->discardable_manager();
   TextureRef* texture_to_unbind;
-  if (!discardable_manager->UnlockTexture(texture_id, texture_manager(),
+  if (!discardable_manager->UnlockTexture(texture_id, group_->texture_manager(),
                                           &texture_to_unbind)) {
     LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glUnlockDiscardableTextureCHROMIUM",
                        "Texture ID not initialized");
@@ -19837,7 +19838,7 @@
           cmd_data);
   GLuint texture_id = c.texture_id;
   if (!GetContextGroup()->discardable_manager()->LockTexture(
-          texture_id, texture_manager())) {
+          texture_id, group_->texture_manager())) {
     // Temporarily log a crash dump for debugging crbug.com/870317.
     base::debug::DumpWithoutCrashing();
     LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glLockDiscardableTextureCHROMIUM",
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
index 156be65..1b2770d 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
@@ -4047,8 +4047,8 @@
 
   const Mailbox& mb = Mailbox::FromVolatile(
       *reinterpret_cast<const volatile Mailbox*>(mailbox));
-  scoped_refptr<TexturePassthrough> texture =
-      static_cast<TexturePassthrough*>(mailbox_manager_->ConsumeTexture(mb));
+  scoped_refptr<TexturePassthrough> texture = static_cast<TexturePassthrough*>(
+      group_->mailbox_manager()->ConsumeTexture(mb));
   if (texture == nullptr) {
     // Create texture to handle invalid mailbox (see http://crbug.com/472465 and
     // http://crbug.com/851878).
diff --git a/infra/config/global/cr-buildbucket.cfg b/infra/config/global/cr-buildbucket.cfg
index 8acae36..1816421 100644
--- a/infra/config/global/cr-buildbucket.cfg
+++ b/infra/config/global/cr-buildbucket.cfg
@@ -389,18 +389,9 @@
 builder_mixins {
   name: "xcode-caches"
   caches: {
-    # Cache for Xcode 10.0 beta 5 (build version 10l221o) needed for iOS builds.
-    name: "xcode_ios_10l221o"
-    path: "xcode_ios_10l221o.app"
-  }
-}
-
-builder_mixins {
-  name: "xcode-10-try-caches"
-  caches: {
     # Cache for Xcode 10.0 beta 6 (build version 10l232m) needed for iOS builds.
     name: "xcode_ios_10l232m"
-    path: "xcode_ios_10l221m.app"
+    path: "xcode_ios_10l232m.app"
   }
 }
 
@@ -518,20 +509,6 @@
 }
 
 builder_mixins {
-  name: "nacl_sdk"
-  recipe {
-    name: "nacl/sdk"
-  }
-}
-
-builder_mixins {
-  name: "nacl_sdk_build"
-  recipe {
-    name: "nacl/sdk_build"
-  }
-}
-
-builder_mixins {
   name: "upload_clang"
   recipe {
     name: "chromium_upload_clang"
@@ -1355,9 +1332,9 @@
     builders { mixins: "ios-ci" name: "ios-simulator-xcode-clang" }
     builders { mixins: "ios-ci" name: "ios-uirefresh-simulator" }
     builders { mixins: "ios-ci" mixins: "fyi-ci" name: "ios-simulator-cronet" }
-    builders { mixins: "ios-ci" mixins: "fyi-ci" mixins: "xcode-10-try-caches" name: "ios12-sdk-device" }
-    builders { mixins: "ios-ci" mixins: "fyi-ci" mixins: "xcode-10-try-caches" name: "ios12-sdk-simulator" }
-    builders { mixins: "ios-ci" mixins: "fyi-ci" mixins: "xcode-10-try-caches" name: "ios12-sdk-xcode-clang" }
+    builders { mixins: "ios-ci" mixins: "fyi-ci" name: "ios12-sdk-device" }
+    builders { mixins: "ios-ci" mixins: "fyi-ci" name: "ios12-sdk-simulator" }
+    builders { mixins: "ios-ci" mixins: "fyi-ci" name: "ios12-sdk-xcode-clang" }
 
     # Win bots.
     builders {
@@ -2380,6 +2357,8 @@
       mixins: "goma-j300"
       name: "android-marshmallow-arm64-rel"
       dimensions: "os:Ubuntu-14.04"
+      # TODO(hinoka): Make this 16 core after crbug.com/875708
+      dimensions: "cores:"
     }
     # TODO(jbudorick): Remove this after fully migrating ANSR.
     builders {
@@ -2389,6 +2368,8 @@
       auto_builder_dimension: NO
       dimensions: "builder:android-marshmallow-arm64-rel"
       dimensions: "os:Ubuntu-14.04"
+      # TODO(hinoka): Make this 16 core after crbug.com/875708
+      dimensions: "cores:"
       recipe {
         properties: "buildername:android-marshmallow-arm64-rel"
       }
@@ -2603,16 +2584,6 @@
     builders { mixins: "linux-try" name: "linux_layout_tests_slimming_paint_v2" }
     builders { mixins: "linux-try" name: "linux_mojo" }
     builders { mixins: "linux-try" name: "linux_mojo_chromeos" }
-    builders {
-      mixins: "linux-try"
-      mixins: "nacl_sdk"
-      name: "linux_nacl_sdk"
-    }
-    builders {
-      mixins: "linux-try"
-      mixins: "nacl_sdk_build"
-      name: "linux_nacl_sdk_build"
-    }
     builders { mixins: "linux-optional-gpu-try" name: "linux_optional_gpu_tests_rel" }
     builders {
       mixins: "linux-try"
@@ -2625,7 +2596,7 @@
     builders { mixins: "ios-try" name: "ios-simulator" }
     builders { mixins: "ios-try" name: "ios-simulator-cronet" }
     builders { mixins: "ios-try" name: "ios-uirefresh-simulator" }
-    builders { mixins: "ios-try" mixins: "xcode-10-try-caches" name: "ios12-sdk-simulator" }
+    builders { mixins: "ios-try" name: "ios12-sdk-simulator" }
     builders { mixins: "ios-try" name: "ios-simulator-full-configs" }
     builders { mixins: "ios-try" name: "ios-simulator-eg" }
     builders { mixins: "ios-try" name: "ios-simulator-xcode-clang" }
@@ -2670,8 +2641,6 @@
     builders { mixins: "mac-try" name: "mac_chromium_variable_deflake" }
     builders { mixins: "mac-try" name: "mac_chromium_variable_layout" }
     builders { mixins: "mac-try" name: "mac-cocoa-rel" }
-    builders { mixins: "mac-try" mixins: "nacl_sdk" name: "mac_nacl_sdk" }
-    builders { mixins: "mac-try" mixins: "nacl_sdk_build" name: "mac_nacl_sdk_build" }
     builders {
       mixins: "mac-optional-gpu-try"
       name: "mac_optional_gpu_tests_rel"
@@ -2735,8 +2704,6 @@
     builders { mixins: "win-try" name: "win_chromium_variable_webkit_win7_builder_x64" }
     builders { mixins: "win-try" name: "win_chromium_x64_rel_ng" }
     builders { mixins: "win-try" name: "win_mojo" }
-    builders { mixins: "win-try" mixins: "nacl_sdk" name: "win_nacl_sdk" }
-    builders { mixins: "win-try" mixins: "nacl_sdk_build" name: "win_nacl_sdk_build" }
     builders { mixins: "win-optional-gpu-try" name: "win_optional_gpu_tests_rel" }
     builders { mixins: "win-try" mixins: "upload_clang" name: "win_upload_clang" }
     builders { mixins: "win-try" name: "win_x64_archive" }
diff --git a/infra/config/global/luci-milo.cfg b/infra/config/global/luci-milo.cfg
index d0f1f31..1e4280d6 100644
--- a/infra/config/global/luci-milo.cfg
+++ b/infra/config/global/luci-milo.cfg
@@ -4061,14 +4061,6 @@
     name: "buildbucket/luci.chromium.try/linux_mojo_chromeos"
   }
   builders {
-    name: "buildbot/tryserver.chromium.linux/linux_nacl_sdk"
-    name: "buildbucket/luci.chromium.try/linux_nacl_sdk"
-  }
-  builders {
-    name: "buildbot/tryserver.chromium.linux/linux_nacl_sdk_build"
-    name: "buildbucket/luci.chromium.try/linux_nacl_sdk_build"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/linux_optional_gpu_tests_rel"
   }
   builders {
@@ -4179,12 +4171,6 @@
     name: "buildbucket/luci.chromium.try/mac-cocoa-rel"
   }
   builders {
-    name: "buildbot/tryserver.chromium.mac/mac_nacl_sdk"
-  }
-  builders {
-    name: "buildbot/tryserver.chromium.mac/mac_nacl_sdk_build"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/mac_optional_gpu_tests_rel"
   }
   builders {
@@ -4307,12 +4293,6 @@
     name: "buildbot/tryserver.chromium.win/win_mojo"
   }
   builders {
-    name: "buildbot/tryserver.chromium.win/win_nacl_sdk"
-  }
-  builders {
-    name: "buildbot/tryserver.chromium.win/win_nacl_sdk_build"
-  }
-  builders {
     name: "buildbot/tryserver.chromium.win/win_optional_gpu_tests_rel"
   }
   builders {
@@ -4721,12 +4701,6 @@
     name: "buildbucket/luci.chromium.try/linux_mojo_chromeos"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/linux_nacl_sdk"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.try/linux_nacl_sdk_build"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/linux_optional_gpu_tests_rel"
   }
   builders {
@@ -4829,12 +4803,6 @@
     name: "buildbucket/luci.chromium.try/mac_chromium_variable_layout"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/mac_nacl_sdk"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.try/mac_nacl_sdk_build"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/mac_optional_gpu_tests_rel"
   }
   builders {
@@ -4925,12 +4893,6 @@
     name: "buildbucket/luci.chromium.try/win_mojo"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/win_nacl_sdk"
-  }
-  builders {
-    name: "buildbucket/luci.chromium.try/win_nacl_sdk_build"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/win_optional_gpu_tests_rel"
   }
   builders {
diff --git a/ios/build/bots/chromium.clang/ToTiOS.json b/ios/build/bots/chromium.clang/ToTiOS.json
index cf777fe..43b821c 100644
--- a/ios/build/bots/chromium.clang/ToTiOS.json
+++ b/ios/build/bots/chromium.clang/ToTiOS.json
@@ -2,7 +2,7 @@
   "comments": [
     "Clang tip-of-tree builder for iOS."
   ],
-  "xcode build version": "10L221o",
+  "xcode build version": "10l232m",
   "gn_args": [
     "ios_enable_code_signing=false",
     "is_component_build=false",
diff --git a/ios/build/bots/chromium.clang/clang_tot_device.json b/ios/build/bots/chromium.clang/clang_tot_device.json
index d2e8148..71677df 100644
--- a/ios/build/bots/chromium.clang/clang_tot_device.json
+++ b/ios/build/bots/chromium.clang/clang_tot_device.json
@@ -2,7 +2,7 @@
   "comments": [
     "Clang tip-of-tree builder for iOS device."
   ],
-  "xcode build version": "10L221o",
+  "xcode build version": "10l232m",
   "gn_args": [
     "is_debug=false",
     "llvm_force_head_revision=true",
diff --git a/ios/build/bots/chromium.fyi/ios-device-goma-canary-clobber.json b/ios/build/bots/chromium.fyi/ios-device-goma-canary-clobber.json
index 44b4629..3d76236 100644
--- a/ios/build/bots/chromium.fyi/ios-device-goma-canary-clobber.json
+++ b/ios/build/bots/chromium.fyi/ios-device-goma-canary-clobber.json
@@ -3,7 +3,7 @@
     "Goma canary builder for iOS.",
     "It is chromium.mac/ios-device.json + use_goma_canary, clobber."
   ],
-  "xcode build version": "10L221o",
+  "xcode build version": "10l232m",
   "gn_args": [
     "additional_target_cpus=[ \"arm64\" ]",
     "goma_dir=\"$(goma_dir)\"",
diff --git a/ios/build/bots/chromium.fyi/ios-simulator.json b/ios/build/bots/chromium.fyi/ios-simulator.json
index bdb6e49..db7e63b2 100644
--- a/ios/build/bots/chromium.fyi/ios-simulator.json
+++ b/ios/build/bots/chromium.fyi/ios-simulator.json
@@ -2,7 +2,7 @@
   "comments": [
     "Runs tests on FYI on the latest simulators."
   ],
-  "xcode build version": "10L221o",
+  "xcode build version": "10l232m",
   "gn_args": [
     "additional_target_cpus=[\"x86\"]",
     "goma_dir=\"$(goma_dir)\"",
diff --git a/ios/build/bots/chromium.fyi/ios12-beta-simulator.json b/ios/build/bots/chromium.fyi/ios12-beta-simulator.json
index 4b7f655..339af9e 100644
--- a/ios/build/bots/chromium.fyi/ios12-beta-simulator.json
+++ b/ios/build/bots/chromium.fyi/ios12-beta-simulator.json
@@ -3,7 +3,7 @@
     "Run tests on iOS12beta track on 64-bit iOS 12 simulators.",
     "Note: Xcode 10 requires OSX 10.13.4 hence 'host os'"
   ],
-  "xcode build version": "10L221o",
+  "xcode build version": "10l232m",
   "gn_args": [
     "goma_dir=\"$(goma_dir)\"",
     "additional_target_cpus=[\"x86\"]",
diff --git a/ios/build/bots/chromium.mac/ios-device.json b/ios/build/bots/chromium.mac/ios-device.json
index b85b4b4f..8b8cf1e 100644
--- a/ios/build/bots/chromium.mac/ios-device.json
+++ b/ios/build/bots/chromium.mac/ios-device.json
@@ -4,7 +4,7 @@
     "Build is performed with gn+ninja.",
     "If modified, please change chromium.fyi/ios-device-goma-canary-clobber.json too."
   ],
-  "xcode build version": "10L221o",
+  "xcode build version": "10l232m",
   "gn_args": [
     "additional_target_cpus=[ \"arm64\" ]",
     "goma_dir=\"$(goma_dir)\"",
diff --git a/ios/build/bots/chromium.mac/ios-simulator-full-configs.json b/ios/build/bots/chromium.mac/ios-simulator-full-configs.json
index 2928cab..bbb9ee8 100644
--- a/ios/build/bots/chromium.mac/ios-simulator-full-configs.json
+++ b/ios/build/bots/chromium.mac/ios-simulator-full-configs.json
@@ -3,7 +3,7 @@
     "Runs tests on 64-bit iOS 10, 11 and 12 tests on iPad, iPhone,",
     "@3x, and @2x on main waterfall ios-simulator-full-configs."
   ],
-  "xcode build version": "10L221o",
+  "xcode build version": "10l232m",
   "gn_args": [
     "additional_target_cpus=[\"x86\"]",
     "goma_dir=\"$(goma_dir)\"",
diff --git a/ios/build/bots/chromium.mac/ios-simulator.json b/ios/build/bots/chromium.mac/ios-simulator.json
index 7cb4604..2b24cf7 100644
--- a/ios/build/bots/chromium.mac/ios-simulator.json
+++ b/ios/build/bots/chromium.mac/ios-simulator.json
@@ -4,7 +4,7 @@
     "on iPad, iPhone, @3x, and @2x on main and CQ ios-simulator.",
     "Note: Xcode 10 requires Mac OS 10.13.4 or higher, hence 'host os'."
   ],
-  "xcode build version": "10L221o",
+  "xcode build version": "10l232m",
   "gn_args": [
     "additional_target_cpus=[\"x86\"]",
     "goma_dir=\"$(goma_dir)\"",
diff --git a/ios/build/bots/chromium.mac/ios-uirefresh-simulator.json b/ios/build/bots/chromium.mac/ios-uirefresh-simulator.json
index 555bb8ce..e5bef09 100644
--- a/ios/build/bots/chromium.mac/ios-uirefresh-simulator.json
+++ b/ios/build/bots/chromium.mac/ios-uirefresh-simulator.json
@@ -2,7 +2,7 @@
   "comments": [
     "UIRefresh tests for iPhone simulator."
   ],
-  "xcode build version": "10L221o",
+  "xcode build version": "10l232m",
   "gn_args": [
     "goma_dir=\"$(goma_dir)\"",
     "additional_target_cpus=[\"x86\"]",
diff --git a/ios/build/tools/convert_gn_xcodeproj.py b/ios/build/tools/convert_gn_xcodeproj.py
index 50161b1..0b465e0 100755
--- a/ios/build/tools/convert_gn_xcodeproj.py
+++ b/ios/build/tools/convert_gn_xcodeproj.py
@@ -145,6 +145,18 @@
   WriteXcodeProject(file_output, json.dumps(json_data))
 
 
+def DisableNewBuildSystem(output_dir):
+  """Disables the new build system due to crbug.com/852522 """
+  xcwspacesharedsettings = os.path.join(output_dir, 'all.xcworkspace',
+      'xcshareddata', 'WorkspaceSettings.xcsettings')
+  if os.path.isfile(xcwspacesharedsettings):
+    json_data = json.loads(LoadXcodeProjectAsJSON(xcwspacesharedsettings))
+  else:
+    json_data = {}
+  json_data['BuildSystemType'] = 'Original'
+  WriteXcodeProject(xcwspacesharedsettings, json.dumps(json_data))
+
+
 def ConvertGnXcodeProject(input_dir, output_dir, configurations):
   '''Tweak the Xcode project generated by gn to support multiple configurations.
 
@@ -171,6 +183,11 @@
   xcwspace = os.path.join('all.xcworkspace', 'contents.xcworkspacedata')
   CopyFileIfChanged(os.path.join(input_dir, xcwspace),
                     os.path.join(output_dir, xcwspace))
+
+
+  # TODO(crbug.com/852522): Disable new BuildSystemType.
+  DisableNewBuildSystem(output_dir)
+
   # TODO(crbug.com/679110): gn has been modified to remove 'sources.xcodeproj'
   # and keep 'all.xcworkspace' and 'products.xcodeproj'. The following code is
   # here to support both old and new projects setup and will be removed once gn
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 ab87264a..e1976be 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
@@ -17,6 +17,7 @@
 <translation id="2647554856022461007">Chromium మీ బ్రౌజింగ్ అనుభవాన్ని మెరుగుపరచడానికి వెబ్ సేవలను ఉపయోగించవచ్చు. మీరు ఈ సేవలను ఐచ్ఛికంగా నిలిపివేయవచ్చు. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
 <translation id="2687023731466035790">Chromiumలో Google స్మార్ట్‌లను పొందండి</translation>
 <translation id="2730884209570016437">మీ కెమెరాను మరొక అనువర్తనం ఉపయోగిస్తున్నందున Chromium దాన్ని ఉపయోగించలేదు</translation>
+<translation id="2797210818057553964">మీరు ఏ సమయంలో అయినా దీనిని Chromium సెట్టింగ్‌లలో అనుకూలీకరించవచ్చు</translation>
 <translation id="3256316712990552818">Chromiumకి కాపీ చేయబడింది</translation>
 <translation id="3413120535237193088">మీ అన్ని పరికరాల్లో మీ బుక్‌మార్క్‌లను పొందడానికి, Chromiumకి సైన్ ఇన్ చేయండి.</translation>
 <translation id="3473048256428424907">Chromium QR స్కానర్‌ని ఆన్ చేయండి</translation>
@@ -45,6 +46,7 @@
 <translation id="7337881442233988129">Chromium</translation>
 <translation id="7357211569052832586">ఎంచుకోబడిన డేటా Chromium మరియు సమకాలీకరించిన పరికరాల నుండి తీసివేయబడింది. మీ Google ఖాతా history.google.comలో ఇతర Google సేవలకు సంబంధించిన శోధనలు మరియు కార్యాచరణ వంటి ఇతర రకాల బ్రౌజింగ్ చరిత్రను కలిగి ఉండవచ్చు.</translation>
 <translation id="7400689562045506105">Chromiumని అంతటా ఉపయోగించండి</translation>
+<translation id="7499048969477415415">Chromiumలో సమకాలీకరణ, వ్యక్తిగతీకరణ మరియు ఇతర Google సేవలను నియంత్రించే సెట్టింగ్‌లు మార్చబడ్డాయి. ఇది మీ ప్రస్తుత సెట్టింగ్‌లను ప్రభావితం చేయవచ్చు.</translation>
 <translation id="7674213385180944843">సెట్టింగ్‌లు &gt; గోప్యత &gt; కెమెరా &gt; Chromium తెరిచి, కెమెరాను ఆన్ చేయండి.</translation>
 <translation id="7746854981345936341">Chromium చిట్కా. వెనకకు, ముందుకు మరియు శోధన వంటి కొన్ని బటన్‌లు ఇప్పుడు మీ స్క్రీన్ దిగువన ఉన్నాయి.</translation>
 <translation id="786327964234957808">మీరు సమకాలీకరణ ఖాతాలను <ph name="USER_EMAIL1" /> నుండి <ph name="USER_EMAIL2" />కి మారుస్తున్నారు. ఇప్పటికే ఉన్న మీ Chromium డేటా <ph name="DOMAIN" /> నిర్వహణలో ఉంది. దీని వలన మీ డేటా ఈ పరికరం నుండి తొలగించబడుతుంది, కానీ మీ డేటా <ph name="USER_EMAIL1" />లో అలాగే ఉంటుంది.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index ef5ea8c6..0355435 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">ምንም ንጥሎች የሉም</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> ተመርጧል</translation>
 <translation id="1740468249224277719">ለመጫን ሁለቴ ነካ ያድርጉ።</translation>
+<translation id="1746815479209538200">ድሩን ለማሰስ አዲስ ትር ያክሉ።</translation>
 <translation id="17513872634828108">ትሮችን ክፈት</translation>
 <translation id="1752547299766512813">የይለፍ ቃላትን አስቀምጥ</translation>
 <translation id="1753905327828125965">በይበልጥ የተጎበኙ</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">ትክክል ያልሆነ የይለፍ ሐረግ</translation>
 <translation id="7649070708921625228">እገዛ</translation>
 <translation id="7658239707568436148">ይቅር</translation>
+<translation id="766891008101699113">ድሩን በግል ለማሰስ አዲስ ትር ያክሉ።</translation>
 <translation id="7671141431838911305">ጫን</translation>
 <translation id="7765158879357617694">ውሰድ</translation>
 <translation id="7769602470925380267">ተቀበልና ዘግተህ ውጣ</translation>
 <translation id="7772032839648071052">የይለፍ ሐረግ ያረጋግጡ</translation>
+<translation id="7781829728241885113">ትናንት</translation>
 <translation id="780301667611848630">አይ፣ አመሰግናለሁ</translation>
 <translation id="7830720446622801252">ግላዊነት ያልተላበሱ አገልግሎቶች</translation>
+<translation id="7840771868269352570">የመረጧቸው ንጥሎች ይወገዳሉ።</translation>
 <translation id="7856733331829174190">ማውረድ አልተቻለም</translation>
 <translation id="7859704718976024901">የአሰሳ ታሪክ</translation>
 <translation id="7918293828610777738">የንባብ ዝርዝርዎ ከመስመር ውጭ ይገኛል። አንድ ገጽ ወደ የንባብ ዝርዝርዎ ለማከል በመጀመሪያ <ph name="SHARE_OPENING_ICON" />ን ከዚያም <ph name="READ_LATER_TEXT" />ን መታ ያድርጉ።</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index 75b685c..39e90223 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">لا توجد عناصر</translation>
 <translation id="1700629756560807968">تم تحديد <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">انقر مرّتين للتثبيت.</translation>
+<translation id="1746815479209538200">لتصفُّح الويب، يمكنك إضافة علامة تبويب جديدة.</translation>
 <translation id="17513872634828108">علامات التبويب المفتوحة</translation>
 <translation id="1752547299766512813">حفظ كلمات المرور</translation>
 <translation id="1753905327828125965">الأكثر زيارة</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">عبارة مرور غير صحيحة</translation>
 <translation id="7649070708921625228">مساعدة</translation>
 <translation id="7658239707568436148">إلغاء</translation>
+<translation id="766891008101699113">لتصفُّح الويب بشكلٍ خاص، يمكنك إضافة علامة تبويب جديدة.</translation>
 <translation id="7671141431838911305">تثبيت</translation>
 <translation id="7765158879357617694">نقل</translation>
 <translation id="7769602470925380267">قبول وتسجيل الخروج</translation>
 <translation id="7772032839648071052">تأكيد عبارة المرور</translation>
+<translation id="7781829728241885113">أمس</translation>
 <translation id="780301667611848630">لا، شكرًا</translation>
 <translation id="7830720446622801252">الخدمات غير المُخصّصة</translation>
+<translation id="7840771868269352570">ستتم إزالة العناصر التي اخترتها.</translation>
 <translation id="7856733331829174190">تعذّر التنزيل.</translation>
 <translation id="7859704718976024901">سجل التصفح</translation>
 <translation id="7918293828610777738">قائمة القراءة متاحة بلا اتصال بالإنترنت. لإضافة صفحة إلى قائمة القراءة، انقر على  <ph name="SHARE_OPENING_ICON" />  ثم <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
index 664db1f..ecf89703 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Няма елементи</translation>
 <translation id="1700629756560807968">Избрахте <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">Докоснете двукратно, за да инсталирате.</translation>
+<translation id="1746815479209538200">За да сърфирате в мрежата, добавете нов раздел.</translation>
 <translation id="17513872634828108">Отворени раздели</translation>
 <translation id="1752547299766512813">Запазени пароли</translation>
 <translation id="1753905327828125965">Ползвани</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Неправилен пропуск</translation>
 <translation id="7649070708921625228">Помощ</translation>
 <translation id="7658239707568436148">Отказ</translation>
+<translation id="766891008101699113">За да сърфирате в мрежата частно, добавете нов раздел.</translation>
 <translation id="7671141431838911305">INSTALL</translation>
 <translation id="7765158879357617694">Преместване</translation>
 <translation id="7769602470925380267">Приемане и излизане от профила</translation>
 <translation id="7772032839648071052">Потвърдете пропуска</translation>
+<translation id="7781829728241885113">Вчера</translation>
 <translation id="780301667611848630">Не, благодаря</translation>
 <translation id="7830720446622801252">Неперсонализирани услуги</translation>
+<translation id="7840771868269352570">Избраните елементи ще бъдат премахнати.</translation>
 <translation id="7856733331829174190">Неуспешно изтегляне</translation>
 <translation id="7859704718976024901">История на сърфирането</translation>
 <translation id="7918293828610777738">Списъкът ви за четене е достъпен офлайн. За да добавите страница към него, докоснете <ph name="SHARE_OPENING_ICON" /> и след това „<ph name="READ_LATER_TEXT" />“.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index ccf65309..dd61e51a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -397,6 +397,7 @@
 <translation id="7765158879357617694">সরান</translation>
 <translation id="7769602470925380267">স্বীকার করে প্রস্থান করুন</translation>
 <translation id="7772032839648071052">পাসফ্রেজ নিশ্চিত করুন</translation>
+<translation id="7781829728241885113">গতকাল</translation>
 <translation id="780301667611848630">না থাক</translation>
 <translation id="7830720446622801252">ব্যক্তিগতকৃত নয় এমন পরিষেবাগুলি</translation>
 <translation id="7856733331829174190">ডাউনলোড করা যায়নি</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index c10aeb9..bfe8e72 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Cap element</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> seleccionades</translation>
 <translation id="1740468249224277719">Feu doble toc per instal·lar l'aplicació.</translation>
+<translation id="1746815479209538200">Per navegar pel web, obre una pestanya nova.</translation>
 <translation id="17513872634828108">Pestanyes obertes</translation>
 <translation id="1752547299766512813">Desa les contrasenyes</translation>
 <translation id="1753905327828125965">Els més visitats</translation>
@@ -129,7 +130,7 @@
 <translation id="2969979262385602596">No s'ha pogut iniciar la sessió. Torneu-ho a provar més tard.</translation>
 <translation id="2989805286512600854">Obre en una pestanya nova</translation>
 <translation id="3024255823539804759">Ahir</translation>
-<translation id="3037605927509011580">Oh, no!</translation>
+<translation id="3037605927509011580">Vaja!</translation>
 <translation id="3112556859945124369">Marca com a…</translation>
 <translation id="3151924044251363314">Només els usuaris que sàpiguen la vostra frase de contrasenya poden llegir les dades que encripteu. La frase de contrasenya no s'envia a Google, i Google tampoc no l'emmagatzema. Si l'oblideu o voleu canviar aquesta configuració, heu de restablir la sincronització. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation>
 <translation id="3157684681743766797">Marca-ho tot com a…</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">La frase de contrasenya és incorrecta</translation>
 <translation id="7649070708921625228">Ajuda</translation>
 <translation id="7658239707568436148">Cancel·la</translation>
+<translation id="766891008101699113">Per navegar pel web de manera privada, obre una pestanya nova.</translation>
 <translation id="7671141431838911305">INSTAL·LA</translation>
 <translation id="7765158879357617694">Mou</translation>
 <translation id="7769602470925380267">Accepta i tanca la sessió</translation>
 <translation id="7772032839648071052">Confirmeu la frase de contrasenya</translation>
+<translation id="7781829728241885113">Ahir</translation>
 <translation id="780301667611848630">No, gràcies</translation>
 <translation id="7830720446622801252">Serveis no personalitzats</translation>
+<translation id="7840771868269352570">Els elements seleccionats se suprimiran.</translation>
 <translation id="7856733331829174190">No s'ha pogut baixar</translation>
 <translation id="7859704718976024901">Historial de navegació</translation>
 <translation id="7918293828610777738">La llista de lectura està disponible sense connexió. Per afegir-hi una pàgina, toca <ph name="SHARE_OPENING_ICON" /> i després <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index 1fe29a5..d52623b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Žádné položky</translation>
 <translation id="1700629756560807968">Počet vybraných položek: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">Dvojitým klepnutím spustíte instalaci.</translation>
+<translation id="1746815479209538200">Chcete-li procházet web, přidejte novou kartu.</translation>
 <translation id="17513872634828108">Otevřené karty</translation>
 <translation id="1752547299766512813">Ukládání hesel</translation>
 <translation id="1753905327828125965">Nejnavštěvovanější</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Nesprávná heslová fráze</translation>
 <translation id="7649070708921625228">Nápověda</translation>
 <translation id="7658239707568436148">Zrušit</translation>
+<translation id="766891008101699113">Chcete-li procházet web v soukromí, přidejte novou kartu.</translation>
 <translation id="7671141431838911305">INSTALOVAT</translation>
 <translation id="7765158879357617694">Přesunout</translation>
 <translation id="7769602470925380267">Přijmout a odhlásit se</translation>
 <translation id="7772032839648071052">Potvrďte heslovou frázi</translation>
+<translation id="7781829728241885113">Včera</translation>
 <translation id="780301667611848630">Ne, děkuji</translation>
 <translation id="7830720446622801252">Nepersonalizované služby</translation>
+<translation id="7840771868269352570">Vybrané položky budou odstraněny.</translation>
 <translation id="7856733331829174190">Stažení se nezdařilo</translation>
 <translation id="7859704718976024901">Historie procházení</translation>
 <translation id="7918293828610777738">Seznam obsahu k přečtení je k dispozici offline. Chcete-li na něj přidat stránku, klepněte na <ph name="SHARE_OPENING_ICON" /> a poté na <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index 9ebde8a..135e59cd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Ingen elementer</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> valgt</translation>
 <translation id="1740468249224277719">Tryk to gange for at installere.</translation>
+<translation id="1746815479209538200">Tilføj en ny fane for at surfe på nettet.</translation>
 <translation id="17513872634828108">Åbne faner</translation>
 <translation id="1752547299766512813">Gem adgangskoder</translation>
 <translation id="1753905327828125965">Mest besøgte</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Forkert adgangssætning</translation>
 <translation id="7649070708921625228">Hjælp</translation>
 <translation id="7658239707568436148">Annuller</translation>
+<translation id="766891008101699113">Tilføj en ny fane for at surfe privat på nettet.</translation>
 <translation id="7671141431838911305">INSTALLER</translation>
 <translation id="7765158879357617694">Flyt</translation>
 <translation id="7769602470925380267">Acceptér, og log ud</translation>
 <translation id="7772032839648071052">Bekræft adgangssætning</translation>
+<translation id="7781829728241885113">I går</translation>
 <translation id="780301667611848630">Nej tak</translation>
 <translation id="7830720446622801252">Ikke-tilpassede tjenester</translation>
+<translation id="7840771868269352570">De valgte elementer fjernes.</translation>
 <translation id="7856733331829174190">Downloaden mislykkedes</translation>
 <translation id="7859704718976024901">Browserhistorik</translation>
 <translation id="7918293828610777738">Din læseliste er tilgængelig offline. Du kan føje en side til din læseliste ved at trykke på <ph name="SHARE_OPENING_ICON" /> og derefter <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 87b909e..11c3ec7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Keine Elemente</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> ausgewählt</translation>
 <translation id="1740468249224277719">Tippen Sie hier doppelt, um die Installation zu starten.</translation>
+<translation id="1746815479209538200">Fügen Sie einen neuen Tab hinzu, um im Web zu surfen.</translation>
 <translation id="17513872634828108">Geöffnete Tabs</translation>
 <translation id="1752547299766512813">Passwörter speichern</translation>
 <translation id="1753905327828125965">Meistbesucht</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Falsche Passphrase</translation>
 <translation id="7649070708921625228">Hilfe</translation>
 <translation id="7658239707568436148">Abbrechen</translation>
+<translation id="766891008101699113">Fügen Sie einen neuen Tab hinzu, um privat im Web zu surfen.</translation>
 <translation id="7671141431838911305">Installieren</translation>
 <translation id="7765158879357617694">Verschieben</translation>
 <translation id="7769602470925380267">Akzeptieren und abmelden</translation>
 <translation id="7772032839648071052">Passphrase bestätigen</translation>
+<translation id="7781829728241885113">Gestern</translation>
 <translation id="780301667611848630">Kein Interesse</translation>
 <translation id="7830720446622801252">Nicht-personalisierte Dienste</translation>
+<translation id="7840771868269352570">Die ausgewählten Elemente werden entfernt.</translation>
 <translation id="7856733331829174190">Fehler beim Download</translation>
 <translation id="7859704718976024901">Browserverlauf</translation>
 <translation id="7918293828610777738">Ihre Leseliste ist offline verfügbar. Sie können eine Seite Ihrer Leseliste hinzufügen, indem Sie auf <ph name="SHARE_OPENING_ICON" /> &gt; <ph name="READ_LATER_TEXT" /> tippen.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index 86c2198d..54776d6f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Κανένα στοιχείο</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> στοιχεία επιλεγμένα</translation>
 <translation id="1740468249224277719">Πατήστε δύο φορές για εγκατάσταση.</translation>
+<translation id="1746815479209538200">Για να περιηγηθείτε στον ιστό, προσθέστε μια νέα καρτέλα.</translation>
 <translation id="17513872634828108">Ανοικτές καρτέλες</translation>
 <translation id="1752547299766512813">Απ. κωδ. πρόσβ.</translation>
 <translation id="1753905327828125965">Πιο Δημοφιλή</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Εσφαλμένη φράση πρόσβασης</translation>
 <translation id="7649070708921625228">Βοήθεια</translation>
 <translation id="7658239707568436148">Ακύρωση</translation>
+<translation id="766891008101699113">Για να περιηγηθείτε στον ιστό ιδιωτικά, προσθέστε μια νέα καρτέλα.</translation>
 <translation id="7671141431838911305">ΕΓΚΑΤΑΣΤΑΣΗ</translation>
 <translation id="7765158879357617694">Μεταφορά</translation>
 <translation id="7769602470925380267">Αποδοχή και αποσύνδεση</translation>
 <translation id="7772032839648071052">Επιβεβαίωση φράσης πρόσβασης</translation>
+<translation id="7781829728241885113">Χθες</translation>
 <translation id="780301667611848630">Όχι, ευχαριστώ</translation>
 <translation id="7830720446622801252">Μη εξατομικευμένες υπηρεσίες</translation>
+<translation id="7840771868269352570">Τα στοιχεία που επιλέξατε θα καταργηθούν.</translation>
 <translation id="7856733331829174190">Δεν ήταν δυνατή η λήψη</translation>
 <translation id="7859704718976024901">Ιστορικό περιήγησης</translation>
 <translation id="7918293828610777738">Η λίστα ανάγνωσης είναι διαθέσιμη εκτός σύνδεσης. Για να προσθέσετε μια σελίδα στη λίστα ανάγνωσης, πατήστε το εικονίδιο <ph name="SHARE_OPENING_ICON" /> και μετά πατήστε το στοιχείο <ph name="READ_LATER_TEXT" />.</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 06467a9e..3a572c3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -398,6 +398,7 @@
 <translation id="7765158879357617694">Move</translation>
 <translation id="7769602470925380267">Accept and sign out</translation>
 <translation id="7772032839648071052">Confirm passphrase</translation>
+<translation id="7781829728241885113">Yesterday</translation>
 <translation id="780301667611848630">No, thank you</translation>
 <translation id="7830720446622801252">Non-personalised services</translation>
 <translation id="7840771868269352570">The items that you selected will be removed.</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 a0711b2..a2a1d4a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Sin elementos</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> seleccionados</translation>
 <translation id="1740468249224277719">Presiona dos veces para instalar.</translation>
+<translation id="1746815479209538200">Para navegar en la Web, agrega una pestaña nueva.</translation>
 <translation id="17513872634828108">Pestañas abiertas</translation>
 <translation id="1752547299766512813">Guardar contraseñas</translation>
 <translation id="1753905327828125965">Más visitados</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Frase de contraseña incorrecta</translation>
 <translation id="7649070708921625228">Ayuda</translation>
 <translation id="7658239707568436148">Cancelar</translation>
+<translation id="766891008101699113">Para navegar en la Web de manera privada, agrega una pestaña nueva.</translation>
 <translation id="7671141431838911305">INSTALAR</translation>
 <translation id="7765158879357617694">Mover</translation>
 <translation id="7769602470925380267">Aceptar y salir</translation>
 <translation id="7772032839648071052">Confirmar frase de contraseña</translation>
+<translation id="7781829728241885113">Ayer</translation>
 <translation id="780301667611848630">No, gracias</translation>
 <translation id="7830720446622801252">Servicios no personalizados</translation>
+<translation id="7840771868269352570">Se quitarán los elementos seleccionados.</translation>
 <translation id="7856733331829174190">No se pudo descargar</translation>
 <translation id="7859704718976024901">Historial de navegación</translation>
 <translation id="7918293828610777738">Tu lista de lectura está disponible sin conexión. Para agregar una página a la lista, presiona <ph name="SHARE_OPENING_ICON" /> y, luego, <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb
index f79d5f4..6ad3836 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">No hay elementos</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> seleccionados</translation>
 <translation id="1740468249224277719">Toca dos veces para instalar.</translation>
+<translation id="1746815479209538200">Para navegar por la Web, debes añadir una nueva pestaña.</translation>
 <translation id="17513872634828108">Pestañas abiertas</translation>
 <translation id="1752547299766512813">Guardar contraseñas</translation>
 <translation id="1753905327828125965">Más visitado</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Frase de contraseña incorrecta</translation>
 <translation id="7649070708921625228">Ayuda</translation>
 <translation id="7658239707568436148">Cancelar</translation>
+<translation id="766891008101699113">Para navegar por la Web de forma privada, debes añadir una nueva pestaña.</translation>
 <translation id="7671141431838911305">INSTALAR</translation>
 <translation id="7765158879357617694">Mover</translation>
 <translation id="7769602470925380267">Aceptar y cerrar sesión</translation>
 <translation id="7772032839648071052">Repite la contraseña</translation>
+<translation id="7781829728241885113">Ayer</translation>
 <translation id="780301667611848630">No, gracias</translation>
 <translation id="7830720446622801252">Servicios no personalizados</translation>
+<translation id="7840771868269352570">Se eliminarán los elementos que hayas seleccionado.</translation>
 <translation id="7856733331829174190">No se ha podido descargar</translation>
 <translation id="7859704718976024901">Historial de navegación</translation>
 <translation id="7918293828610777738">Tu lista de lectura está disponible sin conexión. Para añadir una página a la lista, toca <ph name="SHARE_OPENING_ICON" /> y, a continuación, <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb
index 0e43612..ca57e322 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Üksuseid pole</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> valitud</translation>
 <translation id="1740468249224277719">Installimiseks topeltpuudutage.</translation>
+<translation id="1746815479209538200">Veebi sirvimiseks lisage uus vaheleht.</translation>
 <translation id="17513872634828108">Avatud vahelehed</translation>
 <translation id="1752547299766512813">Paroolide salv.</translation>
 <translation id="1753905327828125965">Enim külastatud</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Vale parool</translation>
 <translation id="7649070708921625228">Abi</translation>
 <translation id="7658239707568436148">Tühista</translation>
+<translation id="766891008101699113">Privaatselt veebi sirvimiseks lisage uus vaheleht.</translation>
 <translation id="7671141431838911305">INSTALLI</translation>
 <translation id="7765158879357617694">Liiguta</translation>
 <translation id="7769602470925380267">Nõustu ja logi välja</translation>
 <translation id="7772032839648071052">Kinnitage parool</translation>
+<translation id="7781829728241885113">Eile</translation>
 <translation id="780301667611848630">Ei, aitäh</translation>
 <translation id="7830720446622801252">Isikupärastamata teenused</translation>
+<translation id="7840771868269352570">Teie valitud üksused eemaldatakse.</translation>
 <translation id="7856733331829174190">Ei saanud alla laadida</translation>
 <translation id="7859704718976024901">Sirvimisajalugu</translation>
 <translation id="7918293828610777738">Teie lugemisloend on võrguühenduseta saadaval. Lugemisloendisse lehe lisamiseks puudutage ikooni <ph name="SHARE_OPENING_ICON" /> ja seejärel valikut <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index 855a1a6..d1b46b2a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -55,6 +55,7 @@
 <translation id="1690731385917361335">هیچ موردی وجود ندارد</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> نشانک انتخاب شده است</translation>
 <translation id="1740468249224277719">برای نصب دو ضربه سریع بزنید.</translation>
+<translation id="1746815479209538200">برای مرور وب، برگه جدیدی اضافه کنید.</translation>
 <translation id="17513872634828108">بازکردن برگه‌ها</translation>
 <translation id="1752547299766512813">ذخیره گذرواژه‌ها</translation>
 <translation id="1753905327828125965">بیشترین موارد بازدید شده</translation>
@@ -393,12 +394,15 @@
 <translation id="7638584964844754484">عبارت عبور نادرست است</translation>
 <translation id="7649070708921625228">راهنما</translation>
 <translation id="7658239707568436148">لغو</translation>
+<translation id="766891008101699113">برای مرور وب به‌صورت خصوصی، برگه جدیدی اضافه کنید.</translation>
 <translation id="7671141431838911305">نصب</translation>
 <translation id="7765158879357617694">انتقال</translation>
 <translation id="7769602470925380267">پذیرش و خروج از سیستم</translation>
 <translation id="7772032839648071052">تأیید عبارت عبور</translation>
+<translation id="7781829728241885113">دیروز</translation>
 <translation id="780301667611848630">نه متشکرم</translation>
 <translation id="7830720446622801252">سرویس‌های شخصی‌نشده</translation>
+<translation id="7840771868269352570">موارد انتخاب‌شده برداشته خواهد شد.</translation>
 <translation id="7856733331829174190">بارگیری نشد</translation>
 <translation id="7859704718976024901">سابقه مرور</translation>
 <translation id="7918293828610777738">فهرست مطالعه‌تان درحالت آفلاین دردسترس است. برای اضافه کردن صفحه به فهرست مطالعه، روی <ph name="SHARE_OPENING_ICON" /> و بعد <ph name="READ_LATER_TEXT" /> ضربه بزنید.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
index 10f9b9c..6866d19 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Ei kohteita</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> valittu</translation>
 <translation id="1740468249224277719">Asenna kaksoisnapauttamalla.</translation>
+<translation id="1746815479209538200">Jos haluat selata verkkoa, lisää uusi välilehti.</translation>
 <translation id="17513872634828108">Avoimet välilehdet</translation>
 <translation id="1752547299766512813">Tall. salasanat</translation>
 <translation id="1753905327828125965">Käydyimmät</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Väärä tunnuslause.</translation>
 <translation id="7649070708921625228">Ohje</translation>
 <translation id="7658239707568436148">Peruuta</translation>
+<translation id="766891008101699113">Jos haluat selata verkkoa yksityisesti, lisää uusi välilehti.</translation>
 <translation id="7671141431838911305">ASENNA</translation>
 <translation id="7765158879357617694">Siirrä</translation>
 <translation id="7769602470925380267">Hyväksy ja kirjaudu ulos</translation>
 <translation id="7772032839648071052">Vahvista tunnuslause</translation>
+<translation id="7781829728241885113">Eilen</translation>
 <translation id="780301667611848630">Ei kiitos</translation>
 <translation id="7830720446622801252">Yleiset palvelut</translation>
+<translation id="7840771868269352570">Valitut kohteet poistetaan</translation>
 <translation id="7856733331829174190">Lataus epäonnistui</translation>
 <translation id="7859704718976024901">Selaushistoria</translation>
 <translation id="7918293828610777738">Lukulistasi on käytettävissä offline-tilassa. Lisää sivu lukulistalle valitsemalla <ph name="SHARE_OPENING_ICON" /> ja sitten <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index 4071bcb9..7c07049d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Walang mga item</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> ang napili</translation>
 <translation id="1740468249224277719">I-double tap upang i-install.</translation>
+<translation id="1746815479209538200">Para mag-browse sa web, magdagdag ng bagong tab.</translation>
 <translation id="17513872634828108">Mga bukas na tab</translation>
 <translation id="1752547299766512813">I-save ang Mga Password</translation>
 <translation id="1753905327828125965">Most Visited</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Maling passphrase</translation>
 <translation id="7649070708921625228">Tulong</translation>
 <translation id="7658239707568436148">Ikansela</translation>
+<translation id="766891008101699113">Para pribadong mag-browse sa web, magdagdag ng bagong tab.</translation>
 <translation id="7671141431838911305">INSTALL</translation>
 <translation id="7765158879357617694">Ilipat</translation>
 <translation id="7769602470925380267">Tanggapin at mag-sign out</translation>
 <translation id="7772032839648071052">Kumpirmahin ang passphrase</translation>
+<translation id="7781829728241885113">Kahapon</translation>
 <translation id="780301667611848630">Hindi salamat</translation>
 <translation id="7830720446622801252">Mga Hindi Naka-personalize na Serbisyo</translation>
+<translation id="7840771868269352570">Maaalis ang mga pinili mong item.</translation>
 <translation id="7856733331829174190">Hindi Ma-download</translation>
 <translation id="7859704718976024901">History ng Pagba-browse</translation>
 <translation id="7918293828610777738">Available ang iyong listahan ng babasahin offline. Para magdagdag ng page sa iyong listahan ng babasahin, i-tap ang <ph name="SHARE_OPENING_ICON" /> pagkatapos ay i-tap ang <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index 52567a5..ea6127b0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Aucun élément</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> favoris sélectionnés.</translation>
 <translation id="1740468249224277719">Appuyez deux fois pour installer.</translation>
+<translation id="1746815479209538200">Pour naviguer sur le Web, ajoutez un onglet.</translation>
 <translation id="17513872634828108">Onglets ouverts</translation>
 <translation id="1752547299766512813">Enreg. mots de passe</translation>
 <translation id="1753905327828125965">Les + visités</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Phrase secrète incorrecte.</translation>
 <translation id="7649070708921625228">Aide</translation>
 <translation id="7658239707568436148">Annuler</translation>
+<translation id="766891008101699113">Pour naviguer sur le Web en toute discrétion, ajoutez un onglet.</translation>
 <translation id="7671141431838911305">INSTALLER</translation>
 <translation id="7765158879357617694">Déplacer</translation>
 <translation id="7769602470925380267">Accepter et se déconnecter</translation>
 <translation id="7772032839648071052">Confirmer la phrase secrète</translation>
+<translation id="7781829728241885113">Hier</translation>
 <translation id="780301667611848630">Non merci</translation>
 <translation id="7830720446622801252">Services non personnalisés</translation>
+<translation id="7840771868269352570">Les éléments sélectionnés seront supprimés.</translation>
 <translation id="7856733331829174190">Téléchargement impossible</translation>
 <translation id="7859704718976024901">Historique de navigation</translation>
 <translation id="7918293828610777738">Votre liste de lecture est disponible hors connexion. Pour y ajouter une page, appuyez sur <ph name="SHARE_OPENING_ICON" />, puis sur <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index ae83f55..0634bf27 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -396,6 +396,7 @@
 <translation id="7765158879357617694">સ્થાન</translation>
 <translation id="7769602470925380267">સ્વીકારો અને સાઇન આઉટ કરો</translation>
 <translation id="7772032839648071052">પાસફ્રેઝની પુષ્ટિ કરો</translation>
+<translation id="7781829728241885113">ગઈ કાલે</translation>
 <translation id="780301667611848630">નહીં, આભાર</translation>
 <translation id="7830720446622801252">બિન-વ્યક્તિગત કરેલી સેવાઓ</translation>
 <translation id="7856733331829174190">ડાઉનલોડ ન કરી શક્યાં</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index 0c8e8f7..809bef5e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">कोई आइटम नहीं</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> चयनित</translation>
 <translation id="1740468249224277719">इंस्टॉल करने के लिए डबल टैप करें.</translation>
+<translation id="1746815479209538200">वेब ब्राउज़ करने के लिए, नया टैब जोड़ें.</translation>
 <translation id="17513872634828108">टैब खोलें</translation>
 <translation id="1752547299766512813">पासवर्ड सहेजें</translation>
 <translation id="1753905327828125965">सबसे अधिक देखे गए</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">गलत पासफ़्रेज़</translation>
 <translation id="7649070708921625228">सहायता</translation>
 <translation id="7658239707568436148">अभी नहीं</translation>
+<translation id="766891008101699113">निजी रूप से वेब ब्राउज़ करने के लिए, एक नया टैब जोड़ें.</translation>
 <translation id="7671141431838911305">इंस्टॉल करें</translation>
 <translation id="7765158879357617694">ले जाएं</translation>
 <translation id="7769602470925380267">स्वीकार करें और प्रस्थान करें</translation>
 <translation id="7772032839648071052">पासफ़्रेज़ की दुबारा पूछें</translation>
+<translation id="7781829728241885113">बीता कल</translation>
 <translation id="780301667611848630">जी नहीं, रहने दें </translation>
 <translation id="7830720446622801252">मनमुताबिक नहीं बनाई गई सेवाएं</translation>
+<translation id="7840771868269352570">आपके चुने हुए आइटम हटा दिए जाएंगे.</translation>
 <translation id="7856733331829174190">डाउनलोड नहीं की जा सकी</translation>
 <translation id="7859704718976024901">ब्राउज़िंग इतिहास</translation>
 <translation id="7918293828610777738">आपकी पढ़ने की सूची ऑफ़लाइन उपलब्ध है. अपनी पढ़ने की सूची में कोई पेज जोड़ने के लिए, पहले  <ph name="SHARE_OPENING_ICON" />  पर और फिर <ph name="READ_LATER_TEXT" /> पर टैप करें.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index 9acf2cc..4366a7d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Nema stavki</translation>
 <translation id="1700629756560807968">Broj odabranih oznaka: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">Dodirnite dvaput da biste instalirali.</translation>
+<translation id="1746815479209538200">Da biste pregledavali web, dodajte novu karticu.</translation>
 <translation id="17513872634828108">Otvorene kartice</translation>
 <translation id="1752547299766512813">Spremi zaporke</translation>
 <translation id="1753905327828125965">Najposjećenije</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Pogrešna zaporka</translation>
 <translation id="7649070708921625228">Pomoć</translation>
 <translation id="7658239707568436148">Odustani</translation>
+<translation id="766891008101699113">Da biste privatno pregledavali web, dodajte novu karticu.</translation>
 <translation id="7671141431838911305">INSTALIRANJE</translation>
 <translation id="7765158879357617694">Pomakni</translation>
 <translation id="7769602470925380267">Prihvati i odjavi se</translation>
 <translation id="7772032839648071052">Potvrdi zaporku</translation>
+<translation id="7781829728241885113">Danas</translation>
 <translation id="780301667611848630">Ne, hvala</translation>
 <translation id="7830720446622801252">Usluge bez prilagodbe</translation>
+<translation id="7840771868269352570">Odabrane će se stavke ukloniti.</translation>
 <translation id="7856733331829174190">Preuzimanje nije moguće</translation>
 <translation id="7859704718976024901">Povijest pregledavanja</translation>
 <translation id="7918293828610777738">Vaš popis za čitanje dostupan je offline. Da biste dodali stranicu na popis za čitanje, dodirnite <ph name="SHARE_OPENING_ICON" />, a zatim <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index d91e9cae..194be25 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Nincsenek elemek</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> kiválasztva</translation>
 <translation id="1740468249224277719">A telepítéshez koppintson duplán.</translation>
+<translation id="1746815479209538200">Ha böngészni szeretne az interneten, adjon hozzá egy új lapot.</translation>
 <translation id="17513872634828108">Megnyitott lapok</translation>
 <translation id="1752547299766512813">Jelszómentés</translation>
 <translation id="1753905327828125965">Leggyakrabban látogatott</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Hibás összetett jelszó</translation>
 <translation id="7649070708921625228">Súgó</translation>
 <translation id="7658239707568436148">Mégse</translation>
+<translation id="766891008101699113">Ha privát módon szeretne böngészni az interneten, adjon hozzá egy új lapot.</translation>
 <translation id="7671141431838911305">TELEPÍTÉS</translation>
 <translation id="7765158879357617694">Áthelyezés</translation>
 <translation id="7769602470925380267">Elfogadás és kijelentkezés</translation>
 <translation id="7772032839648071052">Összetett jelszó megerősítése</translation>
+<translation id="7781829728241885113">Tegnap</translation>
 <translation id="780301667611848630">Köszönöm, nem</translation>
 <translation id="7830720446622801252">Nem személyre szabott szolgáltatások</translation>
+<translation id="7840771868269352570">A kiválasztott elemek törlődnek.</translation>
 <translation id="7856733331829174190">Nem sikerült letölteni</translation>
 <translation id="7859704718976024901">Böngészési előzmények</translation>
 <translation id="7918293828610777738">Olvasási listája hozzáférhető offline módban. Ha szeretne hozzáadni oldalakat a listához, koppintson a következőkre: <ph name="SHARE_OPENING_ICON" />, majd <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index b558650..33e1b59 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Tidak ada item</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> dipilih</translation>
 <translation id="1740468249224277719">Ketuk dua kali untuk memasang.</translation>
+<translation id="1746815479209538200">Untuk menjelajahi web, tambahkan tab baru.</translation>
 <translation id="17513872634828108">Buka tab</translation>
 <translation id="1752547299766512813">Simpan Sandi</translation>
 <translation id="1753905327828125965">Sering Dibuka</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Frasa sandi salah</translation>
 <translation id="7649070708921625228">Bantuan</translation>
 <translation id="7658239707568436148">Batal</translation>
+<translation id="766891008101699113">Untuk menjelajahi web secara pribadi, tambahkan tab baru.</translation>
 <translation id="7671141431838911305">INSTAL</translation>
 <translation id="7765158879357617694">Pindahkan</translation>
 <translation id="7769602470925380267">Terima dan keluar</translation>
 <translation id="7772032839648071052">Konfirmasi frasa sandi</translation>
+<translation id="7781829728241885113">Kemarin</translation>
 <translation id="780301667611848630">Lain kali</translation>
 <translation id="7830720446622801252">Layanan yang Tidak Dipersonalisasi</translation>
+<translation id="7840771868269352570">Item yang Anda pilih akan dihapus.</translation>
 <translation id="7856733331829174190">Tidak Dapat Mendownload</translation>
 <translation id="7859704718976024901">Histori Browsing</translation>
 <translation id="7918293828610777738">Daftar bacaan Anda tersedia secara offline. Untuk menambahkan halaman ke daftar bacaan, tap <ph name="SHARE_OPENING_ICON" /> lalu <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index 72f41c6..065466b4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Nessun elemento</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> selezionati</translation>
 <translation id="1740468249224277719">Tocca due volte per installare.</translation>
+<translation id="1746815479209538200">Per navigare sul Web, aggiungi una nuova scheda.</translation>
 <translation id="17513872634828108">Schede aperte</translation>
 <translation id="1752547299766512813">Salva password</translation>
 <translation id="1753905327828125965">Più visitati</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Passphrase sbagliata</translation>
 <translation id="7649070708921625228">Guida</translation>
 <translation id="7658239707568436148">Annulla</translation>
+<translation id="766891008101699113">Per navigare sul Web in privato, aggiungi una nuova scheda.</translation>
 <translation id="7671141431838911305">INSTALLA</translation>
 <translation id="7765158879357617694">Sposta</translation>
 <translation id="7769602470925380267">Accetta ed esci</translation>
 <translation id="7772032839648071052">Conferma passphrase</translation>
+<translation id="7781829728241885113">Ieri</translation>
 <translation id="780301667611848630">No grazie</translation>
 <translation id="7830720446622801252">Servizi non personalizzati</translation>
+<translation id="7840771868269352570">Gli elementi selezionati verranno rimossi.</translation>
 <translation id="7856733331829174190">Download non riuscito</translation>
 <translation id="7859704718976024901">Cronologia di navigazione</translation>
 <translation id="7918293828610777738">Il tuo elenco di lettura è disponibile offline. Per aggiungere una pagina all'elenco di lettura, tocca <ph name="SHARE_OPENING_ICON" />, quindi <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
index 132a420..4999830d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">אין פריטים</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> נבחרו</translation>
 <translation id="1740468249224277719">הקש פעמיים כדי להתקין.</translation>
+<translation id="1746815479209538200">כדי לגלוש באינטרנט צריך להוסיף כרטיסייה חדשה.</translation>
 <translation id="17513872634828108">כרטיסיות פתוחות</translation>
 <translation id="1752547299766512813">שמור סיסמאות</translation>
 <translation id="1753905327828125965">עם המבקרים הרבים ביותר</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">ביטוי סיסמה שגוי</translation>
 <translation id="7649070708921625228">עזרה</translation>
 <translation id="7658239707568436148">ביטול</translation>
+<translation id="766891008101699113">כדי לגלוש באינטרנט בפרטיות צריך להוסיף כרטיסייה חדשה.</translation>
 <translation id="7671141431838911305">התקנה</translation>
 <translation id="7765158879357617694">העבר</translation>
 <translation id="7769602470925380267">קבל וצא מהחשבון</translation>
 <translation id="7772032839648071052">אשר משפט-סיסמה</translation>
+<translation id="7781829728241885113">אתמול</translation>
 <translation id="780301667611848630">לא תודה</translation>
 <translation id="7830720446622801252">שירותים ללא התאמה אישית</translation>
+<translation id="7840771868269352570">הפריטים שבחרת יוסרו.</translation>
 <translation id="7856733331829174190">ההורדה נכשלה</translation>
 <translation id="7859704718976024901">היסטוריית הגלישה</translation>
 <translation id="7918293828610777738">אפשר לגשת לרשימת הקריאה במצב לא מקוון. כדי להוסיף דף לרשימת הקריאה צריך להקיש על <ph name="SHARE_OPENING_ICON" /> ועל <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index c9d30b18..835549cd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">アイテムなし</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" />件選択しました</translation>
 <translation id="1740468249224277719">ダブルタップしてインストール。</translation>
+<translation id="1746815479209538200">ウェブを閲覧するには新しいタブを追加してください。</translation>
 <translation id="17513872634828108">開いているタブ</translation>
 <translation id="1752547299766512813">パスワードの保存</translation>
 <translation id="1753905327828125965">よくアクセスするページ</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">パスフレーズが正しくありません</translation>
 <translation id="7649070708921625228">ヘルプ</translation>
 <translation id="7658239707568436148">キャンセル</translation>
+<translation id="766891008101699113">ウェブをプライベートに閲覧するには新しいタブを追加してください。</translation>
 <translation id="7671141431838911305">インストール</translation>
 <translation id="7765158879357617694">移動</translation>
 <translation id="7769602470925380267">同意してログアウトする</translation>
 <translation id="7772032839648071052">パスフレーズの確認</translation>
+<translation id="7781829728241885113">昨日</translation>
 <translation id="780301667611848630">いいえ</translation>
 <translation id="7830720446622801252">カスタマイズされないサービス</translation>
+<translation id="7840771868269352570">選択したアイテムが削除されます。</translation>
 <translation id="7856733331829174190">ダウンロードできませんでした</translation>
 <translation id="7859704718976024901">閲覧履歴</translation>
 <translation id="7918293828610777738">リーディング リストをオフラインで利用できます。リーディング リストにページを追加するには、<ph name="SHARE_OPENING_ICON" /> &gt; [<ph name="READ_LATER_TEXT" />] をタップします。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index 76d2be6..1654144 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -396,6 +396,7 @@
 <translation id="7765158879357617694">ಸರಿಸು</translation>
 <translation id="7769602470925380267">ಸಮ್ಮತಿಸಿ ಮತ್ತು ಸೈನ್ ಔಟ್ ಮಾಡಿ</translation>
 <translation id="7772032839648071052">ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ದೃಢೀಕರಿಸಿ</translation>
+<translation id="7781829728241885113">ನಿನ್ನೆ</translation>
 <translation id="780301667611848630">ಬೇಡ, ಧನ್ಯವಾದಗಳು</translation>
 <translation id="7830720446622801252">ವೈಯಕ್ತಿಕವಲ್ಲದ ಸೇವೆಗಳು</translation>
 <translation id="7856733331829174190">ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index fe3d6d73..830c6c9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">항목 없음</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" />개 항목 선택됨</translation>
 <translation id="1740468249224277719">설치하려면 두 번 탭하세요.</translation>
+<translation id="1746815479209538200">웹을 탐색하려면 새 탭을 추가하세요.</translation>
 <translation id="17513872634828108">열린 탭</translation>
 <translation id="1752547299766512813">비밀번호 저장</translation>
 <translation id="1753905327828125965">자주 방문한 페이지</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">암호가 잘못되었습니다.</translation>
 <translation id="7649070708921625228">도움말</translation>
 <translation id="7658239707568436148">취소</translation>
+<translation id="766891008101699113">비공개로 웹을 탐색하려면 새 탭을 추가하세요.</translation>
 <translation id="7671141431838911305">설치</translation>
 <translation id="7765158879357617694">이동</translation>
 <translation id="7769602470925380267">동의 및 로그아웃</translation>
 <translation id="7772032839648071052">암호 확인</translation>
+<translation id="7781829728241885113">어제</translation>
 <translation id="780301667611848630">아니요, 괜찮습니다.</translation>
 <translation id="7830720446622801252">맞춤설정되지 않은 서비스</translation>
+<translation id="7840771868269352570">선택한 항목 삭제</translation>
 <translation id="7856733331829174190">다운로드할 수 없음</translation>
 <translation id="7859704718976024901">인터넷 사용 기록</translation>
 <translation id="7918293828610777738">읽기 목록을 오프라인으로 사용할 수 있습니다. 읽기 목록에 페이지를 추가하려면 <ph name="SHARE_OPENING_ICON" />, <ph name="READ_LATER_TEXT" />을(를) 차례로 탭하세요.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index fb1a276..c3de7db 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Nėra jokių elementų</translation>
 <translation id="1700629756560807968">Pasirinkta: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">Dukart palieskite, kad įdiegtumėte.</translation>
+<translation id="1746815479209538200">Norėdami naršyti žiniatinklyje, pridėkite naują skirtuką.</translation>
 <translation id="17513872634828108">Atidaryti skirtukai</translation>
 <translation id="1752547299766512813">Išs. slaptažod.</translation>
 <translation id="1753905327828125965">Dažniausiai lankomi</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Neteisinga slaptafrazė</translation>
 <translation id="7649070708921625228">Žinynas</translation>
 <translation id="7658239707568436148">Atšaukti</translation>
+<translation id="766891008101699113">Norėdami privačiai naršyti žiniatinklyje, pridėkite naują skirtuką.</translation>
 <translation id="7671141431838911305">ĮDIEGTI</translation>
 <translation id="7765158879357617694">Perkelti</translation>
 <translation id="7769602470925380267">Sutikti ir atsijungti</translation>
 <translation id="7772032839648071052">Patvirtinti slaptafrazę</translation>
+<translation id="7781829728241885113">Vakar</translation>
 <translation id="780301667611848630">Ačiū, ne</translation>
 <translation id="7830720446622801252">Nesuasmenintos paslaugos</translation>
+<translation id="7840771868269352570">Pasirinkti elementai bus pašalinti.</translation>
 <translation id="7856733331829174190">Nepavyko atsisiųsti</translation>
 <translation id="7859704718976024901">Naršymo istorija</translation>
 <translation id="7918293828610777738">Skaitymo sąrašas pasiekiamas neprisijungus. Kad pridėtumėte puslapį prie skaitymo sąrašo, palieskite <ph name="SHARE_OPENING_ICON" />, tada „<ph name="READ_LATER_TEXT" />“.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index cb3155c..6c4293f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Nav neviena vienuma</translation>
 <translation id="1700629756560807968">Atlasītas: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">Divreiz pieskarieties, lai instalētu.</translation>
+<translation id="1746815479209538200">Lai pārlūkotu tīmekli, pievienojiet jaunu cilni.</translation>
 <translation id="17513872634828108">Atvērt cilnes</translation>
 <translation id="1752547299766512813">Sagl. paroles</translation>
 <translation id="1753905327828125965">Visapmeklētākais</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Nepareiza ieejas frāze</translation>
 <translation id="7649070708921625228">Palīdzība</translation>
 <translation id="7658239707568436148">Atcelt</translation>
+<translation id="766891008101699113">Lai pārlūkotu tīmekli privāti, pievienojiet jaunu cilni.</translation>
 <translation id="7671141431838911305">INSTALĒT</translation>
 <translation id="7765158879357617694">Pārvietot</translation>
 <translation id="7769602470925380267">Piekrist un izrakstīties</translation>
 <translation id="7772032839648071052">Apstipriniet ieejas frāzi</translation>
+<translation id="7781829728241885113">Vakar</translation>
 <translation id="780301667611848630">Nē, paldies</translation>
 <translation id="7830720446622801252">Nepersonalizētie pakalpojumi</translation>
+<translation id="7840771868269352570">Jūsu atlasītie vienumi tiks noņemti.</translation>
 <translation id="7856733331829174190">Lejupielāde neizdevās</translation>
 <translation id="7859704718976024901">Pārlūkošanas vēsture</translation>
 <translation id="7918293828610777738">Jūsu lasīšanas saraksts ir pieejams bezsaistē. Lai pievienotu lapu lasīšanas sarakstam, pieskarieties vienumam <ph name="SHARE_OPENING_ICON" />, pēc tam — <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index 4d2fe30..f1a30b3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">ഇനങ്ങളൊന്നുമില്ല</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> തിരഞ്ഞെടുത്തു</translation>
 <translation id="1740468249224277719">ഇൻസ്‌റ്റാൾ ചെയ്യാൻ രണ്ടുതവണ ടാപ്പുചെയ്യുക.</translation>
+<translation id="1746815479209538200">വെബ് ബ്രൗസ് ചെയ്യാൻ, ഒരു പുതിയ ടാബ് ചേർക്കുക.</translation>
 <translation id="17513872634828108">ഓപ്പൺ ടാബുകൾ</translation>
 <translation id="1752547299766512813">സംരക്ഷിത പാസ്‌വേഡുകള്‍</translation>
 <translation id="1753905327828125965">കൂടുതൽ‍ സന്ദര്‍ശിച്ചത്</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">പാസ്‌ഫ്രെയ്‌സ് തെറ്റാണ്</translation>
 <translation id="7649070708921625228">സഹായം</translation>
 <translation id="7658239707568436148">റദ്ദാക്കൂ</translation>
+<translation id="766891008101699113">വെബ് സ്വകാര്യമായി ബ്രൗസ് ചെയ്യാൻ, ഒരു പുതിയ ടാബ് ചേർക്കുക.</translation>
 <translation id="7671141431838911305">ഇൻസ്റ്റാളുചെയ്യുക</translation>
 <translation id="7765158879357617694">നീക്കുക</translation>
 <translation id="7769602470925380267">അംഗീകരിച്ചശേഷം, സൈൻ ഔട്ട് ചെയ്യുക</translation>
 <translation id="7772032839648071052">പാസ്ഫ്രേസ് സ്ഥിരീകരിക്കുക</translation>
+<translation id="7781829728241885113">ഇന്നലെ</translation>
 <translation id="780301667611848630">വേണ്ട നന്ദി</translation>
 <translation id="7830720446622801252">വ്യക്തിപരമല്ലാത്ത സേവനങ്ങൾ</translation>
+<translation id="7840771868269352570">നിങ്ങൾ തിരഞ്ഞെടുത്ത ഇനങ്ങൾ നീക്കം ചെയ്യപ്പെടും.</translation>
 <translation id="7856733331829174190">ഡൗൺലോഡ് ചെയ്യാനായില്ല</translation>
 <translation id="7859704718976024901">ബ്രൗസിംഗ് ചരിത്രം</translation>
 <translation id="7918293828610777738">നിങ്ങളുടെ വായനാ ലിസ്‌റ്റ് ഓഫ്‌ലൈനായി ലഭ്യമാണ്. വായനാ ലിസ്‌റ്റിലേക്ക് ഒരു പേജ് ചേർക്കാൻ, ആദ്യം <ph name="SHARE_OPENING_ICON" />, തുടർന്ന് <ph name="READ_LATER_TEXT" /> എന്നിവ ടാപ്പ് ചെയ്യുക.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 207492a..cf9575b1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">कोणतेही आयटम नाहीत</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> निवडले</translation>
 <translation id="1740468249224277719">इंस्टॉल करण्यासाठी दोनदा टॅप करा.</translation>
+<translation id="1746815479209538200">वेब ब्राउझ करण्यासाठी नवीन टॅब जोडा.</translation>
 <translation id="17513872634828108">खुले टॅब</translation>
 <translation id="1752547299766512813">पासवर्ड सेव्ह करा</translation>
 <translation id="1753905327828125965">सर्वाधिक भेट दिलेले</translation>
@@ -393,12 +394,15 @@
 <translation id="7638584964844754484">अयोग्य सांकेतिक वाक्यांश</translation>
 <translation id="7649070708921625228">मदत</translation>
 <translation id="7658239707568436148">रद्द करा</translation>
+<translation id="766891008101699113">वेब खाजगीरित्‍या ब्राउझ करण्यासाठी नवीन टॅब जोडा.</translation>
 <translation id="7671141431838911305">स्‍थापित करा</translation>
 <translation id="7765158879357617694">हलवा</translation>
 <translation id="7769602470925380267">स्वीकार करा आणि साइन आउट करा</translation>
 <translation id="7772032839648071052">सांकेतिक वाक्यांशाची पुष्टी करा</translation>
+<translation id="7781829728241885113">काल</translation>
 <translation id="780301667611848630">नाही, नको</translation>
 <translation id="7830720446622801252">पर्सनलाइझ न केलेल्या सेवा</translation>
+<translation id="7840771868269352570">तुम्ही निवडलेले आयटम काढून टाकले जातील.</translation>
 <translation id="7856733331829174190">डाउनलोड करता आले नाही</translation>
 <translation id="7859704718976024901">ब्राउझिंग इतिहास</translation>
 <translation id="7918293828610777738">तुमची वाचन सूची ऑफलाइन उपलब्ध आहे. तुमच्या वाचन सूचीमध्‍ये पेज जोडण्‍यासाठी, <ph name="SHARE_OPENING_ICON" /> त्यानंतर <ph name="READ_LATER_TEXT" /> वर टॅप करा.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index bc633d7..fcb58753 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Tiada item</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> dipilih</translation>
 <translation id="1740468249224277719">Ketik dua kali untuk memasang.</translation>
+<translation id="1746815479209538200">Untuk menyemak imbas web, tambahkan tab baharu.</translation>
 <translation id="17513872634828108">Buka tab</translation>
 <translation id="1752547299766512813">Simpan K/Laluan</translation>
 <translation id="1753905327828125965">Paling Kerap Dilawati</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Frasa laluan tidak betul</translation>
 <translation id="7649070708921625228">Bantuan</translation>
 <translation id="7658239707568436148">Batal</translation>
+<translation id="766891008101699113">Untuk menyemak imbas web secara sulit, tambahkan tab baharu.</translation>
 <translation id="7671141431838911305">PASANG</translation>
 <translation id="7765158879357617694">Alih</translation>
 <translation id="7769602470925380267">Terima dan log keluar</translation>
 <translation id="7772032839648071052">Sahkan frasa laluan</translation>
+<translation id="7781829728241885113">Semalam</translation>
 <translation id="780301667611848630">Tidak, terima kasih</translation>
 <translation id="7830720446622801252">Perkhidmatan Tidak Diperibadikan</translation>
+<translation id="7840771868269352570">Item yang anda pilih akan dialih keluar.</translation>
 <translation id="7856733331829174190">Tidak Dapat Memuat Turun</translation>
 <translation id="7859704718976024901">Sejarah Penyemakan Imbas</translation>
 <translation id="7918293828610777738">Senarai bacaan anda tersedia di luar talian. Untuk menambahkan halaman pada senarai bacaan anda, ketik  <ph name="SHARE_OPENING_ICON" /> kemudian <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index acdcaf9..1675b07 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Geen items</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> geselecteerd</translation>
 <translation id="1740468249224277719">Dubbeltik om te installeren.</translation>
+<translation id="1746815479209538200">Voeg een nieuw tabblad toe als je op het web wilt browsen.</translation>
 <translation id="17513872634828108">Geopende tabbladen</translation>
 <translation id="1752547299766512813">Wachtwoorden opslaan</translation>
 <translation id="1753905327828125965">Meest bezocht</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Onjuiste wachtwoordzin</translation>
 <translation id="7649070708921625228">Help</translation>
 <translation id="7658239707568436148">Annuleren</translation>
+<translation id="766891008101699113">Voeg een nieuw tabblad toe als je privé wilt browsen.</translation>
 <translation id="7671141431838911305">INSTALLEER</translation>
 <translation id="7765158879357617694">Verplaatsen</translation>
 <translation id="7769602470925380267">Accepteren en uitloggen</translation>
 <translation id="7772032839648071052">Bevestig de wachtwoordzin</translation>
+<translation id="7781829728241885113">Gisteren</translation>
 <translation id="780301667611848630">Nee, bedankt</translation>
 <translation id="7830720446622801252">Niet-gepersonaliseerde services</translation>
+<translation id="7840771868269352570">De geselecteerde items worden verwijderd.</translation>
 <translation id="7856733331829174190">Kan niet downloaden</translation>
 <translation id="7859704718976024901">Browsegeschiedenis</translation>
 <translation id="7918293828610777738">Je leeslijst is offline beschikbaar. Tik op <ph name="SHARE_OPENING_ICON" /> en vervolgens op <ph name="READ_LATER_TEXT" /> om een pagina toe te voegen aan je leeslijst.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index d365908c..b5712e4f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Ingen elementer</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> er valgt</translation>
 <translation id="1740468249224277719">Dobbelttrykk for å installere.</translation>
+<translation id="1746815479209538200">For å surfe på nettet, legg til en ny fane.</translation>
 <translation id="17513872634828108">Åpne faner</translation>
 <translation id="1752547299766512813">Lagre passord</translation>
 <translation id="1753905327828125965">Mest besøkt</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Feil passordfrase</translation>
 <translation id="7649070708921625228">Hjelp</translation>
 <translation id="7658239707568436148">Avbryt</translation>
+<translation id="766891008101699113">For å surfe på nettet privat, legg til en ny fane.</translation>
 <translation id="7671141431838911305">INSTALLER</translation>
 <translation id="7765158879357617694">Flytt</translation>
 <translation id="7769602470925380267">Godta og logg av</translation>
 <translation id="7772032839648071052">Bekreft passord</translation>
+<translation id="7781829728241885113">I går</translation>
 <translation id="780301667611848630">Nei takk</translation>
 <translation id="7830720446622801252">Tjenester uten personlig preg</translation>
+<translation id="7840771868269352570">De valgte elementene blir fjernet.</translation>
 <translation id="7856733331829174190">Kunne ikke laste ned</translation>
 <translation id="7859704718976024901">Nettlesingsloggen</translation>
 <translation id="7918293828610777738">Leselisten din er tilgjengelig uten nett. Du kan legge til sider i leselisten ved å trykke på <ph name="SHARE_OPENING_ICON" /> og deretter <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
index c7231ee..1a2606e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Brak elementów</translation>
 <translation id="1700629756560807968">Wybrane: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">Kliknij dwukrotnie, by zainstalować.</translation>
+<translation id="1746815479209538200">Aby przeglądać strony internetowe, dodaj nową kartę.</translation>
 <translation id="17513872634828108">Otwarte karty</translation>
 <translation id="1752547299766512813">Zapisuj hasła</translation>
 <translation id="1753905327828125965">Najczęstsze</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Nieprawidłowe hasło</translation>
 <translation id="7649070708921625228">Pomoc</translation>
 <translation id="7658239707568436148">Anuluj</translation>
+<translation id="766891008101699113">Aby przeglądać strony internetowe prywatnie, dodaj nową kartę.</translation>
 <translation id="7671141431838911305">ZAINSTALUJ</translation>
 <translation id="7765158879357617694">Przenieś</translation>
 <translation id="7769602470925380267">Zaakceptuj i wyloguj się</translation>
 <translation id="7772032839648071052">Potwierdź hasło</translation>
+<translation id="7781829728241885113">Wczoraj</translation>
 <translation id="780301667611848630">Nie, dziękuję</translation>
 <translation id="7830720446622801252">Usługi niespersonalizowane</translation>
+<translation id="7840771868269352570">Wybrane elementy zostaną usunięte.</translation>
 <translation id="7856733331829174190">Nie udało się pobrać pliku</translation>
 <translation id="7859704718976024901">Historia przeglądania</translation>
 <translation id="7918293828610777738">Twoja lista Do przeczytania jest dostępna offline. Aby dodać do niej stronę, kliknij <ph name="SHARE_OPENING_ICON" />, a następnie <ph name="READ_LATER_TEXT" />.</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 f308057..3c1cda5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -55,6 +55,7 @@
 <translation id="1690731385917361335">Nenhum item</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> selecionados</translation>
 <translation id="1740468249224277719">Toque duas vezes para instalar.</translation>
+<translation id="1746815479209538200">Para navegar na Web, adicione uma nova guia.</translation>
 <translation id="17513872634828108">Guias abertas</translation>
 <translation id="1752547299766512813">Salvar senhas</translation>
 <translation id="1753905327828125965">Mais visitados</translation>
@@ -393,12 +394,15 @@
 <translation id="7638584964844754484">Senha incorreta</translation>
 <translation id="7649070708921625228">Ajuda</translation>
 <translation id="7658239707568436148">Cancelar</translation>
+<translation id="766891008101699113">Para navegar na Web com privacidade, adicione uma nova guia.</translation>
 <translation id="7671141431838911305">INSTALAR</translation>
 <translation id="7765158879357617694">Mover</translation>
 <translation id="7769602470925380267">Aceitar e sair</translation>
 <translation id="7772032839648071052">Confirmar senha</translation>
+<translation id="7781829728241885113">Ontem</translation>
 <translation id="780301667611848630">Não</translation>
 <translation id="7830720446622801252">Serviços não personalizados</translation>
+<translation id="7840771868269352570">Os itens selec. serão removidos.</translation>
 <translation id="7856733331829174190">Falha no download</translation>
 <translation id="7859704718976024901">Histórico de navegação</translation>
 <translation id="7918293828610777738">Sua lista de leitura está disponível off-line. Para adicionar uma página à lista, toque em <ph name="SHARE_OPENING_ICON" /> e depois em <ph name="READ_LATER_TEXT" />.</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 e8ba95e..7ed28ef 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Sem itens</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> selecionados</translation>
 <translation id="1740468249224277719">Toque duas vezes para instalar.</translation>
+<translation id="1746815479209538200">Para navegar na Web, adicione um novo separador.</translation>
 <translation id="17513872634828108">Separadores abertos</translation>
 <translation id="1752547299766512813">Guardar Palavras-passe</translation>
 <translation id="1753905327828125965">Mais visitados</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Frase de acesso incorreta</translation>
 <translation id="7649070708921625228">Ajuda</translation>
 <translation id="7658239707568436148">Cancelar</translation>
+<translation id="766891008101699113">Para navegar na Web em privado, adicione um novo separador.</translation>
 <translation id="7671141431838911305">INSTALAR</translation>
 <translation id="7765158879357617694">Mover</translation>
 <translation id="7769602470925380267">Aceitar e terminar sessão</translation>
 <translation id="7772032839648071052">Confirmar frase de acesso</translation>
+<translation id="7781829728241885113">Ontem</translation>
 <translation id="780301667611848630">Não, obrigado</translation>
 <translation id="7830720446622801252">Serviços não personalizados</translation>
+<translation id="7840771868269352570">Os itens selec. são removidos.</translation>
 <translation id="7856733331829174190">Impossível transferir</translation>
 <translation id="7859704718976024901">Histórico de navegação</translation>
 <translation id="7918293828610777738">A sua lista de leitura está disponível offline. Para adicionar uma página à mesma, toque em <ph name="SHARE_OPENING_ICON" /> e, em seguida, em <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index 4a5a138e..3bfe547c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Niciun element</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> selectate</translation>
 <translation id="1740468249224277719">Atinge de două ori pentru a instala.</translation>
+<translation id="1746815479209538200">Pentru a naviga pe web, adaugă o filă nouă.</translation>
 <translation id="17513872634828108">File deschise</translation>
 <translation id="1752547299766512813">Salvează parole</translation>
 <translation id="1753905327828125965">Cele mai vizitate</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Expresie de acces incorectă</translation>
 <translation id="7649070708921625228">Ajutor</translation>
 <translation id="7658239707568436148">Anulează</translation>
+<translation id="766891008101699113">Pentru a răsfoi în privat pe web, adaugă o filă nouă.</translation>
 <translation id="7671141431838911305">INSTALEAZĂ</translation>
 <translation id="7765158879357617694">Mută</translation>
 <translation id="7769602470925380267">Acceptă și deconectează-te</translation>
 <translation id="7772032839648071052">Confirmă expresia de acces</translation>
+<translation id="7781829728241885113">Ieri</translation>
 <translation id="780301667611848630">Nu, mulțumesc</translation>
 <translation id="7830720446622801252">Servicii nepersonalizate</translation>
+<translation id="7840771868269352570">Elementele selectate vor fi eliminate.</translation>
 <translation id="7856733331829174190">Nu s-a putut descărca</translation>
 <translation id="7859704718976024901">Istoricul de navigare</translation>
 <translation id="7918293828610777738">Lista de lectură este disponibilă offline. Pentru a adăuga o pagină în lista de lectură, atinge <ph name="SHARE_OPENING_ICON" />, apoi <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index 11632db..4893095 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Закладок нет</translation>
 <translation id="1700629756560807968">Выбрано закладок: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">Нажмите дважды, чтобы установить</translation>
+<translation id="1746815479209538200">Чтобы просматривать веб-страницы, откройте новую вкладку.</translation>
 <translation id="17513872634828108">Открытые вкладки</translation>
 <translation id="1752547299766512813">Сохр. пароли</translation>
 <translation id="1753905327828125965">Наиболее посещаемые</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Неверная кодовая фраза</translation>
 <translation id="7649070708921625228">Справка</translation>
 <translation id="7658239707568436148">Отмена</translation>
+<translation id="766891008101699113">Чтобы просматривать веб-страницы анонимно, откройте новую вкладку.</translation>
 <translation id="7671141431838911305">УСТАНОВИТЬ</translation>
 <translation id="7765158879357617694">Переместить</translation>
 <translation id="7769602470925380267">Принять и выйти</translation>
 <translation id="7772032839648071052">Подтвердите кодовую фразу</translation>
+<translation id="7781829728241885113">Вчера</translation>
 <translation id="780301667611848630">Спасибо, не надо</translation>
 <translation id="7830720446622801252">Неперсонализированные сервисы</translation>
+<translation id="7840771868269352570">Выбранные элементы будут удалены</translation>
 <translation id="7856733331829174190">Не удалось скачать файл</translation>
 <translation id="7859704718976024901">История просмотра веб-страниц</translation>
 <translation id="7918293828610777738">Список для чтения доступен без подключения к Интернету. Чтобы добавить в него страницу, нажмите <ph name="SHARE_OPENING_ICON" />, а затем –<ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index c6ed901..134abeb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -398,6 +398,7 @@
 <translation id="7765158879357617694">Presunúť</translation>
 <translation id="7769602470925380267">Prijať a odhlásiť</translation>
 <translation id="7772032839648071052">Potvrďte prístupovú frázu</translation>
+<translation id="7781829728241885113">Včera</translation>
 <translation id="780301667611848630">Nie, ďakujem</translation>
 <translation id="7830720446622801252">Neprispôsobené služby</translation>
 <translation id="7840771868269352570">Vybrané položky budú odstránené.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index cda0e12..c82865f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Ni elementov</translation>
 <translation id="1700629756560807968">Št. izbranih: <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">Dvakrat se dotaknite, če želite namestiti.</translation>
+<translation id="1746815479209538200">Če želite brskati po spletu, dodajte nov zavihek.</translation>
 <translation id="17513872634828108">Odpri zavihke</translation>
 <translation id="1752547299766512813">Shranjena gesla</translation>
 <translation id="1753905327828125965">Najpogosteje obiskane</translation>
@@ -390,12 +391,15 @@
 <translation id="7638584964844754484">Napačno geslo</translation>
 <translation id="7649070708921625228">Pomoč</translation>
 <translation id="7658239707568436148">Prekliči</translation>
+<translation id="766891008101699113">Če želite zasebno brskati po spletu, dodajte nov zavihek.</translation>
 <translation id="7671141431838911305">NAMESTI</translation>
 <translation id="7765158879357617694">Premakni</translation>
 <translation id="7769602470925380267">Sprejem in odjava</translation>
 <translation id="7772032839648071052">Potrdi geslo</translation>
+<translation id="7781829728241885113">Včeraj</translation>
 <translation id="780301667611848630">Ne, hvala</translation>
 <translation id="7830720446622801252">Neprilagojene storitve</translation>
+<translation id="7840771868269352570">Izbrani elementi bodo odstranjeni.</translation>
 <translation id="7856733331829174190">Prenos ni uspel</translation>
 <translation id="7859704718976024901">Zgodovina brskanja</translation>
 <translation id="7918293828610777738">Bralni seznam je na voljo brez povezave. Če želite dodati stran na bralni seznam, se dotaknite <ph name="SHARE_OPENING_ICON" />, nato pa <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index d89a2e14..dfec100 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Нема ставки</translation>
 <translation id="1700629756560807968">Број изабраних ставки је <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">Додирните двапут да бисте инсталирали.</translation>
+<translation id="1746815479209538200">Да бисте прегледали веб, додајте нову картицу.</translation>
 <translation id="17513872634828108">Отворене картице</translation>
 <translation id="1752547299766512813">Сачуване лозинке</translation>
 <translation id="1753905327828125965">Најпосећеније</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Неисправна приступна фраза</translation>
 <translation id="7649070708921625228">Помоћ</translation>
 <translation id="7658239707568436148">Откажи</translation>
+<translation id="766891008101699113">Да бисте приватно прегледали веб, додајте нову картицу.</translation>
 <translation id="7671141431838911305">ИНСТАЛИРАЊЕ</translation>
 <translation id="7765158879357617694">Премести</translation>
 <translation id="7769602470925380267">Прихватам, одјави ме</translation>
 <translation id="7772032839648071052">Потврди приступну фразу</translation>
+<translation id="7781829728241885113">Јуче</translation>
 <translation id="780301667611848630">Не, хвала</translation>
 <translation id="7830720446622801252">Услуге које нису персонализоване</translation>
+<translation id="7840771868269352570">Ставке које сте изабрали ће бити уклоњене.</translation>
 <translation id="7856733331829174190">Преузимање није успело</translation>
 <translation id="7859704718976024901">Историја прегледања</translation>
 <translation id="7918293828610777738">Листа за читање је доступна офлајн. Да бисте додали страницу на листу за читање, додирните <ph name="SHARE_OPENING_ICON" />, па <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index 887ba58..f34371fb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Det finns inga objekt</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> valda</translation>
 <translation id="1740468249224277719">Tryck snabbt två gånger här om du vill installera.</translation>
+<translation id="1746815479209538200">Öppna en ny flik om du vill använda internet.</translation>
 <translation id="17513872634828108">Öppna flikar</translation>
 <translation id="1752547299766512813">Spara lösenord</translation>
 <translation id="1753905327828125965">Mest besökta</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Felaktig lösenfras</translation>
 <translation id="7649070708921625228">Hjälp</translation>
 <translation id="7658239707568436148">Avbryt</translation>
+<translation id="766891008101699113">Öppna en ny flik om du vill använda internet privat.</translation>
 <translation id="7671141431838911305">INSTALLERA</translation>
 <translation id="7765158879357617694">Flytta</translation>
 <translation id="7769602470925380267">Godkänn och logga ut</translation>
 <translation id="7772032839648071052">Bekräfta lösenfras</translation>
+<translation id="7781829728241885113">Igår</translation>
 <translation id="780301667611848630">Nej tack</translation>
 <translation id="7830720446622801252">Tjänster som inte använder anpassning</translation>
+<translation id="7840771868269352570">De markerade objekten tas bort.</translation>
 <translation id="7856733331829174190">Nedladdning misslyckades</translation>
 <translation id="7859704718976024901">Webbhistorik</translation>
 <translation id="7918293828610777738">Läslistan är tillgänglig offline. Om du vill lägga till en sida i läslistan trycker du på <ph name="SHARE_OPENING_ICON" /> följt av <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index 647f3a6b..47f9d10 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Hakuna vipengee</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> vimechaguliwa</translation>
 <translation id="1740468249224277719">Gusa mara mbili ili usakinishe.</translation>
+<translation id="1746815479209538200">Ili uvinjari kwenye mtandao, ongeza kichupo kipya.</translation>
 <translation id="17513872634828108">Vichupo vilivyo wazi</translation>
 <translation id="1752547299766512813">Hifadhi Manenosiri</translation>
 <translation id="1753905327828125965">Zinazotembelewa Zaidi</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Kaulisiri si sahihi</translation>
 <translation id="7649070708921625228">Usaidizi</translation>
 <translation id="7658239707568436148">Ghairi</translation>
+<translation id="766891008101699113">Ili uvinjari kwenye wavuti kwa faragha, ongeza kichupo kipya.</translation>
 <translation id="7671141431838911305">SAKINISHA</translation>
 <translation id="7765158879357617694">Sogeza</translation>
 <translation id="7769602470925380267">Kubali na uondoke kwenye akaunti</translation>
 <translation id="7772032839648071052">Thibitisha kaulisiri</translation>
+<translation id="7781829728241885113">Jana</translation>
 <translation id="780301667611848630">La, asante</translation>
 <translation id="7830720446622801252">Huduma zisizowekewa Mapendeleo</translation>
+<translation id="7840771868269352570">Vipengele ambavyo umechagua vitaondolewa.</translation>
 <translation id="7856733331829174190">Imeshindwa Kupakua</translation>
 <translation id="7859704718976024901">Historia ya Kuvinjari</translation>
 <translation id="7918293828610777738">Orodha yako ya kusoma inapatikana nje ya mtandao. Ili uongeze ukurasa kwenye orodha yako ya kusoma, gusa <ph name="SHARE_OPENING_ICON" /> kisha <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 99a4748..2a79787 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">உருப்படிகள் இல்லை</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> தேர்ந்தெடுக்கப்பட்டன</translation>
 <translation id="1740468249224277719">நிறுவ, இருமுறை தட்டவும்.</translation>
+<translation id="1746815479209538200">புதிய தாவலைச் சேர்த்து, இணையத்தை உலாவலாம்.</translation>
 <translation id="17513872634828108">தாவல்களைத் திற</translation>
 <translation id="1752547299766512813">கடவுச்சொற்களைச் சேமி</translation>
 <translation id="1753905327828125965">அதிகமாகப் பார்க்கப்பட்டவை</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">தவறான கடவுத்தொடர்</translation>
 <translation id="7649070708921625228">உதவி</translation>
 <translation id="7658239707568436148">ரத்து செய்</translation>
+<translation id="766891008101699113">புதிய தாவலைச் சேர்த்து, தனிப்பட்ட முறையில் இணையத்தை உலாவலாம்.</translation>
 <translation id="7671141431838911305">நிறுவு</translation>
 <translation id="7765158879357617694">நகர்த்து</translation>
 <translation id="7769602470925380267">சரி, வெளியேறு</translation>
 <translation id="7772032839648071052">கடவுச்சொற்றொடரை உறுதி செய்க</translation>
+<translation id="7781829728241885113">நேற்று</translation>
 <translation id="780301667611848630">தேவையில்லை</translation>
 <translation id="7830720446622801252">தனிப்பயனாக்கப்படாத சேவைகள்</translation>
+<translation id="7840771868269352570">நீங்கள் தேர்ந்தெடுத்தவை அகற்றப்படும்.</translation>
 <translation id="7856733331829174190">பதிவிறக்க முடியவில்லை</translation>
 <translation id="7859704718976024901">உலாவல் வரலாறு</translation>
 <translation id="7918293828610777738">உங்கள் வாசிப்புப் பட்டியலை ஆஃப்லைனில் அணுகலாம். வாசிப்புப் பட்டியலில் ஒரு பக்கத்தைச் சேர்க்க, <ph name="SHARE_OPENING_ICON" /> ஐகானைத் தட்டிய பின்னர் <ph name="READ_LATER_TEXT" /> என்பதைத் தட்டவும்.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index ad6d282..be744ef0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -165,6 +165,7 @@
 <translation id="3588820906588687999">చిత్రాన్ని కొత్త ట్యాబ్‌లో తెరువు</translation>
 <translation id="3603009562372709545">లింక్ URLని కాపీ చేయి</translation>
 <translation id="3607167657931203000">స్వీయపూర్తి డేటా</translation>
+<translation id="360930808415985584">సమకాలీకరణ, వ్యక్తిగతీకరణ మరియు మరిన్నింటిని నియంత్రించండి</translation>
 <translation id="3609785682760573515">సమకాలీకరిస్తోంది...</translation>
 <translation id="3628119975092896051">మీ పఠన జాబితా ఆఫ్‌లైన్‌లో అందుబాటులో ఉంది. మీ పఠన జాబితాకు పేజీని జోడించడానికి, <ph name="SHARE_OPENING_ICON" />ని నొక్కండి.</translation>
 <translation id="3638472932233958418">వెబ్‌పేజీలను ముందే లోడ్ చేయి</translation>
@@ -211,6 +212,7 @@
 <translation id="4508750114462689118">సైన్ ఇన్ ప్రోమోను మూసివేయండి</translation>
 <translation id="4526249700380860531"><ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" />లో సేవ్ చేసిన పాస్‌వర్డ్‌లను వీక్షించండి మరియు నిర్వహించండి</translation>
 <translation id="4536418791685807335">మళ్లీ సైన్ ఇన్ చేయడానికి ప్రయత్నించండి.</translation>
+<translation id="4541241553780729349">Googleకి సమకాలీకరించే డేటా మరియు మీరు ఉపయోగించే ఫీచర్‌లు మారవు</translation>
 <translation id="457386861538956877">మరిన్ని...</translation>
 <translation id="461440297010471931">Googleతో శోధిస్తోంది</translation>
 <translation id="4619615317237390068">ఇతర పరికరాల్లోని ట్యాబ్‌లు</translation>
@@ -394,6 +396,7 @@
 <translation id="7765158879357617694">తరలించు</translation>
 <translation id="7769602470925380267">అంగీకరిస్తున్నాను, సైన్ అవుట్ చేయి</translation>
 <translation id="7772032839648071052">పాస్‌ఫ్రేజ్‌ని నిర్ధారించండి</translation>
+<translation id="7781829728241885113">నిన్న</translation>
 <translation id="780301667611848630">వద్దు , ధన్యవాదాలు</translation>
 <translation id="7830720446622801252">వ్యక్తిగతీకరించబడని సేవలు</translation>
 <translation id="7856733331829174190">డౌన్‌లోడ్ చేయడం సాధ్యపడలేదు</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index f8ce611..5dfb4d3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -52,6 +52,7 @@
 <translation id="1690731385917361335">ไม่มีรายการ</translation>
 <translation id="1700629756560807968">เลือก <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> รายการ</translation>
 <translation id="1740468249224277719">แตะ 2 ครั้งเพื่อติดตั้ง</translation>
+<translation id="1746815479209538200">หากต้องการท่องเว็บ ให้เพิ่มแท็บใหม่</translation>
 <translation id="17513872634828108">แท็บที่เปิดอยู่</translation>
 <translation id="1752547299766512813">บันทึกรหัสผ่าน</translation>
 <translation id="1753905327828125965">เข้าชมบ่อยสุด</translation>
@@ -390,12 +391,15 @@
 <translation id="7638584964844754484">รหัสผ่านไม่ถูกต้อง</translation>
 <translation id="7649070708921625228">ช่วยเหลือ</translation>
 <translation id="7658239707568436148">ยกเลิก</translation>
+<translation id="766891008101699113">หากต้องการท่องเว็บแบบเป็นส่วนตัว ให้เพิ่มแท็บใหม่</translation>
 <translation id="7671141431838911305">ติดตั้ง</translation>
 <translation id="7765158879357617694">ย้าย</translation>
 <translation id="7769602470925380267">ยอมรับและออกจากระบบ</translation>
 <translation id="7772032839648071052">ยืนยันข้อความรหัสผ่าน</translation>
+<translation id="7781829728241885113">เมื่อวานนี้</translation>
 <translation id="780301667611848630">ไม่ ขอบคุณ</translation>
 <translation id="7830720446622801252">บริการที่ไม่ได้ปรับเปลี่ยนในแบบของคุณ</translation>
+<translation id="7840771868269352570">ระบบจะนำรายการที่คุณเลือกออก</translation>
 <translation id="7856733331829174190">ดาวน์โหลดไม่ได้</translation>
 <translation id="7859704718976024901">ประวัติการเข้าชม</translation>
 <translation id="7918293828610777738">เรื่องรออ่านของคุณพร้อมใช้งานในแบบออฟไลน์ หากต้องการเพิ่มหน้าลงในเรื่องรออ่าน ให้แตะ <ph name="SHARE_OPENING_ICON" /> แล้วแตะ "<ph name="READ_LATER_TEXT" />"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index eff6ce4..043330c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Öğe yok</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> yer işareti seçildi</translation>
 <translation id="1740468249224277719">Yüklemek için iki kez dokunun.</translation>
+<translation id="1746815479209538200">Web'e göz atmak için yeni bir sekme ekleyin.</translation>
 <translation id="17513872634828108">Açık sekmeler</translation>
 <translation id="1752547299766512813">Şifreleri Kaydet</translation>
 <translation id="1753905327828125965">En Çok Ziyaret Edilenler</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Yanlış parola</translation>
 <translation id="7649070708921625228">Yardım</translation>
 <translation id="7658239707568436148">İptal</translation>
+<translation id="766891008101699113">Web'e gizli modda göz atmak için yeni bir sekme ekleyin.</translation>
 <translation id="7671141431838911305">YÜKLE</translation>
 <translation id="7765158879357617694">Taşı</translation>
 <translation id="7769602470925380267">Kabul et ve oturumu kapat</translation>
 <translation id="7772032839648071052">Parolayı onayla</translation>
+<translation id="7781829728241885113">Dün</translation>
 <translation id="780301667611848630">Hayır, teşekkürler</translation>
 <translation id="7830720446622801252">Kişiselleştirilmemiş Hizmetler</translation>
+<translation id="7840771868269352570">Seçtiğiniz öğeler kaldırılacak.</translation>
 <translation id="7856733331829174190">İndirilemedi</translation>
 <translation id="7859704718976024901">Tarama Geçmişi</translation>
 <translation id="7918293828610777738">Okuma listeniz çevrimdışı olarak kullanılabilir. Okuma listenize sayfa eklemek için önce <ph name="SHARE_OPENING_ICON" />, ardından <ph name="READ_LATER_TEXT" /> öğesine dokunun.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index 315e29e..e8385b556 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Нічого немає</translation>
 <translation id="1700629756560807968">Вибрано <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /></translation>
 <translation id="1740468249224277719">Торкніться двічі, щоб установити.</translation>
+<translation id="1746815479209538200">Щоб переглядати веб-сторінки, додайте нову вкладку.</translation>
 <translation id="17513872634828108">Відкриті вкладки</translation>
 <translation id="1752547299766512813">Зберігати паролі</translation>
 <translation id="1753905327828125965">Часто відвідувані</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Неправильна парольна фраза</translation>
 <translation id="7649070708921625228">Довідка</translation>
 <translation id="7658239707568436148">Скасувати</translation>
+<translation id="766891008101699113">Щоб переглядати веб-сторінки конфіденційно, додайте нову вкладку.</translation>
 <translation id="7671141431838911305">INSTALL</translation>
 <translation id="7765158879357617694">Перемістити</translation>
 <translation id="7769602470925380267">Прийняти та вийти</translation>
 <translation id="7772032839648071052">Підтвердити парольну фразу</translation>
+<translation id="7781829728241885113">Учора</translation>
 <translation id="780301667611848630">Ні, дякую</translation>
 <translation id="7830720446622801252">Неперсоналізовані сервіси</translation>
+<translation id="7840771868269352570">Вибраний елемент буде видалено.</translation>
 <translation id="7856733331829174190">Не вдалося завантажити</translation>
 <translation id="7859704718976024901">Історія веб-перегляду</translation>
 <translation id="7918293828610777738">Ваш список читання доступний офлайн. Щоб додати до нього сторінку, торкніться значка <ph name="SHARE_OPENING_ICON" /> й виберіть <ph name="READ_LATER_TEXT" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index f2191fc0..9f75feef 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">Không có mục nào</translation>
 <translation id="1700629756560807968">Đã chọn <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> dấu trang</translation>
 <translation id="1740468249224277719">Nhấn đúp để cài đặt.</translation>
+<translation id="1746815479209538200">Để duyệt web, hãy thêm tab mới.</translation>
 <translation id="17513872634828108">Tab đang mở</translation>
 <translation id="1752547299766512813">Lưu mật khẩu</translation>
 <translation id="1753905327828125965">Truy cập nhiều nhất</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">Cụm mật khẩu không chính xác</translation>
 <translation id="7649070708921625228">Trợ giúp</translation>
 <translation id="7658239707568436148">Hủy</translation>
+<translation id="766891008101699113">Để duyệt web ở chế độ riêng tư, hãy thêm tab mới.</translation>
 <translation id="7671141431838911305">CÀI ĐẶT</translation>
 <translation id="7765158879357617694">Di chuyển</translation>
 <translation id="7769602470925380267">Chấp nhận và đăng xuất</translation>
 <translation id="7772032839648071052">Xác nhận cụm mật khẩu</translation>
+<translation id="7781829728241885113">Hôm qua</translation>
 <translation id="780301667611848630">Không, cảm ơn</translation>
 <translation id="7830720446622801252">Dịch vụ không được cá nhân hóa</translation>
+<translation id="7840771868269352570">Mục đã chọn sẽ bị xóa.</translation>
 <translation id="7856733331829174190">Không thể tải xuống</translation>
 <translation id="7859704718976024901">Lịch sử duyệt web</translation>
 <translation id="7918293828610777738">Danh sách đọc của bạn vẫn dùng được khi không có mạng. Để thêm một trang vào danh sách đọc, hãy nhấn vào biểu tượng <ph name="SHARE_OPENING_ICON" /> rồi nhấn vào <ph name="READ_LATER_TEXT" />.</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 e792e03..c9b0098 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -396,6 +396,7 @@
 <translation id="7765158879357617694">移动</translation>
 <translation id="7769602470925380267">接受并退出</translation>
 <translation id="7772032839648071052">确认密码</translation>
+<translation id="7781829728241885113">昨天</translation>
 <translation id="780301667611848630">不用了,谢谢</translation>
 <translation id="7830720446622801252">非个性化服务</translation>
 <translation id="7856733331829174190">无法下载</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 cafa3e1..b2c9800 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -54,6 +54,7 @@
 <translation id="1690731385917361335">沒有任何項目</translation>
 <translation id="1700629756560807968">已選取 <ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> 個項目</translation>
 <translation id="1740468249224277719">輕觸兩下即可安裝。</translation>
+<translation id="1746815479209538200">如要瀏覽網頁,請開啟新分頁。</translation>
 <translation id="17513872634828108">開啟分頁</translation>
 <translation id="1752547299766512813">儲存密碼</translation>
 <translation id="1753905327828125965">最常造訪</translation>
@@ -392,12 +393,15 @@
 <translation id="7638584964844754484">通關密語不正確</translation>
 <translation id="7649070708921625228">說明</translation>
 <translation id="7658239707568436148">取消</translation>
+<translation id="766891008101699113">如要以私密模式瀏覽網頁,請開啟新分頁。</translation>
 <translation id="7671141431838911305">安裝</translation>
 <translation id="7765158879357617694">移動</translation>
 <translation id="7769602470925380267">接受並登出</translation>
 <translation id="7772032839648071052">確認通關密語</translation>
+<translation id="7781829728241885113">昨天</translation>
 <translation id="780301667611848630">不用了,謝謝</translation>
 <translation id="7830720446622801252">非個人化服務</translation>
+<translation id="7840771868269352570">系統將移除所選項目。</translation>
 <translation id="7856733331829174190">無法下載</translation>
 <translation id="7859704718976024901">瀏覽記錄</translation>
 <translation id="7918293828610777738">閱讀清單可供離線存取。如要將網頁加入閱讀清單,請依序輕觸 <ph name="SHARE_OPENING_ICON" /> &gt; [<ph name="READ_LATER_TEXT" />]。</translation>
diff --git a/ios/chrome/browser/autofill/form_suggestion_controller.mm b/ios/chrome/browser/autofill/form_suggestion_controller.mm
index ab29966..2d67268d 100644
--- a/ios/chrome/browser/autofill/form_suggestion_controller.mm
+++ b/ios/chrome/browser/autofill/form_suggestion_controller.mm
@@ -265,7 +265,10 @@
 }
 
 - (void)onNoSuggestionsAvailable {
-  DCHECK(accessoryViewUpdateBlock_);
+  // Check the update block hasn't been reset while waiting for suggestions.
+  if (!accessoryViewUpdateBlock_) {
+    return;
+  }
   BOOL isManualFillEnabled =
       base::FeatureList::IsEnabled(autofill::features::kAutofillManualFallback);
   if (isManualFillEnabled) {
diff --git a/ios/chrome/browser/gcm/ios_chrome_gcm_profile_service_factory.cc b/ios/chrome/browser/gcm/ios_chrome_gcm_profile_service_factory.cc
index f9e8152..a6e28a7c 100644
--- a/ios/chrome/browser/gcm/ios_chrome_gcm_profile_service_factory.cc
+++ b/ios/chrome/browser/gcm/ios_chrome_gcm_profile_service_factory.cc
@@ -92,7 +92,6 @@
       ios::ChromeBrowserState::FromBrowserState(context);
   return std::make_unique<gcm::GCMProfileService>(
       browser_state->GetPrefs(), browser_state->GetStatePath(),
-      browser_state->GetRequestContext(),
       base::BindRepeating(&RequestProxyResolvingSocketFactory, context),
       browser_state->GetSharedURLLoaderFactory(), ::GetChannel(),
       GetProductCategoryForSubtypes(),
diff --git a/ios/chrome/browser/signin/ios_chrome_signin_client.h b/ios/chrome/browser/signin/ios_chrome_signin_client.h
index 253ffd0..cb41925a 100644
--- a/ios/chrome/browser/signin/ios_chrome_signin_client.h
+++ b/ios/chrome/browser/signin/ios_chrome_signin_client.h
@@ -14,7 +14,6 @@
 #include "components/signin/core/browser/signin_error_controller.h"
 #include "components/signin/ios/browser/wait_for_network_callback_helper.h"
 #include "net/cookies/cookie_change_dispatcher.h"
-#include "net/url_request/url_request_context_getter.h"
 
 namespace ios {
 class ChromeBrowserState;
@@ -48,7 +47,6 @@
       override;
   void PreGaiaLogout(base::OnceClosure callback) override;
   PrefService* GetPrefs() override;
-  net::URLRequestContextGetter* GetURLRequestContext() override;
   scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override;
   network::mojom::CookieManager* GetCookieManager() override;
   void DoFinalInit() override;
diff --git a/ios/chrome/browser/signin/ios_chrome_signin_client.mm b/ios/chrome/browser/signin/ios_chrome_signin_client.mm
index b0a5f44..a4bd985 100644
--- a/ios/chrome/browser/signin/ios_chrome_signin_client.mm
+++ b/ios/chrome/browser/signin/ios_chrome_signin_client.mm
@@ -93,10 +93,6 @@
   return browser_state_->GetPrefs();
 }
 
-net::URLRequestContextGetter* IOSChromeSigninClient::GetURLRequestContext() {
-  return browser_state_->GetRequestContext();
-}
-
 scoped_refptr<network::SharedURLLoaderFactory>
 IOSChromeSigninClient::GetURLLoaderFactory() {
   return browser_state_->GetSharedURLLoaderFactory();
diff --git a/ios/chrome/browser/ssl/ios_ssl_error_handler_unittest.mm b/ios/chrome/browser/ssl/ios_ssl_error_handler_unittest.mm
index fffd333..fbf9b25 100644
--- a/ios/chrome/browser/ssl/ios_ssl_error_handler_unittest.mm
+++ b/ios/chrome/browser/ssl/ios_ssl_error_handler_unittest.mm
@@ -9,6 +9,7 @@
 #import "base/test/ios/wait_util.h"
 #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
 #import "ios/chrome/browser/ssl/captive_portal_detector_tab_helper.h"
+#import "ios/chrome/browser/ssl/captive_portal_detector_tab_helper_delegate.h"
 #include "ios/web/public/interstitials/web_interstitial.h"
 #import "ios/web/public/test/web_test_with_web_state.h"
 #import "ios/web/public/web_state/web_state.h"
diff --git a/ios/chrome/browser/sync/ios_chrome_profile_sync_test_util.cc b/ios/chrome/browser/sync/ios_chrome_profile_sync_test_util.cc
index 6c0e3727..6f38c8cb 100644
--- a/ios/chrome/browser/sync/ios_chrome_profile_sync_test_util.cc
+++ b/ios/chrome/browser/sync/ios_chrome_profile_sync_test_util.cc
@@ -19,6 +19,7 @@
 #include "ios/chrome/browser/signin/signin_manager_factory.h"
 #include "ios/chrome/browser/sync/ios_chrome_sync_client.h"
 #include "ios/chrome/common/channel_info.h"
+#include "net/url_request/url_request_context_getter.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 
 browser_sync::ProfileSyncService::InitParams
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/action_cell.h b/ios/chrome/browser/ui/autofill/manual_fill/action_cell.h
new file mode 100644
index 0000000..b3b515e0
--- /dev/null
+++ b/ios/chrome/browser/ui/autofill/manual_fill/action_cell.h
@@ -0,0 +1,19 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_AUTOFILL_MANUAL_FILL_ACTION_CELL_H_
+#define IOS_CHROME_BROWSER_UI_AUTOFILL_MANUAL_FILL_ACTION_CELL_H_
+
+#import <UIKit/UIKit.h>
+
+// A table view cell which contains a button and holds an action block, which
+// is called when the button is touched.
+@interface ManualFillActionCell : UITableViewCell
+
+// Updates the cell with the passed title and action block.
+- (void)setUpWithTitle:(NSString*)title action:(void (^)(void))action;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_AUTOFILL_MANUAL_FILL_ACTION_CELL_H_
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/action_cell.mm b/ios/chrome/browser/ui/autofill/manual_fill/action_cell.mm
new file mode 100644
index 0000000..6a63193
--- /dev/null
+++ b/ios/chrome/browser/ui/autofill/manual_fill/action_cell.mm
@@ -0,0 +1,132 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/autofill/manual_fill/action_cell.h"
+
+#import "ios/chrome/browser/ui/autofill/manual_fill/uicolor_manualfill.h"
+#import "ios/chrome/common/ui_util/constraints_ui_util.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+namespace {
+// Left and right margins of the cell contents.
+static const CGFloat sideMargins = 16;
+// The base multiplier for the top and bottom margins.  This number multiplied
+// by the font size plus the base margins will give similar results to
+// |constraintEqualToSystemSpacingBelowAnchor:|.
+static const CGFloat iOS10MarginFontMultiplier = 1.18;
+// The base top margin, only used in iOS 10. Refer to
+// |iOS10MarginFontMultiplier| for how it is used.
+static const CGFloat iOS10BaseTopMargin = 24;
+// The base bottom margin, only used in iOS 10. Refer to
+// |iOS10MarginFontMultiplier| for how it is used.
+static const CGFloat iOS10BaseBottomMargin = 6;
+// The multiplier for the base system spacing at the top margin.
+static const CGFloat TopBaseSystemSpacingMultiplier = 1.78;
+// The multiplier for the base system spacing at the bottom margin.
+static const CGFloat BottomBaseSystemSpacingMultiplier = 2.26;
+}  // namespace
+
+@interface ManualFillActionCell ()
+// The action block to be called when the user taps the title button.
+@property(nonatomic, copy) void (^action)(void);
+// The title button of this cell.
+@property(nonatomic, strong) UIButton* titleButton;
+@end
+
+@implementation ManualFillActionCell
+@synthesize action = _action;
+@synthesize titleButton = _titleButton;
+
+#pragma mark - Public
+
+- (void)setUpWithTitle:(NSString*)title action:(void (^)(void))action {
+  if (self.contentView.subviews.count == 0) {
+    [self createView];
+  }
+  [self.titleButton setTitle:title forState:UIControlStateNormal];
+  self.action = action;
+}
+
+- (void)prepareForReuse {
+  [super prepareForReuse];
+  self.action = nil;
+}
+
+#pragma mark - Private
+
+- (void)createView {
+  self.selectionStyle = UITableViewCellSelectionStyleNone;
+
+  self.titleButton = [[UIButton alloc] init];
+  [self.titleButton setTitleColor:UIColor.cr_manualFillTintColor
+                         forState:UIControlStateNormal];
+  self.titleButton.translatesAutoresizingMaskIntoConstraints = NO;
+  self.titleButton.titleLabel.font =
+      [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
+  self.titleButton.titleLabel.adjustsFontForContentSizeCategory = YES;
+  [self.titleButton addTarget:self
+                       action:@selector(userDidTapTitleButton:)
+             forControlEvents:UIControlEventTouchUpInside];
+  self.titleButton.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
+  [self.contentView addSubview:self.titleButton];
+  id<LayoutGuideProvider> safeArea =
+      SafeAreaLayoutGuideForView(self.contentView);
+
+  NSArray* verticalConstraints;
+  if (@available(iOS 11, *)) {
+    // Multipliers of these constraints are calculated based on a 24 base
+    // system spacing.
+    verticalConstraints = @[
+      // Vertical constraints.
+      [self.titleButton.firstBaselineAnchor
+          constraintEqualToSystemSpacingBelowAnchor:self.contentView.topAnchor
+                                         multiplier:
+                                             TopBaseSystemSpacingMultiplier],
+      [self.contentView.bottomAnchor
+          constraintEqualToSystemSpacingBelowAnchor:self.titleButton
+                                                        .lastBaselineAnchor
+                                         multiplier:
+                                             BottomBaseSystemSpacingMultiplier],
+    ];
+  } else {
+    CGFloat pointSize = self.titleButton.titleLabel.font.pointSize;
+    // These margins are based on the design size and the current point size.
+    // The multipliers were selected by manually testing the different system
+    // font sizes.
+    CGFloat marginTop =
+        iOS10BaseTopMargin + pointSize * iOS10MarginFontMultiplier;
+    CGFloat marginBottom =
+        iOS10BaseBottomMargin + pointSize * iOS10MarginFontMultiplier;
+
+    verticalConstraints = @[
+      [self.titleButton.firstBaselineAnchor
+          constraintEqualToAnchor:self.contentView.topAnchor
+                         constant:marginTop],
+      [self.contentView.bottomAnchor
+          constraintEqualToAnchor:self.titleButton.lastBaselineAnchor
+                         constant:marginBottom],
+    ];
+  }
+  [NSLayoutConstraint activateConstraints:verticalConstraints];
+  // Horizontal constraints.
+  [NSLayoutConstraint activateConstraints:@[
+    [self.titleButton.leadingAnchor
+        constraintEqualToAnchor:safeArea.leadingAnchor
+                       constant:sideMargins],
+    [safeArea.trailingAnchor
+        constraintGreaterThanOrEqualToAnchor:self.titleButton.trailingAnchor
+                                    constant:sideMargins],
+  ]];
+}
+
+- (void)userDidTapTitleButton:(UIButton*)sender {
+  if (self.action) {
+    self.action();
+  }
+}
+
+@end
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/uicolor_manualfill.h b/ios/chrome/browser/ui/autofill/manual_fill/uicolor_manualfill.h
new file mode 100644
index 0000000..182a623
--- /dev/null
+++ b/ios/chrome/browser/ui/autofill/manual_fill/uicolor_manualfill.h
@@ -0,0 +1,15 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_AUTOFILL_MANUAL_FILL_UICOLOR_MANUALFILL_H_
+#define IOS_CHROME_BROWSER_UI_AUTOFILL_MANUAL_FILL_UICOLOR_MANUALFILL_H_
+
+#import <UIKit/UIKit.h>
+
+@interface UIColor (ManualFill)
+// Color to set in interactable elements for manual fill (0.1, 0.45, 0.91 RGB).
+@property(class, nonatomic, readonly) UIColor* cr_manualFillTintColor;
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_AUTOFILL_MANUAL_FILL_UICOLOR_MANUALFILL_H_
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/uicolor_manualfill.mm b/ios/chrome/browser/ui/autofill/manual_fill/uicolor_manualfill.mm
new file mode 100644
index 0000000..6a1ef1f
--- /dev/null
+++ b/ios/chrome/browser/ui/autofill/manual_fill/uicolor_manualfill.mm
@@ -0,0 +1,19 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/autofill/manual_fill/uicolor_manualfill.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+@implementation UIColor (ManualFill)
+
++ (UIColor*)cr_manualFillTintColor {
+  static UIColor* color =
+      [UIColor colorWithRed:0.10 green:0.45 blue:0.91 alpha:1.0];
+  return color;
+}
+
+@end
diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm
index 8dea137..872eca4 100644
--- a/ios/chrome/browser/ui/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view_controller.mm
@@ -5433,6 +5433,11 @@
 - (void)animateNewTabInBackgroundFromPoint:(CGPoint)originPoint
                             withCompletion:(ProceduralBlock)completion {
   self.inNewTabAnimation = YES;
+
+  // Exit fullscreen if needed.
+  FullscreenControllerFactory::GetInstance()
+      ->GetForBrowserState(_browserState)
+      ->ResetModel();
   const CGFloat kAnimatedViewSize = 50;
   BackgroundTabAnimationView* animatedView = [[BackgroundTabAnimationView alloc]
       initWithFrame:CGRectMake(0, 0, kAnimatedViewSize, kAnimatedViewSize)];
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_updater.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_updater.mm
index fb0423a..d5aae12 100644
--- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_updater.mm
+++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_updater.mm
@@ -331,12 +331,6 @@
 
   NSInteger section = [model sectionForSectionIdentifier:sectionIdentifier];
 
-  NSMutableArray* oldItems = [NSMutableArray array];
-  NSInteger numberOfItems = [model numberOfItemsInSection:section];
-  for (NSInteger i = 0; i < numberOfItems; i++) {
-    [oldItems addObject:[NSIndexPath indexPathForItem:i inSection:section]];
-  }
-
   // Reset collection model data for |sectionIdentifier|
   [self.collectionViewController.collectionViewModel
                      setFooter:nil
@@ -364,9 +358,12 @@
     [self.collectionViewController.collectionView
         insertItemsAtIndexPaths:addedItems];
   };
-  [self.collectionViewController.collectionView
-      performBatchUpdates:addSectionBlock
-               completion:nil];
+  [UIView animateWithDuration:0
+                   animations:^{
+                     [self.collectionViewController.collectionView
+                         performBatchUpdates:addSectionBlock
+                                  completion:nil];
+                   }];
 
   // Make sure we get the right index for the section.
   section = [model sectionForSectionIdentifier:sectionIdentifier];
diff --git a/ios/chrome/browser/ui/settings/google_services_settings_coordinator.mm b/ios/chrome/browser/ui/settings/google_services_settings_coordinator.mm
index 2bbcbc4..e663a18 100644
--- a/ios/chrome/browser/ui/settings/google_services_settings_coordinator.mm
+++ b/ios/chrome/browser/ui/settings/google_services_settings_coordinator.mm
@@ -68,10 +68,11 @@
   unified_consent::UnifiedConsentService* unifiedConsentService =
       UnifiedConsentServiceFactory::GetForBrowserState(self.browserState);
   self.mediator = [[GoogleServicesSettingsMediator alloc]
-        initWithPrefService:self.browserState->GetPrefs()
-                syncService:syncService
-           syncSetupService:syncSetupService
-      unifiedConsentService:unifiedConsentService];
+      initWithUserPrefService:self.browserState->GetPrefs()
+             localPrefService:GetApplicationContext()->GetLocalState()
+                  syncService:syncService
+             syncSetupService:syncSetupService
+        unifiedConsentService:unifiedConsentService];
   self.mediator.consumer = viewController;
   self.mediator.authService = self.authService;
   viewController.modelDelegate = self.mediator;
diff --git a/ios/chrome/browser/ui/settings/google_services_settings_mediator.h b/ios/chrome/browser/ui/settings/google_services_settings_mediator.h
index af4feac..f4e69f9b 100644
--- a/ios/chrome/browser/ui/settings/google_services_settings_mediator.h
+++ b/ios/chrome/browser/ui/settings/google_services_settings_mediator.h
@@ -34,14 +34,16 @@
 // Authentication service.
 @property(nonatomic, assign) AuthenticationService* authService;
 
-// Designated initializer. |prefService|, |syncService|, |syncSetupService| and
-// |unifiedConsentService| should not be null.
-- (instancetype)initWithPrefService:(PrefService*)prefService
-                        syncService:
-                            (browser_sync::ProfileSyncService*)syncService
-                   syncSetupService:(SyncSetupService*)syncSetupService
-              unifiedConsentService:
-                  (unified_consent::UnifiedConsentService*)unifiedConsentService
+// Designated initializer. All the paramters should not be null.
+// |userPrefService|: preference service from the browser state.
+// |localPrefService|: preference service from the application context.
+- (instancetype)
+initWithUserPrefService:(PrefService*)userPrefService
+       localPrefService:(PrefService*)localPrefService
+            syncService:(browser_sync::ProfileSyncService*)syncService
+       syncSetupService:(SyncSetupService*)syncSetupService
+  unifiedConsentService:
+      (unified_consent::UnifiedConsentService*)unifiedConsentService
     NS_DESIGNATED_INITIALIZER;
 
 - (instancetype)init NS_UNAVAILABLE;
diff --git a/ios/chrome/browser/ui/settings/google_services_settings_mediator.mm b/ios/chrome/browser/ui/settings/google_services_settings_mediator.mm
index a178f40..3fb4be20 100644
--- a/ios/chrome/browser/ui/settings/google_services_settings_mediator.mm
+++ b/ios/chrome/browser/ui/settings/google_services_settings_mediator.mm
@@ -7,6 +7,7 @@
 #include "base/auto_reset.h"
 #include "base/mac/foundation_util.h"
 #include "components/browser_sync/profile_sync_service.h"
+#include "components/metrics/metrics_pref_names.h"
 #import "components/prefs/ios/pref_observer_bridge.h"
 #include "components/prefs/pref_change_registrar.h"
 #include "components/prefs/pref_service.h"
@@ -101,6 +102,22 @@
 // Preference value for the "Autocomplete searches and URLs" feature.
 @property(nonatomic, strong, readonly)
     PrefBackedBoolean* autocompleteSearchPreference;
+// Preference value for the "Preload pages for faster browsing" feature.
+@property(nonatomic, strong, readonly)
+    PrefBackedBoolean* preloadPagesPreference;
+// Preference value for the "Preload pages for faster browsing" for Wifi-Only.
+// TODO(crbug.com/872101): Needs to create the UI to change from Wifi-Only to
+// always
+@property(nonatomic, strong, readonly)
+    PrefBackedBoolean* preloadPagesWifiOnlyPreference;
+// Preference value for the "Help improve Chromium's features" feature.
+@property(nonatomic, strong, readonly)
+    PrefBackedBoolean* sendDataUsagePreference;
+// Preference value for the "Help improve Chromium's features" for Wifi-Only.
+// TODO(crbug.com/872101): Needs to create the UI to change from Wifi-Only to
+// always
+@property(nonatomic, strong, readonly)
+    PrefBackedBoolean* sendDataUsageWifiOnlyPreference;
 // Preference value for the "Make searches and browsing better" feature.
 @property(nonatomic, strong, readonly)
     PrefBackedBoolean* anonymizedDataCollectionPreference;
@@ -133,6 +150,10 @@
 @synthesize authService = _authService;
 @synthesize syncSetupService = _syncSetupService;
 @synthesize autocompleteSearchPreference = _autocompleteSearchPreference;
+@synthesize preloadPagesPreference = _preloadPagesPreference;
+@synthesize preloadPagesWifiOnlyPreference = _preloadPagesWifiOnlyPreference;
+@synthesize sendDataUsagePreference = _sendDataUsagePreference;
+@synthesize sendDataUsageWifiOnlyPreference = _sendDataUsageWifiOnlyPreference;
 @synthesize anonymizedDataCollectionPreference =
     _anonymizedDataCollectionPreference;
 @synthesize syncEverythingSwitchBeingAnimated =
@@ -148,14 +169,16 @@
 #pragma mark - Load model
 
 - (instancetype)
-  initWithPrefService:(PrefService*)prefService
-          syncService:(browser_sync::ProfileSyncService*)syncService
-     syncSetupService:(SyncSetupService*)syncSetupService
-unifiedConsentService:
-    (unified_consent::UnifiedConsentService*)unifiedConsentService {
+initWithUserPrefService:(PrefService*)userPrefService
+       localPrefService:(PrefService*)localPrefService
+            syncService:(browser_sync::ProfileSyncService*)syncService
+       syncSetupService:(SyncSetupService*)syncSetupService
+  unifiedConsentService:
+      (unified_consent::UnifiedConsentService*)unifiedConsentService {
   self = [super init];
   if (self) {
-    DCHECK(prefService);
+    DCHECK(userPrefService);
+    DCHECK(localPrefService);
     DCHECK(syncService);
     DCHECK(syncSetupService);
     DCHECK(unifiedConsentService);
@@ -163,15 +186,29 @@
     _unifiedConsentService = unifiedConsentService;
     _syncObserver.reset(new SyncObserverBridge(self, syncService));
     prefObserverBridge_ = std::make_unique<PrefObserverBridge>(self);
-    prefChangeRegistrar_.Init(prefService);
+    prefChangeRegistrar_.Init(userPrefService);
     prefObserverBridge_->ObserveChangesForPreference(kUnifiedConsentGiven,
                                                      &prefChangeRegistrar_);
     _autocompleteSearchPreference = [[PrefBackedBoolean alloc]
-        initWithPrefService:prefService
+        initWithPrefService:userPrefService
                    prefName:prefs::kSearchSuggestEnabled];
     [_autocompleteSearchPreference setObserver:self];
+    _preloadPagesPreference = [[PrefBackedBoolean alloc]
+        initWithPrefService:userPrefService
+                   prefName:prefs::kNetworkPredictionEnabled];
+    [_preloadPagesPreference setObserver:self];
+    _preloadPagesWifiOnlyPreference = [[PrefBackedBoolean alloc]
+        initWithPrefService:userPrefService
+                   prefName:prefs::kNetworkPredictionWifiOnly];
+    _sendDataUsagePreference = [[PrefBackedBoolean alloc]
+        initWithPrefService:localPrefService
+                   prefName:metrics::prefs::kMetricsReportingEnabled];
+    [_sendDataUsagePreference setObserver:self];
+    _sendDataUsageWifiOnlyPreference = [[PrefBackedBoolean alloc]
+        initWithPrefService:localPrefService
+                   prefName:prefs::kMetricsReportingWifiOnly];
     _anonymizedDataCollectionPreference = [[PrefBackedBoolean alloc]
-        initWithPrefService:prefService
+        initWithPrefService:userPrefService
                    prefName:unified_consent::prefs::
                                 kUrlKeyedAnonymizedDataCollectionEnabled];
     [_anonymizedDataCollectionPreference setObserver:self];
@@ -495,10 +532,10 @@
           switchItem.on = self.autocompleteSearchPreference.value;
           break;
         case GoogleServicesSettingsCommandIDTogglePreloadPagesService:
-          // Needs to be implemented.
+          switchItem.on = self.preloadPagesPreference.value;
           break;
         case GoogleServicesSettingsCommandIDToggleImproveChromeService:
-          // Needs to be implemented.
+          switchItem.on = self.sendDataUsagePreference.value;
           break;
         case GoogleServicesSettingsCommandIDToggleBetterSearchAndBrowsingService:
           switchItem.on = self.anonymizedDataCollectionPreference.value;
@@ -556,11 +593,19 @@
 }
 
 - (void)togglePreloadPagesServiceWithValue:(BOOL)value {
-  // Needs to be implemented.
+  self.preloadPagesPreference.value = value;
+  if (value) {
+    // Should be wifi only, until https://crbug.com/872101 is fixed.
+    self.preloadPagesWifiOnlyPreference.value = YES;
+  }
 }
 
 - (void)toggleImproveChromeServiceWithValue:(BOOL)value {
-  // Needs to be implemented.
+  self.sendDataUsagePreference.value = value;
+  if (value) {
+    // Should be wifi only, until https://crbug.com/872101 is fixed.
+    self.sendDataUsageWifiOnlyPreference.value = YES;
+  }
 }
 
 - (void)toggleBetterSearchAndBrowsingServiceWithValue:(BOOL)value {
diff --git a/ios/chrome/browser/ui/settings/settings_navigation_controller.mm b/ios/chrome/browser/ui/settings/settings_navigation_controller.mm
index 46241fda0c..d8b4eca 100644
--- a/ios/chrome/browser/ui/settings/settings_navigation_controller.mm
+++ b/ios/chrome/browser/ui/settings/settings_navigation_controller.mm
@@ -417,9 +417,15 @@
       viewController.navigationItem.leftBarButtonItems.count == 0) {
     viewController.navigationItem.leftBarButtonItem = [self backButton];
   }
-  // Wrap the view controller in an MDCAppBarContainerViewController if needed.
-  [super pushViewController:[self wrappedControllerIfNeeded:viewController]
-                   animated:animated];
+  // TODO(crbug.com/875528): This is a workaround for iOS 10.x.
+  if (@available(iOS 11, *)) {
+    // Wrap the view controller in an MDCAppBarContainerViewController if
+    // needed.
+    [super pushViewController:[self wrappedControllerIfNeeded:viewController]
+                     animated:animated];
+  } else {
+    [super pushViewController:viewController animated:animated];
+  }
 }
 
 - (UIViewController*)popViewControllerAnimated:(BOOL)animated {
diff --git a/ios/chrome/browser/ui/tab_grid/grid/grid_view_controller.mm b/ios/chrome/browser/ui/tab_grid/grid/grid_view_controller.mm
index 1d101c0..cfc7bad 100644
--- a/ios/chrome/browser/ui/tab_grid/grid/grid_view_controller.mm
+++ b/ios/chrome/browser/ui/tab_grid/grid/grid_view_controller.mm
@@ -154,7 +154,7 @@
                               scrollPosition:UICollectionViewScrollPositionTop];
   // Update the delegate, in case it wasn't set when |items| was populated.
   [self.delegate gridViewController:self didChangeItemCount:self.items.count];
-  [self animateEmptyStateOut];
+  [self removeEmptyStateAnimated:NO];
   self.lastInsertedItemID = nil;
 }
 
@@ -369,7 +369,7 @@
     [self.delegate gridViewController:self didChangeItemCount:self.items.count];
   };
   auto collectionViewUpdates = ^{
-    [self animateEmptyStateOut];
+    [self removeEmptyStateAnimated:YES];
     [self.collectionView insertItemsAtIndexPaths:@[ CreateIndexPath(index) ]];
   };
   auto completion = ^(BOOL finished) {
@@ -553,20 +553,25 @@
   [self.emptyStateAnimator startAnimation];
 }
 
-// Animates the empty state out of view.
-- (void)animateEmptyStateOut {
+// Removes the empty state out of view, with animation if |animated| is YES.
+- (void)removeEmptyStateAnimated:(BOOL)animated {
   // TODO(crbug.com/820410) : Polish the animation, and put constants where they
   // belong.
   [self.emptyStateAnimator stopAnimation:YES];
-  self.emptyStateAnimator = [[UIViewPropertyAnimator alloc]
-      initWithDuration:self.emptyStateView.alpha
-          dampingRatio:1.0
-            animations:^{
-              self.emptyStateView.alpha = 0.0;
-              self.emptyStateView.transform = CGAffineTransformScale(
-                  CGAffineTransformIdentity, /*sx=*/0.9, /*sy=*/0.9);
-            }];
-  [self.emptyStateAnimator startAnimation];
+  auto removeEmptyState = ^{
+    self.emptyStateView.alpha = 0.0;
+    self.emptyStateView.transform = CGAffineTransformScale(
+        CGAffineTransformIdentity, /*sx=*/0.9, /*sy=*/0.9);
+  };
+  if (animated) {
+    self.emptyStateAnimator = [[UIViewPropertyAnimator alloc]
+        initWithDuration:self.emptyStateView.alpha
+            dampingRatio:1.0
+              animations:removeEmptyState];
+    [self.emptyStateAnimator startAnimation];
+  } else {
+    removeEmptyState();
+  }
 }
 
 // Handle the long-press gesture used to reorder cells in the collection view.
diff --git a/ios/chrome/browser/ui/tabs/background_tab_animation_view.mm b/ios/chrome/browser/ui/tabs/background_tab_animation_view.mm
index 57424a5..e10127a 100644
--- a/ios/chrome/browser/ui/tabs/background_tab_animation_view.mm
+++ b/ios/chrome/browser/ui/tabs/background_tab_animation_view.mm
@@ -18,7 +18,6 @@
 
 namespace {
 const CGFloat kImageSize = 28;
-const CGFloat kImageTintColor = 0x1A73E8;
 const CGFloat kMaxScale = 1.3;
 const CGFloat kMinScale = 0.7;
 CGFloat kRotationAngleInRadians = 20.0 / 180 * M_PI;
@@ -107,7 +106,7 @@
             [[UIImage imageNamed:@"open_new_tab_background"]
                 imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]];
     linkImage.translatesAutoresizingMaskIntoConstraints = NO;
-    linkImage.tintColor = UIColorFromRGB(kImageTintColor);
+    linkImage.tintColor = [UIColor colorWithWhite:0.4 alpha:1];
 
     [self addSubview:linkImage];
 
diff --git a/ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_view_controller.mm b/ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_view_controller.mm
index 1340bddb..4b2ce3c 100644
--- a/ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_view_controller.mm
+++ b/ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_view_controller.mm
@@ -31,7 +31,7 @@
 namespace {
 const CGFloat kRotationInRadians = 5.0 / 180 * M_PI;
 // Scale factor for the animation, must be < 1.
-const CGFloat kScaleFactorDiff = 0.25;
+const CGFloat kScaleFactorDiff = 0.50;
 const CGFloat kTabGridAnimationsTotalDuration = 0.5;
 }  // namespace
 
diff --git a/ios/third_party/material_components_ios/BUILD.gn b/ios/third_party/material_components_ios/BUILD.gn
index 1183533..b60c6680 100644
--- a/ios/third_party/material_components_ios/BUILD.gn
+++ b/ios/third_party/material_components_ios/BUILD.gn
@@ -68,9 +68,10 @@
     "src/components/AnimationTiming/src/UIView+MDCTimingFunction.h",
     "src/components/AnimationTiming/src/UIView+MDCTimingFunction.m",
     "src/components/AppBar/src/MDCAppBar.h",
-    "src/components/AppBar/src/MDCAppBar.m",
     "src/components/AppBar/src/MDCAppBarContainerViewController.h",
     "src/components/AppBar/src/MDCAppBarContainerViewController.m",
+    "src/components/AppBar/src/MDCAppBarViewController.h",
+    "src/components/AppBar/src/MDCAppBarViewController.m",
     "src/components/AppBar/src/MaterialAppBar.h",
     "src/components/BottomSheet/src/MDCBottomSheetController.h",
     "src/components/BottomSheet/src/MDCBottomSheetController.m",
@@ -97,6 +98,12 @@
     "src/components/ButtonBar/src/private/MDCAppBarButtonBarBuilder.h",
     "src/components/ButtonBar/src/private/MDCAppBarButtonBarBuilder.m",
     "src/components/ButtonBar/src/private/MDCButtonBarButton.m",
+    "src/components/Buttons/src/ButtonThemer/MDCButtonScheme.h",
+    "src/components/Buttons/src/ButtonThemer/MDCButtonScheme.m",
+    "src/components/Buttons/src/ButtonThemer/MDCTextButtonThemer.h",
+    "src/components/Buttons/src/ButtonThemer/MDCTextButtonThemer.m",
+    "src/components/Buttons/src/ColorThemer/MDCTextButtonColorThemer.h",
+    "src/components/Buttons/src/ColorThemer/MDCTextButtonColorThemer.m",
     "src/components/Buttons/src/MDCButton.h",
     "src/components/Buttons/src/MDCButton.m",
     "src/components/Buttons/src/MDCFlatButton.h",
@@ -106,6 +113,8 @@
     "src/components/Buttons/src/MDCRaisedButton.h",
     "src/components/Buttons/src/MDCRaisedButton.m",
     "src/components/Buttons/src/MaterialButtons.h",
+    "src/components/Buttons/src/TypographyThemer/MDCButtonTypographyThemer.h",
+    "src/components/Buttons/src/TypographyThemer/MDCButtonTypographyThemer.m",
     "src/components/Buttons/src/private/MDCButton+Subclassing.h",
     "src/components/CollectionCells/src/MDCCollectionViewCell.h",
     "src/components/CollectionCells/src/MDCCollectionViewCell.m",
@@ -302,6 +311,9 @@
     "src/components/AppBar/src",
     "src/components/BottomSheet/src",
     "src/components/ButtonBar/src",
+    "src/components/Buttons/src/ButtonThemer",
+    "src/components/Buttons/src/ColorThemer",
+    "src/components/Buttons/src/TypographyThemer",
     "src/components/NavigationBar/src",
     "src/components/OverlayWindow/src",
     "src/components/private/Math/src",
diff --git a/ios/third_party/material_components_ios/README.chromium b/ios/third_party/material_components_ios/README.chromium
index 860bfec6..d06bfa4 100644
--- a/ios/third_party/material_components_ios/README.chromium
+++ b/ios/third_party/material_components_ios/README.chromium
@@ -1,7 +1,7 @@
 Name: Material Components for iOS
 URL: https://github.com/material-components/material-components-ios
 Version: 0
-Revision: 3a50c7a3b2f4ec760d2d2405b6b9787e5493c049
+Revision: 10aa5899c7886cb165f2e8bd4e9d490ddd9b8bb4
 License: Apache 2.0
 License File: LICENSE
 Security Critical: yes
diff --git a/ios/third_party/material_internationalization_ios/forwarding_headers/MDFInternationalization/NSLocale+MaterialRTL.h b/ios/third_party/material_internationalization_ios/forwarding_headers/MDFInternationalization/NSLocale+MaterialRTL.h
new file mode 100644
index 0000000..7e6964d3
--- /dev/null
+++ b/ios/third_party/material_internationalization_ios/forwarding_headers/MDFInternationalization/NSLocale+MaterialRTL.h
@@ -0,0 +1,9 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This forwarding header allows to import the file using import directives
+// assuming the code is build as a framework bundle while building it as a
+// source set. This is required as multiple third-party dependencies disagree on
+// that point.
+#import "ios/third_party/material_internationalization_ios/src/Sources/NSLocale+MaterialRTL.h"
diff --git a/ios/third_party/material_internationalization_ios/forwarding_headers/MDFInternationalization/NSString+MaterialBidi.h b/ios/third_party/material_internationalization_ios/forwarding_headers/MDFInternationalization/NSString+MaterialBidi.h
new file mode 100644
index 0000000..3e2f1e1
--- /dev/null
+++ b/ios/third_party/material_internationalization_ios/forwarding_headers/MDFInternationalization/NSString+MaterialBidi.h
@@ -0,0 +1,9 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This forwarding header allows to import the file using import directives
+// assuming the code is build as a framework bundle while building it as a
+// source set. This is required as multiple third-party dependencies disagree on
+// that point.
+#import "ios/third_party/material_internationalization_ios/src/Sources/NSString+MaterialBidi.h"
diff --git a/ios/web/navigation/wk_navigation_util_unittest.mm b/ios/web/navigation/wk_navigation_util_unittest.mm
index 7671fda6..62bdd2d 100644
--- a/ios/web/navigation/wk_navigation_util_unittest.mm
+++ b/ios/web/navigation/wk_navigation_util_unittest.mm
@@ -80,7 +80,8 @@
 
   // Extract session JSON from restoration URL.
   NSString* fragment = net::NSURLWithGURL(restore_session_url).fragment;
-  NSString* encoded_session = [fragment substringFromIndex:strlen("session=")];
+  NSString* encoded_session =
+      [fragment substringFromIndex:strlen(kRestoreSessionSessionHashPrefix)];
   std::string session_json = net::UnescapeURLComponent(
       base::SysNSStringToUTF8(encoded_session),
       net::UnescapeRule::URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS);
diff --git a/ios/web/web_state/ui/crw_web_controller_unittest.mm b/ios/web/web_state/ui/crw_web_controller_unittest.mm
index 7713efa..492ab03 100644
--- a/ios/web/web_state/ui/crw_web_controller_unittest.mm
+++ b/ios/web/web_state/ui/crw_web_controller_unittest.mm
@@ -804,10 +804,12 @@
 
 // Tests |currentURLWithTrustLevel:| method.
 TEST_P(CRWWebControllerTest, CurrentUrlWithTrustLevel) {
-  AddPendingItem(GURL("http://chromium.test"), ui::PAGE_TRANSITION_TYPED);
+  GURL url("http://chromium.test");
+  AddPendingItem(url, ui::PAGE_TRANSITION_TYPED);
 
   [[[mock_web_view_ stub] andReturnBool:NO] hasOnlySecureContent];
   [static_cast<WKWebView*>([[mock_web_view_ stub] andReturn:@""]) title];
+  SetWebViewURL(@"http://chromium.test");
 
   // Stub out the injection process.
   [[mock_web_view_ stub] evaluateJavaScript:OCMOCK_ANY
@@ -820,9 +822,7 @@
   [navigation_delegate_ webView:mock_web_view_ didCommitNavigation:nil];
 
   URLVerificationTrustLevel trust_level = kNone;
-  GURL url = [web_controller() currentURLWithTrustLevel:&trust_level];
-
-  EXPECT_EQ(GURL(kTestURLString), url);
+  EXPECT_EQ(url, [web_controller() currentURLWithTrustLevel:&trust_level]);
   EXPECT_EQ(kAbsolute, trust_level);
 }
 
diff --git a/ios/web_view/internal/signin/ios_web_view_signin_client.h b/ios/web_view/internal/signin/ios_web_view_signin_client.h
index 626cfcf..d7db2c1 100644
--- a/ios/web_view/internal/signin/ios_web_view_signin_client.h
+++ b/ios/web_view/internal/signin/ios_web_view_signin_client.h
@@ -14,7 +14,6 @@
 #include "components/signin/core/browser/signin_error_controller.h"
 #include "components/signin/ios/browser/wait_for_network_callback_helper.h"
 #include "net/cookies/cookie_change_dispatcher.h"
-#include "net/url_request/url_request_context_getter.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 
 // iOS WebView specific signin client.
@@ -23,7 +22,6 @@
  public:
   IOSWebViewSigninClient(
       PrefService* pref_service,
-      net::URLRequestContextGetter* url_request_context,
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
       network::mojom::CookieManager* cookie_manager,
       SigninErrorController* signin_error_controller,
@@ -39,7 +37,6 @@
   std::string GetProductVersion() override;
   base::Time GetInstallDate() override;
   PrefService* GetPrefs() override;
-  net::URLRequestContextGetter* GetURLRequestContext() override;
   scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override;
   network::mojom::CookieManager* GetCookieManager() override;
   void DoFinalInit() override;
@@ -65,8 +62,6 @@
   std::unique_ptr<WaitForNetworkCallbackHelper> network_callback_helper_;
   // The PrefService associated with this service.
   PrefService* pref_service_;
-  // The URLRequestContext associated with this service.
-  net::URLRequestContextGetter* url_request_context_;
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
   network::mojom::CookieManager* cookie_manager_;
   // Used to check for errors related to signing in.
diff --git a/ios/web_view/internal/signin/ios_web_view_signin_client.mm b/ios/web_view/internal/signin/ios_web_view_signin_client.mm
index 5cb1a80..b2101e65 100644
--- a/ios/web_view/internal/signin/ios_web_view_signin_client.mm
+++ b/ios/web_view/internal/signin/ios_web_view_signin_client.mm
@@ -15,7 +15,6 @@
 
 IOSWebViewSigninClient::IOSWebViewSigninClient(
     PrefService* pref_service,
-    net::URLRequestContextGetter* url_request_context,
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
     network::mojom::CookieManager* cookie_manager,
     SigninErrorController* signin_error_controller,
@@ -24,7 +23,6 @@
     : network_callback_helper_(
           std::make_unique<WaitForNetworkCallbackHelper>()),
       pref_service_(pref_service),
-      url_request_context_(url_request_context),
       url_loader_factory_(url_loader_factory),
       cookie_manager_(cookie_manager),
       signin_error_controller_(signin_error_controller),
@@ -57,10 +55,6 @@
   return pref_service_;
 }
 
-net::URLRequestContextGetter* IOSWebViewSigninClient::GetURLRequestContext() {
-  return url_request_context_;
-}
-
 scoped_refptr<network::SharedURLLoaderFactory>
 IOSWebViewSigninClient::GetURLLoaderFactory() {
   return url_loader_factory_;
diff --git a/ios/web_view/internal/signin/web_view_signin_client_factory.mm b/ios/web_view/internal/signin/web_view_signin_client_factory.mm
index dd53ded..e2355b1f 100644
--- a/ios/web_view/internal/signin/web_view_signin_client_factory.mm
+++ b/ios/web_view/internal/signin/web_view_signin_client_factory.mm
@@ -47,8 +47,7 @@
   WebViewBrowserState* browser_state =
       WebViewBrowserState::FromBrowserState(context);
   return std::make_unique<IOSWebViewSigninClient>(
-      browser_state->GetPrefs(), browser_state->GetRequestContext(),
-      browser_state->GetSharedURLLoaderFactory(),
+      browser_state->GetPrefs(), browser_state->GetSharedURLLoaderFactory(),
       browser_state->GetCookieManager(),
       WebViewSigninErrorControllerFactory::GetForBrowserState(browser_state),
       WebViewCookieSettingsFactory::GetForBrowserState(browser_state),
diff --git a/ios/web_view/internal/sync/web_view_gcm_profile_service_factory.mm b/ios/web_view/internal/sync/web_view_gcm_profile_service_factory.mm
index 27134ab5..6f908c35 100644
--- a/ios/web_view/internal/sync/web_view_gcm_profile_service_factory.mm
+++ b/ios/web_view/internal/sync/web_view_gcm_profile_service_factory.mm
@@ -92,7 +92,6 @@
       WebViewBrowserState::FromBrowserState(context);
   return std::make_unique<gcm::GCMProfileService>(
       browser_state->GetPrefs(), browser_state->GetStatePath(),
-      browser_state->GetRequestContext(),
       base::BindRepeating(&RequestProxyResolvingSocketFactory, context),
       browser_state->GetSharedURLLoaderFactory(),
       version_info::Channel::UNKNOWN, GetProductCategoryForSubtypes(),
diff --git a/media/audio/audio_input_controller.cc b/media/audio/audio_input_controller.cc
index 1f0f81f1..c062698 100644
--- a/media/audio/audio_input_controller.cc
+++ b/media/audio/audio_input_controller.cc
@@ -208,10 +208,9 @@
   DCHECK(audio_manager);
   DCHECK(sync_writer);
   DCHECK(event_handler);
+  DCHECK(params.IsValid());
 
-  // TODO(https://crbug.com/803102): remove check after switching to input
-  // stream factory.
-  if (!params.IsValid() || (params.channels() > kMaxInputChannels))
+  if (params.channels() > kMaxInputChannels)
     return nullptr;
 
   if (factory_) {
diff --git a/media/audio/audio_input_controller_unittest.cc b/media/audio/audio_input_controller_unittest.cc
index cec4dda0..d01713f 100644
--- a/media/audio/audio_input_controller_unittest.cc
+++ b/media/audio/audio_input_controller_unittest.cc
@@ -196,17 +196,6 @@
   CloseAudioController();
 }
 
-// Test that AudioInputController rejects insanely large packet sizes.
-TEST_P(AudioInputControllerTest, SamplesPerPacketTooLarge) {
-  // Create an audio device with a very large packet size.
-  params_.set_frames_per_buffer(kSamplesPerPacket * 1000);
-
-  // OnCreated() shall not be called in this test.
-  EXPECT_CALL(event_handler_, OnCreated(_)).Times(Exactly(0));
-  CreateAudioController();
-  ASSERT_FALSE(controller_.get());
-}
-
 TEST_P(AudioInputControllerTest, CloseTwice) {
   EXPECT_CALL(event_handler_, OnCreated(_));
   CreateAudioController();
diff --git a/media/audio/audio_manager_base.cc b/media/audio/audio_manager_base.cc
index 1affb14..bf77eef9 100644
--- a/media/audio/audio_manager_base.cc
+++ b/media/audio/audio_manager_base.cc
@@ -180,17 +180,13 @@
     const std::string& device_id,
     const LogCallback& log_callback) {
   CHECK(GetTaskRunner()->BelongsToCurrentThread());
+  DCHECK(params.IsValid());
 
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
           switches::kFailAudioStreamCreation)) {
     return nullptr;
   }
 
-  if (!params.IsValid()) {
-    DLOG(ERROR) << "Audio parameters are invalid";
-    return nullptr;
-  }
-
   // Limit the number of audio streams opened. This is to prevent using
   // excessive resources for a large number of audio streams. More
   // importantly it prevents instability on certain systems.
diff --git a/media/cast/test/utility/standalone_cast_environment.cc b/media/cast/test/utility/standalone_cast_environment.cc
index 0847935..88d166f0 100644
--- a/media/cast/test/utility/standalone_cast_environment.cc
+++ b/media/cast/test/utility/standalone_cast_environment.cc
@@ -38,8 +38,7 @@
 void StandaloneCastEnvironment::Shutdown() {
   CHECK(CalledOnValidThread());
 
-  base::ThreadRestrictions::ScopedAllowIO
-      because_i_brought_you_into_this_world_and_i_am_gonna_take_you_out;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   main_thread_.Stop();
   audio_thread_.Stop();
   video_thread_.Stop();
diff --git a/media/formats/mp4/box_definitions.cc b/media/formats/mp4/box_definitions.cc
index 708d26d..f3761045 100644
--- a/media/formats/mp4/box_definitions.cc
+++ b/media/formats/mp4/box_definitions.cc
@@ -703,75 +703,64 @@
   return FOURCC_AV1C;
 }
 
+// Parse the AV1CodecConfigurationRecord, which has the following format:
+// unsigned int (1) marker = 1;
+// unsigned int (7) version = 1;
+// unsigned int (3) seq_profile;
+// unsigned int (5) seq_level_idx_0;
+// unsigned int (1) seq_tier_0;
+// unsigned int (1) high_bitdepth;
+// unsigned int (1) twelve_bit;
+// unsigned int (1) monochrome;
+// unsigned int (1) chroma_subsampling_x;
+// unsigned int (1) chroma_subsampling_y;
+// unsigned int (2) chroma_sample_position;
+// unsigned int (3) reserved = 0;
+//
+// unsigned int (1) initial_presentation_delay_present;
+// if (initial_presentation_delay_present) {
+//   unsigned int (4) initial_presentation_delay_minus_one;
+// } else {
+//   unsigned int (4) reserved = 0;
+// }
+//
+// unsigned int (8)[] configOBUs;
 bool AV1CodecConfigurationRecord::Parse(BoxReader* reader) {
-  RCHECK(reader->ReadFullBoxHeader());
-
-  // Skip over unused parts of the configuration record.
-  RCHECK(reader->SkipBytes(1));
-
-  // We need to scan through the OBUs to find the profile.
-  while (profile == VIDEO_CODEC_PROFILE_UNKNOWN) {
-    // Zero or more OBUs are allowed, when none are present assume main profile.
-    if (!reader->HasBytes(1)) {
-      DVLOG(2) << "No OBU_SEQUENCE_HEADER is present, assuming main profile.";
-      profile = AV1PROFILE_PROFILE_MAIN;
-      return true;
-    }
-
-    uint8_t obu_header;
-    RCHECK(reader->Read1(&obu_header));
-
-    // Skip over the extension header if needed.
-    if (obu_header & 0b100 /* obu_extension_flag */)
-      RCHECK(reader->SkipBytes(1));
-
-    // Low overhead bitstream OBUs, when contained within configOBUs, are
-    // required to have a size field.
-    DCHECK(obu_header & 0b10 /* obu_has_size_field */);
-
-    // Read the size out in LEB128 format. Per spec this must always fit in a
-    // uint32_t, but since the max shift below is 49 (7*7), use a uint64_t to
-    // avoid any undefined behavior.
-    uint64_t obu_size = 0u;
-    for (int i = 0; i < 8; ++i) {
-      uint8_t leb128_byte;
-      RCHECK(reader->Read1(&leb128_byte));
-      obu_size |= static_cast<uint64_t>(leb128_byte & 0x7f) << (i * 7);
-      if (!(leb128_byte & 0x80))
-        break;
-    }
-    RCHECK(reader->HasBytes(obu_size));
-
-    // Clear out everything except for the obu_type.
-    const uint8_t obu_type = (obu_header >> 3) & 0b1111;
-
-    // We only want to look at OBUs of type OBU_SEQUENCE_HEADER.
-    if (obu_type != 1 /* OBU_SEQUENCE_HEADER */) {
-      RCHECK(reader->SkipBytes(obu_size));
-      continue;
-    }
-
-    // Read enough of the sequence header to parse |seq_profile|.
-    uint8_t sequence_header;
-    RCHECK(reader->Read1(&sequence_header));
-
-    const uint8_t seq_profile = sequence_header >> 5;
-    switch (seq_profile) {
-      case 0:
-        profile = AV1PROFILE_PROFILE_MAIN;
-        break;
-      case 1:
-        profile = AV1PROFILE_PROFILE_HIGH;
-        break;
-      case 2:
-        profile = AV1PROFILE_PROFILE_PRO;
-        break;
-      default:
-        MEDIA_LOG(ERROR, reader->media_log())
-            << "Unsupported AV1 profile: 0x" << std::hex << seq_profile;
-        return false;
-    }
+  uint8_t av1c_byte = 0;
+  RCHECK(reader->Read1(&av1c_byte));
+  const uint8_t av1c_marker =  av1c_byte >> 7;
+  if (!av1c_marker) {
+    MEDIA_LOG(ERROR, reader->media_log()) << "Unsupported av1C: marker unset.";
+    return false;
   }
+
+  const uint8_t av1c_version = av1c_byte & 0b01111111;
+  if (av1c_version != 1) {
+    MEDIA_LOG(ERROR, reader->media_log())
+        << "Unsupported av1C: unexpected version number: " << av1c_version;
+    return false;
+  }
+
+  RCHECK(reader->Read1(&av1c_byte));
+  const uint8_t seq_profile = av1c_byte >> 5;
+  switch (seq_profile) {
+    case 0:
+      profile = AV1PROFILE_PROFILE_MAIN;
+      break;
+    case 1:
+      profile = AV1PROFILE_PROFILE_HIGH;
+      break;
+    case 2:
+      profile = AV1PROFILE_PROFILE_PRO;
+      break;
+    default:
+      MEDIA_LOG(ERROR, reader->media_log())
+          << "Unsupported av1C: unknown profile 0x" << std::hex << seq_profile;
+      return false;
+  }
+
+  // The remaining fields are ignored since we don't care about them yet.
+
   return true;
 }
 #endif  // BUILDFLAG(ENABLE_AV1_DECODER)
diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
index e41cbd3..939daa0 100644
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
@@ -11,6 +11,7 @@
 #include <va/va.h>
 
 #include "base/bind.h"
+#include "base/cpu.h"
 #include "base/files/scoped_file.h"
 #include "base/logging.h"
 #include "base/macros.h"
@@ -71,6 +72,17 @@
 }
 #endif
 
+// Returns true if the CPU is an Intel Kaby Lake or later.
+bool IsKabyLakeOrLater() {
+  constexpr int kPentiumAndLaterFamily = 0x06;
+  constexpr int kFirstKabyLakeModelId = 0x8E;
+  static base::CPU cpuid;
+  static bool is_kaby_lake_or_later =
+      cpuid.family() == kPentiumAndLaterFamily &&
+      cpuid.model() >= kFirstKabyLakeModelId;
+  return is_kaby_lake_or_later;
+}
+
 }  // namespace
 
 #define RETURN_AND_NOTIFY_ON_FAILURE(result, log, error_code, ret) \
@@ -135,6 +147,7 @@
       input_ready_(&lock_),
       vaapi_picture_factory_(new VaapiPictureFactory()),
       surfaces_available_(&lock_),
+      decode_using_client_picture_buffers_(false),
       task_runner_(base::ThreadTaskRunnerHandle::Get()),
       decoder_thread_("VaapiDecoderThread"),
       num_frames_at_client_(0),
@@ -209,15 +222,36 @@
 void VaapiVideoDecodeAccelerator::OutputPicture(
     const scoped_refptr<VASurface>& va_surface,
     int32_t input_id,
-    gfx::Rect visible_rect,
-    VaapiPicture* picture) {
+    gfx::Rect visible_rect) {
   DCHECK(task_runner_->BelongsToCurrentThread());
 
-  int32_t output_id = picture->picture_buffer_id();
+  const VASurfaceID va_surface_id = va_surface->id();
+
+  VaapiPicture* picture = nullptr;
+  {
+    base::AutoLock auto_lock(lock_);
+    int32_t picture_buffer_id = available_picture_buffers_.front();
+    if (decode_using_client_picture_buffers_) {
+      // Find the |pictures_| entry matching |va_surface_id|.
+      for (const auto& id_and_picture : pictures_) {
+        if (id_and_picture.second->va_surface_id() == va_surface_id) {
+          picture_buffer_id = id_and_picture.first;
+          break;
+        }
+      }
+    }
+    picture = pictures_[picture_buffer_id].get();
+    DCHECK(base::ContainsValue(available_picture_buffers_, picture_buffer_id));
+    base::Erase(available_picture_buffers_, picture_buffer_id);
+  }
+
+  DCHECK(picture) << " could not find " << va_surface_id << " available";
+  const int32_t output_id = picture->picture_buffer_id();
 
   DVLOGF(4) << "Outputting VASurface " << va_surface->id()
             << " into pixmap bound to picture buffer id " << output_id;
-  {
+
+  if (!decode_using_client_picture_buffers_) {
     TRACE_EVENT2("media,gpu", "VAVDA::DownloadFromSurface", "input_id",
                  input_id, "output_id", output_id);
     RETURN_AND_NOTIFY_ON_FAILURE(picture->DownloadFromSurface(va_surface),
@@ -237,24 +271,19 @@
   }
 }
 
-void VaapiVideoDecodeAccelerator::TryOutputSurface() {
+void VaapiVideoDecodeAccelerator::TryOutputPicture() {
   DCHECK(task_runner_->BelongsToCurrentThread());
 
   // Handle Destroy() arriving while pictures are queued for output.
   if (!client_)
     return;
 
-  if (pending_output_cbs_.empty() || output_buffers_.empty())
+  if (pending_output_cbs_.empty() || available_picture_buffers_.empty())
     return;
 
-  OutputCB output_cb = std::move(pending_output_cbs_.front());
+  auto output_cb = std::move(pending_output_cbs_.front());
   pending_output_cbs_.pop();
-
-  DCHECK(base::ContainsKey(pictures_, output_buffers_.front()));
-  VaapiPicture* picture = pictures_[output_buffers_.front()].get();
-  output_buffers_.pop();
-
-  output_cb.Run(picture);
+  std::move(output_cb).Run();
 
   if (finish_flush_pending_ && pending_output_cbs_.empty())
     FinishFlush();
@@ -550,6 +579,8 @@
 
   available_va_surfaces_.push_back(va_surface_id);
   surfaces_available_.Signal();
+
+  TryOutputPicture();
 }
 
 void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
@@ -558,8 +589,7 @@
   base::AutoLock auto_lock(lock_);
   DCHECK(pictures_.empty());
 
-  while (!output_buffers_.empty())
-    output_buffers_.pop();
+  available_picture_buffers_.clear();
 
   RETURN_AND_NOTIFY_ON_FAILURE(
       buffers.size() >= requested_num_pics_,
@@ -569,11 +599,6 @@
 
   const unsigned int va_format = GetVaFormatForVideoCodecProfile(profile_);
   std::vector<VASurfaceID> va_surface_ids;
-  RETURN_AND_NOTIFY_ON_FAILURE(
-      vaapi_wrapper_->CreateSurfaces(va_format, requested_pic_size_,
-                                     buffers.size(), &va_surface_ids),
-      "Failed creating VA Surfaces", PLATFORM_FAILURE, );
-  DCHECK_EQ(va_surface_ids.size(), buffers.size());
 
   for (size_t i = 0; i < buffers.size(); ++i) {
     DCHECK(requested_pic_size_ == buffers[i].size());
@@ -587,16 +612,42 @@
       RETURN_AND_NOTIFY_ON_FAILURE(
           picture->Allocate(vaapi_picture_factory_->GetBufferFormat()),
           "Failed to allocate memory for a VaapiPicture", PLATFORM_FAILURE, );
-      output_buffers_.push(buffers[i].id());
+      available_picture_buffers_.push_back(buffers[i].id());
+
+      VASurfaceID va_surface_id = picture->va_surface_id();
+      if (va_surface_id != VA_INVALID_ID)
+        va_surface_ids.push_back(va_surface_id);
     }
 
     DCHECK(!base::ContainsKey(pictures_, buffers[i].id()));
     pictures_[buffers[i].id()] = std::move(picture);
 
-    available_va_surfaces_.push_back(va_surface_ids[i]);
     surfaces_available_.Signal();
   }
 
+  decode_using_client_picture_buffers_ = !va_surface_ids.empty() &&
+                                         IsKabyLakeOrLater() &&
+                                         profile_ == VP9PROFILE_PROFILE0;
+
+  // If we have some |va_surface_ids|, use them for decode, otherwise ask
+  // |vaapi_wrapper_| to allocate them for us.
+  if (decode_using_client_picture_buffers_) {
+    RETURN_AND_NOTIFY_ON_FAILURE(
+        vaapi_wrapper_->CreateContext(va_format, requested_pic_size_,
+                                      va_surface_ids),
+        "Failed creating VA Context", PLATFORM_FAILURE, );
+  } else {
+    va_surface_ids.clear();
+    RETURN_AND_NOTIFY_ON_FAILURE(
+        vaapi_wrapper_->CreateSurfaces(va_format, requested_pic_size_,
+                                       buffers.size(), &va_surface_ids),
+        "Failed creating VA Surfaces", PLATFORM_FAILURE, );
+  }
+  DCHECK_EQ(va_surface_ids.size(), buffers.size());
+
+  for (const auto id : va_surface_ids)
+    available_va_surfaces_.push_back(id);
+
   // Resume DecodeTask if it is still in decoding state.
   if (state_ == kDecoding) {
     decoder_thread_task_runner_->PostTask(
@@ -667,8 +718,11 @@
   --num_frames_at_client_;
   TRACE_COUNTER1("media,gpu", "Vaapi frames at client", num_frames_at_client_);
 
-  output_buffers_.push(picture_buffer_id);
-  TryOutputSurface();
+  {
+    base::AutoLock auto_lock(lock_);
+    available_picture_buffers_.push_back(picture_buffer_id);
+  }
+  TryOutputPicture();
 }
 
 void VaapiVideoDecodeAccelerator::FlushTask() {
@@ -884,7 +938,7 @@
       base::Bind(&VaapiVideoDecodeAccelerator::OutputPicture, weak_this_,
                  va_surface, bitstream_id, visible_rect));
 
-  TryOutputSurface();
+  TryOutputPicture();
 }
 
 scoped_refptr<VASurface> VaapiVideoDecodeAccelerator::CreateVASurface() {
@@ -895,12 +949,32 @@
     return nullptr;
 
   DCHECK(!awaiting_va_surfaces_recycle_);
-  scoped_refptr<VASurface> va_surface(new VASurface(
-      available_va_surfaces_.front(), requested_pic_size_,
-      vaapi_wrapper_->va_surface_format(), va_surface_release_cb_));
-  available_va_surfaces_.pop_front();
+  if (!decode_using_client_picture_buffers_) {
+    const VASurfaceID id = available_va_surfaces_.front();
+    available_va_surfaces_.pop_front();
+    return new VASurface(id, requested_pic_size_,
+                         vaapi_wrapper_->va_surface_format(),
+                         va_surface_release_cb_);
+  }
 
-  return va_surface;
+  // Find the first |available_va_surfaces_| id such that the associated
+  // |pictures_| entry is marked as |available_picture_buffers_|. In practice,
+  // we will quickly find an available |va_surface_id|.
+  for (const VASurfaceID va_surface_id : available_va_surfaces_) {
+    for (const auto& id_and_picture : pictures_) {
+      if (id_and_picture.second->va_surface_id() == va_surface_id &&
+          base::ContainsValue(available_picture_buffers_,
+                              id_and_picture.first)) {
+        // Remove |va_surface_id| from the list of availables, and use the id
+        // to return a new VASurface.
+        base::Erase(available_va_surfaces_, va_surface_id);
+        return new VASurface(va_surface_id, requested_pic_size_,
+                             vaapi_wrapper_->va_surface_format(),
+                             va_surface_release_cb_);
+      }
+    }
+  }
+  return nullptr;
 }
 
 // static
diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.h b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
index 4c5ccf0..3c1358143 100644
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
@@ -159,18 +159,16 @@
   // or return false on failure.
   bool InitializeFBConfig();
 
-  // Callback to be executed once we have a |va_surface| to be output and
-  // an available |picture| to use for output.
-  // Puts contents of |va_surface| into given |picture|, releases the surface
-  // and passes the resulting picture to client to output the given
-  // |visible_rect| part of it.
+  // Callback to be executed once we have a |va_surface| to be output and an
+  // available VaapiPicture in |available_picture_buffers_| for output. Puts
+  // contents of |va_surface| into the latter, releases the surface and passes
+  // the resulting picture to |client_| along with |visible_rect|.
   void OutputPicture(const scoped_refptr<VASurface>& va_surface,
                      int32_t input_id,
-                     gfx::Rect visible_rect,
-                     VaapiPicture* picture);
+                     gfx::Rect visible_rect);
 
   // Try to OutputPicture() if we have both a ready surface and picture.
-  void TryOutputSurface();
+  void TryOutputPicture();
 
   // Called when a VASurface is no longer in use by the decoder or is not being
   // synced/waiting to be synced to a picture. Returns it to available surfaces
@@ -198,12 +196,13 @@
     kDestroying,
   };
 
-  // Protects input buffer and surface queues and state_.
+  // |lock_| protects |input_buffers_|, |curr_input_buffer_|, |state_| and
+  // |available_picture_buffers_|.
   base::Lock lock_;
   State state_;
   Config::OutputMode output_mode_;
 
-  // Queue of available InputBuffers (picture_buffer_ids).
+  // Queue of available InputBuffers.
   base::queue<std::unique_ptr<InputBuffer>> input_buffers_;
   // Signalled when input buffers are queued onto |input_buffers_| queue.
   base::ConditionVariable input_ready_;
@@ -211,9 +210,9 @@
   // Current input buffer at decoder.
   std::unique_ptr<InputBuffer> curr_input_buffer_;
 
-  // Queue for incoming output buffers (texture ids).
-  using OutputBuffers = base::queue<int32_t>;
-  OutputBuffers output_buffers_;
+  // List of PictureBuffer ids available to be sent to |client_| via
+  // OutputPicture() (|client_| returns them via ReusePictureBuffer()).
+  std::list<int32_t> available_picture_buffers_;
 
   std::unique_ptr<VaapiPictureFactory> vaapi_picture_factory_;
 
@@ -227,11 +226,10 @@
   // pictures are destroyed before this is destroyed.
   base::small_map<std::map<int32_t, std::unique_ptr<VaapiPicture>>> pictures_;
 
-  // VA Surfaces no longer in use that can be passed back to the decoder for
+  // VASurfaceIDs no longer in use that can be passed back to |decoder_| for
   // reuse, once it requests them.
   std::list<VASurfaceID> available_va_surfaces_;
-  // Signalled when output surfaces are queued onto the available_va_surfaces_
-  // queue.
+  // Signalled when output surfaces are queued into |available_va_surfaces_|.
   base::ConditionVariable surfaces_available_;
 
   // Pending output requests from the decoder. When it indicates that we should
@@ -240,11 +238,13 @@
   // will put the contents of the surface into the picture and return it to
   // the client, releasing the surface as well.
   // If we don't have any available |pictures_| at the time when the decoder
-  // requests output, we'll store the request on pending_output_cbs_ queue for
-  // later and run it once the client gives us more textures
-  // via ReusePictureBuffer().
-  using OutputCB = base::Callback<void(VaapiPicture*)>;
-  base::queue<OutputCB> pending_output_cbs_;
+  // requests output, we'll store the request in this queue for later and run it
+  // once the client gives us more textures via ReusePictureBuffer().
+  base::queue<base::OnceClosure> pending_output_cbs_;
+
+  // Under some circumstances, we can pass to libva our own VASurfaceIDs to
+  // decode onto, which skips one copy.
+  bool decode_using_client_picture_buffers_;
 
   // ChildThread's task runner.
   const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
index 76907a6..820c106 100644
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
@@ -233,7 +233,6 @@
     ASSERT_TRUE(vda_.curr_input_buffer_)
         << "QueueInputBuffer() should have been called";
 
-    ::testing::InSequence s;
     base::RunLoop run_loop;
     base::Closure quit_closure = run_loop.QuitClosure();
 
@@ -249,6 +248,7 @@
                 MockCreateVaapiPicture(mock_vaapi_wrapper_.get(), picture_size))
         .Times(num_pictures);
 
+    ::testing::InSequence s;
     EXPECT_CALL(*mock_decoder_, Decode())
         .WillOnce(Return(AcceleratedVideoDecoder::kRanOutOfStreamData));
     EXPECT_CALL(*this, NotifyEndOfBitstreamBuffer(bitstream_id))
diff --git a/media/test/data/bear-av1.mp4 b/media/test/data/bear-av1.mp4
index adadb38..c45c1202 100644
--- a/media/test/data/bear-av1.mp4
+++ b/media/test/data/bear-av1.mp4
Binary files differ
diff --git a/media/test/pipeline_integration_test.cc b/media/test/pipeline_integration_test.cc
index 5d1fcb91..c0f2a0a 100644
--- a/media/test/pipeline_integration_test.cc
+++ b/media/test/pipeline_integration_test.cc
@@ -1760,7 +1760,7 @@
 TEST_P(MSEPipelineIntegrationTest, BasicPlayback_AV1_MP4) {
   base::test::ScopedFeatureList scoped_feature_list_;
   scoped_feature_list_.InitAndEnableFeature(kAv1Decoder);
-  MockMediaSource source("bear-av1.mp4", kMP4AV1, 24723);
+  MockMediaSource source("bear-av1.mp4", kMP4AV1, 24355);
   EXPECT_EQ(PIPELINE_OK, StartPipelineWithMediaSource(&source));
   source.EndOfStream();
 
diff --git a/media/video/gpu_memory_buffer_video_frame_pool.cc b/media/video/gpu_memory_buffer_video_frame_pool.cc
index 8b04a0c..4abce4d 100644
--- a/media/video/gpu_memory_buffer_video_frame_pool.cc
+++ b/media/video/gpu_memory_buffer_video_frame_pool.cc
@@ -623,8 +623,13 @@
   // Lazily initialize |output_format_| since VideoFrameOutputFormat() has to be
   // called on the media_thread while this object might be instantiated on any.
   const VideoPixelFormat pixel_format = video_frame->format();
-  if (output_format_ == GpuVideoAcceleratorFactories::OutputFormat::UNDEFINED) {
+  if (output_format_ == GpuVideoAcceleratorFactories::OutputFormat::UNDEFINED)
     output_format_ = gpu_factories_->VideoFrameOutputFormat(pixel_format);
+  // Bail if we have a change of GpuVideoAcceleratorFactories::OutputFormat;
+  // such changes should not happen in general (see https://crbug.com/875158).
+  if (output_format_ != gpu_factories_->VideoFrameOutputFormat(pixel_format)) {
+    std::move(frame_ready_cb).Run(video_frame);
+    return;
   }
 
   bool is_software_backed_video_frame = !video_frame->HasTextures();
diff --git a/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc b/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
index 05b823a..7cc9c5e 100644
--- a/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
+++ b/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
@@ -681,4 +681,35 @@
   ASSERT_FALSE(frame_2);
 }
 
+// Tests that an I420 VideoFrame after an I420A is ignored, i.e. passed through.
+// See e.g. https://crbug.com/875158.
+TEST_F(GpuMemoryBufferVideoFramePoolTest, VideoFrameChangesPixelFormat) {
+  scoped_refptr<VideoFrame> software_frame_1 = CreateTestYUVAVideoFrame(10);
+  scoped_refptr<VideoFrame> frame_1;
+  mock_gpu_factories_->SetVideoFrameOutputFormat(
+      media::GpuVideoAcceleratorFactories::OutputFormat::RGBA);
+  gpu_memory_buffer_pool_->MaybeCreateHardwareFrame(
+      software_frame_1,
+      base::BindOnce(MaybeCreateHardwareFrameCallback, &frame_1));
+  RunUntilIdle();
+
+  EXPECT_NE(software_frame_1.get(), frame_1.get());
+  EXPECT_EQ(PIXEL_FORMAT_RGB32, frame_1->format());
+  EXPECT_EQ(1u, frame_1->NumTextures());
+  EXPECT_EQ(1u, gles2_->gen_textures_count());
+  EXPECT_TRUE(frame_1->metadata()->IsTrue(
+      media::VideoFrameMetadata::READ_LOCK_FENCES_ENABLED));
+
+  scoped_refptr<VideoFrame> software_frame_2 = CreateTestYUVVideoFrame(10);
+  mock_gpu_factories_->SetVideoFrameOutputFormat(
+      media::GpuVideoAcceleratorFactories::OutputFormat::I420);
+  scoped_refptr<VideoFrame> frame_2;
+  gpu_memory_buffer_pool_->MaybeCreateHardwareFrame(
+      software_frame_2,
+      base::BindOnce(MaybeCreateHardwareFrameCallback, &frame_2));
+  RunUntilIdle();
+
+  EXPECT_EQ(software_frame_2.get(), frame_2.get());
+}
+
 }  // namespace media
diff --git a/net/disk_cache/simple/simple_backend_impl.cc b/net/disk_cache/simple/simple_backend_impl.cc
index 9d4bd61..709ae5af 100644
--- a/net/disk_cache/simple/simple_backend_impl.cc
+++ b/net/disk_cache/simple/simple_backend_impl.cc
@@ -263,11 +263,10 @@
 }
 
 int SimpleBackendImpl::Init(CompletionOnceCallback completion_callback) {
-  auto worker_pool =
-      base::TaskScheduler::GetInstance()->CreateTaskRunnerWithTraits(
-          {base::MayBlock(), base::WithBaseSyncPrimitives(),
-           base::TaskPriority::USER_BLOCKING,
-           base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN});
+  auto worker_pool = base::CreateTaskRunnerWithTraits(
+      {base::MayBlock(), base::WithBaseSyncPrimitives(),
+       base::TaskPriority::USER_BLOCKING,
+       base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN});
 
   prioritized_task_runner_ =
       base::MakeRefCounted<net::PrioritizedTaskRunner>(worker_pool);
diff --git a/net/dns/host_resolver.cc b/net/dns/host_resolver.cc
index 106cf2c..9211661 100644
--- a/net/dns/host_resolver.cc
+++ b/net/dns/host_resolver.cc
@@ -208,6 +208,19 @@
   return parameters;
 }
 
+// static
+HostResolverFlags HostResolver::ParametersToHostResolverFlags(
+    const ResolveHostParameters& parameters) {
+  HostResolverFlags flags = 0;
+  if (parameters.include_canonical_name) {
+    flags |= HOST_RESOLVER_CANONNAME;
+  }
+  if (parameters.loopback_only) {
+    flags |= HOST_RESOLVER_LOOPBACK_ONLY;
+  }
+  return flags;
+}
+
 HostResolver::HostResolver() = default;
 
 }  // namespace net
diff --git a/net/dns/host_resolver.h b/net/dns/host_resolver.h
index 96191b8..bcbd11a 100644
--- a/net/dns/host_resolver.h
+++ b/net/dns/host_resolver.h
@@ -197,6 +197,16 @@
     // The initial net priority for the host resolution request.
     RequestPriority initial_priority = RequestPriority::DEFAULT_PRIORITY;
 
+    // If |true|, requests that the resolver include AddressList::canonical_name
+    // in the results. If the resolver can do so without significant
+    // performance impact, canonical_name may still be included even if
+    // parameter is set to |false|.
+    bool include_canonical_name = false;
+
+    // Hint to the resolver that resolution is only being requested for loopback
+    // hosts.
+    bool loopback_only = false;
+
     // Set |true| iff the host resolve request is only being made speculatively
     // to fill the cache and the result addresses will not be used. The request
     // will receive special logging/observer treatment, and the result addresses
@@ -348,6 +358,8 @@
   static ResolveHostParameters RequestInfoToResolveHostParameters(
       const RequestInfo& request_info,
       RequestPriority priority);
+  static HostResolverFlags ParametersToHostResolverFlags(
+      const ResolveHostParameters& parameters);
 
  protected:
   HostResolver();
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
index 6328341..2e51608 100644
--- a/net/dns/host_resolver_impl.cc
+++ b/net/dns/host_resolver_impl.cc
@@ -636,10 +636,11 @@
               base::WeakPtr<HostResolverImpl> resolver)
       : source_net_log_(source_net_log),
         request_host_(request_host),
-        host_resolver_flags_(host_resolver_flags),
         allow_cached_response_(allow_cached_response),
         parameters_(optional_parameters ? optional_parameters.value()
                                         : ResolveHostParameters()),
+        host_resolver_flags_(host_resolver_flags |
+                             ParametersToHostResolverFlags(parameters_)),
         priority_(parameters_.initial_priority),
         job_(nullptr),
         resolver_(resolver),
@@ -726,12 +727,12 @@
 
   const HostPortPair& request_host() const { return request_host_; }
 
-  HostResolverFlags host_resolver_flags() const { return host_resolver_flags_; }
-
   bool allow_cached_response() const { return allow_cached_response_; }
 
   const ResolveHostParameters& parameters() const { return parameters_; }
 
+  HostResolverFlags host_resolver_flags() const { return host_resolver_flags_; }
+
   RequestPriority priority() const { return priority_; }
   void set_priority(RequestPriority priority) { priority_ = priority; }
 
@@ -751,9 +752,9 @@
   const NetLogWithSource source_net_log_;
 
   const HostPortPair request_host_;
-  const HostResolverFlags host_resolver_flags_;
   const bool allow_cached_response_;
   const ResolveHostParameters parameters_;
+  const HostResolverFlags host_resolver_flags_;
 
   RequestPriority priority_;
 
diff --git a/net/dns/host_resolver_impl_unittest.cc b/net/dns/host_resolver_impl_unittest.cc
index fc07151..7473caf70 100644
--- a/net/dns/host_resolver_impl_unittest.cc
+++ b/net/dns/host_resolver_impl_unittest.cc
@@ -76,14 +76,17 @@
 class MockHostResolverProc : public HostResolverProc {
  public:
   struct ResolveKey {
-    ResolveKey(const std::string& hostname, AddressFamily address_family)
-        : hostname(hostname), address_family(address_family) {}
+    ResolveKey(const std::string& hostname,
+               AddressFamily address_family,
+               HostResolverFlags flags)
+        : hostname(hostname), address_family(address_family), flags(flags) {}
     bool operator<(const ResolveKey& other) const {
-      return std::tie(address_family, hostname) <
-             std::tie(other.address_family, other.hostname);
+      return std::tie(address_family, hostname, flags) <
+             std::tie(other.address_family, other.hostname, other.flags);
     }
     std::string hostname;
     AddressFamily address_family;
+    HostResolverFlags flags;
   };
 
   typedef std::vector<ResolveKey> CaptureList;
@@ -123,28 +126,35 @@
     slots_available_.Broadcast();
   }
 
-  void AddRule(const std::string& hostname, AddressFamily family,
-               const AddressList& result) {
+  void AddRule(const std::string& hostname,
+               AddressFamily family,
+               const AddressList& result,
+               HostResolverFlags flags = 0) {
     base::AutoLock lock(lock_);
-    rules_[ResolveKey(hostname, family)] = result;
+    rules_[ResolveKey(hostname, family, flags)] = result;
   }
 
-  void AddRule(const std::string& hostname, AddressFamily family,
-               const std::string& ip_list) {
+  void AddRule(const std::string& hostname,
+               AddressFamily family,
+               const std::string& ip_list,
+               HostResolverFlags flags = 0,
+               const std::string& canonical_name = "") {
     AddressList result;
-    int rv = ParseAddressList(ip_list, std::string(), &result);
+    int rv = ParseAddressList(ip_list, canonical_name, &result);
     DCHECK_EQ(OK, rv);
-    AddRule(hostname, family, result);
+    AddRule(hostname, family, result, flags);
   }
 
   void AddRuleForAllFamilies(const std::string& hostname,
-                             const std::string& ip_list) {
+                             const std::string& ip_list,
+                             HostResolverFlags flags = 0,
+                             const std::string& canonical_name = "") {
     AddressList result;
-    int rv = ParseAddressList(ip_list, std::string(), &result);
+    int rv = ParseAddressList(ip_list, canonical_name, &result);
     DCHECK_EQ(OK, rv);
-    AddRule(hostname, ADDRESS_FAMILY_UNSPECIFIED, result);
-    AddRule(hostname, ADDRESS_FAMILY_IPV4, result);
-    AddRule(hostname, ADDRESS_FAMILY_IPV6, result);
+    AddRule(hostname, ADDRESS_FAMILY_UNSPECIFIED, result, flags);
+    AddRule(hostname, ADDRESS_FAMILY_IPV4, result, flags);
+    AddRule(hostname, ADDRESS_FAMILY_IPV6, result, flags);
   }
 
   int Resolve(const std::string& hostname,
@@ -153,7 +163,8 @@
               AddressList* addrlist,
               int* os_error) override {
     base::AutoLock lock(lock_);
-    capture_list_.push_back(ResolveKey(hostname, address_family));
+    capture_list_.push_back(
+        ResolveKey(hostname, address_family, host_resolver_flags));
     ++num_requests_waiting_;
     requests_waiting_.Broadcast();
     {
@@ -170,7 +181,7 @@
       DCHECK_EQ(OK, rv);
       return OK;
     }
-    ResolveKey key(hostname, address_family);
+    ResolveKey key(hostname, address_family, host_resolver_flags);
     if (rules_.count(key) == 0)
       return ERR_NAME_NOT_RESOLVED;
     *addrlist = rules_[key];
@@ -2891,6 +2902,46 @@
   EXPECT_TRUE(result_request);
 }
 
+TEST_F(HostResolverImplTest, IncludeCanonicalName) {
+  proc_->AddRuleForAllFamilies("just.testing", "192.168.1.42",
+                               HOST_RESOLVER_CANONNAME, "canon.name");
+  proc_->SignalMultiple(2u);
+
+  HostResolver::ResolveHostParameters parameters;
+  parameters.include_canonical_name = true;
+  ResolveHostResponseHelper response(resolver_->CreateRequest(
+      HostPortPair("just.testing", 80), NetLogWithSource(), parameters));
+  ResolveHostResponseHelper response_no_flag(resolver_->CreateRequest(
+      HostPortPair("just.testing", 80), NetLogWithSource(), base::nullopt));
+
+  EXPECT_THAT(response.result_error(), IsOk());
+  EXPECT_THAT(response.request()->GetAddressResults().value().endpoints(),
+              testing::ElementsAre(CreateExpected("192.168.1.42", 80)));
+  EXPECT_EQ("canon.name",
+            response.request()->GetAddressResults().value().canonical_name());
+
+  EXPECT_THAT(response_no_flag.result_error(), IsError(ERR_NAME_NOT_RESOLVED));
+}
+
+TEST_F(HostResolverImplTest, LoopbackOnly) {
+  proc_->AddRuleForAllFamilies("otherlocal", "127.0.0.1",
+                               HOST_RESOLVER_LOOPBACK_ONLY);
+  proc_->SignalMultiple(2u);
+
+  HostResolver::ResolveHostParameters parameters;
+  parameters.loopback_only = true;
+  ResolveHostResponseHelper response(resolver_->CreateRequest(
+      HostPortPair("otherlocal", 80), NetLogWithSource(), parameters));
+  ResolveHostResponseHelper response_no_flag(resolver_->CreateRequest(
+      HostPortPair("otherlocal", 80), NetLogWithSource(), base::nullopt));
+
+  EXPECT_THAT(response.result_error(), IsOk());
+  EXPECT_THAT(response.request()->GetAddressResults().value().endpoints(),
+              testing::ElementsAre(CreateExpected("127.0.0.1", 80)));
+
+  EXPECT_THAT(response_no_flag.result_error(), IsError(ERR_NAME_NOT_RESOLVED));
+}
+
 TEST_F(HostResolverImplTest, IsSpeculative_ResolveHost) {
   proc_->AddRuleForAllFamilies("just.testing", "192.168.1.42");
   proc_->SignalMultiple(1u);
@@ -4462,7 +4513,8 @@
   config.use_local_ipv6 = false;
   ChangeDnsConfig(config);
 
-  proc_->AddRuleForAllFamilies("empty_fallback", "192.168.0.1");
+  proc_->AddRuleForAllFamilies("empty_fallback", "192.168.0.1",
+                               HOST_RESOLVER_DEFAULT_FAMILY_SET_DUE_TO_NO_IPV6);
   proc_->SignalMultiple(1u);
 
   ResolveHostResponseHelper response(resolver_->CreateRequest(
@@ -4849,6 +4901,8 @@
 
   proc_->AddRule("h1", ADDRESS_FAMILY_UNSPECIFIED, "::3");
   proc_->AddRule("h1", ADDRESS_FAMILY_IPV4, "1.0.0.1");
+  proc_->AddRule("h1", ADDRESS_FAMILY_IPV4, "1.0.0.1",
+                 HOST_RESOLVER_DEFAULT_FAMILY_SET_DUE_TO_NO_IPV6);
   proc_->AddRule("h1", ADDRESS_FAMILY_IPV6, "::2");
 
   CreateRequest("h1", 80, MEDIUM, ADDRESS_FAMILY_UNSPECIFIED);
@@ -4936,6 +4990,8 @@
 
   proc_->AddRule("h1", ADDRESS_FAMILY_UNSPECIFIED, "::3");
   proc_->AddRule("h1", ADDRESS_FAMILY_IPV4, "1.0.0.1");
+  proc_->AddRule("h1", ADDRESS_FAMILY_IPV4, "1.0.0.1",
+                 HOST_RESOLVER_DEFAULT_FAMILY_SET_DUE_TO_NO_IPV6);
   proc_->AddRule("h1", ADDRESS_FAMILY_IPV6, "::2");
 
   ResolveHostResponseHelper response(resolver_->CreateRequest(
diff --git a/net/dns/mock_host_resolver.cc b/net/dns/mock_host_resolver.cc
index 35370d1..0a3ba72f0 100644
--- a/net/dns/mock_host_resolver.cc
+++ b/net/dns/mock_host_resolver.cc
@@ -75,10 +75,11 @@
               bool allow_cached_response,
               base::WeakPtr<MockHostResolverBase> resolver)
       : request_host_(request_host),
-        host_resolver_flags_(host_resolver_flags),
         allow_cached_response_(allow_cached_response),
         parameters_(optional_parameters ? optional_parameters.value()
                                         : ResolveHostParameters()),
+        host_resolver_flags_(host_resolver_flags |
+                             ParametersToHostResolverFlags(parameters_)),
         id_(0),
         resolver_(resolver),
         complete_(false) {}
@@ -142,12 +143,12 @@
 
   const HostPortPair& request_host() const { return request_host_; }
 
-  int host_resolver_flags() const { return host_resolver_flags_; }
-
   bool allow_cached_response() const { return allow_cached_response_; }
 
   const ResolveHostParameters& parameters() const { return parameters_; }
 
+  int host_resolver_flags() const { return host_resolver_flags_; }
+
   size_t id() { return id_; }
 
   void set_id(size_t id) {
@@ -161,9 +162,9 @@
 
  private:
   const HostPortPair request_host_;
-  int host_resolver_flags_;
   bool allow_cached_response_;
   const ResolveHostParameters parameters_;
+  int host_resolver_flags_;
 
   base::Optional<AddressList> address_results_;
 
@@ -514,6 +515,17 @@
   AddRuleInternal(rule);
 }
 
+void RuleBasedHostResolverProc::AddRuleWithFlags(
+    const std::string& host_pattern,
+    const std::string& replacement,
+    HostResolverFlags flags,
+    const std::string& canonical_name) {
+  DCHECK(!replacement.empty());
+  Rule rule(Rule::kResolverTypeSystem, host_pattern, ADDRESS_FAMILY_UNSPECIFIED,
+            flags, replacement, canonical_name, 0);
+  AddRuleInternal(rule);
+}
+
 void RuleBasedHostResolverProc::AddIPLiteralRule(
     const std::string& host_pattern,
     const std::string& ip_literal,
diff --git a/net/dns/mock_host_resolver.h b/net/dns/mock_host_resolver.h
index dcfdb176..38b75cf 100644
--- a/net/dns/mock_host_resolver.h
+++ b/net/dns/mock_host_resolver.h
@@ -216,6 +216,11 @@
                                AddressFamily address_family,
                                const std::string& ip_literal);
 
+  void AddRuleWithFlags(const std::string& host_pattern,
+                        const std::string& ip_literal,
+                        HostResolverFlags flags,
+                        const std::string& canonical_name = "");
+
   // Same as AddRule(), but the replacement is expected to be an IPv4 or IPv6
   // literal. This can be used in place of AddRule() to bypass the system's
   // host resolver (the address list will be constructed manually).
diff --git a/net/http/transport_security_state_static.json b/net/http/transport_security_state_static.json
index d0206cca..874ba71d 100644
--- a/net/http/transport_security_state_static.json
+++ b/net/http/transport_security_state_static.json
@@ -1414,7 +1414,6 @@
     { "name": "fixingdns.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "flamer-scene.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "insouciant.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "kaheim.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kevincox.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lingolia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "matatall.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -2108,7 +2107,6 @@
     { "name": "7183.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "8ack.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "9point6.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "altmv.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "andere-gedanken.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "andymartin.cc", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "antipolygraph.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -2150,7 +2148,6 @@
     { "name": "koen.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "koenrouwhorst.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lillpopp.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "linx.li", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lnx.li", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "madeitwor.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mailmag.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -3937,7 +3934,6 @@
     { "name": "33-km.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "42ms.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "abeestrada.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "accountradar.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "adamradocz.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "aladdin.ie", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "alarmsystemreviews.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5153,7 +5149,6 @@
     { "name": "diegelernten.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dmlogic.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dmwall.cn", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "dogan.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dutchrank.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dynamize.solutions", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dzimejl.sk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5592,7 +5587,6 @@
     { "name": "shukatsu-note.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "singul4rity.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "speedtest-russia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "starstreak.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "taxbench.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "temizmama.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "the-gist.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -7426,7 +7420,6 @@
     { "name": "pucssa.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "pupboss.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "pygarage.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "qikan.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "qtpower.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "qualityology.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "quantumfurball.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14758,7 +14751,6 @@
     { "name": "vpn.black", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "vrijgezellen-feest.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "vubey.yt", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "waixingrenfuli.vip", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wakapp.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wallethub.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "walls.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15288,7 +15280,6 @@
     { "name": "do67.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "digitalbank.kz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "do67.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "elastic7.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "duckasylum.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dobrisan.ro", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "drdim.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15495,7 +15486,6 @@
     { "name": "greboid.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "glotter.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "greboid.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "gravity-dev.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hearty.ga", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "greensdictofslang.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "gogoodyear.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15599,7 +15589,6 @@
     { "name": "ir-saitama.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ixquick.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "inspired-lua.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "itspawned.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hotel-kronjuwel.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "imbushuo.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ifsr.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15719,7 +15708,6 @@
     { "name": "kyochon.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kuehnel-bs.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lathamlabs.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "kujadin.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kintzingerfilm.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kennethlim.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kotovstyle.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15764,7 +15752,6 @@
     { "name": "klebetape.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "leblanc.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lenders.direct", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "kany.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "limiteddata.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lim-light.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lirion.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15806,11 +15793,9 @@
     { "name": "lemarcheelagrandeguerra.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "logicaladvertising.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "korea.dating", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "makeyourank.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "malibubeachrecoverycenter.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "loansonline.today", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ludwiggrill.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "maidofhonorcleaning.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "litfin.name", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "logicio.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "loanstreet.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -16961,7 +16946,6 @@
     { "name": "creditclear.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dchest.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dan.org.nz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "compraneta.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "citizenscience.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "corzntin.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dden.website", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -19182,7 +19166,6 @@
     { "name": "jordans.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "keksi.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kerijacoby.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "karmic.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "jiripudil.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "jinancy.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "iteli.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -19987,7 +19970,6 @@
     { "name": "slashand.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "sitecuatui.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "soruly.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "spacebaseapp.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "sozon.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "sostacancun.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "southernmost.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -20760,7 +20742,6 @@
     { "name": "ajetaci.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bassblog.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bestellipticalmachinereview.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "bie.edu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "all4hardware4u.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bjs.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "biopreferred.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -29622,7 +29603,6 @@
     { "name": "fwest98.ovh", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "geh.li", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "fuelingyourdreams.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "gautham.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "espigol.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "g-i-s.vn", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "freifamily.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -33099,7 +33079,6 @@
     { "name": "inkhor.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "innit.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ictl.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "ilmuk.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "inovat.ma", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ilamparas.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "invioinc.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -33362,7 +33341,6 @@
     { "name": "lpacademy.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lojaprimemed.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "malgraph.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "marisamorby.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "makedonien.guide", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "louduniverse.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "marinekaplama.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -40295,7 +40273,6 @@
     { "name": "logophiliapress.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lollaconcept.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lordgun.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "lothlorien.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lovenwishes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lsc.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lucakrebs.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -40933,7 +40910,6 @@
     { "name": "klinkerstreet.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kov.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kurtschlatzer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kxnrl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "l7plumbing.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lacuevadechauvet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lag-gbr.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -41377,7 +41353,6 @@
     { "name": "fburl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ferret.zone", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "find-mba.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "finflix.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fioulmarket.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "flowersbylegacy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fm992.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -41484,7 +41459,6 @@
     { "name": "kaleidoscope.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kansaiyamamoto.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "katalogakci.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "kcore.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "keakon.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "keldan.fo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kevlar.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -41721,7 +41695,6 @@
     { "name": "utahfireinfo.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vagaerg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vagaerg.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "vampyrium.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "varcare.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "velonustraduction.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vendserve.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -42686,7 +42659,6 @@
     { "name": "freelancecollab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "freepnglogos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "frejasdal.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "frosthall.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "frugal-millennial.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fs-community.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fu-li88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -44139,7 +44111,6 @@
     { "name": "elenatranslations.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "elkoy.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "emanueleanastasio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "emedworld.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "engie-laadpalen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "envirotech.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "eppelduerferjugend.lu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -45835,7 +45806,6 @@
     { "name": "coussinsky.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cpd-education.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "craftinghand.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "craigsimpson.scot", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "croeder.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "croncron.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "crownpoint.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47526,7 +47496,6 @@
     { "name": "gaphag.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "garforthgolfclub.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "garten-diy.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "geekseries.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gemeinsam-ideen-verwirklichen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "gisac.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "globelink-group.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47574,7 +47543,6 @@
     { "name": "hxsf.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "hyperautomotive.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "i00.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "iamle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ianjmoriarty.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ianmoriarty.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "icnsoft.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51194,7 +51162,6 @@
     { "name": "dyrstad.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "e15r.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "e6e.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "easykraamzorg.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "easypay.bg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "easyslide.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "easytechsecurity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -55726,7 +55693,6 @@
     { "name": "xn--ehq13kgw4e.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--krpto-lva.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xoonth.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "yageys.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yellowfly.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yhfou.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yiheng.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -55755,6 +55721,705 @@
     { "name": "zozo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zpy.fun", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zvejonys.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "123opstalverzekeringen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "16book.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "200.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "24hour-locksmithsanantonio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "24hourlocksmithbaltimore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "24hourlocksmithdallastx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "5percentperweek.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "64bitservers.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "8884553.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "8da222.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "9fvip.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aa43d.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aaronburt.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "acareer.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "acfo.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "acid.ninja", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "addon.watch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "adesa.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aerobasegroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "agencewebstreet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aistrope.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "alainfrancois.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aldiabcs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "alphadote.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "amati.solutions", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "amend-friseur-schwabing.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "americandetour.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "amitabhsirkiclasses.org.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "amiu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "animeinsights.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "antiekboerderijgraafland.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "apo-deutschland.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aquelarreweb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "arnevankauter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "arose.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "arrowheadflats.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "atelierfantazie.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "austinlockout.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "austintxacrepairtoday.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "austintxlocksmiths.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "autobahnco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "axis-stralis.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "axisfleetmanagement.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "azizfirat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "azuki.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "badoo.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ball3d.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ballitolocksmith.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "banham.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "banham.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "barbershop-lasvillas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "barcouniforms.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "baresquare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "basonlinemarketing.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bcs.adv.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "beacham.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "beeming.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "beerly.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bemindly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ben-jarvis.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "benedikt-tuchen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bestdating.today", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bestschools.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "biancolievito.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bjrn.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "blantr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "blockcheck.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "blue-gmbh-erfahrungen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "blue-gmbh.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bluehelixmusic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bramygrozy.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "brandand.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "brightlifedirect.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "brigittebutt.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "britishchronicles.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "britishsnoring.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "brittanyferriesnewsroom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bukai.men", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "burfordbedandbreakfast.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "busanhs.bid", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "busanhs.win", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "byange.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cafericoy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "campeoesdofutebol.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "captain-dandelion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "carbonmonoxidelawyer.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cardgames.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "carkeysanantonio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "carlocksmith--dallas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "carlocksmithellicottcity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "carlocksmithlewisville.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "carlocksmithmesquite.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "carterstad.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "casualdesignsfurniture.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cbin168.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ccss-cces.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cduckett.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "celebmasta.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "certificatespending.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cfttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ching.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chiropractic.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "christthekingparish.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cinemasetfree.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "clacetandil.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cleanapproachnw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cloudkeep.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cloudsign.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "club-creole.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "club-premiere.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "clubgalaxy.futbol", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cm.center", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cnvt.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "comeoishii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "comosefazisto.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "compservice.in.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "coquibus.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "corporativoarval.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "corrick.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "costablanca.villas", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "countermats.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "currentlyusa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "custombikes.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cybercymru.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cybersecurity.run", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "daigakujuken-plus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dampedia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dancebuzz.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "daniel-wildhaber.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "danielwildhaber.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dansa.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dark.ninja", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "datagrail.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dealerselectric.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "deltasigmachi.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dialectic-og.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "digitaltcertifikat.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "discoverucluelet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "doctorbini.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "donna-bellini-hochzeitsfotograf-muenchen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dotjesper.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dotjesper.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dotjesper.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "drbarnabus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dsgvo.name", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "due-diligence-security.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "duerlund-falkenberg.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "durbanlocksmiths.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dw-loewe.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "e-borneoshop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "easyqr.codes", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ecomycie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "eesti.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ehub.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "elcontadorsac.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "elekharris.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "elonm.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "emeraldcbdshop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "enord.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "erics.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "establo.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "eugenechae.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "europarts-sd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "exarpy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fanyina.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "farmacia-discreto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "faschingmd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fashiondays.bg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fashiondays.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fashiondays.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fatecdevday.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fearby.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "feildel.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fitinclass.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "flavo.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "floorballpoint.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fnanen.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "follower98.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "forex-plus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "forextickler.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fox.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "franzknoll.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "freesquare.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "frontlinemessenger.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fungames.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "futcre.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "galeria42.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "game4less.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gamequest.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ganyouxuan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gazete.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "geniush.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "georadar-algerie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "georgiaautoglass.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gesica.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "getwemap.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gino-gelati.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ginzaj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "git.sb", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "glamourdaze.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "glosiko.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gmslparking.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gnfrazier.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "goesta-hallenbau.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "goooo.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "grandcafecineac.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "greenconn.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gregmote.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "grocerybuild.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "grumples.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "guyeskens.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gyara.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gynoguide.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "haimablog.ooo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "haltegame.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hanpenblog.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "has.work", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hdcamvids.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "health-booster.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "healthiergenerations.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hiojbk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hitn.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hkbsurgery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "homeimagician.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "horton-brasses.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hotdoc.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hotelarevalo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hotels3d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "houstontxlocksmiths.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "huber-informatik.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "huh.gdn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "humeur.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "huntsmansecurity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "huonit.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hyperstack.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "iaf.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "iam.lc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ibodyiq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "idealimplant.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "idratherbequilting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ifxd.bid", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ignat-mag.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ihls.stream", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ihls.world", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ihls.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ikarr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "imaple.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "improfestival.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "indianapolislocksmithinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "infinitybc.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "infr.red", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "infrapass.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "integratedintegrations.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "iposm.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ipstoragesolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "irandp.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "isitpatchtuesday.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "it-seems-to.work", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "itruth.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "iuyos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "iyouewo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jakubklimek.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jamesmurphy.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jamesross.name", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jianji.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jicaivvip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jichi000.win", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jjmarketing.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jjsummerboatparty.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jlink.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jloh.codes", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "johncook.ltd.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "johnmcc.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jolle.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "just-english.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kabaca.design", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kaneisdi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kapgy-moto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "katzensklave.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kazek.com.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kazekprzewozy.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kazumi.ooo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kecht.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "keditor.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kersmexico.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "keyhomechecker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kinnettmemorial.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kirito.kr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kiwi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kloudboy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "krazyboi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "krey.is", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "krishnenduayur.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kuro.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kvantel.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kwiknews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "laballoons.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lappari.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lara.photography", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "larryli.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lbsi-nordwest.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ledshop.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lenget.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "likebee.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "linkedpipes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lobosdomain.hopto.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmith-durbannorth.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithballito.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithbluff.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithedmonds.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithhillcrest.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithindurban.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithmissouricity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithopen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithsanantoniotexas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithsbluff.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithseattleco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithservice-houston.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithspringtx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "locksmithswestville.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lohmeier.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "long-journey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lucz.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lumen.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lupinenorthamerica.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "luxofit.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mad.ninja", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "magu.kz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mail-de.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mantra.pictures", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "manuall.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "manuall.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "manuall.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "manuall.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "maps.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "marcceleiro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "marcelkooiman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "marchukov.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "markel.com.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "markhoodphoto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "martijnvanderzande.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "massfone.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mathiaswagner.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "matthewchapman.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mb300sd.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mccordsvillelocksmith.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mcculloughjchris.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mchel.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mcon.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mds-paris.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mebaneattorney.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mebanesteakhouse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "meditel.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "medmarkt24.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "medvedikorenka.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "merchant-automotive.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "meridianmetals.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "merlinsoap.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "merson.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "merson.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "meurisse.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mgcraft.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "midnightmango.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "midnightmango.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mirrorbot.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "missevent.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "misskey.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mnml.art", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mnml.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "motocollection.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mrgiveaways.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mtiryaki.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mundomagicotv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "musaccostore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mvisioncorp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mwezi-foundation.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mwezi.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mygirlfriendshouse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "myweddingreceptionideas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "myxnr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nakalabo.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nakene.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "namethissymbol.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nappynko.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "naturalhealthcures.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nazukebanashi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ncloud.freeddns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "neowa.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "networkmon.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "newbasemedia.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "newfangledscoop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "newposts.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nickhitch.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nigt.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nikonlibrary.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nitix.games", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nomagic.software", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nonabytes.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "noodlecrave.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "noret.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nova-kultura.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nstrust.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nydig.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "obamawhitehouse.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oceanlord.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oenings.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "offertegiuste.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ohnonotme.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oilfieldinjury.attorney", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "okmx.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oldroutetwo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "omoide-hitokoto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "onedegreehealth.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "onlinecorners.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "onlineporno.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "onnaguse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "opadaily.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "open-gaming.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "openbayes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "opendata.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ophis-phosphoros.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ops-com.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "osmestres.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "osobliwydom.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ourmaster.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "owlandrabbitgallery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "paketo.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "paragonremodeling.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "parkhost.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "passionandbalance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "passionebenessere.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pauldev.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pculiar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "personal-injury-attorney.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "petresort.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pglandscapingpaving.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pharmacie-fr.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "phr34kz.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pianomover.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pirateproxy.gdn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pixe2019.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pizzamc.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pjsec.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "playerdb.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "playupnow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "plny.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "plutiedev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pmheart.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "politicachubut.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "polska-robota.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "potenzprobleme-info.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "potzwonen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "poundwholesale.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "powerplaywashers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ppsvcs2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "presskr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "privacychick.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "proadvanced.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "prodottogiusto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "progressnet.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "projectborealisgitlab.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "promoteiq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "prontointerventoimmediato.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "prosharp.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "providencecmc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "purefkh.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pwaresume.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pwnedpass.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pxl.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pyrios.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "qiaohong.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "qnq.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "qr.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "qrbird.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "qualpay.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "queene.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "queextensiones.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "quizstore.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "r3bl.blog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "radarnext.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rail24.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rayanitco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rcifsgapinsurance.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rdjb2b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "reallytrusted.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "redmind.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "redsquirrelcampsite.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "refinansiering.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rentalmed.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "resultsatretail.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "richardharpur.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ricoydesign.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rimediogiusto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rimorrecherche.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rit.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ronzertnert.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rootonline.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rttvvip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rueegger.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ruralink.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rushter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ruya.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rvfu98.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ryan-gehring.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "s4media.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "safebasementsofindiana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "saintmichelqud.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "salemedia.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "salonasymetria.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "salonasymetria.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sammyservers.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "scan.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "scontogiusto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "seby.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sec4share.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "securityheaders.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "semantica.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sendaiouji.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "serendeputy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "serwusik.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "shadowkingdomrecords.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "shishkabobnc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "shoeracks.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "shop-hellsheadbangers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "silicon-north.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "silicon-vision.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "silkon.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "simonweil.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sixcorners.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sklepwielobranzowymd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "skycmd.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "skyynet.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sletat.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "smartwank.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sobeau.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "softonic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "softwaylancing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sparkz.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "spiel-teppich.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sproktz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "srigc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "staljedevledder.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stampsbar.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stephencreilly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stiltmedia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stitchinprogress.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stma.is", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stmarthachurch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "streamelements.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stromaci.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stromzivota.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "stucorweb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "studiobergaminloja.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "studyspy.ac.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "suited21.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sunset.im", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sunsong.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "surasak.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "surefit-oms.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "surfnetkids.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "suruifu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "suruifu.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "susanvelez.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "susoccm.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "suv4.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "suziekovner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "swimmingpoolaccidentattorney.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "syamutodon.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "systemonthego.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "syukatsu-net.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "szaloneigly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "szetowah.org.hk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tabi-runrun.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tagesmutter-zwitscherlinge.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tahavu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tandilmap.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tarots-et-oracles.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tcvvip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tcwis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "teammateworld.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "techableme.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "terrapay.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "test-dns.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "test.support", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thaliagetaway.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thatsme.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thedom.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thefairieswantmedead.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "theflowershopdeddington.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thegrs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thelearningenterprise.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "themobilestuffs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "theproductpoet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thepythianseed.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "therepublicofliverpool.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "therugswarehouse.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thesslstore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thethreepercent.marketing", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thetvtraveler.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tichieru.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ticketsource.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tierraprohibida.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tilosp.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "timsayedmd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tipe.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tis.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tl.gg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tobaccolocker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tomahawk.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "toot.center", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "topbigdeals.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "touchinformatica.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "trappednerve.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "trucchibellezza.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ttclub.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tuffclassified.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tuou.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "twisto.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "twistopay.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tzermias.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uclf.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "udancy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uhssl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uniontestprep.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uptakedigital.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "upwardtraining.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "upyourfinances.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uraimo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uxteam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vega-rumia.com.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vergessen.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "viagusto.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vinsation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "viqo.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "virtualcommodities.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "visalist.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "visiondirectionaldrilling.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vitra-showrooms.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vrij-links.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vwo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "waldkinder-ilmenau.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "waligorska.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "walksfourpaws.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wanlieyan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wapking.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "waterbrook.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "weaspireusa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "webauthority.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "webdollarvpn.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "webexpertsdirect.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wheezie.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "whitkirk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "winch-center.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "winwitharval.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wischu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wjcainc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wordpress-test.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "world-lolo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wrathofgeek.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wxdisco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wyrickstaxidermy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xiaolong.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xn--48jwg508p.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xn--4kro7fswi.xn--6qq986b3xl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xn--fiqwix98h.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xn--keditr-0xa.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xn--klmek-0sa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xn--p8j9a0d9c9a.xn--q9jyb4c", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xn--q9ji3c6d.xn--q9jyb4c", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xrg.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xs74.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xtenz.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xtom.africa", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xuanmeishe.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xyenon.bid", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yatstudios.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ycnrg.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yellowtree.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yenpape.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yeyi.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yougot.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "youracnepro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yourmemorykeeper.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "youthovation.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ytx588.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yugasun.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yukari.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "yutaron.tokyo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zacchaeus.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zakariya.blog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zapmaster14.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zcore.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zena.cx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zennzimie.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zennzimie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zerotoone.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zionsvillelocksmiths.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zirtek.ie", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zjv.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     // END OF 1-YEAR BULK HSTS ENTRIES
 
     // Only eTLD+1 domains can be submitted automatically to hstspreload.org,
diff --git a/net/interfaces/address_list.mojom b/net/interfaces/address_list.mojom
index 8ad6523..7079942 100644
--- a/net/interfaces/address_list.mojom
+++ b/net/interfaces/address_list.mojom
@@ -9,4 +9,5 @@
 // Mirror of net::AddressList.
 struct AddressList {
   array<IPEndPoint> addresses;
+  string canonical_name;
 };
diff --git a/net/interfaces/address_list_mojom_traits.cc b/net/interfaces/address_list_mojom_traits.cc
index 9ae7c24..a8fce9e3 100644
--- a/net/interfaces/address_list_mojom_traits.cc
+++ b/net/interfaces/address_list_mojom_traits.cc
@@ -13,7 +13,15 @@
 bool StructTraits<net::interfaces::AddressListDataView, net::AddressList>::Read(
     net::interfaces::AddressListDataView data,
     net::AddressList* out) {
-  return data.ReadAddresses(&out->endpoints());
+  if (!data.ReadAddresses(&out->endpoints()))
+    return false;
+
+  std::string canonical_name;
+  if (!data.ReadCanonicalName(&canonical_name))
+    return false;
+  out->set_canonical_name(canonical_name);
+
+  return true;
 }
 
 }  // namespace mojo
diff --git a/net/interfaces/address_list_mojom_traits.h b/net/interfaces/address_list_mojom_traits.h
index 3f38d82d..f7122de 100644
--- a/net/interfaces/address_list_mojom_traits.h
+++ b/net/interfaces/address_list_mojom_traits.h
@@ -5,6 +5,7 @@
 #ifndef NET_INTERFACES_ADDRESS_LIST_MOJOM_TRAITS_H_
 #define NET_INTERFACES_ADDRESS_LIST_MOJOM_TRAITS_H_
 
+#include <string>
 #include <vector>
 
 #include "mojo/public/cpp/bindings/struct_traits.h"
@@ -19,6 +20,10 @@
     return obj.endpoints();
   }
 
+  static const std::string& canonical_name(const net::AddressList& obj) {
+    return obj.canonical_name();
+  }
+
   static bool Read(net::interfaces::AddressListDataView data,
                    net::AddressList* out);
 };
diff --git a/net/test/embedded_test_server/embedded_test_server.cc b/net/test/embedded_test_server/embedded_test_server.cc
index 2951551..3cd2e5c 100644
--- a/net/test/embedded_test_server/embedded_test_server.cc
+++ b/net/test/embedded_test_server/embedded_test_server.cc
@@ -68,14 +68,14 @@
 
   {
     // Thread::Join induced by test code should cause an assert.
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_thread_join;
+    base::ScopedAllowBlockingForTesting allow_blocking;
 
     io_thread_.reset();
   }
 }
 
 void EmbeddedTestServer::RegisterTestCerts() {
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_importing_test_cert;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   TestRootCerts* root_certs = TestRootCerts::GetInstance();
   bool added_root_certs = root_certs->AddFromFile(GetRootCertPemPath());
   DCHECK(added_root_certs)
@@ -151,7 +151,7 @@
 }
 
 void EmbeddedTestServer::InitializeSSLServerContext() {
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_ssl_initialization;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   base::FilePath certs_dir(GetTestCertsDirectory());
   std::string cert_name = GetCertificateName();
 
@@ -320,7 +320,7 @@
   DCHECK(is_using_ssl_);
   base::FilePath certs_dir(GetTestCertsDirectory());
 
-  base::ThreadRestrictions::ScopedAllowIO allow_io_for_importing_test_cert;
+  base::ScopedAllowBlockingForTesting allow_blocking;
   return ImportCertFromFile(certs_dir, GetCertificateName());
 }
 
diff --git a/net/test/spawned_test_server/local_test_server.cc b/net/test/spawned_test_server/local_test_server.cc
index f031cb50..c4378a5 100644
--- a/net/test/spawned_test_server/local_test_server.cc
+++ b/net/test/spawned_test_server/local_test_server.cc
@@ -91,7 +91,7 @@
 bool LocalTestServer::StartInBackground() {
   DCHECK(!started());
 
-  base::ThreadRestrictions::ScopedAllowIO allow_io_from_test_code;
+  base::ScopedAllowBlockingForTesting allow_blocking;
 
   // Get path to Python server script.
   base::FilePath testserver_path;
diff --git a/net/test/test_data_directory.cc b/net/test/test_data_directory.cc
index d360628..b6a79541 100644
--- a/net/test/test_data_directory.cc
+++ b/net/test/test_data_directory.cc
@@ -25,7 +25,7 @@
 base::FilePath GetTestNetDataDirectory() {
   base::FilePath src_root;
   {
-    base::ThreadRestrictions::ScopedAllowIO allow_io_for_path_service;
+    base::ScopedAllowBlockingForTesting allow_blocking;
     base::PathService::Get(base::DIR_SOURCE_ROOT, &src_root);
   }
 
diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc
index 81ea6c0..c87110e 100644
--- a/pdf/pdfium/pdfium_engine.cc
+++ b/pdf/pdfium/pdfium_engine.cc
@@ -2606,22 +2606,24 @@
   pp::Size old_document_size = document_size_;
   document_size_ = pp::Size();
   std::vector<pp::Rect> page_rects;
-  int page_count = FPDF_GetPageCount(doc());
+  size_t new_page_count = FPDF_GetPageCount(doc());
+
   bool doc_complete = doc_loader_->IsDocumentComplete();
   bool is_linear =
       FPDFAvail_IsLinearized(fpdf_availability()) == PDF_LINEARIZED;
-  for (int i = 0; i < page_count; ++i) {
+  for (size_t i = 0; i < new_page_count; ++i) {
     if (i != 0) {
       // Add space for horizontal separator.
       document_size_.Enlarge(0, kPageSeparatorThickness);
     }
 
-    // Get page availability. If |reload| == true, then the document has been
-    // constructed already. Get page availability flag from already existing
-    // PDFiumPage class.
-    // If |reload| == false, then the document may not be fully loaded yet.
+    // Get page availability. If |reload| == true and the page is not new,
+    // then the page has been constructed already. Get page availability flag
+    // from already existing PDFiumPage object.
+    // If |reload| == false or the page is new, then the page may not be fully
+    // loaded yet.
     bool page_available;
-    if (reload) {
+    if (reload && i < pages_.size()) {
       page_available = pages_[i]->available();
     } else if (is_linear) {
       FX_DOWNLOADHINTS& download_hints = document_->download_hints();
@@ -2644,22 +2646,34 @@
     document_size_.Enlarge(0, size.height());
   }
 
-  for (int i = 0; i < page_count; ++i) {
+  for (size_t i = 0; i < new_page_count; ++i) {
     // Center pages relative to the entire document.
     page_rects[i].set_x((document_size_.width() - page_rects[i].width()) / 2);
     pp::Rect page_rect(page_rects[i]);
     page_rect.Inset(kPageShadowLeft, kPageShadowTop, kPageShadowRight,
                     kPageShadowBottom);
-    if (reload) {
-      pages_[i]->set_rect(page_rect);
-    } else {
+    if (!reload) {
       // The page is marked as not being available even if |doc_complete| is
       // true because FPDFAvail_IsPageAvail() still has to be called for this
       // page, which will be done in FinishLoadingDocument().
       pages_.push_back(std::make_unique<PDFiumPage>(this, i, page_rect, false));
+    } else if (i < pages_.size()) {
+      pages_[i]->set_rect(page_rect);
+    } else {
+      bool available = FPDFAvail_IsPageAvail(fpdf_availability(), i, nullptr);
+      pages_.push_back(
+          std::make_unique<PDFiumPage>(this, i, page_rect, available));
     }
   }
 
+  // Remove pages that do not exist anymore.
+  if (pages_.size() > new_page_count) {
+    for (size_t i = new_page_count; i < pages_.size(); ++i)
+      pages_[i]->Unload();
+
+    pages_.resize(new_page_count);
+  }
+
   CalculateVisiblePages();
   if (document_size_ != old_document_size)
     client_->DocumentSizeUpdated(document_size_);
@@ -3593,6 +3607,12 @@
   }
 }
 
+#if defined(PDF_ENABLE_XFA)
+void PDFiumEngine::UpdatePageCount() {
+  InvalidateAllPages();
+}
+#endif  // defined(PDF_ENABLE_XFA)
+
 PDFiumEngine::ProgressivePaint::ProgressivePaint(int index,
                                                  const pp::Rect& rect)
     : page_index_(index), rect_(rect) {}
diff --git a/pdf/pdfium/pdfium_engine.h b/pdf/pdfium/pdfium_engine.h
index 5e0c878b..5bc0029 100644
--- a/pdf/pdfium/pdfium_engine.h
+++ b/pdf/pdfium/pdfium_engine.h
@@ -138,6 +138,10 @@
   void CancelBrowserDownload() override;
   void KillFormFocus() override;
 
+#if defined(PDF_ENABLE_XFA)
+  void UpdatePageCount();
+#endif  // defined(PDF_ENABLE_XFA)
+
   void UnsupportedFeature(const std::string& feature);
   void FontSubstituted();
 
diff --git a/pdf/pdfium/pdfium_form_filler.cc b/pdf/pdfium/pdfium_form_filler.cc
index c64ccaf..5c32b77c 100644
--- a/pdf/pdfium/pdfium_form_filler.cc
+++ b/pdf/pdfium/pdfium_form_filler.cc
@@ -52,7 +52,7 @@
   FPDF_FORMFILLINFO::FFI_GetCurrentPageIndex = Form_GetCurrentPageIndex;
   FPDF_FORMFILLINFO::FFI_GetPageViewRect = Form_GetPageViewRect;
   FPDF_FORMFILLINFO::FFI_GetPlatform = Form_GetPlatform;
-  FPDF_FORMFILLINFO::FFI_PageEvent = nullptr;
+  FPDF_FORMFILLINFO::FFI_PageEvent = Form_PageEvent;
   FPDF_FORMFILLINFO::FFI_PopupMenu = Form_PopupMenu;
   FPDF_FORMFILLINFO::FFI_PostRequestURL = Form_PostRequestURL;
   FPDF_FORMFILLINFO::FFI_PutRequestURL = Form_PutRequestURL;
@@ -394,6 +394,18 @@
 }
 
 // static
+void PDFiumFormFiller::Form_PageEvent(FPDF_FORMFILLINFO* param,
+                                      int page_count,
+                                      unsigned long event_type) {
+  DCHECK(page_count != 0);
+  DCHECK(event_type == FXFA_PAGEVIEWEVENT_POSTADDED ||
+         event_type == FXFA_PAGEVIEWEVENT_POSTREMOVED);
+
+  PDFiumEngine* engine = GetEngine(param);
+  engine->UpdatePageCount();
+}
+
+// static
 FPDF_BOOL PDFiumFormFiller::Form_PopupMenu(FPDF_FORMFILLINFO* param,
                                            FPDF_PAGE page,
                                            FPDF_WIDGET widget,
diff --git a/pdf/pdfium/pdfium_form_filler.h b/pdf/pdfium/pdfium_form_filler.h
index df4c7fb3..9294795 100644
--- a/pdf/pdfium/pdfium_form_filler.h
+++ b/pdf/pdfium/pdfium_form_filler.h
@@ -91,6 +91,9 @@
   static int Form_GetPlatform(FPDF_FORMFILLINFO* param,
                               void* platform,
                               int length);
+  static void Form_PageEvent(FPDF_FORMFILLINFO* param,
+                             int page_count,
+                             unsigned long event_type);
   static FPDF_BOOL Form_PopupMenu(FPDF_FORMFILLINFO* param,
                                   FPDF_PAGE page,
                                   FPDF_WIDGET widget,
diff --git a/remoting/android/java/src/org/chromium/chromoting/Desktop.java b/remoting/android/java/src/org/chromium/chromoting/Desktop.java
index c867f24..8019814 100644
--- a/remoting/android/java/src/org/chromium/chromoting/Desktop.java
+++ b/remoting/android/java/src/org/chromium/chromoting/Desktop.java
@@ -7,6 +7,7 @@
 import android.annotation.SuppressLint;
 import android.content.res.Configuration;
 import android.graphics.Color;
+import android.graphics.Rect;
 import android.graphics.drawable.ColorDrawable;
 import android.os.Build;
 import android.os.Bundle;
@@ -14,6 +15,7 @@
 import android.support.v7.app.ActionBar.OnMenuVisibilityListener;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
+import android.view.DisplayCutout;
 import android.view.KeyEvent;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -21,6 +23,8 @@
 import android.view.View;
 import android.view.View.OnLayoutChangeListener;
 import android.view.View.OnTouchListener;
+import android.view.WindowManager;
+import android.view.WindowManager.LayoutParams;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
 import android.view.inputmethod.InputMethodManager;
@@ -136,6 +140,15 @@
         // background.  Setting the background color to match our canvas will prevent the flash.
         getWindow().setBackgroundDrawable(new ColorDrawable(Color.BLACK));
 
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+            // Short edges mode makes DesktopView stretch to the whole screen even if it gets
+            // obstructed by the cutouts.
+            WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
+            layoutParams.layoutInDisplayCutoutMode =
+                    LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
+            getWindow().setAttributes(layoutParams);
+        }
+
         mActivityLifecycleListener = mClient.getCapabilityManager().onActivityAcceptingListener(
                 this, Capabilities.CAST_CAPABILITY);
         mActivityLifecycleListener.onActivityCreated(this, savedInstanceState);
@@ -463,6 +476,24 @@
     }
 
     /**
+     * @return The insets from each edge on the screen that avoid display cutouts.
+     */
+    @SuppressLint("InlinedApi")
+    public Rect getSafeInsets() {
+        Rect insets = new Rect();
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {
+            return insets;
+        }
+
+        DisplayCutout cutout = mRemoteHostDesktop.getRootWindowInsets().getDisplayCutout();
+        if (cutout != null) {
+            insets.set(cutout.getSafeInsetLeft(), cutout.getSafeInsetTop(),
+                    cutout.getSafeInsetRight(), cutout.getSafeInsetBottom());
+        }
+        return insets;
+    }
+
+    /**
      * Shows the soft keyboard if no physical keyboard is attached.
      */
     public void showKeyboard() {
diff --git a/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java b/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java
index 68ae062a..424be08 100644
--- a/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java
+++ b/remoting/android/java/src/org/chromium/chromoting/DesktopCanvas.java
@@ -26,6 +26,12 @@
     private final RenderData mRenderData;
 
     /**
+     * The insets from each edge of the screen which avoid display cutouts. Note that this is not
+     * a real rectangle as left > right and top > bottom can be true.
+     */
+    private final Rect mSafeInsets = new Rect();
+
+    /**
      * Represents the desired center of the viewport in image space.  This value may not represent
      * the actual center of the viewport as adjustments are made to ensure as much of the desktop is
      * visible as possible.  This value needs to be a pair of floats so the desktop image can be
@@ -137,6 +143,20 @@
         }
     }
 
+    /**
+     *  Sets the insets from each edge on the screen that avoid display cutouts.
+     *
+     * @param insets The insets from each edge on the screen that avoid display cutouts.
+     */
+    public void setSafeInsets(Rect insets) {
+        mSafeInsets.set(insets);
+
+        if (mRenderData.initialized()) {
+            // The viewport center may have changed so update the position to reflect the new value.
+            repositionImage();
+        }
+    }
+
     public void adjustViewportForSystemUi(boolean adjustViewportForSystemUi) {
         mAdjustViewportSizeForSystemUi = adjustViewportForSystemUi;
 
@@ -153,8 +173,9 @@
             return;
         }
 
-        float widthRatio = (float) mRenderData.screenWidth / mRenderData.imageWidth;
-        float heightRatio = (float) mRenderData.screenHeight / mRenderData.imageHeight;
+        float widthRatio = getSafeScreenWidth() / mRenderData.imageWidth;
+        float heightRatio =
+                calculateSafeScreenHeight(mRenderData.screenHeight) / mRenderData.imageHeight;
         float screenToImageScale = Math.max(widthRatio, heightRatio);
 
         // If the image is smaller than the screen in either dimension, then we want to scale it
@@ -195,11 +216,12 @@
         float[] imageSize = {mRenderData.imageWidth, mRenderData.imageHeight};
         mRenderData.transform.mapVectors(imageSize);
 
-        if (imageSize[0] < mRenderData.screenWidth && imageSize[1] < mRenderData.screenHeight) {
+        if (imageSize[0] < getSafeScreenWidth()
+                && imageSize[1] < calculateSafeScreenHeight(mRenderData.screenHeight)) {
             // Displayed image is too small in both directions, so apply the minimum zoom
             // level needed to fit either the width or height.
-            float scale = Math.min((float) mRenderData.screenWidth / mRenderData.imageWidth,
-                                   (float) mRenderData.screenHeight / mRenderData.imageHeight);
+            float scale = Math.min(getSafeScreenWidth() / mRenderData.imageWidth,
+                    calculateSafeScreenHeight(mRenderData.screenHeight) / mRenderData.imageHeight);
             mRenderData.transform.setScale(scale, scale);
         }
 
@@ -208,8 +230,9 @@
         } else {
             // Find the new screen center (it probably changed during the zoom operation) and update
             // the viewport to smoothly track the zoom gesture.
-            float[] mappedPoints = {((float) mRenderData.screenWidth / 2) - mViewportOffset.x,
-                    ((float) mRenderData.screenHeight / 2) - mViewportOffset.y};
+            PointF safeScreenCenter = calculateSafeScreenCenterPoint(mRenderData.screenHeight);
+            float[] mappedPoints = {
+                    safeScreenCenter.x - mViewportOffset.x, safeScreenCenter.y - mViewportOffset.y};
             Matrix screenToImage = new Matrix();
             mRenderData.transform.invert(screenToImage);
             screenToImage.mapPoints(mappedPoints);
@@ -252,7 +275,7 @@
      * account.
      */
     private PointF getViewportScreenCenter() {
-        return new PointF((float) mRenderData.screenWidth / 2, getAdjustedScreenHeight() / 2);
+        return calculateSafeScreenCenterPoint(getAdjustedScreenHeight());
     }
 
     /**
@@ -313,15 +336,17 @@
         float[] screenVectors = {viewportCenter.x, viewportCenter.y};
         screenToImage.mapVectors(screenVectors);
 
-        PointF letterboxPadding = getLetterboxPadding();
-        float[] letterboxPaddingVectors = {letterboxPadding.x, letterboxPadding.y};
-        screenToImage.mapVectors(letterboxPaddingVectors);
+        RectF letterboxPadding = getLetterboxPadding();
+        float[] letterboxPaddingLeftTop = {letterboxPadding.left, letterboxPadding.top};
+        float[] letterboxPaddingRightBottom = {letterboxPadding.right, letterboxPadding.bottom};
+        screenToImage.mapVectors(letterboxPaddingLeftTop);
+        screenToImage.mapVectors(letterboxPaddingRightBottom);
 
-        // screenCenter values are 1/2 of a particular screen dimension mapped to image space.
-        float screenCenterX = screenVectors[0] - letterboxPaddingVectors[0];
-        float screenCenterY = screenVectors[1] - letterboxPaddingVectors[1];
         RectF imageBounds = getImageBounds();
-        imageBounds.inset(screenCenterX, screenCenterY);
+        imageBounds.left += screenVectors[0] - letterboxPaddingLeftTop[0];
+        imageBounds.top += screenVectors[1] - letterboxPaddingLeftTop[1];
+        imageBounds.right -= screenVectors[0] - letterboxPaddingRightBottom[0];
+        imageBounds.bottom -= screenVectors[1] - letterboxPaddingRightBottom[1];
         return imageBounds;
     }
 
@@ -348,18 +373,25 @@
     }
 
     /**
-     * Provides the amount of padding needed to center the image content on the screen.
+     * Provides the amount of padding needed to center the image content on the screen. Safe insets
+     * are fixed constant letterbox padding that exist even when the image is not smaller than the
+     * screen.
      */
-    private PointF getLetterboxPadding() {
+    private RectF getLetterboxPadding() {
         float[] imageVectors = {mRenderData.imageWidth, mRenderData.imageHeight};
         mRenderData.transform.mapVectors(imageVectors);
 
         // We want to letterbox when the image is smaller than the screen in a specific dimension.
         // Since we center the image, split the difference so it is equally distributed.
-        float widthAdjust = Math.max(((float) mRenderData.screenWidth - imageVectors[0]) / 2, 0);
-        float heightAdjust = Math.max((getAdjustedScreenHeight() - imageVectors[1]) / 2, 0);
+        float widthAdjust = Math.max((getSafeScreenWidth() - imageVectors[0]) / 2, 0);
+        float heightAdjust = Math.max(
+                (calculateSafeScreenHeight(getAdjustedScreenHeight()) - imageVectors[1]) / 2, 0);
 
-        return new PointF(widthAdjust, heightAdjust);
+        // Add the safe insets.
+        RectF padding = new RectF(widthAdjust + mSafeInsets.left, heightAdjust + mSafeInsets.top,
+                widthAdjust + mSafeInsets.right, heightAdjust + mSafeInsets.bottom);
+
+        return padding;
     }
 
     /**
@@ -376,12 +408,14 @@
         // between the System UI and the remote desktop image.
         // Note: Ignore negative padding (clamp to 0) since that means no overlap exists.
         float adjustedScreenHeight = getAdjustedScreenHeight();
-        PointF letterboxPadding = getLetterboxPadding();
-        return new RectF(Math.max(mSystemUiScreenRect.left - letterboxPadding.x, 0.0f),
-                Math.max(mSystemUiScreenRect.top - letterboxPadding.y, 0.0f),
-                Math.max(mRenderData.screenWidth - mSystemUiScreenRect.right - letterboxPadding.x,
+        RectF letterboxPadding = getLetterboxPadding();
+        return new RectF(Math.max(mSystemUiScreenRect.left - letterboxPadding.left, 0.0f),
+                Math.max(mSystemUiScreenRect.top - letterboxPadding.top, 0.0f),
+                Math.max(mRenderData.screenWidth - mSystemUiScreenRect.right
+                                - letterboxPadding.right,
                         0.0f),
-                Math.max(adjustedScreenHeight - mSystemUiScreenRect.bottom - letterboxPadding.y,
+                Math.max(
+                        adjustedScreenHeight - mSystemUiScreenRect.bottom - letterboxPadding.bottom,
                         0.0f));
     }
 
@@ -465,4 +499,31 @@
     private boolean arePointsEqual(PointF a, PointF b, float epsilon) {
         return Math.abs(a.x - b.x) < epsilon && Math.abs(a.y - b.y) < epsilon;
     }
+
+    /**
+     * @return Screen width inset by {@link #mSafeInsets}.
+     */
+    private float getSafeScreenWidth() {
+        return mRenderData.screenWidth - mSafeInsets.left - mSafeInsets.right;
+    }
+
+    /**
+     * @param height The height to be used to calculate the safe screen height. Generally either
+     * {@link #getAdjustedScreenHeight()} or mRenderData.screenHeight.
+     * @return Screen height inset by {@link #mSafeInsets}.
+     */
+    private float calculateSafeScreenHeight(float height) {
+        return height - mSafeInsets.top - mSafeInsets.bottom;
+    }
+
+    /**
+     * @param height The height to be used to calculate the safe screen height. Generally either
+     * {@link #getAdjustedScreenHeight()} or mRenderData.screenHeight.
+     * @return Center of the safe area on the screen inset by {@link #mSafeInsets}.
+     */
+    private PointF calculateSafeScreenCenterPoint(float height) {
+        return new PointF(
+                (float) mRenderData.screenWidth / 2 + mSafeInsets.left - mSafeInsets.right,
+                height / 2 + mSafeInsets.top - mSafeInsets.bottom);
+    }
 }
diff --git a/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java b/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java
index d73ef5a..c2a7e78 100644
--- a/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java
+++ b/remoting/android/java/src/org/chromium/chromoting/TouchInputHandler.java
@@ -384,6 +384,8 @@
         mRenderData.screenWidth = width;
         mRenderData.screenHeight = height;
 
+        mDesktopCanvas.setSafeInsets(mDesktop.getSafeInsets());
+
         mPanGestureBounds = new Rect(
                 mEdgeSlopInPx, mEdgeSlopInPx, width - mEdgeSlopInPx, height - mEdgeSlopInPx);
         resizeImageToFitScreen();
diff --git a/remoting/host/setup/BUILD.gn b/remoting/host/setup/BUILD.gn
index 9e642c4..3f6cef8 100644
--- a/remoting/host/setup/BUILD.gn
+++ b/remoting/host/setup/BUILD.gn
@@ -34,6 +34,7 @@
   deps = [
     "//base",
     "//google_apis",
+    "//mojo/core/embedder",
     "//remoting/base:authorization",
     "//remoting/host",
     "//remoting/host/native_messaging",
diff --git a/remoting/host/setup/me2me_native_messaging_host_main.cc b/remoting/host/setup/me2me_native_messaging_host_main.cc
index 9194571..a0072e7 100644
--- a/remoting/host/setup/me2me_native_messaging_host_main.cc
+++ b/remoting/host/setup/me2me_native_messaging_host_main.cc
@@ -19,6 +19,7 @@
 #include "base/task/task_scheduler/task_scheduler.h"
 #include "base/threading/thread.h"
 #include "build/build_config.h"
+#include "mojo/core/embedder/embedder.h"
 #include "net/url_request/url_fetcher.h"
 #include "remoting/base/auto_thread_task_runner.h"
 #include "remoting/base/breakpad.h"
@@ -89,6 +90,8 @@
 
   base::TaskScheduler::CreateAndStartWithDefaultParams("Me2Me");
 
+  mojo::core::Init();
+
   // An IO thread is needed for the pairing registry and URL context getter.
   base::Thread io_thread("io_thread");
   io_thread.StartWithOptions(
diff --git a/remoting/protocol/BUILD.gn b/remoting/protocol/BUILD.gn
index 71846a6..6b7a9784 100644
--- a/remoting/protocol/BUILD.gn
+++ b/remoting/protocol/BUILD.gn
@@ -260,6 +260,7 @@
       "//third_party/webrtc/api/audio_codecs:audio_codecs_api",
       "//third_party/webrtc/api/audio_codecs/opus:audio_decoder_opus",
       "//third_party/webrtc/api/audio_codecs/opus:audio_encoder_opus",
+      "//third_party/webrtc/api/video_codecs:builtin_video_decoder_factory",
       "//third_party/webrtc_overrides:init_webrtc",
     ]
   }
diff --git a/remoting/protocol/webrtc_dummy_video_encoder.cc b/remoting/protocol/webrtc_dummy_video_encoder.cc
index ea7d182..cf13f0a9 100644
--- a/remoting/protocol/webrtc_dummy_video_encoder.cc
+++ b/remoting/protocol/webrtc_dummy_video_encoder.cc
@@ -16,6 +16,7 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "build/build_config.h"
 #include "remoting/protocol/video_channel_state_observer.h"
+#include "third_party/webrtc/api/video_codecs/sdp_video_format.h"
 
 #if defined(USE_H264_ENCODER)
 #include "media/video/h264_parser.h"
@@ -55,13 +56,18 @@
 
 WebrtcDummyVideoEncoder::WebrtcDummyVideoEncoder(
     scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
-    base::WeakPtr<VideoChannelStateObserver> video_channel_state_observer)
+    base::WeakPtr<VideoChannelStateObserver> video_channel_state_observer,
+    WebrtcDummyVideoEncoderFactory* factory)
     : main_task_runner_(main_task_runner),
       state_(kUninitialized),
-      video_channel_state_observer_(video_channel_state_observer) {
-}
+      video_channel_state_observer_(video_channel_state_observer),
+      factory_(factory) {}
 
-WebrtcDummyVideoEncoder::~WebrtcDummyVideoEncoder() = default;
+WebrtcDummyVideoEncoder::~WebrtcDummyVideoEncoder() {
+  if (factory_) {
+    factory_->EncoderDestroyed(this);
+  }
+}
 
 int32_t WebrtcDummyVideoEncoder::InitEncode(
     const webrtc::VideoCodec* codec_settings,
@@ -224,24 +230,24 @@
 
 WebrtcDummyVideoEncoderFactory::WebrtcDummyVideoEncoderFactory()
     : main_task_runner_(base::ThreadTaskRunnerHandle::Get()) {
-  // TODO(isheriff): These do not really affect anything internally
-  // in webrtc.
-  codecs_.push_back(cricket::VideoCodec("VP8"));
-  codecs_.push_back(cricket::VideoCodec("VP9"));
-  codecs_.push_back(cricket::VideoCodec("H264"));
+  formats_.push_back(webrtc::SdpVideoFormat("VP8"));
+  formats_.push_back(webrtc::SdpVideoFormat("VP9"));
+  formats_.push_back(webrtc::SdpVideoFormat("H264"));
 }
 
 WebrtcDummyVideoEncoderFactory::~WebrtcDummyVideoEncoderFactory() {
   DCHECK(encoders_.empty());
 }
 
-webrtc::VideoEncoder* WebrtcDummyVideoEncoderFactory::CreateVideoEncoder(
-    const cricket::VideoCodec& codec) {
-  webrtc::VideoCodecType type = webrtc::PayloadStringToCodecType(codec.name);
-  WebrtcDummyVideoEncoder* encoder = new WebrtcDummyVideoEncoder(
-      main_task_runner_, video_channel_state_observer_);
+std::unique_ptr<webrtc::VideoEncoder>
+WebrtcDummyVideoEncoderFactory::CreateVideoEncoder(
+    const webrtc::SdpVideoFormat& format) {
+  webrtc::VideoCodecType type = webrtc::PayloadStringToCodecType(format.name);
+  std::unique_ptr<WebrtcDummyVideoEncoder> encoder =
+      base::WrapUnique(new WebrtcDummyVideoEncoder(
+          main_task_runner_, video_channel_state_observer_, this));
   base::AutoLock lock(lock_);
-  encoders_.push_back(base::WrapUnique(encoder));
+  encoders_.push_back(encoder.get());
   if (encoder_created_callback_) {
     main_task_runner_->PostTask(FROM_HERE,
                                 base::Bind(encoder_created_callback_, type));
@@ -249,31 +255,19 @@
   return encoder;
 }
 
-const std::vector<cricket::VideoCodec>&
-WebrtcDummyVideoEncoderFactory::supported_codecs() const {
-  return codecs_;
+std::vector<webrtc::SdpVideoFormat>
+WebrtcDummyVideoEncoderFactory::GetSupportedFormats() const {
+  return formats_;
 }
 
-bool WebrtcDummyVideoEncoderFactory::EncoderTypeHasInternalSource(
-    webrtc::VideoCodecType type) const {
-  // Returns true to directly provide encoded frames to webrtc.
-  return true;
-}
-
-void WebrtcDummyVideoEncoderFactory::DestroyVideoEncoder(
-    webrtc::VideoEncoder* encoder) {
-  base::AutoLock lock(lock_);
-  if (encoder == nullptr) {
-    LOG(ERROR) << "Attempting to destroy null encoder";
-    return;
-  }
-  for (auto pos = encoders_.begin(); pos != encoders_.end(); ++pos) {
-    if ((*pos).get() == encoder) {
-      encoders_.erase(pos);
-      return;
-    }
-  }
-  NOTREACHED() << "Asked to remove encoder not owned by factory.";
+WebrtcDummyVideoEncoderFactory::CodecInfo
+WebrtcDummyVideoEncoderFactory::QueryVideoEncoder(
+    const webrtc::SdpVideoFormat& format) const {
+  CodecInfo codec_info;
+  codec_info.is_hardware_accelerated = true;
+  // Set internal source to true to directly provide encoded frames to webrtc.
+  codec_info.has_internal_source = true;
+  return codec_info;
 }
 
 webrtc::EncodedImageCallback::Result
@@ -306,5 +300,21 @@
   video_channel_state_observer_ = video_channel_state_observer;
 }
 
+void WebrtcDummyVideoEncoderFactory::EncoderDestroyed(
+    WebrtcDummyVideoEncoder* encoder) {
+  base::AutoLock lock(lock_);
+  if (!encoder) {
+    LOG(ERROR) << "Attempting to destroy null encoder";
+    return;
+  }
+  for (auto pos = encoders_.begin(); pos != encoders_.end(); ++pos) {
+    if (*pos == encoder) {
+      encoders_.erase(pos);
+      return;
+    }
+  }
+  NOTREACHED() << "Asked to remove encoder not owned by factory.";
+}
+
 }  // namespace protocol
 }  // namespace remoting
diff --git a/remoting/protocol/webrtc_dummy_video_encoder.h b/remoting/protocol/webrtc_dummy_video_encoder.h
index 0be1718..8dffd63 100644
--- a/remoting/protocol/webrtc_dummy_video_encoder.h
+++ b/remoting/protocol/webrtc_dummy_video_encoder.h
@@ -14,13 +14,14 @@
 #include "base/single_thread_task_runner.h"
 #include "base/synchronization/lock.h"
 #include "remoting/codec/webrtc_video_encoder.h"
-#include "third_party/webrtc/media/engine/webrtcvideoencoderfactory.h"
+#include "third_party/webrtc/api/video_codecs/video_encoder_factory.h"
 #include "third_party/webrtc/modules/video_coding/include/video_codec_interface.h"
 
 namespace remoting {
 namespace protocol {
 
 class VideoChannelStateObserver;
+class WebrtcDummyVideoEncoderFactory;
 
 // WebrtcDummyVideoEncoder implements webrtc::VideoEncoder interface for WebRTC.
 // It's responsible for getting  feedback on network bandwidth, latency & RTT
@@ -35,7 +36,8 @@
 
   WebrtcDummyVideoEncoder(
       scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
-      base::WeakPtr<VideoChannelStateObserver> video_channel_state_observer);
+      base::WeakPtr<VideoChannelStateObserver> video_channel_state_observer,
+      WebrtcDummyVideoEncoderFactory* factory);
   ~WebrtcDummyVideoEncoder() override;
 
   // webrtc::VideoEncoder overrides.
@@ -66,23 +68,26 @@
   webrtc::EncodedImageCallback* encoded_callback_ = nullptr;
 
   base::WeakPtr<VideoChannelStateObserver> video_channel_state_observer_;
+
+  // Holds a reference to the creating factory, if any. Will be notified
+  // when this instance is released, so it can stop delivering frames.
+  WebrtcDummyVideoEncoderFactory* factory_ = nullptr;
 };
 
-// This is the external encoder factory implementation that is passed to
-// WebRTC at the time of creation of peer connection. The external encoder
-// factory primarily manages creation and destruction of encoder.
-class WebrtcDummyVideoEncoderFactory
-    : public cricket::WebRtcVideoEncoderFactory {
+// This is the encoder factory implementation that is passed to
+// WebRTC at the time of creation of peer connection. The encoder
+// factory primarily manages creation of encoder.
+class WebrtcDummyVideoEncoderFactory : public webrtc::VideoEncoderFactory {
  public:
   WebrtcDummyVideoEncoderFactory();
   ~WebrtcDummyVideoEncoderFactory() override;
 
-  // cricket::WebRtcVideoEncoderFactory interface.
-  webrtc::VideoEncoder* CreateVideoEncoder(
-      const cricket::VideoCodec& codec) override;
-  const std::vector<cricket::VideoCodec>& supported_codecs() const override;
-  bool EncoderTypeHasInternalSource(webrtc::VideoCodecType type) const override;
-  void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override;
+  // webrtc::VideoEncoderFactory interface.
+  std::unique_ptr<webrtc::VideoEncoder> CreateVideoEncoder(
+      const webrtc::SdpVideoFormat& format) override;
+  std::vector<webrtc::SdpVideoFormat> GetSupportedFormats() const override;
+  CodecInfo QueryVideoEncoder(
+      const webrtc::SdpVideoFormat& format) const override;
 
   webrtc::EncodedImageCallback::Result SendEncodedFrame(
       const WebrtcVideoEncoder::EncodedFrame& packet,
@@ -102,15 +107,17 @@
     return video_channel_state_observer_;
   }
 
+  void EncoderDestroyed(WebrtcDummyVideoEncoder* encoder);
+
  private:
   scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
 
-  std::vector<cricket::VideoCodec> codecs_;
+  std::vector<webrtc::SdpVideoFormat> formats_;
 
   // Protects |video_channel_state_observer_| and |encoders_|.
   base::Lock lock_;
   base::WeakPtr<VideoChannelStateObserver> video_channel_state_observer_;
-  std::vector<std::unique_ptr<WebrtcDummyVideoEncoder>> encoders_;
+  std::vector<WebrtcDummyVideoEncoder*> encoders_;
   base::Callback<void(webrtc::VideoCodecType)> encoder_created_callback_;
 };
 
diff --git a/remoting/protocol/webrtc_transport.cc b/remoting/protocol/webrtc_transport.cc
index 04b0f94..7f8df70 100644
--- a/remoting/protocol/webrtc_transport.cc
+++ b/remoting/protocol/webrtc_transport.cc
@@ -35,6 +35,7 @@
 #include "third_party/webrtc/api/audio_codecs/opus/audio_decoder_opus.h"
 #include "third_party/webrtc/api/audio_codecs/opus/audio_encoder_opus.h"
 #include "third_party/webrtc/api/stats/rtcstats_objects.h"
+#include "third_party/webrtc/api/video_codecs/builtin_video_decoder_factory.h"
 
 using buzz::QName;
 using buzz::XmlElement;
@@ -213,17 +214,22 @@
  public:
   PeerConnectionWrapper(
       rtc::Thread* worker_thread,
-      std::unique_ptr<cricket::WebRtcVideoEncoderFactory> encoder_factory,
+      std::unique_ptr<webrtc::VideoEncoderFactory> encoder_factory,
       std::unique_ptr<cricket::PortAllocator> port_allocator,
       base::WeakPtr<WebrtcTransport> transport)
       : transport_(transport) {
     audio_module_ = new rtc::RefCountedObject<WebrtcAudioModule>();
 
     peer_connection_factory_ = webrtc::CreatePeerConnectionFactory(
-        worker_thread, rtc::Thread::Current(), audio_module_.get(),
+        worker_thread,  // network_thread
+        worker_thread,
+        rtc::Thread::Current(),  // signaling_thread
+        audio_module_,
         webrtc::CreateAudioEncoderFactory<webrtc::AudioEncoderOpus>(),
         webrtc::CreateAudioDecoderFactory<webrtc::AudioDecoderOpus>(),
-        encoder_factory.release(), nullptr);
+        std::move(encoder_factory), webrtc::CreateBuiltinVideoDecoderFactory(),
+        nullptr,   // audio_mixer
+        nullptr);  // audio_processing
 
     webrtc::PeerConnectionInterface::RTCConfiguration rtc_config;
     rtc_config.enable_dtls_srtp = true;
@@ -305,7 +311,7 @@
   }
 
  private:
-  scoped_refptr<WebrtcAudioModule> audio_module_;
+  rtc::scoped_refptr<WebrtcAudioModule> audio_module_;
   scoped_refptr<webrtc::PeerConnectionFactoryInterface>
       peer_connection_factory_;
   scoped_refptr<webrtc::PeerConnectionInterface> peer_connection_;
diff --git a/sandbox/linux/syscall_broker/broker_process.cc b/sandbox/linux/syscall_broker/broker_process.cc
index c510b8a..82ab4a76 100644
--- a/sandbox/linux/syscall_broker/broker_process.cc
+++ b/sandbox/linux/syscall_broker/broker_process.cc
@@ -103,6 +103,80 @@
   return false;
 }
 
+bool BrokerProcess::IsSyscallAllowed(int sysno) const {
+  switch (sysno) {
+#if !defined(__aarch64__)
+    case __NR_access:
+#endif
+    case __NR_faccessat:
+      return !fast_check_in_client_ ||
+             allowed_command_set_.test(COMMAND_ACCESS);
+
+#if !defined(__aarch64__)
+    case __NR_mkdir:
+#endif
+    case __NR_mkdirat:
+      return !fast_check_in_client_ || allowed_command_set_.test(COMMAND_MKDIR);
+
+#if !defined(__aarch64__)
+    case __NR_open:
+#endif
+    case __NR_openat:
+      return !fast_check_in_client_ || allowed_command_set_.test(COMMAND_OPEN);
+
+#if !defined(__aarch64__)
+    case __NR_readlink:
+#endif
+    case __NR_readlinkat:
+      return !fast_check_in_client_ ||
+             allowed_command_set_.test(COMMAND_READLINK);
+
+#if !defined(__aarch64__)
+    case __NR_rename:
+#endif
+    case __NR_renameat:
+    case __NR_renameat2:
+      return !fast_check_in_client_ ||
+             allowed_command_set_.test(COMMAND_RENAME);
+
+#if !defined(__aarch64__)
+    case __NR_rmdir:
+      return !fast_check_in_client_ || allowed_command_set_.test(COMMAND_RMDIR);
+#endif
+
+#if !defined(__aarch64__)
+    case __NR_stat:
+    case __NR_lstat:
+#endif
+#if defined(__NR_fstatat)
+    case __NR_fstatat:
+#endif
+#if defined(__x86_64__) || defined(__aarch64__)
+    case __NR_newfstatat:
+#endif
+      return !fast_check_in_client_ || allowed_command_set_.test(COMMAND_STAT);
+
+#if defined(__i386__) || defined(__arm__) || defined(__mips32__)
+    case __NR_stat64:
+    case __NR_lstat64:
+      // For security purposes, map stat64 to COMMAND_STAT permission. The
+      // separate COMMAND_STAT64 only exists to broker different-sized
+      // argument structs.
+      return !fast_check_in_client_ || allowed_command_set_.test(COMMAND_STAT);
+#endif
+
+#if !defined(__aarch64__)
+    case __NR_unlink:
+#endif
+    case __NR_unlinkat:
+      return !fast_check_in_client_ ||
+             allowed_command_set_.test(COMMAND_UNLINK);
+
+    default:
+      return false;
+  }
+}
+
 void BrokerProcess::CloseChannel() {
   broker_client_.reset();
 }
diff --git a/sandbox/linux/syscall_broker/broker_process.h b/sandbox/linux/syscall_broker/broker_process.h
index 1359930..e994a01 100644
--- a/sandbox/linux/syscall_broker/broker_process.h
+++ b/sandbox/linux/syscall_broker/broker_process.h
@@ -74,6 +74,14 @@
   // Return the PID of the child created by Init().
   int broker_pid() const { return broker_pid_; }
 
+  // Can be used in bpf_dsl::Policy::EvaluateSyscall() implementations to
+  // determine if the system call |sysno| should be trapped and forwarded
+  // to the broker process for handling. This examines the
+  // |allowed_command_set_| iff |fast_check_in_client_| is true. If
+  // the fast checks are disabled, then all possible brokerable system
+  // calls are forwarded to the broker process for handling.
+  bool IsSyscallAllowed(int sysno) const;
+
   // The following methods are used in place of the equivalently-named
   // syscalls by the trap handler. They, in turn, forward the call onto
   // |broker_client_| for further processing. They will all be async signal
diff --git a/sandbox/linux/syscall_broker/broker_process_unittest.cc b/sandbox/linux/syscall_broker/broker_process_unittest.cc
index 8df69d0..553b02a 100644
--- a/sandbox/linux/syscall_broker/broker_process_unittest.cc
+++ b/sandbox/linux/syscall_broker/broker_process_unittest.cc
@@ -27,6 +27,8 @@
 #include "base/macros.h"
 #include "base/posix/eintr_wrapper.h"
 #include "base/posix/unix_domain_socket.h"
+#include "base/stl_util.h"
+#include "base/strings/stringprintf.h"
 #include "build/build_config.h"
 #include "sandbox/linux/syscall_broker/broker_client.h"
 #include "sandbox/linux/tests/scoped_temporary_file.h"
@@ -1452,5 +1454,85 @@
   TestUnlinkHelper(false);
 }
 
+TEST(BrokerProcess, IsSyscallAllowed) {
+  const struct {
+    int sysno;
+    BrokerCommand command;
+  } kSyscallToCommandMap[] = {
+#if defined(__NR_access)
+    {__NR_access, COMMAND_ACCESS},
+#endif
+    {__NR_faccessat, COMMAND_ACCESS},
+#if defined(__NR_mkdir)
+    {__NR_mkdir, COMMAND_MKDIR},
+#endif
+    {__NR_mkdirat, COMMAND_MKDIR},
+#if defined(__NR_open)
+    {__NR_open, COMMAND_OPEN},
+#endif
+    {__NR_openat, COMMAND_OPEN},
+#if defined(__NR_readlink)
+    {__NR_readlink, COMMAND_READLINK},
+#endif
+    {__NR_readlinkat, COMMAND_READLINK},
+#if defined(__NR_rename)
+    {__NR_rename, COMMAND_RENAME},
+#endif
+    {__NR_renameat, COMMAND_RENAME},
+#if defined(__NR_rmdir)
+    {__NR_rmdir, COMMAND_RMDIR},
+#endif
+#if defined(__NR_stat)
+    {__NR_stat, COMMAND_STAT},
+#endif
+#if defined(__NR_lstat)
+    {__NR_lstat, COMMAND_STAT},
+#endif
+#if defined(__NR_fstatat)
+    {__NR_fstatat, COMMAND_STAT},
+#endif
+#if defined(__NR_newfstatat)
+    {__NR_newfstatat, COMMAND_STAT},
+#endif
+#if defined(__NR_stat64)
+    {__NR_stat64, COMMAND_STAT},
+#endif
+#if defined(__NR_lstat64)
+    {__NR_lstat64, COMMAND_STAT},
+#endif
+#if defined(__NR_unlink)
+    {__NR_unlink, COMMAND_UNLINK},
+#endif
+    {__NR_unlinkat, COMMAND_UNLINK},
+  };
+
+  for (const auto& test : kSyscallToCommandMap) {
+    // Test with fast_check_in_client.
+    {
+      SCOPED_TRACE(base::StringPrintf("fast check, sysno=%d", test.sysno));
+      BrokerProcess process(ENOSYS, MakeBrokerCommandSet({test.command}), {},
+                            true, true);
+      EXPECT_TRUE(process.IsSyscallAllowed(test.sysno));
+      for (const auto& other : kSyscallToCommandMap) {
+        SCOPED_TRACE(base::StringPrintf("others test, sysno=%d", other.sysno));
+        EXPECT_EQ(other.command == test.command,
+                  process.IsSyscallAllowed(other.sysno));
+      }
+    }
+
+    // Test without fast_check_in_client.
+    {
+      SCOPED_TRACE(base::StringPrintf("no fast check, sysno=%d", test.sysno));
+      BrokerProcess process(ENOSYS, MakeBrokerCommandSet({test.command}), {},
+                            false, true);
+      EXPECT_TRUE(process.IsSyscallAllowed(test.sysno));
+      for (const auto& other : kSyscallToCommandMap) {
+        SCOPED_TRACE(base::StringPrintf("others test, sysno=%d", other.sysno));
+        EXPECT_TRUE(process.IsSyscallAllowed(other.sysno));
+      }
+    }
+  }
+}
+
 }  // namespace syscall_broker
 }  // namespace sandbox
diff --git a/services/audio/input_controller.cc b/services/audio/input_controller.cc
index 4dd7694..a07e16d2 100644
--- a/services/audio/input_controller.cc
+++ b/services/audio/input_controller.cc
@@ -209,10 +209,9 @@
   DCHECK(audio_manager->GetTaskRunner()->BelongsToCurrentThread());
   DCHECK(sync_writer);
   DCHECK(event_handler);
+  DCHECK(params.IsValid());
 
-  // TODO(https://crbug.com/803102): remove check after switching to input
-  // stream factory.
-  if (!params.IsValid() || (params.channels() > kMaxInputChannels))
+  if (params.channels() > kMaxInputChannels)
     return nullptr;
 
   // Create the InputController object and ensure that it runs on
diff --git a/services/audio/input_controller_unittest.cc b/services/audio/input_controller_unittest.cc
index 07ac464d..a0dbcbb 100644
--- a/services/audio/input_controller_unittest.cc
+++ b/services/audio/input_controller_unittest.cc
@@ -179,17 +179,6 @@
   task_environment_.RunUntilIdle();
 }
 
-// Test that InputController rejects insanely large packet sizes.
-TEST_F(InputControllerTest, SamplesPerPacketTooLarge) {
-  // Create an audio device with a very large packet size.
-  params_.set_frames_per_buffer(1000000);
-
-  // OnCreated() shall not be called in this test.
-  EXPECT_CALL(event_handler_, OnCreated(_)).Times(Exactly(0));
-  CreateAudioController();
-  ASSERT_FALSE(controller_.get());
-}
-
 TEST_F(InputControllerTest, CloseTwice) {
   EXPECT_CALL(event_handler_, OnCreated(_));
   CreateAudioController();
diff --git a/services/audio/input_stream.cc b/services/audio/input_stream.cc
index 55121975..ecbb4623 100644
--- a/services/audio/input_stream.cc
+++ b/services/audio/input_stream.cc
@@ -59,6 +59,7 @@
   DCHECK(client_.is_bound());
   DCHECK(created_callback_);
   DCHECK(delete_callback_);
+  DCHECK(params.IsValid());
   TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("audio", "audio::InputStream", this);
   TRACE_EVENT_NESTABLE_ASYNC_BEGIN2("audio", "InputStream", this, "device id",
                                     device_id, "params",
@@ -78,7 +79,7 @@
 
   // Only MONO, STEREO and STEREO_AND_KEYBOARD_MIC channel layouts are expected,
   // see AudioManagerBase::MakeAudioInputStream().
-  if (!params.IsValid() || (params.channels() > kMaxInputChannels)) {
+  if (params.channels() > kMaxInputChannels) {
     OnStreamError(true);
     return;
   }
diff --git a/services/media_session/public/mojom/BUILD.gn b/services/media_session/public/mojom/BUILD.gn
new file mode 100644
index 0000000..389fc45
--- /dev/null
+++ b/services/media_session/public/mojom/BUILD.gn
@@ -0,0 +1,18 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//mojo/public/tools/bindings/mojom.gni")
+
+mojom_component("mojom") {
+  output_prefix = "media_session_public_mojom"
+  macro_prefix = "MEDIA_SESSION_PUBLIC_MOJOM"
+
+  sources = [
+    "audio_focus.mojom",
+  ]
+
+  public_deps = [
+    "//mojo/public/mojom/base",
+  ]
+}
diff --git a/components/contextual_search/common/OWNERS b/services/media_session/public/mojom/OWNERS
similarity index 100%
copy from components/contextual_search/common/OWNERS
copy to services/media_session/public/mojom/OWNERS
diff --git a/services/media_session/public/mojom/audio_focus.mojom b/services/media_session/public/mojom/audio_focus.mojom
new file mode 100644
index 0000000..c61c7bb
--- /dev/null
+++ b/services/media_session/public/mojom/audio_focus.mojom
@@ -0,0 +1,17 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module media_session.mojom;
+
+// These are the different types of audio focus that can be requested.
+enum AudioFocusType {
+  // Request permanent audio focus when you plan to play audio for the
+  // foreseeable future (for example, when playing music) and you expect
+  // the previous holder of audio focus to stop playing.
+  kGain,
+
+  // Request transient focus when you expect to play audio for only a
+  // short time and you expect the previous holder to pause playing.
+  kGainTransientMayDuck,
+};
diff --git a/services/network/crl_set_distributor.h b/services/network/crl_set_distributor.h
index 9ad3c7a..9e8f96a7 100644
--- a/services/network/crl_set_distributor.h
+++ b/services/network/crl_set_distributor.h
@@ -53,8 +53,9 @@
  private:
   void OnCRLSetParsed(scoped_refptr<net::CRLSet> crl_set);
 
-  base::ObserverList<Observer, true /*check_empty*/, false /*allow_reentrancy*/>
-      observers_;
+  base::ObserverList<Observer,
+                     true /*check_empty*/,
+                     false /*allow_reentrancy*/>::Unchecked observers_;
   scoped_refptr<net::CRLSet> crl_set_;
 
   base::WeakPtrFactory<CRLSetDistributor> weak_factory_;
diff --git a/services/network/host_resolver.cc b/services/network/host_resolver.cc
index fad5c39..ddc12783 100644
--- a/services/network/host_resolver.cc
+++ b/services/network/host_resolver.cc
@@ -31,6 +31,8 @@
   net::HostResolver::ResolveHostParameters parameters;
   parameters.dns_query_type = mojo_parameters->dns_query_type;
   parameters.initial_priority = mojo_parameters->initial_priority;
+  parameters.include_canonical_name = mojo_parameters->include_canonical_name;
+  parameters.loopback_only = mojo_parameters->loopback_only;
   parameters.is_speculative = mojo_parameters->is_speculative;
   return parameters;
 }
diff --git a/services/network/host_resolver_unittest.cc b/services/network/host_resolver_unittest.cc
index 6029787..11f9965 100644
--- a/services/network/host_resolver_unittest.cc
+++ b/services/network/host_resolver_unittest.cc
@@ -198,6 +198,61 @@
   EXPECT_EQ(net::HIGHEST, inner_resolver->last_request_priority());
 }
 
+TEST_F(HostResolverTest, IncludeCanonicalName) {
+  auto inner_resolver = std::make_unique<net::MockHostResolver>();
+  inner_resolver->rules()->AddRuleWithFlags("example.com", "123.0.12.24",
+                                            net::HOST_RESOLVER_CANONNAME,
+                                            "canonicalexample.com");
+  net::NetLog net_log;
+
+  HostResolver resolver(inner_resolver.get(), &net_log);
+
+  mojom::ResolveHostParametersPtr optional_parameters =
+      mojom::ResolveHostParameters::New();
+  optional_parameters->include_canonical_name = true;
+
+  base::RunLoop run_loop;
+  mojom::ResolveHostClientPtr response_client_ptr;
+  TestResolveHostClient response_client(&response_client_ptr, &run_loop);
+
+  resolver.ResolveHost(net::HostPortPair("example.com", 80),
+                       std::move(optional_parameters),
+                       std::move(response_client_ptr));
+  run_loop.Run();
+
+  EXPECT_EQ(net::OK, response_client.result_error());
+  EXPECT_THAT(response_client.result_addresses().value().endpoints(),
+              testing::ElementsAre(CreateExpectedEndPoint("123.0.12.24", 80)));
+  EXPECT_EQ("canonicalexample.com",
+            response_client.result_addresses().value().canonical_name());
+}
+
+TEST_F(HostResolverTest, LoopbackOnly) {
+  auto inner_resolver = std::make_unique<net::MockHostResolver>();
+  inner_resolver->rules()->AddRuleWithFlags("example.com", "127.0.12.24",
+                                            net::HOST_RESOLVER_LOOPBACK_ONLY);
+  net::NetLog net_log;
+
+  HostResolver resolver(inner_resolver.get(), &net_log);
+
+  mojom::ResolveHostParametersPtr optional_parameters =
+      mojom::ResolveHostParameters::New();
+  optional_parameters->loopback_only = true;
+
+  base::RunLoop run_loop;
+  mojom::ResolveHostClientPtr response_client_ptr;
+  TestResolveHostClient response_client(&response_client_ptr, &run_loop);
+
+  resolver.ResolveHost(net::HostPortPair("example.com", 80),
+                       std::move(optional_parameters),
+                       std::move(response_client_ptr));
+  run_loop.Run();
+
+  EXPECT_EQ(net::OK, response_client.result_error());
+  EXPECT_THAT(response_client.result_addresses().value().endpoints(),
+              testing::ElementsAre(CreateExpectedEndPoint("127.0.12.24", 80)));
+}
+
 TEST_F(HostResolverTest, Failure_Sync) {
   auto inner_resolver = std::make_unique<net::MockHostResolver>();
   inner_resolver->rules()->AddSimulatedFailure("example.com");
diff --git a/services/network/public/mojom/host_resolver.mojom b/services/network/public/mojom/host_resolver.mojom
index 1f68ad1..91e010e7 100644
--- a/services/network/public/mojom/host_resolver.mojom
+++ b/services/network/public/mojom/host_resolver.mojom
@@ -56,6 +56,16 @@
   // handle.
   ResolveHostHandle&? control_handle;
 
+  // If |true|, requests that the resolver include AddressList::canonical_name
+  // in the results. If the resolver can do so without significant performance
+  // impact, canonical_name may still be included even if parameter is set to
+  // |false|.
+  bool include_canonical_name = false;
+
+  // Hint to the resolver that resolution is only being requested for loopback
+  // hosts.
+  bool loopback_only = false;
+
   // Set |true| iff the host resolve request is only being made speculatively
   // to fill the cache and the result addresses will not be used. The request
   // will receive special logging/observer treatment, and
diff --git a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc
index 0a07fdf..c2b81743 100644
--- a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc
+++ b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc
@@ -55,29 +55,6 @@
     case __NR_prctl:
     case __NR_sysinfo:
       return Allow();
-#if !defined(__aarch64__)
-    case __NR_access:
-    case __NR_open:
-#endif  // !defined(__aarch64__)
-    case __NR_faccessat:
-    case __NR_openat:
-#if defined(__NR_stat)
-    case __NR_stat:
-#endif
-#if defined(__NR_stat64)
-    case __NR_stat64:
-#endif
-#if defined(__NR_fstatat)
-    case __NR_fstatat:
-#endif
-#if defined(__NR_newfstatat)
-    case __NR_newfstatat:
-#endif
-    {
-      auto* broker_process = SandboxLinux::GetInstance()->broker_process();
-      DCHECK(broker_process);
-      return Trap(BrokerProcess::SIGSYS_Handler, broker_process);
-    }
     case __NR_sched_getaffinity:
     case __NR_sched_setaffinity:
       return sandbox::RestrictSchedTarget(GetPolicyPid(), sysno);
@@ -85,6 +62,11 @@
       if (SyscallSets::IsEventFd(sysno))
         return Allow();
 
+      auto* broker_process = SandboxLinux::GetInstance()->broker_process();
+      if (broker_process->IsSyscallAllowed(sysno)) {
+        return Trap(BrokerProcess::SIGSYS_Handler, broker_process);
+      }
+
       // Default on the baseline policy.
       return BPFBasePolicy::EvaluateSyscall(sysno);
   }
diff --git a/services/service_manager/sandbox/linux/bpf_network_policy_linux.cc b/services/service_manager/sandbox/linux/bpf_network_policy_linux.cc
index 49c378f..b7474d5 100644
--- a/services/service_manager/sandbox/linux/bpf_network_policy_linux.cc
+++ b/services/service_manager/sandbox/linux/bpf_network_policy_linux.cc
@@ -33,70 +33,13 @@
 NetworkProcessPolicy::~NetworkProcessPolicy() {}
 
 ResultExpr NetworkProcessPolicy::EvaluateSyscall(int sysno) const {
-  switch (sysno) {
-#if defined(__NR_access)
-    case __NR_access:
-#endif
-#if defined(__NR_faccessat)
-    case __NR_faccessat:
-#endif
-#if defined(__NR_mkdir)
-    case __NR_mkdir:
-#endif
-#if defined(__NR_mkdirat)
-    case __NR_mkdirat:
-#endif
-#if defined(__NR_open)
-    case __NR_open:
-#endif
-#if defined(__NR_openat)
-    case __NR_openat:
-#endif
-#if defined(__NR_readlink)
-    case __NR_readlink:
-#endif
-#if defined(__NR_readlinkat)
-    case __NR_readlinkat:
-#endif
-#if defined(__NR_rmdir)
-    case __NR_rmdir:
-#endif
-#if defined(__NR_rename)
-    case __NR_rename:
-#endif
-#if defined(__NR_renameat)
-    case __NR_renameat:
-#endif
-#if defined(__NR_stat)
-    case __NR_stat:
-#endif
-#if defined(__NR_stat64)
-    case __NR_stat64:
-#endif
-#if defined(__NR_lstat)
-    case __NR_lstat:
-#endif
-#if defined(__NR_lstat64)
-    case __NR_lstat64:
-#endif
-#if defined(__NR_fstatat)
-    case __NR_fstatat:
-#endif
-#if defined(__NR_newfstatat)
-    case __NR_newfstatat:
-#endif
-#if defined(__NR_unlink)
-    case __NR_unlink:
-#endif
-#if defined(__NR_unlinkat)
-    case __NR_unlinkat:
-#endif
-      return Trap(BrokerProcess::SIGSYS_Handler,
-                  SandboxLinux::GetInstance()->broker_process());
-    default:
-      // TODO(tsepez): FIX this.
-      return Allow();
+  auto* broker_process = SandboxLinux::GetInstance()->broker_process();
+  if (broker_process->IsSyscallAllowed(sysno)) {
+    return Trap(BrokerProcess::SIGSYS_Handler, broker_process);
   }
+
+  // TODO(tsepez): FIX this.
+  return Allow();
 }
 
 }  // namespace service_manager
diff --git a/sql/BUILD.gn b/sql/BUILD.gn
index 98c6265bf..0a220ec 100644
--- a/sql/BUILD.gn
+++ b/sql/BUILD.gn
@@ -21,6 +21,8 @@
     "recovery.cc",
     "recovery.h",
     "sql_export.h",
+    "sql_features.cc",
+    "sql_features.h",
     "sql_memory_dump_provider.cc",
     "sql_memory_dump_provider.h",
     "statement.cc",
diff --git a/sql/database.cc b/sql/database.cc
index 66bf05b..ffe7c6b 100644
--- a/sql/database.cc
+++ b/sql/database.cc
@@ -33,6 +33,7 @@
 #include "sql/database_memory_dump_provider.h"
 #include "sql/initialization.h"
 #include "sql/meta_table.h"
+#include "sql/sql_features.h"
 #include "sql/statement.h"
 #include "sql/vfs_wrapper.h"
 #include "third_party/sqlite/sqlite3.h"
@@ -1674,6 +1675,12 @@
     ignore_result(Execute("PRAGMA locking_mode=EXCLUSIVE"));
   }
 
+  if (base::FeatureList::IsEnabled(features::kSqlTempStoreMemory)) {
+    err = ExecuteAndReturnErrorCode("PRAGMA temp_store=MEMORY");
+    // This operates on in-memory configuration, so it should not fail.
+    DCHECK_EQ(err, SQLITE_OK) << "Failed switching to in-RAM temporary storage";
+  }
+
   // http://www.sqlite.org/pragma.html#pragma_journal_mode
   // DELETE (default) - delete -journal file to commit.
   // TRUNCATE - truncate -journal file to commit.
@@ -1681,7 +1688,7 @@
   // TRUNCATE should be faster than DELETE because it won't need directory
   // changes for each transaction.  PERSIST may break the spirit of using
   // secure_delete.
-  ignore_result(Execute("PRAGMA journal_mode = TRUNCATE"));
+  ignore_result(Execute("PRAGMA journal_mode=TRUNCATE"));
 
   const base::TimeDelta kBusyTimeout =
       base::TimeDelta::FromSeconds(kBusyTimeoutSeconds);
@@ -1728,7 +1735,7 @@
   // 64-bit platforms.
   size_t mmap_size = mmap_disabled_ ? 0 : GetAppropriateMmapSize();
   std::string mmap_sql =
-      base::StringPrintf("PRAGMA mmap_size = %" PRIuS, mmap_size);
+      base::StringPrintf("PRAGMA mmap_size=%" PRIuS, mmap_size);
   ignore_result(Execute(mmap_sql.c_str()));
 
   // Determine if memory-mapping has actually been enabled.  The Execute() above
@@ -1889,7 +1896,7 @@
   // allows SQLite to process through certain cases of corruption.
   // Failing to set this pragma probably means that the database is
   // beyond recovery.
-  static const char kWritableSchemaSql[] = "PRAGMA writable_schema = ON";
+  static const char kWritableSchemaSql[] = "PRAGMA writable_schema=ON";
   if (!Execute(kWritableSchemaSql))
     return false;
 
@@ -1909,7 +1916,7 @@
   }
 
   // Best effort to put things back as they were before.
-  static const char kNoWritableSchemaSql[] = "PRAGMA writable_schema = OFF";
+  static const char kNoWritableSchemaSql[] = "PRAGMA writable_schema=OFF";
   ignore_result(Execute(kNoWritableSchemaSql));
 
   return ret;
diff --git a/sql/database_unittest.cc b/sql/database_unittest.cc
index 57a4505..78c5bfb 100644
--- a/sql/database_unittest.cc
+++ b/sql/database_unittest.cc
@@ -13,12 +13,14 @@
 #include "base/macros.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/test/metrics/histogram_tester.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/test/simple_test_tick_clock.h"
 #include "base/trace_event/process_memory_dump.h"
 #include "build/build_config.h"
 #include "sql/database.h"
 #include "sql/database_memory_dump_provider.h"
 #include "sql/meta_table.h"
+#include "sql/sql_features.h"
 #include "sql/statement.h"
 #include "sql/test/error_callback_support.h"
 #include "sql/test/scoped_error_expecter.h"
@@ -100,7 +102,6 @@
 
 namespace {
 
-using sql::test::ExecuteWithResults;
 using sql::test::ExecuteWithResult;
 
 // Helper to return the count of items in sqlite_master.  Return -1 in
@@ -1618,4 +1619,22 @@
 #endif  // !defined(OS_ANDROID) && !defined(OS_IOS) && !defined(OS_FUCHSIA)
 }
 
+// Verify that Raze() can handle an empty file.  SQLite should treat
+// this as an empty database.
+TEST_F(SQLDatabaseTest, SqlTempMemoryFeatureFlagDefault) {
+  EXPECT_EQ("0", ExecuteWithResult(&db(), "PRAGMA temp_store"))
+      << "temp_store should not be set by default";
+}
+
+TEST_F(SQLDatabaseTest, SqlTempMemoryFeatureFlagEnabled) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitAndEnableFeature(features::kSqlTempStoreMemory);
+
+  db().Close();
+
+  ASSERT_TRUE(db().Open(db_path()));
+  EXPECT_EQ("2", ExecuteWithResult(&db(), "PRAGMA temp_store"))
+      << "temp_store should be set by the feature flag SqlTempStoreMemory";
+}
+
 }  // namespace sql
diff --git a/sql/sql_features.cc b/sql/sql_features.cc
new file mode 100644
index 0000000..c7cf33e
--- /dev/null
+++ b/sql/sql_features.cc
@@ -0,0 +1,23 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "sql/sql_features.h"
+
+namespace sql {
+
+namespace features {
+
+// SQLite databases only use RAM for temporary storage.
+//
+// Enabling this feature matches the SQLITE_TEMP_STORE=3 build option, which is
+// used on Android.
+//
+// TODO(pwnall): After the memory impact of the config change is assessed, land
+//               https://crrev.com/c/1146493 and remove this flag.
+const base::Feature kSqlTempStoreMemory{"SqlTempStoreMemory",
+                                        base::FEATURE_DISABLED_BY_DEFAULT};
+
+}  // namespace features
+
+}  // namespace sql
diff --git a/sql/sql_features.h b/sql/sql_features.h
new file mode 100644
index 0000000..4b0c947
--- /dev/null
+++ b/sql/sql_features.h
@@ -0,0 +1,21 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SQL_SQL_FEATURES_H_
+#define SQL_SQL_FEATURES_H_
+
+#include "base/feature_list.h"
+#include "sql/sql_export.h"
+
+namespace sql {
+
+namespace features {
+
+SQL_EXPORT extern const base::Feature kSqlTempStoreMemory;
+
+}  // namespace features
+
+}  // namespace sql
+
+#endif  // SQL_SQL_FEATURES_H_
diff --git a/storage/browser/blob/blob_reader_unittest.cc b/storage/browser/blob/blob_reader_unittest.cc
index c7bc7b2..6d1f6f73 100644
--- a/storage/browser/blob/blob_reader_unittest.cc
+++ b/storage/browser/blob/blob_reader_unittest.cc
@@ -22,7 +22,7 @@
 #include "base/test/scoped_task_environment.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/time.h"
-#include "net/base/completion_callback.h"
+#include "net/base/completion_once_callback.h"
 #include "net/base/io_buffer.h"
 #include "net/base/net_errors.h"
 #include "net/base/test_completion_callback.h"
@@ -239,12 +239,12 @@
 
   int Read(net::IOBuffer* buf,
            int buf_length,
-           const net::CompletionCallback& done) override {
+           net::CompletionOnceCallback done) override {
     DCHECK(buf);
     // When async_task_runner_ is not set, return synchronously.
     if (!async_task_runner_.get()) {
       if (net_error_ == net::OK) {
-        return ReadImpl(buf, buf_length, net::CompletionCallback());
+        return ReadImpl(buf, buf_length, net::CompletionOnceCallback());
       } else {
         return net_error_;
       }
@@ -256,15 +256,15 @@
           FROM_HERE,
           base::BindOnce(base::IgnoreResult(&FakeFileStreamReader::ReadImpl),
                          base::Unretained(this), base::WrapRefCounted(buf),
-                         buf_length, done));
+                         buf_length, std::move(done)));
     } else {
-      async_task_runner_->PostTask(FROM_HERE, base::BindOnce(done, net_error_));
+      async_task_runner_->PostTask(FROM_HERE,
+                                   base::BindOnce(std::move(done), net_error_));
     }
     return net::ERR_IO_PENDING;
   }
 
-  int64_t GetLength(
-      const net::Int64CompletionCallback& size_callback) override {
+  int64_t GetLength(net::Int64CompletionOnceCallback size_callback) override {
     // When async_task_runner_ is not set, return synchronously.
     if (!async_task_runner_.get()) {
       if (net_error_ == net::OK) {
@@ -274,12 +274,12 @@
       }
     }
     if (net_error_ == net::OK) {
-      async_task_runner_->PostTask(FROM_HERE,
-                                   base::BindOnce(size_callback, size_));
+      async_task_runner_->PostTask(
+          FROM_HERE, base::BindOnce(std::move(size_callback), size_));
     } else {
       async_task_runner_->PostTask(
-          FROM_HERE,
-          base::BindOnce(size_callback, static_cast<int64_t>(net_error_)));
+          FROM_HERE, base::BindOnce(std::move(size_callback),
+                                    static_cast<int64_t>(net_error_)));
     }
     return net::ERR_IO_PENDING;
   }
@@ -287,7 +287,7 @@
  private:
   int ReadImpl(scoped_refptr<net::IOBuffer> buf,
                int buf_length,
-               const net::CompletionCallback& done) {
+               net::CompletionOnceCallback done) {
     CHECK_GE(buf_length, 0);
     int length = std::min(buf_length, buffer_->BytesRemaining());
     memcpy(buf->data(), buffer_->data(), length);
@@ -295,7 +295,7 @@
     if (done.is_null()) {
       return length;
     }
-    done.Run(length);
+    std::move(done).Run(length);
     return net::ERR_IO_PENDING;
   }
 
diff --git a/storage/browser/fileapi/file_stream_reader.h b/storage/browser/fileapi/file_stream_reader.h
index d7abbf2..99fba8c 100644
--- a/storage/browser/fileapi/file_stream_reader.h
+++ b/storage/browser/fileapi/file_stream_reader.h
@@ -9,7 +9,7 @@
 
 #include "base/compiler_specific.h"
 #include "base/files/file.h"
-#include "net/base/completion_callback.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/storage_browser_export.h"
 
 namespace base {
@@ -80,8 +80,9 @@
   //
   // If the stream is deleted while it has an in-flight Read operation
   // |callback| will not be called.
-  virtual int Read(net::IOBuffer* buf, int buf_len,
-                   const net::CompletionCallback& callback) = 0;
+  virtual int Read(net::IOBuffer* buf,
+                   int buf_len,
+                   net::CompletionOnceCallback callback) = 0;
 
   // Returns the length of the file if it could successfully retrieve the
   // file info *and* its last modification time equals to
@@ -92,7 +93,7 @@
   // Note that the return type is int64_t to return a larger file's size (a file
   // larger than 2G) but an error code should fit in the int range (may be
   // smaller than int64_t range).
-  virtual int64_t GetLength(const net::Int64CompletionCallback& callback) = 0;
+  virtual int64_t GetLength(net::Int64CompletionOnceCallback callback) = 0;
 };
 
 }  // namespace storage
diff --git a/storage/browser/fileapi/file_stream_writer.h b/storage/browser/fileapi/file_stream_writer.h
index bfbdbf5..83fc071 100644
--- a/storage/browser/fileapi/file_stream_writer.h
+++ b/storage/browser/fileapi/file_stream_writer.h
@@ -7,7 +7,7 @@
 
 #include <stdint.h>
 
-#include "net/base/completion_callback.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/storage_browser_export.h"
 
 namespace base {
@@ -59,8 +59,9 @@
   //      or there is not enough room left on the disk.
   //
   // It is invalid to call Write while there is an in-flight async operation.
-  virtual int Write(net::IOBuffer* buf, int buf_len,
-                    const net::CompletionCallback& callback) = 0;
+  virtual int Write(net::IOBuffer* buf,
+                    int buf_len,
+                    net::CompletionOnceCallback callback) = 0;
 
   // Cancels an in-flight async operation.
   //
@@ -74,7 +75,7 @@
   // In either case, the callback function passed to the in-flight async
   // operation is dismissed immediately when Cancel() is called, and thus
   // will never be called.
-  virtual int Cancel(const net::CompletionCallback& callback) = 0;
+  virtual int Cancel(net::CompletionOnceCallback callback) = 0;
 
   // Flushes the data written so far.
   //
@@ -84,7 +85,7 @@
   // called when the flush has completed.
   //
   // It is invalid to call Flush while there is an in-flight async operation.
-  virtual int Flush(const net::CompletionCallback& callback) = 0;
+  virtual int Flush(net::CompletionOnceCallback callback) = 0;
 };
 
 }  // namespace storage
diff --git a/storage/browser/fileapi/file_system_context.cc b/storage/browser/fileapi/file_system_context.cc
index dd41383..2764e387 100644
--- a/storage/browser/fileapi/file_system_context.cc
+++ b/storage/browser/fileapi/file_system_context.cc
@@ -100,6 +100,7 @@
     case kFileSystemTypeCloudDevice:
     case kFileSystemTypeProvided:
     case kFileSystemTypeDeviceMediaAsFileStorage:
+    case kFileSystemTypeDriveFs:
       return FILE_PERMISSION_USE_FILE_PERMISSION;
 
     case kFileSystemTypeRestrictedNativeLocal:
diff --git a/storage/browser/fileapi/file_system_file_stream_reader.cc b/storage/browser/fileapi/file_system_file_stream_reader.cc
index 78d91e36..8511e21 100644
--- a/storage/browser/fileapi/file_system_file_stream_reader.cc
+++ b/storage/browser/fileapi/file_system_file_stream_reader.cc
@@ -6,6 +6,8 @@
 
 #include <stdint.h>
 
+#include <utility>
+
 #include "base/single_thread_task_runner.h"
 #include "net/base/file_stream.h"
 #include "net/base/io_buffer.h"
@@ -28,88 +30,53 @@
       file_system_context, url, initial_offset, expected_modification_time);
 }
 
-}  // namespace storage
-
-namespace storage {
-
-namespace {
-
-void ReadAdapter(base::WeakPtr<FileSystemFileStreamReader> reader,
-                 net::IOBuffer* buf, int buf_len,
-                 const net::CompletionCallback& callback) {
-  if (!reader.get())
-    return;
-  int rv = reader->Read(buf, buf_len, callback);
-  if (rv != net::ERR_IO_PENDING)
-    callback.Run(rv);
-}
-
-void GetLengthAdapter(base::WeakPtr<FileSystemFileStreamReader> reader,
-                      const net::Int64CompletionCallback& callback) {
-  if (!reader.get())
-    return;
-  int rv = reader->GetLength(callback);
-  if (rv != net::ERR_IO_PENDING)
-    callback.Run(rv);
-}
-
-void Int64CallbackAdapter(const net::Int64CompletionCallback& callback,
-                          int value) {
-  callback.Run(value);
-}
-
-}  // namespace
-
-FileSystemFileStreamReader::~FileSystemFileStreamReader() = default;
-
-int FileSystemFileStreamReader::Read(
-    net::IOBuffer* buf, int buf_len,
-    const net::CompletionCallback& callback) {
-  if (local_file_reader_)
-    return local_file_reader_->Read(buf, buf_len, callback);
-  return CreateSnapshot(base::Bind(&ReadAdapter, weak_factory_.GetWeakPtr(),
-                                   base::RetainedRef(buf), buf_len, callback),
-                        callback);
-}
-
-int64_t FileSystemFileStreamReader::GetLength(
-    const net::Int64CompletionCallback& callback) {
-  if (local_file_reader_)
-    return local_file_reader_->GetLength(callback);
-  return CreateSnapshot(
-      base::Bind(&GetLengthAdapter, weak_factory_.GetWeakPtr(), callback),
-      base::Bind(&Int64CallbackAdapter, callback));
-}
-
 FileSystemFileStreamReader::FileSystemFileStreamReader(
     FileSystemContext* file_system_context,
     const FileSystemURL& url,
     int64_t initial_offset,
     const base::Time& expected_modification_time)
-    : file_system_context_(file_system_context),
+    : read_buf_(nullptr),
+      read_buf_len_(0),
+      file_system_context_(file_system_context),
       url_(url),
       initial_offset_(initial_offset),
       expected_modification_time_(expected_modification_time),
       has_pending_create_snapshot_(false),
       weak_factory_(this) {}
 
-int FileSystemFileStreamReader::CreateSnapshot(
-    const base::Closure& callback,
-    const net::CompletionCallback& error_callback) {
+FileSystemFileStreamReader::~FileSystemFileStreamReader() = default;
+
+int FileSystemFileStreamReader::Read(net::IOBuffer* buf,
+                                     int buf_len,
+                                     net::CompletionOnceCallback callback) {
+  if (local_file_reader_)
+    return local_file_reader_->Read(buf, buf_len, std::move(callback));
+
+  read_buf_ = buf;
+  read_buf_len_ = buf_len;
+  read_callback_ = std::move(callback);
+  return CreateSnapshot();
+}
+
+int64_t FileSystemFileStreamReader::GetLength(
+    net::Int64CompletionOnceCallback callback) {
+  if (local_file_reader_)
+    return local_file_reader_->GetLength(std::move(callback));
+
+  get_length_callback_ = std::move(callback);
+  return CreateSnapshot();
+}
+
+int FileSystemFileStreamReader::CreateSnapshot() {
   DCHECK(!has_pending_create_snapshot_);
   has_pending_create_snapshot_ = true;
   file_system_context_->operation_runner()->CreateSnapshotFile(
-      url_,
-      base::Bind(&FileSystemFileStreamReader::DidCreateSnapshot,
-                 weak_factory_.GetWeakPtr(),
-                 callback,
-                 error_callback));
+      url_, base::BindOnce(&FileSystemFileStreamReader::DidCreateSnapshot,
+                           weak_factory_.GetWeakPtr()));
   return net::ERR_IO_PENDING;
 }
 
 void FileSystemFileStreamReader::DidCreateSnapshot(
-    const base::Closure& callback,
-    const net::CompletionCallback& error_callback,
     base::File::Error file_error,
     const base::File::Info& file_info,
     const base::FilePath& platform_path,
@@ -119,19 +86,44 @@
   has_pending_create_snapshot_ = false;
 
   if (file_error != base::File::FILE_OK) {
-    error_callback.Run(net::FileErrorToNetError(file_error));
+    if (read_callback_) {
+      DCHECK(!get_length_callback_);
+      std::move(read_callback_).Run(net::FileErrorToNetError(file_error));
+      return;
+    }
+    std::move(get_length_callback_).Run(net::FileErrorToNetError(file_error));
     return;
   }
 
   // Keep the reference (if it's non-null) so that the file won't go away.
   snapshot_ref_ = std::move(file_ref);
 
-  local_file_reader_.reset(
-      FileStreamReader::CreateForLocalFile(
-          file_system_context_->default_file_task_runner(),
-          platform_path, initial_offset_, expected_modification_time_));
+  local_file_reader_.reset(FileStreamReader::CreateForLocalFile(
+      file_system_context_->default_file_task_runner(), platform_path,
+      initial_offset_, expected_modification_time_));
 
-  callback.Run();
+  if (read_callback_) {
+    DCHECK(!get_length_callback_);
+    int rv = Read(read_buf_, read_buf_len_,
+                  base::BindOnce(&FileSystemFileStreamReader::OnRead,
+                                 weak_factory_.GetWeakPtr()));
+    if (rv != net::ERR_IO_PENDING)
+      std::move(read_callback_).Run(rv);
+    return;
+  }
+
+  int rv = local_file_reader_->GetLength(base::BindOnce(
+      &FileSystemFileStreamReader::OnGetLength, weak_factory_.GetWeakPtr()));
+  if (rv != net::ERR_IO_PENDING)
+    std::move(get_length_callback_).Run(rv);
+}
+
+void FileSystemFileStreamReader::OnRead(int rv) {
+  std::move(read_callback_).Run(rv);
+}
+
+void FileSystemFileStreamReader::OnGetLength(int64_t rv) {
+  std::move(get_length_callback_).Run(rv);
 }
 
 }  // namespace storage
diff --git a/storage/browser/fileapi/file_system_file_stream_reader.h b/storage/browser/fileapi/file_system_file_stream_reader.h
index e6bd8e3..78ff4e9 100644
--- a/storage/browser/fileapi/file_system_file_stream_reader.h
+++ b/storage/browser/fileapi/file_system_file_stream_reader.h
@@ -14,6 +14,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/time/time.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/blob/shareable_file_reference.h"
 #include "storage/browser/fileapi/file_stream_reader.h"
 #include "storage/browser/fileapi/file_system_url.h"
@@ -44,8 +45,8 @@
   // FileStreamReader overrides.
   int Read(net::IOBuffer* buf,
            int buf_len,
-           const net::CompletionCallback& callback) override;
-  int64_t GetLength(const net::Int64CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
+  int64_t GetLength(net::Int64CompletionOnceCallback callback) override;
 
  private:
   friend class storage::FileStreamReader;
@@ -56,16 +57,19 @@
                              int64_t initial_offset,
                              const base::Time& expected_modification_time);
 
-  int CreateSnapshot(const base::Closure& callback,
-                     const net::CompletionCallback& error_callback);
+  int CreateSnapshot();
   void DidCreateSnapshot(
-      const base::Closure& callback,
-      const net::CompletionCallback& error_callback,
       base::File::Error file_error,
       const base::File::Info& file_info,
       const base::FilePath& platform_path,
       scoped_refptr<storage::ShareableFileReference> file_ref);
+  void OnRead(int rv);
+  void OnGetLength(int64_t rv);
 
+  net::IOBuffer* read_buf_;
+  int read_buf_len_;
+  net::CompletionOnceCallback read_callback_;
+  net::Int64CompletionOnceCallback get_length_callback_;
   scoped_refptr<FileSystemContext> file_system_context_;
   FileSystemURL url_;
   const int64_t initial_offset_;
diff --git a/storage/browser/fileapi/local_file_stream_reader.cc b/storage/browser/fileapi/local_file_stream_reader.cc
index f467be6..c5acdaf2 100644
--- a/storage/browser/fileapi/local_file_stream_reader.cc
+++ b/storage/browser/fileapi/local_file_stream_reader.cc
@@ -6,6 +6,8 @@
 
 #include <stdint.h>
 
+#include <utility>
+
 #include "base/files/file_util.h"
 #include "base/location.h"
 #include "base/logging.h"
@@ -61,24 +63,26 @@
 
 LocalFileStreamReader::~LocalFileStreamReader() = default;
 
-int LocalFileStreamReader::Read(net::IOBuffer* buf, int buf_len,
-                          const net::CompletionCallback& callback) {
+int LocalFileStreamReader::Read(net::IOBuffer* buf,
+                                int buf_len,
+                                net::CompletionOnceCallback callback) {
   DCHECK(!has_pending_open_);
+
   if (stream_impl_)
-    return stream_impl_->Read(buf, buf_len, callback);
-  return Open(base::Bind(&LocalFileStreamReader::DidOpenForRead,
-                         weak_factory_.GetWeakPtr(), base::RetainedRef(buf),
-                         buf_len, callback));
+    return stream_impl_->Read(buf, buf_len, std::move(callback));
+  return Open(base::BindOnce(&LocalFileStreamReader::DidOpenForRead,
+                             weak_factory_.GetWeakPtr(), base::RetainedRef(buf),
+                             buf_len, std::move(callback)));
 }
 
 int64_t LocalFileStreamReader::GetLength(
-    const net::Int64CompletionCallback& callback) {
+    net::Int64CompletionOnceCallback callback) {
   bool posted = base::PostTaskAndReplyWithResult(
       task_runner_.get(), FROM_HERE, base::BindOnce(&DoGetFileInfo, file_path_),
       base::BindOnce(
           &SendGetFileInfoResults,
           base::BindOnce(&LocalFileStreamReader::DidGetFileInfoForGetLength,
-                         weak_factory_.GetWeakPtr(), callback)));
+                         weak_factory_.GetWeakPtr(), std::move(callback))));
   DCHECK(posted);
   return net::ERR_IO_PENDING;
 }
@@ -95,98 +99,106 @@
       has_pending_open_(false),
       weak_factory_(this) {}
 
-int LocalFileStreamReader::Open(const net::CompletionCallback& callback) {
+int LocalFileStreamReader::Open(net::CompletionOnceCallback callback) {
   DCHECK(!has_pending_open_);
   DCHECK(!stream_impl_.get());
   has_pending_open_ = true;
 
   // Call GetLength first to make it perform last-modified-time verification,
   // and then call DidVerifyForOpen for do the rest.
-  return GetLength(base::Bind(&LocalFileStreamReader::DidVerifyForOpen,
-                              weak_factory_.GetWeakPtr(), callback));
+  return GetLength(base::BindOnce(&LocalFileStreamReader::DidVerifyForOpen,
+                                  weak_factory_.GetWeakPtr(),
+                                  std::move(callback)));
 }
 
 void LocalFileStreamReader::DidVerifyForOpen(
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     int64_t get_length_result) {
   if (get_length_result < 0) {
-    callback.Run(static_cast<int>(get_length_result));
+    std::move(callback).Run(static_cast<int>(get_length_result));
     return;
   }
 
   stream_impl_.reset(new net::FileStream(task_runner_));
+  callback_ = std::move(callback);
   const int result = stream_impl_->Open(
       file_path_, kOpenFlagsForRead,
       base::BindOnce(&LocalFileStreamReader::DidOpenFileStream,
-                     weak_factory_.GetWeakPtr(), callback));
+                     weak_factory_.GetWeakPtr()));
   if (result != net::ERR_IO_PENDING)
-    callback.Run(result);
+    std::move(callback_).Run(result);
 }
 
 void LocalFileStreamReader::DidOpenFileStream(
-    const net::CompletionCallback& callback,
     int result) {
   if (result != net::OK) {
-    callback.Run(result);
+    std::move(callback_).Run(result);
     return;
   }
   result = stream_impl_->Seek(
       initial_offset_, base::BindOnce(&LocalFileStreamReader::DidSeekFileStream,
-                                      weak_factory_.GetWeakPtr(), callback));
+                                      weak_factory_.GetWeakPtr()));
   if (result != net::ERR_IO_PENDING) {
-    callback.Run(result);
+    std::move(callback_).Run(result);
   }
 }
 
 void LocalFileStreamReader::DidSeekFileStream(
-    const net::CompletionCallback& callback,
     int64_t seek_result) {
   if (seek_result < 0) {
-    callback.Run(static_cast<int>(seek_result));
+    std::move(callback_).Run(static_cast<int>(seek_result));
     return;
   }
   if (seek_result != initial_offset_) {
-    callback.Run(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE);
+    std::move(callback_).Run(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE);
     return;
   }
-  callback.Run(net::OK);
+  std::move(callback_).Run(net::OK);
 }
 
-void LocalFileStreamReader::DidOpenForRead(
-    net::IOBuffer* buf,
-    int buf_len,
-    const net::CompletionCallback& callback,
-    int open_result) {
+void LocalFileStreamReader::DidOpenForRead(net::IOBuffer* buf,
+                                           int buf_len,
+                                           net::CompletionOnceCallback callback,
+                                           int open_result) {
   DCHECK(has_pending_open_);
   has_pending_open_ = false;
   if (open_result != net::OK) {
     stream_impl_.reset();
-    callback.Run(open_result);
+    std::move(callback).Run(open_result);
     return;
   }
   DCHECK(stream_impl_.get());
-  const int read_result = stream_impl_->Read(buf, buf_len, callback);
+
+  callback_ = std::move(callback);
+  const int read_result =
+      stream_impl_->Read(buf, buf_len,
+                         base::BindOnce(&LocalFileStreamReader::OnRead,
+                                        weak_factory_.GetWeakPtr()));
   if (read_result != net::ERR_IO_PENDING)
-    callback.Run(read_result);
+    std::move(callback_).Run(read_result);
 }
 
 void LocalFileStreamReader::DidGetFileInfoForGetLength(
-    const net::Int64CompletionCallback& callback,
+    net::Int64CompletionOnceCallback callback,
     base::File::Error error,
     const base::File::Info& file_info) {
   if (file_info.is_directory) {
-    callback.Run(net::ERR_FILE_NOT_FOUND);
+    std::move(callback).Run(net::ERR_FILE_NOT_FOUND);
     return;
   }
   if (error != base::File::FILE_OK) {
-    callback.Run(net::FileErrorToNetError(error));
+    std::move(callback).Run(net::FileErrorToNetError(error));
     return;
   }
   if (!VerifySnapshotTime(expected_modification_time_, file_info)) {
-    callback.Run(net::ERR_UPLOAD_FILE_CHANGED);
+    std::move(callback).Run(net::ERR_UPLOAD_FILE_CHANGED);
     return;
   }
-  callback.Run(file_info.size);
+  std::move(callback).Run(file_info.size);
+}
+
+void LocalFileStreamReader::OnRead(int read_result) {
+  std::move(callback_).Run(read_result);
 }
 
 }  // namespace storage
diff --git a/storage/browser/fileapi/local_file_stream_reader.h b/storage/browser/fileapi/local_file_stream_reader.h
index 1cc8292a0..7705d12 100644
--- a/storage/browser/fileapi/local_file_stream_reader.h
+++ b/storage/browser/fileapi/local_file_stream_reader.h
@@ -14,6 +14,7 @@
 #include "base/files/file_path.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
+#include "net/base/completion_once_callback.h"
 #include "storage/browser/fileapi/file_stream_reader.h"
 #include "storage/browser/storage_browser_export.h"
 
@@ -40,8 +41,8 @@
   // FileStreamReader overrides.
   int Read(net::IOBuffer* buf,
            int buf_len,
-           const net::CompletionCallback& callback) override;
-  int64_t GetLength(const net::Int64CompletionCallback& callback) override;
+           net::CompletionOnceCallback callback) override;
+  int64_t GetLength(net::Int64CompletionOnceCallback callback) override;
 
  private:
   friend class FileStreamReader;
@@ -51,24 +52,24 @@
                         const base::FilePath& file_path,
                         int64_t initial_offset,
                         const base::Time& expected_modification_time);
-  int Open(const net::CompletionCallback& callback);
+  int Open(net::CompletionOnceCallback callback);
 
   // Callbacks that are chained from Open for Read.
-  void DidVerifyForOpen(const net::CompletionCallback& callback,
+  void DidVerifyForOpen(net::CompletionOnceCallback callback,
                         int64_t get_length_result);
-  void DidOpenFileStream(const net::CompletionCallback& callback,
-                         int result);
-  void DidSeekFileStream(const net::CompletionCallback& callback,
-                         int64_t seek_result);
+  void DidOpenFileStream(int result);
+  void DidSeekFileStream(int64_t seek_result);
   void DidOpenForRead(net::IOBuffer* buf,
                       int buf_len,
-                      const net::CompletionCallback& callback,
+                      net::CompletionOnceCallback callback,
                       int open_result);
+  void OnRead(int read_result);
 
-  void DidGetFileInfoForGetLength(const net::Int64CompletionCallback& callback,
+  void DidGetFileInfoForGetLength(net::Int64CompletionOnceCallback callback,
                                   base::File::Error error,
                                   const base::File::Info& file_info);
 
+  net::CompletionOnceCallback callback_;
   scoped_refptr<base::TaskRunner> task_runner_;
   std::unique_ptr<net::FileStream> stream_impl_;
   const base::FilePath file_path_;
diff --git a/storage/browser/fileapi/local_file_stream_writer.cc b/storage/browser/fileapi/local_file_stream_writer.cc
index ed6c584e..5896bb1 100644
--- a/storage/browser/fileapi/local_file_stream_writer.cc
+++ b/storage/browser/fileapi/local_file_stream_writer.cc
@@ -42,34 +42,36 @@
   // by its Open() method.
 }
 
-int LocalFileStreamWriter::Write(net::IOBuffer* buf, int buf_len,
-                                 const net::CompletionCallback& callback) {
+int LocalFileStreamWriter::Write(net::IOBuffer* buf,
+                                 int buf_len,
+                                 net::CompletionOnceCallback callback) {
   DCHECK(!has_pending_operation_);
+  DCHECK(write_callback_.is_null());
   DCHECK(cancel_callback_.is_null());
 
   has_pending_operation_ = true;
+  write_callback_ = std::move(callback);
   if (stream_impl_) {
-    int result = InitiateWrite(buf, buf_len, callback);
+    int result = InitiateWrite(buf, buf_len);
     if (result != net::ERR_IO_PENDING)
       has_pending_operation_ = false;
     return result;
   }
-  return InitiateOpen(
-      callback, base::Bind(&LocalFileStreamWriter::ReadyToWrite,
-                           weak_factory_.GetWeakPtr(), base::RetainedRef(buf),
-                           buf_len, callback));
+  return InitiateOpen(base::BindOnce(&LocalFileStreamWriter::ReadyToWrite,
+                                     weak_factory_.GetWeakPtr(),
+                                     base::RetainedRef(buf), buf_len));
 }
 
-int LocalFileStreamWriter::Cancel(const net::CompletionCallback& callback) {
+int LocalFileStreamWriter::Cancel(net::CompletionOnceCallback callback) {
   if (!has_pending_operation_)
     return net::ERR_UNEXPECTED;
 
   DCHECK(!callback.is_null());
-  cancel_callback_ = callback;
+  cancel_callback_ = std::move(callback);
   return net::ERR_IO_PENDING;
 }
 
-int LocalFileStreamWriter::Flush(const net::CompletionCallback& callback) {
+int LocalFileStreamWriter::Flush(net::CompletionOnceCallback callback) {
   DCHECK(!has_pending_operation_);
   DCHECK(cancel_callback_.is_null());
 
@@ -78,7 +80,7 @@
     return net::OK;
 
   has_pending_operation_ = true;
-  int result = InitiateFlush(callback);
+  int result = InitiateFlush(std::move(callback));
   if (result != net::ERR_IO_PENDING)
     has_pending_operation_ = false;
   return result;
@@ -95,9 +97,7 @@
       has_pending_operation_(false),
       weak_factory_(this) {}
 
-int LocalFileStreamWriter::InitiateOpen(
-    const net::CompletionCallback& error_callback,
-    const base::Closure& main_operation) {
+int LocalFileStreamWriter::InitiateOpen(base::OnceClosure main_operation) {
   DCHECK(has_pending_operation_);
   DCHECK(!stream_impl_.get());
 
@@ -113,16 +113,14 @@
     break;
   }
 
-  return stream_impl_->Open(file_path_, open_flags,
-                            base::BindOnce(&LocalFileStreamWriter::DidOpen,
-                                           weak_factory_.GetWeakPtr(),
-                                           error_callback, main_operation));
+  return stream_impl_->Open(
+      file_path_, open_flags,
+      base::BindOnce(&LocalFileStreamWriter::DidOpen,
+                     weak_factory_.GetWeakPtr(), std::move(main_operation)));
 }
 
-void LocalFileStreamWriter::DidOpen(
-    const net::CompletionCallback& error_callback,
-    const base::Closure& main_operation,
-    int result) {
+void LocalFileStreamWriter::DidOpen(base::OnceClosure main_operation,
+                                    int result) {
   DCHECK(has_pending_operation_);
   DCHECK(stream_impl_.get());
 
@@ -132,39 +130,35 @@
   if (result != net::OK) {
     has_pending_operation_ = false;
     stream_impl_.reset(nullptr);
-    error_callback.Run(result);
+    std::move(write_callback_).Run(result);
     return;
   }
 
-  InitiateSeek(error_callback, main_operation);
+  InitiateSeek(std::move(main_operation));
 }
 
-void LocalFileStreamWriter::InitiateSeek(
-    const net::CompletionCallback& error_callback,
-    const base::Closure& main_operation) {
+void LocalFileStreamWriter::InitiateSeek(base::OnceClosure main_operation) {
   DCHECK(has_pending_operation_);
   DCHECK(stream_impl_.get());
 
   if (initial_offset_ == 0) {
     // No need to seek.
-    main_operation.Run();
+    std::move(main_operation).Run();
     return;
   }
 
   int result = stream_impl_->Seek(
-      initial_offset_, base::BindOnce(&LocalFileStreamWriter::DidSeek,
-                                      weak_factory_.GetWeakPtr(),
-                                      error_callback, main_operation));
+      initial_offset_,
+      base::BindOnce(&LocalFileStreamWriter::DidSeek,
+                     weak_factory_.GetWeakPtr(), std::move(main_operation)));
   if (result != net::ERR_IO_PENDING) {
     has_pending_operation_ = false;
-    error_callback.Run(result);
+    std::move(write_callback_).Run(result);
   }
 }
 
-void LocalFileStreamWriter::DidSeek(
-    const net::CompletionCallback& error_callback,
-    const base::Closure& main_operation,
-    int64_t result) {
+void LocalFileStreamWriter::DidSeek(base::OnceClosure main_operation,
+                                    int64_t result) {
   DCHECK(has_pending_operation_);
 
   if (CancelIfRequested())
@@ -177,64 +171,58 @@
 
   if (result < 0) {
     has_pending_operation_ = false;
-    error_callback.Run(static_cast<int>(result));
+    std::move(write_callback_).Run(static_cast<int>(result));
     return;
   }
 
-  main_operation.Run();
+  std::move(main_operation).Run();
 }
 
-void LocalFileStreamWriter::ReadyToWrite(
-    net::IOBuffer* buf, int buf_len,
-    const net::CompletionCallback& callback) {
+void LocalFileStreamWriter::ReadyToWrite(net::IOBuffer* buf, int buf_len) {
   DCHECK(has_pending_operation_);
 
-  int result = InitiateWrite(buf, buf_len, callback);
+  int result = InitiateWrite(buf, buf_len);
   if (result != net::ERR_IO_PENDING) {
     has_pending_operation_ = false;
-    callback.Run(result);
+    std::move(write_callback_).Run(result);
   }
 }
 
-int LocalFileStreamWriter::InitiateWrite(
-    net::IOBuffer* buf, int buf_len,
-    const net::CompletionCallback& callback) {
+int LocalFileStreamWriter::InitiateWrite(net::IOBuffer* buf, int buf_len) {
   DCHECK(has_pending_operation_);
   DCHECK(stream_impl_.get());
 
-  return stream_impl_->Write(
-      buf, buf_len,
-      base::BindOnce(&LocalFileStreamWriter::DidWrite,
-                     weak_factory_.GetWeakPtr(), callback));
+  return stream_impl_->Write(buf, buf_len,
+                             base::BindOnce(&LocalFileStreamWriter::DidWrite,
+                                            weak_factory_.GetWeakPtr()));
 }
 
-void LocalFileStreamWriter::DidWrite(const net::CompletionCallback& callback,
+void LocalFileStreamWriter::DidWrite(int result) {
+  DCHECK(has_pending_operation_);
+
+  if (CancelIfRequested())
+    return;
+  has_pending_operation_ = false;
+  std::move(write_callback_).Run(result);
+}
+
+int LocalFileStreamWriter::InitiateFlush(net::CompletionOnceCallback callback) {
+  DCHECK(has_pending_operation_);
+  DCHECK(stream_impl_.get());
+
+  return stream_impl_->Flush(base::BindOnce(&LocalFileStreamWriter::DidFlush,
+                                            weak_factory_.GetWeakPtr(),
+                                            std::move(callback)));
+}
+
+void LocalFileStreamWriter::DidFlush(net::CompletionOnceCallback callback,
                                      int result) {
   DCHECK(has_pending_operation_);
 
   if (CancelIfRequested())
     return;
   has_pending_operation_ = false;
-  callback.Run(result);
-}
-
-int LocalFileStreamWriter::InitiateFlush(
-    const net::CompletionCallback& callback) {
-  DCHECK(has_pending_operation_);
-  DCHECK(stream_impl_.get());
-
-  return stream_impl_->Flush(base::BindOnce(
-      &LocalFileStreamWriter::DidFlush, weak_factory_.GetWeakPtr(), callback));
-}
-
-void LocalFileStreamWriter::DidFlush(const net::CompletionCallback& callback,
-                                     int result) {
-  DCHECK(has_pending_operation_);
-
-  if (CancelIfRequested())
-    return;
-  has_pending_operation_ = false;
-  callback.Run(result);
+  std::move(callback).Run(result);
 }
 
 bool LocalFileStreamWriter::CancelIfRequested() {
@@ -243,10 +231,8 @@
   if (cancel_callback_.is_null())
     return false;
 
-  net::CompletionCallback pending_cancel = cancel_callback_;
   has_pending_operation_ = false;
-  cancel_callback_.Reset();
-  pending_cancel.Run(net::OK);
+  std::move(cancel_callback_).Run(net::OK);
   return true;
 }
 
diff --git a/storage/browser/fileapi/local_file_stream_writer.h b/storage/browser/fileapi/local_file_stream_writer.h
index 47821db1..38e8b47 100644
--- a/storage/browser/fileapi/local_file_stream_writer.h
+++ b/storage/browser/fileapi/local_file_stream_writer.h
@@ -37,9 +37,9 @@
   // FileStreamWriter overrides.
   int Write(net::IOBuffer* buf,
             int buf_len,
-            const net::CompletionCallback& callback) override;
-  int Cancel(const net::CompletionCallback& callback) override;
-  int Flush(const net::CompletionCallback& callback) override;
+            net::CompletionOnceCallback callback) override;
+  int Cancel(net::CompletionOnceCallback callback) override;
+  int Flush(net::CompletionOnceCallback callback) override;
 
  private:
   friend class content::LocalFileStreamWriterTest;
@@ -51,32 +51,24 @@
 
   // Opens |file_path_| and if it succeeds, proceeds to InitiateSeek().
   // If failed, the error code is returned by calling |error_callback|.
-  int InitiateOpen(const net::CompletionCallback& error_callback,
-                   const base::Closure& main_operation);
-  void DidOpen(const net::CompletionCallback& error_callback,
-               const base::Closure& main_operation,
-               int result);
+  int InitiateOpen(base::OnceClosure main_operation);
+  void DidOpen(base::OnceClosure main_operation, int result);
 
   // Seeks to |initial_offset_| and proceeds to |main_operation| if it succeeds.
   // If failed, the error code is returned by calling |error_callback|.
-  void InitiateSeek(const net::CompletionCallback& error_callback,
-                    const base::Closure& main_operation);
-  void DidSeek(const net::CompletionCallback& error_callback,
-               const base::Closure& main_operation,
-               int64_t result);
+  void InitiateSeek(base::OnceClosure main_operation);
+  void DidSeek(base::OnceClosure main_operation, int64_t result);
 
   // Passed as the |main_operation| of InitiateOpen() function.
-  void ReadyToWrite(net::IOBuffer* buf, int buf_len,
-                    const net::CompletionCallback& callback);
+  void ReadyToWrite(net::IOBuffer* buf, int buf_len);
 
   // Writes asynchronously to the file.
-  int InitiateWrite(net::IOBuffer* buf, int buf_len,
-                    const net::CompletionCallback& callback);
-  void DidWrite(const net::CompletionCallback& callback, int result);
+  int InitiateWrite(net::IOBuffer* buf, int buf_len);
+  void DidWrite(int result);
 
   // Flushes asynchronously to the file.
-  int InitiateFlush(const net::CompletionCallback& callback);
-  void DidFlush(const net::CompletionCallback& callback, int result);
+  int InitiateFlush(net::CompletionOnceCallback callback);
+  void DidFlush(net::CompletionOnceCallback callback, int result);
 
   // Stops the in-flight operation and calls |cancel_callback_| if it has been
   // set by Cancel() for the current operation.
@@ -91,7 +83,8 @@
   // Current states of the operation.
   bool has_pending_operation_;
   std::unique_ptr<net::FileStream> stream_impl_;
-  net::CompletionCallback cancel_callback_;
+  net::CompletionOnceCallback write_callback_;
+  net::CompletionOnceCallback cancel_callback_;
 
   base::WeakPtrFactory<LocalFileStreamWriter> weak_factory_;
   DISALLOW_COPY_AND_ASSIGN(LocalFileStreamWriter);
diff --git a/storage/browser/fileapi/sandbox_file_stream_writer.cc b/storage/browser/fileapi/sandbox_file_stream_writer.cc
index 44c3fb0d..c1b2fff 100644
--- a/storage/browser/fileapi/sandbox_file_stream_writer.cc
+++ b/storage/browser/fileapi/sandbox_file_stream_writer.cc
@@ -8,6 +8,7 @@
 
 #include <limits>
 #include <tuple>
+#include <utility>
 
 #include "base/sequenced_task_runner.h"
 #include "base/trace_event/trace_event.h"
@@ -62,34 +63,34 @@
 
 SandboxFileStreamWriter::~SandboxFileStreamWriter() = default;
 
-int SandboxFileStreamWriter::Write(
-    net::IOBuffer* buf, int buf_len,
-    const net::CompletionCallback& callback) {
+int SandboxFileStreamWriter::Write(net::IOBuffer* buf,
+                                   int buf_len,
+                                   net::CompletionOnceCallback callback) {
+  DCHECK(!write_callback_);
   has_pending_operation_ = true;
+  write_callback_ = std::move(callback);
   if (local_file_writer_)
-    return WriteInternal(buf, buf_len, callback);
+    return WriteInternal(buf, buf_len);
 
-  net::CompletionCallback write_task = base::Bind(
+  net::CompletionOnceCallback write_task = base::BindOnce(
       &SandboxFileStreamWriter::DidInitializeForWrite,
-      weak_factory_.GetWeakPtr(), base::RetainedRef(buf), buf_len, callback);
+      weak_factory_.GetWeakPtr(), base::RetainedRef(buf), buf_len);
   file_system_context_->operation_runner()->CreateSnapshotFile(
-      url_, base::Bind(&SandboxFileStreamWriter::DidCreateSnapshotFile,
-                       weak_factory_.GetWeakPtr(), write_task));
+      url_, base::BindOnce(&SandboxFileStreamWriter::DidCreateSnapshotFile,
+                           weak_factory_.GetWeakPtr(), std::move(write_task)));
   return net::ERR_IO_PENDING;
 }
 
-int SandboxFileStreamWriter::Cancel(const net::CompletionCallback& callback) {
+int SandboxFileStreamWriter::Cancel(net::CompletionOnceCallback callback) {
   if (!has_pending_operation_)
     return net::ERR_UNEXPECTED;
 
   DCHECK(!callback.is_null());
-  cancel_callback_ = callback;
+  cancel_callback_ = std::move(callback);
   return net::ERR_IO_PENDING;
 }
 
-int SandboxFileStreamWriter::WriteInternal(
-    net::IOBuffer* buf, int buf_len,
-    const net::CompletionCallback& callback) {
+int SandboxFileStreamWriter::WriteInternal(net::IOBuffer* buf, int buf_len) {
   // allowed_bytes_to_write could be negative if the file size is
   // greater than the current (possibly new) quota.
   DCHECK(total_bytes_written_ <= allowed_bytes_to_write_ ||
@@ -105,15 +106,15 @@
   DCHECK(local_file_writer_.get());
   const int result = local_file_writer_->Write(
       buf, buf_len,
-      base::Bind(&SandboxFileStreamWriter::DidWrite, weak_factory_.GetWeakPtr(),
-                 callback));
+      base::BindOnce(&SandboxFileStreamWriter::DidWrite,
+                     weak_factory_.GetWeakPtr()));
   if (result != net::ERR_IO_PENDING)
     has_pending_operation_ = false;
   return result;
 }
 
 void SandboxFileStreamWriter::DidCreateSnapshotFile(
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     base::File::Error file_error,
     const base::File::Info& file_info,
     const base::FilePath& platform_path,
@@ -123,12 +124,12 @@
   if (CancelIfRequested())
     return;
   if (file_error != base::File::FILE_OK) {
-    callback.Run(net::FileErrorToNetError(file_error));
+    std::move(callback).Run(net::FileErrorToNetError(file_error));
     return;
   }
   if (file_info.is_directory) {
     // We should not be writing to a directory.
-    callback.Run(net::ERR_ACCESS_DENIED);
+    std::move(callback).Run(net::ERR_ACCESS_DENIED);
     return;
   }
   file_size_ = file_info.size;
@@ -151,7 +152,7 @@
     // If we don't have the quota manager or the requested filesystem type
     // does not support quota, we should be able to let it go.
     allowed_bytes_to_write_ = default_quota_;
-    callback.Run(net::OK);
+    std::move(callback).Run(net::OK);
     return;
   }
 
@@ -162,11 +163,11 @@
   quota_manager_proxy->quota_manager()->GetUsageAndQuota(
       url_.origin(), FileSystemTypeToQuotaStorageType(url_.type()),
       base::BindOnce(&SandboxFileStreamWriter::DidGetUsageAndQuota,
-                     weak_factory_.GetWeakPtr(), callback));
+                     weak_factory_.GetWeakPtr(), std::move(callback)));
 }
 
 void SandboxFileStreamWriter::DidGetUsageAndQuota(
-    const net::CompletionCallback& callback,
+    net::CompletionOnceCallback callback,
     blink::mojom::QuotaStatusCode status,
     int64_t usage,
     int64_t quota) {
@@ -178,7 +179,7 @@
     // crbug.com/349708
     TRACE_EVENT0("io", "SandboxFileStreamWriter::DidGetUsageAndQuota FAILED");
 
-    callback.Run(net::ERR_FAILED);
+    std::move(callback).Run(net::ERR_FAILED);
     return;
   }
 
@@ -186,37 +187,34 @@
   TRACE_EVENT0("io", "SandboxFileStreamWriter::DidGetUsageAndQuota OK");
 
   allowed_bytes_to_write_ = quota - usage;
-  callback.Run(net::OK);
+  std::move(callback).Run(net::OK);
 }
 
-void SandboxFileStreamWriter::DidInitializeForWrite(
-    net::IOBuffer* buf, int buf_len,
-    const net::CompletionCallback& callback,
-    int init_status) {
+void SandboxFileStreamWriter::DidInitializeForWrite(net::IOBuffer* buf,
+                                                    int buf_len,
+                                                    int init_status) {
   if (CancelIfRequested())
     return;
   if (init_status != net::OK) {
     has_pending_operation_ = false;
-    callback.Run(init_status);
+    std::move(write_callback_).Run(init_status);
     return;
   }
   allowed_bytes_to_write_ = AdjustQuotaForOverlap(
       allowed_bytes_to_write_, initial_offset_, file_size_);
-  const int result = WriteInternal(buf, buf_len, callback);
+  const int result = WriteInternal(buf, buf_len);
   if (result != net::ERR_IO_PENDING)
-    callback.Run(result);
+    std::move(write_callback_).Run(result);
 }
 
-void SandboxFileStreamWriter::DidWrite(
-    const net::CompletionCallback& callback,
-    int write_response) {
+void SandboxFileStreamWriter::DidWrite(int write_response) {
   DCHECK(has_pending_operation_);
   has_pending_operation_ = false;
 
   if (write_response <= 0) {
     if (CancelIfRequested())
       return;
-    callback.Run(write_response);
+    std::move(write_callback_).Run(write_response);
     return;
   }
 
@@ -231,21 +229,19 @@
 
   if (CancelIfRequested())
     return;
-  callback.Run(write_response);
+  std::move(write_callback_).Run(write_response);
 }
 
 bool SandboxFileStreamWriter::CancelIfRequested() {
   if (cancel_callback_.is_null())
     return false;
 
-  net::CompletionCallback pending_cancel = cancel_callback_;
   has_pending_operation_ = false;
-  cancel_callback_.Reset();
-  pending_cancel.Run(net::OK);
+  std::move(cancel_callback_).Run(net::OK);
   return true;
 }
 
-int SandboxFileStreamWriter::Flush(const net::CompletionCallback& callback) {
+int SandboxFileStreamWriter::Flush(net::CompletionOnceCallback callback) {
   DCHECK(!has_pending_operation_);
   DCHECK(cancel_callback_.is_null());
 
@@ -253,7 +249,7 @@
   if (!local_file_writer_)
     return net::OK;
 
-  return local_file_writer_->Flush(callback);
+  return local_file_writer_->Flush(std::move(callback));
 }
 
 }  // namespace storage
diff --git a/storage/browser/fileapi/sandbox_file_stream_writer.h b/storage/browser/fileapi/sandbox_file_stream_writer.h
index 050a029..785571e6c 100644
--- a/storage/browser/fileapi/sandbox_file_stream_writer.h
+++ b/storage/browser/fileapi/sandbox_file_stream_writer.h
@@ -37,35 +37,32 @@
   // FileStreamWriter overrides.
   int Write(net::IOBuffer* buf,
             int buf_len,
-            const net::CompletionCallback& callback) override;
-  int Cancel(const net::CompletionCallback& callback) override;
-  int Flush(const net::CompletionCallback& callback) override;
+            net::CompletionOnceCallback callback) override;
+  int Cancel(net::CompletionOnceCallback callback) override;
+  int Flush(net::CompletionOnceCallback callback) override;
 
   // Used only by tests.
   void set_default_quota(int64_t quota) { default_quota_ = quota; }
 
  private:
   // Performs quota calculation and calls local_file_writer_->Write().
-  int WriteInternal(net::IOBuffer* buf, int buf_len,
-                    const net::CompletionCallback& callback);
+  int WriteInternal(net::IOBuffer* buf, int buf_len);
 
   // Callbacks that are chained for the first write.  This eventually calls
   // WriteInternal.
   void DidCreateSnapshotFile(
-      const net::CompletionCallback& callback,
+      net::CompletionOnceCallback callback,
       base::File::Error file_error,
       const base::File::Info& file_info,
       const base::FilePath& platform_path,
       scoped_refptr<storage::ShareableFileReference> file_ref);
-  void DidGetUsageAndQuota(const net::CompletionCallback& callback,
+  void DidGetUsageAndQuota(net::CompletionOnceCallback callback,
                            blink::mojom::QuotaStatusCode status,
                            int64_t usage,
                            int64_t quota);
-  void DidInitializeForWrite(net::IOBuffer* buf, int buf_len,
-                             const net::CompletionCallback& callback,
-                             int init_status);
+  void DidInitializeForWrite(net::IOBuffer* buf, int buf_len, int init_status);
 
-  void DidWrite(const net::CompletionCallback& callback, int write_response);
+  void DidWrite(int write_response);
 
   // Stops the in-flight operation, calls |cancel_callback_| and returns true
   // if there's a pending cancel request.
@@ -75,7 +72,8 @@
   FileSystemURL url_;
   int64_t initial_offset_;
   std::unique_ptr<FileStreamWriter> local_file_writer_;
-  net::CompletionCallback cancel_callback_;
+  net::CompletionOnceCallback write_callback_;
+  net::CompletionOnceCallback cancel_callback_;
 
   UpdateObserverList observers_;
 
diff --git a/storage/common/fileapi/file_system_type_converters.h b/storage/common/fileapi/file_system_type_converters.h
index b0adc21..030f3a9 100644
--- a/storage/common/fileapi/file_system_type_converters.h
+++ b/storage/common/fileapi/file_system_type_converters.h
@@ -43,6 +43,7 @@
       case storage::FileSystemType::kFileSystemTypeDeviceMediaAsFileStorage:
       case storage::FileSystemType::kFileSystemTypeArcContent:
       case storage::FileSystemType::kFileSystemTypeArcDocumentsProvider:
+      case storage::FileSystemType::kFileSystemTypeDriveFs:
       case storage::FileSystemType::kFileSystemInternalTypeEnumEnd:
         NOTREACHED();
         return blink::mojom::FileSystemType::kTemporary;
diff --git a/storage/common/fileapi/file_system_types.h b/storage/common/fileapi/file_system_types.h
index f453419..08268a1 100644
--- a/storage/common/fileapi/file_system_types.h
+++ b/storage/common/fileapi/file_system_types.h
@@ -123,7 +123,10 @@
   // A filesystem to provide access to documents providers in ARC.
   kFileSystemTypeArcDocumentsProvider,
 
-  kFileSystemTypeLast = kFileSystemTypeArcDocumentsProvider,
+  // Indicates a DriveFS filesystem which provides access to Google Drive.
+  kFileSystemTypeDriveFs,
+
+  kFileSystemTypeLast = kFileSystemTypeDriveFs,
 
   // --------------------------------------------------------------------
   // Marks the end of internal type enum. (This is not the actual fs type)
diff --git a/storage/common/fileapi/file_system_util.cc b/storage/common/fileapi/file_system_util.cc
index a1c3d1e..9cb2f01 100644
--- a/storage/common/fileapi/file_system_util.cc
+++ b/storage/common/fileapi/file_system_util.cc
@@ -312,6 +312,8 @@
       return "ArcContent";
     case kFileSystemTypeArcDocumentsProvider:
       return "ArcDocumentsProvider";
+    case kFileSystemTypeDriveFs:
+      return "DriveFs";
     case kFileSystemInternalTypeEnumStart:
     case kFileSystemInternalTypeEnumEnd:
       NOTREACHED();
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json
index c5142a8..d89dfbc 100644
--- a/testing/buildbot/chromium.android.json
+++ b/testing/buildbot/chromium.android.json
@@ -3157,7 +3157,8 @@
       {
         "args": [
           "--debug",
-          "--android"
+          "--android",
+          "--use-gpu-in-tests"
         ],
         "experiment_percentage": 100,
         "isolate_name": "webkit_layout_tests_exparchive",
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index c1fd565..b7ba45d 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -3129,6 +3129,18 @@
           "can_use_on_swarming_builders": true
         },
         "test": "ui_base_unittests"
+      },
+      {
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "webrunner_browsertests"
+      },
+      {
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "webrunner_unittests"
       }
     ]
   },
@@ -3280,6 +3292,28 @@
           ]
         },
         "test": "ui_base_unittests"
+      },
+      {
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "kvm": "1"
+            }
+          ]
+        },
+        "test": "webrunner_browsertests"
+      },
+      {
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "kvm": "1"
+            }
+          ]
+        },
+        "test": "webrunner_unittests"
       }
     ]
   },
@@ -3446,6 +3480,28 @@
           ]
         },
         "test": "ui_base_unittests"
+      },
+      {
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "kvm": "1"
+            }
+          ]
+        },
+        "test": "webrunner_browsertests"
+      },
+      {
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "kvm": "1"
+            }
+          ]
+        },
+        "test": "webrunner_unittests"
       }
     ]
   },
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index 170fb3fd..07a516e7 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -786,6 +786,28 @@
           ]
         },
         "test": "ui_base_unittests"
+      },
+      {
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "kvm": "1"
+            }
+          ]
+        },
+        "test": "webrunner_browsertests"
+      },
+      {
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "kvm": "1"
+            }
+          ]
+        },
+        "test": "webrunner_unittests"
       }
     ]
   },
@@ -799,7 +821,6 @@
     "isolated_scripts": [
       {
         "args": [
-          "--benchmarks=memory.leak_detection",
           "--smoke-test-mode",
           "--test-shard-map-filename=linux_leak_detection_shard_map.json",
           "--upload-results",
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl
index fcedc44..cd127d8 100644
--- a/testing/buildbot/gn_isolate_map.pyl
+++ b/testing/buildbot/gn_isolate_map.pyl
@@ -1351,6 +1351,14 @@
       "../../third_party/blink/tools/run_blinkpy_tests.py"
     ]
   },
+  "webrunner_browsertests": {
+    "label": "//webrunner:webrunner_browsertests",
+    "type": "console_test_launcher",
+  },
+  "webrunner_unittests": {
+    "label": "//webrunner:webrunner_unittests",
+    "type": "console_test_launcher",
+  },
   "webkit_unit_tests": {
     "label": "//third_party/blink/renderer/controller:webkit_unit_tests",
     "type": "console_test_launcher",
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index f9f8465..3e9f609 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -1471,6 +1471,9 @@
         'args': [
           '--debug',
           '--android',
+          # TODO(crbug.com/875172): run on the real GPU since the
+          # software fallback, SwiftShader, isn't yet for 32-bit ARM.
+          '--use-gpu-in-tests',
         ],
         'experiment_percentage': 100, # crbug.com/824539
       },
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index 17e35ad..370e50a 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -981,6 +981,8 @@
         '--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.ui_base_unittests.filter',
       ],
     },
+    'webrunner_browsertests': {},
+    'webrunner_unittests': {},
   },
 
   'goma_gtests': {
@@ -1617,7 +1619,6 @@
   'leak_detection_isolated_scripts': {
     'memory.leak_detection': {
       'args': [
-        '--benchmarks=memory.leak_detection',
         '--smoke-test-mode',
         '--test-shard-map-filename=linux_leak_detection_shard_map.json',
         '--upload-results',
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index f7105782..f52902f 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -2878,6 +2878,7 @@
                         "OmniboxRichEntitySuggestions",
                         "OmniboxTabSwitchSuggestions",
                         "OmniboxTailSuggestions",
+                        "OmniboxUIExperimentHideSteadyStateUrlSchemeAndSubdomains",
                         "OmniboxUIExperimentShowSuggestionFavicons",
                         "OmniboxUIExperimentSwapTitleAndUrl",
                         "OmniboxUIExperimentVerticalMargin",
diff --git a/third_party/.gitignore b/third_party/.gitignore
index f93deaf..806b69a 100644
--- a/third_party/.gitignore
+++ b/third_party/.gitignore
@@ -178,6 +178,7 @@
 /python_26
 /pywebsocket/src
 /pywebsocket/src
+/qemu
 /quic_trace/src
 /r8/lib
 /re2/src
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
index fc181e21..63d831a 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -59,6 +59,134 @@
 crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-basic.html [ Pass ]
 
 # New failures are appended below by the script.
+crbug.com/874588 accessibility/adjacent-continuations-cause-assertion-failure.html [ Crash ]
+crbug.com/874588 accessibility/anonymous-render-block-in-continuation-causes-crash.html [ Crash ]
+crbug.com/874588 accessibility/aom-click-action.html [ Crash ]
+crbug.com/874588 accessibility/aom-computed-accessible-node.html [ Crash ]
+crbug.com/874588 accessibility/aom-computed-boolean-properties.html [ Crash ]
+crbug.com/874588 accessibility/aom-computed-int-properties.html [ Crash ]
+crbug.com/874588 accessibility/aom-computed-relation-accessors.html [ Crash ]
+crbug.com/874588 accessibility/aom-computed-string-properties.html [ Crash ]
+crbug.com/874588 accessibility/aom-relation-list-properties.html [ Crash ]
+crbug.com/874588 accessibility/aom-relation-properties.html [ Crash ]
+crbug.com/874588 accessibility/aom-string-properties.html [ Crash ]
+crbug.com/874588 accessibility/aom.html [ Crash ]
+crbug.com/874588 accessibility/appearance-affects-role.html [ Crash ]
+crbug.com/874588 accessibility/aria-checkbox-checked-mixed.html [ Crash ]
+crbug.com/874588 accessibility/aria-combo-box-with-delay-add.html [ Crash ]
+crbug.com/874588 accessibility/aria-combo-box-with-delay.html [ Crash ]
+crbug.com/874588 accessibility/aria-combo-box.html [ Crash ]
+crbug.com/874588 accessibility/aria-controls.html [ Crash ]
+crbug.com/874588 accessibility/aria-disabled.html [ Crash ]
+crbug.com/874588 accessibility/aria-flowto.html [ Crash ]
+crbug.com/874588 accessibility/aria-grid-readonly-propagation.html [ Crash ]
+crbug.com/874588 accessibility/aria-hidden-children-not-in-text-from-content.html [ Crash ]
+crbug.com/874588 accessibility/aria-hidden-hides-all-elements.html [ Crash ]
+crbug.com/874588 accessibility/aria-hidden-update.html [ Crash ]
+crbug.com/874588 accessibility/aria-hidden-updates-alldescendants.html [ Crash ]
+crbug.com/874588 accessibility/aria-hidden-with-elements.html [ Crash ]
+crbug.com/874588 accessibility/aria-hidden.html [ Crash ]
+crbug.com/874588 accessibility/aria-label.html [ Crash ]
+crbug.com/874588 accessibility/aria-labelledby-overrides-label.html [ Crash ]
+crbug.com/874588 accessibility/aria-modal.html [ Crash ]
+crbug.com/874588 accessibility/aria-option-role.html [ Crash ]
+crbug.com/874588 accessibility/aria-orientation.html [ Crash ]
+crbug.com/874588 accessibility/aria-owns-dynamic-changes.html [ Crash ]
+crbug.com/874588 accessibility/aria-owns-ignores-leafs.html [ Crash ]
+crbug.com/874588 accessibility/aria-owns-sends-notification.html [ Crash ]
+crbug.com/874588 accessibility/aria-owns.html [ Crash ]
+crbug.com/874588 accessibility/aria-relations-should-ignore-hidden-targets.html [ Crash ]
+crbug.com/874588 accessibility/aria-roles.html [ Crash ]
+crbug.com/874588 accessibility/aria-row-name.html [ Crash ]
+crbug.com/874588 accessibility/aria-tab-roles.html [ Crash ]
+crbug.com/874588 accessibility/aria-tables.html [ Crash ]
+crbug.com/874588 accessibility/aria-tree.html [ Crash ]
+crbug.com/874588 accessibility/aria-treeitem-checkable.html [ Crash ]
+crbug.com/874588 accessibility/aria1.1-combo-box-with-delay.html [ Crash ]
+crbug.com/874588 accessibility/aria1.1-combo-box.html [ Crash ]
+crbug.com/874588 accessibility/bounds-calc.html [ Crash ]
+crbug.com/874588 accessibility/br-element-has-correct-title.html [ Crash ]
+crbug.com/874588 accessibility/canvas-fallback-content-labels.html [ Crash ]
+crbug.com/874588 accessibility/container-node-delete-causes-crash.html [ Crash ]
+crbug.com/874588 accessibility/css-first-letter-children.html [ Crash ]
+crbug.com/874588 accessibility/css-generated-content.html [ Crash ]
+crbug.com/874588 accessibility/css-styles.html [ Crash ]
+crbug.com/874588 accessibility/default-language.html [ Crash ]
+crbug.com/874588 accessibility/description-calc-aria-describedby.html [ Crash ]
+crbug.com/874588 accessibility/description-calc-inputs.html [ Crash ]
+crbug.com/874588 accessibility/description-calc-summary.html [ Crash ]
+crbug.com/874588 accessibility/description-calc-table-caption.html [ Crash ]
+crbug.com/874588 accessibility/disabled-controls.html [ Crash ]
+crbug.com/874588 accessibility/disabled-not-selectable.html [ Crash ]
+crbug.com/874588 accessibility/dl-role.html [ Crash ]
+crbug.com/874588 accessibility/element-role-mapping-focusable.html [ Crash ]
+crbug.com/874588 accessibility/first-letter-text-transform-causes-crash.html [ Crash ]
+crbug.com/874588 accessibility/focus-action-clicks-element-in-active-descendant.html [ Crash ]
+crbug.com/874588 accessibility/idref-newlines.html [ Crash ]
+crbug.com/874588 accessibility/image-map-title-causes-crash.html [ Crash ]
+crbug.com/874588 accessibility/image-map-update-parent-crash.html [ Crash ]
+crbug.com/874588 accessibility/img-fallsback-to-title.html [ Crash ]
+crbug.com/874588 accessibility/in-page-link-target.html [ Crash ]
+crbug.com/874588 accessibility/inline-text-bidi-bounds-for-range.html [ Crash ]
+crbug.com/874588 accessibility/inline-text-bounds-for-range-br.html [ Crash ]
+crbug.com/874588 accessibility/inline-text-change-style.html [ Crash ]
+crbug.com/874588 accessibility/inline-text-changes.html [ Crash ]
+crbug.com/874588 accessibility/inline-text-word-boundaries.html [ Crash ]
+crbug.com/874588 accessibility/inline-text-word-boundary-causes-crash.html [ Crash ]
+crbug.com/874588 accessibility/input-aria-required.html [ Crash ]
+crbug.com/874588 accessibility/input-mixed.html [ Crash ]
+crbug.com/874588 accessibility/input-type-range-aria-value.html [ Crash ]
+crbug.com/874588 accessibility/input-type-range-value-change.html [ Crash ]
+crbug.com/874588 accessibility/input-type-text-caret-position.html [ Crash ]
+crbug.com/874588 accessibility/insert-adjacent-html-causes-crash.xhtml [ Crash ]
+crbug.com/874588 accessibility/insert-selected-option-into-select-causes-crash.html [ Crash ]
+crbug.com/874588 accessibility/label-for-control-hittest.html [ Crash ]
+crbug.com/874588 accessibility/language-meta-tag-dynamically-changing.html [ Crash ]
+crbug.com/874588 accessibility/link-inside-button-accessible-text.html [ Crash ]
+crbug.com/874588 accessibility/menu-item-crash.html [ Crash ]
+crbug.com/874588 accessibility/menu-list-popup-reuses-objects.html [ Crash ]
+crbug.com/874588 accessibility/menu-list-selection-changed.html [ Crash ]
+crbug.com/874588 accessibility/meter-value.html [ Crash ]
+crbug.com/874588 accessibility/name-calc-aria-hidden.html [ Crash ]
+crbug.com/874588 accessibility/name-calc-aria-label.html [ Crash ]
+crbug.com/874588 accessibility/name-calc-aria-labelledby.html [ Crash ]
+crbug.com/874588 accessibility/name-calc-figure.html [ Crash ]
+crbug.com/874588 accessibility/name-calc-group-inside-treeitem.html [ Crash ]
+crbug.com/874588 accessibility/name-calc-inputs.html [ Crash ]
+crbug.com/874588 accessibility/name-calc-native-markup-buttons.html [ Crash ]
+crbug.com/874588 accessibility/name-calc-native-markup-input-buttons.html [ Crash ]
+crbug.com/874588 accessibility/name-calc-summary.html [ Crash ]
+crbug.com/874588 accessibility/name-calc-visibility.html [ Crash ]
+crbug.com/874588 accessibility/nochildren-elements.html [ Crash ]
+crbug.com/874588 accessibility/other-aria-attribute-change-sends-notification.html [ Crash ]
+crbug.com/874588 accessibility/presentation-owned-elements.html [ Crash ]
+crbug.com/874588 accessibility/presentational-leaf.html [ Crash ]
+crbug.com/874588 accessibility/press-works-on-text-fields.html [ Crash ]
+crbug.com/874588 accessibility/removed-anonymous-block-child-causes-crash.html [ Crash ]
+crbug.com/874588 accessibility/render-counter-text.html [ Crash ]
+crbug.com/874588 accessibility/role-attribute.html [ Crash ]
+crbug.com/874588 accessibility/role-change.html [ Crash ]
+crbug.com/874588 accessibility/selection-change-notification-aria-textbox.html [ Crash ]
+crbug.com/874588 accessibility/selection-change-notification-input.html [ Crash ]
+crbug.com/874588 accessibility/selection-change-notification-statictext.html [ Crash ]
+crbug.com/874588 accessibility/selection-change-notification-textarea.html [ Crash ]
+crbug.com/874588 accessibility/selection-follows-focus.html [ Crash ]
+crbug.com/874588 accessibility/set-selection-child-offset.html [ Crash ]
+crbug.com/874588 accessibility/table-caption.html [ Crash ]
+crbug.com/874588 accessibility/table-cells-with-colspan.html [ Crash ]
+crbug.com/874588 accessibility/table-destroyed-crash.html [ Crash ]
+crbug.com/874588 accessibility/table-header-column-row.html [ Crash ]
+crbug.com/874588 accessibility/table-headers.html [ Crash ]
+crbug.com/874588 accessibility/table-row-with-aria-role.html [ Crash ]
+crbug.com/874588 accessibility/table-with-empty-thead-causes-crash.html [ Crash ]
+crbug.com/874588 accessibility/table-with-grid-roles.html [ Crash ]
+crbug.com/874588 accessibility/table-with-hidden-head-section.html [ Crash ]
+crbug.com/874588 accessibility/text-change-notification.html [ Crash ]
+crbug.com/874588 accessibility/text-changes-with-relations.html [ Crash ]
+crbug.com/874588 accessibility/textarea-caret-position.html [ Crash ]
+crbug.com/874588 accessibility/textarea-selection.html [ Crash ]
+crbug.com/874588 accessibility/title-ui-element-correctness.html [ Crash ]
+crbug.com/874588 accessibility/whitespace-in-name-calc.html [ Crash ]
 crbug.com/591099 animations/rotate-transform-equivalent.html [ Failure ]
 crbug.com/728378 compositing/culling/tile-occlusion-boundaries.html [ Failure ]
 crbug.com/591099 compositing/iframes/floating-self-painting-frame.html [ Failure ]
@@ -66,7 +194,6 @@
 crbug.com/869265 compositing/layer-creation/stacking-context-overlap-nested.html [ Failure ]
 crbug.com/591099 css3/filters/composited-layer-child-bounds-after-composited-to-sw-shadow-change.html [ Failure ]
 crbug.com/591099 css3/flexbox/flex-flow-margins-auto-size.html [ Failure ]
-crbug.com/591099 css3/flexbox/intrinsic-width-orthogonal-writing-mode.html [ Failure ]
 crbug.com/591099 css3/flexbox/line-wrapping.html [ Failure ]
 crbug.com/714962 css3/masking/clip-path-reference-box-inline.html [ Failure ]
 crbug.com/591099 editing/selection/paint-hyphen.html [ Pass ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
index fae5b72..ccad64ff 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
@@ -253,11 +253,6 @@
 crbug.com/853945 fast/block/positioning/vertical-rl/fixed-positioning.html [ Failure ]
 crbug.com/853945 fast/block/positioning/rtl-fixed-positioning.html [ Failure ]
 
-# Composited multicolumn paints differently.
-crbug.com/854192 fast/multicol/composited-layer-nested.html [ Failure ]
-crbug.com/854192 fast/multicol/vertical-rl/composited-relpos-overlapping-will-change.html [ Failure ]
-crbug.com/854192 paint/pagination/composited-paginated-outlined-box.html [ Failure ]
-
 Bug(none) fast/dom/scroll-reveal-left-overflow.html [ Failure ]
 Bug(none) fast/dom/scroll-reveal-top-overflow.html [ Failure ]
 Bug(none) virtual/android/rootscroller/nested-rootscroller-browser-controls-bounds-hidden.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
index c31e677..4ed7de47 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
@@ -653,6 +653,7 @@
 Bug(none) paint/invalidation/compositing/scroll-fixed-layer-no-content.html [ Failure ]
 Bug(none) paint/invalidation/compositing/scroll-fixed-layer-out-of-view.html [ Failure ]
 Bug(none) paint/invalidation/compositing/scroll-fixed-squahed-layer.html [ Failure ]
+Bug(none) paint/invalidation/compositing/scrolling-neg-z-index-descendants.html [ Failure ]
 Bug(none) paint/invalidation/compositing/scrolling-without-painting.html [ Failure ]
 Bug(none) paint/invalidation/compositing/should-not-clip-composited-viewport-scrolling-layer.html [ Failure ]
 Bug(none) paint/invalidation/compositing/should-not-repaint-composited-filter.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/SlowTests b/third_party/WebKit/LayoutTests/SlowTests
index 73341aef..551536a 100644
--- a/third_party/WebKit/LayoutTests/SlowTests
+++ b/third_party/WebKit/LayoutTests/SlowTests
@@ -405,6 +405,7 @@
 
 crbug.com/865262 [ Mac ] media/controls/text-track-menu-pointer-selection.html [ Slow ]
 crbug.com/865262 [ Mac ] virtual/new-remote-playback-pipeline/media/controls/text-track-menu-pointer-selection.html [ Slow ]
+crbug.com/876050 [ Mac ] virtual/video-surface-layer/media/controls/text-track-menu-pointer-selection.html [ Slow ]
 
 ### virtual/gpu/fast/canvas/ blending layout tests are slow
 crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blend-image.html [ Slow ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index fc62d6c..68fd4515 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -84,8 +84,6 @@
 
 crbug.com/619103 paint/invalidation/background/background-resize-width.html [ Failure Pass ]
 
-crbug.com/702006 paint/invalidation/compositing/scrolling-neg-z-index-descendants-should-cause-repaint.html [ Failure ]
-
 crbug.com/784956 fast/history/frameset-repeated-name.html [ Pass Failure ]
 
 crbug.com/829740 fast/history/history-back-twice-with-subframes-assert.html [ Pass Timeout ]
@@ -268,6 +266,7 @@
 crbug.com/722825 media/controls/video-enter-exit-fullscreen-while-hovering-shows-controls.html [ Timeout Pass ]
 crbug.com/722825 virtual/new-remote-playback-pipeline/media/controls/video-enter-exit-fullscreen-while-hovering-shows-controls.html [ Timeout Pass ]
 crbug.com/722825 virtual/video-surface-layer/media/controls/video-enter-exit-fullscreen-while-hovering-shows-controls.html [ Timeout Pass ]
+crbug.com/876050 virtual/video-surface-layer/media/controls/text-track-menu-pointer-selection.html [ Pass Failure ]
 
 #### crbug.com/783229 overflow
 crbug.com/724701 overflow/overflow-basic-004.html [ Failure ]
@@ -2723,6 +2722,7 @@
 crbug.com/875249 external/wpt/infrastructure/testdriver/bless.html [ Timeout Pass ]
 
 # ====== New tests from wpt-importer added here ======
+crbug.com/626703 external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.html [ Timeout ]
 crbug.com/626703 external/wpt/css/css-transitions/CSSTransition-startTime.tentative.html [ Timeout ]
 crbug.com/626703 external/wpt/css/css-transitions/event-dispatch.tentative.html [ Timeout ]
 crbug.com/875411 external/wpt/svg/text/reftests/text-complex-002.svg [ Failure ]
@@ -4090,10 +4090,6 @@
 crbug.com/757165 [ Win ] css3/blending/mix-blend-mode-with-filters.html [ Skip ]
 crbug.com/757165 [ Win ] external/wpt/preload/download-resources.html [ Skip ]
 crbug.com/757165 [ Win ] external/wpt/preload/preload-default-csp.sub.html [ Skip ]
-crbug.com/757165 [ Win ] external/wpt/service-workers/service-worker/navigation-redirect.https.html [ Skip ]
-crbug.com/757165 [ Win ] virtual/service-worker-servicification/external/wpt/service-workers/service-worker/navigation-redirect.https.html [ Skip ]
-crbug.com/757165 [ Win ] virtual/outofblink-cors/external/wpt/service-workers/service-worker/navigation-redirect.https.html [ Skip ]
-crbug.com/757165 [ Win ] virtual/outofblink-cors-ns/external/wpt/service-workers/service-worker/navigation-redirect.https.html [ Skip ]
 crbug.com/757165 [ Win ] fast/forms/file/recover-file-input-in-unposted-form.html [ Skip ]
 crbug.com/757165 [ Win ] fast/spatial-navigation/snav-aligned-not-aligned.html [ Pass Failure Timeout Crash ]
 crbug.com/757165 [ Win ] fast/spatial-navigation/snav-clipped-overflowed-content.html [ Pass Failure Timeout Crash ]
@@ -4828,7 +4824,6 @@
 crbug.com/824539 [ Android ] editing/style/block-styles-007.html [ Failure ]
 crbug.com/824539 [ Android ] external/wpt/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.html [ Crash Failure ]
 crbug.com/824539 [ Android ] external/wpt/gamepad/idlharness.html [ Failure ]
-crbug.com/824539 [ Android ] external/wpt/input-events/idlharness.html [ Failure ]
 crbug.com/824539 [ Android ] external/wpt/web-animations/timing-model/animations/finishing-an-animation.html [ Failure ]
 crbug.com/824539 [ Android ] fast/backgrounds/background-clip-text.html [ Failure ]
 crbug.com/824539 [ Android ] fast/block/basic/018.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
index 7ea1da1..d44da23 100644
--- a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
+++ b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
@@ -94841,18 +94841,6 @@
      {}
     ]
    ],
-   "html/rendering/non-replaced-elements/the-fieldset-element-0/min-width-not-important.html": [
-    [
-     "/html/rendering/non-replaced-elements/the-fieldset-element-0/min-width-not-important.html",
-     [
-      [
-       "/html/rendering/non-replaced-elements/the-fieldset-element-0/ref.html",
-       "=="
-      ]
-     ],
-     {}
-    ]
-   ],
    "html/rendering/non-replaced-elements/the-hr-element-0/align.html": [
     [
      "/html/rendering/non-replaced-elements/the-hr-element-0/align.html",
@@ -105156,16 +105144,6 @@
      {}
     ]
    ],
-   "budget-api/interfaces.any-expected.txt": [
-    [
-     {}
-    ]
-   ],
-   "budget-api/interfaces.any.worker-expected.txt": [
-    [
-     {}
-    ]
-   ],
    "clear-site-data/META.yml": [
     [
      {}
@@ -154501,7 +154479,7 @@
      {}
     ]
    ],
-   "html/rendering/non-replaced-elements/the-fieldset-element-0/ref.html": [
+   "html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size-expected.txt": [
     [
      {}
     ]
@@ -166711,6 +166689,11 @@
      {}
     ]
    ],
+   "scroll-animations/idlharness.window-expected.txt": [
+    [
+     {}
+    ]
+   ],
    "secure-contexts/META.yml": [
     [
      {}
@@ -167891,11 +167874,6 @@
      {}
     ]
    ],
-   "service-workers/cache-storage/serviceworker/cache-add.https-expected.txt": [
-    [
-     {}
-    ]
-   ],
    "service-workers/cache-storage/serviceworker/cache-keys-attributes-for-service-worker.https-expected.txt": [
     [
      {}
@@ -167916,11 +167894,6 @@
      {}
     ]
    ],
-   "service-workers/cache-storage/window/cache-add.https-expected.txt": [
-    [
-     {}
-    ]
-   ],
    "service-workers/cache-storage/window/cache-keys.https-expected.txt": [
     [
      {}
@@ -167941,11 +167914,6 @@
      {}
     ]
    ],
-   "service-workers/cache-storage/worker/cache-add.https-expected.txt": [
-    [
-     {}
-    ]
-   ],
    "service-workers/cache-storage/worker/cache-keys.https-expected.txt": [
     [
      {}
@@ -192560,7 +192528,9 @@
    "css/css-fonts/variations/at-font-face-font-matching.html": [
     [
      "/css/css-fonts/variations/at-font-face-font-matching.html",
-     {}
+     {
+      "timeout": "long"
+     }
     ]
    ],
    "css/css-fonts/variations/font-opentype-collections.html": [
@@ -214153,6 +214123,16 @@
      {}
     ]
    ],
+   "fetch/api/redirect/redirect-back-to-original-origin.any.js": [
+    [
+     "/fetch/api/redirect/redirect-back-to-original-origin.any.html",
+     {}
+    ],
+    [
+     "/fetch/api/redirect/redirect-back-to-original-origin.any.worker.html",
+     {}
+    ]
+   ],
    "fetch/api/redirect/redirect-count.any.js": [
     [
      "/fetch/api/redirect/redirect-count.any.html",
@@ -218539,6 +218519,12 @@
      {}
     ]
    ],
+   "html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox.html": [
+    [
+     "/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox.html",
+     {}
+    ]
+   ],
    "html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-multicol.html": [
     [
      "/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-multicol.html",
@@ -218551,12 +218537,24 @@
      {}
     ]
    ],
+   "html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display.html": [
+    [
+     "/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display.html",
+     {}
+    ]
+   ],
    "html/rendering/non-replaced-elements/the-fieldset-element-0/legend.html": [
     [
      "/html/rendering/non-replaced-elements/the-fieldset-element-0/legend.html",
      {}
     ]
    ],
+   "html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size.html": [
+    [
+     "/html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size.html",
+     {}
+    ]
+   ],
    "html/rendering/non-replaced-elements/the-hr-element-0/hr.html": [
     [
      "/html/rendering/non-replaced-elements/the-hr-element-0/hr.html",
@@ -227183,12 +227181,6 @@
      {}
     ]
    ],
-   "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/005.html": [
-    [
-     "/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/005.html",
-     {}
-    ]
-   ],
    "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/006.html": [
     [
      "/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/006.html",
@@ -227339,6 +227331,12 @@
      {}
     ]
    ],
+   "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.js": [
+    [
+     "/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.html",
+     {}
+    ]
+   ],
    "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext.window.js": [
     [
      "/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext.window.html",
@@ -228155,9 +228153,9 @@
      {}
     ]
    ],
-   "input-events/idlharness.html": [
+   "input-events/idlharness.window.js": [
     [
-     "/input-events/idlharness.html",
+     "/input-events/idlharness.window.html",
      {}
     ]
    ],
@@ -250725,9 +250723,9 @@
      {}
     ]
    ],
-   "scroll-animations/idlharness.html": [
+   "scroll-animations/idlharness.window.js": [
     [
-     "/scroll-animations/idlharness.html",
+     "/scroll-animations/idlharness.window.html",
      {}
     ]
    ],
@@ -270783,7 +270781,7 @@
    "support"
   ],
   "./lint.whitelist": [
-   "3b7bd6da3d2e6812cea8659166518687d8c83d33",
+   "d09b3a4345329983c6a22553d945aa8787b114d4",
    "support"
   ],
   "./update-built-tests.sh": [
@@ -279562,14 +279560,6 @@
    "417d39a317f55a95180c806d28047c85dd959d65",
    "testharness"
   ],
-  "budget-api/interfaces.any-expected.txt": [
-   "b90e249c90b6fdc488094cf527fa8796f5d0e62a",
-   "support"
-  ],
-  "budget-api/interfaces.any.worker-expected.txt": [
-   "f7e4f4073ff7a6db3431a829c43c000304e67012",
-   "support"
-  ],
   "clear-site-data/META.yml": [
    "6a59c67f1e730767e09bac945ff830d44fea96b5",
    "support"
@@ -314927,11 +314917,11 @@
    "testharness"
   ],
   "css/css-fonts/variations/at-font-face-font-matching-expected.txt": [
-   "a79354f354f828cd434518b8699e2bfe52079ae0",
+   "b2855d11ccafeb50e5b82894b170a2cf4585c9fe",
    "support"
   ],
   "css/css-fonts/variations/at-font-face-font-matching.html": [
-   "1cde22de011c102163c14a44ac686e97e075b934",
+   "b3b6c196a955e028632b396e2b46537abff30e30",
    "testharness"
   ],
   "css/css-fonts/variations/font-opentype-collections.html": [
@@ -359466,6 +359456,10 @@
    "9aefc6a6198eaec591e432bb5454e1ebb22e58a1",
    "support"
   ],
+  "fetch/api/redirect/redirect-back-to-original-origin.any.js": [
+   "ac9fb6ce260e0270aa9a606a70b9377d48d86b3b",
+   "testharness"
+  ],
   "fetch/api/redirect/redirect-count.any.js": [
    "4a34ca3e45905d13423426134675c52102cc54d3",
    "testharness"
@@ -371078,6 +371072,10 @@
    "c5625a92cc1abbca2b036335a1a9f9655928d2cd",
    "testharness"
   ],
+  "html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox.html": [
+   "e917fedffc3d199988f9dc39f13e6660caa3e822",
+   "testharness"
+  ],
   "html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-multicol.html": [
    "b769531b2731c8374c77ca8c0d931147a2d9125b",
    "testharness"
@@ -371098,18 +371096,22 @@
    "e4fe5b45c36d22c5699d9637500461c84fae81e3",
    "reftest"
   ],
+  "html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display.html": [
+   "d1fd54d752282a30b4fb33c8ce223b6afc7a1d3a",
+   "testharness"
+  ],
   "html/rendering/non-replaced-elements/the-fieldset-element-0/legend.html": [
    "0e2847a09449bb086f2a18ed14e1b44315e3f84d",
    "testharness"
   ],
-  "html/rendering/non-replaced-elements/the-fieldset-element-0/min-width-not-important.html": [
-   "1b765f689ff6c297942d79fd093cb2d572e66f9a",
-   "reftest"
-  ],
-  "html/rendering/non-replaced-elements/the-fieldset-element-0/ref.html": [
-   "ca98c73f07f62c3536f6fe1d2460fc94c575aad1",
+  "html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size-expected.txt": [
+   "390b069f800926cc81fabefaee26888d228d93d3",
    "support"
   ],
+  "html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size.html": [
+   "534da7f7cae9d51831359e5d66c4b9a8440de096",
+   "testharness"
+  ],
   "html/rendering/non-replaced-elements/the-hr-element-0/.gitkeep": [
    "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
@@ -380838,10 +380840,6 @@
    "5172e81331c674b29188fb37ca2ac46b9b503564",
    "support"
   ],
-  "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/005.html": [
-   "cda5dad49acef96f217730081f8b8493430ed032",
-   "testharness"
-  ],
   "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/006.html": [
    "35bff72f39a2f9b8266dd9b906eee238a7dee8e5",
    "testharness"
@@ -381026,6 +381024,10 @@
    "f777c3f2ce746d415814083dc932f4a25a82c34f",
    "support"
   ],
+  "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.js": [
+   "f6f04a3dbf84190f7487c46f340e12587fe354eb",
+   "testharness"
+  ],
   "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext-subframe.txt": [
    "8d06cea05d408d70c59b1dbc5df3bda374d869a4",
    "support"
@@ -382286,8 +382288,8 @@
    "9ebd0fb0f1eae3b8b1c53e25fdb15f80c34251e2",
    "support"
   ],
-  "input-events/idlharness.html": [
-   "51c7e4864c9ec4ce110cacbfc4cad2114f5eae01",
+  "input-events/idlharness.window.js": [
+   "2e0e720a4656211162609fa22f848c8207af3ccf",
    "testharness"
   ],
   "input-events/input-events-cut-paste-manual.html": [
@@ -393447,7 +393449,7 @@
    "manual"
   ],
   "payment-request/payment-response/retry-method-manual.https.html": [
-   "e07683231e87640d519888c9d17b1fa2124509fc",
+   "a78545c78d559325f3402bff6875516228c787bf",
    "manual"
   ],
   "payment-request/payment-response/shippingAddress-attribute-manual.https.html": [
@@ -403094,8 +403096,12 @@
    "1bcc67c6bdaf519b9bb2b8d70ab632d2d856025d",
    "support"
   ],
-  "scroll-animations/idlharness.html": [
-   "343f75a4f8c405542f2fbe8ec5bdb6e757d17d0a",
+  "scroll-animations/idlharness.window-expected.txt": [
+   "e04aac7dcdd745dc4d4160a8388ac2a2b0aea584",
+   "support"
+  ],
+  "scroll-animations/idlharness.window.js": [
+   "04c56a846e928046ef7772a6a0f808ccba970b1e",
    "testharness"
   ],
   "secure-contexts/META.yml": [
@@ -404278,10 +404284,6 @@
    "2d0c58dc738503b59da3eaa3778796d2c876b58e",
    "testharness"
   ],
-  "service-workers/cache-storage/serviceworker/cache-add.https-expected.txt": [
-   "ff3dce2960b71157409800de2dd5ded29dadc16f",
-   "support"
-  ],
   "service-workers/cache-storage/serviceworker/cache-add.https.html": [
    "294e76cb7b067b17fc9a0850bdab1d6e169cc25a",
    "testharness"
@@ -404346,10 +404348,6 @@
    "581381044d7d6c58cf43e7a0ac910fb10898b07c",
    "testharness"
   ],
-  "service-workers/cache-storage/window/cache-add.https-expected.txt": [
-   "8d6348f3e7613a58663cf11d76a4ca81ba984a0d",
-   "support"
-  ],
   "service-workers/cache-storage/window/cache-add.https.html": [
    "d2c83935c4f413fa6f9459843a9ba669deb0e8ce",
    "testharness"
@@ -404410,10 +404408,6 @@
    "29052e0306c5000ab6f08872e04749bca5676ff0",
    "testharness"
   ],
-  "service-workers/cache-storage/worker/cache-add.https-expected.txt": [
-   "8d6348f3e7613a58663cf11d76a4ca81ba984a0d",
-   "support"
-  ],
   "service-workers/cache-storage/worker/cache-add.https.html": [
    "2cbea6be14f2f1852993be40744cac72a7fc62f6",
    "testharness"
@@ -420519,7 +420513,7 @@
    "testharness"
   ],
   "xhr/META.yml": [
-   "407984ab3695084be748ffb7e756944f42d7081b",
+   "ed6908403f241ec0cc2cc74aaec381bb120a7cf4",
    "support"
   ],
   "xhr/OWNERS": [
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-fonts/variations/at-font-face-font-matching-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/css-fonts/variations/at-font-face-font-matching-expected.txt
index a4d8500..431100e 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-fonts/variations/at-font-face-font-matching-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-fonts/variations/at-font-face-font-matching-expected.txt
@@ -1,113 +1,113 @@
 This is a testharness.js-based test.
-Found 109 tests; 2 PASS, 107 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Descriptor mathcing priority: Stretch has higher priority than style
-PASS Descriptor mathcing priority: Stretch has higher priority than weight
-FAIL Descriptor mathcing priority: Style has higher priority than weight assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '400' should prefer '400' over '450 460' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '400' should prefer '450 460' over '500' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '400' should prefer '500' over '350 399' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '400' should prefer '350 399' over '351 398' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '400' should prefer '351 398' over '501 550' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '400' should prefer '501 550' over '502 560' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '430' should prefer '420 440' over '450 460' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '430' should prefer '450 460' over '500' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '430' should prefer '500' over '400 425' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '430' should prefer '400 425' over '350 399' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '430' should prefer '350 399' over '340 398' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '430' should prefer '340 398' over '501 550' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '430' should prefer '501 550' over '502 560' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '500' should prefer '500' over '450 460' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '500' should prefer '450 460' over '400' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '500' should prefer '400' over '350 399' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '500' should prefer '350 399' over '351 398' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '500' should prefer '351 398' over '501 550' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '500' should prefer '501 550' over '502 560' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '501' should prefer '501' over '502 510' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '501' should prefer '502 510' over '503 520' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '501' should prefer '503 520' over '500' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '501' should prefer '500' over '450 460' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '501' should prefer '450 460' over '390 410' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '501' should prefer '390 410' over '300 350' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '399' should prefer '350 399' over '340 360' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '399' should prefer '340 360' over '200 300' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '399' should prefer '200 300' over '400' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '399' should prefer '400' over '450 460' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '399' should prefer '450 460' over '500 501' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-weight: '399' should prefer '500 501' over '502 510' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '100%' should prefer '100%' over '110% 120%' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '100%' should prefer '110% 120%' over '115% 116%' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '110%' should prefer '110% 120%' over '115% 116%' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '110%' should prefer '115% 116%' over '105%' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '110%' should prefer '105%' over '100%' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '110%' should prefer '100%' over '50% 80%' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '110%' should prefer '50% 80%' over '60% 70%' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '90%' should prefer '90% 100%' over '50% 80%' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '90%' should prefer '50% 80%' over '60% 70%' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '90%' should prefer '60% 70%' over '110% 140%' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-stretch: '90%' should prefer '110% 140%' over '120% 130%' assert_true: Unexpected font on test element expected true got false
+Found 109 tests; 97 PASS, 12 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS Descriptor matching priority: Stretch has higher priority than style
+PASS Descriptor matching priority: Stretch has higher priority than weight
+FAIL Descriptor matching priority: Style has higher priority than weight assert_true: Unexpected font on test element expected true got false
+PASS Matching font-weight: '400' should prefer '400' over '450 460'
+PASS Matching font-weight: '400' should prefer '450 460' over '500'
+PASS Matching font-weight: '400' should prefer '500' over '350 399'
+PASS Matching font-weight: '400' should prefer '350 399' over '351 398'
+PASS Matching font-weight: '400' should prefer '351 398' over '501 550'
+PASS Matching font-weight: '400' should prefer '501 550' over '502 560'
+PASS Matching font-weight: '430' should prefer '420 440' over '450 460'
+PASS Matching font-weight: '430' should prefer '450 460' over '500'
+PASS Matching font-weight: '430' should prefer '500' over '400 425'
+PASS Matching font-weight: '430' should prefer '400 425' over '350 399'
+PASS Matching font-weight: '430' should prefer '350 399' over '340 398'
+PASS Matching font-weight: '430' should prefer '340 398' over '501 550'
+PASS Matching font-weight: '430' should prefer '501 550' over '502 560'
+PASS Matching font-weight: '500' should prefer '500' over '450 460'
+PASS Matching font-weight: '500' should prefer '450 460' over '400'
+PASS Matching font-weight: '500' should prefer '400' over '350 399'
+PASS Matching font-weight: '500' should prefer '350 399' over '351 398'
+PASS Matching font-weight: '500' should prefer '351 398' over '501 550'
+PASS Matching font-weight: '500' should prefer '501 550' over '502 560'
+PASS Matching font-weight: '501' should prefer '501' over '502 510'
+PASS Matching font-weight: '501' should prefer '502 510' over '503 520'
+PASS Matching font-weight: '501' should prefer '503 520' over '500'
+PASS Matching font-weight: '501' should prefer '500' over '450 460'
+PASS Matching font-weight: '501' should prefer '450 460' over '390 410'
+PASS Matching font-weight: '501' should prefer '390 410' over '300 350'
+PASS Matching font-weight: '399' should prefer '350 399' over '340 360'
+PASS Matching font-weight: '399' should prefer '340 360' over '200 300'
+PASS Matching font-weight: '399' should prefer '200 300' over '400'
+PASS Matching font-weight: '399' should prefer '400' over '450 460'
+PASS Matching font-weight: '399' should prefer '450 460' over '500 501'
+PASS Matching font-weight: '399' should prefer '500 501' over '502 510'
+PASS Matching font-stretch: '100%' should prefer '100%' over '110% 120%'
+PASS Matching font-stretch: '100%' should prefer '110% 120%' over '115% 116%'
+PASS Matching font-stretch: '110%' should prefer '110% 120%' over '115% 116%'
+PASS Matching font-stretch: '110%' should prefer '115% 116%' over '105%'
+PASS Matching font-stretch: '110%' should prefer '105%' over '100%'
+PASS Matching font-stretch: '110%' should prefer '100%' over '50% 80%'
+PASS Matching font-stretch: '110%' should prefer '50% 80%' over '60% 70%'
+PASS Matching font-stretch: '90%' should prefer '90% 100%' over '50% 80%'
+PASS Matching font-stretch: '90%' should prefer '50% 80%' over '60% 70%'
+PASS Matching font-stretch: '90%' should prefer '60% 70%' over '110% 140%'
+PASS Matching font-stretch: '90%' should prefer '110% 140%' over '120% 130%'
 FAIL Matching font-style: 'normal' should prefer 'normal' over 'oblique 0deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'normal' should prefer 'oblique 0deg' over 'oblique 10deg 40deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'normal' should prefer 'oblique 10deg 40deg' over 'oblique 20deg 30deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'normal' should prefer 'oblique 20deg 30deg' over 'oblique -50deg -20deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'normal' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg' assert_true: Unexpected font on test element expected true got false
+PASS Matching font-style: 'normal' should prefer 'oblique 0deg' over 'oblique 10deg 40deg'
+PASS Matching font-style: 'normal' should prefer 'oblique 10deg 40deg' over 'oblique 20deg 30deg'
+PASS Matching font-style: 'normal' should prefer 'oblique 20deg 30deg' over 'oblique -50deg -20deg'
+PASS Matching font-style: 'normal' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'
 FAIL Matching font-style: 'italic' should prefer 'italic' over 'oblique 20deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'italic' should prefer 'oblique 20deg' over 'oblique 30deg 60deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'italic' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'italic' should prefer 'oblique 40deg 50deg' over 'oblique 5deg 10deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'italic' should prefer 'oblique 5deg 10deg' over 'oblique 5deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'italic' should prefer 'oblique 5deg' over 'normal' assert_true: Unexpected font on test element expected true got false
+PASS Matching font-style: 'italic' should prefer 'oblique 20deg' over 'oblique 30deg 60deg'
+PASS Matching font-style: 'italic' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'
+PASS Matching font-style: 'italic' should prefer 'oblique 40deg 50deg' over 'oblique 5deg 10deg'
+PASS Matching font-style: 'italic' should prefer 'oblique 5deg 10deg' over 'oblique 5deg'
+PASS Matching font-style: 'italic' should prefer 'oblique 5deg' over 'normal'
 FAIL Matching font-style: 'italic' should prefer 'normal' over 'oblique 0deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'italic' should prefer 'oblique 0deg' over 'oblique -60deg -30deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'italic' should prefer 'oblique -60deg -30deg' over 'oblique -50deg -40deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 20deg' should prefer 'oblique 20deg' over 'oblique 30deg 60deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 20deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 20deg' should prefer 'oblique 40deg 50deg' over 'oblique 10deg' assert_true: Unexpected font on test element expected true got false
+PASS Matching font-style: 'italic' should prefer 'oblique 0deg' over 'oblique -60deg -30deg'
+PASS Matching font-style: 'italic' should prefer 'oblique -60deg -30deg' over 'oblique -50deg -40deg'
+PASS Matching font-style: 'oblique 20deg' should prefer 'oblique 20deg' over 'oblique 30deg 60deg'
+PASS Matching font-style: 'oblique 20deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'
+PASS Matching font-style: 'oblique 20deg' should prefer 'oblique 40deg 50deg' over 'oblique 10deg'
 FAIL Matching font-style: 'oblique 20deg' should prefer 'oblique 10deg' over 'italic' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 20deg' should prefer 'italic' over 'oblique 0deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 20deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 20deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 21deg' should prefer 'oblique 21deg' over 'oblique 30deg 60deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 21deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 21deg' should prefer 'oblique 40deg 50deg' over 'oblique 20deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 21deg' should prefer 'oblique 20deg' over 'oblique 10deg' assert_true: Unexpected font on test element expected true got false
+PASS Matching font-style: 'oblique 20deg' should prefer 'italic' over 'oblique 0deg'
+PASS Matching font-style: 'oblique 20deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg'
+PASS Matching font-style: 'oblique 20deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'
+PASS Matching font-style: 'oblique 21deg' should prefer 'oblique 21deg' over 'oblique 30deg 60deg'
+PASS Matching font-style: 'oblique 21deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'
+PASS Matching font-style: 'oblique 21deg' should prefer 'oblique 40deg 50deg' over 'oblique 20deg'
+PASS Matching font-style: 'oblique 21deg' should prefer 'oblique 20deg' over 'oblique 10deg'
 FAIL Matching font-style: 'oblique 21deg' should prefer 'oblique 10deg' over 'italic' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 21deg' should prefer 'italic' over 'oblique 0deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 21deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 21deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 10deg' should prefer 'oblique 10deg' over 'oblique 5deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 10deg' should prefer 'oblique 5deg' over 'oblique 15deg 20deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 10deg' should prefer 'oblique 15deg 20deg' over 'oblique 30deg 60deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 10deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg' assert_true: Unexpected font on test element expected true got false
+PASS Matching font-style: 'oblique 21deg' should prefer 'italic' over 'oblique 0deg'
+PASS Matching font-style: 'oblique 21deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg'
+PASS Matching font-style: 'oblique 21deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'
+PASS Matching font-style: 'oblique 10deg' should prefer 'oblique 10deg' over 'oblique 5deg'
+PASS Matching font-style: 'oblique 10deg' should prefer 'oblique 5deg' over 'oblique 15deg 20deg'
+PASS Matching font-style: 'oblique 10deg' should prefer 'oblique 15deg 20deg' over 'oblique 30deg 60deg'
+PASS Matching font-style: 'oblique 10deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'
 FAIL Matching font-style: 'oblique 10deg' should prefer 'oblique 40deg 50deg' over 'italic' assert_true: Unexpected font on test element expected true got false
 FAIL Matching font-style: 'oblique 10deg' should prefer 'italic' over 'oblique 0deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 10deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 10deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 0deg' should prefer 'oblique 0deg' over 'oblique 5deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 0deg' should prefer 'oblique 5deg' over 'oblique 15deg 20deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 0deg' should prefer 'oblique 15deg 20deg' over 'oblique 30deg 60deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 0deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg' assert_true: Unexpected font on test element expected true got false
+PASS Matching font-style: 'oblique 10deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg'
+PASS Matching font-style: 'oblique 10deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'
+PASS Matching font-style: 'oblique 0deg' should prefer 'oblique 0deg' over 'oblique 5deg'
+PASS Matching font-style: 'oblique 0deg' should prefer 'oblique 5deg' over 'oblique 15deg 20deg'
+PASS Matching font-style: 'oblique 0deg' should prefer 'oblique 15deg 20deg' over 'oblique 30deg 60deg'
+PASS Matching font-style: 'oblique 0deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'
 FAIL Matching font-style: 'oblique 0deg' should prefer 'oblique 40deg 50deg' over 'italic' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 0deg' should prefer 'italic' over 'oblique -50deg -20deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique 0deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -10deg' should prefer 'oblique -10deg' over 'oblique -5deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -10deg' should prefer 'oblique -5deg' over 'oblique -1deg 0deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -10deg' should prefer 'oblique -1deg 0deg' over 'oblique -20deg -15deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -10deg' should prefer 'oblique -20deg -15deg' over 'oblique -60deg -30deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -10deg' should prefer 'oblique -60deg -30deg' over 'oblique -50deg -40deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -10deg' should prefer 'oblique -50deg -40deg' over 'italic' assert_true: Unexpected font on test element expected true got false
+PASS Matching font-style: 'oblique 0deg' should prefer 'italic' over 'oblique -50deg -20deg'
+PASS Matching font-style: 'oblique 0deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'
+PASS Matching font-style: 'oblique -10deg' should prefer 'oblique -10deg' over 'oblique -5deg'
+PASS Matching font-style: 'oblique -10deg' should prefer 'oblique -5deg' over 'oblique -1deg 0deg'
+PASS Matching font-style: 'oblique -10deg' should prefer 'oblique -1deg 0deg' over 'oblique -20deg -15deg'
+PASS Matching font-style: 'oblique -10deg' should prefer 'oblique -20deg -15deg' over 'oblique -60deg -30deg'
+PASS Matching font-style: 'oblique -10deg' should prefer 'oblique -60deg -30deg' over 'oblique -50deg -40deg'
+PASS Matching font-style: 'oblique -10deg' should prefer 'oblique -50deg -40deg' over 'italic'
 FAIL Matching font-style: 'oblique -10deg' should prefer 'italic' over 'oblique 0deg 10deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -10deg' should prefer 'oblique 0deg 10deg' over 'oblique 40deg 50deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -20deg' should prefer 'oblique -20deg' over 'oblique -60deg -40deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -20deg' should prefer 'oblique -60deg -40deg' over 'oblique -10deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -20deg' should prefer 'oblique -10deg' over 'italic' assert_true: Unexpected font on test element expected true got false
+PASS Matching font-style: 'oblique -10deg' should prefer 'oblique 0deg 10deg' over 'oblique 40deg 50deg'
+PASS Matching font-style: 'oblique -20deg' should prefer 'oblique -20deg' over 'oblique -60deg -40deg'
+PASS Matching font-style: 'oblique -20deg' should prefer 'oblique -60deg -40deg' over 'oblique -10deg'
+PASS Matching font-style: 'oblique -20deg' should prefer 'oblique -10deg' over 'italic'
 FAIL Matching font-style: 'oblique -20deg' should prefer 'italic' over 'oblique 0deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -20deg' should prefer 'oblique 0deg' over 'oblique 30deg 60deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -20deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -21deg' should prefer 'oblique -21deg' over 'oblique -60deg -40deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -21deg' should prefer 'oblique -60deg -40deg' over 'oblique -10deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -21deg' should prefer 'oblique -10deg' over 'italic' assert_true: Unexpected font on test element expected true got false
+PASS Matching font-style: 'oblique -20deg' should prefer 'oblique 0deg' over 'oblique 30deg 60deg'
+PASS Matching font-style: 'oblique -20deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'
+PASS Matching font-style: 'oblique -21deg' should prefer 'oblique -21deg' over 'oblique -60deg -40deg'
+PASS Matching font-style: 'oblique -21deg' should prefer 'oblique -60deg -40deg' over 'oblique -10deg'
+PASS Matching font-style: 'oblique -21deg' should prefer 'oblique -10deg' over 'italic'
 FAIL Matching font-style: 'oblique -21deg' should prefer 'italic' over 'oblique 0deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -21deg' should prefer 'oblique 0deg' over 'oblique 30deg 60deg' assert_true: Unexpected font on test element expected true got false
-FAIL Matching font-style: 'oblique -21deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg' assert_true: Unexpected font on test element expected true got false
+PASS Matching font-style: 'oblique -21deg' should prefer 'oblique 0deg' over 'oblique 30deg 60deg'
+PASS Matching font-style: 'oblique -21deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-fonts/variations/at-font-face-font-matching.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-fonts/variations/at-font-face-font-matching.html
index 24f0bdcc..28fa626 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-fonts/variations/at-font-face-font-matching.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-fonts/variations/at-font-face-font-matching.html
@@ -3,6 +3,7 @@
 <head>
     <title>Testing @font-face font matching logic introduced in CSS Fonts level 4</title>
     <link rel="help" href="https://www.w3.org/TR/css-fonts-4/#font-matching-algorithm" />
+    <meta name="timeout" content="long">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <style>
@@ -33,6 +34,9 @@
         <span style="font-family: 'W100';">A</span>
         <span style="font-family: 'W200';">A</span>
         <span style="font-family: 'W300';">A</span>
+        <span style="font-family: 'descriptorPriorityTest'; font-stretch: 125%;">A</span>
+        <span style="font-family: 'descriptorPriorityTest'; font-style: italic;">A</span>
+        <span style="font-family: 'descriptorPriorityTest'; font-weight: 350;">A</span>
     </span>
 
     <div id="master" class="test">A1 A2 A2 A3 A3 A3</div>
@@ -79,36 +83,80 @@
         ];
 
         descriptorPriorityCases.forEach(function (testCase) {
-            promise_test(
-                assert => once_fonts_are_ready.then(assert => {
-                    verifyFont("descriptorPriorityTest", testCase.weight, testCase.style, testCase.stretch, testCase.expectedFamily);
-                }),
-                "Descriptor mathcing priority: " + testCase.description
+            promise_test(() => {
+                return once_fonts_are_ready
+                    .then(() => verifyFont("descriptorPriorityTest", testCase.weight, testCase.style, testCase.stretch, testCase.expectedFamily));
+                },
+                "Descriptor matching priority: " + testCase.description
             );
         });
 
+        function load(family, name, value) {
+            const el1 = document.createElement("span");
+            const el2 = document.createElement("span");
+            el1.innerText = "A";
+            el2.innerText = "A";
+            let value1, value2;
+            if (value.indexOf("deg") > 0) {
+                value1 = "oblique " + value.split(" ")[1];
+                value2 = "oblique " + (value.split(" ")[2] || value.split(" ")[1]);
+            } else {
+                value1 = value.split(" ")[0];
+                value2 = value.split(" ")[1] || value1;
+            }
+            el1.style[name] = value1;
+            el2.style[name] = value2;
+            document.body.appendChild(el1);
+            document.body.appendChild(el2);
+            const initialWidth1 = el1.offsetWidth;
+            const initialWidth2 = el2.offsetWidth;
+            return new Promise((resolve) => {
+                el1.style.fontFamily = family;
+                el2.style.fontFamily = family;
+                (function check() {
+                    if (el1.offsetWidth !== initialWidth1 && el2.offsetWidth !== initialWidth2) {
+                        el1.remove();
+                        el2.remove();
+                        resolve();
+                    } else {
+                        requestAnimationFrame(check);
+                    }
+                }());
+            });
+        }
         function createFontFaceRules(fontFaceFamily, descriptorName, expectedMatch, unexpectedMatch) {
             dynamicStyles.innerHTML =
                 "@font-face { font-family: " + fontFaceFamily + "; src: url('./resources/csstest-weights-100-kerned.ttf'); "+ descriptorName + ": " + expectedMatch   + "; }" +
                 "@font-face { font-family: " + fontFaceFamily + "; src: url('./resources/csstest-weights-200-kerned.ttf'); " + descriptorName + ": " + unexpectedMatch + "; }";
+
+            return Promise.all([
+                load(fontFaceFamily, descriptorName, expectedMatch),
+                load(fontFaceFamily, descriptorName, unexpectedMatch)
+            ]);
         }
 
+        let familyId = 0;
+
         function testDescriptor(descriptorName, testCases) {
             testCases.forEach(function (testCase) {
                     // Go though test cases, checking each descriptor has higher priority than next in the list
                     for(let i = 0; i < testCase.testDescriptors.length - 1; i++) {
                         let expectedMatch   = testCase.testDescriptors[i];
                         let unexpectedMatch = testCase.testDescriptors[i + 1];
+                        familyId += 1;
+                        const family = "MatchTestFamily" + familyId;
+
                         promise_test(
-                            assert => once_fonts_are_ready.then(assert => {
-                                createFontFaceRules("MatchTestFamily", descriptorName, expectedMatch, unexpectedMatch);
+                            () => {
+                                return createFontFaceRules(family, descriptorName, expectedMatch, unexpectedMatch)
+                                    .then(() => {
+                                        let testWeight  = (descriptorName == "font-weight")  ? testCase.value : "normal";
+                                        let testStyle   = (descriptorName == "font-style")   ? testCase.value : "normal";
+                                        let testStretch = (descriptorName == "font-stretch") ? testCase.value : "normal";
 
-                                let testWeight  = (descriptorName == "font-weight")  ? testCase.value : "normal";
-                                let testStyle   = (descriptorName == "font-style")   ? testCase.value : "normal";
-                                let testStretch = (descriptorName == "font-stretch") ? testCase.value : "normal";
-
-                                verifyFont("MatchTestFamily", testWeight, testStyle, testStretch, "'W100'");
-                            }),
+                                        verifyFont(family, testWeight, testStyle, testStretch, "'W100'");
+                                    });
+                            },
                             "Matching " + descriptorName + ": '" + testCase.value + "' should prefer '" + expectedMatch + "' over '" + unexpectedMatch + "'");
                     }
             });
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/redirect/redirect-back-to-original-origin.any.js b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/redirect/redirect-back-to-original-origin.any.js
new file mode 100644
index 0000000..32d413cb
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/redirect/redirect-back-to-original-origin.any.js
@@ -0,0 +1,37 @@
+// META: script=/common/get-host-info.sub.js
+
+const BASE = location.href;
+const IS_HTTPS = new URL(BASE).protocol === 'https:';
+const REMOTE_HOST = get_host_info()['REMOTE_HOST'];
+const REMOTE_PORT =
+  IS_HTTPS ? get_host_info()['HTTPS_PORT'] : get_host_info()['HTTP_PORT'];
+
+const REMOTE_ORIGIN =
+  new URL(`//${REMOTE_HOST}:${REMOTE_PORT}`, BASE).origin;
+const DESTINATION = new URL('../resources/cors-top.txt', BASE);
+
+function CreateURL(url, BASE, params) {
+  const u = new URL(url, BASE);
+  for (const {name, value} of params) {
+    u.searchParams.append(name, value);
+  }
+  return u;
+}
+
+const redirect =
+  CreateURL('/fetch/api/resources/redirect.py', REMOTE_ORIGIN,
+            [{name: 'redirect_status', value: 303},
+             {name: 'location', value: DESTINATION.href}]);
+
+promise_test(async (test) => {
+  const res = await fetch(redirect.href, {mode: 'no-cors'});
+  // This is discussed at https://github.com/whatwg/fetch/issues/737.
+  assert_equals(res.type, 'opaque');
+}, 'original => remote => original with mode: "no-cors"');
+
+promise_test(async (test) => {
+  const res = await fetch(redirect.href, {mode: 'cors'});
+  assert_equals(res.type, 'cors');
+}, 'original => remote => original with mode: "cors"');
+
+done();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox.html b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox.html
new file mode 100644
index 0000000..d2b1d30
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<title>fieldset and CSS Flexbox</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<style>
+#test, #ref, #test-inline, #ref-inline {
+  display: flex;
+  justify-content: space-around;
+  margin: 0;
+  padding: 0;
+  border: none
+}
+#test-inline, #ref-inline { display: inline-flex }
+</style>
+<fieldset id=test>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+</fieldset>
+<hr>
+<div id=ref>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+</div>
+<hr>
+<fieldset id=test-inline>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+</fieldset>
+<div id=ref-inline>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+</div>
+<script>
+  test(() => {
+    assert_equals(getComputedStyle(document.getElementById('test')).height,
+                  getComputedStyle(document.getElementById('ref')).height);
+  }, "Flex");
+
+  test(() => {
+    assert_equals(getComputedStyle(document.getElementById('test-inline')).height,
+                  getComputedStyle(document.getElementById('ref-inline')).height);
+  }, "Inline flex");
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display.html b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display.html
new file mode 100644
index 0000000..5f27ca5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display.html
@@ -0,0 +1,68 @@
+<!doctype html>
+<title>legend sans fieldset and CSS display</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<style>
+ * { margin: 0; padding: 0; }
+ .table, table { display: table; width: 200px; border-collapse: collapse; }
+ .tbody { display: table-row-group; }
+ .tr { display: table-row; }
+ .td, td { display: table-cell; }
+ .col { display: table-column; }
+ .caption { display: table-caption; }
+ .li { display: list-item; }
+ .inline { display: inline; }
+ .inline-block { display: inline-block; }
+ .inline-table { display: inline-table; }
+ .ruby { display: ruby; }
+ .rt { display: ruby-text; }
+ rt { font-size: inherit; }
+</style>
+<legend class=table>
+  <legend class=caption>caption</legend>
+  <legend class=col></legend><legend class=col></legend>
+  <legend class=tbody>
+    <legend class=tr>
+      <legend class=td>td</legend><legend class=td>td</legend>
+    </legend>
+  </legend>
+</legend>
+<table>
+  <caption>caption</caption>
+  <col><col>
+  <tbody>
+    <tr>
+      <td>td<td>td
+</table>
+<ul>
+  <legend class=li>li</legend>
+  <li>li</li>
+</ul>
+<p>foo <legend class=inline>inline</legend> <span>inline</span>
+<p>foo <legend class=inline-block>inline-block</legend> <span class=inline-block>inline-block</span>
+<p><legend class=ruby>ruby<legend class=rt>rt</legend></legend> <ruby>ruby<rt>rt</ruby>
+<script>
+  function test_display(testSelector, refSelector) {
+    test(() => {
+      const testElm = document.querySelector(testSelector);
+      const refElm = document.querySelector(refSelector);
+      const testStyle = getComputedStyle(testElm);
+      const refStyle = getComputedStyle(refElm);
+      assert_equals(testStyle.display, refStyle.display, testSelector + ' display');
+      assert_equals(testStyle.width, refStyle.width, testSelector + ' width');
+      assert_equals(testStyle.height, refStyle.height, testSelector + ' height');
+    }, testSelector);
+  }
+
+  test_display('.table', 'table');
+  test_display('.caption', 'caption');
+  test_display('.col', 'col');
+  test_display('.tbody', 'tbody');
+  test_display('.tr', 'tr');
+  test_display('.td', 'td');
+  test_display('.li', 'li');
+  test_display('.inline', 'span');
+  test_display('.inline-block', 'span.inline-block');
+  test_display('.ruby', 'ruby');
+  test_display('.rt', 'rt');
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size-expected.txt
new file mode 100644
index 0000000..6b3ae309
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size-expected.txt
@@ -0,0 +1,9 @@
+This is a testharness.js-based test.
+PASS horizontal-tb 
+FAIL vertical-lr  assert_equals: width expected "0px" but got "100px"
+FAIL vertical-rl  assert_equals: width expected "0px" but got "100px"
+PASS horizontal-tb override
+FAIL vertical-lr override assert_equals: width expected "0px" but got "100px"
+FAIL vertical-rl override assert_equals: width expected "0px" but got "100px"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size.html b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size.html
new file mode 100644
index 0000000..92c3302
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/min-inline-size.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<title>fieldset min-inline-size</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<style>
+ fieldset { width: 0; height: 0 }
+ fieldset > div { width: 100px; height: 100px }
+ #vertical-lr { writing-mode: vertical-lr }
+ #vertical-rl { writing-mode: vertical-rl }
+ .override { min-inline-size: 5px }
+</style>
+<fieldset id=horizontal-tb><div></div></fieldset>
+<fieldset id=vertical-lr><div></div></fieldset>
+<fieldset id=vertical-rl><div></div></fieldset>
+<script>
+  for (const className of ['', 'override']) {
+    const expected = className === '' ? '100px' : '5px';
+    test(() => {
+      const fieldset = document.getElementById('horizontal-tb');
+      fieldset.className = className;
+      assert_equals(getComputedStyle(fieldset).width, expected, 'width');
+      assert_equals(getComputedStyle(fieldset).height, '0px', 'height');
+    }, `horizontal-tb ${className}`);
+
+    test(() => {
+      const fieldset = document.getElementById('vertical-lr');
+      fieldset.className = className;
+      assert_equals(getComputedStyle(fieldset).width, '0px', 'width');
+      assert_equals(getComputedStyle(fieldset).height, expected, 'height');
+    }, `vertical-lr ${className}`);
+
+    test(() => {
+      const fieldset = document.getElementById('vertical-rl');
+      fieldset.className = className;
+      assert_equals(getComputedStyle(fieldset).width, '0px', 'width');
+      assert_equals(getComputedStyle(fieldset).height, expected, 'height');
+    }, `vertical-rl ${className}`);
+  }
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/min-width-not-important.html b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/min-width-not-important.html
deleted file mode 100644
index cabbaf20..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/min-width-not-important.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Rendering requirements test (suggested default rendering): fieldset min-width is overridable</title>
-    <link rel="author" title="Chris Rebert" href="http://chrisrebert.com">
-    <link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#the-fieldset-and-legend-elements">
-    <link rel="help" href="http://drafts.csswg.org/css2/visudet.html#min-max-widths">
-    <link rel="help" href="http://drafts.csswg.org/css-sizing/#width-height-keywords">
-    <link rel="match" href="ref.html">
-    <meta name="flags" content="">
-    <meta name="assert" content="fieldset's default min-width should be overridable since it's not !important and not spec'd to be non-overridable">
-    <style>
-body {
-    margin: 10px;
-}
-#cover {
-    background-color: green;
-    position: absolute;
-    left: 10px;
-    top: 10px;
-    height: 100px;
-    width: 100px;
-    z-index: 2;
-}
-fieldset {
-    min-width: 0;/* property under test */
-    /* zero these out so it renders more like a div element */
-    border: none;
-    margin: 0;
-    padding: 0;
-}
-.outer {
-    width: 100px;
-}
-.inner {
-    background-color: red;
-    color: red;
-    height: 100px;
-    overflow: scroll;
-    white-space: nowrap;
-}
-    </style>
-</head>
-<body>
-    <div class="outer">
-        <fieldset>
-            <div class="inner">a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a</div>
-        </fieldset>
-    </div>
-    <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
-    <div id="cover"></div>
-</body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/ref.html b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/ref.html
deleted file mode 100644
index d17268a..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/ref.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Rendering requirements Reftest Reference</title>
-    <style>
-body {
-    margin: 10px;
-}
-div {
-    background-color: green;
-    height: 100px;
-    width: 100px;
-}
-    </style>
-</head>
-<body>
-    <div></div>
-    <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
-</body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/005.html b/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/005.html
deleted file mode 100644
index e849c31..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/005.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html>
-<title>Cancelling timeout after document.open</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<div id="log"></div>
-<iframe src="/common/blank.html"></iframe>
-<script>
-var t = async_test();
-var iframe;
-onload = t.step_func(function() {
-  var iframe = document.getElementsByTagName("iframe")[0];
-  iframe.contentWindow.setTimeout(t.step_func(function() {assert_unreached()}), 100);
-  assert_equals(iframe.contentDocument.open(), iframe.contentDocument);
-  setTimeout(function() {t.done();}, 200);
-});
-</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.js b/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.js
new file mode 100644
index 0000000..383f6da
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.js
@@ -0,0 +1,113 @@
+// An older version of the HTML Standard mandated that document.open() remove
+// all tasks associated with the document on which open() is called. This step
+// has been proposed to be removed. This series of tests ensures that this step
+// is no longer executed.
+//
+// This file comprehensively (but not exhaustively) tests for many queued tasks
+// that may be observable. Each taskTest() call in fact runs two tests: the
+// first one "tasks without document.open()" does not actually run
+// document.open(), just to test that the tested task works ordinarily; the
+// second actually calls document.open() to test if the method call removes
+// that specific task from the queue.
+
+// This is necessary to allow the promise rejection test below.
+setup({
+  allow_uncaught_exception: true
+});
+
+function taskTest(description, testBody) {
+  async_test(t => {
+    const frame = document.body.appendChild(document.createElement("iframe"));
+    // The empty HTML seems to be necessary to cajole Chrome and Safari into
+    // firing a load event asynchronously, which is necessary to make sure the
+    // frame's document doesn't have a parser associated with it.
+    // See: https://crbug.com/875354
+    frame.src = "/common/blank.html";
+    t.add_cleanup(() => frame.remove());
+    frame.onload = t.step_func(() => {
+      // Make sure there is no parser. Firefox seems to have an additional
+      // non-spec-compliant readiness state "uninitialized", so test for the
+      // two known valid readiness states instead.
+      // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1191683
+      assert_in_array(frame.contentDocument.readyState, ["interactive", "complete"]);
+      testBody(t, frame, doc => {});
+    });
+  }, `tasks without document.open() (${description})`);
+
+  async_test(t => {
+    const frame = document.body.appendChild(document.createElement("iframe"));
+    // The empty HTML seems to be necessary to cajole Chrome into firing a load
+    // event, which is necessary to make sure the frame's document doesn't have
+    // a parser associated with it.
+    // See: https://crbug.com/875354
+    frame.src = "/common/blank.html";
+    t.add_cleanup(() => frame.remove());
+    frame.onload = t.step_func(() => {
+      // Make sure there is no parser. Firefox seems to have an additional
+      // non-spec-compliant readiness state "uninitialized", so test for the
+      // two known valid readiness states instead.
+      // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1191683
+      assert_in_array(frame.contentDocument.readyState, ["interactive", "complete"]);
+      testBody(t, frame, doc => doc.open());
+    });
+  }, `document.open() and tasks (${description})`);
+}
+
+taskTest("timeout", (t, frame, open) => {
+  frame.contentWindow.setTimeout(t.step_func_done(), 100);
+  open(frame.contentDocument);
+});
+
+taskTest("window message", (t, frame, open) => {
+  let counter = 0;
+  frame.contentWindow.postMessage(undefined, "*");
+  open(frame.contentDocument);
+  frame.contentWindow.postMessage(undefined, "*");
+  frame.contentWindow.onmessage = t.step_func(e => {
+    assert_equals(e.data, undefined);
+    counter++;
+    assert_less_than_equal(counter, 2);
+    if (counter == 2) {
+      t.done();
+    }
+  });
+});
+
+taskTest("canvas.toBlob()", (t, frame, open) => {
+  const canvas = frame.contentDocument.body.appendChild(frame.contentDocument.createElement("canvas"));
+  canvas.toBlob(t.step_func_done());
+  open(frame.contentDocument);
+});
+
+taskTest("MessagePort", (t, frame, open) => {
+  frame.contentWindow.eval(`({ port1, port2 } = new MessageChannel());`);
+  frame.contentWindow.port2.onmessage = t.step_func_done(ev => {
+    assert_equals(ev.data, "Hello world");
+  });
+  frame.contentWindow.port1.postMessage("Hello world");
+  open(frame.contentDocument);
+});
+
+taskTest("Promise rejection", (t, frame, open) => {
+  // There is currently some ambiguity on which Window object the
+  // unhandledrejection event should be fired on. Here, let's account for that
+  // ambiguity and allow event fired on _any_ global to pass this test.
+  // See:
+  // - https://github.com/whatwg/html/issues/958,
+  // - https://bugs.webkit.org/show_bug.cgi?id=187822
+  const promise = frame.contentWindow.eval("Promise.reject(42);");
+  open(frame.contentDocument);
+  const listener = t.step_func_done(ev => {
+    assert_equals(ev.promise, promise);
+    assert_equals(ev.reason, 42);
+  });
+  frame.contentWindow.onunhandledrejection = listener;
+  window.onunhandledrejection = listener;
+});
+
+taskTest("marquee start", (t, frame, open) => {
+  const doc = frame.contentDocument;
+  const marquee = doc.body.appendChild(doc.createElement("marquee"));
+  open(frame.contentDocument);
+  marquee.addEventListener("start", t.step_func_done());
+});
diff --git a/third_party/WebKit/LayoutTests/external/wpt/input-events/idlharness.html b/third_party/WebKit/LayoutTests/external/wpt/input-events/idlharness.html
deleted file mode 100644
index f09d1380..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/input-events/idlharness.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<title>Input Event IDL tests</title>
-<link rel="help" href="https://w3c.github.io/input-events/#h-interface-inputevent"/>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-<script>
-"use strict";
-
-function doTest([input_events]) {
-    const idl_array = new IdlArray();
-    idl_array.add_untested_idls('interface InputEvent {};');
-    idl_array.add_untested_idls('dictionary InputEventInit {};');
-    idl_array.add_idls(input_events);
-    idl_array.add_objects({
-        InputEvent: ['new InputEvent("foo")'],
-    });
-    idl_array.test();
-}
-
-function fetchText(url) {
-    return fetch(url).then((response) => response.text());
-}
-
-promise_test(() => {
-    return Promise.all(["/interfaces/input-events.idl"].map(fetchText))
-                  .then(doTest);
-}, "Test IDL implementation of Input Events");
-</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/input-events/idlharness.window.js b/third_party/WebKit/LayoutTests/external/wpt/input-events/idlharness.window.js
new file mode 100644
index 0000000..3a9a348
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/input-events/idlharness.window.js
@@ -0,0 +1,14 @@
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+
+'use strict';
+
+idl_test(
+  ['input-events'],
+  ['uievents', 'dom'],
+  idl_array => {
+    idl_array.add_objects({
+      InputEvent: ['new InputEvent("foo")'],
+    });
+  }
+);
diff --git a/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist b/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist
index bd9bd46c..7da58b3 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist
+++ b/third_party/WebKit/LayoutTests/external/wpt/lint.whitelist
@@ -161,6 +161,7 @@
 SET TIMEOUT: html/semantics/embedded-content/the-img-element/*
 SET TIMEOUT: html/semantics/scripting-1/the-script-element/*
 SET TIMEOUT: html/webappapis/dynamic-markup-insertion/opening-the-input-stream/0*
+SET TIMEOUT: html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.js
 SET TIMEOUT: html/webappapis/scripting/event-loops/*
 SET TIMEOUT: html/webappapis/scripting/events/event-handler-processing-algorithm-error/*
 SET TIMEOUT: html/webappapis/scripting/processing-model-2/*
diff --git a/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-response/retry-method-manual.https.html b/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-response/retry-method-manual.https.html
index 288a32b3..82821a9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-response/retry-method-manual.https.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/payment-request/payment-response/retry-method-manual.https.html
@@ -131,10 +131,22 @@
   }, button.textContent.trim());
 }
 
+function userIsShownErrorsFields(button) {
+  button.disabled = true;
+  promise_test(async t => {
+    const { response, request } = await getPaymentRequestResponse({ requestShipping: true });
+    const retryPromise = response.retry({
+      shippingAddress: { city: "Invalid city", addressLine: "Invalid address line" },
+    });
+    await retryPromise;
+    await response.complete("success");
+  }, button.textContent.trim());
+}
+
 function abortTheUpdate(button) {
   button.disabled = true;
   promise_test(async t => {
-    const { response, request } = await getPaymentRequestResponse();
+    const { response, request } = await getPaymentRequestResponse({ requestShipping: true });
     // causes "abort the update" to run
     const shippingChangedPromise = new Promise(resolve => {
       request.onshippingoptionchange = () => {
@@ -146,7 +158,7 @@
     await shippingChangedPromise;
     await promise_rejects(
       t,
-      "TypeError",
+      new TypeError(),
       retryPromise,
       "retry() aborts with a TypeError, because totals' value is invalid"
     );
@@ -162,12 +174,12 @@
 function callingRetryReturnsUniquePromise(button){
   button.disabled = true;
   promise_test(async t => {
-    const request = new PaymentRequest(defaultMethods, defaultDetails);
-    const retryPromise = request.retry();
+    const { response } = await getPaymentRequestResponse();
+    const retryPromise = response.retry({});
     const promises = new Set([
       retryPromise,
-      request.retry(),
-      request.retry(),
+      response.retry({}),
+      response.retry({}),
     ]);
     assert_equals(promises.size, 3, "Must have three unique objects");
     await retryPromise;
diff --git a/third_party/WebKit/LayoutTests/external/wpt/scroll-animations/idlharness.html b/third_party/WebKit/LayoutTests/external/wpt/scroll-animations/idlharness.html
deleted file mode 100644
index 82dd59c..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/scroll-animations/idlharness.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html>
-
-<head>
-  <meta charset="utf-8">
-  <title>scroll-animations IDL tests</title>
-  <link rel="help" href="https://wicg.github.io/scroll-animations/">
-  <script src="/resources/testharness.js"></script>
-  <script src="/resources/testharnessreport.js"></script>
-  <script src="/resources/WebIDLParser.js"></script>
-  <script src="/resources/idlharness.js"></script>
-</head>
-
-<body>
-
-  <script>
-    'use strict';
-
-    promise_test(async () => {
-      const idl = await fetch('/interfaces/scroll-animations.idl').then(r => r.text());
-      const web = await fetch('/interfaces/web-animations.idl').then(r => r.text());
-      const dom = await fetch('/interfaces/dom.idl').then(r => r.text());
-
-      const idl_array = new IdlArray();
-      idl_array.add_idls(idl);
-      idl_array.add_dependency_idls(web);
-      idl_array.add_dependency_idls(dom);
-      idl_array.add_objects({
-        ScrollTimeline: ['new ScrollTimeline()'],
-      });
-      idl_array.test();
-    }, 'Test scroll-animations IDL implementation');
-  </script>
-
-  <div id="log"></div>
-</body>
-
-</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/scroll-animations/idlharness.window-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/scroll-animations/idlharness.window-expected.txt
new file mode 100644
index 0000000..1c82ba7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/scroll-animations/idlharness.window-expected.txt
@@ -0,0 +1,24 @@
+This is a testharness.js-based test.
+PASS idl_test setup
+PASS ScrollTimeline interface: existence and properties of interface object
+PASS ScrollTimeline interface object length
+PASS ScrollTimeline interface object name
+PASS ScrollTimeline interface: existence and properties of interface prototype object
+PASS ScrollTimeline interface: existence and properties of interface prototype object's "constructor" property
+PASS ScrollTimeline interface: existence and properties of interface prototype object's @@unscopables property
+PASS ScrollTimeline interface: attribute scrollSource
+PASS ScrollTimeline interface: attribute orientation
+FAIL ScrollTimeline interface: attribute startScrollOffset assert_true: The prototype object must have a property "startScrollOffset" expected true got false
+FAIL ScrollTimeline interface: attribute endScrollOffset assert_true: The prototype object must have a property "endScrollOffset" expected true got false
+PASS ScrollTimeline interface: attribute timeRange
+FAIL ScrollTimeline interface: attribute fill assert_true: The prototype object must have a property "fill" expected true got false
+FAIL ScrollTimeline must be primary interface of new ScrollTimeline() assert_equals: Unexpected exception when evaluating object expected null but got object "NotSupportedError: Failed to construct 'ScrollTimeline': 'auto' value for timeRange not yet supported"
+FAIL Stringification of new ScrollTimeline() assert_equals: Unexpected exception when evaluating object expected null but got object "NotSupportedError: Failed to construct 'ScrollTimeline': 'auto' value for timeRange not yet supported"
+FAIL ScrollTimeline interface: new ScrollTimeline() must inherit property "scrollSource" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "NotSupportedError: Failed to construct 'ScrollTimeline': 'auto' value for timeRange not yet supported"
+FAIL ScrollTimeline interface: new ScrollTimeline() must inherit property "orientation" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "NotSupportedError: Failed to construct 'ScrollTimeline': 'auto' value for timeRange not yet supported"
+FAIL ScrollTimeline interface: new ScrollTimeline() must inherit property "startScrollOffset" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "NotSupportedError: Failed to construct 'ScrollTimeline': 'auto' value for timeRange not yet supported"
+FAIL ScrollTimeline interface: new ScrollTimeline() must inherit property "endScrollOffset" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "NotSupportedError: Failed to construct 'ScrollTimeline': 'auto' value for timeRange not yet supported"
+FAIL ScrollTimeline interface: new ScrollTimeline() must inherit property "timeRange" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "NotSupportedError: Failed to construct 'ScrollTimeline': 'auto' value for timeRange not yet supported"
+FAIL ScrollTimeline interface: new ScrollTimeline() must inherit property "fill" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "NotSupportedError: Failed to construct 'ScrollTimeline': 'auto' value for timeRange not yet supported"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/external/wpt/scroll-animations/idlharness.window.js b/third_party/WebKit/LayoutTests/external/wpt/scroll-animations/idlharness.window.js
new file mode 100644
index 0000000..9015758
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/scroll-animations/idlharness.window.js
@@ -0,0 +1,16 @@
+// META: script=/resources/WebIDLParser.js
+// META: script=/resources/idlharness.js
+
+'use strict';
+
+idl_test(
+  ['scroll-animations'],
+  // The css-pseudo dependency shouldn't be necessary, but is:
+  // https://github.com/web-platform-tests/wpt/issues/12574
+  ['web-animations', 'css-pseudo', 'dom'],
+  idl_array => {
+    idl_array.add_objects({
+      ScrollTimeline: ['new ScrollTimeline()'],
+    });
+  }
+);
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/cache-storage/serviceworker/cache-add.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/service-workers/cache-storage/serviceworker/cache-add.https-expected.txt
deleted file mode 100644
index 40f3256..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/cache-storage/serviceworker/cache-add.https-expected.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-This is a testharness.js-based test.
-PASS Cache.add and Cache.addAll
-PASS Cache.add called with no arguments
-PASS Cache.add called with relative URL specified as a string
-PASS Cache.add called with non-HTTP/HTTPS URL
-PASS Cache.add called with Request object
-PASS Cache.add called with POST request
-PASS Cache.add called twice with the same Request object
-PASS Cache.add with request with null body (not consumed)
-PASS Cache.add with 206 response
-PASS Cache.addAll with 206 response
-PASS Cache.add with request that results in a status of 404
-PASS Cache.add with request that results in a status of 500
-PASS Cache.addAll with no arguments
-PASS Cache.addAll with a mix of valid and undefined arguments
-PASS Cache.addAll with an empty array
-PASS Cache.addAll with string URL arguments
-PASS Cache.addAll with Request arguments
-PASS Cache.addAll with a mix of succeeding and failing requests
-FAIL Cache.addAll called with the same Request object specified twice assert_unreached: Should have rejected: Cache.addAll should throw InvalidStateError if the same request is added twice. Reached unreachable code
-PASS Cache.addAll should succeed when entries differ by vary header
-FAIL Cache.addAll should reject when entries are duplicate by vary header assert_unreached: Should have rejected: Cache.addAll() should reject when entries are duplicate by vary header Reached unreachable code
-FAIL Cache.addAll should reject when one entry has a vary header matching another entry assert_unreached: Should have rejected: Cache.addAll() should reject when one entry has a vary header matching an earlier entry. Reached unreachable code
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/cache-storage/window/cache-add.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/service-workers/cache-storage/window/cache-add.https-expected.txt
deleted file mode 100644
index 838182b..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/cache-storage/window/cache-add.https-expected.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-This is a testharness.js-based test.
-PASS Cache.add called with no arguments
-PASS Cache.add called with relative URL specified as a string
-PASS Cache.add called with non-HTTP/HTTPS URL
-PASS Cache.add called with Request object
-PASS Cache.add called with POST request
-PASS Cache.add called twice with the same Request object
-PASS Cache.add with request with null body (not consumed)
-PASS Cache.add with 206 response
-PASS Cache.addAll with 206 response
-PASS Cache.add with request that results in a status of 404
-PASS Cache.add with request that results in a status of 500
-PASS Cache.addAll with no arguments
-PASS Cache.addAll with a mix of valid and undefined arguments
-PASS Cache.addAll with an empty array
-PASS Cache.addAll with string URL arguments
-PASS Cache.addAll with Request arguments
-PASS Cache.addAll with a mix of succeeding and failing requests
-FAIL Cache.addAll called with the same Request object specified twice assert_unreached: Should have rejected: Cache.addAll should throw InvalidStateError if the same request is added twice. Reached unreachable code
-PASS Cache.addAll should succeed when entries differ by vary header
-FAIL Cache.addAll should reject when entries are duplicate by vary header assert_unreached: Should have rejected: Cache.addAll() should reject when entries are duplicate by vary header Reached unreachable code
-FAIL Cache.addAll should reject when one entry has a vary header matching another entry assert_unreached: Should have rejected: Cache.addAll() should reject when one entry has a vary header matching an earlier entry. Reached unreachable code
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/cache-storage/worker/cache-add.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/service-workers/cache-storage/worker/cache-add.https-expected.txt
deleted file mode 100644
index 838182b..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/cache-storage/worker/cache-add.https-expected.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-This is a testharness.js-based test.
-PASS Cache.add called with no arguments
-PASS Cache.add called with relative URL specified as a string
-PASS Cache.add called with non-HTTP/HTTPS URL
-PASS Cache.add called with Request object
-PASS Cache.add called with POST request
-PASS Cache.add called twice with the same Request object
-PASS Cache.add with request with null body (not consumed)
-PASS Cache.add with 206 response
-PASS Cache.addAll with 206 response
-PASS Cache.add with request that results in a status of 404
-PASS Cache.add with request that results in a status of 500
-PASS Cache.addAll with no arguments
-PASS Cache.addAll with a mix of valid and undefined arguments
-PASS Cache.addAll with an empty array
-PASS Cache.addAll with string URL arguments
-PASS Cache.addAll with Request arguments
-PASS Cache.addAll with a mix of succeeding and failing requests
-FAIL Cache.addAll called with the same Request object specified twice assert_unreached: Should have rejected: Cache.addAll should throw InvalidStateError if the same request is added twice. Reached unreachable code
-PASS Cache.addAll should succeed when entries differ by vary header
-FAIL Cache.addAll should reject when entries are duplicate by vary header assert_unreached: Should have rejected: Cache.addAll() should reject when entries are duplicate by vary header Reached unreachable code
-FAIL Cache.addAll should reject when one entry has a vary header matching another entry assert_unreached: Should have rejected: Cache.addAll() should reject when one entry has a vary header matching an earlier entry. Reached unreachable code
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt
similarity index 100%
rename from third_party/WebKit/LayoutTests/platform/linux/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt
rename to third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-bundlePolicy-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-bundlePolicy-expected.txt
deleted file mode 100644
index f6693f5..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-bundlePolicy-expected.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-This is a testharness.js-based test.
-FAIL Default bundlePolicy should be balanced pc.getConfiguration is not a function
-FAIL new RTCPeerConnection({ bundlePolicy: undefined }) should have bundlePolicy balanced pc.getConfiguration is not a function
-FAIL new RTCPeerConnection({ bundlePolicy: 'balanced' }) should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection({ bundlePolicy: 'max-compat' }) should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection({ bundlePolicy: 'max-bundle' }) should succeed pc.getConfiguration is not a function
-PASS setConfiguration({}) with initial default bundlePolicy balanced should succeed
-PASS setConfiguration({}) with initial bundlePolicy balanced should succeed
-PASS setConfiguration({ bundlePolicy: balanced }) with initial default bundlePolicy balanced should succeed
-PASS setConfiguration({ bundlePolicy: 'balanced' }) with initial bundlePolicy balanced should succeed
-PASS setConfiguration({ bundlePolicy: 'max-compat' }) with initial bundlePolicy max-compat should succeed
-PASS setConfiguration({ bundlePolicy: 'max-bundle' }) with initial bundlePolicy max-bundle should succeed
-PASS new RTCPeerConnection({ bundlePolicy: null }) should throw TypeError
-PASS new RTCPeerConnection({ bundlePolicy: 'invalid' }) should throw TypeError
-PASS setConfiguration({ bundlePolicy: 'max-compat' }) with initial bundlePolicy max-bundle should throw InvalidModificationError
-PASS setConfiguration({}) with initial bundlePolicy max-bundle should throw InvalidModificationError
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceCandidatePoolSize-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceCandidatePoolSize-expected.txt
deleted file mode 100644
index 9165128..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceCandidatePoolSize-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This is a testharness.js-based test.
-FAIL Initialize a new RTCPeerConnection with no iceCandidatePoolSize assert_idl_attribute: property "getConfiguration" not found in prototype chain
-FAIL Initialize a new RTCPeerConnection with iceCandidatePoolSize: 0 assert_idl_attribute: property "getConfiguration" not found in prototype chain
-FAIL Initialize a new RTCPeerConnection with iceCandidatePoolSize: 255 assert_idl_attribute: property "getConfiguration" not found in prototype chain
-PASS Initialize a new RTCPeerConnection with iceCandidatePoolSize: -1 (Out Of Range)
-PASS Initialize a new RTCPeerConnection with iceCandidatePoolSize: 256 (Out Of Range)
-FAIL Reconfigure RTCPeerConnection instance iceCandidatePoolSize to 0 assert_idl_attribute: property "getConfiguration" not found in prototype chain
-FAIL Reconfigure RTCPeerConnection instance iceCandidatePoolSize to 255 assert_idl_attribute: property "getConfiguration" not found in prototype chain
-PASS Reconfigure RTCPeerConnection instance iceCandidatePoolSize to -1 (Out Of Range)
-PASS Reconfigure RTCPeerConnection instance iceCandidatePoolSize to 256 (Out Of Range)
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceServers-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceServers-expected.txt
index 4230d4d..0c2f2e22 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceServers-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceServers-expected.txt
@@ -1,36 +1,36 @@
 This is a testharness.js-based test.
-Found 77 tests; 24 PASS, 53 FAIL, 0 TIMEOUT, 0 NOTRUN.
-FAIL new RTCPeerConnection() should have default configuration.iceServers of undefined pc.getConfiguration is not a function
+Found 77 tests; 26 PASS, 51 FAIL, 0 TIMEOUT, 0 NOTRUN.
+FAIL new RTCPeerConnection() should have default configuration.iceServers of undefined assert_equals: expected (undefined) undefined but got (object) []
 PASS new RTCPeerConnection(config) - { iceServers: null } should throw TypeError
 PASS setConfiguration(config) - { iceServers: null } should throw TypeError
-FAIL new RTCPeerConnection(config) - { iceServers: undefined } should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - { iceServers: undefined } should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - { iceServers: [] } should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - { iceServers: [] } should succeed pc.getConfiguration is not a function
+FAIL new RTCPeerConnection(config) - { iceServers: undefined } should succeed assert_equals: expected (undefined) undefined but got (object) []
+FAIL setConfiguration(config) - { iceServers: undefined } should succeed assert_equals: expected (undefined) undefined but got (object) []
+PASS new RTCPeerConnection(config) - { iceServers: [] } should succeed
+PASS setConfiguration(config) - { iceServers: [] } should succeed
 PASS new RTCPeerConnection(config) - { iceServers: [null] } should throw TypeError
 PASS setConfiguration(config) - { iceServers: [null] } should throw TypeError
 PASS new RTCPeerConnection(config) - { iceServers: [undefined] } should throw TypeError
 PASS setConfiguration(config) - { iceServers: [undefined] } should throw TypeError
 PASS new RTCPeerConnection(config) - { iceServers: [{}] } should throw TypeError
 PASS setConfiguration(config) - { iceServers: [{}] } should throw TypeError
-FAIL new RTCPeerConnection(config) - with empty list urls should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with empty list urls should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with stun server should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with stun server should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with stun server array should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with stun server array should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with 2 stun servers should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with 2 stun servers should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with turn server, username, credential should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with turn server, username, credential should succeed pc.getConfiguration is not a function
+FAIL new RTCPeerConnection(config) - with empty list urls should succeed assert_equals: expected 1 but got 0
+FAIL setConfiguration(config) - with empty list urls should succeed assert_equals: expected 1 but got 0
+FAIL new RTCPeerConnection(config) - with stun server should succeed assert_equals: expected (string) "password" but got (undefined) undefined
+FAIL setConfiguration(config) - with stun server should succeed assert_equals: expected (string) "password" but got (undefined) undefined
+FAIL new RTCPeerConnection(config) - with stun server array should succeed assert_equals: expected (string) "password" but got (undefined) undefined
+FAIL setConfiguration(config) - with stun server array should succeed assert_equals: expected (string) "password" but got (undefined) undefined
+FAIL new RTCPeerConnection(config) - with 2 stun servers should succeed assert_equals: expected 1 but got 2
+FAIL setConfiguration(config) - with 2 stun servers should succeed assert_equals: expected 1 but got 2
+FAIL new RTCPeerConnection(config) - with turn server, username, credential should succeed assert_equals: expected (string) "password" but got (undefined) undefined
+FAIL setConfiguration(config) - with turn server, username, credential should succeed assert_equals: expected (string) "password" but got (undefined) undefined
 FAIL new RTCPeerConnection(config) - with turns server and empty string username, credential should succeed Failed to construct 'RTCPeerConnection': Failed to initialize native PeerConnection.
 FAIL setConfiguration(config) - with turns server and empty string username, credential should succeed Failed to execute 'setConfiguration' on 'RTCPeerConnection': Could not update the PeerConnection with the given configuration.
 FAIL new RTCPeerConnection(config) - with turn server and empty string username, credential should succeed Failed to construct 'RTCPeerConnection': Failed to initialize native PeerConnection.
 FAIL setConfiguration(config) - with turn server and empty string username, credential should succeed Failed to execute 'setConfiguration' on 'RTCPeerConnection': Could not update the PeerConnection with the given configuration.
-FAIL new RTCPeerConnection(config) - with one turns server, one turn server, username, credential should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with one turns server, one turn server, username, credential should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with stun server and credentialType password should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with stun server and credentialType password should succeed pc.getConfiguration is not a function
+FAIL new RTCPeerConnection(config) - with one turns server, one turn server, username, credential should succeed assert_equals: expected 1 but got 2
+FAIL setConfiguration(config) - with one turns server, one turn server, username, credential should succeed assert_equals: expected 1 but got 2
+FAIL new RTCPeerConnection(config) - with stun server and credentialType password should succeed assert_equals: expected (string) "password" but got (undefined) undefined
+FAIL setConfiguration(config) - with stun server and credentialType password should succeed assert_equals: expected (string) "password" but got (undefined) undefined
 PASS new RTCPeerConnection(config) - with turn server and no credentials should throw InvalidAccessError
 PASS setConfiguration(config) - with turn server and no credentials should throw InvalidAccessError
 PASS new RTCPeerConnection(config) - with turn server and only username should throw InvalidAccessError
@@ -63,10 +63,10 @@
       makePc({ iceServers: [{
         urls: 'stun://example.org/foo?x=y'
       }] })" threw object "OperationError: Failed to execute 'setConfiguration' on 'RTCPeerConnection': Could not update the PeerConnection with the given configuration." that is not a DOMException SyntaxError: property "code" is equal to 0, expected 12
-FAIL new RTCPeerConnection(config) - with empty urls and credentialType password should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with empty urls and credentialType password should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with empty urls and credentialType oauth should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with empty urls and credentialType oauth should succeed pc.getConfiguration is not a function
+FAIL new RTCPeerConnection(config) - with empty urls and credentialType password should succeed assert_equals: expected 1 but got 0
+FAIL setConfiguration(config) - with empty urls and credentialType password should succeed assert_equals: expected 1 but got 0
+FAIL new RTCPeerConnection(config) - with empty urls and credentialType oauth should succeed assert_equals: expected 1 but got 0
+FAIL setConfiguration(config) - with empty urls and credentialType oauth should succeed assert_equals: expected 1 but got 0
 FAIL new RTCPeerConnection(config) - with invalid credentialType should throw TypeError assert_throws: function "() =>
       makePc({ iceServers: [{
         urls: [],
@@ -129,17 +129,17 @@
         username: 'user',
         credential: 'cred'
       }] })" did not throw
-FAIL new RTCPeerConnection(config) - with turns server, credentialType oauth and RTCOAuthCredential credential should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with turns server, credentialType oauth and RTCOAuthCredential credential should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with both turns and stun server, credentialType oauth and RTCOAuthCredential credential should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with both turns and stun server, credentialType oauth and RTCOAuthCredential credential should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with stun server, credentialType oauth, and string credential should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with stun server, credentialType oauth, and string credential should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with stun server, credentialType password, and RTCOAuthCredential credential should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with stun server, credentialType password, and RTCOAuthCredential credential should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with empty urls list, credentialType oauth, and string credential should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with empty urls list, credentialType oauth, and string credential should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection(config) - with empty urls list, credentialType password, and RTCOAuthCredential credential should succeed pc.getConfiguration is not a function
-FAIL setConfiguration(config) - with empty urls list, credentialType password, and RTCOAuthCredential credential should succeed pc.getConfiguration is not a function
+FAIL new RTCPeerConnection(config) - with turns server, credentialType oauth and RTCOAuthCredential credential should succeed assert_equals: expected (string) "oauth" but got (undefined) undefined
+FAIL setConfiguration(config) - with turns server, credentialType oauth and RTCOAuthCredential credential should succeed assert_equals: expected (string) "oauth" but got (undefined) undefined
+FAIL new RTCPeerConnection(config) - with both turns and stun server, credentialType oauth and RTCOAuthCredential credential should succeed assert_equals: expected 1 but got 2
+FAIL setConfiguration(config) - with both turns and stun server, credentialType oauth and RTCOAuthCredential credential should succeed assert_equals: expected 1 but got 2
+FAIL new RTCPeerConnection(config) - with stun server, credentialType oauth, and string credential should succeed assert_equals: expected (string) "oauth" but got (undefined) undefined
+FAIL setConfiguration(config) - with stun server, credentialType oauth, and string credential should succeed assert_equals: expected (string) "oauth" but got (undefined) undefined
+FAIL new RTCPeerConnection(config) - with stun server, credentialType password, and RTCOAuthCredential credential should succeed assert_equals: expected (string) "password" but got (undefined) undefined
+FAIL setConfiguration(config) - with stun server, credentialType password, and RTCOAuthCredential credential should succeed assert_equals: expected (string) "password" but got (undefined) undefined
+FAIL new RTCPeerConnection(config) - with empty urls list, credentialType oauth, and string credential should succeed assert_equals: expected 1 but got 0
+FAIL setConfiguration(config) - with empty urls list, credentialType oauth, and string credential should succeed assert_equals: expected 1 but got 0
+FAIL new RTCPeerConnection(config) - with empty urls list, credentialType password, and RTCOAuthCredential credential should succeed assert_equals: expected 1 but got 0
+FAIL setConfiguration(config) - with empty urls list, credentialType password, and RTCOAuthCredential credential should succeed assert_equals: expected 1 but got 0
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceTransportPolicy-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceTransportPolicy-expected.txt
index a327d14..28583e9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceTransportPolicy-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-iceTransportPolicy-expected.txt
@@ -1,18 +1,18 @@
 This is a testharness.js-based test.
-FAIL new RTCPeerConnection() should have default iceTransportPolicy all pc.getConfiguration is not a function
-FAIL new RTCPeerConnection({ iceTransportPolicy: undefined }) should have default iceTransportPolicy all pc.getConfiguration is not a function
-FAIL new RTCPeerConnection({ iceTransportPolicy: 'all' }) should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection({ iceTransportPolicy: 'relay' }) should succeed pc.getConfiguration is not a function
-FAIL setConfiguration({ iceTransportPolicy: 'relay' }) with initial iceTransportPolicy all should succeed pc.getConfiguration is not a function
-FAIL setConfiguration({ iceTransportPolicy: 'all' }) with initial iceTransportPolicy relay should succeed pc.getConfiguration is not a function
-FAIL setConfiguration({}) with initial iceTransportPolicy relay should set new value to all pc.getConfiguration is not a function
+PASS new RTCPeerConnection() should have default iceTransportPolicy all
+PASS new RTCPeerConnection({ iceTransportPolicy: undefined }) should have default iceTransportPolicy all
+PASS new RTCPeerConnection({ iceTransportPolicy: 'all' }) should succeed
+PASS new RTCPeerConnection({ iceTransportPolicy: 'relay' }) should succeed
+PASS setConfiguration({ iceTransportPolicy: 'relay' }) with initial iceTransportPolicy all should succeed
+PASS setConfiguration({ iceTransportPolicy: 'all' }) with initial iceTransportPolicy relay should succeed
+PASS setConfiguration({}) with initial iceTransportPolicy relay should set new value to all
 PASS new RTCPeerConnection(config) - with invalid iceTransportPolicy should throw TypeError
 PASS setConfiguration(config) - with invalid iceTransportPolicy should throw TypeError
 PASS new RTCPeerConnection(config) - with none iceTransportPolicy should throw TypeError
 PASS setConfiguration(config) - with none iceTransportPolicy should throw TypeError
 PASS new RTCPeerConnection(config) - with null iceTransportPolicy should throw TypeError
 PASS setConfiguration(config) - with null iceTransportPolicy should throw TypeError
-FAIL new RTCPeerConnection({ iceTransports: 'relay' }) should have no effect pc.getConfiguration is not a function
+FAIL new RTCPeerConnection({ iceTransports: 'relay' }) should have no effect assert_equals: expected "all" but got "relay"
 FAIL new RTCPeerConnection({ iceTransports: 'invalid' }) should have no effect Failed to construct 'RTCPeerConnection': The provided value 'invalid' is not a valid enum value of type RTCIceTransportPolicy.
 FAIL new RTCPeerConnection({ iceTransports: null }) should have no effect Failed to construct 'RTCPeerConnection': The provided value 'null' is not a valid enum value of type RTCIceTransportPolicy.
 Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-rtcpMuxPolicy-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-rtcpMuxPolicy-expected.txt
deleted file mode 100644
index 508220c..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCConfiguration-rtcpMuxPolicy-expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-This is a testharness.js-based test.
-FAIL new RTCPeerConnection() should have default rtcpMuxPolicy require pc.getConfiguration is not a function
-FAIL new RTCPeerConnection({ rtcpMuxPolicy: undefined }) should have default rtcpMuxPolicy require pc.getConfiguration is not a function
-FAIL new RTCPeerConnection({ rtcpMuxPolicy: 'require' }) should succeed pc.getConfiguration is not a function
-FAIL new RTCPeerConnection({ rtcpMuxPolicy: 'negotiate' }) may succeed or throw NotSupportedError pc.getConfiguration is not a function
-PASS new RTCPeerConnection(config) - with { rtcpMuxPolicy: null } should throw TypeError
-PASS setConfiguration(config) - with { rtcpMuxPolicy: null } should throw TypeError
-PASS new RTCPeerConnection(config) - with { rtcpMuxPolicy: 'invalid' } should throw TypeError
-PASS setConfiguration(config) - with { rtcpMuxPolicy: 'invalid' } should throw TypeError
-PASS setConfiguration({ rtcpMuxPolicy: 'negotiate' }) with initial rtcpMuxPolicy require should throw InvalidModificationError
-PASS setConfiguration({ rtcpMuxPolicy: 'require' }) with initial rtcpMuxPolicy negotiate should throw InvalidModificationError
-PASS setConfiguration({}) with initial rtcpMuxPolicy negotiate should throw InvalidModificationError
-PASS setRemoteDescription throws InvalidAccessError when called with an offer without rtcp-mux and rtcpMuxPolicy is set to require
-PASS setRemoteDescription throws InvalidAccessError when called with an answer without rtcp-mux and rtcpMuxPolicy is set to require
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/idlharness.https.window-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webrtc/idlharness.https.window-expected.txt
index 5dd73b0..4630fec 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/idlharness.https.window-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/idlharness.https.window-expected.txt
@@ -33,7 +33,7 @@
 FAIL RTCPeerConnection interface: attribute connectionState assert_true: The prototype object must have a property "connectionState" expected true got false
 FAIL RTCPeerConnection interface: attribute canTrickleIceCandidates assert_true: The prototype object must have a property "canTrickleIceCandidates" expected true got false
 FAIL RTCPeerConnection interface: operation getDefaultIceServers() assert_own_property: interface object missing static operation expected property "getDefaultIceServers" missing
-FAIL RTCPeerConnection interface: operation getConfiguration() assert_own_property: interface prototype object missing non-static operation expected property "getConfiguration" missing
+PASS RTCPeerConnection interface: operation getConfiguration()
 PASS RTCPeerConnection interface: operation setConfiguration(RTCConfiguration)
 PASS RTCPeerConnection interface: operation close()
 PASS RTCPeerConnection interface: attribute onnegotiationneeded
@@ -85,7 +85,7 @@
 FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "connectionState" with the proper type assert_inherits: property "connectionState" not found in prototype chain
 FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "canTrickleIceCandidates" with the proper type assert_inherits: property "canTrickleIceCandidates" not found in prototype chain
 PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getDefaultIceServers()" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getConfiguration()" with the proper type assert_inherits: property "getConfiguration" not found in prototype chain
+PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getConfiguration()" with the proper type
 PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setConfiguration(RTCConfiguration)" with the proper type
 PASS RTCPeerConnection interface: calling setConfiguration(RTCConfiguration) on new RTCPeerConnection() with too few arguments must throw TypeError
 PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "close()" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/xhr/META.yml b/third_party/WebKit/LayoutTests/external/wpt/xhr/META.yml
index 7ad6ad9..4b2ecf3 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/xhr/META.yml
+++ b/third_party/WebKit/LayoutTests/external/wpt/xhr/META.yml
@@ -1,6 +1,5 @@
 spec: https://xhr.spec.whatwg.org/
 suggested_reviewers:
-  - emilio
   - caitp
   - Manishearth
   - jungkees
diff --git a/third_party/WebKit/LayoutTests/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change.html b/third_party/WebKit/LayoutTests/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change.html
index 66630b2..a8ed3e3 100644
--- a/third_party/WebKit/LayoutTests/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change.html
+++ b/third_party/WebKit/LayoutTests/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
-<p>The word 'PASS' should be seen <em>twice</em> below. They appear together because they are composited, and hence not fragmented.</p>
-<div style="-webkit-columns:3; -webkit-column-gap:1em; column-fill:auto; -webkit-writing-mode:vertical-rl; height:26em; width:13em; line-height:2em; orphans:1; widows:1;">
-    <div style="will-change:transform; position:absolute; left:0; top:4em; width:10em; height:18em; background:yellow;"></div>
+<p>The word 'PASS' should be seen <em>twice</em> below in a yellow rectangle. They appear together because they are composited, and hence not fragmented.</p>
+<div style="margin-left:100px; -webkit-columns:3; -webkit-column-gap:1em; column-fill:auto; -webkit-writing-mode:vertical-rl; height:26em; width:13em; line-height:2em; orphans:1; widows:1;">
+    <div style="will-change:transform; position:absolute; left:100px; top:4em; width:10em; height:18em"></div>
     <br>
     <br>
     <br>
@@ -13,5 +13,5 @@
     <br>
     <br>
     <br>
-    <div style="position:relative; margin:0.5em;">PASS<br>PASS</div>
+    <div style="background: yellow; position:relative; margin:0.5em;">PASS<br>PASS</div>
 </div>
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-1st-stop-expected.txt b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-1st-stop-expected.txt
deleted file mode 100644
index 3e6299e9..0000000
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-1st-stop-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-1	2	3
-4	5	6
-7	8	9
-PASS successfullyParsed is true
-
-TEST COMPLETE
-PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
-
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-1st-stop.html b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-1st-stop.html
index 659331e0..766b8b5 100644
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-1st-stop.html
+++ b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-1st-stop.html
@@ -1,67 +1,30 @@
-<html>
-  <!--
-    This test ensures the correctness of Spatial Navigation (SNav) algorithm from a non-focus scenario.
+<table style="text-align: left; width: 100%; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="1">
+  <tbody>
+    <tr>
+      <td style="vertical-align: top; text-align: center;"><a id="1" href="a">1</a></td>
+      <td style="vertical-align: top; text-align: center;"><a id="2" href="a">2</a></td>
+      <td style="vertical-align: top; text-align: center;"><a id="3" href="a">3</a></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top; text-align: center;"><a id="4" href="a">4</a></td>
+      <td style="vertical-align: top; text-align: center;"><a id="5" href="a">5</td>
+      <td style="vertical-align: top; text-align: center;"><a id="6" href="a">6</a></td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top; text-align: center;"><a id="7" href="a">7</a></td>
+      <td style="vertical-align: top; text-align: center;"><a id="8" href="a">8</a></td>
+      <td style="vertical-align: top; text-align: center;"><a id="9" href="a">9</a></td>
+    </tr>
+  </tbody>
+</table>
 
-    * Pre-conditions:
-    1) DRT support for SNav enable/disable.
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="resources/snav-testharness.js"></script>
+<script>
+  var resultMap = [
+    ["Down", "1"],
+  ];
 
-    * Navigation steps:
-    1) Loads this page and send key down.
-    2) The 1st link should be focused.
-  -->
-  <head>
-    <script src="../../resources/js-test.js"></script>
-    <script src="resources/spatial-navigation-utils.js"></script>
-    <script type="application/javascript">
-
-    var resultMap = [
-      ["Down", "1"],
-      ["DONE", "DONE"]
-    ];
-
-    if (window.testRunner) {
-      testRunner.dumpAsText();
-      testRunner.overridePreference("WebKitTabToLinksPreferenceKey", 1);
-      testRunner.overridePreference("WebKitSpatialNavigationEnabled", 1);
-      testRunner.waitUntilDone();
-    }
-
-    function runTest()
-    {
-      // starting the test from no focused node.
-      initTest(resultMap, testCompleted);
-    }
-
-    function testCompleted()
-    {
-      if (window.testRunner)
-        testRunner.notifyDone();
-    }
-
-    window.onload = runTest;
-
-    </script>
-  </head>
-  <body id="some-content" xmlns="http://www.w3.org/1999/xhtml">
-    <table style="text-align: left; width: 100%; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="1">
-      <tbody>
-        <tr>
-          <td style="vertical-align: top; text-align: center;"><a id="1" href="a">1</a></td>
-          <td style="vertical-align: top; text-align: center;"><a id="2" href="a">2</a></td>
-          <td style="vertical-align: top; text-align: center;"><a id="3" href="a">3</a></td>
-        </tr>
-        <tr>
-          <td style="vertical-align: top; text-align: center;"><a id="4" href="a">4</a></td>
-          <td style="vertical-align: top; text-align: center;"><a id="5" href="a">5</td>
-          <td style="vertical-align: top; text-align: center;"><a id="6" href="a">6</a></td>
-        </tr>
-        <tr>
-          <td style="vertical-align: top; text-align: center;"><a id="7" href="a">7</a></td>
-          <td style="vertical-align: top; text-align: center;"><a id="8" href="a">8</a></td>
-          <td style="vertical-align: top; text-align: center;"><a id="9" href="a">9</a></td>
-        </tr>
-      </tbody>
-    </table>
-    <div id="console"></div>
-  </body>
-</html>
+  snav.assertFocusMoves(resultMap);
+</script>
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-aligned-not-aligned-expected.txt b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-aligned-not-aligned-expected.txt
deleted file mode 100644
index 22e07653..0000000
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-aligned-not-aligned-expected.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-This test ensures that Spatial Navigation works with symmetrically positoned rects
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-E1E2E3E4E5
-PASS gFocusedDocument.activeElement.getAttribute("id") is "e4"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "e5"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "e4"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "e1"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "e2"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "e3"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "e4"
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-aligned-not-aligned.html b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-aligned-not-aligned.html
index 33dfc09..6603e888 100644
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-aligned-not-aligned.html
+++ b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-aligned-not-aligned.html
@@ -1,54 +1,45 @@
-<!DOCTYPE html>
-<head>
-<script src="../../resources/js-test.js"></script>
-<script src="resources/spatial-navigation-utils.js"></script>
-</head>
 <style>
-body a {
-    position: absolute;
-    height: 50px;
-    width: 100px;
-    border: 1px solid black;
+a {
+  position: absolute;
+  height: 50px;
+  width: 100px;
+  border: 1px solid black;
 }
 #e1 {
-    left: 50px;
-    top: 250px;
+  left: 50px;
+  top: 250px;
 }
 #e2 {
-    left: 200px;
-    top: 300px;
-    height: 100px;
+  left: 200px;
+  top: 300px;
+  height: 100px;
 }
 #e3 {
-    left: 350px;
-    top: 300px;
+  left: 350px;
+  top: 300px;
 }
 #e4 {
-    left: 500px;
-    top: 200px;
-    height: 100px;
+  left: 500px;
+  top: 200px;
+  height: 100px;
 }
 #e5 {
-    left: 650px;
-    top: 250px;
+  left: 650px;
+  top: 250px;
 }
 </style>
-<body id="some-content" onload="runTest()">
-<p id="description"></p>
-<div id="elements">
+
 <a id="e1" href="#e1">E1</a>
 <a id="e2" href="#e2">E2</a>
 <a id="e3" href="#e3">E3</a>
 <a id="e4" href="#e4">E4</a>
 <a id="e5" href="#e5">E5</a>
-</div>
-<div id="console"></div>
-<script type="application/javascript">
-description('This test ensures that Spatial Navigation works with symmetrically positoned rects');
 
-jsTestIsAsync = true;
-
-var resultMap = [
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="resources/snav-testharness.js"></script>
+<script>
+  var resultMap = [
     ["Right", "e4"],
     ["Right", "e5"],
     ["Left", "e4"],
@@ -56,21 +47,9 @@
     ["Down", "e2"],
     ["Right", "e3"],
     ["Right", "e4"],
-    ["DONE", "DONE"]
-];
+  ];
 
-if (window.testRunner) {
-    testRunner.overridePreference("WebKitTabToLinksPreferenceKey", 1);
-    testRunner.overridePreference("WebKitSpatialNavigationEnabled", 1);
-}
-
-function runTest()
-{
-    // starting the test itself: get to a known place.
-    document.getElementById("e1").focus();
-
-    initTest(resultMap, finishJSTest);
-}
+  // Start at a known place.
+  document.getElementById("e1").focus();
+  snav.assertFocusMoves(resultMap);
 </script>
-</body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-clipped-overflowed-content-expected.txt b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-clipped-overflowed-content-expected.txt
deleted file mode 100644
index 0126b01d..0000000
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-clipped-overflowed-content-expected.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- 
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "3"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "3"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "3"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "3"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "4"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "5"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "start"
-This test tests that a div with css overflow:auto will scroll to reveal its focusable elements
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-clipped-overflowed-content.html b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-clipped-overflowed-content.html
index bd4a39f6..4459731 100644
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-clipped-overflowed-content.html
+++ b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-clipped-overflowed-content.html
@@ -1,105 +1,55 @@
-<html>
-  <!--
-    This test ensures the correctness of a basic aspect of spatial navigation traversal
-    routines: focusable elements in scrollable containers (e.g. <div>) should be
-    accessible, including offscreen content.
+<style>
+  div.scroll {
+    height: 200px;
+    width: 300px;
+    overflow: auto;
+    border: 1px solid #666;
+    background-color: #ccc;
+    padding: 8px;
+  }
+</style>
 
-    * Pre-conditions:
-    1) DRT support for spatial navivation enable/disable.
+<a id="start" href="a"><img src="resources/green.png" width=30px height=30px></a>
+<div class="scroll">
+  <a id="1" href="a"><img src="resources/green.png" width=30px height=35px></a>
+  <div></div>
+  <img src="resources/green.png" width=200px height=280px>
+  <div></div>
+  <a id="2" href="a"><img src="resources/green.png" width=30px height=30px></a>
+</div>
+<div class="scroll">
+  <a id="3" href="a"><img src="resources/green.png" width=30px height=35px></a>
+  <a id="4" href="a" style="margin-left: 400px"><img src="resources/green.png" width=30px height=35px></a>
+</div>
+<a id="5" href="a"><img src="resources/green.png" width=30px height=30px></a>
 
-    * Navigation steps:
-    1) Loads this page, focus goes to "start" automatically.
-    2) Move focus down to the visible focusable element in
-       scrollable div.
-    3) Traverse the page through other focusable elements down the page.
-       and then back up.
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="resources/snav-testharness.js"></script>
+<script>
+  var resultMap = [
+    ["Down", "1"],
+    ["Down", "1"],
+    ["Down", "1"],
+    ["Down", "1"],
+    ["Down", "2"],
+    ["Down", "2"],
+    ["Down", "3"],
+    ["Right", "3"],
+    ["Right", "3"],
+    ["Right", "3"],
+    ["Right", "4"],
+    ["Down", "5"],
+    ["Up", "2"],
+    ["Up", "2"],
+    ["Up", "2"],
+    ["Up", "2"],
+    ["Up", "1"],
+    ["Up", "1"],
+    ["Up", "start"],
+  ];
 
-    * Expected results: All focusable element in scrollable content, including
-    offscreen ones, should be accessible via spatial navigation. -->
-  <head>
-    <style type="text/css">
-      div.scroll {
-        height: 200px;
-        width: 300px;
-        overflow: auto;
-        border: 1px solid #666;
-        background-color: #ccc;
-        padding: 8px;
-      }
-    </style>
-
-    <script src="../../resources/js-test.js"></script>
-    <script src="resources/spatial-navigation-utils.js"></script>
-    <script type="application/javascript">
-
-    var resultMap = [
-      ["Down", "1"],
-      ["Down", "1"],
-      ["Down", "1"],
-      ["Down", "1"],
-      ["Down", "2"],
-      ["Down", "2"],
-      ["Down", "3"],
-      ["Right", "3"],
-      ["Right", "3"],
-      ["Right", "3"],
-      ["Right", "4"],
-      ["Down", "5"],
-      ["Up", "2"],
-      ["Up", "2"],
-      ["Up", "2"],
-      ["Up", "2"],
-      ["Up", "1"],
-      ["Up", "1"],
-      ["Up", "start"],
-      ["DONE", "DONE"]
-    ];
-
-    if (window.testRunner) {
-      testRunner.dumpAsText();
-      testRunner.overridePreference("WebKitTabToLinksPreferenceKey", 1);
-      testRunner.overridePreference("WebKitSpatialNavigationEnabled", 1);
-      testRunner.waitUntilDone();
-    }
-
-    function runTest()
-    {
-      // starting the test itself: get to a known place.
-      document.getElementById("start").focus();
-
-      initTest(resultMap, testCompleted);
-    }
-
-    function testCompleted()
-    {
-      if (window.testRunner)
-        testRunner.notifyDone();
-    }
-
-    window.onload = runTest;
-
-    </script>
-  </head>
-
-  <body id="some-content" xmlns="http://www.w3.org/1999/xhtml">
-    <a id="start" href="a"><img src="resources/green.png" width=30px height=30px></a>
-    <div class="scroll">
-      <a id="1" href="a"><img src="resources/green.png" width=30px height=35px></a>
-      <div></div>
-      <img src="resources/green.png" width=200px height=280px>
-      <div></div>
-      <a id="2" href="a"><img src="resources/green.png" width=30px height=30px></a>
-    </div>
-
-    <div class="scroll">
-      <a id="3" href="a"><img src="resources/green.png" width=30px height=35px></a>
-      <a id="4" href="a" style="margin-left: 400px"><img src="resources/green.png" width=30px height=35px></a>
-    </div>
-
-    <a id="5" href="a"><img src="resources/green.png" width=30px height=30px></a>
-
-    <div id="console"></div>
-    <div>This test tests that a div with css overflow:auto will scroll to reveal its focusable elements</div>
-  </body>
-</html>
-
+  // Start at a known place.
+  document.getElementById("start").focus();
+  snav.assertFocusMoves(resultMap);
+</script>
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-only-white-space-expected.txt b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-only-white-space-expected.txt
deleted file mode 100644
index 1700828..0000000
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-only-white-space-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This is an element
-This is an element
-PASS successfullyParsed is true
-
-TEST COMPLETE
-PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "start"
-This test tests that a anchor element with only white spaces gives the correct size in ContainerNode::getRect().
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-only-white-space.html b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-only-white-space.html
index aceccfe..85bf1ae 100644
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-only-white-space.html
+++ b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-only-white-space.html
@@ -1,73 +1,25 @@
-<html>
-  <!--
-    This test ensures the correctness of a basic aspect of spatial navigation traversal
-    routines: focusable elements in scrollable containers (e.g. <div>) should be
-    accessible, including offscreen content.
+<style>
+  :focus {outline: 1px solid black;}
+</style>
 
-    * Pre-conditions:
-    1) DRT support for spatial navivation enable/disable.
+<a href="#" id="start">This is an element</a><br>
+<div>
+  <a href="#" id="1"></a>
+</div>
+<div>
+  <a href="#" id="2">This is an element</a><br>
+</div>
 
-    * Navigation steps:
-    1) Loads this page, focus goes to "start" automatically.
-    2) Move focus down to the visible focusable element in
-       scrollable div.
-    3) Traverse the page through other focusable elements down the page.
-       and then back up.
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="resources/snav-testharness.js"></script>
+<script>
+  var resultMap = [
+    ["Down", "2"],
+    ["Up", "start"],
+  ];
 
-    * Expected results: All focusable element in scrollable content, including
-    offscreen ones, should be accessible via spatial navigation. -->
-  <head>
-    <style>
-    :focus {outline: 1px solid black;}
-    </style>
-    <script src="../../resources/js-test.js"></script>
-    <script src="resources/spatial-navigation-utils.js"></script>
-    <script type="application/javascript">
-
-    var resultMap = [
-      ["Down", "2"],
-      ["Up", "start"],
-      ["DONE", "DONE"]
-    ];
-
-    if (window.testRunner) {
-      testRunner.dumpAsText();
-      testRunner.overridePreference("WebKitTabToLinksPreferenceKey", 1);
-      testRunner.overridePreference("WebKitSpatialNavigationEnabled", 1);
-      testRunner.waitUntilDone();
-    }
-
-    function runTest()
-    {
-      // starting the test itself: get to a known place.
-      document.getElementById("start").focus();
-
-      initTest(resultMap, testCompleted);
-    }
-
-    function testCompleted()
-    {
-      if (window.testRunner)
-        testRunner.notifyDone();
-    }
-
-    window.onload = runTest;
-
-    </script>
-  </head>
-  <body>
-    <a href="#" id="start">This is an element</a><br>
-
-    <div>
-      <a href="#" id="1">
-      </a>
-    </div>
-
-    <div>
-      <a href="#" id="2">This is an element</a><br>
-    </div>
-    <div id="console"></div>
-    <div>This test tests that a anchor element with only white spaces gives the correct size in ContainerNode::getRect().</div>
-  </body>
-</html>
-
+  // Start at a known place.
+  document.getElementById("start").focus();
+  snav.assertFocusMoves(resultMap);
+</script>
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-white-space-expected.txt b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-white-space-expected.txt
deleted file mode 100644
index 05103a6a..0000000
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-white-space-expected.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-This is an element
- 
-This is an element
-This is an element
-  
-This is an element
-PASS successfullyParsed is true
-
-TEST COMPLETE
-PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "3"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "4"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "5"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "4"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "3"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "start"
-This test tests that a anchor element with in image in it and a space after the image, can still give the correct size in ContainerNode::getRect().
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-white-space.html b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-white-space.html
index da13b2a..ac1f360 100644
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-white-space.html
+++ b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-container-white-space.html
@@ -1,90 +1,40 @@
-<html>
-  <!--
-    This test ensures the correctness of a basic aspect of spatial navigation traversal
-    routines: focusable elements in scrollable containers (e.g. <div>) should be
-    accessible, including offscreen content.
+<style>
+  :focus {outline: 1px solid black;}
+</style>
 
-    * Pre-conditions:
-    1) DRT support for spatial navivation enable/disable.
+<a href="#" id="start">This is an element</a><br>
+<div>
+  <a href="#" id="1">
+    <img src="resources/green.png" height="42" width="76"  border="0"/>
+  </a>
+</div>
+<div>
+  <a href="#" id="2">This is an element</a><br>
+</div>
+<a href="#" id="3">This is an element</a><br>
+<a href="#" id="4">
+  <img src="resources/green.png" height="42" width="76" alt="llinker1" border="0"/>
+</a><br>
+<a href="#" id="5">This is an element</a><br>
 
-    * Navigation steps:
-    1) Loads this page, focus goes to "start" automatically.
-    2) Move focus down to the visible focusable element in
-       scrollable div.
-    3) Traverse the page through other focusable elements down the page.
-       and then back up.
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="resources/snav-testharness.js"></script>
+<script>
+  var resultMap = [
+    ["Down", "1"],
+    ["Down", "2"],
+    ["Down", "3"],
+    ["Down", "4"],
+    ["Down", "5"],
+    ["Up", "4"],
+    ["Up", "3"],
+    ["Up", "2"],
+    ["Up", "1"],
+    ["Up", "start"],
+  ];
 
-    * Expected results: All focusable element in scrollable content, including
-    offscreen ones, should be accessible via spatial navigation. -->
-  <head>
-    <style>
-    :focus {outline: 1px solid black;}
-    </style>
-    <script src="../../resources/js-test.js"></script>
-    <script src="resources/spatial-navigation-utils.js"></script>
-    <script type="application/javascript">
-
-    var resultMap = [
-      ["Down", "1"],
-      ["Down", "2"],
-      ["Down", "3"],
-      ["Down", "4"],
-      ["Down", "5"],
-      ["Up", "4"],
-      ["Up", "3"],
-      ["Up", "2"],
-      ["Up", "1"],
-      ["Up", "start"],
-      ["DONE", "DONE"]
-    ];
-
-    if (window.testRunner) {
-      testRunner.dumpAsText();
-      testRunner.overridePreference("WebKitTabToLinksPreferenceKey", 1);
-      testRunner.overridePreference("WebKitSpatialNavigationEnabled", 1);
-      testRunner.waitUntilDone();
-    }
-
-    function runTest()
-    {
-      // starting the test itself: get to a known place.
-      document.getElementById("start").focus();
-
-      initTest(resultMap, testCompleted);
-    }
-
-    function testCompleted()
-    {
-      if (window.testRunner)
-        testRunner.notifyDone();
-    }
-
-    window.onload = runTest;
-
-    </script>
-  </head>
-  <body>
-    <a href="#" id="start">This is an element</a><br>
-
-    <div>
-      <a href="#" id="1">
-        <img src="resources/green.png" height="42" width="76"  border="0"/>
-      </a>
-    </div>
-
-    <div>
-      <a href="#" id="2">This is an element</a><br>
-    </div>
-
-    <a href="#" id="3">This is an element</a><br>
-
-    <a href="#" id="4">
-      <img src="resources/green.png" height="42" width="76" alt="llinker1" border="0"/>
-    </a><br>
-
-    <a href="#" id="5">This is an element</a><br>
-    <div id="console"></div>
-    <div>This test tests that a anchor element with in image in it and a space after the image, can still give the correct size in ContainerNode::getRect().</div>
-  </body>
-</html>
-
+  // Start at a known place.
+  document.getElementById("start").focus();
+  snav.assertFocusMoves(resultMap);
+</script>
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-date-expected.txt b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-date-expected.txt
deleted file mode 100644
index 6ad2452..0000000
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-date-expected.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-CONSOLE WARNING: line 20: The specified value "text" does not conform to the required format, "yyyy-MM-dd".
-This test ensures the correctness of Spatial Navigation (SNav) algorithm over date input element (having shadow DOM).
-* Navigation steps:
-1) Loads this page, focus goes to "start" automatically.
-2) Focus moves away from input box, left and right to neighbor nodes and back.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Left		Right
-PASS gFocusedDocument.activeElement.getAttribute("id") is "left"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "start"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "start"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "start"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "right"
-PASS gFocusedDocument.activeElement.getAttribute("id") is "start"
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-date.html b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-date.html
index e8d37ce..7bfb1e2 100644
--- a/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-date.html
+++ b/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-date.html
@@ -1,18 +1,3 @@
-<!DOCTYPE html>
-<head>
-<script src="../../resources/js-test.js"></script>
-<script src="resources/spatial-navigation-utils.js"></script>
-<script>
-window.jsTestIsAsync = true;
-
-if (window.testRunner) {
-    testRunner.overridePreference("WebKitTabToLinksPreferenceKey", 1);
-    testRunner.overridePreference("WebKitSpatialNavigationEnabled", 1);
-}
-</script>
-</head>
-<body id="some-content" xmlns="http://www.w3.org/1999/xhtml">
-<p id="description"></p>
 <table style="text-align: left; width: 100%; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="1">
 <tbody>
 <tr>
@@ -22,33 +7,21 @@
 </tr>
 </tbody>
 </table>
-<div id="console"></div>
-<script type="application/javascript">
-description('This test ensures the correctness of Spatial Navigation (SNav) algorithm over date input element (having shadow DOM).<br>\
-             * Navigation steps:<br>\
-             1) Loads this page, focus goes to "start" automatically.<br>\
-             2) Focus moves away from input box, left and right to neighbor nodes and back.<br>');
 
-var resultMap = [
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="resources/snav-testharness.js"></script>
+<script>
+  var resultMap = [
     ["Left", "left"],
     ["Right", "start"], // month
     ["Right", "start"], // day
     ["Right", "start"], // year
     ["Right", "right"],
     ["Left", "start"],
-    ["DONE", "DONE"]
-];
+  ];
 
-function runTest()
-{
-    // starting the test itself: get to a known place.
-    document.getElementById("start").focus();
-
-    initTest(resultMap, finishJSTest);
-}
-
-window.onload = runTest;
+  // Start at a known place.
+  document.getElementById("start").focus();
+  snav.assertFocusMoves(resultMap);
 </script>
-</body>
-</html>
-
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/position/containing-block-position-change-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/position/containing-block-position-change-expected.txt
index 47bdeea0..d581392f 100644
--- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/position/containing-block-position-change-expected.txt
+++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/position/containing-block-position-change-expected.txt
@@ -20,12 +20,12 @@
         {
           "object": "LayoutNGBlockFlow (positioned) DIV",
           "rect": [158, 74, 50, 50],
-          "reason": "style change"
+          "reason": "subtree"
         },
         {
           "object": "LayoutNGBlockFlow (positioned) DIV",
           "rect": [100, 74, 50, 50],
-          "reason": "style change"
+          "reason": "subtree"
         }
       ]
     }
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-gen-property-trees/fast/multicol/composited-layer-nested-expected.png b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-gen-property-trees/fast/multicol/composited-layer-nested-expected.png
new file mode 100644
index 0000000..d749b58
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-gen-property-trees/fast/multicol/composited-layer-nested-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-gen-property-trees/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-gen-property-trees/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
new file mode 100644
index 0000000..ba0f2e7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-gen-property-trees/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/text-pattern-update-2-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/text-pattern-update-2-expected.txt
index 3332943..e25edd7 100644
--- a/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/text-pattern-update-2-expected.txt
+++ b/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/text-pattern-update-2-expected.txt
@@ -9,17 +9,17 @@
         {
           "object": "InlineTextBox 'X'",
           "rect": [8, 8, 300, 100],
-          "reason": "SVG resource change"
+          "reason": "subtree"
         },
         {
           "object": "InlineTextBox 'Y'",
           "rect": [8, 8, 300, 100],
-          "reason": "SVG resource change"
+          "reason": "subtree"
         },
         {
           "object": "InlineTextBox 'Z'",
           "rect": [8, 8, 300, 100],
-          "reason": "SVG resource change"
+          "reason": "subtree"
         }
       ]
     }
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/text-pattern-update-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/text-pattern-update-expected.txt
index edbb1e6..b9b5dc3 100644
--- a/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/text-pattern-update-expected.txt
+++ b/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/text-pattern-update-expected.txt
@@ -9,7 +9,7 @@
         {
           "object": "InlineTextBox 'X'",
           "rect": [8, 8, 100, 100],
-          "reason": "SVG resource change"
+          "reason": "subtree"
         }
       ]
     }
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/tspan-pattern-update-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/tspan-pattern-update-expected.txt
index 42cd41e..bfa78fa 100644
--- a/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/tspan-pattern-update-expected.txt
+++ b/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/tspan-pattern-update-expected.txt
@@ -9,7 +9,7 @@
         {
           "object": "InlineTextBox 'Y'",
           "rect": [8, 8, 300, 100],
-          "reason": "SVG resource change"
+          "reason": "subtree"
         }
       ]
     }
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/animated-row-background-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/animated-row-background-expected.txt
index 80e1961..49aa880e 100644
--- a/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/animated-row-background-expected.txt
+++ b/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/table/animated-row-background-expected.txt
@@ -9,12 +9,12 @@
         {
           "object": "LayoutTableRow TR id='row'",
           "rect": [8, 10, 210, 102],
-          "reason": "full"
+          "reason": "background"
         },
         {
           "object": "LayoutImage IMG id='image'",
           "rect": [8, 114, 50, 50],
-          "reason": "full"
+          "reason": "image"
         }
       ]
     }
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/copy-network-request-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/copy-network-request-expected.txt
index 9ba1929..390376cbd 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/copy-network-request-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/copy-network-request-expected.txt
@@ -19,13 +19,13 @@
 cURL Windows: curl "http://example.org/path" -H "Content-Type: application/binary" --data-binary ^"1234^
 
 00^^^^'^\^"^!^" --compressed
-cURL Unix: curl 'http://example.org/path' -H 'Content-Type: application/binary' --data-binary $'1234\r\n00\x02\x03\x04\x05\'"!' --compressed
+cURL Unix: curl 'http://example.org/path' -H 'Content-Type: application/binary' --data-binary $'1234\r\n00\u02\u03\u04\u05\'"!' --compressed
 Powershell: Invoke-WebRequest -Uri "http://example.org/path" -Method "POST" -ContentType "application/binary" -Body ([System.Text.Encoding]::UTF8.GetBytes("1234$([char]13)$([char]10)00$([char]2)$([char]3)$([char]4)$([char]5)'`"!"))
 fetch: fetch("http://example.org/path", {"credentials":"omit","headers":{"content-type":"application/binary"},"body":"1234\r\n00\u0002\u0003\u0004\u0005'\"!","method":"POST","mode":"cors"});
 cURL Windows: curl "http://example.org/path" -H "Content-Type: application/binary" --data-binary ^"1234^
 
 ^00^^^^'^\^"^!^" --compressed
-cURL Unix: curl 'http://example.org/path' -H 'Content-Type: application/binary' --data-binary $'1234\r\n\x0100\x02\x03\x04\x05\'"!' --compressed
+cURL Unix: curl 'http://example.org/path' -H 'Content-Type: application/binary' --data-binary $'1234\r\n\u0100\u02\u03\u04\u05\'"!' --compressed
 Powershell: Invoke-WebRequest -Uri "http://example.org/path" -Method "POST" -ContentType "application/binary" -Body ([System.Text.Encoding]::UTF8.GetBytes("1234$([char]13)$([char]10)$([char]1)00$([char]2)$([char]3)$([char]4)$([char]5)'`"!"))
 fetch: fetch("http://example.org/path", {"credentials":"omit","headers":{"content-type":"application/binary"},"body":"1234\r\n\u000100\u0002\u0003\u0004\u0005'\"!","method":"POST","mode":"cors"});
 cURL Windows: curl "http://example.org/path" -H "Content-Type: application/binary" --data-binary ^"^%^OS^%^
@@ -51,7 +51,7 @@
 Powershell: Invoke-WebRequest -Uri "http://example.org/path" -Method "POST" -ContentType "application/binary" -Body ([System.Text.Encoding]::UTF8.GetBytes("!@#`$%^&*()_+~``1234567890-=[]{};':`",./$([char]13)<>?$([char]13)$([char]10)qwer$([char]10)t$([char]10)$([char]10)yuiopasdfghjklmnbvcxzQWERTYUIOPLKJHGFDSAZXCVBNM"))
 fetch: fetch("http://example.org/path", {"credentials":"omit","headers":{"content-type":"application/binary"},"body":"!@#$%^&*()_+~`1234567890-=[]{};':\",./\r<>?\r\nqwer\nt\n\nyuiopasdfghjklmnbvcxzQWERTYUIOPLKJHGFDSAZXCVBNM","method":"POST","mode":"cors"});
 cURL Windows: curl "http://example.org/path" -H "Content-Type: application/binary" --data-binary "^^€^^ÿ	^܀" --compressed
-cURL Unix: curl 'http://example.org/path' -H 'Content-Type: application/binary' --data-binary $'\x7f\x80\x90\xff\x09\u0700' --compressed
+cURL Unix: curl 'http://example.org/path' -H 'Content-Type: application/binary' --data-binary $'\u7f\u80\u90ÿ\u09܀' --compressed
 Powershell: Invoke-WebRequest -Uri "http://example.org/path" -Method "POST" -ContentType "application/binary" -Body ([System.Text.Encoding]::UTF8.GetBytes("$([char]127)$([char]128)$([char]144)$([char]255)$([char]9)$([char]1792)"))
 fetch: fetch("http://example.org/path", {"credentials":"omit","headers":{"content-type":"application/binary"},"body":"€ÿ\t܀","method":"POST","mode":"cors"});
 cURL Windows: curl "http://labs.ft.com/?querystring=^\[^\]^\{^\}" --compressed
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-cert-not-found-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-cert-not-found-expected.txt
index 6b85ec6c..393cd0f 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-cert-not-found-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-cert-not-found-expected.txt
@@ -3,11 +3,11 @@
 inspected-page.html:1 Invalid reponse code: 404
 inspected-page.html:1 Failed to fetch the certificate.
 * http://127.0.0.1:8000/loading/sxg/resources/sxg-cert-not-found.sxg
-  failed: true
+  failed: false
   statusCode: 200
-  resourceType: document
+  resourceType: signed-exchange
   SignedExchangeInfo
-    Request URL: https://127.0.0.1:8443/not_found_cert.html
+    Request URL: https://127.0.0.1:8443/loading/sxg/resources/inner-url.html
     Certificate URL: https://127.0.0.1:8443/loading/sxg/resources/not_found_cert.pem.cbor
     Error: {"message":"Invalid reponse code: 404"}
     Error: {"message":"Failed to fetch the certificate.","signatureIndex":0,"errorField":"signatureCertUrl"}
@@ -15,4 +15,8 @@
   failed: false
   statusCode: 404
   resourceType: other
+* https://127.0.0.1:8443/loading/sxg/resources/inner-url.html
+  failed: false
+  statusCode: 200
+  resourceType: document
 
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-disable-cache.js b/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-disable-cache.js
index 64017e83..2110083e 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-disable-cache.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-disable-cache.js
@@ -8,7 +8,7 @@
       'https://127.0.0.1:8443/loading/sxg/resources/sxg-location.sxg';
   const certUrl =
       'https://127.0.0.1:8443/loading/sxg/resources/127.0.0.1.sxg.pem.cbor';
-  const innerUrl = 'https://127.0.0.1:8443/test.html';
+  const innerUrl = 'https://127.0.0.1:8443/loading/sxg/resources/inner-url.html';
 
   await TestRunner.loadModule('network_test_runner');
   await TestRunner.showPanel('network');
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-navigation-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-navigation-expected.txt
index d5da7d2..6d12343fb 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-navigation-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-navigation-expected.txt
@@ -5,7 +5,7 @@
   statusCode: 200
   resourceType: signed-exchange
   SignedExchangeInfo
-    Request URL: https://127.0.0.1:8443/test.html
+    Request URL: https://127.0.0.1:8443/loading/sxg/resources/inner-url.html
     Certificate URL: https://127.0.0.1:8443/loading/sxg/resources/127.0.0.1.sxg.pem.cbor
     Certificate Subject: 127.0.0.1
     Certificate Issuer: web-platform-tests
@@ -13,7 +13,7 @@
   failed: false
   statusCode: 200
   resourceType: other
-* https://127.0.0.1:8443/test.html
+* https://127.0.0.1:8443/loading/sxg/resources/inner-url.html
   failed: false
   statusCode: 200
   resourceType: document
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-navigation-expired-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-navigation-expired-expected.txt
index 39acea9..a40695a 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-navigation-expired-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-navigation-expired-expected.txt
@@ -3,11 +3,11 @@
 inspected-page.html:1 Invalid timestamp. creation_time: 1522540800, expires_time: 1523145600, verification_time: 1523318460
 inspected-page.html:1 Failed to verify the signed exchange header.
 * http://127.0.0.1:8000/loading/sxg/resources/sxg-location.sxg
-  failed: true
+  failed: false
   statusCode: 200
-  resourceType: document
+  resourceType: signed-exchange
   SignedExchangeInfo
-    Request URL: https://127.0.0.1:8443/test.html
+    Request URL: https://127.0.0.1:8443/loading/sxg/resources/inner-url.html
     Certificate URL: https://127.0.0.1:8443/loading/sxg/resources/127.0.0.1.sxg.pem.cbor
     Error: {"message":"Invalid timestamp. creation_time: 1522540800, expires_time: 1523145600, verification_time: 1523318460"}
     Error: {"message":"Failed to verify the signed exchange header.","signatureIndex":0,"errorField":"signatureTimestamps"}
@@ -15,4 +15,8 @@
   failed: false
   statusCode: 200
   resourceType: other
+* https://127.0.0.1:8443/loading/sxg/resources/inner-url.html
+  failed: false
+  statusCode: 200
+  resourceType: document
 
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-prefetch.js b/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-prefetch.js
index 1239c889..5ceed34 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-prefetch.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sxg/sxg-prefetch.js
@@ -17,7 +17,7 @@
     TestRunner.addSniffer(SDK.NetworkDispatcher.prototype, 'loadingFinished', loadingFinished, true);
     function loadingFinished(requestId, finishTime, encodedDataLength) {
       var request = SDK.networkLog.requestByManagerAndId(TestRunner.networkManager, requestId);
-      if (/test\.html/.exec(request.url()))
+      if (/inner-url\.html/.exec(request.url()))
         resolve();
     }
   });
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/fallback-to-another-sxg.html b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/fallback-to-another-sxg.html
new file mode 100644
index 0000000..4332c1e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/fallback-to-another-sxg.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<title>Fallback redirect to another SignedHTTPExchange</title>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="./resources/sxg-util.js"></script>
+<body>
+<script>
+promise_test(async (t) => {
+  await waitUntilDidFinishLoadForFrame;
+
+  // The timestamp of the test SXG file is "Apr 1 2018 00:00 UTC" and valid
+  // until "Apr 8 2018 00:00 UTC".
+  await setSignedExchangeVerificationTime(new Date("Apr 1 2018 00:01 UTC"));
+
+  const event = await new Promise(async (resolve, reject) => {
+    // We can't catch the network error on iframe. So we use the timer.
+    t.step_timeout(() => reject('timeout'), 1000);
+
+    const frame =
+        await withIframe('resources/fallback-to-another-sxg.sxg', 'sxg_iframe');
+    const channel = new MessageChannel();
+    channel.port1.onmessage = resolve;
+    frame.contentWindow.postMessage(
+        {port: channel.port2}, '*', [channel.port2]);
+  });
+  assert_equals(event.data.location, 'https://127.0.0.1:8443/loading/sxg/resources/inner-url.html');
+  assert_false(event.data.is_fallback);
+}, 'Fallback redirect to another SignedHTTPExchange');
+
+</script>
+</body>
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/failure.html b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/failure.html
new file mode 100644
index 0000000..1071f08
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/failure.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<title>Content of invalid signed exchange</title>
+<script>
+window.addEventListener('message', (event) => {
+  event.data.port.postMessage("FAIL if this content is loaded");
+}, false);
+</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/fallback-to-another-sxg.sxg b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/fallback-to-another-sxg.sxg
new file mode 100644
index 0000000..7d5b892
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/fallback-to-another-sxg.sxg
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/generate-test-sxgs.sh b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/generate-test-sxgs.sh
index 856cdc1..e5f69aa9 100755
--- a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/generate-test-sxgs.sh
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/generate-test-sxgs.sh
@@ -28,7 +28,7 @@
 
 # Generate the signed exchange file.
 gen-signedexchange \
-  -uri https://127.0.0.1:8443/test.html \
+  -uri https://127.0.0.1:8443/loading/sxg/resources/inner-url.html \
   -status 200 \
   -content sxg-location.html \
   -certificate $certs_dir/127.0.0.1.sxg.pem \
@@ -42,7 +42,7 @@
 
 # Generate the signed exchange file which certificate file is not available.
 gen-signedexchange \
-  -uri https://127.0.0.1:8443/not_found_cert.html \
+  -uri https://127.0.0.1:8443/loading/sxg/resources/inner-url.html \
   -status 200 \
   -content sxg-location.html \
   -certificate $certs_dir/127.0.0.1.sxg.pem \
@@ -57,7 +57,7 @@
 # Generate the signed exchange file which validity URL is different origin from
 # request URL.
 gen-signedexchange \
-  -uri https://127.0.0.1:8443/test.html \
+  -uri https://127.0.0.1:8443/loading/sxg/resources/inner-url.html \
   -status 200 \
   -content sxg-location.html \
   -certificate $certs_dir/127.0.0.1.sxg.pem \
@@ -69,4 +69,19 @@
   -o sxg-invalid-validity-url.sxg \
   -miRecordSize 100
 
+# Generate the signed exchange whose certUrl is 404 and fallback URL is another
+# signed exchange.
+gen-signedexchange \
+  -uri https://127.0.0.1:8443/loading/sxg/resources/sxg-location.sxg \
+  -status 200 \
+  -content failure.html \
+  -certificate $certs_dir/127.0.0.1.sxg.pem \
+  -certUrl https://127.0.0.1:8443/loading/sxg/resources/not_found_cert.pem.cbor \
+  -validityUrl https://127.0.0.1:8443/loading/sxg/resources/not_found_cert.validity.msg \
+  -privateKey $certs_dir/127.0.0.1.sxg.key \
+  -date 2018-04-01T00:00:00Z \
+  -expire 168h \
+  -o fallback-to-another-sxg.sxg \
+  -miRecordSize 100
+
 rm -fr $tmpdir
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/inner-url.html b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/inner-url.html
new file mode 100644
index 0000000..628a18a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/inner-url.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<title>Content of fallback URL</title>
+<script>
+window.addEventListener('message', (event) => {
+  event.data.port.postMessage({location: document.location.href, is_fallback: true});
+}, false);
+</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-cert-not-found.sxg b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-cert-not-found.sxg
index e0368b6..1a403d1 100644
--- a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-cert-not-found.sxg
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-cert-not-found.sxg
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-invalid-validity-url.sxg b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-invalid-validity-url.sxg
index e23eb769..992571b 100644
--- a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-invalid-validity-url.sxg
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-invalid-validity-url.sxg
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-location.html b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-location.html
index d620184..39a475e 100644
--- a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-location.html
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-location.html
@@ -2,6 +2,6 @@
 <title>Content of SignedHTTPExchange</title>
 <script>
 window.addEventListener('message', (event) => {
-  event.data.port.postMessage({location: document.location.href});
+  event.data.port.postMessage({location: document.location.href, is_fallback: false});
 }, false);
 </script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-location.sxg b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-location.sxg
index b7393a66..79f90912 100644
--- a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-location.sxg
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/resources/sxg-location.sxg
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-expired.html b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-expired.html
index b018293..0df1ade 100644
--- a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-expired.html
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-expired.html
@@ -12,19 +12,19 @@
   // until "Apr 8 2018 00:00 UTC". So in Apr 10, the page load should fail.
   await setSignedExchangeVerificationTime(new Date("Apr 10 2018 00:01 UTC"));
 
-  await new Promise(async (resolve, reject) => {
+  const event = await new Promise(async (resolve, reject) => {
     // We can't catch the network error on iframe. So we use the timer.
-    t.step_timeout(() => resolve(), 1000);
+    t.step_timeout(() => reject('timeout'), 1000);
 
     const frame =
         await withIframe('resources/sxg-location.sxg', 'sxg_iframe');
     const channel = new MessageChannel();
-    channel.port1.onmessage = () => {
-      reject('Page load should fail');
-    };
+    channel.port1.onmessage = resolve;
     frame.contentWindow.postMessage(
         {port: channel.port2}, '*', [channel.port2]);
   });
+  assert_equals(event.data.location, 'https://127.0.0.1:8443/loading/sxg/resources/inner-url.html');
+  assert_true(event.data.is_fallback);
 }, 'Loading expired SignedHTTPExchange must fail');
 </script>
 </body>
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location-fragment.html b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location-fragment.html
index 3502dd58..c93e2d7 100644
--- a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location-fragment.html
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location-fragment.html
@@ -23,7 +23,8 @@
     frame.contentWindow.postMessage(
         {port: channel.port2}, '*', [channel.port2]);
   });
-  assert_equals(event.data.location, 'https://127.0.0.1:8443/test.html#fragment');
+  assert_equals(event.data.location, 'https://127.0.0.1:8443/loading/sxg/resources/inner-url.html#fragment');
+  assert_false(event.data.is_fallback);
 }, 'Navigating to a Signed Exchange should preserve URL fragment');
 
 </script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location-origin-trial.html b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location-origin-trial.html
index 2943d4f..76bf93c 100644
--- a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location-origin-trial.html
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location-origin-trial.html
@@ -24,7 +24,8 @@
     frame.contentWindow.postMessage(
         {port: channel.port2}, '*', [channel.port2]);
   });
-  assert_equals(event.data.location, 'https://127.0.0.1:8443/test.html');
+  assert_equals(event.data.location, 'https://127.0.0.1:8443/loading/sxg/resources/inner-url.html');
+  assert_false(event.data.is_fallback);
 }, 'Location of SignedHTTPExchange with Origin-Trial header');
 </script>
 </body>
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location.html b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location.html
index 96da344..c371dc6 100644
--- a/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location.html
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/sxg/sxg-location.html
@@ -23,7 +23,8 @@
     frame.contentWindow.postMessage(
         {port: channel.port2}, '*', [channel.port2]);
   });
-  assert_equals(event.data.location, 'https://127.0.0.1:8443/test.html');
+  assert_equals(event.data.location, 'https://127.0.0.1:8443/loading/sxg/resources/inner-url.html');
+  assert_false(event.data.is_fallback);
 }, 'Location of SignedHTTPExchange');
 
 </script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/resources/wasm-threads-origin-trial.js b/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/resources/wasm-threads-origin-trial.js
new file mode 100644
index 0000000..c4fc88a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/resources/wasm-threads-origin-trial.js
@@ -0,0 +1,115 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Build a WebAssembly module which uses thread-features.
+function createBuilderWithThreads() {
+  const builder = new WasmModuleBuilder();
+  const shared = true;
+  builder.addMemory(2, 10, false, shared);
+  builder.addFunction('main', kSig_i_ii)
+      .addBody([
+        kExprGetLocal, 0, kExprGetLocal, 1, kAtomicPrefix, kExprI32AtomicAdd, 2,
+        0
+      ])
+      .exportFunc();
+  return builder;
+}
+
+// Starts the function provided by blobURL on a worker and checks that the data
+// the worker sends with postMessage is 'true'.
+function testModuleCompilationOnWorker(blobURL) {
+  let resolve;
+  // Create a promise which fulfills when the worker finishes.
+  let promise = new Promise(function(res, rej) {
+    resolve = res;
+  });
+
+  let worker = new Worker(blobURL);
+  worker.addEventListener('message', e => resolve(e.data));
+
+  // Send the module bytes to the worker, because the worker does not have
+  // access to the WasmModuleBuilder.
+  worker.postMessage(createBuilderWithThreads().toBuffer());
+
+  return promise.then(result => assert_true(result));
+}
+
+// Test that WebAssembly threads are disabled and a WebAssembly module which
+// uses shared memory and atomics cannot be compiled.
+function testWasmThreadsDisabled() {
+  // If WebAssembly threads are enabled even without origin trial token, then we
+  // do not run this test.
+  if (window.internals.runtimeFlags.webAssemblyThreadsEnabled)
+    return;
+
+  try {
+    // Compiling the WebAssembly bytes should throw a CompileError.
+    createBuilderWithThreads().toModule();
+    assert_unreachable();
+  } catch (e) {
+    assert_true(e instanceof WebAssembly.CompileError);
+  }
+}
+
+// Test that WebAssembly threads are disabled and a WebAssembly module which
+// uses shared memory and atomics cannot be compiled on a worker.
+function testWasmThreadsDisabledOnWorker() {
+  // If WebAssembly threads are enabled even without origin trial token, then
+  // we do not run this test.
+  if (window.internals.runtimeFlags.webAssemblyThreadsEnabled) {
+    return Promise.resolve();
+  }
+
+  const blobURL = URL.createObjectURL(new Blob(
+      [
+        '(',
+        function() {
+          self.addEventListener('message', data => {
+            try {
+              // Compiling the WebAssembly bytes should throw a CompileError.
+              new WebAssembly.Module(data.data);
+              self.postMessage(false);
+            } catch (e) {
+              self.postMessage(e instanceof WebAssembly.CompileError);
+            }
+          });
+        }.toString(),
+        ')()'
+      ],
+      {type: 'application/javascript'}));
+
+  return testModuleCompilationOnWorker(blobURL);
+}
+
+// Test that WebAssembly threads are enabled and a WebAssembly module which
+// uses shared memory and atomics can be compiled.
+function testWasmThreadsEnabled() {
+  const module = createBuilderWithThreads().toModule();
+  assert_true(module !== undefined);
+  assert_true(module instanceof WebAssembly.Module);
+}
+
+// Test that WebAssembly threads are enabled and a WebAssembly module which
+// uses shared memory and atomics can be compiled on a worker.
+function testWasmThreadsEnabledOnWorker() {
+  let blobURL = URL.createObjectURL(new Blob(
+      [
+        '(',
+        function() {
+          self.addEventListener('message', data => {
+            try {
+              const module = new WebAssembly.Module(data.data);
+              self.postMessage(module !== undefined);
+            } catch (e) {
+              console.log(e);
+              self.postMessage(false);
+            }
+          });
+        }.toString(),
+        ')()'
+      ],
+      {type: 'application/javascript'}));
+
+  return testModuleCompilationOnWorker(blobURL);
+}
diff --git a/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/wasm-threads-origin-trial-disabled.html b/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/wasm-threads-origin-trial-disabled.html
new file mode 100644
index 0000000..b7d7e278
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/wasm-threads-origin-trial-disabled.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+
+<script src="../../../../resources/testharness.js"></script>
+<script src="../../../../resources/testharnessreport.js"></script>
+
+<script src="../../wasm/resources/wasm-constants.js"></script>
+<script src="../../wasm/resources/wasm-module-builder.js"></script>
+<script src="resources/wasm-threads-origin-trial.js"></script>
+<script>
+test(testWasmThreadsDisabled,
+     "Test that WebAssembly threads are disabled without origin trial token");
+promise_test(testWasmThreadsDisabledOnWorker,
+     "Test that WebAssembly threads are disabled in worker without origin trial token");
+</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/wasm-threads-origin-trial-enabled.html b/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/wasm-threads-origin-trial-enabled.html
new file mode 100644
index 0000000..4a0892d0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/wasm-threads-origin-trial-enabled.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<!-- Generate this token with the command:
+generate_token.py http://127.0.0.1:8000 WebAssemblyThreads --expire-timestamp=2000000000
+-->
+
+<meta http-equiv="origin-trial" content="AvA8hsoHU+5qiE3oR2wNRZKcI7MOkHl4Vdu3IX8IKv90k4tpNFIaC3KblOaOh9ND63YD/539iVGJ930KCYwotgoAAABaeyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImZlYXR1cmUiOiAiV2ViQXNzZW1ibHlUaHJlYWRzIiwgImV4cGlyeSI6IDIwMDAwMDAwMDB9" />
+
+<script src="../../../../resources/testharness.js"></script>
+<script src="../../../../resources/testharnessreport.js"></script>
+
+<script src="../../wasm/resources/wasm-constants.js"></script>
+<script src="../../wasm/resources/wasm-module-builder.js"></script>
+<script src="resources/wasm-threads-origin-trial.js"></script>
+<script>
+test(testWasmThreadsEnabled,
+     "Test that WebAssembly threads are enabled with origin trial token");
+promise_test(testWasmThreadsEnabledOnWorker,
+     "Test that WebAssembly threads are enabled in worker with origin trial token");
+</script>
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-should-cause-repaint-expected.html b/third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-expected.html
similarity index 100%
rename from third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-should-cause-repaint-expected.html
rename to third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-expected.html
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-expected.txt b/third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-expected.txt
new file mode 100644
index 0000000..e24b05c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-expected.txt
@@ -0,0 +1,84 @@
+{
+  "layers": [
+    {
+      "name": "LayoutView #document",
+      "bounds": [800, 600],
+      "drawsContent": false,
+      "backgroundColor": "#FFFFFF"
+    },
+    {
+      "name": "Scrolling Layer",
+      "bounds": [800, 600],
+      "drawsContent": false
+    },
+    {
+      "name": "Scrolling Contents Layer",
+      "bounds": [800, 600],
+      "contentsOpaque": true,
+      "drawsContent": false,
+      "backgroundColor": "#FFFFFF"
+    },
+    {
+      "name": "LayoutBlockFlow HTML",
+      "bounds": [800, 318]
+    },
+    {
+      "name": "LayoutBlockFlow (relative positioned) DIV id='neg-z'",
+      "position": [9, -81],
+      "bounds": [100, 410]
+    },
+    {
+      "name": "LayoutBlockFlow HTML (foreground) Layer",
+      "bounds": [800, 318]
+    },
+    {
+      "name": "LayoutBlockFlow (relative positioned) DIV id='container'",
+      "position": [8, 8],
+      "bounds": [102, 302],
+      "backfaceVisibility": "hidden"
+    },
+    {
+      "name": "Scrolling Layer",
+      "position": [9, 9],
+      "bounds": [100, 300],
+      "drawsContent": false
+    },
+    {
+      "name": "Scrolling Contents Layer",
+      "position": [9, 9],
+      "bounds": [100, 430],
+      "drawsContent": false,
+      "transform": 1
+    },
+    {
+      "name": "Overflow Controls Host Layer",
+      "position": [8, 8],
+      "bounds": [102, 302],
+      "drawsContent": false,
+      "backfaceVisibility": "hidden"
+    },
+    {
+      "name": "Horizontal Scrollbar Layer",
+      "position": [9, 309],
+      "bounds": [100, 0]
+    },
+    {
+      "name": "Vertical Scrollbar Layer",
+      "position": [109, 9],
+      "bounds": [0, 300]
+    }
+  ],
+  "transforms": [
+    {
+      "id": 1,
+      "transform": [
+        [1, 0, 0, 0],
+        [0, 1, 0, 0],
+        [0, 0, 1, 0],
+        [0, -100, 0, 1]
+      ],
+      "flattenInheritedTransform": false
+    }
+  ]
+}
+
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-should-cause-repaint-expected.txt b/third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-should-cause-repaint-expected.txt
deleted file mode 100644
index 8d0d109..0000000
--- a/third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-should-cause-repaint-expected.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "layers": [
-    {
-      "name": "LayoutView #document",
-      "bounds": [800, 600],
-      "drawsContent": false,
-      "contentsOpaque": true,
-      "drawsContent": true
-    },
-    {
-      "name": "LayoutBlockFlow (relative positioned) DIV id='container'",
-      "position": [8, 8],
-      "bounds": [102, 302],
-      "shouldFlattenTransform": false,
-      "drawsContent": true,
-      "backfaceVisibility": "hidden"
-    },
-    {
-      "name": "Scrolling Layer",
-      "position": [1, 1],
-      "bounds": [100, 300],
-      "shouldFlattenTransform": false
-    },
-    {
-      "name": "Scrolling Contents Layer",
-      "bounds": [100, 430]
-    },
-    {
-      "name": "Overflow Controls Host Layer",
-      "bounds": [102, 302]
-    },
-    {
-      "name": "Horizontal Scrollbar Layer",
-      "position": [1, 301],
-      "bounds": [100, 0],
-      "drawsContent": true
-    },
-    {
-      "name": "Vertical Scrollbar Layer",
-      "position": [101, 1],
-      "bounds": [0, 300],
-      "drawsContent": true
-    }
-  ]
-}
-
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-should-cause-repaint.html b/third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants.html
similarity index 100%
rename from third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants-should-cause-repaint.html
rename to third_party/WebKit/LayoutTests/paint/invalidation/compositing/scrolling-neg-z-index-descendants.html
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/svg/text-pattern-update-2-expected.txt b/third_party/WebKit/LayoutTests/paint/invalidation/svg/text-pattern-update-2-expected.txt
index 1647bf07..076c09be 100644
--- a/third_party/WebKit/LayoutTests/paint/invalidation/svg/text-pattern-update-2-expected.txt
+++ b/third_party/WebKit/LayoutTests/paint/invalidation/svg/text-pattern-update-2-expected.txt
@@ -20,17 +20,17 @@
         {
           "object": "InlineTextBox 'X'",
           "rect": [8, 8, 300, 100],
-          "reason": "SVG resource change"
+          "reason": "subtree"
         },
         {
           "object": "InlineTextBox 'Y'",
           "rect": [8, 8, 300, 100],
-          "reason": "SVG resource change"
+          "reason": "subtree"
         },
         {
           "object": "InlineTextBox 'Z'",
           "rect": [8, 8, 300, 100],
-          "reason": "SVG resource change"
+          "reason": "subtree"
         }
       ]
     }
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/svg/text-pattern-update-expected.txt b/third_party/WebKit/LayoutTests/paint/invalidation/svg/text-pattern-update-expected.txt
index 55354ee..7a6bf3c 100644
--- a/third_party/WebKit/LayoutTests/paint/invalidation/svg/text-pattern-update-expected.txt
+++ b/third_party/WebKit/LayoutTests/paint/invalidation/svg/text-pattern-update-expected.txt
@@ -20,7 +20,7 @@
         {
           "object": "InlineTextBox 'X'",
           "rect": [8, 8, 100, 100],
-          "reason": "SVG resource change"
+          "reason": "subtree"
         }
       ]
     }
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/svg/tspan-pattern-update-expected.txt b/third_party/WebKit/LayoutTests/paint/invalidation/svg/tspan-pattern-update-expected.txt
index c84442f..4d76df4d 100644
--- a/third_party/WebKit/LayoutTests/paint/invalidation/svg/tspan-pattern-update-expected.txt
+++ b/third_party/WebKit/LayoutTests/paint/invalidation/svg/tspan-pattern-update-expected.txt
@@ -20,7 +20,7 @@
         {
           "object": "InlineTextBox 'Y'",
           "rect": [8, 8, 300, 100],
-          "reason": "SVG resource change"
+          "reason": "subtree"
         }
       ]
     }
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/table/animated-row-background-expected.txt b/third_party/WebKit/LayoutTests/paint/invalidation/table/animated-row-background-expected.txt
index 99018a1..0344b504 100644
--- a/third_party/WebKit/LayoutTests/paint/invalidation/table/animated-row-background-expected.txt
+++ b/third_party/WebKit/LayoutTests/paint/invalidation/table/animated-row-background-expected.txt
@@ -20,12 +20,12 @@
         {
           "object": "LayoutTableRow TR id='row'",
           "rect": [8, 10, 210, 102],
-          "reason": "full"
+          "reason": "background"
         },
         {
           "object": "LayoutImage IMG id='image'",
           "rect": [8, 114, 50, 50],
-          "reason": "full"
+          "reason": "image"
         }
       ]
     }
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display-expected.txt
new file mode 100644
index 0000000..fc743f1c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display-expected.txt
@@ -0,0 +1,14 @@
+This is a testharness.js-based test.
+FAIL .table assert_equals: .table display expected "table" but got "block"
+FAIL .caption assert_equals: .caption display expected "table-caption" but got "block"
+FAIL .col assert_equals: .col display expected "table-column" but got "block"
+FAIL .tbody assert_equals: .tbody display expected "table-row-group" but got "block"
+FAIL .tr assert_equals: .tr display expected "table-row" but got "block"
+FAIL .td assert_equals: .td display expected "table-cell" but got "block"
+FAIL .li assert_equals: .li display expected "list-item" but got "block"
+FAIL .inline assert_equals: .inline display expected "inline" but got "block"
+FAIL .inline-block assert_equals: .inline-block display expected "inline-block" but got "block"
+FAIL .ruby assert_equals: .ruby display expected "inline" but got "block"
+FAIL .rt assert_equals: .rt width expected "29px" but got "800px"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
index d91d615..d64e33c 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/linux/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-blobs/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-blobs/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt
deleted file mode 100644
index f757823..0000000
--- a/third_party/WebKit/LayoutTests/platform/linux/virtual/mojo-blobs/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-This is a testharness.js-based test.
-PASS Normal redirect to same-origin scope.
-FAIL Normal redirect to same-origin scope with a hash fragment. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-FAIL Normal redirect to same-origin scope with different hash fragments. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref2"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-PASS Normal redirect to other-origin scope.
-PASS SW-fallbacked redirect to same-origin out-scope.
-PASS SW-fallbacked redirect to same-origin same-scope.
-FAIL SW-fallbacked redirect to same-origin same-scope with a hash fragment. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F#ref", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-FAIL SW-fallbacked redirect to same-origin same-scope with different hash fragments. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F%23ref2#ref", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref2"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F%23ref2", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-PASS SW-fallbacked redirect to same-origin other-scope.
-PASS SW-fallbacked redirect to other-origin out-scope.
-PASS SW-fallbacked redirect to other-origin in-scope.
-PASS SW-generated redirect to same-origin out-scope.
-FAIL SW-generated redirect to same-origin out-scope with a hash fragment. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F"]
-FAIL SW-generated redirect to same-origin out-scope with different hashfragments. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F%23ref2#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F%23ref2"]
-PASS SW-generated redirect to same-origin same-scope.
-PASS SW-generated redirect to same-origin other-scope.
-PASS SW-generated redirect to other-origin out-scope.
-PASS SW-generated redirect to other-origin in-scope.
-PASS SW-fetched redirect to same-origin out-scope.
-PASS SW-fetched redirect to same-origin same-scope.
-PASS SW-fetched redirect to same-origin other-scope.
-PASS SW-fetched redirect to other-origin out-scope.
-PASS SW-fetched redirect to other-origin in-scope.
-PASS Redirect to same-origin out-scope with opaque redirect response.
-PASS Redirect to same-origin same-scope with opaque redirect response.
-PASS Redirect to same-origin other-scope with opaque redirect response.
-PASS Redirect to other-origin out-scope with opaque redirect response.
-PASS Redirect to other-origin in-scope with opaque redirect response.
-PASS No location redirect response.
-PASS Redirect to same-origin out-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to same-origin same-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to same-origin other-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to other-origin out-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to other-origin in-scope with opaque redirect response which is passed through Cache.
-PASS No location redirect response via Cache.
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/outofblink-cors/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/outofblink-cors/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt
deleted file mode 100644
index f757823..0000000
--- a/third_party/WebKit/LayoutTests/platform/linux/virtual/outofblink-cors/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-This is a testharness.js-based test.
-PASS Normal redirect to same-origin scope.
-FAIL Normal redirect to same-origin scope with a hash fragment. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-FAIL Normal redirect to same-origin scope with different hash fragments. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref2"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-PASS Normal redirect to other-origin scope.
-PASS SW-fallbacked redirect to same-origin out-scope.
-PASS SW-fallbacked redirect to same-origin same-scope.
-FAIL SW-fallbacked redirect to same-origin same-scope with a hash fragment. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F#ref", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-FAIL SW-fallbacked redirect to same-origin same-scope with different hash fragments. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F%23ref2#ref", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref2"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F%23ref2", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-PASS SW-fallbacked redirect to same-origin other-scope.
-PASS SW-fallbacked redirect to other-origin out-scope.
-PASS SW-fallbacked redirect to other-origin in-scope.
-PASS SW-generated redirect to same-origin out-scope.
-FAIL SW-generated redirect to same-origin out-scope with a hash fragment. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F"]
-FAIL SW-generated redirect to same-origin out-scope with different hashfragments. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F%23ref2#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F%23ref2"]
-PASS SW-generated redirect to same-origin same-scope.
-PASS SW-generated redirect to same-origin other-scope.
-PASS SW-generated redirect to other-origin out-scope.
-PASS SW-generated redirect to other-origin in-scope.
-PASS SW-fetched redirect to same-origin out-scope.
-PASS SW-fetched redirect to same-origin same-scope.
-PASS SW-fetched redirect to same-origin other-scope.
-PASS SW-fetched redirect to other-origin out-scope.
-PASS SW-fetched redirect to other-origin in-scope.
-PASS Redirect to same-origin out-scope with opaque redirect response.
-PASS Redirect to same-origin same-scope with opaque redirect response.
-PASS Redirect to same-origin other-scope with opaque redirect response.
-PASS Redirect to other-origin out-scope with opaque redirect response.
-PASS Redirect to other-origin in-scope with opaque redirect response.
-PASS No location redirect response.
-PASS Redirect to same-origin out-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to same-origin same-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to same-origin other-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to other-origin out-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to other-origin in-scope with opaque redirect response which is passed through Cache.
-PASS No location redirect response via Cache.
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox-expected.txt
new file mode 100644
index 0000000..9ffb1cf
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+FAIL Flex assert_equals: expected "18px" but got "162px"
+FAIL Inline flex assert_equals: expected "18px" but got "162px"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display-expected.txt
new file mode 100644
index 0000000..fe9759b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display-expected.txt
@@ -0,0 +1,14 @@
+This is a testharness.js-based test.
+FAIL .table assert_equals: .table display expected "table" but got "block"
+FAIL .caption assert_equals: .caption display expected "table-caption" but got "block"
+FAIL .col assert_equals: .col display expected "table-column" but got "block"
+FAIL .tbody assert_equals: .tbody display expected "table-row-group" but got "block"
+FAIL .tr assert_equals: .tr display expected "table-row" but got "block"
+FAIL .td assert_equals: .td display expected "table-cell" but got "block"
+FAIL .li assert_equals: .li display expected "list-item" but got "block"
+FAIL .inline assert_equals: .inline display expected "inline" but got "block"
+FAIL .inline-block assert_equals: .inline-block display expected "inline-block" but got "block"
+FAIL .ruby assert_equals: .ruby display expected "inline" but got "block"
+FAIL .rt assert_equals: .rt width expected "29.3281px" but got "800px"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt
deleted file mode 100644
index f757823..0000000
--- a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/service-workers/service-worker/navigation-redirect.https-expected.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-This is a testharness.js-based test.
-PASS Normal redirect to same-origin scope.
-FAIL Normal redirect to same-origin scope with a hash fragment. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-FAIL Normal redirect to same-origin scope with different hash fragments. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref2"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-PASS Normal redirect to other-origin scope.
-PASS SW-fallbacked redirect to same-origin out-scope.
-PASS SW-fallbacked redirect to same-origin same-scope.
-FAIL SW-fallbacked redirect to same-origin same-scope with a hash fragment. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F#ref", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-FAIL SW-fallbacked redirect to same-origin same-scope with different hash fragments. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F%23ref2#ref", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?#ref2"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-scope1.py%3F%23ref2", "https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?"]
-PASS SW-fallbacked redirect to same-origin other-scope.
-PASS SW-fallbacked redirect to other-origin out-scope.
-PASS SW-fallbacked redirect to other-origin in-scope.
-PASS SW-generated redirect to same-origin out-scope.
-FAIL SW-generated redirect to same-origin out-scope with a hash fragment. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F"]
-FAIL SW-generated redirect to same-origin out-scope with different hashfragments. assert_object_equals: Intercepted URLs should match. property "0" expected ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F%23ref2#ref"] got ["https://web-platform.test:8444/service-workers/service-worker/resources/navigation-redirect-scope1.py?sw=gen&url=https%3A%2F%2Fweb-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Fnavigation-redirect-out-scope.py%3F%23ref2"]
-PASS SW-generated redirect to same-origin same-scope.
-PASS SW-generated redirect to same-origin other-scope.
-PASS SW-generated redirect to other-origin out-scope.
-PASS SW-generated redirect to other-origin in-scope.
-PASS SW-fetched redirect to same-origin out-scope.
-PASS SW-fetched redirect to same-origin same-scope.
-PASS SW-fetched redirect to same-origin other-scope.
-PASS SW-fetched redirect to other-origin out-scope.
-PASS SW-fetched redirect to other-origin in-scope.
-PASS Redirect to same-origin out-scope with opaque redirect response.
-PASS Redirect to same-origin same-scope with opaque redirect response.
-PASS Redirect to same-origin other-scope with opaque redirect response.
-PASS Redirect to other-origin out-scope with opaque redirect response.
-PASS Redirect to other-origin in-scope with opaque redirect response.
-PASS No location redirect response.
-PASS Redirect to same-origin out-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to same-origin same-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to same-origin other-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to other-origin out-scope with opaque redirect response which is passed through Cache.
-PASS Redirect to other-origin in-scope with opaque redirect response which is passed through Cache.
-PASS No location redirect response via Cache.
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
index 9b60cd51..cfa7310 100644
--- a/third_party/WebKit/LayoutTests/platform/mac/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/mac/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox-expected.txt
new file mode 100644
index 0000000..ac11321
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/fieldset-flexbox-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+FAIL Flex assert_equals: expected "20px" but got "180px"
+FAIL Inline flex assert_equals: expected "20px" but got "180px"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display-expected.txt
new file mode 100644
index 0000000..e6626e3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-sans-fieldset-display-expected.txt
@@ -0,0 +1,14 @@
+This is a testharness.js-based test.
+FAIL .table assert_equals: .table display expected "table" but got "block"
+FAIL .caption assert_equals: .caption display expected "table-caption" but got "block"
+FAIL .col assert_equals: .col display expected "table-column" but got "block"
+FAIL .tbody assert_equals: .tbody display expected "table-row-group" but got "block"
+FAIL .tr assert_equals: .tr display expected "table-row" but got "block"
+FAIL .td assert_equals: .td display expected "table-cell" but got "block"
+FAIL .li assert_equals: .li display expected "list-item" but got "block"
+FAIL .inline assert_equals: .inline display expected "inline" but got "block"
+FAIL .inline-block assert_equals: .inline-block display expected "inline-block" but got "block"
+FAIL .ruby assert_equals: .ruby display expected "inline" but got "block"
+FAIL .rt assert_equals: .rt width expected "27px" but got "800px"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
index 0cd8260..03a08a20 100644
--- a/third_party/WebKit/LayoutTests/platform/win/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/win/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
index eef3365..29164d3 100644
--- a/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
+++ b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -4834,6 +4834,7 @@
     method createDTMFSender
     method createDataChannel
     method createOffer
+    method getConfiguration
     method getLocalStreams
     method getReceivers
     method getRemoteStreams
@@ -8370,6 +8371,7 @@
     method createDTMFSender
     method createDataChannel
     method createOffer
+    method getConfiguration
     method getLocalStreams
     method getReceivers
     method getRemoteStreams
diff --git a/third_party/WebKit/LayoutTests/virtual/sxg-origin-trial/http/tests/loading/sxg/fallback-to-another-sxg-expected.txt b/third_party/WebKit/LayoutTests/virtual/sxg-origin-trial/http/tests/loading/sxg/fallback-to-another-sxg-expected.txt
new file mode 100644
index 0000000..bb29c61
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/virtual/sxg-origin-trial/http/tests/loading/sxg/fallback-to-another-sxg-expected.txt
@@ -0,0 +1,13 @@
+main frame - didStartProvisionalLoadForFrame
+main frame - didCommitLoadForFrame
+main frame - didReceiveTitle: Fallback redirect to another SignedHTTPExchange
+main frame - didFinishDocumentLoadForFrame
+main frame - didHandleOnloadEventsForFrame
+main frame - didFinishLoadForFrame
+frame "sxg_iframe" - didReceiveTitle: 
+frame "sxg_iframe" - didStartProvisionalLoadForFrame
+frame "sxg_iframe" - didFailProvisionalLoadWithError
+This is a testharness.js-based test.
+FAIL Fallback redirect to another SignedHTTPExchange promise_test: Unhandled rejection with value: "timeout"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/virtual/sxg-origin-trial/http/tests/loading/sxg/sxg-expired-expected.txt b/third_party/WebKit/LayoutTests/virtual/sxg-origin-trial/http/tests/loading/sxg/sxg-expired-expected.txt
new file mode 100644
index 0000000..9bb86a8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/virtual/sxg-origin-trial/http/tests/loading/sxg/sxg-expired-expected.txt
@@ -0,0 +1,13 @@
+main frame - didStartProvisionalLoadForFrame
+main frame - didCommitLoadForFrame
+main frame - didReceiveTitle: Loading expired SignedHTTPExchange must fail
+main frame - didFinishDocumentLoadForFrame
+main frame - didHandleOnloadEventsForFrame
+main frame - didFinishLoadForFrame
+frame "sxg_iframe" - didReceiveTitle: 
+frame "sxg_iframe" - didStartProvisionalLoadForFrame
+frame "sxg_iframe" - didFailProvisionalLoadWithError
+This is a testharness.js-based test.
+FAIL Loading expired SignedHTTPExchange must fail promise_test: Unhandled rejection with value: "timeout"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/idlharness.https.window-expected.txt b/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/idlharness.https.window-expected.txt
index 05117e6e..cb68be6 100644
--- a/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/idlharness.https.window-expected.txt
+++ b/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/idlharness.https.window-expected.txt
@@ -33,7 +33,7 @@
 FAIL RTCPeerConnection interface: attribute connectionState assert_true: The prototype object must have a property "connectionState" expected true got false
 FAIL RTCPeerConnection interface: attribute canTrickleIceCandidates assert_true: The prototype object must have a property "canTrickleIceCandidates" expected true got false
 FAIL RTCPeerConnection interface: operation getDefaultIceServers() assert_own_property: interface object missing static operation expected property "getDefaultIceServers" missing
-FAIL RTCPeerConnection interface: operation getConfiguration() assert_own_property: interface prototype object missing non-static operation expected property "getConfiguration" missing
+PASS RTCPeerConnection interface: operation getConfiguration()
 PASS RTCPeerConnection interface: operation setConfiguration(RTCConfiguration)
 PASS RTCPeerConnection interface: operation close()
 PASS RTCPeerConnection interface: attribute onnegotiationneeded
@@ -85,7 +85,7 @@
 FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "connectionState" with the proper type assert_inherits: property "connectionState" not found in prototype chain
 FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "canTrickleIceCandidates" with the proper type assert_inherits: property "canTrickleIceCandidates" not found in prototype chain
 PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getDefaultIceServers()" with the proper type
-FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getConfiguration()" with the proper type assert_inherits: property "getConfiguration" not found in prototype chain
+PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "getConfiguration()" with the proper type
 PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "setConfiguration(RTCConfiguration)" with the proper type
 PASS RTCPeerConnection interface: calling setConfiguration(RTCConfiguration) on new RTCPeerConnection() with too few arguments must throw TypeError
 PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "close()" with the proper type
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
index a17e387..67a1da1 100644
--- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
@@ -5473,6 +5473,7 @@
     method createDTMFSender
     method createDataChannel
     method createOffer
+    method getConfiguration
     method getLocalStreams
     method getReceivers
     method getRemoteStreams
@@ -10224,6 +10225,7 @@
     method createDTMFSender
     method createDataChannel
     method createOffer
+    method getConfiguration
     method getLocalStreams
     method getReceivers
     method getRemoteStreams
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
index a5b0a5f..0c7a224 100644
--- a/third_party/android_deps/BUILD.gn
+++ b/third_party/android_deps/BUILD.gn
@@ -345,7 +345,7 @@
 }
 
 android_aar_prebuilt("com_google_android_gms_play_services_cast_java") {
-  aar_path = "libs/com_google_android_gms_play_services_cast/play-services-cast-15.0.1.aar"
+  aar_path = "libs/com_google_android_gms_play_services_cast/play-services-cast-16.0.1.aar"
   info_path = "libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info"
   deps = [
     ":com_android_support_mediarouter_v7_java",
@@ -358,7 +358,7 @@
 
 android_aar_prebuilt(
     "com_google_android_gms_play_services_cast_framework_java") {
-  aar_path = "libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-15.0.1.aar"
+  aar_path = "libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-16.0.1.aar"
   info_path = "libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info"
   deps = [
     ":com_android_support_mediarouter_v7_java",
@@ -402,7 +402,7 @@
 }
 
 android_aar_prebuilt("com_google_android_gms_play_services_instantapps_java") {
-  aar_path = "libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-15.0.1.aar"
+  aar_path = "libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-16.0.0.aar"
   info_path = "libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info"
   deps = [
     ":com_google_android_gms_play_services_base_java",
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_cast/LICENSE b/third_party/android_deps/libs/com_google_android_gms_play_services_cast/LICENSE
index 372f8a3..67b4049 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_cast/LICENSE
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_cast/LICENSE
@@ -151,8 +151,8 @@
 
 COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
 
-Copyright © 1991-2017 Unicode, Inc. All rights reserved.
-Distributed under the Terms of Use in http://www.unicode.org/copyright.html
+Copyright © 1991-2018 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of the Unicode data files and any associated documentation
@@ -535,6 +535,35 @@
  #    making a contribution to the database or code waives all rights to
  #    future claims in that contribution or in the TZ Database.
 
+6. Google double-conversion
+
+Copyright 2006-2011, the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+    * Neither the name of Google Inc. nor the names of its
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
 
 JSR 305:
 
@@ -568,103 +597,6 @@
 POSSIBILITY OF SUCH DAMAGE.
 
 
-PCRE:
-
-PCRE LICENCE
-------------
-
-PCRE is a library of functions to support regular expressions whose syntax
-and semantics are as close as possible to those of the Perl 5 language.
-
-Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
-specified below. The documentation for PCRE, supplied in the "doc"
-directory, is distributed under the same terms as the software itself. The data
-in the testdata directory is not copyrighted and is in the public domain.
-
-The basic library functions are written in C and are freestanding. Also
-included in the distribution is a set of C++ wrapper functions, and a
-just-in-time compiler that can be used to optimize pattern matching. These
-are both optional features that can be omitted when the library is built.
-
-
-THE BASIC LIBRARY FUNCTIONS
----------------------------
-
-Written by:       Philip Hazel
-Email local part: ph10
-Email domain:     cam.ac.uk
-
-University of Cambridge Computing Service,
-Cambridge, England.
-
-Copyright (c) 1997-2017 University of Cambridge
-All rights reserved.
-
-
-PCRE JUST-IN-TIME COMPILATION SUPPORT
--------------------------------------
-
-Written by:       Zoltan Herczeg
-Email local part: hzmester
-Emain domain:     freemail.hu
-
-Copyright(c) 2010-2017 Zoltan Herczeg
-All rights reserved.
-
-
-STACK-LESS JUST-IN-TIME COMPILER
---------------------------------
-
-Written by:       Zoltan Herczeg
-Email local part: hzmester
-Emain domain:     freemail.hu
-
-Copyright(c) 2009-2017 Zoltan Herczeg
-All rights reserved.
-
-
-THE C++ WRAPPER FUNCTIONS
--------------------------
-
-Contributed by:   Google Inc.
-
-Copyright (c) 2007-2012, Google Inc.
-All rights reserved.
-
-
-THE "BSD" LICENCE
------------------
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-
-    * Neither the name of the University of Cambridge nor the name of Google
-      Inc. nor the names of their contributors may be used to endorse or
-      promote products derived from this software without specific prior
-      written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-End
-
-
 Protobuf Nano:
 
 Copyright 2008, Google Inc.
@@ -702,51 +634,6 @@
 support library is itself covered by the above license.
 
 
-RE2:
-
-// Copyright (c) 2009 The RE2 Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//    * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//    * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//    * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-darts_clone:
-
-Copyright (c) 2008-2011, Susumu Yata
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
-- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
-- Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
 STL:
 
 SGI STL
@@ -1192,60 +1079,3 @@
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-
-
-zlib:
-
-(extracted from README, except for match.S)
-
-Copyright notice:
-
- (C) 1995-2013 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  jloup@gzip.org          madler@alumni.caltech.edu
-
-If you use the zlib library in a product, we would appreciate *not* receiving
-lengthy legal documents to sign.  The sources are provided for free but without
-warranty of any kind.  The library has been entirely written by Jean-loup
-Gailly and Mark Adler; it does not include third-party code.
-
-If you redistribute modified sources, we would appreciate that you include in
-the file ChangeLog history information documenting your changes.  Please read
-the FAQ for more information on the distribution of modified source versions.
-
-(extracted from match.S, for match.S only)
-
-Copyright (C) 1998, 2007 Brian Raiter <breadbox@muppetlabs.com>
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the author be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
-  claim that you wrote the original software. If you use this software
-  in a product, an acknowledgment in the product documentation would be
-  appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
-  misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_cast/README.chromium b/third_party/android_deps/libs/com_google_android_gms_play_services_cast/README.chromium
index 69c527f..8b31892 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_cast/README.chromium
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_cast/README.chromium
@@ -1,7 +1,7 @@
 Name: play-services-cast
 Short Name: play-services-cast
 URL: https://developers.google.com/android/guides/setup
-Version: 15.0.1
+Version: 16.0.1
 License: Android Software Development Kit License
 License File: LICENSE
 Security Critical: yes
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_cast/cipd.yaml b/third_party/android_deps/libs/com_google_android_gms_play_services_cast/cipd.yaml
index db8dde9..6cfab4f 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_cast/cipd.yaml
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_cast/cipd.yaml
@@ -3,8 +3,8 @@
 # found in the LICENSE file.
 
 # To create CIPD package run the following command.
-# cipd create --pkg-def cipd.yaml -tag version:15.0.1-cr0
+# cipd create --pkg-def cipd.yaml -tag version:16.0.1-cr0
 package: chromium/third_party/android_deps/libs/com_google_android_gms_play_services_cast
 description: play-services-cast
 data:
-- file: play-services-cast-15.0.1.aar
+- file: play-services-cast-16.0.1.aar
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info b/third_party/android_deps/libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info
index 234a11c..cbbded39 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info
@@ -8,6 +8,6 @@
 has_proguard_flags = false
 has_r_text_file = true
 is_manifest_empty = true
-resources = [ "res/drawable-hdpi-v4/cast_ic_notification_0.png", "res/drawable-hdpi-v4/cast_ic_notification_1.png", "res/drawable-hdpi-v4/cast_ic_notification_2.png", "res/drawable-hdpi-v4/cast_ic_notification_on.png", "res/drawable-mdpi-v4/cast_ic_notification_0.png", "res/drawable-mdpi-v4/cast_ic_notification_1.png", "res/drawable-mdpi-v4/cast_ic_notification_2.png", "res/drawable-mdpi-v4/cast_ic_notification_on.png", "res/drawable-xhdpi-v4/cast_ic_notification_0.png", "res/drawable-xhdpi-v4/cast_ic_notification_1.png", "res/drawable-xhdpi-v4/cast_ic_notification_2.png", "res/drawable-xhdpi-v4/cast_ic_notification_on.png", "res/drawable-xxhdpi-v4/cast_ic_notification_0.png", "res/drawable-xxhdpi-v4/cast_ic_notification_1.png", "res/drawable-xxhdpi-v4/cast_ic_notification_2.png", "res/drawable-xxhdpi-v4/cast_ic_notification_on.png", "res/drawable/cast_ic_notification_connecting.xml", "res/values-af/values.xml", "res/values-am/values.xml", "res/values-ar/values.xml", "res/values-az/values.xml", "res/values-b+sr+Latn/values.xml", "res/values-be/values.xml", "res/values-bg/values.xml", "res/values-bn/values.xml", "res/values-bs/values.xml", "res/values-ca/values.xml", "res/values-cs/values.xml", "res/values-da/values.xml", "res/values-de/values.xml", "res/values-el/values.xml", "res/values-en-rGB/values.xml", "res/values-es-rUS/values.xml", "res/values-es/values.xml", "res/values-et/values.xml", "res/values-eu/values.xml", "res/values-fa/values.xml", "res/values-fi/values.xml", "res/values-fr-rCA/values.xml", "res/values-fr/values.xml", "res/values-gl/values.xml", "res/values-gu/values.xml", "res/values-hi/values.xml", "res/values-hr/values.xml", "res/values-hu/values.xml", "res/values-hy/values.xml", "res/values-in/values.xml", "res/values-is/values.xml", "res/values-it/values.xml", "res/values-iw/values.xml", "res/values-ja/values.xml", "res/values-ka/values.xml", "res/values-kk/values.xml", "res/values-km/values.xml", "res/values-kn/values.xml", "res/values-ko/values.xml", "res/values-ky/values.xml", "res/values-lo/values.xml", "res/values-lt/values.xml", "res/values-lv/values.xml", "res/values-mk/values.xml", "res/values-ml/values.xml", "res/values-mn/values.xml", "res/values-mr/values.xml", "res/values-ms/values.xml", "res/values-my/values.xml", "res/values-nb/values.xml", "res/values-ne/values.xml", "res/values-nl/values.xml", "res/values-pa/values.xml", "res/values-pl/values.xml", "res/values-pt-rBR/values.xml", "res/values-pt-rPT/values.xml", "res/values-ro/values.xml", "res/values-ru/values.xml", "res/values-si/values.xml", "res/values-sk/values.xml", "res/values-sl/values.xml", "res/values-sq/values.xml", "res/values-sr/values.xml", "res/values-sv/values.xml", "res/values-sw/values.xml", "res/values-ta/values.xml", "res/values-te/values.xml", "res/values-th/values.xml", "res/values-tl/values.xml", "res/values-tr/values.xml", "res/values-uk/values.xml", "res/values-ur/values.xml", "res/values-uz/values.xml", "res/values-vi/values.xml", "res/values-zh-rCN/values.xml", "res/values-zh-rHK/values.xml", "res/values-zh-rTW/values.xml", "res/values-zu/values.xml", "res/values/values.xml" ]
+resources = [ "res/drawable-hdpi-v4/cast_ic_notification_0.png", "res/drawable-hdpi-v4/cast_ic_notification_1.png", "res/drawable-hdpi-v4/cast_ic_notification_2.png", "res/drawable-hdpi-v4/cast_ic_notification_on.png", "res/drawable-mdpi-v4/cast_ic_notification_0.png", "res/drawable-mdpi-v4/cast_ic_notification_1.png", "res/drawable-mdpi-v4/cast_ic_notification_2.png", "res/drawable-mdpi-v4/cast_ic_notification_on.png", "res/drawable-xhdpi-v4/cast_ic_notification_0.png", "res/drawable-xhdpi-v4/cast_ic_notification_1.png", "res/drawable-xhdpi-v4/cast_ic_notification_2.png", "res/drawable-xhdpi-v4/cast_ic_notification_on.png", "res/drawable-xxhdpi-v4/cast_ic_notification_0.png", "res/drawable-xxhdpi-v4/cast_ic_notification_1.png", "res/drawable-xxhdpi-v4/cast_ic_notification_2.png", "res/drawable-xxhdpi-v4/cast_ic_notification_on.png", "res/drawable/cast_ic_notification_connecting.xml", "res/values-af/values.xml", "res/values-am/values.xml", "res/values-ar/values.xml", "res/values-as/values.xml", "res/values-az/values.xml", "res/values-b+sr+Latn/values.xml", "res/values-be/values.xml", "res/values-bg/values.xml", "res/values-bn/values.xml", "res/values-bs/values.xml", "res/values-ca/values.xml", "res/values-cs/values.xml", "res/values-da/values.xml", "res/values-de/values.xml", "res/values-el/values.xml", "res/values-en-rGB/values.xml", "res/values-es-rUS/values.xml", "res/values-es/values.xml", "res/values-et/values.xml", "res/values-eu/values.xml", "res/values-fa/values.xml", "res/values-fi/values.xml", "res/values-fr-rCA/values.xml", "res/values-fr/values.xml", "res/values-gl/values.xml", "res/values-gu/values.xml", "res/values-hi/values.xml", "res/values-hr/values.xml", "res/values-hu/values.xml", "res/values-hy/values.xml", "res/values-in/values.xml", "res/values-is/values.xml", "res/values-it/values.xml", "res/values-iw/values.xml", "res/values-ja/values.xml", "res/values-ka/values.xml", "res/values-kk/values.xml", "res/values-km/values.xml", "res/values-kn/values.xml", "res/values-ko/values.xml", "res/values-ky/values.xml", "res/values-lo/values.xml", "res/values-lt/values.xml", "res/values-lv/values.xml", "res/values-mk/values.xml", "res/values-ml/values.xml", "res/values-mn/values.xml", "res/values-mr/values.xml", "res/values-ms/values.xml", "res/values-my/values.xml", "res/values-nb/values.xml", "res/values-ne/values.xml", "res/values-nl/values.xml", "res/values-or/values.xml", "res/values-pa/values.xml", "res/values-pl/values.xml", "res/values-pt-rBR/values.xml", "res/values-pt-rPT/values.xml", "res/values-ro/values.xml", "res/values-ru/values.xml", "res/values-si/values.xml", "res/values-sk/values.xml", "res/values-sl/values.xml", "res/values-sq/values.xml", "res/values-sr/values.xml", "res/values-sv/values.xml", "res/values-sw/values.xml", "res/values-ta/values.xml", "res/values-te/values.xml", "res/values-th/values.xml", "res/values-tl/values.xml", "res/values-tr/values.xml", "res/values-uk/values.xml", "res/values-ur/values.xml", "res/values-uz/values.xml", "res/values-vi/values.xml", "res/values-zh-rCN/values.xml", "res/values-zh-rHK/values.xml", "res/values-zh-rTW/values.xml", "res/values-zu/values.xml", "res/values/values.xml" ]
 subjar_tuples = [  ]
 subjars = [  ]
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/LICENSE b/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/LICENSE
index 372f8a3..67b4049 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/LICENSE
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/LICENSE
@@ -151,8 +151,8 @@
 
 COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
 
-Copyright © 1991-2017 Unicode, Inc. All rights reserved.
-Distributed under the Terms of Use in http://www.unicode.org/copyright.html
+Copyright © 1991-2018 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of the Unicode data files and any associated documentation
@@ -535,6 +535,35 @@
  #    making a contribution to the database or code waives all rights to
  #    future claims in that contribution or in the TZ Database.
 
+6. Google double-conversion
+
+Copyright 2006-2011, the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+    * Neither the name of Google Inc. nor the names of its
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
 
 JSR 305:
 
@@ -568,103 +597,6 @@
 POSSIBILITY OF SUCH DAMAGE.
 
 
-PCRE:
-
-PCRE LICENCE
-------------
-
-PCRE is a library of functions to support regular expressions whose syntax
-and semantics are as close as possible to those of the Perl 5 language.
-
-Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
-specified below. The documentation for PCRE, supplied in the "doc"
-directory, is distributed under the same terms as the software itself. The data
-in the testdata directory is not copyrighted and is in the public domain.
-
-The basic library functions are written in C and are freestanding. Also
-included in the distribution is a set of C++ wrapper functions, and a
-just-in-time compiler that can be used to optimize pattern matching. These
-are both optional features that can be omitted when the library is built.
-
-
-THE BASIC LIBRARY FUNCTIONS
----------------------------
-
-Written by:       Philip Hazel
-Email local part: ph10
-Email domain:     cam.ac.uk
-
-University of Cambridge Computing Service,
-Cambridge, England.
-
-Copyright (c) 1997-2017 University of Cambridge
-All rights reserved.
-
-
-PCRE JUST-IN-TIME COMPILATION SUPPORT
--------------------------------------
-
-Written by:       Zoltan Herczeg
-Email local part: hzmester
-Emain domain:     freemail.hu
-
-Copyright(c) 2010-2017 Zoltan Herczeg
-All rights reserved.
-
-
-STACK-LESS JUST-IN-TIME COMPILER
---------------------------------
-
-Written by:       Zoltan Herczeg
-Email local part: hzmester
-Emain domain:     freemail.hu
-
-Copyright(c) 2009-2017 Zoltan Herczeg
-All rights reserved.
-
-
-THE C++ WRAPPER FUNCTIONS
--------------------------
-
-Contributed by:   Google Inc.
-
-Copyright (c) 2007-2012, Google Inc.
-All rights reserved.
-
-
-THE "BSD" LICENCE
------------------
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-
-    * Neither the name of the University of Cambridge nor the name of Google
-      Inc. nor the names of their contributors may be used to endorse or
-      promote products derived from this software without specific prior
-      written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-End
-
-
 Protobuf Nano:
 
 Copyright 2008, Google Inc.
@@ -702,51 +634,6 @@
 support library is itself covered by the above license.
 
 
-RE2:
-
-// Copyright (c) 2009 The RE2 Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//    * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//    * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//    * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-darts_clone:
-
-Copyright (c) 2008-2011, Susumu Yata
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
-- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
-- Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
 STL:
 
 SGI STL
@@ -1192,60 +1079,3 @@
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-
-
-zlib:
-
-(extracted from README, except for match.S)
-
-Copyright notice:
-
- (C) 1995-2013 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  jloup@gzip.org          madler@alumni.caltech.edu
-
-If you use the zlib library in a product, we would appreciate *not* receiving
-lengthy legal documents to sign.  The sources are provided for free but without
-warranty of any kind.  The library has been entirely written by Jean-loup
-Gailly and Mark Adler; it does not include third-party code.
-
-If you redistribute modified sources, we would appreciate that you include in
-the file ChangeLog history information documenting your changes.  Please read
-the FAQ for more information on the distribution of modified source versions.
-
-(extracted from match.S, for match.S only)
-
-Copyright (C) 1998, 2007 Brian Raiter <breadbox@muppetlabs.com>
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the author be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
-  claim that you wrote the original software. If you use this software
-  in a product, an acknowledgment in the product documentation would be
-  appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
-  misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/README.chromium b/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/README.chromium
index ab26077c..abe6ce2 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/README.chromium
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/README.chromium
@@ -1,7 +1,7 @@
 Name: play-services-cast-framework
 Short Name: play-services-cast-framework
 URL: https://developers.google.com/android/guides/setup
-Version: 15.0.1
+Version: 16.0.1
 License: Android Software Development Kit License
 License File: LICENSE
 Security Critical: yes
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/cipd.yaml b/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/cipd.yaml
index bbeda56..d987898 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/cipd.yaml
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/cipd.yaml
@@ -3,8 +3,8 @@
 # found in the LICENSE file.
 
 # To create CIPD package run the following command.
-# cipd create --pkg-def cipd.yaml -tag version:15.0.1-cr0
+# cipd create --pkg-def cipd.yaml -tag version:16.0.1-cr0
 package: chromium/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework
 description: play-services-cast-framework
 data:
-- file: play-services-cast-framework-15.0.1.aar
+- file: play-services-cast-framework-16.0.1.aar
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info b/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info
index a2a2d22..ab6e1e2 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info
@@ -8,6 +8,6 @@
 has_proguard_flags = true
 has_r_text_file = true
 is_manifest_empty = false
-resources = [ "res/drawable-hdpi-v4/cast_abc_scrubber_control_off_mtrl_alpha.png", "res/drawable-hdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_000.png", "res/drawable-hdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_005.png", "res/drawable-hdpi-v4/cast_abc_scrubber_primary_mtrl_alpha.9.png", "res/drawable-hdpi-v4/cast_ic_stop_circle_filled_grey600.png", "res/drawable-hdpi-v4/cast_ic_stop_circle_filled_white.png", "res/drawable-hdpi-v4/quantum_ic_art_track_grey600_48.png", "res/drawable-hdpi-v4/quantum_ic_bigtop_updates_white_24.png", "res/drawable-hdpi-v4/quantum_ic_cast_connected_white_24.png", "res/drawable-hdpi-v4/quantum_ic_cast_white_36.png", "res/drawable-hdpi-v4/quantum_ic_clear_white_24.png", "res/drawable-hdpi-v4/quantum_ic_closed_caption_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_closed_caption_white_36.png", "res/drawable-hdpi-v4/quantum_ic_forward_10_white_24.png", "res/drawable-hdpi-v4/quantum_ic_forward_30_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_forward_30_white_24.png", "res/drawable-hdpi-v4/quantum_ic_forward_30_white_36.png", "res/drawable-hdpi-v4/quantum_ic_keyboard_arrow_down_white_36.png", "res/drawable-hdpi-v4/quantum_ic_pause_circle_filled_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_pause_circle_filled_white_36.png", "res/drawable-hdpi-v4/quantum_ic_pause_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_pause_grey600_48.png", "res/drawable-hdpi-v4/quantum_ic_pause_white_24.png", "res/drawable-hdpi-v4/quantum_ic_play_arrow_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_play_arrow_grey600_48.png", "res/drawable-hdpi-v4/quantum_ic_play_arrow_white_24.png", "res/drawable-hdpi-v4/quantum_ic_play_circle_filled_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_play_circle_filled_white_36.png", "res/drawable-hdpi-v4/quantum_ic_refresh_white_24.png", "res/drawable-hdpi-v4/quantum_ic_replay_10_white_24.png", "res/drawable-hdpi-v4/quantum_ic_replay_30_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_replay_30_white_24.png", "res/drawable-hdpi-v4/quantum_ic_replay_30_white_36.png", "res/drawable-hdpi-v4/quantum_ic_replay_white_24.png", "res/drawable-hdpi-v4/quantum_ic_skip_next_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_skip_next_white_24.png", "res/drawable-hdpi-v4/quantum_ic_skip_next_white_36.png", "res/drawable-hdpi-v4/quantum_ic_skip_previous_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_skip_previous_white_24.png", "res/drawable-hdpi-v4/quantum_ic_skip_previous_white_36.png", "res/drawable-hdpi-v4/quantum_ic_stop_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_stop_grey600_48.png", "res/drawable-hdpi-v4/quantum_ic_stop_white_24.png", "res/drawable-hdpi-v4/quantum_ic_volume_off_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_volume_off_white_36.png", "res/drawable-hdpi-v4/quantum_ic_volume_up_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_volume_up_white_36.png", "res/drawable-mdpi-v4/cast_abc_scrubber_control_off_mtrl_alpha.png", "res/drawable-mdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_000.png", "res/drawable-mdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_005.png", "res/drawable-mdpi-v4/cast_abc_scrubber_primary_mtrl_alpha.9.png", "res/drawable-mdpi-v4/cast_ic_stop_circle_filled_grey600.png", "res/drawable-mdpi-v4/cast_ic_stop_circle_filled_white.png", "res/drawable-mdpi-v4/quantum_ic_art_track_grey600_48.png", "res/drawable-mdpi-v4/quantum_ic_bigtop_updates_white_24.png", "res/drawable-mdpi-v4/quantum_ic_cast_connected_white_24.png", "res/drawable-mdpi-v4/quantum_ic_cast_white_36.png", "res/drawable-mdpi-v4/quantum_ic_clear_white_24.png", "res/drawable-mdpi-v4/quantum_ic_closed_caption_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_closed_caption_white_36.png", "res/drawable-mdpi-v4/quantum_ic_forward_10_white_24.png", "res/drawable-mdpi-v4/quantum_ic_forward_30_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_forward_30_white_24.png", "res/drawable-mdpi-v4/quantum_ic_forward_30_white_36.png", "res/drawable-mdpi-v4/quantum_ic_keyboard_arrow_down_white_36.png", "res/drawable-mdpi-v4/quantum_ic_pause_circle_filled_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_pause_circle_filled_white_36.png", "res/drawable-mdpi-v4/quantum_ic_pause_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_pause_grey600_48.png", "res/drawable-mdpi-v4/quantum_ic_pause_white_24.png", "res/drawable-mdpi-v4/quantum_ic_play_arrow_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_play_arrow_grey600_48.png", "res/drawable-mdpi-v4/quantum_ic_play_arrow_white_24.png", "res/drawable-mdpi-v4/quantum_ic_play_circle_filled_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_play_circle_filled_white_36.png", "res/drawable-mdpi-v4/quantum_ic_refresh_white_24.png", "res/drawable-mdpi-v4/quantum_ic_replay_10_white_24.png", "res/drawable-mdpi-v4/quantum_ic_replay_30_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_replay_30_white_24.png", "res/drawable-mdpi-v4/quantum_ic_replay_30_white_36.png", "res/drawable-mdpi-v4/quantum_ic_replay_white_24.png", "res/drawable-mdpi-v4/quantum_ic_skip_next_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_skip_next_white_24.png", "res/drawable-mdpi-v4/quantum_ic_skip_next_white_36.png", "res/drawable-mdpi-v4/quantum_ic_skip_previous_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_skip_previous_white_24.png", "res/drawable-mdpi-v4/quantum_ic_skip_previous_white_36.png", "res/drawable-mdpi-v4/quantum_ic_stop_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_stop_grey600_48.png", "res/drawable-mdpi-v4/quantum_ic_stop_white_24.png", "res/drawable-mdpi-v4/quantum_ic_volume_off_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_volume_off_white_36.png", "res/drawable-mdpi-v4/quantum_ic_volume_up_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_volume_up_white_36.png", "res/drawable-nodpi-v4/cast_album_art_placeholder.png", "res/drawable-nodpi-v4/cast_album_art_placeholder_large.png", "res/drawable-xhdpi-v4/cast_abc_scrubber_control_off_mtrl_alpha.png", "res/drawable-xhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_000.png", "res/drawable-xhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_005.png", "res/drawable-xhdpi-v4/cast_abc_scrubber_primary_mtrl_alpha.9.png", "res/drawable-xhdpi-v4/cast_ic_stop_circle_filled_grey600.png", "res/drawable-xhdpi-v4/cast_ic_stop_circle_filled_white.png", "res/drawable-xhdpi-v4/quantum_ic_art_track_grey600_48.png", "res/drawable-xhdpi-v4/quantum_ic_bigtop_updates_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_cast_connected_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_cast_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_clear_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_closed_caption_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_closed_caption_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_forward_10_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_forward_30_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_forward_30_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_forward_30_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_keyboard_arrow_down_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_pause_circle_filled_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_pause_circle_filled_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_pause_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_pause_grey600_48.png", "res/drawable-xhdpi-v4/quantum_ic_pause_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_play_arrow_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_play_arrow_grey600_48.png", "res/drawable-xhdpi-v4/quantum_ic_play_arrow_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_play_circle_filled_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_play_circle_filled_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_refresh_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_replay_10_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_replay_30_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_replay_30_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_replay_30_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_replay_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_skip_next_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_skip_next_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_skip_next_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_skip_previous_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_skip_previous_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_skip_previous_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_stop_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_stop_grey600_48.png", "res/drawable-xhdpi-v4/quantum_ic_stop_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_volume_off_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_volume_off_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_volume_up_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_volume_up_white_36.png", "res/drawable-xxhdpi-v4/cast_abc_scrubber_control_off_mtrl_alpha.png", "res/drawable-xxhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_000.png", "res/drawable-xxhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_005.png", "res/drawable-xxhdpi-v4/cast_abc_scrubber_primary_mtrl_alpha.9.png", "res/drawable-xxhdpi-v4/cast_ic_stop_circle_filled_grey600.png", "res/drawable-xxhdpi-v4/cast_ic_stop_circle_filled_white.png", "res/drawable-xxhdpi-v4/quantum_ic_art_track_grey600_48.png", "res/drawable-xxhdpi-v4/quantum_ic_bigtop_updates_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_cast_connected_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_cast_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_clear_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_closed_caption_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_closed_caption_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_forward_10_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_forward_30_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_forward_30_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_forward_30_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_keyboard_arrow_down_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_pause_circle_filled_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_pause_circle_filled_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_pause_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_pause_grey600_48.png", "res/drawable-xxhdpi-v4/quantum_ic_pause_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_play_arrow_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_play_arrow_grey600_48.png", "res/drawable-xxhdpi-v4/quantum_ic_play_arrow_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_play_circle_filled_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_play_circle_filled_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_refresh_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_replay_10_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_replay_30_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_replay_30_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_replay_30_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_replay_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_next_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_next_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_next_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_previous_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_previous_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_previous_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_stop_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_stop_grey600_48.png", "res/drawable-xxhdpi-v4/quantum_ic_stop_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_volume_off_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_volume_off_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_volume_up_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_volume_up_white_36.png", "res/drawable-xxxhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_000.png", "res/drawable-xxxhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_005.png", "res/drawable-xxxhdpi-v4/cast_ic_stop_circle_filled_grey600.png", "res/drawable-xxxhdpi-v4/cast_ic_stop_circle_filled_white.png", "res/drawable-xxxhdpi-v4/quantum_ic_art_track_grey600_48.png", "res/drawable-xxxhdpi-v4/quantum_ic_bigtop_updates_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_cast_connected_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_cast_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_clear_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_closed_caption_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_closed_caption_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_forward_10_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_forward_30_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_forward_30_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_forward_30_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_keyboard_arrow_down_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_pause_circle_filled_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_pause_circle_filled_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_pause_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_pause_grey600_48.png", "res/drawable-xxxhdpi-v4/quantum_ic_pause_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_play_arrow_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_play_arrow_grey600_48.png", "res/drawable-xxxhdpi-v4/quantum_ic_play_arrow_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_play_circle_filled_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_play_circle_filled_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_refresh_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_replay_10_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_replay_30_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_replay_30_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_replay_30_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_replay_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_next_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_next_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_next_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_previous_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_previous_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_previous_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_stop_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_stop_grey600_48.png", "res/drawable-xxxhdpi-v4/quantum_ic_stop_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_volume_off_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_volume_off_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_volume_up_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_volume_up_white_36.png", "res/drawable/cast_expanded_controller_actionbar_bg_gradient_light.xml", "res/drawable/cast_expanded_controller_bg_gradient_light.xml", "res/drawable/cast_expanded_controller_seekbar_thumb.xml", "res/drawable/cast_expanded_controller_seekbar_track.xml", "res/drawable/cast_ic_expanded_controller_closed_caption.xml", "res/drawable/cast_ic_expanded_controller_forward30.xml", "res/drawable/cast_ic_expanded_controller_mute.xml", "res/drawable/cast_ic_expanded_controller_pause.xml", "res/drawable/cast_ic_expanded_controller_play.xml", "res/drawable/cast_ic_expanded_controller_rewind30.xml", "res/drawable/cast_ic_expanded_controller_skip_next.xml", "res/drawable/cast_ic_expanded_controller_skip_previous.xml", "res/drawable/cast_ic_expanded_controller_stop.xml", "res/drawable/cast_ic_mini_controller_closed_caption.xml", "res/drawable/cast_ic_mini_controller_forward30.xml", "res/drawable/cast_ic_mini_controller_mute.xml", "res/drawable/cast_ic_mini_controller_pause.xml", "res/drawable/cast_ic_mini_controller_pause_large.xml", "res/drawable/cast_ic_mini_controller_play.xml", "res/drawable/cast_ic_mini_controller_play_large.xml", "res/drawable/cast_ic_mini_controller_rewind30.xml", "res/drawable/cast_ic_mini_controller_skip_next.xml", "res/drawable/cast_ic_mini_controller_skip_prev.xml", "res/drawable/cast_ic_mini_controller_stop.xml", "res/drawable/cast_ic_mini_controller_stop_large.xml", "res/drawable/cast_ic_notification_disconnect.xml", "res/drawable/cast_ic_notification_forward.xml", "res/drawable/cast_ic_notification_forward10.xml", "res/drawable/cast_ic_notification_forward30.xml", "res/drawable/cast_ic_notification_pause.xml", "res/drawable/cast_ic_notification_play.xml", "res/drawable/cast_ic_notification_rewind.xml", "res/drawable/cast_ic_notification_rewind10.xml", "res/drawable/cast_ic_notification_rewind30.xml", "res/drawable/cast_ic_notification_skip_next.xml", "res/drawable/cast_ic_notification_skip_prev.xml", "res/drawable/cast_ic_notification_small_icon.xml", "res/drawable/cast_ic_notification_stop_live_stream.xml", "res/drawable/cast_mini_controller_gradient_light.xml", "res/drawable/cast_mini_controller_progress_drawable.xml", "res/drawable/cast_skip_ad_label_border.xml", "res/layout/cast_expanded_controller_activity.xml", "res/layout/cast_help_text.xml", "res/layout/cast_intro_overlay.xml", "res/layout/cast_mini_controller.xml", "res/layout/cast_tracks_chooser_dialog_layout.xml", "res/layout/cast_tracks_chooser_dialog_row_layout.xml", "res/values-af/values.xml", "res/values-am/values.xml", "res/values-ar/values.xml", "res/values-az/values.xml", "res/values-b+sr+Latn/values.xml", "res/values-be/values.xml", "res/values-bg/values.xml", "res/values-bn/values.xml", "res/values-bs/values.xml", "res/values-ca/values.xml", "res/values-cs/values.xml", "res/values-da/values.xml", "res/values-de/values.xml", "res/values-el/values.xml", "res/values-en-rGB/values.xml", "res/values-es-rUS/values.xml", "res/values-es/values.xml", "res/values-et/values.xml", "res/values-eu/values.xml", "res/values-fa/values.xml", "res/values-fi/values.xml", "res/values-fr-rCA/values.xml", "res/values-fr/values.xml", "res/values-gl/values.xml", "res/values-gu/values.xml", "res/values-hi/values.xml", "res/values-hr/values.xml", "res/values-hu/values.xml", "res/values-hy/values.xml", "res/values-in/values.xml", "res/values-is/values.xml", "res/values-it/values.xml", "res/values-iw/values.xml", "res/values-ja/values.xml", "res/values-ka/values.xml", "res/values-kk/values.xml", "res/values-km/values.xml", "res/values-kn/values.xml", "res/values-ko/values.xml", "res/values-ky/values.xml", "res/values-land/values.xml", "res/values-lo/values.xml", "res/values-lt/values.xml", "res/values-lv/values.xml", "res/values-mk/values.xml", "res/values-ml/values.xml", "res/values-mn/values.xml", "res/values-mr/values.xml", "res/values-ms/values.xml", "res/values-my/values.xml", "res/values-nb/values.xml", "res/values-ne/values.xml", "res/values-nl/values.xml", "res/values-pa/values.xml", "res/values-pl/values.xml", "res/values-pt-rBR/values.xml", "res/values-pt-rPT/values.xml", "res/values-ro/values.xml", "res/values-ru/values.xml", "res/values-si/values.xml", "res/values-sk/values.xml", "res/values-sl/values.xml", "res/values-sq/values.xml", "res/values-sr/values.xml", "res/values-sv/values.xml", "res/values-sw/values.xml", "res/values-ta/values.xml", "res/values-te/values.xml", "res/values-th/values.xml", "res/values-tl/values.xml", "res/values-tr/values.xml", "res/values-uk/values.xml", "res/values-ur/values.xml", "res/values-uz/values.xml", "res/values-vi/values.xml", "res/values-zh-rCN/values.xml", "res/values-zh-rHK/values.xml", "res/values-zh-rTW/values.xml", "res/values-zu/values.xml", "res/values/values.xml" ]
+resources = [ "res/drawable-hdpi-v4/cast_abc_scrubber_control_off_mtrl_alpha.png", "res/drawable-hdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_000.png", "res/drawable-hdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_005.png", "res/drawable-hdpi-v4/cast_abc_scrubber_primary_mtrl_alpha.9.png", "res/drawable-hdpi-v4/cast_ic_stop_circle_filled_grey600.png", "res/drawable-hdpi-v4/cast_ic_stop_circle_filled_white.png", "res/drawable-hdpi-v4/quantum_ic_art_track_grey600_48.png", "res/drawable-hdpi-v4/quantum_ic_bigtop_updates_white_24.png", "res/drawable-hdpi-v4/quantum_ic_cast_connected_white_24.png", "res/drawable-hdpi-v4/quantum_ic_cast_white_36.png", "res/drawable-hdpi-v4/quantum_ic_clear_white_24.png", "res/drawable-hdpi-v4/quantum_ic_closed_caption_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_closed_caption_white_36.png", "res/drawable-hdpi-v4/quantum_ic_forward_10_white_24.png", "res/drawable-hdpi-v4/quantum_ic_forward_30_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_forward_30_white_24.png", "res/drawable-hdpi-v4/quantum_ic_forward_30_white_36.png", "res/drawable-hdpi-v4/quantum_ic_keyboard_arrow_down_white_36.png", "res/drawable-hdpi-v4/quantum_ic_pause_circle_filled_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_pause_circle_filled_white_36.png", "res/drawable-hdpi-v4/quantum_ic_pause_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_pause_grey600_48.png", "res/drawable-hdpi-v4/quantum_ic_pause_white_24.png", "res/drawable-hdpi-v4/quantum_ic_play_arrow_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_play_arrow_grey600_48.png", "res/drawable-hdpi-v4/quantum_ic_play_arrow_white_24.png", "res/drawable-hdpi-v4/quantum_ic_play_circle_filled_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_play_circle_filled_white_36.png", "res/drawable-hdpi-v4/quantum_ic_refresh_white_24.png", "res/drawable-hdpi-v4/quantum_ic_replay_10_white_24.png", "res/drawable-hdpi-v4/quantum_ic_replay_30_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_replay_30_white_24.png", "res/drawable-hdpi-v4/quantum_ic_replay_30_white_36.png", "res/drawable-hdpi-v4/quantum_ic_replay_white_24.png", "res/drawable-hdpi-v4/quantum_ic_skip_next_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_skip_next_white_24.png", "res/drawable-hdpi-v4/quantum_ic_skip_next_white_36.png", "res/drawable-hdpi-v4/quantum_ic_skip_previous_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_skip_previous_white_24.png", "res/drawable-hdpi-v4/quantum_ic_skip_previous_white_36.png", "res/drawable-hdpi-v4/quantum_ic_stop_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_stop_grey600_48.png", "res/drawable-hdpi-v4/quantum_ic_stop_white_24.png", "res/drawable-hdpi-v4/quantum_ic_volume_off_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_volume_off_white_36.png", "res/drawable-hdpi-v4/quantum_ic_volume_up_grey600_36.png", "res/drawable-hdpi-v4/quantum_ic_volume_up_white_36.png", "res/drawable-mdpi-v4/cast_abc_scrubber_control_off_mtrl_alpha.png", "res/drawable-mdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_000.png", "res/drawable-mdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_005.png", "res/drawable-mdpi-v4/cast_abc_scrubber_primary_mtrl_alpha.9.png", "res/drawable-mdpi-v4/cast_ic_stop_circle_filled_grey600.png", "res/drawable-mdpi-v4/cast_ic_stop_circle_filled_white.png", "res/drawable-mdpi-v4/quantum_ic_art_track_grey600_48.png", "res/drawable-mdpi-v4/quantum_ic_bigtop_updates_white_24.png", "res/drawable-mdpi-v4/quantum_ic_cast_connected_white_24.png", "res/drawable-mdpi-v4/quantum_ic_cast_white_36.png", "res/drawable-mdpi-v4/quantum_ic_clear_white_24.png", "res/drawable-mdpi-v4/quantum_ic_closed_caption_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_closed_caption_white_36.png", "res/drawable-mdpi-v4/quantum_ic_forward_10_white_24.png", "res/drawable-mdpi-v4/quantum_ic_forward_30_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_forward_30_white_24.png", "res/drawable-mdpi-v4/quantum_ic_forward_30_white_36.png", "res/drawable-mdpi-v4/quantum_ic_keyboard_arrow_down_white_36.png", "res/drawable-mdpi-v4/quantum_ic_pause_circle_filled_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_pause_circle_filled_white_36.png", "res/drawable-mdpi-v4/quantum_ic_pause_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_pause_grey600_48.png", "res/drawable-mdpi-v4/quantum_ic_pause_white_24.png", "res/drawable-mdpi-v4/quantum_ic_play_arrow_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_play_arrow_grey600_48.png", "res/drawable-mdpi-v4/quantum_ic_play_arrow_white_24.png", "res/drawable-mdpi-v4/quantum_ic_play_circle_filled_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_play_circle_filled_white_36.png", "res/drawable-mdpi-v4/quantum_ic_refresh_white_24.png", "res/drawable-mdpi-v4/quantum_ic_replay_10_white_24.png", "res/drawable-mdpi-v4/quantum_ic_replay_30_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_replay_30_white_24.png", "res/drawable-mdpi-v4/quantum_ic_replay_30_white_36.png", "res/drawable-mdpi-v4/quantum_ic_replay_white_24.png", "res/drawable-mdpi-v4/quantum_ic_skip_next_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_skip_next_white_24.png", "res/drawable-mdpi-v4/quantum_ic_skip_next_white_36.png", "res/drawable-mdpi-v4/quantum_ic_skip_previous_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_skip_previous_white_24.png", "res/drawable-mdpi-v4/quantum_ic_skip_previous_white_36.png", "res/drawable-mdpi-v4/quantum_ic_stop_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_stop_grey600_48.png", "res/drawable-mdpi-v4/quantum_ic_stop_white_24.png", "res/drawable-mdpi-v4/quantum_ic_volume_off_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_volume_off_white_36.png", "res/drawable-mdpi-v4/quantum_ic_volume_up_grey600_36.png", "res/drawable-mdpi-v4/quantum_ic_volume_up_white_36.png", "res/drawable-nodpi-v4/cast_album_art_placeholder.png", "res/drawable-nodpi-v4/cast_album_art_placeholder_large.png", "res/drawable-xhdpi-v4/cast_abc_scrubber_control_off_mtrl_alpha.png", "res/drawable-xhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_000.png", "res/drawable-xhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_005.png", "res/drawable-xhdpi-v4/cast_abc_scrubber_primary_mtrl_alpha.9.png", "res/drawable-xhdpi-v4/cast_ic_stop_circle_filled_grey600.png", "res/drawable-xhdpi-v4/cast_ic_stop_circle_filled_white.png", "res/drawable-xhdpi-v4/quantum_ic_art_track_grey600_48.png", "res/drawable-xhdpi-v4/quantum_ic_bigtop_updates_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_cast_connected_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_cast_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_clear_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_closed_caption_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_closed_caption_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_forward_10_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_forward_30_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_forward_30_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_forward_30_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_keyboard_arrow_down_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_pause_circle_filled_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_pause_circle_filled_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_pause_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_pause_grey600_48.png", "res/drawable-xhdpi-v4/quantum_ic_pause_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_play_arrow_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_play_arrow_grey600_48.png", "res/drawable-xhdpi-v4/quantum_ic_play_arrow_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_play_circle_filled_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_play_circle_filled_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_refresh_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_replay_10_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_replay_30_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_replay_30_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_replay_30_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_replay_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_skip_next_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_skip_next_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_skip_next_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_skip_previous_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_skip_previous_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_skip_previous_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_stop_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_stop_grey600_48.png", "res/drawable-xhdpi-v4/quantum_ic_stop_white_24.png", "res/drawable-xhdpi-v4/quantum_ic_volume_off_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_volume_off_white_36.png", "res/drawable-xhdpi-v4/quantum_ic_volume_up_grey600_36.png", "res/drawable-xhdpi-v4/quantum_ic_volume_up_white_36.png", "res/drawable-xxhdpi-v4/cast_abc_scrubber_control_off_mtrl_alpha.png", "res/drawable-xxhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_000.png", "res/drawable-xxhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_005.png", "res/drawable-xxhdpi-v4/cast_abc_scrubber_primary_mtrl_alpha.9.png", "res/drawable-xxhdpi-v4/cast_ic_stop_circle_filled_grey600.png", "res/drawable-xxhdpi-v4/cast_ic_stop_circle_filled_white.png", "res/drawable-xxhdpi-v4/quantum_ic_art_track_grey600_48.png", "res/drawable-xxhdpi-v4/quantum_ic_bigtop_updates_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_cast_connected_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_cast_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_clear_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_closed_caption_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_closed_caption_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_forward_10_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_forward_30_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_forward_30_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_forward_30_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_keyboard_arrow_down_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_pause_circle_filled_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_pause_circle_filled_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_pause_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_pause_grey600_48.png", "res/drawable-xxhdpi-v4/quantum_ic_pause_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_play_arrow_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_play_arrow_grey600_48.png", "res/drawable-xxhdpi-v4/quantum_ic_play_arrow_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_play_circle_filled_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_play_circle_filled_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_refresh_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_replay_10_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_replay_30_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_replay_30_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_replay_30_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_replay_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_next_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_next_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_next_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_previous_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_previous_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_skip_previous_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_stop_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_stop_grey600_48.png", "res/drawable-xxhdpi-v4/quantum_ic_stop_white_24.png", "res/drawable-xxhdpi-v4/quantum_ic_volume_off_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_volume_off_white_36.png", "res/drawable-xxhdpi-v4/quantum_ic_volume_up_grey600_36.png", "res/drawable-xxhdpi-v4/quantum_ic_volume_up_white_36.png", "res/drawable-xxxhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_000.png", "res/drawable-xxxhdpi-v4/cast_abc_scrubber_control_to_pressed_mtrl_005.png", "res/drawable-xxxhdpi-v4/cast_ic_stop_circle_filled_grey600.png", "res/drawable-xxxhdpi-v4/cast_ic_stop_circle_filled_white.png", "res/drawable-xxxhdpi-v4/quantum_ic_art_track_grey600_48.png", "res/drawable-xxxhdpi-v4/quantum_ic_bigtop_updates_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_cast_connected_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_cast_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_clear_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_closed_caption_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_closed_caption_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_forward_10_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_forward_30_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_forward_30_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_forward_30_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_keyboard_arrow_down_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_pause_circle_filled_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_pause_circle_filled_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_pause_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_pause_grey600_48.png", "res/drawable-xxxhdpi-v4/quantum_ic_pause_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_play_arrow_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_play_arrow_grey600_48.png", "res/drawable-xxxhdpi-v4/quantum_ic_play_arrow_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_play_circle_filled_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_play_circle_filled_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_refresh_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_replay_10_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_replay_30_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_replay_30_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_replay_30_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_replay_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_next_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_next_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_next_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_previous_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_previous_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_skip_previous_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_stop_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_stop_grey600_48.png", "res/drawable-xxxhdpi-v4/quantum_ic_stop_white_24.png", "res/drawable-xxxhdpi-v4/quantum_ic_volume_off_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_volume_off_white_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_volume_up_grey600_36.png", "res/drawable-xxxhdpi-v4/quantum_ic_volume_up_white_36.png", "res/drawable/cast_expanded_controller_actionbar_bg_gradient_light.xml", "res/drawable/cast_expanded_controller_bg_gradient_light.xml", "res/drawable/cast_expanded_controller_seekbar_thumb.xml", "res/drawable/cast_expanded_controller_seekbar_track.xml", "res/drawable/cast_ic_expanded_controller_closed_caption.xml", "res/drawable/cast_ic_expanded_controller_forward30.xml", "res/drawable/cast_ic_expanded_controller_mute.xml", "res/drawable/cast_ic_expanded_controller_pause.xml", "res/drawable/cast_ic_expanded_controller_play.xml", "res/drawable/cast_ic_expanded_controller_rewind30.xml", "res/drawable/cast_ic_expanded_controller_skip_next.xml", "res/drawable/cast_ic_expanded_controller_skip_previous.xml", "res/drawable/cast_ic_expanded_controller_stop.xml", "res/drawable/cast_ic_mini_controller_closed_caption.xml", "res/drawable/cast_ic_mini_controller_forward30.xml", "res/drawable/cast_ic_mini_controller_mute.xml", "res/drawable/cast_ic_mini_controller_pause.xml", "res/drawable/cast_ic_mini_controller_pause_large.xml", "res/drawable/cast_ic_mini_controller_play.xml", "res/drawable/cast_ic_mini_controller_play_large.xml", "res/drawable/cast_ic_mini_controller_rewind30.xml", "res/drawable/cast_ic_mini_controller_skip_next.xml", "res/drawable/cast_ic_mini_controller_skip_prev.xml", "res/drawable/cast_ic_mini_controller_stop.xml", "res/drawable/cast_ic_mini_controller_stop_large.xml", "res/drawable/cast_ic_notification_disconnect.xml", "res/drawable/cast_ic_notification_forward.xml", "res/drawable/cast_ic_notification_forward10.xml", "res/drawable/cast_ic_notification_forward30.xml", "res/drawable/cast_ic_notification_pause.xml", "res/drawable/cast_ic_notification_play.xml", "res/drawable/cast_ic_notification_rewind.xml", "res/drawable/cast_ic_notification_rewind10.xml", "res/drawable/cast_ic_notification_rewind30.xml", "res/drawable/cast_ic_notification_skip_next.xml", "res/drawable/cast_ic_notification_skip_prev.xml", "res/drawable/cast_ic_notification_small_icon.xml", "res/drawable/cast_ic_notification_stop_live_stream.xml", "res/drawable/cast_mini_controller_gradient_light.xml", "res/drawable/cast_mini_controller_progress_drawable.xml", "res/drawable/cast_skip_ad_label_border.xml", "res/layout/cast_expanded_controller_activity.xml", "res/layout/cast_help_text.xml", "res/layout/cast_intro_overlay.xml", "res/layout/cast_mini_controller.xml", "res/layout/cast_tracks_chooser_dialog_layout.xml", "res/layout/cast_tracks_chooser_dialog_row_layout.xml", "res/values-af/values.xml", "res/values-am/values.xml", "res/values-ar/values.xml", "res/values-as/values.xml", "res/values-az/values.xml", "res/values-b+sr+Latn/values.xml", "res/values-be/values.xml", "res/values-bg/values.xml", "res/values-bn/values.xml", "res/values-bs/values.xml", "res/values-ca/values.xml", "res/values-cs/values.xml", "res/values-da/values.xml", "res/values-de/values.xml", "res/values-el/values.xml", "res/values-en-rGB/values.xml", "res/values-es-rUS/values.xml", "res/values-es/values.xml", "res/values-et/values.xml", "res/values-eu/values.xml", "res/values-fa/values.xml", "res/values-fi/values.xml", "res/values-fr-rCA/values.xml", "res/values-fr/values.xml", "res/values-gl/values.xml", "res/values-gu/values.xml", "res/values-hi/values.xml", "res/values-hr/values.xml", "res/values-hu/values.xml", "res/values-hy/values.xml", "res/values-in/values.xml", "res/values-is/values.xml", "res/values-it/values.xml", "res/values-iw/values.xml", "res/values-ja/values.xml", "res/values-ka/values.xml", "res/values-kk/values.xml", "res/values-km/values.xml", "res/values-kn/values.xml", "res/values-ko/values.xml", "res/values-ky/values.xml", "res/values-land/values.xml", "res/values-lo/values.xml", "res/values-lt/values.xml", "res/values-lv/values.xml", "res/values-mk/values.xml", "res/values-ml/values.xml", "res/values-mn/values.xml", "res/values-mr/values.xml", "res/values-ms/values.xml", "res/values-my/values.xml", "res/values-nb/values.xml", "res/values-ne/values.xml", "res/values-nl/values.xml", "res/values-or/values.xml", "res/values-pa/values.xml", "res/values-pl/values.xml", "res/values-pt-rBR/values.xml", "res/values-pt-rPT/values.xml", "res/values-ro/values.xml", "res/values-ru/values.xml", "res/values-si/values.xml", "res/values-sk/values.xml", "res/values-sl/values.xml", "res/values-sq/values.xml", "res/values-sr/values.xml", "res/values-sv/values.xml", "res/values-sw/values.xml", "res/values-ta/values.xml", "res/values-te/values.xml", "res/values-th/values.xml", "res/values-tl/values.xml", "res/values-tr/values.xml", "res/values-uk/values.xml", "res/values-ur/values.xml", "res/values-uz/values.xml", "res/values-vi/values.xml", "res/values-zh-rCN/values.xml", "res/values-zh-rHK/values.xml", "res/values-zh-rTW/values.xml", "res/values-zu/values.xml", "res/values/values.xml" ]
 subjar_tuples = [  ]
 subjars = [  ]
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/LICENSE b/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/LICENSE
index 372f8a3..67b4049 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/LICENSE
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/LICENSE
@@ -151,8 +151,8 @@
 
 COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
 
-Copyright © 1991-2017 Unicode, Inc. All rights reserved.
-Distributed under the Terms of Use in http://www.unicode.org/copyright.html
+Copyright © 1991-2018 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of the Unicode data files and any associated documentation
@@ -535,6 +535,35 @@
  #    making a contribution to the database or code waives all rights to
  #    future claims in that contribution or in the TZ Database.
 
+6. Google double-conversion
+
+Copyright 2006-2011, the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+    * Neither the name of Google Inc. nor the names of its
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
 
 JSR 305:
 
@@ -568,103 +597,6 @@
 POSSIBILITY OF SUCH DAMAGE.
 
 
-PCRE:
-
-PCRE LICENCE
-------------
-
-PCRE is a library of functions to support regular expressions whose syntax
-and semantics are as close as possible to those of the Perl 5 language.
-
-Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
-specified below. The documentation for PCRE, supplied in the "doc"
-directory, is distributed under the same terms as the software itself. The data
-in the testdata directory is not copyrighted and is in the public domain.
-
-The basic library functions are written in C and are freestanding. Also
-included in the distribution is a set of C++ wrapper functions, and a
-just-in-time compiler that can be used to optimize pattern matching. These
-are both optional features that can be omitted when the library is built.
-
-
-THE BASIC LIBRARY FUNCTIONS
----------------------------
-
-Written by:       Philip Hazel
-Email local part: ph10
-Email domain:     cam.ac.uk
-
-University of Cambridge Computing Service,
-Cambridge, England.
-
-Copyright (c) 1997-2017 University of Cambridge
-All rights reserved.
-
-
-PCRE JUST-IN-TIME COMPILATION SUPPORT
--------------------------------------
-
-Written by:       Zoltan Herczeg
-Email local part: hzmester
-Emain domain:     freemail.hu
-
-Copyright(c) 2010-2017 Zoltan Herczeg
-All rights reserved.
-
-
-STACK-LESS JUST-IN-TIME COMPILER
---------------------------------
-
-Written by:       Zoltan Herczeg
-Email local part: hzmester
-Emain domain:     freemail.hu
-
-Copyright(c) 2009-2017 Zoltan Herczeg
-All rights reserved.
-
-
-THE C++ WRAPPER FUNCTIONS
--------------------------
-
-Contributed by:   Google Inc.
-
-Copyright (c) 2007-2012, Google Inc.
-All rights reserved.
-
-
-THE "BSD" LICENCE
------------------
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-
-    * Neither the name of the University of Cambridge nor the name of Google
-      Inc. nor the names of their contributors may be used to endorse or
-      promote products derived from this software without specific prior
-      written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-End
-
-
 Protobuf Nano:
 
 Copyright 2008, Google Inc.
@@ -702,51 +634,6 @@
 support library is itself covered by the above license.
 
 
-RE2:
-
-// Copyright (c) 2009 The RE2 Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//    * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//    * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//    * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-darts_clone:
-
-Copyright (c) 2008-2011, Susumu Yata
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
-- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
-- Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
 STL:
 
 SGI STL
@@ -1192,60 +1079,3 @@
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-
-
-zlib:
-
-(extracted from README, except for match.S)
-
-Copyright notice:
-
- (C) 1995-2013 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  jloup@gzip.org          madler@alumni.caltech.edu
-
-If you use the zlib library in a product, we would appreciate *not* receiving
-lengthy legal documents to sign.  The sources are provided for free but without
-warranty of any kind.  The library has been entirely written by Jean-loup
-Gailly and Mark Adler; it does not include third-party code.
-
-If you redistribute modified sources, we would appreciate that you include in
-the file ChangeLog history information documenting your changes.  Please read
-the FAQ for more information on the distribution of modified source versions.
-
-(extracted from match.S, for match.S only)
-
-Copyright (C) 1998, 2007 Brian Raiter <breadbox@muppetlabs.com>
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the author be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
-  claim that you wrote the original software. If you use this software
-  in a product, an acknowledgment in the product documentation would be
-  appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
-  misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/README.chromium b/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/README.chromium
index 3ed4fa4..7cda576e 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/README.chromium
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/README.chromium
@@ -1,7 +1,7 @@
 Name: play-services-instantapps
 Short Name: play-services-instantapps
 URL: https://developers.google.com/android/guides/setup
-Version: 15.0.1
+Version: 16.0.0
 License: Android Software Development Kit License
 License File: LICENSE
 Security Critical: yes
diff --git a/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/cipd.yaml b/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/cipd.yaml
index c3cd6ae..f386443 100644
--- a/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/cipd.yaml
+++ b/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/cipd.yaml
@@ -3,8 +3,8 @@
 # found in the LICENSE file.
 
 # To create CIPD package run the following command.
-# cipd create --pkg-def cipd.yaml -tag version:15.0.1-cr0
+# cipd create --pkg-def cipd.yaml -tag version:16.0.0-cr0
 package: chromium/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps
 description: play-services-instantapps
 data:
-- file: play-services-instantapps-15.0.1.aar
+- file: play-services-instantapps-16.0.0.aar
diff --git a/third_party/blink/common/BUILD.gn b/third_party/blink/common/BUILD.gn
index af37c59a2..92282dc 100644
--- a/third_party/blink/common/BUILD.gn
+++ b/third_party/blink/common/BUILD.gn
@@ -44,7 +44,6 @@
     "message_port/transferable_message_struct_traits.cc",
     "message_port/transferable_message_struct_traits.h",
     "mime_util/mime_util.cc",
-    "oom_intervention/oom_intervention_types.h",
     "origin_policy/origin_policy.cc",
     "origin_policy/origin_policy_parser.cc",
     "origin_policy/origin_policy_parser.h",
diff --git a/third_party/blink/common/oom_intervention/oom_intervention_types.h b/third_party/blink/common/oom_intervention/oom_intervention_types.h
deleted file mode 100644
index 9de433d6..0000000
--- a/third_party/blink/common/oom_intervention/oom_intervention_types.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_COMMON_OOM_INTERVENTION_OOM_INTERVENTION_TYPES_H_
-#define THIRD_PARTY_BLINK_COMMON_OOM_INTERVENTION_OOM_INTERVENTION_TYPES_H_
-
-#include <stdint.h>
-
-namespace blink {
-
-// The struct with renderer metrics that are used to detect OOMs. This is stored
-// in shared memory so that browser can read it even after the renderer dies.
-struct OomInterventionMetrics {
-  uint64_t current_private_footprint_kb;
-  uint64_t current_swap_kb;
-  uint64_t current_vm_size_kb;
-
-  // Stores the total of V8, BlinkGC and PartitionAlloc memory usage.
-  uint64_t current_blink_usage_kb;
-};
-
-}  // namespace blink
-
-#endif  // THIRD_PARTY_BLINK_COMMON_OOM_INTERVENTION_OOM_INTERVENTION_TYPES_H_
diff --git a/third_party/blink/public/BUILD.gn b/third_party/blink/public/BUILD.gn
index 31641c4..50d29a0 100644
--- a/third_party/blink/public/BUILD.gn
+++ b/third_party/blink/public/BUILD.gn
@@ -127,8 +127,6 @@
     "platform/mac/web_sandbox_support.h",
     "platform/mac/web_scrollbar_theme.h",
     "platform/modules/background_fetch/web_background_fetch_settled_fetch.h",
-    "platform/modules/device_orientation/web_device_motion_listener.h",
-    "platform/modules/device_orientation/web_device_orientation_listener.h",
     "platform/modules/indexeddb/web_idb_callbacks.h",
     "platform/modules/indexeddb/web_idb_cursor.h",
     "platform/modules/indexeddb/web_idb_database.h",
@@ -191,7 +189,6 @@
     "platform/scheduler/child/webthread_base.h",
     "platform/scheduler/renderer_process_type.h",
     "platform/scheduler/single_thread_idle_task_runner.h",
-    "platform/scheduler/web_main_thread_scheduler.h",
     "platform/scheduler/web_rail_mode_observer.h",
     "platform/scheduler/web_render_widget_scheduling_state.h",
     "platform/scheduler/web_resource_loading_task_runner_handle.h",
@@ -332,7 +329,6 @@
     "platform/web_rtc_answer_options.h",
     "platform/web_rtc_api_name.h",
     "platform/web_rtc_certificate_generator.h",
-    "platform/web_rtc_configuration.h",
     "platform/web_rtc_data_channel_handler.h",
     "platform/web_rtc_data_channel_handler_client.h",
     "platform/web_rtc_data_channel_init.h",
diff --git a/third_party/blink/public/common/BUILD.gn b/third_party/blink/public/common/BUILD.gn
index a333e84..83e1dd9 100644
--- a/third_party/blink/public/common/BUILD.gn
+++ b/third_party/blink/public/common/BUILD.gn
@@ -58,6 +58,7 @@
     "message_port/string_message_codec.h",
     "message_port/transferable_message.h",
     "mime_util/mime_util.h",
+    "oom_intervention/oom_intervention_types.h",
     "origin_policy/origin_policy.h",
     "origin_trials/origin_trial_policy.h",
     "origin_trials/trial_token.h",
diff --git a/third_party/blink/public/common/oom_intervention/oom_intervention_types.h b/third_party/blink/public/common/oom_intervention/oom_intervention_types.h
new file mode 100644
index 0000000..94e1f60
--- /dev/null
+++ b/third_party/blink/public/common/oom_intervention/oom_intervention_types.h
@@ -0,0 +1,34 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_OOM_INTERVENTION_OOM_INTERVENTION_TYPES_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_OOM_INTERVENTION_OOM_INTERVENTION_TYPES_H_
+
+#include <stdint.h>
+
+namespace blink {
+
+// The struct with renderer metrics that are used to detect OOMs. This is stored
+// in shared memory so that browser can read it even after the renderer dies.
+// Use uint64_t for this struct in order to keep the memory layout exactly the
+// same across architectures, since it is possible on Android to have browser in
+// the arm64 and renderer in the arm32.
+
+struct OomInterventionMetrics {
+  uint64_t current_private_footprint_kb;
+  uint64_t current_swap_kb;
+  uint64_t current_vm_size_kb;
+
+  // Stores the total of V8, BlinkGC and PartitionAlloc memory usage.
+  uint64_t current_blink_usage_kb;
+
+  // Indicates whether the crash was because of virtual address space OOM.
+  // This holds only 0 or 1 as a value but because of the reason stated above,
+  // uses uint64_t instead of boolean.
+  uint64_t virtual_memory_oom;
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_PUBLIC_COMMON_OOM_INTERVENTION_OOM_INTERVENTION_TYPES_H_
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn
index db937e58..1dd105f 100644
--- a/third_party/blink/public/mojom/BUILD.gn
+++ b/third_party/blink/public/mojom/BUILD.gn
@@ -19,6 +19,7 @@
     "clipboard/clipboard.mojom",
     "color_chooser/color_chooser.mojom",
     "cookie_store/cookie_store.mojom",
+    "crash/crash_memory_metrics_reporter.mojom",
     "dom_storage/session_storage_namespace.mojom",
     "dom_storage/storage_area.mojom",
     "dom_storage/storage_partition_service.mojom",
diff --git a/third_party/blink/public/mojom/crash/OWNERS b/third_party/blink/public/mojom/crash/OWNERS
new file mode 100644
index 0000000..faea832
--- /dev/null
+++ b/third_party/blink/public/mojom/crash/OWNERS
@@ -0,0 +1,5 @@
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
+
+yuzus@chromium.org
+
diff --git a/third_party/blink/public/mojom/crash/crash_memory_metrics_reporter.mojom b/third_party/blink/public/mojom/crash/crash_memory_metrics_reporter.mojom
new file mode 100644
index 0000000..ab0febc
--- /dev/null
+++ b/third_party/blink/public/mojom/crash/crash_memory_metrics_reporter.mojom
@@ -0,0 +1,16 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "mojo/public/mojom/base/shared_memory.mojom";
+
+// Renderer side interface for CrashMemoryMetricsReporter.
+interface CrashMemoryMetricsReporter {
+  // This method is called by the browser process, and sets shared memory that
+  // will be filled with renderer memory metrics and will be reported back to
+  // the browser process.
+  // TODO(crbug.com/873076): Use WritableSharedMemoryRegion when it's possible.
+  SetSharedMemory(mojo_base.mojom.UnsafeSharedMemoryRegion shared_metrics_buffer);
+};
diff --git a/third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom b/third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom
index 67c1693..72a51c29 100644
--- a/third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom
+++ b/third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom
@@ -21,6 +21,7 @@
   kErrorQueryTooLarge = 6,
   // TODO(cmumford): kErrorNotImplemented is deprecated. Remove use in code.
   kErrorNotImplemented = 7,
+  kErrorDuplicateOperation = 8,
   // Add new values here.
 };
 
@@ -98,7 +99,8 @@
       => (CacheKeysResult result);
 
   // Perform a batch of operations, used for PUT and DELETE operations.
-  Batch(array<BatchOperation> batch_operations) => (CacheStorageError result);
+  Batch(array<BatchOperation> batch_operations, bool fail_on_duplicates)
+      => (CacheStorageError result);
 };
 
 // Handles global CacheStorage methods, directly relates to methods available on
diff --git a/third_party/blink/public/platform/modules/device_orientation/OWNERS b/third_party/blink/public/platform/modules/device_orientation/OWNERS
deleted file mode 100644
index 7b1e4f2..0000000
--- a/third_party/blink/public/platform/modules/device_orientation/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-timvolodine@chromium.org
-
-# COMPONENT: Blink>Sensor>DeviceOrientation
-# TEAM: device-dev@chromium.org
diff --git a/third_party/blink/public/platform/modules/device_orientation/web_device_motion_listener.h b/third_party/blink/public/platform/modules/device_orientation/web_device_motion_listener.h
deleted file mode 100644
index ba9efd8..0000000
--- a/third_party/blink/public/platform/modules/device_orientation/web_device_motion_listener.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_DEVICE_ORIENTATION_WEB_DEVICE_MOTION_LISTENER_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_DEVICE_ORIENTATION_WEB_DEVICE_MOTION_LISTENER_H_
-
-#include "third_party/blink/public/platform/web_platform_event_listener.h"
-
-namespace blink {
-
-class DeviceMotionData;
-
-class WebDeviceMotionListener : public WebPlatformEventListener {
- public:
-  // This method is called every time new device motion data is available.
-  virtual void DidChangeDeviceMotion(DeviceMotionData*) = 0;
-
-  ~WebDeviceMotionListener() override = default;
-};
-
-}  // namespace blink
-
-#endif  // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_DEVICE_ORIENTATION_WEB_DEVICE_MOTION_LISTENER_H_
diff --git a/third_party/blink/public/platform/modules/device_orientation/web_device_orientation_listener.h b/third_party/blink/public/platform/modules/device_orientation/web_device_orientation_listener.h
deleted file mode 100644
index 58b75ab..0000000
--- a/third_party/blink/public/platform/modules/device_orientation/web_device_orientation_listener.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_DEVICE_ORIENTATION_WEB_DEVICE_ORIENTATION_LISTENER_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_DEVICE_ORIENTATION_WEB_DEVICE_ORIENTATION_LISTENER_H_
-
-#include "third_party/blink/public/platform/web_platform_event_listener.h"
-
-namespace blink {
-
-class DeviceOrientationData;
-
-class WebDeviceOrientationListener : public WebPlatformEventListener {
- public:
-  // This method is called every time new device orientation data is available.
-  virtual void DidChangeDeviceOrientation(DeviceOrientationData*) = 0;
-
-  ~WebDeviceOrientationListener() override = default;
-};
-
-}  // namespace blink
-
-#endif  // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_DEVICE_ORIENTATION_WEB_DEVICE_ORIENTATION_LISTENER_H_
diff --git a/third_party/blink/public/platform/oom_intervention.mojom b/third_party/blink/public/platform/oom_intervention.mojom
index 8eb710b..b6aca16 100644
--- a/third_party/blink/public/platform/oom_intervention.mojom
+++ b/third_party/blink/public/platform/oom_intervention.mojom
@@ -17,9 +17,8 @@
 // Browser side interface for OOM intervention. This interface is used to check
 // high memory usage in a renderer.
 interface OomInterventionHost {
-  // Called when a renderer detects high memory usage. |intervention_triggered|
-  // is set to true when the OOM intervention is activated in the renderer.
-  OnHighMemoryUsage(bool intervention_triggered);
+  // Called when a renderer detects high memory usage.
+  OnHighMemoryUsage();
 };
 
 // Arguments set by field trials to configure various thresholds for detecting
@@ -44,13 +43,12 @@
 // It monitors memory usage in renderer side to detect near-OOM situation.
 interface OomIntervention {
   // Starts monitoring memory usage in renderer side. When the renderer's
-  // memory usage exceeds |memory_workload_threshold| (in bytes) the renderer
-  // calls host->OnHighMemoryUsage(). The renderer also triggers OOM
-  // intervention when |trigger_intervention| is true. |shared_metrics_buffer|
-  // stores the OomInterventionMetrics struct in shared memory. The buffer is
-  // expected to be upated very often with memory metrics.
+  // memory usage exceeds |detection_args| memory thresholds (pmf, swap, virtual
+  // memory usage and blink memory usage), the renderer calls
+  // host->OnHighMemoryUsage(). The renderer also triggers OOM intervention when
+  // |renderer_pause_enabled| or |navigate_ads_enabled| is true.
   StartDetection(OomInterventionHost host,
-                 mojo_base.mojom.UnsafeSharedMemoryRegion shared_metrics_buffer,
                  DetectionArgs detection_args,
-                 bool trigger_intervention);
+                 bool renderer_pause_enabled,
+                 bool navigate_ads_enabled);
 };
diff --git a/third_party/blink/public/platform/web_rtc_api_name.h b/third_party/blink/public/platform/web_rtc_api_name.h
index d050740..2267be3 100644
--- a/third_party/blink/public/platform/web_rtc_api_name.h
+++ b/third_party/blink/public/platform/web_rtc_api_name.h
@@ -19,6 +19,7 @@
   kMediaStreamRecorder,
   kCanvasCaptureStream,
   kVideoCaptureStream,
+  kGetDisplayMedia,
   kInvalidName
 };
 
diff --git a/third_party/blink/public/platform/web_rtc_configuration.h b/third_party/blink/public/platform/web_rtc_configuration.h
deleted file mode 100644
index 2e7b75ed..0000000
--- a/third_party/blink/public/platform/web_rtc_configuration.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_CONFIGURATION_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_CONFIGURATION_H_
-
-#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_vector.h"
-#include "third_party/webrtc/api/peerconnectioninterface.h"
-
-#include <memory>
-
-namespace blink {
-
-// This is distinct from webrtc::SdpSemantics to add the kDefault option.
-enum class WebRTCSdpSemantics { kDefault, kPlanB, kUnifiedPlan };
-
-struct WebRTCConfiguration {
-  std::vector<webrtc::PeerConnectionInterface::IceServer> ice_servers;
-  webrtc::PeerConnectionInterface::IceTransportsType ice_transport_policy =
-      webrtc::PeerConnectionInterface::kAll;
-  webrtc::PeerConnectionInterface::BundlePolicy bundle_policy =
-      webrtc::PeerConnectionInterface::kBundlePolicyBalanced;
-  webrtc::PeerConnectionInterface::RtcpMuxPolicy rtcp_mux_policy =
-      webrtc::PeerConnectionInterface::kRtcpMuxPolicyRequire;
-  WebVector<rtc::scoped_refptr<rtc::RTCCertificate>> certificates;
-  int ice_candidate_pool_size = 0;
-  WebRTCSdpSemantics sdp_semantics = WebRTCSdpSemantics::kDefault;
-};
-
-}  // namespace blink
-
-#endif  // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_CONFIGURATION_H_
diff --git a/third_party/blink/public/platform/web_rtc_peer_connection_handler.h b/third_party/blink/public/platform/web_rtc_peer_connection_handler.h
index 682f4883..bba64b5 100644
--- a/third_party/blink/public/platform/web_rtc_peer_connection_handler.h
+++ b/third_party/blink/public/platform/web_rtc_peer_connection_handler.h
@@ -31,11 +31,11 @@
 #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_PEER_CONNECTION_HANDLER_H_
 #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_PEER_CONNECTION_HANDLER_H_
 
-#include "third_party/blink/public/platform/web_rtc_configuration.h"
 #include "third_party/blink/public/platform/web_rtc_ice_candidate.h"
 #include "third_party/blink/public/platform/web_rtc_rtp_transceiver.h"
 #include "third_party/blink/public/platform/web_rtc_stats.h"
 #include "third_party/blink/public/platform/web_vector.h"
+#include "third_party/webrtc/api/peerconnectioninterface.h"
 #include "third_party/webrtc/api/rtcerror.h"
 #include "third_party/webrtc/api/rtptransceiverinterface.h"
 
@@ -57,16 +57,15 @@
 class WebRTCStatsRequest;
 class WebRTCVoidRequest;
 class WebString;
-struct WebRTCConfiguration;
 struct WebRTCDataChannelInit;
 
 class WebRTCPeerConnectionHandler {
  public:
   virtual ~WebRTCPeerConnectionHandler() = default;
 
-  virtual bool Initialize(const WebRTCConfiguration&,
-                          const WebMediaConstraints&,
-                          WebRTCSdpSemantics original_sdp_semantics_value) = 0;
+  virtual bool Initialize(
+      const webrtc::PeerConnectionInterface::RTCConfiguration&,
+      const WebMediaConstraints&) = 0;
 
   virtual void CreateOffer(const WebRTCSessionDescriptionRequest&,
                            const WebMediaConstraints&) = 0;
@@ -86,7 +85,10 @@
   virtual WebRTCSessionDescription CurrentRemoteDescription() = 0;
   virtual WebRTCSessionDescription PendingLocalDescription() = 0;
   virtual WebRTCSessionDescription PendingRemoteDescription() = 0;
-  virtual webrtc::RTCErrorType SetConfiguration(const WebRTCConfiguration&) = 0;
+  virtual const webrtc::PeerConnectionInterface::RTCConfiguration&
+  GetConfiguration() const = 0;
+  virtual webrtc::RTCErrorType SetConfiguration(
+      const webrtc::PeerConnectionInterface::RTCConfiguration&) = 0;
 
   // DEPRECATED
   virtual bool AddICECandidate(scoped_refptr<WebRTCICECandidate>) {
diff --git a/third_party/blink/public/web/web_ax_object.h b/third_party/blink/public/web/web_ax_object.h
index 88b229a..3758ff3 100644
--- a/third_party/blink/public/web/web_ax_object.h
+++ b/third_party/blink/public/web/web_ax_object.h
@@ -131,6 +131,7 @@
   BLINK_EXPORT void GetSparseAXAttributes(WebAXSparseAttributeClient&) const;
 
   BLINK_EXPORT bool IsAnchor() const;
+  BLINK_EXPORT bool IsAutofillAvailable() const;
   BLINK_EXPORT WebAXCheckedState CheckedState() const;
   BLINK_EXPORT bool IsCheckable() const;
   BLINK_EXPORT bool IsClickable() const;
diff --git a/third_party/blink/renderer/DEPS b/third_party/blink/renderer/DEPS
index 6f18593..803dd21 100644
--- a/third_party/blink/renderer/DEPS
+++ b/third_party/blink/renderer/DEPS
@@ -1,5 +1,6 @@
 include_rules = [
     "+base/auto_reset.h",
+    "+base/bit_cast.h",
     "+base/callback.h",
     "+base/callback_forward.h",
     "+base/containers/span.h",
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
index 3ce2910..a17d193e 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
@@ -58,6 +58,7 @@
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/core/inspector/console_message.h"
 #include "third_party/blink/renderer/core/inspector/main_thread_debugger.h"
+#include "third_party/blink/renderer/core/origin_trials/origin_trials.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/core/script/modulator.h"
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
@@ -505,6 +506,14 @@
   return false;
 }
 
+static bool WasmThreadsEnabledCallback(v8::Local<v8::Context> context) {
+  ExecutionContext* execution_context = ToExecutionContext(context);
+  if (!execution_context)
+    return false;
+
+  return OriginTrials::WebAssemblyThreadsEnabled(execution_context);
+}
+
 v8::Local<v8::Value> NewRangeException(v8::Isolate* isolate,
                                        const char* message) {
   return v8::Exception::RangeError(
@@ -634,6 +643,7 @@
   isolate->SetUseCounterCallback(&UseCounterCallback);
   isolate->SetWasmModuleCallback(WasmModuleOverride);
   isolate->SetWasmInstanceCallback(WasmInstanceOverride);
+  isolate->SetWasmThreadsEnabledCallback(WasmThreadsEnabledCallback);
   if (RuntimeEnabledFeatures::ModuleScriptsDynamicImportEnabled()) {
     isolate->SetHostImportModuleDynamicallyCallback(
         HostImportModuleDynamically);
diff --git a/third_party/blink/renderer/controller/BUILD.gn b/third_party/blink/renderer/controller/BUILD.gn
index 20d1994..c9f9a18 100644
--- a/third_party/blink/renderer/controller/BUILD.gn
+++ b/third_party/blink/renderer/controller/BUILD.gn
@@ -47,6 +47,8 @@
 
   if (is_android) {
     sources += [
+      "crash_memory_metrics_reporter_impl.cc",
+      "crash_memory_metrics_reporter_impl.h",
       "oom_intervention_impl.cc",
       "oom_intervention_impl.h",
     ]
diff --git a/third_party/blink/renderer/controller/blink_initializer.cc b/third_party/blink/renderer/controller/blink_initializer.cc
index 5b58c90..27ad5077 100644
--- a/third_party/blink/renderer/controller/blink_initializer.cc
+++ b/third_party/blink/renderer/controller/blink_initializer.cc
@@ -57,6 +57,7 @@
 #include "v8/include/v8.h"
 
 #if defined(OS_ANDROID)
+#include "third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.h"
 #include "third_party/blink/renderer/controller/oom_intervention_impl.h"
 #endif
 
@@ -165,6 +166,10 @@
   registry.AddInterface(
       ConvertToBaseCallback(CrossThreadBind(&OomInterventionImpl::Create)),
       main_thread->GetTaskRunner());
+
+  registry.AddInterface(ConvertToBaseCallback(CrossThreadBind(
+                            &CrashMemoryMetricsReporterImpl::Bind)),
+                        main_thread->GetTaskRunner());
 #endif
 
   registry.AddInterface(
diff --git a/third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.cc b/third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.cc
new file mode 100644
index 0000000..d7f1813
--- /dev/null
+++ b/third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.cc
@@ -0,0 +1,161 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.h"
+
+#include <ctype.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "base/metrics/histogram_macros.h"
+#include "mojo/public/cpp/bindings/strong_binding.h"
+#include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h"
+#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
+
+namespace blink {
+
+namespace {
+
+constexpr uint32_t kMaxLineSize = 4096;
+bool ReadFileContents(int fd, char contents[kMaxLineSize]) {
+  lseek(fd, 0, SEEK_SET);
+  int res = read(fd, contents, kMaxLineSize - 1);
+  if (res <= 0)
+    return false;
+  contents[res] = '\0';
+  return true;
+}
+
+// Since the measurement is done every second in background, optimizations are
+// in place to get just the metrics we need from the proc files. So, this
+// calculation exists here instead of using the cross-process memory-infra code.
+bool CalculateProcessMemoryFootprint(int statm_fd,
+                                     int status_fd,
+                                     uint64_t* private_footprint,
+                                     uint64_t* swap_footprint,
+                                     uint64_t* vm_size) {
+  // Get total resident and shared sizes from statm file.
+  static size_t page_size = getpagesize();
+  uint64_t resident_pages;
+  uint64_t shared_pages;
+  uint64_t vm_size_pages;
+  char line[kMaxLineSize];
+  if (!ReadFileContents(statm_fd, line))
+    return false;
+  int num_scanned = sscanf(line, "%" SCNu64 " %" SCNu64 " %" SCNu64,
+                           &vm_size_pages, &resident_pages, &shared_pages);
+  if (num_scanned != 3)
+    return false;
+
+  // Get swap size from status file. The format is: VmSwap :  10 kB.
+  if (!ReadFileContents(status_fd, line))
+    return false;
+  char* swap_line = strstr(line, "VmSwap");
+  if (!swap_line)
+    return false;
+  num_scanned = sscanf(swap_line, "VmSwap: %" SCNu64 " kB", swap_footprint);
+  if (num_scanned != 1)
+    return false;
+
+  *swap_footprint *= 1024;
+  *private_footprint =
+      (resident_pages - shared_pages) * page_size + *swap_footprint;
+  *vm_size = vm_size_pages * page_size;
+  return true;
+}
+
+// Roughly calculates amount of memory which is used to execute pages.
+uint64_t BlinkMemoryWorkloadCalculator() {
+  v8::Isolate* isolate = V8PerIsolateData::MainThreadIsolate();
+  DCHECK(isolate);
+  v8::HeapStatistics heap_statistics;
+  isolate->GetHeapStatistics(&heap_statistics);
+  // TODO: Add memory usage for worker threads.
+  size_t v8_size =
+      heap_statistics.total_heap_size() + heap_statistics.malloced_memory();
+  size_t blink_gc_size = ProcessHeap::TotalAllocatedObjectSize() +
+                         ProcessHeap::TotalMarkedObjectSize();
+  size_t partition_alloc_size = WTF::Partitions::TotalSizeOfCommittedPages();
+  return v8_size + blink_gc_size + partition_alloc_size;
+}
+}  // namespace
+
+// static
+void CrashMemoryMetricsReporterImpl::Bind(
+    mojom::blink::CrashMemoryMetricsReporterRequest request) {
+  // This should be called only once per process on RenderProcessWillLaunch.
+  DCHECK(!CrashMemoryMetricsReporterImpl::Instance().binding_.is_bound());
+  CrashMemoryMetricsReporterImpl::Instance().binding_.Bind(std::move(request));
+}
+
+CrashMemoryMetricsReporterImpl& CrashMemoryMetricsReporterImpl::Instance() {
+  DEFINE_STATIC_LOCAL(CrashMemoryMetricsReporterImpl,
+                      crash_memory_metrics_reporter_impl, ());
+  return crash_memory_metrics_reporter_impl;
+}
+
+CrashMemoryMetricsReporterImpl::CrashMemoryMetricsReporterImpl()
+    : binding_(this) {}
+
+CrashMemoryMetricsReporterImpl::~CrashMemoryMetricsReporterImpl() = default;
+
+void CrashMemoryMetricsReporterImpl::SetSharedMemory(
+    base::UnsafeSharedMemoryRegion shared_metrics_buffer) {
+  // This method should be called only once per process.
+  DCHECK(!shared_metrics_mapping_.IsValid());
+  shared_metrics_mapping_ = shared_metrics_buffer.Map();
+}
+
+void CrashMemoryMetricsReporterImpl::WriteIntoSharedMemory(
+    const OomInterventionMetrics& metrics) {
+  if (!shared_metrics_mapping_.IsValid())
+    return;
+  auto* metrics_shared =
+      shared_metrics_mapping_.GetMemoryAs<OomInterventionMetrics>();
+  memcpy(metrics_shared, &metrics, sizeof(OomInterventionMetrics));
+}
+
+void CrashMemoryMetricsReporterImpl::OnVirtualMemoryOOMCallback(
+    bool virtual_memory_oom) {
+  // If shared_metrics_mapping_ is not set, it means OnNoMemory happened before
+  // initializing render process host sets the shared memory.
+  if (!shared_metrics_mapping_.IsValid())
+    return;
+  // Else, we can send the virtual_memory_oom_oom bool.
+  OomInterventionMetrics metrics;
+  metrics.virtual_memory_oom = 1;  // true
+  WriteIntoSharedMemory(metrics);
+}
+
+OomInterventionMetrics
+CrashMemoryMetricsReporterImpl::GetCurrentMemoryMetrics() {
+  // This can only be called after ResetFileDescriptors().
+  DCHECK(statm_fd_.is_valid() && status_fd_.is_valid());
+
+  OomInterventionMetrics metrics = {};
+  metrics.current_blink_usage_kb = BlinkMemoryWorkloadCalculator() / 1024;
+  uint64_t private_footprint, swap, vm_size;
+  if (CalculateProcessMemoryFootprint(statm_fd_.get(), status_fd_.get(),
+                                      &private_footprint, &swap, &vm_size)) {
+    metrics.current_private_footprint_kb = private_footprint / 1024;
+    metrics.current_swap_kb = swap / 1024;
+    metrics.current_vm_size_kb = vm_size / 1024;
+  }
+  metrics.virtual_memory_oom = 0;  // false
+  return metrics;
+}
+
+bool CrashMemoryMetricsReporterImpl::ResetFileDiscriptors() {
+  // See https://goo.gl/KjWnZP For details about why we read these files from
+  // sandboxed renderer. Keep these files open when detection is enabled.
+  if (!statm_fd_.is_valid())
+    statm_fd_.reset(open("/proc/self/statm", O_RDONLY));
+  if (!status_fd_.is_valid())
+    status_fd_.reset(open("/proc/self/status", O_RDONLY));
+  return !statm_fd_.is_valid() || !status_fd_.is_valid();
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.h b/third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.h
new file mode 100644
index 0000000..060db1c
--- /dev/null
+++ b/third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.h
@@ -0,0 +1,55 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CONTROLLER_CRASH_MEMORY_METRICS_REPORTER_IMPL_H_
+#define THIRD_PARTY_BLINK_RENDERER_CONTROLLER_CRASH_MEMORY_METRICS_REPORTER_IMPL_H_
+
+#include "base/files/scoped_file.h"
+#include "mojo/public/cpp/bindings/binding.h"
+#include "third_party/blink/public/common/oom_intervention/oom_intervention_types.h"
+#include "third_party/blink/public/mojom/crash/crash_memory_metrics_reporter.mojom-blink.h"
+#include "third_party/blink/renderer/controller/controller_export.h"
+
+namespace blink {
+
+// Writes data about renderer into shared memory that will be read by browser.
+class CONTROLLER_EXPORT CrashMemoryMetricsReporterImpl
+    : public mojom::blink::CrashMemoryMetricsReporter {
+ public:
+  static CrashMemoryMetricsReporterImpl& Instance();
+  static void Bind(mojom::blink::CrashMemoryMetricsReporterRequest);
+
+  ~CrashMemoryMetricsReporterImpl() override;
+
+  // mojom::CrashMemoryMetricsReporter implementations:
+  void SetSharedMemory(
+      base::UnsafeSharedMemoryRegion shared_metrics_buffer) override;
+
+  void WriteIntoSharedMemory(const OomInterventionMetrics& metrics);
+
+  void OnVirtualMemoryOOMCallback(bool virtual_memory_oom);
+
+  // This function needs to be called after ResetFileDescriptors.
+  OomInterventionMetrics GetCurrentMemoryMetrics();
+
+  // This function resets statm_fd_ & status_fd_ to prepare for getting metrics.
+  bool ResetFileDiscriptors();
+
+ protected:
+  CrashMemoryMetricsReporterImpl();
+
+ private:
+  FRIEND_TEST_ALL_PREFIXES(OomInterventionImplTest, CalculateProcessFootprint);
+
+  base::WritableSharedMemoryMapping shared_metrics_mapping_;
+  mojo::Binding<mojom::blink::CrashMemoryMetricsReporter> binding_;
+
+  // The file descriptor to current process proc files. The files are kept open
+  // when detection is on to reduce measurement overhead.
+  base::ScopedFD statm_fd_;
+  base::ScopedFD status_fd_;
+};
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CONTROLLER_CRASH_MEMORY_METRICS_REPORTER_IMPL_H_
diff --git a/third_party/blink/renderer/controller/oom_intervention_impl.cc b/third_party/blink/renderer/controller/oom_intervention_impl.cc
index 139e8a2..49aa1563 100644
--- a/third_party/blink/renderer/controller/oom_intervention_impl.cc
+++ b/third_party/blink/renderer/controller/oom_intervention_impl.cc
@@ -4,15 +4,11 @@
 
 #include "third_party/blink/renderer/controller/oom_intervention_impl.h"
 
-#include <ctype.h>
-#include <fcntl.h>
-#include <unistd.h>
-
 #include "base/metrics/histogram_macros.h"
 #include "mojo/public/cpp/bindings/strong_binding.h"
 #include "third_party/blink/public/platform/platform.h"
-#include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.h"
+#include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/platform/web_task_runner.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
 
@@ -20,69 +16,6 @@
 
 namespace {
 
-constexpr uint32_t kMaxLineSize = 4096;
-bool ReadFileContents(int fd, char contents[kMaxLineSize]) {
-  lseek(fd, 0, SEEK_SET);
-  int res = read(fd, contents, kMaxLineSize - 1);
-  if (res <= 0)
-    return false;
-  contents[res] = '\0';
-  return true;
-}
-
-// Since the measurement is done every second in background, optimizations are
-// in place to get just the metrics we need from the proc files. So, this
-// calculation exists here instead of using the cross-process memory-infra code.
-bool CalculateProcessMemoryFootprint(int statm_fd,
-                                     int status_fd,
-                                     uint64_t* private_footprint,
-                                     uint64_t* swap_footprint,
-                                     uint64_t* vm_size) {
-  // Get total resident and shared sizes from statm file.
-  static size_t page_size = getpagesize();
-  uint64_t resident_pages;
-  uint64_t shared_pages;
-  uint64_t vm_size_pages;
-  char line[kMaxLineSize];
-  if (!ReadFileContents(statm_fd, line))
-    return false;
-  int num_scanned = sscanf(line, "%" SCNu64 " %" SCNu64 " %" SCNu64,
-                           &vm_size_pages, &resident_pages, &shared_pages);
-  if (num_scanned != 3)
-    return false;
-
-  // Get swap size from status file. The format is: VmSwap :  10 kB.
-  if (!ReadFileContents(status_fd, line))
-    return false;
-  char* swap_line = strstr(line, "VmSwap");
-  if (!swap_line)
-    return false;
-  num_scanned = sscanf(swap_line, "VmSwap: %" SCNu64 " kB", swap_footprint);
-  if (num_scanned != 1)
-    return false;
-
-  *swap_footprint *= 1024;
-  *private_footprint =
-      (resident_pages - shared_pages) * page_size + *swap_footprint;
-  *vm_size = vm_size_pages * page_size;
-  return true;
-}
-
-// Roughly caclculates amount of memory which is used to execute pages.
-uint64_t BlinkMemoryWorkloadCaculator() {
-  v8::Isolate* isolate = V8PerIsolateData::MainThreadIsolate();
-  DCHECK(isolate);
-  v8::HeapStatistics heap_statistics;
-  isolate->GetHeapStatistics(&heap_statistics);
-  // TODO: Add memory usage for worker threads.
-  size_t v8_size =
-      heap_statistics.total_heap_size() + heap_statistics.malloced_memory();
-  size_t blink_gc_size = ProcessHeap::TotalAllocatedObjectSize() +
-                         ProcessHeap::TotalMarkedObjectSize();
-  size_t partition_alloc_size = WTF::Partitions::TotalSizeOfCommittedPages();
-  return v8_size + blink_gc_size + partition_alloc_size;
-}
-
 // These values are persisted to logs. Entries should not be renumbered and
 // numeric values should never be reused.
 enum class RendererInterventionEnabledStatus {
@@ -114,52 +47,35 @@
 
 void OomInterventionImpl::StartDetection(
     mojom::blink::OomInterventionHostPtr host,
-    base::UnsafeSharedMemoryRegion shared_metrics_buffer,
     mojom::blink::DetectionArgsPtr detection_args,
-    bool trigger_intervention) {
+    bool renderer_pause_enabled,
+    bool navigate_ads_enabled) {
   host_ = std::move(host);
-  shared_metrics_buffer_ = shared_metrics_buffer.Map();
 
-  // See https://goo.gl/KjWnZP For details about why we read these files from
-  // sandboxed renderer. Keep these files open when detection is enabled.
-  if (!statm_fd_.is_valid())
-    statm_fd_.reset(open("/proc/self/statm", O_RDONLY));
-  if (!status_fd_.is_valid())
-    status_fd_.reset(open("/proc/self/status", O_RDONLY));
   // Disable intervention if we cannot get memory details of current process.
-  if (!statm_fd_.is_valid() || !status_fd_.is_valid()) {
+  if (CrashMemoryMetricsReporterImpl::Instance().ResetFileDiscriptors()) {
     RecordEnabledStatus(
         RendererInterventionEnabledStatus::kDisabledFailedMemoryMetricsFetch);
     return;
   }
   RecordEnabledStatus(
-      trigger_intervention
+      renderer_pause_enabled || navigate_ads_enabled
           ? RendererInterventionEnabledStatus::kTriggerEnabled
           : RendererInterventionEnabledStatus::kDetectionOnlyEnabled);
 
   detection_args_ = std::move(detection_args);
-  trigger_intervention_ = trigger_intervention;
+  renderer_pause_enabled_ = renderer_pause_enabled;
+  navigate_ads_enabled_ = navigate_ads_enabled;
 
   timer_.Start(TimeDelta(), TimeDelta::FromSeconds(1), FROM_HERE);
 }
 
 OomInterventionMetrics OomInterventionImpl::GetCurrentMemoryMetrics() {
-  OomInterventionMetrics metrics = {};
-  metrics.current_blink_usage_kb = BlinkMemoryWorkloadCaculator() / 1024;
-  uint64_t private_footprint, swap, vm_size;
-  if (CalculateProcessMemoryFootprint(statm_fd_.get(), status_fd_.get(),
-                                      &private_footprint, &swap, &vm_size)) {
-    metrics.current_private_footprint_kb = private_footprint / 1024;
-    metrics.current_swap_kb = swap / 1024;
-    metrics.current_vm_size_kb = vm_size / 1024;
-  }
-  return metrics;
+  return CrashMemoryMetricsReporterImpl::Instance().GetCurrentMemoryMetrics();
 }
 
 void OomInterventionImpl::Check(TimerBase*) {
   DCHECK(host_);
-  DCHECK(statm_fd_.is_valid());
-  DCHECK(status_fd_.is_valid());
 
   OomInterventionMetrics current_memory = GetCurrentMemoryMetrics();
   bool oom_detected = false;
@@ -178,19 +94,26 @@
                       detection_args_->virtual_memory_thresold;
 
   if (oom_detected) {
-    host_->OnHighMemoryUsage(trigger_intervention_);
+    if (navigate_ads_enabled_) {
+      for (const auto& page : Page::OrdinaryPages()) {
+        if (page->MainFrame()->IsLocalFrame()) {
+          ToLocalFrame(page->MainFrame())
+              ->GetDocument()
+              ->NavigateLocalAdsFrames();
+        }
+      }
+    }
 
-    if (trigger_intervention_) {
+    if (renderer_pause_enabled_) {
       // The ScopedPagePauser is destroyed when the intervention is declined and
       // mojo strong binding is disconnected.
       pauser_.reset(new ScopedPagePauser);
     }
+    host_->OnHighMemoryUsage();
     timer_.Stop();
   }
-
-  OomInterventionMetrics* metrics_shared =
-      static_cast<OomInterventionMetrics*>(shared_metrics_buffer_.memory());
-  memcpy(metrics_shared, &current_memory, sizeof(OomInterventionMetrics));
+  CrashMemoryMetricsReporterImpl::Instance().WriteIntoSharedMemory(
+      current_memory);
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/controller/oom_intervention_impl.h b/third_party/blink/renderer/controller/oom_intervention_impl.h
index 8227bf6..a2113ac2 100644
--- a/third_party/blink/renderer/controller/oom_intervention_impl.h
+++ b/third_party/blink/renderer/controller/oom_intervention_impl.h
@@ -6,9 +6,10 @@
 #define THIRD_PARTY_BLINK_RENDERER_CONTROLLER_OOM_INTERVENTION_IMPL_H_
 
 #include "base/files/scoped_file.h"
-#include "third_party/blink/common/oom_intervention/oom_intervention_types.h"
+#include "third_party/blink/public/common/oom_intervention/oom_intervention_types.h"
 #include "third_party/blink/public/platform/oom_intervention.mojom-blink.h"
 #include "third_party/blink/renderer/controller/controller_export.h"
+#include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/page/scoped_page_pauser.h"
 #include "third_party/blink/renderer/platform/timer.h"
 
@@ -28,13 +29,9 @@
 
   // mojom::blink::OomIntervention:
   void StartDetection(mojom::blink::OomInterventionHostPtr,
-                      base::UnsafeSharedMemoryRegion shared_metrics_buffer,
                       mojom::blink::DetectionArgsPtr detection_args,
-                      bool trigger_intervention) override;
-
- protected:
-  // Overridden by test.
-  virtual OomInterventionMetrics GetCurrentMemoryMetrics();
+                      bool renderer_pause_enabled,
+                      bool navigate_ads_enabled) override;
 
  private:
   FRIEND_TEST_ALL_PREFIXES(OomInterventionImplTest, DetectedAndDeclined);
@@ -42,19 +39,17 @@
   FRIEND_TEST_ALL_PREFIXES(OomInterventionImplTest, StopWatchingAfterDetection);
   FRIEND_TEST_ALL_PREFIXES(OomInterventionImplTest,
                            ContinueWatchingWithoutDetection);
+  FRIEND_TEST_ALL_PREFIXES(OomInterventionImplTest, V1DetectionAdsNavigation);
 
+  // Overridden by test.
+  virtual OomInterventionMetrics GetCurrentMemoryMetrics();
   void Check(TimerBase*);
 
-  // The file descriptor to current process proc files. The files are kept open
-  // when detection is on to reduce measurement overhead.
-  base::ScopedFD statm_fd_;
-  base::ScopedFD status_fd_;
-
   mojom::blink::DetectionArgsPtr detection_args_;
-  base::WritableSharedMemoryMapping shared_metrics_buffer_;
 
   mojom::blink::OomInterventionHostPtr host_;
-  bool trigger_intervention_ = false;
+  bool renderer_pause_enabled_ = false;
+  bool navigate_ads_enabled_ = false;
   TaskRunnerTimer<OomInterventionImpl> timer_;
   std::unique_ptr<ScopedPagePauser> pauser_;
 };
diff --git a/third_party/blink/renderer/controller/oom_intervention_impl_test.cc b/third_party/blink/renderer/controller/oom_intervention_impl_test.cc
index 3cc5976..874409ff 100644
--- a/third_party/blink/renderer/controller/oom_intervention_impl_test.cc
+++ b/third_party/blink/renderer/controller/oom_intervention_impl_test.cc
@@ -10,14 +10,18 @@
 #include "mojo/public/cpp/bindings/binding.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/common/oom_intervention/oom_intervention_types.h"
+#include "third_party/blink/public/common/oom_intervention/oom_intervention_types.h"
+#include "third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.h"
 #include "third_party/blink/renderer/core/exported/web_view_impl.h"
 #include "third_party/blink/renderer/core/frame/frame_test_helpers.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
+#include "third_party/blink/renderer/core/html/html_element.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/core/testing/dummy_page_holder.h"
+#include "third_party/blink/renderer/core/testing/sim/sim_request.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
+#include "third_party/blink/renderer/platform/testing/url_test_helpers.h"
 
 namespace blink {
 
@@ -34,7 +38,7 @@
       : binding_(this, std::move(request)) {}
   ~MockOomInterventionHost() override = default;
 
-  void OnHighMemoryUsage(bool intervention_triggered) override {}
+  void OnHighMemoryUsage() override {}
 
  private:
   mojo::Binding<mojom::blink::OomInterventionHost> binding_;
@@ -58,7 +62,7 @@
   OomInterventionMetrics GetCurrentMemoryMetrics() override {
     if (metrics_)
       return *metrics_;
-    return OomInterventionImpl::GetCurrentMemoryMetrics();
+    return CrashMemoryMetricsReporterImpl::Instance().GetCurrentMemoryMetrics();
   }
 
   std::unique_ptr<OomInterventionMetrics> metrics_;
@@ -73,13 +77,16 @@
   }
 
   Page* DetectOnceOnBlankPage() {
-    WebViewImpl* web_view = web_view_helper_.InitializeAndLoad("about::blank");
+    WebViewImpl* web_view = web_view_helper_.InitializeAndLoad("about:blank");
     Page* page = web_view->MainFrameImpl()->GetFrame()->GetPage();
     EXPECT_FALSE(page->Paused());
+    RunDetection(true, false);
+    return page;
+  }
+
+  void RunDetection(bool renderer_pause_enabled, bool navigate_ads_enabled) {
     mojom::blink::OomInterventionHostPtr host_ptr;
     MockOomInterventionHost mock_host(mojo::MakeRequest(&host_ptr));
-    base::UnsafeSharedMemoryRegion shm =
-        base::UnsafeSharedMemoryRegion::Create(sizeof(OomInterventionMetrics));
 
     mojom::blink::DetectionArgsPtr args(mojom::blink::DetectionArgs::New());
     args->blink_workload_threshold = kTestBlinkThreshold;
@@ -87,16 +94,15 @@
     args->swap_threshold = kTestSwapThreshold;
     args->virtual_memory_thresold = kTestVmSizeThreshold;
 
-    intervention_->StartDetection(std::move(host_ptr), std::move(shm),
-                                  std::move(args),
-                                  true /*trigger_intervention*/);
+    intervention_->StartDetection(std::move(host_ptr), std::move(args),
+                                  renderer_pause_enabled, navigate_ads_enabled);
     test::RunDelayedTasks(TimeDelta::FromSeconds(1));
-    return page;
   }
 
  protected:
   std::unique_ptr<MockOomInterventionImpl> intervention_;
   FrameTestHelpers::WebViewHelper web_view_helper_;
+  std::unique_ptr<SimRequest> main_resource_;
 };
 
 TEST_F(OomInterventionImplTest, NoDetectionOnBelowThreshold) {
@@ -227,25 +233,75 @@
   base::File status_file(status_path,
                          base::File::FLAG_OPEN | base::File::FLAG_READ);
 
-  intervention_->statm_fd_.reset(statm_file.TakePlatformFile());
-  intervention_->status_fd_.reset(status_file.TakePlatformFile());
+  CrashMemoryMetricsReporterImpl::Instance().statm_fd_.reset(
+      statm_file.TakePlatformFile());
+  CrashMemoryMetricsReporterImpl::Instance().status_fd_.reset(
+      status_file.TakePlatformFile());
 
   mojom::blink::OomInterventionHostPtr host_ptr;
   MockOomInterventionHost mock_host(mojo::MakeRequest(&host_ptr));
+  mojom::blink::DetectionArgsPtr args(mojom::blink::DetectionArgs::New());
+  intervention_->StartDetection(std::move(host_ptr), std::move(args),
+                                false /*renderer_pause_enabled*/,
+                                false /*navigate_ads_enabled*/);
+  // Create unsafe shared memory region to write metrics in reporter.
   base::UnsafeSharedMemoryRegion shm =
       base::UnsafeSharedMemoryRegion::Create(sizeof(OomInterventionMetrics));
-  mojom::blink::DetectionArgsPtr args(mojom::blink::DetectionArgs::New());
-  intervention_->StartDetection(std::move(host_ptr), std::move(shm),
-                                std::move(args),
-                                false /*trigger_intervention*/);
+  CrashMemoryMetricsReporterImpl::Instance().shared_metrics_mapping_ =
+      shm.Map();
+  EXPECT_TRUE(CrashMemoryMetricsReporterImpl::Instance()
+                  .shared_metrics_mapping_.IsValid());
 
   intervention_->Check(nullptr);
   OomInterventionMetrics* metrics = static_cast<OomInterventionMetrics*>(
-      intervention_->shared_metrics_buffer_.memory());
+      CrashMemoryMetricsReporterImpl::Instance()
+          .shared_metrics_mapping_.memory());
   EXPECT_EQ(expected_private_footprint_kb,
             metrics->current_private_footprint_kb);
   EXPECT_EQ(expected_swap_kb, metrics->current_swap_kb);
   EXPECT_EQ(expected_vm_size_kb, metrics->current_vm_size_kb);
 }
 
+// TODO(yuzus): Once OOPIF unit test infrastructure is ready, add a test case
+// with OOPIF enabled.
+TEST_F(OomInterventionImplTest, V1DetectionAdsNavigation) {
+  OomInterventionMetrics mock_metrics = {};
+  mock_metrics.current_blink_usage_kb = (kTestBlinkThreshold / 1024) - 1;
+  mock_metrics.current_private_footprint_kb = (kTestPMFThreshold / 1024) - 1;
+  mock_metrics.current_swap_kb = (kTestSwapThreshold / 1024) - 1;
+  // Set value more than the threshold to trigger intervention.
+  mock_metrics.current_vm_size_kb = (kTestVmSizeThreshold / 1024) + 1;
+  intervention_->SetMetrics(mock_metrics);
+
+  WebViewImpl* web_view = web_view_helper_.InitializeAndLoad("about:blank");
+  Page* page = web_view->MainFrameImpl()->GetFrame()->GetPage();
+
+  web_view->MainFrameImpl()
+      ->GetFrame()
+      ->GetDocument()
+      ->body()
+      ->SetInnerHTMLFromString(
+          "<iframe name='ad' src='data:text/html,'></iframe><iframe "
+          "name='non-ad' src='data:text/html,'>");
+
+  WebFrame* ad_iframe = web_view_helper_.LocalMainFrame()->FindFrameByName(
+      WebString::FromUTF8("ad"));
+  WebFrame* non_ad_iframe = web_view_helper_.LocalMainFrame()->FindFrameByName(
+      WebString::FromUTF8("non-ad"));
+
+  LocalFrame* local_adframe = ToLocalFrame(WebFrame::ToCoreFrame(*ad_iframe));
+  local_adframe->SetIsAdSubframe();
+  LocalFrame* local_non_adframe =
+      ToLocalFrame(WebFrame::ToCoreFrame(*non_ad_iframe));
+
+  EXPECT_TRUE(local_adframe->IsAdSubframe());
+  EXPECT_FALSE(local_non_adframe->IsAdSubframe());
+
+  RunDetection(true, true);
+
+  EXPECT_EQ(local_adframe->GetDocument()->Url().GetString(), "about:blank");
+  EXPECT_NE(local_non_adframe->GetDocument()->Url().GetString(), "about:blank");
+  EXPECT_TRUE(page->Paused());
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
index d42dd45..faa4016 100644
--- a/third_party/blink/renderer/core/BUILD.gn
+++ b/third_party/blink/renderer/core/BUILD.gn
@@ -31,6 +31,9 @@
   if (is_chromecast) {
     defines += [ "BLINK_MEDIA_LOG=LOG(INFO)" ]
   }
+  if (blink_animation_use_time_delta) {
+    defines += [ "BLINK_ANIMATION_USE_TIME_DELTA" ]
+  }
 }
 
 config("core_include_dirs") {
@@ -1690,6 +1693,7 @@
     "animation/animation_test.cc",
     "animation/animation_test_helper.cc",
     "animation/animation_test_helper.h",
+    "animation/animation_time_delta_test.cc",
     "animation/compositor_animations_test.cc",
     "animation/css/css_animations_test.cc",
     "animation/css/css_transition_data_test.cc",
@@ -2166,6 +2170,7 @@
     "timing/performance_observer_test.cc",
     "timing/performance_resource_timing_test.cc",
     "timing/performance_test.cc",
+    "timing/time_clamper_test.cc",
     "timing/window_performance_test.cc",
     "url/url_search_params_test.cc",
     "workers/dedicated_worker_test.cc",
@@ -2208,6 +2213,10 @@
   if (use_default_render_theme) {
     sources += [ "scroll/scrollbar_theme_aura_test.cc" ]
   }
+
+  if (blink_animation_use_time_delta) {
+    defines = [ "BLINK_ANIMATION_USE_TIME_DELTA" ]
+  }
 }
 
 jumbo_source_set("perf_tests") {
diff --git a/third_party/blink/renderer/core/accessibility/ax_object_cache.h b/third_party/blink/renderer/core/accessibility/ax_object_cache.h
index b651d386..c4d8565d 100644
--- a/third_party/blink/renderer/core/accessibility/ax_object_cache.h
+++ b/third_party/blink/renderer/core/accessibility/ax_object_cache.h
@@ -102,6 +102,7 @@
   virtual void HandleLoadComplete(Document*) = 0;
   virtual void HandleLayoutComplete(Document*) = 0;
   virtual void HandleClicked(Node*) = 0;
+  virtual void HandleAutofillStateChanged(Element*, bool) = 0;
 
   // Changes to virtual Accessibility Object Model nodes.
   virtual void HandleAttributeChanged(const QualifiedName& attr_name,
diff --git a/third_party/blink/renderer/core/animation/BUILD.gn b/third_party/blink/renderer/core/animation/BUILD.gn
index 79d77d4f..53c2402 100644
--- a/third_party/blink/renderer/core/animation/BUILD.gn
+++ b/third_party/blink/renderer/core/animation/BUILD.gn
@@ -25,6 +25,8 @@
     "animation_effect_owner.h",
     "animation_input_helpers.cc",
     "animation_input_helpers.h",
+    "animation_time_delta.cc",
+    "animation_time_delta.h",
     "animation_timeline.h",
     "basic_shape_interpolation_functions.cc",
     "basic_shape_interpolation_functions.h",
diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.cc b/third_party/blink/renderer/core/animation/animation_time_delta.cc
new file mode 100644
index 0000000..1b25469
--- /dev/null
+++ b/third_party/blink/renderer/core/animation/animation_time_delta.cc
@@ -0,0 +1,15 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/core/animation/animation_time_delta.h"
+
+namespace blink {
+
+#if !defined(BLINK_ANIMATION_USE_TIME_DELTA)
+std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time) {
+  return os << time.InSecondsF() << " s";
+}
+#endif
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.h b/third_party/blink/renderer/core/animation/animation_time_delta.h
new file mode 100644
index 0000000..1903c11
--- /dev/null
+++ b/third_party/blink/renderer/core/animation/animation_time_delta.h
@@ -0,0 +1,127 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_ANIMATION_TIME_DELTA_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_ANIMATION_TIME_DELTA_H_
+
+#include "third_party/blink/renderer/core/core_export.h"
+#include "third_party/blink/renderer/platform/wtf/allocator.h"
+
+#include <limits>
+#include <ostream>
+
+#if defined(BLINK_ANIMATION_USE_TIME_DELTA)
+#include "third_party/blink/renderer/platform/wtf/time.h"
+#endif
+
+namespace blink {
+
+// AnimationTimeDelta exists to ease the transition of Blink animations from
+// double-based time values to base::TimeDelta-based time values (see
+// http://crbug.com/737867.
+//
+// It represents a delta between two times, analogous to base::TimeDelta. It is
+// provided in two modes, based on a compiler flag. The first is the traditional
+// (and default) double mode, where time deltas are represented using seconds in
+// double-precision. The second mode uses base::TimeDelta to represent time
+// instead.
+
+#if !defined(BLINK_ANIMATION_USE_TIME_DELTA)
+
+// The double-based version of AnimationTimeDelta. Internally, time is stored as
+// double-precision seconds.
+//
+// This class is modelled on the API from base::TimeDelta, with a lot of
+// unnecessary methods stripped out.
+class CORE_EXPORT AnimationTimeDelta {
+  USING_FAST_MALLOC(AnimationTimeDelta);
+
+ public:
+  constexpr AnimationTimeDelta() : delta_(0) {}
+
+  static AnimationTimeDelta FromSecondsD(double time_s) {
+    DCHECK(!std::isnan(time_s));
+    return AnimationTimeDelta(time_s);
+  }
+  static AnimationTimeDelta FromMillisecondsD(double time_ms) {
+    DCHECK(!std::isnan(time_ms));
+    return AnimationTimeDelta(time_ms / 1000);
+  }
+
+  static constexpr AnimationTimeDelta Max() {
+    return AnimationTimeDelta(std::numeric_limits<double>::infinity());
+  }
+
+  double InSecondsF() const { return delta_; }
+  double InMillisecondsF() const { return delta_ * 1000; }
+
+  bool is_max() const {
+    return delta_ == std::numeric_limits<double>::infinity();
+  }
+  bool is_zero() const { return delta_ == 0; }
+
+  AnimationTimeDelta operator+(AnimationTimeDelta other) const {
+    return AnimationTimeDelta(delta_ + other.delta_);
+  }
+  AnimationTimeDelta& operator+=(AnimationTimeDelta other) {
+    return *this = (*this + other);
+  }
+  template <typename T>
+  AnimationTimeDelta operator*(T a) const {
+    return AnimationTimeDelta(delta_ * a);
+  }
+  template <typename V>
+  AnimationTimeDelta& operator*=(V a) {
+    return *this = (*this * a);
+  }
+
+ protected:
+  constexpr explicit AnimationTimeDelta(double delta) : delta_(delta) {}
+
+  // The time delta represented by this |AnimationTimeDelta|, in seconds. May be
+  // negative, in which case the end of the delta is before the start.
+  double delta_;
+};
+
+template <typename T>
+AnimationTimeDelta operator*(T a, AnimationTimeDelta td) {
+  return td * a;
+}
+
+// Comparison operators on AnimationTimeDelta.
+constexpr bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
+                                      const AnimationTimeDelta& rhs) {
+  return lhs.InSecondsF() == rhs.InSecondsF();
+}
+constexpr bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
+                                      const AnimationTimeDelta& rhs) {
+  return lhs.InSecondsF() != rhs.InSecondsF();
+}
+constexpr bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
+                                     const AnimationTimeDelta& rhs) {
+  return lhs.InSecondsF() > rhs.InSecondsF();
+}
+constexpr bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
+                                      const AnimationTimeDelta& rhs) {
+  return lhs.InSecondsF() >= rhs.InSecondsF();
+}
+constexpr bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
+                                      const AnimationTimeDelta& rhs) {
+  return lhs.InSecondsF() <= rhs.InSecondsF();
+}
+
+// Defined to allow DCHECK_EQ/etc to work with the class.
+CORE_EXPORT std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time);
+
+#else  // !defined(BLINK_ANIMATION_USE_TIME_DELTA)
+
+// When compiling in TimeDelta-based mode, AnimationTimeDelta is equivalent to
+// base::TimeDelta.
+using AnimationTimeDelta = TimeDelta;
+
+#endif
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_ANIMATION_TIME_DELTA_H_
diff --git a/third_party/blink/renderer/core/animation/animation_time_delta_test.cc b/third_party/blink/renderer/core/animation/animation_time_delta_test.cc
new file mode 100644
index 0000000..627b9b1
--- /dev/null
+++ b/third_party/blink/renderer/core/animation/animation_time_delta_test.cc
@@ -0,0 +1,91 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/core/animation/animation_time_delta.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+#include <limits>
+
+namespace blink {
+
+TEST(AnimationTimeDeltaTest, Construction) {
+  // The default constructor is a zero-length delta.
+  EXPECT_EQ(AnimationTimeDelta(), AnimationTimeDelta::FromSecondsD(0));
+  EXPECT_EQ(AnimationTimeDelta(), AnimationTimeDelta::FromMillisecondsD(0));
+
+  EXPECT_EQ(AnimationTimeDelta::FromSecondsD(5.5),
+            AnimationTimeDelta::FromMillisecondsD(5500));
+  EXPECT_EQ(AnimationTimeDelta::FromSecondsD(-2),
+            AnimationTimeDelta::FromMillisecondsD(-2000));
+}
+
+TEST(AnimationTimeDeltaTest, Conversion) {
+  AnimationTimeDelta delta = AnimationTimeDelta::FromSecondsD(5);
+  EXPECT_EQ(delta.InSecondsF(), 5);
+  EXPECT_EQ(delta.InMillisecondsF(), 5000);
+
+  delta = AnimationTimeDelta::FromMillisecondsD(1234);
+  EXPECT_EQ(delta.InSecondsF(), 1.234);
+  EXPECT_EQ(delta.InMillisecondsF(), 1234);
+}
+
+TEST(AnimationTimeDeltaTest, Max) {
+  AnimationTimeDelta max_delta = AnimationTimeDelta::Max();
+  EXPECT_TRUE(max_delta.is_max());
+  EXPECT_EQ(max_delta, AnimationTimeDelta::Max());
+  EXPECT_GT(max_delta, AnimationTimeDelta::FromSecondsD(365 * 24 * 60 * 60));
+
+  EXPECT_EQ(max_delta.InSecondsF(), std::numeric_limits<double>::infinity());
+  EXPECT_EQ(max_delta.InMillisecondsF(),
+            std::numeric_limits<double>::infinity());
+}
+
+TEST(AnimationTimeDeltaTest, Zero) {
+  EXPECT_TRUE(AnimationTimeDelta().is_zero());
+  EXPECT_TRUE(AnimationTimeDelta::FromSecondsD(0).is_zero());
+  EXPECT_TRUE(AnimationTimeDelta::FromMillisecondsD(0).is_zero());
+
+  EXPECT_FALSE(AnimationTimeDelta::FromSecondsD(54.5).is_zero());
+  EXPECT_FALSE(AnimationTimeDelta::FromSecondsD(-0.5).is_zero());
+  EXPECT_FALSE(AnimationTimeDelta::FromMillisecondsD(123.45).is_zero());
+}
+
+TEST(AnimationTimeDeltaTest, Computation) {
+  EXPECT_EQ(AnimationTimeDelta::FromSecondsD(4.5) +
+                AnimationTimeDelta::FromMillisecondsD(500),
+            AnimationTimeDelta::FromSecondsD(5));
+  EXPECT_EQ(AnimationTimeDelta::FromSecondsD(100) +
+                AnimationTimeDelta::FromMillisecondsD(-850),
+            AnimationTimeDelta::FromSecondsD(99.15));
+
+  EXPECT_EQ(AnimationTimeDelta::FromSecondsD(5) * 20,
+            AnimationTimeDelta::FromSecondsD(100));
+  EXPECT_EQ(AnimationTimeDelta::FromSecondsD(10) * 1.5,
+            AnimationTimeDelta::FromSecondsD(15));
+  EXPECT_EQ(AnimationTimeDelta::FromSecondsD(2.5) * -2,
+            AnimationTimeDelta::FromSecondsD(-5));
+
+  EXPECT_EQ(20 * AnimationTimeDelta::FromSecondsD(5),
+            AnimationTimeDelta::FromSecondsD(100));
+}
+
+TEST(AnimationTimeDeltaTest, Comparison) {
+  EXPECT_TRUE(AnimationTimeDelta::FromSecondsD(10) ==
+              AnimationTimeDelta::FromSecondsD(10));
+  EXPECT_TRUE(AnimationTimeDelta::FromSecondsD(10) !=
+              AnimationTimeDelta::FromSecondsD(50));
+  EXPECT_TRUE(AnimationTimeDelta::FromSecondsD(50) >
+              AnimationTimeDelta::FromSecondsD(49.999));
+  EXPECT_TRUE(AnimationTimeDelta::FromSecondsD(50) >=
+              AnimationTimeDelta::FromSecondsD(49.999));
+  EXPECT_TRUE(AnimationTimeDelta::FromSecondsD(50) >=
+              AnimationTimeDelta::FromSecondsD(50));
+  EXPECT_TRUE(AnimationTimeDelta::FromSecondsD(50) <=
+              AnimationTimeDelta::FromSecondsD(50));
+  EXPECT_TRUE(AnimationTimeDelta::FromSecondsD(50) <=
+              AnimationTimeDelta::FromSecondsD(100));
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/core/core.gni b/third_party/blink/renderer/core/core.gni
index 3b55bc8..1d9bdd1d7 100644
--- a/third_party/blink/renderer/core/core.gni
+++ b/third_party/blink/renderer/core/core.gni
@@ -125,3 +125,9 @@
   # support, for lower Windows build times.
   configs += [ "//third_party/blink/renderer/core:blink_core_pch" ]
 }
+
+declare_args() {
+  # Use base::TimeDelta to represent time in renderer/core/animations. See
+  # http://crbug.com/737867
+  blink_animation_use_time_delta = false
+}
diff --git a/third_party/blink/renderer/core/css/css_custom_property_declaration.h b/third_party/blink/renderer/core/css/css_custom_property_declaration.h
index 162d2cd..32d5722c 100644
--- a/third_party/blink/renderer/core/css/css_custom_property_declaration.h
+++ b/third_party/blink/renderer/core/css/css_custom_property_declaration.h
@@ -12,7 +12,7 @@
 
 namespace blink {
 
-class CSSCustomPropertyDeclaration : public CSSValue {
+class CORE_EXPORT CSSCustomPropertyDeclaration : public CSSValue {
  public:
   static CSSCustomPropertyDeclaration* Create(
       const AtomicString& name,
diff --git a/third_party/blink/renderer/core/css/property_registration.cc b/third_party/blink/renderer/core/css/property_registration.cc
index 9e7fe70..9c9d1f4 100644
--- a/third_party/blink/renderer/core/css/property_registration.cc
+++ b/third_party/blink/renderer/core/css/property_registration.cc
@@ -22,6 +22,16 @@
 
 namespace blink {
 
+PropertyRegistration* PropertyRegistration::Create(
+    const AtomicString& name,
+    const CSSSyntaxDescriptor& syntax,
+    bool inherits,
+    const CSSValue* initial,
+    scoped_refptr<CSSVariableData> initial_variable_data) {
+  return new PropertyRegistration(name, syntax, inherits, initial,
+                                  initial_variable_data);
+}
+
 PropertyRegistration::PropertyRegistration(
     const AtomicString& name,
     const CSSSyntaxDescriptor& syntax,
diff --git a/third_party/blink/renderer/core/css/property_registration.h b/third_party/blink/renderer/core/css/property_registration.h
index a6d1439..fb29166 100644
--- a/third_party/blink/renderer/core/css/property_registration.h
+++ b/third_party/blink/renderer/core/css/property_registration.h
@@ -29,6 +29,13 @@
                                const PropertyDescriptor&,
                                ExceptionState&);
 
+  static PropertyRegistration* Create(
+      const AtomicString& name,
+      const CSSSyntaxDescriptor&,
+      bool inherits,
+      const CSSValue* initial,
+      scoped_refptr<CSSVariableData> initial_variable_data);
+
   const CSSSyntaxDescriptor& Syntax() const { return syntax_; }
   bool Inherits() const { return inherits_; }
   const CSSValue* Initial() const { return initial_; }
diff --git a/third_party/blink/renderer/core/css/property_registry.h b/third_party/blink/renderer/core/css/property_registry.h
index 525e472f..4b76a74 100644
--- a/third_party/blink/renderer/core/css/property_registry.h
+++ b/third_party/blink/renderer/core/css/property_registry.h
@@ -11,7 +11,7 @@
 
 namespace blink {
 
-class PropertyRegistry : public GarbageCollected<PropertyRegistry> {
+class CORE_EXPORT PropertyRegistry : public GarbageCollected<PropertyRegistry> {
  public:
   static PropertyRegistry* Create() { return new PropertyRegistry(); }
 
diff --git a/third_party/blink/renderer/core/css/resolver/css_variable_resolver.cc b/third_party/blink/renderer/core/css/resolver/css_variable_resolver.cc
index b9cb5ae..9a54edd06 100644
--- a/third_party/blink/renderer/core/css/resolver/css_variable_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/css_variable_resolver.cc
@@ -387,14 +387,16 @@
     return;
 
   int variable_count = 0;
-  if (inherited_variables_) {
+  if (inherited_variables_ && inherited_variables_->NeedsResolution()) {
     for (auto& variable : inherited_variables_->data_)
       ValueForCustomProperty(variable.key);
+    inherited_variables_->ClearNeedsResolution();
     variable_count += inherited_variables_->data_.size();
   }
-  if (non_inherited_variables_) {
+  if (non_inherited_variables_ && non_inherited_variables_->NeedsResolution()) {
     for (auto& variable : non_inherited_variables_->data_)
       ValueForCustomProperty(variable.key);
+    non_inherited_variables_->ClearNeedsResolution();
     variable_count += non_inherited_variables_->data_.size();
   }
   INCREMENT_STYLE_STATS_COUNTER(state_.GetDocument().GetStyleEngine(),
diff --git a/third_party/blink/renderer/core/css/resolver/css_variable_resolver.h b/third_party/blink/renderer/core/css/resolver/css_variable_resolver.h
index 5fff98a..1155aca3 100644
--- a/third_party/blink/renderer/core/css/resolver/css_variable_resolver.h
+++ b/third_party/blink/renderer/core/css/resolver/css_variable_resolver.h
@@ -29,7 +29,7 @@
 class StyleNonInheritedVariables;
 class StyleResolverState;
 
-class CSSVariableResolver {
+class CORE_EXPORT CSSVariableResolver {
   STACK_ALLOCATED();
 
  public:
diff --git a/third_party/blink/renderer/core/css/resolver/css_variable_resolver_test.cc b/third_party/blink/renderer/core/css/resolver/css_variable_resolver_test.cc
index 6179efcd..64ef8988 100644
--- a/third_party/blink/renderer/core/css/resolver/css_variable_resolver_test.cc
+++ b/third_party/blink/renderer/core/css/resolver/css_variable_resolver_test.cc
@@ -2,7 +2,18 @@
 // 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/core/css/resolver/css_variable_resolver.h"
+#include "third_party/blink/renderer/core/css/css_custom_property_declaration.h"
+#include "third_party/blink/renderer/core/css/css_variable_reference_value.h"
 #include "third_party/blink/renderer/core/css/document_style_environment_variables.h"
+#include "third_party/blink/renderer/core/css/parser/css_parser_context.h"
+#include "third_party/blink/renderer/core/css/parser/css_tokenizer.h"
+#include "third_party/blink/renderer/core/css/parser/css_variable_parser.h"
+#include "third_party/blink/renderer/core/css/properties/css_property.h"
+#include "third_party/blink/renderer/core/css/properties/longhand.h"
+#include "third_party/blink/renderer/core/css/property_registration.h"
+#include "third_party/blink/renderer/core/css/property_registry.h"
+#include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
 #include "third_party/blink/renderer/core/css/style_engine.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/html/html_element.h"
@@ -48,6 +59,19 @@
         "</div>");
     GetDocument().View()->UpdateAllLifecyclePhases();
   }
+
+  const CSSCustomPropertyDeclaration* CreateCustomProperty(
+      const String& value) {
+    return CreateCustomProperty("--unused", value);
+  }
+
+  const CSSCustomPropertyDeclaration* CreateCustomProperty(
+      const AtomicString& name,
+      const String& value) {
+    const auto tokens = CSSTokenizer(value).TokenizeToEOF();
+    return CSSVariableParser::ParseDeclarationValue(
+        name, tokens, false, *CSSParserContext::Create(GetDocument()));
+  }
 };
 
 TEST_F(CSSVariableResolverTest, ParseEnvVariable_Missing_NestedVar) {
@@ -116,4 +140,141 @@
                             GetCSSPropertyBackgroundColor()));
 }
 
+TEST_F(CSSVariableResolverTest, NoResolutionWithoutVar) {
+  scoped_refptr<StyleInheritedVariables> inherited_variables =
+      StyleInheritedVariables::Create();
+  std::unique_ptr<StyleNonInheritedVariables> non_inherited_variables =
+      StyleNonInheritedVariables::Create();
+
+  EXPECT_FALSE(inherited_variables->NeedsResolution());
+  EXPECT_FALSE(non_inherited_variables->NeedsResolution());
+
+  const auto* prop = CreateCustomProperty("#fefefe");
+
+  inherited_variables->SetVariable("--prop", prop->Value());
+  non_inherited_variables->SetVariable("--prop", prop->Value());
+
+  EXPECT_FALSE(inherited_variables->NeedsResolution());
+  EXPECT_FALSE(non_inherited_variables->NeedsResolution());
+}
+
+TEST_F(CSSVariableResolverTest, VarNeedsResolution) {
+  scoped_refptr<StyleInheritedVariables> inherited_variables =
+      StyleInheritedVariables::Create();
+  std::unique_ptr<StyleNonInheritedVariables> non_inherited_variables =
+      StyleNonInheritedVariables::Create();
+
+  EXPECT_FALSE(inherited_variables->NeedsResolution());
+  EXPECT_FALSE(non_inherited_variables->NeedsResolution());
+
+  const auto* prop1 = CreateCustomProperty("var(--prop2)");
+  const auto* prop2 = CreateCustomProperty("#fefefe");
+
+  inherited_variables->SetVariable("--prop1", prop1->Value());
+  non_inherited_variables->SetVariable("--prop1", prop1->Value());
+
+  EXPECT_TRUE(inherited_variables->NeedsResolution());
+  EXPECT_TRUE(non_inherited_variables->NeedsResolution());
+
+  // While NeedsResolution() == true, add some properties without
+  // var()-references.
+  inherited_variables->SetVariable("--prop2", prop2->Value());
+  non_inherited_variables->SetVariable("--prop2", prop2->Value());
+
+  // We should still need resolution even after adding properties that don't
+  // have var-references.
+  EXPECT_TRUE(inherited_variables->NeedsResolution());
+  EXPECT_TRUE(non_inherited_variables->NeedsResolution());
+
+  inherited_variables->ClearNeedsResolution();
+  non_inherited_variables->ClearNeedsResolution();
+
+  EXPECT_FALSE(inherited_variables->NeedsResolution());
+  EXPECT_FALSE(non_inherited_variables->NeedsResolution());
+}
+
+TEST_F(CSSVariableResolverTest, UrlNeedsResolution) {
+  scoped_refptr<StyleInheritedVariables> inherited_variables =
+      StyleInheritedVariables::Create();
+  std::unique_ptr<StyleNonInheritedVariables> non_inherited_variables =
+      StyleNonInheritedVariables::Create();
+
+  EXPECT_FALSE(inherited_variables->NeedsResolution());
+  EXPECT_FALSE(non_inherited_variables->NeedsResolution());
+
+  const auto* prop = CreateCustomProperty("url(a)");
+
+  inherited_variables->SetVariable("--prop", prop->Value());
+  non_inherited_variables->SetVariable("--prop", prop->Value());
+
+  EXPECT_TRUE(inherited_variables->NeedsResolution());
+  EXPECT_TRUE(non_inherited_variables->NeedsResolution());
+}
+
+TEST_F(CSSVariableResolverTest, CopiedVariablesRetainNeedsResolution) {
+  scoped_refptr<StyleInheritedVariables> inherited_variables =
+      StyleInheritedVariables::Create();
+  std::unique_ptr<StyleNonInheritedVariables> non_inherited_variables =
+      StyleNonInheritedVariables::Create();
+
+  const auto* prop = CreateCustomProperty("var(--x)");
+
+  inherited_variables->SetVariable("--prop", prop->Value());
+  non_inherited_variables->SetVariable("--prop", prop->Value());
+
+  EXPECT_TRUE(inherited_variables->NeedsResolution());
+  EXPECT_TRUE(non_inherited_variables->NeedsResolution());
+  EXPECT_TRUE(inherited_variables->Copy()->NeedsResolution());
+  EXPECT_TRUE(non_inherited_variables->Clone()->NeedsResolution());
+
+  inherited_variables->ClearNeedsResolution();
+  non_inherited_variables->ClearNeedsResolution();
+
+  EXPECT_FALSE(inherited_variables->NeedsResolution());
+  EXPECT_FALSE(non_inherited_variables->NeedsResolution());
+  EXPECT_FALSE(inherited_variables->Copy()->NeedsResolution());
+  EXPECT_FALSE(non_inherited_variables->Clone()->NeedsResolution());
+}
+
+TEST_F(CSSVariableResolverTest, NeedsResolutionClearedByResolver) {
+  const ComputedStyle* initial = &ComputedStyle::InitialStyle();
+  StyleResolverState state(GetDocument(), nullptr, initial, initial);
+
+  scoped_refptr<ComputedStyle> style = ComputedStyle::Create();
+  style->InheritFrom(*initial);
+  state.SetStyle(std::move(style));
+
+  const auto* prop1 = CreateCustomProperty("--prop1", "var(--prop2)");
+  const auto* prop2 = CreateCustomProperty("--prop2", "#fefefe");
+  const auto* prop3 = CreateCustomProperty("--prop3", "var(--prop2)");
+
+  // Register prop3 to make it non-inherited.
+  CSSSyntaxDescriptor token_syntax("*");
+  String initial_value_str("foo");
+  const auto tokens = CSSTokenizer(initial_value_str).TokenizeToEOF();
+  const CSSParserContext* context = CSSParserContext::Create(GetDocument());
+  const CSSValue* initial_value =
+      token_syntax.Parse(CSSParserTokenRange(tokens), context, false);
+  ASSERT_TRUE(initial_value);
+  ASSERT_TRUE(initial_value->IsVariableReferenceValue());
+  PropertyRegistration* registration = PropertyRegistration::Create(
+      "--prop3", token_syntax, false, initial_value,
+      ToCSSVariableReferenceValue(*initial_value).VariableDataValue());
+  ASSERT_TRUE(GetDocument().GetPropertyRegistry());
+  GetDocument().GetPropertyRegistry()->RegisterProperty("--prop3",
+                                                        *registration);
+
+  ToLonghand(GetCSSPropertyVariable()).ApplyValue(state, *prop1);
+  ToLonghand(GetCSSPropertyVariable()).ApplyValue(state, *prop2);
+  ToLonghand(GetCSSPropertyVariable()).ApplyValue(state, *prop3);
+
+  EXPECT_TRUE(state.Style()->InheritedVariables()->NeedsResolution());
+  EXPECT_TRUE(state.Style()->NonInheritedVariables()->NeedsResolution());
+
+  CSSVariableResolver(state).ResolveVariableDefinitions();
+
+  EXPECT_FALSE(state.Style()->InheritedVariables()->NeedsResolution());
+  EXPECT_FALSE(state.Style()->NonInheritedVariables()->NeedsResolution());
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
index 2721c53..719dcd7a 100644
--- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -1713,7 +1713,7 @@
   if (apply_animations == kIncludeAnimations) {
     ApplyAnimatedCustomProperties(state);
   }
-  // TODO(leviw): stop recalculating every time
+
   CSSVariableResolver(state).ResolveVariableDefinitions();
 }
 
diff --git a/third_party/blink/renderer/core/css/style_engine_test.cc b/third_party/blink/renderer/core/css/style_engine_test.cc
index 2345863..f7cf4dd 100644
--- a/third_party/blink/renderer/core/css/style_engine_test.cc
+++ b/third_party/blink/renderer/core/css/style_engine_test.cc
@@ -87,14 +87,11 @@
 }
 
 TEST_F(StyleEngineTest, AnalyzedInject) {
-  // TODO(crbug.com/875805): src: local() lookups do not work in DummyPageHolder
-  // on platforms where out of process lookups are needed for src: local()
-  // lookups.
   GetDocument().body()->SetInnerHTMLFromString(R"HTML(
     <style>
      @font-face {
       font-family: 'Cool Font';
-      src: local(monospace);
+      src: url(dummy);
       font-weight: bold;
      }
      :root {
@@ -252,11 +249,10 @@
   font_face_parsed_sheet->ParseString(
       "@font-face {"
       " font-family: 'Cool Font';"
-      " src: local(monospace);"
+      " src: url(dummy);"
       " font-weight: bold;"
       " font-style: italic;"
-      "}"
-    );
+      "}");
   StyleSheetKey font_face_key("font_face");
   GetStyleEngine().InjectSheet(font_face_key, font_face_parsed_sheet,
                                WebDocument::kUserOrigin);
@@ -281,11 +277,10 @@
   style_element->SetInnerHTMLFromString(
       "@font-face {"
       " font-family: 'Cool Font';"
-      " src: local(monospace);"
+      " src: url(dummy);"
       " font-weight: normal;"
       " font-style: italic;"
-      "}"
-    );
+      "}");
   GetDocument().body()->AppendChild(style_element);
   GetDocument().View()->UpdateAllLifecyclePhases();
 
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index 926ee03..a2f4d6f 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -7478,6 +7478,22 @@
          scripted_animation_controller_->NextFrameHasPendingRAF();
 }
 
+void Document::NavigateLocalAdsFrames() {
+  // This navigates all the frames detected as an advertisement to about:blank.
+  DCHECK(frame_);
+  for (Frame* child = frame_->Tree().FirstChild(); child;
+       child = child->Tree().TraverseNext(frame_)) {
+    if (child->IsLocalFrame()) {
+      if (ToLocalFrame(child)->IsAdSubframe()) {
+        ToLocalFrame(child)->Navigate(
+            FrameLoadRequest(this, ResourceRequest(BlankURL())));
+      }
+    }
+    // TODO(yuzus): Once AdsTracker for remote frames is implemented and OOPIF
+    // is enabled on low-end devices, navigate remote ads as well.
+  }
+}
+
 SlotAssignmentEngine& Document::GetSlotAssignmentEngine() {
   if (!slot_assignment_engine_)
     slot_assignment_engine_ = SlotAssignmentEngine::Create();
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
index 54af198..4e085b6b 100644
--- a/third_party/blink/renderer/core/dom/document.h
+++ b/third_party/blink/renderer/core/dom/document.h
@@ -1434,6 +1434,7 @@
   StylePropertyMapReadOnly* ComputedStyleMap(Element*);
   void AddComputedStyleMapItem(Element*, StylePropertyMapReadOnly*);
   StylePropertyMapReadOnly* RemoveComputedStyleMapItem(Element*);
+  void NavigateLocalAdsFrames();
 
   SlotAssignmentEngine& GetSlotAssignmentEngine();
 
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
index 7738e64..c45f823 100644
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -3949,10 +3949,6 @@
   EnsureElementRareData().SetComputedStyle(std::move(style));
 }
 
-void Element::ClearComputedStyle() {
-  EnsureElementRareData().ClearComputedStyle();
-}
-
 AtomicString Element::ComputeInheritedLanguage() const {
   const Node* n = this;
   AtomicString value;
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h
index 049099e..e6f2d697 100644
--- a/third_party/blink/renderer/core/dom/element.h
+++ b/third_party/blink/renderer/core/dom/element.h
@@ -553,8 +553,6 @@
   bool ShouldStoreNonLayoutObjectComputedStyle(const ComputedStyle&) const;
   void StoreNonLayoutObjectComputedStyle(scoped_refptr<ComputedStyle>);
 
-  void ClearComputedStyle();
-
   // Methods for indicating the style is affected by dynamic updates (e.g.,
   // children changing, our position changing in our sibling list, etc.)
   bool StyleAffectedByEmpty() const {
diff --git a/third_party/blink/renderer/core/dom/layout_tree_builder.cc b/third_party/blink/renderer/core/dom/layout_tree_builder.cc
index ec2589e..ce8e332 100644
--- a/third_party/blink/renderer/core/dom/layout_tree_builder.cc
+++ b/third_party/blink/renderer/core/dom/layout_tree_builder.cc
@@ -131,7 +131,13 @@
 }
 
 ComputedStyle& LayoutTreeBuilderForElement::Style() const {
-  DCHECK(style_);
+  if (!style_) {
+    // TODO(futhark@chromium.org): this should never happen, but we currently
+    // have crashes in the wild because of this (https://crbug.com/875796).
+    // Please report if you ever end up here.
+    NOTREACHED();
+    style_ = node_->StyleForLayoutObject();
+  }
   return *style_;
 }
 
diff --git a/third_party/blink/renderer/core/editing/caret_display_item_client.cc b/third_party/blink/renderer/core/editing/caret_display_item_client.cc
index 02b2bb4..96a9490 100644
--- a/third_party/blink/renderer/core/editing/caret_display_item_client.cc
+++ b/third_party/blink/renderer/core/editing/caret_display_item_client.cc
@@ -143,7 +143,7 @@
   LayoutBlock* new_layout_block = CaretLayoutBlock(caret_position.AnchorNode());
   if (new_layout_block != layout_block_) {
     if (layout_block_)
-      layout_block_->SetMayNeedPaintInvalidation();
+      layout_block_->SetShouldCheckForPaintInvalidation();
     layout_block_ = new_layout_block;
     visual_rect_ = LayoutRect();
     if (new_layout_block) {
@@ -181,7 +181,7 @@
   }
 
   if (needs_paint_invalidation_)
-    new_layout_block->SetMayNeedPaintInvalidation();
+    new_layout_block->SetShouldCheckForPaintInvalidation();
 }
 
 void CaretDisplayItemClient::InvalidatePaint(
@@ -241,8 +241,7 @@
     // The caret may change paint offset without changing visual rect, and we
     // need to invalidate the display item client if the block is doing full
     // paint invalidation.
-    if (IsImmediateFullPaintInvalidationReason(
-            layout_block_->FullPaintInvalidationReason())) {
+    if (layout_block_->ShouldDoFullPaintInvalidation()) {
       object_invalidator.InvalidateDisplayItemClient(
           *this, PaintInvalidationReason::kCaret);
     }
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 0fd487c..3ea304f 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -480,7 +480,7 @@
   FrameRectsChanged();
 
   if (auto* layout_view = GetLayoutView())
-    layout_view->SetMayNeedPaintInvalidation();
+    layout_view->SetShouldCheckForPaintInvalidation();
 
   if (width_changed || height_changed) {
     ViewportSizeChanged(width_changed, height_changed);
@@ -758,7 +758,7 @@
         // LayoutView for paint invalidation. This simplifies our code as we
         // just always do a full tree walk.
         if (LayoutObject* container = root->Container())
-          container->SetMayNeedPaintInvalidation();
+          container->SetShouldCheckForPaintInvalidation();
       }
       layout_subtree_root_list_.Clear();
     } else {
@@ -1391,7 +1391,7 @@
     // If the layer has no visible content, then we shouldn't invalidate; but
     // if we're not compositing-inputs-clean, then we can't query
     // layer->SubtreeIsInvisible() here.
-    layout_object->SetMayNeedPaintInvalidationSubtree();
+    layout_object->SetSubtreeShouldCheckForPaintInvalidation();
     if (!RuntimeEnabledFeatures::SlimmingPaintV2Enabled() &&
         !layer->NeedsRepaint()) {
       // Paint properties of the layer relative to its containing graphics
@@ -1709,9 +1709,11 @@
       ToLayoutBox(root).IsGridItem() || root.IsTablePart())
     return false;
 
-  // Do not lay out objects managed by LayoutNG.
-  if (RuntimeEnabledFeatures::LayoutNGEnabled() &&
-      (root.IsLayoutBlock() && IsLayoutNGContainingBlock(ToLayoutBlock(&root))))
+  // Do not pre-layout objects that are fully managed by LayoutNG; it is not
+  // necessary and may lead to double layouts. We do need to pre-layout
+  // objects whose containing block is a legacy object so that it can
+  // properly compute its intrinsic size.
+  if (RuntimeEnabledFeatures::LayoutNGEnabled() && IsManagedByLayoutNG(root))
     return false;
 
   RemoveFloatingObjectsForSubtreeRoot(root);
@@ -2527,8 +2529,8 @@
   DCHECK(layout_view);
 
   if (!RuntimeEnabledFeatures::SlimmingPaintV2Enabled()) {
-    SCOPED_UMA_AND_UKM_TIMER("Blink.CompositingCommit.UpdateTime",
-                             UkmMetricNames::kCompositingCommit);
+    SCOPED_UMA_AND_UKM_TIMER("Blink.Compositing.UpdateTime",
+                             UkmMetricNames::kCompositing);
     layout_view->Compositor()->UpdateIfNeededRecursive(target_state);
   } else {
     ForAllNonThrottledLocalFrameViews([](LocalFrameView& frame_view) {
@@ -2567,7 +2569,7 @@
       // PrePaintTreeWalk can reach this frame.
       frame_view.SetNeedsPaintPropertyUpdate();
       if (auto* owner = frame_view.GetFrame().OwnerLayoutObject())
-        owner->SetMayNeedPaintInvalidation();
+        owner->SetShouldCheckForPaintInvalidation();
     }
   });
 
@@ -2916,8 +2918,8 @@
         paint_artifact_compositor_->RootLayer(), &GetFrame());
   }
 
-  SCOPED_UMA_AND_UKM_TIMER("Blink.Compositing.UpdateTime",
-                           UkmMetricNames::kCompositing);
+  SCOPED_UMA_AND_UKM_TIMER("Blink.CompositingCommit.UpdateTime",
+                           UkmMetricNames::kCompositingCommit);
 
   paint_artifact_compositor_->Update(
       paint_controller_->GetPaintArtifactShared(), composited_element_ids,
@@ -4195,7 +4197,7 @@
     return;
   lifecycle_updates_throttled_ = false;
   if (auto* owner = GetFrame().OwnerLayoutObject())
-    owner->SetMayNeedPaintInvalidation();
+    owner->SetShouldCheckForPaintInvalidation();
 
   LayoutView* layout_view = GetLayoutView();
   bool layout_view_is_empty = layout_view && !layout_view->FirstChild();
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
index 07b87ef..9a43096 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -361,7 +361,7 @@
     return;
   canvas_is_clear_ = false;
   if (GetLayoutObject() && !LowLatencyEnabled())
-    GetLayoutObject()->SetMayNeedPaintInvalidation();
+    GetLayoutObject()->SetShouldCheckForPaintInvalidation();
   if (Is2d() && context_->ShouldAntialias() && GetPage() &&
       GetPage()->DeviceScaleFactorDeprecated() > 1.0f) {
     FloatRect inflated_rect = rect;
diff --git a/third_party/blink/renderer/core/html/forms/range_input_type.cc b/third_party/blink/renderer/core/html/forms/range_input_type.cc
index 1613eb9..146e9cc 100644
--- a/third_party/blink/renderer/core/html/forms/range_input_type.cc
+++ b/third_party/blink/renderer/core/html/forms/range_input_type.cc
@@ -340,11 +340,8 @@
 
 void RangeInputType::ListAttributeTargetChanged() {
   tick_mark_values_dirty_ = true;
-  if (GetElement().GetLayoutObject()) {
-    GetElement()
-        .GetLayoutObject()
-        ->SetShouldDoFullPaintInvalidationIncludingNonCompositingDescendants();
-  }
+  if (auto* object = GetElement().GetLayoutObject())
+    object->SetSubtreeShouldDoFullPaintInvalidation();
   Element* slider_track_element = SliderTrackElement();
   if (slider_track_element->GetLayoutObject())
     slider_track_element->GetLayoutObject()->SetNeedsLayout(
diff --git a/third_party/blink/renderer/core/layout/layout_block.cc b/third_party/blink/renderer/core/layout/layout_block.cc
index eec4031..252aef8 100644
--- a/third_party/blink/renderer/core/layout/layout_block.cc
+++ b/third_party/blink/renderer/core/layout/layout_block.cc
@@ -287,7 +287,7 @@
   if (should_clip_overflow != HasOverflowClip()) {
     if (!should_clip_overflow)
       GetScrollableArea()->InvalidateAllStickyConstraints();
-    SetMayNeedPaintInvalidationSubtree();
+    SetSubtreeShouldCheckForPaintInvalidation();
     // The overflow clip paint property depends on whether overflow clip is
     // present so we need to update paint properties if this changes.
     SetNeedsPaintPropertyUpdate();
@@ -790,7 +790,7 @@
 void LayoutBlock::LayoutPositionedObject(LayoutBox* positioned_object,
                                          bool relayout_children,
                                          PositionedLayoutBehavior info) {
-  positioned_object->SetMayNeedPaintInvalidation();
+  positioned_object->SetShouldCheckForPaintInvalidation();
 
   SubtreeLayoutScope layout_scope(*positioned_object);
   // If positionedObject is fixed-positioned and moves with an absolute-
@@ -950,9 +950,9 @@
     parent->MarkContainerNeedsCollectInlines();
 }
 
-PaintInvalidationReason LayoutBlock::InvalidatePaint(
+void LayoutBlock::InvalidatePaint(
     const PaintInvalidatorContext& context) const {
-  return BlockPaintInvalidator(*this).InvalidatePaint(context);
+  BlockPaintInvalidator(*this).InvalidatePaint(context);
 }
 
 void LayoutBlock::ClearPreviousVisualRects() {
diff --git a/third_party/blink/renderer/core/layout/layout_block.h b/third_party/blink/renderer/core/layout/layout_block.h
index d3b523f3..e7cd22d 100644
--- a/third_party/blink/renderer/core/layout/layout_block.h
+++ b/third_party/blink/renderer/core/layout/layout_block.h
@@ -481,8 +481,7 @@
   }
 
  protected:
-  PaintInvalidationReason InvalidatePaint(
-      const PaintInvalidatorContext&) const override;
+  void InvalidatePaint(const PaintInvalidatorContext&) const override;
 
   void ClearPreviousVisualRects() override;
 
diff --git a/third_party/blink/renderer/core/layout/layout_block_flow.cc b/third_party/blink/renderer/core/layout/layout_block_flow.cc
index 1947997..4f12cafb 100644
--- a/third_party/blink/renderer/core/layout/layout_block_flow.cc
+++ b/third_party/blink/renderer/core/layout/layout_block_flow.cc
@@ -1528,7 +1528,7 @@
     CHECK(!next_sibling || next_sibling->IsBox());
     next = ToLayoutBox(next_sibling);
 
-    child->SetMayNeedPaintInvalidation();
+    child->SetShouldCheckForPaintInvalidation();
 
     if (child_to_exclude == child)
       continue;  // Skip this child, since it will be positioned by the
@@ -3876,7 +3876,7 @@
   LayoutBox& child = *floating_object.GetLayoutObject();
 
   // FIXME Investigate if this can be removed. crbug.com/370006
-  child.SetMayNeedPaintInvalidation();
+  child.SetShouldCheckForPaintInvalidation();
 
   logical_top_margin_edge =
       std::max(logical_top_margin_edge,
diff --git a/third_party/blink/renderer/core/layout/layout_block_flow_line.cc b/third_party/blink/renderer/core/layout/layout_block_flow_line.cc
index 5e5e60f..527f2e5 100644
--- a/third_party/blink/renderer/core/layout/layout_block_flow_line.cc
+++ b/third_party/blink/renderer/core/layout/layout_block_flow_line.cc
@@ -1955,7 +1955,7 @@
       if (o->IsAtomicInlineLevel() || o->IsFloating() ||
           o->IsOutOfFlowPositioned()) {
         LayoutBox* box = ToLayoutBox(o);
-        box->SetMayNeedPaintInvalidation();
+        box->SetShouldCheckForPaintInvalidation();
 
         UpdateBlockChildDirtyBitsBeforeLayout(relayout_children, *box);
 
diff --git a/third_party/blink/renderer/core/layout/layout_box.cc b/third_party/blink/renderer/core/layout/layout_box.cc
index 68f1c2a..5815cfbe 100644
--- a/third_party/blink/renderer/core/layout/layout_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_box.cc
@@ -1781,8 +1781,8 @@
     SetNeedsPaintPropertyUpdate();
   }
 
-  // TODO(chrishtr): support PaintInvalidationReason::kDelayedFull for animated
-  // border images.
+  // TODO(chrishtr): support delayed paint invalidation for animated border
+  // images.
   if ((StyleRef().BorderImage().GetImage() &&
        StyleRef().BorderImage().GetImage()->Data() == image) ||
       (StyleRef().MaskBoxImage().GetImage() &&
@@ -1864,14 +1864,14 @@
   // The location may change because of layout of other objects. Should check
   // this object for paint invalidation.
   if (!NeedsLayout())
-    SetMayNeedPaintInvalidation();
+    SetShouldCheckForPaintInvalidation();
 }
 
 void LayoutBox::SizeChanged() {
   // The size may change because of layout of other objects. Should check this
   // object for paint invalidation.
   if (!NeedsLayout())
-    SetMayNeedPaintInvalidation();
+    SetShouldCheckForPaintInvalidation();
 
   if (GetNode() && GetNode()->IsElementNode()) {
     Element& element = ToElement(*GetNode());
@@ -1895,25 +1895,23 @@
   if (MayNeedPaintInvalidationAnimatedBackgroundImage() &&
       !BackgroundIsKnownToBeObscured()) {
     SetShouldDoFullPaintInvalidationWithoutGeometryChange(
-        PaintInvalidationReason::kDelayedFull);
+        PaintInvalidationReason::kBackground);
+    SetShouldDelayFullPaintInvalidation();
   }
 
-  if (FullPaintInvalidationReason() != PaintInvalidationReason::kDelayedFull ||
-      !IntersectsVisibleViewport())
+  if (!ShouldDelayFullPaintInvalidation() || !IntersectsVisibleViewport())
     return;
 
-  // Do regular full paint invalidation if the object with
-  // PaintInvalidationReason::kDelayedFull is onscreen.
-  // Conservatively assume the delayed paint invalidation was caused by
-  // background image change.
+  // Do regular full paint invalidation if the object with delayed paint
+  // invalidation is onscreen. Conservatively assume the delayed paint
+  // invalidation was caused by background image change.
   SetBackgroundChangedSinceLastPaintInvalidation();
   SetShouldDoFullPaintInvalidationWithoutGeometryChange(
-      PaintInvalidationReason::kFull);
+      FullPaintInvalidationReason());
 }
 
-PaintInvalidationReason LayoutBox::InvalidatePaint(
-    const PaintInvalidatorContext& context) const {
-  return BoxPaintInvalidator(*this, context).InvalidatePaint();
+void LayoutBox::InvalidatePaint(const PaintInvalidatorContext& context) const {
+  BoxPaintInvalidator(*this, context).InvalidatePaint();
 }
 
 LayoutRect LayoutBox::OverflowClipRect(
diff --git a/third_party/blink/renderer/core/layout/layout_box.h b/third_party/blink/renderer/core/layout/layout_box.h
index abb64cd..0bb8a00 100644
--- a/third_party/blink/renderer/core/layout/layout_box.h
+++ b/third_party/blink/renderer/core/layout/layout_box.h
@@ -1519,8 +1519,7 @@
   void ComputeSelfHitTestRects(Vector<LayoutRect>&,
                                const LayoutPoint& layer_offset) const override;
 
-  PaintInvalidationReason InvalidatePaint(
-      const PaintInvalidatorContext&) const override;
+  void InvalidatePaint(const PaintInvalidatorContext&) const override;
 
   bool ColumnFlexItemHasStretchAlignment() const;
   bool IsStretchingColumnFlexItem() const;
diff --git a/third_party/blink/renderer/core/layout/layout_box_test.cc b/third_party/blink/renderer/core/layout/layout_box_test.cc
index 30156c6..22b3c913 100644
--- a/third_party/blink/renderer/core/layout/layout_box_test.cc
+++ b/third_party/blink/renderer/core/layout/layout_box_test.cc
@@ -453,7 +453,7 @@
   bool MaybeAnimated() override { return true; }
 };
 
-TEST_F(LayoutBoxTest, DeferredInvalidation) {
+TEST_F(LayoutBoxTest, DelayedInvalidation) {
   SetBodyInnerHTML("<img id='image' style='width: 100px; height: 100px;'/>");
   auto* obj = ToLayoutBox(GetLayoutObjectByElementId("image"));
   ASSERT_TRUE(obj);
@@ -465,19 +465,24 @@
   ToLayoutImage(obj)->ImageResource()->SetImageResource(image);
   ASSERT_TRUE(ToLayoutImage(obj)->CachedImage()->GetImage()->MaybeAnimated());
 
-  // CanDeferInvalidation::kYes results in a deferred invalidation.
   obj->ClearPaintInvalidationFlags();
+  EXPECT_FALSE(obj->ShouldDoFullPaintInvalidation());
   EXPECT_EQ(obj->FullPaintInvalidationReason(), PaintInvalidationReason::kNone);
-  obj->ImageChanged(image, ImageResourceObserver::CanDeferInvalidation::kYes);
-  EXPECT_EQ(obj->FullPaintInvalidationReason(),
-            PaintInvalidationReason::kDelayedFull);
+  EXPECT_FALSE(obj->ShouldDelayFullPaintInvalidation());
 
-  // CanDeferInvalidation::kNo results in a immediate invalidation.
-  obj->ClearPaintInvalidationFlags();
-  EXPECT_EQ(obj->FullPaintInvalidationReason(), PaintInvalidationReason::kNone);
-  obj->ImageChanged(image, ImageResourceObserver::CanDeferInvalidation::kNo);
+  // CanDeferInvalidation::kYes results in a deferred invalidation.
+  obj->ImageChanged(image, ImageResourceObserver::CanDeferInvalidation::kYes);
+  EXPECT_FALSE(obj->ShouldDoFullPaintInvalidation());
   EXPECT_EQ(obj->FullPaintInvalidationReason(),
             PaintInvalidationReason::kImage);
+  EXPECT_TRUE(obj->ShouldDelayFullPaintInvalidation());
+
+  // CanDeferInvalidation::kNo results in a immediate invalidation.
+  obj->ImageChanged(image, ImageResourceObserver::CanDeferInvalidation::kNo);
+  EXPECT_TRUE(obj->ShouldDoFullPaintInvalidation());
+  EXPECT_EQ(obj->FullPaintInvalidationReason(),
+            PaintInvalidationReason::kImage);
+  EXPECT_FALSE(obj->ShouldDelayFullPaintInvalidation());
 }
 
 TEST_F(LayoutBoxTest, MarkerContainerLayoutOverflowRect) {
diff --git a/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.cc b/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.cc
index 1d8a9b6e..f7ff1a8a 100644
--- a/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.cc
@@ -1260,7 +1260,7 @@
                                              const LayoutPoint& location) {
   // FIXME Investigate if this can be removed based on other flags.
   // crbug.com/370010
-  child->SetMayNeedPaintInvalidation();
+  child->SetShouldCheckForPaintInvalidation();
 
   // Place the child.
   child->SetLocation(location);
diff --git a/third_party/blink/renderer/core/layout/layout_embedded_content.cc b/third_party/blink/renderer/core/layout/layout_embedded_content.cc
index d9de52d..0023ca9 100644
--- a/third_party/blink/renderer/core/layout/layout_embedded_content.cc
+++ b/third_party/blink/renderer/core/layout/layout_embedded_content.cc
@@ -278,6 +278,13 @@
   EmbeddedContentPainter(*this).PaintReplaced(paint_info, paint_offset);
 }
 
+void LayoutEmbeddedContent::InvalidatePaint(
+    const PaintInvalidatorContext& context) const {
+  LayoutReplaced::InvalidatePaint(context);
+  if (auto* plugin = Plugin())
+    plugin->InvalidatePaint();
+}
+
 CursorDirective LayoutEmbeddedContent::GetCursor(const LayoutPoint& point,
                                                  Cursor& cursor) const {
   if (Plugin()) {
diff --git a/third_party/blink/renderer/core/layout/layout_embedded_content.h b/third_party/blink/renderer/core/layout/layout_embedded_content.h
index dd85f9b..8f59865 100644
--- a/third_party/blink/renderer/core/layout/layout_embedded_content.h
+++ b/third_party/blink/renderer/core/layout/layout_embedded_content.h
@@ -73,6 +73,7 @@
   void UpdateLayout() override;
   void PaintReplaced(const PaintInfo&,
                      const LayoutPoint& paint_offset) const override;
+  void InvalidatePaint(const PaintInvalidatorContext&) const final;
   CursorDirective GetCursor(const LayoutPoint&, Cursor&) const final;
 
   bool CanBeSelectionLeafInternal() const final { return true; }
diff --git a/third_party/blink/renderer/core/layout/layout_embedded_object.cc b/third_party/blink/renderer/core/layout/layout_embedded_object.cc
index 7baf19b..a136627 100644
--- a/third_party/blink/renderer/core/layout/layout_embedded_object.cc
+++ b/third_party/blink/renderer/core/layout/layout_embedded_object.cc
@@ -34,7 +34,6 @@
 #include "third_party/blink/renderer/core/layout/layout_analyzer.h"
 #include "third_party/blink/renderer/core/layout/layout_view.h"
 #include "third_party/blink/renderer/core/page/page.h"
-#include "third_party/blink/renderer/core/paint/embedded_object_paint_invalidator.h"
 #include "third_party/blink/renderer/core/paint/embedded_object_painter.h"
 #include "third_party/blink/renderer/platform/text/platform_locale.h"
 
@@ -89,11 +88,6 @@
   EmbeddedObjectPainter(*this).PaintReplaced(paint_info, paint_offset);
 }
 
-PaintInvalidationReason LayoutEmbeddedObject::InvalidatePaint(
-    const PaintInvalidatorContext& context) const {
-  return EmbeddedObjectPaintInvalidator(*this, context).InvalidatePaint();
-}
-
 void LayoutEmbeddedObject::UpdateLayout() {
   DCHECK(NeedsLayout());
   LayoutAnalyzer::Scope analyzer(*this);
diff --git a/third_party/blink/renderer/core/layout/layout_embedded_object.h b/third_party/blink/renderer/core/layout/layout_embedded_object.h
index 8ee32cd..42cd2a20 100644
--- a/third_party/blink/renderer/core/layout/layout_embedded_object.h
+++ b/third_party/blink/renderer/core/layout/layout_embedded_object.h
@@ -52,8 +52,6 @@
  private:
   void PaintReplaced(const PaintInfo&,
                      const LayoutPoint& paint_offset) const final;
-  PaintInvalidationReason InvalidatePaint(
-      const PaintInvalidatorContext&) const final;
 
   void UpdateLayout() final;
 
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 054c5a5a..9131c71 100644
--- a/third_party/blink/renderer/core/layout/layout_flexible_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_flexible_box.cc
@@ -1472,7 +1472,7 @@
 
     DCHECK(!flex_item.box->IsOutOfFlowPositioned());
 
-    child->SetMayNeedPaintInvalidation();
+    child->SetShouldCheckForPaintInvalidation();
 
     SetOverrideMainAxisContentSizeForChild(*child,
                                            flex_item.flexed_content_size);
diff --git a/third_party/blink/renderer/core/layout/layout_html_canvas.cc b/third_party/blink/renderer/core/layout/layout_html_canvas.cc
index 6de2e94..ad04b69 100644
--- a/third_party/blink/renderer/core/layout/layout_html_canvas.cc
+++ b/third_party/blink/renderer/core/layout/layout_html_canvas.cc
@@ -30,7 +30,6 @@
 #include "third_party/blink/renderer/core/html/canvas/html_canvas_element.h"
 #include "third_party/blink/renderer/core/layout/layout_view.h"
 #include "third_party/blink/renderer/core/page/page.h"
-#include "third_party/blink/renderer/core/paint/html_canvas_paint_invalidator.h"
 #include "third_party/blink/renderer/core/paint/html_canvas_painter.h"
 
 namespace blink {
@@ -83,9 +82,13 @@
     SetNeedsLayout(LayoutInvalidationReason::kSizeChanged);
 }
 
-PaintInvalidationReason LayoutHTMLCanvas::InvalidatePaint(
+void LayoutHTMLCanvas::InvalidatePaint(
     const PaintInvalidatorContext& context) const {
-  return HTMLCanvasPaintInvalidator(*this, context).InvalidatePaint();
+  auto* element = ToHTMLCanvasElement(GetNode());
+  if (element->IsDirty())
+    element->DoDeferredPaintInvalidation();
+
+  LayoutReplaced::InvalidatePaint(context);
 }
 
 CompositingReasons LayoutHTMLCanvas::AdditionalCompositingReasons() const {
diff --git a/third_party/blink/renderer/core/layout/layout_html_canvas.h b/third_party/blink/renderer/core/layout/layout_html_canvas.h
index 5058233..c3e989ed 100644
--- a/third_party/blink/renderer/core/layout/layout_html_canvas.h
+++ b/third_party/blink/renderer/core/layout/layout_html_canvas.h
@@ -41,8 +41,7 @@
   }
   PaintLayerType LayerTypeRequired() const override;
 
-  PaintInvalidationReason InvalidatePaint(
-      const PaintInvalidatorContext&) const final;
+  void InvalidatePaint(const PaintInvalidatorContext&) const final;
 
   void CanvasSizeChanged();
 
diff --git a/third_party/blink/renderer/core/layout/layout_image.cc b/third_party/blink/renderer/core/layout/layout_image.cc
index 3ae89ee..1c907c9 100644
--- a/third_party/blink/renderer/core/layout/layout_image.cc
+++ b/third_party/blink/renderer/core/layout/layout_image.cc
@@ -239,10 +239,11 @@
   }
 
   SetShouldDoFullPaintInvalidationWithoutGeometryChange(
-      defer == CanDeferInvalidation::kYes && ImageResource() &&
-              ImageResource()->MaybeAnimated()
-          ? PaintInvalidationReason::kDelayedFull
-          : PaintInvalidationReason::kImage);
+      PaintInvalidationReason::kImage);
+
+  if (defer == CanDeferInvalidation::kYes && ImageResource() &&
+      ImageResource()->MaybeAnimated())
+    SetShouldDelayFullPaintInvalidation();
 
   // Tell any potential compositing layers that the image needs updating.
   ContentChanged(kImageChanged);
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc
index 073dc719..d0da2a67 100644
--- a/third_party/blink/renderer/core/layout/layout_object.cc
+++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -170,7 +170,9 @@
 #endif
 
 struct SameSizeAsLayoutObject : DisplayItemClient {
-  ~SameSizeAsLayoutObject() override = default;  // Allocate vtable pointer.
+  // Normally this field uses the gap between DisplayItemClient and
+  // LayoutObject's other fields.
+  uint8_t paint_invalidation_reason_;
   void* pointers[5];
   Member<void*> members[1];
 #if DCHECK_IS_ON()
@@ -178,7 +180,6 @@
 #endif
   unsigned bitfields_;
   unsigned bitfields2_;
-  unsigned bitfields3_;
   // The following fields are in FragmentData.
   LayoutRect visual_rect_;
   LayoutPoint paint_offset_;
@@ -277,7 +278,8 @@
 }
 
 LayoutObject::LayoutObject(Node* node)
-    : style_(nullptr),
+    : full_paint_invalidation_reason_(PaintInvalidationReason::kNone),
+      style_(nullptr),
       node_(node),
       parent_(nullptr),
       previous_(nullptr),
@@ -1535,7 +1537,7 @@
   // Not using the WithoutGeometryChange version because we need to map the
   // partial invalidated rect to visual rect in backing or the containing
   // transform node.
-  SetMayNeedPaintInvalidation();
+  SetShouldCheckForPaintInvalidation();
 }
 
 LayoutRect LayoutObject::AbsoluteSelectionRect() const {
@@ -1550,9 +1552,9 @@
 }
 
 DISABLE_CFI_PERF
-PaintInvalidationReason LayoutObject::InvalidatePaint(
+void LayoutObject::InvalidatePaint(
     const PaintInvalidatorContext& context) const {
-  return ObjectPaintInvalidatorWithContext(*this, context).InvalidatePaint();
+  ObjectPaintInvalidatorWithContext(*this, context).InvalidatePaint();
 }
 
 void LayoutObject::AdjustVisualRectForCompositedScrolling(
@@ -1952,7 +1954,7 @@
 void LayoutObject::SetNeedsOverflowRecalcAfterStyleChange() {
   bool needed_recalc = NeedsOverflowRecalcAfterStyleChange();
   SetSelfNeedsOverflowRecalcAfterStyleChange();
-  SetMayNeedPaintInvalidation();
+  SetShouldCheckForPaintInvalidation();
   if (!needed_recalc)
     MarkContainerChainForOverflowRecalcIfNeeded();
 }
@@ -2057,7 +2059,7 @@
 
   if (diff.NeedsPaintInvalidationSubtree() ||
       updated_diff.NeedsPaintInvalidationSubtree()) {
-    SetShouldDoFullPaintInvalidationIncludingNonCompositingDescendants();
+    SetSubtreeShouldDoFullPaintInvalidation();
   } else if (diff.NeedsPaintInvalidationObject() ||
              updated_diff.NeedsPaintInvalidationObject()) {
     // TODO(wangxianzhu): For now LayoutSVGRoot::localVisualRect() depends on
@@ -2074,7 +2076,7 @@
     InvalidateClipPathCache();
 
   if (diff.NeedsVisualRectUpdate())
-    SetMayNeedPaintInvalidation();
+    SetShouldCheckForPaintInvalidation();
 
   // Text nodes share style with their parents but the paint properties don't
   // apply to them, hence the !isText() check. If property nodes are added or
@@ -3783,6 +3785,35 @@
   return ObjectIsRelayoutBoundary(this);
 }
 
+inline void LayoutObject::MarkAncestorsForPaintInvalidation() {
+  for (LayoutObject* parent = ParentCrossingFrames();
+       parent && !parent->ShouldCheckForPaintInvalidation();
+       parent = parent->ParentCrossingFrames())
+    parent->bitfields_.SetShouldCheckForPaintInvalidation(true);
+}
+
+inline void LayoutObject::SetNeedsPaintOffsetAndVisualRectUpdate() {
+  DCHECK(ShouldCheckForPaintInvalidation());
+  for (auto* object = this;
+       object && !object->NeedsPaintOffsetAndVisualRectUpdate();
+       object = object->ParentCrossingFrames()) {
+    object->bitfields_.SetNeedsPaintOffsetAndVisualRectUpdate(true);
+  }
+}
+
+void LayoutObject::SetShouldInvalidateSelection() {
+  if (!CanUpdateSelectionOnRootLineBoxes())
+    return;
+  bitfields_.SetShouldInvalidateSelection(true);
+  SetShouldCheckForPaintInvalidation();
+}
+
+void LayoutObject::SetShouldDoFullPaintInvalidation(
+    PaintInvalidationReason reason) {
+  SetShouldDoFullPaintInvalidationWithoutGeometryChange(reason);
+  SetNeedsPaintOffsetAndVisualRectUpdate();
+}
+
 static PaintInvalidationReason DocumentLifecycleBasedPaintInvalidationReason(
     const DocumentLifecycle& document_lifecycle) {
   switch (document_lifecycle.GetState()) {
@@ -3799,85 +3830,68 @@
   }
 }
 
-inline void LayoutObject::MarkAncestorsForPaintInvalidation() {
-  for (LayoutObject* parent = ParentCrossingFrames();
-       parent && !parent->ShouldCheckForPaintInvalidation();
-       parent = parent->ParentCrossingFrames())
-    parent->bitfields_.SetMayNeedPaintInvalidation(true);
-}
-
-inline void LayoutObject::SetNeedsPaintOffsetAndVisualRectUpdate() {
-  for (auto* object = this;
-       object && !object->NeedsPaintOffsetAndVisualRectUpdate();
-       object = object->ParentCrossingFrames()) {
-    object->bitfields_.SetNeedsPaintOffsetAndVisualRectUpdate(true);
-  }
-}
-
-void LayoutObject::SetShouldInvalidateSelection() {
-  if (!CanUpdateSelectionOnRootLineBoxes())
-    return;
-  bitfields_.SetShouldInvalidateSelection(true);
-  SetMayNeedPaintInvalidation();
-  GetFrameView()->ScheduleVisualUpdateForPaintInvalidationIfNeeded();
-}
-
-void LayoutObject::SetShouldDoFullPaintInvalidation(
-    PaintInvalidationReason reason) {
-  SetNeedsPaintOffsetAndVisualRectUpdate();
-  SetShouldDoFullPaintInvalidationWithoutGeometryChange(reason);
-}
-
 void LayoutObject::SetShouldDoFullPaintInvalidationWithoutGeometryChange(
     PaintInvalidationReason reason) {
   // Only full invalidation reasons are allowed.
   DCHECK(IsFullPaintInvalidationReason(reason));
+  // This is before the early return to ensure visual update is always scheduled
+  // in case that this is called not during a document lifecycle update.
+  GetFrameView()->ScheduleVisualUpdateForPaintInvalidationIfNeeded();
 
-  bool is_upgrading_delayed_full_to_full =
-      bitfields_.FullPaintInvalidationReason() ==
-          PaintInvalidationReason::kDelayedFull &&
-      reason != PaintInvalidationReason::kDelayedFull;
-
-  if (bitfields_.FullPaintInvalidationReason() ==
-          PaintInvalidationReason::kNone ||
-      is_upgrading_delayed_full_to_full) {
-    if (reason == PaintInvalidationReason::kFull) {
-      reason = DocumentLifecycleBasedPaintInvalidationReason(
-          GetDocument().Lifecycle());
-    }
-    bitfields_.SetFullPaintInvalidationReason(reason);
-    if (!is_upgrading_delayed_full_to_full)
-      MarkAncestorsForPaintInvalidation();
+  if (ShouldDoFullPaintInvalidation())
+    return;
+  SetShouldCheckForPaintInvalidationWithoutGeometryChange();
+  if (reason == PaintInvalidationReason::kFull) {
+    reason = DocumentLifecycleBasedPaintInvalidationReason(
+        GetDocument().Lifecycle());
   }
-
-  GetFrameView()->ScheduleVisualUpdateForPaintInvalidationIfNeeded();
+  full_paint_invalidation_reason_ = reason;
+  bitfields_.SetShouldDelayFullPaintInvalidation(false);
 }
 
-void LayoutObject::SetMayNeedPaintInvalidation() {
+void LayoutObject::SetShouldCheckForPaintInvalidation() {
+  SetShouldCheckForPaintInvalidationWithoutGeometryChange();
   SetNeedsPaintOffsetAndVisualRectUpdate();
-  SetMayNeedPaintInvalidationWithoutGeometryChange();
 }
 
-void LayoutObject::SetMayNeedPaintInvalidationWithoutGeometryChange() {
-  if (MayNeedPaintInvalidation())
+void LayoutObject::SetShouldCheckForPaintInvalidationWithoutGeometryChange() {
+  if (ShouldCheckForPaintInvalidation())
     return;
-  bitfields_.SetMayNeedPaintInvalidation(true);
-  MarkAncestorsForPaintInvalidation();
   GetFrameView()->ScheduleVisualUpdateForPaintInvalidationIfNeeded();
+  bitfields_.SetShouldCheckForPaintInvalidation(true);
+  MarkAncestorsForPaintInvalidation();
 }
 
-void LayoutObject::SetMayNeedPaintInvalidationSubtree() {
-  if (MayNeedPaintInvalidationSubtree())
+void LayoutObject::SetSubtreeShouldCheckForPaintInvalidation() {
+  if (SubtreeShouldCheckForPaintInvalidation()) {
+    DCHECK(ShouldCheckForPaintInvalidation());
     return;
-  bitfields_.SetMayNeedPaintInvalidationSubtree(true);
-  SetMayNeedPaintInvalidation();
+  }
+  SetShouldCheckForPaintInvalidation();
+  bitfields_.SetSubtreeShouldCheckForPaintInvalidation(true);
 }
 
 void LayoutObject::SetMayNeedPaintInvalidationAnimatedBackgroundImage() {
   if (MayNeedPaintInvalidationAnimatedBackgroundImage())
     return;
   bitfields_.SetMayNeedPaintInvalidationAnimatedBackgroundImage(true);
-  SetMayNeedPaintInvalidationWithoutGeometryChange();
+  SetShouldCheckForPaintInvalidationWithoutGeometryChange();
+}
+
+void LayoutObject::SetShouldDelayFullPaintInvalidation() {
+  // Should have already set a full paint invalidation reason.
+  DCHECK(IsFullPaintInvalidationReason(full_paint_invalidation_reason_));
+
+  bitfields_.SetShouldDelayFullPaintInvalidation(true);
+  if (!ShouldCheckForPaintInvalidation()) {
+    // This will also schedule a visual update.
+    SetShouldCheckForPaintInvalidationWithoutGeometryChange();
+  } else {
+    // Schedule visual update for the next document cycle in which we will
+    // check if the delayed invalidation should be promoted to a real
+    // invalidation.
+    GetFrameView()->ScheduleVisualUpdateForPaintInvalidationIfNeeded();
+  }
 }
 
 void LayoutObject::ClearPaintInvalidationFlags() {
@@ -3887,25 +3901,37 @@
   DCHECK(!ShouldCheckForPaintInvalidation() || PaintInvalidationStateIsDirty());
 #endif
   fragment_.SetPartialInvalidationLocalRect(LayoutRect());
-  ClearShouldDoFullPaintInvalidation();
-  bitfields_.SetMayNeedPaintInvalidation(false);
-  bitfields_.SetMayNeedPaintInvalidationSubtree(false);
+  if (!ShouldDelayFullPaintInvalidation())
+    full_paint_invalidation_reason_ = PaintInvalidationReason::kNone;
+  bitfields_.SetShouldCheckForPaintInvalidation(false);
+  bitfields_.SetSubtreeShouldCheckForPaintInvalidation(false);
+  bitfields_.SetSubtreeShouldDoFullPaintInvalidation(false);
   bitfields_.SetMayNeedPaintInvalidationAnimatedBackgroundImage(false);
   bitfields_.SetNeedsPaintOffsetAndVisualRectUpdate(false);
   bitfields_.SetShouldInvalidateSelection(false);
   bitfields_.SetBackgroundChangedSinceLastPaintInvalidation(false);
 }
 
+#if DCHECK_IS_ON()
+bool LayoutObject::PaintInvalidationStateIsDirty() const {
+  return BackgroundChangedSinceLastPaintInvalidation() ||
+         ShouldCheckForPaintInvalidation() || ShouldInvalidateSelection() ||
+         NeedsPaintOffsetAndVisualRectUpdate() ||
+         ShouldDoFullPaintInvalidation() ||
+         SubtreeShouldDoFullPaintInvalidation() ||
+         MayNeedPaintInvalidationAnimatedBackgroundImage() ||
+         !fragment_.PartialInvalidationLocalRect().IsEmpty();
+}
+#endif
+
 bool LayoutObject::IsAllowedToModifyLayoutTreeStructure(Document& document) {
   return document.Lifecycle().StateAllowsLayoutTreeMutations();
 }
 
-void LayoutObject::
-    SetShouldDoFullPaintInvalidationIncludingNonCompositingDescendants() {
-  // Clear first because PaintInvalidationSubtree overrides other full paint
-  // invalidation reasons.
-  ClearShouldDoFullPaintInvalidation();
-  SetShouldDoFullPaintInvalidation(PaintInvalidationReason::kSubtree);
+void LayoutObject::SetSubtreeShouldDoFullPaintInvalidation(
+    PaintInvalidationReason reason) {
+  SetShouldDoFullPaintInvalidation(reason);
+  bitfields_.SetSubtreeShouldDoFullPaintInvalidation(true);
 }
 
 void LayoutObject::SetIsBackgroundAttachmentFixedObject(
@@ -3974,7 +4000,7 @@
 void LayoutObject::InvalidateIfControlStateChanged(ControlState control_state) {
   if (LayoutTheme::GetTheme().ControlStateChanged(GetNode(), StyleRef(),
                                                   control_state)) {
-    SetShouldDoFullPaintInvalidationIncludingNonCompositingDescendants();
+    SetSubtreeShouldDoFullPaintInvalidation();
   }
 }
 
diff --git a/third_party/blink/renderer/core/layout/layout_object.h b/third_party/blink/renderer/core/layout/layout_object.h
index b54cb1a..17e9e4d7 100644
--- a/third_party/blink/renderer/core/layout/layout_object.h
+++ b/third_party/blink/renderer/core/layout/layout_object.h
@@ -238,10 +238,11 @@
   // Do not call VisualRect directly outside of the DisplayItemClient
   // interface, use a per-fragment one on FragmentData instead.
  private:
-  // Hide DisplayItemClient methods whose names are too generic for
-  // LayoutObject. Use LayoutObject methods instead, or explicitly cast.
+  // Hide DisplayItemClient's methods whose names are too generic for
+  // LayoutObjects. Should use LayoutObject's methods instead.
   using DisplayItemClient::Invalidate;
   using DisplayItemClient::IsValid;
+  using DisplayItemClient::GetPaintInvalidationReason;
 
   LayoutRect VisualRect() const final;
 
@@ -1486,17 +1487,15 @@
   // a small region of a canvas changes.
   void InvalidatePaintRectangle(const LayoutRect&);
 
-  void SetShouldDoFullPaintInvalidationIncludingNonCompositingDescendants();
-
   // Returns the rect that should have paint invalidated whenever this object
   // changes. The rect is in the view's coordinate space. This method deals with
   // outlines and overflow.
   virtual LayoutRect AbsoluteVisualRect() const;
 
-  // Returns the rect that should have paint invalidated whenever this object
+  // Returns the rect that should have raster invalidated whenever this object
   // changes. The rect is in the object's local coordinate space. This is for
   // non-SVG objects and LayoutSVGRoot only. SVG objects (except LayoutSVGRoot)
-  // should use visualRectInLocalSVGCoordinates() and map with SVG transforms
+  // should use VisualRectInLocalSVGCoordinates() and map with SVG transforms
   // instead.
   LayoutRect LocalVisualRect() const {
     if (StyleRef().Visibility() != EVisibility::kVisible &&
@@ -1754,32 +1753,34 @@
   virtual void ClearPreviousVisualRects();
 
   PaintInvalidationReason FullPaintInvalidationReason() const {
-    return bitfields_.FullPaintInvalidationReason();
+    return full_paint_invalidation_reason_;
   }
   bool ShouldDoFullPaintInvalidation() const {
-    return bitfields_.FullPaintInvalidationReason() !=
-           PaintInvalidationReason::kNone;
+    if (!ShouldDelayFullPaintInvalidation() &&
+        full_paint_invalidation_reason_ != PaintInvalidationReason::kNone) {
+      DCHECK(IsFullPaintInvalidationReason(full_paint_invalidation_reason_));
+      DCHECK(ShouldCheckForPaintInvalidation());
+      return true;
+    }
+    return false;
   }
   void SetShouldDoFullPaintInvalidation(
       PaintInvalidationReason = PaintInvalidationReason::kFull);
   void SetShouldDoFullPaintInvalidationWithoutGeometryChange(
       PaintInvalidationReason = PaintInvalidationReason::kFull);
-  void ClearShouldDoFullPaintInvalidation() {
-    bitfields_.SetFullPaintInvalidationReason(PaintInvalidationReason::kNone);
-  }
 
   void ClearPaintInvalidationFlags();
 
-  bool MayNeedPaintInvalidation() const {
-    return bitfields_.MayNeedPaintInvalidation();
+  bool ShouldCheckForPaintInvalidation() const {
+    return bitfields_.ShouldCheckForPaintInvalidation();
   }
-  void SetMayNeedPaintInvalidation();
-  void SetMayNeedPaintInvalidationWithoutGeometryChange();
+  void SetShouldCheckForPaintInvalidation();
+  void SetShouldCheckForPaintInvalidationWithoutGeometryChange();
 
-  bool MayNeedPaintInvalidationSubtree() const {
-    return bitfields_.MayNeedPaintInvalidationSubtree();
+  bool SubtreeShouldCheckForPaintInvalidation() const {
+    return bitfields_.SubtreeShouldCheckForPaintInvalidation();
   }
-  void SetMayNeedPaintInvalidationSubtree();
+  void SetSubtreeShouldCheckForPaintInvalidation();
 
   bool NeedsPaintOffsetAndVisualRectUpdate() const {
     return bitfields_.NeedsPaintOffsetAndVisualRectUpdate();
@@ -1790,20 +1791,33 @@
   }
   void SetMayNeedPaintInvalidationAnimatedBackgroundImage();
 
+  void SetSubtreeShouldDoFullPaintInvalidation(
+      PaintInvalidationReason reason = PaintInvalidationReason::kSubtree);
+  bool SubtreeShouldDoFullPaintInvalidation() const {
+    DCHECK(!bitfields_.SubtreeShouldDoFullPaintInvalidation() ||
+           ShouldDoFullPaintInvalidation());
+    return bitfields_.SubtreeShouldDoFullPaintInvalidation();
+  }
+
+  // If true, it means that invalidation and repainting of the object can be
+  // delayed until a future frame. This can be the case for an object whose
+  // content is not visible to the user.
+  bool ShouldDelayFullPaintInvalidation() const {
+    return bitfields_.ShouldDelayFullPaintInvalidation();
+  }
+  void SetShouldDelayFullPaintInvalidation();
+
   bool ShouldInvalidateSelection() const {
     return bitfields_.ShouldInvalidateSelection();
   }
   void SetShouldInvalidateSelection();
 
-  bool ShouldCheckForPaintInvalidation() const {
-    return MayNeedPaintInvalidation() || ShouldDoFullPaintInvalidation();
-  }
-
   virtual LayoutRect ViewRect() const;
 
-  // New version to replace the above old version.
-  virtual PaintInvalidationReason InvalidatePaint(
-      const PaintInvalidatorContext&) const;
+  // Called by PaintInvalidator during PrePaint. Checks paint invalidation flags
+  // and other changes that will cause different painting, and invalidate
+  // display item clients for painting if needed.
+  virtual void InvalidatePaint(const PaintInvalidatorContext&) const;
 
   // When this object is invalidated for paint, this method is called to
   // invalidate any DisplayItemClients owned by this object, including the
@@ -1886,8 +1900,8 @@
       layout_object_.bitfields_
           .SetDescendantEffectiveWhitelistedTouchActionChanged(false);
     }
-    void SetMayNeedPaintInvalidation() {
-      layout_object_.SetMayNeedPaintInvalidation();
+    void SetShouldCheckForPaintInvalidation() {
+      layout_object_.SetShouldCheckForPaintInvalidation();
     }
     void SetShouldDoFullPaintInvalidation(PaintInvalidationReason reason) {
       layout_object_.SetShouldDoFullPaintInvalidation(reason);
@@ -1900,6 +1914,9 @@
     void SetBackgroundChangedSinceLastPaintInvalidation() {
       layout_object_.SetBackgroundChangedSinceLastPaintInvalidation();
     }
+    void SetShouldDelayFullPaintInvalidation() {
+      layout_object_.SetShouldDelayFullPaintInvalidation();
+    }
     void EnsureIsReadyForPaintInvalidation() {
       layout_object_.EnsureIsReadyForPaintInvalidation();
     }
@@ -2219,12 +2236,7 @@
                                        const LayoutPoint& layer_offset) const {}
 
 #if DCHECK_IS_ON()
-  virtual bool PaintInvalidationStateIsDirty() const {
-    return BackgroundChangedSinceLastPaintInvalidation() ||
-           ShouldCheckForPaintInvalidation() || ShouldInvalidateSelection() ||
-           NeedsPaintOffsetAndVisualRectUpdate() ||
-           !fragment_.PartialInvalidationLocalRect().IsEmpty();
-  }
+  virtual bool PaintInvalidationStateIsDirty() const;
 #endif
 
   // Called before paint invalidation.
@@ -2339,6 +2351,14 @@
   void ApplyPseudoStyleChanges(const ComputedStyle& old_style);
   void ApplyFirstLineChanges(const ComputedStyle& old_style);
 
+  // This is set by Set[Subtree]ShouldDoFullPaintInvalidation, and cleared
+  // during PrePaint in this object's InvalidatePaint(). It's different from
+  // DisplayItemClient::GetPaintInvalidationReason() which is set during
+  // PrePaint and cleared in PaintController::FinishCycle().
+  // It's defined as the first field so that it can use the memory gap between
+  // DisplayItemClient and LayoutObject's other fields.
+  PaintInvalidationReason full_paint_invalidation_reason_;
+
   scoped_refptr<ComputedStyle> style_;
 
   // Oilpan: This untraced pointer to the owning Node is considered safe.
@@ -2398,10 +2418,12 @@
           child_needs_overflow_recalc_after_style_change_(false),
           preferred_logical_widths_dirty_(false),
           needs_collect_inlines_(false),
-          may_need_paint_invalidation_(false),
-          may_need_paint_invalidation_subtree_(false),
+          should_check_for_paint_invalidation_(true),
+          subtree_should_check_for_paint_invalidation_(false),
+          should_delay_full_paint_invalidation_(false),
+          subtree_should_do_full_paint_invalidation_(false),
           may_need_paint_invalidation_animated_background_image_(false),
-          needs_paint_offset_and_visual_rect_update_(false),
+          needs_paint_offset_and_visual_rect_update_(true),
           should_invalidate_selection_(false),
           floating_(false),
           is_anonymous_(!node),
@@ -2445,9 +2467,7 @@
           is_effective_root_scroller_(false),
           positioned_state_(kIsStaticallyPositioned),
           selection_state_(static_cast<unsigned>(SelectionState::kNone)),
-          background_obscuration_state_(kBackgroundObscurationStatusInvalid),
-          full_paint_invalidation_reason_(
-              static_cast<unsigned>(PaintInvalidationReason::kNone)) {}
+          background_obscuration_state_(kBackgroundObscurationStatusInvalid) {}
 
     // Self needs layout means that this layout object is marked for a full
     // layout. This is the default layout but it is expensive as it recomputes
@@ -2511,10 +2531,14 @@
     // Also maybe set to inline boxes to optimize the propagation.
     ADD_BOOLEAN_BITFIELD(needs_collect_inlines_, NeedsCollectInlines);
 
-    ADD_BOOLEAN_BITFIELD(may_need_paint_invalidation_,
-                         MayNeedPaintInvalidation);
-    ADD_BOOLEAN_BITFIELD(may_need_paint_invalidation_subtree_,
-                         MayNeedPaintInvalidationSubtree);
+    ADD_BOOLEAN_BITFIELD(should_check_for_paint_invalidation_,
+                         ShouldCheckForPaintInvalidation);
+    ADD_BOOLEAN_BITFIELD(subtree_should_check_for_paint_invalidation_,
+                         SubtreeShouldCheckForPaintInvalidation);
+    ADD_BOOLEAN_BITFIELD(should_delay_full_paint_invalidation_,
+                         ShouldDelayFullPaintInvalidation);
+    ADD_BOOLEAN_BITFIELD(subtree_should_do_full_paint_invalidation_,
+                         SubtreeShouldDoFullPaintInvalidation);
     ADD_BOOLEAN_BITFIELD(may_need_paint_invalidation_animated_background_image_,
                          MayNeedPaintInvalidationAnimatedBackgroundImage);
     ADD_BOOLEAN_BITFIELD(needs_paint_offset_and_visual_rect_update_,
@@ -2684,11 +2708,6 @@
     mutable unsigned
         background_obscuration_state_ : 2;  // BackgroundObscurationState
 
-    unsigned full_paint_invalidation_reason_ : 5;  // PaintInvalidationReason
-    static_assert(static_cast<unsigned>(PaintInvalidationReason::kMax) <
-                      (1u << 5),
-                  "PaintInvalidationReason should fit in the bit field");
-
    public:
     bool IsOutOfFlowPositioned() const {
       return positioned_state_ == kIsOutOfFlowPositioned;
@@ -2749,14 +2768,6 @@
         BackgroundObscurationState s) const {
       background_obscuration_state_ = s;
     }
-
-    PaintInvalidationReason FullPaintInvalidationReason() const {
-      return static_cast<PaintInvalidationReason>(
-          full_paint_invalidation_reason_);
-    }
-    void SetFullPaintInvalidationReason(PaintInvalidationReason reason) {
-      full_paint_invalidation_reason_ = static_cast<unsigned>(reason);
-    }
   };
 
 #undef ADD_BOOLEAN_BITFIELD
@@ -2858,7 +2869,7 @@
 inline void LayoutObject::ClearNeedsLayout() {
   // Set flags for later stages/cycles.
   SetEverHadLayout();
-  SetMayNeedPaintInvalidation();
+  SetShouldCheckForPaintInvalidation();
 
   // Clear needsLayout flags.
   SetSelfNeedsLayout(false);
diff --git a/third_party/blink/renderer/core/layout/layout_object_test.cc b/third_party/blink/renderer/core/layout/layout_object_test.cc
index 9f6b920..a40375c 100644
--- a/third_party/blink/renderer/core/layout/layout_object_test.cc
+++ b/third_party/blink/renderer/core/layout/layout_object_test.cc
@@ -319,10 +319,10 @@
   object->SetShouldDoFullPaintInvalidation();
   EXPECT_TRUE(object->ShouldDoFullPaintInvalidation());
   EXPECT_TRUE(object->NeedsPaintOffsetAndVisualRectUpdate());
-  object->SetMayNeedPaintInvalidation();
-  EXPECT_TRUE(object->MayNeedPaintInvalidation());
-  object->SetMayNeedPaintInvalidationSubtree();
-  EXPECT_TRUE(object->MayNeedPaintInvalidationSubtree());
+  object->SetShouldCheckForPaintInvalidation();
+  EXPECT_TRUE(object->ShouldCheckForPaintInvalidation());
+  object->SetSubtreeShouldCheckForPaintInvalidation();
+  EXPECT_TRUE(object->SubtreeShouldCheckForPaintInvalidation());
   object->SetMayNeedPaintInvalidationAnimatedBackgroundImage();
   EXPECT_TRUE(object->MayNeedPaintInvalidationAnimatedBackgroundImage());
   object->SetShouldInvalidateSelection();
@@ -339,8 +339,8 @@
   object->GetMutableForPainting().ClearPaintFlags();
 
   EXPECT_FALSE(object->ShouldDoFullPaintInvalidation());
-  EXPECT_FALSE(object->MayNeedPaintInvalidation());
-  EXPECT_FALSE(object->MayNeedPaintInvalidationSubtree());
+  EXPECT_FALSE(object->ShouldCheckForPaintInvalidation());
+  EXPECT_FALSE(object->SubtreeShouldCheckForPaintInvalidation());
   EXPECT_FALSE(object->MayNeedPaintInvalidationAnimatedBackgroundImage());
   EXPECT_FALSE(object->ShouldInvalidateSelection());
   EXPECT_FALSE(object->BackgroundChangedSinceLastPaintInvalidation());
@@ -369,55 +369,55 @@
   object->SetShouldDoFullPaintInvalidation();
   EXPECT_TRUE(object->ShouldDoFullPaintInvalidation());
   EXPECT_TRUE(object->NeedsPaintOffsetAndVisualRectUpdate());
-  EXPECT_TRUE(parent->MayNeedPaintInvalidation());
+  EXPECT_TRUE(parent->ShouldCheckForPaintInvalidation());
   EXPECT_TRUE(parent->NeedsPaintOffsetAndVisualRectUpdate());
   object->ClearPaintInvalidationFlags();
   EXPECT_FALSE(object->ShouldDoFullPaintInvalidation());
   EXPECT_FALSE(object->NeedsPaintOffsetAndVisualRectUpdate());
   parent->ClearPaintInvalidationFlags();
-  EXPECT_FALSE(parent->MayNeedPaintInvalidation());
+  EXPECT_FALSE(parent->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(parent->NeedsPaintOffsetAndVisualRectUpdate());
 
-  object->SetMayNeedPaintInvalidation();
-  EXPECT_TRUE(object->MayNeedPaintInvalidation());
+  object->SetShouldCheckForPaintInvalidation();
+  EXPECT_TRUE(object->ShouldCheckForPaintInvalidation());
   EXPECT_TRUE(object->NeedsPaintOffsetAndVisualRectUpdate());
-  EXPECT_TRUE(parent->MayNeedPaintInvalidation());
+  EXPECT_TRUE(parent->ShouldCheckForPaintInvalidation());
   EXPECT_TRUE(parent->NeedsPaintOffsetAndVisualRectUpdate());
   object->ClearPaintInvalidationFlags();
-  EXPECT_FALSE(object->MayNeedPaintInvalidation());
+  EXPECT_FALSE(object->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(object->NeedsPaintOffsetAndVisualRectUpdate());
   parent->ClearPaintInvalidationFlags();
-  EXPECT_FALSE(parent->MayNeedPaintInvalidation());
+  EXPECT_FALSE(parent->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(parent->NeedsPaintOffsetAndVisualRectUpdate());
 
   object->SetShouldDoFullPaintInvalidationWithoutGeometryChange();
   EXPECT_TRUE(object->ShouldDoFullPaintInvalidation());
   EXPECT_FALSE(object->NeedsPaintOffsetAndVisualRectUpdate());
-  EXPECT_TRUE(parent->MayNeedPaintInvalidation());
+  EXPECT_TRUE(parent->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(parent->NeedsPaintOffsetAndVisualRectUpdate());
-  object->SetMayNeedPaintInvalidation();
+  object->SetShouldCheckForPaintInvalidation();
   EXPECT_TRUE(object->NeedsPaintOffsetAndVisualRectUpdate());
   EXPECT_TRUE(parent->NeedsPaintOffsetAndVisualRectUpdate());
   object->ClearPaintInvalidationFlags();
-  EXPECT_FALSE(object->MayNeedPaintInvalidation());
+  EXPECT_FALSE(object->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(object->NeedsPaintOffsetAndVisualRectUpdate());
   parent->ClearPaintInvalidationFlags();
-  EXPECT_FALSE(parent->MayNeedPaintInvalidation());
+  EXPECT_FALSE(parent->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(parent->NeedsPaintOffsetAndVisualRectUpdate());
 
-  object->SetMayNeedPaintInvalidationWithoutGeometryChange();
-  EXPECT_TRUE(object->MayNeedPaintInvalidation());
+  object->SetShouldCheckForPaintInvalidationWithoutGeometryChange();
+  EXPECT_TRUE(object->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(object->NeedsPaintOffsetAndVisualRectUpdate());
-  EXPECT_TRUE(parent->MayNeedPaintInvalidation());
+  EXPECT_TRUE(parent->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(parent->NeedsPaintOffsetAndVisualRectUpdate());
-  object->SetMayNeedPaintInvalidation();
+  object->SetShouldCheckForPaintInvalidation();
   EXPECT_TRUE(object->NeedsPaintOffsetAndVisualRectUpdate());
   EXPECT_TRUE(parent->NeedsPaintOffsetAndVisualRectUpdate());
   object->ClearPaintInvalidationFlags();
-  EXPECT_FALSE(object->MayNeedPaintInvalidation());
+  EXPECT_FALSE(object->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(object->NeedsPaintOffsetAndVisualRectUpdate());
   parent->ClearPaintInvalidationFlags();
-  EXPECT_FALSE(parent->MayNeedPaintInvalidation());
+  EXPECT_FALSE(parent->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(parent->NeedsPaintOffsetAndVisualRectUpdate());
 }
 
diff --git a/third_party/blink/renderer/core/layout/layout_table.cc b/third_party/blink/renderer/core/layout/layout_table.cc
index d123137..abc5986 100644
--- a/third_party/blink/renderer/core/layout/layout_table.cc
+++ b/third_party/blink/renderer/core/layout/layout_table.cc
@@ -476,7 +476,7 @@
     UpdateFragmentationInfoForChild(caption);
 
   if (!SelfNeedsLayout())
-    caption.SetMayNeedPaintInvalidation();
+    caption.SetShouldCheckForPaintInvalidation();
 
   SetLogicalHeight(LogicalHeight() + caption.LogicalHeight() +
                    CollapsedMarginBeforeForChild(caption) +
@@ -878,7 +878,7 @@
   collapsed_borders_valid_ = false;
   needs_invalidate_collapsed_borders_for_all_cells_ = true;
   collapsed_outer_borders_valid_ = false;
-  SetMayNeedPaintInvalidation();
+  SetShouldCheckForPaintInvalidation();
 }
 
 void LayoutTable::InvalidateCollapsedBordersForAllCellsIfNeeded() {
@@ -1638,9 +1638,9 @@
   }
 }
 
-PaintInvalidationReason LayoutTable::InvalidatePaint(
+void LayoutTable::InvalidatePaint(
     const PaintInvalidatorContext& context) const {
-  return TablePaintInvalidator(*this, context).InvalidatePaint();
+  TablePaintInvalidator(*this, context).InvalidatePaint();
 }
 
 LayoutUnit LayoutTable::PaddingTop() const {
diff --git a/third_party/blink/renderer/core/layout/layout_table.h b/third_party/blink/renderer/core/layout/layout_table.h
index 6b9835b..2c5835d 100644
--- a/third_party/blink/renderer/core/layout/layout_table.h
+++ b/third_party/blink/renderer/core/layout/layout_table.h
@@ -428,8 +428,7 @@
   void SimplifiedNormalFlowLayout() override;
   bool RecalcOverflowAfterStyleChange() override;
   void EnsureIsReadyForPaintInvalidation() override;
-  PaintInvalidationReason InvalidatePaint(
-      const PaintInvalidatorContext&) const override;
+  void InvalidatePaint(const PaintInvalidatorContext&) const override;
   bool PaintedOutputOfObjectHasNoEffectRegardlessOfSize() const override;
 
  private:
diff --git a/third_party/blink/renderer/core/layout/layout_table_cell.cc b/third_party/blink/renderer/core/layout/layout_table_cell.cc
index e08a856c..07472c7e 100644
--- a/third_party/blink/renderer/core/layout/layout_table_cell.cc
+++ b/third_party/blink/renderer/core/layout/layout_table_cell.cc
@@ -1215,9 +1215,9 @@
   return LayoutBlock::HasLineIfEmpty();
 }
 
-PaintInvalidationReason LayoutTableCell::InvalidatePaint(
+void LayoutTableCell::InvalidatePaint(
     const PaintInvalidatorContext& context) const {
-  return TableCellPaintInvalidator(*this, context).InvalidatePaint();
+  TableCellPaintInvalidator(*this, context).InvalidatePaint();
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/layout/layout_table_cell.h b/third_party/blink/renderer/core/layout/layout_table_cell.h
index 859bb4f..2299fe6 100644
--- a/third_party/blink/renderer/core/layout/layout_table_cell.h
+++ b/third_party/blink/renderer/core/layout/layout_table_cell.h
@@ -356,8 +356,7 @@
       const LayoutRect& container_rect,
       TouchAction container_whitelisted_touch_action) const override;
 
-  PaintInvalidationReason InvalidatePaint(
-      const PaintInvalidatorContext&) const override;
+  void InvalidatePaint(const PaintInvalidatorContext&) const override;
 
   LayoutSize OffsetFromContainerInternal(
       const LayoutObject*,
diff --git a/third_party/blink/renderer/core/layout/layout_table_section.cc b/third_party/blink/renderer/core/layout/layout_table_section.cc
index 07b1f20..48c2d52 100644
--- a/third_party/blink/renderer/core/layout/layout_table_section.cc
+++ b/third_party/blink/renderer/core/layout/layout_table_section.cc
@@ -1271,7 +1271,7 @@
         // need a layout. In this case, we know we're going to issue paint
         // invalidations ourselves (and the child) anyway.
         if (!Table()->SelfNeedsLayout())
-          cell->SetMayNeedPaintInvalidation();
+          cell->SetShouldCheckForPaintInvalidation();
       }
     }
     if (row)
diff --git a/third_party/blink/renderer/core/layout/layout_view.cc b/third_party/blink/renderer/core/layout/layout_view.cc
index 9aea5af..3241d32 100644
--- a/third_party/blink/renderer/core/layout/layout_view.cc
+++ b/third_party/blink/renderer/core/layout/layout_view.cc
@@ -477,13 +477,13 @@
 
 void LayoutView::SetShouldDoFullPaintInvalidationForViewAndAllDescendants() {
   if (RuntimeEnabledFeatures::SlimmingPaintV2Enabled())
-    SetShouldDoFullPaintInvalidationIncludingNonCompositingDescendants();
+    SetSubtreeShouldDoFullPaintInvalidation();
   else
     SetShouldDoFullPaintInvalidationForViewAndAllDescendantsInternal(this);
 }
 
 void LayoutView::InvalidatePaintForViewAndCompositedLayers() {
-  SetShouldDoFullPaintInvalidationIncludingNonCompositingDescendants();
+  SetSubtreeShouldDoFullPaintInvalidation();
 
   // The only way we know how to hit these ASSERTS below this point is via the
   // Chromium OS login screen.
@@ -886,7 +886,7 @@
     if (NeedsLayout())
       return result;
     if (GetFrameView()->VisualViewportSuppliesScrollbars())
-      SetMayNeedPaintInvalidation();
+      SetShouldCheckForPaintInvalidation();
     GetFrameView()->AdjustViewSize();
     SetNeedsPaintPropertyUpdate();
     if (Layer())
diff --git a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
index 2ce9008..a1baaf90 100644
--- a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
+++ b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
@@ -165,11 +165,13 @@
 NGExclusionSpace::NGExclusionSpace()
     : exclusions_(RefVector<scoped_refptr<const NGExclusion>>::Create()),
       num_exclusions_(0),
+      both_clear_offset_(LayoutUnit::Min()),
       derived_geometry_(nullptr) {}
 
 NGExclusionSpace::NGExclusionSpace(const NGExclusionSpace& other)
     : exclusions_(other.exclusions_),
       num_exclusions_(other.num_exclusions_),
+      both_clear_offset_(other.both_clear_offset_),
       derived_geometry_(std::move(other.derived_geometry_)) {
   // This copy-constructor does fun things. It moves the derived_geometry_ to
   // the newly created exclusion space where it'll more-likely be used.
@@ -203,6 +205,9 @@
   if (derived_geometry_)
     derived_geometry_->Add(exclusion);
 
+  both_clear_offset_ =
+      std::max(both_clear_offset_, exclusion->rect.BlockEndOffset());
+
   exclusions_->push_back(std::move(exclusion));
   num_exclusions_++;
 }
diff --git a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
index 1536cd4..0b5da72 100644
--- a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
+++ b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
@@ -38,6 +38,15 @@
       const NGBfcOffset& offset,
       const LayoutUnit available_inline_size,
       const NGLogicalSize& minimum_size) const {
+    // If the area clears all floats, we can just return the layout opportunity
+    // which matches the available space.
+    if (offset.block_offset >= both_clear_offset_) {
+      NGBfcOffset end_offset(
+          offset.line_offset + available_inline_size.ClampNegativeToZero(),
+          LayoutUnit::Max());
+      return NGLayoutOpportunity(NGBfcRect(offset, end_offset), nullptr);
+    }
+
     return GetDerivedGeometry().FindLayoutOpportunity(
         offset, available_inline_size, minimum_size);
   }
@@ -45,12 +54,25 @@
   Vector<NGLayoutOpportunity> AllLayoutOpportunities(
       const NGBfcOffset& offset,
       const LayoutUnit available_inline_size) const {
+    // If the area clears all floats, we can just return a single layout
+    // opportunity which matches the available space.
+    if (offset.block_offset >= both_clear_offset_) {
+      NGBfcOffset end_offset(
+          offset.line_offset + available_inline_size.ClampNegativeToZero(),
+          LayoutUnit::Max());
+      return Vector<NGLayoutOpportunity>(
+          {NGLayoutOpportunity(NGBfcRect(offset, end_offset), nullptr)});
+    }
+
     return GetDerivedGeometry().AllLayoutOpportunities(offset,
                                                        available_inline_size);
   }
 
   // Returns the clearance offset based on the provided {@code clear_type}.
   LayoutUnit ClearanceOffset(EClear clear_type) const {
+    if (clear_type == EClear::kNone)
+      return LayoutUnit::Min();
+
     return GetDerivedGeometry().ClearanceOffset(clear_type);
   }
 
@@ -144,6 +166,7 @@
   // space has, which may differ to the number of exclusions in the Vector.
   scoped_refptr<RefVector<scoped_refptr<const NGExclusion>>> exclusions_;
   size_t num_exclusions_;
+  LayoutUnit both_clear_offset_;
 
   // The derived geometry struct, is the data-structure which handles all of the
   // queries on the exclusion space. It can always be rebuilt from exclusions_
diff --git a/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc b/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
index 6a9fb409..3bfef2d 100644
--- a/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
+++ b/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
@@ -266,7 +266,7 @@
   if (paint_fragment) {
     // When paint fragment is replaced, the subtree needs paint invalidation to
     // re-compute paint properties in NGPaintFragment.
-    Base::SetShouldDoFullPaintInvalidation(PaintInvalidationReason::kSubtree);
+    Base::SetSubtreeShouldDoFullPaintInvalidation();
   }
 
   if (last_paint_fragment) {
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
index cb2b6c2..cc6f148 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
@@ -1844,12 +1844,6 @@
       .SetBfcOffset(child_data.bfc_offset_estimate)
       .SetMarginStrut(child_data.margin_strut);
 
-  if (!is_new_fc) {
-    space_builder.SetExclusionSpace(*exclusion_space_);
-    space_builder.SetAdjoiningFloatTypes(
-        container_builder_.AdjoiningFloatTypes());
-  }
-
   if (!container_builder_.BfcBlockOffset() &&
       ConstraintSpace().FloatsBfcBlockOffset()) {
     space_builder.SetFloatsBfcBlockOffset(
@@ -1884,6 +1878,12 @@
   if (child_data.force_clearance)
     space_builder.SetShouldForceClearance(true);
 
+  if (!is_new_fc) {
+    space_builder.SetExclusionSpace(*exclusion_space_);
+    space_builder.SetAdjoiningFloatTypes(
+        container_builder_.AdjoiningFloatTypes());
+  }
+
   LayoutUnit space_available;
   if (ConstraintSpace().HasBlockFragmentation()) {
     space_available = ConstraintSpace().FragmentainerSpaceAtBfcStart();
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
index 5c1f819..cf0a524 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
@@ -168,7 +168,7 @@
       // -dynamic.html
       // TODO(layoutng): See if we can optimize this. When we natively
       // support relative positioning in NG we can probably remove this,
-      box_->SetMayNeedPaintInvalidation();
+      box_->SetShouldCheckForPaintInvalidation();
 
       // We have to re-set the cached result here, because it is used for
       // LayoutNGMixin::CurrentFragment and therefore has to be up-to-date.
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.cc
index c1d14a5..ba9064af 100644
--- a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.cc
+++ b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.cc
@@ -115,7 +115,7 @@
     // if the client is one that could have a LayoutSVGInlineText use a
     // paint invalidation reason that will force paint invalidation of the
     // entire <text>/<tspan>/... subtree.
-    client.SetShouldDoFullPaintInvalidation(
+    client.SetSubtreeShouldDoFullPaintInvalidation(
         PaintInvalidationReason::kSVGResource);
     client.InvalidateClipPathCache();
     // Invalidate paint properties to update effects if any.
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_marker.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_marker.cc
index 9e256694..659ee17 100644
--- a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_marker.cc
+++ b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_marker.cc
@@ -127,7 +127,6 @@
 }
 
 void LayoutSVGResourceMarker::SetNeedsTransformUpdate() {
-  SetMayNeedPaintInvalidationSubtree();
   // The transform paint property relies on the SVG transform being up-to-date
   // (see: PaintPropertyTreeBuilder::updateTransformForNonRootSVG).
   SetNeedsPaintPropertyUpdate();
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
index af6a5074..6de0dd4 100644
--- a/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
+++ b/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
@@ -196,7 +196,7 @@
   // mark the entire subtree as needing paint invalidation checking.
   if (transform_change != SVGTransformChange::kNone ||
       viewport_may_have_changed) {
-    SetMayNeedPaintInvalidationSubtree();
+    SetSubtreeShouldCheckForPaintInvalidation();
     SetNeedsPaintPropertyUpdate();
 
     if (Layer())
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_transformable_container.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_transformable_container.cc
index 5ed2cc5..9859027 100644
--- a/third_party/blink/renderer/core/layout/svg/layout_svg_transformable_container.cc
+++ b/third_party/blink/renderer/core/layout/svg/layout_svg_transformable_container.cc
@@ -68,7 +68,6 @@
 }
 
 void LayoutSVGTransformableContainer::SetNeedsTransformUpdate() {
-  SetMayNeedPaintInvalidationSubtree();
   // The transform paint property relies on the SVG transform being up-to-date
   // (see: PaintPropertyTreeBuilder::updateTransformForNonRootSVG).
   SetNeedsPaintPropertyUpdate();
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_viewport_container.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_viewport_container.cc
index d86c420..e03a672e 100644
--- a/third_party/blink/renderer/core/layout/svg/layout_svg_viewport_container.cc
+++ b/third_party/blink/renderer/core/layout/svg/layout_svg_viewport_container.cc
@@ -56,7 +56,6 @@
 }
 
 void LayoutSVGViewportContainer::SetNeedsTransformUpdate() {
-  SetMayNeedPaintInvalidationSubtree();
   // The transform paint property relies on the SVG transform being up-to-date
   // (see: PaintPropertyTreeBuilder::updateTransformForNonRootSVG).
   SetNeedsPaintPropertyUpdate();
diff --git a/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc b/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc
index 248409d..a013c09 100644
--- a/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc
+++ b/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc
@@ -118,7 +118,7 @@
 
   // This manual invalidation is necessary to avoid a DCHECK failure in
   // FindVisualRectNeedingUpdateScopeBase::CheckVisualRect().
-  FrameView().GetLayoutView()->SetMayNeedPaintInvalidationSubtree();
+  FrameView().GetLayoutView()->SetSubtreeShouldCheckForPaintInvalidation();
 
   FrameView().UpdateAllLifecyclePhases();
 }
diff --git a/third_party/blink/renderer/core/paint/BUILD.gn b/third_party/blink/renderer/core/paint/BUILD.gn
index d8e2d9b4f..e85edd0 100644
--- a/third_party/blink/renderer/core/paint/BUILD.gn
+++ b/third_party/blink/renderer/core/paint/BUILD.gn
@@ -78,8 +78,6 @@
     "ellipsis_box_painter.h",
     "embedded_content_painter.cc",
     "embedded_content_painter.h",
-    "embedded_object_paint_invalidator.cc",
-    "embedded_object_paint_invalidator.h",
     "embedded_object_painter.cc",
     "embedded_object_painter.h",
     "fallback_theme.cc",
@@ -102,8 +100,6 @@
     "frame_set_painter.h",
     "grid_painter.cc",
     "grid_painter.h",
-    "html_canvas_paint_invalidator.cc",
-    "html_canvas_paint_invalidator.h",
     "html_canvas_painter.cc",
     "html_canvas_painter.h",
     "image_painter.cc",
diff --git a/third_party/blink/renderer/core/paint/block_paint_invalidator.cc b/third_party/blink/renderer/core/paint/block_paint_invalidator.cc
index f9a48ba5..633e8e8 100644
--- a/third_party/blink/renderer/core/paint/block_paint_invalidator.cc
+++ b/third_party/blink/renderer/core/paint/block_paint_invalidator.cc
@@ -20,15 +20,12 @@
   block_.GetFrame()->GetPage()->GetDragCaret().ClearPreviousVisualRect(block_);
 }
 
-PaintInvalidationReason BlockPaintInvalidator::InvalidatePaint(
+void BlockPaintInvalidator::InvalidatePaint(
     const PaintInvalidatorContext& context) {
-  PaintInvalidationReason reason =
-      BoxPaintInvalidator(block_, context).InvalidatePaint();
+  BoxPaintInvalidator(block_, context).InvalidatePaint();
 
   block_.GetFrame()->Selection().InvalidatePaint(block_, context);
   block_.GetFrame()->GetPage()->GetDragCaret().InvalidatePaint(block_, context);
-
-  return reason;
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/block_paint_invalidator.h b/third_party/blink/renderer/core/paint/block_paint_invalidator.h
index 988b0ce2..7101dbdc 100644
--- a/third_party/blink/renderer/core/paint/block_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/block_paint_invalidator.h
@@ -20,7 +20,7 @@
   BlockPaintInvalidator(const LayoutBlock& block) : block_(block) {}
 
   void ClearPreviousVisualRects();
-  PaintInvalidationReason InvalidatePaint(const PaintInvalidatorContext&);
+  void InvalidatePaint(const PaintInvalidatorContext&);
 
  private:
   const LayoutBlock& block_;
diff --git a/third_party/blink/renderer/core/paint/box_paint_invalidator.cc b/third_party/blink/renderer/core/paint/box_paint_invalidator.cc
index 562dcfd..82ac60a 100644
--- a/third_party/blink/renderer/core/paint/box_paint_invalidator.cc
+++ b/third_party/blink/renderer/core/paint/box_paint_invalidator.cc
@@ -225,36 +225,17 @@
   }
 }
 
-PaintInvalidationReason BoxPaintInvalidator::InvalidatePaint() {
+void BoxPaintInvalidator::InvalidatePaint() {
   InvalidateBackground();
 
-  PaintInvalidationReason reason = ComputePaintInvalidationReason();
-  if (reason == PaintInvalidationReason::kIncremental) {
-    if (box_.PreviousSize() != box_.Size()) {
-      context_.painting_layer->SetNeedsRepaint();
-      box_.InvalidateDisplayItemClients(reason);
-    } else {
-      reason = PaintInvalidationReason::kNone;
-    }
-
-    // Though we have done incremental invalidation, we still need to call
-    // ObjectPaintInvalidator with PaintInvalidationNone to do any other
-    // required operations.
-    reason = std::max(reason, ObjectPaintInvalidatorWithContext(box_, context_)
-                                  .InvalidatePaintWithComputedReason(
-                                      PaintInvalidationReason::kNone));
-  } else {
-    reason = ObjectPaintInvalidatorWithContext(box_, context_)
-                 .InvalidatePaintWithComputedReason(reason);
-  }
+  ObjectPaintInvalidatorWithContext(box_, context_)
+      .InvalidatePaintWithComputedReason(ComputePaintInvalidationReason());
 
   if (PaintLayerScrollableArea* area = box_.GetScrollableArea())
     area->InvalidatePaintOfScrollControlsIfNeeded(context_);
 
   // This is for the next invalidatePaintIfNeeded so must be at the end.
   SavePreviousBoxGeometriesIfNeeded();
-
-  return reason;
 }
 
 bool BoxPaintInvalidator::
diff --git a/third_party/blink/renderer/core/paint/box_paint_invalidator.h b/third_party/blink/renderer/core/paint/box_paint_invalidator.h
index 120692d..9cd71dc 100644
--- a/third_party/blink/renderer/core/paint/box_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/box_paint_invalidator.h
@@ -25,7 +25,7 @@
 
   static void BoxWillBeDestroyed(const LayoutBox&);
 
-  PaintInvalidationReason InvalidatePaint();
+  void InvalidatePaint();
 
  private:
   friend class BoxPaintInvalidatorTest;
diff --git a/third_party/blink/renderer/core/paint/box_paint_invalidator_test.cc b/third_party/blink/renderer/core/paint/box_paint_invalidator_test.cc
index 92c92a0..fd7efda 100644
--- a/third_party/blink/renderer/core/paint/box_paint_invalidator_test.cc
+++ b/third_party/blink/renderer/core/paint/box_paint_invalidator_test.cc
@@ -46,7 +46,7 @@
 
     GetDocument().View()->UpdateAllLifecyclePhases();
     auto& target = *GetDocument().getElementById("target");
-    const auto& box = *ToLayoutBox(target.GetLayoutObject());
+    auto& box = *ToLayoutBox(target.GetLayoutObject());
     LayoutRect visual_rect = box.FirstFragment().VisualRect();
     LayoutPoint paint_offset = box.FirstFragment().PaintOffset();
 
@@ -79,6 +79,9 @@
           height: 100px;
           transform-origin: 0 0;
         }
+        .background {
+          background: blue;
+        }
         .border {
           border-width: 20px 10px;
           border-style: solid;
@@ -105,7 +108,6 @@
 
   EXPECT_TRUE(box.PaintedOutputOfObjectHasNoEffectRegardlessOfSize());
   LayoutRect visual_rect = box.FirstFragment().VisualRect();
-  EXPECT_EQ(LayoutRect(0, 0, 50, 100), visual_rect);
 
   // No geometry change.
   EXPECT_EQ(
@@ -139,7 +141,7 @@
   target.setAttribute(HTMLNames::styleAttr, "background: blue");
   GetDocument().View()->UpdateAllLifecyclePhases();
 
-  box.SetMayNeedPaintInvalidation();
+  box.SetShouldCheckForPaintInvalidation();
   LayoutRect visual_rect = box.FirstFragment().VisualRect();
   EXPECT_EQ(LayoutRect(0, 0, 50, 100), visual_rect);
 
@@ -186,8 +188,8 @@
   // The target initially has border.
   ExpectFullPaintInvalidationOnGeometryChange("With border");
 
-  // Clear border.
-  target.setAttribute(HTMLNames::classAttr, "");
+  // Clear border, set background.
+  target.setAttribute(HTMLNames::classAttr, "background");
   target.setAttribute(HTMLNames::styleAttr, "border-radius: 5px");
   ExpectFullPaintInvalidationOnGeometryChange("With border-radius");
 
diff --git a/third_party/blink/renderer/core/paint/box_painter.cc b/third_party/blink/renderer/core/paint/box_painter.cc
index b856f70..473b45f 100644
--- a/third_party/blink/renderer/core/paint/box_painter.cc
+++ b/third_party/blink/renderer/core/paint/box_painter.cc
@@ -111,8 +111,7 @@
   // non-delayed-invalidation animated background, which should be ignored.
   if (RuntimeEnabledFeatures::PaintUnderInvalidationCheckingEnabled() &&
       (style.Appearance() == kMediaSliderPart ||
-       layout_box_.FullPaintInvalidationReason() ==
-           PaintInvalidationReason::kDelayedFull)) {
+       layout_box_.ShouldDelayFullPaintInvalidation())) {
     cache_skipper.emplace(paint_info.context);
   }
 
diff --git a/third_party/blink/renderer/core/paint/embedded_object_paint_invalidator.cc b/third_party/blink/renderer/core/paint/embedded_object_paint_invalidator.cc
deleted file mode 100644
index c81ef41..0000000
--- a/third_party/blink/renderer/core/paint/embedded_object_paint_invalidator.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/core/paint/embedded_object_paint_invalidator.h"
-
-#include "third_party/blink/renderer/core/exported/web_plugin_container_impl.h"
-#include "third_party/blink/renderer/core/layout/layout_embedded_object.h"
-#include "third_party/blink/renderer/core/paint/box_paint_invalidator.h"
-
-namespace blink {
-
-PaintInvalidationReason EmbeddedObjectPaintInvalidator::InvalidatePaint() {
-  PaintInvalidationReason reason =
-      BoxPaintInvalidator(embedded_object_, context_).InvalidatePaint();
-
-  WebPluginContainerImpl* plugin = embedded_object_.Plugin();
-  if (plugin)
-    plugin->InvalidatePaint();
-
-  return reason;
-}
-
-}  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/embedded_object_paint_invalidator.h b/third_party/blink/renderer/core/paint/embedded_object_paint_invalidator.h
deleted file mode 100644
index d9c0a11..0000000
--- a/third_party/blink/renderer/core/paint/embedded_object_paint_invalidator.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_EMBEDDED_OBJECT_PAINT_INVALIDATOR_H_
-#define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_EMBEDDED_OBJECT_PAINT_INVALIDATOR_H_
-
-#include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
-
-namespace blink {
-
-class LayoutEmbeddedObject;
-struct PaintInvalidatorContext;
-
-class EmbeddedObjectPaintInvalidator {
-  STACK_ALLOCATED();
-
- public:
-  EmbeddedObjectPaintInvalidator(const LayoutEmbeddedObject& embedded_object,
-                                 const PaintInvalidatorContext& context)
-      : embedded_object_(embedded_object), context_(context) {}
-
-  PaintInvalidationReason InvalidatePaint();
-
- private:
-  const LayoutEmbeddedObject& embedded_object_;
-  const PaintInvalidatorContext& context_;
-};
-
-}  // namespace blink
-
-#endif
diff --git a/third_party/blink/renderer/core/paint/html_canvas_paint_invalidator.cc b/third_party/blink/renderer/core/paint/html_canvas_paint_invalidator.cc
deleted file mode 100644
index c6e78348..0000000
--- a/third_party/blink/renderer/core/paint/html_canvas_paint_invalidator.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/core/paint/html_canvas_paint_invalidator.h"
-
-#include "third_party/blink/renderer/core/html/canvas/html_canvas_element.h"
-#include "third_party/blink/renderer/core/layout/layout_html_canvas.h"
-#include "third_party/blink/renderer/core/paint/box_paint_invalidator.h"
-#include "third_party/blink/renderer/core/paint/paint_invalidator.h"
-
-namespace blink {
-
-PaintInvalidationReason HTMLCanvasPaintInvalidator::InvalidatePaint() {
-  auto* element = ToHTMLCanvasElement(html_canvas_.GetNode());
-  if (element->IsDirty())
-    element->DoDeferredPaintInvalidation();
-
-  return BoxPaintInvalidator(html_canvas_, context_).InvalidatePaint();
-}
-
-}  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/html_canvas_paint_invalidator.h b/third_party/blink/renderer/core/paint/html_canvas_paint_invalidator.h
deleted file mode 100644
index fdd94b4..0000000
--- a/third_party/blink/renderer/core/paint/html_canvas_paint_invalidator.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_HTML_CANVAS_PAINT_INVALIDATOR_H_
-#define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_HTML_CANVAS_PAINT_INVALIDATOR_H_
-
-#include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
-
-namespace blink {
-
-class LayoutHTMLCanvas;
-struct PaintInvalidatorContext;
-
-class HTMLCanvasPaintInvalidator {
-  STACK_ALLOCATED();
-
- public:
-  HTMLCanvasPaintInvalidator(const LayoutHTMLCanvas& html_canvas,
-                             const PaintInvalidatorContext& context)
-      : html_canvas_(html_canvas), context_(context) {}
-
-  PaintInvalidationReason InvalidatePaint();
-
- private:
-  const LayoutHTMLCanvas& html_canvas_;
-  const PaintInvalidatorContext& context_;
-};
-
-}  // namespace blink
-
-#endif
diff --git a/third_party/blink/renderer/core/paint/object_paint_invalidator.cc b/third_party/blink/renderer/core/paint/object_paint_invalidator.cc
index 88f1a5c6..eb66fe4 100644
--- a/third_party/blink/renderer/core/paint/object_paint_invalidator.cc
+++ b/third_party/blink/renderer/core/paint/object_paint_invalidator.cc
@@ -285,7 +285,7 @@
 }
 
 DISABLE_CFI_PERF
-void ObjectPaintInvalidatorWithContext::InvalidateSelection(
+PaintInvalidationReason ObjectPaintInvalidatorWithContext::InvalidateSelection(
     PaintInvalidationReason reason) {
   // In LayoutNG, if NGPaintFragment paints the selection, we invalidate for
   // selection change in PaintInvalidator.
@@ -294,15 +294,15 @@
       !object_.IsLayoutReplaced() &&
       NGPaintFragment::InlineFragmentsFor(&object_)
           .IsInLayoutNGInlineFormattingContext())
-    return;
+    return reason;
 
   // Update selection rect when we are doing full invalidation with geometry
   // change (in case that the object is moved, composite status changed, etc.)
   // or shouldInvalidationSelection is set (in case that the selection itself
   // changed).
-  bool full_invalidation = IsImmediateFullPaintInvalidationReason(reason);
+  bool full_invalidation = IsFullPaintInvalidationReason(reason);
   if (!full_invalidation && !object_.ShouldInvalidateSelection())
-    return;
+    return reason;
 
   LayoutRect old_selection_rect = object_.SelectionVisualRect();
   LayoutRect new_selection_rect;
@@ -320,70 +320,50 @@
   object_.GetMutableForPainting().SetSelectionVisualRect(new_selection_rect);
 
   if (full_invalidation)
-    return;
+    return reason;
 
   object_.GetMutableForPainting().SetPartialInvalidationVisualRect(
       UnionRect(object_.PartialInvalidationVisualRect(),
                 UnionRect(new_selection_rect, old_selection_rect)));
-  context_.painting_layer->SetNeedsRepaint();
-  object_.InvalidateDisplayItemClients(PaintInvalidationReason::kSelection);
-}
-
-DISABLE_CFI_PERF
-void ObjectPaintInvalidatorWithContext::InvalidatePartialRect(
-    PaintInvalidationReason reason) {
-  if (IsImmediateFullPaintInvalidationReason(reason))
-    return;
-
-  auto rect = object_.PartialInvalidationLocalRect();
-  if (rect.IsEmpty())
-    return;
-
-  context_.MapLocalRectToVisualRect(object_, rect);
-  if (rect.IsEmpty())
-    return;
-
-  object_.GetMutableForPainting().SetPartialInvalidationVisualRect(
-      UnionRect(object_.PartialInvalidationVisualRect(), rect));
-
-  context_.painting_layer->SetNeedsRepaint();
-  object_.InvalidateDisplayItemClients(PaintInvalidationReason::kRectangle);
+  return PaintInvalidationReason::kSelection;
 }
 
 DISABLE_CFI_PERF
 PaintInvalidationReason
-ObjectPaintInvalidatorWithContext::InvalidatePaintWithComputedReason(
+ObjectPaintInvalidatorWithContext::InvalidatePartialRect(
+    PaintInvalidationReason reason) {
+  if (IsFullPaintInvalidationReason(reason))
+    return reason;
+
+  auto rect = object_.PartialInvalidationLocalRect();
+  if (rect.IsEmpty())
+    return reason;
+
+  context_.MapLocalRectToVisualRect(object_, rect);
+  if (rect.IsEmpty())
+    return reason;
+
+  object_.GetMutableForPainting().SetPartialInvalidationVisualRect(
+      UnionRect(object_.PartialInvalidationVisualRect(), rect));
+
+  return PaintInvalidationReason::kRectangle;
+}
+
+DISABLE_CFI_PERF
+void ObjectPaintInvalidatorWithContext::InvalidatePaintWithComputedReason(
     PaintInvalidationReason reason) {
   DCHECK(!(context_.subtree_flags &
            PaintInvalidatorContext::kSubtreeNoInvalidation));
 
-  // This is before InvalidateSelection before the latter will accumulate
-  // selection visual rects to the partial rect mapped in the former.
-  InvalidatePartialRect(reason);
-
-  // We need to invalidate the selection before checking for whether we are
-  // doing a full invalidation.  This is because we need to update the previous
-  // selection rect regardless.
-  InvalidateSelection(reason);
-
-  switch (reason) {
-    case PaintInvalidationReason::kNone:
-      if (object_.IsSVG() &&
-          (context_.subtree_flags &
-           PaintInvalidatorContext::kSubtreeSVGResourceChange)) {
-        reason = PaintInvalidationReason::kSVGResource;
-        break;
-      }
-      return PaintInvalidationReason::kNone;
-    case PaintInvalidationReason::kDelayedFull:
-      return PaintInvalidationReason::kDelayedFull;
-    default:
-      DCHECK(IsImmediateFullPaintInvalidationReason(reason));
-  }
+  // InvalidatePartialRect is before InvalidateSelection because the latter will
+  // accumulate selection visual rects to the partial rect mapped in the former.
+  reason = InvalidatePartialRect(reason);
+  reason = InvalidateSelection(reason);
+  if (reason == PaintInvalidationReason::kNone)
+    return;
 
   context_.painting_layer->SetNeedsRepaint();
   object_.InvalidateDisplayItemClients(reason);
-  return reason;
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/object_paint_invalidator.h b/third_party/blink/renderer/core/paint/object_paint_invalidator.h
index af5aad1..a0605c26 100644
--- a/third_party/blink/renderer/core/paint/object_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/object_paint_invalidator.h
@@ -56,17 +56,16 @@
                                     const PaintInvalidatorContext& context)
       : ObjectPaintInvalidator(object), context_(context) {}
 
-  PaintInvalidationReason InvalidatePaint() {
-    return InvalidatePaintWithComputedReason(ComputePaintInvalidationReason());
+  void InvalidatePaint() {
+    InvalidatePaintWithComputedReason(ComputePaintInvalidationReason());
   }
 
   PaintInvalidationReason ComputePaintInvalidationReason();
-  PaintInvalidationReason InvalidatePaintWithComputedReason(
-      PaintInvalidationReason);
+  void InvalidatePaintWithComputedReason(PaintInvalidationReason);
 
  private:
-  void InvalidateSelection(PaintInvalidationReason);
-  void InvalidatePartialRect(PaintInvalidationReason);
+  PaintInvalidationReason InvalidateSelection(PaintInvalidationReason);
+  PaintInvalidationReason InvalidatePartialRect(PaintInvalidationReason);
 
   const PaintInvalidatorContext& context_;
 };
diff --git a/third_party/blink/renderer/core/paint/object_paint_invalidator_test.cc b/third_party/blink/renderer/core/paint/object_paint_invalidator_test.cc
index 5f053347..88c8cfd 100644
--- a/third_party/blink/renderer/core/paint/object_paint_invalidator_test.cc
+++ b/third_party/blink/renderer/core/paint/object_paint_invalidator_test.cc
@@ -272,7 +272,7 @@
   EXPECT_EQ(LayoutRect(10, 10, 50, 50), target->PartialInvalidationLocalRect());
   target->InvalidatePaintRectangle(LayoutRect(30, 30, 60, 60));
   EXPECT_EQ(LayoutRect(10, 10, 80, 80), target->PartialInvalidationLocalRect());
-  EXPECT_TRUE(target->MayNeedPaintInvalidation());
+  EXPECT_TRUE(target->ShouldCheckForPaintInvalidation());
 
   GetDocument().View()->UpdateAllLifecyclePhasesExceptPaint();
   EXPECT_EQ(LayoutRect(), target->PartialInvalidationLocalRect());
@@ -331,7 +331,7 @@
 
   // Simulate a change without full invalidation or selection change.
   GetDocument().View()->SetTracksPaintInvalidations(true);
-  target->SetMayNeedPaintInvalidation();
+  target->SetShouldCheckForPaintInvalidation();
   GetDocument().View()->UpdateAllLifecyclePhases();
   EXPECT_TRUE(graphics_layer->GetRasterInvalidationTracking()
                   ->Invalidations()
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 b602bf0..367fbce 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
@@ -645,7 +645,8 @@
 
   ScrollableArea* scrollable_area = GetDocument().View()->LayoutViewport();
   ASSERT_EQ(scrollable_area->MaximumScrollOffset().Height(), 0);
-  EXPECT_FALSE(GetDocument().GetLayoutView()->MayNeedPaintInvalidation());
+  EXPECT_FALSE(
+      GetDocument().GetLayoutView()->ShouldCheckForPaintInvalidation());
 
   Element* container = GetDocument().getElementById("container");
   container->setAttribute(HTMLNames::styleAttr,
@@ -653,7 +654,7 @@
   GetDocument().UpdateStyleAndLayoutTree();
 
   EXPECT_EQ(scrollable_area->MaximumScrollOffset().Height(), 1000);
-  EXPECT_TRUE(GetDocument().GetLayoutView()->MayNeedPaintInvalidation());
+  EXPECT_TRUE(GetDocument().GetLayoutView()->ShouldCheckForPaintInvalidation());
 }
 
 TEST_P(PaintAndRasterInvalidationTest,
@@ -696,17 +697,26 @@
 
   auto* target = GetLayoutObjectByElementId("target");
   target->SetShouldDoFullPaintInvalidationWithoutGeometryChange(
-      PaintInvalidationReason::kDelayedFull);
-  EXPECT_EQ(PaintInvalidationReason::kDelayedFull,
+      PaintInvalidationReason::kForTesting);
+  target->SetShouldDelayFullPaintInvalidation();
+  EXPECT_FALSE(target->ShouldDoFullPaintInvalidation());
+  EXPECT_TRUE(target->ShouldDelayFullPaintInvalidation());
+  EXPECT_EQ(PaintInvalidationReason::kForTesting,
             target->FullPaintInvalidationReason());
   EXPECT_FALSE(target->NeedsPaintOffsetAndVisualRectUpdate());
+  EXPECT_TRUE(target->ShouldCheckForPaintInvalidation());
+  EXPECT_TRUE(target->Parent()->ShouldCheckForPaintInvalidation());
 
   GetDocument().View()->SetTracksPaintInvalidations(true);
   GetDocument().View()->UpdateAllLifecyclePhases();
   EXPECT_FALSE(GetRasterInvalidationTracking()->HasInvalidations());
-  EXPECT_EQ(PaintInvalidationReason::kDelayedFull,
+  EXPECT_FALSE(target->ShouldDoFullPaintInvalidation());
+  EXPECT_TRUE(target->ShouldDelayFullPaintInvalidation());
+  EXPECT_EQ(PaintInvalidationReason::kForTesting,
             target->FullPaintInvalidationReason());
   EXPECT_FALSE(target->NeedsPaintOffsetAndVisualRectUpdate());
+  EXPECT_TRUE(target->ShouldCheckForPaintInvalidation());
+  EXPECT_TRUE(target->Parent()->ShouldCheckForPaintInvalidation());
   GetDocument().View()->SetTracksPaintInvalidations(false);
 
   GetDocument().View()->SetTracksPaintInvalidations(true);
@@ -716,9 +726,12 @@
   EXPECT_THAT(GetRasterInvalidationTracking()->Invalidations(),
               UnorderedElementsAre(RasterInvalidationInfo{
                   target, target->DebugName(), IntRect(0, 4000, 100, 100),
-                  PaintInvalidationReason::kFull}));
+                  PaintInvalidationReason::kForTesting}));
   EXPECT_EQ(PaintInvalidationReason::kNone,
             target->FullPaintInvalidationReason());
+  EXPECT_FALSE(target->ShouldDelayFullPaintInvalidation());
+  EXPECT_FALSE(target->ShouldCheckForPaintInvalidation());
+  EXPECT_FALSE(target->Parent()->ShouldCheckForPaintInvalidation());
   EXPECT_FALSE(target->NeedsPaintOffsetAndVisualRectUpdate());
   GetDocument().View()->SetTracksPaintInvalidations(false);
 };
@@ -748,14 +761,6 @@
 
   GetDocument().View()->SetTracksPaintInvalidations(true);
   ToElement(mask_rect->GetNode())->setAttribute("x", "20");
-  GetDocument().View()->UpdateAllLifecyclePhasesExceptPaint();
-
-  EXPECT_EQ(PaintInvalidationReason::kFull,
-            real_rect->GetPaintInvalidationReason());
-  // mask_rect is not cached and validated by any PaintController.
-  EXPECT_EQ(PaintInvalidationReason::kJustCreated,
-            mask_rect->GetPaintInvalidationReason());
-
   GetDocument().View()->UpdateAllLifecyclePhases();
 
   EXPECT_EQ(LayoutRect(), mask_rect->FirstFragment().VisualRect());
diff --git a/third_party/blink/renderer/core/paint/paint_invalidator.cc b/third_party/blink/renderer/core/paint/paint_invalidator.cc
index 2648728..29de612ed 100644
--- a/third_party/blink/renderer/core/paint/paint_invalidator.cc
+++ b/third_party/blink/renderer/core/paint/paint_invalidator.cc
@@ -501,27 +501,22 @@
       UpdateVisualRect(object, *fragment_data, context);
     }
 
-    PaintInvalidationReason reason = object.InvalidatePaint(context);
-    switch (reason) {
-      case PaintInvalidationReason::kDelayedFull:
-        pending_delayed_paint_invalidations_.push_back(&object);
-        break;
-      case PaintInvalidationReason::kSubtree:
-        context.subtree_flags |=
-            (PaintInvalidatorContext::kSubtreeFullInvalidation |
-             PaintInvalidatorContext::
-                 kSubtreeFullInvalidationForStackedContents);
-        break;
-      case PaintInvalidationReason::kSVGResource:
-        context.subtree_flags |=
-            PaintInvalidatorContext::kSubtreeSVGResourceChange;
-        break;
-      default:
-        break;
-    }
+    object.InvalidatePaint(context);
   }
 
-  if (object.MayNeedPaintInvalidationSubtree()) {
+  auto reason = static_cast<const DisplayItemClient&>(object)
+                    .GetPaintInvalidationReason();
+  if (object.ShouldDelayFullPaintInvalidation() &&
+      !IsFullPaintInvalidationReason(reason))
+    pending_delayed_paint_invalidations_.push_back(&object);
+
+  if (object.SubtreeShouldDoFullPaintInvalidation()) {
+    context.subtree_flags |=
+        PaintInvalidatorContext::kSubtreeFullInvalidation |
+        PaintInvalidatorContext::kSubtreeFullInvalidationForStackedContents;
+  }
+
+  if (object.SubtreeShouldCheckForPaintInvalidation()) {
     context.subtree_flags |=
         PaintInvalidatorContext::kSubtreeInvalidationChecking;
   }
@@ -547,16 +542,13 @@
   // TODO(wangxianzhu): Do we need this for SPv2?
   if (!RuntimeEnabledFeatures::SlimmingPaintV2Enabled() &&
       !context.paint_invalidation_container->IsPaintInvalidationContainer() &&
-      object.GetPaintInvalidationReason() != PaintInvalidationReason::kNone)
+      reason != PaintInvalidationReason::kNone)
     InvalidateChromeClient(*context.paint_invalidation_container);
 }
 
 void PaintInvalidator::ProcessPendingDelayedPaintInvalidations() {
-  for (auto* target : pending_delayed_paint_invalidations_) {
-    target->GetMutableForPainting()
-        .SetShouldDoFullPaintInvalidationWithoutGeometryChange(
-            PaintInvalidationReason::kDelayedFull);
-  }
+  for (auto* target : pending_delayed_paint_invalidations_)
+    target->GetMutableForPainting().SetShouldDelayFullPaintInvalidation();
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/paint_invalidator.h b/third_party/blink/renderer/core/paint/paint_invalidator.h
index 7cb3e82..d6e96c5 100644
--- a/third_party/blink/renderer/core/paint/paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/paint_invalidator.h
@@ -8,6 +8,7 @@
 #include "third_party/blink/renderer/core/layout/layout_object.h"
 #include "third_party/blink/renderer/core/paint/paint_property_tree_builder.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
+#include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
@@ -58,8 +59,7 @@
     return subtree_flags &
            (kSubtreeInvalidationChecking | kSubtreeVisualRectUpdate |
             kSubtreeFullInvalidation |
-            kSubtreeFullInvalidationForStackedContents |
-            kSubtreeSVGResourceChange);
+            kSubtreeFullInvalidationForStackedContents);
   }
 
   const PaintInvalidatorContext* ParentContext() const {
@@ -78,10 +78,9 @@
     kSubtreeVisualRectUpdate = 1 << 1,
     kSubtreeFullInvalidation = 1 << 2,
     kSubtreeFullInvalidationForStackedContents = 1 << 3,
-    kSubtreeSVGResourceChange = 1 << 4,
 
     // For repeated objects inside multicolumn.
-    kSubtreeSlowPathRect = 1 << 5,
+    kSubtreeSlowPathRect = 1 << 4,
 
     // When this flag is set, no paint or raster invalidation will be issued
     // for the subtree.
diff --git a/third_party/blink/renderer/core/paint/paint_layer.cc b/third_party/blink/renderer/core/paint/paint_layer.cc
index 77b9981..a881988 100644
--- a/third_party/blink/renderer/core/paint/paint_layer.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer.cc
@@ -811,11 +811,11 @@
 
   if (HasVisibleContent() != previously_has_visible_content) {
     SetNeedsCompositingInputsUpdateInternal();
-    // We need to tell m_layoutObject to recheck its rect because we
+    // We need to tell layout_object_ to recheck its rect because we
     // pretend that invisible LayoutObjects have 0x0 rects. Changing
     // visibility therefore changes our rect and we need to visit
-    // this LayoutObject during the invalidateTreeIfNeeded walk.
-    layout_object_.SetMayNeedPaintInvalidation();
+    // this LayoutObject during the PrePaintTreeWalk.
+    layout_object_.SetShouldCheckForPaintInvalidation();
   }
 
   Update3DTransformedDescendantStatus();
@@ -1455,8 +1455,7 @@
       // can't see this layer (which has been removed) so won't do this for us.
       ObjectPaintInvalidator(GetLayoutObject())
           .InvalidatePaintIncludingNonCompositingDescendants();
-      GetLayoutObject()
-          .SetShouldDoFullPaintInvalidationIncludingNonCompositingDescendants();
+      GetLayoutObject().SetSubtreeShouldDoFullPaintInvalidation();
       did_set_paint_invalidation = true;
     }
   }
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 5455935c..adea385 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
@@ -565,7 +565,7 @@
 
   if (requires_paint_invalidation) {
     GetLayoutBox()->SetShouldDoFullPaintInvalidation();
-    GetLayoutBox()->SetMayNeedPaintInvalidationSubtree();
+    GetLayoutBox()->SetSubtreeShouldCheckForPaintInvalidation();
   } else if (!UsesCompositedScrolling()) {
     // If any scrolling content might have ben clipped by a cull rect, then
     // that cull rect could be affected by scroll offset. For composited
@@ -1892,10 +1892,8 @@
 
 void PaintLayerScrollableArea::InvalidatePaintForStickyDescendants() {
   if (PaintLayerScrollableAreaRareData* d = RareData()) {
-    for (PaintLayer* sticky_layer : d->sticky_constraints_map_.Keys()) {
-      sticky_layer->GetLayoutObject()
-          .SetShouldDoFullPaintInvalidationIncludingNonCompositingDescendants();
-    }
+    for (PaintLayer* sticky_layer : d->sticky_constraints_map_.Keys())
+      sticky_layer->GetLayoutObject().SetSubtreeShouldDoFullPaintInvalidation();
   }
 }
 
@@ -2779,7 +2777,7 @@
 }
 
 void PaintLayerScrollableArea::ScrollControlWasSetNeedsPaintInvalidation() {
-  GetLayoutBox()->SetMayNeedPaintInvalidation();
+  GetLayoutBox()->SetShouldCheckForPaintInvalidation();
 }
 
 void PaintLayerScrollableArea::DidScrollWithScrollbar(
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
index 43af77167..ad41119 100644
--- a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
+++ b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
@@ -1553,13 +1553,27 @@
 static LayoutRect BoundingBoxInPaginationContainer(
     const LayoutObject& object,
     const PaintLayer& enclosing_pagination_layer) {
-  // Non-boxes that have no layer paint in the space of their containing block.
-  if (!object.IsBox() && !object.HasLayer()) {
+  // The special path for fragmented layers ensures that the bounding box also
+  // covers contents visual overflow, so that the fragments will cover all
+  // fragments of contents except for self-painting layers, because we initiate
+  // fragment painting of contents from the layer.
+  if (object.HasLayer() &&
+      ToLayoutBoxModelObject(object)
+          .Layer()
+          ->ShouldFragmentCompositedBounds() &&
+      // Table section may repeat, and doesn't need the special layer path
+      // because it doesn't have contents visual overflow.
+      !object.IsTableSection()) {
+    return ToLayoutBoxModelObject(object).Layer()->PhysicalBoundingBox(
+        &enclosing_pagination_layer);
+  }
+
+  // Non-boxes paint in the space of their containing block.
+  if (!object.IsBox()) {
     const LayoutBox& containining_block = *object.ContainingBlock();
     LayoutRect bounds_rect;
-    // For non-SVG we can get a more accurate result
-    // with LocalVisualRect, instead of falling back to the bounds of the
-    // enclosing block.
+    // For non-SVG we can get a more accurate result with LocalVisualRect,
+    // instead of falling back to the bounds of the enclosing block.
     if (!object.IsSVG()) {
       bounds_rect = object.LocalVisualRect();
       containining_block.FlipForWritingMode(bounds_rect);
@@ -1571,17 +1585,6 @@
                                        enclosing_pagination_layer);
   }
 
-  // The special path for layers ensures that the bounding box also covers
-  // contents visual overflow, so that the fragments will cover all fragments of
-  // contents except for self-painting layers, because we initiate fragment
-  // painting of contents from the layer.
-  // Table section may repeat, and doesn't need the special layer path because
-  // it doesn't have contents visual overflow.
-  if (object.HasLayer() && !object.IsTableSection()) {
-    return ToLayoutBoxModelObject(object).Layer()->PhysicalBoundingBox(
-        &enclosing_pagination_layer);
-  }
-
   // Compute the bounding box without transforms.
   // The object is guaranteed to be a box due to the logic above.
   const LayoutBox& box = ToLayoutBox(object);
@@ -1832,7 +1835,7 @@
     // the entire subtree on paint offset changes.
     full_context_.force_subtree_update = true;
 
-    object_.GetMutableForPainting().SetMayNeedPaintInvalidation();
+    object_.GetMutableForPainting().SetShouldCheckForPaintInvalidation();
     fragment_data_.SetPaintOffset(context_.current.paint_offset);
     fragment_data_.InvalidateClipPathCache();
 
@@ -1991,6 +1994,7 @@
   // under the pagination layer. SPv1* doesn't fragment composited layers,
   // but we still need to set correct pagination offset for correct paint
   // offset calculation.
+  DCHECK(!context_.painting_layer->ShouldFragmentCompositedBounds());
   FragmentData& first_fragment =
       object_.GetMutableForPainting().FirstFragment();
   bool is_paint_invalidation_container = object_.IsPaintInvalidationContainer();
diff --git a/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.cc b/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.cc
index db26d502..f15db7c6 100644
--- a/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.cc
+++ b/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.cc
@@ -16,12 +16,16 @@
 
 namespace blink {
 
+static bool DisplayItemClientIsFullyInvalidated(
+    const DisplayItemClient& client) {
+  return IsFullPaintInvalidationReason(client.GetPaintInvalidationReason());
+}
+
 void TableCellPaintInvalidator::InvalidateContainerForCellGeometryChange(
     const LayoutObject& container,
     const PaintInvalidatorContext& container_context) {
   // We only need to do this if the container hasn't been fully invalidated.
-  DCHECK(
-      !IsFullPaintInvalidationReason(container.GetPaintInvalidationReason()));
+  DCHECK(!DisplayItemClientIsFullyInvalidated(container));
 
   // At this time we have already walked the container for paint invalidation,
   // so we should invalidate the container immediately here instead of setting
@@ -30,7 +34,7 @@
   container.InvalidateDisplayItemClients(PaintInvalidationReason::kGeometry);
 }
 
-PaintInvalidationReason TableCellPaintInvalidator::InvalidatePaint() {
+void TableCellPaintInvalidator::InvalidatePaint() {
   // The cell's containing row and section paint backgrounds behind the cell,
   // and the row or table paints collapsed borders. If the cell's geometry
   // changed and the containers which will paint backgrounds and/or collapsed
@@ -40,7 +44,7 @@
     const auto& row = *cell_.Row();
     const auto& section = *row.Section();
     const auto& table = *section.Table();
-    if (!IsFullPaintInvalidationReason(row.GetPaintInvalidationReason()) &&
+    if (!DisplayItemClientIsFullyInvalidated(row) &&
         (row.StyleRef().HasBackground() ||
          (table.HasCollapsedBorders() &&
           LIKELY(!table.ShouldPaintAllCollapsedBorders())))) {
@@ -48,13 +52,13 @@
     }
 
     if (UNLIKELY(table.ShouldPaintAllCollapsedBorders()) &&
-        !IsFullPaintInvalidationReason(table.GetPaintInvalidationReason())) {
+        !DisplayItemClientIsFullyInvalidated(table)) {
       DCHECK(table.HasCollapsedBorders());
       InvalidateContainerForCellGeometryChange(
           table, *context_.ParentContext()->ParentContext()->ParentContext());
     }
 
-    if (!IsFullPaintInvalidationReason(section.GetPaintInvalidationReason())) {
+    if (!DisplayItemClientIsFullyInvalidated(section)) {
       bool section_paints_background = section.StyleRef().HasBackground();
       if (!section_paints_background) {
         auto col_and_colgroup = section.Table()->ColElementAtAbsoluteColumn(
@@ -72,7 +76,7 @@
     }
   }
 
-  return BlockPaintInvalidator(cell_).InvalidatePaint(context_);
+  BlockPaintInvalidator(cell_).InvalidatePaint(context_);
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.h b/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.h
index b2d129e1..e5a3086 100644
--- a/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.h
@@ -22,7 +22,7 @@
                             const PaintInvalidatorContext& context)
       : cell_(cell), context_(context) {}
 
-  PaintInvalidationReason InvalidatePaint();
+  void InvalidatePaint();
 
  private:
   void InvalidateContainerForCellGeometryChange(
diff --git a/third_party/blink/renderer/core/paint/table_paint_invalidator.cc b/third_party/blink/renderer/core/paint/table_paint_invalidator.cc
index ac25e88..51529225 100644
--- a/third_party/blink/renderer/core/paint/table_paint_invalidator.cc
+++ b/third_party/blink/renderer/core/paint/table_paint_invalidator.cc
@@ -14,9 +14,8 @@
 
 namespace blink {
 
-PaintInvalidationReason TablePaintInvalidator::InvalidatePaint() {
-  PaintInvalidationReason reason =
-      BoxPaintInvalidator(table_, context_).InvalidatePaint();
+void TablePaintInvalidator::InvalidatePaint() {
+  BoxPaintInvalidator(table_, context_).InvalidatePaint();
 
   // If any col changed background, we need to invalidate all sections because
   // col background paints into section's background display item.
@@ -29,7 +28,7 @@
       // LayoutTableCol uses the table's localVisualRect(). Should check column
       // for paint invalidation when table's visual rect changed.
       if (visual_rect_changed)
-        col->SetMayNeedPaintInvalidation();
+        col->SetShouldCheckForPaintInvalidation();
       // This ensures that the backgroundChangedSinceLastPaintInvalidation flag
       // is up-to-date.
       col->EnsureIsReadyForPaintInvalidation();
@@ -52,8 +51,6 @@
               *section, PaintInvalidationReason::kStyle);
     }
   }
-
-  return reason;
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/table_paint_invalidator.h b/third_party/blink/renderer/core/paint/table_paint_invalidator.h
index 315a9bd3..2bcadfb 100644
--- a/third_party/blink/renderer/core/paint/table_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/table_paint_invalidator.h
@@ -21,7 +21,7 @@
                         const PaintInvalidatorContext& context)
       : table_(table), context_(context) {}
 
-  PaintInvalidationReason InvalidatePaint();
+  void InvalidatePaint();
 
  private:
   const LayoutTable& table_;
diff --git a/third_party/blink/renderer/core/scheduler/frame_throttling_test.cc b/third_party/blink/renderer/core/scheduler/frame_throttling_test.cc
index f739924..dd9ee9b 100644
--- a/third_party/blink/renderer/core/scheduler/frame_throttling_test.cc
+++ b/third_party/blink/renderer/core/scheduler/frame_throttling_test.cc
@@ -204,10 +204,9 @@
   inner_view->SetShouldDoFullPaintInvalidation(
       PaintInvalidationReason::kForTesting);
   inner_view->Layer()->SetNeedsRepaint();
-  EXPECT_FALSE(inner_frame_document->View()
-                   ->GetLayoutView()
-                   ->FullPaintInvalidationReason() ==
-               PaintInvalidationReason::kNone);
+  EXPECT_TRUE(inner_frame_document->View()
+                  ->GetLayoutView()
+                  ->ShouldDoFullPaintInvalidation());
   inner_view->Compositor()->SetNeedsCompositingUpdate(
       kCompositingUpdateRebuildTree);
   EXPECT_EQ(kCompositingUpdateRebuildTree,
@@ -219,10 +218,9 @@
   EXPECT_TRUE(inner_frame_document->View()->ShouldThrottleRendering());
 
   EXPECT_FALSE(inner_view->NeedsLayout());
-  EXPECT_FALSE(inner_frame_document->View()
-                   ->GetLayoutView()
-                   ->FullPaintInvalidationReason() ==
-               PaintInvalidationReason::kNone);
+  EXPECT_TRUE(inner_frame_document->View()
+                  ->GetLayoutView()
+                  ->ShouldDoFullPaintInvalidation());
   EXPECT_EQ(kCompositingUpdateRebuildTree,
             inner_view->Compositor()->pending_update_type_);
   EXPECT_TRUE(inner_view->Layer()->NeedsRepaint());
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h
index 2b63218..9e9779b0 100644
--- a/third_party/blink/renderer/core/style/computed_style.h
+++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -287,8 +287,8 @@
   StyleDifference VisualInvalidationDiff(const Document&,
                                          const ComputedStyle&) const;
 
-  void InheritFrom(const ComputedStyle& inherit_parent,
-                   IsAtShadowBoundary = kNotAtShadowBoundary);
+  CORE_EXPORT void InheritFrom(const ComputedStyle& inherit_parent,
+                               IsAtShadowBoundary = kNotAtShadowBoundary);
   void CopyNonInheritedFromCached(const ComputedStyle&);
 
   PseudoId StyleType() const { return static_cast<PseudoId>(StyleTypeInternal()); }
@@ -1079,8 +1079,8 @@
   void ClearResetDirectives();
 
   // Variables.
-  StyleInheritedVariables* InheritedVariables() const;
-  StyleNonInheritedVariables* NonInheritedVariables() const;
+  CORE_EXPORT StyleInheritedVariables* InheritedVariables() const;
+  CORE_EXPORT StyleNonInheritedVariables* NonInheritedVariables() const;
 
   void SetUnresolvedInheritedVariable(const AtomicString&,
                                       scoped_refptr<CSSVariableData>);
diff --git a/third_party/blink/renderer/core/style/style_inherited_variables.cc b/third_party/blink/renderer/core/style/style_inherited_variables.cc
index 8678a01..6d2b2632 100644
--- a/third_party/blink/renderer/core/style/style_inherited_variables.cc
+++ b/third_party/blink/renderer/core/style/style_inherited_variables.cc
@@ -39,6 +39,7 @@
     registered_data_ = other.registered_data_;
     root_ = other.root_;
   }
+  needs_resolution_ = other.needs_resolution_;
 }
 
 CSSVariableData* StyleInheritedVariables::GetVariable(
diff --git a/third_party/blink/renderer/core/style/style_inherited_variables.h b/third_party/blink/renderer/core/style/style_inherited_variables.h
index faadb12d..affa940 100644
--- a/third_party/blink/renderer/core/style/style_inherited_variables.h
+++ b/third_party/blink/renderer/core/style/style_inherited_variables.h
@@ -14,7 +14,8 @@
 
 namespace blink {
 
-class StyleInheritedVariables : public RefCounted<StyleInheritedVariables> {
+class CORE_EXPORT StyleInheritedVariables
+    : public RefCounted<StyleInheritedVariables> {
  public:
   static scoped_refptr<StyleInheritedVariables> Create() {
     return base::AdoptRef(new StyleInheritedVariables());
@@ -31,6 +32,8 @@
 
   void SetVariable(const AtomicString& name,
                    scoped_refptr<CSSVariableData> value) {
+    needs_resolution_ = needs_resolution_ || value->NeedsVariableResolution() ||
+                        value->NeedsUrlResolution();
     data_.Set(name, std::move(value));
   }
   CSSVariableData* GetVariable(const AtomicString& name) const;
@@ -44,8 +47,11 @@
   // using a fallback.
   HashSet<AtomicString> GetCustomPropertyNames() const;
 
+  bool NeedsResolution() const { return needs_resolution_; }
+  void ClearNeedsResolution() { needs_resolution_ = false; }
+
  private:
-  StyleInheritedVariables() : root_(nullptr) {}
+  StyleInheritedVariables() : root_(nullptr), needs_resolution_(false) {}
   StyleInheritedVariables(StyleInheritedVariables& other);
 
   friend class CSSVariableResolver;
@@ -53,6 +59,7 @@
   HashMap<AtomicString, scoped_refptr<CSSVariableData>> data_;
   PersistentHeapHashMap<AtomicString, Member<CSSValue>> registered_data_;
   scoped_refptr<StyleInheritedVariables> root_;
+  bool needs_resolution_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/style/style_non_inherited_variables.cc b/third_party/blink/renderer/core/style/style_non_inherited_variables.cc
index 7496efd..cfb063b 100644
--- a/third_party/blink/renderer/core/style/style_non_inherited_variables.cc
+++ b/third_party/blink/renderer/core/style/style_non_inherited_variables.cc
@@ -42,6 +42,7 @@
     StyleNonInheritedVariables& other) {
   data_ = other.data_;
   registered_data_ = other.registered_data_;
+  needs_resolution_ = other.needs_resolution_;
 }
 
 HashSet<AtomicString> StyleNonInheritedVariables::GetCustomPropertyNames()
diff --git a/third_party/blink/renderer/core/style/style_non_inherited_variables.h b/third_party/blink/renderer/core/style/style_non_inherited_variables.h
index 926fe19..c154f20 100644
--- a/third_party/blink/renderer/core/style/style_non_inherited_variables.h
+++ b/third_party/blink/renderer/core/style/style_non_inherited_variables.h
@@ -17,7 +17,7 @@
 
 namespace blink {
 
-class StyleNonInheritedVariables {
+class CORE_EXPORT StyleNonInheritedVariables {
  public:
   static std::unique_ptr<StyleNonInheritedVariables> Create() {
     return base::WrapUnique(new StyleNonInheritedVariables);
@@ -34,6 +34,8 @@
 
   void SetVariable(const AtomicString& name,
                    scoped_refptr<CSSVariableData> value) {
+    needs_resolution_ = needs_resolution_ || value->NeedsVariableResolution() ||
+                        value->NeedsUrlResolution();
     data_.Set(name, std::move(value));
   }
   CSSVariableData* GetVariable(const AtomicString& name) const;
@@ -46,14 +48,18 @@
 
   HashSet<AtomicString> GetCustomPropertyNames() const;
 
+  bool NeedsResolution() const { return needs_resolution_; }
+  void ClearNeedsResolution() { needs_resolution_ = false; }
+
  private:
-  StyleNonInheritedVariables() = default;
+  StyleNonInheritedVariables() : needs_resolution_(false) {}
   StyleNonInheritedVariables(StyleNonInheritedVariables&);
 
   friend class CSSVariableResolver;
 
   HashMap<AtomicString, scoped_refptr<CSSVariableData>> data_;
   PersistentHeapHashMap<AtomicString, Member<CSSValue>> registered_data_;
+  bool needs_resolution_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/timing/BUILD.gn b/third_party/blink/renderer/core/timing/BUILD.gn
index 43ca5d90..1ffeeff1 100644
--- a/third_party/blink/renderer/core/timing/BUILD.gn
+++ b/third_party/blink/renderer/core/timing/BUILD.gn
@@ -46,6 +46,8 @@
     "sub_task_attribution.h",
     "task_attribution_timing.cc",
     "task_attribution_timing.h",
+    "time_clamper.cc",
+    "time_clamper.h",
     "window_performance.cc",
     "window_performance.h",
     "worker_global_scope_performance.cc",
diff --git a/third_party/blink/renderer/core/timing/performance.cc b/third_party/blink/renderer/core/timing/performance.cc
index e07bc57d..6f6d224 100644
--- a/third_party/blink/renderer/core/timing/performance.cc
+++ b/third_party/blink/renderer/core/timing/performance.cc
@@ -50,10 +50,10 @@
 #include "third_party/blink/renderer/core/timing/performance_observer.h"
 #include "third_party/blink/renderer/core/timing/performance_resource_timing.h"
 #include "third_party/blink/renderer/core/timing/performance_user_timing.h"
+#include "third_party/blink/renderer/core/timing/time_clamper.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_response.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/blink/renderer/platform/time_clamper.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
diff --git a/third_party/blink/renderer/platform/time_clamper.cc b/third_party/blink/renderer/core/timing/time_clamper.cc
similarity index 96%
rename from third_party/blink/renderer/platform/time_clamper.cc
rename to third_party/blink/renderer/core/timing/time_clamper.cc
index 5eb0653..01468ce 100644
--- a/third_party/blink/renderer/platform/time_clamper.cc
+++ b/third_party/blink/renderer/core/timing/time_clamper.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 "third_party/blink/renderer/platform/time_clamper.h"
+#include "third_party/blink/renderer/core/timing/time_clamper.h"
 
 #include "base/bit_cast.h"
 #include "base/rand_util.h"
diff --git a/third_party/blink/renderer/platform/time_clamper.h b/third_party/blink/renderer/core/timing/time_clamper.h
similarity index 78%
rename from third_party/blink/renderer/platform/time_clamper.h
rename to third_party/blink/renderer/core/timing/time_clamper.h
index 76e2888e..b1bfc222 100644
--- a/third_party/blink/renderer/platform/time_clamper.h
+++ b/third_party/blink/renderer/core/timing/time_clamper.h
@@ -2,17 +2,17 @@
 // 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_PLATFORM_TIME_CLAMPER_H_
-#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TIME_CLAMPER_H_
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_TIMING_TIME_CLAMPER_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_TIMING_TIME_CLAMPER_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/platform_export.h"
+#include "third_party/blink/renderer/core/core_export.h"
 
 #include <stdint.h>
 
 namespace blink {
 
-class PLATFORM_EXPORT TimeClamper {
+class CORE_EXPORT TimeClamper {
  public:
   static constexpr double kResolutionSeconds = 0.0001;
 
@@ -39,4 +39,4 @@
 
 }  // namespace blink
 
-#endif  // THIRD_PARTY_BLINK_RENDERER_PLATFORM_TIME_CLAMPER_H_
+#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_TIMING_TIME_CLAMPER_H_
diff --git a/third_party/blink/renderer/platform/time_clamper_test.cc b/third_party/blink/renderer/core/timing/time_clamper_test.cc
similarity index 97%
rename from third_party/blink/renderer/platform/time_clamper_test.cc
rename to third_party/blink/renderer/core/timing/time_clamper_test.cc
index 9a855fc..21cb8ce 100644
--- a/third_party/blink/renderer/platform/time_clamper_test.cc
+++ b/third_party/blink/renderer/core/timing/time_clamper_test.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 "third_party/blink/renderer/platform/time_clamper.h"
+#include "third_party/blink/renderer/core/timing/time_clamper.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc b/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
index e4e9c0a0..15d92a8 100644
--- a/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
+++ b/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
@@ -75,8 +75,12 @@
   DCHECK(!DOMDataStore::ContainsWrapper(this, isolate));
 
   const WrapperTypeInfo* wrapper_type_info = this->GetWrapperTypeInfo();
-  v8::Local<v8::Object> wrapper =
-      v8::ArrayBuffer::New(isolate, Data(), ByteLength());
+
+  v8::Local<v8::Object> wrapper;
+  {
+    v8::Context::Scope context_scope(creation_context->CreationContext());
+    wrapper = v8::ArrayBuffer::New(isolate, Data(), ByteLength());
+  }
 
   return AssociateWithWrapper(isolate, wrapper_type_info, wrapper);
 }
diff --git a/third_party/blink/renderer/devtools/front_end/network/NetworkLogView.js b/third_party/blink/renderer/devtools/front_end/network/NetworkLogView.js
index 712917f..f338f73 100644
--- a/third_party/blink/renderer/devtools/front_end/network/NetworkLogView.js
+++ b/third_party/blink/renderer/devtools/front_end/network/NetworkLogView.js
@@ -1630,23 +1630,19 @@
        * @return {string}
        */
       function escapeCharacter(x) {
-        let code = x.charCodeAt(0);
-        if (code < 256) {
-          // Add leading zero when needed to not care about the next character.
-          return code < 16 ? '\\x0' + code.toString(16) : '\\x' + code.toString(16);
-        }
-        code = code.toString(16);
-        return '\\u' + ('0000' + code).substr(code.length, 4);
+        const code = x.charCodeAt(0);
+        // Add leading zero when needed to not care about the next character.
+        return code < 16 ? '\\u0' + code.toString(16) : '\\u' + code.toString(16);
       }
 
-      if (/[^\x20-\x7E]|\'/.test(str)) {
+      if (/[\u0000-\u001f\u007f-\u009f]|\'/.test(str)) {
         // Use ANSI-C quoting syntax.
         return '$\'' +
             str.replace(/\\/g, '\\\\')
                 .replace(/\'/g, '\\\'')
                 .replace(/\n/g, '\\n')
                 .replace(/\r/g, '\\r')
-                .replace(/[^\x20-\x7E]/g, escapeCharacter) +
+                .replace(/[\u0000-\u001f\u007f-\u009f]/g, escapeCharacter) +
             '\'';
       } else {
         // Use single quote syntax.
diff --git a/third_party/blink/renderer/devtools/front_end/sources/DebuggerPlugin.js b/third_party/blink/renderer/devtools/front_end/sources/DebuggerPlugin.js
index f89493f..b10a8092 100644
--- a/third_party/blink/renderer/devtools/front_end/sources/DebuggerPlugin.js
+++ b/third_party/blink/renderer/devtools/front_end/sources/DebuggerPlugin.js
@@ -667,9 +667,6 @@
     editor.widget().element.addEventListener('keydown', async event => {
       if (isEnterKey(event) && !event.shiftKey) {
         event.consume(true);
-        if (event.ctrlKey)
-
-          event.consume(true);
         const expression = editor.text();
         if (event.ctrlKey || await ObjectUI.JavaScriptAutocomplete.isExpressionComplete(expression))
           finishEditing.call(this, true);
@@ -682,7 +679,8 @@
     editor.widget().focus();
     editor.widget().element.id = 'source-frame-breakpoint-condition';
     editor.widget().element.addEventListener('blur', event => {
-      finishEditing.call(this, true);
+      if (event.relatedTarget && !event.relatedTarget.isSelfOrDescendant(editor.widget().element))
+        finishEditing.call(this, true);
     }, true);
     let finished = false;
     /**
diff --git a/third_party/blink/renderer/modules/accessibility/ax_inline_text_box.cc b/third_party/blink/renderer/modules/accessibility/ax_inline_text_box.cc
index a0ef93d..2a3837f 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_inline_text_box.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_inline_text_box.cc
@@ -75,9 +75,8 @@
 
   // Subtract the local bounding box of the parent because they're
   // both in the same coordinate system.
-  LayoutObject* parent_layout_object = ParentObject()->GetLayoutObject();
   FloatRect parent_bounding_box =
-      parent_layout_object->LocalBoundingBoxRectForAccessibility();
+      ParentObject()->LocalBoundingBoxRectForAccessibility();
   out_bounds_in_container.MoveBy(-parent_bounding_box.Location());
 }
 
diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
index b384e8e8..7de4e37 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
@@ -212,7 +212,9 @@
 AXLayoutObject::AXLayoutObject(LayoutObject* layout_object,
                                AXObjectCacheImpl& ax_object_cache)
     : AXNodeObject(layout_object->GetNode(), ax_object_cache),
-      layout_object_(layout_object) {
+      layout_object_(layout_object),
+      is_autofill_available_(false) {
+// TODO(aleventhal) Get correct current state of autofill.
 #if DCHECK_IS_ON()
   layout_object_->SetHasAXObject(true);
 #endif
@@ -2449,6 +2451,16 @@
   }
 }
 
+void AXLayoutObject::HandleAutofillStateChanged(bool is_available) {
+  if (is_autofill_available_ != is_available) {
+    is_autofill_available_ = is_available;
+    // Reusing the value change event in order to invalidate, even though the
+    // value did not necessarily change.
+    // TODO(dmazzoni) change to using a MarkDirty() API.
+    AXObjectCache().PostNotification(this, AXObjectCacheImpl::kAXValueChanged);
+  }
+}
+
 void AXLayoutObject::TextChanged() {
   if (!layout_object_)
     return;
diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object.h b/third_party/blink/renderer/modules/accessibility/ax_layout_object.h
index e345c6a..f7b2597 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_layout_object.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object.h
@@ -80,6 +80,7 @@
   bool IsAXLayoutObject() const override { return true; }
 
   // Check object role or purpose.
+  bool IsAutofillAvailable() override { return is_autofill_available_; }
   bool IsEditable() const override;
   bool IsRichlyEditable() const override;
   bool IsLinked() const override;
@@ -179,6 +180,8 @@
   // Notifications that this object may have changed.
   void HandleActiveDescendantChanged() override;
   void HandleAriaExpandedChanged() override;
+  // Called when autofill becomes available/unavailable on a form control.
+  void HandleAutofillStateChanged(bool) override;
   void TextChanged() override;
 
   // Text metrics. Most of these should be deprecated, needs major cleanup.
@@ -234,6 +237,8 @@
   bool CanIgnoreSpaceNextTo(LayoutObject*, bool is_after) const;
   bool HasAriaCellRole(Element*) const;
 
+  bool is_autofill_available_;
+
   DISALLOW_COPY_AND_ASSIGN(AXLayoutObject);
 };
 
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.cc b/third_party/blink/renderer/modules/accessibility/ax_object.cc
index b6d3aba..e4c0e3c 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_object.cc
@@ -899,6 +899,11 @@
     if (parent)
       parent->ChildrenChanged();
   }
+
+  if (GetLayoutObject() && GetLayoutObject()->IsText()) {
+    cached_local_bounding_box_rect_for_accessibility_ =
+        GetLayoutObject()->LocalBoundingBoxRectForAccessibility();
+  }
 }
 
 bool AXObject::AccessibilityIsIgnoredByDefault(
@@ -2796,6 +2801,14 @@
   }
 }
 
+FloatRect AXObject::LocalBoundingBoxRectForAccessibility() {
+  if (!GetLayoutObject())
+    return FloatRect();
+  DCHECK(GetLayoutObject()->IsText());
+  UpdateCachedAttributeValuesIfNeeded();
+  return cached_local_bounding_box_rect_for_accessibility_;
+}
+
 LayoutRect AXObject::GetBoundsInFrameCoordinates() const {
   AXObject* container = nullptr;
   FloatRect bounds;
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.h b/third_party/blink/renderer/modules/accessibility/ax_object.h
index 1b84d5c..12df974 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_object.h
@@ -516,6 +516,7 @@
   bool IsWebArea() const { return RoleValue() == kWebAreaRole; }
 
   // Check object state.
+  virtual bool IsAutofillAvailable() { return false; }
   virtual bool IsClickable() const;
   virtual bool IsCollapsed() const { return false; }
   virtual AccessibilityExpanded IsExpanded() const {
@@ -772,6 +773,8 @@
                                  SkMatrix44& out_container_transform,
                                  bool* clips_children = nullptr) const;
 
+  FloatRect LocalBoundingBoxRectForAccessibility();
+
   // Get the bounds in frame-relative coordinates as a LayoutRect.
   LayoutRect GetBoundsInFrameCoordinates() const;
 
@@ -950,6 +953,7 @@
   // Notifications that this object may have changed.
   virtual void ChildrenChanged() {}
   virtual void HandleActiveDescendantChanged() {}
+  virtual void HandleAutofillStateChanged(bool) {}
   virtual void HandleAriaExpandedChanged() {}
   virtual void SelectionChanged();
   virtual void TextChanged() {}
@@ -1059,6 +1063,7 @@
   mutable Member<AXObject> cached_live_region_root_;
   mutable int cached_aria_column_index_;
   mutable int cached_aria_row_index_;
+  mutable FloatRect cached_local_bounding_box_rect_for_accessibility_;
 
   Member<AXObjectCacheImpl> ax_object_cache_;
 
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
index 840c6bba..01d26a2f 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
@@ -1002,6 +1002,12 @@
     PostNotification(element, AXObjectCacheImpl::kAXAriaAttributeChanged);
 }
 
+void AXObjectCacheImpl::HandleAutofillStateChanged(Element* elem,
+                                                   bool is_available) {
+  if (AXObject* obj = Get(elem))
+    obj->HandleAutofillStateChanged(is_available);
+}
+
 void AXObjectCacheImpl::LabelChanged(Element* element) {
   TextChanged(ToHTMLLabelElement(element)->control());
 }
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
index 0cacaaa..185c3fe 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
@@ -138,6 +138,7 @@
 
   void HandleAttributeChanged(const QualifiedName& attr_name,
                               Element*) override;
+  void HandleAutofillStateChanged(Element*, bool) override;
   void HandleFocusedUIElementChanged(Node* old_focused_node,
                                      Node* new_focused_node) override;
   void HandleInitialFocus() override;
diff --git a/third_party/blink/renderer/modules/cache_storage/cache.cc b/third_party/blink/renderer/modules/cache_storage/cache.cc
index e79bf5c..378e66b 100644
--- a/third_party/blink/renderer/modules/cache_storage/cache.cc
+++ b/third_party/blink/renderer/modules/cache_storage/cache.cc
@@ -184,6 +184,7 @@
     MaybeReportInstalledScripts();
     cache_->cache_ptr_->Batch(
         std::move(batch_operations_),
+        RuntimeEnabledFeatures::CacheStorageAddAllRejectsDuplicatesEnabled(),
         WTF::Bind(
             [](ScriptPromiseResolver* resolver, TimeTicks start_time,
                mojom::blink::CacheStorageError error) {
@@ -692,6 +693,7 @@
 
   cache_ptr_->Batch(
       std::move(batch_operations),
+      RuntimeEnabledFeatures::CacheStorageAddAllRejectsDuplicatesEnabled(),
       WTF::Bind(
           [](ScriptPromiseResolver* resolver, TimeTicks start_time,
              mojom::blink::CacheStorageError error) {
diff --git a/third_party/blink/renderer/modules/cache_storage/cache_storage_error.cc b/third_party/blink/renderer/modules/cache_storage/cache_storage_error.cc
index 0cb2707..60254c1 100644
--- a/third_party/blink/renderer/modules/cache_storage/cache_storage_error.cc
+++ b/third_party/blink/renderer/modules/cache_storage/cache_storage_error.cc
@@ -34,6 +34,9 @@
     case mojom::CacheStorageError::kErrorStorage:
       return DOMException::Create(DOMExceptionCode::kUnknownError,
                                   "Unexpected internal error.");
+    case mojom::CacheStorageError::kErrorDuplicateOperation:
+      return DOMException::Create(DOMExceptionCode::kInvalidStateError,
+                                  "Duplicate operation.");
     case mojom::CacheStorageError::kSuccess:
       // This function should only be called with an error.
       break;
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 e12bd8c..f6ef7ca 100644
--- a/third_party/blink/renderer/modules/cache_storage/cache_test.cc
+++ b/third_party/blink/renderer/modules/cache_storage/cache_test.cc
@@ -174,6 +174,7 @@
     std::move(callback).Run(std::move(result));
   }
   void Batch(Vector<mojom::blink::BatchOperationPtr> batch_operations,
+             bool fail_on_duplicates,
              BatchCallback callback) override {
     last_error_web_cache_method_called_ = "dispatchBatch";
     CheckBatchOperationsIfProvided(batch_operations);
@@ -686,6 +687,7 @@
     std::move(callback).Run(std::move(result));
   }
   void Batch(Vector<mojom::blink::BatchOperationPtr> batch_operations,
+             bool fail_on_duplicates,
              BatchCallback callback) override {
     std::move(callback).Run(mojom::blink::CacheStorageError::kSuccess);
   }
diff --git a/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc b/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc
index 7152bec..af4838e 100644
--- a/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc
+++ b/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc
@@ -161,6 +161,8 @@
       return CString("operation too large.");
     case mojom::blink::CacheStorageError::kErrorStorage:
       return CString("storage failure.");
+    case mojom::blink::CacheStorageError::kErrorDuplicateOperation:
+      return CString("duplicate operation.");
     case mojom::blink::CacheStorageError::kSuccess:
       // This function should only be called upon error.
       break;
@@ -554,7 +556,7 @@
               cache_ptr.Bind(std::move(result->get_cache()));
               auto* cache = cache_ptr.get();
               cache->Batch(
-                  std::move(batch_operations),
+                  std::move(batch_operations), true /* fail_on_duplicates */,
                   WTF::Bind(
                       [](mojom::blink::CacheStorageCacheAssociatedPtr cache_ptr,
                          std::unique_ptr<DeleteEntryCallback> callback,
diff --git a/third_party/blink/renderer/modules/exported/web_ax_object.cc b/third_party/blink/renderer/modules/exported/web_ax_object.cc
index d998979d..daf32c8 100644
--- a/third_party/blink/renderer/modules/exported/web_ax_object.cc
+++ b/third_party/blink/renderer/modules/exported/web_ax_object.cc
@@ -237,6 +237,13 @@
   return private_->IsAnchor();
 }
 
+bool WebAXObject::IsAutofillAvailable() const {
+  if (IsDetached())
+    return false;
+
+  return private_->IsAutofillAvailable();
+}
+
 WebString WebAXObject::AriaAutoComplete() const {
   if (IsDetached())
     return WebString();
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc
index 735633a3..ae9c757 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc
@@ -300,11 +300,6 @@
   if (!mouse_event.HasPosition())
     return true;
 
-  // TODO(https://crbug.com/873839): In what cases do we hit this?
-  // If the internal button or computed style are unavailable, default to yes.
-  if (!internal_button_ || !GetComputedStyle())
-    return true;
-
   // Find the zoom-adjusted internal button bounding box.
   DOMRect* box = internal_button_->getBoundingClientRect();
   float zoom = ComputedStyleRef().EffectiveZoom() /
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element_test.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element_test.cc
index d27a455..9ca6ab5 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element_test.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element_test.cc
@@ -8,30 +8,15 @@
 #include "third_party/blink/renderer/core/css/css_property_value_set.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/event_type_names.h"
-#include "third_party/blink/renderer/core/events/mouse_event.h"
-#include "third_party/blink/renderer/core/html/media/html_video_element.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
-#include "third_party/blink/renderer/modules/media_controls/media_controls_impl.h"
 
 namespace blink {
 
 class MediaControlOverlayPlayButtonElementTest : public PageTestBase {
  public:
   void SetUp() final {
-    // Create page with video element with controls.
+    // Create page and instance of AnimatedArrow to run tests on.
     PageTestBase::SetUp();
-    HTMLVideoElement* media_element = HTMLVideoElement::Create(GetDocument());
-    media_element->SetBooleanAttribute(HTMLNames::controlsAttr, true);
-    GetDocument().body()->AppendChild(media_element);
-
-    // Create instance of MediaControlOverlayPlayButtonElement for tests.
-    MediaControlsImpl* media_controls =
-        static_cast<MediaControlsImpl*>(media_element->GetMediaControls());
-    ASSERT_NE(nullptr, media_controls);
-    overlay_play_button_ =
-        new MediaControlOverlayPlayButtonElement(*media_controls);
-
-    // Create instance of AnimatedArrow to run tests on.
     arrow_element_ = new MediaControlOverlayPlayButtonElement::AnimatedArrow(
         "test", GetDocument());
     GetDocument().body()->AppendChild(arrow_element_);
@@ -57,22 +42,6 @@
     GetElementById("arrow-3")->DispatchEvent(*event);
   }
 
-  void RemoveInternalButton() {
-    overlay_play_button_->internal_button_ = nullptr;
-  }
-
-  void RemoveComputedStyle() { overlay_play_button_->ClearComputedStyle(); }
-
-  void TestKeepEventInNode() {
-    MouseEventInit mouse_initializer;
-    mouse_initializer.setView(GetDocument().domWindow());
-    mouse_initializer.setButton(1);
-
-    MouseEvent* mouse_event =
-        MouseEvent::Create(nullptr, EventTypeNames::click, mouse_initializer);
-    overlay_play_button_->KeepEventInNode(*mouse_event);
-  }
-
  private:
   bool SVGElementHasDisplayValue() {
     return GetElementById("jump")->InlineStyle()->HasProperty(
@@ -85,7 +54,6 @@
     return GetDocument().body()->getElementById(id);
   }
 
-  Persistent<MediaControlOverlayPlayButtonElement> overlay_play_button_;
   Persistent<MediaControlOverlayPlayButtonElement::AnimatedArrow>
       arrow_element_;
 };
@@ -111,16 +79,4 @@
   ExpectPresentAndShown();
 }
 
-TEST_F(MediaControlOverlayPlayButtonElementTest,
-       KeepEventInNodeDoesntCrashWithoutInternalButton) {
-  RemoveInternalButton();
-  TestKeepEventInNode();
-}
-
-TEST_F(MediaControlOverlayPlayButtonElementTest,
-       KeepEventInNodeDoesntCrashWithoutComputedStyle) {
-  RemoveComputedStyle();
-  TestKeepEventInNode();
-}
-
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
index 63ab728..f89532a9 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
@@ -36,6 +36,7 @@
 #include <utility>
 
 #include "base/memory/ptr_util.h"
+#include "base/metrics/histogram_macros.h"
 #include "base/optional.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "third_party/blink/public/platform/platform.h"
@@ -44,7 +45,6 @@
 #include "third_party/blink/public/platform/web_media_stream.h"
 #include "third_party/blink/public/platform/web_rtc_answer_options.h"
 #include "third_party/blink/public/platform/web_rtc_certificate_generator.h"
-#include "third_party/blink/public/platform/web_rtc_configuration.h"
 #include "third_party/blink/public/platform/web_rtc_data_channel_handler.h"
 #include "third_party/blink/public/platform/web_rtc_data_channel_init.h"
 #include "third_party/blink/public/platform/web_rtc_ice_candidate.h"
@@ -227,6 +227,29 @@
   return candidate.GetAsRTCIceCandidate()->WebCandidate();
 }
 
+enum SdpSemanticRequested {
+  kSdpSemanticRequestedDefault,
+  kSdpSemanticRequestedPlanB,
+  kSdpSemanticRequestedUnifiedPlan,
+  kSdpSemanticRequestedMax
+};
+
+SdpSemanticRequested GetSdpSemanticRequested(
+    const blink::RTCConfiguration& configuration) {
+  if (!configuration.hasSdpSemantics()) {
+    return kSdpSemanticRequestedDefault;
+  }
+  if (configuration.sdpSemantics() == "plan-b") {
+    return kSdpSemanticRequestedPlanB;
+  }
+  if (configuration.sdpSemantics() == "unified-plan") {
+    return kSdpSemanticRequestedUnifiedPlan;
+  }
+
+  NOTREACHED();
+  return kSdpSemanticRequestedDefault;
+}
+
 // Helper class for RTCPeerConnection::generateCertificate.
 class WebRTCCertificateObserver : public WebRTCCertificateCallback {
  public:
@@ -258,20 +281,21 @@
   return webrtc::PeerConnectionInterface::kAll;
 }
 
-WebRTCConfiguration ParseConfiguration(ExecutionContext* context,
-                                       const RTCConfiguration& configuration,
-                                       ExceptionState& exception_state) {
+webrtc::PeerConnectionInterface::RTCConfiguration ParseConfiguration(
+    ExecutionContext* context,
+    const RTCConfiguration& configuration,
+    ExceptionState& exception_state) {
   DCHECK(context);
 
-  WebRTCConfiguration web_configuration;
+  webrtc::PeerConnectionInterface::RTCConfiguration web_configuration;
 
   if (configuration.hasIceTransportPolicy()) {
     UseCounter::Count(context, WebFeature::kRTCConfigurationIceTransportPolicy);
-    web_configuration.ice_transport_policy =
+    web_configuration.type =
         IceTransportPolicyFromString(configuration.iceTransportPolicy());
   } else if (configuration.hasIceTransports()) {
     UseCounter::Count(context, WebFeature::kRTCConfigurationIceTransports);
-    web_configuration.ice_transport_policy =
+    web_configuration.type =
         IceTransportPolicyFromString(configuration.iceTransports());
   }
 
@@ -295,10 +319,19 @@
 
   if (configuration.hasSdpSemantics()) {
     if (configuration.sdpSemantics() == "plan-b") {
-      web_configuration.sdp_semantics = WebRTCSdpSemantics::kPlanB;
+      web_configuration.sdp_semantics = webrtc::SdpSemantics::kPlanB;
     } else {
       DCHECK_EQ(configuration.sdpSemantics(), "unified-plan");
-      web_configuration.sdp_semantics = WebRTCSdpSemantics::kUnifiedPlan;
+      web_configuration.sdp_semantics = webrtc::SdpSemantics::kUnifiedPlan;
+    }
+  } else {
+    if (!RuntimeEnabledFeatures::RTCUnifiedPlanByDefaultEnabled()) {
+      // By default: The default SDP semantics is: "kPlanB".
+      web_configuration.sdp_semantics = webrtc::SdpSemantics::kPlanB;
+    } else {
+      // Override default SDP semantics to "kUnifiedPlan" with
+      // RuntimeEnabled=RTCUnifiedPlanByDefault.
+      web_configuration.sdp_semantics = webrtc::SdpSemantics::kUnifiedPlan;
     }
   }
 
@@ -320,7 +353,7 @@
         url_strings.push_back(ice_server.url());
       } else {
         exception_state.ThrowTypeError("Malformed RTCIceServer");
-        return WebRTCConfiguration();
+        return {};
       }
 
       String username = ice_server.username();
@@ -332,7 +365,7 @@
           exception_state.ThrowDOMException(
               DOMExceptionCode::kSyntaxError,
               "'" + url_string + "' is not a valid URL.");
-          return WebRTCConfiguration();
+          return {};
         }
         if (!(url.ProtocolIs("turn") || url.ProtocolIs("turns") ||
               url.ProtocolIs("stun"))) {
@@ -341,7 +374,7 @@
               "'" + url.Protocol() +
                   "' is not one of the supported URL schemes "
                   "'stun', 'turn' or 'turns'.");
-          return WebRTCConfiguration();
+          return {};
         }
         if ((url.ProtocolIs("turn") || url.ProtocolIs("turns")) &&
             (username.IsNull() || credential.IsNull())) {
@@ -358,13 +391,13 @@
         converted_ice_server.password = WebString(credential).Utf8();
       }
     }
-    web_configuration.ice_servers = ice_servers;
+    web_configuration.servers = ice_servers;
   }
 
   if (configuration.hasCertificates()) {
     const HeapVector<Member<RTCCertificate>>& certificates =
         configuration.certificates();
-    WebVector<rtc::scoped_refptr<rtc::RTCCertificate>> certificates_copy(
+    std::vector<rtc::scoped_refptr<rtc::RTCCertificate>> certificates_copy(
         certificates.size());
     for (size_t i = 0; i < certificates.size(); ++i) {
       certificates_copy[i] = certificates[i]->Certificate();
@@ -488,7 +521,7 @@
                       WebFeature::kRTCPeerConnectionConstructorCompliant);
   }
 
-  WebRTCConfiguration configuration =
+  webrtc::PeerConnectionInterface::RTCConfiguration configuration =
       ParseConfiguration(context, rtc_configuration, exception_state);
   if (exception_state.HadException())
     return nullptr;
@@ -521,13 +554,18 @@
   if (exception_state.HadException())
     return nullptr;
 
+  UMA_HISTOGRAM_ENUMERATION("WebRTC.PeerConnection.SdpSemanticRequested",
+                            GetSdpSemanticRequested(rtc_configuration),
+                            kSdpSemanticRequestedMax);
+
   return peer_connection;
 }
 
-RTCPeerConnection::RTCPeerConnection(ExecutionContext* context,
-                                     WebRTCConfiguration configuration,
-                                     WebMediaConstraints constraints,
-                                     ExceptionState& exception_state)
+RTCPeerConnection::RTCPeerConnection(
+    ExecutionContext* context,
+    webrtc::PeerConnectionInterface::RTCConfiguration configuration,
+    WebMediaConstraints constraints,
+    ExceptionState& exception_state)
     : PausableObject(context),
       signaling_state_(
           webrtc::PeerConnectionInterface::SignalingState::kStable),
@@ -545,24 +583,6 @@
       closed_(false),
       has_data_channels_(false),
       sdp_semantics_(configuration.sdp_semantics) {
-  // The original SDP semantics value is the value passed in by the caller,
-  // which if not specified has the value "kDefault". For |sdp_semantics_| this
-  // is translated to the actual SDP semantics used ("kPlanB" or
-  // "kUnifiedPlan"), but for the sake of UMA use counters it is of interest to
-  // know if the caller did not explicitly set it.
-  WebRTCSdpSemantics original_sdp_semantics_value = sdp_semantics_;
-  if (sdp_semantics_ == WebRTCSdpSemantics::kDefault) {
-    if (!RuntimeEnabledFeatures::RTCUnifiedPlanByDefaultEnabled()) {
-      // By default: The default SDP semantics is: "kPlanB".
-      sdp_semantics_ = configuration.sdp_semantics = WebRTCSdpSemantics::kPlanB;
-    } else {
-      // Override default SDP semantics to "kUnifiedPlan" with
-      // RuntimeEnabled=RTCUnifiedPlanByDefault.
-      sdp_semantics_ = configuration.sdp_semantics =
-          WebRTCSdpSemantics::kUnifiedPlan;
-    }
-  }
-
   Document* document = ToDocument(GetExecutionContext());
 
   InstanceCounters::IncrementCounter(
@@ -600,8 +620,7 @@
   document->GetFrame()->Client()->DispatchWillStartUsingPeerConnectionHandler(
       peer_handler_.get());
 
-  if (!peer_handler_->Initialize(configuration, constraints,
-                                 original_sdp_semantics_value)) {
+  if (!peer_handler_->Initialize(configuration, constraints)) {
     closed_ = true;
     stopped_ = true;
     exception_state.ThrowDOMException(
@@ -985,6 +1004,88 @@
   return RTCSessionDescription::Create(web_session_description);
 }
 
+void RTCPeerConnection::getConfiguration(RTCConfiguration& result) {
+  const auto& webrtc_configuration = peer_handler_->GetConfiguration();
+
+  switch (webrtc_configuration.type) {
+    case webrtc::PeerConnectionInterface::kRelay:
+      result.setIceTransportPolicy("relay");
+      break;
+    case webrtc::PeerConnectionInterface::kAll:
+      result.setIceTransportPolicy("all");
+      break;
+    default:
+      NOTREACHED();
+  }
+
+  switch (webrtc_configuration.bundle_policy) {
+    case webrtc::PeerConnectionInterface::kBundlePolicyMaxCompat:
+      result.setBundlePolicy("max-compat");
+      break;
+    case webrtc::PeerConnectionInterface::kBundlePolicyMaxBundle:
+      result.setBundlePolicy("max-bundle");
+      break;
+    case webrtc::PeerConnectionInterface::kBundlePolicyBalanced:
+      result.setBundlePolicy("balanced");
+      break;
+    default:
+      NOTREACHED();
+  }
+
+  switch (webrtc_configuration.rtcp_mux_policy) {
+    case webrtc::PeerConnectionInterface::kRtcpMuxPolicyNegotiate:
+      result.setRtcpMuxPolicy("negotiate");
+      break;
+    case webrtc::PeerConnectionInterface::kRtcpMuxPolicyRequire:
+      result.setRtcpMuxPolicy("require");
+      break;
+    default:
+      NOTREACHED();
+  }
+
+  switch (webrtc_configuration.sdp_semantics) {
+    case webrtc::SdpSemantics::kPlanB:
+      result.setSdpSemantics("plan-b");
+      break;
+    case webrtc::SdpSemantics::kUnifiedPlan:
+      result.setSdpSemantics("unified-plan");
+      break;
+    default:
+      NOTREACHED();
+  }
+
+  HeapVector<RTCIceServer> ice_servers;
+  ice_servers.ReserveCapacity(webrtc_configuration.servers.size());
+  for (const auto& webrtc_server : webrtc_configuration.servers) {
+    ice_servers.emplace_back();
+    auto& ice_server = ice_servers.back();
+
+    StringOrStringSequence urls;
+    Vector<String> url_vector;
+    url_vector.ReserveCapacity(webrtc_server.urls.size());
+    for (const auto& url : webrtc_server.urls) {
+      url_vector.emplace_back(url.c_str());
+    }
+    urls.SetStringSequence(std::move(url_vector));
+
+    ice_server.setURLs(urls);
+    ice_server.setUsername(webrtc_server.username.c_str());
+    ice_server.setCredential(webrtc_server.password.c_str());
+  }
+  result.setIceServers(ice_servers);
+
+  if (!webrtc_configuration.certificates.empty()) {
+    HeapVector<blink::Member<RTCCertificate>> certificates;
+    certificates.ReserveCapacity(webrtc_configuration.certificates.size());
+    for (const auto& webrtc_certificate : webrtc_configuration.certificates) {
+      certificates.emplace_back(new RTCCertificate(webrtc_certificate));
+    }
+    result.setCertificates(certificates);
+  }
+
+  result.setIceCandidatePoolSize(webrtc_configuration.ice_candidate_pool_size);
+}
+
 void RTCPeerConnection::setConfiguration(
     ScriptState* script_state,
     const RTCConfiguration& rtc_configuration,
@@ -992,14 +1093,9 @@
   if (ThrowExceptionIfSignalingStateClosed(signaling_state_, exception_state))
     return;
 
-  WebRTCConfiguration configuration = ParseConfiguration(
-      ExecutionContext::From(script_state), rtc_configuration, exception_state);
-  // Overwrite "kDefault" with |sdp_semantics_| as set in the constructor to
-  // avoid duplicate logic for interpreting the default and SetConfiguration()
-  // failing if different layers have different notions of default.
-  if (configuration.sdp_semantics == blink::WebRTCSdpSemantics::kDefault) {
-    configuration.sdp_semantics = sdp_semantics_;
-  }
+  webrtc::PeerConnectionInterface::RTCConfiguration configuration =
+      ParseConfiguration(ExecutionContext::From(script_state),
+                         rtc_configuration, exception_state);
 
   if (exception_state.HadException())
     return;
@@ -1329,7 +1425,7 @@
 
 MediaStreamVector RTCPeerConnection::getLocalStreams() const {
   MediaStreamVector local_streams;
-  if (sdp_semantics_ == WebRTCSdpSemantics::kPlanB) {
+  if (sdp_semantics_ == webrtc::SdpSemantics::kPlanB) {
     for (const auto& sender : rtp_senders_) {
       for (const auto& stream : sender->streams()) {
         if (!local_streams.Contains(stream))
@@ -1351,7 +1447,7 @@
 
 MediaStreamVector RTCPeerConnection::getRemoteStreams() const {
   MediaStreamVector remote_streams;
-  if (sdp_semantics_ == WebRTCSdpSemantics::kPlanB) {
+  if (sdp_semantics_ == webrtc::SdpSemantics::kPlanB) {
     for (const auto& receiver : rtp_receivers_) {
       for (const auto& stream : receiver->streams()) {
         if (!remote_streams.Contains(stream))
@@ -1538,7 +1634,7 @@
     const MediaStreamTrackOrString& track_or_kind,
     const RTCRtpTransceiverInit& init,
     ExceptionState& exception_state) {
-  if (sdp_semantics_ != WebRTCSdpSemantics::kUnifiedPlan) {
+  if (sdp_semantics_ != webrtc::SdpSemantics::kUnifiedPlan) {
     exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError,
                                       kOnlySupportedInUnifiedPlanMessage);
     return nullptr;
@@ -1585,7 +1681,7 @@
   DCHECK(track->Component());
   if (ThrowExceptionIfSignalingStateClosed(signaling_state_, exception_state))
     return nullptr;
-  if (sdp_semantics_ == WebRTCSdpSemantics::kPlanB && streams.size() >= 2) {
+  if (sdp_semantics_ == webrtc::SdpSemantics::kPlanB && streams.size() >= 2) {
     // TODO(hbos): Update peer_handler_ to call the AddTrack() that returns the
     // appropriate errors, and let the lower layers handle it.
     exception_state.ThrowDOMException(
@@ -1622,12 +1718,12 @@
 
   auto stream_ids = web_transceiver->Sender()->StreamIds();
   RTCRtpSender* sender;
-  if (sdp_semantics_ == WebRTCSdpSemantics::kPlanB) {
+  if (sdp_semantics_ == webrtc::SdpSemantics::kPlanB) {
     DCHECK_EQ(web_transceiver->ImplementationType(),
               WebRTCRtpTransceiverImplementationType::kPlanBSenderOnly);
     sender = CreateOrUpdateSender(web_transceiver->Sender(), track->kind());
   } else {
-    DCHECK_EQ(sdp_semantics_, WebRTCSdpSemantics::kUnifiedPlan);
+    DCHECK_EQ(sdp_semantics_, webrtc::SdpSemantics::kUnifiedPlan);
     DCHECK_EQ(web_transceiver->ImplementationType(),
               WebRTCRtpTransceiverImplementationType::kFullTransceiver);
     RTCRtpTransceiver* transceiver =
@@ -1640,10 +1736,10 @@
   // The stream IDs should match between layers, with one exception;
   // in Plan B if no stream was supplied, the lower layer still generates a
   // stream which has no blink layer correspondence.
-  DCHECK(sdp_semantics_ != WebRTCSdpSemantics::kPlanB ||
+  DCHECK(sdp_semantics_ != webrtc::SdpSemantics::kPlanB ||
          (streams.size() == 0u && stream_ids.size() == 1u) ||
          stream_ids.size() == streams.size());
-  DCHECK(sdp_semantics_ != WebRTCSdpSemantics::kUnifiedPlan ||
+  DCHECK(sdp_semantics_ != webrtc::SdpSemantics::kUnifiedPlan ||
          stream_ids.size() == streams.size());
   return sender;
 }
@@ -1662,7 +1758,7 @@
   }
 
   auto error_or_transceiver = peer_handler_->RemoveTrack(sender->web_sender());
-  if (sdp_semantics_ == WebRTCSdpSemantics::kPlanB) {
+  if (sdp_semantics_ == webrtc::SdpSemantics::kPlanB) {
     // Plan B: Was the sender removed?
     if (!error_or_transceiver.ok()) {
       // Operation aborted. This indicates that the sender is no longer used by
@@ -1677,7 +1773,7 @@
     rtp_senders_.erase(it);
   } else {
     // Unified Plan: Was the transceiver updated?
-    DCHECK_EQ(sdp_semantics_, WebRTCSdpSemantics::kUnifiedPlan);
+    DCHECK_EQ(sdp_semantics_, webrtc::SdpSemantics::kUnifiedPlan);
     if (!error_or_transceiver.ok()) {
       ThrowExceptionFromRTCError(error_or_transceiver.error(), exception_state);
       return;
@@ -2001,7 +2097,7 @@
     std::unique_ptr<WebRTCRtpReceiver> web_receiver) {
   DCHECK(!closed_);
   DCHECK(GetExecutionContext()->IsContextThread());
-  DCHECK_EQ(sdp_semantics_, WebRTCSdpSemantics::kPlanB);
+  DCHECK_EQ(sdp_semantics_, webrtc::SdpSemantics::kPlanB);
   if (signaling_state_ ==
       webrtc::PeerConnectionInterface::SignalingState::kClosed)
     return;
@@ -2057,7 +2153,7 @@
     std::unique_ptr<WebRTCRtpReceiver> web_receiver) {
   DCHECK(!closed_);
   DCHECK(GetExecutionContext()->IsContextThread());
-  DCHECK_EQ(sdp_semantics_, WebRTCSdpSemantics::kPlanB);
+  DCHECK_EQ(sdp_semantics_, webrtc::SdpSemantics::kPlanB);
 
   auto* it = FindReceiver(*web_receiver);
   DCHECK(it != rtp_receivers_.end());
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h
index 6ace20e..49450d4 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h
@@ -34,7 +34,6 @@
 #include <memory>
 
 #include "third_party/blink/public/platform/web_media_constraints.h"
-#include "third_party/blink/public/platform/web_rtc_configuration.h"
 #include "third_party/blink/public/platform/web_rtc_peer_connection_handler.h"
 #include "third_party/blink/public/platform/web_rtc_peer_connection_handler_client.h"
 #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
@@ -72,7 +71,6 @@
 class V8RTCSessionDescriptionCallback;
 class V8RTCStatsCallback;
 class V8VoidFunction;
-struct WebRTCConfiguration;
 
 class MODULES_EXPORT RTCPeerConnection final
     : public EventTargetWithInlineData,
@@ -128,6 +126,7 @@
 
   String signalingState() const;
 
+  void getConfiguration(RTCConfiguration&);
   void setConfiguration(ScriptState*, const RTCConfiguration&, ExceptionState&);
 
   // Certificate management
@@ -288,7 +287,7 @@
   };
 
   RTCPeerConnection(ExecutionContext*,
-                    WebRTCConfiguration,
+                    webrtc::PeerConnectionInterface::RTCConfiguration,
                     WebMediaConstraints,
                     ExceptionState&);
   void Dispose();
@@ -442,7 +441,7 @@
   // information is surfaced from webrtc. This has the value "kPlanB" or
   // "kUnifiedPlan", if constructed with "kDefault" it is translated to one or
   // the other.
-  WebRTCSdpSemantics sdp_semantics_;
+  webrtc::SdpSemantics sdp_semantics_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl
index 0ff9646a..41becb6 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl
@@ -76,7 +76,7 @@
     readonly attribute RTCIceGatheringState iceGatheringState;
     readonly attribute RTCIceConnectionState iceConnectionState;
     // readonly attribute boolean? canTrickleIceCandidates;
-    // RTCConfiguration getConfiguration();
+    RTCConfiguration getConfiguration();
     [CallWith=ScriptState, RaisesException] void setConfiguration(RTCConfiguration configuration);
     void close();
     attribute EventHandler onnegotiationneeded;
diff --git a/third_party/blink/renderer/modules/xr/xr_view.cc b/third_party/blink/renderer/modules/xr/xr_view.cc
index 2486ab6..875c5e5b 100644
--- a/third_party/blink/renderer/modules/xr/xr_view.cc
+++ b/third_party/blink/renderer/modules/xr/xr_view.cc
@@ -10,7 +10,7 @@
 
 namespace blink {
 
-XRView::XRView(XRSession* session, Eye eye)
+XRView::XRView(XRSession* session, XREye eye)
     : eye_(eye),
       session_(session),
       projection_matrix_(DOMFloat32Array::Create(16)) {
diff --git a/third_party/blink/renderer/modules/xr/xr_view.h b/third_party/blink/renderer/modules/xr/xr_view.h
index 8554bdb9..dbdb1c5 100644
--- a/third_party/blink/renderer/modules/xr/xr_view.h
+++ b/third_party/blink/renderer/modules/xr/xr_view.h
@@ -21,12 +21,12 @@
   DEFINE_WRAPPERTYPEINFO();
 
  public:
-  enum Eye { kEyeLeft = 0, kEyeRight = 1 };
+  enum XREye { kEyeLeft = 0, kEyeRight = 1 };
 
-  XRView(XRSession*, Eye);
+  XRView(XRSession*, XREye);
 
   const String& eye() const { return eye_string_; }
-  Eye EyeValue() const { return eye_; }
+  XREye EyeValue() const { return eye_; }
 
   XRSession* session() const;
   DOMFloat32Array* projectionMatrix() const { return projection_matrix_; }
@@ -60,7 +60,7 @@
   void Trace(blink::Visitor*) override;
 
  private:
-  const Eye eye_;
+  const XREye eye_;
   String eye_string_;
   Member<XRSession> session_;
   Member<DOMFloat32Array> projection_matrix_;
diff --git a/third_party/blink/renderer/modules/xr/xr_view.idl b/third_party/blink/renderer/modules/xr/xr_view.idl
index 8a7df8c..28f1436b 100644
--- a/third_party/blink/renderer/modules/xr/xr_view.idl
+++ b/third_party/blink/renderer/modules/xr/xr_view.idl
@@ -3,11 +3,16 @@
 // found in the LICENSE file.
 
 // https://immersive-web.github.io/webxr/#xrview-interface
+enum XREye {
+  "left",
+  "right"
+};
+
 [
     SecureContext,
     Exposed=Window,
     OriginTrialEnabled=WebXR
 ] interface XRView {
-  readonly attribute VREye? eye;
+  readonly attribute XREye eye;
   readonly attribute Float32Array projectionMatrix;
 };
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_layer.cc b/third_party/blink/renderer/modules/xr/xr_webgl_layer.cc
index cd15c90..be53fae 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_layer.cc
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_layer.cc
@@ -157,7 +157,7 @@
   return GetViewportForEye(view->EyeValue());
 }
 
-XRViewport* XRWebGLLayer::GetViewportForEye(XRView::Eye eye) {
+XRViewport* XRWebGLLayer::GetViewportForEye(XRView::XREye eye) {
   if (viewports_dirty_)
     UpdateViewports();
 
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_layer.h b/third_party/blink/renderer/modules/xr/xr_webgl_layer.h
index c0012c2..7616c7c 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_layer.h
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_layer.h
@@ -62,7 +62,7 @@
 
   static double getNativeFramebufferScaleFactor(XRSession* session);
 
-  XRViewport* GetViewportForEye(XRView::Eye);
+  XRViewport* GetViewportForEye(XRView::XREye);
 
   void UpdateViewports();
 
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
index 063cb2d..6f3ccc98 100644
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1336,8 +1336,6 @@
     "theme.cc",
     "theme.h",
     "theme_types.h",
-    "time_clamper.cc",
-    "time_clamper.h",
     "timer.cc",
     "timer.h",
     "transforms/affine_transform.cc",
@@ -1821,7 +1819,6 @@
     "text/text_run_test.cc",
     "text/unicode_utilities_test.cc",
     "text/writing_mode_utils_test.cc",
-    "time_clamper_test.cc",
     "timer_test.cc",
     "transforms/affine_transform_test.cc",
     "transforms/rotation_test.cc",
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc
index e2575cd..55a17f0 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc
@@ -94,13 +94,13 @@
           SkSurface::kRetain_ContentChangeMode);
     }
 
-    sk_sp<SkImage> skia_image = GetSkSurface()->makeImageSnapshot();
-    if (!skia_image)
+    auto paint_image = MakeImageSnapshot();
+    if (!paint_image)
       return nullptr;
-    DCHECK(skia_image->isTextureBacked());
+    DCHECK(paint_image.GetSkImage()->isTextureBacked());
 
-    scoped_refptr<StaticBitmapImage> image =
-        StaticBitmapImage::Create(skia_image, ContextProviderWrapper());
+    scoped_refptr<StaticBitmapImage> image = StaticBitmapImage::Create(
+        paint_image.GetSkImage(), ContextProviderWrapper());
 
     scoped_refptr<CanvasResource> resource = CanvasResourceBitmap::Create(
         image, CreateWeakPtr(), FilterQuality(), ColorParams());
@@ -190,12 +190,13 @@
       return CanvasResourceProviderTexture::ProduceFrame();
     }
 
-    sk_sp<SkImage> image = GetSkSurface()->makeImageSnapshot();
-    if (!image)
+    auto paint_image = MakeImageSnapshot();
+    if (!paint_image)
       return nullptr;
-    DCHECK(image->isTextureBacked());
+    DCHECK(paint_image.GetSkImage()->isTextureBacked());
 
-    GrBackendTexture backend_texture = image->getBackendTexture(true);
+    GrBackendTexture backend_texture =
+        paint_image.GetSkImage()->getBackendTexture(true);
     DCHECK(backend_texture.isValid());
 
     GrGLTextureInfo info;
@@ -299,12 +300,12 @@
       return nullptr;
     }
 
-    sk_sp<SkImage> image = GetSkSurface()->makeImageSnapshot();
-    if (!image)
+    auto paint_image = MakeImageSnapshot();
+    if (!paint_image)
       return nullptr;
-    DCHECK(!image->isTextureBacked());
+    DCHECK(!paint_image.GetSkImage()->isTextureBacked());
 
-    output_resource->TakeSkImage(std::move(image));
+    output_resource->TakeSkImage(paint_image.GetSkImage());
 
     return output_resource;
   }
@@ -353,12 +354,12 @@
       return nullptr;
     }
 
-    sk_sp<SkImage> image = GetSkSurface()->makeImageSnapshot();
-    if (!image)
+    auto paint_image = MakeImageSnapshot();
+    if (!paint_image)
       return nullptr;
-    DCHECK(!image->isTextureBacked());
+    DCHECK(!paint_image.GetSkImage()->isTextureBacked());
 
-    output_resource->TakeSkImage(std::move(image));
+    output_resource->TakeSkImage(paint_image.GetSkImage());
 
     return output_resource;
   }
@@ -633,14 +634,21 @@
   if (!IsValid())
     return nullptr;
 
-  auto sk_image = GetSkSurface()->makeImageSnapshot();
-  auto last_snapshot_sk_image_id = snapshot_sk_image_id_;
-  snapshot_sk_image_id_ = sk_image->uniqueID();
-
-  if (ContextProviderWrapper()) {
-    return StaticBitmapImage::Create(std::move(sk_image),
+  auto paint_image = MakeImageSnapshot();
+  if (paint_image.GetSkImage()->isTextureBacked() && ContextProviderWrapper()) {
+    return StaticBitmapImage::Create(paint_image.GetSkImage(),
                                      ContextProviderWrapper());
   }
+  return StaticBitmapImage::Create(std::move(paint_image));
+}
+
+cc::PaintImage CanvasResourceProvider::MakeImageSnapshot() {
+  auto sk_image = GetSkSurface()->makeImageSnapshot();
+  if (!sk_image)
+    return cc::PaintImage();
+
+  auto last_snapshot_sk_image_id = snapshot_sk_image_id_;
+  snapshot_sk_image_id_ = sk_image->uniqueID();
 
   // Ensure that a new PaintImage::ContentId is used only when the underlying
   // SkImage changes. This is necessary to ensure that the same image results
@@ -650,12 +658,10 @@
     snapshot_paint_image_content_id_ = PaintImage::GetNextContentId();
   }
 
-  auto paint_image =
-      PaintImageBuilder::WithDefault()
-          .set_id(snapshot_paint_image_id_)
-          .set_image(std::move(sk_image), snapshot_paint_image_content_id_)
-          .TakePaintImage();
-  return StaticBitmapImage::Create(std::move(paint_image));
+  return PaintImageBuilder::WithDefault()
+      .set_id(snapshot_paint_image_id_)
+      .set_image(std::move(sk_image), snapshot_paint_image_content_id_)
+      .TakePaintImage();
 }
 
 gpu::gles2::GLES2Interface* CanvasResourceProvider::ContextGL() const {
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
index d434420..30aefb66 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
@@ -164,6 +164,13 @@
                          base::WeakPtr<WebGraphicsContext3DProviderWrapper>,
                          base::WeakPtr<CanvasResourceDispatcher>);
 
+  // Its important to use this method for generating PaintImage wrapped canvas
+  // snapshots to get a cache hit from cc's ImageDecodeCache. This method
+  // ensures that the PaintImage ID for the snapshot, used for keying
+  // decodes/uploads in the cache is invalidated only when the canvas contents
+  // change.
+  cc::PaintImage MakeImageSnapshot();
+
  private:
   class CanvasImageProvider : public cc::ImageProvider {
    public:
diff --git a/third_party/blink/renderer/platform/graphics/paint_invalidation_reason.cc b/third_party/blink/renderer/platform/graphics/paint_invalidation_reason.cc
index 37861d19..8fd5c50d 100644
--- a/third_party/blink/renderer/platform/graphics/paint_invalidation_reason.cc
+++ b/third_party/blink/renderer/platform/graphics/paint_invalidation_reason.cc
@@ -72,8 +72,6 @@
       return "full layer";
     case PaintInvalidationReason::kForTesting:
       return "for testing";
-    case PaintInvalidationReason::kDelayedFull:
-      return "delayed full";
   }
   NOTREACHED();
   return "";
diff --git a/third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h b/third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h
index 8afacba3..c81b0d2 100644
--- a/third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h
+++ b/third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h
@@ -31,6 +31,8 @@
   // Scroll bars, scroll corner, etc.
   kScrollControl,
   kOutline,
+  // The object is invalidated as a part of a subtree full invalidation (forced
+  // by LayoutObject::SetSubtreeShouldDoFullPaintInvalidation()).
   kSubtree,
   kSVGResource,
   kBackground,
@@ -51,13 +53,7 @@
   // invalidation may be implicit, e.g. when a layer is created.
   kFullLayer,
   kForTesting,
-  // kDelayedFull means that kFull is needed in order to fully paint the
-  // content, but that painting of the object can be delayed until a future
-  // frame. This can be the case for an object whose content is not visible to
-  // the user.
-  kDelayedFull,
-
-  kMax = kDelayedFull
+  kMax = kForTesting,
 };
 
 PLATFORM_EXPORT const char* PaintInvalidationReasonToString(
@@ -71,12 +67,6 @@
   return reason >= PaintInvalidationReason::kFull;
 }
 
-inline bool IsImmediateFullPaintInvalidationReason(
-    PaintInvalidationReason reason) {
-  return IsFullPaintInvalidationReason(reason) &&
-         reason != PaintInvalidationReason::kDelayedFull;
-}
-
 PLATFORM_EXPORT std::ostream& operator<<(std::ostream&,
                                          PaintInvalidationReason);
 
diff --git a/third_party/blink/renderer/platform/graphics/paint_invalidation_reason_test.cc b/third_party/blink/renderer/platform/graphics/paint_invalidation_reason_test.cc
index 7ecdd389..547928a 100644
--- a/third_party/blink/renderer/platform/graphics/paint_invalidation_reason_test.cc
+++ b/third_party/blink/renderer/platform/graphics/paint_invalidation_reason_test.cc
@@ -9,18 +9,25 @@
 
 namespace blink {
 
+TEST(PaintInvalidationReasonTest, ToString) {
+  for (auto i = PaintInvalidationReason::kNone;
+       i <= PaintInvalidationReason::kMax;
+       i = static_cast<PaintInvalidationReason>(static_cast<int>(i) + 1))
+    EXPECT_STRNE("", PaintInvalidationReasonToString(i));
+
+  EXPECT_STREQ("none",
+               PaintInvalidationReasonToString(PaintInvalidationReason::kNone));
+  EXPECT_STREQ("full",
+               PaintInvalidationReasonToString(PaintInvalidationReason::kFull));
+}
+
 TEST(PaintInvalidationReasonTest, StreamOutput) {
-  {
+  for (auto i = PaintInvalidationReason::kNone;
+       i <= PaintInvalidationReason::kMax;
+       i = static_cast<PaintInvalidationReason>(static_cast<int>(i) + 1)) {
     std::stringstream string_stream;
-    PaintInvalidationReason reason = PaintInvalidationReason::kNone;
-    string_stream << reason;
-    EXPECT_EQ("none", string_stream.str());
-  }
-  {
-    std::stringstream string_stream;
-    PaintInvalidationReason reason = PaintInvalidationReason::kDelayedFull;
-    string_stream << reason;
-    EXPECT_EQ("delayed full", string_stream.str());
+    string_stream << i;
+    EXPECT_EQ(PaintInvalidationReasonToString(i), string_stream.str());
   }
 }
 
diff --git a/third_party/blink/renderer/platform/heap/BlinkGCDesign.md b/third_party/blink/renderer/platform/heap/BlinkGCDesign.md
index 9748c4d..cbac6aa5 100644
--- a/third_party/blink/renderer/platform/heap/BlinkGCDesign.md
+++ b/third_party/blink/renderer/platform/heap/BlinkGCDesign.md
@@ -1,3 +1,4 @@
+
 # Blink GC Design
 
 Oilpan is a garbage collection system for Blink objects.
@@ -9,159 +10,117 @@
 
 ## Overview
 
-Oilpan is a single-threaded mark-and-sweep GC.
-It doesn't (yet) implement a generational or incremental GC.
-
-Blink has multiple threads including the main thread, HTML parser threads,
-database threads and worker threads. Threads that touch Oilpan's heap need
-to be attached to Oilpan. These threads can have cross-thread pointers.
-Oilpan scans the object graph spanning these threads and collects
-unreachable objects.
+Oilpan implements a mark-and-sweep GC. It features thread-local garbage
+collection with incremental marking and lazy sweeping. It can also do
+compaction for a subset of objects (collection backings).
 
 ## Threading model
 
-Oilpan runs a GC in the following steps:
+Oilpan creates a different heap and root set for each thread. This allows Oilpan
+to run garbage collection in parallel with mutators running in other threads.
 
-Step 1. A thread decides to trigger a GC. The thread can be any thread
-(it is likely to be the main thread because most allocations take place
-on the main thread). The thread is called a GCing thread.
+Any object or `Persistent` that is allocated on a thread automatically belong to
+that thread's heap or root set. References to objects belonging to another
+thread's heap, must use the `CrossThreadPersistent` handle. This is even true
+for on-heap to on-heap references.
 
-Step 2. The GCing thread waits for all other threads to enter safe points.
-A safe point is a place where it's guaranteed that the thread does not
-mutate the object graph of objects in Oilpan's heap. In common cases the thread
-stops at the safe point but doesn't necessarily need to stop. For example,
-the thread is allowed to execute a synchronous IO at the safe point as
-long as it doesn't mutate the object graph. Safe points are inserted into
-many places so that the thread can enter the safe point as soon as possible
-when the GCing thread requests the thread to do so. For example, safe points
-are inserted into V8 interruptors, at the end of event loops,
-before acquiring a mutex, before starting a synchronous IO operation etc.
+Assigning to a `CrossThreadPersistent` requires a global lock, meaning it might
+block waiting for garbage collection to end on all other threads.
 
-Step 3. Once all the threads enter the safe points, the GCing thread starts
-a marking phase. The GCing thread marks all objects reachable from the root
-set by calling trace() methods defined on each object. This means that the
-GCing thread marks objects owned by all the threads. This doesn't cause any
-threading race because all the other threads are at the safe points.
+Threads that want to allocate Oilpan objects must be "attached" to Oilpan
+(typically through `WebThreadSupportingGC`).
 
-Step 4. Once the marking is complete, the GCing thread resumes executions of
-all the other threads. Each thread starts a sweeping phase. Each thread is
-responsible for destructing objects that the thread has allocated.
-That way objects are guaranteed to get destructed on the thread that has
-allocated the objects. The sweeping is done by each thread lazily.
-Instead of completing the sweeping phase in one go, the thread sweeps
-objects incrementally as much as it allocates. Lazy sweeping is helpful
-to distribute a long pause time of the sweeping phase into small chunks.
+## Heap partitioning
 
-The step 2 and 3 is the pause time of the GC.
-The pause time is proportional to the number of objects marked
-in the marking phase, meaning that it is proportional to the number of
-live objects.
+As mentioned earlier, we have separate heaps for each thread. This `ThreadHeap`
+is further partitioned into "Arenas". The Arena for an object is chosen
+depending on a number of criteria.
 
-Notes:
-
-* If the GCing thread fails at stopping all the other threads in a
-certain period of time, it gives up triggering a GC. That way we avoid
-introducing an unacceptably long pause time. (This will rarely happen
-because each thread enters safe points very frequently.)
-
-* It is not really nice that the GCing thread has to stop all the other threads.
-For example, a worker thread has to get involved in a GC
-caused by a lot of allocations happening on the main thread.
-To resolve the issue, we have a plan to split the Oilpan's heap
-into per-thread heaps. Once it's implemented, each thread can run
-GCs independently.
+For example
+- objects over 64KiB goes into `kLargeObjectArenaIndex`
+- objects that have an eager finalizer goes into `kEagerSweepArenaIndex`
+- objects that is a collection backing goes into one of the collection backing
+arenas
+- objects that is a Node or a CSSValue goes into one of the typed arenas
+- other objects goes into one of the normal page arenas bucketed depending on
+their size
 
 ## Precise GC and conservative GC
 
-Oilpan has two kinds of GCs.
+Oilpan has three kinds of GCs.
 
-When all threads are stopped at the safe points at the end of event loops,
-a precise GC is triggered. At this point it is guaranteed that
-there are no on-stack pointers pointing to Oilpan's heap.
-Thus Oilpan runs a precise GC. The root set of a precise GC is
-persistent handles.
+Precise GC is triggered at the end of an event loop. At this point, it is
+guaranteed that there are no on-stack pointers pointing to Oilpan's heap. Oilpan
+can just trace from the `Persistent` handles and collect all garbage precisely.
 
-Otherwise, a conservative GC is triggered. In this case, the GC scans
-a native stack of the threads (which are not stopped at the safe points
-at the end of event loops) and push the pointers discovered via the native
-stacks into the root set. (That's why you can use raw pointers on the
-native stack.) The root set of a conservative GC is persistent handles
-and the native stacks of the threads.
+Conservative GC runs when we are under memory pressure, and a GC cannot wait
+until we go back to an event loop. In this case, the GC scans the native stack
+and treats the pointers discovered via the native stacks as part of the root
+set. (That's why raw pointers are used instead of handles on the native stack.)
 
-A conservative GC is more expensive than a precise GC because
-the conservative GC needs to scan the native stacks.
-Thus Oilpan tries its best to trigger GCs at the end of an event loop.
-In particular, Oilpan tries its best to trigger GCs in idle tasks.
+Incremental GC is the most common type of GC. It splits the marking phase into
+small chunks and runs them between tasks. The smaller pause times help with
+reducing jank.
 
 ## Marking phase
 
-The marking phase (the step 3 in the above description) consists of
-the following steps. The marking phase is executed in a stop-the-world manner.
+The marking phase consists of the following steps. The marking phase is executed
+in a stop-the-world manner.
 
-Step 3-1. The GCing thread marks all objects reachable from the root set
-by calling trace() methods defined on each object.
+Step 1. Mark all objects reachable from the root set by calling `Trace()`
+methods defined on each object.
 
-Step 3-2. The GCing thread clears out all trivial WeakMembers.
+Step 2. Clear out all weak handles and run weak callbacks.
 
 To prevent a use-after-free from happening, it is very important to
 make sure that Oilpan doesn't mis-trace any edge of the object graph.
 This means that all pointers except on-stack pointers must be wrapped
 with Oilpan's handles (i.e., Persistent<>, Member<>, WeakMember<> etc).
 Raw pointers to on-heap objects have a risk of creating an edge Oilpan
-cannot understand and causing a use-after-free. You should not use raw pointers
-to on-heap objects (except raw pointers on native stacks) unless you're pretty
-sure that the target objects are guaranteed to be kept alive in other ways.
+cannot understand and causing a use-after-free. Raw pointers shall not be used
+to reference on-heap objects (except raw pointers on native stacks). Exceptions
+can be made if the target object is guaranteed to be kept alive in other ways.
 
 ## Sweeping phase
 
-The sweeping phase (the step 4 in the above description) consists of
-the following steps. The sweeping phase is executed by each thread in parallel.
+The sweeping phase consists of the following steps.
 
-Step 4-1. The thread clears out all non-trivial WeakMembers.
-Non-trivial WeakMembers are the ones that have manual weak processing
-(registered by registerWeakMembers()) and the ones embedded in HeapHashMap etc.
-The reason we don't run non-trivial WeakMembers in the marking phase is that
-clearing out the non-trivial WeakMembers can invoke some destructors
-(e.g., if you have HeapHashMap<WeakMember<X>, OwnPtr<Y>>, Y's destructor
-is invoked when the weak processing removes the key).
-The destructors must run in the same thread that has allocated the objects.
-
-Step 4-2. The thread invokes pre-finalizers.
+Step 1. Invoke pre-finalizers.
 At this point, no destructors have been invoked.
 Thus the pre-finalizers are allowed to touch any other on-heap objects
 (which may get destructed in this sweeping phase).
 
-Step 4-3. The thread invokes destructors of dead objects that are marked
-as eagerly-finalized. See the following notes for more details about the
+Step 2. Invokes destructors of dead objects that are marked as
+eagerly-finalized. See the following notes for more details about the
 eagerly-finalized objects.
 
-Step 4-4. The thread resumes mutator's execution. (A mutator means user code.)
+Step 3. The thread resumes mutator's execution. (A mutator means user code.)
 
-Step 4-5. As the mutator allocates new objects, lazy sweeping invokes
+Step 4. As the mutator allocates new objects, lazy sweeping invokes
 destructors of the remaining dead objects incrementally.
 
 There is no guarantee of the order in which the destructors are invoked.
 That's why destructors must not touch any other on-heap objects
 (which might have already been destructed). If some destructor unavoidably
-needs to touch other on-heap objects, you need to use a pre-finalizer.
-The pre-finalizer is allowed to touch other on-heap objects.
+needs to touch other on-heap objects, it will have to be converted to a
+pre-finalizer. The pre-finalizer is allowed to touch other on-heap objects.
 
 The mutator is resumed before all the destructors has run.
 For example, imagine a case where X is a client of Y, and Y holds
-a list of clients. If you rely on X's destructor removing X from the list,
+a list of clients. If the code relies on X's destructor removing X from the list,
 there is a risk that Y iterates the list and calls some method of X
 which may touch other on-heap objects. This causes a use-after-free.
-You need to make sure that X is explicitly removed from the list
+Care must be taken to make sure that X is explicitly removed from the list
 before the mutator resumes its execution in a way that doesn't rely on
 X's destructor.
 
 Either way, the most important thing is that there is no guarantee of
-when destructors run. You shouldn't put any assumption about
-the order and the timing.
+when destructors run. Assumptions should not be made about the order and the
+timing of their execution.
 (In general, it's dangerous to do something complicated in a destructor.)
 
-Notes (The followings are features you'll need only when you have
-unusual destruction requirements):
+Notes (The followings are features that shall be reserved for unusual
+destruction requirements):
 
 * Weak processing runs only when the holder object of the WeakMember
 outlives the pointed object. If the holder object and the pointed object die
@@ -170,8 +129,8 @@
 
 * Pre-finalizers are heavy because the thread needs to scan all pre-finalizers
 at each sweeping phase to determine which pre-finalizers to be invoked
-(the thread needs to invoke pre-finalizers of dead objects).
-You should avoid adding pre-finalizers to frequently created objects.
+(the thread needs to invoke pre-finalizers of dead objects). Adding
+pre-finalizers to frequently created objects should be avoided.
 
 * Eagerly-finalized objects are guaranteed to get destructed before the
 mutator resumes its execution. This means that a destructor of
@@ -179,22 +138,3 @@
 objects whereas it's not allowed to touch other eagerly-finalized objects.
 This notion is useful for some objects, but nasty.
 We're planning to replace most eagerly-finalized objects with pre-finalizers.
-
-* There is a subtle scenario where a next GC is triggered before
-the thread finishes lazy sweeping. In that case, the not-yet-swept objects
-are marked as dead and the next GC starts. The objects marked as dead are
-swept in the sweeping phase of the next GC. This means that you cannot assume
-that some two objects get destructed in the same GC cycle.
-
-## Heap structures
-
-Each thread has its dedicated heap so that the thread can allocate an object
-without acquiring a lock. For example, an object allocated on thread 1 goes
-to a different heap than an object allocated on thread 2.
-
-In addition, each thread provides multiple arenas to group objects by their type
-and thus improves locality.
-For example, a Node object allocated on thread 1 goes to a different heap than
-a CSSValue object allocated on thread 1. (See BlinkGC.h to get the list of
-the typed arenas.)
-
diff --git a/third_party/blink/renderer/platform/heap/heap_compact.cc b/third_party/blink/renderer/platform/heap/heap_compact.cc
index 05f0084b..4b6e34c 100644
--- a/third_party/blink/renderer/platform/heap/heap_compact.cc
+++ b/third_party/blink/renderer/platform/heap/heap_compact.cc
@@ -163,13 +163,12 @@
       // moved backing store.
       interior_fixups_.Set(slot, fixup);
 
-      // If the |slot|'s content is pointing into the region [from, from + size[
+      // If the |slot|'s content is pointing into the region [from, from + size)
       // we are dealing with an interior pointer that does not point to a valid
       // HeapObjectHeader. Such references need to be fixed up immediately.
-      Address slot_contents = reinterpret_cast<Address>(*slot);
-      if (slot_contents > from && slot_contents < (from + size)) {
-        size_t delta_contents = slot_contents - from;
-        *reinterpret_cast<Address*>(to + offset) = to + delta_contents;
+      Address fixup_contents = *reinterpret_cast<Address*>(fixup);
+      if (fixup_contents > from && fixup_contents < (from + size)) {
+        *reinterpret_cast<Address*>(fixup) = fixup_contents - from + to;
         continue;
       }
     }
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index f9702d18..2d0c883d 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -150,6 +150,10 @@
       name: "CacheInlineScriptCode"
     },
     {
+      name: "CacheStorageAddAllRejectsDuplicates",
+      status: "experimental",
+    },
+    {
       name: "CacheStyleSheetWithMediaQueries",
       status: "experimental",
     },
@@ -1251,6 +1255,11 @@
       status: "experimental",
     },
     {
+      name: "WebAssemblyThreads",
+      origin_trial_feature_name: "WebAssemblyThreads",
+      status: "experimental",
+    },
+    {
       name: "WebAuth",
       status: "experimental",
     },
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
index 42ebf4f5..4706a271 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
@@ -193,11 +193,11 @@
                                   &tracing_controller_,
                                   PausedStateToString),
       url_tracer_("FrameScheduler.URL", this),
-      task_queue_throttled_(false,
-                            "FrameScheduler.TaskQueueThrottled",
-                            this,
-                            &tracing_controller_,
-                            YesNoStateToString),
+      task_queues_throttled_(false,
+                             "FrameScheduler.TaskQueuesThrottled",
+                             this,
+                             &tracing_controller_,
+                             YesNoStateToString),
       active_connection_count_(0),
       subresource_loading_pause_count_(0u),
       has_active_connection_(false,
@@ -666,27 +666,33 @@
 }
 
 void FrameSchedulerImpl::UpdatePolicy() {
-  // Per-frame (stoppable) task queues will be frozen after 5mins in
-  // background. They will be resumed when the page is visible.
+  bool task_queues_were_throttled = task_queues_throttled_;
+  task_queues_throttled_ = ShouldThrottleTaskQueues();
+
   for (const auto& task_queue_and_voter :
        frame_task_queue_controller_->GetAllTaskQueuesAndVoters()) {
     UpdateQueuePolicy(task_queue_and_voter.first, task_queue_and_voter.second);
+    if (task_queues_were_throttled != task_queues_throttled_) {
+      UpdateTaskQueueThrottling(task_queue_and_voter.first,
+                                task_queues_throttled_);
+    }
   }
 
-  UpdateThrottling();
-
   NotifyLifecycleObservers();
 }
 
 void FrameSchedulerImpl::UpdateQueuePolicy(
-    const scoped_refptr<MainThreadTaskQueue>& queue,
+    MainThreadTaskQueue* queue,
     TaskQueue::QueueEnabledVoter* voter) {
   DCHECK(queue);
-  UpdatePriority(queue.get());
+  UpdatePriority(queue);
   if (!voter)
     return;
   DCHECK(parent_page_scheduler_);
   bool queue_paused = frame_paused_ && queue->CanBePaused();
+  // Per-frame freezable task queues will be frozen after 5 mins in background
+  // on Android, and if the browser freezes the page in the background. They
+  // will be resumed when the page is visible.
   bool queue_frozen =
       parent_page_scheduler_->IsFrozen() && queue->CanBeFrozen();
   // Override freezing if keep-active is true.
@@ -728,7 +734,7 @@
   return std::make_unique<FrameSchedulerImpl::ActiveConnectionHandleImpl>(this);
 }
 
-bool FrameSchedulerImpl::ShouldThrottleTimers() const {
+bool FrameSchedulerImpl::ShouldThrottleTaskQueues() const {
   if (!RuntimeEnabledFeatures::TimerThrottlingForBackgroundTabsEnabled())
     return false;
   if (parent_page_scheduler_ && parent_page_scheduler_->IsAudioPlaying())
@@ -739,30 +745,17 @@
          !frame_visible_ && IsCrossOrigin();
 }
 
-void FrameSchedulerImpl::UpdateThrottling() {
-  // |task_queue_throttled_| is updated regardless of whether any throttleable
-  // task queues exist so that the ref count for new queues can be initialized
-  // independently. |task_queue_throttled_| should not be change elsewhere, and
-  // neither should the ref counts, except for where new task queues are
-  // initialized.
-  bool should_throttle = ShouldThrottleTimers();
-  if (task_queue_throttled_ == should_throttle)
+void FrameSchedulerImpl::UpdateTaskQueueThrottling(
+    MainThreadTaskQueue* task_queue,
+    bool should_throttle) {
+  if (!task_queue->CanBeThrottled())
     return;
-  task_queue_throttled_ = should_throttle;
-
-  // TODO(altimin): UpdateQueuePolicy already iterates over all task queues
-  // before calling this. Try to fold this into UpdateQueuePolicy.
-  for (const auto& task_queue_and_voter :
-       frame_task_queue_controller_->GetAllTaskQueuesAndVoters()) {
-    if (!task_queue_and_voter.first->CanBeThrottled())
-      continue;
-    if (should_throttle) {
-      main_thread_scheduler_->task_queue_throttler()->IncreaseThrottleRefCount(
-          task_queue_and_voter.first);
-    } else {
-      main_thread_scheduler_->task_queue_throttler()->DecreaseThrottleRefCount(
-          task_queue_and_voter.first);
-    }
+  if (should_throttle) {
+    main_thread_scheduler_->task_queue_throttler()->IncreaseThrottleRefCount(
+        task_queue);
+  } else {
+    main_thread_scheduler_->task_queue_throttler()->DecreaseThrottleRefCount(
+        task_queue);
   }
 }
 
@@ -912,8 +905,8 @@
   DCHECK(parent_page_scheduler_);
 
   task_queue->SetBlameContext(blame_context_);
-  if (voter)
-    voter->SetQueueEnabled(!frame_paused_);
+  UpdateQueuePolicy(task_queue, voter);
+
   if (task_queue->CanBeThrottled()) {
     CPUTimeBudgetPool* time_budget_pool =
         parent_page_scheduler_->BackgroundCPUTimeBudgetPool();
@@ -921,9 +914,8 @@
       time_budget_pool->AddQueue(
           main_thread_scheduler_->tick_clock()->NowTicks(), task_queue);
     }
-    if (task_queue_throttled_) {
-      main_thread_scheduler_->task_queue_throttler()->IncreaseThrottleRefCount(
-          task_queue);
+    if (task_queues_throttled_) {
+      UpdateTaskQueueThrottling(task_queue, true);
     }
   }
 }
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h
index d8359c4b..b0aada2 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h
@@ -209,13 +209,17 @@
   void RemoveThrottleableQueueFromBackgroundCPUTimeBudgetPool(
       MainThreadTaskQueue*);
   void ApplyPolicyToThrottleableQueue();
-  bool ShouldThrottleTimers() const;
+  bool ShouldThrottleTaskQueues() const;
   SchedulingLifecycleState CalculateLifecycleState(
       ObserverType type) const override;
   void UpdateQueuePolicy(
-      const scoped_refptr<MainThreadTaskQueue>& queue,
+      MainThreadTaskQueue* queue,
       base::sequence_manager::TaskQueue::QueueEnabledVoter* voter);
-  void UpdateThrottling();
+  // Update throttling for |task_queue|. This changes the throttling ref counts
+  // and should only be called for new queues if throttling is enabled, or if
+  // the throttling state changes.
+  void UpdateTaskQueueThrottling(MainThreadTaskQueue* task_queue,
+                                 bool should_throttle);
 
   void DidOpenActiveConnection();
   void DidCloseActiveConnection();
@@ -266,8 +270,7 @@
   TraceableState<FrameOriginType, kTracingCategoryNameInfo> frame_origin_type_;
   TraceableState<bool, kTracingCategoryNameInfo> subresource_loading_paused_;
   StateTracer<kTracingCategoryNameInfo> url_tracer_;
-  // |task_queue_throttled_| is false if |throttleable_task_queue_| is absent.
-  TraceableState<bool, kTracingCategoryNameInfo> task_queue_throttled_;
+  TraceableState<bool, kTracingCategoryNameInfo> task_queues_throttled_;
   // TODO(kraynov): https://crbug.com/827113
   // Trace active connection count.
   int active_connection_count_;
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
index 2a1cd8a..9041484 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
@@ -203,6 +203,21 @@
 }
 
 void PageSchedulerImpl::SetPageFrozen(bool frozen) {
+  // Only transitions from HIDDEN to FROZEN are allowed for pages (see
+  // https://github.com/WICG/page-lifecycle).
+  // This is the page freezing path we expose via WebView, which is how
+  // embedders freeze pages. Visibility is also controlled by the embedder,
+  // through [WebView|WebViewFrameWidget]::SetVisibilityState(). The following
+  // happens if the embedder attempts to freeze a page that it set to visible.
+  // We check for this illegal state transition later on this code path in page
+  // scheduler and frame scheduler when computing the new lifecycle state, but
+  // it is desirable to reject the page freeze to prevent the scheduler from
+  // being put in a bad state. See https://crbug.com/873214 for context of how
+  // this can happen on the browser side.
+  if (frozen && IsPageVisible()) {
+    DCHECK(false);
+    return;
+  }
   SetPageFrozenImpl(frozen, NotificationPolicy::kNotifyFrames);
 }
 
diff --git a/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.cc b/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.cc
index 562bb31f..440c68f 100644
--- a/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.cc
+++ b/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.cc
@@ -95,9 +95,9 @@
 
 MockWebRTCPeerConnectionHandler::~MockWebRTCPeerConnectionHandler() = default;
 
-bool MockWebRTCPeerConnectionHandler::Initialize(const WebRTCConfiguration&,
-                                                 const WebMediaConstraints&,
-                                                 WebRTCSdpSemantics) {
+bool MockWebRTCPeerConnectionHandler::Initialize(
+    const webrtc::PeerConnectionInterface::RTCConfiguration&,
+    const WebMediaConstraints&) {
   return true;
 }
 
@@ -153,8 +153,14 @@
   return WebRTCSessionDescription();
 }
 
+const webrtc::PeerConnectionInterface::RTCConfiguration&
+MockWebRTCPeerConnectionHandler::GetConfiguration() const {
+  static webrtc::PeerConnectionInterface::RTCConfiguration configuration;
+  return configuration;
+}
+
 webrtc::RTCErrorType MockWebRTCPeerConnectionHandler::SetConfiguration(
-    const WebRTCConfiguration&) {
+    const webrtc::PeerConnectionInterface::RTCConfiguration&) {
   return webrtc::RTCErrorType::NONE;
 }
 
diff --git a/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.h b/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.h
index 85571042..af2f28bf 100644
--- a/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.h
+++ b/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.h
@@ -8,6 +8,7 @@
 #include "base/single_thread_task_runner.h"
 #include "third_party/blink/public/platform/web_rtc_peer_connection_handler.h"
 #include "third_party/blink/renderer/platform/testing/testing_platform_support.h"
+#include "third_party/webrtc/api/peerconnectioninterface.h"
 
 namespace blink {
 
@@ -16,9 +17,8 @@
   MockWebRTCPeerConnectionHandler();
   ~MockWebRTCPeerConnectionHandler() override;
 
-  bool Initialize(const WebRTCConfiguration&,
-                  const WebMediaConstraints&,
-                  WebRTCSdpSemantics original_sdp_semantics_value) override;
+  bool Initialize(const webrtc::PeerConnectionInterface::RTCConfiguration&,
+                  const WebMediaConstraints&) override;
 
   void CreateOffer(const WebRTCSessionDescriptionRequest&,
                    const WebMediaConstraints&) override;
@@ -38,7 +38,10 @@
   WebRTCSessionDescription CurrentRemoteDescription() override;
   WebRTCSessionDescription PendingLocalDescription() override;
   WebRTCSessionDescription PendingRemoteDescription() override;
-  webrtc::RTCErrorType SetConfiguration(const WebRTCConfiguration&) override;
+  const webrtc::PeerConnectionInterface::RTCConfiguration& GetConfiguration()
+      const override;
+  webrtc::RTCErrorType SetConfiguration(
+      const webrtc::PeerConnectionInterface::RTCConfiguration&) override;
   void GetStats(const WebRTCStatsRequest&) override;
   void GetStats(std::unique_ptr<WebRTCStatsReportCallback>) override;
   webrtc::RTCErrorOr<std::unique_ptr<WebRTCRtpTransceiver>>
diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h
index 671b055..9d5b057d 100644
--- a/third_party/blink/renderer/platform/wtf/hash_table.h
+++ b/third_party/blink/renderer/platform/wtf/hash_table.h
@@ -2067,6 +2067,9 @@
     if (!table->table_)
       return;
 
+    // Only trace the backing store. Its fields will be processed below.
+    Allocator::template TraceHashTableBackingOnly<ValueType, HashTableType>(
+        visitor, table->table_, &(table->table_));
     // Now perform weak processing (this is a no-op if the backing was
     // accessible through an iterator and was already marked strongly).
     for (ValueType* element = table->table_ + table->table_size_ - 1;
@@ -2127,12 +2130,6 @@
     Allocator::template TraceHashTableBackingStrongly<ValueType, HashTable>(
         visitor, table_, &table_);
   } else {
-    // Only trace the backing store. The elements will be processed in the weak
-    // processing callback.
-    Allocator::template TraceHashTableBackingOnly<ValueType, HashTable>(
-        visitor, table_, &table_);
-    if (!table_)
-      return;
     // Weak HashTable. The HashTable may be held alive strongly from somewhere
     // else, e.g., an iterator.
 
diff --git a/third_party/closure_compiler/externs/automation.js b/third_party/closure_compiler/externs/automation.js
index d946a1a..fef1a06 100644
--- a/third_party/closure_compiler/externs/automation.js
+++ b/third_party/closure_compiler/externs/automation.js
@@ -260,6 +260,7 @@
  * @see https://developer.chrome.com/extensions/automation#type-StateType
  */
 chrome.automation.StateType = {
+  AUTOFILL_AVAILABLE: 'autofillAvailable',
   COLLAPSED: 'collapsed',
   DEFAULT: 'default',
   EDITABLE: 'editable',
diff --git a/third_party/closure_compiler/externs/file_manager_private.js b/third_party/closure_compiler/externs/file_manager_private.js
index 23db62b..dfc6b4c 100644
--- a/third_party/closure_compiler/externs/file_manager_private.js
+++ b/third_party/closure_compiler/externs/file_manager_private.js
@@ -660,12 +660,6 @@
 chrome.fileManagerPrivate.cancelFileTransfers = function(entries, callback) {};
 
 /**
- * Cancels all ongoing file transfers.
- * @param {function()} callback
- */
-chrome.fileManagerPrivate.cancelAllFileTransfers = function(callback) {};
-
-/**
  * Starts to copy an entry. If the source is a directory, the copy is done
  * recursively. |entry| Entry of the source entry to be copied. |parent| Entry
  * of the destination directory. |newName| Name of the new entry. It must not
diff --git a/third_party/fuchsia-sdk/BUILD.gn b/third_party/fuchsia-sdk/BUILD.gn
index 669ecaeb..b13ba87 100644
--- a/third_party/fuchsia-sdk/BUILD.gn
+++ b/third_party/fuchsia-sdk/BUILD.gn
@@ -84,30 +84,19 @@
 fuchsia_sdk_pkg("fidl_cpp") {
   public_deps = [
     ":fidl",
+    ":fidl_cpp_sync",
     ":fit",
     ":zx",
   ]
   sources = [
     "clone.cc",
-    "coding_traits.cc",
-    "decoder.cc",
-    "encoder.cc",
-    "include/lib/fidl/cpp/array.h",
     "include/lib/fidl/cpp/binding.h",
     "include/lib/fidl/cpp/binding_set.h",
     "include/lib/fidl/cpp/clone.h",
-    "include/lib/fidl/cpp/coding_traits.h",
-    "include/lib/fidl/cpp/comparison.h",
-    "include/lib/fidl/cpp/decoder.h",
-    "include/lib/fidl/cpp/encoder.h",
-    "include/lib/fidl/cpp/interface_handle.h",
     "include/lib/fidl/cpp/interface_ptr.h",
     "include/lib/fidl/cpp/interface_ptr_set.h",
-    "include/lib/fidl/cpp/interface_request.h",
-    "include/lib/fidl/cpp/internal",
     "include/lib/fidl/cpp/internal/header.h",
     "include/lib/fidl/cpp/internal/implementation.h",
-    "include/lib/fidl/cpp/internal/logging.h",
     "include/lib/fidl/cpp/internal/message_handler.h",
     "include/lib/fidl/cpp/internal/message_reader.h",
     "include/lib/fidl/cpp/internal/pending_response.h",
@@ -115,16 +104,10 @@
     "include/lib/fidl/cpp/internal/proxy_controller.h",
     "include/lib/fidl/cpp/internal/stub.h",
     "include/lib/fidl/cpp/internal/stub_controller.h",
-    "include/lib/fidl/cpp/internal/synchronous_proxy.h",
     "include/lib/fidl/cpp/internal/weak_stub_controller.h",
     "include/lib/fidl/cpp/optional.h",
     "include/lib/fidl/cpp/string.h",
-    "include/lib/fidl/cpp/synchronous_interface_ptr.h",
     "include/lib/fidl/cpp/thread_safe_binding_set.h",
-    "include/lib/fidl/cpp/traits.h",
-    "include/lib/fidl/cpp/vector.h",
-    "internal",
-    "internal/logging.cc",
     "internal/message_handler.cc",
     "internal/message_reader.cc",
     "internal/pending_response.cc",
@@ -132,12 +115,38 @@
     "internal/proxy_controller.cc",
     "internal/stub.cc",
     "internal/stub_controller.cc",
-    "internal/synchronous_proxy.cc",
     "internal/weak_stub_controller.cc",
     "string.cc",
   ]
 }
 
+fuchsia_sdk_pkg("fidl_cpp_sync") {
+  public_deps = [
+    ":fidl",
+    ":fit",
+    ":zx",
+  ]
+  sources = [
+    "coding_traits.cc",
+    "decoder.cc",
+    "encoder.cc",
+    "include/lib/fidl/cpp/array.h",
+    "include/lib/fidl/cpp/coding_traits.h",
+    "include/lib/fidl/cpp/comparison.h",
+    "include/lib/fidl/cpp/decoder.h",
+    "include/lib/fidl/cpp/encoder.h",
+    "include/lib/fidl/cpp/interface_handle.h",
+    "include/lib/fidl/cpp/interface_request.h",
+    "include/lib/fidl/cpp/internal/logging.h",
+    "include/lib/fidl/cpp/internal/synchronous_proxy.h",
+    "include/lib/fidl/cpp/synchronous_interface_ptr.h",
+    "include/lib/fidl/cpp/traits.h",
+    "include/lib/fidl/cpp/vector.h",
+    "internal/logging.cc",
+    "internal/synchronous_proxy.cc",
+  ]
+}
+
 fuchsia_sdk_pkg("fit") {
   sources = [
     "include/lib/fit/function.h",
diff --git a/third_party/metrics_proto/README.chromium b/third_party/metrics_proto/README.chromium
index 917c2bf..a65e37c7 100644
--- a/third_party/metrics_proto/README.chromium
+++ b/third_party/metrics_proto/README.chromium
@@ -1,8 +1,8 @@
 Name: Metrics Protos
 Short Name: metrics_proto
 URL: This is the canonical public repository
-Version: 209012138
-Date: 2018/08/16 UTC
+Version: 209238432
+Date: 2018/08/18 UTC
 License: BSD
 Security Critical: Yes
 
diff --git a/third_party/metrics_proto/call_stack_profile.proto b/third_party/metrics_proto/call_stack_profile.proto
index 73d693e5..8b001bb 100644
--- a/third_party/metrics_proto/call_stack_profile.proto
+++ b/third_party/metrics_proto/call_stack_profile.proto
@@ -14,7 +14,7 @@
 import "execution_context.proto";
 
 // Call stack sample data for a given profiling session.
-// Next tag: 5
+// Next tag: 11
 message CallStackProfile {
   // Uniquely identifies a module.
   message ModuleIdentifier {
@@ -40,8 +40,38 @@
     optional int32 module_id_index = 2;
   }
 
-  // A sample consisting of one or more callstacks with the same stack frames
-  // and instruction pointers.
+  // The sampled call stack.
+  message Stack {
+    // The frames in the callstack. The frame[0] entry represents the call on
+    // the top of the stack.
+    repeated Location frame = 1;
+  }
+
+  // An item of metadata associated with either the entire profile or a single
+  // sample.
+  message MetadataItem {
+    // Index of the hash of the metadata name.
+    optional int32 name_hash_index = 1;
+
+    // Value for the item. An absent value indicates the metadata has become
+    // unset since the previous StackSample.
+    optional sint64 value = 2;
+  }
+
+  // Backtrace of locations of async execution requests (e.g. task postings, IPC
+  // message sending, requests over mojo) that led to the current task
+  // execution. Note that these are saved in a fixed length buffer on the client
+  // which as of 2018/08/14 includes only the most recent four entries.
+  message AsyncBacktrace {
+    // The locations saved in the backtrace, with the most recent in
+    // location[0]. Empty if the work was not tied to an async execution request
+    // -- for example, handling a mouse event.
+    repeated Location location = 1;
+  }
+
+  // Deprecated version of a sample consisting of one or more callstacks with
+  // the same stack frames and instruction pointers. Deprecated as of
+  // 2018/08/14.
   message Sample {
     // The callstack. Sample.frame[0] represents the call on the top of the
     // stack.
@@ -58,12 +88,58 @@
     repeated ProcessPhase process_phase = 3;
   }
 
-  // The callstack and counts.
-  repeated Sample sample = 1;
+  // A sampled stack, along with associated metadata.
+  message StackSample {
+    // Index into the profile's repeated |stack| field for the stack
+    // corresponding to this sample.
+    optional int32 stack_index = 1;
+
+    // Sample time relative to the first sample.
+    optional int32 sample_time_offset_ms = 2;
+
+    // True if this sample is executing the same item of work (task, event) as
+    // the last sample.
+    optional bool continued_work = 3;
+
+    // Index of the backtrace in the profile of posted task locations that led
+    // to this task execution.
+    optional int32 async_backtrace_index = 4;
+
+    // Metadata items associated with the sample. To minimize memory usage,
+    // metadata items are specified only when their values change from the
+    // previous sample. Items are not guaranteed to be in a particular order.
+    repeated MetadataItem metadata = 5;
+  }
+
+  // The previous sample encoding. Deprecated 2018/08/04 in favor of
+  // stack_sample.
+  repeated Sample DEPRECATED_sample = 1 [deprecated = true];
 
   // List of module ids found in this sample.
   repeated ModuleIdentifier module_id = 2;
 
+  // Metadata name hashes used in this profile. Recorded global to the profile
+  // to minimize per-sample memory usage.
+  repeated fixed64 metadata_name_hash = 5;
+
+  // Metadata global to the profile.
+  repeated MetadataItem profile_metadata = 6;
+
+  // The distinct async backtraces for the samples.
+  repeated AsyncBacktrace async_backtrace = 7;
+
+  // The distinct stacks for the samples.
+  repeated Stack stack = 8;
+
+  // The stack samples collected for this profile.
+  repeated StackSample stack_sample = 9;
+
+  // Time of the first sample relative to Chrome start. This value may be
+  // imprecise or wrong for Windows clients without high-resolution
+  // TimeTicks. TODO(wittman): Clarify the actual properties of this value for
+  // clients without high-resolution TimeTicks once we understand what they are.
+  optional int64 profile_start_time_offset_ms = 10;
+
   // Duration of this profile.
   optional int32 profile_duration_ms = 3;
 
diff --git a/third_party/metrics_proto/cast_logs.proto b/third_party/metrics_proto/cast_logs.proto
index dd46b0b9..6d2a1be2 100644
--- a/third_party/metrics_proto/cast_logs.proto
+++ b/third_party/metrics_proto/cast_logs.proto
@@ -47,9 +47,24 @@
     // Hardware information stored in factory partition.
     message HardwareInfo {
       optional string color = 1;
+
       optional string mic = 2;
+
       optional string memory = 3;
+
       optional string nand = 4;
+
+      optional string mfg_date = 5;
+
+      optional string build_name = 6;
+
+      optional string config = 7;
+
+      optional string emmc = 8;
+
+      optional string display = 9;
+
+      optional string amp = 10;
     }
     optional HardwareInfo hardware_info = 6;
   }
diff --git a/third_party/metrics_proto/omnibox_event.proto b/third_party/metrics_proto/omnibox_event.proto
index a8e697a6..a5d559f 100644
--- a/third_party/metrics_proto/omnibox_event.proto
+++ b/third_party/metrics_proto/omnibox_event.proto
@@ -150,6 +150,10 @@
     // This omnibox interaction started with the user tapping the search button.
     SEARCH_BUTTON_AS_STARTING_FOCUS = 13;
 
+    // This interaction started with the user focusing or typing in the search
+    // box of the ChromeOS app list (a.k.a., launcher).
+    CHROMEOS_APP_LIST = 14;
+
     // When adding new classifications, please consider adding them in
     // chromium's chrome/browser/resources/omnibox/omnibox.html
     // so that these new options are displayed on about:omnibox.
diff --git a/third_party/snappy/README.chromium b/third_party/snappy/README.chromium
index d085536..ab39894f 100644
--- a/third_party/snappy/README.chromium
+++ b/third_party/snappy/README.chromium
@@ -1,7 +1,7 @@
 Name: Snappy: A fast compressor/decompressor
 Short Name: snappy
 URL: http://google.github.io/snappy/
-Version: 1.1.7.git.ca37ab7fb9b718e056009babb4fea591626e5882
+Version: 1.1.7.git.ea660b57d65d68d521287c903459b6dd3b2804d0
 License: New BSD
 License File: src/COPYING
 Security Critical: yes
diff --git a/third_party/snappy/linux/config.h b/third_party/snappy/linux/config.h
index 2595d0e..5dc7a4b 100644
--- a/third_party/snappy/linux/config.h
+++ b/third_party/snappy/linux/config.h
@@ -28,12 +28,6 @@
 /* Define to 1 if you have the `z' library (-lz). */
 #define HAVE_LIBZ 1
 
-/* Define to 1 if you have the <stddef.h> header file. */
-#define HAVE_STDDEF_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
 /* Define to 1 if you have the <sys/endian.h> header file. */
 /* #undef HAVE_SYS_ENDIAN_H */
 
@@ -55,6 +49,9 @@
 /* Define to 1 if you have the <windows.h> header file. */
 /* #undef HAVE_WINDOWS_H */
 
+/* Define to 1 if you target processors with SSSE3+ and have <tmmintrin.h>. */
+#define SNAPPY_HAVE_SSSE3 0
+
 /* Define to 1 if your processor stores words with the most significant byte
    first (like Motorola and SPARC, unlike Intel and VAX). */
 /* #undef SNAPPY_IS_BIG_ENDIAN */
diff --git a/third_party/snappy/linux/snappy-stubs-public.h b/third_party/snappy/linux/snappy-stubs-public.h
index 590cae0..feefa70 100644
--- a/third_party/snappy/linux/snappy-stubs-public.h
+++ b/third_party/snappy/linux/snappy-stubs-public.h
@@ -36,13 +36,9 @@
 #ifndef THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_
 #define THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_
 
-#if 1  // HAVE_STDINT_H
-#include <stdint.h>
-#endif  // HAVE_STDDEF_H
-
-#if 1  // HAVE_STDDEF_H
-#include <stddef.h>
-#endif  // HAVE_STDDEF_H
+#include <cstddef>
+#include <cstdint>
+#include <string>
 
 #if 1  // HAVE_SYS_UIO_H
 #include <sys/uio.h>
@@ -54,38 +50,25 @@
 #define SNAPPY_VERSION \
     ((SNAPPY_MAJOR << 16) | (SNAPPY_MINOR << 8) | SNAPPY_PATCHLEVEL)
 
-#include <string>
-
 namespace snappy {
 
-#if 1  // HAVE_STDINT_H
-typedef int8_t int8;
-typedef uint8_t uint8;
-typedef int16_t int16;
-typedef uint16_t uint16;
-typedef int32_t int32;
-typedef uint32_t uint32;
-typedef int64_t int64;
-typedef uint64_t uint64;
-#else
-typedef signed char int8;
-typedef unsigned char uint8;
-typedef short int16;
-typedef unsigned short uint16;
-typedef int int32;
-typedef unsigned int uint32;
-typedef long long int64;
-typedef unsigned long long uint64;
-#endif  // HAVE_STDINT_H
+using int8 = std::int8_t;
+using uint8 = std::uint8_t;
+using int16 = std::int16_t;
+using uint16 = std::uint16_t;
+using int32 = std::int32_t;
+using uint32 = std::uint32_t;
+using int64 = std::int64_t;
+using uint64 = std::uint64_t;
 
-typedef std::string string;
+using string = std::string;
 
 #if !1  // !HAVE_SYS_UIO_H
 // Windows does not have an iovec type, yet the concept is universally useful.
 // It is simple to define it ourselves, so we put it inside our own namespace.
 struct iovec {
-	void* iov_base;
-	size_t iov_len;
+  void* iov_base;
+  size_t iov_len;
 };
 #endif  // !HAVE_SYS_UIO_H
 
diff --git a/third_party/snappy/mac/config.h b/third_party/snappy/mac/config.h
index 16bb031..a0d92285 100644
--- a/third_party/snappy/mac/config.h
+++ b/third_party/snappy/mac/config.h
@@ -28,12 +28,6 @@
 /* Define to 1 if you have the `z' library (-lz). */
 #define HAVE_LIBZ 1
 
-/* Define to 1 if you have the <stddef.h> header file. */
-#define HAVE_STDDEF_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
 /* Define to 1 if you have the <sys/endian.h> header file. */
 /* #undef HAVE_SYS_ENDIAN_H */
 
@@ -55,6 +49,9 @@
 /* Define to 1 if you have the <windows.h> header file. */
 /* #undef HAVE_WINDOWS_H */
 
+/* Define to 1 if you target processors with SSSE3+ and have <tmmintrin.h>. */
+#define SNAPPY_HAVE_SSSE3 0
+
 /* Define to 1 if your processor stores words with the most significant byte
    first (like Motorola and SPARC, unlike Intel and VAX). */
 /* #undef SNAPPY_IS_BIG_ENDIAN */
diff --git a/third_party/snappy/mac/snappy-stubs-public.h b/third_party/snappy/mac/snappy-stubs-public.h
index 442d599..feefa70 100644
--- a/third_party/snappy/mac/snappy-stubs-public.h
+++ b/third_party/snappy/mac/snappy-stubs-public.h
@@ -36,17 +36,13 @@
 #ifndef THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_
 #define THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_
 
-#if 1
-#include <stdint.h>
-#endif
+#include <cstddef>
+#include <cstdint>
+#include <string>
 
-#if 1
-#include <stddef.h>
-#endif
-
-#if 1
+#if 1  // HAVE_SYS_UIO_H
 #include <sys/uio.h>
-#endif
+#endif  // HAVE_SYS_UIO_H
 
 #define SNAPPY_MAJOR 1
 #define SNAPPY_MINOR 1
@@ -54,46 +50,27 @@
 #define SNAPPY_VERSION \
     ((SNAPPY_MAJOR << 16) | (SNAPPY_MINOR << 8) | SNAPPY_PATCHLEVEL)
 
-#include <string>
-
 namespace snappy {
 
-#if 1
-typedef int8_t int8;
-typedef uint8_t uint8;
-typedef int16_t int16;
-typedef uint16_t uint16;
-typedef int32_t int32;
-typedef uint32_t uint32;
-typedef int64_t int64;
-typedef uint64_t uint64;
-#else
-typedef signed char int8;
-typedef unsigned char uint8;
-typedef short int16;
-typedef unsigned short uint16;
-typedef int int32;
-typedef unsigned int uint32;
-typedef long long int64;
-typedef unsigned long long uint64;
-#endif
+using int8 = std::int8_t;
+using uint8 = std::uint8_t;
+using int16 = std::int16_t;
+using uint16 = std::uint16_t;
+using int32 = std::int32_t;
+using uint32 = std::uint32_t;
+using int64 = std::int64_t;
+using uint64 = std::uint64_t;
 
-typedef std::string string;
+using string = std::string;
 
-#ifndef DISALLOW_COPY_AND_ASSIGN
-#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
-  TypeName(const TypeName&);               \
-  void operator=(const TypeName&)
-#endif
-
-#if !1
+#if !1  // !HAVE_SYS_UIO_H
 // Windows does not have an iovec type, yet the concept is universally useful.
 // It is simple to define it ourselves, so we put it inside our own namespace.
 struct iovec {
-	void* iov_base;
-	size_t iov_len;
+  void* iov_base;
+  size_t iov_len;
 };
-#endif
+#endif  // !HAVE_SYS_UIO_H
 
 }  // namespace snappy
 
diff --git a/third_party/snappy/win32/config.h b/third_party/snappy/win32/config.h
index d0db90f0..995a8014 100644
--- a/third_party/snappy/win32/config.h
+++ b/third_party/snappy/win32/config.h
@@ -28,12 +28,6 @@
 /* Define to 1 if you have the `z' library (-lz). */
 /* #undef HAVE_LIBZ */
 
-/* Define to 1 if you have the <stddef.h> header file. */
-#define HAVE_STDDEF_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
 /* Define to 1 if you have the <sys/endian.h> header file. */
 /* #undef HAVE_SYS_ENDIAN_H */
 
@@ -55,6 +49,9 @@
 /* Define to 1 if you have the <windows.h> header file. */
 #define HAVE_WINDOWS_H 1
 
+/* Define to 1 if you target processors with SSSE3+ and have <tmmintrin.h>. */
+#define SNAPPY_HAVE_SSSE3 0
+
 /* Define to 1 if your processor stores words with the most significant byte
    first (like Motorola and SPARC, unlike Intel and VAX). */
 /* #undef SNAPPY_IS_BIG_ENDIAN */
diff --git a/third_party/snappy/win32/snappy-stubs-public.h b/third_party/snappy/win32/snappy-stubs-public.h
index b3fddd3..7a6b771 100644
--- a/third_party/snappy/win32/snappy-stubs-public.h
+++ b/third_party/snappy/win32/snappy-stubs-public.h
@@ -36,13 +36,9 @@
 #ifndef THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_
 #define THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_
 
-#if 1  // HAVE_STDINT_H
-#include <stdint.h>
-#endif  // HAVE_STDDEF_H
-
-#if 1  // HAVE_STDDEF_H
-#include <stddef.h>
-#endif  // HAVE_STDDEF_H
+#include <cstddef>
+#include <cstdint>
+#include <string>
 
 #if 0  // HAVE_SYS_UIO_H
 #include <sys/uio.h>
@@ -54,31 +50,18 @@
 #define SNAPPY_VERSION \
     ((SNAPPY_MAJOR << 16) | (SNAPPY_MINOR << 8) | SNAPPY_PATCHLEVEL)
 
-#include <string>
-
 namespace snappy {
 
-#if 1  // HAVE_STDINT_H
-typedef int8_t int8;
-typedef uint8_t uint8;
-typedef int16_t int16;
-typedef uint16_t uint16;
-typedef int32_t int32;
-typedef uint32_t uint32;
-typedef int64_t int64;
-typedef uint64_t uint64;
-#else
-typedef signed char int8;
-typedef unsigned char uint8;
-typedef short int16;
-typedef unsigned short uint16;
-typedef int int32;
-typedef unsigned int uint32;
-typedef long long int64;
-typedef unsigned long long uint64;
-#endif  // HAVE_STDINT_H
+using int8 = std::int8_t;
+using uint8 = std::uint8_t;
+using int16 = std::int16_t;
+using uint16 = std::uint16_t;
+using int32 = std::int32_t;
+using uint32 = std::uint32_t;
+using int64 = std::int64_t;
+using uint64 = std::uint64_t;
 
-typedef std::string string;
+using string = std::string;
 
 #if !0  // !HAVE_SYS_UIO_H
 // Windows does not have an iovec type, yet the concept is universally useful.
diff --git a/tools/android/roll/android_deps/build.gradle b/tools/android/roll/android_deps/build.gradle
index 34bc534..edecdb2 100644
--- a/tools/android/roll/android_deps/build.gradle
+++ b/tools/android/roll/android_deps/build.gradle
@@ -29,10 +29,10 @@
     compile "com.google.android.gms:play-services-auth-base:${gmsVersion}"
     compile "com.google.android.gms:play-services-auth-api-phone:${gmsVersion}"
     compile "com.google.android.gms:play-services-auth:${gmsVersion}"
-    compile "com.google.android.gms:play-services-cast:${gmsVersion}"
-    compile "com.google.android.gms:play-services-cast-framework:${gmsVersion}"
+    compile "com.google.android.gms:play-services-cast:16.0.1"
+    compile "com.google.android.gms:play-services-cast-framework:16.0.1"
     compile "com.google.android.gms:play-services-iid:${gmsVersion}"
-    compile "com.google.android.gms:play-services-instantapps:${gmsVersion}"
+    compile "com.google.android.gms:play-services-instantapps:16.0.0"
     compile "com.google.android.gms:play-services-gcm:${gmsVersion}"
     compile "com.google.android.gms:play-services-location:${gmsVersion}"
     compile "com.google.android.gms:play-services-vision-common:${gmsVersion}"
diff --git a/tools/clang/scripts/package.py b/tools/clang/scripts/package.py
index 5a4707c..7f79919 100755
--- a/tools/clang/scripts/package.py
+++ b/tools/clang/scripts/package.py
@@ -230,7 +230,9 @@
   # Copy a whitelist of files to the directory we're going to tar up.
   # This supports the same patterns that the fnmatch module understands.
   exe_ext = '.exe' if sys.platform == 'win32' else ''
-  want = ['bin/llvm-symbolizer' + exe_ext,
+  want = ['bin/llvm-pdbutil' + exe_ext,
+          'bin/llvm-symbolizer' + exe_ext,
+          'bin/llvm-undname' + exe_ext,
           'bin/sancov' + exe_ext,
           # Copy built-in headers (lib/clang/3.x.y/include).
           'lib/clang/*/include/*',
@@ -300,7 +302,12 @@
             os.path.splitext(f)[1] in ['.so', '.a']):
         subprocess.call([EU_STRIP, '-g', dest])
 
-  stripped_binaries = ['clang', 'llvm-symbolizer', 'sancov']
+  stripped_binaries = ['clang',
+                       'llvm-pdbutil',
+                       'llvm-symbolizer',
+                       'llvm-undname',
+                       'sancov',
+                       ]
   if sys.platform.startswith('linux'):
     stripped_binaries.append('lld')
     stripped_binaries.append('llvm-ar')
diff --git a/tools/code_coverage/coverage.py b/tools/code_coverage/coverage.py
index 3cac5f32..688605d 100755
--- a/tools/code_coverage/coverage.py
+++ b/tools/code_coverage/coverage.py
@@ -91,9 +91,10 @@
     os.path.join(
         os.path.dirname(__file__), os.path.pardir, os.path.pardir,
         'third_party'))
-import jinja2
 from collections import defaultdict
 
+import coverage_utils
+
 # Absolute path to the code coverage tools binary. These paths can be
 # overwritten by user specified coverage tool paths.
 LLVM_BUILD_DIR = clang_update.LLVM_BUILD_DIR
@@ -128,15 +129,6 @@
 # Build arg required for generating code coverage data.
 CLANG_COVERAGE_BUILD_ARG = 'use_clang_coverage'
 
-# The default name of the html coverage report for a directory.
-DIRECTORY_COVERAGE_HTML_REPORT_NAME = os.extsep.join(['report', 'html'])
-
-# Name of the html index files for different views.
-COMPONENT_VIEW_INDEX_FILE = os.extsep.join(['component_view_index', 'html'])
-DIRECTORY_VIEW_INDEX_FILE = os.extsep.join(['directory_view_index', 'html'])
-FILE_VIEW_INDEX_FILE = os.extsep.join(['file_view_index', 'html'])
-INDEX_HTML_FILE = os.extsep.join(['index', 'html'])
-
 LOGS_DIR_NAME = 'logs'
 
 # Used to extract a mapping between directories and components.
@@ -161,214 +153,10 @@
 LLVM_PROFILE_FILE_PATH_SUBSTITUTION = '<llvm_profile_file_path>'
 
 
-class _CoverageSummary(object):
-  """Encapsulates coverage summary representation."""
-
-  def __init__(self,
-               regions_total=0,
-               regions_covered=0,
-               functions_total=0,
-               functions_covered=0,
-               lines_total=0,
-               lines_covered=0):
-    """Initializes _CoverageSummary object."""
-    self._summary = {
-        'regions': {
-            'total': regions_total,
-            'covered': regions_covered
-        },
-        'functions': {
-            'total': functions_total,
-            'covered': functions_covered
-        },
-        'lines': {
-            'total': lines_total,
-            'covered': lines_covered
-        }
-    }
-
-  def Get(self):
-    """Returns summary as a dictionary."""
-    return self._summary
-
-  def AddSummary(self, other_summary):
-    """Adds another summary to this one element-wise."""
-    for feature in self._summary:
-      self._summary[feature]['total'] += other_summary.Get()[feature]['total']
-      self._summary[feature]['covered'] += other_summary.Get()[feature][
-          'covered']
-
-
-class _CoverageReportHtmlGenerator(object):
-  """Encapsulates coverage html report generation.
-
-  The generated html has a table that contains links to other coverage reports.
-  """
-
-  def __init__(self, output_path, table_entry_type):
-    """Initializes _CoverageReportHtmlGenerator object.
-
-    Args:
-      output_path: Path to the html report that will be generated.
-      table_entry_type: Type of the table entries to be displayed in the table
-                        header. For example: 'Path', 'Component'.
-    """
-    css_file_name = os.extsep.join(['style', 'css'])
-    css_absolute_path = os.path.join(OUTPUT_DIR, css_file_name)
-    assert os.path.exists(css_absolute_path), (
-        'css file doesn\'t exit. Please make sure "llvm-cov show -format=html" '
-        'is called first, and the css file is generated at: "%s".' %
-        css_absolute_path)
-
-    self._css_absolute_path = css_absolute_path
-    self._output_path = output_path
-    self._table_entry_type = table_entry_type
-
-    self._table_entries = []
-    self._total_entry = {}
-
-    source_dir = os.path.dirname(os.path.realpath(__file__))
-    template_dir = os.path.join(source_dir, 'html_templates')
-
-    jinja_env = jinja2.Environment(
-        loader=jinja2.FileSystemLoader(template_dir), trim_blocks=True)
-    self._header_template = jinja_env.get_template('header.html')
-    self._table_template = jinja_env.get_template('table.html')
-    self._footer_template = jinja_env.get_template('footer.html')
-
-    self._style_overrides = open(
-        os.path.join(source_dir, 'static', 'css', 'style.css')).read()
-
-  def AddLinkToAnotherReport(self, html_report_path, name, summary):
-    """Adds a link to another html report in this report.
-
-    The link to be added is assumed to be an entry in this directory.
-    """
-    # Use relative paths instead of absolute paths to make the generated reports
-    # portable.
-    html_report_relative_path = _GetRelativePathToDirectoryOfFile(
-        html_report_path, self._output_path)
-
-    table_entry = self._CreateTableEntryFromCoverageSummary(
-        summary, html_report_relative_path, name,
-        os.path.basename(html_report_path) ==
-        DIRECTORY_COVERAGE_HTML_REPORT_NAME)
-    self._table_entries.append(table_entry)
-
-  def CreateTotalsEntry(self, summary):
-    """Creates an entry corresponds to the 'Totals' row in the html report."""
-    self._total_entry = self._CreateTableEntryFromCoverageSummary(summary)
-
-  def _CreateTableEntryFromCoverageSummary(self,
-                                           summary,
-                                           href=None,
-                                           name=None,
-                                           is_dir=None):
-    """Creates an entry to display in the html report."""
-    assert (href is None and name is None and is_dir is None) or (
-        href is not None and name is not None and is_dir is not None), (
-            'The only scenario when href or name or is_dir can be None is when '
-            'creating an entry for the Totals row, and in that case, all three '
-            'attributes must be None.')
-
-    entry = {}
-    if href is not None:
-      entry['href'] = href
-    if name is not None:
-      entry['name'] = name
-    if is_dir is not None:
-      entry['is_dir'] = is_dir
-
-    summary_dict = summary.Get()
-    for feature in summary_dict:
-      if summary_dict[feature]['total'] == 0:
-        percentage = 0.0
-      else:
-        percentage = float(summary_dict[feature]
-                           ['covered']) / summary_dict[feature]['total'] * 100
-
-      color_class = self._GetColorClass(percentage)
-      entry[feature] = {
-          'total': summary_dict[feature]['total'],
-          'covered': summary_dict[feature]['covered'],
-          'percentage': '{:6.2f}'.format(percentage),
-          'color_class': color_class
-      }
-
-    return entry
-
-  def _GetColorClass(self, percentage):
-    """Returns the css color class based on coverage percentage."""
-    if percentage >= 0 and percentage < 80:
-      return 'red'
-    if percentage >= 80 and percentage < 100:
-      return 'yellow'
-    if percentage == 100:
-      return 'green'
-
-    assert False, 'Invalid coverage percentage: "%d".' % percentage
-
-  def WriteHtmlCoverageReport(self, no_file_view):
-    """Writes html coverage report.
-
-    In the report, sub-directories are displayed before files and within each
-    category, entries are sorted alphabetically.
-    """
-
-    def EntryCmp(left, right):
-      """Compare function for table entries."""
-      if left['is_dir'] != right['is_dir']:
-        return -1 if left['is_dir'] == True else 1
-
-      return -1 if left['name'] < right['name'] else 1
-
-    self._table_entries = sorted(self._table_entries, cmp=EntryCmp)
-
-    css_path = os.path.join(OUTPUT_DIR, os.extsep.join(['style', 'css']))
-
-    directory_view_path = _GetDirectoryViewPath()
-    directory_view_href = _GetRelativePathToDirectoryOfFile(
-        directory_view_path, self._output_path)
-    component_view_path = _GetComponentViewPath()
-    component_view_href = _GetRelativePathToDirectoryOfFile(
-        component_view_path, self._output_path)
-
-    # File view is optional in the report.
-    file_view_href = None
-    if not no_file_view:
-      file_view_path = _GetFileViewPath()
-      file_view_href = _GetRelativePathToDirectoryOfFile(
-          file_view_path, self._output_path)
-
-    html_header = self._header_template.render(
-        css_path=_GetRelativePathToDirectoryOfFile(css_path, self._output_path),
-        directory_view_href=directory_view_href,
-        component_view_href=component_view_href,
-        file_view_href=file_view_href,
-        style_overrides=self._style_overrides)
-
-    html_table = self._table_template.render(
-        entries=self._table_entries,
-        total_entry=self._total_entry,
-        table_entry_type=self._table_entry_type)
-    html_footer = self._footer_template.render()
-
-    with open(self._output_path, 'w') as html_file:
-      html_file.write(html_header + html_table + html_footer)
-
-
-def _ConfigureLogging(args):
-  """Configures logging settings for later use."""
-  log_level = logging.DEBUG if args.verbose else logging.INFO
-  log_format = '[%(asctime)s %(levelname)s] %(message)s'
-  log_file = args.log_file if args.log_file else None
-  logging.basicConfig(filename=log_file, level=log_level, format=log_format)
-
-
 def _ConfigureLLVMCoverageTools(args):
   """Configures llvm coverage tools."""
   if args.coverage_tools_dir:
-    llvm_bin_dir = _GetFullPath(args.coverage_tools_dir)
+    llvm_bin_dir = coverage_utils.GetFullPath(args.coverage_tools_dir)
     global LLVM_COV_PATH
     global LLVM_PROFDATA_PATH
     LLVM_COV_PATH = os.path.join(llvm_bin_dir, 'llvm-cov')
@@ -383,71 +171,6 @@
                                     LLVM_COV_PATH, LLVM_PROFDATA_PATH)
 
 
-def _GetSharedLibraries(binary_paths):
-  """Returns list of shared libraries used by specified binaries."""
-  logging.info('Finding shared libraries for targets (if any).')
-  shared_libraries = []
-  cmd = []
-  shared_library_re = None
-
-  if sys.platform.startswith('linux'):
-    cmd.extend(['ldd'])
-    shared_library_re = re.compile(r'.*\.so\s=>\s(.*' + BUILD_DIR +
-                                   r'.*\.so)\s.*')
-  elif sys.platform.startswith('darwin'):
-    cmd.extend(['otool', '-L'])
-    shared_library_re = re.compile(r'\s+(@rpath/.*\.dylib)\s.*')
-  else:
-    assert False, 'Cannot detect shared libraries used by the given targets.'
-
-  assert shared_library_re is not None
-
-  cmd.extend(binary_paths)
-  output = subprocess.check_output(cmd)
-
-  for line in output.splitlines():
-    m = shared_library_re.match(line)
-    if not m:
-      continue
-
-    shared_library_path = m.group(1)
-    if sys.platform.startswith('darwin'):
-      # otool outputs "@rpath" macro instead of the dirname of the given binary.
-      shared_library_path = shared_library_path.replace('@rpath', BUILD_DIR)
-
-    if shared_library_path in shared_libraries:
-      continue
-
-    assert os.path.exists(shared_library_path), ('Shared library "%s" used by '
-                                                 'the given target(s) does not '
-                                                 'exist.' % shared_library_path)
-    with open(shared_library_path) as f:
-      data = f.read()
-
-    # Do not add non-instrumented libraries. Otherwise, llvm-cov errors outs.
-    if '__llvm_cov' in data:
-      shared_libraries.append(shared_library_path)
-
-  logging.debug('Found shared libraries (%d): %s.', len(shared_libraries),
-                shared_libraries)
-  logging.info('Finished finding shared libraries for targets.')
-  return shared_libraries
-
-
-def _GetHostPlatform():
-  """Returns the host platform.
-
-  This is separate from the target platform/os that coverage is running for.
-  """
-  if sys.platform == 'win32' or sys.platform == 'cygwin':
-    return 'win'
-  if sys.platform.startswith('linux'):
-    return 'linux'
-  else:
-    assert sys.platform == 'darwin'
-    return 'mac'
-
-
 def _GetPathWithLLVMSymbolizerDir():
   """Add llvm-symbolizer directory to path for symbolized stacks."""
   path = os.getenv('PATH')
@@ -500,7 +223,7 @@
       clang_revision_str, clang_sub_revision_str = package_version.split('-')
       return int(clang_revision_str), int(clang_sub_revision_str)
 
-  host_platform = _GetHostPlatform()
+  host_platform = coverage_utils.GetHostPlatform()
   clang_revision, clang_sub_revision = _GetRevisionFromStampFile(
       clang_update.STAMP_FILE)
 
@@ -568,7 +291,7 @@
   subprocess_cmd.extend(
       ['-object=' + binary_path for binary_path in binary_paths[1:]])
   _AddArchArgumentForIOSIfNeeded(subprocess_cmd, len(binary_paths))
-  if _GetHostPlatform() in ['linux', 'mac']:
+  if coverage_utils.GetHostPlatform() in ['linux', 'mac']:
     subprocess_cmd.extend(['-Xdemangler', 'c++filt', '-Xdemangler', '-n'])
   subprocess_cmd.extend(filters)
   if ignore_filename_regex:
@@ -576,333 +299,27 @@
 
   subprocess.check_call(subprocess_cmd)
 
-  # llvm-cov creates "coverage" subdir in the output dir. We would like to use
-  # the platform name instead, as it simplifies the report dir structure when
-  # the same report is generated for different platforms.
-  default_report_subdir_path = os.path.join(OUTPUT_DIR, 'coverage')
-  platform_report_subdir_path = _GetCoverageReportRootDirPath()
-  _MergeTwoDirectories(default_report_subdir_path, platform_report_subdir_path)
-
   logging.debug('Finished running "llvm-cov show" command.')
 
 
-def _GenerateFileViewHtmlIndexFile(per_file_coverage_summary):
-  """Generates html index file for file view."""
-  file_view_index_file_path = _GetFileViewPath()
-  logging.debug('Generating file view html index file as: "%s".',
-                file_view_index_file_path)
-  html_generator = _CoverageReportHtmlGenerator(file_view_index_file_path,
-                                                'Path')
-  totals_coverage_summary = _CoverageSummary()
-
-  for file_path in per_file_coverage_summary:
-    totals_coverage_summary.AddSummary(per_file_coverage_summary[file_path])
-
-    html_generator.AddLinkToAnotherReport(
-        _GetCoverageHtmlReportPathForFile(file_path),
-        os.path.relpath(file_path, SRC_ROOT_PATH),
-        per_file_coverage_summary[file_path])
-
-  html_generator.CreateTotalsEntry(totals_coverage_summary)
-  html_generator.WriteHtmlCoverageReport(no_file_view=False)
-  logging.debug('Finished generating file view html index file.')
-
-
-def _CalculatePerDirectoryCoverageSummary(per_file_coverage_summary):
-  """Calculates per directory coverage summary."""
-  logging.debug('Calculating per-directory coverage summary.')
-  per_directory_coverage_summary = defaultdict(lambda: _CoverageSummary())
-
-  for file_path in per_file_coverage_summary:
-    summary = per_file_coverage_summary[file_path]
-    parent_dir = os.path.dirname(file_path)
-
-    while True:
-      per_directory_coverage_summary[parent_dir].AddSummary(summary)
-
-      if parent_dir == SRC_ROOT_PATH:
-        break
-      parent_dir = os.path.dirname(parent_dir)
-
-  logging.debug('Finished calculating per-directory coverage summary.')
-  return per_directory_coverage_summary
-
-
-def _GeneratePerDirectoryCoverageInHtml(
-    per_directory_coverage_summary, per_file_coverage_summary, no_file_view):
-  """Generates per directory coverage breakdown in html."""
-  logging.debug('Writing per-directory coverage html reports.')
-  for dir_path in per_directory_coverage_summary:
-    _GenerateCoverageInHtmlForDirectory(dir_path,
-                                        per_directory_coverage_summary,
-                                        per_file_coverage_summary, no_file_view)
-
-  logging.debug('Finished writing per-directory coverage html reports.')
-
-
-def _GenerateCoverageInHtmlForDirectory(
-    dir_path, per_directory_coverage_summary, per_file_coverage_summary,
-    no_file_view):
-  """Generates coverage html report for a single directory."""
-  html_generator = _CoverageReportHtmlGenerator(
-      _GetCoverageHtmlReportPathForDirectory(dir_path), 'Path')
-
-  for entry_name in os.listdir(dir_path):
-    entry_path = os.path.normpath(os.path.join(dir_path, entry_name))
-
-    if entry_path in per_file_coverage_summary:
-      entry_html_report_path = _GetCoverageHtmlReportPathForFile(entry_path)
-      entry_coverage_summary = per_file_coverage_summary[entry_path]
-    elif entry_path in per_directory_coverage_summary:
-      entry_html_report_path = _GetCoverageHtmlReportPathForDirectory(
-          entry_path)
-      entry_coverage_summary = per_directory_coverage_summary[entry_path]
-    else:
-      # Any file without executable lines shouldn't be included into the report.
-      # For example, OWNER and README.md files.
-      continue
-
-    html_generator.AddLinkToAnotherReport(entry_html_report_path,
-                                          os.path.basename(entry_path),
-                                          entry_coverage_summary)
-
-  html_generator.CreateTotalsEntry(per_directory_coverage_summary[dir_path])
-  html_generator.WriteHtmlCoverageReport(no_file_view)
-
-
-def _GenerateDirectoryViewHtmlIndexFile():
-  """Generates the html index file for directory view.
-
-  Note that the index file is already generated under SRC_ROOT_PATH, so this
-  file simply redirects to it, and the reason of this extra layer is for
-  structural consistency with other views.
-  """
-  directory_view_index_file_path = _GetDirectoryViewPath()
-  logging.debug('Generating directory view html index file as: "%s".',
-                directory_view_index_file_path)
-  src_root_html_report_path = _GetCoverageHtmlReportPathForDirectory(
-      SRC_ROOT_PATH)
-  _WriteRedirectHtmlFile(directory_view_index_file_path,
-                         src_root_html_report_path)
-  logging.debug('Finished generating directory view html index file.')
-
-
-def _CalculatePerComponentCoverageSummary(component_to_directories,
-                                          per_directory_coverage_summary):
-  """Calculates per component coverage summary."""
-  logging.debug('Calculating per-component coverage summary.')
-  per_component_coverage_summary = defaultdict(lambda: _CoverageSummary())
-
-  for component in component_to_directories:
-    for directory in component_to_directories[component]:
-      absolute_directory_path = _GetFullPath(directory)
-      if absolute_directory_path in per_directory_coverage_summary:
-        per_component_coverage_summary[component].AddSummary(
-            per_directory_coverage_summary[absolute_directory_path])
-
-  logging.debug('Finished calculating per-component coverage summary.')
-  return per_component_coverage_summary
-
-
-def _ExtractComponentToDirectoriesMapping():
-  """Returns a mapping from components to directories."""
-  component_mappings = json.load(urllib2.urlopen(COMPONENT_MAPPING_URL))
-  directory_to_component = component_mappings['dir-to-component']
-
-  component_to_directories = defaultdict(list)
-  for directory in sorted(directory_to_component):
-    component = directory_to_component[directory]
-
-    # Check if we already added the parent directory of this directory. If yes,
-    # skip this sub-directory to avoid double-counting.
-    found_parent_directory = False
-    for component_directory in component_to_directories[component]:
-      if directory.startswith(component_directory + '/'):
-        found_parent_directory = True
-        break
-
-    if not found_parent_directory:
-      component_to_directories[component].append(directory)
-
-  return component_to_directories
-
-
-def _GeneratePerComponentCoverageInHtml(
-    per_component_coverage_summary, component_to_directories,
-    per_directory_coverage_summary, no_file_view):
-  """Generates per-component coverage reports in html."""
-  logging.debug('Writing per-component coverage html reports.')
-  for component in per_component_coverage_summary:
-    _GenerateCoverageInHtmlForComponent(
-        component, per_component_coverage_summary, component_to_directories,
-        per_directory_coverage_summary, no_file_view)
-
-  logging.debug('Finished writing per-component coverage html reports.')
-
-
-def _GenerateCoverageInHtmlForComponent(
-    component_name, per_component_coverage_summary, component_to_directories,
-    per_directory_coverage_summary, no_file_view):
-  """Generates coverage html report for a component."""
-  component_html_report_path = _GetCoverageHtmlReportPathForComponent(
-      component_name)
-  component_html_report_dir = os.path.dirname(component_html_report_path)
-  if not os.path.exists(component_html_report_dir):
-    os.makedirs(component_html_report_dir)
-
-  html_generator = _CoverageReportHtmlGenerator(component_html_report_path,
-                                                'Path')
-
-  for dir_path in component_to_directories[component_name]:
-    dir_absolute_path = _GetFullPath(dir_path)
-    if dir_absolute_path not in per_directory_coverage_summary:
-      # Any directory without an excercised file shouldn't be included into the
-      # report.
-      continue
-
-    html_generator.AddLinkToAnotherReport(
-        _GetCoverageHtmlReportPathForDirectory(dir_path),
-        os.path.relpath(dir_path, SRC_ROOT_PATH),
-        per_directory_coverage_summary[dir_absolute_path])
-
-  html_generator.CreateTotalsEntry(
-      per_component_coverage_summary[component_name])
-  html_generator.WriteHtmlCoverageReport(no_file_view)
-
-
-def _GenerateComponentViewHtmlIndexFile(per_component_coverage_summary,
-                                        no_file_view):
-  """Generates the html index file for component view."""
-  component_view_index_file_path = _GetComponentViewPath()
-  logging.debug('Generating component view html index file as: "%s".',
-                component_view_index_file_path)
-  html_generator = _CoverageReportHtmlGenerator(component_view_index_file_path,
-                                                'Component')
-  for component in per_component_coverage_summary:
-    html_generator.AddLinkToAnotherReport(
-        _GetCoverageHtmlReportPathForComponent(component), component,
-        per_component_coverage_summary[component])
-
-  # Do not create a totals row for the component view as the value is incorrect
-  # due to failure to account for UNKNOWN component and some paths belonging to
-  # multiple components.
-
-  html_generator.WriteHtmlCoverageReport(no_file_view)
-  logging.debug('Finished generating component view html index file.')
-
-
-def _MergeTwoDirectories(src_path, dst_path):
-  """Merge src_path directory into dst_path directory."""
-  for filename in os.listdir(src_path):
-    dst_path = os.path.join(dst_path, filename)
-    if os.path.exists(dst_path):
-      shutil.rmtree(dst_path)
-    os.rename(os.path.join(src_path, filename), dst_path)
-  shutil.rmtree(src_path)
-
-
-def _OverwriteHtmlReportsIndexFile():
-  """Overwrites the root index file to redirect to the default view."""
-  html_index_file_path = _GetHtmlIndexPath()
-  directory_view_index_file_path = _GetDirectoryViewPath()
-  _WriteRedirectHtmlFile(html_index_file_path, directory_view_index_file_path)
-
-
-def _WriteRedirectHtmlFile(from_html_path, to_html_path):
-  """Writes a html file that redirects to another html file."""
-  to_html_relative_path = _GetRelativePathToDirectoryOfFile(
-      to_html_path, from_html_path)
-  content = ("""
-    <!DOCTYPE html>
-    <html>
-      <head>
-        <!-- HTML meta refresh URL redirection -->
-        <meta http-equiv="refresh" content="0; url=%s">
-      </head>
-    </html>""" % to_html_relative_path)
-  with open(from_html_path, 'w') as f:
-    f.write(content)
-
-
-def _CleanUpOutputDir():
-  """Perform a cleanup of the output dir."""
-  # Remove the default index.html file produced by llvm-cov.
-  index_path = os.path.join(OUTPUT_DIR, INDEX_HTML_FILE)
-  if os.path.exists(index_path):
-    os.remove(index_path)
-
-
-def _GetCoverageHtmlReportPathForFile(file_path):
-  """Given a file path, returns the corresponding html report path."""
-  assert os.path.isfile(file_path), '"%s" is not a file.' % file_path
-  html_report_path = os.extsep.join([_GetFullPath(file_path), 'html'])
-
-  # '+' is used instead of os.path.join because both of them are absolute paths
-  # and os.path.join ignores the first path.
-  # TODO(crbug.com/809150): Think of a generic cross platform fix (Windows).
-  return _GetCoverageReportRootDirPath() + html_report_path
-
-
-def _GetCoverageHtmlReportPathForDirectory(dir_path):
-  """Given a directory path, returns the corresponding html report path."""
-  assert os.path.isdir(dir_path), '"%s" is not a directory.' % dir_path
-  html_report_path = os.path.join(
-      _GetFullPath(dir_path), DIRECTORY_COVERAGE_HTML_REPORT_NAME)
-
-  # '+' is used instead of os.path.join because both of them are absolute paths
-  # and os.path.join ignores the first path.
-  # TODO(crbug.com/809150): Think of a generic cross platform fix (Windows).
-  return _GetCoverageReportRootDirPath() + html_report_path
-
-
-def _GetCoverageHtmlReportPathForComponent(component_name):
-  """Given a component, returns the corresponding html report path."""
-  component_file_name = component_name.lower().replace('>', '-')
-  html_report_name = os.extsep.join([component_file_name, 'html'])
-  return os.path.join(_GetCoverageReportRootDirPath(), 'components',
-                      html_report_name)
-
-
-def _GetCoverageReportRootDirPath():
-  """The root directory that contains all generated coverage html reports."""
-  return os.path.join(OUTPUT_DIR, _GetHostPlatform())
-
-
-def _GetComponentViewPath():
-  """Path to the HTML file for the component view."""
-  return os.path.join(_GetCoverageReportRootDirPath(),
-                      COMPONENT_VIEW_INDEX_FILE)
-
-
-def _GetDirectoryViewPath():
-  """Path to the HTML file for the directory view."""
-  return os.path.join(_GetCoverageReportRootDirPath(),
-                      DIRECTORY_VIEW_INDEX_FILE)
-
-
-def _GetFileViewPath():
-  """Path to the HTML file for the file view."""
-  return os.path.join(_GetCoverageReportRootDirPath(), FILE_VIEW_INDEX_FILE)
-
-
 def _GetLogsDirectoryPath():
   """Path to the logs directory."""
-  return os.path.join(_GetCoverageReportRootDirPath(), LOGS_DIR_NAME)
-
-
-def _GetHtmlIndexPath():
-  """Path to the main HTML index file."""
-  return os.path.join(_GetCoverageReportRootDirPath(), INDEX_HTML_FILE)
+  return os.path.join(
+      coverage_utils.GetCoverageReportRootDirPath(OUTPUT_DIR), LOGS_DIR_NAME)
 
 
 def _GetProfdataFilePath():
   """Path to the resulting .profdata file."""
-  return os.path.join(_GetCoverageReportRootDirPath(), PROFDATA_FILE_NAME)
+  return os.path.join(
+      coverage_utils.GetCoverageReportRootDirPath(OUTPUT_DIR),
+      PROFDATA_FILE_NAME)
 
 
 def _GetSummaryFilePath():
   """The JSON file that contains coverage summary written by llvm-cov export."""
-  return os.path.join(_GetCoverageReportRootDirPath(), SUMMARY_FILE_NAME)
+  return os.path.join(
+      coverage_utils.GetCoverageReportRootDirPath(OUTPUT_DIR),
+      SUMMARY_FILE_NAME)
 
 
 def _CreateCoverageProfileDataForTargets(targets, commands, jobs_count=None):
@@ -976,9 +393,10 @@
   logging.debug('Executing the test commands.')
 
   # Remove existing profraw data files.
-  for file_or_dir in os.listdir(_GetCoverageReportRootDirPath()):
+  report_root_dir = coverage_utils.GetCoverageReportRootDirPath(OUTPUT_DIR)
+  for file_or_dir in os.listdir(report_root_dir):
     if file_or_dir.endswith(PROFRAW_FILE_EXTENSION):
-      os.remove(os.path.join(_GetCoverageReportRootDirPath(), file_or_dir))
+      os.remove(os.path.join(report_root_dir, file_or_dir))
 
   # Ensure that logs directory exists.
   if not os.path.exists(_GetLogsDirectoryPath()):
@@ -1009,10 +427,10 @@
       if _IsIOS():
         profraw_file_paths = [_GetProfrawDataFileByParsingOutput(output)]
       else:
-        for file_or_dir in os.listdir(_GetCoverageReportRootDirPath()):
+        for file_or_dir in os.listdir(report_root_dir):
           if file_or_dir.endswith(PROFRAW_FILE_EXTENSION):
             profraw_file_paths.append(
-                os.path.join(_GetCoverageReportRootDirPath(), file_or_dir))
+                os.path.join(report_root_dir, file_or_dir))
 
       assert profraw_file_paths, (
           'Running target "%s" failed to generate any profraw data file, '
@@ -1020,8 +438,8 @@
           'does not crash. %s' % (target, FILE_BUG_MESSAGE))
 
       assert isinstance(profraw_file_paths, list), (
-        'Variable \'profraw_file_paths\' is expected to be of type \'list\', '
-        'but it is a %s. %s' % (type(profraw_file_paths), FILE_BUG_MESSAGE))
+          'Variable \'profraw_file_paths\' is expected to be of type \'list\', '
+          'but it is a %s. %s' % (type(profraw_file_paths), FILE_BUG_MESSAGE))
 
       try:
         profdata_file_path = _CreateTargetProfDataFileFromProfRawFiles(
@@ -1079,8 +497,9 @@
   profile_pattern_string = '%1m' if _IsFuzzerTarget(target) else '%4m'
   expected_profraw_file_name = os.extsep.join(
       [target, profile_pattern_string, PROFRAW_FILE_EXTENSION])
-  expected_profraw_file_path = os.path.join(_GetCoverageReportRootDirPath(),
-                                            expected_profraw_file_name)
+  expected_profraw_file_path = os.path.join(
+      coverage_utils.GetCoverageReportRootDirPath(OUTPUT_DIR),
+      expected_profraw_file_name)
   command = command.replace(LLVM_PROFILE_FILE_PATH_SUBSTITUTION,
                             expected_profraw_file_path)
 
@@ -1186,7 +605,7 @@
     subprocess_cmd.extend(profdata_file_paths)
 
     output = subprocess.check_output(subprocess_cmd)
-    logging.debug('Merge output: %s' % output)
+    logging.debug('Merge output: %s', output)
   except subprocess.CalledProcessError as error:
     logging.error(
         'Failed to merge target profdata files to create coverage profdata. %s',
@@ -1224,7 +643,7 @@
     subprocess_cmd.extend(profraw_file_paths)
 
     output = subprocess.check_output(subprocess_cmd)
-    logging.debug('Merge output: %s' % output)
+    logging.debug('Merge output: %s', output)
   except subprocess.CalledProcessError as error:
     logging.error(
         'Failed to merge target profraw files to create target profdata.')
@@ -1262,31 +681,7 @@
   with open(_GetSummaryFilePath(), 'w') as f:
     f.write(export_output)
 
-  json_output = json.loads(export_output)
-  assert len(json_output['data']) == 1
-  files_coverage_data = json_output['data'][0]['files']
-
-  per_file_coverage_summary = {}
-  for file_coverage_data in files_coverage_data:
-    file_path = file_coverage_data['filename']
-    assert file_path.startswith(SRC_ROOT_PATH + os.sep), (
-        'File path "%s" in coverage summary is outside source checkout.' %
-        file_path)
-
-    summary = file_coverage_data['summary']
-    if summary['lines']['count'] == 0:
-      continue
-
-    per_file_coverage_summary[file_path] = _CoverageSummary(
-        regions_total=summary['regions']['count'],
-        regions_covered=summary['regions']['covered'],
-        functions_total=summary['functions']['count'],
-        functions_covered=summary['functions']['covered'],
-        lines_total=summary['lines']['count'],
-        lines_covered=summary['lines']['covered'])
-
-  logging.debug('Finished generating per-file code coverage summary.')
-  return per_file_coverage_summary
+  return export_output
 
 
 def _AddArchArgumentForIOSIfNeeded(cmd_list, num_archs):
@@ -1350,7 +745,7 @@
   the given build directory."""
   for command in commands:
     binary_path = _GetBinaryPath(command)
-    binary_absolute_path = _GetFullPath(binary_path)
+    binary_absolute_path = coverage_utils.GetFullPath(binary_path)
     assert binary_absolute_path.startswith(BUILD_DIR + os.sep), (
         'Target executable "%s" in command: "%s" is outside of '
         'the given build directory: "%s".' % (binary_path, command, BUILD_DIR))
@@ -1372,7 +767,7 @@
   if target_os:
     current_platform = target_os
   else:
-    current_platform = _GetHostPlatform()
+    current_platform = coverage_utils.GetHostPlatform()
 
   assert current_platform in [
       'linux', 'mac', 'chromeos', 'ios'
@@ -1429,19 +824,6 @@
   return absolute_paths
 
 
-def _GetRelativePathToDirectoryOfFile(target_path, base_path):
-  """Returns a target path relative to the directory of base_path.
-
-  This method requires base_path to be a file, otherwise, one should call
-  os.path.relpath directly.
-  """
-  assert os.path.dirname(base_path) != base_path, (
-      'Base path: "%s" is a directory, please call os.path.relpath directly.' %
-      base_path)
-  base_dir = os.path.dirname(base_path)
-  return os.path.relpath(target_path, base_dir)
-
-
 def _GetBinaryPathsFromTargets(targets, build_dir):
   """Return binary paths from target names."""
   # FIXME: Derive output binary from target build definitions rather than
@@ -1449,7 +831,7 @@
   binary_paths = []
   for target in targets:
     binary_path = os.path.join(build_dir, target)
-    if _GetHostPlatform() == 'win':
+    if coverage_utils.GetHostPlatform() == 'win':
       binary_path += '.exe'
 
     if os.path.exists(binary_path):
@@ -1462,12 +844,6 @@
   return binary_paths
 
 
-def _GetFullPath(path):
-  """Return full absolute path."""
-  return (os.path.abspath(
-      os.path.realpath(os.path.expandvars(os.path.expanduser(path)))))
-
-
 def _GetCommandForWebTests(arguments):
   """Return command to run for blink web tests."""
   command_list = [
@@ -1475,8 +851,7 @@
       'third_party/blink/tools/run_web_tests.py',
       '--additional-driver-flag=--no-sandbox',
       '--additional-env-var=LLVM_PROFILE_FILE=%s' %
-      LLVM_PROFILE_FILE_PATH_SUBSTITUTION,
-      '--batch-size=1',
+      LLVM_PROFILE_FILE_PATH_SUBSTITUTION, '--batch-size=1',
       '--child-processes=%d' % max(1, int(multiprocessing.cpu_count() / 2)),
       '--disable-breakpad', '--no-show-results', '--skip-failing-tests',
       '--target=%s' % os.path.basename(BUILD_DIR), '--time-out-ms=30000'
@@ -1488,7 +863,7 @@
 
 def _GetBinaryPathForWebTests():
   """Return binary path used to run blink web tests."""
-  host_platform = _GetHostPlatform()
+  host_platform = coverage_utils.GetHostPlatform()
   if host_platform == 'win':
     return os.path.join(BUILD_DIR, 'content_shell.exe')
   elif host_platform == 'linux':
@@ -1506,7 +881,7 @@
     shutil.rmtree(OUTPUT_DIR)
 
   # Creates |OUTPUT_DIR| and its platform sub-directory.
-  os.makedirs(_GetCoverageReportRootDirPath())
+  os.makedirs(coverage_utils.GetCoverageReportRootDirPath(OUTPUT_DIR))
 
 
 def _ParseCommandArguments():
@@ -1586,6 +961,11 @@
       'cause the browser to freeze, and this argument comes handy.')
 
   arg_parser.add_argument(
+      '--no-component-view',
+      action='store_true',
+      help='Don\'t generate the component view in the coverage report.')
+
+  arg_parser.add_argument(
       '--coverage-tools-dir',
       type=str,
       help='Path of the directory where LLVM coverage tools (llvm-cov, '
@@ -1633,19 +1013,19 @@
 
   # Change directory to source root to aid in relative paths calculations.
   global SRC_ROOT_PATH
-  SRC_ROOT_PATH = _GetFullPath(
+  SRC_ROOT_PATH = coverage_utils.GetFullPath(
       os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardir))
   os.chdir(SRC_ROOT_PATH)
 
   args = _ParseCommandArguments()
-  _ConfigureLogging(args)
+  coverage_utils.ConfigureLogging(verbose=args.verbose, log_file=args.log_file)
   _ConfigureLLVMCoverageTools(args)
 
   global BUILD_DIR
-  BUILD_DIR = _GetFullPath(args.build_dir)
+  BUILD_DIR = coverage_utils.GetFullPath(args.build_dir)
 
   global OUTPUT_DIR
-  OUTPUT_DIR = _GetFullPath(args.output_dir)
+  OUTPUT_DIR = coverage_utils.GetFullPath(args.output_dir)
 
   assert args.web_tests or args.command or args.profdata_file, (
       'Need to either provide commands to run using -c/--command option OR '
@@ -1691,43 +1071,31 @@
     profdata_file_path = args.profdata_file
     binary_paths = _GetBinaryPathsFromTargets(args.targets, args.build_dir)
 
-  binary_paths.extend(_GetSharedLibraries(binary_paths))
+  binary_paths.extend(
+      coverage_utils.GetSharedLibraries(binary_paths, BUILD_DIR))
 
   logging.info('Generating code coverage report in html (this can take a while '
                'depending on size of target!).')
-  per_file_coverage_summary = _GeneratePerFileCoverageSummary(
+  per_file_summary_data = _GeneratePerFileCoverageSummary(
       binary_paths, profdata_file_path, absolute_filter_paths,
       args.ignore_filename_regex)
   _GeneratePerFileLineByLineCoverageInHtml(binary_paths, profdata_file_path,
                                            absolute_filter_paths,
                                            args.ignore_filename_regex)
-  if not args.no_file_view:
-    _GenerateFileViewHtmlIndexFile(per_file_coverage_summary)
+  component_mappings = None
+  if not args.no_component_view:
+    component_mappings = json.load(urllib2.urlopen(COMPONENT_MAPPING_URL))
 
-  per_directory_coverage_summary = _CalculatePerDirectoryCoverageSummary(
-      per_file_coverage_summary)
-  _GeneratePerDirectoryCoverageInHtml(per_directory_coverage_summary,
-                                      per_file_coverage_summary,
-                                      args.no_file_view)
-  _GenerateDirectoryViewHtmlIndexFile()
+  # Call prepare here.
+  processor = coverage_utils.CoverageReportPostProcessor(
+      OUTPUT_DIR,
+      SRC_ROOT_PATH,
+      per_file_summary_data,
+      no_component_view=args.no_component_view,
+      no_file_view=args.no_file_view,
+      component_mappings=component_mappings)
 
-  component_to_directories = _ExtractComponentToDirectoriesMapping()
-  per_component_coverage_summary = _CalculatePerComponentCoverageSummary(
-      component_to_directories, per_directory_coverage_summary)
-  _GeneratePerComponentCoverageInHtml(
-      per_component_coverage_summary, component_to_directories,
-      per_directory_coverage_summary, args.no_file_view)
-  _GenerateComponentViewHtmlIndexFile(per_component_coverage_summary,
-                                      args.no_file_view)
-
-  # The default index file is generated only for the list of source files, needs
-  # to overwrite it to display per directory coverage view by default.
-  _OverwriteHtmlReportsIndexFile()
-  _CleanUpOutputDir()
-
-  html_index_file_path = 'file://' + _GetFullPath(_GetHtmlIndexPath())
-  logging.info('Index file for html report is generated as: "%s".',
-               html_index_file_path)
+  processor.PrepareHtmlReport()
 
 
 if __name__ == '__main__':
diff --git a/tools/code_coverage/coverage_utils.py b/tools/code_coverage/coverage_utils.py
new file mode 100644
index 0000000..ce67010d
--- /dev/null
+++ b/tools/code_coverage/coverage_utils.py
@@ -0,0 +1,790 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# The script intentionally does not have a shebang, as it is Py2/Py3 compatible.
+
+import argparse
+from collections import defaultdict
+import functools
+import jinja2
+import json
+import logging
+import os
+import re
+import shutil
+import subprocess
+import sys
+
+# The default name of the html coverage report for a directory.
+DIRECTORY_COVERAGE_HTML_REPORT_NAME = os.extsep.join(['report', 'html'])
+
+# Name of the html index files for different views.
+COMPONENT_VIEW_INDEX_FILE = os.extsep.join(['component_view_index', 'html'])
+DIRECTORY_VIEW_INDEX_FILE = os.extsep.join(['directory_view_index', 'html'])
+FILE_VIEW_INDEX_FILE = os.extsep.join(['file_view_index', 'html'])
+INDEX_HTML_FILE = os.extsep.join(['index', 'html'])
+
+
+class CoverageSummary(object):
+  """Encapsulates coverage summary representation."""
+
+  def __init__(self,
+               regions_total=0,
+               regions_covered=0,
+               functions_total=0,
+               functions_covered=0,
+               lines_total=0,
+               lines_covered=0):
+    """Initializes CoverageSummary object."""
+    self._summary = {
+        'regions': {
+            'total': regions_total,
+            'covered': regions_covered
+        },
+        'functions': {
+            'total': functions_total,
+            'covered': functions_covered
+        },
+        'lines': {
+            'total': lines_total,
+            'covered': lines_covered
+        }
+    }
+
+  def Get(self):
+    """Returns summary as a dictionary."""
+    return self._summary
+
+  def AddSummary(self, other_summary):
+    """Adds another summary to this one element-wise."""
+    for feature in self._summary:
+      self._summary[feature]['total'] += other_summary.Get()[feature]['total']
+      self._summary[feature]['covered'] += other_summary.Get()[feature][
+          'covered']
+
+
+class CoverageReportHtmlGenerator(object):
+  """Encapsulates coverage html report generation.
+
+  The generated html has a table that contains links to other coverage reports.
+  """
+
+  def __init__(self, output_dir, output_path, table_entry_type):
+    """Initializes _CoverageReportHtmlGenerator object.
+
+    Args:
+      output_dir: Path to the dir for writing coverage report to.
+      output_path: Path to the html report that will be generated.
+      table_entry_type: Type of the table entries to be displayed in the table
+                        header. For example: 'Path', 'Component'.
+    """
+    css_file_name = os.extsep.join(['style', 'css'])
+    css_absolute_path = os.path.join(output_dir, css_file_name)
+    assert os.path.exists(css_absolute_path), (
+        'css file doesn\'t exit. Please make sure "llvm-cov show -format=html" '
+        'is called first, and the css file is generated at: "%s".' %
+        css_absolute_path)
+
+    self._css_absolute_path = css_absolute_path
+    self._output_dir = output_dir
+    self._output_path = output_path
+    self._table_entry_type = table_entry_type
+
+    self._table_entries = []
+    self._total_entry = {}
+
+    source_dir = os.path.dirname(os.path.realpath(__file__))
+    template_dir = os.path.join(source_dir, 'html_templates')
+
+    jinja_env = jinja2.Environment(
+        loader=jinja2.FileSystemLoader(template_dir), trim_blocks=True)
+    self._header_template = jinja_env.get_template('header.html')
+    self._table_template = jinja_env.get_template('table.html')
+    self._footer_template = jinja_env.get_template('footer.html')
+
+    self._style_overrides = open(
+        os.path.join(source_dir, 'static', 'css', 'style.css')).read()
+
+  def AddLinkToAnotherReport(self, html_report_path, name, summary):
+    """Adds a link to another html report in this report.
+
+    The link to be added is assumed to be an entry in this directory.
+    """
+    # Use relative paths instead of absolute paths to make the generated reports
+    # portable.
+    html_report_relative_path = GetRelativePathToDirectoryOfFile(
+        html_report_path, self._output_path)
+
+    table_entry = self._CreateTableEntryFromCoverageSummary(
+        summary, html_report_relative_path, name,
+        os.path.basename(html_report_path) ==
+        DIRECTORY_COVERAGE_HTML_REPORT_NAME)
+    self._table_entries.append(table_entry)
+
+  def CreateTotalsEntry(self, summary):
+    """Creates an entry corresponds to the 'Totals' row in the html report."""
+    self._total_entry = self._CreateTableEntryFromCoverageSummary(summary)
+
+  def _CreateTableEntryFromCoverageSummary(self,
+                                           summary,
+                                           href=None,
+                                           name=None,
+                                           is_dir=None):
+    """Creates an entry to display in the html report."""
+    assert (href is None and name is None and is_dir is None) or (
+        href is not None and name is not None and is_dir is not None), (
+            'The only scenario when href or name or is_dir can be None is when '
+            'creating an entry for the Totals row, and in that case, all three '
+            'attributes must be None.')
+
+    entry = {}
+    if href is not None:
+      entry['href'] = href
+    if name is not None:
+      entry['name'] = name
+    if is_dir is not None:
+      entry['is_dir'] = is_dir
+
+    summary_dict = summary.Get()
+    for feature in summary_dict:
+      if summary_dict[feature]['total'] == 0:
+        percentage = 0.0
+      else:
+        percentage = float(summary_dict[feature]
+                           ['covered']) / summary_dict[feature]['total'] * 100
+
+      color_class = self._GetColorClass(percentage)
+      entry[feature] = {
+          'total': summary_dict[feature]['total'],
+          'covered': summary_dict[feature]['covered'],
+          'percentage': '{:6.2f}'.format(percentage),
+          'color_class': color_class
+      }
+
+    return entry
+
+  def _GetColorClass(self, percentage):
+    """Returns the css color class based on coverage percentage."""
+    if percentage >= 0 and percentage < 80:
+      return 'red'
+    if percentage >= 80 and percentage < 100:
+      return 'yellow'
+    if percentage == 100:
+      return 'green'
+
+    assert False, 'Invalid coverage percentage: "%d".' % percentage
+
+  def WriteHtmlCoverageReport(self, no_component_view, no_file_view):
+    """Writes html coverage report.
+
+    In the report, sub-directories are displayed before files and within each
+    category, entries are sorted alphabetically.
+    """
+
+    def EntryCmp(left, right):
+      """Compare function for table entries."""
+      if left['is_dir'] != right['is_dir']:
+        return -1 if left['is_dir'] == True else 1
+
+      return -1 if left['name'] < right['name'] else 1
+
+    self._table_entries = sorted(
+        self._table_entries, key=functools.cmp_to_key(EntryCmp))
+
+    css_path = os.path.join(self._output_dir, os.extsep.join(['style', 'css']))
+
+    directory_view_path = GetDirectoryViewPath(self._output_dir)
+    directory_view_href = GetRelativePathToDirectoryOfFile(
+        directory_view_path, self._output_path)
+
+    component_view_href = None
+    if not no_component_view:
+      component_view_path = GetComponentViewPath(self._output_dir)
+      component_view_href = GetRelativePathToDirectoryOfFile(
+          component_view_path, self._output_path)
+
+    # File view is optional in the report.
+    file_view_href = None
+    if not no_file_view:
+      file_view_path = GetFileViewPath(self._output_dir)
+      file_view_href = GetRelativePathToDirectoryOfFile(file_view_path,
+                                                        self._output_path)
+
+    html_header = self._header_template.render(
+        css_path=GetRelativePathToDirectoryOfFile(css_path, self._output_path),
+        directory_view_href=directory_view_href,
+        component_view_href=component_view_href,
+        file_view_href=file_view_href,
+        style_overrides=self._style_overrides)
+
+    html_table = self._table_template.render(
+        entries=self._table_entries,
+        total_entry=self._total_entry,
+        table_entry_type=self._table_entry_type)
+    html_footer = self._footer_template.render()
+
+    with open(self._output_path, 'w') as html_file:
+      html_file.write(html_header + html_table + html_footer)
+
+
+class CoverageReportPostProcessor(object):
+  """Post processing of code coverage reports produced by llvm-cov."""
+
+  def __init__(self,
+               output_dir,
+               src_root_dir,
+               summary_data,
+               no_component_view,
+               no_file_view,
+               component_mappings={}):
+    """Initializes CoverageReportPostProcessor object."""
+    # Caller provided parameters.
+    self.output_dir = output_dir
+    self.src_root_dir = src_root_dir
+    self.summary_data = json.loads(summary_data)
+    assert len(self.summary_data['data']) == 1
+    self.no_component_view = no_component_view
+    self.no_file_view = no_file_view
+
+    # Mapping from components to directories
+    self.component_to_directories = None
+    if component_mappings:
+      self._ExtractComponentToDirectoriesMapping(component_mappings)
+
+    # The root directory that contains all generated coverage html reports.
+    self.report_root_dir = GetCoverageReportRootDirPath(self.output_dir)
+
+    # Path to the HTML file for the component view.
+    self.component_view_path = GetComponentViewPath(self.output_dir)
+
+    # Path to the HTML file for the directory view.
+    self.directory_view_path = GetDirectoryViewPath(self.output_dir)
+
+    # Path to the HTML file for the file view.
+    self.file_view_path = GetFileViewPath(self.output_dir)
+
+    # Path to the main HTML index file.
+    self.html_index_path = GetHtmlIndexPath(self.output_dir)
+
+  def _ExtractComponentToDirectoriesMapping(self, component_mappings):
+    """Initializes a mapping from components to directories."""
+    directory_to_component = component_mappings['dir-to-component']
+
+    self.component_to_directories = defaultdict(list)
+    for directory in sorted(directory_to_component):
+      component = directory_to_component[directory]
+
+      # Check if we already added the parent directory of this directory. If
+      # yes,skip this sub-directory to avoid double-counting.
+      found_parent_directory = False
+      for component_directory in self.component_to_directories[component]:
+        if directory.startswith(component_directory + '/'):
+          found_parent_directory = True
+          break
+
+      if not found_parent_directory:
+        self.component_to_directories[component].append(directory)
+
+  def CalculatePerDirectoryCoverageSummary(self, per_file_coverage_summary):
+    """Calculates per directory coverage summary."""
+    logging.debug('Calculating per-directory coverage summary.')
+    per_directory_coverage_summary = defaultdict(lambda: CoverageSummary())
+
+    for file_path in per_file_coverage_summary:
+      summary = per_file_coverage_summary[file_path]
+      parent_dir = os.path.dirname(file_path)
+
+      while True:
+        per_directory_coverage_summary[parent_dir].AddSummary(summary)
+
+        if parent_dir == self.src_root_dir:
+          break
+        parent_dir = os.path.dirname(parent_dir)
+
+    logging.debug('Finished calculating per-directory coverage summary.')
+    return per_directory_coverage_summary
+
+  def CalculatePerComponentCoverageSummary(self,
+                                           per_directory_coverage_summary):
+    """Calculates per component coverage summary."""
+    logging.debug('Calculating per-component coverage summary.')
+    per_component_coverage_summary = defaultdict(lambda: CoverageSummary())
+
+    for component in self.component_to_directories:
+      for directory in self.component_to_directories[component]:
+        absolute_directory_path = GetFullPath(directory)
+        if absolute_directory_path in per_directory_coverage_summary:
+          per_component_coverage_summary[component].AddSummary(
+              per_directory_coverage_summary[absolute_directory_path])
+
+    logging.debug('Finished calculating per-component coverage summary.')
+    return per_component_coverage_summary
+
+  def GeneratePerComponentCoverageInHtml(self, per_component_coverage_summary,
+                                         per_directory_coverage_summary):
+    """Generates per-component coverage reports in html."""
+    logging.debug('Writing per-component coverage html reports.')
+    for component in per_component_coverage_summary:
+      self.GenerateCoverageInHtmlForComponent(component,
+                                              per_component_coverage_summary,
+                                              per_directory_coverage_summary)
+    logging.debug('Finished writing per-component coverage html reports.')
+
+  def GenerateComponentViewHtmlIndexFile(self, per_component_coverage_summary):
+    """Generates the html index file for component view."""
+    component_view_index_file_path = self.component_view_path
+    logging.debug('Generating component view html index file as: "%s".',
+                  component_view_index_file_path)
+    html_generator = CoverageReportHtmlGenerator(
+        self.output_dir, component_view_index_file_path, 'Component')
+    for component in per_component_coverage_summary:
+      html_generator.AddLinkToAnotherReport(
+          self.GetCoverageHtmlReportPathForComponent(component), component,
+          per_component_coverage_summary[component])
+
+    # Do not create a totals row for the component view as the value is
+    # incorrect due to failure to account for UNKNOWN component and some paths
+    # belonging to multiple components.
+    html_generator.WriteHtmlCoverageReport(self.no_component_view,
+                                           self.no_file_view)
+    logging.debug('Finished generating component view html index file.')
+
+  def GenerateCoverageInHtmlForComponent(self, component_name,
+                                         per_component_coverage_summary,
+                                         per_directory_coverage_summary):
+    """Generates coverage html report for a component."""
+    component_html_report_path = self.GetCoverageHtmlReportPathForComponent(
+        component_name)
+    component_html_report_dir = os.path.dirname(component_html_report_path)
+    if not os.path.exists(component_html_report_dir):
+      os.makedirs(component_html_report_dir)
+
+    html_generator = CoverageReportHtmlGenerator(
+        self.output_dir, component_html_report_path, 'Path')
+
+    for dir_path in self.component_to_directories[component_name]:
+      dir_absolute_path = GetFullPath(dir_path)
+      if dir_absolute_path not in per_directory_coverage_summary:
+        # Any directory without an exercised file shouldn't be included into
+        # the report.
+        continue
+
+      html_generator.AddLinkToAnotherReport(
+          self.GetCoverageHtmlReportPathForDirectory(dir_path),
+          os.path.relpath(dir_path, self.src_root_dir),
+          per_directory_coverage_summary[dir_absolute_path])
+
+    html_generator.CreateTotalsEntry(
+        per_component_coverage_summary[component_name])
+    html_generator.WriteHtmlCoverageReport(self.no_component_view,
+                                           self.no_file_view)
+
+  def GetCoverageHtmlReportPathForComponent(self, component_name):
+    """Given a component, returns the corresponding html report path."""
+    component_file_name = component_name.lower().replace('>', '-')
+    html_report_name = os.extsep.join([component_file_name, 'html'])
+    return os.path.join(self.report_root_dir, 'components', html_report_name)
+
+  def GetCoverageHtmlReportPathForDirectory(self, dir_path):
+    """Given a directory path, returns the corresponding html report path."""
+    assert os.path.isdir(dir_path), '"%s" is not a directory.' % dir_path
+    html_report_path = os.path.join(
+        GetFullPath(dir_path), DIRECTORY_COVERAGE_HTML_REPORT_NAME)
+
+    # '+' is used instead of os.path.join because both of them are absolute
+    # paths and os.path.join ignores the first path.
+    # TODO(crbug.com/809150): Think of a generic cross platform fix (Windows).
+    return self.report_root_dir + html_report_path
+
+  def GetCoverageHtmlReportPathForFile(self, file_path):
+    """Given a file path, returns the corresponding html report path."""
+    assert os.path.isfile(file_path), '"%s" is not a file.' % file_path
+    html_report_path = os.extsep.join([GetFullPath(file_path), 'html'])
+
+    # '+' is used instead of os.path.join because both of them are absolute
+    # paths and os.path.join ignores the first path.
+    # TODO(crbug.com/809150): Think of a generic cross platform fix (Windows).
+    return self.report_root_dir + html_report_path
+
+  def GenerateFileViewHtmlIndexFile(self, per_file_coverage_summary,
+                                    file_view_index_file_path):
+    """Generates html index file for file view."""
+    logging.debug('Generating file view html index file as: "%s".',
+                  file_view_index_file_path)
+    html_generator = CoverageReportHtmlGenerator(
+        self.output_dir, file_view_index_file_path, 'Path')
+    totals_coverage_summary = CoverageSummary()
+
+    for file_path in per_file_coverage_summary:
+      totals_coverage_summary.AddSummary(per_file_coverage_summary[file_path])
+
+      html_generator.AddLinkToAnotherReport(
+          self.GetCoverageHtmlReportPathForFile(file_path),
+          os.path.relpath(file_path, self.src_root_dir),
+          per_file_coverage_summary[file_path])
+
+    html_generator.CreateTotalsEntry(totals_coverage_summary)
+    html_generator.WriteHtmlCoverageReport(self.no_component_view,
+                                           self.no_file_view)
+    logging.debug('Finished generating file view html index file.')
+
+  def GeneratePerFileCoverageSummary(self):
+    """Generate per file coverage summary using coverage data in JSON format."""
+    files_coverage_data = self.summary_data['data'][0]['files']
+
+    per_file_coverage_summary = {}
+    for file_coverage_data in files_coverage_data:
+      file_path = file_coverage_data['filename']
+      assert file_path.startswith(self.src_root_dir + os.sep), (
+          'File path "%s" in coverage summary is outside source checkout.' %
+          file_path)
+
+      summary = file_coverage_data['summary']
+      if summary['lines']['count'] == 0:
+        continue
+
+      per_file_coverage_summary[file_path] = CoverageSummary(
+          regions_total=summary['regions']['count'],
+          regions_covered=summary['regions']['covered'],
+          functions_total=summary['functions']['count'],
+          functions_covered=summary['functions']['covered'],
+          lines_total=summary['lines']['count'],
+          lines_covered=summary['lines']['covered'])
+
+    logging.debug('Finished generating per-file code coverage summary.')
+    return per_file_coverage_summary
+
+  def GeneratePerDirectoryCoverageInHtml(self, per_directory_coverage_summary,
+                                         per_file_coverage_summary):
+    """Generates per directory coverage breakdown in html."""
+    logging.debug('Writing per-directory coverage html reports.')
+    for dir_path in per_directory_coverage_summary:
+      self.GenerateCoverageInHtmlForDirectory(
+          dir_path, per_directory_coverage_summary, per_file_coverage_summary)
+
+    logging.debug('Finished writing per-directory coverage html reports.')
+
+  def GenerateCoverageInHtmlForDirectory(self, dir_path,
+                                         per_directory_coverage_summary,
+                                         per_file_coverage_summary):
+    """Generates coverage html report for a single directory."""
+    html_generator = CoverageReportHtmlGenerator(
+        self.output_dir, self.GetCoverageHtmlReportPathForDirectory(dir_path),
+        'Path')
+
+    for entry_name in os.listdir(dir_path):
+      entry_path = os.path.normpath(os.path.join(dir_path, entry_name))
+
+      if entry_path in per_file_coverage_summary:
+        entry_html_report_path = self.GetCoverageHtmlReportPathForFile(
+            entry_path)
+        entry_coverage_summary = per_file_coverage_summary[entry_path]
+      elif entry_path in per_directory_coverage_summary:
+        entry_html_report_path = self.GetCoverageHtmlReportPathForDirectory(
+            entry_path)
+        entry_coverage_summary = per_directory_coverage_summary[entry_path]
+      else:
+        # Any file without executable lines shouldn't be included into the
+        # report. For example, OWNER and README.md files.
+        continue
+
+      html_generator.AddLinkToAnotherReport(entry_html_report_path,
+                                            os.path.basename(entry_path),
+                                            entry_coverage_summary)
+
+    html_generator.CreateTotalsEntry(per_directory_coverage_summary[dir_path])
+    html_generator.WriteHtmlCoverageReport(self.no_component_view,
+                                           self.no_file_view)
+
+  def GenerateDirectoryViewHtmlIndexFile(self):
+    """Generates the html index file for directory view.
+
+    Note that the index file is already generated under src_root_dir, so this
+    file simply redirects to it, and the reason of this extra layer is for
+    structural consistency with other views.
+    """
+    directory_view_index_file_path = self.directory_view_path
+    logging.debug('Generating directory view html index file as: "%s".',
+                  directory_view_index_file_path)
+    src_root_html_report_path = self.GetCoverageHtmlReportPathForDirectory(
+        self.src_root_dir)
+    WriteRedirectHtmlFile(directory_view_index_file_path,
+                          src_root_html_report_path)
+    logging.debug('Finished generating directory view html index file.')
+
+  def RenameDefaultCoverageDirectory(self):
+    """Rename the default coverage directory into platform specific name."""
+    # llvm-cov creates "coverage" subdir in the output dir. We would like to use
+    # the platform name instead, as it simplifies the report dir structure when
+    # the same report is generated for different platforms.
+    default_report_subdir_path = os.path.join(self.output_dir, 'coverage')
+    if not os.path.exists(default_report_subdir_path):
+      logging.error('Default coverage report dir does not exist: %s.',
+                    default_report_subdir_path)
+
+    if not os.path.exists(self.report_root_dir):
+      os.mkdir(self.report_root_dir)
+
+    MergeTwoDirectories(default_report_subdir_path, self.report_root_dir)
+
+  def OverwriteHtmlReportsIndexFile(self):
+    """Overwrites the root index file to redirect to the default view."""
+    html_index_file_path = self.html_index_path
+    directory_view_index_file_path = self.directory_view_path
+    WriteRedirectHtmlFile(html_index_file_path, directory_view_index_file_path)
+
+  def CleanUpOutputDir(self):
+    """Perform a cleanup of the output dir."""
+    # Remove the default index.html file produced by llvm-cov.
+    index_path = os.path.join(self.output_dir, INDEX_HTML_FILE)
+    if os.path.exists(index_path):
+      os.remove(index_path)
+
+  def PrepareHtmlReport(self):
+    self.RenameDefaultCoverageDirectory()
+
+    per_file_coverage_summary = self.GeneratePerFileCoverageSummary()
+
+    if not self.no_file_view:
+      self.GenerateFileViewHtmlIndexFile(per_file_coverage_summary,
+                                         self.file_view_path)
+
+    per_directory_coverage_summary = self.CalculatePerDirectoryCoverageSummary(
+        per_file_coverage_summary)
+
+    self.GeneratePerDirectoryCoverageInHtml(per_directory_coverage_summary,
+                                            per_file_coverage_summary)
+
+    self.GenerateDirectoryViewHtmlIndexFile()
+
+    if not self.no_component_view:
+      per_component_coverage_summary = (
+          self.CalculatePerComponentCoverageSummary(
+              per_directory_coverage_summary))
+      self.GeneratePerComponentCoverageInHtml(per_component_coverage_summary,
+                                              per_directory_coverage_summary)
+      self.GenerateComponentViewHtmlIndexFile(per_component_coverage_summary)
+
+    # The default index file is generated only for the list of source files,
+    # needs to overwrite it to display per directory coverage view by default.
+    self.OverwriteHtmlReportsIndexFile()
+    self.CleanUpOutputDir()
+
+    html_index_file_path = 'file://' + GetFullPath(self.html_index_path)
+    logging.info('Index file for html report is generated as: "%s".',
+                 html_index_file_path)
+
+
+def ConfigureLogging(verbose=False, log_file=None):
+  """Configures logging settings for later use."""
+  log_level = logging.DEBUG if verbose else logging.INFO
+  log_format = '[%(asctime)s %(levelname)s] %(message)s'
+  logging.basicConfig(filename=log_file, level=log_level, format=log_format)
+
+
+def GetComponentViewPath(output_dir):
+  """Path to the HTML file for the component view."""
+  return os.path.join(
+      GetCoverageReportRootDirPath(output_dir), COMPONENT_VIEW_INDEX_FILE)
+
+
+def GetCoverageReportRootDirPath(output_dir):
+  """The root directory that contains all generated coverage html reports."""
+  return os.path.join(output_dir, GetHostPlatform())
+
+
+def GetDirectoryViewPath(output_dir):
+  """Path to the HTML file for the directory view."""
+  return os.path.join(
+      GetCoverageReportRootDirPath(output_dir), DIRECTORY_VIEW_INDEX_FILE)
+
+
+def GetFileViewPath(output_dir):
+  """Path to the HTML file for the file view."""
+  return os.path.join(
+      GetCoverageReportRootDirPath(output_dir), FILE_VIEW_INDEX_FILE)
+
+
+def GetHtmlIndexPath(output_dir):
+  """Path to the main HTML index file."""
+  return os.path.join(GetCoverageReportRootDirPath(output_dir), INDEX_HTML_FILE)
+
+
+def GetFullPath(path):
+  """Return full absolute path."""
+  return (os.path.abspath(
+      os.path.realpath(os.path.expandvars(os.path.expanduser(path)))))
+
+
+def GetHostPlatform():
+  """Returns the host platform.
+
+  This is separate from the target platform/os that coverage is running for.
+  """
+  if sys.platform == 'win32' or sys.platform == 'cygwin':
+    return 'win'
+  if sys.platform.startswith('linux'):
+    return 'linux'
+  else:
+    assert sys.platform == 'darwin'
+    return 'mac'
+
+
+def GetRelativePathToDirectoryOfFile(target_path, base_path):
+  """Returns a target path relative to the directory of base_path.
+
+  This method requires base_path to be a file, otherwise, one should call
+  os.path.relpath directly.
+  """
+  assert os.path.dirname(base_path) != base_path, (
+      'Base path: "%s" is a directory, please call os.path.relpath directly.' %
+      base_path)
+  base_dir = os.path.dirname(base_path)
+  return os.path.relpath(target_path, base_dir)
+
+
+def GetSharedLibraries(binary_paths, build_dir):
+  """Returns list of shared libraries used by specified binaries."""
+  logging.info('Finding shared libraries for targets (if any).')
+  shared_libraries = []
+  cmd = []
+  shared_library_re = None
+
+  if sys.platform.startswith('linux'):
+    cmd.extend(['ldd'])
+    shared_library_re = re.compile(r'.*\.so[.0-9]*\s=>\s(.*' + build_dir +
+                                   r'.*\.so[.0-9]*)\s.*')
+  elif sys.platform.startswith('darwin'):
+    cmd.extend(['otool', '-L'])
+    shared_library_re = re.compile(r'\s+(@rpath/.*\.dylib)\s.*')
+  else:
+    assert False, 'Cannot detect shared libraries used by the given targets.'
+
+  assert shared_library_re is not None
+
+  cmd.extend(binary_paths)
+  output = subprocess.check_output(cmd).decode('utf-8', 'ignore')
+
+  for line in output.splitlines():
+    m = shared_library_re.match(line)
+    if not m:
+      continue
+
+    shared_library_path = m.group(1)
+    if sys.platform.startswith('darwin'):
+      # otool outputs "@rpath" macro instead of the dirname of the given binary.
+      shared_library_path = shared_library_path.replace('@rpath', build_dir)
+
+    if shared_library_path in shared_libraries:
+      continue
+
+    assert os.path.exists(shared_library_path), ('Shared library "%s" used by '
+                                                 'the given target(s) does not '
+                                                 'exist.' % shared_library_path)
+    with open(shared_library_path, 'rb') as f:
+      data = f.read()
+
+    # Do not add non-instrumented libraries. Otherwise, llvm-cov errors outs.
+    if b'__llvm_cov' in data:
+      shared_libraries.append(shared_library_path)
+
+  logging.debug('Found shared libraries (%d): %s.', len(shared_libraries),
+                shared_libraries)
+  logging.info('Finished finding shared libraries for targets.')
+  return shared_libraries
+
+
+def MergeTwoDirectories(src_dir_path, dst_dir_path):
+  """Merge src_dir_path directory into dst_path directory."""
+  for filename in os.listdir(src_dir_path):
+    dst_path = os.path.join(dst_dir_path, filename)
+    if os.path.exists(dst_path):
+      shutil.rmtree(dst_path)
+    os.rename(os.path.join(src_dir_path, filename), dst_path)
+  shutil.rmtree(src_dir_path)
+
+
+def WriteRedirectHtmlFile(from_html_path, to_html_path):
+  """Writes a html file that redirects to another html file."""
+  to_html_relative_path = GetRelativePathToDirectoryOfFile(
+      to_html_path, from_html_path)
+  content = ("""
+    <!DOCTYPE html>
+    <html>
+      <head>
+        <!-- HTML meta refresh URL redirection -->
+        <meta http-equiv="refresh" content="0; url=%s">
+      </head>
+    </html>""" % to_html_relative_path)
+  with open(from_html_path, 'w') as f:
+    f.write(content)
+
+
+def _CmdSharedLibraries(args):
+  """Handles 'shared_libs' command."""
+  if not args.object:
+    logging.error('No binaries are specified.')
+    return 1
+
+  paths = GetSharedLibraries(args.object, args.build_dir)
+  if not paths:
+    return 0
+
+  # Print output in the format that can be passed to llvm-cov tool.
+  output = ' '.join(['-object=%s' % path for path in paths])
+  print(output)
+  return 0
+
+
+def _CmdPostProcess(args):
+  """Handles 'post_process' command."""
+  with open(args.summary_file) as f:
+    summary_data = f.read()
+
+  processor = CoverageReportPostProcessor(
+      args.output_dir,
+      args.src_root_dir,
+      summary_data,
+      no_component_view=True,
+      no_file_view=False)
+  processor.PrepareHtmlReport()
+
+
+def Main():
+  parser = argparse.ArgumentParser(
+      'coverage_utils', description='Code coverage utils.')
+  parser.add_argument(
+      '-v',
+      '--verbose',
+      action='store_true',
+      help='Prints additional debug output.')
+
+  subparsers = parser.add_subparsers(dest='command')
+
+  shared_libs_parser = subparsers.add_parser(
+      'shared_libs', help='Detect shared libraries.')
+  shared_libs_parser.add_argument('-build-dir', help='Path to the build dir.')
+  shared_libs_parser.add_argument(
+      '-object', action='append', help='Path to the binary using shared libs.')
+
+  post_processing_parser = subparsers.add_parser(
+      'post_process', help='Post process a report.')
+  post_processing_parser.add_argument(
+      '-output-dir', help='Path to the report dir.')
+  post_processing_parser.add_argument(
+      '-src-root-dir', help='Path to the src root dir.')
+  post_processing_parser.add_argument(
+      '-summary-file', help='Path to the summary file.')
+
+  args = parser.parse_args()
+  ConfigureLogging(args.verbose)
+
+  if args.command == 'shared_libs':
+    return _CmdSharedLibraries(args)
+  elif args.command == 'post_process':
+    return _CmdPostProcess(args)
+
+
+if __name__ == '__main__':
+  sys.exit(Main())
diff --git a/tools/code_coverage/html_templates/header.html b/tools/code_coverage/html_templates/header.html
index 3c5c7d6..7a42599 100644
--- a/tools/code_coverage/html_templates/header.html
+++ b/tools/code_coverage/html_templates/header.html
@@ -12,7 +12,11 @@
   <body>
     <h2>Coverage Report</h2>
     <p>
-      View results by: <a href='{{ component_view_href }}'>Components</a> | <a href='{{ directory_view_href }}'>Directories</a>
+      View results by:
+      {% if component_view_href %}
+        <a href='{{ component_view_href }}'>Components</a> |
+      {% endif %}
+      <a href='{{ directory_view_href }}'>Directories</a>
       {% if file_view_href %}
         | <a href='{{ file_view_href }}'>Files</a>
       {% endif %}
diff --git a/tools/determinism/deterministic_build_whitelist.pyl b/tools/determinism/deterministic_build_whitelist.pyl
index 47c400d2..1f3ec55d 100644
--- a/tools/determinism/deterministic_build_whitelist.pyl
+++ b/tools/determinism/deterministic_build_whitelist.pyl
@@ -168,12 +168,29 @@
 
   # https://crbug.com/330260
   'win': [
+    # These two targets force symbol_level to be at least 1, they will work
+    # once we've figured out the PDB aging field.
     'crashpad_snapshot_test_image_reader.exe',
     'crashpad_snapshot_test_image_reader_module.dll',
+
+    # TODO(thakis): Figure out what's up with these two.
     'mini_installer.exe',
     'previous_version_mini_installer.exe',
 
+    # These probably have mtimes in the zip headers and the scripts creating
+    # them probably should use build_utils.ZipDir() instead.
+    'mini_installer_tests.zip',
+    'policy_templates.zip',
+
+    # TODO(tikuta): Remove this when crbug.com/870611 is fixed.
+    'remoting-me2me-host-win.zip',
+    'remoting-webapp.v2.zip',
+
     # TODO(tikuta): Remove this when crbug.com/870584 is fixed.
     'v8_context_snapshot.bin',
+
+    # TODO(thakis): Figure out what's up with these two.
+    'ppapi_nacl_tests_pnacl_newlib_x32.nexe',
+    'ppapi_nacl_tests_pnacl_newlib_x64.nexe',
   ],
 }
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
index a537b63..bfd558cf 100644
--- a/tools/mb/mb_config.pyl
+++ b/tools/mb/mb_config.pyl
@@ -608,8 +608,6 @@
       'linux_layout_tests_slimming_paint_v2': 'release_trybot',
       'linux_mojo': 'release_trybot',
       'linux_mojo_chromeos': 'chromeos_with_codecs_release_trybot',
-      'linux_nacl_sdk': 'release_bot',
-      'linux_nacl_sdk_build': 'release_bot',
       'linux_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot',
       'linux_upload_clang': 'release_bot',
       'linux_vr': 'vr_release_trybot',
@@ -633,8 +631,6 @@
       'mac_chromium_dbg_ng': 'gpu_tests_debug_trybot',
       'mac_chromium_rel_ng': 'gpu_tests_release_trybot',
       'mac-cocoa-rel': 'gpu_tests_release_trybot',
-      'mac_nacl_sdk': 'release_bot',
-      'mac_nacl_sdk_build': 'release_bot',
       'mac_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot',
       'mac_upload_clang': 'release_bot',
       'mac-views-rel': 'mac_views_browser_release_trybot',
@@ -667,8 +663,6 @@
       'win_chromium_dbg_ng': 'gpu_tests_debug_trybot_x86_minimal_symbols',
       'win_chromium_x64_rel_ng': 'gpu_tests_release_trybot_minimal_symbols',
       'win_mojo': 'release_trybot_x86',
-      'win_nacl_sdk': 'release_bot_x86_minimal_symbols',
-      'win_nacl_sdk_build': 'release_bot_x86_minimal_symbols',
       'win_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot_x86',
       'win_upload_clang': 'release_bot',
       'win_chrome_official': 'official_goma_x86',
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index df2a136..9b117ff 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -1055,6 +1055,9 @@
              killed"/>
   <int value="14"
       label="Invisible renderer in foreground app with moderate binding oom"/>
+  <int value="15"
+      label="Visible renderer in foreground app virtual memory oom"/>
+  <int value="16" label="All renderer virtual memory oom"/>
 </enum>
 
 <enum name="AndroidResourceExtractionStatus">
@@ -28766,6 +28769,7 @@
   <int value="-385337473" label="enable-fast-unload"/>
   <int value="-384589459" label="disable-supervised-user-safesites"/>
   <int value="-381181808" label="DragAppsInTabletMode:enabled"/>
+  <int value="-378218969" label="VaapiJpegImageDecodeAcceleration:disabled"/>
   <int value="-378180863" label="disable-panels"/>
   <int value="-378033324" label="disable-win32k-renderer-lockdown"/>
   <int value="-374657496" label="OmniboxEnableClipboardProvider:enabled"/>
@@ -29063,6 +29067,7 @@
   <int value="250855010" label="WebAssemblyBaseline:disabled"/>
   <int value="255375615" label="stop-non-timers-in-background:enabled"/>
   <int value="259021228" label="OffMainThreadFetch:disabled"/>
+  <int value="259633436" label="AutofillDropdownLayout:disabled"/>
   <int value="262382944" label="GuestViewCrossProcessFrames:disabled"/>
   <int value="265830810" label="BackgroundTaskComponentUpdate:enabled"/>
   <int value="266322815" label="ChromeModernDesign:disabled"/>
@@ -29625,6 +29630,7 @@
   <int value="1361073386" label="ContentSuggestionsNotifications:enabled"/>
   <int value="1363136936" label="VrCustomTabBrowsing:enabled"/>
   <int value="1367467733" label="AutoplayIgnoreWebAudio:enabled"/>
+  <int value="1367487214" label="VaapiJpegImageDecodeAcceleration:enabled"/>
   <int value="1367529437" label="NTPAssetDownloadSuggestions:enabled"/>
   <int value="1367671275" label="enable-proximity-auth-proximity-detection"/>
   <int value="1369449914" label="SysInternals:disabled"/>
@@ -29932,6 +29938,7 @@
   <int value="1980011075" label="debug-packed-apps"/>
   <int value="1980648371" label="PointerEventV1SpecCapturing:enabled"/>
   <int value="1988506961" label="EnableManualSaving:enabled"/>
+  <int value="1988810119" label="AutofillDropdownLayout:enabled"/>
   <int value="1989051182" label="view-passwords:enabled"/>
   <int value="1989877708" label="PostScriptPrinting:enabled"/>
   <int value="1991771852" label="LeftToRightUrls:enabled"/>
@@ -35674,6 +35681,9 @@
 </enum>
 
 <enum name="OfflinePrefetchArchiveActualSizeVsExpected">
+  <obsolete>
+    Deprecated 8/2018.
+  </obsolete>
   <summary>
     Percentage ranges for the ratios of actual downloaded size of a prefetched
     offline page archive versus its expected size.
@@ -48075,6 +48085,15 @@
   <int value="6" label="Sync was paused"/>
 </enum>
 
+<enum name="UnifiedConsentSyncAndGoogleServicesSettings">
+  <int value="0" label="None of the services are enabled"/>
+  <int value="1" label="'Sync and all Google services' is enabled"/>
+  <int value="2" label="'Activity and interactions' is enabled"/>
+  <int value="3" label="'Make searches and browsing better' is enabled"/>
+  <int value="4" label="'Safe browsing extended reporting' is enabled"/>
+  <int value="5" label="'Enhanced spell check' is enabled"/>
+</enum>
+
 <enum name="UniformityTrialGroupNotActive">
   <int value="0" label="Invalid"/>
   <int value="1" label="Group not reported"/>
@@ -49684,6 +49703,7 @@
   <int value="13"
       label="Media router presentation request dialog was suppressed in VR"/>
   <int value="14" label="Context menu was suppressed in VR"/>
+  <int value="15" label="Permission Bubble was suppressed in VR"/>
 </enum>
 
 <enum name="VRUnsupportedMode">
@@ -50266,6 +50286,7 @@
   <int value="5" label="MediaStreamRecorder"/>
   <int value="6" label="CanvasCaptureStream"/>
   <int value="7" label="VideoCaptureStream"/>
+  <int value="8" label="GetDisplayMedia"/>
 </enum>
 
 <enum name="WebRtcAudioCodecs">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index df38d82..36b9c6ed 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -30616,6 +30616,15 @@
   </summary>
 </histogram>
 
+<histogram name="Extensions.UnifiedExtensionUpdaterUpdateServiceErrors"
+    enum="UpdateClientErrors">
+  <owner>mxnguyen@chromium.org</owner>
+  <summary>
+    The update service errors that the update service encouters during an update
+    check session using update client.
+  </summary>
+</histogram>
+
 <histogram name="Extensions.UninstallDialogAction"
     enum="ExtensionUninstallDialogAction">
   <owner>rdevlin.cronin@chromium.org</owner>
@@ -36131,6 +36140,14 @@
   <summary>How long the virtual keyboard was visible.</summary>
 </histogram>
 
+<histogram name="InputMethod.VirtualKeyboard.FocusedByStylus" enum="Boolean">
+  <owner>shend@chromium.org</owner>
+  <summary>
+    Whether an input field was focused by a stylus or not. Recorded when an
+    input field is focused.
+  </summary>
+</histogram>
+
 <histogram name="InputMethod.VirtualKeyboard.GestureTypingEvent"
     enum="IMEGestureTypingEvent">
   <owner>girard@chromium.org</owner>
@@ -36171,6 +36188,15 @@
   </summary>
 </histogram>
 
+<histogram name="InputMethod.VirtualKeyboard.PreferredLayoutForStylus"
+    enum="IMEVKLayout">
+  <owner>shend@chromium.org</owner>
+  <summary>
+    The layout of the virtual keyboard that is shown when the user focuses on an
+    input field with a stylus. Recorded when the layout is shown after a focus.
+  </summary>
+</histogram>
+
 <histogram name="InputMethod.VirtualKeyboard.TapCount">
   <owner>girard@chromium.org</owner>
   <summary>
@@ -65305,6 +65331,9 @@
 
 <histogram name="OfflinePages.Prefetching.DownloadedArchiveSizeVsExpected"
     enum="OfflinePrefetchArchiveActualSizeVsExpected">
+  <obsolete>
+    Deprecated 8/2018.
+  </obsolete>
   <owner>carlosk@chromium.org</owner>
   <summary>
     Reports differences between the expected size of a prefetch archive -- as
@@ -65323,8 +65352,10 @@
 <histogram name="OfflinePages.Prefetching.DownloadExpectedFileSize" units="KiB">
   <owner>carlosk@chromium.org</owner>
   <summary>
-    Expected size of archive file that started being downloaded by offline page
-    prefetching.
+    Expected download size of archive file, after gzip content encoding, that
+    started being downloaded by offline page prefetching. Sizes reported in this
+    metric are less than the sizes reported in DownloadedFileSize due to content
+    gzip encoding.
   </summary>
 </histogram>
 
@@ -70386,6 +70417,9 @@
 
 <histogram name="PasswordManager.BlacklistedSites.NeedToBeCleaned"
     enum="BooleanNeedsClearing">
+  <obsolete>
+    Deprecated August 2018.
+  </obsolete>
   <owner>vasilii@chromium.org</owner>
   <summary>
     Records once on startup whether the blacklisted sites in the password store
@@ -107791,6 +107825,18 @@
   </summary>
 </histogram>
 
+<histogram name="UnifiedConsent.SyncAndGoogleServicesSettings"
+    enum="UnifiedConsentSyncAndGoogleServicesSettings"
+    expires_after="2019-08-21">
+  <owner>tangltom@chromium.org</owner>
+  <owner>droger@chromium.org</owner>
+  <summary>
+    State of the user settings for Sync and Google services, recorded at
+    startup. Multiple samples may be recorded at once, except for 'None' which
+    is recorded when no other bucket is used.
+  </summary>
+</histogram>
+
 <histogram name="UpdateClient.BackgroundDownloaderJobs" units="jobs">
   <owner>sorin@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml
index c9a10b77..e05efaf 100644
--- a/tools/metrics/ukm/ukm.xml
+++ b/tools/metrics/ukm/ukm.xml
@@ -3632,12 +3632,6 @@
     Collects the duration in MS from when the tab is backgrounded to when it is
     brought to foreground or closed.
   </summary>
-  <metric name="IsDiscarded">
-    <summary>
-      Boolean value indicating whether or not the tab is discarded since it was
-      backgrounded.
-    </summary>
-  </metric>
   <metric name="IsForegrounded">
     <summary>
       Boolean value indicating whether or not it's triggered because the tab is
diff --git a/tools/perf/expectations.config b/tools/perf/expectations.config
index 4a866cb..0821e3c 100644
--- a/tools/perf/expectations.config
+++ b/tools/perf/expectations.config
@@ -270,9 +270,10 @@
 crbug.com/854239 [ Linux ] v8.browsing_desktop/browse:social:twitter_infinite_scroll [ Skip ]
 crbug.com/864718 [ Linux ] v8.browsing_desktop/browse:news:flipboard [ Skip ]
 crbug.com/875159 [ Win_10 ] v8.browsing_desktop/browse:social:facebook_infinite_scroll [ Skip ]
+crbug.com/875159 [ Win_10 ] v8.browsing_desktop/browse:media:imgur [ Skip ]
+crbug.com/875159 [ Win_10 ] v8.browsing_desktop/browse:media:tumblr [ Skip ]
+crbug.com/875159 [ Win_10 ] v8.browsing_desktop-future/browse:media:tumblr [ Skip ]
 
-# Benchmark: v8.browsing_desktop-future
-crbug.com/773084 [ Mac ] v8.browsing_desktop-future/browse:tools:maps [ Skip ]
 crbug.com/788796 [ Linux ] v8.browsing_desktop-future/browse:media:imgur [ Skip ]
 crbug.com/806001 [ Linux ] v8.browsing_desktop-future/browse:media:tumblr [ Skip ]
 crbug.com/676336 [ Win ] v8.browsing_desktop-future/browse:news:hackernews [ Skip ]
diff --git a/tools/traffic_annotation/auditor/safe_list.txt b/tools/traffic_annotation/auditor/safe_list.txt
index df63dbf6..924f32a 100644
--- a/tools/traffic_annotation/auditor/safe_list.txt
+++ b/tools/traffic_annotation/auditor/safe_list.txt
@@ -4,4 +4,5 @@
 missing,net/url_request/url_fetcher.cc
 missing,net/url_request/url_request_context.cc
 direct_assignment,download::ProtoConversions::EntryFromProto@components/download/internal/background_service/proto_conversions.cc
-test_annotation,net/quic/quic_chromium_client_session_peer.cc
\ No newline at end of file
+test_annotation,components/safe_search_api/stub_url_checker.cc
+test_annotation,net/quic/quic_chromium_client_session_peer.cc
diff --git a/tools/traffic_annotation/summary/annotations.xml b/tools/traffic_annotation/summary/annotations.xml
index 9ce79a9..62d4699 100644
--- a/tools/traffic_annotation/summary/annotations.xml
+++ b/tools/traffic_annotation/summary/annotations.xml
@@ -181,6 +181,7 @@
  <item id="permission_request_creator" hash_code="43206794" type="0" content_hash_code="73571699" os_list="linux,windows" file_path="chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary.cc"/>
  <item id="persist_blob_to_indexed_db" hash_code="32030464" type="0" deprecated="2018-08-13" content_hash_code="35410079" file_path=""/>
  <item id="plugins_resource_service" hash_code="49601082" type="0" content_hash_code="6877335" os_list="linux,windows" file_path="chrome/browser/plugins/plugins_resource_service.cc"/>
+ <item id="policy_blacklist_service" hash_code="49799644" type="0" content_hash_code="57843386" os_list="linux,mac,windows" file_path="components/policy/content/policy_blacklist_service.cc"/>
  <item id="popular_sites_fetch" hash_code="50755044" type="0" content_hash_code="6910083" os_list="linux,windows" file_path="components/ntp_tiles/popular_sites_impl.cc"/>
  <item id="port_forwarding_controller_socket" hash_code="95075845" type="0" content_hash_code="122163428" os_list="linux,windows" file_path="chrome/browser/devtools/device/port_forwarding_controller.cc"/>
  <item id="ppapi_download_request" hash_code="135967426" type="0" content_hash_code="110461402" os_list="linux,windows" file_path="chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc"/>
diff --git a/ui/accessibility/ax_enum_util.cc b/ui/accessibility/ax_enum_util.cc
index 32dba84..2a38f68c 100644
--- a/ui/accessibility/ax_enum_util.cc
+++ b/ui/accessibility/ax_enum_util.cc
@@ -848,6 +848,8 @@
   switch (state) {
     case ax::mojom::State::kNone:
       return "none";
+    case ax::mojom::State::kAutofillAvailable:
+      return "autofillAvailable";
     case ax::mojom::State::kCollapsed:
       return "collapsed";
     case ax::mojom::State::kDefault:
@@ -890,6 +892,8 @@
 ax::mojom::State ParseState(const char* state) {
   if (0 == strcmp(state, "none"))
     return ax::mojom::State::kNone;
+  if (0 == strcmp(state, "autofillAvailable"))
+    return ax::mojom::State::kAutofillAvailable;
   if (0 == strcmp(state, "collapsed"))
     return ax::mojom::State::kCollapsed;
   if (0 == strcmp(state, "default"))
diff --git a/ui/accessibility/ax_enums.mojom b/ui/accessibility/ax_enums.mojom
index 0e4cf91..7469bfd 100644
--- a/ui/accessibility/ax_enums.mojom
+++ b/ui/accessibility/ax_enums.mojom
@@ -278,6 +278,7 @@
 
 enum State {
   kNone,
+  kAutofillAvailable,
   kCollapsed,
   kDefault,
   kEditable,
diff --git a/ui/accessibility/ax_generated_tree_unittest.cc b/ui/accessibility/ax_generated_tree_unittest.cc
index 17173f7..3c58c9b 100644
--- a/ui/accessibility/ax_generated_tree_unittest.cc
+++ b/ui/accessibility/ax_generated_tree_unittest.cc
@@ -148,42 +148,49 @@
 
       // Now iterate over which node to update first, |k|.
       for (int k = 0; k < tree_size; k++) {
-        SCOPED_TRACE("i=" + base::IntToString(i) +
-                     " j=" + base::IntToString(j) +
-                     " k=" + base::IntToString(k));
+        // Iterate over a node to invalidate, |l| (zero means no invalidation).
+        for (int l = 0; l <= tree_size; l++) {
+          SCOPED_TRACE(
+              "i=" + base::IntToString(i) + " j=" + base::IntToString(j) +
+              " k=" + base::IntToString(k) + " l=" + base::IntToString(l));
 
-        // Start by serializing tree0 and unserializing it into a new
-        // empty tree |dst_tree|.
-        std::unique_ptr<AXTreeSource<const AXNode*, AXNodeData, AXTreeData>>
-            tree0_source(tree0.CreateTreeSource());
-        AXTreeSerializer<const AXNode*, AXNodeData, AXTreeData> serializer(
-            tree0_source.get());
-        AXTreeUpdate update0;
-        ASSERT_TRUE(serializer.SerializeChanges(tree0.root(), &update0));
+          // Start by serializing tree0 and unserializing it into a new
+          // empty tree |dst_tree|.
+          std::unique_ptr<AXTreeSource<const AXNode*, AXNodeData, AXTreeData>>
+              tree0_source(tree0.CreateTreeSource());
+          AXTreeSerializer<const AXNode*, AXNodeData, AXTreeData> serializer(
+              tree0_source.get());
+          AXTreeUpdate update0;
+          ASSERT_TRUE(serializer.SerializeChanges(tree0.root(), &update0));
 
-        AXTree dst_tree;
-        ASSERT_TRUE(dst_tree.Unserialize(update0));
+          AXTree dst_tree;
+          ASSERT_TRUE(dst_tree.Unserialize(update0));
 
-        // At this point, |dst_tree| should now be identical to |tree0|.
-        EXPECT_EQ(TreeToString(tree0), TreeToString(dst_tree));
+          // At this point, |dst_tree| should now be identical to |tree0|.
+          EXPECT_EQ(TreeToString(tree0), TreeToString(dst_tree));
 
-        // Next, pretend that tree0 turned into tree1, and serialize
-        // a sequence of updates to |dst_tree| to match.
-        std::unique_ptr<AXTreeSource<const AXNode*, AXNodeData, AXTreeData>>
-            tree1_source(tree1.CreateTreeSource());
-        serializer.ChangeTreeSourceForTesting(tree1_source.get());
+          // Next, pretend that tree0 turned into tree1.
+          std::unique_ptr<AXTreeSource<const AXNode*, AXNodeData, AXTreeData>>
+              tree1_source(tree1.CreateTreeSource());
+          serializer.ChangeTreeSourceForTesting(tree1_source.get());
 
-        for (int k_index = 0; k_index < tree_size; ++k_index) {
-          int id = 1 + (k + k_index) % tree_size;
-          AXTreeUpdate update;
-          ASSERT_TRUE(
-              serializer.SerializeChanges(tree1.GetFromId(id), &update));
-          ASSERT_TRUE(dst_tree.Unserialize(update));
+          // Invalidate a subtree rooted at one of the nodes.
+          if (l > 0)
+            serializer.InvalidateSubtree(tree1.GetFromId(l));
+
+          // Serialize a sequence of updates to |dst_tree| to match.
+          for (int k_index = 0; k_index < tree_size; ++k_index) {
+            int id = 1 + (k + k_index) % tree_size;
+            AXTreeUpdate update;
+            ASSERT_TRUE(
+                serializer.SerializeChanges(tree1.GetFromId(id), &update));
+            ASSERT_TRUE(dst_tree.Unserialize(update));
+          }
+
+          // After the sequence of updates, |dst_tree| should now be
+          // identical to |tree1|.
+          EXPECT_EQ(TreeToString(tree1), TreeToString(dst_tree));
         }
-
-        // After the sequence of updates, |dst_tree| should now be
-        // identical to |tree1|.
-        EXPECT_EQ(TreeToString(tree1), TreeToString(dst_tree));
       }
     }
   }
diff --git a/ui/accessibility/ax_tree_serializer.h b/ui/accessibility/ax_tree_serializer.h
index aef87e2..5b835a4 100644
--- a/ui/accessibility/ax_tree_serializer.h
+++ b/ui/accessibility/ax_tree_serializer.h
@@ -306,8 +306,8 @@
         // and return true (reparenting was found).
         *out_lca = LeastCommonAncestor(*out_lca, client_child);
         result = true;
-      } else {
-        // This child is already in the client tree, we won't
+      } else if (!client_child->invalid) {
+        // This child is already in the client tree and valid, we won't
         // recursively serialize it so we don't need to check this
         // subtree recursively for reparenting.
         continue;
diff --git a/ui/accessibility/ax_tree_serializer_unittest.cc b/ui/accessibility/ax_tree_serializer_unittest.cc
index 2596278..023945043 100644
--- a/ui/accessibility/ax_tree_serializer_unittest.cc
+++ b/ui/accessibility/ax_tree_serializer_unittest.cc
@@ -180,6 +180,10 @@
   AXTreeUpdate update;
   ASSERT_TRUE(serializer_->SerializeChanges(tree1_->GetFromId(4), &update));
 
+  // The update should unserialize without errors.
+  AXTree dst_tree(treedata0_);
+  EXPECT_TRUE(dst_tree.Unserialize(update)) << dst_tree.error();
+
   // The update should delete the subtree rooted at node id=2, and
   // then include nodes 2...5.
   EXPECT_EQ(2, update.node_id_to_clear);
@@ -190,6 +194,48 @@
   EXPECT_EQ(5, update.nodes[3].id);
 }
 
+// Similar to ReparentingUpdatesSubtree, except that InvalidateSubtree is
+// called on id=1 - we need to make sure that the reparenting is still
+// detected.
+TEST_F(AXTreeSerializerTest, ReparentingWithInvalidationUpdatesSubtree) {
+  // (1 (2 (3 (4 (5)))))
+  treedata0_.root_id = 1;
+  treedata0_.nodes.resize(5);
+  treedata0_.nodes[0].id = 1;
+  treedata0_.nodes[0].child_ids.push_back(2);
+  treedata0_.nodes[1].id = 2;
+  treedata0_.nodes[1].child_ids.push_back(3);
+  treedata0_.nodes[2].id = 3;
+  treedata0_.nodes[2].child_ids.push_back(4);
+  treedata0_.nodes[3].id = 4;
+  treedata0_.nodes[3].child_ids.push_back(5);
+  treedata0_.nodes[4].id = 5;
+
+  // Node 5 has been reparented from being a child of node 4,
+  // to a child of node 2.
+  // (1 (2 (3 (4) 5)))
+  treedata1_.root_id = 1;
+  treedata1_.nodes.resize(5);
+  treedata1_.nodes[0].id = 1;
+  treedata1_.nodes[0].child_ids.push_back(2);
+  treedata1_.nodes[1].id = 2;
+  treedata1_.nodes[1].child_ids.push_back(3);
+  treedata1_.nodes[1].child_ids.push_back(5);
+  treedata1_.nodes[2].id = 3;
+  treedata1_.nodes[2].child_ids.push_back(4);
+  treedata1_.nodes[3].id = 4;
+  treedata1_.nodes[4].id = 5;
+
+  CreateTreeSerializer();
+  AXTreeUpdate update;
+  serializer_->InvalidateSubtree(tree1_->GetFromId(1));
+  ASSERT_TRUE(serializer_->SerializeChanges(tree1_->GetFromId(4), &update));
+
+  // The update should unserialize without errors.
+  AXTree dst_tree(treedata0_);
+  EXPECT_TRUE(dst_tree.Unserialize(update)) << dst_tree.error();
+}
+
 // A variant of AXTreeSource that returns true for IsValid() for one
 // particular id.
 class AXTreeSourceWithInvalidId
diff --git a/ui/accessibility/platform/ax_platform_node.cc b/ui/accessibility/platform/ax_platform_node.cc
index 660b49b..a4f31d93 100644
--- a/ui/accessibility/platform/ax_platform_node.cc
+++ b/ui/accessibility/platform/ax_platform_node.cc
@@ -93,6 +93,7 @@
 }
 
 // static
+// TODO(crbug.com/865101) Remove this once the autofill state works.
 bool AXPlatformNode::HasInputSuggestions() {
   return has_input_suggestions_;
 }
diff --git a/ui/accessibility/platform/ax_platform_node.h b/ui/accessibility/platform/ax_platform_node.h
index 3abdbe9..9430ddb 100644
--- a/ui/accessibility/platform/ax_platform_node.h
+++ b/ui/accessibility/platform/ax_platform_node.h
@@ -62,12 +62,15 @@
   // The availability of the popup changes the interactions that will occur
   // (down arrow will move the focus into the suggestion popup). An example of a
   // suggestion popup is seen in the Autofill feature.
+  // TODO(crbug.com/865101) Remove this once the autofill state works.
   static void OnInputSuggestionsAvailable();
   // Must be called when the system goes from a state of having an available
   // suggestion popup to none available. If the suggestion popup is still
   // available but just hidden, this method should not be called.
+  // TODO(crbug.com/865101) Remove this once the autofill state works.
   static void OnInputSuggestionsUnavailable();
 
+  // TODO(crbug.com/865101) Remove this once the autofill state works.
   static bool HasInputSuggestions();
 
   // Return the focused object in any UI popup overlaying content, or null.
diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc
index ec91450..8218efe 100644
--- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
+++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
@@ -1299,6 +1299,9 @@
     case ax::mojom::Role::kSearchBox:
       if (GetData().HasState(ax::mojom::State::kProtected))
         return ATK_ROLE_PASSWORD_TEXT;
+      // TODO(crbug.com/865101) Use
+      // GetData().HasState(ax::mojom::State::kAutofillAvailable) instead of
+      // IsFocusedInputWithSuggestions()
       if (!GetStringAttribute(ax::mojom::StringAttribute::kAutoComplete)
                .empty() ||
           IsFocusedInputWithSuggestions()) {
@@ -1406,6 +1409,9 @@
       atk_state_set_add_state(atk_state_set, ATK_STATE_SINGLE_LINE);
   }
 
+  // TODO(crbug.com/865101) Use
+  // GetData().HasState(ax::mojom::State::kAutofillAvailable) instead of
+  // IsFocusedInputWithSuggestions()
   if (!GetStringAttribute(ax::mojom::StringAttribute::kAutoComplete).empty() ||
       IsFocusedInputWithSuggestions())
     atk_state_set_add_state(atk_state_set, ATK_STATE_SUPPORTS_AUTOCOMPLETION);
diff --git a/ui/accessibility/platform/ax_platform_node_base.cc b/ui/accessibility/platform/ax_platform_node_base.cc
index e28a4c3..4cf2f13 100644
--- a/ui/accessibility/platform/ax_platform_node_base.cc
+++ b/ui/accessibility/platform/ax_platform_node_base.cc
@@ -270,6 +270,7 @@
          GetData().role == ax::mojom::Role::kInlineTextBox;
 }
 
+// TODO(crbug.com/865101) Remove this once the autofill state works.
 bool AXPlatformNodeBase::IsFocusedInputWithSuggestions() {
   return HasInputSuggestions() && IsPlainTextField() &&
          delegate_->GetFocus() == GetNativeViewAccessible();
@@ -595,6 +596,9 @@
                      attributes);
   if (!HasStringAttribute(ax::mojom::StringAttribute::kAutoComplete) &&
       IsFocusedInputWithSuggestions()) {
+    // TODO(crbug.com/865101) Use
+    // GetData().HasState(ax::mojom::State::kAutofillAvailable) instead of
+    // IsFocusedInputWithSuggestions()
     AddAttributeToList("autocomplete", "list", attributes);
   }
 
@@ -666,6 +670,10 @@
         break;
     }
   } else if (IsFocusedInputWithSuggestions()) {
+    // TODO(crbug.com/865101) Use
+    // GetData().HasState(ax::mojom::State::kAutofillAvailable) instead of
+    // IsFocusedInputWithSuggestions()
+    // TODO(crbug.com/865101) Remove this comment:
     // Note: suggestions are special-cased here because there is no way
     // for the browser to know when a suggestion popup is available.
     AddAttributeToList("haspopup", "menu", attributes);
diff --git a/ui/accessibility/platform/ax_platform_node_win.cc b/ui/accessibility/platform/ax_platform_node_win.cc
index 3b88186..c827d73 100644
--- a/ui/accessibility/platform/ax_platform_node_win.cc
+++ b/ui/accessibility/platform/ax_platform_node_win.cc
@@ -4036,6 +4036,9 @@
     ia2_state |= IA2_STATE_SELECTABLE_TEXT;
   }
 
+  // TODO(crbug.com/865101) Use
+  // data.HasState(ax::mojom::State::kAutofillAvailable) instead of
+  // IsFocusedInputWithSuggestions()
   if (!GetStringAttribute(ax::mojom::StringAttribute::kAutoComplete).empty() ||
       IsFocusedInputWithSuggestions()) {
     ia2_state |= IA2_STATE_SUPPORTS_AUTOCOMPLETION;
@@ -4802,7 +4805,9 @@
   StateToUIAAriaProperty(properties, ax::mojom::State::kExpanded, "expanded");
   HtmlAttributeToUIAAriaProperty(properties, "aria-grabbed", "grabbed");
 
-  // TODO(suproteem) check if autofill check is necessary
+  // TODO(crbug.com/865101) Use
+  // data.HasState(ax::mojom::State::kAutofillAvailable) instead of
+  // IsFocusedInputWithSuggestions()
   if (data.HasIntAttribute(ax::mojom::IntAttribute::kHasPopup)) {
     properties.push_back(L"haspopup=true");
   }
@@ -5492,8 +5497,11 @@
   if (ShouldNodeHaveFocusableState(data))
     msaa_state |= STATE_SYSTEM_FOCUSABLE;
 
-  // Note: suggestions are special-cased here because there is no way
-  // for the browser to know when a suggestion popup is available.
+  // TODO(crbug.com/865101) Use
+  // data.HasState(ax::mojom::State::kAutofillAvailable) instead of
+  // IsFocusedInputWithSuggestions() and rmove the below comment: Note:
+  // suggestions are special-cased here because there is no way for the browser
+  // to know when a suggestion popup is available.
   if (data.HasIntAttribute(ax::mojom::IntAttribute::kHasPopup) ||
       IsFocusedInputWithSuggestions())
     msaa_state |= STATE_SYSTEM_HASPOPUP;
diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_frame_host_android.cc
index 5e52550..b765711 100644
--- a/ui/android/delegated_frame_host_android.cc
+++ b/ui/android/delegated_frame_host_android.cc
@@ -450,6 +450,11 @@
              : viz::SurfaceId();
 }
 
+bool DelegatedFrameHostAndroid::HasFallbackSurface() const {
+  return content_layer_->fallback_surface_id() &&
+         content_layer_->fallback_surface_id()->is_valid();
+}
+
 void DelegatedFrameHostAndroid::TakeFallbackContentFrom(
     DelegatedFrameHostAndroid* other) {
   if ((content_layer_->fallback_surface_id() &&
diff --git a/ui/android/delegated_frame_host_android.h b/ui/android/delegated_frame_host_android.h
index 428d44a1..be08120d 100644
--- a/ui/android/delegated_frame_host_android.h
+++ b/ui/android/delegated_frame_host_android.h
@@ -129,6 +129,7 @@
   // Returns the ID for the current Surface. Returns an invalid ID if no
   // surface exists (!HasDelegatedContent()).
   viz::SurfaceId SurfaceId() const;
+  bool HasFallbackSurface() const;
 
   void TakeFallbackContentFrom(DelegatedFrameHostAndroid* other);
 
diff --git a/ui/android/java/src/org/chromium/ui/AsyncViewProvider.java b/ui/android/java/src/org/chromium/ui/AsyncViewProvider.java
index 16547543..25da211 100644
--- a/ui/android/java/src/org/chromium/ui/AsyncViewProvider.java
+++ b/ui/android/java/src/org/chromium/ui/AsyncViewProvider.java
@@ -123,9 +123,27 @@
         }
     }
 
+    /**
+     * Destroy the provider making sure that all queued up after inflate callbacks are no longer
+     * called.
+     */
     public void destroy() {
+        destroy(null);
+    }
+
+    /**
+     * Same as {@link #destroy()} but takes a callback that is ensured to be run (either immediately
+     * if the view is already inflated or after inflation of the {@link AsyncViewStub})).
+     */
+    public void destroy(Callback<T> destroyCallback) {
         mDestroyed = true;
-        mView = null;
-        mViewStub = null;
+        if (mView != null) {
+            destroyCallback.onResult(mView);
+            mView = null;
+        }
+        if (mViewStub != null) {
+            mViewStub.addOnInflateListener((View view) -> { destroyCallback.onResult(mView); });
+            mViewStub = null;
+        }
     }
 }
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
index 056fce23..fc1f37dd 100644
--- a/ui/base/ui_base_features.cc
+++ b/ui/base/ui_base_features.cc
@@ -133,13 +133,17 @@
                                           base::FEATURE_DISABLED_BY_DEFAULT};
 
 bool IsUsingWindowService() {
-  return IsSingleProcessMash() || !IsAshInBrowserProcess();
+  return IsSingleProcessMash() || IsMultiProcessMash();
 }
 
 bool IsAshInBrowserProcess() {
   return !base::FeatureList::IsEnabled(features::kMash);
 }
 
+bool IsMultiProcessMash() {
+  return base::FeatureList::IsEnabled(features::kMash);
+}
+
 bool IsSingleProcessMash() {
   return base::FeatureList::IsEnabled(features::kSingleProcessMash);
 }
diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h
index 19dc80786..febac13 100644
--- a/ui/base/ui_base_features.h
+++ b/ui/base/ui_base_features.h
@@ -57,8 +57,13 @@
 
 // Returns true if ash is in process (the default). A value of false means ash
 // is running in a separate process (and is hosting the UI Service and Viz).
+// DEPRECATED: Use !IsMultiProcessMash() or !IsUsingWindowService().
 UI_BASE_EXPORT bool IsAshInBrowserProcess();
 
+// Returns true if ash in running in a separate process (and is hosting the UI
+// service and Viz graphics).
+UI_BASE_EXPORT bool IsMultiProcessMash();
+
 // Returns true if code outside of ash is using the WindowService. In this mode
 // there are two aura::Envs. Ash uses one with Env::Mode::LOCAL. Non-ash code
 // uses an aura::Env with a mode of MUS. The non-ash code using mus targets the
diff --git a/ui/file_manager/file_manager/background/js/drive_sync_handler.js b/ui/file_manager/file_manager/background/js/drive_sync_handler.js
index 4269437..fef6acb4 100644
--- a/ui/file_manager/file_manager/background/js/drive_sync_handler.js
+++ b/ui/file_manager/file_manager/background/js/drive_sync_handler.js
@@ -175,7 +175,6 @@
           } else {
             this.item_.message = strf('SYNC_FILE_NAME', entry.name);
           }
-          this.item_.cancelCallback = this.requestCancel_.bind(this);
           this.item_.progressValue = status.processed || 0;
           this.item_.progressMax = status.total || 0;
           this.progressCenter_.updateItem(this.item_);
@@ -206,14 +205,6 @@
 };
 
 /**
- * Requests to cancel for the given files' drive sync.
- * @private
- */
-DriveSyncHandler.prototype.requestCancel_ = function() {
-  chrome.fileManagerPrivate.cancelAllFileTransfers(util.checkAPIError);
-};
-
-/**
  * Handles drive's sync errors.
  * @param {chrome.fileManagerPrivate.DriveSyncErrorEvent} event Drive sync
  * error event.
diff --git a/ui/gl/android/scoped_java_surface.cc b/ui/gl/android/scoped_java_surface.cc
index bbe2d39..26f97e5 100644
--- a/ui/gl/android/scoped_java_surface.cc
+++ b/ui/gl/android/scoped_java_surface.cc
@@ -16,18 +16,13 @@
 }
 
 ScopedJavaSurface::ScopedJavaSurface(
-    const base::android::JavaRef<jobject>& surface)
-    : auto_release_(true),
-      is_protected_(false) {
+    const base::android::JavaRef<jobject>& surface) {
   JNIEnv* env = base::android::AttachCurrentThread();
   DCHECK(env->IsInstanceOf(surface.obj(), android_view_Surface_clazz(env)));
   j_surface_.Reset(surface);
 }
 
-ScopedJavaSurface::ScopedJavaSurface(
-    const SurfaceTexture* surface_texture)
-    : auto_release_(true),
-      is_protected_(false) {
+ScopedJavaSurface::ScopedJavaSurface(const SurfaceTexture* surface_texture) {
   JNIEnv* env = base::android::AttachCurrentThread();
   ScopedJavaLocalRef<jobject> tmp(JNI_Surface::Java_Surface_Constructor(
       env, surface_texture->j_surface_texture()));
@@ -45,6 +40,10 @@
 }
 
 ScopedJavaSurface::~ScopedJavaSurface() {
+  ReleaseSurfaceIfNeeded();
+}
+
+void ScopedJavaSurface::ReleaseSurfaceIfNeeded() {
   if (auto_release_ && !j_surface_.is_null()) {
     JNIEnv* env = base::android::AttachCurrentThread();
     JNI_Surface::Java_Surface_release(env, j_surface_);
@@ -52,6 +51,7 @@
 }
 
 void ScopedJavaSurface::MoveFrom(ScopedJavaSurface& other) {
+  ReleaseSurfaceIfNeeded();
   JNIEnv* env = base::android::AttachCurrentThread();
   j_surface_.Reset(env, other.j_surface_.Release());
   auto_release_ = other.auto_release_;
diff --git a/ui/gl/android/scoped_java_surface.h b/ui/gl/android/scoped_java_surface.h
index c88ada4..fa8d481 100644
--- a/ui/gl/android/scoped_java_surface.h
+++ b/ui/gl/android/scoped_java_surface.h
@@ -57,9 +57,10 @@
  private:
   // Performs destructive move from |other| to this.
   void MoveFrom(ScopedJavaSurface& other);
+  void ReleaseSurfaceIfNeeded();
 
-  bool auto_release_;
-  bool is_protected_;
+  bool auto_release_ = true;
+  bool is_protected_ = false;
 
   base::android::ScopedJavaGlobalRef<jobject> j_surface_;
 
diff --git a/ui/gl/init/gl_factory.cc b/ui/gl/init/gl_factory.cc
index be95f9d7..1215ef25 100644
--- a/ui/gl/init/gl_factory.cc
+++ b/ui/gl/init/gl_factory.cc
@@ -31,7 +31,6 @@
   }
 
   std::vector<GLImplementation> allowed_impls = GetAllowedGLImplementations();
-  DCHECK(!allowed_impls.empty());
 
   if (cmd->HasSwitch(switches::kDisableES3GLContext)) {
     auto iter = std::find(allowed_impls.begin(), allowed_impls.end(),
@@ -40,6 +39,11 @@
       allowed_impls.erase(iter);
   }
 
+  if (allowed_impls.empty()) {
+    LOG(ERROR) << "List of allowed GL implementations is empty.";
+    return false;
+  }
+
   // The default implementation is always the first one in list.
   GLImplementation impl = allowed_impls[0];
   bool fallback_to_software_gl = false;
diff --git a/ui/strings/translations/ui_strings_am.xtb b/ui/strings/translations/ui_strings_am.xtb
index c770ce09..8acd2591 100644
--- a/ui/strings/translations/ui_strings_am.xtb
+++ b/ui/strings/translations/ui_strings_am.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">ማሳወቂያን ዘርጋ</translation>
 <translation id="2482878487686419369">ማስታወቂያዎች</translation>
 <translation id="2497284189126895209">ሁሉም ፋይሎች</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">ልኬት ማስተካከል ተጠናቅቋል</translation>
 <translation id="252373100621549798">ያልታወቀ ማሳያ</translation>
 <translation id="2583543531130364912">የእርስዎን ማያንካ ልኬት ያስተካክሉ</translation>
diff --git a/ui/strings/translations/ui_strings_ar.xtb b/ui/strings/translations/ui_strings_ar.xtb
index 95bf887..6cc243ed 100644
--- a/ui/strings/translations/ui_strings_ar.xtb
+++ b/ui/strings/translations/ui_strings_ar.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">توسيع الإشعار</translation>
 <translation id="2482878487686419369">الاشعارات</translation>
 <translation id="2497284189126895209">الملفّات كلّها</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">اكتملت المعايرة</translation>
 <translation id="252373100621549798">شاشة عرض غير معروفة</translation>
 <translation id="2583543531130364912">معايرة الشاشة التي تعمل باللمس</translation>
diff --git a/ui/strings/translations/ui_strings_bg.xtb b/ui/strings/translations/ui_strings_bg.xtb
index 5855166..8b7c9330 100644
--- a/ui/strings/translations/ui_strings_bg.xtb
+++ b/ui/strings/translations/ui_strings_bg.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Разгъване на известието</translation>
 <translation id="2482878487686419369">Известия</translation>
 <translation id="2497284189126895209">Всички файлове</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Калибрирането завърши</translation>
 <translation id="252373100621549798">Неизвестен дисплей</translation>
 <translation id="2583543531130364912">Калибриране на сензорния екран</translation>
diff --git a/ui/strings/translations/ui_strings_bn.xtb b/ui/strings/translations/ui_strings_bn.xtb
index 6241fb5..e879fcc 100644
--- a/ui/strings/translations/ui_strings_bn.xtb
+++ b/ui/strings/translations/ui_strings_bn.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">বিজ্ঞপ্তি প্রসারিত করুন</translation>
 <translation id="2482878487686419369">বিজ্ঞপ্তিগুলি</translation>
 <translation id="2497284189126895209">সকল ফাইল</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">ক্রমাঙ্কন সম্পূর্ণ হয়েছে</translation>
 <translation id="252373100621549798">অজানা প্রদর্শন</translation>
 <translation id="2583543531130364912">আপনার টাচস্ক্রীন ক্রমাঙ্কন করুন</translation>
diff --git a/ui/strings/translations/ui_strings_ca.xtb b/ui/strings/translations/ui_strings_ca.xtb
index 24c1ee55..1cd91d9e 100644
--- a/ui/strings/translations/ui_strings_ca.xtb
+++ b/ui/strings/translations/ui_strings_ca.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Desplega la notificació</translation>
 <translation id="2482878487686419369">Notificacions</translation>
 <translation id="2497284189126895209">Tots els fitxers</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">S'ha acabat de calibrar</translation>
 <translation id="252373100621549798">Pantalla desconeguda</translation>
 <translation id="2583543531130364912">Calibra la pantalla tàctil</translation>
diff --git a/ui/strings/translations/ui_strings_cs.xtb b/ui/strings/translations/ui_strings_cs.xtb
index 690e8b5d..819630b 100644
--- a/ui/strings/translations/ui_strings_cs.xtb
+++ b/ui/strings/translations/ui_strings_cs.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Rozbalit oznámení</translation>
 <translation id="2482878487686419369">Oznámení</translation>
 <translation id="2497284189126895209">Všechny soubory</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibrace je dokončena</translation>
 <translation id="252373100621549798">Neznámý displej</translation>
 <translation id="2583543531130364912">Zkalibrujte dotykovou obrazovku</translation>
diff --git a/ui/strings/translations/ui_strings_da.xtb b/ui/strings/translations/ui_strings_da.xtb
index 505135b..eddabe4e 100644
--- a/ui/strings/translations/ui_strings_da.xtb
+++ b/ui/strings/translations/ui_strings_da.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Udvid underretning</translation>
 <translation id="2482878487686419369">Underretninger</translation>
 <translation id="2497284189126895209">Alle filer</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibreringen er fuldført</translation>
 <translation id="252373100621549798">Ukendt skærm</translation>
 <translation id="2583543531130364912">Kalibrer din touchskærm</translation>
diff --git a/ui/strings/translations/ui_strings_de.xtb b/ui/strings/translations/ui_strings_de.xtb
index cfc6891c5..ca940e6 100644
--- a/ui/strings/translations/ui_strings_de.xtb
+++ b/ui/strings/translations/ui_strings_de.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Benachrichtigung erweitern</translation>
 <translation id="2482878487686419369">Benachrichtigungen</translation>
 <translation id="2497284189126895209">Alle Dateien</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Die Kalibrierung ist abgeschlossen</translation>
 <translation id="252373100621549798">Display unbekannt</translation>
 <translation id="2583543531130364912">Touchscreen kalibrieren</translation>
diff --git a/ui/strings/translations/ui_strings_el.xtb b/ui/strings/translations/ui_strings_el.xtb
index ec2bdc0..7d5c619 100644
--- a/ui/strings/translations/ui_strings_el.xtb
+++ b/ui/strings/translations/ui_strings_el.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Ανάπτυξη ειδοποίησης</translation>
 <translation id="2482878487686419369">Ειδοποιήσεις</translation>
 <translation id="2497284189126895209">Όλα τα αρχεία</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Η βαθμονόμηση ολοκληρώθηκε</translation>
 <translation id="252373100621549798">Άγνωστη οθόνη</translation>
 <translation id="2583543531130364912">Βαθμονόμηση οθόνης αφής</translation>
diff --git a/ui/strings/translations/ui_strings_en-GB.xtb b/ui/strings/translations/ui_strings_en-GB.xtb
index 7e36ed9..6f1fa9a 100644
--- a/ui/strings/translations/ui_strings_en-GB.xtb
+++ b/ui/strings/translations/ui_strings_en-GB.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Expand notification</translation>
 <translation id="2482878487686419369">Notifications</translation>
 <translation id="2497284189126895209">All Files</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Calibration is completed</translation>
 <translation id="252373100621549798">Unknown Display</translation>
 <translation id="2583543531130364912">Calibrate your touchscreen</translation>
diff --git a/ui/strings/translations/ui_strings_es-419.xtb b/ui/strings/translations/ui_strings_es-419.xtb
index 75c61d4..f043ad8 100644
--- a/ui/strings/translations/ui_strings_es-419.xtb
+++ b/ui/strings/translations/ui_strings_es-419.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Expandir notificación</translation>
 <translation id="2482878487686419369">Notificaciones</translation>
 <translation id="2497284189126895209">Todos los archivos</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Se completó la calibración</translation>
 <translation id="252373100621549798">Pantalla desconocida</translation>
 <translation id="2583543531130364912">Calibrar la pantalla táctil</translation>
diff --git a/ui/strings/translations/ui_strings_es.xtb b/ui/strings/translations/ui_strings_es.xtb
index 183c4a1d..d37745b7 100644
--- a/ui/strings/translations/ui_strings_es.xtb
+++ b/ui/strings/translations/ui_strings_es.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Mostrar notificación</translation>
 <translation id="2482878487686419369">Notificaciones</translation>
 <translation id="2497284189126895209">Todos los archivos</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Se ha completado la calibración</translation>
 <translation id="252373100621549798">Pantalla desconocida</translation>
 <translation id="2583543531130364912">Calibra la pantalla táctil</translation>
diff --git a/ui/strings/translations/ui_strings_et.xtb b/ui/strings/translations/ui_strings_et.xtb
index 9b573a3..96fe8af 100644
--- a/ui/strings/translations/ui_strings_et.xtb
+++ b/ui/strings/translations/ui_strings_et.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Laienda märguannet</translation>
 <translation id="2482878487686419369">Märguanded</translation>
 <translation id="2497284189126895209">Kõik failid</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibreerimine on lõpetatud</translation>
 <translation id="252373100621549798">Tundmatu ekraan</translation>
 <translation id="2583543531130364912">Kalibreerige puuteekraan</translation>
diff --git a/ui/strings/translations/ui_strings_fa.xtb b/ui/strings/translations/ui_strings_fa.xtb
index a34e732..431ca7a 100644
--- a/ui/strings/translations/ui_strings_fa.xtb
+++ b/ui/strings/translations/ui_strings_fa.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">بزرگ کردن اعلان</translation>
 <translation id="2482878487686419369">اعلان‌ها</translation>
 <translation id="2497284189126895209">همه فایل‌ها</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">کالیبراسیون تمام شد</translation>
 <translation id="252373100621549798">نمایش ناشناس</translation>
 <translation id="2583543531130364912">کالیبراسیون صفحه لمسی</translation>
diff --git a/ui/strings/translations/ui_strings_fi.xtb b/ui/strings/translations/ui_strings_fi.xtb
index d5583cd..7549f79 100644
--- a/ui/strings/translations/ui_strings_fi.xtb
+++ b/ui/strings/translations/ui_strings_fi.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Laajenna ilmoitus</translation>
 <translation id="2482878487686419369">Ilmoitukset</translation>
 <translation id="2497284189126895209">Kaikki tiedostot</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibrointi on valmis.</translation>
 <translation id="252373100621549798">Tuntematon näyttö</translation>
 <translation id="2583543531130364912">Kalibroi kosketusnäyttö</translation>
diff --git a/ui/strings/translations/ui_strings_fil.xtb b/ui/strings/translations/ui_strings_fil.xtb
index 269c1f0..a67e63a 100644
--- a/ui/strings/translations/ui_strings_fil.xtb
+++ b/ui/strings/translations/ui_strings_fil.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Palawakin ang notification</translation>
 <translation id="2482878487686419369">Mga Abiso</translation>
 <translation id="2497284189126895209">Lahat ng Mga File</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Nakumpleto na ang pag-calibrate</translation>
 <translation id="252373100621549798">Hindi Kilalang Display</translation>
 <translation id="2583543531130364912">I-calibrate ang iyong touchscreen</translation>
diff --git a/ui/strings/translations/ui_strings_fr.xtb b/ui/strings/translations/ui_strings_fr.xtb
index fcf08132..42e4eeb 100644
--- a/ui/strings/translations/ui_strings_fr.xtb
+++ b/ui/strings/translations/ui_strings_fr.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Développer la notification</translation>
 <translation id="2482878487686419369">Notifications</translation>
 <translation id="2497284189126895209">Tous les fichiers</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Calibrage terminé</translation>
 <translation id="252373100621549798">Écran inconnu</translation>
 <translation id="2583543531130364912">Calibrer votre écran tactile</translation>
diff --git a/ui/strings/translations/ui_strings_gu.xtb b/ui/strings/translations/ui_strings_gu.xtb
index 24c98cf..5bc0e940 100644
--- a/ui/strings/translations/ui_strings_gu.xtb
+++ b/ui/strings/translations/ui_strings_gu.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">નોટિફિકેશન વિસ્તૃત કરો</translation>
 <translation id="2482878487686419369">સૂચનાઓ</translation>
 <translation id="2497284189126895209">બધી ફાઇલો</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">કૅલિબ્રેશન પૂર્ણ થયું</translation>
 <translation id="252373100621549798">અજ્ઞાત પ્રદર્શન</translation>
 <translation id="2583543531130364912">તમારી ટચસ્ક્રીનને કેલિબ્રેટ કરો</translation>
diff --git a/ui/strings/translations/ui_strings_hi.xtb b/ui/strings/translations/ui_strings_hi.xtb
index ed909cf..2625430 100644
--- a/ui/strings/translations/ui_strings_hi.xtb
+++ b/ui/strings/translations/ui_strings_hi.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">सूचना को विस्तृत करें</translation>
 <translation id="2482878487686419369">अधिसूचनाएं</translation>
 <translation id="2497284189126895209">सभी फ़ाइलें</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">कैलिब्रेशन पूरा हो गया</translation>
 <translation id="252373100621549798">अज्ञात डिस्प्ले</translation>
 <translation id="2583543531130364912">अपनी टचस्क्रीन कैलिब्रेट करें</translation>
diff --git a/ui/strings/translations/ui_strings_hr.xtb b/ui/strings/translations/ui_strings_hr.xtb
index 50081ffc..8dd3124 100644
--- a/ui/strings/translations/ui_strings_hr.xtb
+++ b/ui/strings/translations/ui_strings_hr.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Proširi obavijest</translation>
 <translation id="2482878487686419369">Obavijesti</translation>
 <translation id="2497284189126895209">Sve datoteke</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibracija je gotova</translation>
 <translation id="252373100621549798">Nepoznati zaslon</translation>
 <translation id="2583543531130364912">Kalibrirajte dodirni zaslon</translation>
diff --git a/ui/strings/translations/ui_strings_hu.xtb b/ui/strings/translations/ui_strings_hu.xtb
index d21afea..f375780 100644
--- a/ui/strings/translations/ui_strings_hu.xtb
+++ b/ui/strings/translations/ui_strings_hu.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Értesítés kibontása</translation>
 <translation id="2482878487686419369">Értesítések</translation>
 <translation id="2497284189126895209">Minden fájl</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">A kalibrálás befejeződött</translation>
 <translation id="252373100621549798">Ismeretlen kijelző</translation>
 <translation id="2583543531130364912">Az érintőképernyő kalibrálása</translation>
diff --git a/ui/strings/translations/ui_strings_id.xtb b/ui/strings/translations/ui_strings_id.xtb
index b938f5b..6466158 100644
--- a/ui/strings/translations/ui_strings_id.xtb
+++ b/ui/strings/translations/ui_strings_id.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Luaskan notifikasi</translation>
 <translation id="2482878487686419369">Notifikasi</translation>
 <translation id="2497284189126895209">Semua Jenis File</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibrasi selesai</translation>
 <translation id="252373100621549798">Tampilan yang Tidak Diketahui</translation>
 <translation id="2583543531130364912">Kalibrasi layar sentuh</translation>
diff --git a/ui/strings/translations/ui_strings_it.xtb b/ui/strings/translations/ui_strings_it.xtb
index 7d6638fe..5bfa97b 100644
--- a/ui/strings/translations/ui_strings_it.xtb
+++ b/ui/strings/translations/ui_strings_it.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Espandi la notifica</translation>
 <translation id="2482878487686419369">Notifiche</translation>
 <translation id="2497284189126895209">Tutti i file</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Calibrazione completata</translation>
 <translation id="252373100621549798">Display sconosciuto</translation>
 <translation id="2583543531130364912">Calibra il touchscreen</translation>
diff --git a/ui/strings/translations/ui_strings_iw.xtb b/ui/strings/translations/ui_strings_iw.xtb
index 7e5ad780..fa17476 100644
--- a/ui/strings/translations/ui_strings_iw.xtb
+++ b/ui/strings/translations/ui_strings_iw.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">הרחבת ההודעה</translation>
 <translation id="2482878487686419369">התראות</translation>
 <translation id="2497284189126895209">כל הקבצים</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">הכיול הושלם</translation>
 <translation id="252373100621549798">תצוגה לא ידועה</translation>
 <translation id="2583543531130364912">כיול מסך המגע</translation>
diff --git a/ui/strings/translations/ui_strings_ja.xtb b/ui/strings/translations/ui_strings_ja.xtb
index 7d77585..6f10c004 100644
--- a/ui/strings/translations/ui_strings_ja.xtb
+++ b/ui/strings/translations/ui_strings_ja.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">通知を展開</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2497284189126895209">すべてのファイル</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">キャリブレーションが完了しました</translation>
 <translation id="252373100621549798">不明なディスプレイ</translation>
 <translation id="2583543531130364912">タッチスクリーンのキャリブレーション</translation>
diff --git a/ui/strings/translations/ui_strings_kn.xtb b/ui/strings/translations/ui_strings_kn.xtb
index 32da2e9a..24608c8 100644
--- a/ui/strings/translations/ui_strings_kn.xtb
+++ b/ui/strings/translations/ui_strings_kn.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">ವಿಸ್ತರಿಸುವ ಅಧಿಸೂಚನೆ</translation>
 <translation id="2482878487686419369">ಸೂಚನೆಗಳು</translation>
 <translation id="2497284189126895209">ಎಲ್ಲ ಫೈಲ್‌ಗಳು</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">ಮಾಪನಾಂಕವು ಪೂರ್ಣಗೊಂಡಿದೆ</translation>
 <translation id="252373100621549798">ಅಪರಿಚಿತ ಪ್ರದರ್ಶನ</translation>
 <translation id="2583543531130364912">ನಿಮ್ಮ ಟಚ್‌ಸ್ಕ್ರೀನ್ ಕ್ಯಾಲಿಬ್ರೇಟ್ ಮಾಡಿ</translation>
diff --git a/ui/strings/translations/ui_strings_ko.xtb b/ui/strings/translations/ui_strings_ko.xtb
index eaad838..b98e583 100644
--- a/ui/strings/translations/ui_strings_ko.xtb
+++ b/ui/strings/translations/ui_strings_ko.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">알림 펼치기</translation>
 <translation id="2482878487686419369">알림</translation>
 <translation id="2497284189126895209">모든 파일</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">보정이 완료되었습니다.</translation>
 <translation id="252373100621549798">알 수 없는 디스플레이</translation>
 <translation id="2583543531130364912">터치스크린 보정</translation>
diff --git a/ui/strings/translations/ui_strings_lt.xtb b/ui/strings/translations/ui_strings_lt.xtb
index 943170ac6..b10cbb7 100644
--- a/ui/strings/translations/ui_strings_lt.xtb
+++ b/ui/strings/translations/ui_strings_lt.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Išskleisti pranešimą</translation>
 <translation id="2482878487686419369">Pranešimai</translation>
 <translation id="2497284189126895209">Visi failai</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibravimas baigtas</translation>
 <translation id="252373100621549798">Nežinoma pateiktis</translation>
 <translation id="2583543531130364912">Jutiklinio ekrano kalibravimas</translation>
diff --git a/ui/strings/translations/ui_strings_lv.xtb b/ui/strings/translations/ui_strings_lv.xtb
index 6be09015..8a1370ab 100644
--- a/ui/strings/translations/ui_strings_lv.xtb
+++ b/ui/strings/translations/ui_strings_lv.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Izvērst paziņojumu</translation>
 <translation id="2482878487686419369">Paziņojumi</translation>
 <translation id="2497284189126895209">Visi faili</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibrēšana ir pabeigta.</translation>
 <translation id="252373100621549798">Nezināms displejs</translation>
 <translation id="2583543531130364912">Skārienekrāna kalibrēšana</translation>
diff --git a/ui/strings/translations/ui_strings_ml.xtb b/ui/strings/translations/ui_strings_ml.xtb
index 732bea3..0a1ea7f 100644
--- a/ui/strings/translations/ui_strings_ml.xtb
+++ b/ui/strings/translations/ui_strings_ml.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">അറിയിപ്പ് വികസിപ്പിക്കുക</translation>
 <translation id="2482878487686419369">വിജ്ഞാപനങ്ങള്‍‌</translation>
 <translation id="2497284189126895209">എല്ലാ ഫയലുകളും</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">കാലിബറേഷൻ പൂർത്തിയായി</translation>
 <translation id="252373100621549798">അജ്ഞാത പ്രദർശനം</translation>
 <translation id="2583543531130364912">നിങ്ങളുടെ ടച്ച്സ്‌ക്രീൻ കാലിബറേറ്റുചെയ്യുക</translation>
diff --git a/ui/strings/translations/ui_strings_mr.xtb b/ui/strings/translations/ui_strings_mr.xtb
index fddbe9fc..f473e45 100644
--- a/ui/strings/translations/ui_strings_mr.xtb
+++ b/ui/strings/translations/ui_strings_mr.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">सूचना विस्तृत करा</translation>
 <translation id="2482878487686419369">सूचना</translation>
 <translation id="2497284189126895209">सर्व फाइल</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">कॅलिब्रेशन पूर्ण झाले</translation>
 <translation id="252373100621549798">अज्ञात प्रदर्शन</translation>
 <translation id="2583543531130364912">तुमची टचस्क्रीन कॅलिब्रेट करा</translation>
diff --git a/ui/strings/translations/ui_strings_ms.xtb b/ui/strings/translations/ui_strings_ms.xtb
index 2af1c630..9debfac 100644
--- a/ui/strings/translations/ui_strings_ms.xtb
+++ b/ui/strings/translations/ui_strings_ms.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Kembangkan pemberitahuan</translation>
 <translation id="2482878487686419369">Pemberitahuan</translation>
 <translation id="2497284189126895209">Semua Fail</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Penentukuran telah selesai</translation>
 <translation id="252373100621549798">Paparan Tidak Diketahui</translation>
 <translation id="2583543531130364912">Tentukur skrin sentuh anda</translation>
diff --git a/ui/strings/translations/ui_strings_nl.xtb b/ui/strings/translations/ui_strings_nl.xtb
index e1be5e1..285fd5a 100644
--- a/ui/strings/translations/ui_strings_nl.xtb
+++ b/ui/strings/translations/ui_strings_nl.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Melding uitvouwen</translation>
 <translation id="2482878487686419369">Meldingen</translation>
 <translation id="2497284189126895209">Alle bestanden</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibratie is voltooid</translation>
 <translation id="252373100621549798">Onbekend display</translation>
 <translation id="2583543531130364912">Je touchscreen kalibreren</translation>
diff --git a/ui/strings/translations/ui_strings_no.xtb b/ui/strings/translations/ui_strings_no.xtb
index 8e9296e5..f541649 100644
--- a/ui/strings/translations/ui_strings_no.xtb
+++ b/ui/strings/translations/ui_strings_no.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Vis varselet</translation>
 <translation id="2482878487686419369">Varsler</translation>
 <translation id="2497284189126895209">Alle filer</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibreringen er ferdig</translation>
 <translation id="252373100621549798">Ukjent skjerm</translation>
 <translation id="2583543531130364912">Kalibrer berøringsskjermen din</translation>
diff --git a/ui/strings/translations/ui_strings_pl.xtb b/ui/strings/translations/ui_strings_pl.xtb
index 0b6f20a4..468afdc 100644
--- a/ui/strings/translations/ui_strings_pl.xtb
+++ b/ui/strings/translations/ui_strings_pl.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Rozwiń powiadomienie</translation>
 <translation id="2482878487686419369">Powiadomienia</translation>
 <translation id="2497284189126895209">Wszystkie pliki</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibracja została ukończona</translation>
 <translation id="252373100621549798">Nieznany wyświetlacz</translation>
 <translation id="2583543531130364912">Skalibruj ekran dotykowy</translation>
diff --git a/ui/strings/translations/ui_strings_pt-BR.xtb b/ui/strings/translations/ui_strings_pt-BR.xtb
index 85997f0..8f820268 100644
--- a/ui/strings/translations/ui_strings_pt-BR.xtb
+++ b/ui/strings/translations/ui_strings_pt-BR.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Expandir notificação</translation>
 <translation id="2482878487686419369">Notificações</translation>
 <translation id="2497284189126895209">Todos os arquivos</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">A calibração está concluída</translation>
 <translation id="252373100621549798">Exibição desconhecida</translation>
 <translation id="2583543531130364912">Calibrar a touchscreen</translation>
diff --git a/ui/strings/translations/ui_strings_pt-PT.xtb b/ui/strings/translations/ui_strings_pt-PT.xtb
index c3983cb1..af9ab43 100644
--- a/ui/strings/translations/ui_strings_pt-PT.xtb
+++ b/ui/strings/translations/ui_strings_pt-PT.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Expandir notificação</translation>
 <translation id="2482878487686419369">Notificações</translation>
 <translation id="2497284189126895209">Todos os ficheiros</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">A calibração foi concluída</translation>
 <translation id="252373100621549798">Apresentação Desconhecida</translation>
 <translation id="2583543531130364912">Calibrar o ecrã tátil</translation>
diff --git a/ui/strings/translations/ui_strings_ro.xtb b/ui/strings/translations/ui_strings_ro.xtb
index 9ddbb6c..90f88852e 100644
--- a/ui/strings/translations/ui_strings_ro.xtb
+++ b/ui/strings/translations/ui_strings_ro.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Extinde notificarea</translation>
 <translation id="2482878487686419369">Notificări</translation>
 <translation id="2497284189126895209">Toate fișierele</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Calibrarea este finalizată</translation>
 <translation id="252373100621549798">Afișaj necunoscut</translation>
 <translation id="2583543531130364912">Calibrează ecranul tactil</translation>
diff --git a/ui/strings/translations/ui_strings_ru.xtb b/ui/strings/translations/ui_strings_ru.xtb
index af18a80..4bf4065 100644
--- a/ui/strings/translations/ui_strings_ru.xtb
+++ b/ui/strings/translations/ui_strings_ru.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Развернуть уведомление</translation>
 <translation id="2482878487686419369">Уведомления</translation>
 <translation id="2497284189126895209">Все файлы</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Калибровка завершена</translation>
 <translation id="252373100621549798">Неизвестный дисплей</translation>
 <translation id="2583543531130364912">Откалибруйте сенсорный экран</translation>
diff --git a/ui/strings/translations/ui_strings_sk.xtb b/ui/strings/translations/ui_strings_sk.xtb
index e30c16f..0332c8d 100644
--- a/ui/strings/translations/ui_strings_sk.xtb
+++ b/ui/strings/translations/ui_strings_sk.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Rozbaliť upozornenie</translation>
 <translation id="2482878487686419369">Upozornenia</translation>
 <translation id="2497284189126895209">Všetky súbory</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibrácia je dokončená</translation>
 <translation id="252373100621549798">Neznáma obrazovka</translation>
 <translation id="2583543531130364912">Skalibrujte dotykovú obrazovku</translation>
diff --git a/ui/strings/translations/ui_strings_sl.xtb b/ui/strings/translations/ui_strings_sl.xtb
index 144cb76..a081a97 100644
--- a/ui/strings/translations/ui_strings_sl.xtb
+++ b/ui/strings/translations/ui_strings_sl.xtb
@@ -36,6 +36,7 @@
 <translation id="24452542372838207">Razširi obvestilo</translation>
 <translation id="2482878487686419369">Obvestila</translation>
 <translation id="2497284189126895209">Vse datoteke</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Umerjanje je končano</translation>
 <translation id="252373100621549798">Neznan prikaz</translation>
 <translation id="2583543531130364912">Umerjanje zaslona na dotik</translation>
diff --git a/ui/strings/translations/ui_strings_sr.xtb b/ui/strings/translations/ui_strings_sr.xtb
index 1bc70a36..8b3e594 100644
--- a/ui/strings/translations/ui_strings_sr.xtb
+++ b/ui/strings/translations/ui_strings_sr.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Прошири обавештење</translation>
 <translation id="2482878487686419369">Обавештења</translation>
 <translation id="2497284189126895209">Све датотеке</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Калибрација је довршена</translation>
 <translation id="252373100621549798">Непознати приказ</translation>
 <translation id="2583543531130364912">Калибрација додирног екрана</translation>
diff --git a/ui/strings/translations/ui_strings_sv.xtb b/ui/strings/translations/ui_strings_sv.xtb
index 8abc2e0e..0191bb0 100644
--- a/ui/strings/translations/ui_strings_sv.xtb
+++ b/ui/strings/translations/ui_strings_sv.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Utöka avisering</translation>
 <translation id="2482878487686419369">Aviseringar</translation>
 <translation id="2497284189126895209">Alla filer</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibreringen är slutförd</translation>
 <translation id="252373100621549798">Okänd visning</translation>
 <translation id="2583543531130364912">Kalibrera pekskärmen</translation>
diff --git a/ui/strings/translations/ui_strings_sw.xtb b/ui/strings/translations/ui_strings_sw.xtb
index 86d157af..717808f6 100644
--- a/ui/strings/translations/ui_strings_sw.xtb
+++ b/ui/strings/translations/ui_strings_sw.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Panua arifa</translation>
 <translation id="2482878487686419369">Arifa</translation>
 <translation id="2497284189126895209">Faili zote</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Imemaliza kurekebisha usahihi</translation>
 <translation id="252373100621549798">Onyesho Lisilojulikana</translation>
 <translation id="2583543531130364912">Rekebisha usahihi wa skrini yako ya kugusa</translation>
diff --git a/ui/strings/translations/ui_strings_ta.xtb b/ui/strings/translations/ui_strings_ta.xtb
index 6122fb8..1ab0dc2 100644
--- a/ui/strings/translations/ui_strings_ta.xtb
+++ b/ui/strings/translations/ui_strings_ta.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">அறிவிப்பை விரிவாக்கு</translation>
 <translation id="2482878487686419369">அறிவிப்புகள்</translation>
 <translation id="2497284189126895209">அனைத்து கோப்புகளும்</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">அளவுத்திருத்தம் முடிந்தது</translation>
 <translation id="252373100621549798">அறியாதது</translation>
 <translation id="2583543531130364912">டச்ஸ்கிரீனை அளவுத்திருத்தம் செய்யவும்</translation>
diff --git a/ui/strings/translations/ui_strings_te.xtb b/ui/strings/translations/ui_strings_te.xtb
index 22d578a..49b116e 100644
--- a/ui/strings/translations/ui_strings_te.xtb
+++ b/ui/strings/translations/ui_strings_te.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">నోటిఫికేషన్‌ని విస్తరించు</translation>
 <translation id="2482878487686419369">ప్రకటనలు</translation>
 <translation id="2497284189126895209">మొత్తం ఫైళ్లు</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">క్రమాంకనం పూర్తయింది</translation>
 <translation id="252373100621549798">తెలియని ప్రదర్శన</translation>
 <translation id="2583543531130364912">మీ టచ్‌స్క్రీన్‌ను క్రమాంకనం చేయండి</translation>
diff --git a/ui/strings/translations/ui_strings_th.xtb b/ui/strings/translations/ui_strings_th.xtb
index 399f78ce..f545342 100644
--- a/ui/strings/translations/ui_strings_th.xtb
+++ b/ui/strings/translations/ui_strings_th.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">ขยายการแจ้งเตือน</translation>
 <translation id="2482878487686419369">การแจ้งเตือน</translation>
 <translation id="2497284189126895209">ไฟล์ทั้งหมด</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">การปรับเทียบเสร็จสมบูรณ์</translation>
 <translation id="252373100621549798">หน้าจอที่ไม่รู้จัก</translation>
 <translation id="2583543531130364912">ปรับเทียบหน้าจอสัมผัส</translation>
diff --git a/ui/strings/translations/ui_strings_tr.xtb b/ui/strings/translations/ui_strings_tr.xtb
index be6135c76..bbbcf201 100644
--- a/ui/strings/translations/ui_strings_tr.xtb
+++ b/ui/strings/translations/ui_strings_tr.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Bildirimi genişlet</translation>
 <translation id="2482878487686419369">Bildirimler</translation>
 <translation id="2497284189126895209">Tüm Dosyalar</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Kalibrasyon tamamlandı</translation>
 <translation id="252373100621549798">Bilinmeyen Görünüm</translation>
 <translation id="2583543531130364912">Dokunmatik ekranınızı ayarlayın</translation>
diff --git a/ui/strings/translations/ui_strings_uk.xtb b/ui/strings/translations/ui_strings_uk.xtb
index 5321f0c..e803b08 100644
--- a/ui/strings/translations/ui_strings_uk.xtb
+++ b/ui/strings/translations/ui_strings_uk.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Розгорнути сповіщення</translation>
 <translation id="2482878487686419369">Сповіщення</translation>
 <translation id="2497284189126895209">Усі файли</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Калібрування завершено</translation>
 <translation id="252373100621549798">Невідомий дисплей</translation>
 <translation id="2583543531130364912">Відкалібруйте сенсорний екран</translation>
diff --git a/ui/strings/translations/ui_strings_vi.xtb b/ui/strings/translations/ui_strings_vi.xtb
index cd9d43e4..4123c2e 100644
--- a/ui/strings/translations/ui_strings_vi.xtb
+++ b/ui/strings/translations/ui_strings_vi.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">Mở rộng thông báo</translation>
 <translation id="2482878487686419369">Thông báo</translation>
 <translation id="2497284189126895209">Tất cả Tệp tin</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">Hiệu chỉnh xong</translation>
 <translation id="252373100621549798">Màn hình không xác định</translation>
 <translation id="2583543531130364912">Hiệu chỉnh màn hình cảm ứng</translation>
diff --git a/ui/strings/translations/ui_strings_zh-CN.xtb b/ui/strings/translations/ui_strings_zh-CN.xtb
index 43ef294..2f0e916a 100644
--- a/ui/strings/translations/ui_strings_zh-CN.xtb
+++ b/ui/strings/translations/ui_strings_zh-CN.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">展开通知</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2497284189126895209">所有文件</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">已完成校准</translation>
 <translation id="252373100621549798">未知展示广告</translation>
 <translation id="2583543531130364912">校准您的触摸屏</translation>
diff --git a/ui/strings/translations/ui_strings_zh-TW.xtb b/ui/strings/translations/ui_strings_zh-TW.xtb
index c3059573..9b13503 100644
--- a/ui/strings/translations/ui_strings_zh-TW.xtb
+++ b/ui/strings/translations/ui_strings_zh-TW.xtb
@@ -40,6 +40,7 @@
 <translation id="24452542372838207">展開通知</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2497284189126895209">所有檔案</translation>
+<translation id="2515586267016047495">Alt</translation>
 <translation id="2522350507219695259">校正完成</translation>
 <translation id="252373100621549798">顯示器不明</translation>
 <translation id="2583543531130364912">校正觸控螢幕</translation>
diff --git a/ui/strings/ui_strings.grd b/ui/strings/ui_strings.grd
index 35bd5f0..dd528bf 100644
--- a/ui/strings/ui_strings.grd
+++ b/ui/strings/ui_strings.grd
@@ -803,6 +803,9 @@
       <message name="IDS_APP_LIST_PAGE_SWITCHER" desc="Tooltip for page switcher for each page in fullscreen view which shows all apps.">
         Page <ph name="selected_page">$1<ex>1</ex></ph> of <ph name="total_page_num">$2<ex>3</ex></ph>
       </message>
+      <message name="IDS_APP_LIST_CONTINUE_READING_ACCESSIBILE_NAME" desc="The spoken feedback text for the suggestion chip of continue reading.">
+        Continue reading from your mobile device <ph name="title">$1<ex>Title</ex></ph>
+      </message>
       <message name="IDS_APP_ACCESSIBILITY_STAR_RATING_ARC" desc="Accessibility text for the star rating of a Play Store app.">
         Star rating <ph name="RATING_SCORE">$1<ex>5.0</ex></ph>
       </message>
diff --git a/ui/views/cocoa/bridged_content_view.h b/ui/views/cocoa/bridged_content_view.h
index b3fb167..c8a432ac 100644
--- a/ui/views/cocoa/bridged_content_view.h
+++ b/ui/views/cocoa/bridged_content_view.h
@@ -16,7 +16,7 @@
 }
 
 namespace views {
-class BridgedNativeWidgetHost;
+class BridgedNativeWidget;
 class View;
 }
 
@@ -28,7 +28,7 @@
                                                 NSDraggingSource> {
  @private
   // Weak, reset by clearView.
-  views::BridgedNativeWidgetHost* host_;
+  views::BridgedNativeWidget* bridge_;
 
   // Weak. The hosted RootView, owned by hostedView_->GetWidget().
   // TODO(ccameron): Remove this member.
@@ -63,8 +63,8 @@
 @property(assign, nonatomic) BOOL drawMenuBackgroundForBlur;
 
 // Initialize the NSView -> views::View bridge. |viewToHost| must be non-NULL.
-- (id)initWithHost:(views::BridgedNativeWidgetHost*)host
-              view:(views::View*)viewToHost;
+- (id)initWithBridge:(views::BridgedNativeWidget*)bridge
+                view:(views::View*)viewToHost;
 
 // Clear the hosted view. For example, if it is about to be destroyed.
 - (void)clearView;
diff --git a/ui/views/cocoa/bridged_content_view.mm b/ui/views/cocoa/bridged_content_view.mm
index 3de74e3..4a37b6e 100644
--- a/ui/views/cocoa/bridged_content_view.mm
+++ b/ui/views/cocoa/bridged_content_view.mm
@@ -276,8 +276,8 @@
 @synthesize textInputClient = textInputClient_;
 @synthesize drawMenuBackgroundForBlur = drawMenuBackgroundForBlur_;
 
-- (id)initWithHost:(views::BridgedNativeWidgetHost*)host
-              view:(views::View*)viewToHost {
+- (id)initWithBridge:(views::BridgedNativeWidget*)bridge
+                view:(views::View*)viewToHost {
   DCHECK(viewToHost);
   gfx::Rect bounds = viewToHost->bounds();
   // To keep things simple, assume the origin is (0, 0) until there exists a use
@@ -285,7 +285,7 @@
   DCHECK(bounds.origin().IsOrigin());
   NSRect initialFrame = NSMakeRect(0, 0, bounds.width(), bounds.height());
   if ((self = [super initWithFrame:initialFrame])) {
-    host_ = host;
+    bridge_ = bridge;
     hostedView_ = viewToHost;
 
     // Apple's documentation says that NSTrackingActiveAlways is incompatible
@@ -327,7 +327,7 @@
 
 - (void)clearView {
   [self setTextInputClient:nullptr];
-  host_ = nullptr;
+  bridge_ = nullptr;
   hostedView_ = nullptr;
   [[NSDistributedNotificationCenter defaultCenter] removeObserver:self];
   [cursorTrackingArea_.get() clearOwner];
@@ -400,14 +400,15 @@
 - (NSView*)hitTest:(NSPoint)point {
   gfx::Point flippedPoint(point.x, NSHeight(self.superview.bounds) - point.y);
   bool isDraggableBackground = false;
-  host_->GetIsDraggableBackgroundAt(flippedPoint, &isDraggableBackground);
+  bridge_->host()->GetIsDraggableBackgroundAt(flippedPoint,
+                                              &isDraggableBackground);
   if (isDraggableBackground)
     return nil;
   return [super hitTest:point];
 }
 
 - (void)processCapturedMouseEvent:(NSEvent*)theEvent {
-  if (!host_)
+  if (!bridge_)
     return;
 
   NSWindow* source = [theEvent window];
@@ -433,19 +434,19 @@
   if (isScrollEvent) {
     ui::ScrollEvent event(theEvent);
     event.set_location(event_location);
-    host_->OnScrollEvent(event);
+    bridge_->host()->OnScrollEvent(event);
   } else {
     ui::MouseEvent event(theEvent);
     event.set_location(event_location);
-    host_->OnMouseEvent(event);
+    bridge_->host()->OnMouseEvent(event);
   }
 }
 
 - (void)updateTooltipIfRequiredAt:(const gfx::Point&)locationInContent {
-  DCHECK(host_);
+  DCHECK(bridge_);
   base::string16 newTooltipText;
 
-  host_->GetTooltipTextAt(locationInContent, &newTooltipText);
+  bridge_->host()->GetTooltipTextAt(locationInContent, &newTooltipText);
   if (newTooltipText != lastTooltipText_) {
     std::swap(newTooltipText, lastTooltipText_);
     [self setToolTipAtMousePoint:base::SysUTF16ToNSString(lastTooltipText_)];
@@ -453,9 +454,9 @@
 }
 
 - (void)updateFullKeyboardAccess {
-  if (!host_)
+  if (!bridge_)
     return;
-  host_->SetKeyboardAccessible([NSApp isFullKeyboardAccessEnabled]);
+  bridge_->host()->SetKeyboardAccessible([NSApp isFullKeyboardAccessEnabled]);
 }
 
 // BridgedContentView private implementation.
@@ -625,9 +626,7 @@
 }
 
 - (views::DragDropClientMac*)dragDropClient {
-  views::BridgedNativeWidget* bridge =
-      views::NativeWidgetMac::GetBridgeForNativeWindow([self window]);
-  return bridge ? bridge->drag_drop_client() : nullptr;
+  return bridge_ ? bridge_->drag_drop_client() : nullptr;
 }
 
 - (void)undo:(id)sender {
@@ -682,7 +681,7 @@
 // Translates the location of |theEvent| to toolkit-views coordinates and passes
 // the event to NativeWidgetMac for handling.
 - (void)mouseEvent:(NSEvent*)theEvent {
-  if (!host_)
+  if (!bridge_)
     return;
 
   DCHECK([theEvent type] != NSScrollWheel);
@@ -692,7 +691,7 @@
   // Aura updates tooltips with the help of aura::Window::AddPreTargetHandler().
   // Mac hooks in here.
   [self updateTooltipIfRequiredAt:event.location()];
-  host_->OnMouseEvent(event);
+  bridge_->host()->OnMouseEvent(event);
 }
 
 - (void)forceTouchEvent:(NSEvent*)theEvent {
@@ -712,15 +711,15 @@
   if ([[self window] firstResponder] != self)
     return NO;
   BOOL result = [super becomeFirstResponder];
-  if (result && host_)
-    host_->SetIsFirstResponder(true);
+  if (result && bridge_)
+    bridge_->host()->SetIsFirstResponder(true);
   return result;
 }
 
 - (BOOL)resignFirstResponder {
   BOOL result = [super resignFirstResponder];
-  if (result && host_)
-    host_->SetIsFirstResponder(false);
+  if (result && bridge_)
+    bridge_->host()->SetIsFirstResponder(false);
   return result;
 }
 
@@ -739,13 +738,21 @@
   // window containing it, since AppKit requires a titlebar to give frameless
   // windows correct shadows and rounded corners.
   NSWindow* window = [self window];
-  if (window && [window contentView] == self)
+  if (window && [window contentView] == self) {
     newSize = [window contentRectForFrameRect:[window frame]].size;
+    // Ensure that the window geometry be updated on the host side before the
+    // view size is updated.
+    // TODO(ccameron): Consider updating the view size and window size and
+    // position together in UpdateWindowGeometry.
+    // https://crbug.com/875776, https://crbug.com/875731
+    if (bridge_)
+      bridge_->UpdateWindowGeometry();
+  }
 
   [super setFrameSize:newSize];
-  if (!host_)
-    return;
-  host_->SetViewSize(gfx::Size(newSize.width, newSize.height));
+
+  if (bridge_)
+    bridge_->host()->SetViewSize(gfx::Size(newSize.width, newSize.height));
 }
 
 - (BOOL)isOpaque {
@@ -849,7 +856,7 @@
 }
 
 - (void)scrollWheel:(NSEvent*)theEvent {
-  if (!host_)
+  if (!bridge_)
     return;
 
   ui::ScrollEvent event(theEvent);
@@ -858,13 +865,13 @@
   // Aura updates tooltips with the help of aura::Window::AddPreTargetHandler().
   // Mac hooks in here.
   [self updateTooltipIfRequiredAt:event.location()];
-  host_->OnScrollEvent(event);
+  bridge_->host()->OnScrollEvent(event);
 }
 
 // Called when we get a three-finger swipe, and they're enabled in System
 // Preferences.
 - (void)swipeWithEvent:(NSEvent*)event {
-  if (!host_)
+  if (!bridge_)
     return;
 
   // themblsha: In my testing all three-finger swipes send only a single event
@@ -885,11 +892,11 @@
   ui::GestureEvent gestureEvent(location.x(), location.y(),
                                 ui::EventFlagsFromNative(event),
                                 ui::EventTimeFromNative(event), swipeDetails);
-  host_->OnGestureEvent(gestureEvent);
+  bridge_->host()->OnGestureEvent(gestureEvent);
 }
 
 - (void)quickLookWithEvent:(NSEvent*)theEvent {
-  if (!host_)
+  if (!bridge_)
     return;
 
   const gfx::Point locationInContent =
@@ -898,8 +905,8 @@
   bool foundWord = false;
   gfx::DecoratedText decoratedWord;
   gfx::Point baselinePoint;
-  host_->GetWordAt(locationInContent, &foundWord, &decoratedWord,
-                   &baselinePoint);
+  bridge_->host()->GetWordAt(locationInContent, &foundWord, &decoratedWord,
+                             &baselinePoint);
   if (!foundWord)
     return;
 
diff --git a/ui/views/cocoa/bridged_native_widget.h b/ui/views/cocoa/bridged_native_widget.h
index 47628d1..4a3b3fa 100644
--- a/ui/views/cocoa/bridged_native_widget.h
+++ b/ui/views/cocoa/bridged_native_widget.h
@@ -204,6 +204,7 @@
 
   NativeWidgetMac* native_widget_mac() { return native_widget_mac_; }
   BridgedContentView* ns_view() { return bridged_view_; }
+  BridgedNativeWidgetHost* host() { return host_; }
   NSWindow* ns_window();
 
   TooltipManager* tooltip_manager() { return tooltip_manager_.get(); }
@@ -266,6 +267,10 @@
   // of TextInputClient out of BridgedContentView.
   void SetTextInputClient(ui::TextInputClient* text_input_client);
 
+  // Compute the window and content size, and forward them to |host_|. This will
+  // update widget and compositor size.
+  void UpdateWindowGeometry();
+
  private:
   friend class test::BridgedNativeWidgetTestApi;
 
@@ -278,10 +283,6 @@
   // Installs the NSView for hosting the composited layer.
   void AddCompositorSuperview();
 
-  // Compute the window and content size, and forward them to |host_|. This will
-  // update widget and compositor size.
-  void UpdateWindowGeometry();
-
   // Query the display properties of the monitor that |window_| is on, and
   // forward them to |host_|.
   void UpdateWindowDisplay();
diff --git a/ui/views/cocoa/bridged_native_widget.mm b/ui/views/cocoa/bridged_native_widget.mm
index a78e208..9f18190 100644
--- a/ui/views/cocoa/bridged_native_widget.mm
+++ b/ui/views/cocoa/bridged_native_widget.mm
@@ -393,7 +393,7 @@
 
   if (view) {
     bridged_view_.reset(
-        [[BridgedContentView alloc] initWithHost:host_ view:view]);
+        [[BridgedContentView alloc] initWithBridge:this view:view]);
     drag_drop_client_.reset(new DragDropClientMac(this, view));
 
     // Objective C initializers can return nil. However, if |view| is non-NULL
diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc
index 7fb17a38..54a3129 100644
--- a/ui/views/controls/menu/menu_controller.cc
+++ b/ui/views/controls/menu/menu_controller.cc
@@ -585,7 +585,13 @@
 
     // Empty menu items are always handled by the menu controller.
     if (!view || view->id() != MenuItemView::kEmptyMenuItemViewID) {
+      base::WeakPtr<MenuController> this_ref = AsWeakPtr();
       bool processed = forward_to_root->ProcessMousePressed(event_for_root);
+      // This object may be destroyed as a result of a mouse press event (some
+      // item may close the menu).
+      if (!this_ref)
+        return true;
+
       // If the event was processed, the root view becomes our current mouse
       // handler...
       if (processed && !current_mouse_event_target_) {
@@ -866,6 +872,10 @@
 }
 
 void MenuController::OnTouchEvent(SubmenuView* source, ui::TouchEvent* event) {
+  // Bail if owner wants the current active gesture sequence.
+  if (owner_ && send_gesture_events_to_owner())
+    return;
+
   if (event->type() == ui::ET_TOUCH_PRESSED) {
     MenuPart part = GetMenuPart(source, event->location());
     if (part.type == MenuPart::NONE) {
diff --git a/ui/views/controls/menu/menu_controller_unittest.cc b/ui/views/controls/menu/menu_controller_unittest.cc
index 139d70c..0e1c140 100644
--- a/ui/views/controls/menu/menu_controller_unittest.cc
+++ b/ui/views/controls/menu/menu_controller_unittest.cc
@@ -240,6 +240,27 @@
     release_ref_callback_.Run();
 }
 
+// View which cancels the menu it belongs to on mouse press.
+class CancelMenuOnMousePressView : public View {
+ public:
+  explicit CancelMenuOnMousePressView(MenuController* controller)
+      : controller_(controller) {}
+
+  // View:
+  bool OnMousePressed(const ui::MouseEvent& event) override {
+    controller_->CancelAll();
+    return true;
+  }
+
+  // This is needed to prevent the view from being "squashed" to zero height
+  // when the menu which owns it is shown. In such state the logic which
+  // determines if the menu contains the mouse press location doesn't work.
+  gfx::Size CalculatePreferredSize() const override { return size(); }
+
+ private:
+  MenuController* controller_;
+};
+
 }  // namespace
 
 class TestMenuItemViewShown : public MenuItemView {
@@ -1167,6 +1188,8 @@
   EXPECT_EQ(1, nested_delegate->on_menu_closed_called());
 }
 
+// Tests that setting send_gesture_events_to_owner flag forwards gesture events
+// to owner and the forwarding stops when the current gesture sequence ends.
 TEST_F(MenuControllerTest, PreserveGestureForOwner) {
   MenuController* controller = menu_controller();
   MenuItemView* item = menu_item();
@@ -1203,6 +1226,40 @@
   EXPECT_EQ(CountOwnerOnGestureEvent(), 2);
 }
 
+// Tests that touch outside menu does not closes the menu when forwarding
+// gesture events to owner.
+TEST_F(MenuControllerTest, NoTouchCloseWhenSendingGesturesToOwner) {
+  MenuController* controller = menu_controller();
+
+  // Owner wants the gesture events.
+  controller->set_send_gesture_events_to_owner(true);
+
+  // Show a sub menu and touch outside of it.
+  MenuItemView* item = menu_item();
+  SubmenuView* sub_menu = item->GetSubmenu();
+  sub_menu->ShowAt(owner(), item->bounds(), false);
+  gfx::Point location(sub_menu->bounds().bottom_right());
+  location.Offset(1, 1);
+  ui::TouchEvent touch_event(
+      ui::ET_TOUCH_PRESSED, location, ui::EventTimeForNow(),
+      ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_TOUCH, 0));
+  controller->OnTouchEvent(sub_menu, &touch_event);
+
+  // Menu should still be visible.
+  EXPECT_TRUE(IsShowing());
+
+  // The current gesture sequence ends.
+  ui::GestureEvent gesture_end_event(
+      location.x(), location.y(), 0, ui::EventTimeForNow(),
+      ui::GestureEventDetails(ui::ET_GESTURE_END));
+  controller->OnGestureEvent(sub_menu, &gesture_end_event);
+
+  // Touch outside again and menu should be closed.
+  controller->OnTouchEvent(sub_menu, &touch_event);
+  EXPECT_FALSE(IsShowing());
+  EXPECT_EQ(MenuController::EXIT_ALL, controller->exit_type());
+}
+
 // Tests that a nested menu does not crash when trying to repost events that
 // occur outside of the bounds of the menu. Instead a proper shutdown should
 // occur.
@@ -1813,5 +1870,35 @@
 
 #endif  // defined(USE_AURA)
 
+// Tests that having the MenuController deleted during OnMousePressed does not
+// cause a crash. ASAN bots should not detect use-after-free in MenuController.
+TEST_F(MenuControllerTest, NoUseAfterFreeWhenMenuCanceledOnMousePress) {
+  MenuController* controller = menu_controller();
+  DestroyMenuControllerOnMenuClosed(menu_controller_delegate());
+
+  // Creating own MenuItem for a minimal test environment.
+  auto item = std::make_unique<TestMenuItemViewNotShown>(menu_delegate());
+  item->SetController(controller);
+  item->SetBounds(0, 0, 50, 50);
+
+  SubmenuView* sub_menu = item->CreateSubmenu();
+  auto* canceling_view = new CancelMenuOnMousePressView(controller);
+  sub_menu->AddChildView(canceling_view);
+  canceling_view->SetBoundsRect(item->bounds());
+
+  controller->Run(owner(), nullptr, item.get(), item->bounds(),
+                  MENU_ANCHOR_TOPLEFT, false, false);
+  sub_menu->ShowAt(owner(), item->bounds(), true);
+
+  // Simulate a mouse press in the middle of the |closing_widget|.
+  gfx::Point location(canceling_view->bounds().CenterPoint());
+  ui::MouseEvent event(ui::ET_MOUSE_PRESSED, location, location,
+                       ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0);
+  EXPECT_TRUE(controller->OnMousePressed(sub_menu, event));
+
+  // Close to remove observers before test TearDown.
+  sub_menu->Close();
+}
+
 }  // namespace test
 }  // namespace views
diff --git a/ui/views/linux_ui/linux_ui.h b/ui/views/linux_ui/linux_ui.h
index a17a999..c1f14d5 100644
--- a/ui/views/linux_ui/linux_ui.h
+++ b/ui/views/linux_ui/linux_ui.h
@@ -22,6 +22,8 @@
 // The main entrypoint into Linux toolkit specific code. GTK code should only
 // be executed behind this interface.
 
+class PrefService;
+
 namespace aura {
 class Window;
 }
@@ -101,7 +103,9 @@
 
   virtual void Initialize() = 0;
   virtual bool GetTint(int id, color_utils::HSL* tint) const = 0;
-  virtual bool GetColor(int id, SkColor* color) const = 0;
+  virtual bool GetColor(int id,
+                        SkColor* color,
+                        PrefService* pref_service) const = 0;
 
   // Returns the preferences that we pass to WebKit.
   virtual SkColor GetFocusRingColor() const = 0;
diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
index 7aac4f9..cbd52e9 100644
--- a/ui/views/widget/widget.h
+++ b/ui/views/widget/widget.h
@@ -886,7 +886,7 @@
 
   internal::NativeWidgetPrivate* native_widget_;
 
-  base::ObserverList<WidgetObserver>::Unchecked observers_;
+  base::ObserverList<WidgetObserver> observers_;
 
   base::ObserverList<WidgetRemovalsObserver>::Unchecked removals_observers_;
 
diff --git a/ui/views/widget/widget_observer.h b/ui/views/widget/widget_observer.h
index fc13afa..aa3e17f2 100644
--- a/ui/views/widget/widget_observer.h
+++ b/ui/views/widget/widget_observer.h
@@ -5,6 +5,7 @@
 #ifndef UI_VIEWS_WIDGET_WIDGET_OBSERVER_H_
 #define UI_VIEWS_WIDGET_WIDGET_OBSERVER_H_
 
+#include "base/observer_list_types.h"
 #include "ui/views/views_export.h"
 
 namespace gfx {
@@ -16,7 +17,7 @@
 class Widget;
 
 // Observers can listen to various events on the Widgets.
-class VIEWS_EXPORT WidgetObserver {
+class VIEWS_EXPORT WidgetObserver : public base::CheckedObserver {
  public:
   // The closing notification is sent immediately in response to (i.e. in the
   // same call stack as) a request to close the Widget (via Close() or
@@ -46,7 +47,7 @@
                                      const gfx::Rect& new_bounds) {}
 
  protected:
-  virtual ~WidgetObserver() {}
+  ~WidgetObserver() override {}
 };
 
 }  // namespace views
diff --git a/webrunner/BUILD.gn b/webrunner/BUILD.gn
index 50f08d8..da50639 100644
--- a/webrunner/BUILD.gn
+++ b/webrunner/BUILD.gn
@@ -190,8 +190,7 @@
 
 test("webrunner_unittests") {
   sources = [
-    # TODO(kmarshall): Uncomment this when the tests are fixed.
-    # "service/context_provider_impl_unittest.cc",
+    "service/context_provider_impl_unittest.cc",
   ]
   deps = [
     ":fidl",
diff --git a/webrunner/service/context_provider_impl.cc b/webrunner/service/context_provider_impl.cc
index 785ca5f2..d96fa68 100644
--- a/webrunner/service/context_provider_impl.cc
+++ b/webrunner/service/context_provider_impl.cc
@@ -5,6 +5,7 @@
 #include "webrunner/service/context_provider_impl.h"
 
 #include <fuchsia/sys/cpp/fidl.h>
+#include <lib/async/default.h>
 #include <lib/zx/job.h>
 #include <stdio.h>
 #include <zircon/processargs.h>
@@ -26,20 +27,36 @@
 namespace {
 
 // Relaunches the current executable as a Context process.
-base::Process LaunchContextProcess(base::CommandLine launch_command,
+base::Process LaunchContextProcess(const base::CommandLine& launch_command,
                                    const base::LaunchOptions& launch_options) {
+  base::CommandLine launch_command_modified = launch_command;
+
   // TODO(crbug.com/867052): Remove this flag when GPU process works on Fuchsia.
-  launch_command.AppendSwitch(switches::kDisableGpu);
-  return base::LaunchProcess(launch_command, launch_options);
+  launch_command_modified.AppendSwitch(switches::kDisableGpu);
+  return base::LaunchProcess(launch_command_modified, launch_options);
 }
 
 }  // namespace
 
-ContextProviderImpl::ContextProviderImpl()
-    : launch_(base::BindRepeating(&LaunchContextProcess)) {}
+ContextProviderImpl::ContextProviderImpl() : ContextProviderImpl(false) {}
+
+ContextProviderImpl::ContextProviderImpl(bool use_shared_tmp)
+    : launch_(base::BindRepeating(&LaunchContextProcess)),
+      use_shared_tmp_(use_shared_tmp) {}
 
 ContextProviderImpl::~ContextProviderImpl() = default;
 
+// static
+std::unique_ptr<ContextProviderImpl> ContextProviderImpl::CreateForTest() {
+  // Bind the unique_ptr in a two step process.
+  // std::make_unique<> doesn't work well with private constructors,
+  // and the unique_ptr(raw_ptr*) constructor format isn't permitted as per
+  // PRESUBMIT.py policy.
+  std::unique_ptr<ContextProviderImpl> provider;
+  provider.reset(new ContextProviderImpl(true));
+  return provider;
+}
+
 void ContextProviderImpl::SetLaunchCallbackForTests(
     const LaunchContextProcessCallback& launch) {
   launch_ = launch;
@@ -57,9 +74,11 @@
   // Clone job because the context needs to be able to spawn child processes.
   launch_options.spawn_flags = FDIO_SPAWN_CLONE_JOB;
 
-  // Clone stderr to get logs in system debug log.
+  // Clone stdout/stderr to get logs in system debug log.
   launch_options.fds_to_remap.push_back(
       std::make_pair(STDERR_FILENO, STDERR_FILENO));
+  launch_options.fds_to_remap.push_back(
+      std::make_pair(STDOUT_FILENO, STDOUT_FILENO));
 
   // Context and child processes need access to the read-only package files.
   launch_options.paths_to_clone.push_back(base::FilePath("/pkg"));
@@ -67,6 +86,9 @@
   // Context needs access to the read-only SSL root certificates list.
   launch_options.paths_to_clone.push_back(base::FilePath("/config/ssl"));
 
+  if (use_shared_tmp_)
+    launch_options.paths_to_clone.push_back(base::FilePath("/tmp"));
+
   // Transfer the ContextRequest handle to a well-known location in the child
   // process' handle table.
   zx::channel context_handle(context_request.TakeChannel());
@@ -91,8 +113,10 @@
   zx::job job;
   zx_status_t status = zx::job::create(*base::GetDefaultJob(), 0, &job);
   ZX_CHECK(status == ZX_OK, status) << "zx_job_create";
+  launch_options.job_handle = job.get();
 
   ignore_result(launch_.Run(std::move(launch_command), launch_options));
+
   ignore_result(context_handle.release());
   ignore_result(job.release());
 }
diff --git a/webrunner/service/context_provider_impl.h b/webrunner/service/context_provider_impl.h
index 7629f78d..6efb9ce 100644
--- a/webrunner/service/context_provider_impl.h
+++ b/webrunner/service/context_provider_impl.h
@@ -6,6 +6,7 @@
 #define WEBRUNNER_SERVICE_CONTEXT_PROVIDER_IMPL_H_
 
 #include <lib/fidl/cpp/binding_set.h>
+#include <memory>
 
 #include "base/callback.h"
 #include "base/macros.h"
@@ -26,6 +27,11 @@
   ContextProviderImpl();
   ~ContextProviderImpl() override;
 
+  // Creates a ContextProviderImpl that shares its /tmp directory with its child
+  // processes. This is useful for GTest processes, which depend on a shared
+  // tmpdir for storing startup flags and retrieving test result files.
+  static std::unique_ptr<ContextProviderImpl> CreateForTest();
+
   // Binds |this| object instance to |request|.
   // The service will persist and continue to serve other channels in the event
   // that a bound channel is dropped.
@@ -38,11 +44,13 @@
 
  private:
   using LaunchContextProcessCallback = base::RepeatingCallback<base::Process(
-      base::CommandLine command,
+      const base::CommandLine& command,
       const base::LaunchOptions& options)>;
 
   friend class ContextProviderImplTest;
 
+  explicit ContextProviderImpl(bool use_shared_tmp);
+
   // Overrides the default child process launching logic to call |launch|
   // instead.
   void SetLaunchCallbackForTests(const LaunchContextProcessCallback& launch);
@@ -50,6 +58,9 @@
   // Spawns a Context child process.
   LaunchContextProcessCallback launch_;
 
+  // If set, then the ContextProvider will share /tmp with its child processes.
+  bool use_shared_tmp_ = true;
+
   fidl::BindingSet<chromium::web::ContextProvider> bindings_;
 
   DISALLOW_COPY_AND_ASSIGN(ContextProviderImpl);
diff --git a/webrunner/service/context_provider_impl_unittest.cc b/webrunner/service/context_provider_impl_unittest.cc
index 635517d..b472ead00 100644
--- a/webrunner/service/context_provider_impl_unittest.cc
+++ b/webrunner/service/context_provider_impl_unittest.cc
@@ -8,6 +8,7 @@
 #include <lib/fidl/cpp/binding.h>
 #include <zircon/processargs.h>
 
+#include <functional>
 #include <utility>
 #include <vector>
 
@@ -19,6 +20,8 @@
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/fuchsia/file_utils.h"
+#include "base/fuchsia/fuchsia_logging.h"
+#include "base/fuchsia/service_directory.h"
 #include "base/message_loop/message_loop.h"
 #include "base/test/multiprocess_test.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -30,42 +33,61 @@
 
 constexpr char kTestDataFileIn[] = "DataFileIn";
 constexpr char kTestDataFileOut[] = "DataFileOut";
+constexpr char kUrl[] = "chrome://:emorhc";
+constexpr char kTitle[] = "Palindrome";
 
-class TestFrameObserver : public chromium::web::FrameObserver {
+// A fake Frame implementation that manages its own lifetime.
+class FakeFrame : public chromium::web::Frame {
  public:
-  void OnNavigationStateChanged(
-      chromium::web::NavigationStateChangeDetails change,
-      OnNavigationStateChangedCallback callback) override {
-    last_change_ = change;
-    if (change_callback_)
-      std::move(change_callback_).Run();
-    callback();
+  explicit FakeFrame(fidl::InterfaceRequest<chromium::web::Frame> request)
+      : binding_(this, std::move(request)) {
+    binding_.set_error_handler([this]() { delete this; });
   }
 
-  void SetNextChangeCallback(base::OnceClosure callback) {
-    change_callback_ = std::move(callback);
+  ~FakeFrame() override = default;
+
+  fidl::Binding<chromium::web::Frame>& binding() { return binding_; }
+
+  void CreateView(
+      fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner> view_owner,
+      fidl::InterfaceRequest<fuchsia::sys::ServiceProvider> services) override {
   }
 
-  chromium::web::NavigationStateChangeDetails last_change() {
-    return last_change_;
+  void GetNavigationController(
+      fidl::InterfaceRequest<chromium::web::NavigationController> controller)
+      override {}
+
+ private:
+  fidl::Binding<chromium::web::Frame> binding_;
+
+  DISALLOW_COPY_AND_ASSIGN(FakeFrame);
+};
+
+// An implementation of Context that creates and binds FakeFrames.
+class FakeContext : public chromium::web::Context {
+ public:
+  using CreateFrameCallback = base::RepeatingCallback<void(FakeFrame*)>;
+
+  FakeContext() = default;
+  ~FakeContext() override = default;
+
+  // Sets a callback that is invoked whenever new Frames are bound.
+  void set_on_create_frame_callback(CreateFrameCallback callback) {
+    on_create_frame_callback_ = callback;
+  }
+
+  void CreateFrame(
+      fidl::InterfaceRequest<chromium::web::Frame> frame_request) override {
+    FakeFrame* new_frame = new FakeFrame(std::move(frame_request));
+    on_create_frame_callback_.Run(new_frame);
+
+    // |new_frame| owns itself, so we intentionally leak the pointer.
   }
 
  private:
-  chromium::web::NavigationStateChangeDetails last_change_ = {};
-  base::OnceClosure change_callback_;
-};
+  CreateFrameCallback on_create_frame_callback_;
 
-class FakeContext : public chromium::web::Context {
- public:
-  void CreateFrame(
-      fidl::InterfaceHandle<chromium::web::FrameObserver> observer,
-      fidl::InterfaceRequest<chromium::web::Frame> frame) override {
-    chromium::web::NavigationStateChangeDetails details;
-    details.url_changed = true;
-    details.entry.url = "";
-    details.entry.title = "";
-    observer.Bind()->OnNavigationStateChanged(details, []() {});
-  }
+  DISALLOW_COPY_AND_ASSIGN(FakeContext);
 };
 
 MULTIPROCESS_TEST_MAIN(SpawnContextServer) {
@@ -79,18 +101,29 @@
     EXPECT_EQ(base::WriteFile(out_file, nullptr, 0), 0);
   }
 
-  FakeContext fake_context;
-  zx::channel context_handle{zx_take_startup_handle(kContextRequestHandleId)};
+  zx::channel context_handle(zx_take_startup_handle(kContextRequestHandleId));
   CHECK(context_handle);
-  fidl::Binding<chromium::web::Context> binding(&fake_context,
-                                                std::move(context_handle));
 
-  base::RunLoop run_loop;
+  FakeContext context;
+  fidl::Binding<chromium::web::Context> context_binding(
+      &context, fidl::InterfaceRequest<chromium::web::Context>(
+                    std::move(context_handle)));
+
+  // When a Frame is bound, immediately broadcast a navigation event to its
+  // event listeners.
+  context.set_on_create_frame_callback(
+      base::BindRepeating([](FakeFrame* frame) {
+        chromium::web::NavigationStateChangeDetails details;
+        details.url = kUrl;
+        details.title = kTitle;
+        frame->binding().events().OnNavigationStateChanged(std::move(details));
+      }));
 
   // Quit the process when the context is destroyed.
-  binding.set_error_handler([&run_loop]() { run_loop.Quit(); });
-
+  base::RunLoop run_loop;
+  context_binding.set_error_handler([&run_loop]() { run_loop.Quit(); });
   run_loop.Run();
+
   return 0;
 }
 
@@ -98,10 +131,10 @@
 
 class ContextProviderImplTest : public base::MultiProcessTest {
  public:
-  ContextProviderImplTest() {
-    provider_.SetLaunchCallbackForTests(base::BindRepeating(
-        &ContextProviderImplTest::LaunchProcess, base::Unretained(this)));
-    provider_.Bind(provider_ptr_.NewRequest());
+  ContextProviderImplTest() : provider_(ContextProviderImpl::CreateForTest()) {
+    provider_->SetLaunchCallbackForTests(base::BindRepeating(
+        &base::SpawnMultiProcessTestChild, "SpawnContextServer"));
+    provider_->Bind(provider_ptr_.NewRequest());
   }
 
   ~ContextProviderImplTest() override {
@@ -109,55 +142,55 @@
     base::RunLoop().RunUntilIdle();
   }
 
-  // Start a new child process whose main function is defined in
-  // MULTIPROCESSING_TEST_MAIN(SpawnContextServer).
-  base::Process LaunchProcess(base::CommandLine command,
-                              const base::LaunchOptions& options) {
-    command.AppendSwitchASCII(switches::kTestChildProcess,
-                              "SpawnContextServer");
-    base::Process context_process = base::LaunchProcess(command, options);
-    EXPECT_TRUE(context_process.IsValid());
-    return context_process;
-  }
-
-  void CheckContext(fidl::InterfacePtr<chromium::web::Context>* context) {
+  // Check if a Context is responsive by creating a Frame from it and then
+  // listening for an event.
+  void CheckContextResponsive(
+      fidl::InterfacePtr<chromium::web::Context>* context) {
     // Call a Context method and wait for it to invoke an observer call.
     base::RunLoop run_loop;
-
     context->set_error_handler([&run_loop]() {
       ADD_FAILURE();
       run_loop.Quit();
     });
 
-    TestFrameObserver frame_observer;
-    fidl::Binding<chromium::web::FrameObserver> frame_observer_binding(
-        &frame_observer);
-    frame_observer_binding.set_error_handler([&run_loop]() {
-      ADD_FAILURE();
-      run_loop.Quit();
-    });
-    frame_observer.SetNextChangeCallback(run_loop.QuitClosure());
-
     chromium::web::FramePtr frame_ptr;
     frame_ptr.set_error_handler([&run_loop]() {
       ADD_FAILURE();
       run_loop.Quit();
     });
 
-    (*context)->CreateFrame(frame_observer_binding.NewBinding(),
-                            frame_ptr.NewRequest());
-
-
+    // Create a Frame and expect to see a navigation event.
+    chromium::web::NavigationStateChangeDetails nav_change_stored;
+    frame_ptr.events().OnNavigationStateChanged =
+        [&nav_change_stored,
+         &run_loop](chromium::web::NavigationStateChangeDetails nav_change) {
+          nav_change_stored = nav_change;
+          run_loop.Quit();
+        };
+    (*context)->CreateFrame(frame_ptr.NewRequest());
     run_loop.Run();
 
-    EXPECT_TRUE(frame_observer.last_change().url_changed ||
-                frame_observer.last_change().title_changed);
+    EXPECT_EQ(nav_change_stored.url, kUrl);
+    EXPECT_EQ(nav_change_stored.title, kTitle);
+  }
+
+  chromium::web::CreateContextParams BuildCreateContextParams() {
+    zx::channel client_channel;
+    zx::channel server_channel;
+    zx_status_t result =
+        zx::channel::create(0, &client_channel, &server_channel);
+    ZX_CHECK(result == ZX_OK, result) << "zx_channel_create()";
+    result = fdio_service_connect("/svc/.", server_channel.release());
+    ZX_CHECK(result == ZX_OK, result) << "Failed to open /svc";
+
+    chromium::web::CreateContextParams output;
+    output.service_directory = std::move(client_channel);
+    return output;
   }
 
  protected:
   base::MessageLoopForIO message_loop_;
-
-  ContextProviderImpl provider_;
+  std::unique_ptr<ContextProviderImpl> provider_;
   chromium::web::ContextProviderPtr provider_ptr_;
 
  private:
@@ -167,33 +200,32 @@
 TEST_F(ContextProviderImplTest, LaunchContext) {
   // Connect to a new context process.
   fidl::InterfacePtr<chromium::web::Context> context;
-  chromium::web::CreateContextParams create_params;
+  chromium::web::CreateContextParams create_params = BuildCreateContextParams();
   provider_ptr_->Create(std::move(create_params), context.NewRequest());
-
-  CheckContext(&context);
+  CheckContextResponsive(&context);
 }
 
-// Verify that there can be more than one connection to the provider.
-TEST_F(ContextProviderImplTest, MultipleClients) {
+TEST_F(ContextProviderImplTest, MultipleConcurrentClients) {
+  // Bind a Provider connection, and create a Context from it.
   chromium::web::ContextProviderPtr provider_1_ptr;
-  provider_.Bind(provider_1_ptr.NewRequest());
+  provider_->Bind(provider_1_ptr.NewRequest());
+  chromium::web::ContextPtr context_1;
+  provider_1_ptr->Create(BuildCreateContextParams(), context_1.NewRequest());
 
-  // Connect a second client.
+  // Do the same on another Provider connection.
   chromium::web::ContextProviderPtr provider_2_ptr;
-  provider_.Bind(provider_2_ptr.NewRequest());
-  fidl::InterfacePtr<chromium::web::Context> context;
-  chromium::web::CreateContextParams create_params;
-  provider_2_ptr->Create(std::move(create_params), context.NewRequest());
+  provider_->Bind(provider_2_ptr.NewRequest());
+  chromium::web::ContextPtr context_2;
+  provider_2_ptr->Create(BuildCreateContextParams(), context_2.NewRequest());
 
-  TestFrameObserver frame_observer;
-  fidl::Binding<chromium::web::FrameObserver> frame_observer_binding(
-      &frame_observer);
-  base::RunLoop run_loop;
-  frame_observer.SetNextChangeCallback(run_loop.QuitClosure());
-  chromium::web::FramePtr frame_ptr;
-  context->CreateFrame(frame_observer_binding.NewBinding(),
-                       frame_ptr.NewRequest());
-  run_loop.Run();
+  CheckContextResponsive(&context_1);
+  CheckContextResponsive(&context_2);
+
+  // Ensure that the initial ContextProvider connection is still usable, by
+  // creating and verifying another Context from it.
+  chromium::web::ContextPtr context_3;
+  provider_2_ptr->Create(BuildCreateContextParams(), context_3.NewRequest());
+  CheckContextResponsive(&context_3);
 }
 
 TEST_F(ContextProviderImplTest, WithProfileDir) {
@@ -201,7 +233,7 @@
 
   // Connect to a new context process.
   fidl::InterfacePtr<chromium::web::Context> context;
-  chromium::web::CreateContextParams create_params;
+  chromium::web::CreateContextParams create_params = BuildCreateContextParams();
 
   // Setup data dir.
   EXPECT_TRUE(profile_temp_dir.CreateUniqueTempDir());
@@ -219,7 +251,7 @@
 
   provider_ptr_->Create(std::move(create_params), context.NewRequest());
 
-  CheckContext(&context);
+  CheckContextResponsive(&context);
 
   // Verify that the context process can write data to the out dir.
   EXPECT_TRUE(base::PathExists(