diff --git a/DEPS b/DEPS
index bf29e61b..b495f4d 100644
--- a/DEPS
+++ b/DEPS
@@ -138,7 +138,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': '84294229864728da3a212401d57d90b46ba60c3c',
+  'skia_revision': 'bb74990a11d91ebe0ff474107c6dae3c0aadf308',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -154,7 +154,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
-  'swiftshader_revision': '9659e34fb45129efb2d971dee8d581bbb759a125',
+  'swiftshader_revision': '0a9f0179ddef5b1ed14ff19ca2ac7f340b7272d5',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
@@ -173,7 +173,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling googletest
   # and whatever else without interference from each other.
-  'googletest_revision': '31200def0dec8a624c861f919e86e4444e6e6ee7',
+  'googletest_revision': '076b7f7788833ca31206bc30e5a2cfbdb9628f29',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling lighttpd
   # and whatever else without interference from each other.
@@ -201,7 +201,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': '505424fcab37a5b913a96325211f20ddf7897935',
+  'catapult_revision': 'ace1f8b4d2279930d39c9406820089f131ec7b25',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -277,7 +277,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'quiche_revision': '292b75cd1b53b2c70c4c5b6af669e2d58c8e74e4',
+  'quiche_revision': '014f56d6a10b0f4806d13e109dc9a1e933ec19fb',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ios_webkit
   # and whatever else without interference from each other.
@@ -807,7 +807,7 @@
 
   # Build tools for Chrome OS. Note: This depends on third_party/pyelftools.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'cf248ba6d90b3438b090bfa04889a709a0050a40',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'd3ac0bd691bf7a9b52ec0ccc92dbef1265b087dd',
       'condition': 'checkout_linux',
   },
 
@@ -832,7 +832,7 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'e30736fb090c7f3cd82efee1fa20f7af11dda5b3',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'fd919c8d3debb9659a89322d5bef60526f3dd847',
 
   'src/third_party/devtools-node-modules':
     Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'),
@@ -1355,7 +1355,7 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '6f0b34abee8dba611c253738d955c59f703c147a',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'e323359d6f0ace0022d1eefebe7a74833338f665',
+    Var('webrtc_git') + '/src.git' + '@' + '4606ded90ca9542d5452b348e5415df67aa3622a',
 
   'src/third_party/xdg-utils': {
       'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
@@ -1396,7 +1396,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@e8424c6da09b016cdf1c2698e6ab99e26ade8ea6',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@179aecf4b85da736b3bbb8227925417f28a2e563',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/android_webview/browser/gfx/surfaces_instance.cc b/android_webview/browser/gfx/surfaces_instance.cc
index 07a2f296..fa9864d 100644
--- a/android_webview/browser/gfx/surfaces_instance.cc
+++ b/android_webview/browser/gfx/surfaces_instance.cc
@@ -23,9 +23,12 @@
 #include "components/viz/common/surfaces/parent_local_surface_id_allocator.h"
 #include "components/viz/service/display/display.h"
 #include "components/viz/service/display/display_scheduler.h"
+#include "components/viz/service/display_embedder/skia_output_surface_dependency.h"
+#include "components/viz/service/display_embedder/skia_output_surface_impl.h"
 #include "components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.h"
 #include "components/viz/service/frame_sinks/compositor_frame_sink_support.h"
 #include "components/viz/service/frame_sinks/frame_sink_manager_impl.h"
+#include "gpu/command_buffer/service/sequence_id.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/size.h"
 #include "ui/gfx/presentation_feedback.h"
@@ -46,6 +49,143 @@
   NOTREACHED() << "Non owned context lost!";
 }
 
+class SkiaOutputSurfaceDependencyWebView
+    : public viz::SkiaOutputSurfaceDependency {
+ public:
+  SkiaOutputSurfaceDependencyWebView(
+      DeferredGpuCommandService* const service,
+      gpu::GpuDriverBugWorkarounds& workarounds,
+      scoped_refptr<gpu::SharedContextState> shared_context_state,
+      scoped_refptr<gl::GLSurface> gl_surface);
+  ~SkiaOutputSurfaceDependencyWebView() override;
+
+  void ScheduleGpuTask(base::OnceClosure task,
+                       std::vector<gpu::SyncToken> sync_tokens) override;
+  bool IsUsingVulkan() override;
+  gpu::SharedImageManager* GetSharedImageManager() override;
+  gpu::SyncPointManager* GetSyncPointManager() override;
+  const gpu::GpuDriverBugWorkarounds& GetGpuDriverBugWorkarounds() override;
+  scoped_refptr<gpu::SharedContextState> GetSharedContextState() override;
+  gpu::raster::GrShaderCache* GetGrShaderCache() override;
+  viz::VulkanContextProvider* GetVulkanContextProvider() override;
+  const gpu::GpuPreferences& GetGpuPreferences() override;
+  gpu::SequenceId GetSequenceId() override;
+  const gpu::GpuFeatureInfo& GetGpuFeatureInfo() override;
+  gpu::MailboxManager* GetMailboxManager() override;
+  bool IsOffscreen() override;
+  gpu::SurfaceHandle GetSurfaceHandle() override;
+  scoped_refptr<gl::GLSurface> CreateGLSurface(
+      base::WeakPtr<gpu::ImageTransportSurfaceDelegate> stub) override;
+  void PostTaskToClientThread(base::OnceClosure closure) override;
+  void ScheduleGrContextCleanup() override;
+
+ private:
+  DeferredGpuCommandService* const service_;
+  gpu::GpuDriverBugWorkarounds workarounds_;
+  scoped_refptr<gpu::SharedContextState> shared_context_state_;
+  std::unique_ptr<gpu::CommandBufferTaskExecutor::Sequence> sequence_;
+  gpu::SequenceId sequence_id_;
+  scoped_refptr<gl::GLSurface> gl_surface_;
+
+  DISALLOW_COPY_AND_ASSIGN(SkiaOutputSurfaceDependencyWebView);
+};
+
+SkiaOutputSurfaceDependencyWebView::SkiaOutputSurfaceDependencyWebView(
+    DeferredGpuCommandService* const service,
+    gpu::GpuDriverBugWorkarounds& workarounds,
+    scoped_refptr<gpu::SharedContextState> shared_context_state,
+    scoped_refptr<gl::GLSurface> gl_surface)
+    : service_(service),
+      workarounds_(workarounds),
+      shared_context_state_(std::move(shared_context_state)),
+      sequence_(service_->CreateSequence()),
+      sequence_id_(sequence_->GetSequenceId()),
+      gl_surface_(std::move(gl_surface)) {}
+
+SkiaOutputSurfaceDependencyWebView::~SkiaOutputSurfaceDependencyWebView() =
+    default;
+
+void SkiaOutputSurfaceDependencyWebView::ScheduleGpuTask(
+    base::OnceClosure task,
+    std::vector<gpu::SyncToken> sync_tokens) {
+  sequence_->ScheduleTask(std::move(task), std::move(sync_tokens));
+}
+
+bool SkiaOutputSurfaceDependencyWebView::IsUsingVulkan() {
+  return shared_context_state_ && shared_context_state_->GrContextIsVulkan();
+}
+
+gpu::SharedImageManager*
+SkiaOutputSurfaceDependencyWebView::GetSharedImageManager() {
+  return service_->shared_image_manager();
+}
+
+gpu::SyncPointManager*
+SkiaOutputSurfaceDependencyWebView::GetSyncPointManager() {
+  return service_->sync_point_manager();
+}
+
+const gpu::GpuDriverBugWorkarounds&
+SkiaOutputSurfaceDependencyWebView::GetGpuDriverBugWorkarounds() {
+  return workarounds_;
+}
+
+scoped_refptr<gpu::SharedContextState>
+SkiaOutputSurfaceDependencyWebView::GetSharedContextState() {
+  return shared_context_state_;
+}
+
+gpu::raster::GrShaderCache*
+SkiaOutputSurfaceDependencyWebView::GetGrShaderCache() {
+  return nullptr;
+}
+
+viz::VulkanContextProvider*
+SkiaOutputSurfaceDependencyWebView::GetVulkanContextProvider() {
+  return shared_context_state_->vk_context_provider();
+}
+
+const gpu::GpuPreferences&
+SkiaOutputSurfaceDependencyWebView::GetGpuPreferences() {
+  return service_->gpu_preferences();
+}
+
+gpu::SequenceId SkiaOutputSurfaceDependencyWebView::GetSequenceId() {
+  return sequence_id_;
+}
+
+const gpu::GpuFeatureInfo&
+SkiaOutputSurfaceDependencyWebView::GetGpuFeatureInfo() {
+  return service_->gpu_feature_info();
+}
+
+gpu::MailboxManager* SkiaOutputSurfaceDependencyWebView::GetMailboxManager() {
+  return service_->mailbox_manager();
+}
+
+bool SkiaOutputSurfaceDependencyWebView::IsOffscreen() {
+  return false;
+}
+
+gpu::SurfaceHandle SkiaOutputSurfaceDependencyWebView::GetSurfaceHandle() {
+  return gpu::kNullSurfaceHandle;
+}
+
+scoped_refptr<gl::GLSurface>
+SkiaOutputSurfaceDependencyWebView::CreateGLSurface(
+    base::WeakPtr<gpu::ImageTransportSurfaceDelegate> stub) {
+  return gl_surface_;
+}
+
+void SkiaOutputSurfaceDependencyWebView::PostTaskToClientThread(
+    base::OnceClosure closure) {
+  service_->PostNonNestableToClient(std::move(closure));
+}
+
+void SkiaOutputSurfaceDependencyWebView::ScheduleGrContextCleanup() {
+  // There is no way to access the gpu thread here, so leave it no-op for now.
+}
+
 }  // namespace
 
 // static
@@ -83,7 +223,6 @@
       this, frame_sink_manager_.get(), frame_sink_id_, is_root,
       needs_sync_points);
 
-  // Android WebView always uses non-DDL regardless of RendererSetting.
   const bool use_skia_renderer =
       settings.use_skia_renderer || settings.use_skia_renderer_non_ddl;
   auto* command_line = base::CommandLine::ForCurrentProcess();
@@ -102,8 +241,10 @@
       enable_vulkan ? AwVulkanContextProvider::GetOrCreateInstance() : nullptr;
   std::unique_ptr<viz::OutputSurface> output_surface;
   gl_surface_ = base::MakeRefCounted<AwGLSurface>();
-  if (use_skia_renderer) {
+  if (settings.use_skia_renderer || settings.use_skia_renderer_non_ddl) {
     auto* task_executor = DeferredGpuCommandService::GetInstance();
+    gpu::GpuDriverBugWorkarounds workarounds(
+        task_executor->gpu_feature_info().enabled_gpu_driver_bug_workarounds);
     if (!shared_context_state_) {
       auto gl_context =
           gl::init::CreateGLContext(task_executor->share_group().get(),
@@ -113,15 +254,21 @@
           task_executor->share_group(), gl_surface_, std::move(gl_context),
           false /* use_virtualized_gl_contexts */,
           base::BindOnce(&OnContextLost), vulkan_context_provider.get());
-      shared_context_state_->InitializeGrContext(
-          gpu::GpuDriverBugWorkarounds(task_executor->gpu_feature_info()
-                                           .enabled_gpu_driver_bug_workarounds),
-          nullptr /* gr_shader_cache */);
+      shared_context_state_->InitializeGrContext(workarounds,
+                                                 nullptr /* gr_shader_cache */);
     }
-    output_surface = std::make_unique<viz::SkiaOutputSurfaceImplNonDDL>(
-        gl_surface_, shared_context_state_, task_executor->mailbox_manager(),
-        task_executor->shared_image_manager(),
-        task_executor->sync_point_manager(), false /* need_swapbuffers_ack */);
+    if (settings.use_skia_renderer_non_ddl) {
+      output_surface = std::make_unique<viz::SkiaOutputSurfaceImplNonDDL>(
+          gl_surface_, shared_context_state_, task_executor->mailbox_manager(),
+          task_executor->shared_image_manager(),
+          task_executor->sync_point_manager(),
+          false /* need_swapbuffers_ack */);
+    } else {
+      output_surface = std::make_unique<viz::SkiaOutputSurfaceImpl>(
+          std::make_unique<SkiaOutputSurfaceDependencyWebView>(
+              task_executor, workarounds, shared_context_state_, gl_surface_),
+          settings);
+    }
   } else {
     auto context_provider = AwRenderThreadContextProvider::Create(
         gl_surface_, DeferredGpuCommandService::GetInstance());
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index a77f3c3..336b375 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -1274,7 +1274,6 @@
     "//services/media_session/public/mojom",
     "//services/service_manager/public/cpp",
     "//services/ws/public/cpp/input_devices",
-    "//services/ws/public/mojom",
     "//skia",
     "//ui/aura",
     "//ui/events",
@@ -1940,7 +1939,6 @@
     "//services/media_session/public/mojom",
     "//services/viz/public/cpp:manifest",
     "//services/ws/public/cpp/input_devices:test_support",
-    "//services/ws/public/mojom",
     "//skia",
     "//testing/gmock",
     "//testing/gtest",
@@ -2216,7 +2214,6 @@
     "//services/device/public/mojom",
     "//services/ws/public/cpp/input_devices",
     "//services/ws/public/cpp/input_devices:test_support",
-    "//services/ws/public/mojom",
     "//skia",
     "//testing/gtest",
     "//ui/accessibility",
diff --git a/ash/app_list/presenter/app_list_presenter_impl.cc b/ash/app_list/presenter/app_list_presenter_impl.cc
index 3c6357c..ee58597 100644
--- a/ash/app_list/presenter/app_list_presenter_impl.cc
+++ b/ash/app_list/presenter/app_list_presenter_impl.cc
@@ -379,16 +379,20 @@
                                            aura::Window* lost_focus) {
   if (view_ && is_target_visibility_show_) {
     aura::Window* applist_window = view_->GetWidget()->GetNativeView();
+    const bool applist_gained_focus = applist_window->Contains(gained_focus);
     if (delegate_->IsTabletMode()) {
       if (applist_window->Contains(lost_focus)) {
         home_launcher_shown_ = false;
         HandleCloseOpenSearchBox();
-      } else if (applist_window->Contains(gained_focus)) {
+      } else if (applist_gained_focus) {
         home_launcher_shown_ = true;
         view_->OnHomeLauncherGainingFocusWithoutAnimation();
       }
     }
 
+    if (applist_gained_focus)
+      base::RecordAction(base::UserMetricsAction("AppList_WindowFocused"));
+
     aura::Window* applist_container = applist_window->parent();
     if (applist_container->Contains(lost_focus) &&
         (!gained_focus || !applist_container->Contains(gained_focus)) &&
diff --git a/ash/app_list/views/folder_header_view.cc b/ash/app_list/views/folder_header_view.cc
index 843d801..9c58ae4c 100644
--- a/ash/app_list/views/folder_header_view.cc
+++ b/ash/app_list/views/folder_header_view.cc
@@ -59,8 +59,12 @@
 
   void OnBlur() override {
     // Collapse whitespace when FolderNameView loses focus.
-    SetText(base::CollapseWhitespace(text(), false));
-    folder_header_view_->ContentsChanged(this, text());
+    folder_header_view_->ContentsChanged(
+        this, base::CollapseWhitespace(text(), false));
+
+    // Ensure folder name is truncated when FolderNameView loses focus.
+    SetText(folder_header_view_->GetElidedFolderName(
+        base::UTF8ToUTF16(folder_header_view_->folder_item_->name())));
 
     // Record metric each time a folder is renamed.
     if (text() != starting_name_) {
@@ -197,6 +201,10 @@
   return "FolderHeaderView";
 }
 
+void FolderHeaderView::OnBoundsChanged(const gfx::Rect& previous_bounds) {
+  Update();
+}
+
 views::View* FolderHeaderView::GetFolderNameViewForTest() const {
   return folder_name_view_;
 }
@@ -212,7 +220,7 @@
       folder_name.substr(0, AppListConfig::instance().max_folder_name_chars());
 
   // Get maximum text width for fitting into |folder_name_view_|.
-  int text_width = GetMaxFolderNameWidth() -
+  int text_width = std::min(GetMaxFolderNameWidth(), width()) -
                    folder_name_view_->GetCaretBounds().width() -
                    folder_name_view_->GetInsets().width();
   base::string16 elided_name = gfx::ElideText(
@@ -234,11 +242,13 @@
       folder_name_view_->GetCaretBounds().width() +
       folder_name_view_->GetInsets().width();
   text_width = std::min(text_width, GetMaxFolderNameWidth());
-  text_bounds.set_x(rect.x() + (rect.width() - text_width) / 2);
+  text_bounds.set_x(std::max(0, rect.x() + (rect.width() - text_width) / 2));
 
-  // The width of the text field should always be maximum length, to prevent the
-  // touch target from resizing with the text.
-  text_bounds.set_width(GetMaxFolderNameWidth());
+  // The width of the text field should always be the maximum length possible,
+  // to prevent the touch target from resizing with the text. The width should
+  // also stay within the FolderHeaderView bounds.
+  text_bounds.set_width(std::min(rect.width(), GetMaxFolderNameWidth()));
+
   text_bounds.ClampToCenteredSize(gfx::Size(
       text_bounds.width(), folder_name_view_->GetPreferredSize().height()));
   folder_name_view_->SetBoundsRect(text_bounds);
diff --git a/ash/app_list/views/folder_header_view.h b/ash/app_list/views/folder_header_view.h
index 477c12b..3bb69b4 100644
--- a/ash/app_list/views/folder_header_view.h
+++ b/ash/app_list/views/folder_header_view.h
@@ -42,6 +42,7 @@
   // views::View:
   gfx::Size CalculatePreferredSize() const override;
   const char* GetClassName() const override;
+  void OnBoundsChanged(const gfx::Rect& previous_bounds) override;
 
   views::View* GetFolderNameViewForTest() const;
 
diff --git a/ash/assistant/assistant_interaction_controller.cc b/ash/assistant/assistant_interaction_controller.cc
index 0a136a4..09e80fe 100644
--- a/ash/assistant/assistant_interaction_controller.cc
+++ b/ash/assistant/assistant_interaction_controller.cc
@@ -478,7 +478,16 @@
   // 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()) {
-    assistant_controller_->OpenUrl(suggestion->action_url);
+    // Note that we post a new task when opening the |action_url| associated
+    // with |sugggestion| as this will potentially cause Assistant UI to close
+    // and destroy |suggestion| in the process. Failure to post in this case
+    // would cause any subsequent observers of this suggestion chip event to
+    // receive a deleted pointer.
+    base::SequencedTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE,
+        base::BindOnce(&AssistantController::OpenUrl,
+                       assistant_controller_->GetWeakPtr(),
+                       suggestion->action_url, /*from_server=*/false));
     return;
   }
 
@@ -490,7 +499,7 @@
   // user's preceding voice interaction.
   StartTextInteraction(suggestion->text, /*allow_tts=*/model_.response() &&
                                              model_.response()->has_tts(),
-                       /*query_source*/ AssistantQuerySource::kSuggestionChip);
+                       /*query_source=*/AssistantQuerySource::kSuggestionChip);
 }
 
 void AssistantInteractionController::OnSuggestionsResponse(
diff --git a/ash/assistant/assistant_notification_controller.cc b/ash/assistant/assistant_notification_controller.cc
index c837890..615a76d3 100644
--- a/ash/assistant/assistant_notification_controller.cc
+++ b/ash/assistant/assistant_notification_controller.cc
@@ -266,7 +266,10 @@
 
   // Open the action url if it is valid.
   if (IsValidActionUrl(action_url)) {
-    assistant_controller_->OpenUrl(action_url);
+    // Note that we copy construct a new GURL as our |notification| may be
+    // destroyed during the |OpenUrl| sequence leaving |action_url| in a bad
+    // state.
+    assistant_controller_->OpenUrl(GURL(action_url));
     model_.RemoveNotificationById(id, /*from_server=*/false);
     return;
   }
diff --git a/ash/assistant/ui/assistant_web_view.cc b/ash/assistant/ui/assistant_web_view.cc
index bc5a4d8..2bb5ea0 100644
--- a/ash/assistant/ui/assistant_web_view.cc
+++ b/ash/assistant/ui/assistant_web_view.cc
@@ -25,16 +25,6 @@
 
 namespace ash {
 
-namespace {
-
-int GetMaxHeight() {
-  return app_list_features::IsEmbeddedAssistantUIEnabled()
-             ? kMaxHeightEmbeddedDip
-             : kMaxHeightDip;
-}
-
-}  // namespace
-
 // AssistantWebView ------------------------------------------------------------
 
 AssistantWebView::AssistantWebView(AssistantViewDelegate* delegate)
@@ -60,13 +50,14 @@
 
 int AssistantWebView::GetHeightForWidth(int width) const {
   if (app_list_features::IsEmbeddedAssistantUIEnabled())
-    return GetMaxHeight();
+    return kMaxHeightEmbeddedDip;
 
-  // |height| <= |GetMaxHeight()|.
+  // |height| <= |kMaxHeightDip|.
   // |height| should not exceed the height of the usable work area.
-  gfx::Rect usable_work_area = delegate_->GetUiModel()->usable_work_area();
+  const gfx::Rect usable_work_area =
+      delegate_->GetUiModel()->usable_work_area();
 
-  return std::min(GetMaxHeight(), usable_work_area.height());
+  return std::min(kMaxHeightDip, usable_work_area.height());
 }
 
 void AssistantWebView::ChildPreferredSizeChanged(views::View* child) {
@@ -133,14 +124,7 @@
   delegate_->GetNavigableContentsFactoryForView(
       contents_factory_.BindNewPipeAndPassReceiver());
 
-  const gfx::Size preferred_size =
-      gfx::Size(kPreferredWidthDip,
-                GetMaxHeight() - caption_bar_->GetPreferredSize().height());
-
   auto contents_params = content::mojom::NavigableContentsParams::New();
-  contents_params->enable_view_auto_resize = true;
-  contents_params->auto_resize_min_size = preferred_size;
-  contents_params->auto_resize_max_size = preferred_size;
   contents_params->suppress_navigations = true;
 
   contents_ = std::make_unique<content::NavigableContents>(
@@ -154,17 +138,14 @@
   contents_->Navigate(assistant::util::GetWebUrl(type, params).value());
 }
 
-void AssistantWebView::DidAutoResizeView(const gfx::Size& new_size) {
-  contents_->GetView()->view()->SetPreferredSize(new_size);
-}
-
 void AssistantWebView::DidStopLoading() {
   // We should only respond to the |DidStopLoading| event the first time, to add
   // the view for the navigable contents to our view hierarchy and perform other
   // one-time view initializations.
-  if (contents_->GetView()->view()->parent() == this)
+  if (contents_view_initialized_)
     return;
 
+  UpdateContentSize();
   AddChildView(contents_->GetView()->view());
   SetFocusBehavior(FocusBehavior::ALWAYS);
 
@@ -172,6 +153,8 @@
   contents_->GetView()->native_view()->layer()->SetRoundedCornerRadius(
       {/*top_left=*/0, /*top_right=*/0, /*bottom_right=*/kCornerRadiusDip,
        /*bottom_left=*/kCornerRadiusDip});
+
+  contents_view_initialized_ = true;
 }
 
 void AssistantWebView::DidSuppressNavigation(const GURL& url,
@@ -205,6 +188,12 @@
     RemoveContents();
 }
 
+void AssistantWebView::OnUsableWorkAreaChanged(
+    const gfx::Rect& usable_work_area) {
+  if (contents_)
+    UpdateContentSize();
+}
+
 void AssistantWebView::RemoveContents() {
   if (!contents_)
     return;
@@ -216,6 +205,17 @@
   SetFocusBehavior(FocusBehavior::NEVER);
   contents_->RemoveObserver(this);
   contents_.reset();
+  contents_view_initialized_ = false;
+}
+
+void AssistantWebView::UpdateContentSize() {
+  if (!contents_view_initialized_)
+    return;
+
+  const gfx::Size preferred_size = gfx::Size(
+      kPreferredWidthDip, GetHeightForWidth(kPreferredWidthDip) -
+                              caption_bar_->GetPreferredSize().height());
+  contents_->GetView()->view()->SetPreferredSize(preferred_size);
 }
 
 }  // namespace ash
diff --git a/ash/assistant/ui/assistant_web_view.h b/ash/assistant/ui/assistant_web_view.h
index 37e14a41e..a919694f 100644
--- a/ash/assistant/ui/assistant_web_view.h
+++ b/ash/assistant/ui/assistant_web_view.h
@@ -55,7 +55,6 @@
       const std::map<std::string, std::string>& params) override;
 
   // content::NavigableContentsObserver:
-  void DidAutoResizeView(const gfx::Size& new_size) override;
   void DidStopLoading() override;
   void DidSuppressNavigation(const GURL& url,
                              WindowOpenDisposition disposition,
@@ -67,11 +66,17 @@
       AssistantVisibility old_visibility,
       base::Optional<AssistantEntryPoint> entry_point,
       base::Optional<AssistantExitPoint> exit_point) override;
+  void OnUsableWorkAreaChanged(const gfx::Rect& usable_work_area) override;
 
  private:
   void InitLayout();
   void RemoveContents();
 
+  // Updates the size of the web contents by changing its view size to avoid
+  // either being cut or not fully filling the whole container when the usable
+  // work area changed.
+  void UpdateContentSize();
+
   AssistantViewDelegate* const delegate_;
 
   CaptionBar* caption_bar_;  // Owned by view hierarchy.
@@ -79,6 +84,8 @@
   mojo::Remote<content::mojom::NavigableContentsFactory> contents_factory_;
   std::unique_ptr<content::NavigableContents> contents_;
 
+  bool contents_view_initialized_ = false;
+
   base::WeakPtrFactory<AssistantWebView> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(AssistantWebView);
diff --git a/ash/login/ui/login_button.cc b/ash/login/ui/login_button.cc
index e42d227..d00e40f 100644
--- a/ash/login/ui/login_button.cc
+++ b/ash/login/ui/login_button.cc
@@ -4,7 +4,7 @@
 
 #include "ash/login/ui/login_button.h"
 
-#include "ash/public/cpp/ash_constants.h"
+#include "ash/shelf/shelf_constants.h"
 #include "ui/views/animation/flood_fill_ink_drop_ripple.h"
 #include "ui/views/animation/ink_drop_highlight.h"
 #include "ui/views/animation/ink_drop_impl.h"
@@ -27,8 +27,8 @@
     : views::ImageButton(listener) {
   SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER);
   SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE);
-  SetFocusPainter(views::Painter::CreateSolidFocusPainter(
-      kFocusBorderColor, kFocusBorderThickness, gfx::InsetsF()));
+  SetInstallFocusRingOnFocus(true);
+  focus_ring()->SetColor(kShelfFocusBorderColor);
   SetInkDropMode(InkDropMode::ON);
   set_has_ink_drop_action_on_click(true);
 }
diff --git a/ash/login/ui/login_pin_view.cc b/ash/login/ui/login_pin_view.cc
index 4ba2906..896e30e 100644
--- a/ash/login/ui/login_pin_view.cc
+++ b/ash/login/ui/login_pin_view.cc
@@ -10,6 +10,7 @@
 #include "ash/public/cpp/ash_constants.h"
 #include "ash/public/cpp/login_constants.h"
 #include "ash/resources/vector_icons/vector_icons.h"
+#include "ash/shelf/shelf_constants.h"
 #include "ash/strings/grit/ash_strings.h"
 #include "base/bind.h"
 #include "base/callback.h"
@@ -105,8 +106,8 @@
     layer()->SetFillsBoundsOpaquely(false);
     SetInkDropMode(InkDropMode::ON_NO_GESTURE_HANDLER);
 
-    focus_painter_ = views::Painter::CreateSolidFocusPainter(
-        kFocusBorderColor, kFocusBorderThickness, gfx::InsetsF());
+    focus_ring_ = views::FocusRing::Install(this);
+    focus_ring_->SetColor(kShelfFocusBorderColor);
   }
 
   ~BasePinButton() override = default;
@@ -114,7 +115,6 @@
   // views::InkDropHostView:
   void OnPaint(gfx::Canvas* canvas) override {
     InkDropHostView::OnPaint(canvas);
-    views::Painter::PaintFocusPainter(this, canvas, focus_painter_.get());
   }
   void OnFocus() override {
     InkDropHostView::OnFocus();
@@ -195,7 +195,7 @@
 
  private:
   const base::string16 accessible_name_;
-  std::unique_ptr<views::Painter> focus_painter_;
+  std::unique_ptr<views::FocusRing> focus_ring_;
 
   DISALLOW_COPY_AND_ASSIGN(BasePinButton);
 };
diff --git a/ash/login/ui/login_user_menu_view.cc b/ash/login/ui/login_user_menu_view.cc
index 617ec254..1edd40f 100644
--- a/ash/login/ui/login_user_menu_view.cc
+++ b/ash/login/ui/login_user_menu_view.cc
@@ -5,7 +5,7 @@
 #include "ash/login/ui/login_user_menu_view.h"
 #include "ash/login/ui/non_accessible_view.h"
 #include "ash/login/ui/views_utils.h"
-#include "ash/public/cpp/ash_constants.h"
+#include "ash/shelf/shelf_constants.h"
 #include "ash/strings/grit/ash_strings.h"
 #include "base/strings/utf_string_conversions.h"
 #include "ui/accessibility/ax_node_data.h"
@@ -63,8 +63,8 @@
     SetBorder(views::CreateEmptyBorder(
         gfx::Insets(kUserMenuMarginAroundRemoveUserButtonDp,
                     kUserMenuMarginAroundRemoveUserButtonDp)));
-    SetFocusPainter(views::Painter::CreateSolidFocusPainter(
-        kFocusBorderColor, kFocusBorderThickness, gfx::InsetsF()));
+    SetInstallFocusRingOnFocus(true);
+    focus_ring()->SetColor(kShelfFocusBorderColor);
   }
 
   ~RemoveUserButton() override = default;
diff --git a/ash/public/cpp/BUILD.gn b/ash/public/cpp/BUILD.gn
index 59e9970..19848563 100644
--- a/ash/public/cpp/BUILD.gn
+++ b/ash/public/cpp/BUILD.gn
@@ -201,7 +201,6 @@
     "//components/sync:rest_of_sync",
     "//mojo/public/cpp/bindings",
     "//services/service_manager/public/cpp",
-    "//services/ws/public/mojom",
     "//skia/public/interfaces",
     "//ui/aura",
     "//ui/chromeos/strings",
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 5677d39..f75b1a99 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">تعمل أجهزتك بشكل أفضل وهي مرتبطة معًا</translation>
 <translation id="112308213915226829">الإخفاء التلقائي للرف</translation>
 <translation id="1153356358378277386">الأجهزة المقترنة</translation>
+<translation id="1175572348579024023">التمرير</translation>
 <translation id="1178581264944972037">الإيقاف مؤقتًا</translation>
 <translation id="1195412055398077112">الخروج عن إطار الشاشة</translation>
 <translation id="119944043368869598">محو الكل</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">‏لا يتوفَّر "مساعد Google" في جلسة تجريبية.</translation>
 <translation id="479989351350248267">بحث</translation>
 <translation id="4804818685124855865">قطع الاتصال</translation>
+<translation id="4831034276697007977">هل تريد فعلاً إيقاف النقرات التلقائية؟</translation>
 <translation id="4849058404725798627">تمييز الكائن باستخدام تركيز لوحة المفاتيح</translation>
 <translation id="485592688953820832">عدم اتخاذ أي إجراء (إيقاف مؤقَّت)</translation>
 <translation id="4872237917498892622">‏Alt+مفتاح البحث أو Shift</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> غير متوافق مع <ph name="SPECIFIED_RESOLUTION" />. تم تغيير الدقة إلى <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">لوحة ألوان الرموز التعبيرية</translation>
 <translation id="7564874036684306347">قد ينتج عن نقل النوافذ إلى سطح مكتب آخر سلوك غير متوقع. من الممكن أن يتم تقسيم مربعات الحوار والنوافذ والإشعارات المتتالية بين سطحَي المكتب.</translation>
+<translation id="7568294522609223312">إيقاف النقرات التلقائية</translation>
 <translation id="7569509451529460200">‏تم تفعيل Braille وChromeVox</translation>
 <translation id="7593891976182323525">‏مفتاح البحث أو Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (المالك)</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index 78fbb64..0c0a581 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Dine enheder fungerer endnu bedre sammen</translation>
 <translation id="112308213915226829">Skjul hylde automatisk</translation>
 <translation id="1153356358378277386">Parrede enheder</translation>
+<translation id="1175572348579024023">Rul</translation>
 <translation id="1178581264944972037">Pause</translation>
 <translation id="1195412055398077112">overscan</translation>
 <translation id="119944043368869598">Ryd alle</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">Google Assistent er ikke tilgængelig i en demosession.</translation>
 <translation id="479989351350248267">søg</translation>
 <translation id="4804818685124855865">Afbryd</translation>
+<translation id="4831034276697007977">Er du sikker på, at du vil deaktivere automatiske klik?</translation>
 <translation id="4849058404725798627">Fremhæv element med tastaturfokus</translation>
 <translation id="485592688953820832">Ingen handling (pause)</translation>
 <translation id="4872237917498892622">Alt+Søg eller Shift</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> understøtter ikke <ph name="SPECIFIED_RESOLUTION" />. Opløsningen blev ændret til <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">Emojipalet</translation>
 <translation id="7564874036684306347">Hvis du flytter vinduer til et andet skrivebord, kan det resultere i uventet adfærd. Efterfølgende notifikationer, vinduer og dialogbokse kan blive delt mellem skriveborde.</translation>
+<translation id="7568294522609223312">Deaktiver automatiske klik</translation>
 <translation id="7569509451529460200">Braille og ChromeVox er aktiveret</translation>
 <translation id="7593891976182323525">Søg eller Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ejer)</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index befbc94..225ea13 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Vorteile durch das Verbinden Ihrer Geräte</translation>
 <translation id="112308213915226829">Ablage automatisch ausblenden</translation>
 <translation id="1153356358378277386">Gekoppelte Geräte</translation>
+<translation id="1175572348579024023">Scrollen</translation>
 <translation id="1178581264944972037">Anhalten</translation>
 <translation id="1195412055398077112">Overscan</translation>
 <translation id="119944043368869598">Alle löschen</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">In Demositzungen ist Google Assistant nicht verfügbar.</translation>
 <translation id="479989351350248267">Suchen</translation>
 <translation id="4804818685124855865">Verbindung trennen</translation>
+<translation id="4831034276697007977">Möchten Sie automatische Klicks wirklich deaktivieren?</translation>
 <translation id="4849058404725798627">Objekt mit Tastaturfokus hervorheben</translation>
 <translation id="485592688953820832">Keine Aktion (Pause)</translation>
 <translation id="4872237917498892622">Alt+Suchen oder Umschalttaste</translation>
@@ -413,6 +415,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> unterstützt <ph name="SPECIFIED_RESOLUTION" /> nicht. Die Auflösung wurde auf <ph name="FALLBACK_RESOLUTION" /> zurückgesetzt.</translation>
 <translation id="7562368315689366235">Emoji-Palette</translation>
 <translation id="7564874036684306347">Das Verschieben von Fenstern auf einen anderen Desktop kann zu unerwartetem Verhalten führen. Nachfolgende Benachrichtigungen, Fenster und Dialogfelder werden unter Umständen zwischen den Desktops aufgeteilt.</translation>
+<translation id="7568294522609223312">Automatische Klicks deaktivieren</translation>
 <translation id="7569509451529460200">Braille und ChromeVox sind aktiviert</translation>
 <translation id="7593891976182323525">Suchen oder Umschalttaste</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (Eigentümer)</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index fcf066f..139fd81 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Tus dispositivos funcionan aún mejor juntos</translation>
 <translation id="112308213915226829">Ocultar estantería automáticamente</translation>
 <translation id="1153356358378277386">Dispositivos vinculados</translation>
+<translation id="1175572348579024023">Desplazarse</translation>
 <translation id="1178581264944972037">Pausar</translation>
 <translation id="1195412055398077112">reajustar</translation>
 <translation id="119944043368869598">Eliminar todo</translation>
@@ -251,6 +252,7 @@
 <translation id="4778095205580009397">El Asistente de Google no está disponible en las sesiones de demostración.</translation>
 <translation id="479989351350248267">buscar</translation>
 <translation id="4804818685124855865">Desvincular</translation>
+<translation id="4831034276697007977">¿Seguro que quieres desactivar los clics automáticos?</translation>
 <translation id="4849058404725798627">Resaltar el objeto con el foco del teclado</translation>
 <translation id="485592688953820832">Ninguna acción (pausa)</translation>
 <translation id="4872237917498892622">Alt+tecla de búsqueda o Mayús</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> no admite una resolución de <ph name="SPECIFIED_RESOLUTION" />. Se ha cambiado la resolución a <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">Paleta de emojis</translation>
 <translation id="7564874036684306347">Si mueves ventanas a otro escritorio, es posible que se produzca un comportamiento inesperado. Puede que las notificaciones, las ventanas y los cuadros de diálogo que aparezcan después de realizar esta acción se dividan entre los escritorios.</translation>
+<translation id="7568294522609223312">Desactivar clics automáticos</translation>
 <translation id="7569509451529460200">Braille y ChromeVox están habilitados</translation>
 <translation id="7593891976182323525">Tecla de búsqueda o Mayús</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (propietario)</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index 8fa5013..861f59a 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">دستگاه‌هایتان باهم به‌مراتب بهتر کار می‌کنند</translation>
 <translation id="112308213915226829">پنهان کردن خودکار قفسه</translation>
 <translation id="1153356358378277386">دستگاه‌های مرتبط‌شده</translation>
+<translation id="1175572348579024023">پیمایش</translation>
 <translation id="1178581264944972037">مکث</translation>
 <translation id="1195412055398077112">بزرگتر از صفحه</translation>
 <translation id="119944043368869598">پاک کردن همه</translation>
@@ -251,6 +252,7 @@
 <translation id="4778095205580009397">‏«دستیار Google» در جلسه نمایشی در دسترس نیست.</translation>
 <translation id="479989351350248267">جستجو</translation>
 <translation id="4804818685124855865">قطع اتصال</translation>
+<translation id="4831034276697007977">مطمئنید می‌خواهید کلیک‌های خودکار را خاموش کنید؟</translation>
 <translation id="4849058404725798627">برجسته کردن شیء با فوکوس صفحه‌کلید</translation>
 <translation id="485592688953820832">بی‌حرکت (مکث)</translation>
 <translation id="4872237917498892622">‏Alt+جستجو یا Shift</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" />،‏ <ph name="SPECIFIED_RESOLUTION" /> را پشتیبانی نمی‌کند. وضوح به <ph name="FALLBACK_RESOLUTION" /> تغییر کرد</translation>
 <translation id="7562368315689366235">پالت صورتک</translation>
 <translation id="7564874036684306347">انتقال پنجره‌ها به میز کار دیگر می‌تواند به رفتار غیرمنتظره منجر شود. اعلان‌ها، پنجره‌ها و کادرهای گفتگوی بعدی ممکن است بین میز کارها تقسیم شوند.</translation>
+<translation id="7568294522609223312">خاموش کردن کلیک‌های خودکار</translation>
 <translation id="7569509451529460200">‏بریل و ChromeVox فعال هستند</translation>
 <translation id="7593891976182323525">‏جستجو یا Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (مالک)</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index b194397..321fc3e 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">તમારા ઉપકરણો એક સાથે હોય ત્યારે વધુ કાર્યક્ષમ હોય છે</translation>
 <translation id="112308213915226829">સ્વતઃછુપાવો શેલ્ફ</translation>
 <translation id="1153356358378277386">જોડી કરેલા ઉપકરણો</translation>
+<translation id="1175572348579024023">સ્ક્રોલ કરો</translation>
 <translation id="1178581264944972037">થોભો</translation>
 <translation id="1195412055398077112">ઓવરસ્કૅન</translation>
 <translation id="119944043368869598">બધા દૂર કરો</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">ડેમો સત્રમાં Google આસિસ્ટંટ ઉપલબ્ધ નથી.</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">ડિસ્કનેક્ટ કરો</translation>
+<translation id="4831034276697007977">શું તમારે ખરેખર ઑટોમૅટિક ક્લિક બંધ કરવા છે?</translation>
 <translation id="4849058404725798627">કીબોર્ડ ફોકસ વડે ઑબ્જેક્ટને હાઇલાઇટ કરો</translation>
 <translation id="485592688953820832">કોઈ ક્રિયા નથી (થોભાવો)</translation>
 <translation id="4872237917498892622">Alt+Search અથવા Shift</translation>
@@ -413,6 +415,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" />, <ph name="SPECIFIED_RESOLUTION" />ને સહાય આપતું નથી. રિઝોલ્યુશન <ph name="FALLBACK_RESOLUTION" /> પર બદલાયું હતું</translation>
 <translation id="7562368315689366235">ઇમોજી પૅલેટ</translation>
 <translation id="7564874036684306347">વિંડોને બીજા ડેસ્કટૉપમાં ખસેડવું તે અનપેક્ષિત વર્તણૂકનું કારણ બની શકે છે. અનુગામી નોટિફિકેશન, વિંડો અને સંવાદો ડેસ્કટૉપ વચ્ચે વિભાજિત થઈ શકે છે.</translation>
+<translation id="7568294522609223312">ઑટોમૅટિક ક્લિક બંધ કરો</translation>
 <translation id="7569509451529460200">બ્રેઇલ અને ChromeVox સક્ષમ કર્યાં</translation>
 <translation id="7593891976182323525">Search અથવા Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (માલિક)</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index 15d05a3..5cdbf52 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Perangkat berfungsi lebih baik jika digunakan bersama</translation>
 <translation id="112308213915226829">Sembunyikan otomatis rak</translation>
 <translation id="1153356358378277386">Perangkat dihubungkan</translation>
+<translation id="1175572348579024023">Scroll</translation>
 <translation id="1178581264944972037">Jeda</translation>
 <translation id="1195412055398077112">pemindaian berlebih</translation>
 <translation id="119944043368869598">Hapus semua</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">Asisten Google tidak tersedia dalam sesi demo.</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Putuskan</translation>
+<translation id="4831034276697007977">Yakin ingin menonaktifkan klik otomatis?</translation>
 <translation id="4849058404725798627">Sorot objek dengan fokus keyboard</translation>
 <translation id="485592688953820832">Tidak ada tindakan (jeda)</translation>
 <translation id="4872237917498892622">Alt+Telusuri atau Shift</translation>
@@ -413,6 +415,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> tidak mendukung <ph name="SPECIFIED_RESOLUTION" />. Resolusi diubah menjadi <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">Palet emoji</translation>
 <translation id="7564874036684306347">Memindahkan jendela ke desktop lain dapat mengakibatkan perilaku tak terduga. Notifikasi, jendela, dan dialog berikutnya dapat terpisah antardesktop.</translation>
+<translation id="7568294522609223312">Nonaktifkan klik otomatis</translation>
 <translation id="7569509451529460200">Braille dan ChromeVox diaktifkan</translation>
 <translation id="7593891976182323525">Telusuri atau Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (pemilik)</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index ebc6823..4143395 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">デバイスを連携させると活用の幅が広がります</translation>
 <translation id="112308213915226829">シェルフを自動的に隠す</translation>
 <translation id="1153356358378277386">ペア設定されたデバイス</translation>
+<translation id="1175572348579024023">スクロール</translation>
 <translation id="1178581264944972037">一時停止</translation>
 <translation id="1195412055398077112">オーバースキャン</translation>
 <translation id="119944043368869598">すべて削除</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">Google アシスタントは、デモセッションではご利用いただけません。</translation>
 <translation id="479989351350248267">検索</translation>
 <translation id="4804818685124855865">切断</translation>
+<translation id="4831034276697007977">自動クリックをオフにしてもよろしいですか?</translation>
 <translation id="4849058404725798627">キーボードのフォーカスがある項目をハイライト表示する</translation>
 <translation id="485592688953820832">なし(一時停止)</translation>
 <translation id="4872237917498892622">Alt+ 検索/Shift</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> は <ph name="SPECIFIED_RESOLUTION" /> に対応していません。解像度は <ph name="FALLBACK_RESOLUTION" /> に変更されました</translation>
 <translation id="7562368315689366235">絵文字パレット</translation>
 <translation id="7564874036684306347">ウィンドウを別のデスクトップに移動すると、予期しない動作が起こることがあります。以降の通知、ウィンドウ、ダイアログは、複数のデスクトップに分かれて表示される可能性があります。</translation>
+<translation id="7568294522609223312">自動クリックをオフにする</translation>
 <translation id="7569509451529460200">Braille と ChromeVox が有効になっています</translation>
 <translation id="7593891976182323525">検索/Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" />(所有者)</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index ade1f18..a18dc446 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">ನಿಮ್ಮ ಸಾಧನಗಳು ಜೊತೆಯಲ್ಲಿ ಇನ್ನೂ ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತವೆ</translation>
 <translation id="112308213915226829">ಶೆಲ್ಫ್ ಅನ್ನು ಸ್ವಯಂಮರೆಮಾಡು</translation>
 <translation id="1153356358378277386">ಜೋಡಿ ಮಾಡಲಾದ ಸಾಧನಗಳು</translation>
+<translation id="1175572348579024023">ಸ್ಕ್ರಾಲ್</translation>
 <translation id="1178581264944972037">ವಿರಾಮ</translation>
 <translation id="1195412055398077112">ಓವರ್‌ಸ್ಕ್ಯಾನ್</translation>
 <translation id="119944043368869598">ಎಲ್ಲವನ್ನೂ ತೆಗೆದುಹಾಕಿ</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">Google ಅಸಿಸ್ಟೆಂಟ್‌ ಡೆಮೊ ಸೆಶನ್‌ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ.</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">ಡಿಸ್‌ಕನೆಕ್ಟ್</translation>
+<translation id="4831034276697007977">ಸ್ವಯಂಚಾಲಿತ ಕ್ಲಿಕ್‌ಗಳನ್ನು ಖಚಿತವಾಗಿಯೂ ಆಫ್ ಮಾಡಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="4849058404725798627">ಕೀಬೋರ್ಡ್‌ ಫೋಕಸ್‌ ಮೂಲಕ ವಿಷಯವನ್ನು ಎದ್ದುಗಾಣಿಸಿ</translation>
 <translation id="485592688953820832">ಯಾವುದೇ ಕ್ರಮ ಕೈಗೊಳ್ಳಬೇಡಿ (ವಿರಾಮಗೊಳಿಸಿ)</translation>
 <translation id="4872237917498892622">Alt+ಹುಡುಕಾಟ ಅಥವಾ Shift</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="SPECIFIED_RESOLUTION" /> ಅನ್ನು <ph name="DISPLAY_NAME" /> ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ರೆಸಲ್ಯೂಶನ್‌ ಅನ್ನು <ph name="FALLBACK_RESOLUTION" /> ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ</translation>
 <translation id="7562368315689366235">ಎಮೋಜಿ ಪ್ಯಾಲೆಟ್</translation>
 <translation id="7564874036684306347">ವಿಂಡೋಗಳನ್ನು ಬೇರೊಂದು ಡೆಸ್ಕ್‌ಟಾಪ್‌ಗೆ ಸರಿಸಿದರೆ, ಅದು ಅನಿರೀಕ್ಷಿತ ವರ್ತನೆಗೆ ಕಾರಣವಾಗಬಹುದು. ಆನಂತರ ಬರುವ ಅಧಿಸೂಚನೆಗಳು, ವಿಂಡೋಗಳು ಮತ್ತು ಡೈಲಾಗ್‌ಗಳು ಡೆಸ್ಕ್‌ಟಾಪ್‌ಗಳ ನಡುವೆ ವಿಭಜನೆಯಾಗಬಹುದು.</translation>
+<translation id="7568294522609223312">ಸ್ವಯಂಚಾಲಿತ ಕ್ಲಿಕ್‌ಗಳನ್ನು ಆಫ್ ಮಾಡಿ</translation>
 <translation id="7569509451529460200">ಬ್ರೈಲ್ ಹಾಗೂ ChromeVox ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="7593891976182323525">ಹುಡುಕಾಟ ಅಥವಾ Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ಮಾಲೀಕರು)</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index f24a8a3..1f4bacb 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">연결된 기기가 더욱 원활하게 작동합니다</translation>
 <translation id="112308213915226829">실행기 자동 숨김</translation>
 <translation id="1153356358378277386">페어링된 기기</translation>
+<translation id="1175572348579024023">스크롤</translation>
 <translation id="1178581264944972037">일시중지</translation>
 <translation id="1195412055398077112">오버스캔</translation>
 <translation id="119944043368869598">모두 삭제</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">데모 세션에서는 Google 어시스턴트를 사용할 수 없습니다.</translation>
 <translation id="479989351350248267">검색</translation>
 <translation id="4804818685124855865">연결 해제</translation>
+<translation id="4831034276697007977">자동 클릭을 사용 중지하시겠습니까?</translation>
 <translation id="4849058404725798627">키보드 포커스로 개체 강조표시</translation>
 <translation id="485592688953820832">작업 없음(일시중지)</translation>
 <translation id="4872237917498892622">Alt+검색 또는 Shift 키</translation>
@@ -413,6 +415,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" />에서 <ph name="SPECIFIED_RESOLUTION" />을(를) 지원하지 않습니다. 해상도가 <ph name="FALLBACK_RESOLUTION" />(으)로 변경되었습니다.</translation>
 <translation id="7562368315689366235">그림 이모티콘 팔레트</translation>
 <translation id="7564874036684306347">창을 다른 데스크톱으로 이동하면 예기치 못한 동작이 나타날 수 있습니다. 이후의 알림, 창, 대화상자가 데스크톱 간에 분할될 수 있습니다.</translation>
+<translation id="7568294522609223312">자동 클릭 사용 중지</translation>
 <translation id="7569509451529460200">점자와 ChromeVox가 사용 설정되었습니다.</translation>
 <translation id="7593891976182323525">검색 또는 Shift 키</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" />(소유자)</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index 5e073308..e3fc258 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Peranti anda akan berfungsi lebih baik bersama-sama</translation>
 <translation id="112308213915226829">Autosembunyi rak</translation>
 <translation id="1153356358378277386">Peranti digandingkan</translation>
+<translation id="1175572348579024023">Tatal</translation>
 <translation id="1178581264944972037">Jeda</translation>
 <translation id="1195412055398077112">imbas lampau</translation>
 <translation id="119944043368869598">Kosongkan semua</translation>
@@ -251,6 +252,7 @@
 <translation id="4778095205580009397">Google Assistant tidak tersedia dalam sesi tunjuk cara.</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Putuskan sambungan</translation>
+<translation id="4831034276697007977">Adakah anda pasti mahu mematikan klik automatik?</translation>
 <translation id="4849058404725798627">Serlahkan objek dengan fokus papan kekunci</translation>
 <translation id="485592688953820832">Tiada tindakan (jeda)</translation>
 <translation id="4872237917498892622">Alt+Search atau Shift</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> tidak menyokong <ph name="SPECIFIED_RESOLUTION" />. Resolusi telah ditukar kepada <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">Palet emoji</translation>
 <translation id="7564874036684306347">Tindakan memindahkan tetingkap ke desktop lain boleh menyebabkan gelagat yang tidak dijangka. Pemberitahuan, tetingkap dan dialog yang seterusnya mungkin dipisahkan antara desktop.</translation>
+<translation id="7568294522609223312">Matikan klik automatik</translation>
 <translation id="7569509451529460200">Braille dan ChromeVox didayakan</translation>
 <translation id="7593891976182323525">Search atau Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (pemilik)</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index 3e5b743e..9162d78 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Je apparaten werken samen nog beter</translation>
 <translation id="112308213915226829">Plank automatisch verbergen</translation>
 <translation id="1153356358378277386">Gekoppelde apparaten</translation>
+<translation id="1175572348579024023">Scrollen</translation>
 <translation id="1178581264944972037">Onderbreken</translation>
 <translation id="1195412055398077112">overscan</translation>
 <translation id="119944043368869598">Alles wissen</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">De Google Assistent is niet beschikbaar in een demosessie.</translation>
 <translation id="479989351350248267">zoeken</translation>
 <translation id="4804818685124855865">Verbinding verbreken</translation>
+<translation id="4831034276697007977">Weet je zeker dat je automatische klikken wilt uitschakelen?</translation>
 <translation id="4849058404725798627">Object met toetsenbordfocus markeren</translation>
 <translation id="485592688953820832">Geen actie (onderbreken)</translation>
 <translation id="4872237917498892622">Alt+Zoeken of Shift</translation>
@@ -413,6 +415,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> ondersteunt <ph name="SPECIFIED_RESOLUTION" /> niet. De resolutie is gewijzigd in <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">Emoji-palet</translation>
 <translation id="7564874036684306347">Verplaatsing van vensters naar een ander bureaublad kan leiden tot onverwacht gedrag. Verdere meldingen, vensters en dialoogvensters worden mogelijk verdeeld over de bureaubladen.</translation>
+<translation id="7568294522609223312">Automatische klikken uitschakelen</translation>
 <translation id="7569509451529460200">Braille en ChromeVox zijn ingeschakeld</translation>
 <translation id="7593891976182323525">Zoeken of Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (eigenaar)</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index 11bd565e..23af3499 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Seus dispositivos funcionam ainda melhor juntos</translation>
 <translation id="112308213915226829">Ocultar estante automaticamente</translation>
 <translation id="1153356358378277386">Dispositivos pareados</translation>
+<translation id="1175572348579024023">Rolar</translation>
 <translation id="1178581264944972037">Pausar</translation>
 <translation id="1195412055398077112">overscan</translation>
 <translation id="119944043368869598">Limpar tudo</translation>
@@ -251,6 +252,7 @@
 <translation id="4778095205580009397">O Google Assistente não está disponível para uma sessão de demonstração.</translation>
 <translation id="479989351350248267">pesquisar</translation>
 <translation id="4804818685124855865">Desconectar</translation>
+<translation id="4831034276697007977">Tem certeza de que você quer desativar os cliques automáticos?</translation>
 <translation id="4849058404725798627">Destacar objeto com o foco de teclado</translation>
 <translation id="485592688953820832">Nenhuma ação (pausar)</translation>
 <translation id="4872237917498892622">Alt + Pesquisar ou Shift</translation>
@@ -415,6 +417,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> não suporta <ph name="SPECIFIED_RESOLUTION" />. A resolução foi alterada para <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">Teclado de emojis</translation>
 <translation id="7564874036684306347">A movimentação de janelas para outra área de trabalho pode resultar em comportamentos inesperados. Notificações posteriores, janelas e caixas de diálogo podem ser divididas entre as áreas de trabalho.</translation>
+<translation id="7568294522609223312">Desativar cliques automáticos</translation>
 <translation id="7569509451529460200">Braille e ChromeVox estão ativados</translation>
 <translation id="7593891976182323525">Pesquisar ou Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (proprietário)</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index fa27a2e..fe4d1e8 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Вместе ваши устройства будут работать ещё лучше</translation>
 <translation id="112308213915226829">Автоматически скрывать панель запуска</translation>
 <translation id="1153356358378277386">Сопряженные устройства</translation>
+<translation id="1175572348579024023">Прокрутка</translation>
 <translation id="1178581264944972037">Пауза</translation>
 <translation id="1195412055398077112">Каемка экрана</translation>
 <translation id="119944043368869598">Удалить все</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">Google Ассистент в демонстрационном сеансе недоступен</translation>
 <translation id="479989351350248267">поиск</translation>
 <translation id="4804818685124855865">Отключиться</translation>
+<translation id="4831034276697007977">Вы уверены, что хотите отключить функцию автоматического нажатия?</translation>
 <translation id="4849058404725798627">Выделять элементы, выбранные с помощью клавиатуры</translation>
 <translation id="485592688953820832">Отсутствие действий (пауза)</translation>
 <translation id="4872237917498892622">Alt + Search или Shift</translation>
@@ -413,6 +415,7 @@
 <translation id="7561014039265304140">Дисплей <ph name="DISPLAY_NAME" /> не поддерживает разрешение <ph name="SPECIFIED_RESOLUTION" />. Будет использовано разрешение <ph name="FALLBACK_RESOLUTION" />.</translation>
 <translation id="7562368315689366235">Меню смайликов</translation>
 <translation id="7564874036684306347">При переносе окон на другой рабочий стол иногда возникают ошибки. Уведомления и диалоговые окна могут появляться на разных рабочих столах.</translation>
+<translation id="7568294522609223312">Выключение автоматического нажатия</translation>
 <translation id="7569509451529460200">Шрифт Брайля и функция ChromeVox включены</translation>
 <translation id="7593891976182323525">Search или Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (владелец)</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index 9aa3a2c..3f887e3 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Dina enheter fungerar ännu bättre tillsammans</translation>
 <translation id="112308213915226829">Dölj hyllan automatiskt</translation>
 <translation id="1153356358378277386">Kopplade enheter</translation>
+<translation id="1175572348579024023">Rulla</translation>
 <translation id="1178581264944972037">Paus</translation>
 <translation id="1195412055398077112">överskanning</translation>
 <translation id="119944043368869598">Ta bort alla</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">Google-assistenten är inte tillgänglig i en demosession.</translation>
 <translation id="479989351350248267">sök</translation>
 <translation id="4804818685124855865">Koppla från</translation>
+<translation id="4831034276697007977">Vill du inaktivera automatiska klick?</translation>
 <translation id="4849058404725798627">Markera objekt med tangentbordsfokus</translation>
 <translation id="485592688953820832">Ingen åtgärd (pausa)</translation>
 <translation id="4872237917498892622">Alt + Sök eller Skift</translation>
@@ -413,6 +415,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> har inte stöd för <ph name="SPECIFIED_RESOLUTION" />. Upplösningen ändrades till <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">Emoji-palett</translation>
 <translation id="7564874036684306347">Om du flyttar fönster till ett annat skrivbord kan det leda till oväntat beteende. Efterföljande meddelanden, fönster och dialogrutor kan delas upp mellan skrivborden.</translation>
+<translation id="7568294522609223312">Inaktivera automatiska klick</translation>
 <translation id="7569509451529460200">Punktskrift och ChromeVox har aktiverats</translation>
 <translation id="7593891976182323525">Sök eller Skift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ägare)</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index d6f7d4b2..ed5f2b9f 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">మీ పరికరాలు కలిసికట్టుగా మరింత బాగా పనిచేస్తాయి</translation>
 <translation id="112308213915226829">అరను స్వయంచాలకంగా దాచు</translation>
 <translation id="1153356358378277386">జత చేసిన పరికరాలు</translation>
+<translation id="1175572348579024023">స్క్రోల్ చేస్తుంది</translation>
 <translation id="1178581264944972037">పాజ్ చేయి</translation>
 <translation id="1195412055398077112">ఓవర్‌స్కాన్</translation>
 <translation id="119944043368869598">అన్ని క్లియర్ చెయ్యి</translation>
@@ -251,6 +252,7 @@
 <translation id="4778095205580009397">Google అసిస్టెంట్ డెమో సెషన్‌లో అందుబాటులో లేదు.</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">డిస్‌కనెక్ట్ చెయ్యి</translation>
+<translation id="4831034276697007977">ఆటోమేటిక్ క్లిక్‌లను మీరు ఖచ్చితంగా ఆఫ్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="4849058404725798627">కీబోర్డ్ దృష్టి కేంద్రీకరణతో అంశాన్ని హైలైట్ చేయి</translation>
 <translation id="485592688953820832">చర్య వద్దు (పాజ్ చేయి)</translation>
 <translation id="4872237917498892622">Alt+Search లేదా Shift</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> <ph name="SPECIFIED_RESOLUTION" />కు మద్దతివ్వదు. రిజల్యూషన్ <ph name="FALLBACK_RESOLUTION" />కు మార్చబడింది</translation>
 <translation id="7562368315689366235">ఎమోజి ఫలకం</translation>
 <translation id="7564874036684306347">విండోలను మరొక డెస్క్‌టాప్‌కు తరలించడం వలన ఊహించని ప్రవర్తన చోటు చేసుకోవచ్చు. తర్వాత చూపబడే నోటిఫికేషన్‌లు, విండోలు మరియు డైలాగ్‌లు డెస్క్‌టాప్‌ల మధ్య విభజించబడవచ్చు.</translation>
+<translation id="7568294522609223312">ఆటోమేటిక్ క్లిక్‌లను ఆఫ్ చేయండి</translation>
 <translation id="7569509451529460200">బ్రెయిలీ మరియు ChromeVox ప్రారంభించబడ్డాయి</translation>
 <translation id="7593891976182323525">Search లేదా Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (యజమాని)</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index dc0f366..3ba11eb 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Cihazlarınız birlikte daha da iyi çalışır</translation>
 <translation id="112308213915226829">Rafı otomatik gizle</translation>
 <translation id="1153356358378277386">Eşlenen cihazlar</translation>
+<translation id="1175572348579024023">Kaydır</translation>
 <translation id="1178581264944972037">Duraklat</translation>
 <translation id="1195412055398077112">fazla tarama</translation>
 <translation id="119944043368869598">Tümünü temizle</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">Google Asistan, demo oturumunda kullanılamaz.</translation>
 <translation id="479989351350248267">ara</translation>
 <translation id="4804818685124855865">Bağlantıyı kes</translation>
+<translation id="4831034276697007977">Otomatik tıklamaları kapatmak istediğinizden emin misiniz?</translation>
 <translation id="4849058404725798627">Klavye odağının olduğu nesneyi vurgula</translation>
 <translation id="485592688953820832">İşlem yok (duraklat)</translation>
 <translation id="4872237917498892622">Alt+Arama veya Üst Karakter</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" />, <ph name="SPECIFIED_RESOLUTION" /> çözünürlüğünü desteklemiyor. Çözünürlük <ph name="FALLBACK_RESOLUTION" /> olarak değiştirildi</translation>
 <translation id="7562368315689366235">Emoji paleti</translation>
 <translation id="7564874036684306347">Pencereleri başka bir masaüstüne taşımak, beklenmeyen davranışlara neden olabilir. Pencereler taşındıktan sonra gelen bildirimler, pencereler ve iletişim kutuları masaüstleri arasında bölünebilir.</translation>
+<translation id="7568294522609223312">Otomatik tıklamayı kapat</translation>
 <translation id="7569509451529460200">Braille ve ChromeVox etkinleştirildi</translation>
 <translation id="7593891976182323525">Arama veya Üst Karakter</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (cihaz sahibi)</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index e5218cb..076e4b5 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Ваші пристрої працюватимуть разом ще краще</translation>
 <translation id="112308213915226829">Автоматично ховати полицю</translation>
 <translation id="1153356358378277386">Підключені пристрої</translation>
+<translation id="1175572348579024023">Прокрутити</translation>
 <translation id="1178581264944972037">Пауза</translation>
 <translation id="1195412055398077112">облямівка екрана</translation>
 <translation id="119944043368869598">Очистити все</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">Google Асистент недоступний у демонстраційному сеансі.</translation>
 <translation id="479989351350248267">пошук</translation>
 <translation id="4804818685124855865">Від'єднатися</translation>
+<translation id="4831034276697007977">Вимкнути автоматичні кліки?</translation>
 <translation id="4849058404725798627">Підсвічувати об’єкт, вибраний на клавіатурі</translation>
 <translation id="485592688953820832">Нічого не робити (призупинити)</translation>
 <translation id="4872237917498892622">Alt+клавіша пошуку або Shift</translation>
@@ -413,6 +415,7 @@
 <translation id="7561014039265304140">Екран <ph name="DISPLAY_NAME" /> не підтримує роздільну здатність <ph name="SPECIFIED_RESOLUTION" />. Роздільну здатність змінено на <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">Смайли</translation>
 <translation id="7564874036684306347">Переміщення вікон на інший робочий стіл може спричинити неочікувану поведінку. Нові сповіщення та вікна можуть розділятися між робочими столами.</translation>
+<translation id="7568294522609223312">Вимкнути автоматичні кліки</translation>
 <translation id="7569509451529460200">Шрифт Брайля та ChromeVox увімкнено</translation>
 <translation id="7593891976182323525">Клавіша пошуку або Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (власник)</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index 9d9d3e0..657ca60 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">Các thiết bị của bạn hoạt động hiệu quả hơn khi kết nối với nhau</translation>
 <translation id="112308213915226829">Tự động ẩn giá</translation>
 <translation id="1153356358378277386">Thiết bị được ghép nối</translation>
+<translation id="1175572348579024023">Cuộn</translation>
 <translation id="1178581264944972037">Tạm dừng</translation>
 <translation id="1195412055398077112">quét quá mức</translation>
 <translation id="119944043368869598">Xóa tất cả</translation>
@@ -251,6 +252,7 @@
 <translation id="4778095205580009397">Bạn không thể sử dụng Trợ lý Google trong phiên minh họa.</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">Ngắt kết nối</translation>
+<translation id="4831034276697007977">Bạn có chắc chắn muốn tắt tính năng tự động nhấp không?</translation>
 <translation id="4849058404725798627">Đánh dấu đối tượng bằng tiêu điểm bàn phím</translation>
 <translation id="485592688953820832">Không có hành động nào (tạm dừng)</translation>
 <translation id="4872237917498892622">Alt+Search hoặc Shift</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> không hỗ trợ <ph name="SPECIFIED_RESOLUTION" />. Độ phân giải đã được thay đổi thành <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">Bảng màu biểu tượng cảm xúc</translation>
 <translation id="7564874036684306347">Di chuyển cửa sổ sang màn hình khác có thể gây ra hoạt động không mong muốn. Các thông báo, cửa sổ và hộp thoại tiếp theo có thể bị phân tách giữa các màn hình.</translation>
+<translation id="7568294522609223312">Tắt tính năng tự động nhấp</translation>
 <translation id="7569509451529460200">Đã bật chữ nổi Braille và ChromeVox</translation>
 <translation id="7593891976182323525">Search hoặc Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (chủ sở hữu)</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index f4d7112..d857474e 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">协同运作可使您的各部设备更好地发挥作用</translation>
 <translation id="112308213915226829">自动隐藏任务栏</translation>
 <translation id="1153356358378277386">已配对的设备</translation>
+<translation id="1175572348579024023">滚动</translation>
 <translation id="1178581264944972037">暂停</translation>
 <translation id="1195412055398077112">过扫描</translation>
 <translation id="119944043368869598">全部清除</translation>
@@ -251,6 +252,7 @@
 <translation id="4778095205580009397">无法在演示会话中使用 Google 助理。</translation>
 <translation id="479989351350248267">搜索</translation>
 <translation id="4804818685124855865">断开连接</translation>
+<translation id="4831034276697007977">确定要关闭自动点击吗?</translation>
 <translation id="4849058404725798627">突出显示键盘焦点所在对象</translation>
 <translation id="485592688953820832">不执行任何操作(暂停)</translation>
 <translation id="4872237917498892622">Alt + 搜索键或 Shift</translation>
@@ -414,6 +416,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" />不支持<ph name="SPECIFIED_RESOLUTION" />。分辨率已改为<ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">表情符号面板</translation>
 <translation id="7564874036684306347">将窗口移至另一桌面可能会导致出现意外行为 - 后续的通知、窗口和对话框可能会被拆分到不同的桌面中。</translation>
+<translation id="7568294522609223312">关闭自动点击</translation>
 <translation id="7569509451529460200">已启用盲文和 ChromeVox</translation>
 <translation id="7593891976182323525">搜索键或 Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" />(所有者)</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 10381b1..9a0161c 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -12,6 +12,7 @@
 <translation id="1104621072296271835">完成連結可進一步提升裝置效能</translation>
 <translation id="112308213915226829">自動隱藏檔案櫃</translation>
 <translation id="1153356358378277386">配對裝置</translation>
+<translation id="1175572348579024023">捲動</translation>
 <translation id="1178581264944972037">暫停</translation>
 <translation id="1195412055398077112">遮視區域</translation>
 <translation id="119944043368869598">全部清除</translation>
@@ -250,6 +251,7 @@
 <translation id="4778095205580009397">Google 助理不適用於示範工作階段。</translation>
 <translation id="479989351350248267">search</translation>
 <translation id="4804818685124855865">中斷連線</translation>
+<translation id="4831034276697007977">確定要關閉自動點擊功能嗎?</translation>
 <translation id="4849058404725798627">醒目顯示鍵盤焦點所在物件</translation>
 <translation id="485592688953820832">不執行任何動作 (暫停)</translation>
 <translation id="4872237917498892622">Alt + 搜尋鍵或 Shift 鍵</translation>
@@ -413,6 +415,7 @@
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> 不支援 <ph name="SPECIFIED_RESOLUTION" />,解析度已變更為 <ph name="FALLBACK_RESOLUTION" /></translation>
 <translation id="7562368315689366235">表情符號面板</translation>
 <translation id="7564874036684306347">將視窗移至其他桌面可能會導致未預期的行為。後續的通知、視窗和對話方塊可能會分開顯示在不同桌面上。</translation>
+<translation id="7568294522609223312">關閉自動點擊功能</translation>
 <translation id="7569509451529460200">點字模式和 ChromeVox 已啟用</translation>
 <translation id="7593891976182323525">搜尋鍵或 Shift 鍵</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (擁有者)</translation>
diff --git a/ash/system/bluetooth/tray_bluetooth_helper_legacy.cc b/ash/system/bluetooth/tray_bluetooth_helper_legacy.cc
index 0c38adc5..ed4b0b5 100644
--- a/ash/system/bluetooth/tray_bluetooth_helper_legacy.cc
+++ b/ash/system/bluetooth/tray_bluetooth_helper_legacy.cc
@@ -37,6 +37,8 @@
 
 void RecordUserInitiatedReconnectionAttemptResult(bool success) {
   UMA_HISTOGRAM_BOOLEAN(
+      "Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Result", success);
+  UMA_HISTOGRAM_BOOLEAN(
       "Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Result.SystemTray",
       success);
 }
diff --git a/ash/wm/desks/close_desk_button.cc b/ash/wm/desks/close_desk_button.cc
index 8a53bda..fbe7c23 100644
--- a/ash/wm/desks/close_desk_button.cc
+++ b/ash/wm/desks/close_desk_button.cc
@@ -83,4 +83,10 @@
                                                        kCornerRadius);
 }
 
+bool CloseDeskButton::IsPointOnButton(const gfx::Point& screen_location) const {
+  gfx::Point point_in_view = screen_location;
+  ConvertPointFromScreen(this, &point_in_view);
+  return HitTestPoint(point_in_view);
+}
+
 }  // namespace ash
diff --git a/ash/wm/desks/close_desk_button.h b/ash/wm/desks/close_desk_button.h
index 03f752a..61ee3d2 100644
--- a/ash/wm/desks/close_desk_button.h
+++ b/ash/wm/desks/close_desk_button.h
@@ -29,6 +29,8 @@
   SkColor GetInkDropBaseColor() const override;
   std::unique_ptr<views::InkDropMask> CreateInkDropMask() const override;
 
+  bool IsPointOnButton(const gfx::Point& screen_location) const;
+
  private:
   DISALLOW_COPY_AND_ASSIGN(CloseDeskButton);
 };
diff --git a/ash/wm/desks/desk_mini_view.cc b/ash/wm/desks/desk_mini_view.cc
index 39b82e7..e71a7cf 100644
--- a/ash/wm/desks/desk_mini_view.cc
+++ b/ash/wm/desks/desk_mini_view.cc
@@ -104,13 +104,26 @@
 }
 
 void DeskMiniView::OnHoverStateMayHaveChanged() {
-  // TODO(afakhry): In tablet mode, discuss showing the close button on long
-  // press.
   // Don't show the close button when hovered while the dragged window is on
   // the DesksBarView.
-  close_desk_button_->SetVisible(DesksController::Get()->CanRemoveDesks() &&
-                                 !owner_bar_->dragged_item_over_bar() &&
-                                 IsMouseHovered());
+  close_desk_button_->SetVisible(
+      DesksController::Get()->CanRemoveDesks() &&
+      !owner_bar_->dragged_item_over_bar() &&
+      (IsMouseHovered() || force_show_close_button_));
+}
+
+void DeskMiniView::OnWidgetGestureTap(const gfx::Point& screen_location,
+                                      bool is_long_gesture) {
+  const bool old_force_show_close_button = force_show_close_button_;
+  // Note that we don't want to hide the close button if it's a single tap
+  // within the bounds of an already visible button, which will later be handled
+  // as a press event on that close button that will result in closing the desk.
+  force_show_close_button_ =
+      (is_long_gesture && IsPointOnMiniView(screen_location)) ||
+      (!is_long_gesture && close_desk_button_->GetVisible() &&
+       close_desk_button_->IsPointOnButton(screen_location));
+  if (old_force_show_close_button != force_show_close_button_)
+    OnHoverStateMayHaveChanged();
 }
 
 void DeskMiniView::UpdateBorderColor() {
diff --git a/ash/wm/desks/desk_mini_view.h b/ash/wm/desks/desk_mini_view.h
index 28823c8..832b0eb0 100644
--- a/ash/wm/desks/desk_mini_view.h
+++ b/ash/wm/desks/desk_mini_view.h
@@ -51,6 +51,12 @@
   // view is mouse hovered.
   void OnHoverStateMayHaveChanged();
 
+  // Gesture tapping may affect the visibility of the close button. There's only
+  // one mini_view that shows the close button on long press at any time.
+  // This is useful for touch-only UIs.
+  void OnWidgetGestureTap(const gfx::Point& screen_location,
+                          bool is_long_gesture);
+
   // Updates the border color of the DeskPreviewView based on the activation
   // state of the corresponding desk.
   void UpdateBorderColor();
@@ -89,6 +95,10 @@
   // The close button that shows on hover.
   CloseDeskButton* close_desk_button_;
 
+  // We force showing the close button when the mini_view is long pressed or
+  // tapped using touch gestures.
+  bool force_show_close_button_ = false;
+
   DISALLOW_COPY_AND_ASSIGN(DeskMiniView);
 };
 
diff --git a/ash/wm/desks/desks_bar_view.cc b/ash/wm/desks/desks_bar_view.cc
index 344a15b..5ab8c1b 100644
--- a/ash/wm/desks/desks_bar_view.cc
+++ b/ash/wm/desks/desks_bar_view.cc
@@ -42,6 +42,11 @@
   return l10n_util::GetStringUTF16(kStringIds[mini_view_index]);
 }
 
+gfx::Point GetGestureEventScreenPoint(const ui::Event& event) {
+  DCHECK(event.IsGestureEvent());
+  return event.AsGestureEvent()->details().bounding_box().CenterPoint();
+}
+
 }  // namespace
 
 // -----------------------------------------------------------------------------
@@ -55,7 +60,9 @@
             this,
             widget_window,
             {ui::ET_MOUSE_PRESSED, ui::ET_MOUSE_DRAGGED, ui::ET_MOUSE_RELEASED,
-             ui::ET_MOUSE_MOVED, ui::ET_MOUSE_ENTERED, ui::ET_MOUSE_EXITED})) {}
+             ui::ET_MOUSE_MOVED, ui::ET_MOUSE_ENTERED, ui::ET_MOUSE_EXITED,
+             ui::ET_GESTURE_LONG_PRESS, ui::ET_GESTURE_LONG_TAP,
+             ui::ET_GESTURE_TAP, ui::ET_GESTURE_TAP_DOWN})) {}
 
   ~DeskBarHoverObserver() override = default;
 
@@ -71,6 +78,18 @@
         owner_->OnHoverStateMayHaveChanged();
         break;
 
+      case ui::ET_GESTURE_LONG_PRESS:
+      case ui::ET_GESTURE_LONG_TAP:
+        owner_->OnGestureTap(GetGestureEventScreenPoint(event),
+                             /*is_long_gesture=*/true);
+        break;
+
+      case ui::ET_GESTURE_TAP:
+      case ui::ET_GESTURE_TAP_DOWN:
+        owner_->OnGestureTap(GetGestureEventScreenPoint(event),
+                             /*is_long_gesture=*/false);
+        break;
+
       default:
         NOTREACHED();
         break;
@@ -150,6 +169,12 @@
     mini_view->OnHoverStateMayHaveChanged();
 }
 
+void DesksBarView::OnGestureTap(const gfx::Point& screen_location,
+                                bool is_long_gesture) {
+  for (auto& mini_view : mini_views_)
+    mini_view->OnWidgetGestureTap(screen_location, is_long_gesture);
+}
+
 void DesksBarView::SetDragDetails(const gfx::Point& screen_location,
                                   bool dragged_item_over_bar) {
   last_dragged_item_screen_location_ = screen_location;
diff --git a/ash/wm/desks/desks_bar_view.h b/ash/wm/desks/desks_bar_view.h
index b6f45b1..2ee6bbc 100644
--- a/ash/wm/desks/desks_bar_view.h
+++ b/ash/wm/desks/desks_bar_view.h
@@ -58,8 +58,10 @@
   // layout.
   void Init();
 
-  // Updates the visibility state of the close buttons on all the mini_views.
+  // Updates the visibility state of the close buttons on all the mini_views as
+  // a result of mouse and gesture events.
   void OnHoverStateMayHaveChanged();
+  void OnGestureTap(const gfx::Point& screen_location, bool is_long_gesture);
 
   // Called when an item is being dragged in overview mode to update whether it
   // is currently intersecting with this view, and the |screen_location| of the
diff --git a/ash/wm/desks/desks_unittests.cc b/ash/wm/desks/desks_unittests.cc
index 3763f0a..add279d 100644
--- a/ash/wm/desks/desks_unittests.cc
+++ b/ash/wm/desks/desks_unittests.cc
@@ -32,6 +32,7 @@
 #include "base/test/scoped_feature_list.h"
 #include "ui/aura/client/window_parenting_client.h"
 #include "ui/compositor_extra/shadow.h"
+#include "ui/events/gesture_detection/gesture_configuration.h"
 #include "ui/events/test/event_generator.h"
 #include "ui/wm/core/shadow_controller.h"
 #include "ui/wm/core/window_util.h"
@@ -92,6 +93,28 @@
   event_generator->ClickLeftButton();
 }
 
+void LongGestureTapOnView(const views::View* view,
+                          ui::test::EventGenerator* event_generator) {
+  event_generator->set_current_screen_location(
+      view->GetBoundsInScreen().CenterPoint());
+  event_generator->PressTouch();
+  ui::GestureConfiguration* gesture_config =
+      ui::GestureConfiguration::GetInstance();
+  const int long_press_delay_ms = gesture_config->long_press_time_in_ms() +
+                                  gesture_config->show_press_delay_in_ms();
+  base::RunLoop run_loop;
+  base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
+      FROM_HERE, run_loop.QuitClosure(),
+      base::TimeDelta::FromMilliseconds(long_press_delay_ms));
+  run_loop.Run();
+  event_generator->ReleaseTouch();
+}
+
+void GestureTapOnView(const views::View* view,
+                      ui::test::EventGenerator* event_generator) {
+  event_generator->GestureTapAt(view->GetBoundsInScreen().CenterPoint());
+}
+
 // If |drop| is false, the dragged |item| won't be dropped; giving the caller
 // a chance to do some validations before the item is dropped.
 void DragItemToPoint(OverviewItem* item,
@@ -1234,6 +1257,57 @@
   }
 }
 
+TEST_F(DesksTest, MiniViewsTouchGestures) {
+  auto* controller = DesksController::Get();
+  controller->NewDesk();
+  controller->NewDesk();
+  ASSERT_EQ(3u, controller->desks().size());
+  auto* overview_controller = Shell::Get()->overview_controller();
+  overview_controller->ToggleOverview();
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+  const auto* overview_grid =
+      GetOverviewGridForRoot(Shell::GetPrimaryRootWindow());
+  const auto* desks_bar_view = overview_grid->GetDesksBarViewForTesting();
+  ASSERT_TRUE(desks_bar_view);
+  ASSERT_EQ(3u, desks_bar_view->mini_views().size());
+  auto* desk_1_mini_view = desks_bar_view->mini_views()[0].get();
+  auto* desk_2_mini_view = desks_bar_view->mini_views()[1].get();
+  auto* desk_3_mini_view = desks_bar_view->mini_views()[2].get();
+
+  // Override the long-tap delays.
+  ui::GestureConfiguration* gesture_config =
+      ui::GestureConfiguration::GetInstance();
+  gesture_config->set_long_press_time_in_ms(50);
+  gesture_config->set_show_press_delay_in_ms(50);
+
+  // Long gesture tapping on one mini_view shows its close button, and hides
+  // those of other mini_views.
+  auto* event_generator = GetEventGenerator();
+  LongGestureTapOnView(desk_1_mini_view, event_generator);
+  EXPECT_TRUE(desk_1_mini_view->close_desk_button()->GetVisible());
+  EXPECT_FALSE(desk_2_mini_view->close_desk_button()->GetVisible());
+  EXPECT_FALSE(desk_3_mini_view->close_desk_button()->GetVisible());
+  LongGestureTapOnView(desk_2_mini_view, event_generator);
+  EXPECT_FALSE(desk_1_mini_view->close_desk_button()->GetVisible());
+  EXPECT_TRUE(desk_2_mini_view->close_desk_button()->GetVisible());
+  EXPECT_FALSE(desk_3_mini_view->close_desk_button()->GetVisible());
+
+  // Tapping on the visible close button, closes the desk rather than switches
+  // to that desk.
+  GestureTapOnView(desk_2_mini_view->close_desk_button(), event_generator);
+  ASSERT_EQ(2u, controller->desks().size());
+  ASSERT_EQ(2u, desks_bar_view->mini_views().size());
+  EXPECT_TRUE(overview_controller->InOverviewSession());
+
+  // Tapping on the invisible close button should not result in closing that
+  // desk; rather activating that desk.
+  EXPECT_FALSE(desk_1_mini_view->close_desk_button()->GetVisible());
+  GestureTapOnView(desk_1_mini_view->close_desk_button(), event_generator);
+  ASSERT_EQ(2u, controller->desks().size());
+  EXPECT_FALSE(overview_controller->InOverviewSession());
+  EXPECT_TRUE(controller->desks()[0]->is_active());
+}
+
 class DesksWithSplitViewTest : public AshTestBase {
  public:
   DesksWithSplitViewTest() = default;
diff --git a/ash/wm/overview/overview_window_drag_controller.cc b/ash/wm/overview/overview_window_drag_controller.cc
index 303f7c9c..12d4210e 100644
--- a/ash/wm/overview/overview_window_drag_controller.cc
+++ b/ash/wm/overview/overview_window_drag_controller.cc
@@ -259,8 +259,10 @@
     Shell::Get()->mouse_cursor_filter()->HideSharedEdgeIndicator();
     item_->DestroyPhantomsForDragging();
     item_->overview_grid()->RemoveDropTarget();
-    overview_session_->SetSplitViewDragIndicatorsIndicatorState(
-        IndicatorState::kNone, gfx::Point());
+    if (should_allow_split_view_) {
+      overview_session_->SetSplitViewDragIndicatorsIndicatorState(
+          IndicatorState::kNone, gfx::Point());
+    }
   }
   overview_session_->PositionWindows(/*animate=*/true);
   // This function gets called after a long press release, which bypasses
diff --git a/ash/wm/window_cycle_list.cc b/ash/wm/window_cycle_list.cc
index 564421ef..efbb5dd 100644
--- a/ash/wm/window_cycle_list.cc
+++ b/ash/wm/window_cycle_list.cc
@@ -16,13 +16,17 @@
 #include "ash/wm/window_state.h"
 #include "ash/wm/window_util.h"
 #include "ui/accessibility/ax_node_data.h"
+#include "ui/aura/client/aura_constants.h"
+#include "ui/aura/window.h"
 #include "ui/compositor/scoped_layer_animation_settings.h"
 #include "ui/display/display.h"
 #include "ui/display/screen.h"
 #include "ui/gfx/canvas.h"
 #include "ui/gfx/geometry/insets.h"
+#include "ui/gfx/image/image_skia_operations.h"
 #include "ui/views/background.h"
 #include "ui/views/border.h"
+#include "ui/views/controls/image_view.h"
 #include "ui/views/controls/label.h"
 #include "ui/views/layout/box_layout.h"
 #include "ui/views/painter.h"
@@ -41,6 +45,20 @@
 // Used for the highlight view and the shield (black background).
 constexpr float kBackgroundCornerRadius = 4.f;
 
+// Horizontal spacing between the icon and label views.
+constexpr int kIconLabelSpacingDp = 12;
+
+// Vertical padding for the label
+constexpr int kAboveLabelPadding = 5;
+constexpr int kBelowLabelPadding = 10;
+
+// The size in dp of the window icon shown on the alt tab window next to the
+// title.
+constexpr gfx::Size kIconSize{24, 24};
+
+// The font delta of the window title.
+constexpr int kLabelFontDelta = 2;
+
 // This background paints a |Painter| but fills the view's layer's size rather
 // than the view's size.
 class LayerFillBackgroundPainter : public views::Background {
@@ -75,6 +93,23 @@
                                       /*trilinear_filtering_on_init=*/
                                       features::IsTrilinearFilteringEnabled())),
         window_observer_(this) {
+    header_view_ = new views::View();
+    views::BoxLayout* layout =
+        header_view_->SetLayoutManager(std::make_unique<views::BoxLayout>(
+            views::BoxLayout::kHorizontal, gfx::Insets(), kIconLabelSpacingDp));
+    AddChildView(header_view_);
+
+    gfx::ImageSkia* icon = window->GetProperty(aura::client::kAppIconKey);
+    if (!icon || icon->size().IsEmpty())
+      icon = window->GetProperty(aura::client::kWindowIconKey);
+    if (icon && !icon->size().IsEmpty()) {
+      image_view_ = new views::ImageView();
+      image_view_->SetImage(gfx::ImageSkiaOperations::CreateResizedImage(
+          *icon, skia::ImageOperations::RESIZE_BEST, kIconSize));
+      image_view_->SetSize(kIconSize);
+      header_view_->AddChildView(image_view_);
+    }
+
     window_observer_.Add(window);
     window_title_->SetText(window->GetTitle());
     window_title_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
@@ -83,14 +118,12 @@
     // Background is not fully opaque, so subpixel rendering won't look good.
     window_title_->SetSubpixelRenderingEnabled(false);
     // The base font is 12pt (for English) so this comes out to 14pt.
-    const int kLabelSizeDelta = 2;
-    window_title_->SetFontList(
-        window_title_->font_list().DeriveWithSizeDelta(kLabelSizeDelta));
-    const int kAboveLabelPadding = 5;
-    const int kBelowLabelPadding = 10;
+    window_title_->SetFontList(gfx::FontList().Derive(
+        kLabelFontDelta, gfx::Font::NORMAL, gfx::Font::Weight::MEDIUM));
     window_title_->SetBorder(
         views::CreateEmptyBorder(kAboveLabelPadding, 0, kBelowLabelPadding, 0));
-    AddChildView(window_title_);
+    header_view_->AddChildView(window_title_);
+    layout->SetFlexForView(window_title_, 1);
 
     // Preview padding is black at 50% opacity.
     preview_background_->SetBackground(
@@ -112,9 +145,9 @@
 
   void Layout() override {
     const gfx::Size preview_area_size = GetSizeForPreviewArea();
-    // The window title is positioned above the preview area.
-    window_title_->SetBounds(0, 0, width(),
-                             height() - preview_area_size.height());
+    // The header view is positioned above the preview area.
+    header_view_->SetBounds(0, 0, width(),
+                            height() - preview_area_size.height());
 
     gfx::Rect preview_area_bounds(preview_area_size);
     preview_area_bounds.set_y(height() - preview_area_size.height());
@@ -197,6 +230,9 @@
     return preview_size;
   }
 
+  // Views which contains the icon, title.
+  views::View* header_view_ = nullptr;
+  views::ImageView* image_view_ = nullptr;
   // Displays the title of the window above the preview.
   views::Label* window_title_;
   // When visible, shows a darkened background area behind |preview_view_|
@@ -322,9 +358,8 @@
       // Case two: the container is wider than the screen. Center the target
       // view by moving the list just enough to ensure the target view is in the
       // center.
-      x_offset = width() / 2 -
-                 mirror_container_->GetMirroredXInView(
-                     target_bounds.CenterPoint().x());
+      x_offset = width() / 2 - mirror_container_->GetMirroredXInView(
+                                   target_bounds.CenterPoint().x());
 
       // However, the container must span the screen, i.e. the maximum x is 0
       // and the minimum for its right boundary is the width of the screen.
@@ -386,8 +421,7 @@
 };
 
 WindowCycleList::WindowCycleList(const WindowList& windows)
-    : windows_(windows),
-      screen_observer_(this) {
+    : windows_(windows), screen_observer_(this) {
   if (!ShouldShowUi())
     Shell::Get()->mru_window_tracker()->SetIgnoreActivations(true);
 
diff --git a/base/files/file_util_unittest.cc b/base/files/file_util_unittest.cc
index 6535319..131c62cf 100644
--- a/base/files/file_util_unittest.cc
+++ b/base/files/file_util_unittest.cc
@@ -473,6 +473,10 @@
   base_a = FilePath(temp_base_a);
 #endif
   ASSERT_TRUE(CreateDirectory(base_a));
+#if defined(OS_WIN)
+  // TEMP might be a short name which is not normalized.
+  base_a = MakeLongFilePath(base_a);
+#endif
 
   FilePath sub_a = base_a.Append(FPL("sub_a"));
   ASSERT_TRUE(CreateDirectory(sub_a));
@@ -509,6 +513,10 @@
 
   FilePath base_b = temp_dir_.GetPath().Append(FPL("base_b"));
   ASSERT_TRUE(CreateDirectory(base_b));
+#if defined(OS_WIN)
+  // TEMP might be a short name which is not normalized.
+  base_b = MakeLongFilePath(base_b);
+#endif
 
   FilePath to_sub_a = base_b.Append(FPL("to_sub_a"));
   ASSERT_TRUE(CreateDirectory(to_sub_a));
diff --git a/base/logging.h b/base/logging.h
index bab26ef..c293579 100644
--- a/base/logging.h
+++ b/base/logging.h
@@ -597,6 +597,16 @@
   (*os) << v;
 }
 
+// Overload for types that no operator<< but do have .ToString() defined.
+template <typename T>
+inline typename std::enable_if<
+    !base::internal::SupportsOstreamOperator<const T&>::value &&
+        base::internal::SupportsToString<const T&>::value,
+    void>::type
+MakeCheckOpValueString(std::ostream* os, const T& v) {
+  (*os) << v.ToString();
+}
+
 // Provide an overload for functions and function pointers. Function pointers
 // don't implicitly convert to void* but do implicitly convert to bool, so
 // without this function pointers are always printed as 1 or 0. (MSVC isn't
diff --git a/base/logging_unittest.cc b/base/logging_unittest.cc
index b316176..dbabc6d1 100644
--- a/base/logging_unittest.cc
+++ b/base/logging_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <sstream>
+
 #include "base/logging.h"
 #include "base/bind.h"
 #include "base/callback.h"
@@ -977,6 +979,46 @@
 }
 #endif  // !defined(ADDRESS_SANITIZER)
 
+const char* kToStringResult = "to_string";
+const char* kOstreamResult = "ostream";
+
+struct StructWithOstream {};
+
+std::ostream& operator<<(std::ostream& out, const StructWithOstream&) {
+  return out << kOstreamResult;
+}
+
+TEST(MakeCheckOpValueStringTest, HasOnlyOstream) {
+  std::ostringstream oss;
+  logging::MakeCheckOpValueString(&oss, StructWithOstream());
+  EXPECT_EQ(kOstreamResult, oss.str());
+}
+
+struct StructWithToString {
+  std::string ToString() const { return kToStringResult; }
+};
+
+TEST(MakeCheckOpValueStringTest, HasOnlyToString) {
+  std::ostringstream oss;
+  logging::MakeCheckOpValueString(&oss, StructWithToString());
+  EXPECT_EQ(kToStringResult, oss.str());
+}
+
+struct StructWithToStringAndOstream {
+  std::string ToString() const { return kToStringResult; }
+};
+
+std::ostream& operator<<(std::ostream& out,
+                         const StructWithToStringAndOstream&) {
+  return out << kOstreamResult;
+}
+
+TEST(MakeCheckOpValueStringTest, HasOstreamAndToString) {
+  std::ostringstream oss;
+  logging::MakeCheckOpValueString(&oss, StructWithToStringAndOstream());
+  EXPECT_EQ(kOstreamResult, oss.str());
+}
+
 }  // namespace
 
 }  // namespace logging
diff --git a/base/mac/mac_util.h b/base/mac/mac_util.h
index 22d2742..3b57528 100644
--- a/base/mac/mac_util.h
+++ b/base/mac/mac_util.h
@@ -190,6 +190,14 @@
                                       int32_t* major,
                                       int32_t* minor);
 
+// Returns an OS name + version string. e.g.:
+//
+//   "macOS Version 10.14.3 (Build 18D109)"
+//
+// Parts of this string change based on OS locale, so it's only useful for
+// displaying to the user.
+BASE_EXPORT std::string GetOSDisplayName();
+
 }  // namespace mac
 }  // namespace base
 
diff --git a/base/mac/mac_util.mm b/base/mac/mac_util.mm
index e624c44..ccd4bc47 100644
--- a/base/mac/mac_util.mm
+++ b/base/mac/mac_util.mm
@@ -482,5 +482,16 @@
   return true;
 }
 
+std::string GetOSDisplayName() {
+  std::string os_name;
+  if (IsAtMostOS10_11())
+    os_name = "OS X";
+  else
+    os_name = "macOS";
+  std::string version_string = base::SysNSStringToUTF8(
+      [[NSProcessInfo processInfo] operatingSystemVersionString]);
+  return os_name + " " + version_string;
+}
+
 }  // namespace mac
 }  // namespace base
diff --git a/base/one_shot_event_unittest.cc b/base/one_shot_event_unittest.cc
index f7e54fc..cf5a58ab 100644
--- a/base/one_shot_event_unittest.cc
+++ b/base/one_shot_event_unittest.cc
@@ -5,9 +5,9 @@
 #include "base/one_shot_event.h"
 
 #include "base/bind.h"
-#include "base/message_loop/message_loop.h"
 #include "base/run_loop.h"
 #include "base/single_thread_task_runner.h"
+#include "base/test/scoped_task_environment.h"
 #include "base/test/test_simple_task_runner.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -98,7 +98,7 @@
   OneShotEvent event;
   scoped_refptr<base::TestSimpleTaskRunner> runner(
       new base::TestSimpleTaskRunner);
-  base::MessageLoop loop;
+  base::test::ScopedTaskEnvironment scoped_task_environment;
   int runner_i = 0;
   int loop_i = 0;
 
diff --git a/base/template_util.h b/base/template_util.h
index 6eff136..51bd085 100644
--- a/base/template_util.h
+++ b/base/template_util.h
@@ -72,6 +72,12 @@
                                              << std::declval<T>()))>
     : std::true_type {};
 
+template <typename T, typename = void>
+struct SupportsToString : std::false_type {};
+template <typename T>
+struct SupportsToString<T, decltype(void(std::declval<T>().ToString()))>
+    : std::true_type {};
+
 // Used to detech whether the given type is an iterator.  This is normally used
 // with std::enable_if to provide disambiguation for functions that take
 // templatzed iterators as input.
diff --git a/base/template_util_unittest.cc b/base/template_util_unittest.cc
index 2c42445..48add1c 100644
--- a/base/template_util_unittest.cc
+++ b/base/template_util_unittest.cc
@@ -25,6 +25,9 @@
 std::ostream& operator<<(std::ostream& os, const StructWithOperator& v) {
   return os;
 }
+struct StructWithToString {
+  std::string ToString() const { return ""; }
+};
 
 // is_non_const_reference<Type>
 static_assert(!is_non_const_reference<int>::value, "IsNonConstReference");
@@ -71,6 +74,16 @@
     internal::SupportsOstreamOperator<const StructWithOperator&>::value,
     "struct with operator<< should be printable by const ref");
 
+// .ToString() support on structs.
+static_assert(!internal::SupportsToString<SimpleStruct>::value,
+              "simple struct value doesn't support .ToString()");
+static_assert(!internal::SupportsToString<const SimpleStruct&>::value,
+              "simple struct const ref doesn't support .ToString()");
+static_assert(internal::SupportsToString<StructWithToString>::value,
+              "struct with .ToString() should be printable by value");
+static_assert(internal::SupportsToString<const StructWithToString&>::value,
+              "struct with .ToString() should be printable by const ref");
+
 // base::is_trivially_copyable
 class TrivialCopy {
  public:
diff --git a/base/test/test_mock_time_task_runner.h b/base/test/test_mock_time_task_runner.h
index 97ad48a2..b5d081d6 100644
--- a/base/test/test_mock_time_task_runner.h
+++ b/base/test/test_mock_time_task_runner.h
@@ -84,7 +84,7 @@
   //     }
   //
   //     // Mock main task runner.
-  //     base::MessageLoop message_loop_;
+  //     base::test::ScopedTaskEnvironment scoped_task_environment_;
   //     base::ScopedMockTimeMessageLoopTaskRunner main_task_runner_;
   //
   //     // Mock foo task runner.
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 0f42bc7..8cc20980 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1089,8 +1089,7 @@
   }
 
   # Makes builds independent of absolute file path.
-  if (symbol_level != 0 && is_clang &&
-      strip_absolute_paths_from_debug_symbols) {
+  if (symbol_level != 0 && is_clang && strip_absolute_paths_from_debug_symbols) {
     # If debug option is given, clang includes $cwd in debug info by default.
     # For such build, this flag generates reproducible obj files even we use
     # different build directory like "out/feature_a" and "out/feature_b" if
@@ -2333,17 +2332,15 @@
 # when crash happens in unittests running on buildbot.
 config("minimal_symbols") {
   if (is_win) {
-    # Linker symbols for backtraces only.
+    # Functions, files, and line tables only.
     cflags = []
     ldflags = [ "/DEBUG" ]
 
     # All configs using /DEBUG should include this:
     configs = [ ":win_pdbaltpath" ]
 
-    # For win/asan, get stack traces with full line numbers.
-    # AddressSanitizerTests.TestAddressSanitizer needs this, and since
-    # win/asan isn't a default cq bot the build time hit is ok.
-    if (is_clang && using_sanitizer) {
+    # Enable line tables for clang. MSVC doesn't have an equivalent option.
+    if (is_clang) {
       # -gline-tables-only is the same as -g1, but clang-cl only exposes the
       # former.
       cflags += [ "-gline-tables-only" ]
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index aecd873..07c9c07 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-8911024139163151344
\ No newline at end of file
+8910995301683410640
\ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index e3b3cce..62b17b26 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-8911027623584012400
\ No newline at end of file
+8911000999377944560
\ No newline at end of file
diff --git a/build/sanitizers/lsan_suppressions.cc b/build/sanitizers/lsan_suppressions.cc
index a2b0b54..9653180 100644
--- a/build/sanitizers/lsan_suppressions.cc
+++ b/build/sanitizers/lsan_suppressions.cc
@@ -68,6 +68,9 @@
     "leak:crash_reporter::(anonymous "
     "namespace)::CrashKeyBaseSupport::Allocate\n"
 
+    // Suppress leaks in CreateCdmInstance. https://crbug.com/961062
+    "leak:media::CdmAdapter::CreateCdmInstance\n"
+
     // PLEASE READ ABOVE BEFORE ADDING NEW SUPPRESSIONS.
 
     // End of suppressions.
diff --git a/cc/test/layer_tree_pixel_test.cc b/cc/test/layer_tree_pixel_test.cc
index 9c85736..a8c392f 100644
--- a/cc/test/layer_tree_pixel_test.cc
+++ b/cc/test/layer_tree_pixel_test.cc
@@ -25,6 +25,7 @@
 #include "components/viz/common/frame_sinks/copy_output_request.h"
 #include "components/viz/common/frame_sinks/copy_output_result.h"
 #include "components/viz/service/display/software_output_device.h"
+#include "components/viz/service/display_embedder/skia_output_surface_dependency_impl.h"
 #include "components/viz/service/display_embedder/skia_output_surface_impl.h"
 #include "components/viz/test/paths.h"
 #include "components/viz/test/test_gpu_service_holder.h"
@@ -85,8 +86,10 @@
 LayerTreePixelTest::CreateDisplaySkiaOutputSurfaceOnThread() {
   // Set up the SkiaOutputSurfaceImpl.
   auto output_surface = std::make_unique<viz::SkiaOutputSurfaceImpl>(
-      viz::TestGpuServiceHolder::GetInstance()->gpu_service(),
-      gpu::kNullSurfaceHandle, viz::RendererSettings());
+      std::make_unique<viz::SkiaOutputSurfaceDependencyImpl>(
+          viz::TestGpuServiceHolder::GetInstance()->gpu_service(),
+          gpu::kNullSurfaceHandle),
+      viz::RendererSettings());
   return output_surface;
 }
 
diff --git a/cc/test/pixel_test.cc b/cc/test/pixel_test.cc
index 5dabb36..a55d89d 100644
--- a/cc/test/pixel_test.cc
+++ b/cc/test/pixel_test.cc
@@ -4,6 +4,9 @@
 
 #include "cc/test/pixel_test.h"
 
+#include <memory>
+#include <utility>
+
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/command_line.h"
@@ -32,6 +35,7 @@
 #include "components/viz/service/display/software_output_device.h"
 #include "components/viz/service/display/software_renderer.h"
 #include "components/viz/service/display_embedder/in_process_gpu_memory_buffer_manager.h"
+#include "components/viz/service/display_embedder/skia_output_surface_dependency_impl.h"
 #include "components/viz/service/display_embedder/skia_output_surface_impl.h"
 #include "components/viz/service/display_embedder/viz_process_context_provider.h"
 #include "components/viz/service/gl/gpu_service_impl.h"
@@ -56,13 +60,11 @@
 // for tests.
 class PixelTestSkiaOutputSurfaceImpl : public viz::SkiaOutputSurfaceImpl {
  public:
-  PixelTestSkiaOutputSurfaceImpl(viz::GpuServiceImpl* gpu_service,
-                                 gpu::SurfaceHandle surface_handle,
-                                 const viz::RendererSettings& renderer_settings,
-                                 bool flipped_output_surface)
-      : SkiaOutputSurfaceImpl(gpu_service,
-                              surface_handle,
-                              renderer_settings),
+  PixelTestSkiaOutputSurfaceImpl(
+      std::unique_ptr<viz::SkiaOutputSurfaceDependency> deps,
+      const viz::RendererSettings& renderer_settings,
+      bool flipped_output_surface)
+      : SkiaOutputSurfaceImpl(std::move(deps), renderer_settings),
         flipped_output_surface_(flipped_output_surface) {}
 
   // |capabilities_| is set in InitializeForGL(), so wrap BindToClient() and set
@@ -289,8 +291,9 @@
 
   // Set up the skia renderer.
   output_surface_ = std::make_unique<PixelTestSkiaOutputSurfaceImpl>(
-      gpu_service(), gpu::kNullSurfaceHandle, renderer_settings_,
-      flipped_output_surface);
+      std::make_unique<viz::SkiaOutputSurfaceDependencyImpl>(
+          gpu_service(), gpu::kNullSurfaceHandle),
+      renderer_settings_, flipped_output_surface);
   output_surface_->BindToClient(output_surface_client_.get());
   resource_provider_ = std::make_unique<viz::DisplayResourceProvider>(
       viz::DisplayResourceProvider::kGpu,
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index 5fcb11a..11344f4 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -1555,6 +1555,7 @@
   "java/src/org/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy.java",
   "java/src/org/chromium/chrome/browser/tabmodel/document/AsyncTabCreationParams.java",
   "java/src/org/chromium/chrome/browser/tabmodel/document/TabDelegate.java",
+  "java/src/org/chromium/chrome/browser/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java",
   "java/src/org/chromium/chrome/browser/tasks/ReturnToChromeExperimentsUtil.java",
   "java/src/org/chromium/chrome/browser/tasks/EngagementTimeUtil.java",
   "java/src/org/chromium/chrome/browser/tasks/JourneyManager.java",
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_zh-CN.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_zh-CN.xtb
index 36c32c7..aa0d7b7 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_zh-CN.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_zh-CN.xtb
@@ -1,15 +1,15 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-CN">
-<translation id="1492646418094134664">点按可通过 Chrome 填充信用卡信息</translation>
+<translation id="1492646418094134664">点按即可通过 Chrome 填充信用卡信息</translation>
 <translation id="2610239185026711824">建议一个密码</translation>
 <translation id="2803478378562657435">正在显示已保存的密码和密码选项</translation>
 <translation id="2903493209154104877">地址</translation>
 <translation id="4660011489602794167">显示键盘</translation>
 <translation id="5088366526685584589">目前显示的是已保存的地址</translation>
-<translation id="5552748600584301915">点按可通过 Chrome 填充地址</translation>
+<translation id="5552748600584301915">点按即可通过 Chrome 填充地址</translation>
 <translation id="6393156038355142111">建议一个安全系数高的密码</translation>
-<translation id="6810986916917535017">点按可通过 Chrome 填充密码</translation>
+<translation id="6810986916917535017">点按即可通过 Chrome 填充密码</translation>
 <translation id="7299100402441711551">显示地址</translation>
 <translation id="7494879913343971937">显示密码</translation>
 <translation id="8507520749471379845">有可用密码</translation>
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
index 7b44476..cc34f07 100644
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -37,7 +37,11 @@
     <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
     <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
     <uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
-    <uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
+    <!-- notouch build doesn't support downloads home and shouldn't need this permission -->
+    {% set notouch_build = notouch_build|default(0) %}
+    {% if notouch_build == "false" %}
+        <uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
+    {% endif %}
 
     <uses-permission android:name="android.permission.CAMERA" />
     <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
@@ -490,7 +494,6 @@
         <!-- ChromeTabbedActivity related -->
         <activity android:name="org.chromium.chrome.browser.ChromeTabbedActivity"
             android:theme="@style/Theme.Chromium.TabbedMode"
-            {% set notouch_build = notouch_build|default(0) %}
             {% if notouch_build == "true" %}
             android:exported="false"
             {% else %}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
index 1f7c6fd..ae58803 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
@@ -13,6 +13,7 @@
 
 import org.chromium.base.ContextUtils;
 import org.chromium.base.VisibleForTesting;
+import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator;
 import org.chromium.chrome.browser.contextmenu.ContextMenuPopulator;
@@ -31,6 +32,7 @@
 import org.chromium.chrome.browser.tab.TabDelegateFactory;
 import org.chromium.chrome.browser.tab.TabStateBrowserControlsVisibilityDelegate;
 import org.chromium.chrome.browser.tab.TabWebContentsDelegateAndroid;
+import org.chromium.chrome.browser.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
 import org.chromium.chrome.browser.tabmodel.TabLaunchType;
 import org.chromium.chrome.browser.tabmodel.TabModel;
 import org.chromium.chrome.browser.tabmodel.document.AsyncTabCreationParams;
@@ -153,16 +155,17 @@
         }
     }
 
-    private static class CustomTabWebContentsDelegate extends TabWebContentsDelegateAndroid {
+    private static class CustomTabWebContentsDelegate
+            extends ActivityTabWebContentsDelegateAndroid {
         private final MultiWindowUtils mMultiWindowUtils;
         private final boolean mShouldEnableEmbeddedMediaExperience;
 
         /**
          * See {@link TabWebContentsDelegateAndroid}.
          */
-        public CustomTabWebContentsDelegate(Tab tab, MultiWindowUtils multiWindowUtils,
-                boolean shouldEnableEmbeddedMediaExperience) {
-            super(tab);
+        public CustomTabWebContentsDelegate(Tab tab, ChromeActivity activity,
+                MultiWindowUtils multiWindowUtils, boolean shouldEnableEmbeddedMediaExperience) {
+            super(tab, activity);
             mMultiWindowUtils = multiWindowUtils;
             mShouldEnableEmbeddedMediaExperience = shouldEnableEmbeddedMediaExperience;
         }
@@ -210,6 +213,7 @@
         }
     }
 
+    private final ChromeActivity mActivity;
     private final boolean mShouldHideBrowserControls;
     private final boolean mIsOpenedByChrome;
     private final boolean mShouldAllowAppBanners;
@@ -221,6 +225,7 @@
     private ExternalNavigationDelegateImpl mNavigationDelegate;
 
     /**
+     * @param activity {@link ChromeActivity} instance.
      * @param shouldHideBrowserControls Whether or not the browser controls may auto-hide.
      * @param isOpenedByChrome Whether the CustomTab was originally opened by Chrome.
      * @param shouldAllowAppBanners Whether app install banners can be shown.
@@ -228,10 +233,12 @@
      * @param visibilityDelegate The delegate that handles browser control visibility associated
      *                           with browser actions (as opposed to tab state).
      */
-    private CustomTabDelegateFactory(boolean shouldHideBrowserControls, boolean isOpenedByChrome,
-            boolean shouldAllowAppBanners, boolean shouldEnableEmbeddedMediaExperience,
+    private CustomTabDelegateFactory(ChromeActivity activity, boolean shouldHideBrowserControls,
+            boolean isOpenedByChrome, boolean shouldAllowAppBanners,
+            boolean shouldEnableEmbeddedMediaExperience,
             BrowserControlsVisibilityDelegate visibilityDelegate, ExternalAuthUtils authUtils,
             MultiWindowUtils multiWindowUtils) {
+        mActivity = activity;
         mShouldHideBrowserControls = shouldHideBrowserControls;
         mIsOpenedByChrome = isOpenedByChrome;
         mShouldAllowAppBanners = shouldAllowAppBanners;
@@ -242,13 +249,14 @@
     }
 
     @Inject
-    public CustomTabDelegateFactory(CustomTabIntentDataProvider intentDataProvider,
+    public CustomTabDelegateFactory(ChromeActivity activity,
+            CustomTabIntentDataProvider intentDataProvider,
             CustomTabBrowserControlsVisibilityDelegate visibilityDelegate,
             ExternalAuthUtils authUtils, MultiWindowUtils multiWindowUtils) {
         // Don't show an app install banner for the user of a Trusted Web Activity - they've already
         // got an app installed!
-        this(intentDataProvider.shouldEnableUrlBarHiding(), intentDataProvider.isOpenedByChrome(),
-                !intentDataProvider.isTrustedWebActivity(),
+        this(activity, intentDataProvider.shouldEnableUrlBarHiding(),
+                intentDataProvider.isOpenedByChrome(), !intentDataProvider.isTrustedWebActivity(),
                 intentDataProvider.shouldEnableEmbeddedMediaExperience(), visibilityDelegate,
                 authUtils, multiWindowUtils);
     }
@@ -258,7 +266,7 @@
      * be replaced when the hidden Tab becomes shown.
      */
     static CustomTabDelegateFactory createDummy() {
-        return new CustomTabDelegateFactory(false, false, false, false, null, null, null);
+        return new CustomTabDelegateFactory(null, false, false, false, false, null, null, null);
     }
 
     @Override
@@ -281,7 +289,7 @@
     @Override
     public TabWebContentsDelegateAndroid createWebContentsDelegate(Tab tab) {
         return new CustomTabWebContentsDelegate(
-                tab, mMultiWindowUtils, mShouldEnableEmbeddedMediaExperience);
+                tab, mActivity, mMultiWindowUtils, mShouldEnableEmbeddedMediaExperience);
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
index c8be43d..06600f3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
@@ -641,12 +641,12 @@
     }
 
     /**
-     * Determines if the page is in one of the user requested download namespaces.
+     * Returns whether |nameSpace| is a temporary namespace.
      * @param nameSpace Namespace of the page in question.
-     * @return true if the page is in a user requested download namespace.
+     * @return true if the page is in a temporary namespace.
      */
-    public boolean isUserRequestedDownloadNamespace(String nameSpace) {
-        return nativeIsUserRequestedDownloadNamespace(mNativeOfflinePageBridge, nameSpace);
+    public boolean isTemporaryNamespace(String nameSpace) {
+        return nativeIsTemporaryNamespace(mNativeOfflinePageBridge, nameSpace);
     }
 
     /**
@@ -863,7 +863,7 @@
             long nativeOfflinePageBridge, WebContents webContents);
     private native boolean nativeIsInPrivateDirectory(
             long nativeOfflinePageBridge, String filePath);
-    private native boolean nativeIsUserRequestedDownloadNamespace(
+    private native boolean nativeIsTemporaryNamespace(
             long nativeOfflinePageBridge, String nameSpace);
     private native OfflinePageItem nativeGetOfflinePage(
             long nativeOfflinePageBridge, WebContents webContents);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
index 8326916..1e5145e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
@@ -438,12 +438,12 @@
 
         final String pageUrl = tab.getUrl();
         // We share temporary pages by content URI to prevent unanticipated side effects in the
-        // public directory. Temporary pages are ones not in a user requested download namespace.
+        // public directory.
         Uri uri;
-        boolean isPageUserRequested = offlinePageBridge.isUserRequestedDownloadNamespace(
-                offlinePage.getClientId().getNamespace());
+        boolean isPageTemporary =
+                offlinePageBridge.isTemporaryNamespace(offlinePage.getClientId().getNamespace());
         // Ensure that we have a file path that is longer than just "/".
-        if (!isPageUserRequested && offlinePath.length() > 1) {
+        if (isPageTemporary && offlinePath.length() > 1) {
             File file = new File(offlinePath);
             // We might get an exception if chrome does not have sharing roots configured.  If so,
             // just share by URL of the original page instead of sharing the offline page.
@@ -458,8 +458,8 @@
 
         if (!isOfflinePageShareable(offlinePageBridge, offlinePage, uri)) return false;
 
-        if (!isPageUserRequested || !offlinePageBridge.isInPrivateDirectory(offlinePath)) {
-            // Share pages temporary pages and pages already in a public location.
+        if (isPageTemporary || !offlinePageBridge.isInPrivateDirectory(offlinePath)) {
+            // Share temporary pages and pages already in a public location.
             final String pageTitle = tab.getTitle();
             final File offlinePageFile = new File(offlinePath);
             sharePage(activity, uri.toString(), pageTitle, offlinePath, offlinePageFile,
@@ -475,8 +475,7 @@
                 return;
             }
 
-            // If a user requested page is not in a public location, we must publish it before
-            // sharing it.
+            // If the page is not in a public location, we must publish it before sharing it.
             publishThenShareInternalPage(activity, offlinePageBridge, offlinePage, shareCallback);
         });
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/DEPS b/chrome/android/java/src/org/chromium/chrome/browser/tab/DEPS
index aea7680..3f83208 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/DEPS
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/DEPS
@@ -1,10 +1,10 @@
 include_rules = {
+  "-chrome",
   "+content/public/android/java/src/org/chromium/content_public",
 }
 
 specific_include_rules = {
   'Tab\.java': [
-    "-chrome",
     "+chrome/android/java/src/org/chromium/chrome/browser/night_mode",
     "+chrome/android/java/src/org/chromium/chrome/browser/tab",
     "+chrome/android/java/src/org/chromium/chrome/browser/util",
@@ -14,4 +14,7 @@
     "+ui/android/java/src/org/chromium/ui/base",
     "+ui/android/java/src/org/chromium/ui/mojom",
   ],
+  'TabDelegateFactory\.java': [
+    "+chrome/android/java/src/org/chromium/chrome/browser/tab_activity_glue",
+  ]
 }
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 61ecb52..8fa6394 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
@@ -55,8 +55,6 @@
 import org.chromium.chrome.browser.tab.TabUma.TabCreationState;
 import org.chromium.chrome.browser.tabmodel.AsyncTabParamsManager;
 import org.chromium.chrome.browser.tabmodel.TabLaunchType;
-import org.chromium.chrome.browser.tabmodel.TabModel;
-import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.tabmodel.TabReparentingParams;
 import org.chromium.chrome.browser.tabmodel.TabSelectionType;
 import org.chromium.chrome.browser.util.UrlConstants;
@@ -531,7 +529,7 @@
     /**
      * @return The application {@link Context} associated with this tab.
      */
-    protected Context getApplicationContext() {
+    public Context getApplicationContext() {
         return mThemedApplicationContext.getApplicationContext();
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabDelegateFactory.java
index ecc2403..72f5f4a3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabDelegateFactory.java
@@ -7,11 +7,13 @@
 import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator;
 import org.chromium.chrome.browser.contextmenu.ContextMenuPopulator;
 import org.chromium.chrome.browser.externalnav.ExternalNavigationHandler;
+import org.chromium.chrome.browser.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
 import org.chromium.components.embedder_support.delegate.WebContentsDelegateAndroid;
 import org.chromium.components.navigation_interception.InterceptNavigationDelegate;
 
 /**
  * A factory class to create {@link Tab} related delegates.
+ * TODO(jinsukkim): Turn this into an interface.
  */
 public class TabDelegateFactory {
     /**
@@ -20,7 +22,7 @@
      * @return The {@link WebContentsDelegateAndroid} to be used for this tab.
      */
     public TabWebContentsDelegateAndroid createWebContentsDelegate(Tab tab) {
-        return new TabWebContentsDelegateAndroid(tab);
+        return new ActivityTabWebContentsDelegateAndroid(tab, tab.getActivity());
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
index 9e4e00e..48eaf0bc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
@@ -4,73 +4,34 @@
 
 package org.chromium.chrome.browser.tab;
 
-import android.annotation.TargetApi;
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
 import android.graphics.Rect;
 import android.graphics.RectF;
-import android.media.AudioManager;
-import android.os.Build;
 import android.os.Handler;
-import android.support.v4.util.ArrayMap;
-import android.view.KeyEvent;
-import android.view.View;
+import android.support.annotation.CallSuper;
 
-import org.chromium.base.ActivityState;
-import org.chromium.base.ApplicationStatus;
 import org.chromium.base.BuildInfo;
-import org.chromium.base.Log;
 import org.chromium.base.ObserverList.RewindableIterator;
 import org.chromium.base.annotations.CalledByNative;
-import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.blink_public.platform.WebDisplayMode;
-import org.chromium.chrome.R;
 import org.chromium.chrome.browser.AppHooks;
-import org.chromium.chrome.browser.ChromeActivity;
-import org.chromium.chrome.browser.SwipeRefreshHandler;
-import org.chromium.chrome.browser.document.DocumentWebContentsDelegate;
 import org.chromium.chrome.browser.findinpage.FindMatchRectsDetails;
 import org.chromium.chrome.browser.findinpage.FindNotificationDetails;
-import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
-import org.chromium.chrome.browser.fullscreen.FullscreenManager;
 import org.chromium.chrome.browser.fullscreen.FullscreenOptions;
 import org.chromium.chrome.browser.media.MediaCaptureNotificationService;
-import org.chromium.chrome.browser.media.PictureInPicture;
 import org.chromium.chrome.browser.policy.PolicyAuditor;
-import org.chromium.chrome.browser.policy.PolicyAuditor.AuditEvent;
-import org.chromium.chrome.browser.tabmodel.TabCreatorManager.TabCreator;
-import org.chromium.chrome.browser.tabmodel.TabLaunchType;
-import org.chromium.chrome.browser.tabmodel.TabModel;
-import org.chromium.chrome.browser.tabmodel.TabModelSelector;
-import org.chromium.chrome.browser.tabmodel.TabModelUtils;
 import org.chromium.chrome.browser.tabmodel.TabWindowManager;
-import org.chromium.chrome.browser.util.IntentUtils;
 import org.chromium.components.embedder_support.delegate.WebContentsDelegateAndroid;
-import org.chromium.content_public.browser.GestureListenerManager;
 import org.chromium.content_public.browser.InvalidateTypes;
 import org.chromium.content_public.browser.WebContents;
-import org.chromium.ui.modaldialog.DialogDismissalCause;
-import org.chromium.ui.modaldialog.ModalDialogManager;
-import org.chromium.ui.modaldialog.ModalDialogProperties;
-import org.chromium.ui.modelutil.PropertyModel;
-import org.chromium.ui.mojom.WindowOpenDisposition;
 
 /**
- * A basic {@link TabWebContentsDelegateAndroid} that forwards some calls to the registered
- * {@link TabObserver}s.
+ * A basic {@link WebContentsDelegateAndroid} that proxies methods into Tab. Forwards
+ * some calls to the registered {@link TabObserver}.
  */
-public class TabWebContentsDelegateAndroid extends WebContentsDelegateAndroid {
-    /** Used for logging. */
-    private static final String TAG = "WebContentsDelegate";
-
-    private final Runnable mCloseContentsRunnable;
+public abstract class TabWebContentsDelegateAndroid extends WebContentsDelegateAndroid {
     protected final Tab mTab;
-
-    private final ArrayMap<WebContents, String> mWebContentsUrlMapping = new ArrayMap<>();
-
     protected Handler mHandler;
+    private final Runnable mCloseContentsRunnable;
 
     public TabWebContentsDelegateAndroid(Tab tab) {
         mTab = tab;
@@ -155,20 +116,7 @@
     @Override
     public void onUpdateUrl(String url) {
         RewindableIterator<TabObserver> observers = mTab.getTabObservers();
-        while (observers.hasNext()) {
-            observers.next().onUpdateUrl(mTab, url);
-        }
-    }
-
-    @Override
-    public void showRepostFormWarningDialog() {
-        // When the dialog is visible, keeping the refresh animation active
-        // in the background is distracting and unnecessary (and likely to
-        // jank when the dialog is shown).
-        SwipeRefreshHandler handler = SwipeRefreshHandler.get(mTab);
-        if (handler != null) handler.reset();
-
-        new RepostFormWarningHelper().show();
+        while (observers.hasNext()) observers.next().onUpdateUrl(mTab, url);
     }
 
     @Override
@@ -213,6 +161,7 @@
         }
     }
 
+    @CallSuper
     @Override
     public void webContentsCreated(WebContents sourceWebContents, long openerRenderProcessId,
             long openerRenderFrameId, String frameName, String targetUrl,
@@ -222,18 +171,9 @@
             observers.next().webContentsCreated(mTab, sourceWebContents, openerRenderProcessId,
                     openerRenderFrameId, frameName, targetUrl, newWebContents);
         }
-        // The URL can't be taken from the WebContents if it's paused.  Save it for later.
-        assert !mWebContentsUrlMapping.containsKey(newWebContents);
-        mWebContentsUrlMapping.put(newWebContents, targetUrl);
-
-        // TODO(dfalcantara): Re-remove this once crbug.com/508366 is fixed.
-        TabCreator tabCreator = mTab.getActivity().getTabCreator(mTab.isIncognito());
-
-        if (tabCreator != null && tabCreator.createsTabsAsynchronously()) {
-            DocumentWebContentsDelegate.getInstance().attachDelegate(newWebContents);
-        }
     }
 
+    @CallSuper
     @Override
     public void rendererUnresponsive() {
         super.rendererUnresponsive();
@@ -241,6 +181,7 @@
         mTab.handleRendererResponsiveStateChanged(false);
     }
 
+    @CallSuper
     @Override
     public void rendererResponsive() {
         super.rendererResponsive();
@@ -248,118 +189,16 @@
         mTab.handleRendererResponsiveStateChanged(true);
     }
 
-    @Override
-    public boolean isFullscreenForTabOrPending() {
-        FullscreenManager manager = FullscreenManager.from(mTab);
-        return manager != null ? manager.getPersistentFullscreenMode() : false;
-    }
-
-    protected TabModel getTabModel() {
-        // TODO(dfalcantara): Remove this when DocumentActivity.getTabModelSelector()
-        //                    can return a TabModelSelector that activateContents() can use.
-        return TabModelSelector.from(mTab).getModel(mTab.isIncognito());
-    }
-
-    @CalledByNative
-    public boolean shouldResumeRequestsForCreatedWindow() {
-        // Pause the WebContents if an Activity has to be created for it first.
-        TabCreator tabCreator = mTab.getActivity().getTabCreator(mTab.isIncognito());
-        assert tabCreator != null;
-        return !tabCreator.createsTabsAsynchronously();
-    }
-
-    @CalledByNative
-    public boolean addNewContents(WebContents sourceWebContents, WebContents webContents,
-            int disposition, Rect initialPosition, boolean userGesture) {
-        assert mWebContentsUrlMapping.containsKey(webContents);
-
-        TabCreator tabCreator = mTab.getActivity().getTabCreator(mTab.isIncognito());
-        assert tabCreator != null;
-
-        // Grab the URL, which might not be available via the Tab.
-        String url = mWebContentsUrlMapping.remove(webContents);
-
-        // Skip opening a new Tab if it doesn't make sense.
-        if (mTab.isClosing()) return false;
-
-        // Creating new Tabs asynchronously requires starting a new Activity to create the Tab,
-        // so the Tab returned will always be null.  There's no way to know synchronously
-        // whether the Tab is created, so assume it's always successful.
-        boolean createdSuccessfully = tabCreator.createTabWithWebContents(
-                mTab, webContents, TabLaunchType.FROM_LONGPRESS_FOREGROUND, url);
-        boolean success = tabCreator.createsTabsAsynchronously() || createdSuccessfully;
-
-        if (success) {
-            if (disposition == WindowOpenDisposition.NEW_FOREGROUND_TAB) {
-                if (TabModelSelector.from(mTab)
-                                .getTabModelFilterProvider()
-                                .getCurrentTabModelFilter()
-                                .getRelatedTabList(mTab.getId())
-                                .size()
-                        == 2) {
-                    RecordUserAction.record("TabGroup.Created.DeveloperRequestedNewTab");
-                }
-            } else if (disposition == WindowOpenDisposition.NEW_POPUP) {
-                PolicyAuditor auditor = AppHooks.get().getPolicyAuditor();
-                auditor.notifyAuditEvent(
-                        mTab.getApplicationContext(), AuditEvent.OPEN_POPUP_URL_SUCCESS, url, "");
-            }
-        }
-
-        return success;
-    }
-
-    @Override
-    public void activateContents() {
-        ChromeActivity activity = mTab.getActivity();
-        if (activity == null) {
-            Log.e(TAG, "Activity not set activateContents().  Bailing out.");
-            return;
-        }
-        if (activity.isActivityFinishingOrDestroyed()) {
-            Log.e(TAG, "Activity destroyed before calling activateContents().  Bailing out.");
-            return;
-        }
-        if (!mTab.isInitialized()) {
-            Log.e(TAG, "Tab not initialized before calling activateContents().  Bailing out.");
-            return;
-        }
-
-        // Do nothing if the tab can currently be interacted with by the user.
-        if (mTab.isUserInteractable()) return;
-
-        TabModel model = getTabModel();
-        int index = model.indexOf(mTab);
-        if (index == TabModel.INVALID_TAB_INDEX) return;
-        TabModelUtils.setIndex(model, index);
-
-        // Do nothing if the activity is visible (STOPPED is the only valid invisible state as we
-        // explicitly check isActivityDestroyed above).
-        if (ApplicationStatus.getStateForActivity(activity) == ActivityState.STOPPED) {
-            bringActivityToForeground();
-        }
-    }
-
     /**
-     * Brings chrome's Activity to foreground, if it is not so.
+     * Returns whether the page should resume accepting requests for the new window. This is
+     * used when window creation is asynchronous and the navigations need to be delayed.
      */
-    protected void bringActivityToForeground() {
-        // This intent is sent in order to get the activity back to the foreground if it was
-        // not already. The previous call will activate the right tab in the context of the
-        // TabModel but will only show the tab to the user if Chrome was already in the
-        // foreground.
-        // The intent is getting the tabId mostly because it does not cost much to do so.
-        // When receiving the intent, the tab associated with the tabId should already be
-        // active.
-        // Note that calling only the intent in order to activate the tab is slightly slower
-        // because it will change the tab when the intent is handled, which happens after
-        // Chrome gets back to the foreground.
-        Intent newIntent = IntentUtils.createBringTabToFrontIntent(mTab.getId());
-        if (newIntent != null) {
-            newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-            mTab.getApplicationContext().startActivity(newIntent);
-        }
-    }
+    @CalledByNative
+    protected abstract boolean shouldResumeRequestsForCreatedWindow();
+
+    @CalledByNative
+    protected abstract boolean addNewContents(WebContents sourceWebContents,
+            WebContents webContents, int disposition, Rect initialPosition, boolean userGesture);
 
     @Override
     public void closeContents() {
@@ -369,74 +208,6 @@
         mHandler.post(mCloseContentsRunnable);
     }
 
-    @Override
-    public boolean takeFocus(boolean reverse) {
-        Activity activity = mTab.getActivity();
-        if (activity == null) return false;
-        if (reverse) {
-            View menuButton = activity.findViewById(R.id.menu_button);
-            if (menuButton != null && menuButton.isShown()) {
-                return menuButton.requestFocus();
-            }
-
-            View tabSwitcherButton = activity.findViewById(R.id.tab_switcher_button);
-            if (tabSwitcherButton != null && tabSwitcherButton.isShown()) {
-                return tabSwitcherButton.requestFocus();
-            }
-        } else {
-            View urlBar = activity.findViewById(R.id.url_bar);
-            if (urlBar != null) return urlBar.requestFocus();
-        }
-        return false;
-    }
-
-    @Override
-    public void handleKeyboardEvent(KeyEvent event) {
-        if (event.getAction() == KeyEvent.ACTION_DOWN && mTab.getActivity() != null) {
-            if (mTab.getActivity().onKeyDown(event.getKeyCode(), event)) return;
-
-            // Handle the Escape key here (instead of in KeyboardShortcuts.java), so it doesn't
-            // interfere with other parts of the activity (e.g. the URL bar).
-            if (event.getKeyCode() == KeyEvent.KEYCODE_ESCAPE && event.hasNoModifiers()) {
-                WebContents wc = mTab.getWebContents();
-                if (wc != null) wc.stop();
-                return;
-            }
-        }
-        handleMediaKey(event);
-    }
-
-    /**
-     * Redispatches unhandled media keys. This allows bluetooth headphones with play/pause or
-     * other buttons to function correctly.
-     */
-    @TargetApi(19)
-    private void handleMediaKey(KeyEvent e) {
-        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return;
-        switch (e.getKeyCode()) {
-            case KeyEvent.KEYCODE_MUTE:
-            case KeyEvent.KEYCODE_HEADSETHOOK:
-            case KeyEvent.KEYCODE_MEDIA_PLAY:
-            case KeyEvent.KEYCODE_MEDIA_PAUSE:
-            case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
-            case KeyEvent.KEYCODE_MEDIA_STOP:
-            case KeyEvent.KEYCODE_MEDIA_NEXT:
-            case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
-            case KeyEvent.KEYCODE_MEDIA_REWIND:
-            case KeyEvent.KEYCODE_MEDIA_RECORD:
-            case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
-            case KeyEvent.KEYCODE_MEDIA_CLOSE:
-            case KeyEvent.KEYCODE_MEDIA_EJECT:
-            case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK:
-                AudioManager am = (AudioManager) mTab.getApplicationContext().getSystemService(
-                        Context.AUDIO_SERVICE);
-                am.dispatchMediaKeyEvent(e);
-                break;
-            default:
-                break;
-        }
-    }
-
     /**
      * @return Whether audio is being captured.
      */
@@ -467,35 +238,13 @@
         if (tab != null) nativeNotifyStopped(tab.getWebContents());
     }
 
+    /**
+     * Sets the overlay mode.
+     * Overlay mode means that we are currently using AndroidOverlays to display video, and
+     * that the compositor's surface should support alpha and not be marked as opaque.
+     */
     @CalledByNative
-    private void setOverlayMode(boolean useOverlayMode) {
-        mTab.getActivity().setOverlayMode(useOverlayMode);
-    }
-
-    private ChromeFullscreenManager getFullscreenManager() {
-        // Following get* methods use this method instead of |FullscreenManager.from()|
-        // because the latter can return null if invoked while the tab is in detached state.
-        ChromeActivity activity = mTab.getActivity();
-        return activity != null ? activity.getFullscreenManager() : null;
-    }
-
-    @Override
-    public int getTopControlsHeight() {
-        FullscreenManager manager = getFullscreenManager();
-        return manager != null ? manager.getTopControlsHeight() : 0;
-    }
-
-    @Override
-    public int getBottomControlsHeight() {
-        FullscreenManager manager = getFullscreenManager();
-        return manager != null ? manager.getBottomControlsHeight() : 0;
-    }
-
-    @Override
-    public boolean controlsResizeView() {
-        FullscreenManager manager = getFullscreenManager();
-        return manager != null ? ((ChromeFullscreenManager) manager).controlsResizeView() : false;
-    }
+    protected abstract void setOverlayMode(boolean useOverlayMode);
 
     /**
      *  This is currently called when committing a pre-rendered page or activating a portal.
@@ -510,83 +259,10 @@
         return mTab.getWindowAndroid().getDisplay().getDipScale();
     }
 
-    private void enableDoubleTap(boolean enable) {
-        WebContents wc = mTab.getWebContents();
-        GestureListenerManager gestureManager =
-                wc != null ? GestureListenerManager.fromWebContents(wc) : null;
-        if (gestureManager != null) gestureManager.updateDoubleTapSupport(enable);
-    }
-
     public void showFramebustBlockInfobarForTesting(String url) {
         nativeShowFramebustBlockInfoBar(mTab.getWebContents(), url);
     }
 
-    private class RepostFormWarningHelper extends EmptyTabObserver {
-        private ModalDialogManager mModalDialogManager;
-        private PropertyModel mDialogModel;
-
-        void show() {
-            if (mTab.getActivity() == null) return;
-            mTab.addObserver(this);
-            mModalDialogManager = mTab.getActivity().getModalDialogManager();
-
-            ModalDialogProperties
-                    .Controller dialogController = new ModalDialogProperties.Controller() {
-                @Override
-                public void onClick(PropertyModel model, int buttonType) {
-                    if (buttonType == ModalDialogProperties.ButtonType.POSITIVE) {
-                        mModalDialogManager.dismissDialog(
-                                model, DialogDismissalCause.POSITIVE_BUTTON_CLICKED);
-                    } else if (buttonType == ModalDialogProperties.ButtonType.NEGATIVE) {
-                        mModalDialogManager.dismissDialog(
-                                model, DialogDismissalCause.NEGATIVE_BUTTON_CLICKED);
-                    }
-                }
-
-                @Override
-                public void onDismiss(PropertyModel model, int dismissalCause) {
-                    mTab.removeObserver(RepostFormWarningHelper.this);
-                    if (!mTab.isInitialized()) return;
-                    switch (dismissalCause) {
-                        case DialogDismissalCause.POSITIVE_BUTTON_CLICKED:
-                            mTab.getWebContents().getNavigationController().continuePendingReload();
-                            break;
-                        case DialogDismissalCause.ACTIVITY_DESTROYED:
-                        case DialogDismissalCause.TAB_DESTROYED:
-                            // Intentionally ignored as the tab object is gone.
-                            break;
-                        default:
-                            mTab.getWebContents().getNavigationController().cancelPendingReload();
-                            break;
-                    }
-                }
-            };
-
-            Resources resources = mTab.getActivity().getResources();
-            mDialogModel = new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
-                                   .with(ModalDialogProperties.CONTROLLER, dialogController)
-                                   .with(ModalDialogProperties.TITLE, resources,
-                                           R.string.http_post_warning_title)
-                                   .with(ModalDialogProperties.MESSAGE, resources,
-                                           R.string.http_post_warning)
-                                   .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, resources,
-                                           R.string.http_post_warning_resend)
-                                   .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, resources,
-                                           R.string.cancel)
-                                   .with(ModalDialogProperties.CANCEL_ON_TOUCH_OUTSIDE, true)
-                                   .build();
-
-            mModalDialogManager.showDialog(
-                    mDialogModel, ModalDialogManager.ModalDialogType.TAB, true);
-        }
-
-        @Override
-        public void onDestroyed(Tab tab) {
-            super.onDestroyed(tab);
-            mModalDialogManager.dismissDialog(mDialogModel, DialogDismissalCause.TAB_DESTROYED);
-        }
-    }
-
     /**
      * Provides info on web preferences for viewing downloaded media.
      * @return enabled Whether embedded media experience should be enabled.
@@ -601,9 +277,7 @@
      */
     @CalledByNative
     protected boolean isPictureInPictureEnabled() {
-        ChromeActivity activity = mTab.getActivity();
-        return activity != null ? PictureInPicture.isEnabled(activity.getApplicationContext())
-                                : false;
+        return false;
     }
 
     /**
@@ -612,8 +286,7 @@
      */
     @CalledByNative
     protected boolean isNightModeEnabled() {
-        ChromeActivity activity = mTab.getActivity();
-        return activity != null ? activity.getNightModeStateProvider().isInNightMode() : false;
+        return false;
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
new file mode 100644
index 0000000..18d0d0ce
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
@@ -0,0 +1,389 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.tab_activity_glue;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.graphics.Rect;
+import android.media.AudioManager;
+import android.os.Build;
+import android.support.annotation.Nullable;
+import android.support.v4.util.ArrayMap;
+import android.view.KeyEvent;
+import android.view.View;
+
+import org.chromium.base.ActivityState;
+import org.chromium.base.ApplicationStatus;
+import org.chromium.base.Log;
+import org.chromium.base.metrics.RecordUserAction;
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AppHooks;
+import org.chromium.chrome.browser.ChromeActivity;
+import org.chromium.chrome.browser.SwipeRefreshHandler;
+import org.chromium.chrome.browser.document.DocumentWebContentsDelegate;
+import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
+import org.chromium.chrome.browser.fullscreen.FullscreenManager;
+import org.chromium.chrome.browser.media.PictureInPicture;
+import org.chromium.chrome.browser.policy.PolicyAuditor;
+import org.chromium.chrome.browser.policy.PolicyAuditor.AuditEvent;
+import org.chromium.chrome.browser.tab.EmptyTabObserver;
+import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tab.TabWebContentsDelegateAndroid;
+import org.chromium.chrome.browser.tabmodel.TabCreatorManager.TabCreator;
+import org.chromium.chrome.browser.tabmodel.TabLaunchType;
+import org.chromium.chrome.browser.tabmodel.TabModel;
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.tabmodel.TabModelUtils;
+import org.chromium.chrome.browser.util.IntentUtils;
+import org.chromium.content_public.browser.WebContents;
+import org.chromium.ui.modaldialog.DialogDismissalCause;
+import org.chromium.ui.modaldialog.ModalDialogManager;
+import org.chromium.ui.modaldialog.ModalDialogProperties;
+import org.chromium.ui.modelutil.PropertyModel;
+import org.chromium.ui.mojom.WindowOpenDisposition;
+
+/**
+ * {@link WebContentsDelegateAndroid} that interacts with {@link ChromeActivity} and those
+ * of the lifetime of the activity to process requests from underlying {@link WebContents}
+ * for a given {@link Tab}.
+ */
+public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegateAndroid {
+    private static final String TAG = "ActivityTabWCDA";
+
+    private final ArrayMap<WebContents, String> mWebContentsUrlMapping = new ArrayMap<>();
+
+    @Nullable
+    private ChromeActivity mActivity;
+
+    public ActivityTabWebContentsDelegateAndroid(Tab tab, ChromeActivity activity) {
+        super(tab);
+        mActivity = activity;
+        tab.addObserver(new EmptyTabObserver() {
+            @Override
+            public void onActivityAttachmentChanged(Tab tab, boolean isAttached) {
+                if (!isAttached) mActivity = null;
+            }
+
+            @Override
+            public void onDestroyed(Tab tab) {
+                tab.removeObserver(this);
+            }
+        });
+    }
+
+    private TabCreator getTabCreator() {
+        return mActivity != null ? mActivity.getTabCreator(mTab.isIncognito()) : null;
+    }
+
+    private FullscreenManager getFullscreenManager() {
+        return mActivity != null ? mActivity.getFullscreenManager() : null;
+    }
+
+    @Override
+    public void showRepostFormWarningDialog() {
+        // When the dialog is visible, keeping the refresh animation active
+        // in the background is distracting and unnecessary (and likely to
+        // jank when the dialog is shown).
+        SwipeRefreshHandler handler = SwipeRefreshHandler.get(mTab);
+        if (handler != null) handler.reset();
+
+        new RepostFormWarningHelper().show();
+    }
+
+    @Override
+    public void webContentsCreated(WebContents sourceWebContents, long openerRenderProcessId,
+            long openerRenderFrameId, String frameName, String targetUrl,
+            WebContents newWebContents) {
+        super.webContentsCreated(sourceWebContents, openerRenderProcessId, openerRenderFrameId,
+                frameName, targetUrl, newWebContents);
+
+        // The URL can't be taken from the WebContents if it's paused.  Save it for later.
+        assert !mWebContentsUrlMapping.containsKey(newWebContents);
+        mWebContentsUrlMapping.put(newWebContents, targetUrl);
+
+        // TODO(dfalcantara): Re-remove this once crbug.com/508366 is fixed.
+        TabCreator tabCreator = getTabCreator();
+
+        if (tabCreator != null && tabCreator.createsTabsAsynchronously()) {
+            DocumentWebContentsDelegate.getInstance().attachDelegate(newWebContents);
+        }
+    }
+
+    @Override
+    public boolean isFullscreenForTabOrPending() {
+        FullscreenManager manager = getFullscreenManager();
+        return manager != null ? manager.getPersistentFullscreenMode() : false;
+    }
+
+    @Override
+    protected boolean shouldResumeRequestsForCreatedWindow() {
+        // Pause the WebContents if an Activity has to be created for it first.
+        TabCreator tabCreator = getTabCreator();
+        assert tabCreator != null;
+        return !tabCreator.createsTabsAsynchronously();
+    }
+
+    @Override
+    public boolean addNewContents(WebContents sourceWebContents, WebContents webContents,
+            int disposition, Rect initialPosition, boolean userGesture) {
+        assert mWebContentsUrlMapping.containsKey(webContents);
+
+        TabCreator tabCreator = getTabCreator();
+        assert tabCreator != null;
+
+        // Grab the URL, which might not be available via the Tab.
+        String url = mWebContentsUrlMapping.remove(webContents);
+
+        // Skip opening a new Tab if it doesn't make sense.
+        if (mTab.isClosing()) return false;
+
+        // Creating new Tabs asynchronously requires starting a new Activity to create the Tab,
+        // so the Tab returned will always be null.  There's no way to know synchronously
+        // whether the Tab is created, so assume it's always successful.
+        boolean createdSuccessfully = tabCreator.createTabWithWebContents(
+                mTab, webContents, TabLaunchType.FROM_LONGPRESS_FOREGROUND, url);
+        boolean success = tabCreator.createsTabsAsynchronously() || createdSuccessfully;
+
+        if (success) {
+            if (disposition == WindowOpenDisposition.NEW_FOREGROUND_TAB) {
+                if (TabModelSelector.from(mTab)
+                                .getTabModelFilterProvider()
+                                .getCurrentTabModelFilter()
+                                .getRelatedTabList(mTab.getId())
+                                .size()
+                        == 2) {
+                    RecordUserAction.record("TabGroup.Created.DeveloperRequestedNewTab");
+                }
+            } else if (disposition == WindowOpenDisposition.NEW_POPUP) {
+                PolicyAuditor auditor = AppHooks.get().getPolicyAuditor();
+                auditor.notifyAuditEvent(
+                        mTab.getApplicationContext(), AuditEvent.OPEN_POPUP_URL_SUCCESS, url, "");
+            }
+        }
+
+        return success;
+    }
+
+    @Override
+    public void activateContents() {
+        if (mActivity == null) {
+            Log.e(TAG, "Activity not set activateContents().  Bailing out.");
+            return;
+        }
+
+        if (mActivity.isActivityFinishingOrDestroyed()) {
+            Log.e(TAG, "Activity destroyed before calling activateContents().  Bailing out.");
+            return;
+        }
+        if (!mTab.isInitialized()) {
+            Log.e(TAG, "Tab not initialized before calling activateContents().  Bailing out.");
+            return;
+        }
+
+        // Do nothing if the tab can currently be interacted with by the user.
+        if (mTab.isUserInteractable()) return;
+
+        TabModel model = mActivity.getTabModelSelector().getModel(mTab.isIncognito());
+        int index = model.indexOf(mTab);
+        if (index == TabModel.INVALID_TAB_INDEX) return;
+        TabModelUtils.setIndex(model, index);
+
+        // Do nothing if the mActivity is visible (STOPPED is the only valid invisible state as we
+        // explicitly check isActivityFinishingOrDestroyed above).
+        if (ApplicationStatus.getStateForActivity(mActivity) == ActivityState.STOPPED) {
+            bringActivityToForeground();
+        }
+    }
+
+    /**
+     * Brings chrome's Activity to foreground, if it is not so.
+     */
+    protected void bringActivityToForeground() {
+        // This intent is sent in order to get the activity back to the foreground if it was
+        // not already. The previous call will activate the right tab in the context of the
+        // TabModel but will only show the tab to the user if Chrome was already in the
+        // foreground.
+        // The intent is getting the tabId mostly because it does not cost much to do so.
+        // When receiving the intent, the tab associated with the tabId should already be
+        // active.
+        // Note that calling only the intent in order to activate the tab is slightly slower
+        // because it will change the tab when the intent is handled, which happens after
+        // Chrome gets back to the foreground.
+        Intent newIntent = IntentUtils.createBringTabToFrontIntent(mTab.getId());
+        if (newIntent != null) {
+            newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            mTab.getApplicationContext().startActivity(newIntent);
+        }
+    }
+
+    @Override
+    public boolean takeFocus(boolean reverse) {
+        if (mActivity == null) return false;
+        if (reverse) {
+            View menuButton = mActivity.findViewById(R.id.menu_button);
+            if (menuButton != null && menuButton.isShown()) {
+                return menuButton.requestFocus();
+            }
+
+            View tabSwitcherButton = mActivity.findViewById(R.id.tab_switcher_button);
+            if (tabSwitcherButton != null && tabSwitcherButton.isShown()) {
+                return tabSwitcherButton.requestFocus();
+            }
+        } else {
+            View urlBar = mActivity.findViewById(R.id.url_bar);
+            if (urlBar != null) return urlBar.requestFocus();
+        }
+        return false;
+    }
+
+    @Override
+    public void handleKeyboardEvent(KeyEvent event) {
+        if (event.getAction() == KeyEvent.ACTION_DOWN && mActivity != null) {
+            if (mActivity.onKeyDown(event.getKeyCode(), event)) return;
+
+            // Handle the Escape key here (instead of in KeyboardShortcuts.java), so it doesn't
+            // interfere with other parts of the activity (e.g. the URL bar).
+            if (event.getKeyCode() == KeyEvent.KEYCODE_ESCAPE && event.hasNoModifiers()) {
+                WebContents wc = mTab.getWebContents();
+                if (wc != null) wc.stop();
+                return;
+            }
+        }
+        handleMediaKey(event);
+    }
+
+    /**
+     * Redispatches unhandled media keys. This allows bluetooth headphones with play/pause or
+     * other buttons to function correctly.
+     */
+    @TargetApi(19)
+    private void handleMediaKey(KeyEvent e) {
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return;
+        switch (e.getKeyCode()) {
+            case KeyEvent.KEYCODE_MUTE:
+            case KeyEvent.KEYCODE_HEADSETHOOK:
+            case KeyEvent.KEYCODE_MEDIA_PLAY:
+            case KeyEvent.KEYCODE_MEDIA_PAUSE:
+            case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
+            case KeyEvent.KEYCODE_MEDIA_STOP:
+            case KeyEvent.KEYCODE_MEDIA_NEXT:
+            case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
+            case KeyEvent.KEYCODE_MEDIA_REWIND:
+            case KeyEvent.KEYCODE_MEDIA_RECORD:
+            case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
+            case KeyEvent.KEYCODE_MEDIA_CLOSE:
+            case KeyEvent.KEYCODE_MEDIA_EJECT:
+            case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK:
+                AudioManager am = (AudioManager) mTab.getApplicationContext().getSystemService(
+                        Context.AUDIO_SERVICE);
+                am.dispatchMediaKeyEvent(e);
+                break;
+            default:
+                break;
+        }
+    }
+
+    @Override
+    protected void setOverlayMode(boolean useOverlayMode) {
+        mActivity.setOverlayMode(useOverlayMode);
+    }
+
+    @Override
+    public int getTopControlsHeight() {
+        FullscreenManager manager = getFullscreenManager();
+        return manager != null ? manager.getTopControlsHeight() : 0;
+    }
+
+    @Override
+    public int getBottomControlsHeight() {
+        FullscreenManager manager = getFullscreenManager();
+        return manager != null ? manager.getBottomControlsHeight() : 0;
+    }
+
+    @Override
+    public boolean controlsResizeView() {
+        FullscreenManager manager = getFullscreenManager();
+        return manager != null ? ((ChromeFullscreenManager) manager).controlsResizeView() : false;
+    }
+
+    @Override
+    protected boolean isPictureInPictureEnabled() {
+        return mActivity != null ? PictureInPicture.isEnabled(mActivity.getApplicationContext())
+                                 : false;
+    }
+
+    @Override
+    protected boolean isNightModeEnabled() {
+        return mActivity != null ? mActivity.getNightModeStateProvider().isInNightMode() : false;
+    }
+
+    private class RepostFormWarningHelper extends EmptyTabObserver {
+        private ModalDialogManager mModalDialogManager;
+        private PropertyModel mDialogModel;
+
+        void show() {
+            if (mActivity == null) return;
+            mTab.addObserver(this);
+            mModalDialogManager = mActivity.getModalDialogManager();
+
+            ModalDialogProperties
+                    .Controller dialogController = new ModalDialogProperties.Controller() {
+                @Override
+                public void onClick(PropertyModel model, int buttonType) {
+                    if (buttonType == ModalDialogProperties.ButtonType.POSITIVE) {
+                        mModalDialogManager.dismissDialog(
+                                model, DialogDismissalCause.POSITIVE_BUTTON_CLICKED);
+                    } else if (buttonType == ModalDialogProperties.ButtonType.NEGATIVE) {
+                        mModalDialogManager.dismissDialog(
+                                model, DialogDismissalCause.NEGATIVE_BUTTON_CLICKED);
+                    }
+                }
+
+                @Override
+                public void onDismiss(PropertyModel model, int dismissalCause) {
+                    mTab.removeObserver(RepostFormWarningHelper.this);
+                    if (!mTab.isInitialized()) return;
+                    switch (dismissalCause) {
+                        case DialogDismissalCause.POSITIVE_BUTTON_CLICKED:
+                            mTab.getWebContents().getNavigationController().continuePendingReload();
+                            break;
+                        case DialogDismissalCause.ACTIVITY_DESTROYED:
+                        case DialogDismissalCause.TAB_DESTROYED:
+                            // Intentionally ignored as the tab object is gone.
+                            break;
+                        default:
+                            mTab.getWebContents().getNavigationController().cancelPendingReload();
+                            break;
+                    }
+                }
+            };
+
+            Resources resources = mActivity.getResources();
+            mDialogModel = new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
+                                   .with(ModalDialogProperties.CONTROLLER, dialogController)
+                                   .with(ModalDialogProperties.TITLE, resources,
+                                           R.string.http_post_warning_title)
+                                   .with(ModalDialogProperties.MESSAGE, resources,
+                                           R.string.http_post_warning)
+                                   .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, resources,
+                                           R.string.http_post_warning_resend)
+                                   .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, resources,
+                                           R.string.cancel)
+                                   .with(ModalDialogProperties.CANCEL_ON_TOUCH_OUTSIDE, true)
+                                   .build();
+
+            mModalDialogManager.showDialog(
+                    mDialogModel, ModalDialogManager.ModalDialogType.TAB, true);
+        }
+
+        @Override
+        public void onDestroyed(Tab tab) {
+            super.onDestroyed(tab);
+            mModalDialogManager.dismissDialog(mDialogModel, DialogDismissalCause.TAB_DESTROYED);
+        }
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDelegateFactory.java
index fc26329..2f49768d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDelegateFactory.java
@@ -19,6 +19,7 @@
 import org.chromium.chrome.browser.tab.TabContextMenuItemDelegate;
 import org.chromium.chrome.browser.tab.TabDelegateFactory;
 import org.chromium.chrome.browser.tab.TabWebContentsDelegateAndroid;
+import org.chromium.chrome.browser.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
 import org.chromium.chrome.browser.util.IntentUtils;
 import org.chromium.webapk.lib.client.WebApkNavigationClient;
 
@@ -27,7 +28,8 @@
  * {@link SingleTabActivity}.
  */
 public class WebappDelegateFactory extends TabDelegateFactory {
-    private static class WebappWebContentsDelegateAndroid extends TabWebContentsDelegateAndroid {
+    private static class WebappWebContentsDelegateAndroid
+            extends ActivityTabWebContentsDelegateAndroid {
         private final WebappActivity mActivity;
 
         /** Action for do-nothing activity for activating WebAPK. */
@@ -35,7 +37,7 @@
                 "org.chromium.chrome.browser.webapps.ActivateWebApkActivity.ACTIVATE";
 
         public WebappWebContentsDelegateAndroid(WebappActivity activity, Tab tab) {
-            super(tab);
+            super(tab, activity);
             mActivity = activity;
         }
 
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 5a56ffe..a7ff9f0f 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">አትም</translation>
 <translation id="1445680696957526815">የChrome አባላት እርስ ከራሳቸው ጋር ተኳሃኝ አይደሉም። Chrome እያላቀ ሊሆን ይችላል፣ እባክዎ በጥቂት ደቂቃዎች ውስጥ እንደገና ይሞክሩ። ችግሩ ከቀጠለ Chromeን አራግፈውት እንደገና ጭነው ይሞክሩ።</translation>
 <translation id="1446450296470737166">ሙሉ የMIDI መሣሪያዎች መቆጣጠርን ያስችላል</translation>
-<translation id="1449080968331948513">ውሂብ ቆጣቢ አሁን በቀላል ሁነታ ላይ ነው ያለው</translation>
 <translation id="145097072038377568">በAndroid ቅንብሮች ውስጥ ጠፍቷል።</translation>
 <translation id="1477626028522505441">በአገልጋይ ችግሮች ምክንያት <ph name="FILE_NAME" />ን ማውረድ አልተሳካም።</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 ተጨማሪ)}one{ (+ # ተጨማሪ)}other{ (+ # ተጨማሪ)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">የይለፍ ቃል ሰርዝ</translation>
 <translation id="1516229014686355813">ለመፈለግ መታ ያድርጉ የተመረጠውን ቃልን እና አሁን ያለውን ገጽ እንደ አውድ አድርጎ ወደ Google ፍለጋ ይልካቸዋል። በ<ph name="BEGIN_LINK" />ቅንብሮች<ph name="END_LINK" /> ውስጥ ሊያጠፉት ይችላሉ።</translation>
 <translation id="1521774566618522728">ገባሪ ዛሬ</translation>
-<translation id="1539064842193522527">አገናኝ በChrome ውስጥ ተከፍቷል</translation>
 <translation id="1549000191223877751">ወደ ሌላ መስኮት ውሰድ</translation>
 <translation id="1553358976309200471">Chromeን አዘምን</translation>
 <translation id="1569387923882100876">የተገናኘ መሣሪያ</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">ስምረትን በማንኛውም ጊዜ በቅንብሮች ውስጥ ማብራት ይችላሉ።</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> ዕልባት}one{<ph name="BOOKMARKS_COUNT_MANY" /> ዕልባቶች}other{<ph name="BOOKMARKS_COUNT_MANY" /> ዕልባቶች}}</translation>
 <translation id="3089395242580810162">ማንነትን በማያሳውቅ ትር ክፈት</translation>
-<translation id="311456632243022227">በርካታ አገናኞች በChrome ውስጥ ተከፍተዋል</translation>
 <translation id="3115898365077584848">መረጃ አሳይ</translation>
 <translation id="3123473560110926937">በአንዳንድ ጣቢያዎች ላይ ታግዷል</translation>
 <translation id="3137521801621304719">ከማንነት የማያሳውቅ ሁነታ ይውጡ</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">ይሄንን በኋላ ቅንብሮች ውስጥ ሊለውጡት ይችላሉ</translation>
 <translation id="7180611975245234373">አድስ</translation>
 <translation id="7189372733857464326">የGoogle Play አገልግሎቶች አዘምኖ እስኪጨርስ በመጠበቅ ላይ</translation>
-<translation id="7189598951263744875">አጋራ...</translation>
 <translation id="7191430249889272776">ትር ጀርባ ላይ ተከፍቷል።</translation>
 <translation id="723171743924126238">ምስሎችን ይምረጡ</translation>
 <translation id="7233236755231902816">ድሩን በቋንቋዎ ለማየት የቅርብ ጊዜውን የChrome ስሪት ያግኙ</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">ጣቢያዎች ድምፀ-ከል የተደረገባቸው ቪዲዮዎችን በራስ-ሰር እንዲያጫውቱ ይፍቀዱላቸው (የሚመከር)</translation>
 <translation id="7453467225369441013">ከአብዛኛዎቹ ጣቢያዎች ዘግተው ያስወጣዎታል። ከእርስዎ የGoogle መለያ ዘግተው እንዲወጡ አይደረጉም።</translation>
 <translation id="7454641608352164238">በቂ ቦታ የለም</translation>
-<translation id="7455923816558154057">ለመመልከት መታ ያድርጉ</translation>
 <translation id="7473891865547856676">አይ፣ አመሰግናለሁ</translation>
 <translation id="7475192538862203634">ይህን በተደጋጋሚነት እያዩት ከሆኑ እነዚህን <ph name="BEGIN_LINK" />የአስተያየት ጥቆማዎች<ph name="END_LINK" /> ይሞክሩ።</translation>
 <translation id="7475688122056506577">ኤስዲ ካርድ አልተገኘም። አንዳንዶቹ ፋይሎችዎ ሊጎድሉ ይችላሉ።</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 154fec7..35f1f5a 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ar">
 <translation id="1006017844123154345">فتح على الإنترنت</translation>
+<translation id="1028699632127661925">جارٍ الإرسال إلى <ph name="DEVICE_NAME" />...</translation>
 <translation id="1036727731225946849">جارٍ إضافة <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">من المواقع الإلكترونية</translation>
 <translation id="1049743911850919806">التصفح المتخفي</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">البحث والاستكشاف</translation>
 <translation id="1264974993859112054">رياضة</translation>
 <translation id="1272079795634619415">إيقاف</translation>
+<translation id="1272444412400969138">منتقي جهاز لمشاركة علامة تبويب معه.</translation>
 <translation id="1283039547216852943">النقر للتوسيع</translation>
 <translation id="1285320974508926690">عدم ترجمة هذا الموقع مطلقًا</translation>
 <translation id="1291207594882862231">محو السجل وملفات تعريف الارتباط وبيانات المواقع وذاكرة التخزين المؤقت...</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">مرحبًا، <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">البحث</translation>
 <translation id="1384959399684842514">تم إيقاف التنزيل مؤقتًا</translation>
+<translation id="1386674309198842382">نشط قبل <ph name="LAST_UPDATED" /> من الأيام</translation>
 <translation id="1389974829397082527">ما مِن إشارات مرجعية هنا</translation>
 <translation id="1397811292916898096">البحث باستخدام <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">متضمّن في <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">طباعة</translation>
 <translation id="1445680696957526815">‏مكونات Chrome غير متوافقة مع بعضها البعض. قد تتم ترقية Chrome؛ لذا يُرجى إعادة المحاولة بعد دقائق قليلة. وإذا استمرت المشكلة، فحاول إلغاء تثبيت Chrome وإعادة تثبيته.</translation>
 <translation id="1446450296470737166">‏السماح بالتحكم الكامل لأجهزة MIDI</translation>
-<translation id="1449080968331948513">يُشار إلى ميزة "توفير البيانات" الآن باسم "الوضع البسيط"</translation>
 <translation id="145097072038377568">‏تم إيقافه في إعدادات Android.</translation>
 <translation id="1477626028522505441">تعذّر تنزيل الملف <ph name="FILE_NAME" /> بسبب مشاكل بالخادم.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (أكثر من عنصر واحد آخر)}zero{ (أكثر من # عناصر أخرى)}two{ (أكثر من عنصرين (#) آخرين)}few{ (أكثر من # عناصر أخرى)}many{ (أكثر من # عنصرًا آخر)}other{ (أكثر من # عنصر آخر)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">حذف كلمة المرور</translation>
 <translation id="1516229014686355813">‏تعمل ميزة "البحث بالنقر" على إرسال الكلمة المُحدَّدة والصفحة الحالية كسياق إلى بحث Google. يمكنك إيقافها في <ph name="BEGIN_LINK" />الإعدادات<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">نشط اليوم</translation>
-<translation id="1539064842193522527">‏تم فتح الرابط في Chrome</translation>
 <translation id="1549000191223877751">الانتقال إلى نافذة أخرى</translation>
 <translation id="1553358976309200471">‏تحديث Chrome‏</translation>
 <translation id="1569387923882100876">جهاز متصل</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">يمكنك تفعيل المزامنة في أي وقت في الإعدادات.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{إشارة مرجعية <ph name="BOOKMARKS_COUNT_ONE" />}zero{<ph name="BOOKMARKS_COUNT_MANY" /> إشارات مرجعية}two{إشارتان مرجعيتان (<ph name="BOOKMARKS_COUNT_MANY" />)}few{<ph name="BOOKMARKS_COUNT_MANY" /> إشارات مرجعية}many{<ph name="BOOKMARKS_COUNT_MANY" /> إشارةً مرجعيةً}other{<ph name="BOOKMARKS_COUNT_MANY" /> إشارة مرجعية}}</translation>
 <translation id="3089395242580810162">الفتح في علامة تبويب تصفّح متخفي</translation>
-<translation id="311456632243022227">‏تم فتح عدّة روابط في Chrome</translation>
 <translation id="3115898365077584848">عرض المعلومات</translation>
 <translation id="3123473560110926937">حظر الإعلانات في بعض المواقع</translation>
 <translation id="3137521801621304719">مغادرة وضع التصفح المتخفي</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">السماح لموقع ويب معيّن بتشغيل ملفات تعريف الارتباط</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{ساعة واحدة (#)}zero{# ساعة}two{ساعتان (#)}few{# ساعات}many{# ساعةً}other{# ساعة}}</translation>
 <translation id="4042870126885713738">يتم عرض اقتراحات عند تعذّر فتح عنوان ويب أو تعذّر الاتصال بالإنترنت.</translation>
+<translation id="4044912625106523635">يتم فتح منتقي الأجهزة لمشاركة علامة تبويب معه بارتفاع كامل.</translation>
 <translation id="4046123991198612571">المقطع الصوتي التالي</translation>
 <translation id="4048707525896921369">‏يمكنك معرفة معلومات عن مواضيع على المواقع الإلكترونية بدون مغادرة الصفحة. تُرسل ميزة "البحث بالنقر" الكلمة والسياق المحيط بها إلى "بحث Google" للحصول على تعريفات وصور ونتائج بحث وتفاصيل أخرى ذات الصلة بها.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">لا يمكن للجهاز فتح المحتوى لتنزيله</translation>
 <translation id="528192093759286357">اسحب من الجزء العلوي والمس زر الرجوع للخروج من وضع ملء الشاشة.</translation>
 <translation id="5284584623296338184">‏لن تتم بعد الآن مزامنة التغييرات التي تطرأ على الإشارات المرجعية والسجلّ وكلمات المرور وغيرها من الإعدادات مع حسابك على Google، ولكن ستظل بياناتك الحالية مخزّنة في حسابك على Google.</translation>
+<translation id="5292796745632149097">إرسال إلى</translation>
 <translation id="5300589172476337783">عرض</translation>
 <translation id="5301954838959518834">حسنًا</translation>
 <translation id="5304593522240415983">لا يمكن ترك هذا الحقل فارغًا</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">المزامنة</translation>
 <translation id="641643625718530986">طباعة…</translation>
 <translation id="6416782512398055893">تم التنزيل بحجم <ph name="MBS" /> ميغابايت</translation>
+<translation id="6418750371676080905">تم إغلاق منتقي جهاز لمشاركة علامة تبويب معه.</translation>
 <translation id="6427112570124116297">ترجمة موقع الويب</translation>
 <translation id="6433501201775827830">اختيار محرك البحث</translation>
 <translation id="6437478888915024427">معلومات الصفحة</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">يمكنك استخدام خدمة التوقّعات لعرض طلبات البحث ذات الصلة ومواقع الويب الشائعة أثناء الكتابة في شريط العناوين.</translation>
 <translation id="666731172850799929">الفتح في <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">‏إشعار خصوصية Chrome</translation>
+<translation id="6672986458216094438">يتم فتح منتقي الأجهزة لمشاركة علامة تبويب معه بنصف ارتفاع.</translation>
 <translation id="6697492270171225480">عرض اقتراحات للصفحات المشابهة عند تعذّر العثور على صفحة</translation>
 <translation id="6697947395630195233">‏يحتاج Chrome إلى الوصول إلى موقعك الجغرافي لمشاركة موقعك الجغرافي مع موقع الويب هذا.</translation>
 <translation id="6698801883190606802">إدارة البيانات المتزامنة</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">يمكنك تغيير ذلك لاحقًا من "الإعدادات"</translation>
 <translation id="7180611975245234373">إعادة التحميل</translation>
 <translation id="7189372733857464326">‏انتظار انتهاء تحديث خدمات Google Play</translation>
-<translation id="7189598951263744875">مشاركة...</translation>
 <translation id="7191430249889272776">تم فتح علامة التبويب في الخلفية.</translation>
 <translation id="723171743924126238">تحديد الصور</translation>
 <translation id="7233236755231902816">‏للاطّلاع على الويب بلغتك، يمكنك الحصول على أحدث إصدار من Chrome.</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">السماح لمواقع الويب بتشغيل الفيديوهات المكتومة الصوت تلقائيًا (مُستحسن)</translation>
 <translation id="7453467225369441013">‏سيتم تسجيل الخروج من معظم مواقع الويب، لكن لن يتم تسجيل الخروج من حسابك على Google.</translation>
 <translation id="7454641608352164238">مساحة التخزين غير كافية</translation>
-<translation id="7455923816558154057">يُرجى النقر للعرض</translation>
 <translation id="7473891865547856676">لا، شكرًا</translation>
 <translation id="7475192538862203634">إذا تكرّر هذا الخطأ، ننصحك بالاطّلاع على هذه <ph name="BEGIN_LINK" />الاقتراحات<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">‏لم يتم العثور على بطاقة SD. قد يكون بعض الملفات مفقودًا.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> قديم.</translation>
 <translation id="7947953824732555851">قبول وتسجيل الدخول</translation>
 <translation id="7963646190083259054">المورّد:</translation>
+<translation id="7971136598759319605">نشط قبل يوم واحد</translation>
 <translation id="7975379999046275268">معاينة صفحة <ph name="BEGIN_NEW" />ميزة جديدة<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">التحميل المُسبق للصفحات للحصول على أداء أسرع أثناء التصفّح والبحث</translation>
 <translation id="79859296434321399">‏لعرض محتوى الواقع المُعزَّز، يُرجى تثبيت ARCore</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 ef19aef..b82d406 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Печат</translation>
 <translation id="1445680696957526815">Компонентите на Chrome не са съвместими един с друг. Възможно е браузърът да се надстройва. Моля, опитайте отново след няколко минути. Ако проблемът не се отстрани, пробвайте да деинсталирате и да инсталирате отново Chrome.</translation>
 <translation id="1446450296470737166">Разр. на пълния контрол над MIDI</translation>
-<translation id="1449080968331948513">„Икономия на данни“ вече е „олекотен режим“</translation>
 <translation id="145097072038377568">Изключено от настройките на Android</translation>
 <translation id="1477626028522505441">Изтеглянето на „<ph name="FILE_NAME" />“ не бе успешно поради проблеми в сървъра.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ още 1)}other{ (+ още #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Изтриване на паролата</translation>
 <translation id="1516229014686355813">При търсене с докосване избраната дума и текущата страница се изпращат като контекст до Google Търсене. Можете да изключите функцията от <ph name="BEGIN_LINK" />Настройки<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Активно днес</translation>
-<translation id="1539064842193522527">Връзката е отворена в Chrome</translation>
 <translation id="1549000191223877751">Преместв. в другия прозорец</translation>
 <translation id="1553358976309200471">Актуализиране на Chrome</translation>
 <translation id="1569387923882100876">Свързано устройство</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Можете по всяко време да включите синхронизирането в настройките</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> отметка}other{<ph name="BOOKMARKS_COUNT_MANY" /> отметки}}</translation>
 <translation id="3089395242580810162">Отваряне в раздел „инкогнито“</translation>
-<translation id="311456632243022227">Няколко връзки са отв. в Chrome</translation>
 <translation id="3115898365077584848">Показване на информацията</translation>
 <translation id="3123473560110926937">Блокиране на някои сайтове</translation>
 <translation id="3137521801621304719">Напускане на режима „инкогнито“</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Можете да промените това по-късно от настройките</translation>
 <translation id="7180611975245234373">Опресняване</translation>
 <translation id="7189372733857464326">Изчаква се актуализирането на услугите за Google Play да приключи</translation>
-<translation id="7189598951263744875">Споделяне...</translation>
 <translation id="7191430249889272776">Разделът е отворен на заден план.</translation>
 <translation id="723171743924126238">Избиране на изображения</translation>
 <translation id="7233236755231902816">За да виждате съдържанието в мрежата на своя език, изтеглете най-новата версия на Chrome</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Разрешаване на сайтовете автоматично да възпроизвеждат видеоклипове със заглушен звук (препоръчително)</translation>
 <translation id="7453467225369441013">Ще излезете от повечето сайтове, но не и от профила си в Google.</translation>
 <translation id="7454641608352164238">Няма достатъчно място</translation>
-<translation id="7455923816558154057">Докоснете за преглед</translation>
 <translation id="7473891865547856676">Не, благодаря</translation>
 <translation id="7475192538862203634">Ако виждате това често, изпробвайте тези <ph name="BEGIN_LINK" />предложения<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD картата не е намерена. Някои файлове може да липсват.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb b/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb
index 2afecd4..c5a1ca0 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">প্রিন্ট</translation>
 <translation id="1445680696957526815">Chrome এর উপাদানগুলি একে অপরের সাথে বেমানান৷ Chrome আপগ্রেড করা হতে পারে, অনুগ্রহ করে কয়েক মিনিটের মধ্যে আবার চেষ্টা করুন৷ সমস্যাটি থেকে গেলে, Chrome আনইনস্টল করে পুনরায় ইনস্টল করুন৷</translation>
 <translation id="1446450296470737166">MIDI ডিভাইসগুলির পূর্ণ নিয়ন্ত্রণের অনুমতি দিন</translation>
-<translation id="1449080968331948513">ডেটা সেভার এখন লাইট মোড হয়ে গেছে</translation>
 <translation id="145097072038377568">Android সেটিংসে বন্ধ করা অাছে</translation>
 <translation id="1477626028522505441">সার্ভার সমস্যার কারণে <ph name="FILE_NAME" /> ডাউনলোড করা যায়নি।</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ আরও ১টি)}one{ (+ আরও #টি)}other{ (+ আরও #টি)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">পাসওয়ার্ড মুছুন</translation>
 <translation id="1516229014686355813">'সার্চ করতে ট্যাপ করুন' বৈশিষ্ট্যটি Google সার্চের রেফারেন্স হিসেবে বেছে নেওয়া শব্দ এবং বর্তমান পৃষ্ঠাটি পাঠায়। আপনি <ph name="BEGIN_LINK" />সেটিংস<ph name="END_LINK" /> থেকে এটি বন্ধ করতে পারেন।</translation>
 <translation id="1521774566618522728">আজ ব্যবহার করা হয়েছে</translation>
-<translation id="1539064842193522527">Chrome-এ লিঙ্কটি খোলা হয়েছে</translation>
 <translation id="1549000191223877751">অন্য উইন্ডোতে সরান</translation>
 <translation id="1553358976309200471">Chrome আপডেট করুন</translation>
 <translation id="1569387923882100876">সংযুক্ত ডিভাইস</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">যেকোনও সময় সেটিংস থেকে আপনি সিঙ্ক চালু করতে পারেন</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" />টি বুকমার্ক}one{<ph name="BOOKMARKS_COUNT_MANY" />টি বুকমার্ক}other{<ph name="BOOKMARKS_COUNT_MANY" />টি বুকমার্ক}}</translation>
 <translation id="3089395242580810162">ছদ্মবেশী ট্যাবে খুলুন</translation>
-<translation id="311456632243022227">Chrome এ একাধিক লিঙ্ক খোলা আছে</translation>
 <translation id="3115898365077584848">তথ্য দেখুন</translation>
 <translation id="3123473560110926937">কিছু সাইটে ব্লক করা হয়েছে</translation>
 <translation id="3137521801621304719">ছদ্মবেশী মোড ছেড়ে যান</translation>
@@ -859,7 +856,6 @@
 <translation id="7177466738963138057">আপনি পরে সেটিংসে এই পরিবর্তন করতে পারবেন</translation>
 <translation id="7180611975245234373">রিফ্রেশ করুন</translation>
 <translation id="7189372733857464326">Google Play পরিষেবাগুলির আপডেট শেষ হওয়ার জন্য অপেক্ষা করছে</translation>
-<translation id="7189598951263744875">শেয়ার করুন...</translation>
 <translation id="7191430249889272776">পটভূমিতে ট্যাব খোলা হয়েছে।</translation>
 <translation id="723171743924126238">ছবি বেছে নিন</translation>
 <translation id="7233236755231902816">ওয়েবের কন্টেন্ট নিজের ভাষায় পড়তে, Chrome-এর লেটেস্ট ভার্সন ইনস্টল করুন</translation>
@@ -896,7 +892,6 @@
 <translation id="7445411102860286510">সাইটগুলিকে মিউট করে রাখা ভিডিও স্বতঃবাজানোর মঞ্জুরি দেয় (প্রস্তাবিত)</translation>
 <translation id="7453467225369441013">বেশিরভাগ সাইট থেকে আপনাকে সাইন-আউট করিয়ে দেয়। তবে আপনার Google অ্যাকাউন্ট থেকে আপনাকে সাইন-আউট করানো হবে না।</translation>
 <translation id="7454641608352164238">পর্যাপ্ত জায়গা নেই</translation>
-<translation id="7455923816558154057">দেখতে ট্যাপ করুন</translation>
 <translation id="7473891865547856676">না থাক</translation>
 <translation id="7475192538862203634">আপনি যদি এটি প্রায়ই দেখতে পান, তাহলে <ph name="BEGIN_LINK" />প্রস্তাবনাগুলি<ph name="END_LINK" /> চেষ্টা করে দেখুন৷</translation>
 <translation id="7475688122056506577">এসডি কার্ড পাওয়া যায়নি। আপনার কিছু ফাইল নাও থাকতে পারে।</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 4fe149a..098f5d6 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Imprimeix</translation>
 <translation id="1445680696957526815">Els components de Chrome no són compatibles entre ells. És possible que Chrome s'estigui actualitzant. Torneu-ho a provar d'aquí a uns quants minuts. Si el problema continua, desinstal·leu Chrome i torneu-lo a instal·lar.</translation>
 <translation id="1446450296470737166">Permet control total disp. MIDI</translation>
-<translation id="1449080968331948513">Ara l'extensió Economitzador de dades funciona en mode bàsic</translation>
 <translation id="145097072038377568">Aquest permís està desactivat a la configuració d'Android</translation>
 <translation id="1477626028522505441">No s'ha pogut baixar <ph name="FILE_NAME" /> a causa de problemes amb el servidor.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (i 1 més)}other{ (i # més)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Suprimeix la contrasenya</translation>
 <translation id="1516229014686355813">La funció Toca per cercar envia la paraula seleccionada i la pàgina actual com a context a la Cerca de Google. La pots desactivar a <ph name="BEGIN_LINK" />Configuració<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Actiu avui</translation>
-<translation id="1539064842193522527">Enllaç obert a Chrome</translation>
 <translation id="1549000191223877751">Mou a l'altra finestra</translation>
 <translation id="1553358976309200471">Actualitza Chrome</translation>
 <translation id="1569387923882100876">Dispositiu connectat</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Pots activar la sincronització en qualsevol moment des de la configuració</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> adreça d'interès}other{<ph name="BOOKMARKS_COUNT_MANY" /> adreces d'interès}}</translation>
 <translation id="3089395242580810162">Obre en pestanya d'incògnit</translation>
-<translation id="311456632243022227">Diversos enllaços oberts a Chrome</translation>
 <translation id="3115898365077584848">Mostra la informació</translation>
 <translation id="3123473560110926937">Bloquejat en alguns llocs web</translation>
 <translation id="3137521801621304719">Surt del mode d'incògnit</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Pots canviar aquesta opció més endavant a Configuració</translation>
 <translation id="7180611975245234373">Actualitza</translation>
 <translation id="7189372733857464326">S'està esperant que Serveis de Google Play s'acabi d'actualitzar</translation>
-<translation id="7189598951263744875">Comparteix...</translation>
 <translation id="7191430249889272776">Pestanya oberta en segon pla</translation>
 <translation id="723171743924126238">Selecciona imatges</translation>
 <translation id="7233236755231902816">Per veure el web en el teu idioma, actualitza Chrome a la versió més recent.</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Permet que els llocs web reprodueixin automàticament vídeos silenciats (opció recomanada)</translation>
 <translation id="7453467225369441013">Et tanca la sessió de la majoria de llocs web, però no la del Compte de Google.</translation>
 <translation id="7454641608352164238">No hi ha prou espai</translation>
-<translation id="7455923816558154057">Toca per veure-ho</translation>
 <translation id="7473891865547856676">No, gràcies</translation>
 <translation id="7475192538862203634">Si això passa sovint, prova aquests <ph name="BEGIN_LINK" />suggeriments<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">La targeta SD no s'ha trobat. Pot ser que faltin alguns fitxers.</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 ce143a2..e7da803 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Tisk</translation>
 <translation id="1445680696957526815">Komponenty prohlížeče Chrome navzájem nejsou kompatibilní. Je možné, že se Chrome zrovna upgraduje. Pokud problém přetrvává, zkuste Chrome odinstalovat a poté znovu nainstalovat.</translation>
 <translation id="1446450296470737166">Povolit úplné ovládání zařízení MIDI</translation>
-<translation id="1449080968331948513">Spořič dat je teď ve zjednodušeném režimu</translation>
 <translation id="145097072038377568">Vypnuto v Nastavení pro Android</translation>
 <translation id="1477626028522505441">Stažení souboru <ph name="FILE_NAME" /> se nezdařilo z důvodu problémů se serverem.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 další)}few{ (+ # další)}many{ (+ # dalších)}other{ (+ # dalších)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Vymazat heslo</translation>
 <translation id="1516229014686355813">Vyhledání klepnutím odešle vybrané slovo a aktuální stránku jako kontext do Vyhledávání Google. Tuto funkci můžete vypnout v <ph name="BEGIN_LINK" />Nastavení<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktivní dnes</translation>
-<translation id="1539064842193522527">V Chromu byl otevřen odkaz</translation>
 <translation id="1549000191223877751">Přejít do jiného okna</translation>
 <translation id="1553358976309200471">Aktualizovat Chrome</translation>
 <translation id="1569387923882100876">Připojené zařízení</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Synchronizaci můžete kdykoliv zapnout v nastavení</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> záložka}few{<ph name="BOOKMARKS_COUNT_MANY" /> záložky}many{<ph name="BOOKMARKS_COUNT_MANY" /> záložky}other{<ph name="BOOKMARKS_COUNT_MANY" /> záložek}}</translation>
 <translation id="3089395242580810162">Otevřít na anonymní kartě</translation>
-<translation id="311456632243022227">V Chromu byly otevřeny odkazy</translation>
 <translation id="3115898365077584848">Zobrazit informace</translation>
 <translation id="3123473560110926937">Na některých webech blokováno</translation>
 <translation id="3137521801621304719">Ukončit anonymní režim</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Svoji volbu můžete později změnit v nabídce Nastavení</translation>
 <translation id="7180611975245234373">Obnovit</translation>
 <translation id="7189372733857464326">Počkejte prosím, než služby Google Play dokončí aktualizaci</translation>
-<translation id="7189598951263744875">Sdílet...</translation>
 <translation id="7191430249889272776">Karta je otevřena na pozadí.</translation>
 <translation id="723171743924126238">Vyberte fotky</translation>
 <translation id="7233236755231902816">Chcete-li si web prohlížet ve svém jazyce, stáhněte si nejnovější verzi Chromu</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Povolit webům automaticky přehrávat ztlumená videa (doporučeno)</translation>
 <translation id="7453467225369441013">Odhlásí vás z většiny webů. Z účtu Google odhlášeni nebudete.</translation>
 <translation id="7454641608352164238">Nedostatek místa</translation>
-<translation id="7455923816558154057">Zobrazíte klepnutím</translation>
 <translation id="7473891865547856676">Ne, děkuji</translation>
 <translation id="7475192538862203634">Pokud se vám tato stránka zobrazuje často, vyzkoušejte tyto <ph name="BEGIN_LINK" />návrhy<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD karta nebyla nalezena. Některé vaše soubory mohou chybět.</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 9c9b0f5e..6a333005 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="da">
 <translation id="1006017844123154345">Åbn på nettet</translation>
+<translation id="1028699632127661925">Sender til <ph name="DEVICE_NAME" />...</translation>
 <translation id="1036727731225946849">Tilføjer <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Fra websites</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Søg, og udforsk</translation>
 <translation id="1264974993859112054">Sport</translation>
 <translation id="1272079795634619415">Stop</translation>
+<translation id="1272444412400969138">Enhedsvælger, som der skal deles fane med.</translation>
 <translation id="1283039547216852943">Tryk for at udvide</translation>
 <translation id="1285320974508926690">Oversæt aldrig dette website</translation>
 <translation id="1291207594882862231">Ryd historik, cookies, websitedata, cache...</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Hej <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">Søg</translation>
 <translation id="1384959399684842514">Download er sat på pause</translation>
+<translation id="1386674309198842382">Aktiv for <ph name="LAST_UPDATED" /> dage siden</translation>
 <translation id="1389974829397082527">Der er ingen bogmærker her</translation>
 <translation id="1397811292916898096">Søg med <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">Integreret i <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Udskriv</translation>
 <translation id="1445680696957526815">Chromes komponenter er ikke kompatible med hinanden. Chrome er muligvis ved at opgradere. Prøv igen om et par minutter. Hvis problemet fortsætter, kan du prøve at afinstallere og geninstallere Chrome.</translation>
 <translation id="1446450296470737166">Tillad fuld kontrol over MIDI-enheder</translation>
-<translation id="1449080968331948513">Datasparefunktionen er nu i Lite-tilstand</translation>
 <translation id="145097072038377568">Deaktiveret i indstillingerne for Android</translation>
 <translation id="1477626028522505441">Download af <ph name="FILE_NAME" /> mislykkedes på grund af serverproblemer.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 anden)}one{ (+ # anden)}other{ (+ # andre)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Slet adgangskoden</translation>
 <translation id="1516229014686355813">Funktionen "Tryk for at søge" sender det markerede ord og den aktuelle side som kontekst til Google Søgning. Du kan deaktivere funktionen i <ph name="BEGIN_LINK" />Indstillinger<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktiv i dag</translation>
-<translation id="1539064842193522527">Der blev åbnet et link i Chrome</translation>
 <translation id="1549000191223877751">Flyt til et andet vindue</translation>
 <translation id="1553358976309200471">Opdater Chrome</translation>
 <translation id="1569387923882100876">Tilsluttet enhed</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Du kan til enhver tid aktivere synkronisering i indstillingerne</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bogmærke}one{<ph name="BOOKMARKS_COUNT_MANY" />bogmærke}other{<ph name="BOOKMARKS_COUNT_MANY" />bogmærker}}</translation>
 <translation id="3089395242580810162">Åbn på inkognitofane</translation>
-<translation id="311456632243022227">Der blev åbnet flere links i Chrome</translation>
 <translation id="3115898365077584848">Vis info</translation>
 <translation id="3123473560110926937">Blokeret på visse websites</translation>
 <translation id="3137521801621304719">Slå inkognitotilstand fra</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Tillad cookies for et bestemt website.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# t.}one{# t.}other{# t.}}</translation>
 <translation id="4042870126885713738">Vis forslag, hvis en webadresse ikke bliver fundet, eller hvis der ikke kan oprettes forbindelse</translation>
+<translation id="4044912625106523635">Den enhedsvælger, som der skal deles fane med, er åbnet i fuld højde.</translation>
 <translation id="4046123991198612571">Næste nummer</translation>
 <translation id="4048707525896921369">Få oplysninger om emner på websites uden at forlade siden. "Tryk for at søge" sender et ord og ordets kontekst til Google Søgning og giver dig definitioner, billeder, søgeresultater og andre oplysninger.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">Enheden kan ikke åbne det indhold, der skal downloades.</translation>
 <translation id="528192093759286357">Træk fra toppen, og tryk på tilbageknappen igen for at afslutte fuld skærm.</translation>
 <translation id="5284584623296338184">Ændringer i dine bogmærker, din historik, dine adgangskoder og andre indstillinger synkroniseres ikke længere til din Google-konto, men dine eksisterende data er stadig gemt på din Google-konto.</translation>
+<translation id="5292796745632149097">Send til</translation>
 <translation id="5300589172476337783">Vis</translation>
 <translation id="5301954838959518834">OK, det er forstået</translation>
 <translation id="5304593522240415983">Dette felt må ikke være tomt</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Synkronisering</translation>
 <translation id="641643625718530986">Udskriv…</translation>
 <translation id="6416782512398055893">Der er downloadet <ph name="MBS" /> MB</translation>
+<translation id="6418750371676080905">Den enhedsvælger, som der skal deles fane med, er lukket.</translation>
 <translation id="6427112570124116297">Oversæt på nettet</translation>
 <translation id="6433501201775827830">Vælg en søgemaskine</translation>
 <translation id="6437478888915024427">Sideoplysninger</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Brug en forslagstjeneste til at få vist relaterede forespørgsler og populære websites, mens du skriver i adresselinjen</translation>
 <translation id="666731172850799929">Åbn i <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">Erklæring om privatliv for Google Chrome</translation>
+<translation id="6672986458216094438">Den enhedsvælger, der skal deles fane med, er åbnet i halv højde.</translation>
 <translation id="6697492270171225480">Se forslag til lignende sider, når en side ikke kan findes</translation>
 <translation id="6697947395630195233">Chrome skal have adgang til din placering for at dele din placering med dette website.</translation>
 <translation id="6698801883190606802">Administrer synkroniserede data</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Du kan ændre dette senere i Indstillinger</translation>
 <translation id="7180611975245234373">Opdater</translation>
 <translation id="7189372733857464326">Venter på, at Google Play-tjenester er opdateret</translation>
-<translation id="7189598951263744875">Del...</translation>
 <translation id="7191430249889272776">Fanen blev åbnet i baggrunden.</translation>
 <translation id="723171743924126238">Vælg billeder</translation>
 <translation id="7233236755231902816">Hent den nyeste version af Chrome for at bruge browseren på dit eget sprog</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Tillad, at websites automatisk afspiller videoer med lyden slået fra (anbefales)</translation>
 <translation id="7453467225369441013">Logger dig ud af de fleste websites. Du bliver ikke logget ud af din Google-konto.</translation>
 <translation id="7454641608352164238">Der er ikke nok plads</translation>
-<translation id="7455923816558154057">Tryk for at se</translation>
 <translation id="7473891865547856676">Nej tak</translation>
 <translation id="7475192538862203634">Hvis du ser dette jævnligt, kan du prøve disse <ph name="BEGIN_LINK" />forslag<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD-kortet blev fundet. Nogle af dine filer mangler muligvis.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> er forældet.</translation>
 <translation id="7947953824732555851">Acceptér og log ind</translation>
 <translation id="7963646190083259054">Leverandør:</translation>
+<translation id="7971136598759319605">Aktiv for 1 dag siden</translation>
 <translation id="7975379999046275268">Se forhåndsvisning af siden <ph name="BEGIN_NEW" />Ny<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Forudindlæs sider, så du kan browse og søge hurtigere</translation>
 <translation id="79859296434321399">Installer ARCore for at se augmented reality-indhold</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 69fd811c..4077a24 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="de">
 <translation id="1006017844123154345">Online öffnen</translation>
+<translation id="1028699632127661925">Wird an <ph name="DEVICE_NAME" /> gesendet…</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> wird hinzugefügt...</translation>
 <translation id="1041308826830691739">Von Websites</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Suchen und entdecken</translation>
 <translation id="1264974993859112054">Sport</translation>
 <translation id="1272079795634619415">Stopp</translation>
+<translation id="1272444412400969138">Geräteauswahl zum Teilen eines Tabs.</translation>
 <translation id="1283039547216852943">Zum Maximieren tippen</translation>
 <translation id="1285320974508926690">Diese Website nie übersetzen</translation>
 <translation id="1291207594882862231">Verlauf, Cookies, Websitedaten, Cache leeren…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Hallo <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">Suchen</translation>
 <translation id="1384959399684842514">Download angehalten</translation>
+<translation id="1386674309198842382">Vor <ph name="LAST_UPDATED" /> Tagen aktiv</translation>
 <translation id="1389974829397082527">Keine Lesezeichen vorhanden</translation>
 <translation id="1397811292916898096">Mit <ph name="PRODUCT_NAME" /> suchen</translation>
 <translation id="1404122904123200417">Eingebettet in <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Drucken</translation>
 <translation id="1445680696957526815">Die Chrome-Komponenten sind nicht miteinander kompatibel. Möglicherweise wird Chrome gerade aktualisiert. Bitte versuchen Sie es in einigen Minuten erneut. Sollte das Problem weiterhin bestehen, versuchen Sie, Chrome zu deinstallieren und erneut zu installieren.</translation>
 <translation id="1446450296470737166">Volle Kontr. über MIDI-Ger. erl.</translation>
-<translation id="1449080968331948513">Der Datensparmodus ist jetzt im Lite-Modus</translation>
 <translation id="145097072038377568">In den Android-Einstellungen deaktiviert</translation>
 <translation id="1477626028522505441"><ph name="FILE_NAME" /> konnte aufgrund von Serverproblemen nicht heruntergeladen werden.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 weitere)}other{ (+ # weitere)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Passwort löschen</translation>
 <translation id="1516229014686355813">Mit "Zum Suchen tippen" werden das ausgewählte Wort und die aktuelle Seite als Kontext an die Google-Suche gesendet. Sie können die Funktion in den <ph name="BEGIN_LINK" />Einstellungen<ph name="END_LINK" /> deaktivieren.</translation>
 <translation id="1521774566618522728">Heute aktiv</translation>
-<translation id="1539064842193522527">Link in Chrome geöffnet</translation>
 <translation id="1549000191223877751">Zu anderem Fenster wechseln</translation>
 <translation id="1553358976309200471">Chrome aktualisieren</translation>
 <translation id="1569387923882100876">Verbundenes Gerät</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Sie können die Synchronisierung jederzeit in den Einstellungen aktivieren</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> Lesezeichen}other{<ph name="BOOKMARKS_COUNT_MANY" /> Lesezeichen}}</translation>
 <translation id="3089395242580810162">In Inkognito-Tab öffnen</translation>
-<translation id="311456632243022227">Mehrere Links in Chrome geöffnet</translation>
 <translation id="3115898365077584848">Informationen anzeigen</translation>
 <translation id="3123473560110926937">Auf einigen Websites blockiert</translation>
 <translation id="3137521801621304719">Inkognitomodus deaktivieren</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Cookies für eine bestimmte Website werden zugelassen.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# h}other{# h}}</translation>
 <translation id="4042870126885713738">Vorschläge einblenden, wenn eine Webadresse nicht gefunden oder keine Verbindung hergestellt werden kann</translation>
+<translation id="4044912625106523635">Geräteauswahl zum Teilen eines Tabs, der ganz geöffnet ist.</translation>
 <translation id="4046123991198612571">Nächster Titel</translation>
 <translation id="4048707525896921369">Erfahren Sie mehr zu Themen auf einer Website, ohne die Seite verlassen zu müssen. Mit der Option "Zum Suchen tippen" wird ein Wort sowie dessen Kontext an die Google-Suche gesendet. Daraufhin erhalten Sie Definitionen, Bilder, Suchergebnisse und andere Details.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">Das Gerät kann den Inhalt, der heruntergeladen werden soll, nicht öffnen.</translation>
 <translation id="528192093759286357">Ziehen Sie zum Beenden des Vollbildmodus von oben und tippen Sie auf die Zurück-Taste.</translation>
 <translation id="5284584623296338184">Änderungen an Ihren Lesezeichen, Ihrem Verlauf, Ihren Passwörtern und anderen Einstellungen werden nicht mehr mit Ihrem Google-Konto synchronisiert. Ihre vorhandenen Daten bleiben aber in Ihrem Google-Konto gespeichert.</translation>
+<translation id="5292796745632149097">Senden an</translation>
 <translation id="5300589172476337783">Anzeigen</translation>
 <translation id="5301954838959518834">Ok</translation>
 <translation id="5304593522240415983">Dieses Feld darf nicht leer sein.</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Synchronisierung</translation>
 <translation id="641643625718530986">Drucken...</translation>
 <translation id="6416782512398055893"><ph name="MBS" /> MB heruntergeladen</translation>
+<translation id="6418750371676080905">Geräteauswahl zum Teilen eines Tabs, der geschlossen ist.</translation>
 <translation id="6427112570124116297">Das Web übersetzen</translation>
 <translation id="6433501201775827830">Suchmaschine auswählen</translation>
 <translation id="6437478888915024427">Seiteninfo</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Während der Eingabe in die Adressleiste mithilfe einer Vervollständigungsfunktion ähnliche Suchanfragen und beliebte Websites einblenden</translation>
 <translation id="666731172850799929">In <ph name="APP_NAME" /> öffnen</translation>
 <translation id="666981079809192359">Chrome-Datenschutzhinweise</translation>
+<translation id="6672986458216094438">Geräteauswahl zum Teilen eines Tabs, der halb geöffnet ist.</translation>
 <translation id="6697492270171225480">Vorschläge für ähnliche Seiten anzeigen, wenn eine Seite nicht gefunden werden kann</translation>
 <translation id="6697947395630195233">Chrome benötigt Zugriff auf Ihren Standort, um ihn mit dieser Website zu teilen.</translation>
 <translation id="6698801883190606802">Synchronisierte Daten verwalten</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Dies kann später in den Einstellungen geändert werden</translation>
 <translation id="7180611975245234373">Aktualisieren</translation>
 <translation id="7189372733857464326">Warten auf Abschluss der Google Play-Dienste-Aktualisierung</translation>
-<translation id="7189598951263744875">Teilen...</translation>
 <translation id="7191430249889272776">Tab im Hintergrund geöffnet</translation>
 <translation id="723171743924126238">Bilder auswählen</translation>
 <translation id="7233236755231902816">Das Web in Ihrer Sprache – mit der aktuellen Version von Chrome</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Automatische Wiedergabe stummgeschalteter Videos auf Websites zulassen (empfohlen)</translation>
 <translation id="7453467225369441013">Sie werden von den meisten Websites, aber nicht aus Ihrem Google-Konto abgemeldet.</translation>
 <translation id="7454641608352164238">Zu wenig Speicherplatz</translation>
-<translation id="7455923816558154057">Zum Ansehen tippen</translation>
 <translation id="7473891865547856676">Nein danke</translation>
 <translation id="7475192538862203634">Sollten Sie diese Meldung häufiger erhalten, sehen Sie sich unsere <ph name="BEGIN_LINK" />Empfehlungen<ph name="END_LINK" /> an.</translation>
 <translation id="7475688122056506577">SD-Karte nicht gefunden. Einige Ihrer Dateien fehlen möglicherweise.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> ist veraltet.</translation>
 <translation id="7947953824732555851">Akzeptieren und anmelden</translation>
 <translation id="7963646190083259054">Anbieter:</translation>
+<translation id="7971136598759319605">Vor 1 Tag aktiv</translation>
 <translation id="7975379999046275268">Seitenvorschau <ph name="BEGIN_NEW" />Neu<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Seiten vorab laden, um das Surfen und die Suche zu beschleunigen</translation>
 <translation id="79859296434321399">ARCore installieren, um Augmented-Reality-Inhalte zu sehen</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 77f55da..6453d41 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Εκτύπωση</translation>
 <translation id="1445680696957526815">Τα στοιχεία του Chrome δεν είναι συμβατά μεταξύ τους. Το Chrome ενδεχομένως να αναβαθμίζεται. Δοκιμάστε ξανά σε λίγα λεπτά. Αν το πρόβλημα παραμένει, δοκιμάστε να απεγκαταστήσετε και να εγκαταστήσετε ξανά το Chrome.</translation>
 <translation id="1446450296470737166">Να επιτρέπεται πλήρης έλεγχος σε MIDI</translation>
-<translation id="1449080968331948513">Η Εξοικονόμηση δεδομένων βρίσκεται πλέον σε λειτουργία Lite</translation>
 <translation id="145097072038377568">Έχει απενεργοποιηθεί στις Ρυθμίσεις Android</translation>
 <translation id="1477626028522505441">Η λήψη του αρχείου <ph name="FILE_NAME" /> απέτυχε λόγω προβλημάτων στον διακομιστή.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 ακόμη)}other{ (+ # ακόμη)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Διαγραφή κωδικού πρόσβασης</translation>
 <translation id="1516229014686355813">Η λειτουργία "Πατήστε για αναζήτηση" αποστέλλει την επιλεγμένη λέξη και την τρέχουσα σελίδα ως περιβάλλον στην Αναζήτηση Google. Μπορείτε να την απενεργοποιήσετε στις <ph name="BEGIN_LINK" />Ρυθμίσεις<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Ενεργή σήμερα</translation>
-<translation id="1539064842193522527">Ο σύνδεσμος άνοιξε στο Chrome</translation>
 <translation id="1549000191223877751">Μεταβείτε σε άλλο παράθυρο</translation>
 <translation id="1553358976309200471">Ενημερώστε το Chrome</translation>
 <translation id="1569387923882100876">Συνδεδεμένη συσκευή</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Μπορείτε να ενεργοποιήσετε τον συγχρονισμό ανά πάσα στιγμή στις ρυθμίσεις</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> σελιδοδείκτης}other{<ph name="BOOKMARKS_COUNT_MANY" /> σελιδοδείκτες}}</translation>
 <translation id="3089395242580810162">Άνοιγμα σε καρτ. ανών. περιήγ.</translation>
-<translation id="311456632243022227">Πολλοί ανοιχτοί σύνδεσμοι στο Chrome</translation>
 <translation id="3115898365077584848">Πληροφορίες εκπομπής</translation>
 <translation id="3123473560110926937">Αποκλεισμός σε ορισμένους ιστοτόπους</translation>
 <translation id="3137521801621304719">Έξοδος από την κατάσταση ανώνυμης περιήγησης</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Μπορείτε να αλλάξετε αργότερα αυτήν την επιλογή στην περιοχή "Ρυθμίσεις"</translation>
 <translation id="7180611975245234373">Ανανέωση</translation>
 <translation id="7189372733857464326">Αναμονή για ολοκλήρωση της ενημέρωσης των Υπηρεσιών Google Play</translation>
-<translation id="7189598951263744875">Κοινοποίηση…</translation>
 <translation id="7191430249889272776">Η καρτέλα άνοιξε στο παρασκήνιο.</translation>
 <translation id="723171743924126238">Επιλέξτε εικόνες</translation>
 <translation id="7233236755231902816">Για να δείτε τον ιστό στη γλώσσα σας, κατεβάστε την πιο πρόσφατη έκδοση του Chrome</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Να επιτρέπεται στους ιστότοπους η αυτόματη αναπαραγωγή βίντεο σε σίγαση (συνιστάται)</translation>
 <translation id="7453467225369441013">Θα αποσυνδεθείτε από τους περισσότερους ιστοτόπους. Δεν θα αποσυνδεθείτε από τον Λογαριασμό σας Google.</translation>
 <translation id="7454641608352164238">Ανεπαρκής χώρος</translation>
-<translation id="7455923816558154057">Πατήστε για προβολή</translation>
 <translation id="7473891865547856676">Όχι, ευχαριστώ</translation>
 <translation id="7475192538862203634">Εάν αυτό το μήνυμα εμφανίζεται συχνά, δοκιμάστε αυτές τις <ph name="BEGIN_LINK" />προτάσεις<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Η κάρτα SD δεν βρέθηκε. Μπορεί να λείπουν μερικά από τα αρχεία σας.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb
index bd01e87..4932262 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Print</translation>
 <translation id="1445680696957526815">Chrome’s components are incompatible with one another. Chrome may be upgrading, please try again in a few minutes. If the problem continues, try uninstalling and re-installing Chrome.</translation>
 <translation id="1446450296470737166">Allow full control of MIDI devices</translation>
-<translation id="1449080968331948513">Data Saver is now Lite mode</translation>
 <translation id="145097072038377568">Turned off in Android Settings</translation>
 <translation id="1477626028522505441"><ph name="FILE_NAME" /> download failed due to server issues.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 more)}other{ (+ # more)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Delete password</translation>
 <translation id="1516229014686355813">Tap to Search sends the selected word and the current page as context to Google Search. You can turn it off in <ph name="BEGIN_LINK" />Settings<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Active today</translation>
-<translation id="1539064842193522527">Link opened in Chrome</translation>
 <translation id="1549000191223877751">Move to other window</translation>
 <translation id="1553358976309200471">Update Chrome</translation>
 <translation id="1569387923882100876">Connected device</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">You can turn on sync at any time in settings</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bookmark}other{<ph name="BOOKMARKS_COUNT_MANY" /> bookmarks}}</translation>
 <translation id="3089395242580810162">Open in incognito tab</translation>
-<translation id="311456632243022227">Multiple links opened in Chrome</translation>
 <translation id="3115898365077584848">Show info</translation>
 <translation id="3123473560110926937">Blocked on some sites</translation>
 <translation id="3137521801621304719">Leave incognito mode</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">You can change this later in Settings</translation>
 <translation id="7180611975245234373">Refresh</translation>
 <translation id="7189372733857464326">Waiting for Google Play Services to finish updating</translation>
-<translation id="7189598951263744875">Share...</translation>
 <translation id="7191430249889272776">Tab opened in background.</translation>
 <translation id="723171743924126238">Select images</translation>
 <translation id="7233236755231902816">To see the web in your language, get the latest version of Chrome</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Allow sites to automatically play muted videos (recommended)</translation>
 <translation id="7453467225369441013">Signs you out of most sites. You won't be signed out of your Google Account.</translation>
 <translation id="7454641608352164238">Not enough space</translation>
-<translation id="7455923816558154057">Tap to view</translation>
 <translation id="7473891865547856676">No, thanks</translation>
 <translation id="7475192538862203634">If you’re seeing this frequently, try these <ph name="BEGIN_LINK" />suggestions<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD card not found. Some of your files may be missing.</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 96b15486..8ffd237 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
@@ -71,7 +71,6 @@
 <translation id="1430915738399379752">Imprimir</translation>
 <translation id="1445680696957526815">Los componentes de Chrome no son compatibles entre sí. Es posible que Chrome esté actualizándose. Espera unos minutos y vuelve a intentarlo. Si el problema continúa, prueba a desinstalar Chrome y volver a instalarlo.</translation>
 <translation id="1446450296470737166">Control de dispositivos MIDI</translation>
-<translation id="1449080968331948513">El "Ahorro de datos" está en modo lite</translation>
 <translation id="145097072038377568">Desactivado en la configuración de Android</translation>
 <translation id="1477626028522505441"><ph name="FILE_NAME" /> no se pudo descargar debido a problemas del servidor.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (1 más)}other{ (# más)}}</translation>
@@ -81,7 +80,6 @@
 <translation id="1513858653616922153">Borrar contraseña</translation>
 <translation id="1516229014686355813">La función "Presionar para buscar" envía la palabra seleccionada y la página actual como contexto a la Búsqueda de Google. Para desactivarla, accede a <ph name="BEGIN_LINK" />Configuración<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Activo hoy</translation>
-<translation id="1539064842193522527">Vínculo abierto en Chrome</translation>
 <translation id="1549000191223877751">Mover a otra ventana</translation>
 <translation id="1553358976309200471">Actualizar Chrome</translation>
 <translation id="1569387923882100876">Dispositivo conectado</translation>
@@ -288,7 +286,6 @@
 <translation id="3058498974290601450">Puedes activar la sincronización en la configuración en cualquier momento</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> favorito}other{<ph name="BOOKMARKS_COUNT_MANY" /> favoritos}}</translation>
 <translation id="3089395242580810162">Abrir en pestaña de incógnito</translation>
-<translation id="311456632243022227">Varios vínculos abiertos en Chrome</translation>
 <translation id="3115898365077584848">Mostrar información</translation>
 <translation id="3123473560110926937">Bloqueados en algunos sitios</translation>
 <translation id="3137521801621304719">Salir del modo de navegación de incógnito</translation>
@@ -850,7 +847,6 @@
 <translation id="7177466738963138057">Puedes cambiar esta opción más tarde en Configuración</translation>
 <translation id="7180611975245234373">Actualizar</translation>
 <translation id="7189372733857464326">Esperando que los servicios de Google Play terminen de actualizarse</translation>
-<translation id="7189598951263744875">Compartir...</translation>
 <translation id="7191430249889272776">Pestaña abierta en segundo plano</translation>
 <translation id="723171743924126238">Seleccionar imágenes</translation>
 <translation id="7233236755231902816">Para ver la Web en tu idioma, obtén la versión más reciente de Chrome</translation>
@@ -887,7 +883,6 @@
 <translation id="7445411102860286510">Permitir que los sitios reproduzcan videos silenciados de forma automática (recomendado)</translation>
 <translation id="7453467225369441013">Esta acción te hace salir de la mayoría de los sitios. No saldrás de tu cuenta de Google.</translation>
 <translation id="7454641608352164238">No hay suficiente espacio</translation>
-<translation id="7455923816558154057">Presiona para ver</translation>
 <translation id="7473891865547856676">No, gracias</translation>
 <translation id="7475192538862203634">Si el mensaje aparece con frecuencia, prueba estas <ph name="BEGIN_LINK" />sugerencias<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">No se encontró la tarjeta SD. Es posible que falten algunos archivos.</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 c002b7f..36e686f5 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="es">
 <translation id="1006017844123154345">Abrir versión online</translation>
+<translation id="1028699632127661925">Enviando a <ph name="DEVICE_NAME" />...</translation>
 <translation id="1036727731225946849">Añadiendo <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">De sitios web</translation>
 <translation id="1049743911850919806">Incógnito</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Buscar y explorar</translation>
 <translation id="1264974993859112054">Deportes</translation>
 <translation id="1272079795634619415">Interrumpir</translation>
+<translation id="1272444412400969138">Selector de dispositivo con el que se comparte una pestaña.</translation>
 <translation id="1283039547216852943">Toca para ampliar</translation>
 <translation id="1285320974508926690">No traducir nunca este sitio</translation>
 <translation id="1291207594882862231">Borrar el historial, las cookies, los datos de sitios web, la caché…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Hola, <ph name="FULL_NAME" />:</translation>
 <translation id="1383876407941801731">Buscar</translation>
 <translation id="1384959399684842514">Descarga en pausa</translation>
+<translation id="1386674309198842382">Activo hace <ph name="LAST_UPDATED" /> días</translation>
 <translation id="1389974829397082527">Ningún marcador incluido</translation>
 <translation id="1397811292916898096">Buscar con <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">Insertado en <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Imprimir</translation>
 <translation id="1445680696957526815">Los componentes de Chrome no son compatibles entre sí. Es posible que Chrome se esté actualizando. Vuelve a intentarlo dentro de unos minutos. Si el problema persiste, prueba a desinstalar Chrome y volver a instalarlo.</translation>
 <translation id="1446450296470737166">Control total dispositivos MIDI</translation>
-<translation id="1449080968331948513">Ahorro de Datos ahora se llama modo básico</translation>
 <translation id="145097072038377568">Ajustes de Android desactivados</translation>
 <translation id="1477626028522505441">No se ha podido descargar <ph name="FILE_NAME" /> debido a problemas con el servidor.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (y 1 más)}other{ (y # más)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Eliminar contraseña</translation>
 <translation id="1516229014686355813">La función Tocar para buscar envía la palabra seleccionada y la página actual como contexto a la Búsqueda de Google. Puedes desactivarla en <ph name="BEGIN_LINK" />Configuración<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Activo hoy</translation>
-<translation id="1539064842193522527">Enlace abierto en Chrome</translation>
 <translation id="1549000191223877751">Mover a otra ventana</translation>
 <translation id="1553358976309200471">Actualizar Chrome</translation>
 <translation id="1569387923882100876">Dispositivo conectado</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Puedes activar la sincronización en cualquier momento desde la configuración</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> marcador}other{<ph name="BOOKMARKS_COUNT_MANY" /> marcadores}}</translation>
 <translation id="3089395242580810162">Abrir en pestaña de incógnito</translation>
-<translation id="311456632243022227">Varios enlaces abiertos en Chrome</translation>
 <translation id="3115898365077584848">Mostrar información</translation>
 <translation id="3123473560110926937">Bloqueados en algunos sitios web</translation>
 <translation id="3137521801621304719">Salir del modo de incógnito</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Permitir cookies en un sitio web específico.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# h}other{# h}}</translation>
 <translation id="4042870126885713738">Muestra sugerencias cuando no se puede resolver una dirección web o no se puede establecer una conexión</translation>
+<translation id="4044912625106523635">Se ha abierto el selector de dispositivo con el que se comparte una pestaña para que ocupe toda la pantalla.</translation>
 <translation id="4046123991198612571">Pista siguiente</translation>
 <translation id="4048707525896921369">Obtén información sobre los temas que aparecen en los sitios web sin salir de la página. La función Tocar para buscar envía una palabra y el contexto que la rodea a la Búsqueda de Google y te muestra definiciones, imágenes, resultados de búsqueda y más información.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">El dispositivo no puede abrir el contenido para descargarlo.</translation>
 <translation id="528192093759286357">Arrastra el dedo desde la parte superior y toca el botón de retroceso para salir de la pantalla completa.</translation>
 <translation id="5284584623296338184">Los cambios que realices en los marcadores, el historial, las contraseñas y otras opciones no se sincronizarán con tu cuenta de Google. Sin embargo, tus datos actuales seguirán almacenados en tu cuenta.</translation>
+<translation id="5292796745632149097">Enviar a</translation>
 <translation id="5300589172476337783">Mostrar</translation>
 <translation id="5301954838959518834">Entendido</translation>
 <translation id="5304593522240415983">Este campo no puede estar vacío</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Sincronización</translation>
 <translation id="641643625718530986">Imprimir…</translation>
 <translation id="6416782512398055893">MB descargados: <ph name="MBS" /></translation>
+<translation id="6418750371676080905">Se ha cerrado el selector de dispositivo con el que se comparte una pestaña.</translation>
 <translation id="6427112570124116297">Traduce la Web</translation>
 <translation id="6433501201775827830">Elegir tu motor de búsqueda</translation>
 <translation id="6437478888915024427">Información de la página</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Utiliza un servicio de predicciones para mostrar consultas relacionadas y sitios web populares a medida que escribes en la barra de direcciones</translation>
 <translation id="666731172850799929">Abrir en <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">Aviso de privacidad de Chrome</translation>
+<translation id="6672986458216094438">Se ha abierto a media altura el selector de dispositivo con el que se comparte una pestaña.</translation>
 <translation id="6697492270171225480">Mostrar sugerencias de páginas similares cuando no se encuentre una página</translation>
 <translation id="6697947395630195233">Chrome necesita acceder a tu ubicación para compartirla con este sitio web.</translation>
 <translation id="6698801883190606802">Administrar datos sincronizados</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Puedes cambiar esta opción más tarde en Configuración</translation>
 <translation id="7180611975245234373">Actualizar</translation>
 <translation id="7189372733857464326">Esperando a que Servicios de Google Play termine de actualizarse</translation>
-<translation id="7189598951263744875">Compartir...</translation>
 <translation id="7191430249889272776">Pestaña abierta en segundo plano.</translation>
 <translation id="723171743924126238">Seleccionar imágenes</translation>
 <translation id="7233236755231902816">Si quieres ver la Web en tu idioma, consigue la última versión de Chrome</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Permite que los sitios web reproduzcan automáticamente los vídeos silenciados (recomendado)</translation>
 <translation id="7453467225369441013">Cierra tu sesión en la mayoría de los sitios web. No se cerrará la sesión en tu cuenta de Google.</translation>
 <translation id="7454641608352164238">No hay espacio suficiente</translation>
-<translation id="7455923816558154057">Toca para ver</translation>
 <translation id="7473891865547856676">No, gracias</translation>
 <translation id="7475192538862203634">Si este mensaje aparece con frecuencia, prueba estas <ph name="BEGIN_LINK" />sugerencias<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">No se ha encontrado la tarjeta SD. Es posible que falten algunos de tus archivos.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> está obsoleto.</translation>
 <translation id="7947953824732555851">Aceptar y acceder</translation>
 <translation id="7963646190083259054">Proveedor:</translation>
+<translation id="7971136598759319605">Activo hace 1 día</translation>
 <translation id="7975379999046275268">Revisar página <ph name="BEGIN_NEW" />Nuevo<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Cargar previamente las páginas para que la navegación y las búsquedas sean más rápidas</translation>
 <translation id="79859296434321399">Instala ARCore para visualizar contenido de realidad aumentada</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_et.xtb b/chrome/android/java/strings/translations/android_chrome_strings_et.xtb
index 947fa57a..003ee21 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_et.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_et.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Printimine</translation>
 <translation id="1445680696957526815">Chrome'i komponendid on omavahel vastuolus. Chrome'i võidakse täiendada, proovige uuesti mõne minuti pärast. Kui probleem ei lahene, proovige Chrome desinstallida ja seejärel uuesti installida.</translation>
 <translation id="1446450296470737166">MIDI-seadm. täieliku juht. lub.</translation>
-<translation id="1449080968331948513">Andmemahu säästja uus nimetus on lihtsustatud režiim</translation>
 <translation id="145097072038377568">Android-seadetes välja lülitatud</translation>
 <translation id="1477626028522505441">Faili <ph name="FILE_NAME" /> allalaadimine ebaõnnestus serveriprobleemide tõttu.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{(ja veel 1)}other{(ja veel #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Kustuta parool</translation>
 <translation id="1516229014686355813">Puudutamine otsimiseks saadab valitud sõna ja praeguse lehe kontekstina Google'i otsingusse. Selle saab välja lülitada jaotises <ph name="BEGIN_LINK" />Seaded<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktiivne täna</translation>
-<translation id="1539064842193522527">Link on Chrome'is avatud</translation>
 <translation id="1549000191223877751">Teisalda teise aknasse</translation>
 <translation id="1553358976309200471">Värskenda Chrome'i</translation>
 <translation id="1569387923882100876">Ühendatud seade</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Saate sünkroonimise seadetes alati sisse lülitada</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> järjehoidja}other{<ph name="BOOKMARKS_COUNT_MANY" /> järjehoidjat}}</translation>
 <translation id="3089395242580810162">Ava inkognito vahelehel</translation>
-<translation id="311456632243022227">Mitu linki on Chrome'is avatud</translation>
 <translation id="3115898365077584848">Kuva teave</translation>
 <translation id="3123473560110926937">Blokeeritud teatud saitidel</translation>
 <translation id="3137521801621304719">Inkognito režiimist väljumine</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Seda saate hiljem muuta jaotises Seaded</translation>
 <translation id="7180611975245234373">Värskenda</translation>
 <translation id="7189372733857464326">Google Play teenuste värskendamise lõpetamise ootamine</translation>
-<translation id="7189598951263744875">Jaga ...</translation>
 <translation id="7191430249889272776">Taustal on avatud vaheleht.</translation>
 <translation id="723171743924126238">Kujutiste valimine</translation>
 <translation id="7233236755231902816">Hankige Chrome'i uusim versioon, et saaksite oma keeles veebi sirvida</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Luba saitidel vaigistatud videoid automaatselt esitada (soovitatav)</translation>
 <translation id="7453467225369441013">Logib teid enamikult saitidelt välja. Google'i kontolt teid välja ei logita.</translation>
 <translation id="7454641608352164238">Pole piisavalt ruumi</translation>
-<translation id="7455923816558154057">Puudutage kuvamiseks</translation>
 <translation id="7473891865547856676">Tänan, ei</translation>
 <translation id="7475192538862203634">Kui näete seda sageli, proovige neid <ph name="BEGIN_LINK" />soovitusi<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD-kaarti ei leitud. Mõned failid võivad puududa.</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 d6f5e7a..6d40719 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="fa">
 <translation id="1006017844123154345">باز کردن نسخه آنلاین</translation>
+<translation id="1028699632127661925">درحال ارسال به <ph name="DEVICE_NAME" />…</translation>
 <translation id="1036727731225946849">درحال افزودن <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">از وب‌سایت‌ها</translation>
 <translation id="1049743911850919806">ناشناس</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">جستجو و کاوش</translation>
 <translation id="1264974993859112054">ورزش</translation>
 <translation id="1272079795634619415">توقف</translation>
+<translation id="1272444412400969138">انتخاب‌گر دستگاه برای هم‌رسانی برگه‌ای با آن.</translation>
 <translation id="1283039547216852943">برای بزرگ کردن ضربه بزنید</translation>
 <translation id="1285320974508926690">این سایت هرگز ترجمه نشود</translation>
 <translation id="1291207594882862231">پاک کردن سابقه، کوکی‌ها، داده‌های سایت، حافظه پنهان…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">سلام، <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">جستجو</translation>
 <translation id="1384959399684842514">بارگیری موقتاً متوقف شد</translation>
+<translation id="1386674309198842382">آخرین فعالیت: <ph name="LAST_UPDATED" /> روز قبل</translation>
 <translation id="1389974829397082527">نشانکی در اینجا وجود ندارد</translation>
 <translation id="1397811292916898096">جستجو با <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">جاسازی‌شده در <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">چاپ</translation>
 <translation id="1445680696957526815">‏مؤلفه‌های Chrome با هم سازگار نیستند. ممکن است Chrome در حال ارتقا دادن باشد، لطفاً پس از چند دقیقه دوباره امتحان کنید. اگر همچنان مشکل وجود داشت، نصب Chrome را لغو کنید و دوباره آن را نصب کنید.</translation>
 <translation id="1446450296470737166">‏اجازه کنترل کامل دستگاه‌های MIDI</translation>
-<translation id="1449080968331948513">اکنون نام «صرفه‌جویی داده» به «حالت ساده» تغییر کرده است</translation>
 <translation id="145097072038377568">‏در تنظیمات Android مسدود شد</translation>
 <translation id="1477626028522505441">به‌دلیل مشکلاتی در سرور، بارگیری <ph name="FILE_NAME" /> انجام نشد.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ ۱ مورد دیگر)}one{ (+ # مورد دیگر)}other{ (+ # مورد دیگر)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">حذف گذرواژه</translation>
 <translation id="1516229014686355813">‏«ضربه برای جستجو» کلمه انتخاب‌شده و صفحه کنونی را به‌عنوان متن جستجو به «جستجوی Google» ارسال می‌کند. می‌توانید این ویژگی را در <ph name="BEGIN_LINK" />تنظیمات<ph name="END_LINK" /> خاموش کنید.</translation>
 <translation id="1521774566618522728">امروز فعال بود</translation>
-<translation id="1539064842193522527">‏پیوند در Chrome باز شد</translation>
 <translation id="1549000191223877751">انتقال به پنجره دیگر</translation>
 <translation id="1553358976309200471">‏به‌روزرسانی Chrome</translation>
 <translation id="1569387923882100876">دستگاه متصل</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">هرزمان خواستید می‌توانید همگام‌سازی را در تنظیمات روشن کنید</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> نشانک}one{<ph name="BOOKMARKS_COUNT_MANY" /> نشانک}other{<ph name="BOOKMARKS_COUNT_MANY" /> نشانک}}</translation>
 <translation id="3089395242580810162">باز کردن در برگه ناشناس</translation>
-<translation id="311456632243022227">‏چند پیوند در Chrome باز شد</translation>
 <translation id="3115898365077584848">نمایش دادن اطلاعات</translation>
 <translation id="3123473560110926937">در برخی سایت‌ها مسدود می‌شود</translation>
 <translation id="3137521801621304719">خروج از حالت ناشناس</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">کوکی‌ها را برای سایت خاصی مجاز کنید.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# ساعت}one{# ساعت}other{# ساعت}}</translation>
 <translation id="4042870126885713738">وقتی آدرس وب شناسایی نمی‌شود یا اتصال برقرار نمی‌شود، پیشنهاداتی نشان داده می‌شود</translation>
+<translation id="4044912625106523635">انتخابگر دستگاه برای هم‌رسانی برگه با آن به‌صورت کامل باز شده است.</translation>
 <translation id="4046123991198612571">آهنگ بعدی</translation>
 <translation id="4048707525896921369">‏بدون ترک کردن صفحه با موضوعات وب‌سایت‌ها آشنا شوید. «ضربه برای جستجو»، کلمه و متن اطراف آن را به «جستجوی Google» ارسال می‌کند و معانی، تصاویر، نتایج جستجو و سایر جزئیات را بازمی‌گرداند.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">دستگاه نمی‌تواند محتوا را برای بارگیری باز کند.</translation>
 <translation id="528192093759286357">برای خروج از حالت تمام صفحه، از بالا صفحه را بکشید و دکمه برگشت را لمس کنید.</translation>
 <translation id="5284584623296338184">‏تغییرات در نشانک‌ها، سابقه، گذرواژه و سایر تنظیمات دیگر با حساب Google شما همگام‌سازی نخواهد شد. با این حال، داده‌های موجودتان در حساب Google شما باقی خواهند ماند.</translation>
+<translation id="5292796745632149097">ارسال به</translation>
 <translation id="5300589172476337783">نمایش</translation>
 <translation id="5301954838959518834">بله، متوجه شدم</translation>
 <translation id="5304593522240415983">این قسمت باید پر شود</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">همگام‌سازی</translation>
 <translation id="641643625718530986">چاپ...</translation>
 <translation id="6416782512398055893"><ph name="MBS" /> مگابایت بارگیری شد</translation>
+<translation id="6418750371676080905">انتخابگر دستگاه برای هم‌رسانی برگه‌ای با آن بسته شده است.</translation>
 <translation id="6427112570124116297">وب را ترجمه کنید</translation>
 <translation id="6433501201775827830">انتخاب موتور جستجو</translation>
 <translation id="6437478888915024427">اطلاعات صفحه</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">از یک سرویس پیش‌بینی استفاده می‌شود تا هم‌زمان با تایپ کردن شما در نوار آدرس، عبارت‌های جستجوی مرتبط و وب‌سایت‌های محبوب نشان داده شوند</translation>
 <translation id="666731172850799929">باز کردن در <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">‏اخطار حریم خصوصی Chrome</translation>
+<translation id="6672986458216094438">انتخابگر دستگاه برای هم‌رسانی برگه‌ای با آن به‌صورت نیمه باز است.</translation>
 <translation id="6697492270171225480">نمایش پیشنهادهای صفحه‌های مشابه وقتی صفحه‌ای پیدا نمی‌شود</translation>
 <translation id="6697947395630195233">‏Chrome برای اشتراک‌گذاری مکانتان با این سایت باید به مکانتان دسترسی داشته باشد.</translation>
 <translation id="6698801883190606802">مدیریت داده‌های همگام‌سازی شده</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">می‌توانید بعداً این مورد را در تنظیمات تغییر دهید</translation>
 <translation id="7180611975245234373">بازخوانی</translation>
 <translation id="7189372733857464326">‏در انتظار «سرویس‌های Google Play» برای اتمام به‌روزرسانی است</translation>
-<translation id="7189598951263744875">در حال اشتراک‌گذاری...</translation>
 <translation id="7191430249889272776">برگه در پس‌زمینه باز شد.</translation>
 <translation id="723171743924126238">انتخاب تصاویر</translation>
 <translation id="7233236755231902816">‏برای اینکه وب را به زبان خود ببینید، آخرین نسخه Chrome را دریافت کنید</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">اجازه به سایت‌ها برای پخش خودکار ویدیوهای صامت‌شده (توصیه می‌شود)</translation>
 <translation id="7453467225369441013">‏شما را از سیستم اکثر سایت‌ها خارج می‌‌کند. از سیستم حساب Google خارج نمی‌شوید.</translation>
 <translation id="7454641608352164238">فضای کافی وجود ندارد</translation>
-<translation id="7455923816558154057">برای مشاهده ضربه بزنید</translation>
 <translation id="7473891865547856676">نه متشکرم</translation>
 <translation id="7475192538862203634">اگر این مورد را مکرراً مشاهده می‌کنید، این <ph name="BEGIN_LINK" />پیشنهادات<ph name="END_LINK" /> را امتحان کنید.</translation>
 <translation id="7475688122056506577">‏کارت SD پیدا نشد. ممکن است بعضی از فایل‌هایتان جا بیافتد.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> قدیمی است.</translation>
 <translation id="7947953824732555851">پذیرش و ورود به سیستم</translation>
 <translation id="7963646190083259054">ارائه‌دهنده:</translation>
+<translation id="7971136598759319605">آخرین فعالیت: ۱ روز قبل</translation>
 <translation id="7975379999046275268">پیش‌نمایش صفحه <ph name="BEGIN_NEW" />جدید<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">پیش‌بارگیری صفحه‌ها برای مرور و جستجوی سریع‌تر</translation>
 <translation id="79859296434321399">‏برای مشاهده محتوای واقعیت افزوده، ARCore را نصب کنید</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 464881c..b9a0a3b 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Tulosta</translation>
 <translation id="1445680696957526815">Chromen osat eivät ole yhteensopivia toistensa kanssa. Chromen päivitys voi olla kesken; yritä uudelleen muutaman minuutin kuluttua. Jos ongelma ei ratkea, poista Chrome ja asenna se uudelleen.</translation>
 <translation id="1446450296470737166">Salli MIDI-laitteiden täysi käyttöoik.</translation>
-<translation id="1449080968331948513">Data Saver on nyt Yksinkertaistettu tila</translation>
 <translation id="145097072038377568">Poistettu käytöstä Android-asetuksissa</translation>
 <translation id="1477626028522505441">Tiedoston <ph name="FILE_NAME" /> lataus epäonnistui palvelinongelman vuoksi.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 muu)}other{ (+ # muuta)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Poista salasana</translation>
 <translation id="1516229014686355813">Napauttamalla hakeminen lähettää valitun sanan ja nykyisen sivun Google Haulle hakukontekstina. Voit poistaa ominaisuuden käytöstä <ph name="BEGIN_LINK" />asetuksissa<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktiivinen tänään</translation>
-<translation id="1539064842193522527">Linkki avattu Chromessa</translation>
 <translation id="1549000191223877751">Siirrä toiseen ikkunaan</translation>
 <translation id="1553358976309200471">Päivitä Chrome</translation>
 <translation id="1569387923882100876">Yhdistetty laite</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Voit ottaa synkronoinnin käyttöön milloin tahansa asetuksista.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> kirjanmerkki}other{<ph name="BOOKMARKS_COUNT_MANY" /> kirjanmerkkiä}}</translation>
 <translation id="3089395242580810162">Avaa incognito-välilehdellä</translation>
-<translation id="311456632243022227">Useita linkkejä avattu Chromessa</translation>
 <translation id="3115898365077584848">Näytä tiedot</translation>
 <translation id="3123473560110926937">Estetty tietyillä sivustoilla</translation>
 <translation id="3137521801621304719">Poistu incognito-tilasta</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Voit muuttaa tätä myöhemmin Asetuksista.</translation>
 <translation id="7180611975245234373">Päivitä</translation>
 <translation id="7189372733857464326">Odotetaan Google Play Palveluiden päivittymistä</translation>
-<translation id="7189598951263744875">Jaa...</translation>
 <translation id="7191430249889272776">Välilehti avattiin taustalla.</translation>
 <translation id="723171743924126238">Valitse kuvat</translation>
 <translation id="7233236755231902816">Päivitä Chrome uusimpaan versioon, niin näet verkon sisällön omalla kielelläsi</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Salli sivustoille mykistettyjen videoiden automaattinen toisto (suositus)</translation>
 <translation id="7453467225369441013">Tämä kirjaa sinut ulos useimmilta sivustoilta. Sinua ei kirjata ulos Google-tililtäsi.</translation>
 <translation id="7454641608352164238">Tallennustila ei riitä</translation>
-<translation id="7455923816558154057">Napauta, niin linkki avataan</translation>
 <translation id="7473891865547856676">Ei kiitos</translation>
 <translation id="7475192538862203634">Jos näet tämän ilmoituksen usein, kokeile näitä <ph name="BEGIN_LINK" />ehdotuksia<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD-korttia ei löydy. Osa tiedostoista voi puuttua.</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 7d225a9..1ecda50 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
@@ -71,7 +71,6 @@
 <translation id="1430915738399379752">I-print</translation>
 <translation id="1445680696957526815">Hindi tugma ang mga bahagi ng Chrome sa isa't isa. Maaaring nag-a-upgrade ang Chrome, subukang muli pagkatapos ng ilang sandali. Kung magpapatuloy ang problema, subukang i-uninstall at muling i-install ang Chrome.</translation>
 <translation id="1446450296470737166">Payagan ganap na kontrol sa MIDI device</translation>
-<translation id="1449080968331948513">Ang Data Saver ay tinatawag na ngayong Lite mode</translation>
 <translation id="145097072038377568">Naka-off sa Mga Setting ng Android</translation>
 <translation id="1477626028522505441">Hindi na-download ang <ph name="FILE_NAME" /> dahil sa mga isyu sa server.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 pa)}one{ (+ # pa)}other{ (+ # pa)}}</translation>
@@ -81,7 +80,6 @@
 <translation id="1513858653616922153">I-delete ang password</translation>
 <translation id="1516229014686355813">Ipinapadala sa Google Search ng I-tap para Maghanap ang napiling salita at ang kasalukuyang page bilang konteksto. Maaari mo itong i-off sa <ph name="BEGIN_LINK" />Mga Setting<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktibo ngayong araw</translation>
-<translation id="1539064842193522527">Binuksan ang link sa Chrome</translation>
 <translation id="1549000191223877751">Lumipat sa ibang window</translation>
 <translation id="1553358976309200471">I-update ang Chrome</translation>
 <translation id="1569387923882100876">Nakakonektang Device</translation>
@@ -288,7 +286,6 @@
 <translation id="3058498974290601450">Maaari mong i-on ang pag-sync anumang oras sa mga setting.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bookmark}one{<ph name="BOOKMARKS_COUNT_MANY" /> bookmark}other{<ph name="BOOKMARKS_COUNT_MANY" /> na bookmark}}</translation>
 <translation id="3089395242580810162">Buksan sa tab na incognito</translation>
-<translation id="311456632243022227">Nagbukas ng marami sa Chrome</translation>
 <translation id="3115898365077584848">Ipakita ang Impormasyon</translation>
 <translation id="3123473560110926937">Naka-block sa ilang site</translation>
 <translation id="3137521801621304719">Umalis sa mode na incognito</translation>
@@ -850,7 +847,6 @@
 <translation id="7177466738963138057">Maaari mo itong baguhin sa ibang pagkakataon sa Mga Setting</translation>
 <translation id="7180611975245234373">I-refresh</translation>
 <translation id="7189372733857464326">Hinihintay ang Mga Serbisyo ng Google Play na matapos sa pag-update</translation>
-<translation id="7189598951263744875">Ibahagi...</translation>
 <translation id="7191430249889272776">Binuksan ang tab sa background.</translation>
 <translation id="723171743924126238">Pumili ng mga larawan</translation>
 <translation id="7233236755231902816">Para makita ang web sa iyong wika, kunin ang pinakabagong bersyon ng Chrome</translation>
@@ -887,7 +883,6 @@
 <translation id="7445411102860286510">Payagan ang mga site na awtomatikong mag-play ng mga naka-mute na video (inirerekomenda)</translation>
 <translation id="7453467225369441013">Isa-sign out ka sa karamihan ng mga site. Hindi ka masa-sign out sa iyong Google Account.</translation>
 <translation id="7454641608352164238">Walang sapat na espasyo</translation>
-<translation id="7455923816558154057">I-tap upang tingnan</translation>
 <translation id="7473891865547856676">Hindi, Salamat</translation>
 <translation id="7475192538862203634">Kung madalas mo itong makita, subukan ang <ph name="BEGIN_LINK" />mga suhestyon<ph name="END_LINK" /> na ito.</translation>
 <translation id="7475688122056506577">Hindi nakita ang SD card. Maaaring nawawala ang ilan sa iyong mga file.</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 cdc104d..6dc448a1 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Imprimer</translation>
 <translation id="1445680696957526815">Les composants de Chrome ne sont pas compatibles entre eux. Une mise à jour de Chrome est peut-être en cours. Veuillez réessayer dans quelques minutes. Si le problème persiste, veuillez désinstaller Chrome, puis le réinstaller.</translation>
 <translation id="1446450296470737166">Autoriser le contrôle complet des appareils MIDI</translation>
-<translation id="1449080968331948513">L'économiseur de données est passé en mode simplifié</translation>
 <translation id="145097072038377568">Désactivée dans les paramètres Android</translation>
 <translation id="1477626028522505441">Échec du téléchargement du fichier "<ph name="FILE_NAME" />" en raison de problèmes liés au serveur.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 autre)}one{ (+ # autre)}other{ (+ # autres)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Supprimer le mot de passe</translation>
 <translation id="1516229014686355813">La fonctionnalité "Appuyer pour rechercher" transmet le mot sélectionné et la page actuelle en tant que contexte à la recherche Google. Vous pouvez la désactiver dans les <ph name="BEGIN_LINK" />paramètres<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Actif aujourd'hui</translation>
-<translation id="1539064842193522527">Lien ouvert dans Chrome</translation>
 <translation id="1549000191223877751">Déplacer vers autre fenêtre</translation>
 <translation id="1553358976309200471">Mettre à jour Chrome</translation>
 <translation id="1569387923882100876">Appareil connecté</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Vous pouvez activer la synchronisation à tout moment dans les paramètres</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> favori}one{<ph name="BOOKMARKS_COUNT_MANY" /> favori}other{<ph name="BOOKMARKS_COUNT_MANY" /> favoris}}</translation>
 <translation id="3089395242580810162">Ouvrir onglet navig. privée</translation>
-<translation id="311456632243022227">Liens ouverts dans Chrome</translation>
 <translation id="3115898365077584848">Afficher les informations</translation>
 <translation id="3123473560110926937">Bloqué sur certains sites</translation>
 <translation id="3137521801621304719">Désactiver le mode navigation privée</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Vous pourrez modifier le moteur de recherche plus tard dans les paramètres</translation>
 <translation id="7180611975245234373">Actualiser</translation>
 <translation id="7189372733857464326">En attente de la fin de la mise à jour des services Google Play</translation>
-<translation id="7189598951263744875">Partager…</translation>
 <translation id="7191430249889272776">L'onglet a été ouvert en arrière-plan.</translation>
 <translation id="723171743924126238">Sélectionner des images</translation>
 <translation id="7233236755231902816">Pour afficher le Web dans votre langue, téléchargez la dernière version de Chrome</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Autoriser les sites à lire automatiquement des vidéos dont le son est coupé (recommandé)</translation>
 <translation id="7453467225369441013">Vous déconnecte de la plupart des sites. Vous ne serez cependant pas déconnecté de votre compte Google.</translation>
 <translation id="7454641608352164238">Espace insuffisant</translation>
-<translation id="7455923816558154057">Appuyer pour afficher</translation>
 <translation id="7473891865547856676">Non, merci</translation>
 <translation id="7475192538862203634">Si vous rencontrez souvent ce problème, essayez les <ph name="BEGIN_LINK" />suggestions<ph name="END_LINK" /> suivantes.</translation>
 <translation id="7475688122056506577">Carte SD introuvable. Certains de vos fichiers risquent d'être manquants.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb b/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb
index fb01181..3b3e743 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="gu">
 <translation id="1006017844123154345">ઑનલાઇન ખોલો</translation>
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" /> પર મોકલી રહ્યાં છીએ...</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> ઉમેરી રહ્યાં છીએ…</translation>
 <translation id="1041308826830691739">વેબસાઇટ પરથી</translation>
 <translation id="1049743911850919806">છૂપી</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">શોધો તેમજ શોધખોળ કરો</translation>
 <translation id="1264974993859112054">રમત-ગમત</translation>
 <translation id="1272079795634619415">રોકો</translation>
+<translation id="1272444412400969138">જેની સાથે ટૅબ શેર કરવું છે તે ડિવાઇસ પિકર.</translation>
 <translation id="1283039547216852943">વિસ્તૃત કરવા માટે ટૅપ કરો</translation>
 <translation id="1285320974508926690">આ સાઇટનું ક્યારેય ભાષાંતર કરશો નહીં</translation>
 <translation id="1291207594882862231">ઇતિહાસ, કુકી, સાઇટ ડેટા, કૅશ સાફ કરો…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">હાય, <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">શોધો</translation>
 <translation id="1384959399684842514">ડાઉનલોડ થોભાવ્યું</translation>
+<translation id="1386674309198842382"><ph name="LAST_UPDATED" /> દિવસ પહેલાં સક્રિય હતું</translation>
 <translation id="1389974829397082527">અહીં કોઈ બુકમાર્ક્સ નથી</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> વડે શોધો</translation>
 <translation id="1404122904123200417"><ph name="WEBSITE_URL" /> માં એમ્બેડ કર્યું</translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">પ્રિન્ટ</translation>
 <translation id="1445680696957526815">Chrome ના ઘટકો એકબીજાની સાથે અસંગત છે. Chrome અપગ્રેડ થઈ રહ્યું હોઈ શકે છે, કૃપા કરીને થોડીવારમાં ફરી પ્રયાસ કરો. જો સમસ્યા ચાલુ રહે છે, તો Chrome ને અનઇન્સ્ટોલ કરીને ફરીથી ઇન્સ્ટોલ કરવાનો પ્રયાસ કરો.</translation>
 <translation id="1446450296470737166">MIDI ઉપકરણોના પૂર્ણ નિયંત્રણની મંજૂરી આપો</translation>
-<translation id="1449080968331948513">ડેટા સેવર હવે લાઇટ મોડ છે</translation>
 <translation id="145097072038377568">Android સેટિંગ્સમાં બંધ કરી</translation>
 <translation id="1477626028522505441">સર્વર સમસ્યાઓને કારણે <ph name="FILE_NAME" /> ડાઉનલોડ નિષ્ફળ થયું.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 વધુ)}one{ (+ # વધુ)}other{ (+ # વધુ)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">પાસવર્ડ ડિલીટ કરો</translation>
 <translation id="1516229014686355813">શોધવા માટે ટૅપ કરો પસંદ કરાયેલ શબ્દ અને હાલના પેજને સંદર્ભ તરીકે Google શોધને મોકલે છે. તમે તેને <ph name="BEGIN_LINK" />સેટિંગ<ph name="END_LINK" />માં બંધ કરી શકો છો.</translation>
 <translation id="1521774566618522728">આજે સક્રિય છે</translation>
-<translation id="1539064842193522527">લિંક Chromeમાં ખોલી</translation>
 <translation id="1549000191223877751">અન્ય વિંડો પર ખસેડો</translation>
 <translation id="1553358976309200471">Chrome અપડેટ કરો</translation>
 <translation id="1569387923882100876">કનેક્ટ કરેલ ઉપકરણ</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">તમે કોઈ પણ સમયે સેટિંગમાં 'સિંક કરો' ચાલુ કરી શકો છો</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> બુકમાર્ક}one{<ph name="BOOKMARKS_COUNT_MANY" /> બુકમાર્ક}other{<ph name="BOOKMARKS_COUNT_MANY" /> બુકમાર્ક}}</translation>
 <translation id="3089395242580810162">છુપા ટેબમાં ખોલો</translation>
-<translation id="311456632243022227">Chromeમાં બહુવિધ લિંક ખોલી</translation>
 <translation id="3115898365077584848">માહિતી બતાવો</translation>
 <translation id="3123473560110926937">કેટલીક સાઇટ પર બ્લૉક કરેલ</translation>
 <translation id="3137521801621304719">છુપા મોડને છોડો</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">કોઈ ચોક્કસ સાઇટ માટે કુકીને મંજૂરી આપો.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# કલાક}one{# કલાક}other{# કલાક}}</translation>
 <translation id="4042870126885713738">જ્યારે વેબ ઍડ્રેસ ન ઉકેલાય અથવા કનેક્શન કરી શકાતું ન હોય ત્યારે સૂચનો દર્શાવો</translation>
+<translation id="4044912625106523635">જેની સાથે ટૅબ શેર કરવું છે તે ડિવાઇસ પિકર સંપૂર્ણ ઊંચાઈએ ખુલે છે.</translation>
 <translation id="4046123991198612571">આગલો ટ્રૅક</translation>
 <translation id="4048707525896921369">પેજ છોડ્યાં વગર વેબસાઇટ પરના મુદ્દાઓ વિશે જાણો. શોધને ટૅપ કરવાથી એક શબ્દ અને તેની આસપાસનો સંદર્ભ Google શોધને મોકલે છે, જે વ્યાખ્યાઓ, ફોટોો, શોધ પરિણામો અને અન્ય વિગતો પરત કરે છે.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">ડિવાઇસ, ડાઉનલોડ કરવાની કન્ટેન્ટ ખોલી શકતું નથી.</translation>
 <translation id="528192093759286357">પૂર્ણસ્ક્રીનથી બહાર નીકળવા માટે ઉપરથી ખેંચો અને પાછળ બટનને ટચ કરો.</translation>
 <translation id="5284584623296338184">તમારા બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને બીજા સેટિંગમાં ફેરફારને હવે તમારા Google એકાઉન્ટ પર સિંક કરવામાં આવશે નહિ. જોકે, તમારો અસ્તિત્વમાંનો ડેટા તમારા Google એકાઉન્ટમાં સ્ટોર રહેશે.</translation>
+<translation id="5292796745632149097">આના પર મોકલો</translation>
 <translation id="5300589172476337783">બતાવો</translation>
 <translation id="5301954838959518834">બરાબર, સમજાઇ ગયું</translation>
 <translation id="5304593522240415983">આ ફીલ્ડ ખાલી હોઈ શકતું નથી</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">સમન્વયન</translation>
 <translation id="641643625718530986">પ્રિન્ટ…</translation>
 <translation id="6416782512398055893"><ph name="MBS" /> MB ડાઉનલોડ કર્યા</translation>
+<translation id="6418750371676080905">જેની સાથે ટૅબ શેર કરવું છે તે ડિવાઇસ પિકર બંધ છે.</translation>
 <translation id="6427112570124116297">વેબનો અનુવાદ કરો</translation>
 <translation id="6433501201775827830">તમારું શોધ એંજિન પસંદ કરો</translation>
 <translation id="6437478888915024427">પેજ વિશે માહિતી</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">સરનામાં બારમાં લખતાંની સાથે સંબંધિત ક્વેરીઝ અને લોકપ્રિય વેબસાઇટ્સ દર્શાવવા માટે પૂર્વાનુમાન સેવાનો ઉપયોગ કરો.</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" /> માં ખોલો</translation>
 <translation id="666981079809192359">Chrome ગોપનીયતા સૂચના</translation>
+<translation id="6672986458216094438">જેની સાથે ટૅબ શેર કરવું છે તે ડિવાઇસ પિકર અડધી ઊંચાઈએ ખુલે છે.</translation>
 <translation id="6697492270171225480">જ્યારે કોઈ પેજ ન મળે ત્યારે તેના જેવા પેજ માટે સૂચનો બતાવો</translation>
 <translation id="6697947395630195233">Chromeને આ સાઇટ સાથે તમારું સ્થાન શેર કરવા માટે તમારા સ્થાનના ઍક્સેસની જરૂર પડે છે.</translation>
 <translation id="6698801883190606802">સમન્વયિત ડેટા સંચાલિત કરો</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">તમે આને થોડા સમય પછી સેટિંગ્સમાં જઈને બદલી શકો છો</translation>
 <translation id="7180611975245234373">રિફ્રેશ કરો</translation>
 <translation id="7189372733857464326">Google Play સેવાઓ દ્વારા અપડેટ થવાનું સમાપ્ત કરવાની રાહ જોવામાં આવી રહી છે</translation>
-<translation id="7189598951263744875">શેર કરો...</translation>
 <translation id="7191430249889272776">ટેબ પૃષ્ઠભૂમિમાં ખોલવામાં આવ્યું છે.</translation>
 <translation id="723171743924126238">છબીઓ પસંદ કરો</translation>
 <translation id="7233236755231902816">વેબ તમારી ભાષામાં જોવા માટે Chromeનું એકદમ નવું વર્ઝન મેળવો</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">સાઇટ્સને આપમેળે મ્યૂટ કરેલ વિડિઓઝને ચલાવવાની મંજૂરી આપો (ભલામણ કરેલ)</translation>
 <translation id="7453467225369441013">તમને મોટાભાગની સાઇટોમાંથી સાઇન આઉટ કરે છે. તમે તમારા Google એકાઉન્ટમાંથી સાઇન આઉટ નહિ થાઓ.</translation>
 <translation id="7454641608352164238">પર્યાપ્ત જગ્યા નથી</translation>
-<translation id="7455923816558154057">જોવા માટે ટૅપ કરો</translation>
 <translation id="7473891865547856676">નહીં આભાર</translation>
 <translation id="7475192538862203634">જો તમે આ વારંવાર જોઈ રહ્યાં છો, તો આ <ph name="BEGIN_LINK" />સૂચનો<ph name="END_LINK" />ને અજમાવી જુઓ.</translation>
 <translation id="7475688122056506577">SD કાર્ડ મળ્યું નથી. તમારી અમુક ફાઇલો ખૂટતી હોઈ શકે છે.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> જૂનું થઈ ગયું છે.</translation>
 <translation id="7947953824732555851">સ્વીકારો અને સાઇન ઇન કરો</translation>
 <translation id="7963646190083259054">વિક્રેતા:</translation>
+<translation id="7971136598759319605">1 દિવસ પહેલાં સક્રિય હતું</translation>
 <translation id="7975379999046275268">પેજને પ્રીવ્યૂ કરો <ph name="BEGIN_NEW" />નવું<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">ઝડપી બ્રાઉઝિંગ અને શોધ માટે પેજને પહેલેથી લોડ કરો</translation>
 <translation id="79859296434321399">ઑગ્મેન્ટેડ રિયાલિટી કન્ટેન્ટ જોવા માટે, ARCore ઇન્સ્ટૉલ કરો</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 e022681b..a362b5c 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
@@ -71,7 +71,6 @@
 <translation id="1430915738399379752">प्रिंट करें</translation>
 <translation id="1445680696957526815">Chrome के घटक एक-दूसरे से असंगत हैं. संभवत: Chrome अपग्रेड हो रहा है, कृपया कुछ ही देर में फिर से प्रयास करें. अगर समस्या बनी रहती है, तो Chrome को अनइंस्टॉल करके और फिर से इंस्टॉल करके देखें.</translation>
 <translation id="1446450296470737166">MIDI डिवाइस के पूरे नियंत्रण की अनुमति दें</translation>
-<translation id="1449080968331948513">डेटा बचाने का टूल अब लाइट मोड है</translation>
 <translation id="145097072038377568">Android सेटिंग में बंद कर दिया गया है</translation>
 <translation id="1477626028522505441">सर्वर संबधी समस्‍याओं के कारण <ph name="FILE_NAME" /> डाउनलोड विफल रहा.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 और)}one{ (+ # और)}other{ (+ # और)}}</translation>
@@ -81,7 +80,6 @@
 <translation id="1513858653616922153">पासवर्ड मिटाएं</translation>
 <translation id="1516229014686355813">'खोजने के लिए टैप करें' सुविधा चुने हुए शब्‍द और मौजूदा पेज को संदर्भ के रूप में 'Google सर्च' पर भेजती है. आप इसे <ph name="BEGIN_LINK" />सेटिंग<ph name="END_LINK" /> में जाकर बंद कर सकते हैं.</translation>
 <translation id="1521774566618522728">आज सक्रिय है</translation>
-<translation id="1539064842193522527">लिंक को Chrome में खोला गया</translation>
 <translation id="1549000191223877751">अन्य विंडो में ले जाएं</translation>
 <translation id="1553358976309200471">Chrome अपडेट करें</translation>
 <translation id="1569387923882100876">कनेक्ट किया गया डिवाइस</translation>
@@ -288,7 +286,6 @@
 <translation id="3058498974290601450">आप सेटिंग में किसी भी समय सिंक चालू कर सकते हैं</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> बुकमार्क}one{<ph name="BOOKMARKS_COUNT_MANY" /> बुकमार्क}other{<ph name="BOOKMARKS_COUNT_MANY" /> बुकमार्क}}</translation>
 <translation id="3089395242580810162">गुप्त टैब में खोलें</translation>
-<translation id="311456632243022227">एकाधिक लिंक Chrome में खोले गए</translation>
 <translation id="3115898365077584848">जानकारी दिखाएं</translation>
 <translation id="3123473560110926937">कुछ साइटों पर ब्लॉक किए गए हैं</translation>
 <translation id="3137521801621304719">गुप्त मोड छोड़ें</translation>
@@ -850,7 +847,6 @@
 <translation id="7177466738963138057">आप इसे बाद में सेटिंग में जाकर बदल सकते हैं</translation>
 <translation id="7180611975245234373">रीफ्रेश करें</translation>
 <translation id="7189372733857464326">Google Play सेवाएं द्वारा अपडेट खत्म किए जाने की प्रतीक्षा की जा रही है</translation>
-<translation id="7189598951263744875">शेयर करें...</translation>
 <translation id="7191430249889272776">पृष्ठभूमि में टैब खोला गया.</translation>
 <translation id="723171743924126238">फ़ोटो चुनें</translation>
 <translation id="7233236755231902816">वेब को अपनी भाषा में देखने के लिए, Chrome का नया वर्शन पाएं</translation>
@@ -887,7 +883,6 @@
 <translation id="7445411102860286510">साइटों को म्यूट किए गए वीडियो अपने आप चलाने की अनुमति दें (हम इस सेटिंग को चालू रखने का सुझाव देते हैं)</translation>
 <translation id="7453467225369441013">आपको ज़्यादातर साइटों से साइन आउट कर देता है. आप अपने Google खाते से साइन आउट नहीं होंगे.</translation>
 <translation id="7454641608352164238">जगह काफ़ी नहीं है</translation>
-<translation id="7455923816558154057">देखने के लिए टैप करें</translation>
 <translation id="7473891865547856676">नहीं, रहने दें</translation>
 <translation id="7475192538862203634">अगर आपको यह बार-बार दिखाई दे रहा हो, तो इन <ph name="BEGIN_LINK" />सुझावों<ph name="END_LINK" /> को आज़माएं.</translation>
 <translation id="7475688122056506577">SD कार्ड नहीं मिला. हो सकता है कि आपकी कुछ फ़ाइलें उपलब्ध न हों.</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 6a93e61f..8fd43e5 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Ispis</translation>
 <translation id="1445680696957526815">Chromeove komponente nisu međusobno kompatibilne. Chrome se možda nadograđuje, pa pokušajte ponovo za nekoliko minuta. Ako se problem nastavi, pokušajte deinstalirati i ponovo instalirati Chrome.</translation>
 <translation id="1446450296470737166">Omogući potpuni nadzor za MIDI</translation>
-<translation id="1449080968331948513">Ušteda podataka sada je u Jednostavnom načinu</translation>
 <translation id="145097072038377568">Isključeno u postavkama Androida</translation>
 <translation id="1477626028522505441">Preuzimanje datoteke <ph name="FILE_NAME" /> nije uspjelo zbog poteškoća s poslužiteljem.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ još 1)}one{ (+ još #)}few{ (+ još #)}other{ (+ još #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Izbriši zaporku</translation>
 <translation id="1516229014686355813">Značajka Dodirnite za pretraživanje Google pretraživanju šalje odabranu riječ i trenutačnu stranicu kao kontekst. Možete je isključiti u <ph name="BEGIN_LINK" />Postavkama<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktivan danas</translation>
-<translation id="1539064842193522527">Veza otvorena u Chromeu</translation>
 <translation id="1549000191223877751">Premjesti u drugi prozor</translation>
 <translation id="1553358976309200471">Ažuriraj Chrome</translation>
 <translation id="1569387923882100876">Povezani uređaj</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Sinkronizaciju možete uključiti u bilo kojem trenutku u postavkama</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> oznaka}one{<ph name="BOOKMARKS_COUNT_MANY" /> oznaka}few{<ph name="BOOKMARKS_COUNT_MANY" /> oznake}other{<ph name="BOOKMARKS_COUNT_MANY" /> oznaka}}</translation>
 <translation id="3089395242580810162">Otvori na anonimnoj kartici</translation>
-<translation id="311456632243022227">Više veza otvoreno u Chromeu</translation>
 <translation id="3115898365077584848">Prikaži informacije</translation>
 <translation id="3123473560110926937">Blokirano na nekim web-lokacijama</translation>
 <translation id="3137521801621304719">Izlaz iz anonimnog načina</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Kasnije to možete promijeniti u odjeljku Postavke</translation>
 <translation id="7180611975245234373">Osvježi</translation>
 <translation id="7189372733857464326">Čekanje dovršetka ažuriranja Google Play usluga</translation>
-<translation id="7189598951263744875">Dijeli...</translation>
 <translation id="7191430249889272776">Kartica je otvorena u pozadini.</translation>
 <translation id="723171743924126238">Odaberite slike</translation>
 <translation id="7233236755231902816">Za prikaz weba na vašem jeziku preuzmite najnoviju verziju Chromea</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Web-lokacije mogu automatski reproducirati zanemarene videozapise (preporučeno)</translation>
 <translation id="7453467225369441013">Odjavit ćete se s većine web-lokacija, ali se nećete odjaviti s Google računa.</translation>
 <translation id="7454641608352164238">Nema dovoljno prostora</translation>
-<translation id="7455923816558154057">Dodirnite za prikaz</translation>
 <translation id="7473891865547856676">Ne, hvala</translation>
 <translation id="7475192538862203634">Ako se to često događa, isprobajte ove <ph name="BEGIN_LINK" />prijedloge<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD kartica nije pronađena. Neke od vaših datoteka možda nedostaju.</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 726cc86..aa8767b 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Nyomtatás</translation>
 <translation id="1445680696957526815">A Chrome egyes összetevői nem kompatibilisek egymással. Lehet, hogy éppen a Chrome verziófrissítése zajlik, ezért próbálja újra pár perc múlva. Ha a probléma továbbra is fennáll, próbálja meg eltávolítani, majd újratelepíteni a Chrome-ot.</translation>
 <translation id="1446450296470737166">MIDI-eszközök teljes vezérlése</translation>
-<translation id="1449080968331948513">Az Adatforgalom-csökkentő neve mostantól Egyszerűsített mód</translation>
 <translation id="145097072038377568">Kikapcsolva az Android beállításaiban</translation>
 <translation id="1477626028522505441">A következő fájl letöltése szerverproblémák miatt nem sikerült: <ph name="FILE_NAME" />.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 további)}other{ (+ # további)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Jelszó törlése</translation>
 <translation id="1516229014686355813">A Keresés koppintással funkció elküldi a kiválasztott szót és az aktuális oldalt kontextusként a Google Keresés számára. A funkciót a <ph name="BEGIN_LINK" />Beállításokban<ph name="END_LINK" /> lehet kikapcsolni.</translation>
 <translation id="1521774566618522728">Ma volt aktív</translation>
-<translation id="1539064842193522527">Link Chrome-ban megnyitva</translation>
 <translation id="1549000191223877751">Áthelyezés másik ablakba</translation>
 <translation id="1553358976309200471">A Chrome böngésző frissítése</translation>
 <translation id="1569387923882100876">Csatlakoztatott eszköz</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">A szinkronizálás bármikor bekapcsolható a beállításokban</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> könyvjelző}other{<ph name="BOOKMARKS_COUNT_MANY" /> könyvjelző}}</translation>
 <translation id="3089395242580810162">Megnyitás inkognitólapon</translation>
-<translation id="311456632243022227">Több link Chrome-ban megnyitva</translation>
 <translation id="3115898365077584848">Információk megjelenítése</translation>
 <translation id="3123473560110926937">Letiltva egyes webhelyeken</translation>
 <translation id="3137521801621304719">Kilépés inkognitómódból</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Ezt később módosíthatja a beállítások között.</translation>
 <translation id="7180611975245234373">Frissítés</translation>
 <translation id="7189372733857464326">Várakozás a Google Play-szolgáltatások frissítésének befejezésére</translation>
-<translation id="7189598951263744875">Megosztás...</translation>
 <translation id="7191430249889272776">A lap megnyílt a háttérben.</translation>
 <translation id="723171743924126238">Képek kiválasztása</translation>
 <translation id="7233236755231902816">Ha saját nyelvén szeretné böngészni az internetet, szerezze be a Chrome legújabb verzióját</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Lehetővé teszi a webhelyek számára a némított videók automatikus lejátszását (ajánlott)</translation>
 <translation id="7453467225369441013">A rendszer a legtöbb webhelyről kijelentkezteti Önt, de Google-fiókjából nem.</translation>
 <translation id="7454641608352164238">Nincs elég tárhely</translation>
-<translation id="7455923816558154057">Koppintson a megtekintéshez</translation>
 <translation id="7473891865547856676">Nem, köszönöm</translation>
 <translation id="7475192538862203634">Ha gyakran látja ezt, próbálja ki ezeket a <ph name="BEGIN_LINK" />javaslatokat<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Az SD-kártya nem található. Előfordulhat, hogy egyes fájlok hiányoznak.</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 4bebbf37..b229af7c 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="id">
 <translation id="1006017844123154345">Buka versi Online</translation>
+<translation id="1028699632127661925">Mengirim ke <ph name="DEVICE_NAME" />...</translation>
 <translation id="1036727731225946849">Menambahkan <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Dari situs</translation>
 <translation id="1049743911850919806">Penyamaran</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Telusuri &amp; jelajahi</translation>
 <translation id="1264974993859112054">Olahraga</translation>
 <translation id="1272079795634619415">Berhenti</translation>
+<translation id="1272444412400969138">Pemilih perangkat yang diajak berbagi tab.</translation>
 <translation id="1283039547216852943">Tap untuk meluaskan</translation>
 <translation id="1285320974508926690">Jangan pernah terjemahkan situs ini</translation>
 <translation id="1291207594882862231">Menghapus histori, cookie, data situs, cache...</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Hai, <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">Telusuri</translation>
 <translation id="1384959399684842514">Download dijeda</translation>
+<translation id="1386674309198842382">Aktif <ph name="LAST_UPDATED" /> hari lalu</translation>
 <translation id="1389974829397082527">Tidak ada bookmark di sini</translation>
 <translation id="1397811292916898096">Telusuri dengan <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">Tersemat dalam <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Cetak</translation>
 <translation id="1445680696957526815">Komponen Chrome tidak kompatibel dengan satu sama lain. Chrome mungkin ditingkatkan versinya, coba lagi dalam beberapa menit. Jika masalah terus berlanjut, coba uninstal dan instal ulang.</translation>
 <translation id="1446450296470737166">Izinkan kontrol penuh perangkat MIDI</translation>
-<translation id="1449080968331948513">Penghemat Data sekarang menjadi Mode ringan</translation>
 <translation id="145097072038377568">Dinonaktifkan di Setelan Android</translation>
 <translation id="1477626028522505441">Download <ph name="FILE_NAME" /> gagal karena masalah server.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 lainnya)}other{ (+ # lainnya)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Hapus sandi</translation>
 <translation id="1516229014686355813">Fitur Tap untuk Menelusuri mengirimkan kata yang dipilih dan halaman yang dibuka sebagai konteks ke Google Penelusuran. Anda dapat menonaktifkannya di <ph name="BEGIN_LINK" />Setelan<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktif hari ini</translation>
-<translation id="1539064842193522527">Link dibuka di Chrome</translation>
 <translation id="1549000191223877751">Beralih ke jendela lain</translation>
 <translation id="1553358976309200471">Perbarui browser Chrome</translation>
 <translation id="1569387923882100876">Perangkat yang Terhubung</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Anda dapat mengaktifkan sinkronisasi kapan saja di setelan</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bookmark}other{<ph name="BOOKMARKS_COUNT_MANY" /> bookmark}}</translation>
 <translation id="3089395242580810162">Buka di tab penyamaran</translation>
-<translation id="311456632243022227">Beberapa link dibuka di Chrome</translation>
 <translation id="3115898365077584848">Tampilkan Info</translation>
 <translation id="3123473560110926937">Diblokir di beberapa situs</translation>
 <translation id="3137521801621304719">Tutup mode penyamaran</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Izinkan cookie untuk situs tertentu.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# jam}other{# jam}}</translation>
 <translation id="4042870126885713738">Tampilkan saran saat alamat web tidak ditemukan atau koneksi bermasalah</translation>
+<translation id="4044912625106523635">Pemilih perangkat yang diajak berbagi tab terbuka dalam layar penuh.</translation>
 <translation id="4046123991198612571">Lagu berikutnya</translation>
 <translation id="4048707525896921369">Pelajari topik di situs tanpa meninggalkan halaman. Fitur Tap untuk Menelusuri mengirimkan kata dan konteks di sekitarnya ke Google Penelusuran, yang kemudian menampilkan definisi, gambar, hasil penelusuran, dan detail lainnya.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">Perangkat tidak dapat membuka konten untuk didownload.</translation>
 <translation id="528192093759286357">Tarik dari atas dan ketuk tombol kembali untuk keluar dari mode layar penuh.</translation>
 <translation id="5284584623296338184">Perubahan pada bookmark, histori, sandi, dan setelan lainnya tidak akan disinkronkan lagi dengan Akun Google Anda. Namun, data yang sudah ada akan tetap disimpan di akun Google Anda.</translation>
+<translation id="5292796745632149097">Kirim ke</translation>
 <translation id="5300589172476337783">Tampilkan</translation>
 <translation id="5301954838959518834">Oke, mengerti</translation>
 <translation id="5304593522240415983">Bidang ini tidak boleh kosong</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Sinkronisasi</translation>
 <translation id="641643625718530986">Cetak...</translation>
 <translation id="6416782512398055893">Terdownload <ph name="MBS" /> MB</translation>
+<translation id="6418750371676080905">Pemilih perangkat yang diajak berbagi ditutup.</translation>
 <translation id="6427112570124116297">Terjemahkan Web</translation>
 <translation id="6433501201775827830">Pilih mesin telusur Anda</translation>
 <translation id="6437478888915024427">Info halaman</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Gunakan pencarian otomatis untuk menunjukkan situs web populer saat Anda mengetik alamat situs</translation>
 <translation id="666731172850799929">Buka di <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">Notifikasi Privasi Chrome</translation>
+<translation id="6672986458216094438">Pemilih perangkat yang diajak berbagi tab terbuka dalam setengah layar.</translation>
 <translation id="6697492270171225480">Tampilkan saran untuk halaman yang serupa jika halaman tidak dapat ditemukan</translation>
 <translation id="6697947395630195233">Chrome memerlukan akses ke lokasi Anda untuk berbagi lokasi dengan situs ini.</translation>
 <translation id="6698801883190606802">Kelola data yang disinkronkan</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Anda dapat mengubah ini nanti di Setelan</translation>
 <translation id="7180611975245234373">Perbarui</translation>
 <translation id="7189372733857464326">Menunggu Layanan Google Play selesai di-update</translation>
-<translation id="7189598951263744875">Bagikan...</translation>
 <translation id="7191430249889272776">Tab dibuka di latar belakang.</translation>
 <translation id="723171743924126238">Pilih gambar</translation>
 <translation id="7233236755231902816">Untuk melihat web dalam bahasa Anda, dapatkan versi terbaru Chrome</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Izinkan situs untuk otomatis memutar video yang dibisukan (disarankan)</translation>
 <translation id="7453467225369441013">Membuat Anda logout dari sebagian besar situs. Anda tidak akan logout dari Akun Google.</translation>
 <translation id="7454641608352164238">Tidak cukup ruang</translation>
-<translation id="7455923816558154057">Tap untuk melihat</translation>
 <translation id="7473891865547856676">Lain Kali</translation>
 <translation id="7475192538862203634">Jika masalah ini sering terjadi, coba <ph name="BEGIN_LINK" />saran<ph name="END_LINK" /> berikut.</translation>
 <translation id="7475688122056506577">Kartu SD tidak ditemukan. Beberapa file Anda mungkin tidak tersimpan.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> sudah usang.</translation>
 <translation id="7947953824732555851">Terima dan masuk</translation>
 <translation id="7963646190083259054">Vendor:</translation>
+<translation id="7971136598759319605">Aktif 1 hari yang lalu</translation>
 <translation id="7975379999046275268">Pratinjau halaman <ph name="BEGIN_NEW" />Baru<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Pramuat halaman agar browsing dan menelusuri lebih cepat</translation>
 <translation id="79859296434321399">Untuk melihat konten augmented reality, instal ARCore</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 f5a7c11..7ba1cd27 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Stampa</translation>
 <translation id="1445680696957526815">I componenti di Chrome non sono compatibili tra loro. Potrebbe essere in corso l'upgrade di Chrome, riprova tra qualche minuto. Se il problema persiste, prova a disinstallare e reinstallare Chrome.</translation>
 <translation id="1446450296470737166">Controllo completo dispos. MIDI</translation>
-<translation id="1449080968331948513">La funzionalità Risparmio dati si chiama ora modalità Lite</translation>
 <translation id="145097072038377568">Disattivata in Impostazioni Android</translation>
 <translation id="1477626028522505441">Download di <ph name="FILE_NAME" /> non riuscito a causa di problemi del server.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 altro)}other{ (+ altri #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Elimina la password</translation>
 <translation id="1516229014686355813">La funzione Tocca per cercare invia la parola selezionata e la pagina corrente come contesto alla Ricerca Google. Puoi disattivare la funzione nelle <ph name="BEGIN_LINK" />Impostazioni<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Attivo oggi</translation>
-<translation id="1539064842193522527">Link aperto in Chrome</translation>
 <translation id="1549000191223877751">Passa a un'altra finestra</translation>
 <translation id="1553358976309200471">Aggiorna Chrome</translation>
 <translation id="1569387923882100876">Dispositivo collegato</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Puoi attivare la sincronizzazione in qualsiasi momento nelle impostazioni</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> preferito}other{<ph name="BOOKMARKS_COUNT_MANY" /> preferiti}}</translation>
 <translation id="3089395242580810162">Apri in scheda in incognito</translation>
-<translation id="311456632243022227">Più link aperti in Chrome</translation>
 <translation id="3115898365077584848">Mostra informazioni</translation>
 <translation id="3123473560110926937">Bloccati su alcuni siti</translation>
 <translation id="3137521801621304719">Esci dalla modalità di navigazione in incognito</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Puoi cambiarlo in un secondo momento nelle Impostazioni</translation>
 <translation id="7180611975245234373">Aggiorna</translation>
 <translation id="7189372733857464326">In attesa che Google Play Services termini l'aggiornamento</translation>
-<translation id="7189598951263744875">Condividi...</translation>
 <translation id="7191430249889272776">Scheda aperta in background.</translation>
 <translation id="723171743924126238">Seleziona immagini</translation>
 <translation id="7233236755231902816">Per navigare sul Web nella tua lingua, scarica l'ultima versione di Chrome</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Consenti ai siti di riprodurre automaticamente i video con audio disattivato (opzione consigliata)</translation>
 <translation id="7453467225369441013">Verrai disconnesso dalla maggior parte dei siti, ma non dal tuo Account Google.</translation>
 <translation id="7454641608352164238">Spazio insufficiente</translation>
-<translation id="7455923816558154057">Tocca per visualizzare</translation>
 <translation id="7473891865547856676">No grazie</translation>
 <translation id="7475192538862203634">Se il problema si verifica di frequente, prova questi <ph name="BEGIN_LINK" />suggerimenti<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Scheda SD non trovata. Potrebbero mancare alcuni dei tuoi file.</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 fc56359..fd86e3f 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
@@ -71,7 +71,6 @@
 <translation id="1430915738399379752">הדפסה</translation>
 <translation id="1445680696957526815">‏הרכיבים של Chrome אינם תואמים זה לזה. ייתכן ש-Chrome מבצע שדרוג, נסה שוב בעוד כמה דקות. אם הבעיה נמשכת, נסה להסיר את Chrome ולהתקין אותו מחדש.</translation>
 <translation id="1446450296470737166">‏התר שליטה מלאה על מכשירי MIDI</translation>
-<translation id="1449080968331948513">‏Data Saver נקרא עכשיו 'מצב טעינה מהירה'</translation>
 <translation id="145097072038377568">‏כבוי בהגדרות Android</translation>
 <translation id="1477626028522505441">הורדת <ph name="FILE_NAME" /> נכשלה עקב בעיות בשרת.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (ועוד 1)}two{ (ועוד #)}many{ (ועוד #)}other{ (ועוד #)}}</translation>
@@ -81,7 +80,6 @@
 <translation id="1513858653616922153">מחק סיסמה</translation>
 <translation id="1516229014686355813">‏התכונה 'הקשה כדי לחפש' שולחת אל חיפוש Google את המילה הנבחרת, יחד עם הדף הנוכחי בתור הקשר. ניתן לכבות תכונה זאת ב<ph name="BEGIN_LINK" />הגדרות<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">שימוש אחרון: היום</translation>
-<translation id="1539064842193522527">‏הקישור נפתח ב-Chrome</translation>
 <translation id="1549000191223877751">העבר לחלון האחר</translation>
 <translation id="1553358976309200471">‏כדאי לעדכן את Chrome</translation>
 <translation id="1569387923882100876">מכשיר מחובר</translation>
@@ -288,7 +286,6 @@
 <translation id="3058498974290601450">אפשר להפעיל את הסנכרון בכל זמן דרך ההגדרות</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{סימניה אחת (<ph name="BOOKMARKS_COUNT_ONE" />)}two{<ph name="BOOKMARKS_COUNT_MANY" /> סימניות}many{<ph name="BOOKMARKS_COUNT_MANY" /> סימניות}other{<ph name="BOOKMARKS_COUNT_MANY" /> סימניות}}</translation>
 <translation id="3089395242580810162">פתיחה בכרטיסיית גלישה בסתר</translation>
-<translation id="311456632243022227">‏קישורים מרובים נפתחו ב-Chrome</translation>
 <translation id="3115898365077584848">הצג פרטים</translation>
 <translation id="3123473560110926937">חסומות בחלק מהאתרים</translation>
 <translation id="3137521801621304719">צא ממצב גלישה בסתר</translation>
@@ -850,7 +847,6 @@
 <translation id="7177466738963138057">אפשר לשנות את ההגדרה הזו מאוחר יותר ב'הגדרות'</translation>
 <translation id="7180611975245234373">רענון</translation>
 <translation id="7189372733857464326">‏המערכת ממתינה שיסתיים העדכון של שירותי Google Play</translation>
-<translation id="7189598951263744875">שיתוף...</translation>
 <translation id="7191430249889272776">הכרטיסייה נפתחה ברקע.</translation>
 <translation id="723171743924126238">בחר תמונות</translation>
 <translation id="7233236755231902816">‏כדי לראות באינטרנט תוכן בשפה שלך, יש להוריד את הגרסה האחרונה של Chrome</translation>
@@ -887,7 +883,6 @@
 <translation id="7445411102860286510">אתרים יוכלו להפעיל באופן אוטומטי סרטונים מושתקים (מומלץ)</translation>
 <translation id="7453467225369441013">‏הפעולה תוציא אותך מרוב האתרים אבל לא מחשבון Google שלך.</translation>
 <translation id="7454641608352164238">אין מספיק מקום</translation>
-<translation id="7455923816558154057">הקש כדי להציג</translation>
 <translation id="7473891865547856676">לא, תודה</translation>
 <translation id="7475192538862203634">אם נתקלת בזה לעתים קרובות, כדאי לנסות את <ph name="BEGIN_LINK" />ההצעות<ph name="END_LINK" /> האלה.</translation>
 <translation id="7475688122056506577">‏לא נמצא כרטיס SD. ייתכן שחלק מהקבצים שלך חסרים.</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 45425b2..c4a22e2 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ja">
 <translation id="1006017844123154345">オンライン版を開く</translation>
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" /> に送信しています...</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> を追加しています...</translation>
 <translation id="1041308826830691739">ウェブサイトから</translation>
 <translation id="1049743911850919806">シークレット モード</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">検索</translation>
 <translation id="1264974993859112054">スポーツ</translation>
 <translation id="1272079795634619415">中止</translation>
+<translation id="1272444412400969138">タブを共有するデバイスの選択ツールです。</translation>
 <translation id="1283039547216852943">タップして展開</translation>
 <translation id="1285320974508926690">このサイトは翻訳しない</translation>
 <translation id="1291207594882862231">履歴、Cookie、サイトデータ、キャッシュを削除…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">こんにちは、<ph name="FULL_NAME" /> さん</translation>
 <translation id="1383876407941801731">検索</translation>
 <translation id="1384959399684842514">ダウンロードを一時停止しました</translation>
+<translation id="1386674309198842382">最終同期: <ph name="LAST_UPDATED" /> 日前</translation>
 <translation id="1389974829397082527">ブックマークはありません</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> で検索</translation>
 <translation id="1404122904123200417">埋め込み先: <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">印刷</translation>
 <translation id="1445680696957526815">Chrome のコンポーネント同士に互換性がありません。Chrome が更新中の可能性があります。しばらくしてからもう一度お試しください。問題が続く場合は、Chrome をいったんアンインストールし、再インストールしてみてください。</translation>
 <translation id="1446450296470737166">MIDI機器のフルコントロールを許可</translation>
-<translation id="1449080968331948513">データセーバーは現在ライトモードです</translation>
 <translation id="145097072038377568">Android の設定で無効</translation>
 <translation id="1477626028522505441">サーバーで問題が発生したため、<ph name="FILE_NAME" /> をダウンロードできませんでした。</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{(他 1 件)}other{(他 # 件)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">パスワードを削除</translation>
 <translation id="1516229014686355813">「タップして検索」では選択した単語と現在のページがコンテキストとして Google 検索に送信されます。これは [<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />] で無効にすることができます。</translation>
 <translation id="1521774566618522728">最終同期: 今日</translation>
-<translation id="1539064842193522527">リンクが Chrome で開かれました</translation>
 <translation id="1549000191223877751">他のウィンドウに移動</translation>
 <translation id="1553358976309200471">Chrome を更新</translation>
 <translation id="1569387923882100876">接続しているデバイス</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">同期は設定でいつでもオンにできます。</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> 個のブックマーク}other{<ph name="BOOKMARKS_COUNT_MANY" /> 個のブックマーク}}</translation>
 <translation id="3089395242580810162">シークレット タブで開く</translation>
-<translation id="311456632243022227">複数のリンクが Chrome で開かれました</translation>
 <translation id="3115898365077584848">情報を表示</translation>
 <translation id="3123473560110926937">一部のサイトでブロックされています</translation>
 <translation id="3137521801621304719">シークレット モードを終了</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">特定のサイトの Cookie を許可します。</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# 時間}other{# 時間}}</translation>
 <translation id="4042870126885713738">ウェブアドレスが解決されない場合や接続を確立できない場合にアドバイスを表示します</translation>
+<translation id="4044912625106523635">タブを共有するデバイスの選択ツールが画面全体に表示されました。</translation>
 <translation id="4046123991198612571">次のトラック</translation>
 <translation id="4048707525896921369">ウェブサイト上のトピックについてページを移動せずに調べられます。「タップして検索」では、単語とその周囲のコンテキストが Google 検索に送信され、定義、画像、検索結果などの情報が返されます。
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">デバイスでダウンロード コンテンツを開くことができません。</translation>
 <translation id="528192093759286357">全画面表示を終了するには、上からドラッグして、戻るボタンをタップします。</translation>
 <translation id="5284584623296338184">今後、ブックマーク、履歴、パスワードなどの設定への変更は Google アカウントに同期されません。ただし、既存のデータは Google アカウントに保存されたままとなります。</translation>
+<translation id="5292796745632149097">送信先</translation>
 <translation id="5300589172476337783">表示</translation>
 <translation id="5301954838959518834">OK</translation>
 <translation id="5304593522240415983">この項目は必須です</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">同期</translation>
 <translation id="641643625718530986">印刷...</translation>
 <translation id="6416782512398055893"><ph name="MBS" /> MB をダウンロード済み</translation>
+<translation id="6418750371676080905">タブを共有するデバイスの選択ツールが閉じられました。</translation>
 <translation id="6427112570124116297">ウェブの翻訳</translation>
 <translation id="6433501201775827830">検索エンジンを選択</translation>
 <translation id="6437478888915024427">ページ情報</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">予測サービスを使用し、アドレスバーへの入力時に関連性の高い検索キーワードや人気のウェブサイトを表示します</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" />で開く</translation>
 <translation id="666981079809192359">Chrome のプライバシーに関するお知らせ</translation>
+<translation id="6672986458216094438">タブを共有するデバイスの選択ツールが画面の下半分に表示されました。</translation>
 <translation id="6697492270171225480">ページが見つからない場合に類似のページを候補として表示する</translation>
 <translation id="6697947395630195233">このサイトで現在地を共有するには、Chrome で位置情報の使用を許可する必要があります。</translation>
 <translation id="6698801883190606802">同期データを管理</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">これは後から [設定] で変更できます</translation>
 <translation id="7180611975245234373">更新</translation>
 <translation id="7189372733857464326">Google Play 開発者サービスの更新完了を待機しています</translation>
-<translation id="7189598951263744875">共有...</translation>
 <translation id="7191430249889272776">バックグラウンドでタブを開きました。</translation>
 <translation id="723171743924126238">画像を選択</translation>
 <translation id="7233236755231902816">お使いの言語でウェブを表示するには、Chrome の最新バージョンを入手してください</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">ミュートされた動画の自動再生をサイトに許可する(推奨)</translation>
 <translation id="7453467225369441013">ほとんどのサイトからログアウトします。Google アカウントへのログイン状態は維持されます。</translation>
 <translation id="7454641608352164238">空き容量が不足しています</translation>
-<translation id="7455923816558154057">タップして表示</translation>
 <translation id="7473891865547856676">スキップ</translation>
 <translation id="7475192538862203634">このメッセージが繰り返し表示される場合は、こちらの<ph name="BEGIN_LINK" />ヒント<ph name="END_LINK" />をお試しください。</translation>
 <translation id="7475688122056506577">SD カードが見つかりません。一部のファイルが欠落している可能性があります。</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> は最新ではありません。</translation>
 <translation id="7947953824732555851">同意してログイン</translation>
 <translation id="7963646190083259054">ベンダー:</translation>
+<translation id="7971136598759319605">最終同期: 1 日前</translation>
 <translation id="7975379999046275268">ページをプレビュー <ph name="BEGIN_NEW" />New<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">ページをプリロードして、閲覧と検索をすばやく行えるようにします</translation>
 <translation id="79859296434321399">拡張現実(AR)コンテンツを表示するには ARCore をインストールしてください</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb b/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb
index e5fde089..1781276 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="kn">
 <translation id="1006017844123154345">ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" /> ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> ಅನ್ನು ಸೇರಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="1041308826830691739">ವೆಬ್‌ಸೈಟ್‌ಗಳ ಮೂಲಕ</translation>
 <translation id="1049743911850919806">ಅದೃಶ್ಯ</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">ಹುಡುಕಿ ಮತ್ತು ಎಕ್ಸ್‌ಪ್ಲೋರ್‌‌ ಮಾಡಿ</translation>
 <translation id="1264974993859112054">ಕ್ರೀಡೆ</translation>
 <translation id="1272079795634619415">ನಿಲ್ಲಿಸಿ</translation>
+<translation id="1272444412400969138">ಟ್ಯಾಬ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಬೇಕಾದ ಸಾಧನವನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದಕ್ಕಾಗಿ ಸಾಧನ ಪಿಕ್ಕರ್.</translation>
 <translation id="1283039547216852943">ವಿಸ್ತರಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
 <translation id="1285320974508926690">ಈ ಸೈಟ್ ಅನ್ನು ಎಂದಿಗೂ ಭಾಷಾಂತರಿಸದಿರಿ</translation>
 <translation id="1291207594882862231">ಇತಿಹಾಸ, ಕುಕೀಗಳು, ಸೈಟ್‌ ಡೇಟಾ, ಸಂಗ್ರಹವನ್ನು ತೆರವುಗೊಳಿಸಿ…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">ಹಾಯ್, <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">ಹುಡುಕಾಟ</translation>
 <translation id="1384959399684842514">ಡೌನ್‌ಲೋಡ್ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ</translation>
+<translation id="1386674309198842382"><ph name="LAST_UPDATED" /> ದಿನಗಳ ಹಿಂದೆ ಸಕ್ರಿಯ</translation>
 <translation id="1389974829397082527">ಇಲ್ಲಿ ಯಾವುದೇ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳಿಲ್ಲ</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> ಮೂಲಕ ಹುಡುಕಿ</translation>
 <translation id="1404122904123200417"><ph name="WEBSITE_URL" /> ರಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡಲಾಗಿದೆ</translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">ಮುದ್ರಿಸು</translation>
 <translation id="1445680696957526815">Chrome ನ ಅಂಶಗಳು ಒಂದಕ್ಕೊಂದು ಹೊಂದಾಣಿಕೆ ಹೊಂದಿಲ್ಲ. Chrome ಅಪ್‌ಗ್ರೇಡ್‌ ಮಾಡುತ್ತಿರಬಹುದು, ದಯವಿಟ್ಟು ಕೆಲವು ನಿಮಿಷಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ. ಸಮಸ್ಯೆ ಮುಂದುವರಿದರೆ, Chrome ಅಸ್ಥಾಪಿಸಲು ಮತ್ತು ಮರುಸ್ಥಾಪಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="1446450296470737166">MIDI ಸಾಧನಗಳ ಪೂರ್ಣ ನಿಯಂತ್ರಣ ಅನುಮತಿಸಿ</translation>
-<translation id="1449080968331948513">ಡೇಟಾ ಸೇವರ್ ಈಗ ಲೈಟ್ ಮೋಡ್‌ನಲ್ಲಿದೆ</translation>
 <translation id="145097072038377568">Android ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಆಫ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="1477626028522505441">ಸರ್ವರ್ ಸಮಸ್ಯೆಗಳ ಕಾರಣದಿಂದಾಗಿ <ph name="FILE_NAME" /> ಡೌನ್‌ಲೋಡ್ ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 ಹೆಚ್ಚು)}one{ (+ # ಹೆಚ್ಚು)}other{ (+ # ಹೆಚ್ಚು)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">ಪಾಸ್‌ವರ್ಡ್ ಅಳಿಸಿ</translation>
 <translation id="1516229014686355813">"ಹುಡುಕಲು ಟ್ಯಾಪ್‌ ಮಾಡಿ" ಮೂಲಕ ಆಯ್ಕೆಮಾಡಿದ ಪದ ಮತ್ತು ಪ್ರಸ್ತುತ ಪುಟವನ್ನು ಸಂದರ್ಭಕ್ಕೆ ತಕ್ಕಂತೆ Google ಹುಡುಕಾಟಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ. ನೀವು ಇದನ್ನು <ph name="BEGIN_LINK" />ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK" /> ಆಫ್ ಮಾಡಬಹುದು.</translation>
 <translation id="1521774566618522728">ಇಂದು ಸಕ್ರಿಯ</translation>
-<translation id="1539064842193522527">Chrome ನಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಲಾಗಿದೆ</translation>
 <translation id="1549000191223877751">ಇತರ ವಿಂಡೋಗೆ ಸರಿಸಿ</translation>
 <translation id="1553358976309200471">Chrome ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ</translation>
 <translation id="1569387923882100876">ಸಂಪರ್ಕಿಸಲಾದ ಸಾಧನ</translation>
@@ -289,7 +290,6 @@
 <translation id="3058498974290601450">ನೀವು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಯಾವಾಗ ಬೇಕಾದರೂ ಸಿಂಕ್ ಆನ್ ಮಾಡಬಹುದು</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> ಬುಕ್‌ಮಾರ್ಕ್‌}one{<ph name="BOOKMARKS_COUNT_MANY" /> ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು}other{<ph name="BOOKMARKS_COUNT_MANY" /> ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು}}</translation>
 <translation id="3089395242580810162">ಅಜ್ಞಾತ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
-<translation id="311456632243022227">Chrome ನಲ್ಲಿ ಹಲವು ಲಿಂಕ್‌ಗಳು ತೆರೆದುಕೊಂಡಿವೆ</translation>
 <translation id="3115898365077584848">ಮಾಹಿತಿಯನ್ನು ತೋರಿಸಿ</translation>
 <translation id="3123473560110926937">ಕೆಲವು ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="3137521801621304719">ಅದೃಶ್ಯ ಮೋಡ್‌ನಿಂದ ಹೊರಬನ್ನಿ</translation>
@@ -403,6 +403,7 @@
 <translation id="4008040567710660924">ನಿರ್ದಿಷ್ಟ ಸೈಟ್‌ ಒಂದಕ್ಕೆ ಕುಕೀಗಳನ್ನು ಅನುಮತಿಸಿ.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# ಗಂಟೆ}one{# ಗಂಟೆಗಳು}other{# ಗಂಟೆಗಳು}}</translation>
 <translation id="4042870126885713738">ವೆಬ್ ವಿಳಾಸವು ಪೂರೈಸದಿದ್ದರೆ ಅಥವಾ ಸಂಪರ್ಕಪಡಿಸಲು ಆಗದಿದ್ದರೆ ಸಲಹೆಗಳನ್ನು ತೋರಿಸಿ</translation>
+<translation id="4044912625106523635">ಟ್ಯಾಬ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಬೇಕಾದ ಸಾಧನದ ಪಿಕ್ಕರ್ ಅನ್ನು ಸಂಪೂರ್ಣ ಎತ್ತರದಲ್ಲಿ ತೆರೆಯಲಾಗಿದೆ.</translation>
 <translation id="4046123991198612571">ಮುಂದಿನ ಟ್ರ್ಯಾಕ್</translation>
 <translation id="4048707525896921369">ಪುಟದಿಂದ ಹೊರಹೋಗದೆಯೇ ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿನ ವಿಷಯಗಳ ಕುರಿತು ತಿಳಿದುಕೊಳ್ಳಿ. "ಹುಡುಕಾಟಕ್ಕಾಗಿ ಟ್ಯಾಪ್‌ ಮಾಡಿ" ಮೂಲಕ Google ಹುಡುಕಾಟಕ್ಕೆ ಪದ ಮತ್ತು ಅದರ ಹಿನ್ನೆಲೆಯನ್ನು ಕಳುಹಿಸುತ್ತದೆ ಈ ಮೂಲಕ ವ್ಯಾಖ್ಯಾನಗಳು, ಚಿತ್ರಗಳು, ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳು, ಮತ್ತು ಇತರ ವಿವರಗಳನ್ನು ನೀಡುತ್ತದೆ.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಬೇಕಾದ ವಿಷಯವನ್ನು ಸಾಧನಕ್ಕೆ ತೆರೆಯಲಾಗುತ್ತಿಲ್ಲ.</translation>
 <translation id="528192093759286357">ಪೂರ್ಣಪರದೆಯನ್ನು ನಿರ್ಗಮಿಸಲು ಮೇಲಿನಿಂದ ಡ್ರ್ಯಾಗ್ ಮಾಡಿ ಹಾಗೂ ಹಿಂದೆ ಬಟನ್ ಸ್ಪರ್ಶಿಸಿ.</translation>
 <translation id="5284584623296338184">ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಬದಲಾವಣೆಗಳನ್ನು ನಿಮ್ಮ Google ಖಾತೆಗೆ ಇನ್ನು ಮುಂದೆ ಸಿಂಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಆದರೂ, ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಡೇಟಾ, ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿಯೇ ಇರುತ್ತದೆ.</translation>
+<translation id="5292796745632149097">ಇಲ್ಲಿಗೆ ಕಳುಹಿಸಿ</translation>
 <translation id="5300589172476337783">ಪ್ರದರ್ಶಿಸಿ</translation>
 <translation id="5301954838959518834">ಸರಿ, ಅರ್ಥವಾಯಿತು</translation>
 <translation id="5304593522240415983">ಈ ಕ್ಷೇತ್ರವು ಖಾಲಿಯಾಗಿರುವಂತಿಲ್ಲ</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">ಸಿಂಕ್</translation>
 <translation id="641643625718530986">ಮುದ್ರಿಸು...</translation>
 <translation id="6416782512398055893"><ph name="MBS" /> MB ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation>
+<translation id="6418750371676080905">ಟ್ಯಾಬ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಬೇಕಾದ ಸಾಧನದ ಪಿಕ್ಕರ್ ಶೀಟ್ ಮುಚ್ಚಿದೆ.</translation>
 <translation id="6427112570124116297">ವೆಬ್ ಅನ್ನು ಅನುವಾದಿಸಿ</translation>
 <translation id="6433501201775827830">ನಿಮ್ಮ ಹುಡುಕಾಟದ ಇಂಜಿನ್ ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="6437478888915024427">ಪುಟದ ಮಾಹಿತಿ</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">ನೀವು ವಿಳಾಸ ಬಾರ್‌ನಲ್ಲಿ ಟೈಪ್ ಮಾಡಿದಂತೆ ಸಂಬಂಧಿಸಿದ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಜನಪ್ರಿಯ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ತೋರಿಸಲು ಪೂರ್ವಸೂಚನೆಯ ಸೇವೆಯನ್ನು ಬಳಸಿ</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" /> ರಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="666981079809192359">Chrome ಗೌಪ್ಯತಾ ಸೂಚನೆ</translation>
+<translation id="6672986458216094438">ಟ್ಯಾಬ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಬೇಕಾದ ಸಾಧನದ ಪಿಕ್ಕರ್ ಶೀಟ್ ಅನ್ನು ಅರ್ಧ ಎತ್ತರದಲ್ಲಿ ತೆರೆಯಲಾಗಿದೆ.</translation>
 <translation id="6697492270171225480">ಯಾವುದೇ ಪುಟವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಅಂತಹುದೇ ಪುಟಗಳ ಸಲಹೆಯನ್ನು ತೋರಿಸಿ</translation>
 <translation id="6697947395630195233">ಈ ಸೈಟ್‌ ಮೂಲಕ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು Chrome ಗೆ ನಿಮ್ಮ ಸ್ಥಳದ ಪ್ರವೇಶ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="6698801883190606802">ಸಿಂಕ್‌ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ನಿರ್ವಹಿಸಿ</translation>
@@ -851,7 +855,6 @@
 <translation id="7177466738963138057">ನೀವು ಇದನ್ನು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ನಂತರ ಬದಲಾಯಿಸಬಹುದು</translation>
 <translation id="7180611975245234373">ರಿಫ್ರೆಶ್ ಮಾಡಿ</translation>
 <translation id="7189372733857464326">Google Play ಸೇವೆಗಳು ಅಪ್‌ಡೇಟ್ ಮಾಡುವಿಕೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ</translation>
-<translation id="7189598951263744875">ಹಂಚಿ...</translation>
 <translation id="7191430249889272776">ಟ್ಯಾಬ್ ಅನ್ನು ಹಿನ್ನೆಲೆಯಲ್ಲಿ ತೆರೆಯಲಾಗಿದೆ.</translation>
 <translation id="723171743924126238">ಚಿತ್ರಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="7233236755231902816">ನಿಮ್ಮ ಭಾಷೆಯಲ್ಲಿ ವೆಬ್ ಪುಟವನ್ನು ವೀಕ್ಷಿಸಲು, ಇತ್ತೀಚಿನ Chrome ಆವೃತ್ತಿಯನ್ನು ಪಡೆಯಿರಿ</translation>
@@ -888,7 +891,6 @@
 <translation id="7445411102860286510">ಮ್ಯೂಟ್ ಮಾಡಲಾದ ವೀಡಿಯೊಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪ್ಲೇ ಮಾಡಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="7453467225369441013">ನಿಮ್ಮನ್ನು ಬಹುತೇಕ ಸೈಟ್‌ಗಳಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ. ಆದರೆ ನಿಮ್ಮನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಸೈನ್‌ ಔಟ್‌ ಮಾಡುವುದಿಲ್ಲ.</translation>
 <translation id="7454641608352164238">ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ</translation>
-<translation id="7455923816558154057">ವೀಕ್ಷಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
 <translation id="7473891865547856676">ಇಲ್ಲ, ಧನ್ಯವಾದಗಳು</translation>
 <translation id="7475192538862203634">ಇದನ್ನು ನೀವು ಪದೇ ಪದೇ ವೀಕ್ಷಿಸುತ್ತಿದ್ದರೆ, ಈ <ph name="BEGIN_LINK" />ಸಲಹೆಗಳನ್ನು<ph name="END_LINK" /> ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="7475688122056506577">SD ಕಾರ್ಡ್ ಕಂಡುಬಂದಿಲ್ಲ. ನಿಮ್ಮ ಕೆಲವು ಫೈಲ್‌ಗಳು ಕಾಣೆಯಾಗಿರಬಹುದು.</translation>
@@ -957,6 +959,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> ನ ಅವಧಿ ಮುಗಿದಿದೆ.</translation>
 <translation id="7947953824732555851">ಸಮ್ಮತಿಸಿ ಮತ್ತು ಸೈನ್‌ ಇನ್‌ ಮಾಡಿ</translation>
 <translation id="7963646190083259054">ಮಾರಾಟಗಾರ:</translation>
+<translation id="7971136598759319605">1 ದಿನದ ಹಿಂದೆ ಸಕ್ರಿಯ</translation>
 <translation id="7975379999046275268">ಪುಟ ಪೂರ್ವವೀಕ್ಷಿಸಿ <ph name="BEGIN_NEW" />ಹೊಸದು<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">ವೇಗವಾದ ಬ್ರೌಸಿಂಗ್ ಮತ್ತು ಹುಡುಕಾಟಕ್ಕಾಗಿ ಪುಟಗಳನ್ನು ಮುಂಚಿತವಾಗಿ ಲೋಡ್ ಮಾಡಿ</translation>
 <translation id="79859296434321399">ವರ್ಧಿತ ನೈಜತೆಯ ವಿಷಯವನ್ನು ವೀಕ್ಷಿಸಲು, ARCore ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</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 b8bf209..5bc1c94 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ko">
 <translation id="1006017844123154345">온라인 열기</translation>
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" />에 보내는 중...</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> 추가 중...</translation>
 <translation id="1041308826830691739">웹사이트 알림</translation>
 <translation id="1049743911850919806">시크릿</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">검색 및 탐색</translation>
 <translation id="1264974993859112054">스포츠</translation>
 <translation id="1272079795634619415">중지</translation>
+<translation id="1272444412400969138">탭을 공유할 기기 선택도구</translation>
 <translation id="1283039547216852943">탭하여 펼치기</translation>
 <translation id="1285320974508926690">이 사이트 번역 안함</translation>
 <translation id="1291207594882862231">방문 기록, 쿠키, 사이트 데이터, 캐시 삭제…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022"><ph name="FULL_NAME" />님, 안녕하세요.</translation>
 <translation id="1383876407941801731">검색</translation>
 <translation id="1384959399684842514">다운로드 일시중지됨</translation>
+<translation id="1386674309198842382"><ph name="LAST_UPDATED" />일 전 동기화됨</translation>
 <translation id="1389974829397082527">이 폴더에는 북마크가 없습니다.</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" />에서 검색</translation>
 <translation id="1404122904123200417"><ph name="WEBSITE_URL" />에 포함됨</translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">인쇄</translation>
 <translation id="1445680696957526815">Chrome의 구성요소가 서로 호환되지 않습니다. Chrome이 업그레이드 중일 수 있으니 몇 분 후에 다시 시도하세요. 문제가 계속되면 Chrome을 제거하고 다시 설치해 보세요.</translation>
 <translation id="1446450296470737166">MIDI 기기의 전체 제어 허용</translation>
-<translation id="1449080968331948513">데이터 절약 모드가 이제 라이트 모드로 변경되었습니다.</translation>
 <translation id="145097072038377568">Android 설정에서 사용이 중지됨</translation>
 <translation id="1477626028522505441">서버 문제로 인해 <ph name="FILE_NAME" />을(를) 다운로드할 수 없습니다.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (1개 더보기)}other{ (#개 더보기)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">비밀번호 삭제</translation>
 <translation id="1516229014686355813">탭하여 검색을 사용하면 선택한 단어와 현재 페이지가 Google 검색에 전송되어 맥락으로 사용됩니다. <ph name="BEGIN_LINK" />설정<ph name="END_LINK" />에서 이 기능을 사용 중지할 수 있습니다.</translation>
 <translation id="1521774566618522728">오늘 사용</translation>
-<translation id="1539064842193522527">링크가 Chrome에서 열림</translation>
 <translation id="1549000191223877751">다른 창으로 이동</translation>
 <translation id="1553358976309200471">Chrome 업데이트</translation>
 <translation id="1569387923882100876">연결된 기기</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">언제든지 설정에서 동기화를 사용 설정할 수 있습니다.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{북마크 <ph name="BOOKMARKS_COUNT_ONE" />개}other{북마크 <ph name="BOOKMARKS_COUNT_MANY" />개}}</translation>
 <translation id="3089395242580810162">시크릿 탭에서 열기</translation>
-<translation id="311456632243022227">여러 개의 링크가 Chrome에서 열림</translation>
 <translation id="3115898365077584848">정보 표시</translation>
 <translation id="3123473560110926937">일부 사이트에서 차단됨</translation>
 <translation id="3137521801621304719">시크릿 모드 나가기</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">특정 사이트의 쿠키를 허용합니다.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{#시간}other{#시간}}</translation>
 <translation id="4042870126885713738">웹 주소가 확인되지 않거나 연결되지 않는 경우 추천 주소 표시</translation>
+<translation id="4044912625106523635">탭을 공유할 기기 선택도구가 전체 높이로 열렸습니다.</translation>
 <translation id="4046123991198612571">다음 트랙</translation>
 <translation id="4048707525896921369">페이지에서 나가지 않고도 웹사이트에 언급된 주제에 관해 자세히 알아보세요. 탭하여 검색 기능은 단어와 관련 맥락을 Google 검색으로 전송하여 정의, 사진, 검색결과 및 기타 세부정보를 제공합니다.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">기기에서 다운로드하려는 콘텐츠를 열 수 없습니다.</translation>
 <translation id="528192093759286357">전체화면을 종료하려면 상단에서 드래그하여 뒤로 버튼을 터치하세요.</translation>
 <translation id="5284584623296338184">북마크, 방문 기록, 비밀번호, 기타 설정이 더 이상 Google 계정에 동기화되지 않습니다. 하지만 기존 데이터는 Google 계정에 계속 저장됩니다.</translation>
+<translation id="5292796745632149097">전송할 기기</translation>
 <translation id="5300589172476337783">표시</translation>
 <translation id="5301954838959518834">확인</translation>
 <translation id="5304593522240415983">필수 입력란입니다.</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">동기화</translation>
 <translation id="641643625718530986">인쇄…</translation>
 <translation id="6416782512398055893"><ph name="MBS" />MB 다운로드됨</translation>
+<translation id="6418750371676080905">탭을 공유할 기기 선택도구가 닫혔습니다.</translation>
 <translation id="6427112570124116297">웹 번역</translation>
 <translation id="6433501201775827830">검색엔진 선택</translation>
 <translation id="6437478888915024427">페이지 정보</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">예상 검색어 서비스를 사용하여 검색주소창에 입력할 때 관련 검색어 및 인기 웹사이트 표시</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" />에서 열기</translation>
 <translation id="666981079809192359">Chrome 개인정보처리방침</translation>
+<translation id="6672986458216094438">탭을 공유할 기기 선택도구가 절반 높이로 열렸습니다.</translation>
 <translation id="6697492270171225480">페이지를 찾을 수 없을 때 비슷한 페이지 제안 표시</translation>
 <translation id="6697947395630195233">Chrome이 이 사이트와 위치를 공유하려면 내 위치에 액세스하도록 허용해야 합니다.</translation>
 <translation id="6698801883190606802">동기화된 데이터 관리</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">나중에 설정에서 변경 가능</translation>
 <translation id="7180611975245234373">새로고침</translation>
 <translation id="7189372733857464326">Google Play 서비스 업데이트 완료 대기 중</translation>
-<translation id="7189598951263744875">공유...</translation>
 <translation id="7191430249889272776">탭이 백그라운드에 열림</translation>
 <translation id="723171743924126238">이미지 선택</translation>
 <translation id="7233236755231902816">내가 사용하는 언어로 웹을 보려면 최신 버전의 Chrome을 사용하세요.</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">사이트에서 음소거된 동영상을 자동재생하도록 허용(권장)</translation>
 <translation id="7453467225369441013">대부분의 사이트에서 로그아웃됩니다. Google 계정에서는 로그아웃되지 않습니다.</translation>
 <translation id="7454641608352164238">저장공간 부족</translation>
-<translation id="7455923816558154057">탭하여 보기</translation>
 <translation id="7473891865547856676">건너뛰기</translation>
 <translation id="7475192538862203634">이 메시지가 자주 표시된다면 다음 <ph name="BEGIN_LINK" />권장사항<ph name="END_LINK" />을 시도해 보세요.</translation>
 <translation id="7475688122056506577">SD 카드가 없습니다. 일부 파일이 누락되었을 수 있습니다.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" />이(가) 이전 버전입니다.</translation>
 <translation id="7947953824732555851">수락 및 로그인</translation>
 <translation id="7963646190083259054">공급업체:</translation>
+<translation id="7971136598759319605">1일 전 동기화됨</translation>
 <translation id="7975379999046275268">페이지 미리보기 표시 <ph name="BEGIN_NEW" />새로운 기능<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">더 빠른 인터넷 사용과 검색을 위해 페이지 미리 로드</translation>
 <translation id="79859296434321399">증강 현실 콘텐츠를 보려면 ARCore를 설치하세요.</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 783a3e0..7b81678 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Spausdinti</translation>
 <translation id="1445680696957526815">„Chrome“ komponentai nesuderinami tarpusavyje. „Chrome“ tikriausiai naujovinama, netrukus bandykite dar kartą. Jei problema išlieka, pabandykite pašalinti ir vėl įdiegti „Chrome“.</translation>
 <translation id="1446450296470737166">Leisti visiškai valdyti MIDI įr.</translation>
-<translation id="1449080968331948513">Duomenų taupymo priemonė dabar veikia supaprastintu režimu</translation>
 <translation id="145097072038377568">Išjungta „Android“ nustatymuose</translation>
 <translation id="1477626028522505441">Nepavyko atsisiųsti „<ph name="FILE_NAME" />“ dėl serverio problemų.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (ir dar 1)}one{ (ir dar #)}few{ (ir dar #)}many{ (ir dar #)}other{ (ir dar #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Ištrinti slaptažodį</translation>
 <translation id="1516229014686355813">Naudojant Paiešką palietus siunčiamas žodis ir jo kontekstas „Google“ paieškai. Šią funkciją galite išjungti skiltyje <ph name="BEGIN_LINK" />„Nustatymai“<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktyvus šiandien</translation>
-<translation id="1539064842193522527">Nuor. atidar. narš. „Chrome“</translation>
 <translation id="1549000191223877751">Perkelti į kitą langą</translation>
 <translation id="1553358976309200471">Atnaujinkite „Chrome“</translation>
 <translation id="1569387923882100876">Prijungtas įrenginys</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Galite bet kada įjungti sinchronizavimą „Nustatymų“ skiltyje</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> žymė}one{<ph name="BOOKMARKS_COUNT_MANY" /> žymė}few{<ph name="BOOKMARKS_COUNT_MANY" /> žymės}many{<ph name="BOOKMARKS_COUNT_MANY" /> žymės}other{<ph name="BOOKMARKS_COUNT_MANY" /> žymių}}</translation>
 <translation id="3089395242580810162">Atidaryti inkognito skirtuko lape</translation>
-<translation id="311456632243022227">Kel. nuor. at. narš. „Chrome“</translation>
 <translation id="3115898365077584848">Rodyti informaciją</translation>
 <translation id="3123473560110926937">Užblokuota kai kuriose svetainėse</translation>
 <translation id="3137521801621304719">Išjungti inkognito režimą</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Tai vėliau galėsite pakeisti „Nustatymų“ skiltyje</translation>
 <translation id="7180611975245234373">Atnaujinti</translation>
 <translation id="7189372733857464326">Laukiama, kol bus baigtas „Google Play“ paslaugų atnaujinimas</translation>
-<translation id="7189598951263744875">Bendrinti...</translation>
 <translation id="7191430249889272776">Skirtuko lapas atidarytas fone.</translation>
 <translation id="723171743924126238">Pasirinkti vaizdus</translation>
 <translation id="7233236755231902816">Jei norite matyti žiniatinklį savo kalba, gaukite naujausią „Chrome“ versiją</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Leisti svetainėms automatiškai leisti nutildytus vaizdo įrašus (rekomenduojama)</translation>
 <translation id="7453467225369441013">Būsite atjungti nuo daugelio svetainių. Nebūsite atjungti nuo „Google“ paskyros.</translation>
 <translation id="7454641608352164238">Nepakanka vietos</translation>
-<translation id="7455923816558154057">Palieskite ir peržiūrėkite</translation>
 <translation id="7473891865547856676">Ne, ačiū</translation>
 <translation id="7475192538862203634">Jei tai rodoma dažnai, peržiūrėkite šiuos <ph name="BEGIN_LINK" />pasiūlymus<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD kortelė nerasta. Gali trūkti kai kurių failų.</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 bb443d9..eda1e92 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Drukāt</translation>
 <translation id="1445680696957526815">Chrome komponenti nav savstarpēji saderīgi. Iespējams, notiek pārlūka Chrome jaunināšana. Lūdzu, pēc dažām minūtēm mēģiniet vēlreiz. Ja problēma joprojām pastāv, atinstalējiet un atkārtoti instalējiet pārlūku Chrome.</translation>
 <translation id="1446450296470737166">Pilnīga MIDI ierīču pārvaldība</translation>
-<translation id="1449080968331948513">Datu lietojuma samazinātājs tagad tiek saukts par vienkāršoto režīmu</translation>
 <translation id="145097072038377568">Izslēgts Android iestatījumos</translation>
 <translation id="1477626028522505441">Neizdevās lejupielādēt failu <ph name="FILE_NAME" />, jo radās servera problēmas.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (un vēl 1)}zero{ (un vēl #)}one{ (un vēl #)}other{ (un vēl #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Dzēst paroli</translation>
 <translation id="1516229014686355813">Izmantojot funkciju “Pieskarties, lai meklētu”, atlasītais vārds tiek nosūtīts pakalpojumam Google meklēšana, pievienojot pašreiz skatīto lapu kā kontekstu. Varat to izslēgt lapā <ph name="BEGIN_LINK" />Iestatījumi<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktīvs šodien</translation>
-<translation id="1539064842193522527">Saite atvērta pārlūkā Chrome</translation>
 <translation id="1549000191223877751">Pārvietot uz citu logu</translation>
 <translation id="1553358976309200471">Atjaunināt Chrome</translation>
 <translation id="1569387923882100876">Pievienota ierīce</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Jebkurā brīdī varat ieslēgt sinhronizāciju iestatījumos.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> grāmatzīme}zero{<ph name="BOOKMARKS_COUNT_MANY" /> grāmatzīmju}one{<ph name="BOOKMARKS_COUNT_MANY" /> grāmatzīme}other{<ph name="BOOKMARKS_COUNT_MANY" /> grāmatzīmes}}</translation>
 <translation id="3089395242580810162">Atvērt inkognito režīma cilnē</translation>
-<translation id="311456632243022227">Vairākas saites atvērtas pārlūkā Chrome</translation>
 <translation id="3115898365077584848">Rādīt informāciju</translation>
 <translation id="3123473560110926937">Bloķētas dažās vietnēs</translation>
 <translation id="3137521801621304719">Iziet no inkognito režīma</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Vēlāk varēsiet to mainīt iestatījumos</translation>
 <translation id="7180611975245234373">Atsvaidzināt</translation>
 <translation id="7189372733857464326">Gaida, kad tiks pabeigta Google Play pakalpojumu atjaunināšana</translation>
-<translation id="7189598951263744875">Kopīgot...</translation>
 <translation id="7191430249889272776">Cilne tika atvērta fonā.</translation>
 <translation id="723171743924126238">Atlasīt attēlus</translation>
 <translation id="7233236755231902816">Lai skatītu tīmekli savā valodā, iegūstiet jaunāko Chrome versiju</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Atļaut vietnēm automātiski atskaņot videoklipus ar izslēgtu skaņu (ieteicams)</translation>
 <translation id="7453467225369441013">Jūs tiksiet izrakstīts no lielākās daļas vietņu. Jūs netiksiet izrakstīts no Google konta.</translation>
 <translation id="7454641608352164238">Nepietiek vietas</translation>
-<translation id="7455923816558154057">Pieskarieties, lai skatītu</translation>
 <translation id="7473891865547856676">Nē, paldies!</translation>
 <translation id="7475192538862203634">Ja šis ziņojums tiek rādīts bieži, izmēģiniet šos <ph name="BEGIN_LINK" />ieteikumus<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD karte nav atrasta. Iespējams, trūkst kādi jūsu faili.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb
index 9092393..618f579d 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb
@@ -71,7 +71,6 @@
 <translation id="1430915738399379752">അച്ചടിക്കുക</translation>
 <translation id="1445680696957526815">Chrome-ന്റെ ഘടകങ്ങൾ മറ്റൊന്നുമായി പൊരുത്തപ്പെടുന്നില്ല. Chrome അപ്‌ഗ്രേഡുചെയ്യുകയാവാം, അൽപ്പസമയത്തിനുശേഷം വീണ്ടും ശ്രമിക്കുക. പ്രശ്‌നം തുടരുന്നുവെങ്കിൽ, Chrome അൺഇൻസ്റ്റാളുചെയ്‌തതിനുശേഷം വീണ്ടും ഇൻസ്റ്റാളുചെയ്യുന്നത് പരീക്ഷിക്കുക.</translation>
 <translation id="1446450296470737166">MIDI ഉപകരണങ്ങളുടെ പൂർണ്ണ നിയന്ത്രണം അനുവദിക്കുക</translation>
-<translation id="1449080968331948513">ഡാറ്റ സേവർ ഇപ്പോൾ ലൈറ്റ് മോഡ് ആണ്</translation>
 <translation id="145097072038377568">Android ക്രമീകരണത്തിൽ ഓഫാക്കിയിരിക്കുന്നു</translation>
 <translation id="1477626028522505441">സെർവർ പ്രശ്‌നങ്ങൾ കാരണം <ph name="FILE_NAME" /> ഡൗൺലോഡ് ചെയ്യാനായില്ല.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ ഒരെണ്ണം കൂടി)}other{ (+ # എണ്ണം കൂടി)}}</translation>
@@ -81,7 +80,6 @@
 <translation id="1513858653616922153">പാസ്‌വേഡ് ഇല്ലാതാക്കുക</translation>
 <translation id="1516229014686355813">Google തിരയലിന് സന്ദർഭം വ്യക്തമാക്കാൻ തിരഞ്ഞെടുത്ത വാക്കും നിലവിലെ പേജും, 'തിരയാൻ സ്‌പർശിക്കുക' അയയ്‌ക്കും. <ph name="BEGIN_LINK" />ക്രമീകരണത്തിൽ<ph name="END_LINK" /> നിന്ന് നിങ്ങൾക്കിത് ഓഫാക്കാം.</translation>
 <translation id="1521774566618522728">ഇന്ന് സജീവമായിരുന്നു</translation>
-<translation id="1539064842193522527">Chrome-ൽ ലിങ്ക് തുറന്നു</translation>
 <translation id="1549000191223877751">മറ്റൊരു വിൻഡോയിലേക്ക് നീക്കുക</translation>
 <translation id="1553358976309200471">Chrome അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="1569387923882100876">കണക്റ്റ് ചെയ്‌തിരിക്കുന്ന ഉപകരണം</translation>
@@ -288,7 +286,6 @@
 <translation id="3058498974290601450">നിങ്ങൾക്ക് ഏത് സമയത്തും ക്രമീകരണത്തിൽ സമന്വയം ഓണാക്കാവുന്നതാണ്</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> ബുക്ക്‌മാർക്ക്}other{<ph name="BOOKMARKS_COUNT_MANY" /> ബുക്ക്‌മാർക്കുകൾ}}</translation>
 <translation id="3089395242580810162">അദൃശ്യ ടാബിൽ തുറക്കുക</translation>
-<translation id="311456632243022227">Chrome-ൽ ഒന്നിലധികം ലിങ്കുകൾ തുറന്നു</translation>
 <translation id="3115898365077584848">വിവരങ്ങൾ കാണിക്കുക</translation>
 <translation id="3123473560110926937">ചില സൈറ്റുകളിൽ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു</translation>
 <translation id="3137521801621304719">അദൃശ്യ മോഡ് വിടുക</translation>
@@ -850,7 +847,6 @@
 <translation id="7177466738963138057">നിങ്ങൾക്കിത് പിന്നീട് ക്രമീകരണങ്ങളിൽ മാറ്റാനാവും</translation>
 <translation id="7180611975245234373">പുതുക്കുക</translation>
 <translation id="7189372733857464326">Google Play സേവനങ്ങൾ അപ്‌ഡേറ്റുചെയ്യുന്നത് പൂർത്തിയാക്കാൻ കാത്തിരിക്കുന്നു</translation>
-<translation id="7189598951263744875">പങ്കിടുക...</translation>
 <translation id="7191430249889272776">ടാബ് പശ്ചാത്തലത്തിൽ തുറന്നു.</translation>
 <translation id="723171743924126238">ചിത്രങ്ങൾ തിരഞ്ഞെടുക്കുക</translation>
 <translation id="7233236755231902816">നിങ്ങളുടെ ഭാഷയിൽ വെബ് കാണാൻ Chrome-ൻ്റെ ഏറ്റവും പുതിയ പതിപ്പ് നേടൂ</translation>
@@ -887,7 +883,6 @@
 <translation id="7445411102860286510">മ്യൂട്ടുചെയ്‌ത വീഡിയോകൾ സ്വയം പ്ലേ ചെയ്യാൻ സൈറ്റുകളെ അനുവദിക്കുക (ശുപാർശചെയ്‌തിരിക്കുന്നു)</translation>
 <translation id="7453467225369441013">നിങ്ങൾ മിക്ക സൈറ്റുകളിൽ നിന്നും സൈൻ ഔട്ടാകും. നിങ്ങൾ Google അക്കൗണ്ടിൽ നിന്ന് സൈൻ ഔട്ട് ആകില്ല.</translation>
 <translation id="7454641608352164238">വേണ്ടത്ര ഇടമില്ല</translation>
-<translation id="7455923816558154057">കാണാൻ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="7473891865547856676">വേണ്ട, നന്ദി</translation>
 <translation id="7475192538862203634">നിങ്ങൾ ഇത് പതിവായി കാണുന്നുണ്ടെങ്കിൽ, ഈ <ph name="BEGIN_LINK" />നിർദ്ദേശങ്ങൾ<ph name="END_LINK" /> പരീക്ഷിക്കൂ.</translation>
 <translation id="7475688122056506577">SD കാർഡ് കണ്ടെത്തിയില്ല. നിങ്ങളുടെ ചില ഫയലുകൾ നഷ്‌ടപ്പെട്ടേക്കാം.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb
index 1231101..3df8865 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb
@@ -71,7 +71,6 @@
 <translation id="1430915738399379752">प्रिंट</translation>
 <translation id="1445680696957526815">Chrome चे घटक एकमेकांशी विसंगत आहेत. Chrome श्रेणीसुधारित होत असावे, कृपया काही मिनिटांमध्ये पुन्हा प्रयत्न करा. समस्या सुरु राहिल्यास, Chrome अनइंस्टॉल करून पहा आणि पुन्हा इंस्टॉल करून पहा.</translation>
 <translation id="1446450296470737166">MIDI डिव्हाइसेसच्या पूर्ण नियंत्रणास अनुमती द्या</translation>
-<translation id="1449080968331948513">डेटा सेव्हर आता लाइट मोडमध्ये आहे</translation>
 <translation id="145097072038377568">Android सेटिंग्ज मध्‍ये बंद करा</translation>
 <translation id="1477626028522505441">सर्व्हर समस्यांमुळे <ph name="FILE_NAME" /> डाउनलोड अयशस्वी झाले.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ आणखी १)}other{ (+ आणखी #)}}</translation>
@@ -81,7 +80,6 @@
 <translation id="1513858653616922153">पासवर्ड हटवा</translation>
 <translation id="1516229014686355813">शोधण्यासाठी टॅप करा निवडलेला शब्द आणि सद्य पेज संदर्भ म्हणून Google शोध ला पाठवते. तुम्ही ते <ph name="BEGIN_LINK" />सेटिंग्ज<ph name="END_LINK" /> मध्ये सुरू किंवा बंद करू शकता.</translation>
 <translation id="1521774566618522728">आज ॲक्टिव्ह होते</translation>
-<translation id="1539064842193522527">लिंक Chromeमध्ये उघडली</translation>
 <translation id="1549000191223877751">अन्य विंडोवर हलवा</translation>
 <translation id="1553358976309200471">Chrome अपडेट करा</translation>
 <translation id="1569387923882100876">कनेक्‍ट केलेले डिव्हाइस</translation>
@@ -288,7 +286,6 @@
 <translation id="3058498974290601450">तुम्ही सेटिंग्जमध्ये कधीही सिंक सुरू करू शकता</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> बुकमार्क}other{<ph name="BOOKMARKS_COUNT_MANY" /> बुकमार्क}}</translation>
 <translation id="3089395242580810162">गुप्त टॅबमध्ये उघडा</translation>
-<translation id="311456632243022227">Chromeमध्ये अनेक लिंक उघडल्या</translation>
 <translation id="3115898365077584848">माहिती दाखवा</translation>
 <translation id="3123473560110926937">काही साइटवर ब्लॉक केले आहे</translation>
 <translation id="3137521801621304719">गुप्त मोड सोडा</translation>
@@ -850,7 +847,6 @@
 <translation id="7177466738963138057">तुम्ही हे नंतर सेटिंग्ज मध्ये बदलू शकता.</translation>
 <translation id="7180611975245234373">रिफ्रेश करा</translation>
 <translation id="7189372733857464326">Google Play सेवांंनी अपडेट करणे समाप्त करण्याची प्रतीक्षा करीत आहे</translation>
-<translation id="7189598951263744875">सामयिक करा...</translation>
 <translation id="7191430249889272776">पार्श्वभूमीवर उघडा असलेला टॅब.</translation>
 <translation id="723171743924126238">इमेज निवडा</translation>
 <translation id="7233236755231902816">तुमच्या भाषेत वेब पाहण्यासाठी, Chrome ची नवीनतम आवृत्ती मिळवा</translation>
@@ -887,7 +883,6 @@
 <translation id="7445411102860286510">साइटना स्वयंचलितपणे नि:शब्द केलेले व्हिडिओ प्ले करण्याची अनुमती द्या (शिफारस केलेले)</translation>
 <translation id="7453467225369441013">तुम्हाला बहुतांश साइटमधून साइन आउट करते. तुम्हाला तुमच्या Google खात्यामधून साइन आउट केले जाणार नाही.</translation>
 <translation id="7454641608352164238">पुरेशी जागा उरलेली नाही</translation>
-<translation id="7455923816558154057">पाहण्यासाठी टॅप करा</translation>
 <translation id="7473891865547856676">नाही, नको</translation>
 <translation id="7475192538862203634">तुम्ही हे वारंवार पहात असल्यास, या <ph name="BEGIN_LINK" />सूचना<ph name="END_LINK" /> वापरून पहा.</translation>
 <translation id="7475688122056506577">SD कार्ड आढळले नाही. तुमच्या काही फायली गहाळ झालेल्या असू शकतात.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb
index 81a5100..fa87c7d 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ms">
 <translation id="1006017844123154345">Buka Dalam Talian</translation>
+<translation id="1028699632127661925">Menghantar ke <ph name="DEVICE_NAME" />...</translation>
 <translation id="1036727731225946849">Menambahkan <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Daripada tapak web</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Cari &amp; teroka</translation>
 <translation id="1264974993859112054">Sukan</translation>
 <translation id="1272079795634619415">Berhenti</translation>
+<translation id="1272444412400969138">Pemilih peranti untuk berkongsi tab.</translation>
 <translation id="1283039547216852943">Ketik untuk kembangkan</translation>
 <translation id="1285320974508926690">Jangan sekali-kali menterjemahkan tapak ini</translation>
 <translation id="1291207594882862231">Hapuskan sejarah, kuki, data tapak, cache...</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Hai, <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">Carian</translation>
 <translation id="1384959399684842514">Muat turun dijeda</translation>
+<translation id="1386674309198842382">Aktif <ph name="LAST_UPDATED" /> hari lalu</translation>
 <translation id="1389974829397082527">Tiada penanda halaman di sini</translation>
 <translation id="1397811292916898096">Cari dengan <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">Dibenamkan dalam <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Cetak</translation>
 <translation id="1445680696957526815">Komponen Chrome tidak serasi antara satu sama lain. Chrome mungkin menaik taraf, sila cuba lagi dalam beberapa minit. Jika masalah ini berterusan, cuba menyahpasang dan memasang semula Chrome.</translation>
 <translation id="1446450296470737166">Benarkan kawalan penuh peranti MIDI</translation>
-<translation id="1449080968331948513">Penjimat Data kini tersedia dalam Mod Ringkas</translation>
 <translation id="145097072038377568">Dimatikan dalam Tetapan Android</translation>
 <translation id="1477626028522505441">Muat turun <ph name="FILE_NAME" /> gagal disebabkan oleh masalah pelayan.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{(+1 lagi)}other{(+ # lagi)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Padam kata laluan</translation>
 <translation id="1516229014686355813">Ketik untuk Mencari menghantar perkataan yang dipilih dan halaman semasa sebagai konteks kepada Carian Google. Anda boleh mematikannya dalam <ph name="BEGIN_LINK" />Tetapan<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktif hari ini</translation>
-<translation id="1539064842193522527">Pautan dibuka dalam Chrome</translation>
 <translation id="1549000191223877751">Alihkan ke tetingkap lain</translation>
 <translation id="1553358976309200471">Kemas Kini Chrome</translation>
 <translation id="1569387923882100876">Peranti Bersambung</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Anda boleh mematikan penyegerakan pada bila-bila masa dalam tetapan</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> penanda halaman}other{<ph name="BOOKMARKS_COUNT_MANY" /> penanda halaman}}</translation>
 <translation id="3089395242580810162">Buka dalam tab inkognito</translation>
-<translation id="311456632243022227">Bbrp pautan dibuka dlm Chrome</translation>
 <translation id="3115898365077584848">Tunjukkan Maklumat</translation>
 <translation id="3123473560110926937">Disekat di sesetengah tapak</translation>
 <translation id="3137521801621304719">Tinggalkan mod inkognito</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Benarkan kuki untuk tapak tertentu.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# jam}other{# jam}}</translation>
 <translation id="4042870126885713738">Tunjukkan cadangan apabila alamat web tidak selesai atau sambungan tidak boleh dibuat</translation>
+<translation id="4044912625106523635">Pemilih peranti untuk berkongsi tab dibuka pada ketinggian penuh.</translation>
 <translation id="4046123991198612571">Lagu seterusnya</translation>
 <translation id="4048707525896921369">Ketahui tentang topik berkenaan tapak web tanpa meninggalkan halaman. Ketik untuk Mencari akan menghantar perkataan dan konteks sekitarnya kepada Carian Google, mengembalikan takrif, gambar, hasil carian dan butiran lain.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">Peranti tidak dapat membuka kandungan yang hendak dimuat turun.</translation>
 <translation id="528192093759286357">Seret dari atas dan sentuh butang kembali untuk keluar daripada skrin penuh.</translation>
 <translation id="5284584623296338184">Perubahan kepada penanda halaman, sejarah, kata laluan dan tetapan anda yang lain tidak akan disegerakkan ke Akaun Google anda lagi. Walau bagaimanapun, data sedia ada akan kekal disimpan dalam akaun Google anda.</translation>
+<translation id="5292796745632149097">Hantar ke</translation>
 <translation id="5300589172476337783">Paparkan</translation>
 <translation id="5301954838959518834">OK, faham</translation>
 <translation id="5304593522240415983">Medan ini tidak boleh kosong</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Segerak</translation>
 <translation id="641643625718530986">Cetak…</translation>
 <translation id="6416782512398055893">Dimuat turun <ph name="MBS" /> MB</translation>
+<translation id="6418750371676080905">Pemilih peranti untuk berkongsi tab ditutup.</translation>
 <translation id="6427112570124116297">Terjemah Web</translation>
 <translation id="6433501201775827830">Pilih enjin carian anda</translation>
 <translation id="6437478888915024427">Maklumat halaman</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Gunakan khidmat ramalan untuk menunjukkan pertanyaan berkaitan dan tapak web popular semasa anda menaip dalam bar alamat</translation>
 <translation id="666731172850799929">Buka dalam <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">Notis Privasi Chrome</translation>
+<translation id="6672986458216094438">Pemilih peranti untuk berkongsi tab dibuka pada ketinggian separuh.</translation>
 <translation id="6697492270171225480">Tunjukkan cadangan untuk halaman yang serupa apabila halaman tidak ditemui</translation>
 <translation id="6697947395630195233">Chrome memerlukan akses kepada lokasi anda untuk berkongsi lokasi dengan tapak ini.</translation>
 <translation id="6698801883190606802">Urus data yang disegerakkan</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Anda boleh menukar perkara ini selepas ini dalam Tetapan</translation>
 <translation id="7180611975245234373">Muat semula</translation>
 <translation id="7189372733857464326">Menunggu Perkhidmatan Google Play selesai mengemas kini</translation>
-<translation id="7189598951263744875">Kongsi...</translation>
 <translation id="7191430249889272776">Tab dibuka di latar belakang.</translation>
 <translation id="723171743924126238">Pilih imej</translation>
 <translation id="7233236755231902816">Untuk melihat web dalam bahasa anda, dapatkan versi terkini Chrome</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Benarkan tapak untuk memainkan video yang diredam secara automatik (disyorkan)</translation>
 <translation id="7453467225369441013">Mengelog anda keluar daripada kebanyakan tapak. Anda tidak akan dilog keluar daripada Akaun Google anda.</translation>
 <translation id="7454641608352164238">Tidak cukup ruang</translation>
-<translation id="7455923816558154057">Ketik untuk lihat</translation>
 <translation id="7473891865547856676">Tidak, Terima Kasih</translation>
 <translation id="7475192538862203634">Jika anda kerap melihatnya, cuba <ph name="BEGIN_LINK" />cadangan<ph name="END_LINK" /> ini.</translation>
 <translation id="7475688122056506577">Kad SD tidak ditemui. Sesetengah fail anda mungkin tiada.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> telah lapuk.</translation>
 <translation id="7947953824732555851">Terima dan log masuk</translation>
 <translation id="7963646190083259054">Vendor:</translation>
+<translation id="7971136598759319605">Aktif 1 hari yang lalu</translation>
 <translation id="7975379999046275268">Pratonton halaman <ph name="BEGIN_NEW" />Baharu<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Pramuat halaman untuk penyemakan imbas dan pencarian yang lebih cepat</translation>
 <translation id="79859296434321399">Untuk melihat kandungan realiti tambahan, pasang ARCore</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 4d7b02b..14fb276 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="nl">
 <translation id="1006017844123154345">Online openen</translation>
+<translation id="1028699632127661925">Verzenden naar <ph name="DEVICE_NAME" />…</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> toevoegen...</translation>
 <translation id="1041308826830691739">Van websites</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Zoeken en verkennen</translation>
 <translation id="1264974993859112054">Sport</translation>
 <translation id="1272079795634619415">Stop</translation>
+<translation id="1272444412400969138">Apparaatkiezer om een tabblad te delen.</translation>
 <translation id="1283039547216852943">Tik om uit te vouwen</translation>
 <translation id="1285320974508926690">Deze site nooit vertalen</translation>
 <translation id="1291207594882862231">Geschiedenis, cookies, sitegegevens, cachegeheugen wissen</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Hallo <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">Zoeken</translation>
 <translation id="1384959399684842514">Download onderbroken</translation>
+<translation id="1386674309198842382"><ph name="LAST_UPDATED" /> dagen geleden actief</translation>
 <translation id="1389974829397082527">Geen bladwijzers</translation>
 <translation id="1397811292916898096">Zoeken met <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">Ingesloten in <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Afdrukken</translation>
 <translation id="1445680696957526815">Onderdelen van Chrome zijn incompatibel met elkaar. Chrome wordt mogelijk geüpgraded. Wacht enkele minuten. Als het probleem blijft optreden, verwijder je Chrome en installeer je het programma opnieuw.</translation>
 <translation id="1446450296470737166">Volledig beheer van MIDI-apparaten toestaan</translation>
-<translation id="1449080968331948513">De Lite-versie van Databesparing is ingeschakeld</translation>
 <translation id="145097072038377568">Uitgeschakeld in Android-instellingen</translation>
 <translation id="1477626028522505441">Downloaden van <ph name="FILE_NAME" /> is mislukt door serverproblemen.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (en nog 1)}other{ (en nog #)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Wachtwoord verwijderen</translation>
 <translation id="1516229014686355813">Met 'Tikken om te zoeken' worden het geselecteerde woord en de huidige pagina als context naar Google Zoeken verzonden. Je kunt deze functie uitschakelen bij <ph name="BEGIN_LINK" />Instellingen<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Vandaag actief</translation>
-<translation id="1539064842193522527">Link geopend in Chrome</translation>
 <translation id="1549000191223877751">Naar ander venster</translation>
 <translation id="1553358976309200471">Chrome updaten</translation>
 <translation id="1569387923882100876">Gekoppeld apparaat</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Je kunt synchronisatie op elk gewenst moment inschakelen via de instellingen</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bladwijzer}other{<ph name="BOOKMARKS_COUNT_MANY" /> bladwijzers}}</translation>
 <translation id="3089395242580810162">Openen op incognitotabblad</translation>
-<translation id="311456632243022227">Meerdere links geopend in Chrome</translation>
 <translation id="3115898365077584848">Informatie weergeven</translation>
 <translation id="3123473560110926937">Geblokkeerd op bepaalde sites</translation>
 <translation id="3137521801621304719">Incognitomodus verlaten</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Cookies voor een specifieke site toestaan.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# uur}other{# uur}}</translation>
 <translation id="4042870126885713738">Suggesties weergeven wanneer een webadres onjuist is of er geen verbinding kan worden gemaakt</translation>
+<translation id="4044912625106523635">Apparaatkiezer om een tabblad te delen is met volledige hoogte geopend.</translation>
 <translation id="4046123991198612571">Volgend nummer</translation>
 <translation id="4048707525896921369">Meer informatie over onderwerpen op websites zonder dat je de pagina hoeft te verlaten. 'Tikken om te zoeken' stuurt een woord en contextuele informatie voor het woord naar Google Zoeken, waarna er definities, afbeeldingen, zoekresultaten en andere gegevens worden weergegeven.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">Het apparaat kan de content niet openen die moet worden gedownload.</translation>
 <translation id="528192093759286357">Sleep vanaf de bovenkant en tik op de knop Terug om het volledige scherm te sluiten.</translation>
 <translation id="5284584623296338184">Wijzigingen in je bladwijzers, geschiedenis, wachtwoorden en andere instellingen worden niet meer gesynchroniseerd met je Google-account. Je bestaande gegevens blijven echter opgeslagen in je Google-account.</translation>
+<translation id="5292796745632149097">Verzenden naar</translation>
 <translation id="5300589172476337783">Weergeven</translation>
 <translation id="5301954838959518834">OK, begrepen</translation>
 <translation id="5304593522240415983">Dit veld mag niet leeg zijn</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Synchronisatie</translation>
 <translation id="641643625718530986">Afdrukken…</translation>
 <translation id="6416782512398055893"><ph name="MBS" /> MB gedownload</translation>
+<translation id="6418750371676080905">Apparaatkiezer om een tabblad te delen is gesloten.</translation>
 <translation id="6427112570124116297">Laat webpagina's vertalen</translation>
 <translation id="6433501201775827830">Je zoekmachine kiezen</translation>
 <translation id="6437478888915024427">Pagina-informatie</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Een voorspellingsservice gebruiken om gerelateerde zoekopdrachten en populaire websites te tonen terwijl je in de adresbalk typt</translation>
 <translation id="666731172850799929">Openen in <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">Privacybeleid van Chrome</translation>
+<translation id="6672986458216094438">Apparaatkiezer om een tabblad te delen is met halve hoogte geopend.</translation>
 <translation id="6697492270171225480">Suggesties voor vergelijkbare pagina's weergeven wanneer een pagina niet wordt gevonden</translation>
 <translation id="6697947395630195233">Chrome heeft toegang tot je locatie nodig om je locatie met deze site te delen.</translation>
 <translation id="6698801883190606802">Gesynchroniseerde gegevens beheren</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Je kunt dit later wijzigen in Instellingen</translation>
 <translation id="7180611975245234373">Vernieuwen</translation>
 <translation id="7189372733857464326">Wachten tot Google Play-services is geüpdatet</translation>
-<translation id="7189598951263744875">Delen</translation>
 <translation id="7191430249889272776">Tabblad op de achtergrond geopend.</translation>
 <translation id="723171743924126238">Afbeeldingen selecteren</translation>
 <translation id="7233236755231902816">Als je webpagina's in je eigen taal wilt kunnen lezen, download je de nieuwste versie van Chrome</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Sites toestaan gedempte video's automatisch af te spelen (aanbevolen)</translation>
 <translation id="7453467225369441013">Hiermee word je uitgelogd van de meeste sites. Je wordt niet uitgelogd van je Google-account.</translation>
 <translation id="7454641608352164238">Onvoldoende ruimte</translation>
-<translation id="7455923816558154057">Tik om weer te geven</translation>
 <translation id="7473891865547856676">Nee, bedankt</translation>
 <translation id="7475192538862203634">Als je deze melding vaker ziet, kun je deze <ph name="BEGIN_LINK" />suggesties<ph name="END_LINK" /> proberen.</translation>
 <translation id="7475688122056506577">SD-kaart niet gevonden. Sommige van je bestanden kunnen ontbreken.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> is verouderd.</translation>
 <translation id="7947953824732555851">Accepteren en inloggen</translation>
 <translation id="7963646190083259054">Leverancier:</translation>
+<translation id="7971136598759319605">1 dag geleden actief</translation>
 <translation id="7975379999046275268">Pagina bekijken <ph name="BEGIN_NEW" />Nieuw<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Pagina's vooraf laden voor sneller browsen en zoeken</translation>
 <translation id="79859296434321399">Installeer ARCore om augmented reality-content te bekijken</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 ff55b31..fa2357a 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Skriv ut</translation>
 <translation id="1445680696957526815">Komponentene i Chrome er ikke kompatible med hverandre. Det kan hende at Chrome er i ferd med å oppdateres. Prøv igjen om noen minutter. Hvis problemet vedvarer, kan du prøve å avinstallere Chrome og så installere den på nytt.</translation>
 <translation id="1446450296470737166">Full kontroll over MIDI-enheter</translation>
-<translation id="1449080968331948513">Datasparing heter nå «forenklet modus»</translation>
 <translation id="145097072038377568">Slått av i Android-innstillingene</translation>
 <translation id="1477626028522505441">Nedlastingen av <ph name="FILE_NAME" /> ble avbrutt på grunn av tjenerproblemer.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 til)}other{ (+ # til)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Slett passordet</translation>
 <translation id="1516229014686355813">«Trykk for å søke» sender det valgte ordet og den aktive siden som kontekst til Google Søk. Du kan slå av dette i <ph name="BEGIN_LINK" />Innstillinger<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktiv i dag</translation>
-<translation id="1539064842193522527">Linken er åpnet i Chrome</translation>
 <translation id="1549000191223877751">Flytt til det andre vinduet</translation>
 <translation id="1553358976309200471">Oppdater Chrome</translation>
 <translation id="1569387923882100876">Tilkoblet enhet</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Du kan når som helst slå på synkronisering i innstillingene</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bokmerke}other{<ph name="BOOKMARKS_COUNT_MANY" /> bokmerker}}</translation>
 <translation id="3089395242580810162">Åpne i inkognitofane</translation>
-<translation id="311456632243022227">Flere linker er åpnet i Chrome</translation>
 <translation id="3115898365077584848">Vis informasjon</translation>
 <translation id="3123473560110926937">Blokkert på enkelte nettsteder</translation>
 <translation id="3137521801621304719">Avslutt inkognitomodus</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Du kan endre dette senere i Innstillinger</translation>
 <translation id="7180611975245234373">Last inn på nytt</translation>
 <translation id="7189372733857464326">Venter på at Google Play Tjenester fullfører oppdateringen</translation>
-<translation id="7189598951263744875">Del</translation>
 <translation id="7191430249889272776">En fane ble åpnet i bakgrunnen.</translation>
 <translation id="723171743924126238">Velg bilder</translation>
 <translation id="7233236755231902816">For å se nettet på ditt eget språk, skaff den nyeste versjonen av Chrome</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Gi nettsteder tillatelse til automatisk avspilling av videoer med kuttet lyd (anbefales)</translation>
 <translation id="7453467225369441013">Logger deg av de fleste nettsteder. Du blir ikke logget av Google-kontoen din.</translation>
 <translation id="7454641608352164238">Det er ikke nok plass</translation>
-<translation id="7455923816558154057">Trykk for å se</translation>
 <translation id="7473891865547856676">Nei takk</translation>
 <translation id="7475192538862203634">Hvis du ser dette ofte, kan du prøve disse <ph name="BEGIN_LINK" />forslagene<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Finner ikke SD-kort. Noen av filene dine kan mangle.</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 40dee08..faca4e31 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Drukuj</translation>
 <translation id="1445680696957526815">Komponenty Chrome są ze sobą niezgodne. Być może przeglądarka się uaktualnia. Spróbuj ponownie za kilka minut. Jeśli problem nie ustąpi, odinstaluj i ponownie zainstaluj Chrome.</translation>
 <translation id="1446450296470737166">Pełne sterowanie urządzeniami MIDI</translation>
-<translation id="1449080968331948513">Oszczędzanie danych to teraz wersja uproszczona</translation>
 <translation id="145097072038377568">Wyłączone w ustawieniach Androida</translation>
 <translation id="1477626028522505441">Nie udało się pobrać pliku <ph name="FILE_NAME" /> z powodu problemów z serwerem.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (i jeszcze 1)}few{ (i jeszcze #)}many{ (i jeszcze #)}other{ (i jeszcze #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Usuń hasło</translation>
 <translation id="1516229014686355813">Funkcja Kliknij, by wyszukać wysyła zaznaczone słowo i bieżącą stronę jako kontekst do wyszukiwarki Google. Możesz ją wyłączyć w <ph name="BEGIN_LINK" />ustawieniach<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktywność: dzisiaj</translation>
-<translation id="1539064842193522527">Link otwarty w Chrome</translation>
 <translation id="1549000191223877751">Przenieś do innego okna</translation>
 <translation id="1553358976309200471">Zaktualizuj Chrome</translation>
 <translation id="1569387923882100876">Połączone urządzenie</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">W każdej chwili możesz włączyć synchronizację w ustawieniach</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> zakładka}few{<ph name="BOOKMARKS_COUNT_MANY" /> zakładki}many{<ph name="BOOKMARKS_COUNT_MANY" /> zakładek}other{<ph name="BOOKMARKS_COUNT_MANY" /> zakładki}}</translation>
 <translation id="3089395242580810162">Otwórz w karcie incognito</translation>
-<translation id="311456632243022227">Wiele linków otwartych w Chrome</translation>
 <translation id="3115898365077584848">Pokaż informacje</translation>
 <translation id="3123473560110926937">Blokowane na niektórych stronach</translation>
 <translation id="3137521801621304719">Wyłącz tryb incognito</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Możesz zmienić to później w Ustawieniach</translation>
 <translation id="7180611975245234373">Odśwież</translation>
 <translation id="7189372733857464326">Czekam na zakończenie aktualizacji Usług Google Play</translation>
-<translation id="7189598951263744875">Udostępnij...</translation>
 <translation id="7191430249889272776">Karta otwarta w tle.</translation>
 <translation id="723171743924126238">Wybierz zdjęcia</translation>
 <translation id="7233236755231902816">Aby wyświetlać strony internetowe w swoim języku, pobierz najnowszą wersję Chrome</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Zezwalaj witrynom na automatyczne odtwarzanie wyciszonych filmów (zalecane)</translation>
 <translation id="7453467225369441013">Wylogowuje z większości stron internetowych. Nie wyloguje Cię z konta Google.</translation>
 <translation id="7454641608352164238">Za mało miejsca</translation>
-<translation id="7455923816558154057">Kliknij, by wyświetlić</translation>
 <translation id="7473891865547856676">Nie, dziękuję</translation>
 <translation id="7475192538862203634">Jeśli często widzisz ten komunikat, przeczytaj te <ph name="BEGIN_LINK" />wskazówki<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Nie znaleziono karty SD. Może brakować niektórych Twoich plików.</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 9740941..efa1f88 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
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="pt-BR">
 <translation id="1006017844123154345">Abrir on-line</translation>
+<translation id="1028699632127661925">Enviando para o <ph name="DEVICE_NAME" />…</translation>
 <translation id="1036727731225946849">Adicionando <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">De sites</translation>
 <translation id="1049743911850919806">Modo anônimo</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Pesquisar e explorar</translation>
 <translation id="1264974993859112054">Esportes</translation>
 <translation id="1272079795634619415">Parar</translation>
+<translation id="1272444412400969138">Seletor de dispositivo com o qual compartilhar uma guia.</translation>
 <translation id="1283039547216852943">Toque para expandir</translation>
 <translation id="1285320974508926690">Nunca traduzir este site</translation>
 <translation id="1291207594882862231">Limpar histórico, cookies, dados do site, cache…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Olá, <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">Pesquisar</translation>
 <translation id="1384959399684842514">Download pausado</translation>
+<translation id="1386674309198842382">Ativado há <ph name="LAST_UPDATED" /> dias</translation>
 <translation id="1389974829397082527">Não há favoritos aqui</translation>
 <translation id="1397811292916898096">Pesquisar com o <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">Incorporado em <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Imprimir</translation>
 <translation id="1445680696957526815">Os componentes do Chrome são incompatíveis entre si. O Chrome pode estar fazendo um upgrade. Tente novamente em alguns minutos. Se o problema persistir, tente desinstalar e reinstalar o Chrome.</translation>
 <translation id="1446450296470737166">Permitir controle total de dispositivos MIDI</translation>
-<translation id="1449080968331948513">A Economia de dados está no Modo Lite agora</translation>
 <translation id="145097072038377568">Desativada nas configurações do Android</translation>
 <translation id="1477626028522505441">Falha no download do arquivo <ph name="FILE_NAME" /> devido a problemas de servidor.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (e mais 1)}one{ (e mais #)}other{ (e mais #)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Excluir senha</translation>
 <translation id="1516229014686355813">O recurso "Tocar para pesquisar" envia a palavra selecionada e a página atual como contexto para a Pesquisa Google. É possível desativá-lo em <ph name="BEGIN_LINK" />Configurações<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Ativado hoje</translation>
-<translation id="1539064842193522527">Link aberto no Chrome</translation>
 <translation id="1549000191223877751">Mover para outra janela</translation>
 <translation id="1553358976309200471">Atualizar o Google Chrome</translation>
 <translation id="1569387923882100876">Dispositivo conectado</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Ative a sincronização quando quiser nas configurações</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> favorito}one{<ph name="BOOKMARKS_COUNT_MANY" /> favorito}other{<ph name="BOOKMARKS_COUNT_MANY" /> favoritos}}</translation>
 <translation id="3089395242580810162">Abrir em guia anônima</translation>
-<translation id="311456632243022227">Vários links abertos no Chrome</translation>
 <translation id="3115898365077584848">Mostrar informações</translation>
 <translation id="3123473560110926937">Bloqueados em alguns sites</translation>
 <translation id="3137521801621304719">Sair do modo de navegação anônima</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Permita cookies para um site específico.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# h}one{# h}other{# h}}</translation>
 <translation id="4042870126885713738">Mostra sugestões quando houver falha em um endereço da Web ou uma conexão não puder ser estabelecida</translation>
+<translation id="4044912625106523635">O seletor de dispositivo com o qual compartilhar uma guia é aberto com a altura máxima.</translation>
 <translation id="4046123991198612571">Próxima faixa</translation>
 <translation id="4048707525896921369">Saiba mais sobre um determinado assunto de um site sem sair da página. Com o recurso "Tocar para pesquisar", você toca na palavra e o contexto relacionado é enviado para a Pesquisa Google, que então mostra definições, imagens, resultados da pesquisa e outros detalhes relacionados para você.
 
@@ -580,6 +581,7 @@
 <translation id="5271967389191913893">Não é possível abrir no dispositivo o conteúdo a ser transferido por download.</translation>
 <translation id="528192093759286357">Arraste a partir da parte superior e toque no botão "Voltar" para sair da tela cheia.</translation>
 <translation id="5284584623296338184">Alterações feitas nos seus favoritos, histórico, senhas e outras configurações não serão mais sincronizadas com sua Conta do Google. No entanto, os dados já existentes permanecerão armazenados na Conta do Google.</translation>
+<translation id="5292796745632149097">Enviar para</translation>
 <translation id="5300589172476337783">Mostrar</translation>
 <translation id="5301954838959518834">Ok, entendi</translation>
 <translation id="5304593522240415983">Este campo não pode ficar em branco</translation>
@@ -741,6 +743,7 @@
 <translation id="6406506848690869874">Sincronizar</translation>
 <translation id="641643625718530986">Imprimir...</translation>
 <translation id="6416782512398055893"><ph name="MBS" /> MB transferido(s) por download</translation>
+<translation id="6418750371676080905">O seletor de dispositivo com o qual compartilhar uma guia está fechado.</translation>
 <translation id="6427112570124116297">Traduzir página da Web</translation>
 <translation id="6433501201775827830">Escolha seu mecanismo de pesquisa</translation>
 <translation id="6437478888915024427">Informações sobre a página</translation>
@@ -780,6 +783,7 @@
 <translation id="666268767214822976">Prevê as palavras da consulta à medida que você digita</translation>
 <translation id="666731172850799929">Abrir no <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">Aviso de Privacidade do Chrome</translation>
+<translation id="6672986458216094438">O seletor de dispositivo com o qual compartilhar uma guia é aberto com metade da altura.</translation>
 <translation id="6697492270171225480">Mostrar sugestões de páginas semelhantes quando uma página não for encontrada</translation>
 <translation id="6697947395630195233">O Chrome precisa acessar sua localização para compartilhá-la com este site.</translation>
 <translation id="6698801883190606802">Gerenciar dados sincronizados</translation>
@@ -851,7 +855,6 @@
 <translation id="7177466738963138057">Você poderá alterar isso mais tarde nas configurações</translation>
 <translation id="7180611975245234373">Atualizar</translation>
 <translation id="7189372733857464326">Aguardando o fim da atualização do Google Play Services</translation>
-<translation id="7189598951263744875">Compartilhar...</translation>
 <translation id="7191430249889272776">Guia aberta no plano de fundo.</translation>
 <translation id="723171743924126238">Selecionar imagens</translation>
 <translation id="7233236755231902816">Para ver as páginas da Web no seu idioma, instale a versão mais recente do Chrome</translation>
@@ -888,7 +891,6 @@
 <translation id="7445411102860286510">Permite que os sites mostrem vídeos sem som automaticamente (recomendado)</translation>
 <translation id="7453467225369441013">Desconecta você da maioria dos sites, mas não da sua Conta do Google.</translation>
 <translation id="7454641608352164238">Espaço insuficiente</translation>
-<translation id="7455923816558154057">Toque para ver</translation>
 <translation id="7473891865547856676">Não, obrigado</translation>
 <translation id="7475192538862203634">Se estiver vendo isso com frequência, tente estas <ph name="BEGIN_LINK" />sugestões<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Cartão SD não encontrado. Alguns arquivos podem estar faltando.</translation>
@@ -957,6 +959,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> está desatualizado.</translation>
 <translation id="7947953824732555851">Aceitar/fazer login</translation>
 <translation id="7963646190083259054">Fornecedor:</translation>
+<translation id="7971136598759319605">Ativado há um dia</translation>
 <translation id="7975379999046275268">Visualizar página <ph name="BEGIN_NEW" />Novidade<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Pré-carregar páginas para possibilitar navegação e pesquisa mais rápidas</translation>
 <translation id="79859296434321399">Para ver conteúdo de realidade aumentada, instale o ARCore</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 1168838..e14cf75 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
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Imprimir</translation>
 <translation id="1445680696957526815">Os componentes do Chrome são incompatíveis entre si. O Chrome pode estar a ser atualizado, tente novamente dentro de alguns minutos. Se o problema continuar, experimente desinstalar e reinstalar o Chrome.</translation>
 <translation id="1446450296470737166">Perm. controlo total dispo. MIDI</translation>
-<translation id="1449080968331948513">A Poupança de dados é agora o Modo Lite</translation>
 <translation id="145097072038377568">Desativada nas Definições do Android</translation>
 <translation id="1477626028522505441">A transferência de <ph name="FILE_NAME" /> falhou devido a problemas do servidor.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (e mais 1)}other{ (e mais #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Eliminar palavra-passe</translation>
 <translation id="1516229014686355813">A funcionalidade Tocar para pesquisar envia a palavra selecionada e a página atual como contexto para a Pesquisa Google. Pode desativá-la nas <ph name="BEGIN_LINK" />Definições<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Ativo hoje</translation>
-<translation id="1539064842193522527">Link aberto no Chrome</translation>
 <translation id="1549000191223877751">Mover para outra janela</translation>
 <translation id="1553358976309200471">Atualizar o Chrome</translation>
 <translation id="1569387923882100876">Dispositivo ligado</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Pode ativar a sincronização em qualquer altura nas definições.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> marcador}other{<ph name="BOOKMARKS_COUNT_MANY" /> marcadores}}</translation>
 <translation id="3089395242580810162">Abrir no separador anónimo</translation>
-<translation id="311456632243022227">Vários links abertos no Chrome</translation>
 <translation id="3115898365077584848">Mostrar informações</translation>
 <translation id="3123473560110926937">Bloqueado em alguns sites.</translation>
 <translation id="3137521801621304719">Sair do modo de navegação anónima</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Pode alterar esta opção mais tarde nas Definições</translation>
 <translation id="7180611975245234373">Atualizar</translation>
 <translation id="7189372733857464326">A aguardar pela conclusão da atualização dos Serviços do Google Play…</translation>
-<translation id="7189598951263744875">Partilhar...</translation>
 <translation id="7191430249889272776">Separador aberto em segundo plano.</translation>
 <translation id="723171743924126238">Selecionar imagens</translation>
 <translation id="7233236755231902816">Para ver a Web no seu idioma, obtenha a versão mais recente do Chrome.</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Permitir que os sites reproduzam automaticamente vídeos com o som desativado (recomendado)</translation>
 <translation id="7453467225369441013">A sua sessão é terminada na maioria dos sites. A sessão na sua Conta Google não é terminada.</translation>
 <translation id="7454641608352164238">Espaço insuficiente</translation>
-<translation id="7455923816558154057">Tocar para ver</translation>
 <translation id="7473891865547856676">Não, obrigado</translation>
 <translation id="7475192538862203634">Se vê isto com frequência, experimente estas <ph name="BEGIN_LINK" />sugestões<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Cartão SD não encontrado. Alguns dos seus ficheiros poderão estar em falta.</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 0cc3428..b0afd7d 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Printează</translation>
 <translation id="1445680696957526815">Componentele Chrome nu sunt compatibile între ele. Chrome poate fi în curs de actualizare. Încearcă din nou peste câteva minute. Dacă problema persistă, încearcă să dezinstalezi și să reinstalezi Chrome.</translation>
 <translation id="1446450296470737166">Control complet dispozitive MIDI</translation>
-<translation id="1449080968331948513">Economizorul de date este acum Modul Lite</translation>
 <translation id="145097072038377568">Dezactivată din Setări Android</translation>
 <translation id="1477626028522505441">Descărcarea fișierului <ph name="FILE_NAME" /> nu a reușit din cauza unor probleme de server.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (și încă unul)}few{ (și încă #)}other{ (și încă #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Șterge parola</translation>
 <translation id="1516229014686355813">Funcția Atinge pentru a căuta trimite cuvântul selectat și pagina actuală drept context către Căutarea Google. Poți dezactiva această funcție din <ph name="BEGIN_LINK" />Setări<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Activ astăzi</translation>
-<translation id="1539064842193522527">Link deschis în Chrome</translation>
 <translation id="1549000191223877751">Mută în altă fereastră</translation>
 <translation id="1553358976309200471">Actualizează Chrome</translation>
 <translation id="1569387923882100876">Dispozitiv conectat</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Poți să activezi sincronizarea oricând în setări</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> marcaj}few{<ph name="BOOKMARKS_COUNT_MANY" /> marcaje}other{<ph name="BOOKMARKS_COUNT_MANY" /> de marcaje}}</translation>
 <translation id="3089395242580810162">Deschide într-o filă incognito</translation>
-<translation id="311456632243022227">Linkuri multiple deschise în Chrome</translation>
 <translation id="3115898365077584848">Afișează informațiile</translation>
 <translation id="3123473560110926937">Blocate pe anumite site-uri</translation>
 <translation id="3137521801621304719">Ieși din modul incognito</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Poți modifica ulterior această opțiune în Setări</translation>
 <translation id="7180611975245234373">Actualizați</translation>
 <translation id="7189372733857464326">Se așteaptă finalizarea actualizării pentru serviciile Google Play</translation>
-<translation id="7189598951263744875">Trimite...</translation>
 <translation id="7191430249889272776">A fost deschisă o filă în fundal.</translation>
 <translation id="723171743924126238">Selectează imagini</translation>
 <translation id="7233236755231902816">Pentru a naviga pe internet în limba ta, este necesară cea mai recentă versiune de Chrome</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Permite site-urilor să redea automat videoclipuri cu sunetul dezactivat (recomandat)</translation>
 <translation id="7453467225369441013">Te deconectează de pe majoritatea site-urilor. Nu te va deconecta de la Contul Google.</translation>
 <translation id="7454641608352164238">Spațiu insuficient</translation>
-<translation id="7455923816558154057">Atinge pentru a afișa</translation>
 <translation id="7473891865547856676">Nu, mulțumesc</translation>
 <translation id="7475192538862203634">Dacă acest mesaj apare frecvent, încearcă următoarele <ph name="BEGIN_LINK" />sugestii<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Nu s-a găsit cardul SD. Este posibil ca unele fișiere să lipsească.</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 602f9a0..ba9bad7 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ru">
 <translation id="1006017844123154345">Открыть в Интернете</translation>
+<translation id="1028699632127661925">Отправка на устройство "<ph name="DEVICE_NAME" />"…</translation>
 <translation id="1036727731225946849">Добавление файла "<ph name="WEBAPK_NAME" />"…</translation>
 <translation id="1041308826830691739">От сайтов</translation>
 <translation id="1049743911850919806">Инкогнито</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Поиск и рекомендации</translation>
 <translation id="1264974993859112054">Спорт</translation>
 <translation id="1272079795634619415">Остановить</translation>
+<translation id="1272444412400969138">Выбор устройства, на которое будет отправлена вкладка.</translation>
 <translation id="1283039547216852943">Нажмите, чтобы развернуть</translation>
 <translation id="1285320974508926690">Никогда не переводить этот сайт</translation>
 <translation id="1291207594882862231">Удалить файлы cookie и данные сайтов, очистить историю и кеш</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Здравствуйте, <ph name="FULL_NAME" />!</translation>
 <translation id="1383876407941801731">Поиск</translation>
 <translation id="1384959399684842514">Скачивание приостановлено.</translation>
+<translation id="1386674309198842382">Последние действия: <ph name="LAST_UPDATED" /> дн. назад</translation>
 <translation id="1389974829397082527">Закладок пока нет.</translation>
 <translation id="1397811292916898096">Поиск в <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">Встроено в <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Печать</translation>
 <translation id="1445680696957526815">Компоненты Chrome несовместимы друг с другом. Возможно, выполняется обновление. Повторите попытку через несколько минут. Если проблема не исчезнет, переустановите браузер.</translation>
 <translation id="1446450296470737166">Полный доступ к управлению MIDI-устройствами</translation>
-<translation id="1449080968331948513">Функция "Экономия трафика" теперь называется "Упрощенный режим".</translation>
 <translation id="145097072038377568">Отключено в настройках Android</translation>
 <translation id="1477626028522505441">Не удалось скачать файл <ph name="FILE_NAME" /> из-за неполадок на сервере.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (и ещё 1)}one{ (и ещё #)}few{ (и ещё #)}many{ (и ещё #)}other{ (и ещё #)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Удалить пароль</translation>
 <translation id="1516229014686355813">Быстрый поиск отправляет в Google выбранное слово, а также – в качестве контекста – текущую страницу. Отключить эту функцию можно в <ph name="BEGIN_LINK" />настройках<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Последние действия: сегодня</translation>
-<translation id="1539064842193522527">Ссылка открыта в Chrome</translation>
 <translation id="1549000191223877751">Перейти к другому окну</translation>
 <translation id="1553358976309200471">Обновить Chrome</translation>
 <translation id="1569387923882100876">Подключенное устройство</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Ее можно включить в настройках в любой момент.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> закладка}one{<ph name="BOOKMARKS_COUNT_MANY" /> закладка}few{<ph name="BOOKMARKS_COUNT_MANY" /> закладки}many{<ph name="BOOKMARKS_COUNT_MANY" /> закладок}other{<ph name="BOOKMARKS_COUNT_MANY" /> закладки}}</translation>
 <translation id="3089395242580810162">Открыть в режиме инкогнито</translation>
-<translation id="311456632243022227">Ссылки открыты в Chrome</translation>
 <translation id="3115898365077584848">Показать информацию</translation>
 <translation id="3123473560110926937">Заблокировано на некоторых сайтах</translation>
 <translation id="3137521801621304719">Выключить режим инкогнито</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Разрешить определенному сайту сохранять файлы cookie.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# час}one{# час}few{# часа}many{# часов}other{# часа}}</translation>
 <translation id="4042870126885713738">Предлагать альтернативы, если веб-адрес недоступен или с ним не удается установить соединение</translation>
+<translation id="4044912625106523635">Окно выбора устройства для отправки вкладки открыто во весь экран.</translation>
 <translation id="4046123991198612571">Следующий трек</translation>
 <translation id="4048707525896921369">Ищите картинки, определения и другую информацию, не покидая выбранную страницу. Просто выберите слово, и оно будет отправлено в Google Поиск вместе с контекстом.
 
@@ -539,7 +540,7 @@
 <translation id="4962975101802056554">Отозвать все разрешения для устройства</translation>
 <translation id="4970824347203572753">Функция недоступна в вашей стране.</translation>
 <translation id="497421865427891073">Вперед</translation>
-<translation id="4988210275050210843">Скачивание файла (<ph name="MEGABYTES" /> МБ).</translation>
+<translation id="4988210275050210843">Скачивание файла (<ph name="MEGABYTES" />).</translation>
 <translation id="4988526792673242964">Страницы</translation>
 <translation id="4994033804516042629">Контакты не найдены</translation>
 <translation id="4996978546172906250">Способ отправки</translation>
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">Не удается открыть скачанный контент.</translation>
 <translation id="528192093759286357">Чтобы выйти из полноэкранного режима, проведите по экрану сверху вниз и нажмите кнопку "Назад".</translation>
 <translation id="5284584623296338184">Изменения в ваших закладках, паролях, истории и других настройках больше не будут синхронизироваться с аккаунтом Google. Это изменение не затронет данные, сохраненные в аккаунте ранее.</translation>
+<translation id="5292796745632149097">Куда отправить</translation>
 <translation id="5300589172476337783">Показать</translation>
 <translation id="5301954838959518834">ОК</translation>
 <translation id="5304593522240415983">Это поле нужно заполнить</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Синхронизация...</translation>
 <translation id="641643625718530986">Печать</translation>
 <translation id="6416782512398055893">Скачано <ph name="MBS" /> МБ</translation>
+<translation id="6418750371676080905">Окно выбора устройства для отправки вкладки закрыто.</translation>
 <translation id="6427112570124116297">Перевод веб-страниц</translation>
 <translation id="6433501201775827830">Выберите поисковую систему</translation>
 <translation id="6437478888915024427">Информация о странице</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Показывать подсказки с похожими запросами и часто посещаемыми сайтами по мере ввода в адресную строку</translation>
 <translation id="666731172850799929">Открыть в <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">Примечание о конфиденциальности Chrome</translation>
+<translation id="6672986458216094438">Окно выбора устройства для отправки вкладки открыто на половину экрана.</translation>
 <translation id="6697492270171225480">Предлагать варианты, если страница, которую вы пытаетесь открыть, не найдена</translation>
 <translation id="6697947395630195233">Для этого сайта Chrome запрашивает доступ к данным о вашем местоположении.</translation>
 <translation id="6698801883190606802">Управление синхронизированными данными</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Вы всегда можете изменить свой выбор в настройках</translation>
 <translation id="7180611975245234373">Обновить</translation>
 <translation id="7189372733857464326">Обновление сервисов Google Play…</translation>
-<translation id="7189598951263744875">Поделиться…</translation>
 <translation id="7191430249889272776">Вкладка открыта в фоновом режиме</translation>
 <translation id="723171743924126238">Выберите изображения</translation>
 <translation id="7233236755231902816">Чтобы просматривать веб-страницы на своем языке, обновите Chrome до последней версии.</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Разрешить сайтам автоматически воспроизводить видео без звука (рекомендуется)</translation>
 <translation id="7453467225369441013">Вы выйдете из аккаунтов на большинстве сайтов, но останетесь в аккаунте Google.</translation>
 <translation id="7454641608352164238">Недостаточно места</translation>
-<translation id="7455923816558154057">Нажмите, чтобы посмотреть</translation>
 <translation id="7473891865547856676">Пропустить</translation>
 <translation id="7475192538862203634">Если эта проблема возникает часто, узнайте, <ph name="BEGIN_LINK" />как ее решить<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD-карта не найдена. Некоторые файлы могут отсутствовать.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342">Версия <ph name="PRODUCT_NAME" /> устарела.</translation>
 <translation id="7947953824732555851">Принять и войти</translation>
 <translation id="7963646190083259054">Поставщик:</translation>
+<translation id="7971136598759319605">Последние действия: 1 день назад</translation>
 <translation id="7975379999046275268">Просмотреть страницу <ph name="BEGIN_NEW" />Новинка<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Разрешить предзагрузку страниц для повышения скорости работы браузера и поиска</translation>
 <translation id="79859296434321399">Чтобы просматривать контент в режиме дополненной реальности, установите приложение ARCore.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb
index 1f06549a..5358a11 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Tlačiť</translation>
 <translation id="1445680696957526815">Komponenty prehliadača Chrome sú vzájomne nekompatibilné. Chrome možno inštaluje inováciu. Skúste to znova o niekoľko minút. Ak problém pretrváva, skúste prehliadač Chrome odinštalovať a znovu nainštalovať.</translation>
 <translation id="1446450296470737166">Povoliť úplné ovlád. zar. MIDI</translation>
-<translation id="1449080968331948513">Šetrič dát je teraz zjednodušený režim</translation>
 <translation id="145097072038377568">Vypnuté v nastaveniach Androidu</translation>
 <translation id="1477626028522505441">Súbor <ph name="FILE_NAME" /> sa nepodarilo stiahnuť z dôvodu problémov so serverom.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 ďalšia)}few{ (+ # ďalšie)}many{ (+ # more)}other{ (+ # ďalších)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Odstrániť heslo</translation>
 <translation id="1516229014686355813">Vyhľadávanie klepnutím odošle vybraté slovo a súčasnú stránku ako kontext do Vyhľadávania Google. Môžete ho vypnúť v <ph name="BEGIN_LINK" />Nastaveniach<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktívne dnes</translation>
-<translation id="1539064842193522527">Otvorený odkaz v Chrome</translation>
 <translation id="1549000191223877751">Prejsť do druhého okna</translation>
 <translation id="1553358976309200471">Aktualizovať Chrome</translation>
 <translation id="1569387923882100876">Pripojené zariadenie</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Synchronizáciu môžete kedykoľvek zapnúť v nastaveniach</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> záložka}few{<ph name="BOOKMARKS_COUNT_MANY" /> záložky}many{<ph name="BOOKMARKS_COUNT_MANY" /> bookmarks}other{<ph name="BOOKMARKS_COUNT_MANY" /> záložiek}}</translation>
 <translation id="3089395242580810162">Otvoriť na karte inkognito</translation>
-<translation id="311456632243022227">Otvorené odkazy v Chrome</translation>
 <translation id="3115898365077584848">Zobraziť informácie</translation>
 <translation id="3123473560110926937">Blokované na niektorých weboch</translation>
 <translation id="3137521801621304719">Ukončiť režim inkognito</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Zmeniť to môžete neskôr v časti Nastavenia</translation>
 <translation id="7180611975245234373">Obnoviť</translation>
 <translation id="7189372733857464326">Čaká sa na dokončenie aktualizácie služieb Google Play Services</translation>
-<translation id="7189598951263744875">Zdieľať...</translation>
 <translation id="7191430249889272776">Karta je otvorená na pozadí.</translation>
 <translation id="723171743924126238">Výber obrázkov</translation>
 <translation id="7233236755231902816">Ak chcete príslušný web zobraziť vo svojom jazyku, nainštalujte si najnovšiu verziu Chromu</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Povoliť webom automaticky prehrávať stlmené videá (odporúča sa)</translation>
 <translation id="7453467225369441013">Odhlási vás z väčšiny webov, ale nie z účtu Google.</translation>
 <translation id="7454641608352164238">Nedostatok miesta</translation>
-<translation id="7455923816558154057">Zobrazíte klepnutím</translation>
 <translation id="7473891865547856676">Nie, ďakujem</translation>
 <translation id="7475192538862203634">Ak sa vám táto stránka zobrazuje často, skúste použiť tieto <ph name="BEGIN_LINK" />návrhy<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD karta sa nenašla. Môžu chýbať niektoré súbory.</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 06db87e..25872d11 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Natisni</translation>
 <translation id="1445680696957526815">Chromove komponente niso združljive med seboj. Morda se Chrome posodablja, zato poskusite znova čez nekaj minut. Če se težava ponovi, poskusite odstraniti in znova namestiti Chrome.</translation>
 <translation id="1446450296470737166">Dovolitev popolnega nadzora nad napravami MIDI</translation>
-<translation id="1449080968331948513">Funkcija »Varčevanje s podatki« se zdaj imenuje »Lahki način«.</translation>
 <translation id="145097072038377568">Izklopljeno v nastavitvah za Android</translation>
 <translation id="1477626028522505441">Prenos datoteke <ph name="FILE_NAME" /> ni uspel zaradi težav s strežnikom.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (in še 1)}one{ (in še #)}two{ (in še #)}few{ (in še #)}other{ (in še #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Izbris gesla</translation>
 <translation id="1516229014686355813">Funkcija »Iskanje z dotikom« zagotovi, da sta izbrana beseda in trenutna stran poslani kot kontekst v Iskanje Google. Izklopite jo lahko v <ph name="BEGIN_LINK" />nastavitvah<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktivno danes</translation>
-<translation id="1539064842193522527">Povezava, odprta v Chromu</translation>
 <translation id="1549000191223877751">Premik v drugo okno</translation>
 <translation id="1553358976309200471">Posodobi Chrome</translation>
 <translation id="1569387923882100876">Povezana naprava</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Sinhronizacijo lahko kadarkoli vklopite v nastavitvah.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> zaznamek}one{<ph name="BOOKMARKS_COUNT_MANY" /> zaznamek}two{<ph name="BOOKMARKS_COUNT_MANY" /> zaznamka}few{<ph name="BOOKMARKS_COUNT_MANY" /> zaznamki}other{<ph name="BOOKMARKS_COUNT_MANY" /> zaznamkov}}</translation>
 <translation id="3089395242580810162">Odpri v zavihku brez bel. zg.</translation>
-<translation id="311456632243022227">Več povezav, odprtih v Chromu</translation>
 <translation id="3115898365077584848">Pokaži informacije</translation>
 <translation id="3123473560110926937">Blokirano na nekaterih spletnih mestih</translation>
 <translation id="3137521801621304719">Izklop načina brez beleženja zgodovine</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">To lahko pozneje spremenite v nastavitvah</translation>
 <translation id="7180611975245234373">Osveži</translation>
 <translation id="7189372733857464326">Čakanje na dokončanje posodobitev storitev za Google Play</translation>
-<translation id="7189598951263744875">Deli z drugimi</translation>
 <translation id="7191430249889272776">Zavihek se je odprl v ozadju.</translation>
 <translation id="723171743924126238">Izberite slike</translation>
 <translation id="7233236755231902816">Če si želite splet ogledovati v svojem jeziku, posodobite Chrome na najnovejšo različico</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Dovoli spletnim mestom samodejno predvajanje videoposnetkov z izklopljenim zvokom (priporočljivo)</translation>
 <translation id="7453467225369441013">Odjavi vas iz večine spletnih mest, vendar ne iz Google Računa.</translation>
 <translation id="7454641608352164238">Ni dovolj prostora</translation>
-<translation id="7455923816558154057">Dotaknite se za ogled</translation>
 <translation id="7473891865547856676">Ne, hvala</translation>
 <translation id="7475192538862203634">Če se to pogosto zgodi, preizkusite te <ph name="BEGIN_LINK" />predloge<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Kartice SD ni bilo mogoče najti. Nekatere vaše datoteke morda manjkajo.</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 8a5d23f3..ffe98e2 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Штампај</translation>
 <translation id="1445680696957526815">Chrome-ове компоненте нису међусобно компатибилне. Chrome се можда надограђује, па покушајте поново за пар минута. Ако и даље будете имали исти проблем, покушајте да деинсталирате и поново инсталирате Chrome.</translation>
 <translation id="1446450296470737166">Пуна контрола над MIDI уређајима</translation>
-<translation id="1449080968331948513">Уштеда података је сада Lite режим</translation>
 <translation id="145097072038377568">Искључено је у Android подешавањима</translation>
 <translation id="1477626028522505441">Преузимање датотеке <ph name="FILE_NAME" /> није успело због проблема на серверу.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (и још 1)}one{ (и још #)}few{ (и још #)}other{ (и још #)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Избриши лозинку</translation>
 <translation id="1516229014686355813">Функција „Додирните за претрагу“ шаље изабрану реч и актуелну страницу као контекст у Google претрагу. Можете да је искључите у <ph name="BEGIN_LINK" />Подешавањима<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Активан је данас</translation>
-<translation id="1539064842193522527">Линк је отворен у Chrome-у</translation>
 <translation id="1549000191223877751">Премести у други прозор</translation>
 <translation id="1553358976309200471">Ажурирај Chrome</translation>
 <translation id="1569387923882100876">Повезани уређај</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Можете да укључите синхронизацију у подешавањима у било ком тренутку</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> обележивач}one{<ph name="BOOKMARKS_COUNT_MANY" /> обележивач}few{<ph name="BOOKMARKS_COUNT_MANY" /> обележивача}other{<ph name="BOOKMARKS_COUNT_MANY" /> обележивача}}</translation>
 <translation id="3089395242580810162">Отвори на картици без архив.</translation>
-<translation id="311456632243022227">Више линкова је отворено у Chrome-у</translation>
 <translation id="3115898365077584848">Прикажи информације</translation>
 <translation id="3123473560110926937">Блокирано на неким сајтовима</translation>
 <translation id="3137521801621304719">Изађи из режима без архивирања</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">То можете да промените касније у подешавањима</translation>
 <translation id="7180611975245234373">Освежи</translation>
 <translation id="7189372733857464326">Чека се да Google Play услуге заврше ажурирање</translation>
-<translation id="7189598951263744875">Дели...</translation>
 <translation id="7191430249889272776">Картица је отворена у позадини.</translation>
 <translation id="723171743924126238">Изаберите слике</translation>
 <translation id="7233236755231902816">Да бисте прегледали веб на свом језику, преузмите најновију верзију Chrome-а</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">Дозволи сајтовима да аутоматски пуштају видео снимке са искљученим звуком (препоручено)</translation>
 <translation id="7453467225369441013">Одјавиће вас са већине сајтова. Неће вас одјавити са Google налога.</translation>
 <translation id="7454641608352164238">Нема довољно простора</translation>
-<translation id="7455923816558154057">Додирните да бисте прегледали</translation>
 <translation id="7473891865547856676">Не, хвала</translation>
 <translation id="7475192538862203634">Ако вам се ово често приказује, испробајте ове <ph name="BEGIN_LINK" />предлоге<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">SD картица није пронађена. Неке датотеке можда недостају.</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 64caedc..6222d57 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="sv">
 <translation id="1006017844123154345">Öppna onlineversionen</translation>
+<translation id="1028699632127661925">Skickar till <ph name="DEVICE_NAME" /> …</translation>
 <translation id="1036727731225946849">Lägger till <ph name="WEBAPK_NAME" /> …</translation>
 <translation id="1041308826830691739">Från webbplatser</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Sök och utforska</translation>
 <translation id="1264974993859112054">Sport</translation>
 <translation id="1272079795634619415">Stopp</translation>
+<translation id="1272444412400969138">Väljare för den enhet fliken ska delas med.</translation>
 <translation id="1283039547216852943">Tryck och utöka</translation>
 <translation id="1285320974508926690">Översätt aldrig den här webbplatsen</translation>
 <translation id="1291207594882862231">Rensa historiken, cookies, webbplatsdata, cacheminnet …</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Hej <ph name="FULL_NAME" />!</translation>
 <translation id="1383876407941801731">Sök</translation>
 <translation id="1384959399684842514">Nedladdningen har pausats</translation>
+<translation id="1386674309198842382">Aktiv för <ph name="LAST_UPDATED" /> dagar sedan</translation>
 <translation id="1389974829397082527">Det finns inga bokmärken i den här mappen</translation>
 <translation id="1397811292916898096">Sök med <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">Inbäddad i <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Skriv ut</translation>
 <translation id="1445680696957526815">Chromes komponenter är inte inbördes kompatibla. Kanske håller Chrome på att uppgraderas. Försök igen om några minuter. Om problemet kvarstår testar du att avinstallera och sedan installera om Chrome.</translation>
 <translation id="1446450296470737166">Tillåt fullst. kontroll av MIDI</translation>
-<translation id="1449080968331948513">Databesparing heter nu Begränsat läge</translation>
 <translation id="145097072038377568">Inaktiverad i Android-inställningarna</translation>
 <translation id="1477626028522505441">Det gick inte att ladda ned <ph name="FILE_NAME" /> på grund av serverfel.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 till)}other{ (+ # till)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Radera lösenord</translation>
 <translation id="1516229014686355813">Med funktionen Tryck för att söka skickas det markerade ordet till Google Sök med den aktuella sidan som kontext. Du kan stänga av funktionen i <ph name="BEGIN_LINK" />inställningarna<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Aktiv idag</translation>
-<translation id="1539064842193522527">Länken öppnades i Chrome</translation>
 <translation id="1549000191223877751">Flytta till annat fönster</translation>
 <translation id="1553358976309200471">Uppdatera Chrome</translation>
 <translation id="1569387923882100876">Ansluten enhet</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Du kan när som helst inaktivera synkroniseringen i inställningarna</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bokmärke}other{<ph name="BOOKMARKS_COUNT_MANY" /> bokmärken}}</translation>
 <translation id="3089395242580810162">Öppna i inkognitoflik</translation>
-<translation id="311456632243022227">Flera länkar öppnades i Chrome</translation>
 <translation id="3115898365077584848">Visa info</translation>
 <translation id="3123473560110926937">Blockeras på vissa webbplatser</translation>
 <translation id="3137521801621304719">Inaktivera inkognitoläge</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Tillåt cookies för en enskild webbplats.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# tim}other{# tim}}</translation>
 <translation id="4042870126885713738">Visa förslag när det inte går att öppna en webbadress eller upprätta en anslutning</translation>
+<translation id="4044912625106523635">Väljaren för den enhet fliken ska delas med är öppen och tar upp hela skärmen.</translation>
 <translation id="4046123991198612571">Nästa spår</translation>
 <translation id="4048707525896921369">Läs om olika ämnen på webbplatser utan att lämna sidan. Med funktionen Tryck för att söka skickas ett ord och dess kontext till Google Sök. Sedan visas definitioner, bilder, sökresultat och annan information.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">Innehållet som skulle laddas ned gick inte att öppna på enheten.</translation>
 <translation id="528192093759286357">Dra uppifrån och tryck på bakåtknappen för att lämna helskärmsläget.</translation>
 <translation id="5284584623296338184">Ändringar i bokmärken, historik, lösenord och andra inställningar synkroniseras inte längre med ditt Google-konto. Befintlig data fortsätter dock att lagras i Google-kontot.</translation>
+<translation id="5292796745632149097">Skicka till</translation>
 <translation id="5300589172476337783">Visa</translation>
 <translation id="5301954838959518834">Ok, jag förstår</translation>
 <translation id="5304593522240415983">Fältet får inte vara tomt</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Synkronisera</translation>
 <translation id="641643625718530986">Skriv ut …</translation>
 <translation id="6416782512398055893"><ph name="MBS" /> MB har laddats ned</translation>
+<translation id="6418750371676080905">Väljaren för den enhet fliken ska delas med har stängts.</translation>
 <translation id="6427112570124116297">Översätt webbsidor</translation>
 <translation id="6433501201775827830">Välj sökmotor</translation>
 <translation id="6437478888915024427">Sidinformation</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Använd en tjänst som ger förslag på relaterade sökfrågor och populära webbplatser när du skriver i adressfältet</translation>
 <translation id="666731172850799929">Öppna i <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">Chromes sekretessmeddelande</translation>
+<translation id="6672986458216094438">Väljaren för den enhet fliken ska delas med är öppen och tar upp halva skärmen.</translation>
 <translation id="6697492270171225480">Visa förslag på liknande sidor om en sida inte hittas</translation>
 <translation id="6697947395630195233">Du behöver ge Chrome åtkomstbehörighet till din plats om den ska kunna delas med webbplatsen.</translation>
 <translation id="6698801883190606802">Hantera synkroniserad data</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Du kan ändra detta senare i inställningarna</translation>
 <translation id="7180611975245234373">Uppdatera</translation>
 <translation id="7189372733857464326">Väntar på Google Play-tjänster ska avsluta uppdateringen</translation>
-<translation id="7189598951263744875">Dela ...</translation>
 <translation id="7191430249889272776">Fliken öppnades i bakgrunden.</translation>
 <translation id="723171743924126238">Välj bilder</translation>
 <translation id="7233236755231902816">Skaffa den senaste versionen av Chrome och få webben översatt till ditt språk</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Tillåt att webbplatser automatiskt spelar upp videor utan ljud (rekommenderas)</translation>
 <translation id="7453467225369441013">Du loggas ut från de flesta webbplatser. Du loggas inte ut från Google-kontot.</translation>
 <translation id="7454641608352164238">Utrymmet räcker inte</translation>
-<translation id="7455923816558154057">Visa genom att trycka här</translation>
 <translation id="7473891865547856676">Nej tack</translation>
 <translation id="7475192538862203634">Om du ser detta ofta provar du de här <ph name="BEGIN_LINK" />förslagen<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Det gick inte att hitta SD-kortet. Det kan saknas filer.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> är inaktuell.</translation>
 <translation id="7947953824732555851">Godkänn och logga in</translation>
 <translation id="7963646190083259054">Leverantör:</translation>
+<translation id="7971136598759319605">Aktiv för 1 dag sedan</translation>
 <translation id="7975379999046275268">Förhandsgranska sida <ph name="BEGIN_NEW" />Nyhet<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Läs in sidor i förväg så att det går snabbare att surfa och söka</translation>
 <translation id="79859296434321399">Installera ARCore om du vill visa innehåll med förstärkt verklighet</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 a8db293..cff9e77 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">Chapisha</translation>
 <translation id="1445680696957526815">Vipengele vya Chrome havioani. Huenda Chrome inajaribu kupata toleo jipya, tafadhali jaribu tena baada ya dakika chache. Ikiwa tatizo litaendelea, jaribu kuondoa na usakinishe upya Chrome.</translation>
 <translation id="1446450296470737166">Ruhusu udhibiti kamili wa vifaa vya MIDI</translation>
-<translation id="1449080968331948513">Sasa hali ya 'Kiokoa Data' inaitwa 'Hali Nyepesi'</translation>
 <translation id="145097072038377568">Imezimwa katika Mipangilio ya Android</translation>
 <translation id="1477626028522505441">Kipakuliwa cha <ph name="FILE_NAME" /> hakijafaulu kwa sababu ya matatizo ya seva.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 zaidi)}other{ (+ # zaidi)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">Futa nenosiri</translation>
 <translation id="1516229014686355813">Kipengele cha Gusa ili Utafute hutuma neno lililochaguliwa na ukurasa wa sasa kuwa muktadha kwa Tafuta na Google. Unaweza kukizima katika <ph name="BEGIN_LINK" />Miipangilio<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Ameitumia leo</translation>
-<translation id="1539064842193522527">Kiungo kilichofunguliwa kwenye Chrome</translation>
 <translation id="1549000191223877751">Nenda kwenye dirisha jingine</translation>
 <translation id="1553358976309200471">Sasisha Chrome</translation>
 <translation id="1569387923882100876">Kifaa Kilichounganishwa</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">Unaweza kuwasha kipengele cha kusawazisha wakati wowote katika mipangilio</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{Alamisho <ph name="BOOKMARKS_COUNT_ONE" />}other{Alamisho <ph name="BOOKMARKS_COUNT_MANY" />}}</translation>
 <translation id="3089395242580810162">Fungua katika kichupo fiche</translation>
-<translation id="311456632243022227">Viungo vingi vilivyofunguliwa katika Chrome</translation>
 <translation id="3115898365077584848">Onyesha Maelezo</translation>
 <translation id="3123473560110926937">Yamezuiwa kwenye baadhi ya tovuti</translation>
 <translation id="3137521801621304719">Ondoka kwenye hali fiche</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">Unaweza kubadilisha hii baadaye katika Mipangilio</translation>
 <translation id="7180611975245234373">Onyesha upya</translation>
 <translation id="7189372733857464326">Inasubiri Huduma za Google Play ili kukamilisha kusasisha</translation>
-<translation id="7189598951263744875">Shiriki...</translation>
 <translation id="7191430249889272776">Kichupo kimefunguliwa chini chini.</translation>
 <translation id="723171743924126238">Chagua picha</translation>
 <translation id="7233236755231902816">Ili uone tovuti katika lugha unayotumia, pata toleo jipya la Chrome</translation>
@@ -893,7 +889,6 @@
 <translation id="7445411102860286510">Ruhusu tovuti zicheze video kiotomatiki bila sauti (inapendekezwa)</translation>
 <translation id="7453467225369441013">Hukuondoa kwenye akaunti za tovuti nyingi. Hutaondolewa kwenye Akaunti ya Google.</translation>
 <translation id="7454641608352164238">Nafasi haitoshi</translation>
-<translation id="7455923816558154057">Gusa ili uangalie</translation>
 <translation id="7473891865547856676">La Asante</translation>
 <translation id="7475192538862203634">Ikiwa unaona hili kila mara, jaribu <ph name="BEGIN_LINK" />mapendekezo<ph name="END_LINK" /> haya.</translation>
 <translation id="7475688122056506577">SD haikupatikana. Huenda baadhi ya faili zako zinazokosekana.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb
index 0aaa204..3826a1c 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb
@@ -70,7 +70,6 @@
 <translation id="1430915738399379752">அச்சிடுக</translation>
 <translation id="1445680696957526815">Chrome இன் கூறுகள் ஒன்றுக்கொன்று இணங்கவில்லை. Chrome மேம்படுத்தலில் இருக்கக்கூடும் என்பதால், சில நிமிடங்களுக்குப் பிறகு முயற்சிக்கவும். சிக்கல் தொடர்ந்தால் Chromeஐ நிறுவல்நீக்கி, மீண்டும் நிறுவவும்.</translation>
 <translation id="1446450296470737166">MIDI சாதனங்களுக்கு முழுக் கட்டுப்பாட்டை அனுமதி</translation>
-<translation id="1449080968331948513">‘தரவு சேமிப்பான்’ இப்போது ’லைட் பயன்முறை’ எனப் பெயர்மாற்றப்பட்டுள்ளது</translation>
 <translation id="145097072038377568">Android அமைப்புகளில் முடக்கப்பட்டுள்ளது.</translation>
 <translation id="1477626028522505441">சேவையகச் சிக்கல்களால் <ph name="FILE_NAME" />ஐப் பதிவிறக்க முடியவில்லை.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ மேலும் 1)}other{ (+ மேலும் #)}}</translation>
@@ -80,7 +79,6 @@
 <translation id="1513858653616922153">கடவுச்சொல்லை நீக்கு</translation>
 <translation id="1516229014686355813">"தேடுவதற்குத் தட்டு" எனும் அம்சமானது தேர்ந்தெடுத்த சொல்லையும், அதனுடைய பின்னணிச் சூழலாக நடப்புப் பக்கத்தையும் Google தேடலுக்கு அனுப்பும். இதை <ph name="BEGIN_LINK" />அமைப்புகளில்<ph name="END_LINK" /> முடக்கலாம்.</translation>
 <translation id="1521774566618522728">இன்று பயன்படுத்தியுள்ளார்</translation>
-<translation id="1539064842193522527">Chrome இல் இணைப்பு திறந்தது</translation>
 <translation id="1549000191223877751">வேறு சாளரத்திற்கு நகர்த்து</translation>
 <translation id="1553358976309200471">Chromeஐப் புதுப்பி</translation>
 <translation id="1569387923882100876">இணைத்த சாதனம்</translation>
@@ -286,7 +284,6 @@
 <translation id="3058498974290601450">அமைப்புகளில் ஒத்திசைவை எந்த நேரத்திலும் இயக்கலாம்</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> புக்மார்க்}other{<ph name="BOOKMARKS_COUNT_MANY" /> புக்மார்க்குகள்}}</translation>
 <translation id="3089395242580810162">மறைநிலை தாவலில் திற</translation>
-<translation id="311456632243022227">Chrome இல் பல இணைப்பு திறந்தன</translation>
 <translation id="3115898365077584848">தகவலைக் காட்டு</translation>
 <translation id="3123473560110926937">சில தளங்களில் தடுக்கப்பட்டுள்ளன</translation>
 <translation id="3137521801621304719">மறைநிலையிலிருந்து வெளியேறு</translation>
@@ -848,7 +845,6 @@
 <translation id="7177466738963138057">இதைப் பிறகு அமைப்புகளில் மாற்றலாம்</translation>
 <translation id="7180611975245234373">புதுப்பி</translation>
 <translation id="7189372733857464326">Google Play சேவைகள் புதுப்பிப்பதை முடிப்பதற்காக, காத்திருக்கிறது</translation>
-<translation id="7189598951263744875">பகிர்...</translation>
 <translation id="7191430249889272776">தாவல் பின்புலத்தில் திறக்கப்பட்டது.</translation>
 <translation id="723171743924126238">படங்களைத் தேர்ந்தெடுக்கவும்</translation>
 <translation id="7233236755231902816">உங்கள் மொழியில் இணையதளங்களைப் பார்க்க Chromeமின் சமீபத்திய பதிப்பைப் பெறுங்கள்</translation>
@@ -885,7 +881,6 @@
 <translation id="7445411102860286510">ஒலியடக்கிய வீடியோக்களைத் தானாகவே இயக்க, தளங்களை அனுமதி (பரிந்துரைக்கப்படுகிறது)</translation>
 <translation id="7453467225369441013">பெரும்பாலான தளங்களிலிருந்து உங்களை வெளியேற்றும். உங்கள் Google கணக்கிலிருந்து வெளியேற்றாது.</translation>
 <translation id="7454641608352164238">போதுமான இடம் இல்லை</translation>
-<translation id="7455923816558154057">பார்க்க, தட்டவும்</translation>
 <translation id="7473891865547856676">வேண்டாம் நன்றி</translation>
 <translation id="7475192538862203634">இதை அடிக்கடி காண்கிறீர்கள் எனில், இந்தப் <ph name="BEGIN_LINK" />பரிந்துரைகளைப்<ph name="END_LINK" /> பயன்படுத்திப் பார்க்கவும்.</translation>
 <translation id="7475688122056506577">SD கார்டு உள்ளது. உங்கள் கோப்புகளில் சில இல்லாமல் இருக்கலாம்.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_te.xtb b/chrome/android/java/strings/translations/android_chrome_strings_te.xtb
index a43d0cc..a33ec77b 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_te.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_te.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="te">
 <translation id="1006017844123154345">ఆన్‌లైన్‌లో తెరువు</translation>
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" />కు పంపుతోంది...</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" />ని జోడిస్తోంది...</translation>
 <translation id="1041308826830691739">వెబ్‌సైట్‌ల నుండి</translation>
 <translation id="1049743911850919806">అజ్ఞాత</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">శోధన &amp; విశ్లేషణ</translation>
 <translation id="1264974993859112054">క్రీడలు</translation>
 <translation id="1272079795634619415">ఆపు</translation>
+<translation id="1272444412400969138">ట్యాబ్‌ను షేర్ చేయడం కోసం పరికర పికర్.</translation>
 <translation id="1283039547216852943">విస్త‌రించ‌డానికి నొక్కండి</translation>
 <translation id="1285320974508926690">ఈ సైట్‌ను ఎప్పటికీ అనువదించవద్దు</translation>
 <translation id="1291207594882862231">చరిత్ర, కుక్కీలు, సైట్ డేటా, కాష్‌ను తీసివేస్తుంది…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">హాయ్, <ph name="FULL_NAME" /></translation>
 <translation id="1383876407941801731">వెతుకు</translation>
 <translation id="1384959399684842514">డౌన్‌లోడ్ పాజ్ చేయబడింది</translation>
+<translation id="1386674309198842382"><ph name="LAST_UPDATED" /> రోజుల క్రితం యాక్టివ్‌గా ఉంది</translation>
 <translation id="1389974829397082527">ఇక్కడ బుక్‌మార్క్‌లు ఏవీ లేవు</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" />తో వెతకండి</translation>
 <translation id="1404122904123200417"><ph name="WEBSITE_URL" />లో పొందుపరచబడింది</translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">ముద్రించు</translation>
 <translation id="1445680696957526815">Chrome భాగాలు ఒకదానికొకటి అనుకూలంగా లేవు. Chrome అప్‌గ్రేడ్ చేయబడుతుండవచ్చు, దయచేసి కొన్ని నిమిషాల్లో మళ్లీ ప్రయత్నించండి. సమస్య కొనసాగితే, Chromeని అన్ఇన్‌స్టాల్ చేసి, మళ్లీ ఇన్‌స్టాల్ చేయడానికి ప్రయత్నించండి.</translation>
 <translation id="1446450296470737166">MIDI పరికరాల పూర్తి నియం. అనుమ.</translation>
-<translation id="1449080968331948513">డేటా సేవర్ ఇప్పుడు లైట్ మోడ్‌లో ఉంది</translation>
 <translation id="145097072038377568">Android సెట్టింగ్‌ల్లో ఆఫ్ చేయబడింది</translation>
 <translation id="1477626028522505441">సర్వర్ సమస్యల కారణంగా <ph name="FILE_NAME" /> డౌన్‌లోడ్ విఫలమైంది.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ మరో 1)}other{ (+ మరో #)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">పాస్‌వర్డ్‌ను తొలగించు</translation>
 <translation id="1516229014686355813">'వెతకడానికి నొక్కండి' ఫీచర్, ఎంచుకున్న పదాన్ని మరియు ప్రస్తుత పేజీని సంబంధిత సందర్భం లాగా Google శోధనకు పంపుతుంది. మీరు <ph name="BEGIN_LINK" />సెట్టింగ్‌లు<ph name="END_LINK" />లో దీనిని ఆఫ్ చేయవచ్చు.</translation>
 <translation id="1521774566618522728">ఈ రోజు యాక్టివ్‌గా ఉంది</translation>
-<translation id="1539064842193522527">లింక్ Chromeలో తెరవబడింది</translation>
 <translation id="1549000191223877751">వేరే విండోకు తరలించు</translation>
 <translation id="1553358976309200471">Chromeని నవీకరించు</translation>
 <translation id="1569387923882100876">కనెక్ట్ చేసిన డివైజ్</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">సెట్టింగ్‌లలో ఎప్పుడైనా మీరు సింక్‌ను ఆన్ చేయవచ్చు</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> బుక్‌మార్క్}other{<ph name="BOOKMARKS_COUNT_MANY" /> బుక్‌మార్క్‌లు}}</translation>
 <translation id="3089395242580810162">అజ్ఞాత ట్యాబ్‌లో తెరువు</translation>
-<translation id="311456632243022227">Chromeలో బహుళ లింక్‌లు తెరవబడ్డాయి</translation>
 <translation id="3115898365077584848">సమాచారాన్ని చూపు</translation>
 <translation id="3123473560110926937">కొన్ని సైట్‌లలో బ్లాక్ చేయబడింది</translation>
 <translation id="3137521801621304719">అజ్ఞాత మోడ్ నుండి నిష్క్రమించండి</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">నిర్దిష్ట సైట్ కోసం కుక్కీలను అనుమతించండి.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# గం}other{# గం}}</translation>
 <translation id="4042870126885713738">వెబ్ చిరునామా సంశయాత్మకంగా ఉన్నప్పుడు లేదా కనెక్షన్ సాధ్యం కానప్పుడు సూచనలను చూపుతుంది</translation>
+<translation id="4044912625106523635">ట్యాబ్‌ను షేర్ చేయాల్సిన పరికర పికర్ పూర్తి ఎత్తులో తెరవబడింది.</translation>
 <translation id="4046123991198612571">తరువాత ట్రాక్</translation>
 <translation id="4048707525896921369">పేజీ నుండి నిష్క్రమించకుండానే వెబ్‌సైట్‌లలోని అంశాల గురించి తెలుసుకోండి. 'వెతకడానికి నొక్కండి' అనే ఫీచర్, ఒక పదాన్ని మరియు దాని చుట్టూ ఉన్న సంబంధిత సందర్భాన్ని Google శోధనకు పంపుతుంది, ప్రతిస్పందనగా దాని నుండి నిర్వచనాలు, చిత్రాలు, శోధన ఫలితాలు మరియు ఇతర వివరాలు అందించబడతాయి.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">పరికరం డౌన్‌లోడ్ చేయాల్సిన కంటెంట్‌ను తెరవలేదు.</translation>
 <translation id="528192093759286357">పూర్తి స్క్రీన్ నుండి నిష్క్రమించడానికి పైనుండి లాగి, వెనుకకు బటన్‌ను తాకండి.</translation>
 <translation id="5284584623296338184">మీ బుక్‌మార్క్‌లు, చరిత్ర, పాస్‌వర్డ్‌లు, ఇతర సెట్టింగ్‌లకు చేసే మార్పులు ఇకపై మీ Google ఖాతాకు సింక్ చేయ‌బడవు. అయితే, ఇప్పటికే ఉన్న మీ డేటా మీ Google ఖాతాలో అలాగే నిల్వ చేయబడి ఉంటుంది.</translation>
+<translation id="5292796745632149097">ఈ పరికరానికి పంపండి</translation>
 <translation id="5300589172476337783">చూపించు</translation>
 <translation id="5301954838959518834">సరే, అర్థమైంది</translation>
 <translation id="5304593522240415983">ఈ ఫీల్డ్ ఖాళీగా ఉండరాదు</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Sync</translation>
 <translation id="641643625718530986">ముద్రించు…</translation>
 <translation id="6416782512398055893"><ph name="MBS" /> MB డౌన్‌లోడ్ చేయబడింది</translation>
+<translation id="6418750371676080905">ట్యాబ్‌ను షేర్ చేయాల్సిన పరికర పికర్ మూసివేయబడింది.</translation>
 <translation id="6427112570124116297">వెబ్‌ను అనువదించండి</translation>
 <translation id="6433501201775827830">మీ శోధన ఇంజిన్‌ను ఎంచుకోండి</translation>
 <translation id="6437478888915024427">పేజీ సమాచారం</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">మీరు చిరునామా పట్టీలో టైప్ చేస్తున్నప్పుడు సంబంధిత ప్రశ్నలను మరియు జనాదరణ పొందిన వెబ్‌సైట్‌లను చూపడానికి సూచన సేవను ఉపయోగించండి</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" />లో తెరువు</translation>
 <translation id="666981079809192359">Chrome గోప్యతా నోటీసు</translation>
+<translation id="6672986458216094438">ట్యాబ్‌ను షేర్ చేయాల్సిన పరికర పికర్ సగం ఎత్తులో తెరవబడింది.</translation>
 <translation id="6697492270171225480">పేజీ కనుగొనబడనప్పుడు అటువంటి పేజీల కోసం సూచనలను చూపుతుంది</translation>
 <translation id="6697947395630195233">ఈ సైట్‌తో మీ స్థానాన్ని షేర్ చేయడానికి Chromeకు మీ స్థాన యాక్సెస్ అవసరం.</translation>
 <translation id="6698801883190606802">సమకాలీకరించిన డేటాను నిర్వహించండి</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">మీరు దీన్ని తర్వాత సెట్టింగ్‌లలో మార్చవచ్చు</translation>
 <translation id="7180611975245234373">రిఫ్రెష్ చేయి</translation>
 <translation id="7189372733857464326">Google Play సేవల నవీకరణ పూర్తి కావడానికి వేచి ఉంది</translation>
-<translation id="7189598951263744875">భాగస్వామ్యం చేయి...</translation>
 <translation id="7191430249889272776">బ్యాక్‌గ్రౌండ్‌లో ట్యాబ్ తెరవబడింది.</translation>
 <translation id="723171743924126238">చిత్రాలను ఎంచుకోండి</translation>
 <translation id="7233236755231902816">మీ భాషలో వెబ్‌ను చూడడానికి, Chrome యొక్క తాజా వెర్షన్‌ను డౌన్‌లోడ్ చేసుకోండి</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">మ్యూట్ చేసిన వీడియోలను స్వయంచాలకంగా ప్లే చేయడానికి సైట్‌‌లను అనుమతిస్తుంది (సిఫార్సు చేయబడింది)</translation>
 <translation id="7453467225369441013">దాదాపు అన్ని సైట్‌ల నుండి మిమ్మల్ని సైన్ అవుట్ చేస్తుంది. మీరు మీ Google ఖాతా నుండి సైన్ అవుట్ చేయబడరు.</translation>
 <translation id="7454641608352164238">తగినంత స్థలం లేదు</translation>
-<translation id="7455923816558154057">వీక్షించడానికి నొక్కండి</translation>
 <translation id="7473891865547856676">వద్దు, ధన్యవాదాలు</translation>
 <translation id="7475192538862203634">మీకు ఇది తరచుగా కనిపిస్తుంటే, ఈ <ph name="BEGIN_LINK" />సూచనల<ph name="END_LINK" />ను ప్రయత్నించండి.</translation>
 <translation id="7475688122056506577">SD కార్డ్ కనుగొనబడలేదు. మీ ఫైల్‌లలో కొన్ని ఉండకపోవచ్చు.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> కాలం చెల్లినది.</translation>
 <translation id="7947953824732555851">ఆమోదించి, సైన్ ఇన్ చేయండి</translation>
 <translation id="7963646190083259054">విక్రేత:</translation>
+<translation id="7971136598759319605">1 రోజు క్రితం యాక్టివ్‌గా ఉంది</translation>
 <translation id="7975379999046275268"><ph name="BEGIN_NEW" />కొత్త<ph name="END_NEW" /> పేజీని ప్రివ్యూ చేయండి</translation>
 <translation id="7981313251711023384">వేగవంతమైన బ్రౌజింగ్ మరియు శోధన కోసం పేజీలను ముందస్తుగా లోడ్ చేస్తుంది</translation>
 <translation id="79859296434321399">మెరుగైన వాస్తవిక అనుభవ కంటెంట్‌ను చూడడానికి, ARCoreని ఇన్‌స్టాల్ చేయండి</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 6122f7b..db1c02a 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
@@ -74,7 +74,6 @@
 <translation id="1430915738399379752">พิมพ์</translation>
 <translation id="1445680696957526815">คอมโพเนนต์ของ Chrome ไม่สามารถทำงานร่วมกันได้ Chrome อาจกำลังอัปเกรด โปรดรอสักครู่แล้วลองอีกครั้ง หากยังมีปัญหาอยู่ ให้ลองถอนการติดตั้งและติดตั้ง Chrome ใหม่อีกครั้ง</translation>
 <translation id="1446450296470737166">ควบคุมอุปกรณ์ MIDI ได้สมบูรณ์</translation>
-<translation id="1449080968331948513">โปรแกรมประหยัดอินเทอร์เน็ตเปลี่ยนชื่อเป็นโหมด Lite แล้ว</translation>
 <translation id="145097072038377568">ปิดในการตั้งค่า Android</translation>
 <translation id="1477626028522505441">การดาวน์โหลด <ph name="FILE_NAME" /> ล้มเหลวเพราะเซิร์ฟเวอร์มีปัญหา</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (และอีก 1 รายการ)}other{ (และอีก # รายการ)}}</translation>
@@ -84,7 +83,6 @@
 <translation id="1513858653616922153">ลบรหัสผ่าน</translation>
 <translation id="1516229014686355813">แตะเพื่อค้นหาจะส่งคำที่เลือกและหน้าปัจจุบันเป็นบริบทไปยัง Google Search คุณปิดฟีเจอร์นี้ในได้ใน<ph name="BEGIN_LINK" />การตั้งค่า<ph name="END_LINK" /></translation>
 <translation id="1521774566618522728">ใช้งานวันนี้</translation>
-<translation id="1539064842193522527">เปิดลิงก์ใน Chrome แล้ว</translation>
 <translation id="1549000191223877751">ย้ายไปยังหน้าต่างอื่น</translation>
 <translation id="1553358976309200471">อัปเดต Chrome</translation>
 <translation id="1569387923882100876">อุปกรณ์ที่เชื่อมต่อ</translation>
@@ -291,7 +289,6 @@
 <translation id="3058498974290601450">คุณเปิดการซิงค์ได้ทุกเมื่อในการตั้งค่า</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{บุ๊กมาร์ก <ph name="BOOKMARKS_COUNT_ONE" /> รายการ}other{บุ๊กมาร์ก <ph name="BOOKMARKS_COUNT_MANY" /> รายการ}}</translation>
 <translation id="3089395242580810162">เปิดในแท็บไม่ระบุตัวตน</translation>
-<translation id="311456632243022227">เปิดหลายลิงก์ใน Chrome แล้ว</translation>
 <translation id="3115898365077584848">แสดงข้อมูล</translation>
 <translation id="3123473560110926937">บล็อกในบางเว็บไซต์</translation>
 <translation id="3137521801621304719">ออกจากโหมดไม่ระบุตัวตน</translation>
@@ -611,7 +608,7 @@
 <translation id="545042621069398927">กำลังเพิ่มความเร็วในการดาวน์โหลด</translation>
 <translation id="5456381639095306749">ดาวน์โหลดหน้า</translation>
 <translation id="5475862044948910901">เริ่มเซสชัน Augmented Reality ไหม</translation>
-<translation id="5481942164684849270">เพิ่ม <ph name="APP_NAME" /> ไปยังแอปของฉันแล้ว</translation>
+<translation id="5481942164684849270">เพิ่ม <ph name="APP_NAME" /> ลงในแอปของฉันแล้ว</translation>
 <translation id="548278423535722844">เปิดในแอปแผนที่</translation>
 <translation id="5487521232677179737">ล้างข้อมูล</translation>
 <translation id="5494752089476963479">บล็อกโฆษณาในเว็บไซต์ที่แสดงโฆษณาที่แทรกหรือทำให้เข้าใจผิด</translation>
@@ -857,7 +854,6 @@
 <translation id="7177466738963138057">คุณสามารถเปลี่ยนค่านี้ภายหลังใน "การตั้งค่า"</translation>
 <translation id="7180611975245234373">รีเฟรช</translation>
 <translation id="7189372733857464326">กำลังรอให้บริการ Google Play อัปเดตเสร็จสิ้น</translation>
-<translation id="7189598951263744875">แชร์...</translation>
 <translation id="7191430249889272776">แท็บเปิดในพื้นหลัง</translation>
 <translation id="723171743924126238">เลือกภาพ</translation>
 <translation id="7233236755231902816">โปรดอัปเดต Chrome เป็นเวอร์ชันล่าสุดเพื่อดูเว็บเป็นภาษาของคุณ</translation>
@@ -894,7 +890,6 @@
 <translation id="7445411102860286510">อนุญาตให้เว็บไซต์เล่นวิดีโอที่ปิดเสียงโดยอัตโนมัติ (แนะนำ)</translation>
 <translation id="7453467225369441013">นำคุณออกจากระบบของเว็บไซต์ส่วนใหญ่ แต่คุณจะไม่ออกจากระบบบัญชี Google</translation>
 <translation id="7454641608352164238">พื้นที่ว่างไม่พอ</translation>
-<translation id="7455923816558154057">แตะเพื่อดู</translation>
 <translation id="7473891865547856676">ไม่ ขอบคุณ</translation>
 <translation id="7475192538862203634">หากคุณเห็นข้อความนี้บ่อยๆ โปรดลองทำตาม<ph name="BEGIN_LINK" />คำแนะนำ<ph name="END_LINK" />เหล่านี้</translation>
 <translation id="7475688122056506577">ไม่พบการ์ด SD ไฟล์บางไฟล์อาจหายไป</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 692ae589..49667f9 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="tr">
 <translation id="1006017844123154345">İnternet'te aç</translation>
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" /> cihazına gönderiliyor...</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> ekleniyor...</translation>
 <translation id="1041308826830691739">Web sitelerinden</translation>
 <translation id="1049743911850919806">Gizli mod</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Arama yapın ve keşfedin</translation>
 <translation id="1264974993859112054">Spor</translation>
 <translation id="1272079795634619415">Durdur</translation>
+<translation id="1272444412400969138">Sekmenin paylaşılacağı cihazı seçme aracı</translation>
 <translation id="1283039547216852943">Genişletmek için dokunun</translation>
 <translation id="1285320974508926690">Bu siteyi hiçbir zaman çevirme</translation>
 <translation id="1291207594882862231">Geçmişi, çerezleri, site verilerini, önbelleği temizleyin…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Merhaba <ph name="FULL_NAME" />,</translation>
 <translation id="1383876407941801731">Ara</translation>
 <translation id="1384959399684842514">İndirme işlemi duraklatıldı</translation>
+<translation id="1386674309198842382"><ph name="LAST_UPDATED" /> gün önce etkindi</translation>
 <translation id="1389974829397082527">Burada yer işareti yok</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> ile ara</translation>
 <translation id="1404122904123200417"><ph name="WEBSITE_URL" /> sitesinde yerleşik</translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Yazdır</translation>
 <translation id="1445680696957526815">Chrome bileşenleri birbirleriyle uyumlu değil. Chrome yeni sürüme geçiyor olabilir, lütfen birkaç dakika sonra tekrar deneyin. Sorun devam ederse Chrome'u kaldırıp yeniden yüklemeyi deneyin.</translation>
 <translation id="1446450296470737166">MIDI cihazlarının tam denetimine izin verme</translation>
-<translation id="1449080968331948513">Veri Tasarrufu'nun yeni adı Basit mod'dur</translation>
 <translation id="145097072038377568">Android Ayarları'ndan kapatıldı</translation>
 <translation id="1477626028522505441">Sunucu sorunları nedeniyle <ph name="FILE_NAME" /> dosyası indirilemedi.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 daha)}other{ (+ # daha)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Şifreyi sil</translation>
 <translation id="1516229014686355813">Dokun ve Ara özelliği, seçilen kelimeyi ve geçerli sayfayı Google Arama'ya bağlam olarak gönderir. Bu özelliği <ph name="BEGIN_LINK" />Ayarlar<ph name="END_LINK" />'da kapatabilirsiniz.</translation>
 <translation id="1521774566618522728">Son etkin olduğu zaman:</translation>
-<translation id="1539064842193522527">Chrome'da bağlantı açıldı</translation>
 <translation id="1549000191223877751">Diğer pencereye git</translation>
 <translation id="1553358976309200471">Chrome'u güncelle</translation>
 <translation id="1569387923882100876">Bağlı Cihaz</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Senkronizasyonu istediğiniz zaman ayarlardan açabilirsiniz</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> yer işareti}other{<ph name="BOOKMARKS_COUNT_MANY" /> yer işareti}}</translation>
 <translation id="3089395242580810162">Gizli sekmede aç</translation>
-<translation id="311456632243022227">Chrome'da birden fazla bağlantı açıldı</translation>
 <translation id="3115898365077584848">Bilgileri Göster</translation>
 <translation id="3123473560110926937">Bazı sitelerde engellendi</translation>
 <translation id="3137521801621304719">Gizli moddan çık</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Belirli bir site için çerezlere izin verin.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# sa.}other{# sa.}}</translation>
 <translation id="4042870126885713738">Bir web adresi çözümlenemezse veya bağlantı yapılamazsa öneriler göster</translation>
+<translation id="4044912625106523635">Sekme paylaşmak için cihaz seçici, tam yükseklikte açıldı.</translation>
 <translation id="4046123991198612571">Sonraki parça</translation>
 <translation id="4048707525896921369">Sayfadan ayrılmadan web siteleriyle ilgili konuları öğrenin. Dokun ve Ara özelliği seçilen kelimeyi, çevresindeki içerikle birlikte Google Arama'ya gönderir ve karşılığında ilgili tanımlar, resimler, arama sonuçları ve diğer ayrıntıları döndürür.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">Cihaz, indirilecek içeriği açamıyor.</translation>
 <translation id="528192093759286357">Tam ekrandan çıkmak için yukarıdan sürükleyin ve geri düğmesine dokunun.</translation>
 <translation id="5284584623296338184">Yer işaretleri, geçmiş, şifreler ve diğer ayarlarınızda yaptığınız değişiklikler artık Google Hesabınız ile senkronize edilmeyecek. Ancak, mevcut verileriniz Google hesabınızda saklanmaya devam edecek.</translation>
+<translation id="5292796745632149097">Alıcılar</translation>
 <translation id="5300589172476337783">Göster</translation>
 <translation id="5301954838959518834">Tamam, anladım</translation>
 <translation id="5304593522240415983">Bu alan boş olamaz</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Senkronizasyon</translation>
 <translation id="641643625718530986">Yazdır…</translation>
 <translation id="6416782512398055893"><ph name="MBS" /> MB indirildi</translation>
+<translation id="6418750371676080905">Sekme paylaşılacak cihazı seçme aracı kapalı.</translation>
 <translation id="6427112570124116297">Web'i çevir</translation>
 <translation id="6433501201775827830">Arama motorunuzu seçin</translation>
 <translation id="6437478888915024427">Sayfa bilgileri</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Adres çubuğuna yazarken ilgili sorguları ve popüler siteleri göstermek için bir tahmin hizmeti kullan</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" /> uygulamasında aç</translation>
 <translation id="666981079809192359">Chrome Gizlilik Uyarısı</translation>
+<translation id="6672986458216094438">Sekme paylaşmak için cihaz seçici, yarım yükseklikte açıldı.</translation>
 <translation id="6697492270171225480">Bir sayfa bulunamadığında benzer sayfalar için önerileri göster</translation>
 <translation id="6697947395630195233">Konumunuzu bu siteyle paylaşabilmek için Chrome'un konum bilgilerinize erişmesi gerekiyor.</translation>
 <translation id="6698801883190606802">Senkronize edilen verileri yönet</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Bunu daha sonra Ayarlar'da değiştirebilirsiniz</translation>
 <translation id="7180611975245234373">Yenile</translation>
 <translation id="7189372733857464326">Güncellemenin tamamlanması için Google Play Hizmetleri bekleniyor</translation>
-<translation id="7189598951263744875">Paylaş...</translation>
 <translation id="7191430249889272776">Sekme arka planda açıldı.</translation>
 <translation id="723171743924126238">Resim seç</translation>
 <translation id="7233236755231902816">Web'i kendi dilinizde görmek için Chrome'un en son sürümünü edinin</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Sitelerin, sesi kapatılmış videoları otomatik olarak oynatmasına izin ver (önerilen)</translation>
 <translation id="7453467225369441013">Çoğu sitedeki oturumunuz kapatılır. Google Hesabınızdaki oturumunuz kapatılmaz.</translation>
 <translation id="7454641608352164238">Yeterli alan yok</translation>
-<translation id="7455923816558154057">Görüntülemek için dokunun</translation>
 <translation id="7473891865547856676">Hayır, Teşekkürler</translation>
 <translation id="7475192538862203634">Bunu çok sık görüyorsanız bu <ph name="BEGIN_LINK" />önerileri<ph name="END_LINK" /> deneyin.</translation>
 <translation id="7475688122056506577">SD kart bulunamadı. Bazı dosyalarınız eksik olabilir.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> güncel değil.</translation>
 <translation id="7947953824732555851">Kabul et ve oturum aç</translation>
 <translation id="7963646190083259054">Firma:</translation>
+<translation id="7971136598759319605">1 gün önce etkinleştirildi</translation>
 <translation id="7975379999046275268">Sayfanın önizlemesini aç <ph name="BEGIN_NEW" />Yeni<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Daha hızlı göz atmak ve arama yapmak için sayfaları önceden yükle</translation>
 <translation id="79859296434321399">Artırılmış gerçeklik içeriğini görüntülemek için ARCore'u yükleyin</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 d7b296f..cb59769 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="uk">
 <translation id="1006017844123154345">Відкрити в режимі онлайн</translation>
+<translation id="1028699632127661925">Надсилання на пристрій "<ph name="DEVICE_NAME" />"…</translation>
 <translation id="1036727731225946849">Додається <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">З веб-сайтів</translation>
 <translation id="1049743911850919806">Анонімний перегляд</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Пошук і огляд</translation>
 <translation id="1264974993859112054">Спорт</translation>
 <translation id="1272079795634619415">Зупинити</translation>
+<translation id="1272444412400969138">Засіб вибору пристрою, з яким потрібно поділитися вкладкою.</translation>
 <translation id="1283039547216852943">Торкніться, щоб розгорнути</translation>
 <translation id="1285320974508926690">Ніколи не перекладати цей сайт</translation>
 <translation id="1291207594882862231">Очистити історію, файли cookie, дані сайтів, кеш…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Вітаємо, <ph name="FULL_NAME" />!</translation>
 <translation id="1383876407941801731">Пошук</translation>
 <translation id="1384959399684842514">Завантаження призупинено</translation>
+<translation id="1386674309198842382">У мережі <ph name="LAST_UPDATED" /> дн. тому</translation>
 <translation id="1389974829397082527">Немає закладок</translation>
 <translation id="1397811292916898096">Шукати в <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">Вбудовано на сайті <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">Друк</translation>
 <translation id="1445680696957526815">Компоненти Chrome несумісні одне з одним. Веб-переглядач може оновлюватися, спробуйте через декілька хвилин. Якщо проблема не зникне, видаліть Chrome і встановіть його знову.</translation>
 <translation id="1446450296470737166">Повний контроль пристроїв MIDI</translation>
-<translation id="1449080968331948513">Заощадження трафіку зараз працює в спрощеному режимі</translation>
 <translation id="145097072038377568">Вимкнено в налаштуваннях Android</translation>
 <translation id="1477626028522505441">Файл <ph name="FILE_NAME" /> не завантажено через проблеми із сервером.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ ще 1)}one{ (+ і ще #)}few{ (+ і ще #)}many{ (+ і ще #)}other{ (+ і ще #)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Видалити пароль</translation>
 <translation id="1516229014686355813">Функція "Торкніться, щоб шукати" надсилає слово та поточну сторінку як додаткові дані в Пошук Google. Її можна вимкнути в <ph name="BEGIN_LINK" />налаштуваннях<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">У мережі сьогодні</translation>
-<translation id="1539064842193522527">Посилання відкрито в Chrome</translation>
 <translation id="1549000191223877751">Відкрити в іншому вікні</translation>
 <translation id="1553358976309200471">Оновити Chrome</translation>
 <translation id="1569387923882100876">Під’єднаний пристрій</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Ви можете будь-коли ввімкнути синхронізацію в налаштуваннях</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> закладка}one{<ph name="BOOKMARKS_COUNT_MANY" /> закладка}few{<ph name="BOOKMARKS_COUNT_MANY" /> закладки}many{<ph name="BOOKMARKS_COUNT_MANY" /> закладок}other{<ph name="BOOKMARKS_COUNT_MANY" /> закладки}}</translation>
 <translation id="3089395242580810162">Відкрити в анонімній вкладці</translation>
-<translation id="311456632243022227">Кілька посилань відкрито в Chrome</translation>
 <translation id="3115898365077584848">Показати інформацію</translation>
 <translation id="3123473560110926937">Заблоковано на деяких сайтах</translation>
 <translation id="3137521801621304719">Вийти з режиму анонімного перегляду</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Дозволити файли cookie для конкретного сайту.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# год}one{# год}few{# год}many{# год}other{# год}}</translation>
 <translation id="4042870126885713738">Показувати пропозиції, коли неможливо перейти за веб-адресою чи не вдається встановити з’єднання</translation>
+<translation id="4044912625106523635">Засіб вибору пристрою, з яким потрібно поділитися вкладкою, відкрито на повну висоту.</translation>
 <translation id="4046123991198612571">Наступна композиція</translation>
 <translation id="4048707525896921369">Дізнавайтеся більше про певну тему, не залишаючи сторінку, яку переглядаєте. Просто торкніться певного слова, щоб надіслати його в Пошук Google разом із контекстом, і отримаєте визначення, зображення, результати пошуку й іншу інформацію.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">Вміст, який ви хочете завантажити, не можна відкрити на цьому пристрої.</translation>
 <translation id="528192093759286357">Щоб вийти з повноекранного режиму, проведіть пальцем по екрану згори вниз і торкніться кнопки "Назад".</translation>
 <translation id="5284584623296338184">Зміни в закладках, історії, паролях та інших налаштуваннях більше не синхронізуватимуться з вашим обліковим записом Google. Однак наявні дані залишаться у вашому обліковому записі Google.</translation>
+<translation id="5292796745632149097">Кому надіслати:</translation>
 <translation id="5300589172476337783">Показати</translation>
 <translation id="5301954838959518834">OK</translation>
 <translation id="5304593522240415983">Це поле не може бути порожнім</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Синхронізація</translation>
 <translation id="641643625718530986">Друк…</translation>
 <translation id="6416782512398055893">Завантажено <ph name="MBS" /> МБ</translation>
+<translation id="6418750371676080905">Засіб вибору пристрою, з яким потрібно поділитися вкладкою, закрито.</translation>
 <translation id="6427112570124116297">Перекласти веб-сторінки</translation>
 <translation id="6433501201775827830">Виберіть пошукову систему</translation>
 <translation id="6437478888915024427">Інформація про сторінку</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Показувати підказки зі схожими запитами та популярними веб-сайтами під час введення запиту в адресному рядку</translation>
 <translation id="666731172850799929">Відкрити в програмі <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">Примітка про конфіденційність Chrome</translation>
+<translation id="6672986458216094438">Засіб вибору пристрою, з яким потрібно поділитися вкладкою, відкрито на половину висоти.</translation>
 <translation id="6697492270171225480">Показувати пропозиції схожих сторінок, коли не вдається знайти сторінку</translation>
 <translation id="6697947395630195233">Chrome потрібен доступ до місцезнаходження, щоб повідомляти ваші геодані цьому сайту.</translation>
 <translation id="6698801883190606802">Керування синхронізованими даними</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Це можна змінити пізніше в налаштуваннях</translation>
 <translation id="7180611975245234373">Оновити</translation>
 <translation id="7189372733857464326">Сервіси Google Play оновлюються</translation>
-<translation id="7189598951263744875">Поділитися...</translation>
 <translation id="7191430249889272776">Вкладку відкрито у фоновому режимі.</translation>
 <translation id="723171743924126238">Вибрати зображення</translation>
 <translation id="7233236755231902816">Щоб переглядати сторінки вашою мовою, установіть останню версію Chrome</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Дозволити сайтам автоматично відтворювати відео з вимкненим звуком (рекомендується)</translation>
 <translation id="7453467225369441013">Ви вийдете з більшості сайтів, але не вийдете з облікового запису Google.</translation>
 <translation id="7454641608352164238">Замало місця</translation>
-<translation id="7455923816558154057">Торкніться, щоб переглянути</translation>
 <translation id="7473891865547856676">Ні, дякую</translation>
 <translation id="7475192538862203634">Якщо ви часто бачите таку сторінку, скористайтеся цими <ph name="BEGIN_LINK" />пропозиціями<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Карту SD не знайдено. Деякі файли можуть бути відсутні.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342">Застаріла версія <ph name="PRODUCT_NAME" />.</translation>
 <translation id="7947953824732555851">Прийняти й увійти</translation>
 <translation id="7963646190083259054">Постачальник:</translation>
+<translation id="7971136598759319605">У мережі 1 день тому</translation>
 <translation id="7975379999046275268">Переглянути сторінку <ph name="BEGIN_NEW" />Нове<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Попередньо завантажувати сторінки, щоб швидше переглядати та шукати</translation>
 <translation id="79859296434321399">Щоб переглядати вміст у режимі доповненої реальності, установіть ARCore</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 a156fa9b..30a5f3b 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="vi">
 <translation id="1006017844123154345">Mở trực tuyến</translation>
+<translation id="1028699632127661925">Đang gửi đến <ph name="DEVICE_NAME" />...</translation>
 <translation id="1036727731225946849">Đang thêm <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Từ trang web</translation>
 <translation id="1049743911850919806">Ẩn danh</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">Tìm kiếm và khám phá</translation>
 <translation id="1264974993859112054">Thể thao</translation>
 <translation id="1272079795634619415">Dừng</translation>
+<translation id="1272444412400969138">Trình chọn thiết bị để chia sẻ một tab.</translation>
 <translation id="1283039547216852943">Nhấn để mở rộng</translation>
 <translation id="1285320974508926690">Không bao giờ dịch trang web này</translation>
 <translation id="1291207594882862231">Xóa lịch sử, cookie, dữ liệu trang web, bộ nhớ đệm…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022">Xin chào <ph name="FULL_NAME" />!</translation>
 <translation id="1383876407941801731">Tìm kiếm</translation>
 <translation id="1384959399684842514">Đã tạm dừng quá trình tải xuống</translation>
+<translation id="1386674309198842382">Hoạt động <ph name="LAST_UPDATED" /> ngày trước</translation>
 <translation id="1389974829397082527">Không có dấu trang ở đây</translation>
 <translation id="1397811292916898096">Tìm kiếm bằng <ph name="PRODUCT_NAME" /></translation>
 <translation id="1404122904123200417">Được nhúng trong <ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">In</translation>
 <translation id="1445680696957526815">Các cấu phần của Chrome không tương thích với nhau. Chrome có thể đang nâng cấp, vui lòng thử lại sau ít phút. Nếu sự cố vẫn tiếp diễn, hãy thử gỡ cài đặt và cài đặt lại Chrome.</translation>
 <translation id="1446450296470737166">Cho phép kiểm soát hoàn toàn thiết bị MIDI</translation>
-<translation id="1449080968331948513">Trình tiết kiệm dữ liệu hiện có tên mới là Chế độ thu gọn</translation>
 <translation id="145097072038377568">Tắt trong Cài đặt Android</translation>
 <translation id="1477626028522505441">Tải xuống <ph name="FILE_NAME" /> không thành công do sự cố máy chủ.</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{ (+ 1 mục khác)}other{ (+ # mục khác)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">Xóa mật khẩu</translation>
 <translation id="1516229014686355813">Tính năng Nhấn để tìm kiếm sẽ gửi từ đã chọn và trang hiện tại dưới dạng ngữ cảnh cho Google Tìm kiếm. Bạn có thể tắt tính năng này trong mục <ph name="BEGIN_LINK" />Cài đặt<ph name="END_LINK" />.</translation>
 <translation id="1521774566618522728">Hoạt động hôm nay</translation>
-<translation id="1539064842193522527">Đã mở liên kết trong Chrome</translation>
 <translation id="1549000191223877751">Di chuyển đến cửa sổ khác</translation>
 <translation id="1553358976309200471">Cập nhật Chrome</translation>
 <translation id="1569387923882100876">Thiết bị đã kết nối</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">Bạn có thể bật tính năng đồng bộ hóa bất cứ lúc nào trong phần cài đặt</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> dấu trang}other{<ph name="BOOKMARKS_COUNT_MANY" /> dấu trang}}</translation>
 <translation id="3089395242580810162">Mở trong tab ẩn danh</translation>
-<translation id="311456632243022227">Đã mở nhiều liên kết trong Chrome</translation>
 <translation id="3115898365077584848">Hiển thị thông tin</translation>
 <translation id="3123473560110926937">Đã chặn trên một số trang web</translation>
 <translation id="3137521801621304719">Thoát chế độ ẩn danh</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">Cho phép cookie của một trang web cụ thể.</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# giờ}other{# giờ}}</translation>
 <translation id="4042870126885713738">Hiển thị các đề xuất khi địa chỉ web không khắc phục được hoặc kết nối không thể được thực hiện</translation>
+<translation id="4044912625106523635">Trình chọn thiết bị để chia sẻ một tab đang mở trên toàn màn hình.</translation>
 <translation id="4046123991198612571">Bản nhạc tiếp theo</translation>
 <translation id="4048707525896921369">Tìm hiểu về các chủ đề trên trang web mà không cần rời khỏi trang. Tính năng Nhấn để tìm kiếm sẽ gửi một từ và ngữ cảnh xung quanh từ đó tới Google Tìm kiếm, trả về định nghĩa, hình ảnh, kết quả tìm kiếm và các chi tiết khác.
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">Thiết bị không thể mở nội dung được tải xuống.</translation>
 <translation id="528192093759286357">Kéo từ trên xuống và chạm vào nút quay lại để thoát khỏi chế độ toàn màn hình.</translation>
 <translation id="5284584623296338184">Các thay đổi đối với dấu trang, lịch sử, mật khẩu và các tùy chọn cài đặt khác sẽ không đồng bộ hóa với Tài khoản Google của bạn nữa. Tuy nhiên, dữ liệu hiện có của bạn sẽ vẫn được lưu trữ trong tài khoản Google của bạn.</translation>
+<translation id="5292796745632149097">Gửi đến</translation>
 <translation id="5300589172476337783">Hiển thị</translation>
 <translation id="5301954838959518834">Ok</translation>
 <translation id="5304593522240415983">Không được để trống trường này</translation>
@@ -606,7 +608,7 @@
 <translation id="545042621069398927">Đang tăng tốc độ tải xuống.</translation>
 <translation id="5456381639095306749">Tải trang xuống</translation>
 <translation id="5475862044948910901">Bắt đầu phiên đăng nhập thực tế tăng cường?</translation>
-<translation id="5481942164684849270">Đã thêm <ph name="APP_NAME" /> vào phần ứng dụng của tôi</translation>
+<translation id="5481942164684849270">Đã thêm <ph name="APP_NAME" /> vào danh sách ứng dụng của tôi</translation>
 <translation id="548278423535722844">Mở trong ứng dụng bản đồ</translation>
 <translation id="5487521232677179737">Xóa dữ liệu</translation>
 <translation id="5494752089476963479">Chặn quảng cáo trên các trang web hiển thị quảng cáo xâm nhập hoặc quảng cáo gây hiểu nhầm</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">Đồng bộ hóa</translation>
 <translation id="641643625718530986">In…</translation>
 <translation id="6416782512398055893">Đã tải xuống <ph name="MBS" /> MB</translation>
+<translation id="6418750371676080905">Trình chọn thiết bị để chia sẻ một tab đang đóng.</translation>
 <translation id="6427112570124116297">Dịch web</translation>
 <translation id="6433501201775827830">Chọn công cụ tìm kiếm của bạn</translation>
 <translation id="6437478888915024427">Thông tin trang</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">Sử dụng dịch vụ gợi ý để hiển thị các truy vấn có liên quan và các trang web phổ biến khi bạn nhập vào thanh địa chỉ</translation>
 <translation id="666731172850799929">Mở trong <ph name="APP_NAME" /></translation>
 <translation id="666981079809192359">Thông báo quyền riêng tư của Chrome</translation>
+<translation id="6672986458216094438">Trình chọn thiết bị để chia sẻ một tab đang mở ở nửa dưới của màn hình.</translation>
 <translation id="6697492270171225480">Hiển thị phần đề xuất các trang tương tự khi không tìm thấy một trang</translation>
 <translation id="6697947395630195233">Chrome cần truy cập vị trí của bạn để chia sẻ thông tin vị trí với trang web này.</translation>
 <translation id="6698801883190606802">Quản lý dữ liệu đã đồng bộ hóa</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">Bạn có thể thay đổi cài đặt này sau trong Cài đặt</translation>
 <translation id="7180611975245234373">Làm mới</translation>
 <translation id="7189372733857464326">Đợi Dịch vụ của Google Play cập nhật xong</translation>
-<translation id="7189598951263744875">Chia sẻ...</translation>
 <translation id="7191430249889272776">Tab được mở dưới nền.</translation>
 <translation id="723171743924126238">Chọn hình ảnh</translation>
 <translation id="7233236755231902816">Để duyệt web bằng ngôn ngữ của bạn, hãy tải phiên bản Chrome mới nhất</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">Cho phép trang web tự động phát video tắt tiếng (được đề xuất)</translation>
 <translation id="7453467225369441013">Đăng xuất bạn khỏi hầu hết các trang web. Bạn sẽ không bị đăng xuất khỏi Tài khoản Google của mình.</translation>
 <translation id="7454641608352164238">Không đủ dung lượng</translation>
-<translation id="7455923816558154057">Nhấn để xem</translation>
 <translation id="7473891865547856676">Không, cảm ơn</translation>
 <translation id="7475192538862203634">Nếu bạn thường xuyên thấy thông báo này, hãy thử các <ph name="BEGIN_LINK" />đề xuất<ph name="END_LINK" /> sau.</translation>
 <translation id="7475688122056506577">Không tìm thấy thẻ SD. Một số tệp của bạn có thể bị thiếu.</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> đã lỗi thời.</translation>
 <translation id="7947953824732555851">Chấp nhận &amp; đăng nhập</translation>
 <translation id="7963646190083259054">Nhà cung cấp:</translation>
+<translation id="7971136598759319605">Hoạt động 1 ngày trước</translation>
 <translation id="7975379999046275268">Xem trước trang <ph name="BEGIN_NEW" />Mới<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">Tải trước các trang để tìm kiếm và duyệt web nhanh hơn</translation>
 <translation id="79859296434321399">Để xem nội dung thực tế tăng cường, hãy cài đặt bộ công cụ ARCore</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
index 92d2e3c..791fe80 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-CN">
 <translation id="1006017844123154345">在线打开</translation>
+<translation id="1028699632127661925">正在发送到<ph name="DEVICE_NAME" />…</translation>
 <translation id="1036727731225946849">正在添加<ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">来自网站</translation>
 <translation id="1049743911850919806">无痕</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">搜索内容与浏览相关建议</translation>
 <translation id="1264974993859112054">体育</translation>
 <translation id="1272079795634619415">停止</translation>
+<translation id="1272444412400969138">要与之分享标签页的设备选择器。</translation>
 <translation id="1283039547216852943">点按即可展开</translation>
 <translation id="1285320974508926690">一律不翻译此网站</translation>
 <translation id="1291207594882862231">清除历史记录、Cookie、网站数据、缓存内容…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022"><ph name="FULL_NAME" />,您好!</translation>
 <translation id="1383876407941801731">搜索</translation>
 <translation id="1384959399684842514">已暂停下载</translation>
+<translation id="1386674309198842382"><ph name="LAST_UPDATED" /> 天前曾有活动</translation>
 <translation id="1389974829397082527">该文件夹中没有书签</translation>
 <translation id="1397811292916898096">使用 <ph name="PRODUCT_NAME" /> 进行搜索</translation>
 <translation id="1404122904123200417">嵌入位置:<ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">打印</translation>
 <translation id="1445680696957526815">Chrome 的组件互不兼容。Chrome 可能正在升级,请过几分钟后重试。如果问题仍然存在,请尝试卸载并重新安装 Chrome。</translation>
 <translation id="1446450296470737166">允许全面控制 MIDI 设备</translation>
-<translation id="1449080968331948513">流量节省程序现处于精简模式</translation>
 <translation id="145097072038377568">已在 Android 设置中停用</translation>
 <translation id="1477626028522505441">未能成功下载 <ph name="FILE_NAME" />,因为服务器出现了问题。</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{(以及另外 1 项)}other{(以及另外 # 项)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">删除密码</translation>
 <translation id="1516229014686355813">“点按搜索”功能会将所选字词和当前页面(作为上下文)一起发送给 Google 搜索。您可在<ph name="BEGIN_LINK" />设置<ph name="END_LINK" />中关闭该功能。</translation>
 <translation id="1521774566618522728">今天曾有活动</translation>
-<translation id="1539064842193522527">已在 Chrome 中打开此链接</translation>
 <translation id="1549000191223877751">移至其他窗口</translation>
 <translation id="1553358976309200471">更新 Chrome</translation>
 <translation id="1569387923882100876">连接的设备</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">您随时可在“设置”中开启同步功能</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> 个书签}other{<ph name="BOOKMARKS_COUNT_MANY" /> 个书签}}</translation>
 <translation id="3089395242580810162">在隐身标签页中打开</translation>
-<translation id="311456632243022227">已在 Chrome 中打开多个链接</translation>
 <translation id="3115898365077584848">显示信息</translation>
 <translation id="3123473560110926937">已禁止部分网站显示广告</translation>
 <translation id="3137521801621304719">退出隐身模式</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">允许特定网站使用 Cookie。</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# 小时}other{# 小时}}</translation>
 <translation id="4042870126885713738">无法解析网址或无法建立连接时显示建议</translation>
+<translation id="4044912625106523635">要与之分享标签页的设备选择器已全屏打开。</translation>
 <translation id="4046123991198612571">下一曲</translation>
 <translation id="4048707525896921369">无需离开所在页面,便可了解网站上的主题。“点按搜索”功能会将所选字词及上下文一起发送给 Google 搜索,后者即会据此返回相应的定义、图片、搜索结果及其他详情。
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">设备无法打开要下载的内容。</translation>
 <translation id="528192093759286357">从顶部向下拖动并触摸“返回”按钮,即可退出全屏模式。</translation>
 <translation id="5284584623296338184">对您的书签、历史记录、密码和其他设置所做的更改将不再同步到您的 Google 帐号。但是,您的现有数据将继续存储在您的 Google 帐号中。</translation>
+<translation id="5292796745632149097">发送到</translation>
 <translation id="5300589172476337783">显示</translation>
 <translation id="5301954838959518834">知道了</translation>
 <translation id="5304593522240415983">此字段不能为空</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">同步</translation>
 <translation id="641643625718530986">打印…</translation>
 <translation id="6416782512398055893">已下载 <ph name="MBS" /> MB</translation>
+<translation id="6418750371676080905">要与之分享标签页的设备选择器已关闭。</translation>
 <translation id="6427112570124116297">翻译网页</translation>
 <translation id="6433501201775827830">选择您的搜索引擎</translation>
 <translation id="6437478888915024427">网页信息</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">当您在地址栏中输入查询内容时,使用联想查询服务显示相关查询和热门网站</translation>
 <translation id="666731172850799929">在 <ph name="APP_NAME" />中打开</translation>
 <translation id="666981079809192359">Chrome 隐私权声明</translation>
+<translation id="6672986458216094438">要与之分享标签页的设备选择器已半屏打开。</translation>
 <translation id="6697492270171225480">找不到相应网页时,显示有关类似网页的建议</translation>
 <translation id="6697947395630195233">Chrome 需要获得位置权限,才能将您的位置信息共享给此网站。</translation>
 <translation id="6698801883190606802">管理已同步的数据</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">以后,您可以在“设置”中更改此设置。</translation>
 <translation id="7180611975245234373">刷新</translation>
 <translation id="7189372733857464326">正在等待 Google Play 服务完成更新</translation>
-<translation id="7189598951263744875">分享...</translation>
 <translation id="7191430249889272776">标签页已在后台打开。</translation>
 <translation id="723171743924126238">选择图片</translation>
 <translation id="7233236755231902816">若要使用您的语言查看网页,请获取最新版本的 Chrome</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">允许网站自动播放静音的视频(推荐)</translation>
 <translation id="7453467225369441013">您会从大多数网站退出,但不会退出自己的 Google 帐号。</translation>
 <translation id="7454641608352164238">空间不足</translation>
-<translation id="7455923816558154057">点按即可查看</translation>
 <translation id="7473891865547856676">不,谢谢</translation>
 <translation id="7475192538862203634">如果您频繁遇到此问题,请尝试按这些<ph name="BEGIN_LINK" />建议<ph name="END_LINK" />操作。</translation>
 <translation id="7475688122056506577">找不到 SD 卡。您的某些文件可能会丢失。</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> 不是最新版本。</translation>
 <translation id="7947953824732555851">接受并登录</translation>
 <translation id="7963646190083259054">供应商:</translation>
+<translation id="7971136598759319605">1 天前曾有活动</translation>
 <translation id="7975379999046275268">预览网页<ph name="BEGIN_NEW" />新<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">预加载网页,以便实现更快速的浏览和搜索</translation>
 <translation id="79859296434321399">要查看增强现实内容,请安装 ARCore</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 2d0e44d..e7499d3 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
@@ -2,6 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-TW">
 <translation id="1006017844123154345">在網路上開啟</translation>
+<translation id="1028699632127661925">正在傳送到「<ph name="DEVICE_NAME" />」...</translation>
 <translation id="1036727731225946849">正在新增「<ph name="WEBAPK_NAME" />」...</translation>
 <translation id="1041308826830691739">來自網站</translation>
 <translation id="1049743911850919806">無痕模式</translation>
@@ -43,6 +44,7 @@
 <translation id="1260236875608242557">搜尋及探索</translation>
 <translation id="1264974993859112054">運動資訊</translation>
 <translation id="1272079795634619415">停止</translation>
+<translation id="1272444412400969138">要共用分頁的裝置挑選器。</translation>
 <translation id="1283039547216852943">輕觸即可展開</translation>
 <translation id="1285320974508926690">一律不翻譯此網站</translation>
 <translation id="1291207594882862231">清除歷史記錄、Cookie、網站資料、快取…</translation>
@@ -59,6 +61,7 @@
 <translation id="138361230106469022"><ph name="FULL_NAME" />,您好:</translation>
 <translation id="1383876407941801731">搜尋</translation>
 <translation id="1384959399684842514">已暫停下載</translation>
+<translation id="1386674309198842382">上次使用時間:<ph name="LAST_UPDATED" /> 天前</translation>
 <translation id="1389974829397082527">這裡沒有任何書籤</translation>
 <translation id="1397811292916898096">使用 <ph name="PRODUCT_NAME" /> 搜尋</translation>
 <translation id="1404122904123200417">內嵌位置:<ph name="WEBSITE_URL" /></translation>
@@ -71,7 +74,6 @@
 <translation id="1430915738399379752">列印</translation>
 <translation id="1445680696957526815">出現元件互不相容的情況,這可能是因為 Chrome 目前正在進行升級,請稍候片刻再試。如果問題持續發生,請先將 Chrome 移除,然後重新安裝一次。</translation>
 <translation id="1446450296470737166">允許完整控制 MIDI 裝置</translation>
-<translation id="1449080968331948513">數據節省模式現在稱為精簡模式</translation>
 <translation id="145097072038377568">已在 Android 設定中關閉</translation>
 <translation id="1477626028522505441">伺服器發生問題,因此無法下載 <ph name="FILE_NAME" />。</translation>
 <translation id="1497775360237967938">{DETAIL_COUNT,plural, =1{(還有 1 個)}other{(還有 # 個)}}</translation>
@@ -81,7 +83,6 @@
 <translation id="1513858653616922153">刪除密碼</translation>
 <translation id="1516229014686355813">「輕觸搜尋」會將選取的字詞和目前所在的網頁 (以便比對內容) 傳送給 Google 搜尋。你可以在<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />中關閉這項功能。</translation>
 <translation id="1521774566618522728">上次使用時間:今天</translation>
-<translation id="1539064842193522527">連結已在 Chrome 中開啟</translation>
 <translation id="1549000191223877751">移至其他視窗</translation>
 <translation id="1553358976309200471">更新 Chrome</translation>
 <translation id="1569387923882100876">連結的裝置</translation>
@@ -288,7 +289,6 @@
 <translation id="3058498974290601450">你隨時可以在設定中開啟同步功能</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> 個書籤}other{<ph name="BOOKMARKS_COUNT_MANY" /> 個書籤}}</translation>
 <translation id="3089395242580810162">在無痕式分頁中開啟</translation>
-<translation id="311456632243022227">多個連結已在 Chrome 中開啟</translation>
 <translation id="3115898365077584848">顯示資訊</translation>
 <translation id="3123473560110926937">在某些網站上設定封鎖</translation>
 <translation id="3137521801621304719">離開無痕模式</translation>
@@ -402,6 +402,7 @@
 <translation id="4008040567710660924">允許特定網站的 Cookie。</translation>
 <translation id="4034817413553209278">{HOURS,plural, =1{# 小時}other{# 小時}}</translation>
 <translation id="4042870126885713738">在無法解析網址或建立連線時顯示建議</translation>
+<translation id="4044912625106523635">要共用分頁的裝置挑選器已開啟,顯示於整個畫面。</translation>
 <translation id="4046123991198612571">下一首曲目</translation>
 <translation id="4048707525896921369">不需離開網頁即可瞭解網站上的主題。「輕觸搜尋」可將特定字詞及其上下文內容傳送給 Google 搜尋,並傳回定義、圖片、搜尋結果和其他詳細資料。
 
@@ -579,6 +580,7 @@
 <translation id="5271967389191913893">裝置無法開啟您要下載的這項內容。</translation>
 <translation id="528192093759286357">從頂端拖曳並輕觸返回按鈕即可結束全螢幕模式。</translation>
 <translation id="5284584623296338184">你更改過的書籤、歷史記錄、密碼和其他設定不會繼續與 Google 帳戶中的資料保持同步,但是 Google 帳戶現有的資料仍會保留。</translation>
+<translation id="5292796745632149097">傳送到</translation>
 <translation id="5300589172476337783">顯示</translation>
 <translation id="5301954838959518834">好,我知道了</translation>
 <translation id="5304593522240415983">這個欄位不能留空</translation>
@@ -740,6 +742,7 @@
 <translation id="6406506848690869874">同步</translation>
 <translation id="641643625718530986">列印…</translation>
 <translation id="6416782512398055893">已下載 <ph name="MBS" /> MB</translation>
+<translation id="6418750371676080905">要共用分頁的裝置挑選器已關閉。</translation>
 <translation id="6427112570124116297">翻譯網頁</translation>
 <translation id="6433501201775827830">選擇搜尋引擎</translation>
 <translation id="6437478888915024427">頁面資訊</translation>
@@ -779,6 +782,7 @@
 <translation id="666268767214822976">啟用預測查詢字串服務,讓您在網址列中輸入查詢內容時,能夠即時看到相關查詢和熱門網站</translation>
 <translation id="666731172850799929">在「<ph name="APP_NAME" />」中開啟</translation>
 <translation id="666981079809192359">Chrome 隱私權聲明</translation>
+<translation id="6672986458216094438">要共用分頁的裝置挑選器已開啟,顯示在畫面下半部。</translation>
 <translation id="6697492270171225480">找不到網頁時顯示類似的網頁建議</translation>
 <translation id="6697947395630195233">Chrome 需要位置資訊存取權,才能與這個網站分享你的位置資訊。</translation>
 <translation id="6698801883190606802">管理同步資料</translation>
@@ -850,7 +854,6 @@
 <translation id="7177466738963138057">日後可前往設定頁面進行變更</translation>
 <translation id="7180611975245234373">重新整理</translation>
 <translation id="7189372733857464326">正在等待 Google Play 服務完成更新</translation>
-<translation id="7189598951263744875">分享...</translation>
 <translation id="7191430249889272776">已在背景開啟分頁。</translation>
 <translation id="723171743924126238">選取圖片</translation>
 <translation id="7233236755231902816">如要以你偏好的語言查看網頁,請取得最新版本的 Chrome</translation>
@@ -887,7 +890,6 @@
 <translation id="7445411102860286510">允許網站自動播放靜音的影片 (建議)</translation>
 <translation id="7453467225369441013">大多數網站都會將你登出,但系統並不會將你登出 Google 帳戶。</translation>
 <translation id="7454641608352164238">空間不足</translation>
-<translation id="7455923816558154057">輕觸即可查看</translation>
 <translation id="7473891865547856676">不用了,謝謝</translation>
 <translation id="7475192538862203634">如果您經常看到這個頁面,請嘗試這些<ph name="BEGIN_LINK" />建議<ph name="END_LINK" />。</translation>
 <translation id="7475688122056506577">找不到 SD 卡。部分檔案可能會遺失。</translation>
@@ -956,6 +958,7 @@
 <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> 版本過舊。</translation>
 <translation id="7947953824732555851">接受並登入</translation>
 <translation id="7963646190083259054">供應商:</translation>
+<translation id="7971136598759319605">上次使用時間:1 天前</translation>
 <translation id="7975379999046275268">預覽網頁 <ph name="BEGIN_NEW" />新功能<ph name="END_NEW" /></translation>
 <translation id="7981313251711023384">預先載入網頁,以加快瀏覽及搜尋速度</translation>
 <translation id="79859296434321399">如要查看擴增實境內容,請安裝 ARCore</translation>
diff --git a/chrome/app/BUILD.gn b/chrome/app/BUILD.gn
index 7a0e9d9..a4c0430e 100644
--- a/chrome/app/BUILD.gn
+++ b/chrome/app/BUILD.gn
@@ -395,10 +395,6 @@
     ]
   }
 
-  if (enable_mus) {
-    deps += [ "//services/ws/public/mojom:constants" ]
-  }
-
   if (enable_gwp_asan_malloc || enable_gwp_asan_partitionalloc) {
     deps += [ "//components/gwp_asan/client" ]
   }
@@ -537,6 +533,10 @@
     "//third_party/blink/public/common",
   ]
 
+  if (is_chromeos) {
+    deps += [ "//chromeos/services/network_config/public/mojom" ]
+  }
+
   if (is_mac) {
     deps += [ "//components/spellcheck/common:interfaces" ]
   }
diff --git a/chrome/app/DEPS b/chrome/app/DEPS
index 88d40f6..a4aa4e6 100644
--- a/chrome/app/DEPS
+++ b/chrome/app/DEPS
@@ -75,6 +75,7 @@
     "+components/arc/common",
   ],
   "chrome_content_renderer_overlay_manifest\.cc": [
+    "+chromeos/services/network_config/public",
     "+components/autofill/content/common",
     "+components/dom_distiller/content/common",
     "+components/spellcheck/common",
diff --git a/chrome/app/chrome_content_browser_overlay_manifest.cc b/chrome/app/chrome_content_browser_overlay_manifest.cc
index ebd79bf9..346c4ab 100644
--- a/chrome/app/chrome_content_browser_overlay_manifest.cc
+++ b/chrome/app/chrome_content_browser_overlay_manifest.cc
@@ -61,7 +61,8 @@
 #include "chromeos/services/media_perception/public/mojom/media_perception.mojom.h"
 #include "chromeos/services/multidevice_setup/public/cpp/manifest.h"
 #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
-#include "chromeos/services/network_config/public/mojom/constants.mojom.h"
+#include "chromeos/services/network_config/public/mojom/constants.mojom.h"  // nogncheck
+#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h"  // nogncheck
 #include "media/capture/video/chromeos/mojo/cros_image_capture.mojom.h"
 #if BUILDFLAG(ENABLE_CROS_ASSISTANT)
 #include "chromeos/services/assistant/public/cpp/manifest.h"  // nogncheck
@@ -124,7 +125,6 @@
         .RequireCapability("ash", "test")
         .RequireCapability("ash", "display")
         .RequireCapability("assistant", "assistant")
-        .RequireCapability("cellular_setup", "cellular_setup")
         // Only used in the classic Ash case
         .RequireCapability("chrome", "input_device_controller")
         .RequireCapability("chrome_printing", "converter")
@@ -145,7 +145,6 @@
         .RequireCapability("ime", "input_engine")
         .RequireCapability("media_gallery_util", "parse_media")
         .RequireCapability("mirroring", "mirroring")
-        .RequireCapability("multidevice_setup", "multidevice_setup")
         .RequireCapability("nacl_broker", "browser")
         .RequireCapability("nacl_loader", "browser")
         .RequireCapability("noop", "noop")
@@ -177,9 +176,16 @@
             chromeos::printing::mojom::kCupsProxyServiceName,
             chromeos::printing::mojom::kStartCupsProxyServiceCapability)
         .ExposeInterfaceFilterCapability_Deprecated(
+            "navigation:frame",
+            chromeos::network_config::mojom::kNetworkConfigCapability,
+            service_manager::Manifest::InterfaceList<
+                chromeos::network_config::mojom::CrosNetworkConfig>())
+        .RequireCapability("cellular_setup", "cellular_setup")
+        .ExposeInterfaceFilterCapability_Deprecated(
             "navigation:frame", "cellular_setup",
             service_manager::Manifest::InterfaceList<
                 chromeos::cellular_setup::mojom::CellularSetup>())
+        .RequireCapability("multidevice_setup", "multidevice_setup")
         .ExposeInterfaceFilterCapability_Deprecated(
             "navigation:frame", "multidevice_setup",
             service_manager::Manifest::InterfaceList<
diff --git a/chrome/app/chrome_content_renderer_overlay_manifest.cc b/chrome/app/chrome_content_renderer_overlay_manifest.cc
index 691e112..4dada224 100644
--- a/chrome/app/chrome_content_renderer_overlay_manifest.cc
+++ b/chrome/app/chrome_content_renderer_overlay_manifest.cc
@@ -26,6 +26,10 @@
 #include "third_party/blink/public/mojom/document_metadata/copyless_paste.mojom.h"
 #endif
 
+#if defined(OS_CHROMEOS)
+#include "chromeos/services/network_config/public/mojom/constants.mojom.h"  // nogncheck
+#endif
+
 #if defined(OS_MACOSX)
 #include "components/spellcheck/common/spellcheck_panel.mojom.h"
 #endif
@@ -71,10 +75,15 @@
                 spellcheck::mojom::SpellCheckPanel,
 #endif
                 subresource_filter::mojom::SubresourceFilterAgent>())
+#if defined(OS_CHROMEOS)
         .RequireInterfaceFilterCapability_Deprecated(
             "content_browser", "navigation:frame", "cellular_setup")
         .RequireInterfaceFilterCapability_Deprecated(
             "content_browser", "navigation:frame", "multidevice_setup")
+        .RequireInterfaceFilterCapability_Deprecated(
+            "content_browser", "navigation:frame",
+            chromeos::network_config::mojom::kNetworkConfigCapability)
+#endif
         .Build()
   };
   return *manifest;
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index a0f92eb..2c2f0c22 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">ነባሪ ነጭ አምሳያ</translation>
 <translation id="1581962803218266616">በፈላጊ ውስጥ አሳይ</translation>
 <translation id="1584990664401018068">እየተጠቀሙ ያሉት Wi-Fi አውታረ መረብ (<ph name="NETWORK_ID" />) ማረጋገጫን ሊጠይቅ ይችላል።</translation>
-<translation id="1585238069289523942">በእርስዎ Chromebook ላይ መተግበሪያዎችን ይጫኑ</translation>
 <translation id="1585717515139318619">በኮምፒውተርዎ ላይ ያለ ሌላ ፕሮግራም Chrome የሚሰራበት መንገድ ሊቀይር የሚችል አንድ ገጽታ አክሏል።
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">የLinux ፋይሎችን ማዋቀር ላይ ስህተት። እባክዎ እንደገና ይሞክሩ።</translation>
 <translation id="2315587498123194634">አገናኝ ወደ <ph name="DEVICE_NAME" /> ይላኩ</translation>
 <translation id="2316129865977710310">አይ፣ አመሰግናለሁ</translation>
-<translation id="2316739859433277603">ከመተግበሪያው አስጀመሪ የሚመጡ ፍለጋዎች የእርስዎን አሳሽ <ph name="BEGIN_LINK" />የፍለጋ ሞተር ቅንብር<ph name="END_LINK" /> ይጠቀማሉ።</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% ተከናውኗል</translation>
 <translation id="2318143611928805047">የወረቀት መጠን</translation>
 <translation id="2318817390901984578">የAndroid መተግበሪያዎችን ለመጠቀም የእርስዎን <ph name="DEVICE_TYPE" /> ኃይል ይሙሉ እና ያዘምኑ።</translation>
@@ -5319,6 +5317,7 @@
 <translation id="9094033019050270033">የይለፍ ቃል ያዘምኑ</translation>
 <translation id="9094982973264386462">አስወግድ</translation>
 <translation id="9095253524804455615">አስወግድ</translation>
+<translation id="9095388113577226029">ተጨማሪ ቋንቋዎች...</translation>
 <translation id="9100610230175265781">የይለፍ ሐረግ ያስፈልጋል</translation>
 <translation id="9100765901046053179">የላቁ ቅንብሮች</translation>
 <translation id="9101691533782776290">መተግበሪያ አስጀምር</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index dc33f36..4087b698 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ar">
+<translation id="1002469766576243227">تتم استضافة خدمة المصادقة هذه من قِبل <ph name="EXTENSION_NAME" />.</translation>
 <translation id="1003088604756913841">فتح الرابط في نافذة جديدة في <ph name="APP" /></translation>
 <translation id="1004218526896219317">الوصول إلى موقع ويب</translation>
 <translation id="1005274289863221750">استخدام الميكروفون والكاميرا</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">تم محو الكل</translation>
 <translation id="143027896309062157">قراءة جميع بياناتك وتغييرها على جهاز الكمبيوتر، ومواقع الويب التي تزورها</translation>
 <translation id="1430915738399379752">طباعة</translation>
+<translation id="1431188203598586230">التحديث الأخير للبرنامج</translation>
 <translation id="1432581352905426595">إدارة محركات البحث</translation>
 <translation id="1433811987160647649">السؤال قبل الوصول</translation>
 <translation id="1434696352799406980">سيعيد هذا تعيين صفحة بدء التشغيل، وصفحة علامة تبويب جديدة، ومحرك البحث، وعلامات التبويب المثبتة. وستعطِّل أيضًا جميع الإضافات وتمحو البيانات المؤقتة مثل ملفات تعريف الارتباط. ولن يتم محو الإشارات المرجعية، والسجل، وكلمات المرور المحفوظة.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">الصورة الرمزية التلقائية البيضاء</translation>
 <translation id="1581962803218266616">إظهار في الباحث</translation>
 <translation id="1584990664401018068">‏قد تتطلب شبكة اللاسلكي، Wi-Fi التي تستخدمها <ph name="NETWORK_ID" /> مصادقة.</translation>
-<translation id="1585238069289523942">‏تثبيت التطبيقات على جهاز Chromebook</translation>
 <translation id="1585717515139318619">‏أضاف برنامج آخر بجهاز الكمبيوتر مظهرًا قد يؤدي إلى تغيير طريقة عمل Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">الحسابات والمزامنة</translation>
 <translation id="1782196717298160133">العثور على هاتفك</translation>
 <translation id="1784849162047402014">مساحة القرص الموجودة على الجهاز منخفضة.</translation>
+<translation id="1790194216133135334">إرسال الرابط إلى <ph name="DEVICE_NAME" /></translation>
 <translation id="1792619191750875668">شاشة تم توسيعها</translation>
 <translation id="1794791083288629568">يمكنك إرسال تعليقات لمساعدتنا في إصلاح هذه المشكلة.</translation>
 <translation id="1795214765651529549">استخدام المظهر الكلاسيكي</translation>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">البدء</translation>
 <translation id="1875387611427697908">لا يمكن إضافة ذلك إلا من <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1877520246462554164">تعذّر الحصول على الرمز المميز للمصادقة. يُرجى الخروج ثم تسجيل الدخول مرّة أخرى لإعادة المحاولة.</translation>
+<translation id="1877860345998737529">تبديل مهمة الإجراء</translation>
 <translation id="1879000426787380528">تسجيل الدخول باسم</translation>
 <translation id="1880905663253319515">هل تريد حذف الشهادة "<ph name="CERTIFICATE_NAME" />"؟</translation>
 <translation id="1886996562706621347">السماح لمواقع الويب بأن تطلب أن تصبح معالجات تلقائية للبروتوكولات (مستحسن)</translation>
@@ -869,6 +872,7 @@
 <translation id="230927227160767054">تريد هذه الصفحة تثبيت معالج الخدمة.</translation>
 <translation id="2309620859903500144">تم حظر هذا الموقع من الوصول إلى أجهزة استشعار الإضاءة أو الحركة.</translation>
 <translation id="2315414688463285945">‏حدث خطأ أثناء تهيئة ملفات نظام التشغيل Linux. يُرجى إعادة المحاولة.</translation>
+<translation id="2315587498123194634">إرسال الرابط إلى <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">لا، شكرًا</translation>
 <translation id="2317842250900878657">تم إكمال <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">حجم الورق</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">يمكن لهذا الموقع الاطلاع على النصوص والصور التي تم نسخها إلى الحافظة.</translation>
 <translation id="2367199180085172140">إضافة "مشاركة ملف"</translation>
 <translation id="2367972762794486313">إظهار التطبيقات</translation>
+<translation id="2369105924912929484">تبديل أنواع محتوى الصفحات المستخلصة</translation>
 <translation id="2371076942591664043">فتح الملفّ عند &amp;انتهاء التحميل</translation>
 <translation id="2375406435414127095">الاتصال بهاتفك</translation>
 <translation id="2377667304966270281">الأخطاء الجسيمة</translation>
@@ -1158,6 +1163,7 @@
 <translation id="2739191690716947896">تصحيح الأخطاء</translation>
 <translation id="2739240477418971307">تغيير إعدادات إمكانية الوصول</translation>
 <translation id="2740393541869613458">مراجعة مواقع الويب التي انتقل إليها المستخدم الذي يخضع للإشراف، و</translation>
+<translation id="2741912629735277980">عرض واجهة المستخدم على شاشة تسجيل الدخول</translation>
 <translation id="274290345632688601">‏استعادة تطبيقات وملفات Linux</translation>
 <translation id="2743387203779672305">نسخ إلى الحافظة</translation>
 <translation id="2745080116229976798">‏إخضاع مؤهل لـ Microsoft</translation>
@@ -1274,6 +1280,7 @@
 <translation id="2910318910161511225">الاتصال بالشبكة وإعادة المحاولة</translation>
 <translation id="2913331724188855103">السماح لمواقع الويب بحفظ بيانات ملفات تعريف الارتباط وقراءتها (موصى به)</translation>
 <translation id="2915102088417824677">عرض سِجلّ الأنشطة</translation>
+<translation id="2915873080513663243">المسح التلقائي</translation>
 <translation id="2916073183900451334">يؤدي الضغط على علامة تبويب في صفحة الويب إلى إبراز الروابط وكذلك حقول النماذج</translation>
 <translation id="2916745397441987255">بحث في الإضافات</translation>
 <translation id="2921081876747860777">يُرجى إنشاء كلمة مرور لحماية بياناتك المحلية.</translation>
@@ -1482,6 +1489,7 @@
 <translation id="327147043223061465">اطلع على جميع ملفات تعريف الارتباط وبيانات الموقع</translation>
 <translation id="3271648667212143903">يريد <ph name="ORIGIN" /> الاتصال</translation>
 <translation id="3274763671541996799">تم الانتقال إلى وضع ملء الشاشة.</translation>
+<translation id="3275778809241512831">مفتاح الأمان الداخلي غير آمن حاليًا. يُرجى إزالته من أي خدمة استخدمته معها. ولحل المشكلة، يُرجى إعادة ضبط مفتاح الأمان.</translation>
 <translation id="3275778913554317645">فتح كنافذة</translation>
 <translation id="3278001907972365362">‏حسابك (حساباتك) على Google تتطلب الانتباه</translation>
 <translation id="3279230909244266691">قد تستغرق هذه العملية بضع دقائق. جارٍ بدء الآلة الافتراضية.</translation>
@@ -1573,6 +1581,7 @@
 <translation id="3412265149091626468">انتقال سريع إلى التحديد</translation>
 <translation id="3413122095806433232">‏جهات إصدار المرجع المصدق (CA): <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">الحجم:</translation>
+<translation id="3420501302812554910">يتطلب مفتاح الأمان الداخلي إعادة ضبط</translation>
 <translation id="3421387094817716717">المفتاح العام لمنحنى ناقص المقطع</translation>
 <translation id="3423463006624419153">على '<ph name="PHONE_NAME_1" />' و'<ph name="PHONE_NAME_2" />':</translation>
 <translation id="3423858849633684918">يُرجى إعادة تشغيل <ph name="PRODUCT_NAME" /></translation>
@@ -1601,6 +1610,7 @@
 <translation id="3450157232394774192">نسبة الإشغال لحالة الخمول</translation>
 <translation id="3453612417627951340">يتطلب تخويل</translation>
 <translation id="3454157711543303649">اكتمل التفعيل</translation>
+<translation id="3454213325559396544">هذا هو آخر تحديث تلقائي للبرنامج والأمان للجهاز <ph name="DEVICE_TYPE" />. وللحصول على التحديثات المستقبلية، يمكنك الترقية إلى طراز أحدث.</translation>
 <translation id="345693547134384690">فتح &amp;الصورة في علامة تبويب جديدة</translation>
 <translation id="3457500881955698515">تتطلب شركتك أو مؤسستك تحديث هذا الجهاز في الحال.</translation>
 <translation id="3459509316159669723">الطباعة</translation>
@@ -1758,6 +1768,7 @@
 <translation id="3672681487849735243">تم اكتشاف خطأ من المصنع</translation>
 <translation id="367645871420407123">اتركه فارغًا إذا كنت ترغب في تعيين كلمة مرور الجذر إلى قيمة صورة الاختبار التلقائية</translation>
 <translation id="3677657024345889897">المستوى الأدنى</translation>
+<translation id="3677911431265050325">طلب موقع ويب متوافق مع الأجهزة الجوَالة</translation>
 <translation id="3678156199662914018">الإضافة: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">شكرًا على تعليقاتك. أنت غير متصل الآن، وسيتم إرسال تقريرك لاحقًا.</translation>
 <translation id="3682824389861648626">الحد الأدنى للحركات</translation>
@@ -2207,6 +2218,7 @@
 <translation id="4350019051035968019">لا يمكن تسجيل هذا الجهاز في النطاق الذي ينتمي له حسابك نظرًا لأنه تم تصنيف الجهاز للعمل تحت إدارة نطاق آخر.</translation>
 <translation id="4354344420232759511">ستظهر المواقع التي تزورها هنا.</translation>
 <translation id="435527878592612277">اختيار صورتك</translation>
+<translation id="4358313196493694334">تثبيت النقر على الموقع الجغرافي</translation>
 <translation id="4359408040881008151">تم التثبيت بسبب الإضافة (الإضافات) التابعة.</translation>
 <translation id="4359717112757026264">مناظر المدن</translation>
 <translation id="4361142739114356624">المفتاح الخاص لشهادة العميل هذه مفقود أو غير صالح</translation>
@@ -2331,6 +2343,7 @@
 <translation id="4558426062282641716">تمّ طلب إذن للتشغيل التلقائي</translation>
 <translation id="4558491878126948419">‏يمكنك الحصول على نصائح وتحديثات حول <ph name="DEVICE_TYPE" /> بخصوص منتجات Google ومشاركة التعليقات. ويمكنك إلغاء الاشتراك في أي وقت.</translation>
 <translation id="4559617833001311418">تم السماح لهذا الموقع بالوصول إلى أجهزة استشعار الإضاءة أو الحركة.</translation>
+<translation id="4561098487691395071">‏أو تحديد ملف PPD للطابعة</translation>
 <translation id="4562155214028662640">إضافة بصمة إصبع</translation>
 <translation id="4563880231729913339">إصبع 3</translation>
 <translation id="4565377596337484307">إخفاء كلمة المرور</translation>
@@ -2575,6 +2588,7 @@
 <translation id="494286511941020793">مساعدة تهيئة الخادم الوكيل</translation>
 <translation id="4943368462779413526">كرة القدم</translation>
 <translation id="4943691134276646401">يجب ربط "<ph name="CHROME_EXTENSION_NAME" />" بمنفذ تسلسلي</translation>
+<translation id="4944310289250773232">تتم استضافة خدمة المصادقة هذه من قِبل <ph name="SAML_DOMAIN" />.</translation>
 <translation id="495170559598752135">إجراءات</translation>
 <translation id="4953689047182316270">الاستجابة لأحداث إمكانية الوصول</translation>
 <translation id="4953808748584563296">الصورة الرمزية التلقائية البرتقالية</translation>
@@ -2667,6 +2681,7 @@
 <translation id="5094721898978802975">الاتصال بتطبيقات التعاون الأصلية</translation>
 <translation id="5097002363526479830">تعذّر الاتصال بشبكة "<ph name="NAME" />": <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">فتح  جميع الإشارات المرجعية</translation>
+<translation id="5101839224773798795">النقر تلقائيًا عند توقف المؤشر</translation>
 <translation id="5108967062857032718">‏الإعدادات - إزالة تطبيقات Android</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">الخروج من وضع التصفّح المتخفّي</translation>
@@ -3150,6 +3165,7 @@
 <translation id="5852112051279473187">عفوًا، حدث خطأ جسيم أثناء تسجيل هذه الخدمة. يُرجى إعادة المحاولة أو الاتصال بممثل الدعم.</translation>
 <translation id="5852137567692933493">‏إعادة التشغيل وإجراء Powerwash</translation>
 <translation id="5854912040170951372">الشريحة</translation>
+<translation id="5855643921295613558">0,6 ثانية</translation>
 <translation id="5855773610748894548">عفوًا، حدث خطأ في الوحدة الآمنة.</translation>
 <translation id="5856721540245522153">تفعيل ميزات تصحيح الأخطاء</translation>
 <translation id="5857090052475505287">مجلد جديد</translation>
@@ -3440,6 +3456,7 @@
 <translation id="6279183038361895380">اضغط على |<ph name="ACCELERATOR" />| لعرض المؤشر</translation>
 <translation id="6280215091796946657">تسجيل الدخول باستخدام حساب مختلف</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 ثوانٍ</translation>
 <translation id="6285120108426285413">لا يتم تنزيل <ph name="FILE_NAME" /> بشكل شائع وربما يكون ضارًا.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{طابعة جديدة على شبكتك}zero{طابعات جديدة على شبكتك}two{طابعتان جديدتان على شبكتك}few{طابعات جديدة على شبكتك}many{طابعات جديدة على شبكتك}other{طابعات جديدة على شبكتك}}</translation>
 <translation id="6286708577777130801">تفاصيل كلمة المرور المحفوظة</translation>
@@ -3646,6 +3663,7 @@
 <translation id="6612358246767739896">المحتوى المحمي</translation>
 <translation id="6613452264606394692">يمكنك الرجوع إلى هنا بسرعة بوضع إشارة على هذه الصفحة</translation>
 <translation id="6615455863669487791">عرضه</translation>
+<translation id="6617100836880592260">سرعة المسح: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">الاحتفاظ به على أيّ حال</translation>
 <translation id="6619058681307408113">‏بروتوكول تلقّي الملفات للطباعة (LPD)</translation>
 <translation id="661907246513853610">يمكن لموقع الويب تتبّع موقعك الجغرافي.</translation>
@@ -4460,6 +4478,7 @@
 <translation id="7831491651892296503">حدث خطأ أثناء تهيئة الشبكة</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">وقت الانتهاء</translation>
+<translation id="783214144752121388">‏حظر مواقع الويب من تشغيل Flash (مُستحسَن)</translation>
 <translation id="7833720883933317473">ستظهر هنا الكلمات المُخصصة المحفوظة</translation>
 <translation id="7835178595033117206">تمت إزالة إشارة مرجعية</translation>
 <translation id="7837776265184002579">تم تغيير صفحتك الرئيسية إلى <ph name="URL" />.</translation>
@@ -4515,6 +4534,7 @@
 <translation id="7911118814695487383">‏نظام التشغيل Linux</translation>
 <translation id="7912080627461681647">تم تغيير كلمة المرور على الخادم. يُرجى الخروج ثم تسجيل الدخول مجددًا.</translation>
 <translation id="7915471803647590281">يُرجى إخبارنا بما يحدث قبل إرسال التعليقات.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> ثوانٍ</translation>
 <translation id="792514962475806987">مستوى التكبير الذي تم إرساؤه:</translation>
 <translation id="7925247922861151263">‏تعذّر فحص AAA</translation>
 <translation id="7925285046818567682">في انتظار <ph name="HOST_NAME" />‏ ...</translation>
@@ -4572,6 +4592,7 @@
 <translation id="7987814697832569482">‏الاتِّصال دائمًا من خلال الشبكة الظاهرية الخاصة (VPN) هذه</translation>
 <translation id="798835209536175951">‏إرسال رسائل نصيّة واستلامها من جهاز Chromebook. <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">تفعيل ميزات إمكانية الدخول</translation>
+<translation id="7991296728590311172">إعدادات الوصول عبر مفتاح التحويل</translation>
 <translation id="7994702968232966508">‏طريقة EAP</translation>
 <translation id="7997826902155442747">أولوية المعالجة</translation>
 <translation id="7999229196265990314">تم إنشاء الملفات التالية:
@@ -4785,6 +4806,8 @@
 <translation id="8308179586020895837">الرجوع إليك عند رغبة <ph name="HOST" /> في الدخول إلى الكاميرا</translation>
 <translation id="830868413617744215">تجريبي</translation>
 <translation id="8309458809024885768">الشهادة موجودة من قَبل</translation>
+<translation id="8314381333424235892">إضافة مفقودة أو غير مُثبتة</translation>
+<translation id="8316618172731049784">إرسال إلى <ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">إضافة اتصال شبكة</translation>
 <translation id="8319414634934645341">استخدام المفتاح الموسع</translation>
 <translation id="8320459152843401447">شاشتك بأكملها</translation>
@@ -4941,6 +4964,7 @@
 <translation id="8588866096426746242">عرض إحصاءات الملف الشخصي</translation>
 <translation id="8588868914509452556">‏<ph name="WINDOW_TITLE" /> - تقديم VR إلى سماعة الرأس</translation>
 <translation id="8590375307970699841">إعداد التحديثات التلقائية</translation>
+<translation id="8591783563402255548">ثانية واحدة</translation>
 <translation id="8592141010104017453">عدم عرض الإشعارات على الإطلاق</translation>
 <translation id="8593121833493516339">‏يمكنك إرسال بيانات الاستخدام والتشخيص. يمكنك المساعدة في تحسين تجربة نظام التشغيل Android على حسابك الفرعي من خلال إرسال بيانات التطبيق والجهاز والتشخيص تلقائيًا إلى Google. لن يتم استخدام ذلك لتعريف حسابك الفرعي وسيساعد في استقرار عمل النظام والتطبيقات، بالإضافة إلى التحسينات الأخرى. كما ستساعد بعض البيانات المجمّعة تطبيقات Google وشركائها، مثل مطوّري برامج نظام التشغيل Android. في حال تفعيل إعداد "النشاط الإضافي على الويب وفي التطبيقات" لحسابك الفرعي، قد يتم حفظ هذه البيانات في حسابك على Google. <ph name="BEGIN_LINK1" />مزيد من المعلومات<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">تصوير فيديو</translation>
@@ -4970,6 +4994,7 @@
 <translation id="8637688295594795546">يتوفر تحديث النظام الآن. جارٍ التحضير للتنزيل...</translation>
 <translation id="8639047128869322042">جارٍ التحقق من البرامج الضارة...</translation>
 <translation id="8642171459927087831">رمز الدخول المميز</translation>
+<translation id="8642900771896232685">ثانيتان</translation>
 <translation id="8642947597466641025">لتكبير النص</translation>
 <translation id="8643418457919840804">للاستمرار، يُرجى تحديد خيار:</translation>
 <translation id="8644655801811752511">تعذّرت إعادة ضبط مفتاح الأمان هذا. يمكنك محاولة إعادة ضبط هذا المفتاح فورًا بعد إدخاله.</translation>
@@ -5171,6 +5196,7 @@
 <translation id="8910222113987937043">‏لن تتم بعد الآن مزامنة التغييرات التي تطرأ على الإشارات المرجعية والسجلّ وكلمات المرور والإعدادات الأخرى مع حسابك على Google، ولكن ستظل بياناتك الحالية مخزّنة في حسابك على Google ويمكن إدارتها في <ph name="BEGIN_LINK" />لوحة تحكّم Google<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">‏حساب Google‏</translation>
 <translation id="8912793549644936705">تمدد</translation>
+<translation id="8912810933860534797">تفعيل المسح التلقائي</translation>
 <translation id="891365694296252935">‏يمكنك إرسال بيانات الاستخدام والتشخيص. يرسل هذا الجهاز حاليًا بيانات استخدام التطبيق والجهاز والتشخيص تلقائيًا إلى Google. لن يتم استخدام ذلك لتعريف حسابك الفرعي وسيساعد في استقرار عمل النظام والتطبيقات، بالإضافة إلى التحسينات الأخرى. كما ستساعد بعض البيانات المجمّعة تطبيقات Google وشركائها، مثل مطوّري برامج نظام التشغيل Android. ويفرض المالك هذ الإعداد. في حال تفعيل إعداد "النشاط الإضافي على الويب وفي التطبيقات" لحسابك الفرعي، قد يتم حفظ هذه البيانات في حسابك على Google. <ph name="BEGIN_LINK1" />مزيد من المعلومات<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">جارٍ تحميل الاقتراح</translation>
 <translation id="8916476537757519021">الإطار الفرعي للتصفح المتخفي: <ph name="SUBFRAME_SITE" /></translation>
@@ -5286,6 +5312,7 @@
 <translation id="9094033019050270033">تحديث كلمة المرور</translation>
 <translation id="9094982973264386462">إزالة</translation>
 <translation id="9095253524804455615">إزالة</translation>
+<translation id="9095388113577226029">مزيد من اللغات...</translation>
 <translation id="9100610230175265781">عبارة المرور مطلوبة</translation>
 <translation id="9100765901046053179">الإعدادات المتقدمة</translation>
 <translation id="9101691533782776290">إطلاق التطبيق</translation>
@@ -5323,6 +5350,7 @@
 <translation id="9153934054460603056">حفظ الهوية وكلمة المرور</translation>
 <translation id="9154194610265714752">تم التحديث</translation>
 <translation id="91568222606626347">جارٍ إنشاء اختصار...</translation>
+<translation id="9157096865782046368">0,8 ثانية</translation>
 <translation id="9157697743260533322">فشل في إعداد التحديثات التلقائية لجميع المستخدمين (خطأ إطلاق الاختبار المبدئي: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">عفوًا!  حدثت مشكلة في الاتصال بالشبكة أثناء المصادقة. يرجى التحقق من الاتصال بالشبكة وإعادة المحاولة.</translation>
 <translation id="916607977885256133">نافذة ضمن النافذة</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index a2f6b2f..71c2943 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -383,7 +383,6 @@
 <translation id="1576594961618857597">Стандартен бял аватар</translation>
 <translation id="1581962803218266616">Показване във Finder</translation>
 <translation id="1584990664401018068">Използваната от вас Wi-Fi мрежа (<ph name="NETWORK_ID" />) може да изисква удостоверяване.</translation>
-<translation id="1585238069289523942">Инсталиране на приложения на вашия Chromebook</translation>
 <translation id="1585717515139318619">Друга програма на компютъра ви добави тема, която може да промени начина на работа на Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -872,7 +871,6 @@
 <translation id="2315414688463285945">При конфигурирането на файловете за Linux възникна грешка. Моля, опитайте отново.</translation>
 <translation id="2315587498123194634">Изпращане на връзката до <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Не, благодаря</translation>
-<translation id="2316739859433277603">За търсенията от стартовия панел с приложения се използва <ph name="BEGIN_LINK" />настройката за търсеща машина<ph name="END_LINK" /> на браузъра.</translation>
 <translation id="2317842250900878657">Завършено: <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Размер на хартията</translation>
 <translation id="2318817390901984578">За да използвате приложения за Android, заредете и актуализирайте своя <ph name="DEVICE_TYPE" />.</translation>
@@ -5318,6 +5316,7 @@
 <translation id="9094033019050270033">Актуализиране на паролата</translation>
 <translation id="9094982973264386462">Премахване</translation>
 <translation id="9095253524804455615">Премахване</translation>
+<translation id="9095388113577226029">Още езици...</translation>
 <translation id="9100610230175265781">Изисква се пропуск</translation>
 <translation id="9100765901046053179">Разширени настройки</translation>
 <translation id="9101691533782776290">Стартиране на приложението</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index f6d12cc..5673c2c 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">ডিফল্ট সাদা রঙের অবতার</translation>
 <translation id="1581962803218266616">ফাইন্ডারে দেখান</translation>
 <translation id="1584990664401018068">আপনি যে ওয়াই-ফাই নেটওয়ার্ক ব্যবহার করছেন (<ph name="NETWORK_ID" />) সেটি যাচাই করার প্রয়োজন হতে পারে৷</translation>
-<translation id="1585238069289523942">আপনার Chromebook-এ অ্যাপ ইনস্টল করুন</translation>
 <translation id="1585717515139318619">আপনার কম্পিউটারের অন্য একটি প্রোগ্রাম একটি থীম যোগ করেছে যা Chrome এর কাজ করার ধরন পাল্টে দিতে পারে।
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -874,7 +873,6 @@
 <translation id="2315414688463285945">Linux ফাইল কনফিগার করতে সমস্যা হচ্ছে। আবার চেষ্টা করুন।</translation>
 <translation id="2315587498123194634"><ph name="DEVICE_NAME" />-এ লিঙ্ক পাঠান</translation>
 <translation id="2316129865977710310">না, ধন্যবাদ</translation>
-<translation id="2316739859433277603">অ্যাপ লঞ্চার থেকে সার্চ করার জন্য ব্রাউজারের <ph name="BEGIN_LINK" />সার্চ ইঞ্জিন সেটিংস<ph name="END_LINK" /> ব্যবহার করা হয়।</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% হয়েছে</translation>
 <translation id="2318143611928805047">কাগজের আকার</translation>
 <translation id="2318817390901984578">Android অ্যাপ ব্যবহার করতে, আপনার <ph name="DEVICE_TYPE" /> চার্জ ও আপডেট করতে।</translation>
@@ -5315,6 +5313,7 @@
 <translation id="9094033019050270033">পাসওয়ার্ড আপডেট করুন</translation>
 <translation id="9094982973264386462">সরান</translation>
 <translation id="9095253524804455615">সরান</translation>
+<translation id="9095388113577226029">আরও ভাষা...</translation>
 <translation id="9100610230175265781">পাসফ্রেজের প্রয়োজন</translation>
 <translation id="9100765901046053179">উন্নত সেটিংস</translation>
 <translation id="9101691533782776290">অ্যাপ্লিকেশন লঞ্চ করুন</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index c430304..bbbcd3b 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Avatar blanc predeterminat</translation>
 <translation id="1581962803218266616">Mostra a Finder</translation>
 <translation id="1584990664401018068">És possible que la xarxa Wi-Fi que esteu fent servir (<ph name="NETWORK_ID" />) sol·liciti que us autentiqueu.</translation>
-<translation id="1585238069289523942">Instal·la aplicacions a Chromebook</translation>
 <translation id="1585717515139318619">Un altre programa de l'ordinador ha afegit un tema que pot canviar el funcionament de Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">S'ha produït un error en configurar els fitxers de Linux. Torna-ho a provar.</translation>
 <translation id="2315587498123194634">Envia l'enllaç a <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">No, gràcies</translation>
-<translation id="2316739859433277603">Per fer cerques des del menú d'aplicacions es fa servir la <ph name="BEGIN_LINK" />configuració del motor de cerca<ph name="END_LINK" /> del navegador.</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>
@@ -5312,6 +5310,7 @@
 <translation id="9094033019050270033">Actualitza la contrasenya</translation>
 <translation id="9094982973264386462">Suprimeix</translation>
 <translation id="9095253524804455615">Suprimeix</translation>
+<translation id="9095388113577226029">Més idiomes...</translation>
 <translation id="9100610230175265781">S'ha d'introduir una frase de contrasenya </translation>
 <translation id="9100765901046053179">Configuració avançada</translation>
 <translation id="9101691533782776290">Inicia l'aplicació</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 5bea4016..bb8ef21 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Výchozí bílý avatar</translation>
 <translation id="1581962803218266616">Zobrazit ve službě Finder</translation>
 <translation id="1584990664401018068">Síť Wi-Fi, kterou používáte (<ph name="NETWORK_ID" />), může vyžadovat ověření.</translation>
-<translation id="1585238069289523942">Instalovat do Chromebooku aplikace</translation>
 <translation id="1585717515139318619">Jiný program ve vašem počítači nainstaloval motiv, který může měnit funkce Chromu.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Při konfiguraci souborů systému Linux došlo k chybě. Zkuste to znovu.</translation>
 <translation id="2315587498123194634">Odeslat odkaz na zařízení <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Ne, děkuji</translation>
-<translation id="2316739859433277603">Pro vyhledávání ze spouštěče aplikací se používá <ph name="BEGIN_LINK" />nastavení vyhledávačů<ph name="END_LINK" /> z prohlížeče.</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>
@@ -5311,6 +5309,7 @@
 <translation id="9094033019050270033">Aktualizovat heslo</translation>
 <translation id="9094982973264386462">Odstranit</translation>
 <translation id="9095253524804455615">Odstranit</translation>
+<translation id="9095388113577226029">Další jazyky...</translation>
 <translation id="9100610230175265781">Je vyžadována heslová fráze</translation>
 <translation id="9100765901046053179">Rozšířená nastavení</translation>
 <translation id="9101691533782776290">Spustit aplikaci</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 791fb8cf..78c44c92 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="da">
+<translation id="1002469766576243227">Denne godkendelsestjeneste hostes af <ph name="EXTENSION_NAME" /></translation>
 <translation id="1003088604756913841">Åbn linket i et nyt <ph name="APP" />-vindue</translation>
 <translation id="1004218526896219317">Websiteadgang</translation>
 <translation id="1005274289863221750">Bruge din mikrofon og dit kamera</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Alle blev ryddet</translation>
 <translation id="143027896309062157">Læse og redigere alle dine data på din computer og de websites, du besøger</translation>
 <translation id="1430915738399379752">Udskriv</translation>
+<translation id="1431188203598586230">Sidste softwareopdatering</translation>
 <translation id="1432581352905426595">Administrer søgemaskiner</translation>
 <translation id="1433811987160647649">Spørg, før der gives adgang</translation>
 <translation id="1434696352799406980">Denne funktion nulstiller din opstartsside, siden Ny fane, din søgemaskine og dine fastgjorte faner. Den deaktiverer også alle udvidelser og rydder midlertidige data, såsom cookies. Dine bogmærker, din historik og dine gemte adgangskoder slettes ikke.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">Hvid standardavatar</translation>
 <translation id="1581962803218266616">Vis i Finder</translation>
 <translation id="1584990664401018068">Det Wi-Fi-netværk, du bruger (<ph name="NETWORK_ID" />), kan kræve godkendelse.</translation>
-<translation id="1585238069289523942">Installer apps på din Chromebook</translation>
 <translation id="1585717515139318619">Et andet program på din computer har tilføjet et tema, som kan ændre måden, Chrome fungerer på.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -525,6 +526,7 @@
 <translation id="1781771911845953849">Konti og synkronisering</translation>
 <translation id="1782196717298160133">Sådan finder du din telefon</translation>
 <translation id="1784849162047402014">Der er næsten ikke mere plads på enheden</translation>
+<translation id="1790194216133135334">Send link til <ph name="DEVICE_NAME" /></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>
@@ -587,6 +589,7 @@
 <translation id="1875312262568496299">Start</translation>
 <translation id="1875387611427697908">Denne kan kun tilføjes via <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1877520246462554164">Der kunne ikke hentes noget godkendelsestoken. Log ud, og log derefter ind igen for at prøve igen.</translation>
+<translation id="1877860345998737529">Tildeling af handlinger for kontakter</translation>
 <translation id="1879000426787380528">Log ind som</translation>
 <translation id="1880905663253319515">Slet certifikatet "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="1886996562706621347">Tillad, at websites må bede om at håndtere protokoller som standard (anbefales)</translation>
@@ -866,6 +869,7 @@
 <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="2315414688463285945">Der opstod en fejl ved konfiguration af Linux-filer. Prøv igen.</translation>
+<translation id="2315587498123194634">Send link til <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nej tak</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % udført</translation>
 <translation id="2318143611928805047">Papirstørrelse</translation>
@@ -906,6 +910,7 @@
 <translation id="2365507699358342471">Dette website kan se tekst og billeder, der er kopieret til udklipsholderen.</translation>
 <translation id="2367199180085172140">Tilføj fildeling</translation>
 <translation id="2367972762794486313">Vis apps</translation>
+<translation id="2369105924912929484">Slå destilleret sideindhold til eller fra</translation>
 <translation id="2371076942591664043">Åbn når &amp;færdigt</translation>
 <translation id="2375406435414127095">Opret forbindelse til din telefon</translation>
 <translation id="2377667304966270281">Hårde fejl</translation>
@@ -1157,6 +1162,7 @@
 <translation id="2739191690716947896">Fejlretning</translation>
 <translation id="2739240477418971307">Skift dine tilgængelighedsindstillinger</translation>
 <translation id="2740393541869613458">gennemse de websites, som den administrerede bruger har besøgt, og</translation>
+<translation id="2741912629735277980">Vis brugerflade på loginskærmen</translation>
 <translation id="274290345632688601">Gendanner Linux-apps og -filer</translation>
 <translation id="2743387203779672305">Kopiér til udklipsholderen</translation>
 <translation id="2745080116229976798">Microsoft-kvalificeret delegering</translation>
@@ -1273,6 +1279,7 @@
 <translation id="2910318910161511225">Opret forbindelse til et netværk, og prøv igen</translation>
 <translation id="2913331724188855103">Tillad, at websites gemmer og læser cookiedata (anbefales)</translation>
 <translation id="2915102088417824677">Se din aktivitetshistorik</translation>
+<translation id="2915873080513663243">Automatisk scanning</translation>
 <translation id="2916073183900451334">Tryk på Tab på en webside fremhæver links og felter i formularer</translation>
 <translation id="2916745397441987255">Søg efter udvidelser</translation>
 <translation id="2921081876747860777">Opret en adgangskode for at beskytte dine lokale data.</translation>
@@ -1481,6 +1488,7 @@
 <translation id="327147043223061465">Se alle cookies og websitedata</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> vil gerne oprette forbindelse</translation>
 <translation id="3274763671541996799">Du er nu i fuld skærm.</translation>
+<translation id="3275778809241512831">Din interne sikkerhedsnøgle er i øjeblikket ikke sikker. Fjern den fra alle de enheder, som du har brugt den med. Nulstil sikkerhedsnøglen for at løse problemet.</translation>
 <translation id="3275778913554317645">Åbn som vindue</translation>
 <translation id="3278001907972365362">Din Google-konto kræver handling</translation>
 <translation id="3279230909244266691">Denne proces kan tage et par minutter. Den virtuelle maskine startes.</translation>
@@ -1573,6 +1581,7 @@
 <translation id="3412265149091626468">Hop til valg</translation>
 <translation id="3413122095806433232">CA-udstedere: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Størrelse:</translation>
+<translation id="3420501302812554910">Den interne sikkerhedsnøgle skal nulstilles</translation>
 <translation id="3421387094817716717">Offentlig nøgle med elliptisk kurve</translation>
 <translation id="3423463006624419153">På din "<ph name="PHONE_NAME_1" />" og "<ph name="PHONE_NAME_2" />":</translation>
 <translation id="3423858849633684918">Genstart <ph name="PRODUCT_NAME" /></translation>
@@ -1601,6 +1610,7 @@
 <translation id="3450157232394774192">Anvendt andel for inaktiv tilstand</translation>
 <translation id="3453612417627951340">Mangler godkendelse</translation>
 <translation id="3454157711543303649">Aktivering fuldført</translation>
+<translation id="3454213325559396544">Dette er den sidste automatiske software- og sikkerhedsopdatering for denne <ph name="DEVICE_TYPE" />. Opgrader til en nyere model for at få fremtidige opdateringer.</translation>
 <translation id="345693547134384690">Åbn &amp;billede på ny fane</translation>
 <translation id="3457500881955698515">Din virksomhed eller organisation kræver, at denne enhed opdateres med det samme</translation>
 <translation id="3459509316159669723">Udskrivning</translation>
@@ -1758,6 +1768,7 @@
 <translation id="3672681487849735243">Der blev registreret er fabriksfejl</translation>
 <translation id="367645871420407123">lad feltet være tomt, hvis du vil angive adgangskoderoden til standardværdien for testbilledet</translation>
 <translation id="3677657024345889897">Laveste</translation>
+<translation id="3677911431265050325">Anmod om mobilversion</translation>
 <translation id="3678156199662914018">Udvidelse: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Tak for din feedback. Du er offline nu, og din rapport sendes senere.</translation>
 <translation id="3682824389861648626">Grænse for bevægelse</translation>
@@ -2210,6 +2221,7 @@
 <translation id="4350019051035968019">Denne enhed kan ikke tilmeldes det domæne, som din konto hører under, da enheden er markeret til administration på et andet domæne.</translation>
 <translation id="4354344420232759511">Her vises de websites, du besøger</translation>
 <translation id="435527878592612277">Vælg dit billede</translation>
+<translation id="4358313196493694334">Stabiliser markør</translation>
 <translation id="4359408040881008151">Installeret på grund af andre udvidelser, der er afhængige af den.</translation>
 <translation id="4359717112757026264">Cityscape</translation>
 <translation id="4361142739114356624">Den private nøgle til dette klientcertifikat mangler eller er ugyldig</translation>
@@ -2334,6 +2346,7 @@
 <translation id="4558426062282641716">Der er anmodet om tilladelse til automatisk start</translation>
 <translation id="4558491878126948419">Få tips til <ph name="DEVICE_TYPE" /> og opdateringer om Google-produkter, og del feedback. Du kan til enhver tid ophæve abonnementet.</translation>
 <translation id="4559617833001311418">Dette website har adgang til dine bevægelses- og lyssensorer.</translation>
+<translation id="4561098487691395071">Du kan også angive PPD-filen for printeren</translation>
 <translation id="4562155214028662640">Tilføj fingeraftryk</translation>
 <translation id="4563880231729913339">Finger 3</translation>
 <translation id="4565377596337484307">Skjul adgangskode</translation>
@@ -2578,6 +2591,7 @@
 <translation id="494286511941020793">Hjælp til proxykonfiguration</translation>
 <translation id="4943368462779413526">Amerikansk fodbold</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" anmoder om at oprette forbindelse til en seriel port</translation>
+<translation id="4944310289250773232">Denne godkendelsestjeneste hostes af <ph name="SAML_DOMAIN" /></translation>
 <translation id="495170559598752135">Handlinger</translation>
 <translation id="4953689047182316270">Reagere på hændelser med hjælpefunktioner</translation>
 <translation id="4953808748584563296">Orange standardavatar</translation>
@@ -2670,6 +2684,7 @@
 <translation id="5094721898978802975">Kommunikere med indbyggede apps</translation>
 <translation id="5097002363526479830">Der kunne ikke oprettes forbindelse til netværket "<ph name="NAME" />": <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Åbn alle bogmærker</translation>
+<translation id="5101839224773798795">Klik automatisk, når markøren stopper</translation>
 <translation id="5108967062857032718">Indstillinger – Fjern Android-apps</translation>
 <translation id="5109044022078737958">Caroline</translation>
 <translation id="5111646998522066203">Afslut inkognito</translation>
@@ -3153,6 +3168,7 @@
 <translation id="5852112051279473187">Ups!  Noget gik galt under tilmeldingen af denne enhed.  Prøv igen, eller kontakt din supportrepræsentant.</translation>
 <translation id="5852137567692933493">Genstart og Powerwash</translation>
 <translation id="5854912040170951372">Pepperoni</translation>
+<translation id="5855643921295613558">0,6 sekunder</translation>
 <translation id="5855773610748894548">Ups, der er en fejl i forbindelse med sikkerhedsmodulet.</translation>
 <translation id="5856721540245522153">Aktivér fejlretningsfunktioner</translation>
 <translation id="5857090052475505287">Ny mappe</translation>
@@ -3443,6 +3459,7 @@
 <translation id="6279183038361895380">Tryk på |<ph name="ACCELERATOR" />| at se markøren</translation>
 <translation id="6280215091796946657">Log ind med en anden konto</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 sekunder</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> downloades normalt ikke og kan være skadelig.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Ny printer på dit netværk}one{Nye printere på dit netværk}other{Nye printere på dit netværk}}</translation>
 <translation id="6286708577777130801">Info om gemt adgangskode</translation>
@@ -3649,6 +3666,7 @@
 <translation id="6612358246767739896">Beskyttet indhold</translation>
 <translation id="6613452264606394692">Tilføj denne side som bogmærke, så du hurtigt kan vende tilbage hertil</translation>
 <translation id="6615455863669487791">Vis mig</translation>
+<translation id="6617100836880592260">Scanningshastighed: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Behold alligevel</translation>
 <translation id="6619058681307408113">Line Printer Daemon (LPD)</translation>
 <translation id="661907246513853610">Websitet kan spore din placering</translation>
@@ -4462,6 +4480,7 @@
 <translation id="7831491651892296503">Der opstod en fejl under konfigurationen af netværket</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Sluttidspunkt</translation>
+<translation id="783214144752121388">Bloker websites fra at køre Flash (anbefales)</translation>
 <translation id="7833720883933317473">Dine gemte tilføjelser til ordbogen vises her</translation>
 <translation id="7835178595033117206">Bogmærket blev fjernet</translation>
 <translation id="7837776265184002579">Din startside blev ændret til <ph name="URL" />.</translation>
@@ -4517,6 +4536,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Din adgangskode er blevet ændret på serveren. Log ud, og log derefter ind igen.</translation>
 <translation id="7915471803647590281">Fortæl os, hvad der sker, inden du sender feedback.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> sek.</translation>
 <translation id="792514962475806987">Zoomniveau i fastgjort lupvindue</translation>
 <translation id="7925247922861151263">AAA-kontrol mislykkedes</translation>
 <translation id="7925285046818567682">Venter på <ph name="HOST_NAME" />...</translation>
@@ -4574,6 +4594,7 @@
 <translation id="7987814697832569482">Opret altid forbindelse via dette VPN-netværk</translation>
 <translation id="798835209536175951">Send og modtag sms-beskeder fra din Chromebook. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Aktiver tilgængelighedsfunktioner</translation>
+<translation id="7991296728590311172">Indstillinger for kontaktadgang</translation>
 <translation id="7994702968232966508">EAP-metode</translation>
 <translation id="7997826902155442747">Procesprioritet</translation>
 <translation id="7999229196265990314">Oprettede følgende filer:
@@ -4787,6 +4808,8 @@
 <translation id="8308179586020895837">Spørg, om <ph name="HOST" /> vil have adgang til dit kamera</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">Certifikatet eksisterer allerede</translation>
+<translation id="8314381333424235892">Manglende eller afinstalleret udvidelse</translation>
+<translation id="8316618172731049784">Send til <ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">Tilføj netværksforbindelse</translation>
 <translation id="8319414634934645341">Udvidet brug af nøgle</translation>
 <translation id="8320459152843401447">Hele din skærm</translation>
@@ -4943,6 +4966,7 @@
 <translation id="8588866096426746242">Vis profilstatistik</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> – VR viser til headset</translation>
 <translation id="8590375307970699841">Konfigurer automatiske opdateringer</translation>
+<translation id="8591783563402255548">1 sekund</translation>
 <translation id="8592141010104017453">Vis slet ingen notifikationer</translation>
 <translation id="8593121833493516339">Send brugs- og diagnosticeringsdata. Hjælp med at forbedre dit barns Android-oplevelse ved automatisk at sende diagnosticerings- og enhedsdata samt data om brug af apps til Google. Disse data bruges ikke til at identificere dit barn. De bruges kun til forbedring af bl.a. systemets og appens stabilitet. Visse samlede data hjælper også Google-apps og -partnere, f.eks. Android-udviklere. Hvis indstillingen til yderligere web- og appaktivitet er aktiveret for dit barn, gemmes disse data muligvis på barnets Google-konto. <ph name="BEGIN_LINK1" />Få flere oplysninger<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Optag video</translation>
@@ -4972,6 +4996,7 @@
 <translation id="8637688295594795546">Der findes en tilgængelig opdatering til systemet. Forbereder download...</translation>
 <translation id="8639047128869322042">Søger efter skadelig software...</translation>
 <translation id="8642171459927087831">Adgangstoken</translation>
+<translation id="8642900771896232685">2 sekunder</translation>
 <translation id="8642947597466641025">Gør teksten større</translation>
 <translation id="8643418457919840804">Vælg en indstilling for at fortsætte:</translation>
 <translation id="8644655801811752511">Denne sikkerhedsnøgle kan ikke nulstilles. Prøv at nulstille nøglen, lige efter du har indsat den.</translation>
@@ -5174,6 +5199,7 @@
 <translation id="8910222113987937043">Ændringer af bogmærker, historik, adgangskoder og andre indstillinger synkroniseres ikke længere med din Google-konto. Dine eksisterende data er dog stadig gemt på din Google-konto og kan administreres i <ph name="BEGIN_LINK" />Google Betjeningspanel<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">Google-konto</translation>
 <translation id="8912793549644936705">Stræk</translation>
+<translation id="8912810933860534797">Aktivér automatisk scanning</translation>
 <translation id="891365694296252935">Send brugs- og diagnosticeringsdata. Denne enhed sender i øjeblikket automatisk diagnosticerings- og enhedsdata samt data om brug af apps til Google. Disse data bruges ikke til at identificere dit barn. De bruges kun til forbedring af bl.a. systemets og appens stabilitet. Visse samlede data hjælper også Google-apps og -partnere, f.eks. Android-udviklere. Denne indstilling håndhæves af ejeren. Hvis indstillingen til yderligere web- og appaktivitet er aktiveret for dit barn, gemmes disse data muligvis på barnets Google-konto. <ph name="BEGIN_LINK1" />Få flere oplysninger<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Indlæser forslag</translation>
 <translation id="8916476537757519021">Underramme for inkognitotilstand: <ph name="SUBFRAME_SITE" /></translation>
@@ -5289,6 +5315,7 @@
 <translation id="9094033019050270033">Opdater adgangskoden</translation>
 <translation id="9094982973264386462">Fjern</translation>
 <translation id="9095253524804455615">Fjern</translation>
+<translation id="9095388113577226029">Flere sprog...</translation>
 <translation id="9100610230175265781">Adgangssætning kræves</translation>
 <translation id="9100765901046053179">Avancerede indstillinger</translation>
 <translation id="9101691533782776290">Åbn appen</translation>
@@ -5326,6 +5353,7 @@
 <translation id="9153934054460603056">Gem identitet og adgangskode</translation>
 <translation id="9154194610265714752">Opdateret</translation>
 <translation id="91568222606626347">Opret genvej...</translation>
+<translation id="9157096865782046368">0,8 sekunder</translation>
 <translation id="9157697743260533322">Automatiske opdateringer kunne ikke konfigureres for alle brugere (fejl ved forhåndsopstart: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">Ups! Der opstod et problem med netværkskommunikationen under godkendelsen. Kontrollér din netværksforbindelse, og prøv igen.</translation>
 <translation id="916607977885256133">Integreret billede</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 2594d40..b09565a 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="de">
+<translation id="1002469766576243227">Dieser Authentifizierungsdienst wird von <ph name="EXTENSION_NAME" /> gehostet</translation>
 <translation id="1003088604756913841">Link in neuem <ph name="APP" />-Fenster öffnen</translation>
 <translation id="1004218526896219317">Zugriff auf Website</translation>
 <translation id="1005274289863221750">Ihr Mikrofon und Ihre Kamera verwenden</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Alle gelöscht</translation>
 <translation id="143027896309062157">Alle Ihre Daten auf Ihrem Computer und den von Ihnen besuchten Websites lesen und ändern</translation>
 <translation id="1430915738399379752">Drucken</translation>
+<translation id="1431188203598586230">Letztes Softwareupdate</translation>
 <translation id="1432581352905426595">Suchmaschinen verwalten</translation>
 <translation id="1433811987160647649">Vor dem Zugriff nachfragen</translation>
 <translation id="1434696352799406980">Mit dieser Funktion werden Ihre "Beim Start"-Seite, Ihre Suchmaschine, die "Neuer Tab"-Seite und angepinnte Tabs zurückgesetzt. Außerdem werden alle Erweiterungen deaktiviert und temporäre Daten wie Cookies gelöscht. Ihre Lesezeichen, der Verlauf und gespeicherte Passwörter werden nicht gelöscht.</translation>
@@ -381,7 +383,6 @@
 <translation id="1576594961618857597">Weißer Standardavatar</translation>
 <translation id="1581962803218266616">Im Finder anzeigen</translation>
 <translation id="1584990664401018068">Eventuell müssen Sie sich bei dem verwendeten WLAN (<ph name="NETWORK_ID" />) authentifizieren.</translation>
-<translation id="1585238069289523942">Apps auf Ihrem Chromebook installieren</translation>
 <translation id="1585717515139318619">Ein anderes Programm auf Ihrem Computer hat ein Design hinzugefügt, das sich möglicherweise auf die Funktionsweise von Chrome auswirkt.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -525,6 +526,7 @@
 <translation id="1781771911845953849">Konten und Synchronisierung</translation>
 <translation id="1782196717298160133">Mein Telefon finden</translation>
 <translation id="1784849162047402014">Gerät verfügt über wenig Speicherplatz</translation>
+<translation id="1790194216133135334">Link an <ph name="DEVICE_NAME" /> senden</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>
@@ -587,6 +589,7 @@
 <translation id="1875312262568496299">Starten</translation>
 <translation id="1875387611427697908">Dieser Artikel kann nur über den <ph name="CHROME_WEB_STORE" /> hinzugefügt werden</translation>
 <translation id="1877520246462554164">Authentifizierungs-Token konnte nicht abgerufen werden. Bitte melden Sie sich ab und dann wieder an, um es noch einmal zu versuchen.</translation>
+<translation id="1877860345998737529">Schalter Aktionen zuweisen</translation>
 <translation id="1879000426787380528">Anmelden als</translation>
 <translation id="1880905663253319515">Zertifikat "<ph name="CERTIFICATE_NAME" />" löschen?</translation>
 <translation id="1886996562706621347">Registrierung von Websites als Standard-Handler für Protokolle zulassen (empfohlen)</translation>
@@ -866,6 +869,7 @@
 <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="2315414688463285945">Fehler beim Konfigurieren von Linux-Dateien. Bitte versuchen Sie es noch einmal.</translation>
+<translation id="2315587498123194634">Link an <ph name="DEVICE_NAME" /> senden</translation>
 <translation id="2316129865977710310">Kein Interesse</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % abgeschlossen</translation>
 <translation id="2318143611928805047">Papierformat</translation>
@@ -906,6 +910,7 @@
 <translation id="2365507699358342471">Diese Website kann Texte und Bilder aus der Zwischenablage abrufen.</translation>
 <translation id="2367199180085172140">Netzwerkfreigabe hinzufügen</translation>
 <translation id="2367972762794486313">Apps anzeigen</translation>
+<translation id="2369105924912929484">Zusammengefasste Seiteninhalte ein- oder ausblenden</translation>
 <translation id="2371076942591664043">Nach &amp;Download öffnen</translation>
 <translation id="2375406435414127095">Mit dem Smartphone verbinden</translation>
 <translation id="2377667304966270281">Harte Fehler</translation>
@@ -1154,6 +1159,7 @@
 <translation id="2739191690716947896">Fehlerbehebung</translation>
 <translation id="2739240477418971307">Einstellungen für Zugänglichkeit ändern</translation>
 <translation id="2740393541869613458">von dem betreuten Nutzer besuchte Websites überprüfen und</translation>
+<translation id="2741912629735277980">UI auf dem Anmeldebildschirm anzeigen</translation>
 <translation id="274290345632688601">Linux-Apps und -Dateien werden wiederhergestellt</translation>
 <translation id="2743387203779672305">In Zwischenablage kopieren</translation>
 <translation id="2745080116229976798">Microsoft - Qualifizierte Unterordnung</translation>
@@ -1270,6 +1276,7 @@
 <translation id="2910318910161511225">Stellen Sie eine Verbindung zu einem Netzwerk her und versuchen Sie es noch einmal</translation>
 <translation id="2913331724188855103">Websites dürfen Cookiedaten speichern und lesen (empfohlen)</translation>
 <translation id="2915102088417824677">Aktivitätsprotokoll ansehen</translation>
+<translation id="2915873080513663243">Automatischer Scan</translation>
 <translation id="2916073183900451334">Durch Drücken der Tab-Taste auf einer Webseite werden Links sowie Formularfelder markiert.</translation>
 <translation id="2916745397441987255">In Erweiterungen suchen</translation>
 <translation id="2921081876747860777">Erstellen Sie ein Passwort, um Ihre lokalen Daten zu schützen.</translation>
@@ -1478,6 +1485,7 @@
 <translation id="327147043223061465">Alle Cookies und Websitedaten anzeigen</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> möchte eine Verbindung herstellen</translation>
 <translation id="3274763671541996799">Sie befinden sich im Vollbildmodus.</translation>
+<translation id="3275778809241512831">Ihr interner Sicherheitsschlüssel ist momentan nicht sicher. Bitte entfernen Sie den Schlüssel aus allen Diensten, für die Sie ihn verwendet haben, und setzen Sie ihn zurück, um das Problem zu beheben.</translation>
 <translation id="3275778913554317645">In neuem Fenster öffnen</translation>
 <translation id="3278001907972365362">Ihre Google-Konten erfordern Aufmerksamkeit</translation>
 <translation id="3279230909244266691">Der Vorgang kann einige Minuten dauern. Virtuelle Maschine wird gestartet.</translation>
@@ -1570,6 +1578,7 @@
 <translation id="3412265149091626468">Auswahl anzeigen</translation>
 <translation id="3413122095806433232">Aussteller von Zertifizierungsstellen: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Größe:</translation>
+<translation id="3420501302812554910">Interner Sicherheitsschlüssel muss zurückgesetzt werden</translation>
 <translation id="3421387094817716717">Öffentlicher Schlüssel für elliptische Kurven</translation>
 <translation id="3423463006624419153">Auf Ihrem <ph name="PHONE_NAME_1" /> und Ihrem <ph name="PHONE_NAME_2" />:</translation>
 <translation id="3423858849633684918"><ph name="PRODUCT_NAME" /> neu starten</translation>
@@ -1598,6 +1607,7 @@
 <translation id="3450157232394774192">Inaktiver Zustand – Auslastung in Prozent</translation>
 <translation id="3453612417627951340">Autorisierung erforderlich</translation>
 <translation id="3454157711543303649">Aktivierung abgeschlossen</translation>
+<translation id="3454213325559396544">Das ist das letzte automatische Software- und Sicherheitsupdate für dieses <ph name="DEVICE_TYPE" />. Wenn Sie weiter Updates erhalten möchten, ist ein neueres Modell erforderlich.</translation>
 <translation id="345693547134384690">Bil&amp;d in neuem Tab öffnen</translation>
 <translation id="3457500881955698515">Ihr Unternehmen bzw. Ihre Organisation verlangt, dass dieses Gerät umgehend aktualisiert wird</translation>
 <translation id="3459509316159669723">Drucken</translation>
@@ -1755,6 +1765,7 @@
 <translation id="3672681487849735243">Ein werkseitiger Fehler wurde festgestellt.</translation>
 <translation id="367645871420407123">Leer lassen, wenn Sie für das Root-Passwort den Standardtestwert festlegen möchten</translation>
 <translation id="3677657024345889897">Am leisesten</translation>
+<translation id="3677911431265050325">Mobile Version anfordern</translation>
 <translation id="3678156199662914018">Erweiterung: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Vielen Dank für Ihr Feedback. Sie sind jetzt offline und Ihr Bericht wird später versendet.</translation>
 <translation id="3682824389861648626">Grenzwert für Mausbewegungen</translation>
@@ -2207,6 +2218,7 @@
 <translation id="4350019051035968019">Dieses Gerät kann nicht in der Domain registriert werden, zu der Ihr Konto gehört, weil das Gerät für die Verwaltung in einer anderen Domain gekennzeichnet wurde.</translation>
 <translation id="4354344420232759511">Hier finden Sie die von Ihnen besuchten Websites</translation>
 <translation id="435527878592612277">Foto auswählen</translation>
+<translation id="4358313196493694334">Klickposition stabilisieren</translation>
 <translation id="4359408040881008151">Wurde aufgrund der abhängigen Erweiterungen installiert</translation>
 <translation id="4359717112757026264">Stadtlandschaft</translation>
 <translation id="4361142739114356624">Der private Schlüssel für dieses Clientzertifikat fehlt oder ist ungültig</translation>
@@ -2331,6 +2343,7 @@
 <translation id="4558426062282641716">Berechtigung zum automatischen Start angefordert</translation>
 <translation id="4558491878126948419">Sie erhalten Tipps zu <ph name="DEVICE_TYPE" /> sowie Updates zu Google-Produkten und können uns Feedback geben. Die Abbestellung ist jederzeit möglich.</translation>
 <translation id="4559617833001311418">Diese Website greift auf meine Bewegungs- oder Lichtsensoren zu.</translation>
+<translation id="4561098487691395071">Oder PPD für den Drucker angeben</translation>
 <translation id="4562155214028662640">Fingerabdruck hinzufügen</translation>
 <translation id="4563880231729913339">Finger 3</translation>
 <translation id="4565377596337484307">Passwort ausblenden</translation>
@@ -2575,6 +2588,7 @@
 <translation id="494286511941020793">Proxy-Konfigurationshilfe</translation>
 <translation id="4943368462779413526">Fußball</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" möchte eine Verbindung mit einem seriellen Port herstellen</translation>
+<translation id="4944310289250773232">Dieser Authentifizierungsdienst wird von <ph name="SAML_DOMAIN" /> gehostet</translation>
 <translation id="495170559598752135">Aktionen</translation>
 <translation id="4953689047182316270">Auf Bedienungshilfen reagieren</translation>
 <translation id="4953808748584563296">Orangefarbener Standardavatar</translation>
@@ -2667,6 +2681,7 @@
 <translation id="5094721898978802975">Mit zusammenarbeitenden systemeigenen Anwendungen kommunizieren</translation>
 <translation id="5097002363526479830">Fehler beim Herstellen einer Verbindung mit dem Netzwerk "<ph name="NAME" />": <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Alle Lesezeichen öffnen</translation>
+<translation id="5101839224773798795">Automatisch klicken, wenn der Cursor anhält</translation>
 <translation id="5108967062857032718">Einstellungen – Android-Apps entfernen</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Inkognitomodus beenden</translation>
@@ -3150,6 +3165,7 @@
 <translation id="5852112051279473187">Hoppla! Bei der Anmeldung dieses Geräts ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut oder wenden Sie sich an einen Support-Mitarbeiter.</translation>
 <translation id="5852137567692933493">Neu starten und Powerwash durchführen</translation>
 <translation id="5854912040170951372">Pizza</translation>
+<translation id="5855643921295613558">0,6 Sekunden</translation>
 <translation id="5855773610748894548">Hoppla! Fehler mit dem Sicherheitsmodul.</translation>
 <translation id="5856721540245522153">Debugging-Funktionen aktivieren</translation>
 <translation id="5857090052475505287">Neuer Ordner</translation>
@@ -3439,6 +3455,7 @@
 <translation id="6279183038361895380">Zum Einblenden des Cursors |<ph name="ACCELERATOR" />| drücken</translation>
 <translation id="6280215091796946657">Mit einem anderen Konto anmelden</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 Sekunden</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> ist ein ungewöhnlicher Download und könnte schädlich sein.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Neuer Drucker in Ihrem Netzwerk gefunden}other{Neue Drucker in Ihrem Netzwerk gefunden}}</translation>
 <translation id="6286708577777130801">Gespeicherte Passwortdetails</translation>
@@ -3645,6 +3662,7 @@
 <translation id="6612358246767739896">Geschützte Inhalte</translation>
 <translation id="6613452264606394692">Speichern Sie diese Seite als Lesezeichen, um schnell wieder hierher zurückzukehren</translation>
 <translation id="6615455863669487791">Zeigen</translation>
+<translation id="6617100836880592260">Scangeschwindigkeit: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Trotzdem beibehalten</translation>
 <translation id="6619058681307408113">Line Printer Daemon (LPD)</translation>
 <translation id="661907246513853610">Die Website kann Ihren Standort verfolgen</translation>
@@ -4459,6 +4477,7 @@
 <translation id="7831491651892296503">Fehler bei der Netzwerkkonfiguration</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Ende</translation>
+<translation id="783214144752121388">Ausführen von Flash für Websites blockieren (empfohlen)</translation>
 <translation id="7833720883933317473">Hier werden gespeicherte benutzerdefinierte Wörter angezeigt</translation>
 <translation id="7835178595033117206">Lesezeichen entfernt</translation>
 <translation id="7837776265184002579">Ihre Startseite wurde in <ph name="URL" /> geändert.</translation>
@@ -4514,6 +4533,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Ihr Passwort wurde auf dem Server geändert. Bitte melden Sie sich ab und dann wieder an.</translation>
 <translation id="7915471803647590281">Bitte beschreiben Sie das Problem, bevor Sie das Feedback abschicken.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> s</translation>
 <translation id="792514962475806987">Zoomstufe für angedockte Lupe:</translation>
 <translation id="7925247922861151263">AAA-Prüfung fehlgeschlagen</translation>
 <translation id="7925285046818567682">Warten auf <ph name="HOST_NAME" />...</translation>
@@ -4571,6 +4591,7 @@
 <translation id="7987814697832569482">Immer über dieses VPN verbinden</translation>
 <translation id="798835209536175951">Sie können SMS auf Ihrem Chromebook senden und empfangen. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Bedienungshilfen aktivieren</translation>
+<translation id="7991296728590311172">Einstellungen für Schalterzugriff</translation>
 <translation id="7994702968232966508">EAP-Methode</translation>
 <translation id="7997826902155442747">Prozesspriorität</translation>
 <translation id="7999229196265990314">Folgende Dateien wurden erstellt:
@@ -4783,6 +4804,8 @@
 <translation id="8308179586020895837">Nachfragen, wenn <ph name="HOST" /> auf Ihre Kamera zugreifen möchte</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">Das Zertifikat ist bereits vorhanden</translation>
+<translation id="8314381333424235892">Erweiterung fehlt oder wurde deinstalliert</translation>
+<translation id="8316618172731049784">An <ph name="DEVICE_NAME" /> senden</translation>
 <translation id="8317671367883557781">Netzwerkverbindung hinzufügen</translation>
 <translation id="8319414634934645341">Erweiterte Schlüsselverwendung</translation>
 <translation id="8320459152843401447">Gesamten Bildschirm</translation>
@@ -4940,6 +4963,7 @@
 <translation id="8588866096426746242">Profilstatistiken anzeigen</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> – VR wird auf Headset abgespielt</translation>
 <translation id="8590375307970699841">Automatische Updates einrichten</translation>
+<translation id="8591783563402255548">1 Sekunde</translation>
 <translation id="8592141010104017453">Keine Benachrichtigungen anzeigen</translation>
 <translation id="8593121833493516339">Sie haben die Möglichkeit, Nutzungs- und Diagnosedaten zu senden. Sie können uns helfen, Android für Ihr Kind zu verbessern, indem Sie zulassen, dass Diagnose- sowie Geräte- und App-Nutzungsdaten automatisch an Google gesendet werden. Ihr Kind wird mithilfe dieser Daten nicht identifiziert, sie helfen jedoch beispielsweise dabei, die Stabilität des Systems und der Apps zu verbessern. Einige aggregierte Daten sind auch für Apps und Partner von Google, beispielsweise Android-Entwickler, nützlich. Wenn zusätzlich die Einstellung "Web- &amp; App-Aktivitäten" für Ihr Kind aktiviert ist, werden diese Daten in seinem Google-Konto gespeichert. <ph name="BEGIN_LINK1" />Weitere Informationen<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Video aufnehmen</translation>
@@ -4969,6 +4993,7 @@
 <translation id="8637688295594795546">Systemupdate verfügbar. Download wird vorbereitet...</translation>
 <translation id="8639047128869322042">Nach schädlicher Software wird gesucht...</translation>
 <translation id="8642171459927087831">Zugriffs-Token</translation>
+<translation id="8642900771896232685">2 Sekunden</translation>
 <translation id="8642947597466641025">Schriftgrad vergrößern</translation>
 <translation id="8643418457919840804">Wählen Sie eine Option aus, um fortzufahren:</translation>
 <translation id="8644655801811752511">Dieser Sicherheitsschlüssel kann nicht zurückgesetzt werden. Versuchen Sie, den Schlüssel direkt nach dem Einstecken zurückzusetzen.</translation>
@@ -5170,6 +5195,7 @@
 <translation id="8910222113987937043">Änderungen an Ihrem Verlauf sowie an Ihren Lesezeichen, Passwörtern und sonstigen Einstellungen werden nicht mehr mit Ihrem Google-Konto synchronisiert. Bereits in Ihrem Google-Konto gespeicherte Daten bleiben dort erhalten und können über das <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" /> verwaltet werden.</translation>
 <translation id="8912362522468806198">Google-Konto</translation>
 <translation id="8912793549644936705">Strecken</translation>
+<translation id="8912810933860534797">Automatischen Scan aktivieren</translation>
 <translation id="891365694296252935">Sie haben die Möglichkeit, Nutzungs- und Diagnosedaten zu senden. Dieses Gerät sendet momentan automatisch Diagnose- sowie Geräte- und App-Nutzungsdaten an Google. Ihr Kind wird mithilfe dieser Daten nicht identifiziert, sie helfen jedoch beispielsweise dabei, die Stabilität des Systems und der Apps zu verbessern. Einige aggregierte Daten sind auch für Apps und Partner von Google, beispielsweise Android-Entwickler, nützlich. Diese Einstellung wird vom Inhaber erzwungen. Wenn zusätzlich die Einstellung "Web- &amp; App-Aktivitäten" für Ihr Kind aktiviert ist, werden diese Daten in seinem Google-Konto gespeichert. <ph name="BEGIN_LINK1" />Weitere Informationen<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Vorschläge werden geladen</translation>
 <translation id="8916476537757519021">Inkognito-Subframe: <ph name="SUBFRAME_SITE" /></translation>
@@ -5286,6 +5312,7 @@
 <translation id="9094033019050270033">Passwort aktualisieren</translation>
 <translation id="9094982973264386462">Entfernen</translation>
 <translation id="9095253524804455615">Entfernen</translation>
+<translation id="9095388113577226029">Weitere Sprachen...</translation>
 <translation id="9100610230175265781">Passphrase erforderlich</translation>
 <translation id="9100765901046053179">Erweiterte Einstellungen</translation>
 <translation id="9101691533782776290">App starten</translation>
@@ -5323,6 +5350,7 @@
 <translation id="9153934054460603056">Identität und Passwort speichern</translation>
 <translation id="9154194610265714752">Aktualisiert</translation>
 <translation id="91568222606626347">Verknüpfung erstellen...</translation>
+<translation id="9157096865782046368">0,8 Sekunden</translation>
 <translation id="9157697743260533322">Automatische Updates für alle Nutzer konnten nicht eingerichtet werden (Preflight-Startfehler: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">Hoppla! Während der Authentifizierung ist ein Kommunikationsproblem mit dem Netzwerk aufgetreten. Überprüfen Sie bitte Ihre Netzwerkverbindung und versuchen Sie es erneut.</translation>
 <translation id="916607977885256133">Bild-in-Bild</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index d518b3c..e6db8e3 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Προεπιλεγμένο λευκό avatar</translation>
 <translation id="1581962803218266616">Εμφάνιση στο Finder</translation>
 <translation id="1584990664401018068">Το δίκτυο Wi-Fi που χρησιμοποιείτε (<ph name="NETWORK_ID" />) ενδέχεται να απαιτεί έλεγχο ταυτότητας.</translation>
-<translation id="1585238069289523942">Εγκαταστήστε εφαρμογές στο Chromebook</translation>
 <translation id="1585717515139318619">Κάποιο άλλο πρόγραμμα στον υπολογιστή σας πρόσθεσε ένα θέμα, το οποίο ενδέχεται να αλλάξει τον τρόπο λειτουργίας του Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Παρουσιάστηκε σφάλμα κατά τη διαμόρφωση αρχείων Linux. Δοκιμάστε ξανά.</translation>
 <translation id="2315587498123194634">Αποστολή συνδέσμου σε <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Όχι, ευχαριστώ</translation>
-<translation id="2316739859433277603">Οι αναζητήσεις από την εφαρμογή εκκίνησης χρησιμοποιούν τη <ph name="BEGIN_LINK" />ρύθμιση μηχανής αναζήτησης<ph name="END_LINK" /> του προγράμματος περιήγησής σας.</translation>
 <translation id="2317842250900878657">Ολοκληρώθηκε<ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Μέγεθος χαρτιού</translation>
 <translation id="2318817390901984578">Για να χρησιμοποιήσετε εφαρμογές Android, φορτίστε και ενημερώστε τη συσκευή <ph name="DEVICE_TYPE" />.</translation>
@@ -5317,6 +5315,7 @@
 <translation id="9094033019050270033">Ενημέρωση κωδικού πρόσβασης</translation>
 <translation id="9094982973264386462">Κατάργηση</translation>
 <translation id="9095253524804455615">Κατάργηση</translation>
+<translation id="9095388113577226029">Περισσότερες γλώσσες…</translation>
 <translation id="9100610230175265781">Απαιτείται φράση πρόσβασης</translation>
 <translation id="9100765901046053179">Σύνθετες ρυθμίσεις</translation>
 <translation id="9101691533782776290">Εκκίνηση εφαρμογής</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 894b636..561c2e8 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Default white avatar</translation>
 <translation id="1581962803218266616">Show in Finder</translation>
 <translation id="1584990664401018068">The Wi-Fi network that you are using (<ph name="NETWORK_ID" />) may require authentication.</translation>
-<translation id="1585238069289523942">Install apps on your Chromebook</translation>
 <translation id="1585717515139318619">Another program on your computer added a theme that may change the way Chrome works.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Error configuring Linux files. Please try again.</translation>
 <translation id="2315587498123194634">Send link to <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">No, thanks</translation>
-<translation id="2316739859433277603">Searches from the app launcher use your browser <ph name="BEGIN_LINK" />search engine setting<ph name="END_LINK" />.</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% done</translation>
 <translation id="2318143611928805047">Paper size</translation>
 <translation id="2318817390901984578">To use Android apps, charge &amp; update your <ph name="DEVICE_TYPE" />.</translation>
@@ -5317,6 +5315,7 @@
 <translation id="9094033019050270033">Update password</translation>
 <translation id="9094982973264386462">Remove</translation>
 <translation id="9095253524804455615">Remove</translation>
+<translation id="9095388113577226029">More languages...</translation>
 <translation id="9100610230175265781">Passphrase required</translation>
 <translation id="9100765901046053179">Advanced settings</translation>
 <translation id="9101691533782776290">Launch app</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 090e85d..5b06bcb 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -381,7 +381,6 @@
 <translation id="1576594961618857597">Avatar blanco predeterminado</translation>
 <translation id="1581962803218266616">Mostrar en Buscador</translation>
 <translation id="1584990664401018068">La red Wi-Fi que estás usando (<ph name="NETWORK_ID" />) podría exigir autenticación.</translation>
-<translation id="1585238069289523942">Instala apps en tu Chromebook</translation>
 <translation id="1585717515139318619">Otro programa en tu computadora agregó un tema que puede cambiar el funcionamiento de Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -5288,6 +5287,7 @@
 <translation id="9094033019050270033">Actualizar contraseña</translation>
 <translation id="9094982973264386462">Quitar</translation>
 <translation id="9095253524804455615">Quitar</translation>
+<translation id="9095388113577226029">Más idiomas…</translation>
 <translation id="9100610230175265781">Se necesita una frase de contraseña.</translation>
 <translation id="9100765901046053179">Configuración avanzada</translation>
 <translation id="9101691533782776290">Iniciar aplicación</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index bbd40a4..2d30878 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="es">
+<translation id="1002469766576243227">Este servicio de autenticación está alojado por <ph name="EXTENSION_NAME" /></translation>
 <translation id="1003088604756913841">Abrir enlace en una ventana nueva de <ph name="APP" /></translation>
 <translation id="1004218526896219317">Acceso al sitio web</translation>
 <translation id="1005274289863221750">Utilizar el micrófono y la cámara</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Se han borrado todas las entradas</translation>
 <translation id="143027896309062157">Leer y modificar todos tus datos en tu ordenador y en los sitios web que visites</translation>
 <translation id="1430915738399379752">Imprimir</translation>
+<translation id="1431188203598586230">Última actualización de software</translation>
 <translation id="1432581352905426595">Administrar buscadores</translation>
 <translation id="1433811987160647649">Preguntar antes de acceder</translation>
 <translation id="1434696352799406980">Se restablecerán la página de inicio, la página Nueva pestaña, el motor de búsqueda y las pestañas fijadas. También se inhabilitarán todas las extensiones y se borrarán los datos temporales como las cookies. Los marcadores, el historial y las contraseñas guardadas no se borrarán.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">Avatar blanco predeterminado</translation>
 <translation id="1581962803218266616">Mostrar en Finder</translation>
 <translation id="1584990664401018068">La red Wi-Fi que estás utilizando (<ph name="NETWORK_ID" />) puede requerir autenticación.</translation>
-<translation id="1585238069289523942">Instala aplicaciones en tu Chromebook</translation>
 <translation id="1585717515139318619">Otro programa de tu ordenador ha añadido un tema que puede cambiar el funcionamiento de Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">Cuentas y sincronización</translation>
 <translation id="1782196717298160133">Buscando teléfono</translation>
 <translation id="1784849162047402014">Queda poco espacio en el disco del dispositivo</translation>
+<translation id="1790194216133135334">Enviar enlace a <ph name="DEVICE_NAME" /></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>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">Empezar</translation>
 <translation id="1875387611427697908">Este elemento solo se puede añadir desde <ph name="CHROME_WEB_STORE" /></translation>
 <translation id="1877520246462554164">No se ha podido obtener el token de autenticación. Cierra la sesión y vuelve a iniciarla para intentarlo de nuevo.</translation>
+<translation id="1877860345998737529">Asignación de interruptores a acciones</translation>
 <translation id="1879000426787380528">Iniciar sesión como</translation>
 <translation id="1880905663253319515">¿Quieres eliminar el certificado "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="1886996562706621347">Permitir que los sitios web se conviertan en controladores de protocolos predeterminados (recomendado)</translation>
@@ -869,6 +872,7 @@
 <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="2315414688463285945">No se han podido configurar los archivos de Linux. Inténtalo de nuevo.</translation>
+<translation id="2315587498123194634">Enviar enlace a <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">No, gracias</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% completado</translation>
 <translation id="2318143611928805047">Tamaño del papel</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">Este sitio web puede ver el texto y las imágenes que se hayan copiado en el portapapeles.</translation>
 <translation id="2367199180085172140">Añadir sistema de archivos compartidos</translation>
 <translation id="2367972762794486313">Mostrar aplicaciones</translation>
+<translation id="2369105924912929484">Alternar contenido de la página convertida</translation>
 <translation id="2371076942591664043">Abrir al &amp;finalizar</translation>
 <translation id="2375406435414127095">Conecta tu teléfono</translation>
 <translation id="2377667304966270281">Fallos graves</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">Depurar</translation>
 <translation id="2739240477418971307">Cambiar tu configuración de accesibilidad</translation>
 <translation id="2740393541869613458">revisar sitios web que ha visitado el usuario supervisado,</translation>
+<translation id="2741912629735277980">Mostrar interfaz de usuario en la pantalla de inicio de sesión</translation>
 <translation id="274290345632688601">Restaurando las aplicaciones y los archivos de Linux</translation>
 <translation id="2743387203779672305">Copiar en el portapapeles</translation>
 <translation id="2745080116229976798">Subordinación completa de Microsoft</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">Conéctate a una red y vuelve a intentarlo</translation>
 <translation id="2913331724188855103">Permitir que los sitios guarden y lean datos de cookies (recomendado)</translation>
 <translation id="2915102088417824677">Ver registro de actividad</translation>
+<translation id="2915873080513663243">Búsqueda automática</translation>
 <translation id="2916073183900451334">El tabulador permite destacar los enlaces de una página web, así como los campos de formulario.</translation>
 <translation id="2916745397441987255">Buscar extensiones</translation>
 <translation id="2921081876747860777">Crea una contraseña para proteger tus datos locales</translation>
@@ -1483,6 +1490,7 @@
 <translation id="327147043223061465">Ver todas las cookies y datos de sitios web</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> quiere conectarse</translation>
 <translation id="3274763671541996799">Has activado el modo de pantalla completa.</translation>
+<translation id="3275778809241512831">Tu llave de seguridad interna es insegura actualmente. Elimínala de todos los servicios en los que la utilizabas. Para solucionar el problema, restablece la llave de seguridad.</translation>
 <translation id="3275778913554317645">Abrir como ventana</translation>
 <translation id="3278001907972365362">Parece que hay algún problema con tus cuentas de Google</translation>
 <translation id="3279230909244266691">Iniciando la máquina virtual. Este proceso puede tardar unos minutos.</translation>
@@ -1573,6 +1581,7 @@
 <translation id="3412265149091626468">Ir a la selección</translation>
 <translation id="3413122095806433232">Entidades emisoras de certificados: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Tamaño:</translation>
+<translation id="3420501302812554910">Es necesario restablecer la llave de seguridad interna</translation>
 <translation id="3421387094817716717">Clave pública de curva elíptica</translation>
 <translation id="3423463006624419153">En tu "<ph name="PHONE_NAME_1" />" y "<ph name="PHONE_NAME_2" />":</translation>
 <translation id="3423858849633684918">Se debe reiniciar <ph name="PRODUCT_NAME" /></translation>
@@ -1601,6 +1610,7 @@
 <translation id="3450157232394774192">Porcentaje de ocupación de estado de inactividad</translation>
 <translation id="3453612417627951340">Necesita autorización</translation>
 <translation id="3454157711543303649">Activación completa</translation>
+<translation id="3454213325559396544">Esta es la última actualización automática de software y seguridad que recibirá este <ph name="DEVICE_TYPE" />. Para recibir las actualizaciones posteriores, cambia este modelo por otro más reciente.</translation>
 <translation id="345693547134384690">Abrir &amp;imagen en una pestaña nueva</translation>
 <translation id="3457500881955698515">Tu empresa u organización necesita que actualices este dispositivo inmediatamente</translation>
 <translation id="3459509316159669723">Imprimir</translation>
@@ -1758,6 +1768,7 @@
 <translation id="3672681487849735243">Se ha detectado un error de fabricación</translation>
 <translation id="367645871420407123">deja este campo vacío si quieres establecer la contraseña raíz en el valor de la imagen de prueba predeterminada</translation>
 <translation id="3677657024345889897">El más bajo</translation>
+<translation id="3677911431265050325">Solicitar sitio web móvil</translation>
 <translation id="3678156199662914018">Extensión: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Gracias por tus comentarios. Ahora no tienes conexión, por lo que el informe se enviará más tarde.</translation>
 <translation id="3682824389861648626">Umbral de movimiento</translation>
@@ -2209,6 +2220,7 @@
 <translation id="4350019051035968019">Este dispositivo no se puede registrar en el dominio al que pertenece tu cuenta porque ya lo administra otro dominio.</translation>
 <translation id="4354344420232759511">Los sitios web que visites aparecerán aquí</translation>
 <translation id="435527878592612277">Selecciona una foto</translation>
+<translation id="4358313196493694334">Estabilizar ubicación de clic</translation>
 <translation id="4359408040881008151">Instalada debido a las extensiones dependientes</translation>
 <translation id="4359717112757026264">Paisaje urbano</translation>
 <translation id="4361142739114356624">Falta la clave privada de este certificado de cliente o no es válida</translation>
@@ -2333,6 +2345,7 @@
 <translation id="4558426062282641716">Solicitud de permiso de inicio automático</translation>
 <translation id="4558491878126948419">Recibe consejos sobre <ph name="DEVICE_TYPE" /> y novedades sobre los productos de Google, y comparte tu opinión. Puedes cancelar la suscripción en cualquier momento.</translation>
 <translation id="4559617833001311418">Este sitio web tiene acceso a tus sensores de luz o movimiento.</translation>
+<translation id="4561098487691395071">O especifica el archivo PPD de tu impresora</translation>
 <translation id="4562155214028662640">Añadir huella digital</translation>
 <translation id="4563880231729913339">Dedo 3</translation>
 <translation id="4565377596337484307">Ocultar contraseña</translation>
@@ -2577,6 +2590,7 @@
 <translation id="494286511941020793">Ayuda para la configuración de proxy</translation>
 <translation id="4943368462779413526">Balón de fútbol</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" solicita conectarse a un puerto serie</translation>
+<translation id="4944310289250773232">Este servicio de autenticación está alojado por <ph name="SAML_DOMAIN" /></translation>
 <translation id="495170559598752135">Acciones</translation>
 <translation id="4953689047182316270">Responder a eventos de accesibilidad</translation>
 <translation id="4953808748584563296">Avatar naranja predeterminado</translation>
@@ -2669,6 +2683,7 @@
 <translation id="5094721898978802975">Comunicarse con aplicaciones nativas cooperativas</translation>
 <translation id="5097002363526479830">Error al establecer conexión con la red "<ph name="NAME" />": <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Abrir todos los marcadores</translation>
+<translation id="5101839224773798795">Hacer clic automáticamente cuando se detenga el cursor</translation>
 <translation id="5108967062857032718">Configuración - Quitar aplicaciones de Android</translation>
 <translation id="5109044022078737958">Atleta</translation>
 <translation id="5111646998522066203">Salir del modo de incógnito</translation>
@@ -3152,6 +3167,7 @@
 <translation id="5852112051279473187">¡Ups! Algo no ha funcionado como debía al registrar este dispositivo. Inténtalo de nuevo o ponte en contacto con tu representante de asistencia técnica.</translation>
 <translation id="5852137567692933493">Reiniciar y Powerwash</translation>
 <translation id="5854912040170951372">Pizza</translation>
+<translation id="5855643921295613558">0,6 segundos</translation>
 <translation id="5855773610748894548">Vaya, se ha producido un error en el módulo de seguridad.</translation>
 <translation id="5856721540245522153">Habilitar funciones de depuración</translation>
 <translation id="5857090052475505287">Nueva carpeta</translation>
@@ -3441,6 +3457,7 @@
 <translation id="6279183038361895380">Pulsa |<ph name="ACCELERATOR" />| para mostrar el cursor</translation>
 <translation id="6280215091796946657">Iniciar sesión con otra cuenta</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 segundos</translation>
 <translation id="6285120108426285413">El archivo <ph name="FILE_NAME" /> no se descarga habitualmente y puede ser peligroso.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Nueva impresora en tu red}other{Nuevas impresoras en tu red}}</translation>
 <translation id="6286708577777130801">Detalles de contraseña guardada</translation>
@@ -3647,6 +3664,7 @@
 <translation id="6612358246767739896">Contenido protegido</translation>
 <translation id="6613452264606394692">Añade esta página a marcadores para volver a ella rápidamente</translation>
 <translation id="6615455863669487791">Ver</translation>
+<translation id="6617100836880592260">Velocidad de búsqueda: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Conservar de todos modos</translation>
 <translation id="6619058681307408113">Line Printer Daemon (LPD)</translation>
 <translation id="661907246513853610">El sitio web puede registrar tu ubicación</translation>
@@ -4461,6 +4479,7 @@
 <translation id="7831491651892296503">No se ha podido configurar la red</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Hora de finalización</translation>
+<translation id="783214144752121388">Impedir que los sitios web ejecuten Flash (recomendado)</translation>
 <translation id="7833720883933317473">Las palabras personalizadas guardadas aparecerán aquí</translation>
 <translation id="7835178595033117206">Marcador eliminado</translation>
 <translation id="7837776265184002579">Tu página principal ha cambiado a <ph name="URL" />.</translation>
@@ -4516,6 +4535,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Tu contraseña se ha cambiado en el servidor. Cierra la sesión y vuelve a iniciarla.</translation>
 <translation id="7915471803647590281">Debes describir el error.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> s</translation>
 <translation id="792514962475806987">Nivel de zoom fijado:</translation>
 <translation id="7925247922861151263">Error de comprobación de AAA</translation>
 <translation id="7925285046818567682">Esperando a <ph name="HOST_NAME" />...</translation>
@@ -4573,6 +4593,7 @@
 <translation id="7987814697832569482">Conectar siempre a través de esta VPN</translation>
 <translation id="798835209536175951">Envía y recibe mensajes de texto con tu Chromebook. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Habilita las funciones de accesibilidad</translation>
+<translation id="7991296728590311172">Ajustes de accesibilidad mediante interruptores</translation>
 <translation id="7994702968232966508">Método EAP</translation>
 <translation id="7997826902155442747">Prioridad del proceso</translation>
 <translation id="7999229196265990314">Se han creado los siguientes archivos:
@@ -4786,6 +4807,8 @@
 <translation id="8308179586020895837">Preguntar si <ph name="HOST" /> quiere acceder a la cámara</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">El certificado ya existe</translation>
+<translation id="8314381333424235892">Falta la extensión o no está instalada</translation>
+<translation id="8316618172731049784">Enviar a <ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">Añadir conexión de red</translation>
 <translation id="8319414634934645341">Uso mejorado de clave</translation>
 <translation id="8320459152843401447">Toda la pantalla</translation>
@@ -4942,6 +4965,7 @@
 <translation id="8588866096426746242">Mostrar estadísticas del perfil</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" />: proyectando RV a un visor</translation>
 <translation id="8590375307970699841">Configurar actualizaciones automáticas</translation>
+<translation id="8591783563402255548">1 segundo</translation>
 <translation id="8592141010104017453">No mostrar notificaciones</translation>
 <translation id="8593121833493516339">Enviar datos de uso y diagnóstico. Contribuye a mejorar la experiencia de Android de tu hijo enviando automáticamente a Google datos de diagnóstico, del dispositivo y del uso de las aplicaciones. Los datos no se usarán para identificar a tu hijo, sino para aumentar la estabilidad de las aplicaciones y del sistema y realizar otras mejoras. Parte de los datos recogidos también ayudarán a las aplicaciones y los colaboradores de Google, como los desarrolladores de Android. Si la opción Actividad en la Web y en Aplicaciones Adicional está activada, es posible que estos datos se guarden en la cuenta de Google de tu hijo. <ph name="BEGIN_LINK1" />Más información<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Grabar vídeo</translation>
@@ -4971,6 +4995,7 @@
 <translation id="8637688295594795546">Hay disponible una actualización del sistema. Preparando para descargar…</translation>
 <translation id="8639047128869322042">Buscando software dañino...</translation>
 <translation id="8642171459927087831">Token de acceso</translation>
+<translation id="8642900771896232685">2 segundos</translation>
 <translation id="8642947597466641025">Ampliar el tamaño del texto</translation>
 <translation id="8643418457919840804">Para continuar, selecciona una opción:</translation>
 <translation id="8644655801811752511">No se puede restablecer esta llave de seguridad. Intenta restablecer la llave de seguridad inmediatamente después de introducirla.</translation>
@@ -5172,6 +5197,7 @@
 <translation id="8910222113987937043">Los cambios que realices en tus marcadores, tu historial, tus contraseñas y otros ajustes no se sincronizarán con tu cuenta de Google. Sin embargo, tus datos actuales permanecerán almacenados en esa cuenta y se podrán administrar en el <ph name="BEGIN_LINK" />Panel de Control de Google<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">cuenta de Google</translation>
 <translation id="8912793549644936705">Expandir</translation>
+<translation id="8912810933860534797">Habilitar búsqueda automática</translation>
 <translation id="891365694296252935">Enviar datos de uso y diagnóstico. Este dispositivo envía automáticamente a Google datos de diagnóstico, del dispositivo y del uso de las aplicaciones. Los datos no se usarán para identificar a tu hijo, sino para aumentar la estabilidad de las aplicaciones y del sistema y realizar otras mejoras. Parte de los datos recogidos también ayudarán a las aplicaciones y los colaboradores de Google, como los desarrolladores de Android. El propietario ha aplicado este ajuste. Si la opción Actividad en la Web y en Aplicaciones Adicional está activada, es posible que estos datos se guarden en la cuenta de Google de tu hijo. <ph name="BEGIN_LINK1" />Más información<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Cargando sugerencia</translation>
 <translation id="8916476537757519021">Submarco incógnito: <ph name="SUBFRAME_SITE" /></translation>
@@ -5287,6 +5313,7 @@
 <translation id="9094033019050270033">Actualizar contraseña</translation>
 <translation id="9094982973264386462">Quitar</translation>
 <translation id="9095253524804455615">Quitar</translation>
+<translation id="9095388113577226029">Más idiomas...</translation>
 <translation id="9100610230175265781">Se debe introducir una frase de contraseña</translation>
 <translation id="9100765901046053179">Configuración avanzada</translation>
 <translation id="9101691533782776290">Iniciar aplicación</translation>
@@ -5324,6 +5351,7 @@
 <translation id="9153934054460603056">Guardar la identidad y la contraseña</translation>
 <translation id="9154194610265714752">Actualizado</translation>
 <translation id="91568222606626347">Crear acceso directo...</translation>
+<translation id="9157096865782046368">0,8 segundos</translation>
 <translation id="9157697743260533322">Se ha producido un error al configurar las actualizaciones automáticas para todos los usuarios (error de lanzamiento preliminar: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">¡Vaya! Se ha producido un problema de comunicación de red durante el proceso de autenticación. Comprueba tu conexión de red e inténtalo de nuevo.</translation>
 <translation id="916607977885256133">Imagen en imagen</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index a8fa0cc..bf32de9 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Valge vaikeavatar</translation>
 <translation id="1581962803218266616">Näita otsijas</translation>
 <translation id="1584990664401018068">Teie kasutatav WiFi-võrk (<ph name="NETWORK_ID" />) võib nõuda autentimist.</translation>
-<translation id="1585238069289523942">Rakenduste installimine teie Chromebooki</translation>
 <translation id="1585717515139318619">Muu arvutis olev programm lisas teema, mis võib muuta Chrome'i tööd.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Linuxi failide seadistamisel ilmnes viga. Proovige uuesti.</translation>
 <translation id="2315587498123194634">Saada link seadmesse <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Ei, aitäh</translation>
-<translation id="2316739859433277603">Otsib rakenduste käivitajast teie brauseri <ph name="BEGIN_LINK" />otsingumootori seadete<ph name="END_LINK" /> alusel.</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>
@@ -5319,6 +5317,7 @@
 <translation id="9094033019050270033">Värskenda parooli</translation>
 <translation id="9094982973264386462">Eemalda</translation>
 <translation id="9095253524804455615">Eemalda</translation>
+<translation id="9095388113577226029">Rohkem keeli …</translation>
 <translation id="9100610230175265781">Parool on vajalik</translation>
 <translation id="9100765901046053179">Täpsemad seaded</translation>
 <translation id="9101691533782776290">Rakenduse käivitamine</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 196c18f..c466572 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="fa">
+<translation id="1002469766576243227">این خدمات احراز هویت توسط <ph name="EXTENSION_NAME" /> میزبانی می‌شود</translation>
 <translation id="1003088604756913841">باز کردن پیوند در پنجره جدید <ph name="APP" /></translation>
 <translation id="1004218526896219317">دسترسی به سایت</translation>
 <translation id="1005274289863221750">استفاده از میکروفون و دوربین خود</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">همه موارد پاک شدند</translation>
 <translation id="143027896309062157">خواندن و تغییر همه داده‌ها در رایانه‌تان و وب‌سایت‌هایی که بازدید می‌کنید</translation>
 <translation id="1430915738399379752">چاپ</translation>
+<translation id="1431188203598586230">به‌روزرسانی نرم‌افزار نهایی</translation>
 <translation id="1432581352905426595">مدیریت موتورهای جستجو</translation>
 <translation id="1433811987160647649">پیش از دسترسی سؤال شود</translation>
 <translation id="1434696352799406980">این گزینه صفحه شروع، صفحه برگه جدید، موتور جستجو و برگه‌های پین‌شده شما را بازنشانی می‌کند. همچنین همه افزونه‌ها را غیرفعال می‌کند و داده‌های موقتی مانند کوکی‌ها را پاک می‌کند. نشانک‌ها، سابقه و گذرواژه‌های ذخیره‌شده شما پاک نمی‌شوند.</translation>
@@ -381,7 +383,6 @@
 <translation id="1576594961618857597">چهره‌نمای پیش‌فرض سفید</translation>
 <translation id="1581962803218266616">‏نمایش در Finder</translation>
 <translation id="1584990664401018068">‏شبکه Wi-Fi مورد استفاده شما (<ph name="NETWORK_ID" />) احتمالاً نیاز به احراز هویت دارد.</translation>
-<translation id="1585238069289523942">‏نصب برنامه در Chromebook</translation>
 <translation id="1585717515139318619">‏برنامه دیگری در رایانه شما یک طرح زمینه اضافه کرده است که ممکن است نحوه کارکرد Chrome را تغییر دهد.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -525,6 +526,7 @@
 <translation id="1781771911845953849">حساب‌ها و همگام‌سازی</translation>
 <translation id="1782196717298160133">در حال پیدا کردن تلفن خودتان</translation>
 <translation id="1784849162047402014">فضای ذخیره‌سازی دستگاه رو به اتمام است</translation>
+<translation id="1790194216133135334">ارسال پیوند به <ph name="DEVICE_NAME" /></translation>
 <translation id="1792619191750875668">نمایشگر گسترده</translation>
 <translation id="1794791083288629568">برای کمک به ما در رفع این مشکل بازخورد ارسال کنید.</translation>
 <translation id="1795214765651529549">استفاده از کلاسیک</translation>
@@ -587,6 +589,7 @@
 <translation id="1875312262568496299">شروع</translation>
 <translation id="1875387611427697908">این مورد را فقط می‌توان از <ph name="CHROME_WEB_STORE" /> اضافه کرد</translation>
 <translation id="1877520246462554164">کد احراز هویت دریافت نشد. لطفاً از سیستم خارج شوید و برای امتحان مجدد دوباره به سیستم وارد شوید.</translation>
+<translation id="1877860345998737529">تغییر وضعیت اختصاص دادن کلیدها به کنش‌ها</translation>
 <translation id="1879000426787380528">ورود به سیستم به‌عنوان</translation>
 <translation id="1880905663253319515">مجوز "<ph name="CERTIFICATE_NAME" />" حذف شود؟</translation>
 <translation id="1886996562706621347">به سایت‌ها اجازه داده شود درخواست کنند که کنترل‌کننده پیش‌فرض برای پروتکل‌ها شوند (توصیه می‌شود)</translation>
@@ -866,6 +869,7 @@
 <translation id="230927227160767054">این صفحه، می‌خواهد یک کنترل‌کننده سرویس نصب کند.</translation>
 <translation id="2309620859903500144">دسترسی این سایت به حسگرهای نور یا حرکت مسدود شده است.</translation>
 <translation id="2315414688463285945">‏هنگام پیکربندی فایل‌های Linux خطایی روی داد. لطفاً دوباره امتحان کنید.</translation>
+<translation id="2315587498123194634">ارسال پیوند به <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">نه متشکرم</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% کامل شد</translation>
 <translation id="2318143611928805047">اندازه کاغذ</translation>
@@ -906,6 +910,7 @@
 <translation id="2365507699358342471">این سایت می‌تواند به نوشتار و تصاویر کپی‌شده در بریده‌دان دسترسی پیدا کند.</translation>
 <translation id="2367199180085172140">افزودن فایل هم‌رسانی</translation>
 <translation id="2367972762794486313">نمایش برنامه‌ها</translation>
+<translation id="2369105924912929484">نمایش دادن/پنهان کردن محتوای صفحه پالایش‌شده</translation>
 <translation id="2371076942591664043">پس از &amp;تکمیل باز شود</translation>
 <translation id="2375406435414127095">اتصال به تلفن</translation>
 <translation id="2377667304966270281">خطاهای سخت‌افزاری</translation>
@@ -1155,6 +1160,7 @@
 <translation id="2739191690716947896">رفع اشکال</translation>
 <translation id="2739240477418971307">تغییر تنظیمات دسترس‌پذیریتان</translation>
 <translation id="2740393541869613458">وب‌سایت‌های بازدیدشده توسط کاربر نظارت‌شده را بررسی کنید و</translation>
+<translation id="2741912629735277980">نمایش رابط کاربری در صفحه ورود به سیستم</translation>
 <translation id="274290345632688601">‏بازیابی برنامه‌ها و فایل‌های Linux</translation>
 <translation id="2743387203779672305">کپی در بریده‌دان</translation>
 <translation id="2745080116229976798">‏وابستگی مشروط Microsoft</translation>
@@ -1271,6 +1277,7 @@
 <translation id="2910318910161511225">به شبکه متصل شوید و دوباره امتحان کنید</translation>
 <translation id="2913331724188855103">سایت‌ها مجاز به ذخیره و خواندن داده‌های کوکی باشند (توصیه می‌شود)</translation>
 <translation id="2915102088417824677">مشاهده گزارش فعالیت</translation>
+<translation id="2915873080513663243">اسکن-خودکار</translation>
 <translation id="2916073183900451334">‏فشار دادن Tab در صفحهٔ وب، پیوندها و قسمت‌های فرم را برجسته می‌کند</translation>
 <translation id="2916745397441987255">جستجوی افزونه‌ها</translation>
 <translation id="2921081876747860777">لطفاً برای محافظت از داده محلی گذرواژه‌ای ایجاد کنید.</translation>
@@ -1479,6 +1486,7 @@
 <translation id="327147043223061465">مشاهده همه کوکی‌ها و داده‌های سایت</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> می‌خواهد مرتبط شود</translation>
 <translation id="3274763671541996799">شما به حالت تمام صفحه رفته‌اید.</translation>
+<translation id="3275778809241512831">کلید امنیتی داخلی درحال‌حاضر امن نیست. لطفاً این کلید را از هرسرویسی که از آن با این کلید استفاده می‌کنید، بردارید. برای حل این مشکل، لطفاً کلید امنیتی را بازنشانی کنید.</translation>
 <translation id="3275778913554317645">باز کردن به‌عنوان پنجره</translation>
 <translation id="3278001907972365362">‏حساب(های) Google شما به توجه نیاز دارد</translation>
 <translation id="3279230909244266691">این فرایند ممکن است چند دقیقه طول بکشد. درحال شروع دستگاه مجازی.</translation>
@@ -1571,6 +1579,7 @@
 <translation id="3412265149091626468">پرش به انتخاب</translation>
 <translation id="3413122095806433232">‏صادرکنندگان CA: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">اندازه:</translation>
+<translation id="3420501302812554910">کلید امنیتی داخلی باید بازنشانی شود</translation>
 <translation id="3421387094817716717">کلید عمومی منحنی بیضوی</translation>
 <translation id="3423463006624419153">در «<ph name="PHONE_NAME_1" />» و «<ph name="PHONE_NAME_2" />»:</translation>
 <translation id="3423858849633684918">لطفاً <ph name="PRODUCT_NAME" /> را مجدداً راه‌اندازی کنید</translation>
@@ -1599,6 +1608,7 @@
 <translation id="3450157232394774192">درصد اشغال حالت بدون فعالیت</translation>
 <translation id="3453612417627951340">به مجوز نیاز دارد</translation>
 <translation id="3454157711543303649">فعالسازی کامل شد</translation>
+<translation id="3454213325559396544">این آخرین به‌روزرسانی خودکار نرم‌افزار و امنیتی برای این <ph name="DEVICE_TYPE" /> است. برای دریافت به‌روزرسانی‌های بعدی، به مدل جدیدتری ارتقا دهید.</translation>
 <translation id="345693547134384690">باز کردن &amp;تصویر در برگهٔ جدید</translation>
 <translation id="3457500881955698515">شرکت یا سازمانتان از شما می‌خواهد همین حالا این دستگاه را به‌روزرسانی کنید</translation>
 <translation id="3459509316159669723">درحال چاپ</translation>
@@ -1756,6 +1766,7 @@
 <translation id="3672681487849735243">یک خطای کارخانه شناسایی شده است</translation>
 <translation id="367645871420407123">اگر می‌خواهید گذرواژه ریشه را روی مقدار تصویر آرمایشی پیش‌فرض تنظیم کنید، خالی بگذارید</translation>
 <translation id="3677657024345889897">کوتاه‌ترین</translation>
+<translation id="3677911431265050325">درخواست سایت ویژه دستگاه همراه</translation>
 <translation id="3678156199662914018">برنامهٔ افزودنی: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">از بازخوردتان سپاسگزاریم. درحال‌حاضر آفلاین هستید و گزارشتان بعداً ارسال می‌شود.</translation>
 <translation id="3682824389861648626">آستانه حرکت</translation>
@@ -2208,6 +2219,7 @@
 <translation id="4350019051035968019">این دستگاه نمی‌تواند در دامنه‌ای که حسابتان متعلق به آن است، ثبت‌نام کند زیرا دستگاه برای مدیریت توسط دامنه دیگری علامت‌گذاری شده است.</translation>
 <translation id="4354344420232759511">سایت‌هایی که بازدید می‌کنید اینجا نشان داده می‌شود</translation>
 <translation id="435527878592612277">انتخاب عکس</translation>
+<translation id="4358313196493694334">تثبیت مکان کلیک</translation>
 <translation id="4359408040881008151">به دلیل برنامه(های) افزودنی وابسته نصب شد.</translation>
 <translation id="4359717112757026264">نمای شهر</translation>
 <translation id="4361142739114356624">کلید خصوصی برای این گواهی کارخواه موجود نیست یا نامعتبر است</translation>
@@ -2332,6 +2344,7 @@
 <translation id="4558426062282641716">مجوز راه‌اندازی خودکار لازم است</translation>
 <translation id="4558491878126948419">‏نکته‌ها و به‌روزرسانی‌های <ph name="DEVICE_TYPE" /> درباره محصولات Google دریافت کنید و بازخوردتان را هم‌رسانی کنید. هر زمان خواستید اشتراک را لغو کنید.</translation>
 <translation id="4559617833001311418">این سایت به حسگرهای نور یا حرکت دستگاهتان دسترسی دارد.</translation>
+<translation id="4561098487691395071">‏یا PPD چاپگرتان را مشخص کنید</translation>
 <translation id="4562155214028662640">افزودن اثر انگشت</translation>
 <translation id="4563880231729913339">انگشت ۳</translation>
 <translation id="4565377596337484307">عدم نمایش گذرواژه</translation>
@@ -2576,6 +2589,7 @@
 <translation id="494286511941020793">راهنمای پیکربندی پراکسی</translation>
 <translation id="4943368462779413526">فوتبال</translation>
 <translation id="4943691134276646401">«<ph name="CHROME_EXTENSION_NAME" />» می‌خواهد به یک درگاه سریالی متصل شود</translation>
+<translation id="4944310289250773232">این خدمات احراز هویت توسط <ph name="SAML_DOMAIN" /> میزبانی می‌شود</translation>
 <translation id="495170559598752135">کنش‌ها</translation>
 <translation id="4953689047182316270">پاسخ دادن به رویدادهای مربوط به دسترس‌پذیری</translation>
 <translation id="4953808748584563296">چهره‌نمای پیش‌فرض نارنجی</translation>
@@ -2668,6 +2682,7 @@
 <translation id="5094721898978802975">ارتباط با برنامه‌های بومی همکار</translation>
 <translation id="5097002363526479830">اتصال ناموفق به شبکه "<ph name="NAME" />":<ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">باز کردن همه نشانک‌ها</translation>
+<translation id="5101839224773798795">کلیک خودکار با توقف مرورگر</translation>
 <translation id="5108967062857032718">‏تنظیمات - حذف برنامه‌های Android</translation>
 <translation id="5109044022078737958">ورزشکار</translation>
 <translation id="5111646998522066203">خروج از حالت ناشناس</translation>
@@ -3151,6 +3166,7 @@
 <translation id="5852112051279473187">وای! هنگام ثبت این دستگاه واقعا مشکلی روی داد. لطفاً دوباره امتحان کنید یا با نماینده پشتیبانی خود تماس بگیرید.</translation>
 <translation id="5852137567692933493">‏راه‌اندازی مجدد و Powerwash</translation>
 <translation id="5854912040170951372">پیتزا</translation>
+<translation id="5855643921295613558">۰٫۶ ثانیه</translation>
 <translation id="5855773610748894548">وای، خطای مدول امن.</translation>
 <translation id="5856721540245522153">فعال کردن ویژگی‌های رفع اشکال</translation>
 <translation id="5857090052475505287">پوشهٔ جدید</translation>
@@ -3440,6 +3456,7 @@
 <translation id="6279183038361895380">برای نمایش نشان‌گر |<ph name="ACCELERATOR" />| را فشار دهید</translation>
 <translation id="6280215091796946657">ورود به سیستم با حساب دیگر</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">۴ ثانیه</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> معمولاً بارگیری نمی‌شود و ممکن است خطرناک باشد.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{چاپگر جدید در شبکه شما}one{چاپگر جدید در شبکه شما}other{چاپگر جدید در شبکه شما}}</translation>
 <translation id="6286708577777130801">جزئیات گذرواژه ذخیره‌شده</translation>
@@ -3646,6 +3663,7 @@
 <translation id="6612358246767739896">محتوای محافظت‌شده</translation>
 <translation id="6613452264606394692">با نشانک‌گذاری این صفحه، سریع به اینجا بازگردید</translation>
 <translation id="6615455863669487791">به من نشان بده</translation>
+<translation id="6617100836880592260">سرعت اسکن کردن: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">درهرصورت حفظ شود</translation>
 <translation id="6619058681307408113">‏Line Printer Daemon‏ (LPD)</translation>
 <translation id="661907246513853610">سایت می‌تواند مکانتان را ردیابی کند</translation>
@@ -4460,6 +4478,7 @@
 <translation id="7831491651892296503">خطا در پیکربندی شبکه</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">زمان پایان</translation>
+<translation id="783214144752121388">‏اجرای Flash در سایت‌ها مسدود شود (توصیه می‌شود)</translation>
 <translation id="7833720883933317473">کلمات سفارشی ذخیره‌شده در اینجا نشان داده خواهند شد</translation>
 <translation id="7835178595033117206">نشانک حذف شد</translation>
 <translation id="7837776265184002579">صفحه اصلی به <ph name="URL" /> تغییر کرد.</translation>
@@ -4515,6 +4534,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">گذرواژه‌تان در سرور تغییر کرده است. لطفاً از سیستم خارج شوید و سپس دوباره به سیستم وارد شوید.</translation>
 <translation id="7915471803647590281">لطفاً قبل از ارسال بازخورد، به ما بگویید چه اتفاقی در حال وقوع است.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /></translation>
 <translation id="792514962475806987">میزان بزرگ‌نمایی متصل:</translation>
 <translation id="7925247922861151263">‏بررسی AAA انجام نشد</translation>
 <translation id="7925285046818567682">منتظر <ph name="HOST_NAME" />...</translation>
@@ -4572,6 +4592,7 @@
 <translation id="7987814697832569482">‏همیشه ازطریق این VPN اتصال برقرار شود</translation>
 <translation id="798835209536175951">‏ارسال و دریافت پیامک از Chromebook. <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">فعالسازی ویژگی‌های دسترسی</translation>
+<translation id="7991296728590311172">تنظیمات دسترسی سوئیچ</translation>
 <translation id="7994702968232966508">‏روش EAP</translation>
 <translation id="7997826902155442747">پردازش اولویت‌دار</translation>
 <translation id="7999229196265990314">فایل‌های زیر ایجاد شده است:
@@ -4785,6 +4806,8 @@
 <translation id="8308179586020895837">اگر <ph name="HOST" /> می‌خواهد به دوربین شما دسترسی داشته باشد از من سوال شود</translation>
 <translation id="830868413617744215">بتا</translation>
 <translation id="8309458809024885768">گواهی درحال‌حاضر وجود دارد</translation>
+<translation id="8314381333424235892">افزونه وجود ندارد یا حذف نصب شده است</translation>
+<translation id="8316618172731049784">ارسال به <ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">افزودن اتصال شبکه</translation>
 <translation id="8319414634934645341">کاربرد کلید توسعه یافته</translation>
 <translation id="8320459152843401447">کل صفحه‌تان</translation>
@@ -4941,6 +4964,7 @@
 <translation id="8588866096426746242">نمایش آمار نمایه</translation>
 <translation id="8588868914509452556">‏<ph name="WINDOW_TITLE" /> - VR برای هدست ارائه می‌شود</translation>
 <translation id="8590375307970699841">راه‌اندازی به‌روزرسانی‌های خودکار</translation>
+<translation id="8591783563402255548">۱ ثانیه</translation>
 <translation id="8592141010104017453">هرگز اعلان نشان داده نشود</translation>
 <translation id="8593121833493516339">‏داده‌های استفاده و عیب‌یابی را ارسال کنید. با ارسال خودکار داده‌های عیب‌یابی و داده‌های استفاده از دستگاه و برنامه به Google به بهبود تجربه Android خود کمک کنید. این داده‌ها برای شناسایی فرزندتان استفاده نخواهند شد و به بهبود پایداری سیستم و برنامه و موارد دیگر کمک خواهد کرد. بعضی داده‌های انبوه نیز به برنامه‌ها و شرکای Google (مانند برنامه‌نویس‌های Android) کمک می‌کند. اگر «فعالیت وب و برنامه» تکمیلی برای فرزندتان روشن باشد، ممکن است این داده‌ها در حساب Google او ذخیره شود. <ph name="BEGIN_LINK1" />بیشتر بدانید<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">فیلم‌برداری</translation>
@@ -4970,6 +4994,7 @@
 <translation id="8637688295594795546">به‌روزرسانی سیستم موجود است. در حال آماده سازی برای بارگیری...</translation>
 <translation id="8639047128869322042">درحال بررسی وجود نرم‌افزار مضر...</translation>
 <translation id="8642171459927087831">کد دسترسی</translation>
+<translation id="8642900771896232685">۲ ثانیه</translation>
 <translation id="8642947597466641025">طولانی تر کردن متن</translation>
 <translation id="8643418457919840804">برای ادامه، گزینه‌ای را انتخاب کنید:</translation>
 <translation id="8644655801811752511">نمی‌توان این کلید امنیتی را بازنشانی کرد. بازنشاندن این کلید را بلافاصله پس از وارد کردنش امتحان کنید.</translation>
@@ -5171,6 +5196,7 @@
 <translation id="8910222113987937043">‏تغییرات ایجادشده در نشانک‌ها، سابقه، گذرواژه‌ها و سایر تنظیمات شما با حساب Google شما دیگر همگام‌سازی نخواهد شد. بااین‌وجود داده‌های قبلاً ذخیره‌شده در حساب Google شما در آنجا می‌مانند و در <ph name="BEGIN_LINK" />داشبورد Google<ph name="END_LINK" /> می‌توانید آن‌ها را مدیریت کنید.</translation>
 <translation id="8912362522468806198">‏حساب Google</translation>
 <translation id="8912793549644936705">گسترده کردن</translation>
+<translation id="8912810933860534797">فعال کردن اسکن خودکار</translation>
 <translation id="891365694296252935">‏داده‌های استفاده و عیب‌یابی را ارسال کنید. این دستگاه درحال‌حاضر به‌صورت‌ خودکار داده‌های عیب‌یابی و داده‌های استفاده از دستگاه و برنامه را برای Google ارسال می‌کند. این داده‌ها برای شناسایی فرزندتان استفاده نخواهند شد و به بهبود پایداری سیستم و برنامه و موارد دیگر کمک خواهد کرد. بعضی داده‌های انبوه نیز به برنامه‌ها و شرکای Google (مانند برنامه‌نویس‌های Android) کمک می‌کند. این تنظیم توسط مالک اعمال می‌شود. اگر «فعالیت وب و برنامه» تکمیلی برای فرزندتان روشن باشد، ممکن است این داده‌ها در حساب Google او ذخیره شود. <ph name="BEGIN_LINK1" />بیشتر بدانید<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">در حال بارگیری پیشنهادات</translation>
 <translation id="8916476537757519021">قاب فرعی ناشناس: <ph name="SUBFRAME_SITE" /></translation>
@@ -5286,6 +5312,7 @@
 <translation id="9094033019050270033">به‌روزرسانی گذرواژه</translation>
 <translation id="9094982973264386462">پاک کردن</translation>
 <translation id="9095253524804455615">پاک کردن</translation>
+<translation id="9095388113577226029">زبان‌های بیشتر...</translation>
 <translation id="9100610230175265781">عبارت عبور لازم است</translation>
 <translation id="9100765901046053179">تنظیمات پیشرفته</translation>
 <translation id="9101691533782776290">راه‌اندازی برنامه</translation>
@@ -5323,6 +5350,7 @@
 <translation id="9153934054460603056">ذخیره شناسه و رمز عبور</translation>
 <translation id="9154194610265714752">به‌روزرسانی ‌شد</translation>
 <translation id="91568222606626347">ایجاد میان‌بر...</translation>
+<translation id="9157096865782046368">۰٫۸ ثانیه</translation>
 <translation id="9157697743260533322">راه‌اندازی به‌روزرسانی‌های خودکار برای همه کاربران انجام نشد (خطای راه‌اندازی قبل از تولید: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">اوه! هنگام راستی‌آزمایی مشکلی در ارتباط شبکه رخ داد. لطفاً اتصال شبکه را بررسی کنید و دوباره امتحان کنید.</translation>
 <translation id="916607977885256133">تصویر در تصویر</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index aefa475..b6b123e 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Valkoinen oletusavatar</translation>
 <translation id="1581962803218266616">Näytä Finderissä</translation>
 <translation id="1584990664401018068">Käyttämäsi Wi-Fi-verkko (<ph name="NETWORK_ID" />) saattaa edellyttää todennusta.</translation>
-<translation id="1585238069289523942">Asentaa sovelluksia Chromebookille</translation>
 <translation id="1585717515139318619">Toinen tietokoneellasi oleva ohjelma on lisännyt teeman, joka voi muuttaa Chromen toimintaa.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Virhe Linux-tiedostojen määrittämisessä. Yritä uudelleen.</translation>
 <translation id="2315587498123194634">Lähetä linkki: <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Ei kiitos</translation>
-<translation id="2316739859433277603">Sovelluksien käynnistysohjelmasta tehdyt haut käyttävät selaimen <ph name="BEGIN_LINK" />hakukoneasetusta<ph name="END_LINK" />.</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>
@@ -5317,6 +5315,7 @@
 <translation id="9094033019050270033">Päivitä salasana</translation>
 <translation id="9094982973264386462">Poista</translation>
 <translation id="9095253524804455615">Poista</translation>
+<translation id="9095388113577226029">Lisää kieliä…</translation>
 <translation id="9100610230175265781">Tunnuslause tarvitaan</translation>
 <translation id="9100765901046053179">Lisäasetukset</translation>
 <translation id="9101691533782776290">Käynnistä sovellus</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index caa9739..cf41d55 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -384,7 +384,6 @@
 <translation id="1576594961618857597">Default na puting avatar</translation>
 <translation id="1581962803218266616">Show in Finder</translation>
 <translation id="1584990664401018068">Maaaring mangailangan ng pagpapatotoo ang Wi-Fi network na ginagamit mo (<ph name="NETWORK_ID" />).</translation>
-<translation id="1585238069289523942">Mag-install ng mga app sa iyong Chromebook</translation>
 <translation id="1585717515139318619">Isa pang program sa iyong computer ang nagdagdag tema na maaaring magpabago sa paraan ng paggana ng Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -5292,6 +5291,7 @@
 <translation id="9094033019050270033">I-update ang password</translation>
 <translation id="9094982973264386462">Alisin</translation>
 <translation id="9095253524804455615">Alisin</translation>
+<translation id="9095388113577226029">Higit pang wika...</translation>
 <translation id="9100610230175265781">Kinakailangan ang passphrase</translation>
 <translation id="9100765901046053179">Mga advanced na setting</translation>
 <translation id="9101691533782776290">Ilunsad ang app</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 1735f8e..dde92f6 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Avatar blanc par défaut</translation>
 <translation id="1581962803218266616">Afficher dans le Finder</translation>
 <translation id="1584990664401018068">Pour utiliser ce réseau Wi-Fi (<ph name="NETWORK_ID" />), vous devrez peut-être vous identifier.</translation>
-<translation id="1585238069289523942">Installer des applications sur votre Chromebook</translation>
 <translation id="1585717515139318619">Un thème qui risque de modifier le fonctionnement de Chrome a été ajouté via un autre programme sur votre ordinateur.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Erreur lors de la configuration des fichiers Linux. Veuillez réessayer.</translation>
 <translation id="2315587498123194634">Envoyer le lien sur <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Non merci</translation>
-<translation id="2316739859433277603">Les recherches lancées depuis le lanceur d'applications utilisent les <ph name="BEGIN_LINK" />paramètres du moteur de recherche<ph name="END_LINK" /> de votre navigateur.</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>
@@ -5319,6 +5317,7 @@
 <translation id="9094033019050270033">Modifier le mot de passe</translation>
 <translation id="9094982973264386462">Supprimer</translation>
 <translation id="9095253524804455615">Supprimer</translation>
+<translation id="9095388113577226029">Plus de langues…</translation>
 <translation id="9100610230175265781">Veuillez saisir la phrase secrète.</translation>
 <translation id="9100765901046053179">Paramètres avancés</translation>
 <translation id="9101691533782776290">Lancer l'application</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 35cdee0..1351cad 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="gu">
+<translation id="1002469766576243227">આ પ્રમાણીકરણ સેવા <ph name="EXTENSION_NAME" /> દ્વારા હોસ્ટ કરવામાં આવે છે</translation>
 <translation id="1003088604756913841">નવી <ph name="APP" /> વિંડોમાં લિંક ખોલો</translation>
 <translation id="1004218526896219317">સાઇટ ઍક્સેસ</translation>
 <translation id="1005274289863221750">તમારા માઇક્રોફોનનો અને કૅમેરાનો ઉપયોગ કરો</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">બધી એન્ટ્રી સાફ કરી</translation>
 <translation id="143027896309062157">તમે મુલાકાત લો છો તે વેબસાઇટ્સ અને તમારા કમ્પ્યુટર પરના તમારા ડેટાને વાંચો અને બદલો</translation>
 <translation id="1430915738399379752">પ્રિન્ટ</translation>
+<translation id="1431188203598586230">ફાયનલ સૉફ્ટવેર અપડેટ</translation>
 <translation id="1432581352905426595">શોધ એંજિન્સ સંચાલિત કરો</translation>
 <translation id="1433811987160647649">ઍક્સેસ કરતાં પહેલાં પૂછો</translation>
 <translation id="1434696352799406980">આ તમારા સ્ટાર્ટઅપ પેજ, નવું ટેબ પેજ, શોધ એંજિન અને પિન કરેલ ટેબને રીસેટ કરશે. તે તમામ એક્સટેન્શનને પણ બંધ કરશે અને કુકી જેવો અસ્થાયી ડેટા પણ કાઢી નાંખશે. તમારા બુકમાર્ક, ઇતિહાસ અને સાચવેલાં પાસવર્ડ કાઢી નાંખવામાં આવશે નહિ.</translation>
@@ -381,7 +383,6 @@
 <translation id="1576594961618857597">ડિફોલ્ટ સફેદ અવતાર</translation>
 <translation id="1581962803218266616">ફાઇન્ડર માં બતાવો</translation>
 <translation id="1584990664401018068">તમે ઉપયોગમાં લઈ રહ્યા છો તે વાઇ-ફાઇ (<ph name="NETWORK_ID" />) માટે, પ્રમાણીકરણની જરૂર હોઈ શકે છે.</translation>
-<translation id="1585238069289523942">તમારી Chromebook પર ઍપ ઇન્સ્ટૉલ કરો</translation>
 <translation id="1585717515139318619">તમારા કમ્પ્યુટર પરના બીજા પ્રોગ્રામે કોઇ થીમ ઉમેરી છે જે Chrome ની કાર્યપદ્ધતિમાં ફેરફાર કરી શકે છે.
 <ph name="EXTENSION_NAME" /></translation>
 <translation id="1587275751631642843">&amp;JavaScript કન્સોલ</translation>
@@ -524,6 +525,7 @@
 <translation id="1781771911845953849">એકાઉન્ટ અને સિંક</translation>
 <translation id="1782196717298160133">તમારો ફોન શોધી રહ્યું છે</translation>
 <translation id="1784849162047402014">ઉપકરણમાં ડિસ્ક સ્થાન ઓછું છે</translation>
+<translation id="1790194216133135334">લિંક <ph name="DEVICE_NAME" /> પર મોકલો</translation>
 <translation id="1792619191750875668">વિસ્તૃત ડિસ્પ્લે</translation>
 <translation id="1794791083288629568">આ સમસ્યાને ઠીક કરવામાં અમારી સહાય કરવા માટે પ્રતિસાદ મોકલો.</translation>
 <translation id="1795214765651529549">ક્લાસિકનો ઉપયોગ કરો</translation>
@@ -586,6 +588,7 @@
 <translation id="1875312262568496299">શરૂ કરો</translation>
 <translation id="1875387611427697908">આ ફક્ત <ph name="CHROME_WEB_STORE" />માંથી જ ઉમેરી શકાશે</translation>
 <translation id="1877520246462554164">પ્રમાણીકરણ ટોકન મેળવવામાં નિષ્ફળ. કૃપા કરીને ફરીથી પ્રયાસ કરવા સાઇન આઉટ કરો પછી ફરીથી સાઇન ઇન કરો.</translation>
+<translation id="1877860345998737529">ક્રિયાની સોંપણી સ્વિચ કરો</translation>
 <translation id="1879000426787380528">આ એકાઉન્ટથી સાઇન ઇન કરો</translation>
 <translation id="1880905663253319515">પ્રમાણપત્ર "<ph name="CERTIFICATE_NAME" />" ડિલીટ કરી દઈએ?</translation>
 <translation id="1886996562706621347">પ્રોટોકૉલ્સ માટે ડિફૉલ્ટ હેન્ડલર્સ બનવા માટે સાઇટને પૂછવાની મંજૂરી આપો (ભલામણ કરેલ)</translation>
@@ -865,6 +868,7 @@
 <translation id="230927227160767054">આ પૃષ્ઠ સેવા હેન્ડલર ઇન્સ્ટોલ કરવા માગે છે.</translation>
 <translation id="2309620859903500144">આ સાઇટને તમારા મોશન અથવા લાઇટ સેન્સરને ઍક્સેસ કરવાથી બ્લૉક કરવામાં આવી છે.</translation>
 <translation id="2315414688463285945">Linux ફાઇલોની ગોઠવણ કરવામાં ભૂલ. કૃપા કરીને ફરીથી પ્રયાસ કરો.</translation>
+<translation id="2315587498123194634">લિંક <ph name="DEVICE_NAME" /> પર મોકલો</translation>
 <translation id="2316129865977710310">નહીં, આભાર</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% થઈ ગયું</translation>
 <translation id="2318143611928805047">કાગળનું કદ</translation>
@@ -905,6 +909,7 @@
 <translation id="2365507699358342471">આ સાઇટ ક્લિપબોર્ડ પર કૉપિ કરેલ ટેક્સ્ટ અને છબીઓ જોઈ શકે છે.</translation>
 <translation id="2367199180085172140">ફાઇલ શેર ઉમેરો</translation>
 <translation id="2367972762794486313">ઍપ્લિકેશનો બતાવો</translation>
+<translation id="2369105924912929484">શામેલ પેજ કન્ટેન્ટ ટૉગલ કરો</translation>
 <translation id="2371076942591664043">&amp;પૂર્ણ થાય ત્યારે ખોલો</translation>
 <translation id="2375406435414127095">તમારા ફોન સાથે કનેક્ટ કરો</translation>
 <translation id="2377667304966270281">Hard Faults</translation>
@@ -1155,6 +1160,7 @@
 <translation id="2739191690716947896">ડીબગ કરો</translation>
 <translation id="2739240477418971307">તમારી ઍક્સેસિબિલિટી સેટિંગ્સ બદલો</translation>
 <translation id="2740393541869613458">નિરીક્ષિણ વપરાશકર્તાએ મુલાકાત લીધેલી વેબસાઇટનો રિવ્યૂ કરો, અને</translation>
+<translation id="2741912629735277980">લૉગ ઇન સ્ક્રીન પર ડિસ્પ્લે બતાવો</translation>
 <translation id="274290345632688601">Linux ઍપ અને ફાઇલોની પુનઃસ્થાપના કરી રહ્યાં છીએ</translation>
 <translation id="2743387203779672305">ક્લિપબોર્ડ પર કૉપિ કરો</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
@@ -1271,6 +1277,7 @@
 <translation id="2910318910161511225">નેટવર્કથી કનેક્ટ કરો અને ફરીથી પ્રયાસ કરો</translation>
 <translation id="2913331724188855103">સાઇટને કૂકી ડેટા સાચવવા અને વાંચવાની મંજૂરી આપો (ભલામણ કરેલ)</translation>
 <translation id="2915102088417824677">પ્રવૃત્તિ લૉગ જુઓ</translation>
+<translation id="2915873080513663243">ઑટો સ્કેન</translation>
 <translation id="2916073183900451334">વેબપેજ પર ટૅબને દબાવવાથી લિંકની સાથે ફોર્મ ફીલ્ડ હાઇલાઇટ થાય છે</translation>
 <translation id="2916745397441987255">એક્સ્ટેન્શન્સ શોધો</translation>
 <translation id="2921081876747860777">તમારો સ્થાનિક ડેટા સુરક્ષિત કરવા માટે કૃપા કરીને એક પાસવર્ડ બનાવો.</translation>
@@ -1479,6 +1486,7 @@
 <translation id="327147043223061465">બધી કુકીઝ અને સાઇટ ડેટા જુઓ</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" />, કનેક્ટ કરવા માગે છે</translation>
 <translation id="3274763671541996799">તમે પૂર્ણ સ્ક્રીન પર ગયા છો.</translation>
+<translation id="3275778809241512831">તમારી આંતરિક સિક્યુરિટી કી હાલમાં અસુરક્ષિત છે. કૃપા કરીને તે કીને તે બધી સેવાઓમાંથી કાઢી નાખો કે જેની સાથે તમે તેનો ઉપયોગ કરતા હોય. આ સમસ્યાને હલ કરવા માટે, કૃપા કરીને સિક્યુરિટી કી રીસેટ કરો.</translation>
 <translation id="3275778913554317645">વિંડો તરીકે ખોલો</translation>
 <translation id="3278001907972365362">તમારા Google એકાઉન્ટ પર ધ્યાન આપવાની જરૂર છે</translation>
 <translation id="3279230909244266691">આ પ્રક્રિયામાં થોડો સમય લાગી શકે છે. વર્ચ્યુઅલ મશીન શરૂ કરી રહ્યાં છીએ.</translation>
@@ -1571,6 +1579,7 @@
 <translation id="3412265149091626468">પસંદગી પર જાઓ</translation>
 <translation id="3413122095806433232">CA રજૂકર્તાઓ: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">કદ:</translation>
+<translation id="3420501302812554910">રીસેટ કરવા માટે આંતરિક સિક્યુરિટી કી જરૂરી છે</translation>
 <translation id="3421387094817716717">એલિપ્ટિક કર્વ સાર્વજનિક કી</translation>
 <translation id="3423463006624419153">તમારા '<ph name="PHONE_NAME_1" />' અને '<ph name="PHONE_NAME_2" />' પર:</translation>
 <translation id="3423858849633684918">કૃપા કરીને <ph name="PRODUCT_NAME" /> ને ફરીથી લોંચ કરો</translation>
@@ -1599,6 +1608,7 @@
 <translation id="3450157232394774192">નિષ્ક્રિય સ્થિતિ અક્યુપન્સિ ટકા</translation>
 <translation id="3453612417627951340">પ્રમાણિતની જરૂર છે</translation>
 <translation id="3454157711543303649">સક્રિયતા પૂર્ણ</translation>
+<translation id="3454213325559396544">આ <ph name="DEVICE_TYPE" /> માટે આ છેલ્લું ઑટોમૅટિક સૉફ્ટવેર અને સુરક્ષા અપડેટ છે. ભાવિ અપડેટ મેળવવા માટે, નવા મૉડલ પર અપગ્રેડ કરો.</translation>
 <translation id="345693547134384690">નવા ટૅબમાં &amp;છબી ખોલો</translation>
 <translation id="3457500881955698515">તમારી કંપની અથવા સંસ્થા માટે આ ડિવાઇસનું અત્યારે જ એક અપડેટ જરૂરી છે</translation>
 <translation id="3459509316159669723">છાપવું</translation>
@@ -1756,6 +1766,7 @@
 <translation id="3672681487849735243">એક ફેક્ટરી ભૂલ શોધવામાં આવી છે</translation>
 <translation id="367645871420407123">જો તમે રૂટ પાસવર્ડને ડિફૉલ્ટ પરીક્ષણ છબી મૂલ્ય પર સેટ કરવા માંગતા હો તો ખાલી છોડો</translation>
 <translation id="3677657024345889897">પૂર્ણ શાંતતા</translation>
+<translation id="3677911431265050325">મોબાઇલ સાઇટની વિનંતી કરો</translation>
 <translation id="3678156199662914018">એક્સ્ટેંશન: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">તમારા પ્રતિસાદ બદલ આભાર. તમે હમણાં ઑફલાઇન છો અને તમારી રિપોર્ટ પછીથી મોકલવામાં આવશે.</translation>
 <translation id="3682824389861648626">ગતિવિધિનો થ્રેશોલ્ડ</translation>
@@ -2208,6 +2219,7 @@
 <translation id="4350019051035968019">તમારું એકાઉન્ટ જે ડોમેનથી સંબંધિત છે, તેમાં આ ડિવાઇસની નોંધણી કરી શકાતી નથી, કારણ કે ડિવાઇસને મેનેજ કરવા માટે કોઈ અલગ ડોમેન દ્વારા ચિહ્નિત કરેલું છે.</translation>
 <translation id="4354344420232759511">તમે મુલાકાત લીધેલી સાઇટ અહીં દેખાશે</translation>
 <translation id="435527878592612277">તમારો ફોટો પસંદ કરો</translation>
+<translation id="4358313196493694334">ક્લિક સ્થાન સ્થિર રાખો</translation>
 <translation id="4359408040881008151">નિર્ભર એક્સ્ટેન્શન(એક્સ્ટેન્શન્સ)ને લીધે ઇન્સ્ટોલ કર્યું.</translation>
 <translation id="4359717112757026264">સિટિસ્કેપ</translation>
 <translation id="4361142739114356624">આ ક્લાઇન્ટ પ્રમાણપત્ર માટેની ખાનગી કી ખૂટે છે અથવા તો અમાન્ય છે</translation>
@@ -2332,6 +2344,7 @@
 <translation id="4558426062282641716">સ્વતઃલોંચ પરવાનગીની વિનંતી કરી</translation>
 <translation id="4558491878126948419">Google પ્રોડક્ટ વિશે <ph name="DEVICE_TYPE" /> ટિપ અને અપડેટ મેળવો તેમજ પ્રતિસાદ શેર કરો. કોઈપણ સમયે અનસબ્સ્ક્રાઇબ કરો.</translation>
 <translation id="4559617833001311418">આ સાઇટ તમારા મોશન અથવા લાઇટ સેન્સર ઍક્સેસ કરી રહી છે.</translation>
+<translation id="4561098487691395071">અથવા તમારા પ્રિન્ટરની PPD ફાઇલનો ઉલ્લેખ કરો</translation>
 <translation id="4562155214028662640">ફિંગરપ્રિન્ટ ઉમેરો</translation>
 <translation id="4563880231729913339">આંગળી 3</translation>
 <translation id="4565377596337484307">પાસવર્ડ છુપાવો</translation>
@@ -2576,6 +2589,7 @@
 <translation id="494286511941020793">પ્રૉક્સી ગોઠવણી સહાય</translation>
 <translation id="4943368462779413526">ફૂટબૉલ</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" સિરીઅલ પોર્ટ સાથે કનેક્ટ કરવા માગે છે</translation>
+<translation id="4944310289250773232">આ પ્રમાણીકરણ સેવા <ph name="SAML_DOMAIN" /> દ્વારા હોસ્ટ કરવામાં આવે છે</translation>
 <translation id="495170559598752135">ક્રિયાઓ</translation>
 <translation id="4953689047182316270">ઍક્સેસિબિલિટી ઇવેન્ટનો જવાબ આપો</translation>
 <translation id="4953808748584563296">ડિફોલ્ટ નારંગી અવતાર</translation>
@@ -2668,6 +2682,7 @@
 <translation id="5094721898978802975">સહયોગ કરતી મૂળ ઍપ્લિકેશન સાથે સંચાર કરો</translation>
 <translation id="5097002363526479830">નેટવર્ક '<ph name="NAME" />' થી કનેક્ટ કરવામાં નિષ્ફળ: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">બધા બુકમાર્ક ખોલો</translation>
+<translation id="5101839224773798795">કર્સર રોકાઈ જાય ત્યારે ઑટોમૅટિક રીતે ક્લિક કરો</translation>
 <translation id="5108967062857032718">સેટિંગ્સ - Android ઍપ્લિકેશનો દૂર કરો</translation>
 <translation id="5109044022078737958">મિઆ</translation>
 <translation id="5111646998522066203">છૂપા મોડથી બહાર નીકળો</translation>
@@ -3152,6 +3167,7 @@
 <translation id="5852112051279473187">અરે! આ ડિવાઇસની નોંધણી કરતી વખતે ખરેખર કંઈક ખોટું થયું હતું. કૃપા કરીને ફરી પ્રયાસ કરો અથવા તમારા સપોર્ટ પ્રતિનિધિનો સંપર્ક કરો.</translation>
 <translation id="5852137567692933493">પુનઃપ્રારંભ કરો અને પાવરવૉશ કરો</translation>
 <translation id="5854912040170951372">સ્લાઇસ</translation>
+<translation id="5855643921295613558">0.6 સેકન્ડ</translation>
 <translation id="5855773610748894548">અરેરે, સુરક્ષિત મોડ્યુલમાં ભૂલ આવી.</translation>
 <translation id="5856721540245522153">ડિબગિંગ સુવિધાઓ ચાલુ કરો</translation>
 <translation id="5857090052475505287">નવું ફોલ્ડર</translation>
@@ -3442,6 +3458,7 @@
 <translation id="6279183038361895380">તમારા કર્સરને બતાવવા માટે |<ph name="ACCELERATOR" />| દબાવો</translation>
 <translation id="6280215091796946657">એક અલગ એકાઉન્ટ સાથે સાઇન ઇન કરો</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 સેકન્ડ</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> સામાન્ય રીતે ડાઉનલોડ થયેલું નથી અને જોખમકારક હોઈ શકે છે.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{તમારા નેટવર્ક પર નવું પ્રિન્ટર}one{તમારા નેટવર્ક પર નવા પ્રિન્ટર્સ}other{તમારા નેટવર્ક પર નવા પ્રિન્ટર્સ}}</translation>
 <translation id="6286708577777130801">સાચવેલ પાસવર્ડની વિગતો</translation>
@@ -3648,6 +3665,7 @@
 <translation id="6612358246767739896">સુરક્ષિત કન્ટેન્ટ</translation>
 <translation id="6613452264606394692">આ પેજને બુકમાર્ક કરીને તમે અહીંં ઝડપથી પાછા ફરી શકશો</translation>
 <translation id="6615455863669487791">મને બતાવો</translation>
+<translation id="6617100836880592260">સ્કૅન કરવાની ઝડપ: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">તો પણ રાખો</translation>
 <translation id="6619058681307408113">લાઇન પ્રિન્ટર ડેમન (LPD)</translation>
 <translation id="661907246513853610">સાઇટ તમારા સ્થાનને ટ્રૅક કરી શકે છે</translation>
@@ -4461,6 +4479,7 @@
 <translation id="7831491651892296503">નેટવર્કની ગોઠવણી કરતી વખતે ભૂલ આવી</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">સમાપ્તિ સમય</translation>
+<translation id="783214144752121388">સાઇટને ફ્લૅશ (સુઝાવ આપેલ) ચલાવવાથી બ્લૉક કરો</translation>
 <translation id="7833720883933317473">સાચવેલ કસ્ટમ શબ્દો અહીં દેખાશે</translation>
 <translation id="7835178595033117206">બુકમાર્ક કાઢી નાખ્યું</translation>
 <translation id="7837776265184002579">તમારું હોમપેજ, <ph name="URL" /> પર બદલ્યું હતું.</translation>
@@ -4516,6 +4535,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">સર્વર પર તમારો પાસવર્ડ બદલાઈ ગયો છે. કૃપા કરી સાઇન આઉટ કરો પછી ફરીથી સાઇન ઇન કરો.</translation>
 <translation id="7915471803647590281">કૃપા કરીને પ્રતિસાદ મોકલતા પહેલા શું થઈ રહ્યું છે તે અમને કહો.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" />સેકન્ડ</translation>
 <translation id="792514962475806987">ડૉક કરેલ ઝૂમ લેવલ:</translation>
 <translation id="7925247922861151263">AAA તપાસ નિષ્ફળ</translation>
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> ની પ્રતીક્ષા કરે છે...</translation>
@@ -4573,6 +4593,7 @@
 <translation id="7987814697832569482">હંમેશાં આ VPN મારફત કનેક્ટ કરો</translation>
 <translation id="798835209536175951">તમારી Chromebookમાંથી ટેક્સ્ટ સંદેશા મોકલો અને મેળવો. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">ઍક્સેસિબિલિટી સુવિધાઓ ચાલુ કરો</translation>
+<translation id="7991296728590311172">સ્વિચ ઍક્સેસ સેટિંગ</translation>
 <translation id="7994702968232966508">EAP પદ્ધતિ</translation>
 <translation id="7997826902155442747">પ્રાધાન્યતા પર પ્રક્રિયા કરો</translation>
 <translation id="7999229196265990314">નીચેની ફાઇલો બનાવાઈ: એક્સટેન્શન: <ph name="EXTENSION_FILE" />કી ફાઇલ: <ph name="KEY_FILE" />તમારી કી ફાઇલને સુરક્ષિત સ્થાન પર મૂકો. તમને તેની જરૂરિયાત તમારા એક્સટેન્શનના નવા સંસ્કરણ બનાવવા માટે પડશે.</translation>
@@ -4781,6 +4802,8 @@
 <translation id="8308179586020895837"><ph name="HOST" /> તમારા કૅમેરાને ઍક્સેસ કરવા માંગે છે કે કેમ તે પૂછો</translation>
 <translation id="830868413617744215">બીટા</translation>
 <translation id="8309458809024885768">પ્રમાણપત્ર પહેલાંથી અસ્તિત્વમાં છે</translation>
+<translation id="8314381333424235892">એક્સ્ટેંશન ખૂટે છે અથવા અનઇન્સ્ટૉલ કરેલું છે</translation>
+<translation id="8316618172731049784"><ph name="DEVICE_NAME" /> પર મોકલો</translation>
 <translation id="8317671367883557781">નેટવર્ક કનેક્શન ઉમેરો</translation>
 <translation id="8319414634934645341">વિસ્તૃત કી ઉપયોગ</translation>
 <translation id="8320459152843401447">તમારી સંપૂર્ણ સ્ક્રીન</translation>
@@ -4937,6 +4960,7 @@
 <translation id="8588866096426746242">પ્રોફાઇલના આંકડા બતાવો</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - હૅડસેટ પર VR પ્રસ્તુત કરે છે</translation>
 <translation id="8590375307970699841">સ્વચાલિત અપડેટ્સ સેટ કરો</translation>
+<translation id="8591783563402255548">1 સેકન્ડ</translation>
 <translation id="8592141010104017453">કોઈપણ નોટિફિકેશન બતાવશો નહીં</translation>
 <translation id="8593121833493516339">વપરાશ અને નિદાનનો ડેટા મોકલો. Googleને નિદાન, ડિવાઇસ અને ઍપ વપરાશનો ડેટા ઑટોમૅટિક રીતે મોકલીને તમારા બાળકના Android અનુભવને બહેતર બનાવવામાં સહાય કરો. આનો ઉપયોગ તમારા બાળકને ઓળખવા માટે થશે નહીં અને સિસ્ટમ અને ઍપની સ્થિરતા અને અન્ય સુધારણાઓમાં સહાય કરશે. એકત્રીકરણ કરેલો કેટલોક ડેટા Google ઍપ અને ભાગીદારોને પણ મદદ કરશે, જેમ કે Android ડેવલપર. જો તમારા બાળક માટે વધારાની વેબ અને ઍપ પ્રવૃત્તિ સેટિંગ ચાલુ હોય, તો આ ડેટા તેમના Google એકાઉન્ટમાં સાચવવામાં આવી શકે છે. <ph name="BEGIN_LINK1" />વધુ જાણો<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">વીડિયો કૅપ્ચર કરો</translation>
@@ -4966,6 +4990,7 @@
 <translation id="8637688295594795546">સિસ્ટમ અપડેટ ઉપલબ્ધ છે. ડાઉનલોડ કરવા માટે તૈયાર થઈ રહ્યું છે...</translation>
 <translation id="8639047128869322042">નુકસાનકારક સૉફ્ટવેરની તપાસ કરી રહ્યાં છીએ…</translation>
 <translation id="8642171459927087831">ઍક્સેસ ટોકન</translation>
+<translation id="8642900771896232685">2 સેકન્ડ</translation>
 <translation id="8642947597466641025">ટેક્સ્ટ મોટો કરો</translation>
 <translation id="8643418457919840804">આગળ વધવા માટે, એક વિકલ્પ પસંદ કરો:</translation>
 <translation id="8644655801811752511">સુરક્ષા કોડ રીસેટ કરી શકાતો નથી. કોડ શામેલ કર્યા પછી તરત જ તેને રીસેટ કરવાનો પ્રયાસ કરો.</translation>
@@ -5167,6 +5192,7 @@
 <translation id="8910222113987937043">તમારા બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને બીજા સેટિંગ પરના ફેરફારો હવે તમારો અસ્તિત્વમાંનો ડેટા, તમારા Google એકાઉન્ટમાં સ્ટોર રહેશે અને તે <ph name="BEGIN_LINK" />Google ડૅશબોર્ડ<ph name="END_LINK" /> પર મેનેજ કરવામાં આવી શકે છે.</translation>
 <translation id="8912362522468806198">Google એકાઉન્ટ</translation>
 <translation id="8912793549644936705">ખેંચો</translation>
+<translation id="8912810933860534797">ઑટો સ્કૅન ચાલુ કરો</translation>
 <translation id="891365694296252935">વપરાશ અને નિદાનનો ડેટા મોકલો. આ ડિવાઇસ હાલમાં Googleને નિદાન, ડિવાઇસ અને ઍપ વપરાશનો ડેટા ઑટોમૅટિક રીતે મોકલી રહ્યું છે. આનો ઉપયોગ તમારા બાળકને ઓળખવા માટે થશે નહીં અને સિસ્ટમ અને ઍપની સ્થિરતા અને અન્ય સુધારણાઓમાં સહાય કરશે. એકત્રીકરણ કરેલો કેટલોક ડેટા Google ઍપ અને ભાગીદારોને પણ મદદ કરશે, જેમ કે Android ડેવલપર. આ સેટિંગ માલિક દ્વારા લાગુ કરવામાં આવેલ છે. જો તમારા બાળક માટે વધારાની વેબ અને ઍપ પ્રવૃત્તિ ચાલુ હોય, તો આ ડેટા તેમના Google એકાઉન્ટમાં સાચવવામાં આવી શકે છે. <ph name="BEGIN_LINK1" />વધુ જાણો<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">સૂચનને લોડ કરી રહ્યું છે</translation>
 <translation id="8916476537757519021">છુપો મોડ સબફ્રેમ: <ph name="SUBFRAME_SITE" /></translation>
@@ -5282,6 +5308,7 @@
 <translation id="9094033019050270033">પાસવર્ડ અપડેટ કરો</translation>
 <translation id="9094982973264386462">દૂર કરો</translation>
 <translation id="9095253524804455615">દૂર કરો</translation>
+<translation id="9095388113577226029">વધુ ભાષાઓ...</translation>
 <translation id="9100610230175265781">પાસફ્રેઝ આવશ્યક છે</translation>
 <translation id="9100765901046053179">વિગતવાર સેટિંગ્સ</translation>
 <translation id="9101691533782776290">ઍપ્લિકેશન લોન્ચ કરો</translation>
@@ -5319,6 +5346,7 @@
 <translation id="9153934054460603056">ઓળખાણ અને પાસવર્ડ સાચવો</translation>
 <translation id="9154194610265714752">અપડેટેડ</translation>
 <translation id="91568222606626347">શૉર્ટકટ બનાવો...</translation>
+<translation id="9157096865782046368">0.8 સેકન્ડ</translation>
 <translation id="9157697743260533322">તમામ વપરાશકર્તાઓ માટે સ્વચલિત અપડેટ્સને સેટ કરવામાં નિષ્ફળ થયાં (પ્રીફ્લાઇટ લોંચની ભૂલ: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">અરે! નેટવર્ક સંચાર સમસ્યા પ્રમાણીકરણ દરમિયાન આવી છે. કૃપા કરીને તમારું નેટવર્ક કનેક્શન તપાસો અને ફરી પ્રયાસ કરો.</translation>
 <translation id="916607977885256133">ચિત્ર-માં-ચિત્ર</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index d9d221e..bd54483 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -384,7 +384,6 @@
 <translation id="1576594961618857597">डिफ़ॉल्ट सफ़ेद अवतार</translation>
 <translation id="1581962803218266616">खोजकर्ता में दिखाएं</translation>
 <translation id="1584990664401018068">आप जिस वाई-फ़ाई नेटवर्क (<ph name="NETWORK_ID" />) का उपयोग कर रहे हैं उसे प्रमाणीकरण की आवश्‍यकता है.</translation>
-<translation id="1585238069289523942">आपके Chromebook पर ऐप्लिकेशन इंस्टॉल कर सकती है</translation>
 <translation id="1585717515139318619">आपके कंप्‍यूटर पर किसी अन्‍य प्रोग्राम ने ऐसी थीम जोड़ी है जो Chrome के काम करने के तरीके को बदल सकती है.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -5288,6 +5287,7 @@
 <translation id="9094033019050270033">पासवर्ड अपडेट करें</translation>
 <translation id="9094982973264386462">निकालें</translation>
 <translation id="9095253524804455615">निकालें</translation>
+<translation id="9095388113577226029">और भाषाएं...</translation>
 <translation id="9100610230175265781">पासफ़्रेज़ ज़रूरी है</translation>
 <translation id="9100765901046053179">अतिरिक्त सेटिंग</translation>
 <translation id="9101691533782776290">ऐप्लिकेशन लॉन्च करें</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 6fb68da..c30be6df 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Zadani bijeli avatar</translation>
 <translation id="1581962803218266616">Prikaži u programu Finder</translation>
 <translation id="1584990664401018068">Wi-Fi mreža koju upotrebljavate (<ph name="NETWORK_ID" />) možda zahtijeva autentifikaciju.</translation>
-<translation id="1585238069289523942">Instalirajte aplikacije na svoj Chromebook</translation>
 <translation id="1585717515139318619">Drugi program na vašem računalu dodao je temu koja može promijeniti Chromeov način rada.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Pogreška tijekom konfiguracije Linux datoteka. Pokušajte ponovo.</translation>
 <translation id="2315587498123194634">Pošalji vezu na <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Ne, hvala</translation>
-<translation id="2316739859433277603">Pretraživanja iz pokretača aplikacija upotrebljavaju <ph name="BEGIN_LINK" />postavku tražilice<ph name="END_LINK" /> vašeg preglednika.</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>
@@ -4753,7 +4751,7 @@
 <translation id="8225265270453771718">Podijelite prozor aplikacije</translation>
 <translation id="8225753906568652947">Iskoristite svoje ponude</translation>
 <translation id="8226222018808695353">Zabranjeno</translation>
-<translation id="8226619461731305576">Red čekanja</translation>
+<translation id="8226619461731305576">Redoslijed</translation>
 <translation id="8226742006292257240">Dolje je nasumice generirana zaporka modula pouzdane platforme dodijeljena vašem računalu:</translation>
 <translation id="8227119283605456246">Priloži datoteku</translation>
 <translation id="8230134520748321204">Želite li spremiti zaporku za <ph name="ORIGIN" />?</translation>
@@ -5319,6 +5317,7 @@
 <translation id="9094033019050270033">Ažuriraj zaporku</translation>
 <translation id="9094982973264386462">Ukloni</translation>
 <translation id="9095253524804455615">Ukloni</translation>
+<translation id="9095388113577226029">Više jezika...</translation>
 <translation id="9100610230175265781">Potrebna je zaporka</translation>
 <translation id="9100765901046053179">Napredne postavke</translation>
 <translation id="9101691533782776290">Pokreni aplikaciju</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 517e9c71..1dbd0c8 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Alapértelmezett fehér avatar</translation>
 <translation id="1581962803218266616">Megjelenítés a Finderben</translation>
 <translation id="1584990664401018068">Előfordulhat, hogy az Ön által használt Wi-Fi-hálózat (<ph name="NETWORK_ID" />) hitelesítést ír elő.</translation>
-<translation id="1585238069289523942">Alkalmazások telepítése a Chromebookra</translation>
 <translation id="1585717515139318619">A számítógépén lévő egyik program olyan témát adott hozzá, amely megváltoztathatja a Chrome működését.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Hiba történt a Linux-fájlok konfigurálása során. Próbálja újra.</translation>
 <translation id="2315587498123194634">Link küldése ide: <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Köszönöm, nem</translation>
-<translation id="2316739859433277603">Az alkalmazásindítóból végzett keresések a böngésző <ph name="BEGIN_LINK" />keresőmotorját<ph name="END_LINK" /> használják.</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>
@@ -5320,6 +5318,7 @@
 <translation id="9094033019050270033">Jelszó frissítése</translation>
 <translation id="9094982973264386462">Eltávolítás</translation>
 <translation id="9095253524804455615">Eltávolítás</translation>
+<translation id="9095388113577226029">További nyelvek…</translation>
 <translation id="9100610230175265781">Összetett jelszó szükséges</translation>
 <translation id="9100765901046053179">Speciális beállítások</translation>
 <translation id="9101691533782776290">Alkalmazás indítása</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index ae4f0a0..22ff259a 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="id">
+<translation id="1002469766576243227">Layanan autentikasi ini dihosting oleh <ph name="EXTENSION_NAME" /></translation>
 <translation id="1003088604756913841">Buka Link di Jendela <ph name="APP" /> baru</translation>
 <translation id="1004218526896219317">Akses situs</translation>
 <translation id="1005274289863221750">Menggunakan mikrofon dan kamera Anda</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Semua sudah dihapus</translation>
 <translation id="143027896309062157">Membaca dan mengubah semua data Anda di komputer dan situs web yang dikunjungi</translation>
 <translation id="1430915738399379752">Cetak</translation>
+<translation id="1431188203598586230">Update software terakhir</translation>
 <translation id="1432581352905426595">Kelola mesin telusur</translation>
 <translation id="1433811987160647649">Tanyakan sebelum mengakses</translation>
 <translation id="1434696352799406980">Fitur ini akan menyetel ulang halaman mulai, halaman tab baru, mesin telusur, dan tab terpasang. Fitur ini juga akan menonaktifkan semua ekstensi dan menghapus data sementara seperti cookie. Bookmark, histori, dan sandi yang tersimpan tidak akan dihapus.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">Avatar putih default</translation>
 <translation id="1581962803218266616">Tampilkan di Penemu</translation>
 <translation id="1584990664401018068">Jaringan Wi-Fi yang Anda gunakan ( <ph name="NETWORK_ID" /> ) mungkin perlu autentikasi.</translation>
-<translation id="1585238069289523942">Instal aplikasi di Chromebook</translation>
 <translation id="1585717515139318619">Program lain di komputer Anda menambahkan tema yang dapat mengubah cara kerja Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">Akun dan sinkronisasi</translation>
 <translation id="1782196717298160133">Menemukan ponsel Anda</translation>
 <translation id="1784849162047402014">Perangkat hampir kehabisan ruang disk</translation>
+<translation id="1790194216133135334">Kirim link ke <ph name="DEVICE_NAME" /></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>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">Mulai</translation>
 <translation id="1875387611427697908">Ini hanya dapat ditambahkan dari <ph name="CHROME_WEB_STORE" /></translation>
 <translation id="1877520246462554164">Gagal mendapatkan token autentikasi. Harap logout, lalu login kembali untuk mencoba lagi.</translation>
+<translation id="1877860345998737529">Penetapan tindakan tombol</translation>
 <translation id="1879000426787380528">Login sebagai</translation>
 <translation id="1880905663253319515">Hapus sertifikat "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="1886996562706621347">Izinkan situs meminta untuk menjadi penangan default bagi protokol (disarankan)</translation>
@@ -869,6 +872,7 @@
 <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="2315414688463285945">Terjadi error saat mengonfigurasi file Linux. Harap coba lagi.</translation>
+<translation id="2315587498123194634">Kirim Link ke <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Lain kali</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% selesai</translation>
 <translation id="2318143611928805047">Ukuran kertas</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">Situs ini dapat melihat teks dan gambar yang disalin ke papan klip.</translation>
 <translation id="2367199180085172140">Tambahkan Berbagi File</translation>
 <translation id="2367972762794486313">Tampilkan aplikasi</translation>
+<translation id="2369105924912929484">Aktifkan/nonaktifkan konten halaman yang disingkat</translation>
 <translation id="2371076942591664043">Buka setelah &amp;selesai</translation>
 <translation id="2375406435414127095">Hubungkan ke ponsel Anda</translation>
 <translation id="2377667304966270281">Hard Fault</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">Debug</translation>
 <translation id="2739240477418971307">Mengubah setelan aksesibilitas Anda</translation>
 <translation id="2740393541869613458">meninjau situs web yang telah dikunjungi oleh pengguna yang dilindungi, dan</translation>
+<translation id="2741912629735277980">Tampilkan UI di layar login</translation>
 <translation id="274290345632688601">Memulihkan file &amp; aplikasi Linux</translation>
 <translation id="2743387203779672305">Salin ke papan klip</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">Sambungkan ke jaringan dan coba lagi</translation>
 <translation id="2913331724188855103">Izinkan situs untuk menyimpan dan membaca data cookie (disarankan)</translation>
 <translation id="2915102088417824677">Lihat log aktivitas</translation>
+<translation id="2915873080513663243">Pemindaian otomatis</translation>
 <translation id="2916073183900451334">Menekan Tab pada halaman web akan menyorot link, juga bidang formulir</translation>
 <translation id="2916745397441987255">Telusuri ekstensi</translation>
 <translation id="2921081876747860777">Buat sandi untuk melindungi data lokal Anda.</translation>
@@ -1481,6 +1488,7 @@
 <translation id="327147043223061465">Lihat semua data situs dan cookie</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> ingin terhubung</translation>
 <translation id="3274763671541996799">Anda telah memasuki mode layar penuh.</translation>
+<translation id="3275778809241512831">Kunci keamanan internal Anda saat ini tidak aman. Harap hapus dari layanan apa pun tempat Anda menggunakannya. Harap setel ulang kunci keamanan untuk memecahkan masalahnya.</translation>
 <translation id="3275778913554317645">Buka sebagai jendela</translation>
 <translation id="3278001907972365362">Ada yang perlu diperhatikan di Akun Google Anda</translation>
 <translation id="3279230909244266691">Proses ini dapat memerlukan waktu beberapa menit. Memulai mesin virtual.</translation>
@@ -1573,6 +1581,7 @@
 <translation id="3412265149091626468">Lompat ke Pilihan</translation>
 <translation id="3413122095806433232">Penerbit CA: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Ukuran:</translation>
+<translation id="3420501302812554910">Kunci keamanan internal perlu disetel ulang</translation>
 <translation id="3421387094817716717">Kunci Publik Kurva Eliptis</translation>
 <translation id="3423463006624419153">Pada '<ph name="PHONE_NAME_1" />' dan '<ph name="PHONE_NAME_2" />' Anda:</translation>
 <translation id="3423858849633684918">Harap Luncurkan Ulang <ph name="PRODUCT_NAME" /></translation>
@@ -1601,6 +1610,7 @@
 <translation id="3450157232394774192">Persentase Pemakaian Status Menganggur</translation>
 <translation id="3453612417627951340">Memerlukan otorisasi</translation>
 <translation id="3454157711543303649">Aktivasi selesai</translation>
+<translation id="3454213325559396544">Ini adalah update keamanan dan software terakhir untuk <ph name="DEVICE_TYPE" /> ini. Untuk mendapatkan update mendatang, upgrade ke model yang lebih baru.</translation>
 <translation id="345693547134384690">Buka gambar d&amp;i tab baru</translation>
 <translation id="3457500881955698515">Perusahaan atau organisasi Anda meminta agar perangkat ini segera diupdate</translation>
 <translation id="3459509316159669723">Pencetakan</translation>
@@ -1758,6 +1768,7 @@
 <translation id="3672681487849735243">Kesalahan pabrik terdeteksi</translation>
 <translation id="367645871420407123">biarkan kosong jika Anda ingin menyetel sandi akar ke nilai gambar uji default</translation>
 <translation id="3677657024345889897">Paling kecil</translation>
+<translation id="3677911431265050325">Minta situs seluler</translation>
 <translation id="3678156199662914018">Ekstensi: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Terima kasih atas masukannya. Anda sedang offline, laporan akan dikirim nanti.</translation>
 <translation id="3682824389861648626">Ambang batas gerakan</translation>
@@ -2210,6 +2221,7 @@
 <translation id="4350019051035968019">Perangkat ini tidak dapat didaftarkan ke domain tempat akun Anda berada karena perangkat ditandai untuk dikelola oleh domain lain.</translation>
 <translation id="4354344420232759511">Situs yang Anda kunjungi akan ditampilkan di sini</translation>
 <translation id="435527878592612277">Pilih foto Anda</translation>
+<translation id="4358313196493694334">Stabilkan lokasi klik</translation>
 <translation id="4359408040881008151">Dipasang karena ekstensi dependen.</translation>
 <translation id="4359717112757026264">Pemandangan Kota</translation>
 <translation id="4361142739114356624">Kunci Pribadi untuk Sertifikat Klien ini tidak ditemukan atau tidak valid</translation>
@@ -2334,6 +2346,7 @@
 <translation id="4558426062282641716">Diminta izin peluncuran otomatis</translation>
 <translation id="4558491878126948419">Dapatkan tips <ph name="DEVICE_TYPE" /> dan info terbaru terkait produk Google serta berikan masukan. Anda dapat berhenti berlangganan kapan saja.</translation>
 <translation id="4559617833001311418">Situs ini mengakses sensor gerakan atau sensor cahaya Anda.</translation>
+<translation id="4561098487691395071">Atau tentukan PPD printer Anda</translation>
 <translation id="4562155214028662640">Tambahkan Sidik Jari</translation>
 <translation id="4563880231729913339">Jari 3</translation>
 <translation id="4565377596337484307">Sembunyikan sandi</translation>
@@ -2578,6 +2591,7 @@
 <translation id="494286511941020793">Bantuan Konfigurasi Proxy</translation>
 <translation id="4943368462779413526">Sepak bola</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" ingin terhubung ke port serial</translation>
+<translation id="4944310289250773232">Layanan autentikasi ini dihosting oleh <ph name="SAML_DOMAIN" /></translation>
 <translation id="495170559598752135">Tindakan</translation>
 <translation id="4953689047182316270">Merespons Acara Aksesibilitas</translation>
 <translation id="4953808748584563296">Avatar oranye default</translation>
@@ -2670,6 +2684,7 @@
 <translation id="5094721898978802975">Berkomunikasi dengan aplikasi asli yang kooperatif</translation>
 <translation id="5097002363526479830">Gagal menyambung ke jaringan '<ph name="NAME" />': <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Buka semua bookmark</translation>
+<translation id="5101839224773798795">Klik secara otomatis saat kursor berhenti</translation>
 <translation id="5108967062857032718">Setelan - Hapus aplikasi Android</translation>
 <translation id="5109044022078737958">Susanti</translation>
 <translation id="5111646998522066203">Keluar dari Mode Penyamaran</translation>
@@ -3153,6 +3168,7 @@
 <translation id="5852112051279473187">Ups!  Benar-benar terjadi masalah saat mendaftarkan perangkat ini. Harap coba lagi atau hubungi perwakilan dukungan Anda.</translation>
 <translation id="5852137567692933493">Mulai Ulang dan Powerwash</translation>
 <translation id="5854912040170951372">Pizza</translation>
+<translation id="5855643921295613558">0,6 detik</translation>
 <translation id="5855773610748894548">Maaf, terjadi error pada modul aman.</translation>
 <translation id="5856721540245522153">Aktifkan fitur debug</translation>
 <translation id="5857090052475505287">Folder Baru</translation>
@@ -3442,6 +3458,7 @@
 <translation id="6279183038361895380">Tekan |<ph name="ACCELERATOR" />| untuk menampilkan kursor</translation>
 <translation id="6280215091796946657">Login dengan akun lain</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 detik</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> tidak biasa didownload dan mungkin berbahaya.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Printer baru di jaringan Anda}other{Printer baru di jaringan Anda}}</translation>
 <translation id="6286708577777130801">Detail sandi tersimpan</translation>
@@ -3648,6 +3665,7 @@
 <translation id="6612358246767739896">Konten dilindungi</translation>
 <translation id="6613452264606394692">Kembali ke halaman secara cepat dengan mem-bookmark halaman ini</translation>
 <translation id="6615455863669487791">Tunjukkan</translation>
+<translation id="6617100836880592260">Kecepatan pemindaian: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Tetap Lanjutkan</translation>
 <translation id="6619058681307408113">Daemon Printer Baris (LPD)</translation>
 <translation id="661907246513853610">Situs dapat melacak lokasi Anda</translation>
@@ -4462,6 +4480,7 @@
 <translation id="7831491651892296503">Terjadi error saat mengonfigurasi jaringan</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Waktu berakhir</translation>
+<translation id="783214144752121388">Blokir situs agar tidak menjalankan Flash (disarankan)</translation>
 <translation id="7833720883933317473">Kata khusus yang disimpan akan muncul di sini</translation>
 <translation id="7835178595033117206">Bookmark dihapus</translation>
 <translation id="7837776265184002579">Beranda diubah menjadi <ph name="URL" />.</translation>
@@ -4517,6 +4536,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Sandi Anda telah diubah di server. Harap logout, lalu login kembali.</translation>
 <translation id="7915471803647590281">Beri tahu kami apa yang terjadi sebelum mengirim masukan.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" />d</translation>
 <translation id="792514962475806987">Tingkat zoom yang dipasang ke dok:</translation>
 <translation id="7925247922861151263">Pemeriksaan AAA gagal</translation>
 <translation id="7925285046818567682">Menunggu <ph name="HOST_NAME" />...</translation>
@@ -4574,6 +4594,7 @@
 <translation id="7987814697832569482">Selalu terhubung melalui VPN ini</translation>
 <translation id="798835209536175951">Mengirim dan menerima pesan teks dari Chromebook. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Aktifkan fitur aksesibilitas</translation>
+<translation id="7991296728590311172">Setelan Tombol Akses</translation>
 <translation id="7994702968232966508">Metode EAP</translation>
 <translation id="7997826902155442747">Prioritas Proses</translation>
 <translation id="7999229196265990314">Membuat file berikut:
@@ -4787,6 +4808,8 @@
 <translation id="8308179586020895837">Tanyakan jika <ph name="HOST" /> ingin mengakses kamera Anda</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">Sertifikat sudah ada</translation>
+<translation id="8314381333424235892">Ekstensi tidak ada atau tidak diinstal</translation>
+<translation id="8316618172731049784">Kirim ke <ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">Tambahkan sambungan jaringan</translation>
 <translation id="8319414634934645341">Extended Key Usage</translation>
 <translation id="8320459152843401447">Seluruh Layar Anda</translation>
@@ -4943,6 +4966,7 @@
 <translation id="8588866096426746242">Tampilkan statistik profil</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - Menampilkan VR ke headset</translation>
 <translation id="8590375307970699841">Siapkan pembaruan otomatis</translation>
+<translation id="8591783563402255548">1 detik</translation>
 <translation id="8592141010104017453">Jangan tampilkan notifikasi sama sekali</translation>
 <translation id="8593121833493516339">Kirim data penggunaan dan diagnostik. Bantu sempurnakan pengalaman Android Anak Anda dengan otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini tidak akan digunakan untuk mengidentifikasi anak Anda serta akan membantu sistem dan stabilitas aplikasi serta penyempurnaan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Jika Aktivitas Web &amp; Aplikasi tambahan diaktifkan untuk anak Anda, data ini mungkin akan disimpan ke akun Google miliknya. <ph name="BEGIN_LINK1" />Pelajari Lebih Lanjut<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Rekam video</translation>
@@ -4972,6 +4996,7 @@
 <translation id="8637688295594795546">Pembaruan sistem tersedia. Bersiap mendownload...</translation>
 <translation id="8639047128869322042">Memeriksa software berbahaya...</translation>
 <translation id="8642171459927087831">Token Akses</translation>
+<translation id="8642900771896232685">2 detik</translation>
 <translation id="8642947597466641025">Perbesar Teks</translation>
 <translation id="8643418457919840804">Untuk melanjutkan, pilih salah satu opsi:</translation>
 <translation id="8644655801811752511">Tidak dapat menyetel ulang kunci keamanan. Coba setel ulang kunci setelah memasukkannya.</translation>
@@ -5173,6 +5198,7 @@
 <translation id="8910222113987937043">Perubahan terhadap bookmark, histori, sandi, dan setelan lain sudah tidak disinkronkan ke Akun Google Anda. Namun, data yang sudah ada akan tetap disimpan di Akun Google dan dapat dikelola di <ph name="BEGIN_LINK" />Google Dasbor<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">Akun Google</translation>
 <translation id="8912793549644936705">Meregang</translation>
+<translation id="8912810933860534797">Aktifkan pindai otomatis</translation>
 <translation id="891365694296252935">Kirim data penggunaan dan diagnostik. Perangkat ini saat ini otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini tidak akan digunakan untuk mengidentifikasi anak Anda serta akan membantu sistem dan stabilitas aplikasi serta penyempurnaan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Setelan ini diterapkan oleh pemilik. Jika Aktivitas Web &amp; Aplikasi tambahan diaktifkan untuk anak Anda, data ini mungkin akan disimpan ke Akun Google miliknya. <ph name="BEGIN_LINK1" />Pelajari Lebih Lanjut<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Memuat saran</translation>
 <translation id="8916476537757519021">Subframe Mode Penyamaran: <ph name="SUBFRAME_SITE" /></translation>
@@ -5288,6 +5314,7 @@
 <translation id="9094033019050270033">Perbarui sandi</translation>
 <translation id="9094982973264386462">Hapus</translation>
 <translation id="9095253524804455615">Hapus</translation>
+<translation id="9095388113577226029">Bahasa lainnya...</translation>
 <translation id="9100610230175265781">Frasa sandi diwajibkan</translation>
 <translation id="9100765901046053179">Setelan lanjutan</translation>
 <translation id="9101691533782776290">Luncurkan aplikasi</translation>
@@ -5325,6 +5352,7 @@
 <translation id="9153934054460603056">Simpan identitas dan sandi</translation>
 <translation id="9154194610265714752">Diperbarui</translation>
 <translation id="91568222606626347">Membuat Pintasan...</translation>
+<translation id="9157096865782046368">0,8 detik</translation>
 <translation id="9157697743260533322">Gagal menyiapkan pembaruan otomatis untuk semua pengguna (terjadi kesalahan saat peluncuran preflight: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">Ups! Terjadi masalah komunikasi jaringan selama autentikasi. Periksa sambungan jaringan Anda dan coba lagi.</translation>
 <translation id="916607977885256133">Picture-in-Picture</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 8ad31a8..29bd50df 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Avatar bianco predefinito</translation>
 <translation id="1581962803218266616">Mostra nel Finder</translation>
 <translation id="1584990664401018068">La rete Wi-Fi in uso (<ph name="NETWORK_ID" />) potrebbe richiedere l'autenticazione.</translation>
-<translation id="1585238069289523942">Installare app sul Chromebook</translation>
 <translation id="1585717515139318619">Un altro programma sul computer ha aggiunto un tema che potrebbe modificare il funzionamento di Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Errore durante la configurazione dei file Linux. Riprova.</translation>
 <translation id="2315587498123194634">Invia link a <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">No, grazie</translation>
-<translation id="2316739859433277603">Le ricerche dell'Avvio applicazioni utilizzano l'<ph name="BEGIN_LINK" />impostazione del motore di ricerca<ph name="END_LINK" /> del tuo browser.</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>
@@ -5311,6 +5309,7 @@
 <translation id="9094033019050270033">Aggiorna password</translation>
 <translation id="9094982973264386462">Rimuovi</translation>
 <translation id="9095253524804455615">Rimuovi</translation>
+<translation id="9095388113577226029">Altre lingue</translation>
 <translation id="9100610230175265781">Passphrase obbligatoria</translation>
 <translation id="9100765901046053179">Impostazioni avanzate</translation>
 <translation id="9101691533782776290">Avvia app</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index de53b0b..3114683 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -381,7 +381,6 @@
 <translation id="1576594961618857597">דמות ברירת מחדל לבנה</translation>
 <translation id="1581962803218266616">‏הצג ב-Finder</translation>
 <translation id="1584990664401018068">‏ייתכן שיהיה צורך באימות בשביל רשת ה-Wi-Fi שבה אתה משתמש (<ph name="NETWORK_ID" />).</translation>
-<translation id="1585238069289523942">‏התקנת אפליקציות ב-Chromebook</translation>
 <translation id="1585717515139318619">‏תכנית אחרת במחשב הוסיפה עיצוב שעשוי לשנות את אופן הפעולה של Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -5286,6 +5285,7 @@
 <translation id="9094033019050270033">עדכן סיסמה</translation>
 <translation id="9094982973264386462">הסר</translation>
 <translation id="9095253524804455615">הסר</translation>
+<translation id="9095388113577226029">שפות נוספות...</translation>
 <translation id="9100610230175265781">יש להזין ביטוי סיסמה</translation>
 <translation id="9100765901046053179">הגדרות מתקדמות</translation>
 <translation id="9101691533782776290">הפעל את היישום</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 4b3f1e5..e53735c5 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ja">
+<translation id="1002469766576243227">この認証サービスは <ph name="EXTENSION_NAME" /> でホストされています</translation>
 <translation id="1003088604756913841">新しい <ph name="APP" /> ウィンドウでリンクを開く</translation>
 <translation id="1004218526896219317">サイトへのアクセス</translation>
 <translation id="1005274289863221750">マイクとカメラを使用する</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">すべて消去</translation>
 <translation id="143027896309062157">自分のパソコンとアクセスしたウェブサイト上にある自分の全データの読み取りと変更</translation>
 <translation id="1430915738399379752">印刷</translation>
+<translation id="1431188203598586230">最後のソフトウェア アップデート</translation>
 <translation id="1432581352905426595">検索エンジンの管理</translation>
 <translation id="1433811987160647649">アクセスする前に確認する</translation>
 <translation id="1434696352799406980">起動ページ、新しいタブページ、検索エンジン、固定タブをリセットします。また、すべての拡張機能を無効にし、Cookie などの一時データを削除します。ただし、ブックマーク、履歴、保存したパスワードはそのまま残ります。</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">デフォルトの白のアバター</translation>
 <translation id="1581962803218266616">Finder で表示</translation>
 <translation id="1584990664401018068">ご利用の Wi-Fi(<ph name="NETWORK_ID" />)では、認証が必要になる可能性があります。</translation>
-<translation id="1585238069289523942">Chromebook にアプリをインストールします</translation>
 <translation id="1585717515139318619">パソコン上の別のプログラムにより、Chrome の動作に影響を及ぼす可能性のあるテーマが追加されました。
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">アカウントと同期</translation>
 <translation id="1782196717298160133">スマートフォンを検出中</translation>
 <translation id="1784849162047402014">デバイスのディスク空き領域が少なくなっています</translation>
+<translation id="1790194216133135334"><ph name="DEVICE_NAME" /> にリンクを送信</translation>
 <translation id="1792619191750875668">拡張ディスプレイ</translation>
 <translation id="1794791083288629568">フィードバックを送信して問題解決に協力する。</translation>
 <translation id="1795214765651529549">クラシックを使用</translation>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">開始</translation>
 <translation id="1875387611427697908">これは <ph name="CHROME_WEB_STORE" /> からのみ追加できます</translation>
 <translation id="1877520246462554164">認証トークンを取得できませんでした。いったんログアウトして再度ログインし、もう一度お試しください。</translation>
+<translation id="1877860345998737529">スイッチの操作割り当て</translation>
 <translation id="1879000426787380528">次のアカウントでログイン</translation>
 <translation id="1880905663253319515">証明書「<ph name="CERTIFICATE_NAME" />」を削除しますか?</translation>
 <translation id="1886996562706621347">サイトからのプロトコルのデフォルト ハンドラとしての登録要求を許可する(推奨)</translation>
@@ -869,6 +872,7 @@
 <translation id="230927227160767054">このページはサービス ハンドラのインストールを求めています。</translation>
 <translation id="2309620859903500144">このサイトではモーション センサーまたは光センサーへのアクセスがブロックされています。</translation>
 <translation id="2315414688463285945">[Linux ファイル] の設定中にエラーが発生しました。もう一度お試しください。</translation>
+<translation id="2315587498123194634"><ph name="DEVICE_NAME" /> にリンクを送信</translation>
 <translation id="2316129865977710310">いいえ</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% 完了</translation>
 <translation id="2318143611928805047">用紙サイズ</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">このサイトでは、クリップボードにコピーされているテキストや画像へのアクセスが許可されています。</translation>
 <translation id="2367199180085172140">ファイル共有を追加</translation>
 <translation id="2367972762794486313">アプリを表示</translation>
+<translation id="2369105924912929484">抽出されたページのコンテンツを切り替える</translation>
 <translation id="2371076942591664043">ダウンロードしたら開く(&amp;D)</translation>
 <translation id="2375406435414127095">スマートフォンに接続</translation>
 <translation id="2377667304966270281">ハードの障害数</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">デバッグ</translation>
 <translation id="2739240477418971307">ユーザー補助設定の変更</translation>
 <translation id="2740393541869613458">監視対象ユーザーがどのウェブサイトにアクセスしたかを確認する</translation>
+<translation id="2741912629735277980">ログイン画面に UI を表示する</translation>
 <translation id="274290345632688601">Linux のアプリとファイルを復元しています</translation>
 <translation id="2743387203779672305">クリップボードにコピー</translation>
 <translation id="2745080116229976798">Microsoft 限定従属</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">ネットワークに接続してから、もう一度お試しください</translation>
 <translation id="2913331724188855103">サイトに Cookie データの保存と読み取りを許可する(推奨)</translation>
 <translation id="2915102088417824677">アクティビティ ログを表示</translation>
+<translation id="2915873080513663243">自動スキャン</translation>
 <translation id="2916073183900451334">ウェブページで Tab キーを押すと、リンクやフォーム欄がハイライト表示されます</translation>
 <translation id="2916745397441987255">拡張機能を検索</translation>
 <translation id="2921081876747860777">ローカルデータを保護するパスワードを作成してください。</translation>
@@ -1483,6 +1490,7 @@
 <translation id="327147043223061465">すべての Cookie とサイトデータを表示</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> が接続を要求しています</translation>
 <translation id="3274763671541996799">全画面表示になりました。</translation>
+<translation id="3275778809241512831">ご使用の内部セキュリティ キーは現在、安全ではありません。このキーを使用しているすべてのサービスからキーを削除してください。この問題を解決するには、セキュリティ キーをリセットしてください。</translation>
 <translation id="3275778913554317645">ウィンドウとして開く</translation>
 <translation id="3278001907972365362">お使いの Google アカウントは対応が必要です</translation>
 <translation id="3279230909244266691">この処理には数分かかることがあります。仮想マシンを起動します。</translation>
@@ -1575,6 +1583,7 @@
 <translation id="3412265149091626468">選択部分へジャンプ</translation>
 <translation id="3413122095806433232">認証局発行元: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">サイズ:</translation>
+<translation id="3420501302812554910">内部セキュリティ キーのリセットが必要です</translation>
 <translation id="3421387094817716717">楕円曲線公開鍵</translation>
 <translation id="3423463006624419153">「<ph name="PHONE_NAME_1" />」と「<ph name="PHONE_NAME_2" />」で次の操作を行います。</translation>
 <translation id="3423858849633684918"><ph name="PRODUCT_NAME" /> を再起動してください</translation>
@@ -1603,6 +1612,7 @@
 <translation id="3450157232394774192">アイドル状態の占有率(%)</translation>
 <translation id="3453612417627951340">認証が必要です</translation>
 <translation id="3454157711543303649">起動を完了</translation>
+<translation id="3454213325559396544">この <ph name="DEVICE_TYPE" /> でソフトウェアとセキュリティの自動アップデートが行われるのは今回が最後です。今後もアップデートを取得するには、より新しいモデルにアップグレードしてください。</translation>
 <translation id="345693547134384690">新しいタブで画像を開く(&amp;I)</translation>
 <translation id="3457500881955698515">あなたの会社または組織がこのデバイスを今すぐ更新するよう求めています</translation>
 <translation id="3459509316159669723">印刷</translation>
@@ -1760,6 +1770,7 @@
 <translation id="3672681487849735243">出荷時のエラーが見つかりました</translation>
 <translation id="367645871420407123">既定のテストイメージの値にルート パスワードを設定する場合は、空欄のままにします</translation>
 <translation id="3677657024345889897">最小</translation>
+<translation id="3677911431265050325">モバイルサイトをリクエスト</translation>
 <translation id="3678156199662914018">拡張機能: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">ご意見をお寄せいただきありがとうございます。現在オフラインのため、ご報告の内容は後で送信されます。</translation>
 <translation id="3682824389861648626">移動のしきい値</translation>
@@ -2212,6 +2223,7 @@
 <translation id="4350019051035968019">このデバイスは、別のドメインの管理対象として指定されているため、現在のアカウントの所属先ドメインに登録することはできません。</translation>
 <translation id="4354344420232759511">アクセスしたサイトがここに表示されます</translation>
 <translation id="435527878592612277">写真を選択</translation>
+<translation id="4358313196493694334">クリック位置を補正します</translation>
 <translation id="4359408040881008151">依存関係にある拡張機能によってインストールされました。</translation>
 <translation id="4359717112757026264">Cityscape</translation>
 <translation id="4361142739114356624">このクライアント証明書には秘密鍵がないか、秘密鍵が無効です</translation>
@@ -2336,6 +2348,7 @@
 <translation id="4558426062282641716">自動起動の許可の要求</translation>
 <translation id="4558491878126948419"><ph name="DEVICE_TYPE" /> のヒントや Google の各種サービスの最新情報をお届けします。また、フィードバックも送信できます。登録はいつでも解除できます。</translation>
 <translation id="4559617833001311418">このサイトはモーション センサーまたは光センサーにアクセスしています。</translation>
+<translation id="4561098487691395071">または、プリンタの PPD を指定してください</translation>
 <translation id="4562155214028662640">指紋を追加</translation>
 <translation id="4563880231729913339">指 3</translation>
 <translation id="4565377596337484307">パスワードを表示しない</translation>
@@ -2580,6 +2593,7 @@
 <translation id="494286511941020793">プロキシ設定ヘルプ</translation>
 <translation id="4943368462779413526">フットボール</translation>
 <translation id="4943691134276646401">「<ph name="CHROME_EXTENSION_NAME" />」がシリアルポートへの接続を要求しています</translation>
+<translation id="4944310289250773232">この認証サービスは <ph name="SAML_DOMAIN" /> でホストされています</translation>
 <translation id="495170559598752135">操作</translation>
 <translation id="4953689047182316270">ユーザー補助機能のイベントへの応答</translation>
 <translation id="4953808748584563296">デフォルトのオレンジのアバター</translation>
@@ -2672,6 +2686,7 @@
 <translation id="5094721898978802975">連携するネイティブ アプリケーションと通信</translation>
 <translation id="5097002363526479830">ネットワーク「<ph name="NAME" />」に接続できませんでした: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">すべてのブックマークを開く</translation>
+<translation id="5101839224773798795">カーソルの停止時に自動的にクリックする</translation>
 <translation id="5108967062857032718">設定 - Android アプリの削除</translation>
 <translation id="5109044022078737958">ミア</translation>
 <translation id="5111646998522066203">シークレット モードを終了</translation>
@@ -3155,6 +3170,7 @@
 <translation id="5852112051279473187">エラー: このデバイスの登録中に問題が発生しました。もう一度お試しいただくか、サポート担当者にお問い合わせください。</translation>
 <translation id="5852137567692933493">再起動して Powerwash を実行する</translation>
 <translation id="5854912040170951372">スライス</translation>
+<translation id="5855643921295613558">0.6秒</translation>
 <translation id="5855773610748894548">セキュア モジュール エラー。</translation>
 <translation id="5856721540245522153">デバッグ機能を有効にする</translation>
 <translation id="5857090052475505287">新しいフォルダ</translation>
@@ -3444,6 +3460,7 @@
 <translation id="6279183038361895380">カーソルを表示するには |<ph name="ACCELERATOR" />| を押します</translation>
 <translation id="6280215091796946657">別のアカウントでログイン</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4秒</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> は一般的にダウンロードされているファイルではなく、危害を及ぼす可能性があります。</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{ネットワーク上の新しいプリンタ}other{ネットワーク上の新しいプリンタ}}</translation>
 <translation id="6286708577777130801">保存パスワードの詳細</translation>
@@ -3650,6 +3667,7 @@
 <translation id="6612358246767739896">保護されたコンテンツ</translation>
 <translation id="6613452264606394692">このページをブックマークすると、すばやくこのページに戻ることができます</translation>
 <translation id="6615455863669487791">表示</translation>
+<translation id="6617100836880592260">スキャンの速度: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">続行する</translation>
 <translation id="6619058681307408113">ラインプリンタ デーモン(LPD)</translation>
 <translation id="661907246513853610">サイトに現在地の追跡が許可されています</translation>
@@ -4465,6 +4483,7 @@
 <translation id="7831491651892296503">ネットワークの設定中にエラーが発生しました</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">終了時間</translation>
+<translation id="783214144752121388">サイトでの Flash の実行をブロックする(推奨)</translation>
 <translation id="7833720883933317473">保存したカスタムの単語がここに表示されます</translation>
 <translation id="7835178595033117206">ブックマークを削除しました</translation>
 <translation id="7837776265184002579">ホームページが <ph name="URL" /> に変更されました。</translation>
@@ -4520,6 +4539,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">サーバーでパスワードが変更されました。いったんログアウトして再度ログインしてください。</translation>
 <translation id="7915471803647590281">フィードバックを送信する前に、問題の詳細を入力してください。</translation>
+<translation id="7919210519031517829"><ph name="DURATION" />秒</translation>
 <translation id="792514962475806987">ドッキング画面のズームレベル:</translation>
 <translation id="7925247922861151263">AAA を確認できませんでした</translation>
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> を待機しています...</translation>
@@ -4577,6 +4597,7 @@
 <translation id="7987814697832569482">この VPN で常に接続する</translation>
 <translation id="798835209536175951">Chromebook でテキスト メッセージを送受信します。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">ユーザー補助機能を有効にします</translation>
+<translation id="7991296728590311172">スイッチ アクセスの設定</translation>
 <translation id="7994702968232966508">EAP 方式</translation>
 <translation id="7997826902155442747">プロセスの優先値</translation>
 <translation id="7999229196265990314">次のファイルを作成しました:
@@ -4790,6 +4811,8 @@
 <translation id="8308179586020895837"><ph name="HOST" /> がカメラへのアクセスを必要としているときは確認画面を表示する</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">証明書がすでに存在します</translation>
+<translation id="8314381333424235892">拡張機能がないか、インストールされていません</translation>
+<translation id="8316618172731049784"><ph name="DEVICE_NAME" /> に送信</translation>
 <translation id="8317671367883557781">ネットワーク接続を追加</translation>
 <translation id="8319414634934645341">拡張キーの用途</translation>
 <translation id="8320459152843401447">あなたの全画面</translation>
@@ -4946,6 +4969,7 @@
 <translation id="8588866096426746242">プロフィール統計情報を表示</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - VR をヘッドセットに配信しています</translation>
 <translation id="8590375307970699841">自動更新を設定</translation>
+<translation id="8591783563402255548">1秒</translation>
 <translation id="8592141010104017453">通知を一切表示しない</translation>
 <translation id="8593121833493516339">使用状況データや診断データを送信します。診断データやデバイスとアプリの使用状況データを Google に自動送信して、お子様向けの Android 機能の向上にご協力ください。この情報を使ってお子様個人が特定されることはありません。この情報は、システムとアプリの安定性の向上やその他の機能の改善に役立てられます。また、Google のアプリやパートナー(Android デベロッパーなど)も、集計データとしてこの情報を活用します。お子様の [その他のウェブとアプリのアクティビティ] の設定がオンになっている場合、このデータはお子様の Google アカウントに保存されます。<ph name="BEGIN_LINK1" />詳細<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">動画を撮影</translation>
@@ -4975,6 +4999,7 @@
 <translation id="8637688295594795546">システムのアップデートが見つかりました。ダウンロードの準備をしています...</translation>
 <translation id="8639047128869322042">有害なソフトウェアを確認しています...</translation>
 <translation id="8642171459927087831">アクセス トークン</translation>
+<translation id="8642900771896232685">2秒</translation>
 <translation id="8642947597466641025">テキストを拡大する</translation>
 <translation id="8643418457919840804">続行するには次のいずれかを選択してください。</translation>
 <translation id="8644655801811752511">このセキュリティ キーをリセットできません。キーの挿入直後にリセットしてみてください。</translation>
@@ -5176,6 +5201,7 @@
 <translation id="8910222113987937043">ブックマーク、履歴、パスワードなどの設定に行った変更は Google アカウントと同期されなくなります。ただし、既存のデータは Google アカウントに保存され、<ph name="BEGIN_LINK" />Google ダッシュボード<ph name="END_LINK" />で管理できます。</translation>
 <translation id="8912362522468806198">Google アカウントを使用</translation>
 <translation id="8912793549644936705">拡大</translation>
+<translation id="8912810933860534797">自動スキャンを有効にする</translation>
 <translation id="891365694296252935">使用状況データや診断データを送信します。このデバイスは現在、診断データやデバイスとアプリの使用状況データを Google に自動送信するように設定されています。この情報を使ってお子様個人が特定されることはありません。この情報は、システムとアプリの安定性の向上やその他の機能の改善に役立てられます。また、Google のアプリやパートナー(Android デベロッパーなど)も、集計データとしてこの情報を活用します。この設定は所有者によって管理されています。お子様の [その他のウェブとアプリのアクティビティ] の設定がオンになっている場合、このデータはお子様の Google アカウントに保存されます。<ph name="BEGIN_LINK1" />詳細<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">候補を読み込んでいます</translation>
 <translation id="8916476537757519021">シークレット サブフレーム: <ph name="SUBFRAME_SITE" /></translation>
@@ -5291,6 +5317,7 @@
 <translation id="9094033019050270033">パスワードを更新</translation>
 <translation id="9094982973264386462">削除</translation>
 <translation id="9095253524804455615">削除</translation>
+<translation id="9095388113577226029">その他の言語...</translation>
 <translation id="9100610230175265781">パスフレーズを入力してください</translation>
 <translation id="9100765901046053179">詳細設定</translation>
 <translation id="9101691533782776290">アプリを起動</translation>
@@ -5328,6 +5355,7 @@
 <translation id="9153934054460603056">ID とパスワードを保存する</translation>
 <translation id="9154194610265714752">更新完了</translation>
 <translation id="91568222606626347">ショートカットを作成...</translation>
+<translation id="9157096865782046368">0.8秒</translation>
 <translation id="9157697743260533322">すべてのユーザーで自動更新を行うよう設定できませんでした(プリフライト開始エラー: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">認証時にネットワーク通信の問題が発生しました。ネットワーク接続を確認して、もう一度お試しください。</translation>
 <translation id="916607977885256133">ピクチャー イン ピクチャー</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index a6634828..f933f553 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="kn">
+<translation id="1002469766576243227">ಈ ದೃಢೀಕರಣ ಸೇವೆಯನ್ನು <ph name="EXTENSION_NAME" /> ಮೂಲಕ ಹೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="1003088604756913841">ಹೊಸ <ph name="APP" /> ವಿಂಡೋದಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಿರಿ</translation>
 <translation id="1004218526896219317">ಸೈಟ್ ಪ್ರವೇಶ</translation>
 <translation id="1005274289863221750">ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್ ಮತ್ತು ಕ್ಯಾಮರಾವನ್ನು ಬಳಸಿ</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">ಎಲ್ಲವನ್ನೂ ತೆರವುಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="143027896309062157">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಮತ್ತು ನೀವು ಭೇಟಿ ನೀಡುವ ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಎಲ್ಲ ಡೇಟಾವನ್ನು ಓದಿ ಮತ್ತು ಬದಲಾಯಿಸಿ</translation>
 <translation id="1430915738399379752">ಮುದ್ರಿಸು</translation>
+<translation id="1431188203598586230">ಅಂತಿಮ ಸಾಫ್ಟ್‌ವೇರ್ ಅಪ್‌ಡೇಟ್</translation>
 <translation id="1432581352905426595">ಹುಡುಕಾಟದ ಎಂಜಿನ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="1433811987160647649">ಪ್ರವೇಶಿಸುವ ಮೊದಲು ಕೇಳಿ</translation>
 <translation id="1434696352799406980">ಇದು ನಿಮ್ಮ ಪ್ರಾರಂಭ ಪುಟ, ಹೊಸ ಟ್ಯಾಬ್ ಪುಟ, ಹುಡುಕಾಟ ಎಂಜಿನ್ ಮತ್ತು ಪಿನ್ ಮಾಡಲಾದ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮರುಹೊಂದಿಸುತ್ತದೆ. ಇದು ಎಲ್ಲ ವಿಸ್ತರಣೆಗಳು ಮತ್ತು ಕುಕೀಸ್‌ನಂತಹ ತಾತ್ಕಾಲಿಕ ಡೇಟಾವನ್ನು ಸಹ ತೆರವುಗೊಳಿಸುತ್ತದೆ. ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ ಮತ್ತು ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ತೆರವುಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
@@ -385,7 +387,6 @@
 <translation id="1576594961618857597">ಡಿಫಾಲ್ಟ್ ಬಿಳಿ ಅವತಾರ್</translation>
 <translation id="1581962803218266616">ಫೈಂಡರ್‌ನಲ್ಲಿ ತೋರಿಸಿ</translation>
 <translation id="1584990664401018068">ನೀವು ಬಳಸುತ್ತಿರುವ ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್ (<ph name="NETWORK_ID" />) ಗೆ ಪ್ರಮಾಣೀಕರಣದ ಅಗತ್ಯವಿರಬಹುದು.</translation>
-<translation id="1585238069289523942">ನಿಮ್ಮ Chromebook ನಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
 <translation id="1585717515139318619">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿನ ಮತ್ತೊಂದು ಪ್ರೋಗ್ರಾಂ Chrome ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವಿಧಾನವನ್ನು ಬದಲಿಸಬಹುದಾದಂತಹ ಥೀಮ್ ಅನ್ನು ಸೇರಿಸಿದೆ.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -529,6 +530,7 @@
 <translation id="1781771911845953849">ಖಾತೆಗಳು ಮತ್ತು ಸಿಂಕ್</translation>
 <translation id="1782196717298160133">ನಿಮ್ಮ ಫೋನ್‌ ಹುಡುಕಲಾಗುತ್ತಿದೆ</translation>
 <translation id="1784849162047402014">ಸಾಧನದ ಡಿಸ್ಕ್ ಸ್ಥಳಾವಕಾಶ ಕಡಿಮೆ ಇದೆ</translation>
+<translation id="1790194216133135334"><ph name="DEVICE_NAME" /> ಗೆ ಲಿಂಕ್ ಕಳುಹಿಸಿ</translation>
 <translation id="1792619191750875668">ವಿಸ್ತರಿಸಲಾದ ಪ್ರದರ್ಶನ</translation>
 <translation id="1794791083288629568">ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಲು ನಮಗೆ ಸಹಾಯ ಮಾಡುವುದಕ್ಕಾಗಿ ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸಿ.</translation>
 <translation id="1795214765651529549">ಕ್ಲಾಸಿಕ್ ಬಳಸಿ</translation>
@@ -591,6 +593,7 @@
 <translation id="1875312262568496299">ಆರಂಭಿಸಿ</translation>
 <translation id="1875387611427697908"><ph name="CHROME_WEB_STORE" /> ಮೂಲಕ ಮಾತ್ರ ಇದನ್ನು ಸೇರಿಸಬಹುದಾಗಿದೆ</translation>
 <translation id="1877520246462554164">ದೃಢೀಕರಣ ಟೋಕನ್ ಪಡೆಯಲು ವಿಫಲವಾಗಿದೆ. ಸೈನ್ ಔಟ್ ಆಗಿ ಮತ್ತೆ ಸೈನ್ ಇನ್ ಆಗಿ ಪ್ರಯತ್ನಿಸಿ.</translation>
+<translation id="1877860345998737529">ಕ್ರಿಯೆಯ ನಿಯೋಜನೆಯನ್ನು ಬದಲಿಸಿ</translation>
 <translation id="1879000426787380528">ಇದರಂತೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="1880905663253319515">"<ph name="CERTIFICATE_NAME" />" ಪ್ರಮಾಣಪತ್ರವನ್ನು ಅಳಿಸುವುದೆ?</translation>
 <translation id="1886996562706621347">ಪ್ರೊಟೋಕಾಲ್‌ಗಳಿಗಾಗಿ ಡಿಫಾಲ್ಟ್ ಹ್ಯಾಂಡ್ಲರ್‌‌ಗಳಾಗಲು ಸೈಟ್‌ಗಳನ್ನು ಅನುಮತಿಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
@@ -870,6 +873,7 @@
 <translation id="230927227160767054">ಸೇವೆ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಈ ಪುಟವು ಬಯಸುತ್ತದೆ.</translation>
 <translation id="2309620859903500144">ನಿಮ್ಮ ಚಲನೆಯ ಅಥವಾ ಲೈಟ್‌ ಸೆನ್ಸರ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸದಂತೆ ಈ ಸೈಟ್‌ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation>
 <translation id="2315414688463285945">Linux ಫೈಲ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ. ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
+<translation id="2315587498123194634"><ph name="DEVICE_NAME" /> ಗೆ ಲಿಂಕ್ ಕಳುಹಿಸಿ</translation>
 <translation id="2316129865977710310">ಬೇಡ, ಧನ್ಯವಾದಗಳು</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % ಮುಗಿದಿದೆ</translation>
 <translation id="2318143611928805047">ಪೇಪರ್ ಗಾತ್ರ</translation>
@@ -910,6 +914,7 @@
 <translation id="2365507699358342471">ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿರುವ ಪಠ್ಯ ಮತ್ತು ಚಿತ್ರಗಳನ್ನು ಈ ಸೈಟ್ ವೀಕ್ಷಿಸಬಹುದು.</translation>
 <translation id="2367199180085172140">ಫೈಲ್‌ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="2367972762794486313">ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ತೋರಿಸು</translation>
+<translation id="2369105924912929484">ಡಿಸ್ಟಿಲ್ ಮಾಡಿರುವ ಪುಟದ ಕಂಟೆಂಟ್‌ಗಳನ್ನು ಟಾಗಲ್ ಮಾಡಿ</translation>
 <translation id="2371076942591664043">&amp;ಮುಗಿಸಿದಾಗ ತೆರೆಯಿರಿ</translation>
 <translation id="2375406435414127095">ನಿಮ್ಮ ಫೋನ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ</translation>
 <translation id="2377667304966270281">ಹಾರ್ಡ್ ಫಾಲ್ಟ್ಸ್</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">ಡೀಬಗ್</translation>
 <translation id="2739240477418971307">ನಿಮ್ಮ ಪ್ರವೇಶಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿ</translation>
 <translation id="2740393541869613458">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರು ಭೇಟಿ ನೀಡಿರುವ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ, ಮತ್ತು</translation>
+<translation id="2741912629735277980">UI ಅನ್ನು ಲಾಗಿನ್ ಪರದೆಯಲ್ಲಿ ಪ್ರದರ್ಶಿಸಿ</translation>
 <translation id="274290345632688601">Linux ಆ್ಯಪ್‌ಗಳು &amp; ಫೈಲ್‌ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="2743387203779672305">ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">ನೆಟ್‍ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ</translation>
 <translation id="2913331724188855103">ಕುಕೀ ಡೇಟಾವನ್ನು ಉಳಿಸಲು ಮತ್ತು ರೀಡ್ ಮಾಡಲು ಸೈಟ್‌ಗಳನ್ನು ಅನುಮತಿಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="2915102088417824677">ಚಟುವಟಿಕೆ ಲಾಗ್ ಅನ್ನು ವೀಕ್ಷಿಸಿ</translation>
+<translation id="2915873080513663243">ಸ್ವಯಂ-ಸ್ಕ್ಯಾನ್</translation>
 <translation id="2916073183900451334">ಫಾರ್ಮ್ ಕ್ಷೇತ್ರಗಳಂತೆ ವೆಬ್‌ಪುಟದಲ್ಲಿನ ಹೈಲೈಟ್ ಲಿಂಕ್‌ಗಳ ಟ್ಯಾಬ್ ಒತ್ತಿರಿ</translation>
 <translation id="2916745397441987255">ವಿಸ್ತರಣೆಗಳನ್ನು ಹುಡುಕಿ</translation>
 <translation id="2921081876747860777">ನಿಮ್ಮ ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ರಕ್ಷಿಸಲು ದಯವಿಟ್ಟು ಪಾಸ್‌ವರ್ಡ್ ರಚಿಸಿ.</translation>
@@ -1483,6 +1490,7 @@
 <translation id="327147043223061465">ಎಲ್ಲ ಕುಕೀಗಳು ಮತ್ತು ಸೈಟ್ ಡೇಟಾವನ್ನು ನೋಡಿ</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> ಸಂಪರ್ಕಿಸಲು ಬಯಸುತ್ತದೆ</translation>
 <translation id="3274763671541996799">ನೀವು ಪೂರ್ಣ ಪರದೆಗೆ ಬಂದಿದ್ದೀರಿ.</translation>
+<translation id="3275778809241512831">ಪ್ರಸ್ತುತ, ನಿಮ್ಮ ಆಂತರಿಕ ಭದ್ರತೆ ಕೀ ಅಸುರಕ್ಷಿತವಾಗಿದೆ. ಅದನ್ನು ಯಾವ ಸೇವೆಗಳಲ್ಲಿ ಬಳಸಿರುವಿರೋ, ಅವುಗಳಿಂದ ತೆಗೆದುಹಾಕಿ. ಸಮಸ್ಯೆಯನ್ನು ಬಗೆಹರಿಸಲು, ಭದ್ರತೆ ಕೀಯನ್ನು ಮರುಹೊಂದಿಸಿ.</translation>
 <translation id="3275778913554317645">ವಿಂಡೊ ಅಂತೆ ತೆರೆಯಿರಿ</translation>
 <translation id="3278001907972365362">ನಿಮ್ಮ Google ಖಾತೆಗಳ ಮೇಲೆ ಗಮನಹರಿಸಬೇಕಿದೆ</translation>
 <translation id="3279230909244266691">ಈ ಪ್ರಕ್ರಿಯೆಯು ಕೆಲವು ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ.</translation>
@@ -1575,6 +1583,7 @@
 <translation id="3412265149091626468">ಆಯ್ಕೆಗೆ ತೆರಳಿ</translation>
 <translation id="3413122095806433232">CA ನೀಡುವವರು: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">ಗಾತ್ರ:</translation>
+<translation id="3420501302812554910">ಆಂತರಿಕ ಭದ್ರತೆ ಕೀಯನ್ನು ಮರುಹೊಂದಿಸುವ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="3421387094817716717">ಎಲಿಪ್ಟಿಕ್ ಕರ್ವ್ ಸಾರ್ವಜನಿಕ ಕೀಲಿ</translation>
 <translation id="3423463006624419153">ನಿಮ್ಮ '<ph name="PHONE_NAME_1" />' ಮತ್ತು '<ph name="PHONE_NAME_2" />' ನಲ್ಲಿ:</translation>
 <translation id="3423858849633684918">ದಯವಿಟ್ಟು <ph name="PRODUCT_NAME" /> ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
@@ -1603,6 +1612,7 @@
 <translation id="3450157232394774192">ತಟಸ್ಥ ಸ್ಥಿತಿಯ ನೆಲೆಸುವಿಕೆ ಪ್ರತಿಶತ</translation>
 <translation id="3453612417627951340">ದೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="3454157711543303649">ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಪೂರ್ಣಗೊಂಡಿದೆ</translation>
+<translation id="3454213325559396544">ಈ <ph name="DEVICE_TYPE" /> ಗಾಗಿ, ಇದು ಕೊನೆಯ ಸಾಫ್ಟ್‌ವೇರ್ ಹಾಗೂ ಸುರಕ್ಷತಾ ಅಪ್‌ಡೇಟ್ ಆಗಿದೆ. ಭವಿಷ್ಯದ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪಡೆಯಲು, ಹೊಸ ಮಾಡೆಲ್‌ಗೆ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಿ.</translation>
 <translation id="345693547134384690">ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ &amp;ಇಮೇಜ್ ಅನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="3457500881955698515">ನಿಮ್ಮ ಕಂಪನಿ ಅಥವಾ ಸಂಸ್ಥೆಗೆ ಈ ಸಾಧನವನ್ನು ಈಗಲೇ ಅಪ್‌ಡೇಟ್ ಮಾಡುವ ಅಗತ್ಯವಿರುತ್ತದೆ</translation>
 <translation id="3459509316159669723">ಮುದ್ರಿಸಲಾಗುತ್ತಿದೆ</translation>
@@ -1760,6 +1770,7 @@
 <translation id="3672681487849735243">ತಯಾರಿಕೆಯ ದೋಷವನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="367645871420407123">ರೂಟ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಪರೀಕ್ಷೆ ಚಿತ್ರ ಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಸಲು ನೀವು ಬಯಸಿದರೆ ಖಾಲಿ ಬಿಡಿ</translation>
 <translation id="3677657024345889897">ಕನಿಷ್ಠ ಪರಿಮಾಣ</translation>
+<translation id="3677911431265050325">ಮೊಬೈಲ್ ಸೈಟ್‌ಗಾಗಿ ವಿನಂತಿಸಿ</translation>
 <translation id="3678156199662914018">ವಿಸ್ತರಣೆ: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಗೆ ಧನ್ಯವಾದಗಳು. ನೀವು ಇದೀಗ ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿರುವಿರಿ ಮತ್ತು ನಿಮ್ಮ ವರದಿಯನ್ನು ನಂತರ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="3682824389861648626">ಚಲನೆಯ ಮಿತಿ</translation>
@@ -2212,6 +2223,7 @@
 <translation id="4350019051035968019">ಈ ಸಾಧನವನ್ನು ನಿಮ್ಮ ಖಾತೆಗೆ ಸಂಬಂಧಿಸಿದ ಡೊಮೇನ್‌ಗೆ ಸೇರಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ ಏಕೆಂದರೆ ಈ ಸಾಧನವನ್ನು ನಿರ್ವಹಿಸಲು ಬೇರೊಂದು ಡೊಮೇ‌ನ್ ಮೂಲಕ ಗುರುತಿಸಲಾಗಿದೆ.</translation>
 <translation id="4354344420232759511">ನೀವು ಭೇಟಿ ಮಾಡುವ ಸೈಟ್‌ಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ</translation>
 <translation id="435527878592612277">ನಿಮ್ಮ ಫೋಟೋ ಆಯ್ಕೆಮಾಡಿ</translation>
+<translation id="4358313196493694334">ಕ್ಲಿಕ್‌ನ ಸ್ಥಾನವನ್ನು ಸ್ಥಿರಗೊಳಿಸಿ</translation>
 <translation id="4359408040881008151">ಅವಲಂಬಿತ ವಿಸ್ತರಣೆ(ಗಳು) ಯಿಂದಾಗಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ.</translation>
 <translation id="4359717112757026264">Cityscape</translation>
 <translation id="4361142739114356624">ಈ ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರಕ್ಕೆ ವೈಯಕ್ತಿಕ ಕೀ ಕಾಣೆಯಾಗಿದೆ ಅಥವಾ ಅಮಾನ್ಯವಾಗಿದೆ</translation>
@@ -2336,6 +2348,7 @@
 <translation id="4558426062282641716">ಸ್ವಯಂ-ಪ್ರಾರಂಭ ಅನುಮತಿಗೆ ವಿನಂತಿಸಲಾಗಿದೆ</translation>
 <translation id="4558491878126948419">Google ಉತ್ಪನ್ನಗಳಲ್ಲಿ <ph name="DEVICE_TYPE" /> ಸಲಹೆಗಳು ಮತ್ತು ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ ಹಾಗೂ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಿ. ಯಾವಾಗ ಬೇಕಾದರೂ ಅನ್‌ಸಬ್‌ಸ್ಕ್ರೈಬ್ ಮಾಡಿ.</translation>
 <translation id="4559617833001311418">ಈ ಸೈಟ್ ನಿಮ್ಮ ಚಲನೆ ಅಥವಾ ಲೈಟ್ ಸೆನ್ಸರ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸುತ್ತಿದೆ.</translation>
+<translation id="4561098487691395071">ಅಥವಾ ನಿಮ್ಮ ಪ್ರಿಂಟರ್‌ನ PPD ಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ</translation>
 <translation id="4562155214028662640">ಫಿಂಗರ್‌‌ಫ್ರಿಂಟ್‌  ಸೇರಿಸಿ</translation>
 <translation id="4563880231729913339">ಬೆರಳು 3</translation>
 <translation id="4565377596337484307">ಪಾಸ್‌ವರ್ಡ್ ಮರೆಮಾಡಿ</translation>
@@ -2581,6 +2594,7 @@
 <translation id="494286511941020793">ಪ್ರಾಕ್ಸಿ ಕಾನ್ಫಿಗರೇಶನ್ ಸಹಾಯ</translation>
 <translation id="4943368462779413526">ಫುಟ್‌ಬಾಲ್</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" ಒಂದು ಸೀರಿಯಲ್ ಪೋರ್ಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಬಯಸುತ್ತದೆ</translation>
+<translation id="4944310289250773232">ಈ ದೃಢೀಕರಣ ಸೇವೆಯನ್ನು <ph name="SAML_DOMAIN" /> ಮೂಲಕ ಹೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="495170559598752135">ಕ್ರಿಯೆಗಳು</translation>
 <translation id="4953689047182316270">ಪ್ರವೇಶಿಸುವಿಕೆ ಈವೆಂಟ್‌ಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಿ</translation>
 <translation id="4953808748584563296">ಡಿಫಾಲ್ಟ್ ಕೇಸರಿ ಅವತಾರ್</translation>
@@ -2673,6 +2687,7 @@
 <translation id="5094721898978802975">ಸಹಕರಿಸುವ ಸ್ಥಳೀಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳೊಂದಿಗೆ ಸಂವಹಿಸಿ</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ವಿಫಲವಾಗಿದೆ: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">ಎಲ್ಲಾ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
+<translation id="5101839224773798795">ಕರ್ಸರ್ ನಿಂತಾಗ, ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
 <translation id="5108967062857032718">ಸೆಟ್ಟಿಂಗ್‌ಗಳು - Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="5109044022078737958">ಮಿಯಾ</translation>
 <translation id="5111646998522066203">ಅದೃಶ್ಯ ಮೋಡ್‌ನಿಂದ ನಿರ್ಗಮಿಸಿ</translation>
@@ -3157,6 +3172,7 @@
 <translation id="5852112051279473187">ಓಹ್! ಈ ಸಾಧನವನ್ನು ದಾಖಲಿಸುವಾಗ ನಿಜವಾಗಿಯೂ ಏನೋ ತಪ್ಪು ಸಂಭವಿಸಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ನಿಮ್ಮ ಬೆಂಬಲಿತ ಪ್ರತಿನಿಧಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="5852137567692933493">ಮರುಪ್ರಾರಂಭಿಸು ಮತ್ತು ಪವರ್‌ವಾಶ್ ಮಾಡು</translation>
 <translation id="5854912040170951372">ಸ್ಲೈಸ್</translation>
+<translation id="5855643921295613558">0.6 ಸೆಕೆಂಡುಗಳು</translation>
 <translation id="5855773610748894548">ಓಹ್, ಸುಭದ್ರ ಮಾಡ್ಯೂಲ್‌ನಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ.</translation>
 <translation id="5856721540245522153">ಡೀಬಗ್ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="5857090052475505287">ಹೊಸ ಫೋಲ್ಡರ್</translation>
@@ -3446,6 +3462,7 @@
 <translation id="6279183038361895380">ನಿಮ್ಮ ಕರ್ಸರ್ ತೋರಿಸಲು |<ph name="ACCELERATOR" />| ಒತ್ತಿ</translation>
 <translation id="6280215091796946657">ಬೇರೆ ಖಾತೆಯೊಂದಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 ಸೆಕೆಂಡುಗಳು</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಹೊಸ ಪ್ರಿಂಟರ್}one{ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಹೊಸ ಪ್ರಿಂಟರ್‌ಗಳು}other{ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಹೊಸ ಪ್ರಿಂಟರ್‌ಗಳು}}</translation>
 <translation id="6286708577777130801">ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್ ವಿವರಗಳು</translation>
@@ -3652,6 +3669,7 @@
 <translation id="6612358246767739896">ಸಂರಕ್ಷಿಸಿದ ವಿಷಯ</translation>
 <translation id="6613452264606394692">ಈ ಪುಟವನ್ನು ಬುಕ್‌ಮಾರ್ಕ್‌ ಮಾಡುವ ಮೂಲಕ ಬಳಕೆಗೆ ವೇಗವಾಗಿ ಮರಳಿ ಬನ್ನಿ</translation>
 <translation id="6615455863669487791">ನನಗೆ ತೋರಿಸಿ</translation>
+<translation id="6617100836880592260">ಸ್ಕ್ಯಾನಿಂಗ್‌ನ ವೇಗ: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">ಪರವಾಗಿಲ್ಲ, ಇರಿಸಿ</translation>
 <translation id="6619058681307408113">ಲೈನ್ ಪ್ರಿಂಟರ್ ಡೇಮನ್ (LPD)</translation>
 <translation id="661907246513853610">ನಿಮ್ಮ ಸ್ಧಳವನ್ನು ಸೈಟ್‌ ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು</translation>
@@ -4467,6 +4485,7 @@
 <translation id="7831491651892296503">ನೆಟ್‌ವರ್ಕ್‌ ಕಾನ್ಫಿಗರ್‌ ಮಾಡುವಲ್ಲಿ ದೋಷ</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">ಮುಕ್ತಾಯದ ಸಮಯ</translation>
+<translation id="783214144752121388">ಸೈಟ್‌ಗಳು, Flashಅ ಅನ್ನು ರನ್ ಮಾಡದಂತೆ ನಿರ್ಬಂಧಿಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="7833720883933317473">ಉಳಿಸಲಾದ ಕಸ್ಟಮ್ ಪದಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ</translation>
 <translation id="7835178595033117206">ಬುಕ್‌ಮಾರ್ಕ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ</translation>
 <translation id="7837776265184002579">ನಿಮ್ಮ ಮುಖಪುಟವನ್ನು <ph name="URL" /> ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ.</translation>
@@ -4522,6 +4541,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">ಸರ್ವರ್‌ನಲ್ಲಿ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ. ಸೈನ್ ಔಟ್ ಮಾಡಿ ಮತ್ತೆ ಸೈನ್ ಇನ್ ಆಗಿರಿ.</translation>
 <translation id="7915471803647590281">ದಯವಿಟ್ಟು ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸುವ ಮುಂಚಿತವಾಗಿ ಏನು ನಡೆಯುತ್ತಿದೆ ಎಂದು ನಮಗೆ ತಿಳಿಸಿ.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" />ಸೆ</translation>
 <translation id="792514962475806987">ಡಾಕ್ ಮಾಡಿರುವುದಕ್ಕೆ ಝೂಮ್‌ ಮಟ್ಟ:</translation>
 <translation id="7925247922861151263">AAA ಪರಿಶೀಲನೆ ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> ಗಾಗಿ ಕಾಯುತ್ತಿದೆ...</translation>
@@ -4579,6 +4599,7 @@
 <translation id="7987814697832569482">ಯಾವಾಗಲೂ ಈ VPN ಮೂಲಕವೇ ಸಂಪರ್ಕಿಸಿ</translation>
 <translation id="798835209536175951">ನಿಮ್ಮ Chromebook ನಿಂದ ಪಠ್ಯ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಿ ಮತ್ತು ಸ್ವೀಕರಿಸಿ. <ph name="LINK_BEGIN" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">ಪ್ರವೇಶದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
+<translation id="7991296728590311172">ಪ್ರವೇಶದ ವಿಧಾನವನ್ನು ಬದಲಿಸುವ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="7994702968232966508">EAP ವಿಧಾನ</translation>
 <translation id="7997826902155442747">ಪ್ರಕ್ರಿಯೆಯ ಆದ್ಯತೆ</translation>
 <translation id="7999229196265990314">ಕೆಳಗಿನ ಫೈಲ್‌ಗಳನ್ನು ರಚಿಸಲಾಗಿದೆ:
@@ -4790,6 +4811,8 @@
 <translation id="8308179586020895837">ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಪ್ರವೇಶಿಸಲು <ph name="HOST" /> ಬಯಸುತ್ತದೆಯೇ ಎಂಬುದನ್ನು ಕೇಳಿ</translation>
 <translation id="830868413617744215">ಬೀಟಾ</translation>
 <translation id="8309458809024885768">ಪ್ರಮಾಣಪತ್ರ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ</translation>
+<translation id="8314381333424235892">ವಿಸ್ತರಣೆ ಕಾಣೆಯಾಗಿದೆ ಅಥವಾ ಅದನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿಲ್ಲ</translation>
+<translation id="8316618172731049784"><ph name="DEVICE_NAME" /> ಗೆ ಕಳುಹಿಸಿ</translation>
 <translation id="8317671367883557781">ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="8319414634934645341">ವಿಸ್ತರಿತ ಕೀಲಿ ಬಳಕೆ</translation>
 <translation id="8320459152843401447">ನಿಮ್ಮ ಸಂಪೂರ್ಣ ಪರದೆ</translation>
@@ -4949,6 +4972,7 @@
 <translation id="8588866096426746242">ಪ್ರೊಫೈಲ್ ಸ್ಥಿತಿಯನ್ನು ತೋರಿಸಿ</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - VR, ಹೆಡ್‌ಸೆಟ್‌ಗೆ ಪ್ರಸ್ತುತಪಡಿಸುತ್ತಿದೆ</translation>
 <translation id="8590375307970699841">ಸ್ವಯಂಚಾಲಿತ ನವೀಕರಣಗಳನ್ನು ಹೊಂದಿಸಿ</translation>
+<translation id="8591783563402255548">1 ಸೆಕೆಂಡ್</translation>
 <translation id="8592141010104017453">ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಲೇಬೇಡಿ</translation>
 <translation id="8593121833493516339">ಬಳಕೆ ಮತ್ತು ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿ. ಡಯಾಗ್ನಾಸ್ಟಿಕ್, ಸಾಧನ, ಹಾಗೂ ಆ್ಯಪ್ ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಮಗುವಿನ Android ಅನುಭವವನ್ನು ಉತ್ತಮಗೊಳಿಸುವುದಕ್ಕೆ ಸಹಾಯ ಮಾಡಿ. ಈ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ಮಗುವನ್ನು ಗುರುತಿಸುವುದಕ್ಕೆ ಬಳಸುವುದಿಲ್ಲ, ಹಾಗೂ ಇದು ಸಿಸ್ಟಮ್ ಮತ್ತು ಆ್ಯಪ್ ಸ್ಥಿರತೆಗೆ, ಹಾಗೂ ಇತರ ಸುಧಾರಣೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಕೆಲವು ಒಟ್ಟುಗೂಡಿಸಿದ ಡೇಟಾವು, Google ಆ್ಯಪ್‌ಗಳಿಗೆ ಮತ್ತು ಪಾಲುದಾರರಿಗೂ ಸಹ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, Android ಡೆವಲಪರ್‌ಗಳು. ನಿಮ್ಮ ಮಗುವಿಗಾಗಿ ಹೆಚ್ಚುವರಿ ವೆಬ್‌ ಮತ್ತು ಆ್ಯಪ್ ಚಟುವಟಿಕೆ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಆನ್‌ ಮಾಡಿದ್ದಲ್ಲಿ, ಈ ಡೇಟಾವು ಅವರ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲ್ಪಡಬಹುದು. <ph name="BEGIN_LINK1" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">ವೀಡಿಯೊ ಸೆರೆಹಿಡಿಯಿರಿ</translation>
@@ -4978,6 +5002,7 @@
 <translation id="8637688295594795546">ಸಿಸ್ಟಂ ಅಪ್‌ಡೇಟ್‌‌ ಲಭ್ಯವಿದೆ. ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಿದ್ಧಗೊಳ್ಳುತ್ತಿದೆ...</translation>
 <translation id="8639047128869322042">ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್‌ವೇರ್‌ಗಾಗಿ ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="8642171459927087831">ಪ್ರವೇಶ ಟೋಕನ್</translation>
+<translation id="8642900771896232685">2 ಸೆಕೆಂಡುಗಳು</translation>
 <translation id="8642947597466641025">ಪಠ್ಯವನ್ನು ದೊಡ್ಡದಾಗಿ ಮಾಡಿಕೊಳ್ಳಿ</translation>
 <translation id="8643418457919840804">ಮುಂದುವರಿಸಲು, ಆಯ್ಕೆಯನ್ನು ಆರಿಸಿ:</translation>
 <translation id="8644655801811752511">ಈ ಭದ್ರತೆ ಕೀ ಅನ್ನು ಮರುಹೊಂದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಕೀ ಅನ್ನು ಮರುಸೇರ್ಪಡಿಸಿದ ನಂತರ, ಅದನ್ನು ಕೂಡಲೇ ಮರುಹೊಂದಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
@@ -5179,6 +5204,7 @@
 <translation id="8910222113987937043">ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಮಾಡಲಾಗುವ ಬದಲಾವಣೆಗಳನ್ನು ಇನ್ನು ಮುಂದೆ ನಿಮ್ಮ Google ಖಾತೆಗೆ ಸಿಂಕ್‌ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಆದಾಗ್ಯೂ, ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಡೇಟಾ ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿಯೇ ಇರುತ್ತದೆ ಮತ್ತು <ph name="BEGIN_LINK" />Google ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌<ph name="END_LINK" />ನಲ್ಲಿ ನಿರ್ವಹಿಸಬಹುದಾಗಿದೆ.</translation>
 <translation id="8912362522468806198">Google ಖಾತೆ</translation>
 <translation id="8912793549644936705">ಎಳೆದಿರುವುದು</translation>
+<translation id="8912810933860534797">ಸ್ವಯಂ ಸ್ಕ್ಯಾನ್ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="891365694296252935">ಬಳಕೆ ಮತ್ತು ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿ. ಪ್ರಸ್ತುತ ಈ ಸಾಧನವು ಡಯಾಗ್ನಾಸ್ಟಿಕ್, ಸಾಧನ, ಮತ್ತು ಆ್ಯಪ್ ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುತ್ತಿದೆ. ಈ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ಮಗುವನ್ನು ಗುರುತಿಸುವುದಕ್ಕೆ ಬಳಸುವುದಿಲ್ಲ, ಹಾಗೂ ಇದು ಸಿಸ್ಟಮ್ ಮತ್ತು ಆ್ಯಪ್ ಸ್ಥಿರತೆ, ಹಾಗೂ ಇತರ ಸುಧಾರಣೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಕೆಲವು ಒಟ್ಟುಗೂಡಿಸಿದ ಡೇಟಾವು, Google ಆ್ಯಪ್‌ಗಳಿಗೆ ಮತ್ತು ಪಾಲುದಾರರಿಗೂ ಸಹ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, Android ಡೆವಲಪರ್‌ಗಳು. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಮಾಲೀಕರೇ ಜಾರಿಗೊಳಿಸುತ್ತಾರೆ. ನಿಮ್ಮ ಮಗುವಿಗಾಗಿ ಹೆಚ್ಚುವರಿ ವೆಬ್‌ ಮತ್ತು ಆ್ಯಪ್ ಚಟುವಟಿಕೆ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಆನ್‌ ಮಾಡಿದ್ದಲ್ಲಿ, ಈ ಡೇಟಾವು ಅವರ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲ್ಪಡಬಹುದು. <ph name="BEGIN_LINK1" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">ಸಲಹೆಯನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation>
 <translation id="8916476537757519021">ಅದೃಶ್ಯ ಉಪಫ್ರೇಮ್: <ph name="SUBFRAME_SITE" /></translation>
@@ -5294,6 +5320,7 @@
 <translation id="9094033019050270033">ಪಾಸ್‌ವರ್ಡ್ ಅಪ್‌ಡೇಟ್ ಮಾಡು</translation>
 <translation id="9094982973264386462">ತೆಗೆದುಹಾಕು</translation>
 <translation id="9095253524804455615">ತೆಗೆದುಹಾಕು</translation>
+<translation id="9095388113577226029">ಇನ್ನಷ್ಟು ಭಾಷೆಗಳು...</translation>
 <translation id="9100610230175265781">ಪಾಸ್‌ಫ್ರೇಸ್ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="9100765901046053179">ಸುಧಾರಿತ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="9101691533782776290">ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಾರಂಭಿಸು</translation>
@@ -5331,6 +5358,7 @@
 <translation id="9153934054460603056">ಗುರುತಿಸುವಿಕೆ ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ ಉಳಿಸಿ</translation>
 <translation id="9154194610265714752">ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="91568222606626347">ಶಾರ್ಟ್‌ಕಟ್‌ ರಚಿಸಿ...</translation>
+<translation id="9157096865782046368">0.8 ಸೆಕೆಂಡುಗಳು</translation>
 <translation id="9157697743260533322">ಎಲ್ಲ ಬಳಕೆದಾರರಿಗೆ ಸ್ವಯಂಚಾಲಿತ ನವೀಕರಣಗಳನ್ನು ಹೊಂದಿಸುವುದು ವಿಫಲವಾಗಿದೆ (ಪ್ರೀಫ್ಲೈಟ್ ಲಾಂಚ್ ದೋಷ: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">ಓಹ್! ದೃಢೀಕರಣ ಸಮಯದಲ್ಲಿ ನೆಟ್‌ವರ್ಕ್ ಸಂಹವನ ಸಮಸ್ಯೆಯು ಸಂಭವಿಸಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಸಂರ್ಪಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="916607977885256133">ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index cfcbff4..a3d136c6f 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ko">
+<translation id="1002469766576243227">이 인증 서비스는 <ph name="EXTENSION_NAME" />에서 호스팅합니다</translation>
 <translation id="1003088604756913841">새 <ph name="APP" /> 창에서 링크 열기</translation>
 <translation id="1004218526896219317">사이트 액세스</translation>
 <translation id="1005274289863221750">마이크와 카메라 사용</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">모두 삭제됨</translation>
 <translation id="143027896309062157">컴퓨터 및 방문하는 웹사이트의 전체 데이터 조회 및 변경</translation>
 <translation id="1430915738399379752">인쇄</translation>
+<translation id="1431188203598586230">마지막 소프트웨어 업데이트</translation>
 <translation id="1432581352905426595">검색엔진 관리</translation>
 <translation id="1433811987160647649">액세스하기 전에 확인</translation>
 <translation id="1434696352799406980">시작 페이지, 새 탭 페이지, 검색엔진, 고정 탭이 재설정됩니다. 또한 모든 확장 프로그램이 사용 중지되고 쿠키와 같은 임시 데이터가 삭제됩니다. 북마크, 기록, 저장된 비밀번호는 삭제되지 않습니다.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">기본 흰색 아바타</translation>
 <translation id="1581962803218266616">Finder에서 보기</translation>
 <translation id="1584990664401018068">사용 중인 Wi-Fi 네트워크(<ph name="NETWORK_ID" />)에서 인증을 요청할 수 있습니다.</translation>
-<translation id="1585238069289523942">Chromebook에 앱을 설치하세요.</translation>
 <translation id="1585717515139318619">컴퓨터의 다른 프로그램에서 Chrome 작동에 영향을 줄 수 있는 테마를 추가했습니다. 
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">계정 및 동기화</translation>
 <translation id="1782196717298160133">휴대전화 찾는 중</translation>
 <translation id="1784849162047402014">기기에 디스크 저장 공간 부족</translation>
+<translation id="1790194216133135334"><ph name="DEVICE_NAME" />(으)로 링크 보내기</translation>
 <translation id="1792619191750875668">확장 디스플레이</translation>
 <translation id="1794791083288629568">이 문제를 해결하는 데 도움이 되도록 의견 전송</translation>
 <translation id="1795214765651529549">기본 테마 사용</translation>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">시작</translation>
 <translation id="1875387611427697908">이 프로그램은 <ph name="CHROME_WEB_STORE" />에서만 추가할 수 있습니다</translation>
 <translation id="1877520246462554164">인증 토큰을 가져오지 못했습니다. 로그아웃한 다음 다시 로그인하여 다시 시도해 주세요.</translation>
+<translation id="1877860345998737529">스위치 작업 할당</translation>
 <translation id="1879000426787380528">다음 사용자로 로그인</translation>
 <translation id="1880905663253319515">인증서 '<ph name="CERTIFICATE_NAME" />'을(를) 삭제하시겠습니까?</translation>
 <translation id="1886996562706621347">사이트에서 프로토콜 기본 핸들러로 사용할지 여부를 묻도록 허용(권장)</translation>
@@ -658,7 +661,7 @@
 <translation id="1983959805486816857">새로운 관리 대상 사용자를 만든 후에는 언제 어떤 기기를 사용하든 <ph name="MANAGEMENT_URL" /> 페이지에서 설정을 관리할 수 있습니다.</translation>
 <translation id="1987317783729300807">계정</translation>
 <translation id="1989112275319619282">찾아보기</translation>
-<translation id="1990512225220753005">이 페이지에 바로가기를 표시하지 않음</translation>
+<translation id="1990512225220753005">이 페이지에 바로가기를 표시하지 않습니다.</translation>
 <translation id="1992397118740194946">설정 안됨</translation>
 <translation id="1994173015038366702">사이트 URL</translation>
 <translation id="1997484222658892567"><ph name="URL" />에서 로컬 컴퓨터에 대용량 데이터를 영구 저장하려고 합니다</translation>
@@ -869,6 +872,7 @@
 <translation id="230927227160767054">이 페이지에서 서비스 핸들러를 설치하려 합니다.</translation>
 <translation id="2309620859903500144">모션 센서 또는 조도 센서 액세스가 차단된 사이트입니다.</translation>
 <translation id="2315414688463285945">Linux 파일을 구성하는 중에 오류가 발생했습니다. 다시 시도해 보세요.</translation>
+<translation id="2315587498123194634"><ph name="DEVICE_NAME" />(으)로 링크 보내기</translation>
 <translation id="2316129865977710310">아니요, 괜찮습니다.</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% 완료</translation>
 <translation id="2318143611928805047">용지 크기</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">이 사이트는 클립보드에 복사된 텍스트와 이미지에 액세스할 수 있습니다.</translation>
 <translation id="2367199180085172140">파일 공유 추가</translation>
 <translation id="2367972762794486313">앱 표시</translation>
+<translation id="2369105924912929484">추출된 페이지 콘텐츠 전환</translation>
 <translation id="2371076942591664043">완료되면 열기(&amp;D)</translation>
 <translation id="2375406435414127095">휴대전화에 연결</translation>
 <translation id="2377667304966270281">하드 결함</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">디버그</translation>
 <translation id="2739240477418971307">접근성 설정 변경</translation>
 <translation id="2740393541869613458">관리 대상 사용자가 방문한 웹사이트 검토 등</translation>
+<translation id="2741912629735277980">로그인 화면에 UI 표시</translation>
 <translation id="274290345632688601">Linux 앱 및 파일 복원 중</translation>
 <translation id="2743387203779672305">클립보드로 복사</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">네트워크에 연결하고 다시 시도해 주세요</translation>
 <translation id="2913331724188855103">사이트에서 쿠키 데이터를 저장하고 읽도록 허용(권장)</translation>
 <translation id="2915102088417824677">활동 로그 보기</translation>
+<translation id="2915873080513663243">자동 스캔</translation>
 <translation id="2916073183900451334">웹페이지에서 Tab 키를 누르면 링크뿐 아니라 양식 입력란도 강조표시됩니다.</translation>
 <translation id="2916745397441987255">확장 프로그램 검색</translation>
 <translation id="2921081876747860777">비밀번호를 만들어 로컬 데이터 보호</translation>
@@ -1483,6 +1490,7 @@
 <translation id="327147043223061465">모든 쿠키 및 사이트 데이터 보기</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" />에서 연결하려고 함</translation>
 <translation id="3274763671541996799">전체화면으로 전환되었습니다.</translation>
+<translation id="3275778809241512831">현재 내부 보안 키가 안전하지 않습니다. 키를 사용한 모든 서비스에서 키를 삭제하세요. 문제를 해결하려면 보안 키를 재설정하시기 바랍니다.</translation>
 <translation id="3275778913554317645">창으로 열기</translation>
 <translation id="3278001907972365362">Google 계정에 주의가 필요합니다.</translation>
 <translation id="3279230909244266691">이 과정은 몇 분 정도 소요될 수 있습니다. 가상 머신을 시작합니다.</translation>
@@ -1575,6 +1583,7 @@
 <translation id="3412265149091626468">선택 부분으로 이동</translation>
 <translation id="3413122095806433232">CA 발행기관: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">크기:</translation>
+<translation id="3420501302812554910">내부 보안 키 재설정 필요</translation>
 <translation id="3421387094817716717">타원 곡선 공개 키</translation>
 <translation id="3423463006624419153">'<ph name="PHONE_NAME_1" />' 및 '<ph name="PHONE_NAME_2" />'에서 다음과 같이 설정하세요.</translation>
 <translation id="3423858849633684918"><ph name="PRODUCT_NAME" />을(를) 다시 시작하세요.</translation>
@@ -1603,6 +1612,7 @@
 <translation id="3450157232394774192">유휴 상태 점유율</translation>
 <translation id="3453612417627951340">승인 필요</translation>
 <translation id="3454157711543303649">활성화 완료</translation>
+<translation id="3454213325559396544">이 <ph name="DEVICE_TYPE" />의 마지막 자동 소프트웨어 및 보안 업데이트입니다. 향후 업데이트를 받으려면 새 모델로 업그레이드하세요.</translation>
 <translation id="345693547134384690">새 탭에서 이미지 열기(&amp;I)</translation>
 <translation id="3457500881955698515">회사 또는 조직에서 기기를 즉시 업데이트할 것을 요구합니다.</translation>
 <translation id="3459509316159669723">인쇄</translation>
@@ -1760,6 +1770,7 @@
 <translation id="3672681487849735243">하드웨어에서 문제가 발견되었습니다.</translation>
 <translation id="367645871420407123">루트 비밀번호를 기본 테스트 이미지 값으로 설정하려면 비워두세요.</translation>
 <translation id="3677657024345889897">가장 조용하게</translation>
+<translation id="3677911431265050325">모바일 버전으로 보기</translation>
 <translation id="3678156199662914018">확장 프로그램: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">의견을 보내주셔서 감사합니다. 현재 오프라인 상태이므로 보고서는 나중에 전송됩니다.</translation>
 <translation id="3682824389861648626">움직임 기준</translation>
@@ -2180,7 +2191,7 @@
 <translation id="4289540628985791613">개요</translation>
 <translation id="4291934469232591280">버전: <ph name="VERSION" /></translation>
 <translation id="4295072614469448764">단말기에서 앱을 사용할 수 있습니다. 런처에 아이콘이 있을 수도 있습니다.</translation>
-<translation id="4295979599050707005">웹사이트, 앱, Chrome 확장 프로그램 및 Google Play에서 계정(<ph name="USER_EMAIL" />)을 사용할 수 있는지 확인하려면 다시 로그인하세요. 계정을 삭제할 수도 있습니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
+<translation id="4295979599050707005">웹사이트, 앱, Chrome 확장 프로그램 및 Google Play에서 계정(<ph name="USER_EMAIL" />)을 사용하도록 확인하려면 다시 로그인하세요. 계정을 삭제할 수도 있습니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
 <translation id="4296575653627536209">관리 대상 사용자 추가</translation>
 <translation id="4297219207642690536">다시 시작 및 재설정</translation>
 <translation id="4297322094678649474">언어 변경</translation>
@@ -2210,6 +2221,7 @@
 <translation id="4350019051035968019">이 기기는 다른 도메인에서 관리하는 것으로 표시되어 있기 때문에 사용자의 계정이 속한 도메인에 등록할 수 없습니다.</translation>
 <translation id="4354344420232759511">내가 방문한 사이트가 여기에 표시됩니다.</translation>
 <translation id="435527878592612277">사진 선택</translation>
+<translation id="4358313196493694334">클릭 위치 보정</translation>
 <translation id="4359408040881008151">함께 설치된 확장 프로그램입니다.</translation>
 <translation id="4359717112757026264">도시 풍경</translation>
 <translation id="4361142739114356624">이 클라이언트 인증서의 비공개 키가 없거나 잘못되었습니다.</translation>
@@ -2334,6 +2346,7 @@
 <translation id="4558426062282641716">자동 실행 권한 요청됨</translation>
 <translation id="4558491878126948419"><ph name="DEVICE_TYPE" /> 도움말 및 Google 제품 소식을 받아 보고 의견을 공유하세요. 구독은 언제든지 취소할 수 있습니다.</translation>
 <translation id="4559617833001311418">사이트가 모션 센서 또는 조도 센서에 액세스 중입니다.</translation>
+<translation id="4561098487691395071">또는 프린터 PPD 지정</translation>
 <translation id="4562155214028662640">지문 추가</translation>
 <translation id="4563880231729913339">손가락 3</translation>
 <translation id="4565377596337484307">비밀번호 감추기</translation>
@@ -2578,6 +2591,7 @@
 <translation id="494286511941020793">프록시 설정 도움말</translation>
 <translation id="4943368462779413526">풋볼</translation>
 <translation id="4943691134276646401">'<ph name="CHROME_EXTENSION_NAME" />'에서 시리얼 포트에 연결하려고 합니다.</translation>
+<translation id="4944310289250773232">이 인증 서비스는 <ph name="SAML_DOMAIN" />에서 호스팅합니다</translation>
 <translation id="495170559598752135">작업</translation>
 <translation id="4953689047182316270">접근성 이벤트에 응답</translation>
 <translation id="4953808748584563296">기본 주황색 아바타</translation>
@@ -2670,6 +2684,7 @@
 <translation id="5094721898978802975">협력 중인 기본 애플리케이션과 통신</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' 네트워크에 연결하지 못했습니다: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">모든 북마크 열기</translation>
+<translation id="5101839224773798795">커서가 멈추면 자동으로 클릭</translation>
 <translation id="5108967062857032718">설정 - Android 앱 삭제</translation>
 <translation id="5109044022078737958">미미</translation>
 <translation id="5111646998522066203">시크릿 모드 종료</translation>
@@ -3153,10 +3168,11 @@
 <translation id="5852112051279473187">기기를 등록하는 중에 문제가 발생했습니다. 다시 시도하거나 지원 담당자에게 문의하세요.</translation>
 <translation id="5852137567692933493">다시 시작 및 Powerwash</translation>
 <translation id="5854912040170951372">피자왕</translation>
+<translation id="5855643921295613558">0.6초</translation>
 <translation id="5855773610748894548">보안 모듈 오류입니다.</translation>
 <translation id="5856721540245522153">디버깅 기능 사용</translation>
 <translation id="5857090052475505287">새 폴더</translation>
-<translation id="5857171483910641802">바로가기 추천은 자주 방문하는 웹사이트에 따라 이루어집니다.</translation>
+<translation id="5857171483910641802">자주 방문하는 웹사이트를 기반으로 추천된 바로가기입니다.</translation>
 <translation id="5858490737742085133">터미널</translation>
 <translation id="585979798156957858">외부 메타</translation>
 <translation id="5860033963881614850">사용 안함</translation>
@@ -3442,6 +3458,7 @@
 <translation id="6279183038361895380">|<ph name="ACCELERATOR" />|을(를) 눌러 커서 표시</translation>
 <translation id="6280215091796946657">다른 계정으로 로그인</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4초</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" />은(는) 위험할 수 있으므로 다운로드하지 않습니다.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{네트워크에 새로운 프린터 있음}other{네트워크에 새로운 프린터 있음}}</translation>
 <translation id="6286708577777130801">저장된 암호 세부정보</translation>
@@ -3648,6 +3665,7 @@
 <translation id="6612358246767739896">보호된 콘텐츠</translation>
 <translation id="6613452264606394692">이 페이지를 북마크에 추가하여 빠르게 다시 방문하세요.</translation>
 <translation id="6615455863669487791">표시</translation>
+<translation id="6617100836880592260">스캔 속도: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">보관</translation>
 <translation id="6619058681307408113">라인 프린터 데몬(LPD)</translation>
 <translation id="661907246513853610">사이트에서 내 위치를 추적할 수 있습니다.</translation>
@@ -4462,6 +4480,7 @@
 <translation id="7831491651892296503">네트워크를 설정하는 중에 오류가 발생했습니다</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">종료 시간</translation>
+<translation id="783214144752121388">사이트의 플래시 실행 차단(권장)</translation>
 <translation id="7833720883933317473">저장한 맞춤 단어가 여기에 표시됩니다.</translation>
 <translation id="7835178595033117206">북마크가 삭제됨</translation>
 <translation id="7837776265184002579">홈페이지가 <ph name="URL" />(으)로 변경되었습니다.</translation>
@@ -4517,6 +4536,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">서버에서 비밀번호가 변경되었습니다. 로그아웃한 다음 다시 로그인해 주세요.</translation>
 <translation id="7915471803647590281">의견을 보내기 전에 현재 상황을 입력해 주세요.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" />초</translation>
 <translation id="792514962475806987">고정 돋보기 확대/축소 수준:</translation>
 <translation id="7925247922861151263">AAA 확인 실패</translation>
 <translation id="7925285046818567682"><ph name="HOST_NAME" />의 응답을 기다리는 중...</translation>
@@ -4574,6 +4594,7 @@
 <translation id="7987814697832569482">항상 이 VPN을 통해 연결</translation>
 <translation id="798835209536175951">Chromebook으로 SMS를 보내고 받으세요. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">접근성 기능 사용</translation>
+<translation id="7991296728590311172">스위치 제어 설정</translation>
 <translation id="7994702968232966508">EAP 방식</translation>
 <translation id="7997826902155442747">프로세스 우선순위</translation>
 <translation id="7999229196265990314">생성된 파일:
@@ -4787,6 +4808,8 @@
 <translation id="8308179586020895837"><ph name="HOST" />에서 카메라에 액세스하려는 경우 메시지 표시</translation>
 <translation id="830868413617744215">베타</translation>
 <translation id="8309458809024885768">인증서가 이미 존재합니다.</translation>
+<translation id="8314381333424235892">확장 프로그램이 없거나 설치되지 않음</translation>
+<translation id="8316618172731049784"><ph name="DEVICE_NAME" />(으)로 보내기</translation>
 <translation id="8317671367883557781">네트워크 연결 추가</translation>
 <translation id="8319414634934645341">확장된 키 사용</translation>
 <translation id="8320459152843401447">내 전체 화면</translation>
@@ -4943,6 +4966,7 @@
 <translation id="8588866096426746242">프로필 통계 보기</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - 헤드셋에 VR 전송 중</translation>
 <translation id="8590375307970699841">자동 업데이트 설정</translation>
+<translation id="8591783563402255548">1초</translation>
 <translation id="8592141010104017453">알림 표시 안함</translation>
 <translation id="8593121833493516339">사용 및 진단 데이터를 보냅니다. 진단, 기기, 앱 사용 데이터를 Google에 자동으로 보내 자녀의 Android 사용 환경 개선에 참여합니다. 이 데이터는 자녀를 식별하는 용도로 사용되지 않으며, 시스템 및 앱 안정성 등을 개선하는 데 활용됩니다. 일부 수집 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움을 줍니다. 자녀의 추가 웹 및 앱 활동이 사용 설정되어 있다면 이 데이터가 자녀의 Google 계정에 저장될 수 있습니다. <ph name="BEGIN_LINK1" />자세히 알아보기<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">동영상 촬영</translation>
@@ -4972,6 +4996,7 @@
 <translation id="8637688295594795546">시스템 업데이트 사용가능. 다운로드 준비 중…</translation>
 <translation id="8639047128869322042">유해한 소프트웨어 확인 중...</translation>
 <translation id="8642171459927087831">액세스 토큰</translation>
+<translation id="8642900771896232685">2초</translation>
 <translation id="8642947597466641025">텍스트 확대</translation>
 <translation id="8643418457919840804">계속하려면 옵션을 선택하세요.</translation>
 <translation id="8644655801811752511">보안 키를 재설정할 수 없습니다. 보안 키를 삽입한 직후 키를 재설정해 보세요.</translation>
@@ -5173,6 +5198,7 @@
 <translation id="8910222113987937043">북마크, 방문 기록, 비밀번호 및 기타 설정을 변경하면 더 이상 Google 계정에 동기화되지 않습니다. 하지만 기존 데이터는 Google 계정에 계속 저장되며 <ph name="BEGIN_LINK" />Google 대시보드<ph name="END_LINK" />에서 관리할 수 있습니다.</translation>
 <translation id="8912362522468806198">Google 계정</translation>
 <translation id="8912793549644936705">늘이기</translation>
+<translation id="8912810933860534797">자동 스캔 사용</translation>
 <translation id="891365694296252935">사용 및 진단 데이터를 보냅니다. 이 기기는 현재 진단, 기기 및 앱 사용 데이터를 Google에 자동으로 보내고 있습니다. 이 데이터는 자녀를 식별하는 용도로 사용되지 않으며, 시스템 및 앱 안정성 등을 개선하는 데 활용됩니다. 일부 수집 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움을 줍니다. 이 설정은 소유자가 지정합니다. 자녀의 추가 웹 및 앱 활동이 사용 설정되어 있다면 이 데이터가 자녀의 Google 계정에 저장될 수 있습니다. <ph name="BEGIN_LINK1" />자세히 알아보기<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">추천 단어 로드 중...</translation>
 <translation id="8916476537757519021">시크릿 모드 서브프레임: <ph name="SUBFRAME_SITE" /></translation>
@@ -5288,6 +5314,7 @@
 <translation id="9094033019050270033">비밀번호 업데이트</translation>
 <translation id="9094982973264386462">제거</translation>
 <translation id="9095253524804455615">제거</translation>
+<translation id="9095388113577226029">다른 언어...</translation>
 <translation id="9100610230175265781">암호를 입력해야 합니다.</translation>
 <translation id="9100765901046053179">고급 설정</translation>
 <translation id="9101691533782776290">앱 실행</translation>
@@ -5325,6 +5352,7 @@
 <translation id="9153934054460603056">ID와 비밀번호 저장</translation>
 <translation id="9154194610265714752">업데이트됨</translation>
 <translation id="91568222606626347">바로가기 만들기...</translation>
+<translation id="9157096865782046368">0.8초</translation>
 <translation id="9157697743260533322">모든 사용자에 대해 자동 업데이트를 설정하지 못했습니다(프리플라이트 실행 오류: <ph name="ERROR_NUMBER" />).</translation>
 <translation id="9158715103698450907">인증하는 중에 네트워크 통신 문제가 발생했습니다.  네트워크 연결을 확인한 뒤 다시 시도해 주세요.</translation>
 <translation id="916607977885256133">PIP 모드</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 954cb89..8952c683 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Numatytasis baltas pseudoportretas</translation>
 <translation id="1581962803218266616">Rodyti ieškojimo priemonėje</translation>
 <translation id="1584990664401018068">Naudojant šį „Wi-Fi“ tinklą (<ph name="NETWORK_ID" />) gali būti prašoma autentifikuoti.</translation>
-<translation id="1585238069289523942">Įdiekite programas „Chromebook“ įrenginyje</translation>
 <translation id="1585717515139318619">Kita kompiuterio programa pridėjo temą, kuri gali pakeisti, kaip veikia „Chrome“.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Konfigūruojant „Linux“ failus įvyko klaida. Bandykite dar kartą.</translation>
 <translation id="2315587498123194634">Siųsti nuorodą į „<ph name="DEVICE_NAME" />“</translation>
 <translation id="2316129865977710310">Ne, ačiū</translation>
-<translation id="2316739859433277603">Vykdant paieškas programų paleidimo priemonėje naudojamas naršyklės <ph name="BEGIN_LINK" />paieškos variklio nustatymas<ph name="END_LINK" />.</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>
@@ -5319,6 +5317,7 @@
 <translation id="9094033019050270033">Atnaujinti slaptažodį</translation>
 <translation id="9094982973264386462">Pašalinti</translation>
 <translation id="9095253524804455615">Pašalinti</translation>
+<translation id="9095388113577226029">Daugiau kalbų...</translation>
 <translation id="9100610230175265781">Būtina slaptafrazė</translation>
 <translation id="9100765901046053179">Išplėstiniai nustatymai</translation>
 <translation id="9101691533782776290">Paleisti programą</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 5d4e166..d8a7d76 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Noklusējuma iemiesojums baltā krāsā</translation>
 <translation id="1581962803218266616">Rādīt lietojumprogrammā Finder</translation>
 <translation id="1584990664401018068">Iespējams, izmantotajā Wi-Fi tīklā (<ph name="NETWORK_ID" />) tiks prasīta autentifikācija.</translation>
-<translation id="1585238069289523942">Lietotņu instalēšana Chromebook datorā</translation>
 <translation id="1585717515139318619">Citā datorā instalētā programmā ir pievienots tāds motīvs, kura dēļ var tikt izmainīta pārlūkprogrammas Chrome darbība.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Konfigurējot Linux failus, radās kļūda. Lūdzu, mēģiniet vēlreiz.</translation>
 <translation id="2315587498123194634">Nosūtīt saiti uz: <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nē, paldies</translation>
-<translation id="2316739859433277603">Meklēšanas vaicājumiem no lietotņu palaidēja tiek izmantots jūsu pārlūkprogrammas <ph name="BEGIN_LINK" />meklētājprogrammas iestatījums<ph name="END_LINK" />.</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>
@@ -5318,6 +5316,7 @@
 <translation id="9094033019050270033">Atjaunināt paroli</translation>
 <translation id="9094982973264386462">Noņemt</translation>
 <translation id="9095253524804455615">Noņemt</translation>
+<translation id="9095388113577226029">Citas valodas…</translation>
 <translation id="9100610230175265781">Jāievada ieejas frāze.</translation>
 <translation id="9100765901046053179">Papildu iestatījumi</translation>
 <translation id="9101691533782776290">Palaist lietotni</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 550397d0..cf16e1e 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -381,7 +381,6 @@
 <translation id="1576594961618857597">ഡിഫോൾട്ടായ വെളുത്ത അവതാർ</translation>
 <translation id="1581962803218266616">ഫൈന്‍ഡറില്‍ കാണിക്കുക</translation>
 <translation id="1584990664401018068">നിങ്ങൾ ഉപയോഗിക്കുന്ന Wi-Fi നെറ്റ്‌വർക്കിന് (<ph name="NETWORK_ID" />) പരിശോധിച്ചുറപ്പിക്കൽ ആവശ്യമായി വരാം.</translation>
-<translation id="1585238069289523942">നിങ്ങളുടെ Chromebook-ൽ ആപ്പുകൾ ഇൻസ്‌റ്റാൾ ചെയ്യുക</translation>
 <translation id="1585717515139318619">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ മറ്റൊരു പ്രോഗ്രാം, Chrome പ്രവർത്തിക്കുന്ന രീതിയെ മാറ്റിയേക്കാവുന്ന ഒരു തീം ചേർത്തു.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -5287,6 +5286,7 @@
 <translation id="9094033019050270033">പാസ്‌വേഡ് അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="9094982973264386462">നീക്കംചെയ്യുക</translation>
 <translation id="9095253524804455615">നീക്കംചെയ്യുക</translation>
+<translation id="9095388113577226029">കൂടുതൽ ഭാഷകൾ...</translation>
 <translation id="9100610230175265781">പാസ്‌ഫ്രെയ്‌സ് ആവശ്യമാണ്</translation>
 <translation id="9100765901046053179">വിപുലമായ ക്രമീകരണം</translation>
 <translation id="9101691533782776290">ആപ്പ് സമാരംഭിക്കുക</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 24447bd..37750ca 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -384,7 +384,6 @@
 <translation id="1576594961618857597">डीफॉल्ट पांढरा अवतार</translation>
 <translation id="1581962803218266616">फाइंडर मध्ये दर्शवा</translation>
 <translation id="1584990664401018068">तुम्ही वापरत असलेल्या वाय-फाय नेटवर्कला (<ph name="NETWORK_ID" />) अॉथेंटिकेशनची आवश्यकता असू शकते.</translation>
-<translation id="1585238069289523942">तुमच्या Chromebook वर ॲप्स इंस्टॉल करा</translation>
 <translation id="1585717515139318619">तुमच्या कॉंप्युटरवरील दुसर्‍या प्रोग्रामने एक थीम जोडली जी Chrome ची काम करण्‍याची पद्धत कदाचित बदलू शकते.
 <ph name="EXTENSION_NAME" /></translation>
 <translation id="1587275751631642843">&amp;JavaScript कन्सोल</translation>
@@ -5289,6 +5288,7 @@
 <translation id="9094033019050270033">पासवर्ड अपडेट करा</translation>
 <translation id="9094982973264386462">काढून टाका</translation>
 <translation id="9095253524804455615">काढून टाका</translation>
+<translation id="9095388113577226029">आणखी भाषा...</translation>
 <translation id="9100610230175265781">सांकेतिक पासफ्रेझ आवश्यक</translation>
 <translation id="9100765901046053179">प्रगत सेटिंग्ज</translation>
 <translation id="9101691533782776290">ॲप लाँच करा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index baccdbc..85fa0a2 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ms">
+<translation id="1002469766576243227">Perkhidmatan pengesahan ini dihoskan oleh <ph name="EXTENSION_NAME" /></translation>
 <translation id="1003088604756913841">Buka Pautan dalam Tetingkap <ph name="APP" /> baharu</translation>
 <translation id="1004218526896219317">Akses tapak</translation>
 <translation id="1005274289863221750">Gunakan mikrofon dan kamera anda</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Telah mengosongkan semua</translation>
 <translation id="143027896309062157">Baca dan ubah semua data anda pada komputer anda dan tapak web yang anda lawati</translation>
 <translation id="1430915738399379752">Cetak</translation>
+<translation id="1431188203598586230">Kemas kini perisian terakhir</translation>
 <translation id="1432581352905426595">Urus enjin carian</translation>
 <translation id="1433811987160647649">Tanya sebelum mengakses</translation>
 <translation id="1434696352799406980">Ini akan menetapkan semula halaman permulaan, halaman tab baharu, enjin carian dan tab tersemat anda. Selain itu, semua sambungan akan dilumpuhkan dan data sementara seperti kuki akan dikosongkan. Sejarah penanda halaman anda dan kata laluan yang disimpan tidak akan dikosongkan.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">Avatar putih lalai</translation>
 <translation id="1581962803218266616">Show in Finder</translation>
 <translation id="1584990664401018068">Rangkaian Wi-Fi yang anda gunakan (<ph name="NETWORK_ID" />) mungkin menghendaki pengesahan.</translation>
-<translation id="1585238069289523942">Pasang apl pada Chromebook anda</translation>
 <translation id="1585717515139318619">Program lain pada komputer anda telah menambahkan tema yang boleh mengubah cara Chrome berfungsi.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">Akaun dan penyegerakan</translation>
 <translation id="1782196717298160133">Mencari telefon anda</translation>
 <translation id="1784849162047402014">Peranti kekurangan ruang cakera</translation>
+<translation id="1790194216133135334">Hantar pautan ke <ph name="DEVICE_NAME" /></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>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">Mula</translation>
 <translation id="1875387611427697908">Item ini hanya boleh ditambahkan daripada <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1877520246462554164">Gagal mendapatkan token pengesahan. Sila log keluar, kemudian log masuk semula untuk mencuba lagi.</translation>
+<translation id="1877860345998737529">Penugasan tindakan suis</translation>
 <translation id="1879000426787380528">Log masuk sebagai</translation>
 <translation id="1880905663253319515">Padamkan sijil "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="1886996562706621347">Benarkan tapak meminta untuk menjadi pengendali lalai untuk protokol (disyorkan)</translation>
@@ -869,6 +872,7 @@
 <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="2315414688463285945">Ralat semasa mengkonfigurasi fail Linux. Sila cuba lagi.</translation>
+<translation id="2315587498123194634">Hantar Pautan ke <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Tidak, terima kasih</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% selesai</translation>
 <translation id="2318143611928805047">Saiz kertas</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">Tapak ini dapat melihat teks dan imej yang disalin ke papan keratan.</translation>
 <translation id="2367199180085172140">Tambah Perkongsian Fail</translation>
 <translation id="2367972762794486313">Paparkan apl</translation>
+<translation id="2369105924912929484">Togol kandungan halaman disuling</translation>
 <translation id="2371076942591664043">Buka apabila &amp;selesai</translation>
 <translation id="2375406435414127095">Sambung ke telefon anda</translation>
 <translation id="2377667304966270281">Kesalahan Keras</translation>
@@ -1160,6 +1165,7 @@
 <translation id="2739191690716947896">Nyahpepijat</translation>
 <translation id="2739240477418971307">Ubah tetapan kebolehaksesan anda</translation>
 <translation id="2740393541869613458">semak tapak web yang telah dilawati oleh pengguna diselia dan</translation>
+<translation id="2741912629735277980">Paparkan UI pada skrin log masuk</translation>
 <translation id="274290345632688601">Memulihkan apl &amp; fail Linux</translation>
 <translation id="2743387203779672305">Salin ke papan keratan</translation>
 <translation id="2745080116229976798">Subordinasi Layak Microsoft</translation>
@@ -1276,6 +1282,7 @@
 <translation id="2910318910161511225">Sambung ke rangkaian dan cuba lagi</translation>
 <translation id="2913331724188855103">Benarkan tapak untuk menyimpan dan membaca data kuki (disyorkan)</translation>
 <translation id="2915102088417824677">Lihat log aktiviti</translation>
+<translation id="2915873080513663243">Autoimbas</translation>
 <translation id="2916073183900451334">Menekan Tab pada pautan serlahan halaman web, dan juga medan borang</translation>
 <translation id="2916745397441987255">Cari sambungan</translation>
 <translation id="2921081876747860777">Sila buat kata laluan untuk melindungi data setempat anda.</translation>
@@ -1484,6 +1491,7 @@
 <translation id="327147043223061465">Lihat semua kuki dan data tapak</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> ingin menyambung</translation>
 <translation id="3274763671541996799">Anda telah menggunakan skrin penuh.</translation>
+<translation id="3275778809241512831">Kunci keselamatan dalaman tidak selamat pada masa ini Sila alih keluar kunci tersebut daripada mana-mana perkhidmatan yang menggunakan kunci itu. Untuk menyelesaikan isu ini, sila tetapkan semula kunci keselamatan.</translation>
 <translation id="3275778913554317645">Buka sebagai tetingkap</translation>
 <translation id="3278001907972365362">Akaun Google anda memerlukan perhatian</translation>
 <translation id="3279230909244266691">Proses ini mungkin mengambil masa beberapa minit. Memulakan mesin maya.</translation>
@@ -1576,6 +1584,7 @@
 <translation id="3412265149091626468">Lompat ke Pemilihan</translation>
 <translation id="3413122095806433232">Pengeluar CA: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Saiz:</translation>
+<translation id="3420501302812554910">Kunci keselamatan dalaman memerlukan penetapan semula</translation>
 <translation id="3421387094817716717">Kunci Awam Lengkung Eliptik</translation>
 <translation id="3423463006624419153">Pada '<ph name="PHONE_NAME_1" />' dan '<ph name="PHONE_NAME_2" />' anda:</translation>
 <translation id="3423858849633684918">Sila Lancarkan Semula <ph name="PRODUCT_NAME" /></translation>
@@ -1604,6 +1613,7 @@
 <translation id="3450157232394774192">Peratusan Penggunaan Keadaan Melahu</translation>
 <translation id="3453612417627951340">Memerlukan kebenaran</translation>
 <translation id="3454157711543303649">Pengaktifan lengkap</translation>
+<translation id="3454213325559396544">Ini ialah kemas kini perisian dan keselamatan yang terakhir untuk <ph name="DEVICE_TYPE" /> ini. Untuk mendapatkan kemas kini masa hadapan, tingkatkan kepada model yang lebih baharu.</translation>
 <translation id="345693547134384690">Buka &amp;imej dalam tab baharu</translation>
 <translation id="3457500881955698515">Syarikat atau organisasi anda menghendaki peranti ini dikemas kini sekarang juga</translation>
 <translation id="3459509316159669723">Mencetak</translation>
@@ -1761,6 +1771,7 @@
 <translation id="3672681487849735243">Ralat kilang telah dikesan</translation>
 <translation id="367645871420407123">biarkan kosong jika anda ingin menetapkan kata laluan akar kepada nilai imej ujian lalai</translation>
 <translation id="3677657024345889897">Paling senyap</translation>
+<translation id="3677911431265050325">Minta tapak mudah alih</translation>
 <translation id="3678156199662914018">Sambungan: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Terima kasih atas maklum balas anda. Anda berada di luar talian sekarang dan laporan anda akan dihantar sebentar lagi.</translation>
 <translation id="3682824389861648626">Ambang pergerakan</translation>
@@ -2213,6 +2224,7 @@
 <translation id="4350019051035968019">Peranti ini tidak boleh didaftarkan pada domain bagi akaun anda kerana peranti telah ditandai untuk pengurusan oleh domain lain.</translation>
 <translation id="4354344420232759511">Tapak yang anda lawati akan dipaparkan di sini</translation>
 <translation id="435527878592612277">Pilih foto anda</translation>
+<translation id="4358313196493694334">Stabilkan lokasi klik</translation>
 <translation id="4359408040881008151">Dipasang kerana sambungan yang bergantung.</translation>
 <translation id="4359717112757026264">Pandangan bandar</translation>
 <translation id="4361142739114356624">Kunci Peribadi untuk Sijil Pelanggan ini tiada atau tidak sah</translation>
@@ -2337,6 +2349,7 @@
 <translation id="4558426062282641716">Kebenaran autolancar diminta</translation>
 <translation id="4558491878126948419">Dapatkan petua <ph name="DEVICE_TYPE" /> dan kemas kini tentang produk Google serta kongsi maklum balas. Hentikan langganan pada bila-bila masa.</translation>
 <translation id="4559617833001311418">Tapak ini mengakses penderia gerakan atau cahaya anda.</translation>
+<translation id="4561098487691395071">Atau nyatakan PPD pencetak anda</translation>
 <translation id="4562155214028662640">Tambahkan Cap Jari</translation>
 <translation id="4563880231729913339">Jari 3</translation>
 <translation id="4565377596337484307">Sembunyikan kata laluan</translation>
@@ -2581,6 +2594,7 @@
 <translation id="494286511941020793">Bantuan Konfigurasi Proksi</translation>
 <translation id="4943368462779413526">Bola Sepak</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" ingin menyambung ke port siri</translation>
+<translation id="4944310289250773232">Perkhidmatan pengesahan ini dihoskan oleh <ph name="SAML_DOMAIN" /></translation>
 <translation id="495170559598752135">Tindakan</translation>
 <translation id="4953689047182316270">Jawab Acara Kebolehaksesan</translation>
 <translation id="4953808748584563296">Avatar jingga lalai</translation>
@@ -2673,6 +2687,7 @@
 <translation id="5094721898978802975">Berkomunikasi dengan aplikasi asli yang bekerjasama</translation>
 <translation id="5097002363526479830">Gagal untuk bersambung ke rangkaian '<ph name="NAME" />': <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Buka semua penanda halaman</translation>
+<translation id="5101839224773798795">Klik secara automatik apabila kursor berhenti</translation>
 <translation id="5108967062857032718">Tetapan - Alih keluar apl Android</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Keluar daripada tetingkap Inkognito</translation>
@@ -3156,6 +3171,7 @@
 <translation id="5852112051279473187">Op!  Berlaku masalah besar semasa mendaftarkan peranti ini.  Sila cuba semula atau hubungi wakil sokongan anda.</translation>
 <translation id="5852137567692933493">Mulakan Semula dan lakukan Powerwash</translation>
 <translation id="5854912040170951372">Kepingan</translation>
+<translation id="5855643921295613558">0.6 saat</translation>
 <translation id="5855773610748894548">Oops, ralat modul selamat.</translation>
 <translation id="5856721540245522153">Dayakan ciri penyahpepijatan</translation>
 <translation id="5857090052475505287">Folder Baharu</translation>
@@ -3445,6 +3461,7 @@
 <translation id="6279183038361895380">Tekan |<ph name="ACCELERATOR" />| untuk memaparkan kursor anda</translation>
 <translation id="6280215091796946657">Log masuk dengan akaun lain</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 saat</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> tidak biasa dimuat turun dan mungkin berbahaya.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Pencetak baharu pada rangkaian anda}other{Pencetak baharu pada rangkaian anda}}</translation>
 <translation id="6286708577777130801">Butiran kata laluan yang disimpan</translation>
@@ -3651,6 +3668,7 @@
 <translation id="6612358246767739896">Kandungan yang dilindungi</translation>
 <translation id="6613452264606394692">Tandai halaman ini untuk kembali ke sini dengan cepat</translation>
 <translation id="6615455863669487791">Tunjukkan kepada saya</translation>
+<translation id="6617100836880592260">Kelajuan mengimbas: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Simpan Juga</translation>
 <translation id="6619058681307408113">Daemon Pencetak Talian (LPD)</translation>
 <translation id="661907246513853610">Tapak boleh menjejak lokasi anda</translation>
@@ -4465,6 +4483,7 @@
 <translation id="7831491651892296503">Ralat mengkonfigurasi rangkaian</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Masa tamat</translation>
+<translation id="783214144752121388">Sekat tapak daripada menjalankan Flash (disyorkan)</translation>
 <translation id="7833720883933317473">Perkataan tersuai yang disimpan akan kelihatan di sini</translation>
 <translation id="7835178595033117206">Penanda halaman dialih keluar</translation>
 <translation id="7837776265184002579">Halaman utama anda telah ditukar kepada <ph name="URL" />.</translation>
@@ -4520,6 +4539,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Kata laluan anda telah ditukar pada pelayan. Sila log keluar, kemudian log masuk semula.</translation>
 <translation id="7915471803647590281">Sila beritahu kami kejadian yang berlaku sebelum menghantar maklum balas.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" />s</translation>
 <translation id="792514962475806987">Tahap zum dok:</translation>
 <translation id="7925247922861151263">Gagal periksa AAA</translation>
 <translation id="7925285046818567682">Menunggu untuk <ph name="HOST_NAME" />...</translation>
@@ -4577,6 +4597,7 @@
 <translation id="7987814697832569482">Sentiasa sambung melalui VPN ini</translation>
 <translation id="798835209536175951">Hantar dan terima mesej teks daripada Chromebook anda. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Dayakan ciri kebolehcapaian</translation>
+<translation id="7991296728590311172">Tetapan Akses Suis</translation>
 <translation id="7994702968232966508">Kaedah EAP</translation>
 <translation id="7997826902155442747">Keutamaan Proses</translation>
 <translation id="7999229196265990314">Mencipta fail berikut:
@@ -4790,6 +4811,8 @@
 <translation id="8308179586020895837">Tanya jika <ph name="HOST" /> mahu mengakses kamera anda</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">Sijil sudah wujud</translation>
+<translation id="8314381333424235892">Sambungan tiada atau dinyahpasang</translation>
+<translation id="8316618172731049784">Hantar ke <ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">Tambahkan sambungan rangkaian</translation>
 <translation id="8319414634934645341">Penggunaan Penting Dilanjutkan</translation>
 <translation id="8320459152843401447">Seluruh Skrin Anda</translation>
@@ -4947,6 +4970,7 @@
 <translation id="8588866096426746242">Tunjukkan statistik profil</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - penayangan VR ke set kepala</translation>
 <translation id="8590375307970699841">Sediakan kemas kini automatik</translation>
+<translation id="8591783563402255548">1 saat</translation>
 <translation id="8592141010104017453">Jangan tunjukkan pemberitahuan sama sekali</translation>
 <translation id="8593121833493516339">Hantar data penggunaan dan diagnostik. Bantu kami meningkatkan pengalaman Android anak anda dengan menghantar data diagnostik dan penggunaan peranti serta apl kepada Google secara automatik. Data ini tidak akan digunakan untuk mengenal pasti anak anda dan akan membantu peningkatan kestabilan sistem dan apl serta pelbagai lagi. Sesetengah data agregat juga akan membantu apl dan rakan kongsi Google, seperti pembangun Android. Jika Aktiviti Web &amp; Apl tambahan dihidupkan untuk anak anda, data ini mungkin disimpan ke akaun Googlenya. <ph name="BEGIN_LINK1" />Ketahui Lebih Lanjut<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Rakam video</translation>
@@ -4976,6 +5000,7 @@
 <translation id="8637688295594795546">Kemas kini sistem tersedia. Bersedia untuk  muat turun…</translation>
 <translation id="8639047128869322042">Menyemak untuk mengesan perisian berbahaya...</translation>
 <translation id="8642171459927087831">Token Akses</translation>
+<translation id="8642900771896232685">2 saat</translation>
 <translation id="8642947597466641025">Jadikan Teks Lebih Besar</translation>
 <translation id="8643418457919840804">Buat pilihan untuk meneruskan:</translation>
 <translation id="8644655801811752511">Tidak dapat menetapkan semula kunci keselamatan ini. Cuba tetapkan semula kunci sejurus selepas memasukkannya.</translation>
@@ -5177,6 +5202,7 @@
 <translation id="8910222113987937043">Perubahan kepada penanda halaman, sejarah, kata laluan dan tetapan anda yang lain tidak akan disegerakkan ke Akaun Google anda lagi. Namun begitu, data anda yang sedia ada akan terus disimpan dalam Akaun Google anda dan boleh diurus di <ph name="BEGIN_LINK" />Papan Pemuka Google<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">Akaun Google</translation>
 <translation id="8912793549644936705">Regang</translation>
+<translation id="8912810933860534797">Dayakan autoimbas</translation>
 <translation id="891365694296252935">Hantar data penggunaan dan diagnostik. Pada masa ini, peranti ini menghantar data diagnostik dan penggunaan peranti serta apl kepada Google secara automatik. Data ini tidak akan digunakan untuk mengenal pasti anak anda dan akan membantu peningkatan kestabilan sistem dan apl serta pelbagai lagi. Sesetengah data agregat juga akan membantu apl dan rakan kongsi Google, seperti pembangun Android. Tetapan ini dikuatkuasakan oleh pemilik. Jika Aktiviti Web &amp; Apl tambahan dihidupkan untuk anak anda, data ini mungkin disimpan ke Akaun Googlenya. <ph name="BEGIN_LINK1" />Ketahui Lebih Lanjut<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Memuatkan cadangan</translation>
 <translation id="8916476537757519021">Subbingkai Inkognito: <ph name="SUBFRAME_SITE" /></translation>
@@ -5292,6 +5318,7 @@
 <translation id="9094033019050270033">Kemaskinikan kata laluan</translation>
 <translation id="9094982973264386462">Alih keluar</translation>
 <translation id="9095253524804455615">Alih keluar</translation>
+<translation id="9095388113577226029">Lagi bahasa...</translation>
 <translation id="9100610230175265781">Frasa laluan diperlukan</translation>
 <translation id="9100765901046053179">Tetapan terperinci</translation>
 <translation id="9101691533782776290">Lancarkan apl</translation>
@@ -5329,6 +5356,7 @@
 <translation id="9153934054460603056">Simpan identiti dan kata laluan</translation>
 <translation id="9154194610265714752">Dikemas kini</translation>
 <translation id="91568222606626347">Buat Pintasan...</translation>
+<translation id="9157096865782046368">0.8 saat</translation>
 <translation id="9157697743260533322">Gagal menyediakan kemas kini automatik untuk semua pengguna (ralat sebelum pelancaran: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">Op! Masalah komunikasi rangkaian berlaku semasa pengesahan. Sila periksa sambungan rangkaian anda dan cuba lagi.</translation>
 <translation id="916607977885256133">Gambar dalam Gambar</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index a50998c1..4dd31e6 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="nl">
+<translation id="1002469766576243227">Deze verificatieservice wordt gehost door <ph name="EXTENSION_NAME" /></translation>
 <translation id="1003088604756913841">Link openen in een nieuw <ph name="APP" />-venster</translation>
 <translation id="1004218526896219317">Toegang tot site</translation>
 <translation id="1005274289863221750">Je microfoon en camera gebruiken</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Alles is gewist</translation>
 <translation id="143027896309062157">Al je gegevens lezen en wijzigen op je computer en de websites die je bezoekt</translation>
 <translation id="1430915738399379752">Afdrukken</translation>
+<translation id="1431188203598586230">Laatste software-update</translation>
 <translation id="1432581352905426595">Zoekmachines beheren</translation>
 <translation id="1433811987160647649">Vragen vóór toegang</translation>
 <translation id="1434696352799406980">Hiermee worden je homepage, nieuwe tabbladpagina, zoekmachine en vastgezette tabbladen opnieuw ingesteld. Ook worden alle extensies uitgeschakeld en tijdelijke gegevens (zoals cookies) gewist. Je bladwijzers, geschiedenis en opgeslagen wachtwoorden worden niet gewist.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">Standaard witte avatar</translation>
 <translation id="1581962803218266616">Toon in Finder</translation>
 <translation id="1584990664401018068">Mogelijk is verificatie vereist voor het wifi-netwerk dat je gebruikt (<ph name="NETWORK_ID" />).</translation>
-<translation id="1585238069289523942">Apps installeren op je Chromebook</translation>
 <translation id="1585717515139318619">Een ander programma op je computer heeft een thema toegevoegd dat de manier kan wijzigen waarop Chrome werkt.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">Accounts en synchronisatie</translation>
 <translation id="1782196717298160133">Je telefoon zoeken</translation>
 <translation id="1784849162047402014">Weinig schijfruimte beschikbaar op het apparaat</translation>
+<translation id="1790194216133135334">Link verzenden naar <ph name="DEVICE_NAME" /></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>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">Beginnen</translation>
 <translation id="1875387611427697908">Dit pakket kan alleen worden toegevoegd via de <ph name="CHROME_WEB_STORE" /></translation>
 <translation id="1877520246462554164">Ophalen van verificatietoken is mislukt. Log uit en weer in om het opnieuw te proberen.</translation>
+<translation id="1877860345998737529">Toewijzing van acties voor schakelaar</translation>
 <translation id="1879000426787380528">Inloggen als</translation>
 <translation id="1880905663253319515">Certificaat '<ph name="CERTIFICATE_NAME" />' verwijderen?</translation>
 <translation id="1886996562706621347">Websites laten vragen of je ze als de standaardhandler voor protocollen wilt instellen (aanbevolen)</translation>
@@ -869,6 +872,7 @@
 <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="2315414688463285945">Fout bij het configureren van Linux-bestanden. Probeer het opnieuw.</translation>
+<translation id="2315587498123194634">Link verzenden naar <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nee, bedankt</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% gereed</translation>
 <translation id="2318143611928805047">Papierformaat</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">Deze site kan tekst en afbeeldingen bekijken die naar het klembord zijn gekopieerd.</translation>
 <translation id="2367199180085172140">File Share toevoegen</translation>
 <translation id="2367972762794486313">Apps weergeven</translation>
+<translation id="2369105924912929484">Afgeleide paginacontent in-/uitschakelen</translation>
 <translation id="2371076942591664043">Openen wanneer geree&amp;d</translation>
 <translation id="2375406435414127095">Verbinding maken met je telefoon</translation>
 <translation id="2377667304966270281">Harde fouten</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">Foutopsporing</translation>
 <translation id="2739240477418971307">Je toegankelijkheidsinstellingen wijzigen</translation>
 <translation id="2740393541869613458">door de gebruiker met beperkte rechten bezochte websites controleren, en</translation>
+<translation id="2741912629735277980">UI weergeven op inlogscherm</translation>
 <translation id="274290345632688601">Linux-apps en -bestanden herstellen</translation>
 <translation id="2743387203779672305">Kopiëren naar klembord</translation>
 <translation id="2745080116229976798">Gekwalificeerde ondergeschiktheid van Microsoft</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">Maak verbinding met een netwerk en probeer het opnieuw</translation>
 <translation id="2913331724188855103">Sites toestaan cookiegegevens op te slaan en te lezen (aanbevolen)</translation>
 <translation id="2915102088417824677">Activiteitenlogboek bekijken</translation>
+<translation id="2915873080513663243">Automatisch scannen</translation>
 <translation id="2916073183900451334">Als je op een webpagina op Tab drukt, worden links en velden in formulieren gemarkeerd</translation>
 <translation id="2916745397441987255">Extensies zoeken</translation>
 <translation id="2921081876747860777">Stel een wachtwoord in om je lokale gegevens te beschermen.</translation>
@@ -1483,6 +1490,7 @@
 <translation id="327147043223061465">Alle cookies en sitegegevens weergeven</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> wil verbinding maken</translation>
 <translation id="3274763671541996799">Je hebt de modus voor volledig scherm ingeschakeld.</translation>
+<translation id="3275778809241512831">Je interne beveiligingssleutel is momenteel niet beveiligd. Verwijder de sleutel uit services waarin je deze gebruikt. Reset de beveiligingssleutel om het probleem op te lossen.</translation>
 <translation id="3275778913554317645">Openen als venster</translation>
 <translation id="3278001907972365362">Je Google-accounts vereisen aandacht</translation>
 <translation id="3279230909244266691">Dit proces kan enkele minuten duren. De virtuele machine wordt gestart.</translation>
@@ -1575,6 +1583,7 @@
 <translation id="3412265149091626468">Ga naar selectie</translation>
 <translation id="3413122095806433232">CA-uitgevers: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Grootte:</translation>
+<translation id="3420501302812554910">Interne beveiligingssleutel moet worden gereset</translation>
 <translation id="3421387094817716717">Openbare sleutel voor elliptische kromme</translation>
 <translation id="3423463006624419153">Op je '<ph name="PHONE_NAME_1" />' en je '<ph name="PHONE_NAME_2" />':</translation>
 <translation id="3423858849633684918">Start <ph name="PRODUCT_NAME" /> opnieuw</translation>
@@ -1603,6 +1612,7 @@
 <translation id="3450157232394774192">Bezettingspercentage van inactieve status</translation>
 <translation id="3453612417627951340">Autorisatie vereist</translation>
 <translation id="3454157711543303649">Activering voltooid</translation>
+<translation id="3454213325559396544">Dit is de laatste automatische software- en beveiligingsupdate voor dit <ph name="DEVICE_TYPE" />. Upgrade naar een nieuwer model om nieuwe updates te ontvangen.</translation>
 <translation id="345693547134384690">&amp;Afbeelding openen in nieuw tabblad</translation>
 <translation id="3457500881955698515">Je bedrijf of organisatie vereist een onmiddellijke update voor dit apparaat</translation>
 <translation id="3459509316159669723">Afdrukken</translation>
@@ -1760,6 +1770,7 @@
 <translation id="3672681487849735243">Er is een fabrieksfout gedetecteerd</translation>
 <translation id="367645871420407123">laat dit leeg als je het rootwachtwoord wilt instellen op de waarde van de standaard testimage</translation>
 <translation id="3677657024345889897">Stilst</translation>
+<translation id="3677911431265050325">Mobiele site opvragen</translation>
 <translation id="3678156199662914018">Extensie: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Bedankt voor je feedback. Je bent nu offline en je rapport wordt later verzonden.</translation>
 <translation id="3682824389861648626">Bewegingsdrempel</translation>
@@ -2212,6 +2223,7 @@
 <translation id="4350019051035968019">Dit apparaat kan niet worden ingeschreven bij het domein waarbij je account hoort, omdat het apparaat is aangewezen voor beheer door een ander domein.</translation>
 <translation id="4354344420232759511">Sites die je bezoekt, worden hier weergegeven</translation>
 <translation id="435527878592612277">Selecteer je foto</translation>
+<translation id="4358313196493694334">Kliklocatie stabiliseren</translation>
 <translation id="4359408040881008151">Geïnstalleerd vanwege afhankelijke extensie(s).</translation>
 <translation id="4359717112757026264">Stadsgezicht</translation>
 <translation id="4361142739114356624">De privésleutel voor dit clientcertificaat ontbreekt of is ongeldig</translation>
@@ -2336,6 +2348,7 @@
 <translation id="4558426062282641716">Toestemming voor automatisch starten gevraagd</translation>
 <translation id="4558491878126948419">Ontvang <ph name="DEVICE_TYPE" />-tips en updates voor Google-producten en deel feedback. Je kunt je op elk gewenst moment afmelden.</translation>
 <translation id="4559617833001311418">Deze site heeft toegang tot je bewegings- of lichtsensoren.</translation>
+<translation id="4561098487691395071">Of geef de PPD van je printer op</translation>
 <translation id="4562155214028662640">Vingerafdruk toevoegen</translation>
 <translation id="4563880231729913339">Vinger 3</translation>
 <translation id="4565377596337484307">Wachtwoord verbergen</translation>
@@ -2580,6 +2593,7 @@
 <translation id="494286511941020793">Ondersteuning voor proxyconfiguratie</translation>
 <translation id="4943368462779413526">Amerikaanse voetbal</translation>
 <translation id="4943691134276646401">'<ph name="CHROME_EXTENSION_NAME" />' wil verbinden met een seriële poort</translation>
+<translation id="4944310289250773232">Deze verificatieservice wordt gehost door <ph name="SAML_DOMAIN" /></translation>
 <translation id="495170559598752135">Acties</translation>
 <translation id="4953689047182316270">Reageren op toegankelijkheidsgebeurtenissen</translation>
 <translation id="4953808748584563296">Standaard oranje avatar</translation>
@@ -2672,6 +2686,7 @@
 <translation id="5094721898978802975">Communiceren met samenwerkende legitieme apps</translation>
 <translation id="5097002363526479830">Kan geen verbinding maken met het netwerk '<ph name="NAME" />': <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Alle bladwijzers openen</translation>
+<translation id="5101839224773798795">Automatisch klikken wanneer de muisaanwijzer stopt</translation>
 <translation id="5108967062857032718">Instellingen - Android-apps verwijderen</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Incognitomodus sluiten</translation>
@@ -3155,6 +3170,7 @@
 <translation id="5852112051279473187">Oeps! Er is iets misgegaan bij de aanmelding van dit apparaat. Probeer het opnieuw of neem contact op met een medewerker van het supportteam.</translation>
 <translation id="5852137567692933493">Opnieuw opstarten en Powerwash uitvoeren</translation>
 <translation id="5854912040170951372">Pizzapunt</translation>
+<translation id="5855643921295613558">0,6 seconden</translation>
 <translation id="5855773610748894548">Fout met beveiligde module.</translation>
 <translation id="5856721540245522153">Foutopsporingsfuncties inschakelen</translation>
 <translation id="5857090052475505287">Nieuwe map</translation>
@@ -3444,6 +3460,7 @@
 <translation id="6279183038361895380">Druk op |<ph name="ACCELERATOR" />| om je cursor weer te geven</translation>
 <translation id="6280215091796946657">Inloggen met een ander account</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 seconden</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> wordt niet vaak gedownload en kan gevaarlijk zijn.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Nieuwe printer in je netwerk}other{Nieuwe printers in je netwerk}}</translation>
 <translation id="6286708577777130801">Details van opgeslagen wachtwoorden</translation>
@@ -3650,6 +3667,7 @@
 <translation id="6612358246767739896">Beschermde content</translation>
 <translation id="6613452264606394692">Keer hier snel terug door een bladwijzer voor deze pagina in te stellen</translation>
 <translation id="6615455863669487791">Weergeven</translation>
+<translation id="6617100836880592260">Scansnelheid: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Toch behouden</translation>
 <translation id="6619058681307408113">Line Printer Daemon (LPD)</translation>
 <translation id="661907246513853610">Site kan je locatie bijhouden</translation>
@@ -4463,6 +4481,7 @@
 <translation id="7831491651892296503">Fout bij configureren van netwerk</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Eindtijd</translation>
+<translation id="783214144752121388">Sites geen toestemming geven Flash uit te voeren (aanbevolen)</translation>
 <translation id="7833720883933317473">Opgeslagen aangepaste woorden worden hier weergegeven</translation>
 <translation id="7835178595033117206">Bladwijzer verwijderd</translation>
 <translation id="7837776265184002579">Je homepage is gewijzigd in <ph name="URL" />.</translation>
@@ -4518,6 +4537,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Je wachtwoord is gewijzigd op de server. Log uit en weer in.</translation>
 <translation id="7915471803647590281">Vertel ons wat er aan de hand is voordat je de feedback verzendt.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" />s</translation>
 <translation id="792514962475806987">Gedockt zoomniveau:</translation>
 <translation id="7925247922861151263">AAA-controle mislukt</translation>
 <translation id="7925285046818567682">Wachten op <ph name="HOST_NAME" />...</translation>
@@ -4575,6 +4595,7 @@
 <translation id="7987814697832569482">Altijd verbinding maken via dit VPN</translation>
 <translation id="798835209536175951">Sms'jes verzenden en ontvangen op je Chromebook. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Functies voor toegankelijkheid inschakelen</translation>
+<translation id="7991296728590311172">Instellingen 'Toegang via schakelaar'</translation>
 <translation id="7994702968232966508">EAP-methode</translation>
 <translation id="7997826902155442747">Procesprioriteit</translation>
 <translation id="7999229196265990314">De volgende bestanden zijn gemaakt:
@@ -4788,6 +4809,8 @@
 <translation id="8308179586020895837">Vragen of <ph name="HOST" /> toegang wil tot je camera</translation>
 <translation id="830868413617744215">Bèta</translation>
 <translation id="8309458809024885768">Certificaat bestaat al</translation>
+<translation id="8314381333424235892">Ontbrekende of verwijderde extensie</translation>
+<translation id="8316618172731049784">Verzenden naar <ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">Netwerkverbinding toevoegen</translation>
 <translation id="8319414634934645341">Uitgebreid sleutelgebruik</translation>
 <translation id="8320459152843401447">Je volledige scherm</translation>
@@ -4944,6 +4967,7 @@
 <translation id="8588866096426746242">Profielstatistieken weergeven</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - VR presenteren op headset</translation>
 <translation id="8590375307970699841">Automatische updates instellen</translation>
+<translation id="8591783563402255548">1 seconde</translation>
 <translation id="8592141010104017453">Helemaal geen meldingen weergeven</translation>
 <translation id="8593121833493516339">Verzend gebruiks- en diagnostische gegevens. Verbeter de Android-functionaliteit voor je kind door automatisch diagnostische, apparaat- en app-gebruiksgegevens naar Google te verzenden. Deze gegevens worden niet gebruikt om je kind te identificeren en kunnen helpen om de systeem- en app-stabiliteit te verbeteren en andere optimalisaties mogelijk te maken. Daarnaast zijn bepaalde verzamelde gegevens nuttig voor Google-apps en -partners, zoals Android-ontwikkelaars. Als je aanvullende Web- en app-activiteit hebt ingeschakeld voor het account van je kind, kunnen deze gegevens worden opgeslagen in het Google-account van je kind. <ph name="BEGIN_LINK1" />Meer informatie<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Video opnemen</translation>
@@ -4973,6 +4997,7 @@
 <translation id="8637688295594795546">Systeemupdate beschikbaar. Download voorbereiden...</translation>
 <translation id="8639047128869322042">Controleren op schadelijke software...</translation>
 <translation id="8642171459927087831">Toegangstoken</translation>
+<translation id="8642900771896232685">2 seconden</translation>
 <translation id="8642947597466641025">De tekst groter maken</translation>
 <translation id="8643418457919840804">Kies een optie om door te gaan:</translation>
 <translation id="8644655801811752511">Kan deze beveiligingssleutel niet resetten. Probeer de sleutel onmiddellijk te resetten nadat je deze hebt geplaatst.</translation>
@@ -5175,6 +5200,7 @@
 <translation id="8910222113987937043">Wijzigingen in je bladwijzers, geschiedenis, wachtwoorden en andere instellingen worden niet meer gesynchroniseerd met je Google-account. Je bestaande gegevens blijven echter opgeslagen in je Google-account en kunnen worden beheerd via <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">Google-account</translation>
 <translation id="8912793549644936705">Uitrekken</translation>
+<translation id="8912810933860534797">Automatisch scannen inschakelen</translation>
 <translation id="891365694296252935">Verzend gebruiks- en diagnostische gegevens. Dit apparaat verzendt momenteel automatisch diagnostische, apparaat- en app-gebruiksgegevens naar Google. Deze gegevens worden niet gebruikt om je kind te identificeren en helpen bij het verbeteren van de systeem- en app-stabiliteit en andere optimalisaties. Daarnaast zijn bepaalde verzamelde gegevens nuttig voor Google-apps en -partners, zoals Android-ontwikkelaars. Deze instelling wordt afgedwongen door de eigenaar. Als je de instelling voor aanvullende Web- en app-activiteit hebt ingeschakeld voor je kind, kunnen deze gegevens worden opgeslagen in het Google-account van je kind. <ph name="BEGIN_LINK1" />Meer informatie<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Suggestie wordt geladen</translation>
 <translation id="8916476537757519021">Incognito-subframe: <ph name="SUBFRAME_SITE" /></translation>
@@ -5290,6 +5316,7 @@
 <translation id="9094033019050270033">Wachtwoord updaten</translation>
 <translation id="9094982973264386462">Verwijderen</translation>
 <translation id="9095253524804455615">Verwijderen</translation>
+<translation id="9095388113577226029">Meer talen...</translation>
 <translation id="9100610230175265781">Wachtwoordzin vereist</translation>
 <translation id="9100765901046053179">Geavanceerde instellingen</translation>
 <translation id="9101691533782776290">App starten</translation>
@@ -5327,6 +5354,7 @@
 <translation id="9153934054460603056">Identiteit en wachtwoord opslaan</translation>
 <translation id="9154194610265714752">Bijgewerkt</translation>
 <translation id="91568222606626347">Snelle link maken…</translation>
+<translation id="9157096865782046368">0,8 seconden</translation>
 <translation id="9157697743260533322">Kan automatische updates niet instellen voor alle gebruikers (lanceringsfout bij pre-flight-procedure: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">Er is een netwerkcommunicatieprobleem opgetreden tijdens de verificatie. Controleer je netwerkverbinding en probeer het opnieuw.</translation>
 <translation id="916607977885256133">Scherm-in-scherm</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index ea2b035..0a0228d 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -383,7 +383,6 @@
 <translation id="1576594961618857597">Hvitt standardbrukerbilde</translation>
 <translation id="1581962803218266616">Vis i Finder</translation>
 <translation id="1584990664401018068">Det kan hende at Wi-Fi-nettverket du bruker (<ph name="NETWORK_ID" />), krever autentisering.</translation>
-<translation id="1585238069289523942">Installer apper på Chromebooken din</translation>
 <translation id="1585717515139318619">Et annet program på datamaskinen la til et tema som kan endre måten Chrome fungerer på. 
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -872,7 +871,6 @@
 <translation id="2315414688463285945">Feil ved konfigurering av Linux-filer. Prøv på nytt.</translation>
 <translation id="2315587498123194634">Send link til <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nei takk</translation>
-<translation id="2316739859433277603">Når du søker i appvelgeren, brukes <ph name="BEGIN_LINK" />søkemotorinnstillingen<ph name="END_LINK" /> i nettleseren.</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>
@@ -5309,6 +5307,7 @@
 <translation id="9094033019050270033">Oppdater passordet</translation>
 <translation id="9094982973264386462">Fjern</translation>
 <translation id="9095253524804455615">Fjern</translation>
+<translation id="9095388113577226029">Flere språk</translation>
 <translation id="9100610230175265781">Det kreves en passordfrase</translation>
 <translation id="9100765901046053179">Avanserte innstillinger</translation>
 <translation id="9101691533782776290">Start appen</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 03de96b..38b11b0 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Domyślny biały awatar</translation>
 <translation id="1581962803218266616">Pokaż w Finderze</translation>
 <translation id="1584990664401018068">Sieć Wi-Fi (<ph name="NETWORK_ID" />), której używasz, może wymagać uwierzytelniania.</translation>
-<translation id="1585238069289523942">Instaluj aplikacje na swoim Chromebooku</translation>
 <translation id="1585717515139318619">Inny program na Twoim komputerze dodał motyw, który może zmieniać sposób działania Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Błąd podczas konfigurowania plików Linuksa. Spróbuj ponownie.</translation>
 <translation id="2315587498123194634">Wyślij link na: <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nie, dziękuję</translation>
-<translation id="2316739859433277603">Podczas wyszukiwania z poziomu menu z aplikacjami używana jest <ph name="BEGIN_LINK" />wyszukiwarka ustawiona w przeglądarce<ph name="END_LINK" />.</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>
@@ -5319,6 +5317,7 @@
 <translation id="9094033019050270033">Aktualizuj hasło</translation>
 <translation id="9094982973264386462">Usuń</translation>
 <translation id="9095253524804455615">Usuń</translation>
+<translation id="9095388113577226029">Więcej języków…</translation>
 <translation id="9100610230175265781">Wymagane jest hasło</translation>
 <translation id="9100765901046053179">Ustawienia zaawansowane</translation>
 <translation id="9101691533782776290">Uruchom aplikację</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index b61e903..001d420 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="pt-BR">
+<translation id="1002469766576243227">Este serviço de autenticação é hospedado por <ph name="EXTENSION_NAME" /></translation>
 <translation id="1003088604756913841">Abrir link em uma nova janela do <ph name="APP" /></translation>
 <translation id="1004218526896219317">Acesso aos sites</translation>
 <translation id="1005274289863221750">Usar microfone e câmera</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Todos apagados</translation>
 <translation id="143027896309062157">Ler e modificar todos os dados no seu computador e nos sites que você visitar</translation>
 <translation id="1430915738399379752">Imprimir</translation>
+<translation id="1431188203598586230">Atualização de software final</translation>
 <translation id="1432581352905426595">Gerenciar mecanismos de pesquisa</translation>
 <translation id="1433811987160647649">Perguntar antes de acessar</translation>
 <translation id="1434696352799406980">Esta função irá redefinir sua página de inicialização, a página "Nova guia", o mecanismo de pesquisa e as guias fixadas. Além disso, desativará todas as extensões e limpará dados temporários, como cookies. Seus favoritos, histórico e senhas salvas não serão limpos.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">Avatar branco padrão</translation>
 <translation id="1581962803218266616">Mostrar no Finder</translation>
 <translation id="1584990664401018068">A rede Wi-Fi que você está usando (<ph name="NETWORK_ID" />) pode exigir autenticação.</translation>
-<translation id="1585238069289523942">Instale apps no seu Chromebook</translation>
 <translation id="1585717515139318619">Outro programa no seu computador adicionou um tema que pode mudar a forma como o Google Chrome funciona.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">Contas e sincronização</translation>
 <translation id="1782196717298160133">Como encontrar seu smartphone</translation>
 <translation id="1784849162047402014">O dispositivo está com pouco espaço em disco</translation>
+<translation id="1790194216133135334">Enviar link para o <ph name="DEVICE_NAME" /></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>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">Começar</translation>
 <translation id="1875387611427697908">Esse item só por ser adicionado a partir da <ph name="CHROME_WEB_STORE" /></translation>
 <translation id="1877520246462554164">Falha ao receber o token de autenticação. Saia e faça login novamente para tentar mais uma vez.</translation>
+<translation id="1877860345998737529">Alternar atribuição de ação</translation>
 <translation id="1879000426787380528">Fazer login como</translation>
 <translation id="1880905663253319515">Tem certeza que deseja excluir o certificado "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="1886996562706621347">Permitir que os sites peçam para se tornar manipuladores padrão de protocolos (recomendado)</translation>
@@ -869,6 +872,7 @@
 <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="2315414688463285945">Erro ao configurar arquivos do Linux. Tente novamente.</translation>
+<translation id="2315587498123194634">Enviar link para o <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Não.</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% concluída</translation>
 <translation id="2318143611928805047">Tamanho do papel</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">Este site pode ver textos e imagens copiados para a área de transferência.</translation>
 <translation id="2367199180085172140">Adicionar compartilhamento de arquivos</translation>
 <translation id="2367972762794486313">Mostrar aplicativos</translation>
+<translation id="2369105924912929484">Alternar conteúdo da página extraído</translation>
 <translation id="2371076942591664043">Abrir quando estiver &amp;concluído</translation>
 <translation id="2375406435414127095">Conecte-se ao seu smartphone</translation>
 <translation id="2377667304966270281">Falhas graves</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">Depurar</translation>
 <translation id="2739240477418971307">Modificar suas configurações de acessibilidade</translation>
 <translation id="2740393541869613458">analisar os websites que o usuário supervisionado visitou e</translation>
+<translation id="2741912629735277980">Exibir IU na tela de login</translation>
 <translation id="274290345632688601">Restaurando apps e arquivos do Linux</translation>
 <translation id="2743387203779672305">Copiar para área de transferência</translation>
 <translation id="2745080116229976798">Subordinação qualificada da Microsoft</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">Conecte-se a uma rede e tente novamente</translation>
 <translation id="2913331724188855103">Permitir que os sites salvem e leiam os dados de arquivos "cookies" - que armazenam temporariamente o que você visitou na rede. (Recomendado)</translation>
 <translation id="2915102088417824677">Ver registro de atividades</translation>
+<translation id="2915873080513663243">Verificação automática</translation>
 <translation id="2916073183900451334">Ao pressionar Tab em uma página da Web, os links e os campos de formulário são destacados</translation>
 <translation id="2916745397441987255">Pesquisar extensões</translation>
 <translation id="2921081876747860777">Crie uma senha para proteger seus dados locais.</translation>
@@ -1483,6 +1490,7 @@
 <translation id="327147043223061465">Ver todos os cookies e dados do site</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> deseja se conectar</translation>
 <translation id="3274763671541996799">Você está no modo de tela inteira.</translation>
+<translation id="3275778809241512831">Sua chave de segurança interna não é segura no momento. Remova-a de todos os serviços com os quais ela foi utilizada. Para resolver o problema, redefina a chave de segurança.</translation>
 <translation id="3275778913554317645">Abrir como janela</translation>
 <translation id="3278001907972365362">Suas Contas do Google requerem atenção</translation>
 <translation id="3279230909244266691">O processo pode levar alguns minutos. Iniciando a máquina virtual.</translation>
@@ -1575,6 +1583,7 @@
 <translation id="3412265149091626468">Ir para a seleção</translation>
 <translation id="3413122095806433232">Emissores de autoridades de certificação: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Tamanho:</translation>
+<translation id="3420501302812554910">A chave de segurança interna precisa ser redefinida</translation>
 <translation id="3421387094817716717">Chave pública de curva elíptica</translation>
 <translation id="3423463006624419153">No seu "<ph name="PHONE_NAME_1" />" e "<ph name="PHONE_NAME_2" />":</translation>
 <translation id="3423858849633684918">Reinicie <ph name="PRODUCT_NAME" /></translation>
@@ -1603,6 +1612,7 @@
 <translation id="3450157232394774192">Porcentagem de ocupação em estado de inatividade</translation>
 <translation id="3453612417627951340">Requer autorização</translation>
 <translation id="3454157711543303649">Ativação concluída</translation>
+<translation id="3454213325559396544">Esta é a última atualização automática de software e segurança deste <ph name="DEVICE_TYPE" />. Para receber atualizações futuras, faça upgrade para um modelo mais novo.</translation>
 <translation id="345693547134384690">Abrir &amp;imagem em uma nova guia</translation>
 <translation id="3457500881955698515">Há uma exigência da sua empresa ou organização para atualizar este dispositivo imediatamente</translation>
 <translation id="3459509316159669723">Imprimir</translation>
@@ -1760,6 +1770,7 @@
 <translation id="3672681487849735243">Foi detectado um erro de fábrica</translation>
 <translation id="367645871420407123">deixe em branco se você quer definir a senha raiz como o valor da imagem de teste padrão</translation>
 <translation id="3677657024345889897">Volume mínimo</translation>
+<translation id="3677911431265050325">Solicitar site para dispositivos móveis</translation>
 <translation id="3678156199662914018">Extensão: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Agradecemos seu feedback. Você está off-line no momento. Seu relatório será enviado mais tarde.</translation>
 <translation id="3682824389861648626">Limite de movimento</translation>
@@ -2212,6 +2223,7 @@
 <translation id="4350019051035968019">Este dispositivo não pode ser inscrito no domínio ao qual sua conta pertence, porque ele está marcado para ser gerenciado por outro domínio.</translation>
 <translation id="4354344420232759511">Os sites que você visitar serão exibidos aqui</translation>
 <translation id="435527878592612277">Selecione sua foto</translation>
+<translation id="4358313196493694334">Estabilizar local do clique</translation>
 <translation id="4359408040881008151">Instalada devido a extensões dependentes.</translation>
 <translation id="4359717112757026264">Paisagem urbana</translation>
 <translation id="4361142739114356624">A chave particular desse certificado do cliente está ausente ou é inválida</translation>
@@ -2336,6 +2348,7 @@
 <translation id="4558426062282641716">Permissão de inicialização automática solicitada</translation>
 <translation id="4558491878126948419">Receba dicas sobre o <ph name="DEVICE_TYPE" /> e atualizações relacionadas a produtos do Google e compartilhe seu feedback. Você pode cancelar a inscrição a qualquer momento.</translation>
 <translation id="4559617833001311418">Este site está acessando os sensores de luz ou movimento.</translation>
+<translation id="4561098487691395071">Ou especifique o PPD da sua impressora</translation>
 <translation id="4562155214028662640">Adicionar impressão digital</translation>
 <translation id="4563880231729913339">Dedo 3</translation>
 <translation id="4565377596337484307">Ocultar senha</translation>
@@ -2580,6 +2593,7 @@
 <translation id="494286511941020793">Ajuda da configuração de proxy</translation>
 <translation id="4943368462779413526">Futebol americano</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" quer se conectar a uma porta serial</translation>
+<translation id="4944310289250773232">Este serviço de autenticação é hospedado por <ph name="SAML_DOMAIN" /></translation>
 <translation id="495170559598752135">Ações</translation>
 <translation id="4953689047182316270">Responder a eventos de acessibilidade</translation>
 <translation id="4953808748584563296">Avatar laranja padrão</translation>
@@ -2672,6 +2686,7 @@
 <translation id="5094721898978802975">Comunicar-se com aplicativos nativos de colaboração</translation>
 <translation id="5097002363526479830">Falha na conexão à rede "<ph name="NAME" />": <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Abrir todos os favoritos</translation>
+<translation id="5101839224773798795">Clicar automaticamente quando o cursor parar</translation>
 <translation id="5108967062857032718">Configurações - Remover apps Android</translation>
 <translation id="5109044022078737958">Ju</translation>
 <translation id="5111646998522066203">Sair do modo de navegação anônima</translation>
@@ -3156,6 +3171,7 @@
 <translation id="5852112051279473187">Ops! Ocorreu um erro durante o registro deste dispositivo. Tente novamente ou entre em contato com o representante do suporte.</translation>
 <translation id="5852137567692933493">Reiniciar e executar PowerWash</translation>
 <translation id="5854912040170951372">Pepperoni</translation>
+<translation id="5855643921295613558">0,6 segundo</translation>
 <translation id="5855773610748894548">Erro do módulo de segurança.</translation>
 <translation id="5856721540245522153">Ativar recursos de depuração</translation>
 <translation id="5857090052475505287">Nova pasta</translation>
@@ -3446,6 +3462,7 @@
 <translation id="6279183038361895380">Pressione |<ph name="ACCELERATOR" />| para exibir seu cursor</translation>
 <translation id="6280215091796946657">Fazer login com outra conta</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 segundos</translation>
 <translation id="6285120108426285413">O arquivo <ph name="FILE_NAME" /> não costuma ser transferido por download e pode ser perigoso.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Nova impressora na sua rede}one{Novas impressoras na sua rede}other{Novas impressoras na sua rede}}</translation>
 <translation id="6286708577777130801">Detalhes da senha salva</translation>
@@ -3652,6 +3669,7 @@
 <translation id="6612358246767739896">Conteúdo protegido</translation>
 <translation id="6613452264606394692">Você pode voltar rapidamente a esta página, adicionando-a esta aos favoritos</translation>
 <translation id="6615455863669487791">Exibir</translation>
+<translation id="6617100836880592260">Velocidade da verificação: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Manter assim mesmo</translation>
 <translation id="6619058681307408113">Daemon de impressora de linha (LPD)</translation>
 <translation id="661907246513853610">O site pode rastrear seu local</translation>
@@ -4466,6 +4484,7 @@
 <translation id="7831491651892296503">Erro ao configurar a rede</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Horário de término</translation>
+<translation id="783214144752121388">Impedir que sites executem Flash (recomendado)</translation>
 <translation id="7833720883933317473">As palavras personalizadas salvas serão exibidas aqui</translation>
 <translation id="7835178595033117206">Favorito removido</translation>
 <translation id="7837776265184002579">Sua página inicial foi alterada para <ph name="URL" />.</translation>
@@ -4521,6 +4540,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Sua senha foi alterada no servidor. Saia e faça login novamente.</translation>
 <translation id="7915471803647590281">Conte-nos o que está acontecendo antes de enviar comentários.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" />s</translation>
 <translation id="792514962475806987">Nível de zoom da lupa ancorada:</translation>
 <translation id="7925247922861151263">Falha ao verificar AAA</translation>
 <translation id="7925285046818567682">Aguardando <ph name="HOST_NAME" />...</translation>
@@ -4578,6 +4598,7 @@
 <translation id="7987814697832569482">Sempre se conectar usando esta VPN</translation>
 <translation id="798835209536175951">Envie e receba mensagens de texto no seu Chromebook.<ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Ativa os recursos de acessibilidade</translation>
+<translation id="7991296728590311172">Configurações do acesso com interruptor</translation>
 <translation id="7994702968232966508">Método EAP</translation>
 <translation id="7997826902155442747">Prioridade de processo</translation>
 <translation id="7999229196265990314">Os seguintes arquivos foram criados:
@@ -4791,6 +4812,8 @@
 <translation id="8308179586020895837">Perguntar se <ph name="HOST" /> deseja acessar sua câmera</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">O certificado já existe</translation>
+<translation id="8314381333424235892">Extensão ausente ou não instalada</translation>
+<translation id="8316618172731049784">Enviar para o <ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">Adicionar conexão de rede</translation>
 <translation id="8319414634934645341">Uso estendido de chave</translation>
 <translation id="8320459152843401447">A tela inteira</translation>
@@ -4948,6 +4971,7 @@
 <translation id="8588866096426746242">Mostrar estatísticas do perfil</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - apresentação de RV no headset</translation>
 <translation id="8590375307970699841">Configurar atualizações automáticas</translation>
+<translation id="8591783563402255548">1 segundo</translation>
 <translation id="8592141010104017453">Não mostrar notificações</translation>
 <translation id="8593121833493516339">Envie dados de uso e diagnóstico. Ajude a melhorar a experiência do seu filho com o Android enviando automaticamente ao Google dados de diagnóstico, de uso de apps e do dispositivo. Eles não serão usados para identificar seu filho e ajudarão a melhorar o sistema, a estabilidade de apps e muito mais. Alguns dados agregados também ajudarão os apps do Google e os nossos parceiros, como os desenvolvedores Android. Se a opção "Atividade na Web e de apps adicional" estiver ativada para seu filho, esses dados poderão ser salvos na Conta do Google dele. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Capturar vídeo</translation>
@@ -4977,6 +5001,7 @@
 <translation id="8637688295594795546">A atualização do sistema está disponível. Preparando para fazer download...</translation>
 <translation id="8639047128869322042">Procurando softwares perigosos…</translation>
 <translation id="8642171459927087831">Token de acesso</translation>
+<translation id="8642900771896232685">2 segundos</translation>
 <translation id="8642947597466641025">Aumentar o texto</translation>
 <translation id="8643418457919840804">Para continuar, escolha uma opção:</translation>
 <translation id="8644655801811752511">Não é possível redefinir esta chave de segurança. Tente redefinir a chave imediatamente após inseri-la.</translation>
@@ -5178,6 +5203,7 @@
 <translation id="8910222113987937043">As alterações feitas nos seus favoritos, histórico, senhas e outras configurações não serão mais sincronizadas com sua Conta do Google. No entanto, os dados já existentes permanecerão armazenados na sua conta e será possível gerenciá-los no <ph name="BEGIN_LINK" />Painel do Google<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">Conta do Google</translation>
 <translation id="8912793549644936705">Esticar</translation>
+<translation id="8912810933860534797">Ativar verificação automática</translation>
 <translation id="891365694296252935">Envie dados de uso e diagnóstico. No momento, este dispositivo está enviando automaticamente ao Google dados de diagnóstico, de uso de apps e do dispositivo. Eles não serão usados para identificar seu filho e ajudarão a melhorar o sistema, a estabilidade de apps e muito mais. Alguns dados agregados também ajudarão os apps do Google e os nossos parceiros, como os desenvolvedores Android. Essa configuração é aplicada pelo proprietário. Se a opção "Atividade na Web e de apps adicional" estiver ativada para seu filho, esses dados poderão ser salvos na Conta do Google dele. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Carregando sugestão</translation>
 <translation id="8916476537757519021">Subquadro anônimo: <ph name="SUBFRAME_SITE" /></translation>
@@ -5293,6 +5319,7 @@
 <translation id="9094033019050270033">Atualizar senha</translation>
 <translation id="9094982973264386462">Remover</translation>
 <translation id="9095253524804455615">Remover</translation>
+<translation id="9095388113577226029">Mais idiomas…</translation>
 <translation id="9100610230175265781">Senha necessária</translation>
 <translation id="9100765901046053179">Configurações avançadas</translation>
 <translation id="9101691533782776290">Iniciar aplicativo</translation>
@@ -5330,6 +5357,7 @@
 <translation id="9153934054460603056">Salvar identidade e senha</translation>
 <translation id="9154194610265714752">Atualizado</translation>
 <translation id="91568222606626347">Criar atalho...</translation>
+<translation id="9157096865782046368">0,8 segundo</translation>
 <translation id="9157697743260533322">Falha ao configurar atualizações automáticas para todos os usuários (erro de inicialização de simulação: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">Ops!  Ocorreu um problema de comunicação de rede durante a autenticação. Verifica sua conexão de rede e tente novamente.</translation>
 <translation id="916607977885256133">Picture-in-picture</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 6b870816..f2196e5 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Avatar branco predefinido</translation>
 <translation id="1581962803218266616">Mostrar no Finder</translation>
 <translation id="1584990664401018068">A rede Wi-Fi que está a utilizar (<ph name="NETWORK_ID" />) pode necessitar de autenticação.</translation>
-<translation id="1585238069289523942">Instalar aplicações no Chromebook</translation>
 <translation id="1585717515139318619">Outro programa no computador adicionou um tema que pode alterar o funcionamento do Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Ocorreu um erro ao configurar os ficheiros Linux. Tente novamente.</translation>
 <translation id="2315587498123194634">Enviar link para <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Não, obrigado</translation>
-<translation id="2316739859433277603">As pesquisas do Iniciador de Aplicações utilizam a <ph name="BEGIN_LINK" />definição do motor de pesquisa<ph name="END_LINK" /> do seu navegador.</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>
@@ -5318,6 +5316,7 @@
 <translation id="9094033019050270033">Atualizar a palavra-passe</translation>
 <translation id="9094982973264386462">Remover</translation>
 <translation id="9095253524804455615">Remover</translation>
+<translation id="9095388113577226029">Mais idiomas…</translation>
 <translation id="9100610230175265781">Frase de acesso obrigatória</translation>
 <translation id="9100765901046053179">Definições avançadas</translation>
 <translation id="9101691533782776290">Iniciar aplicação</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 9ab7d4f..79756c1 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Avatar alb prestabilit</translation>
 <translation id="1581962803218266616">Afișează în Finder</translation>
 <translation id="1584990664401018068">Este posibil ca rețeaua Wi-Fi pe care o folosești (<ph name="NETWORK_ID" />) să solicite autentificare.</translation>
-<translation id="1585238069289523942">Instalează aplicații pe Chromebook</translation>
 <translation id="1585717515139318619">Un alt program de pe computer a adăugat o temă care poate schimba modul în care funcționează Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Eroare la configurarea fișierelor Linux. Încearcă din nou.</translation>
 <translation id="2315587498123194634">Trimite linkul la <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nu, mulțumesc</translation>
-<translation id="2316739859433277603">Căutările din lansatorul aplicației folosesc <ph name="BEGIN_LINK" />setarea motorului de căutare<ph name="END_LINK" />.</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>
@@ -5318,6 +5316,7 @@
 <translation id="9094033019050270033">Actualizează parola</translation>
 <translation id="9094982973264386462">Elimină</translation>
 <translation id="9095253524804455615">Elimină</translation>
+<translation id="9095388113577226029">Mai multe limbi...</translation>
 <translation id="9100610230175265781">Este necesară o expresie de acces</translation>
 <translation id="9100765901046053179">Setări avansate</translation>
 <translation id="9101691533782776290">Lansați aplicația</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 7ddcb83..8b377d7 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ru">
+<translation id="1002469766576243227">Сервис аутентификации предоставлен поставщиком услуг <ph name="EXTENSION_NAME" /></translation>
 <translation id="1003088604756913841">Открыть ссылку в новом окне приложения "<ph name="APP" />"</translation>
 <translation id="1004218526896219317">Доступ к сайтам</translation>
 <translation id="1005274289863221750">Использование микрофона и камеры</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Все записи удалены.</translation>
 <translation id="143027896309062157">Просмотр и изменение данных на вашем компьютере и посещаемых сайтах</translation>
 <translation id="1430915738399379752">Печать</translation>
+<translation id="1431188203598586230">Последнее обновление ПО</translation>
 <translation id="1432581352905426595">Управление поисковыми системами</translation>
 <translation id="1433811987160647649">Запрашивать разрешение на доступ</translation>
 <translation id="1434696352799406980">Будут сброшены настройки главной страницы, страницы быстрого доступа и поисковой системы, а также откреплены все вкладки. Кроме того, система отключит все расширения и удалит все временные данные, такие как файлы cookie. Ваши закладки, история просмотров и пароли будут сохранены.</translation>
@@ -383,7 +385,6 @@
 <translation id="1576594961618857597">Аватар по умолчанию (белый)</translation>
 <translation id="1581962803218266616">Показать в Finder</translation>
 <translation id="1584990664401018068">Для сети Wi-Fi (<ph name="NETWORK_ID" />) может потребоваться аутентификация.</translation>
-<translation id="1585238069289523942">Установка приложений на Chromebook.</translation>
 <translation id="1585717515139318619">Одна из программ на вашем компьютере добавила тему, которая может влиять на работу Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -527,6 +528,7 @@
 <translation id="1781771911845953849">Аккаунты и синхронизация</translation>
 <translation id="1782196717298160133">Поиск телефона</translation>
 <translation id="1784849162047402014">Свободное пространство заканчивается</translation>
+<translation id="1790194216133135334">Отправить ссылку на устройство "<ph name="DEVICE_NAME" />"</translation>
 <translation id="1792619191750875668">Дополнительный монитор</translation>
 <translation id="1794791083288629568">Отправить отзыв, чтобы помочь устранить ошибку</translation>
 <translation id="1795214765651529549">Использовать классическую тему</translation>
@@ -589,6 +591,7 @@
 <translation id="1875312262568496299">Начать</translation>
 <translation id="1875387611427697908">Это приложение или расширение можно установить только из сервиса "<ph name="CHROME_WEB_STORE" />".</translation>
 <translation id="1877520246462554164">Не удалось получить токен аутентификации. Чтобы повторить попытку, выйдите из аккаунта и войдите снова.</translation>
+<translation id="1877860345998737529">Назначение действий для функции Switch Access</translation>
 <translation id="1879000426787380528">Войти как</translation>
 <translation id="1880905663253319515">Удалить сертификат <ph name="CERTIFICATE_NAME" />?</translation>
 <translation id="1886996562706621347">Разрешить запросы на установку обработчиков протоколов (рекомендуется)</translation>
@@ -868,6 +871,7 @@
 <translation id="230927227160767054">Эта страница пытается установить обработчик службы.</translation>
 <translation id="2309620859903500144">Этому сайту запрещено использовать датчики движения и освещенности.</translation>
 <translation id="2315414688463285945">Не удалось настроить файлы Linux. Повторите попытку.</translation>
+<translation id="2315587498123194634">Отправить ссылку на устройство "<ph name="DEVICE_NAME" />"</translation>
 <translation id="2316129865977710310">Спасибо, не надо</translation>
 <translation id="2317842250900878657">Выполнено: <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Размер бумаги</translation>
@@ -908,6 +912,7 @@
 <translation id="2365507699358342471">У этого сайта есть доступ к тексту и изображениям, скопированным в буфер обмена</translation>
 <translation id="2367199180085172140">Добавить файл в общий доступ.</translation>
 <translation id="2367972762794486313">Показать сервисы</translation>
+<translation id="2369105924912929484">Переключиться на сжатый вид страницы</translation>
 <translation id="2371076942591664043">Открыть по &amp;завершении</translation>
 <translation id="2375406435414127095">Настройте подключение к телефону</translation>
 <translation id="2377667304966270281">Ошибки отсутствия страницы в памяти</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">Отладка</translation>
 <translation id="2739240477418971307">Изменение настроек специальных возможностей</translation>
 <translation id="2740393541869613458">проверка сайтов, посещенных пользователем контролируемого аккаунта, и</translation>
+<translation id="2741912629735277980">Отображать интерфейс на экране входа в систему</translation>
 <translation id="274290345632688601">Восстановление приложений и файлов Linux…</translation>
 <translation id="2743387203779672305">Скопировать в буфер</translation>
 <translation id="2745080116229976798">Квалифицированное подчинение Microsoft</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">Подключитесь к сети и повторите попытку.</translation>
 <translation id="2913331724188855103">Разрешить сайтам сохранять и читать файлы cookie (рекомендуется)</translation>
 <translation id="2915102088417824677">Показать журнал активности</translation>
+<translation id="2915873080513663243">Автосканирование</translation>
 <translation id="2916073183900451334">Нажатие клавиши Tab на веб-странице приводит к выделению ссылок, а также полей формы</translation>
 <translation id="2916745397441987255">Поиск по расширениям</translation>
 <translation id="2921081876747860777">Введите пароль, чтобы защитить свои локальные данные</translation>
@@ -1483,6 +1490,7 @@
 <translation id="327147043223061465">Все файлы cookie и данные сайта</translation>
 <translation id="3271648667212143903">Сайт <ph name="ORIGIN" /> запрашивает подключение</translation>
 <translation id="3274763671541996799">Вы перешли в полноэкранный режим.</translation>
+<translation id="3275778809241512831">Внутренний электронный ключ ненадежен. Удалите его из всех сервисов. Чтобы устранить проблему, сбросьте настройки электронного ключа.</translation>
 <translation id="3275778913554317645">Открыть в отдельном окне</translation>
 <translation id="3278001907972365362">Требуются действия в аккаунте Google.</translation>
 <translation id="3279230909244266691">Подождите несколько минут. Запуск виртуальной машины…</translation>
@@ -1575,6 +1583,7 @@
 <translation id="3412265149091626468">Перейти к выделенному</translation>
 <translation id="3413122095806433232">Издатели центра сертификации: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Размер:</translation>
+<translation id="3420501302812554910">Необходимо сбросить настройки внутреннего электронного ключа</translation>
 <translation id="3421387094817716717">Открытый ключ на эллиптических кривых</translation>
 <translation id="3423463006624419153">На устройствах <ph name="PHONE_NAME_1" /> и <ph name="PHONE_NAME_2" />:</translation>
 <translation id="3423858849633684918">Перезапустите <ph name="PRODUCT_NAME" /></translation>
@@ -1603,6 +1612,7 @@
 <translation id="3450157232394774192">Продолжительность состояния бездействия в процентах</translation>
 <translation id="3453612417627951340">Требуется авторизация</translation>
 <translation id="3454157711543303649">Активация завершена</translation>
+<translation id="3454213325559396544">Это последнее автоматическое обновление ПО и безопасности для устройства <ph name="DEVICE_TYPE" />. Если вы хотите получать обновления в дальнейшем, перейдите на более новую модель.</translation>
 <translation id="345693547134384690">Открыть &amp;картинку в новой вкладке</translation>
 <translation id="3457500881955698515">Вашей организации нужно, чтобы вы обновили ПО на этом устройстве прямо сейчас.</translation>
 <translation id="3459509316159669723">Печать</translation>
@@ -1760,6 +1770,7 @@
 <translation id="3672681487849735243">Обнаружен производственный брак</translation>
 <translation id="367645871420407123">оставьте пустым, чтобы установить значение тестового изображения по умолчанию в качестве пароля суперпользователя</translation>
 <translation id="3677657024345889897">Минимальная громкость</translation>
+<translation id="3677911431265050325">Мобильная версия</translation>
 <translation id="3678156199662914018">Расширение: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Благодарим за отзыв. Отчет будет отправлен, когда вы подключитесь к Интернету.</translation>
 <translation id="3682824389861648626">Порог перемещения</translation>
@@ -2212,6 +2223,7 @@
 <translation id="4350019051035968019">Это устройство уже зарегистрировано в другом домене.</translation>
 <translation id="4354344420232759511">Здесь появятся сайты, на которые вы заходили.</translation>
 <translation id="435527878592612277">Выберите фото</translation>
+<translation id="4358313196493694334">Стабилизировать курсор</translation>
 <translation id="4359408040881008151">Установлено, так как есть зависимые расширения.</translation>
 <translation id="4359717112757026264">Городской пейзаж</translation>
 <translation id="4361142739114356624">Закрытый ключ для клиентского сертификата отсутствует или недействителен</translation>
@@ -2336,6 +2348,7 @@
 <translation id="4558426062282641716">Требуется разрешение на автозапуск</translation>
 <translation id="4558491878126948419">Получайте советы по работе с устройствами <ph name="DEVICE_TYPE" /> и новости о продуктах Google, делитесь своим мнением с разработчиками и другими пользователями. Отказаться от подписки можно в любой момент.</translation>
 <translation id="4559617833001311418">Этот сайт может использовать датчики движения и освещенности.</translation>
+<translation id="4561098487691395071">Или укажите файл PPD для принтера</translation>
 <translation id="4562155214028662640">Добавить отпечаток пальца</translation>
 <translation id="4563880231729913339">3-й палец</translation>
 <translation id="4565377596337484307">Скрыть пароль</translation>
@@ -2580,6 +2593,7 @@
 <translation id="494286511941020793">Справка по конфигурации прокси-сервера</translation>
 <translation id="4943368462779413526">Футбол</translation>
 <translation id="4943691134276646401">Расширение "<ph name="CHROME_EXTENSION_NAME" />" запрашивает разрешение подключиться к последовательному порту</translation>
+<translation id="4944310289250773232">Сервис аутентификации размещен в домене <ph name="SAML_DOMAIN" /></translation>
 <translation id="495170559598752135">Действия</translation>
 <translation id="4953689047182316270">Использование специальных возможностей</translation>
 <translation id="4953808748584563296">Аватар по умолчанию (оранжевый)</translation>
@@ -2672,6 +2686,7 @@
 <translation id="5094721898978802975">Установка соединения со смежными нативными приложениями</translation>
 <translation id="5097002363526479830">Не удалось подключиться к сети <ph name="NAME" />: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Открыть все закладки</translation>
+<translation id="5101839224773798795">Автоматически регистрировать нажатие кнопки мыши, когда указатель останавливается</translation>
 <translation id="5108967062857032718">Настройки – Удаление приложений для Android</translation>
 <translation id="5109044022078737958">Мия</translation>
 <translation id="5111646998522066203">Выйти из режима инкогнито</translation>
@@ -3155,6 +3170,7 @@
 <translation id="5852112051279473187">При регистрации устройства произошла ошибка. Повторите попытку или обратитесь в службу поддержки.</translation>
 <translation id="5852137567692933493">Перезапуск и Powerwash</translation>
 <translation id="5854912040170951372">Пицца</translation>
+<translation id="5855643921295613558">0,6 секунды</translation>
 <translation id="5855773610748894548">Ошибка безопасного модуля</translation>
 <translation id="5856721540245522153">Включение функций отладки</translation>
 <translation id="5857090052475505287">Новая папка</translation>
@@ -3444,6 +3460,7 @@
 <translation id="6279183038361895380">Чтобы показать курсор, нажмите |<ph name="ACCELERATOR" />|</translation>
 <translation id="6280215091796946657">Войти в другой аккаунт</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 секунды</translation>
 <translation id="6285120108426285413">Файл <ph name="FILE_NAME" /> скачивают редко. Возможно, он вредоносный.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Новый принтер в сети}one{Новые принтеры в сети}few{Новые принтеры в сети}many{Новые принтеры в сети}other{Новые принтеры в сети}}</translation>
 <translation id="6286708577777130801">Данные сохраненного пароля</translation>
@@ -3650,6 +3667,7 @@
 <translation id="6612358246767739896">Защищенный контент</translation>
 <translation id="6613452264606394692">Чтобы вам было проще вернуться на эту страницу, добавьте ее в закладки</translation>
 <translation id="6615455863669487791">Показать</translation>
+<translation id="6617100836880592260">Скорость сканирования: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Все равно сохранить</translation>
 <translation id="6619058681307408113">Line Printer Daemon (LPD)</translation>
 <translation id="661907246513853610">Сайт может отслеживать ваше местоположение</translation>
@@ -4464,6 +4482,7 @@
 <translation id="7831491651892296503">Ошибка при настройке сети</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Время окончания</translation>
+<translation id="783214144752121388">Запретить сайтам запускать Flash (рекомендуется)</translation>
 <translation id="7833720883933317473">Здесь появятся сохраненные специальные слова</translation>
 <translation id="7835178595033117206">Закладка удалена</translation>
 <translation id="7837776265184002579">Стартовая страница изменена на <ph name="URL" />.</translation>
@@ -4519,6 +4538,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Пароль был изменен на сервере. Выйдите из аккаунта и войдите снова.</translation>
 <translation id="7915471803647590281">Введите текст отзыва.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> сек.</translation>
 <translation id="792514962475806987">Масштаб закрепленной лупы:</translation>
 <translation id="7925247922861151263">Сбой при проверке AAA</translation>
 <translation id="7925285046818567682">Ожидание <ph name="HOST_NAME" />...</translation>
@@ -4576,6 +4596,7 @@
 <translation id="7987814697832569482">Всегда использовать эту VPN-сеть</translation>
 <translation id="798835209536175951">Отправлять и получать SMS на устройстве Chromebook. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Включить функции для людей с ограниченными возможностями</translation>
+<translation id="7991296728590311172">Настройки функции Switch Access</translation>
 <translation id="7994702968232966508">Метод EAP</translation>
 <translation id="7997826902155442747">Приоритет процессов</translation>
 <translation id="7999229196265990314">Созданы следующие файлы:
@@ -4788,6 +4809,8 @@
 <translation id="8308179586020895837">Запрашивать разрешение на доступ к камере для сайта <ph name="HOST" /></translation>
 <translation id="830868413617744215">Бета</translation>
 <translation id="8309458809024885768">Такой сертификат уже существует</translation>
+<translation id="8314381333424235892">Расширение отсутствует или не установлено</translation>
+<translation id="8316618172731049784">Отправить на устройство "<ph name="DEVICE_NAME" />"</translation>
 <translation id="8317671367883557781">Добавить сетевое подключение</translation>
 <translation id="8319414634934645341">Расширенное использование ключа</translation>
 <translation id="8320459152843401447">Весь экран</translation>
@@ -4944,6 +4967,7 @@
 <translation id="8588866096426746242">Показать статистику профиля</translation>
 <translation id="8588868914509452556">VR-контент с вкладки "<ph name="WINDOW_TITLE" />" сейчас транслируется на очки</translation>
 <translation id="8590375307970699841">Настройка автоматических обновлений</translation>
+<translation id="8591783563402255548">1 секунда</translation>
 <translation id="8592141010104017453">Не показывать уведомления</translation>
 <translation id="8593121833493516339">Отправка данных о работе устройства. Помогите сделать Android ещё лучше – разрешите автоматически отправлять в Google диагностическую информацию, данные об использовании приложений и самого устройства. Установить личность ребенка по этим данным нельзя. Они нужны нам, чтобы в будущем повысить стабильность приложений и внести другие улучшения. Некоторые данные в обобщенном виде пригодятся партнерам Google, например разработчикам Android. Если запись дополнительной истории приложений и веб-поиска включена, эта информация может сохраняться в аккаунте ребенка. <ph name="BEGIN_LINK1" />Подробнее…<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Снять видео</translation>
@@ -4973,6 +4997,7 @@
 <translation id="8637688295594795546">Доступно обновление системы. Подготовка к скачиванию…</translation>
 <translation id="8639047128869322042">Поиск вредоносного ПО…</translation>
 <translation id="8642171459927087831">Токен доступа</translation>
+<translation id="8642900771896232685">2 секунды</translation>
 <translation id="8642947597466641025">Увеличить размер шрифта</translation>
 <translation id="8643418457919840804">Чтобы продолжить, выберите один из вариантов:</translation>
 <translation id="8644655801811752511">Не удалось сбросить настройки электронного ключа. Попробуйте сделать это сразу после того, как вставите ключ.</translation>
@@ -5174,6 +5199,7 @@
 <translation id="8910222113987937043">Изменения, связанные с закладками, историей, паролями и настройками, больше не будут синхронизироваться с вашим аккаунтом Google. Тем не менее, данные в аккаунте Google сохранятся. Вы можете просмотреть и изменить их в <ph name="BEGIN_LINK" />Личном кабинете Google<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">Аккаунт Google</translation>
 <translation id="8912793549644936705">Растянуть</translation>
+<translation id="8912810933860534797">Включить автосканирование</translation>
 <translation id="891365694296252935">Отправка данных о работе устройства. Сейчас это устройство автоматически отправляет в Google диагностическую информацию, сведения об использовании приложений и самого устройства. Установить личность ребенка по этим данным нельзя. Они нужны нам, чтобы в будущем повысить стабильность приложений и внести другие улучшения. Некоторые данные в обобщенном виде пригодятся партнерам Google, например разработчикам Android. Эта настройка принудительно применяется владельцем. Если запись дополнительной истории приложений и веб-поиска включена, эта информация может сохраняться в аккаунте ребенка. <ph name="BEGIN_LINK1" />Подробнее…<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Загрузка подсказки</translation>
 <translation id="8916476537757519021">Субфрейм в режиме инкогнито: <ph name="SUBFRAME_SITE" /></translation>
@@ -5289,6 +5315,7 @@
 <translation id="9094033019050270033">Обновить пароль</translation>
 <translation id="9094982973264386462">Удалить</translation>
 <translation id="9095253524804455615">Удалить</translation>
+<translation id="9095388113577226029">Другие языки</translation>
 <translation id="9100610230175265781">Необходима кодовая фраза</translation>
 <translation id="9100765901046053179">Дополнительные настройки</translation>
 <translation id="9101691533782776290">Запустить</translation>
@@ -5326,6 +5353,7 @@
 <translation id="9153934054460603056">Сохранить идентификационные данные и пароль</translation>
 <translation id="9154194610265714752">Обновлено</translation>
 <translation id="91568222606626347">Создать ярлык...</translation>
+<translation id="9157096865782046368">0,8 секунды</translation>
 <translation id="9157697743260533322">Не удалось настроить автоматические обновления для всех пользователей (ошибка <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">Во время аутентификации возникла ошибка. Проверьте сетевое подключение и повторите попытку.</translation>
 <translation id="916607977885256133">Картинка в картинке</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 4a8a276..2601e1b 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Predvolený biely avatar</translation>
 <translation id="1581962803218266616">Zobraziť v aplikácii Finder</translation>
 <translation id="1584990664401018068">Využívaná sieť Wi‑Fi (<ph name="NETWORK_ID" />) môže vyžadovať overenie totožnosti.</translation>
-<translation id="1585238069289523942">Inštalujte aplikácie vo svojom Chromebooku</translation>
 <translation id="1585717515139318619">Iný program v počítači pridal motív, ktorý môže zmeniť spôsob fungovania prehliadača Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Pri konfigurovaní súborov systému Linux sa vyskytla chyba. Skúste to znova.</translation>
 <translation id="2315587498123194634">Odoslať odkaz do zariadenia <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nie, ďakujem</translation>
-<translation id="2316739859433277603">Vyhľadávania zo spúšťača aplikácií používajú <ph name="BEGIN_LINK" />nastavenie vyhľadávača<ph name="END_LINK" /> vo vašom prehliadači.</translation>
 <translation id="2317842250900878657">Dokončené: <ph name="PROGRESS_PERCENT" />%</translation>
 <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>
@@ -5315,6 +5313,7 @@
 <translation id="9094033019050270033">Aktualizovať heslo</translation>
 <translation id="9094982973264386462">Odstrániť</translation>
 <translation id="9095253524804455615">Odstrániť</translation>
+<translation id="9095388113577226029">Ďalšie jazyky…</translation>
 <translation id="9100610230175265781">Vyžaduje sa prístupová fráza</translation>
 <translation id="9100765901046053179">Rozšírené nastavenia</translation>
 <translation id="9101691533782776290">Spustiť aplikáciu</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 51137e2..143ecd8 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">Privzeti beli avatar</translation>
 <translation id="1581962803218266616">Pokaži v Finderju</translation>
 <translation id="1584990664401018068">Omrežje Wi-Fi, ki ga uporabljate (<ph name="NETWORK_ID" />), bo morda zahtevalo preverjanje pristnosti.</translation>
-<translation id="1585238069289523942">Namestitev aplikacij v Chromebooku</translation>
 <translation id="1585717515139318619">Drug program v računalniku je dodal temo, ki lahko spremeni način delovanja Chroma. 
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">Napaka pri konfiguriranju datotek za Linux. Poskusite znova.</translation>
 <translation id="2315587498123194634">Pošiljanje povezave v napravo <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Ne, hvala</translation>
-<translation id="2316739859433277603">Iskanja v zaganjalniku aplikacije uporabljajo <ph name="BEGIN_LINK" />nastavitev iskalnika<ph name="END_LINK" /> v brskalniku.</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>
@@ -5320,6 +5318,7 @@
 <translation id="9094033019050270033">Posodobi geslo</translation>
 <translation id="9094982973264386462">Odstrani</translation>
 <translation id="9095253524804455615">Odstrani</translation>
+<translation id="9095388113577226029">Več jezikov …</translation>
 <translation id="9100610230175265781">Zahtevano je geslo</translation>
 <translation id="9100765901046053179">Dodatne nastavitve</translation>
 <translation id="9101691533782776290">Zažene aplikacijo</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index d538da1e..b003e4d 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -383,7 +383,6 @@
 <translation id="1576594961618857597">Подразумевани бели аватар</translation>
 <translation id="1581962803218266616">Прикажи у Finder-у</translation>
 <translation id="1584990664401018068">Wi-Fi мрежа коју користите (<ph name="NETWORK_ID" />) ће можда захтевати потврду аутентичности.</translation>
-<translation id="1585238069289523942">Инсталирајте апликације на Chromebook-у</translation>
 <translation id="1585717515139318619">Други програм на рачунару је додао тему која може да промени начин на који Chrome функционише.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -872,7 +871,6 @@
 <translation id="2315414688463285945">Грешка при конфигурисању Linux датотека. Пробајте поново.</translation>
 <translation id="2315587498123194634">Пошаљи везу на уређај <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Не, хвала</translation>
-<translation id="2316739859433277603">Претраге помоћу покретача апликација користе <ph name="BEGIN_LINK" />подешавање претраживача<ph name="END_LINK" /> вашег прегледача.</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% је готово</translation>
 <translation id="2318143611928805047">Величина папира</translation>
 <translation id="2318817390901984578">Да бисте користили Android апликације, напуните и ажурирајте <ph name="DEVICE_TYPE" />.</translation>
@@ -5316,6 +5314,7 @@
 <translation id="9094033019050270033">Ажурирај лозинку</translation>
 <translation id="9094982973264386462">Уклони</translation>
 <translation id="9095253524804455615">Уклони</translation>
+<translation id="9095388113577226029">Још језика...</translation>
 <translation id="9100610230175265781">Потребна је приступна фраза</translation>
 <translation id="9100765901046053179">Напредна подешавања</translation>
 <translation id="9101691533782776290">Покрените апликацију</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index ea4f9e65..f45a932 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="sv">
+<translation id="1002469766576243227">Den här autentiseringstjänsten tillhandahålls av <ph name="EXTENSION_NAME" /></translation>
 <translation id="1003088604756913841">Öppna länken i ett nytt fönster i <ph name="APP" /></translation>
 <translation id="1004218526896219317">Tillgång till webbplatsen</translation>
 <translation id="1005274289863221750">Använd mikrofonen och kameran</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Alla har rensats</translation>
 <translation id="143027896309062157">Läsa och ändra all din data på datorn och de webbplatser du besöker</translation>
 <translation id="1430915738399379752">Skriv ut</translation>
+<translation id="1431188203598586230">Sista programvaruuppdateringen</translation>
 <translation id="1432581352905426595">Hantera sökmotorer</translation>
 <translation id="1433811987160647649">Fråga innan informationen används</translation>
 <translation id="1434696352799406980">Den här funktionen återställer startfliken, sidan Ny flik, sökmotorn och de fästa flikarna. Den inaktiverar också alla tillägg och rensar tillfälliga uppgifter som cookies. Bokmärken, historik och sparade lösenord rensas inte.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">Vit standardavatar</translation>
 <translation id="1581962803218266616">Visa i Finder</translation>
 <translation id="1584990664401018068">Wi-Fi-nätverket du använder (<ph name="NETWORK_ID" />) kanske kräver autentisering.</translation>
-<translation id="1585238069289523942">Installera appar på Chromebook</translation>
 <translation id="1585717515139318619">Ett annat program i datorn har lagt till ett tema som kan ändra hur Chrome fungerar.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -527,6 +528,7 @@
 <translation id="1781771911845953849">Konton och synkronisering</translation>
 <translation id="1782196717298160133">Sök efter din mobil</translation>
 <translation id="1784849162047402014">Enheten har ont om diskutrymme</translation>
+<translation id="1790194216133135334">Skicka länk till <ph name="DEVICE_NAME" /></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>
@@ -589,6 +591,7 @@
 <translation id="1875312262568496299">Börja</translation>
 <translation id="1875387611427697908">Kan endast installeras från <ph name="CHROME_WEB_STORE" /></translation>
 <translation id="1877520246462554164">Det gick inte att hämta autentiseringstoken. Försök igen genom att logga ut och sedan logga in igen.</translation>
+<translation id="1877860345998737529">Åtgärdstilldelning för brytare</translation>
 <translation id="1879000426787380528">Logga in som</translation>
 <translation id="1880905663253319515">Vill du ta bort certifikatet <ph name="CERTIFICATE_NAME" />?</translation>
 <translation id="1886996562706621347">Tillåt att webbplatser begär att bli standardhanterare för protokoll (rekommenderas)</translation>
@@ -868,6 +871,7 @@
 <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="2315414688463285945">Ett fel uppstod när Linux-filer skulle konfigureras. Försök igen.</translation>
+<translation id="2315587498123194634">Skicka länk till <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Nej tack</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" /> % klart</translation>
 <translation id="2318143611928805047">Pappersstorlek</translation>
@@ -908,6 +912,7 @@
 <translation id="2365507699358342471">Den här webbplatsen får tillgång till text och bilder som kopierats till Urklipp.</translation>
 <translation id="2367199180085172140">Lägg till File Share</translation>
 <translation id="2367972762794486313">Visa appar</translation>
+<translation id="2369105924912929484">Aktivera/inaktivera destillerat sidinnehåll</translation>
 <translation id="2371076942591664043">Öppna när nedladdning är &amp;klar</translation>
 <translation id="2375406435414127095">Anslut till mobilen</translation>
 <translation id="2377667304966270281">Sidfel</translation>
@@ -1158,6 +1163,7 @@
 <translation id="2739191690716947896">Felsökning</translation>
 <translation id="2739240477418971307">Ändra tillgänglighetsinställningarna</translation>
 <translation id="2740393541869613458">granska webbplatser som den kontrollerade användaren har besökt och</translation>
+<translation id="2741912629735277980">Visa användargränssnitt på inloggningsskärmen</translation>
 <translation id="274290345632688601">Återställer Linux-appar och Linux-filer</translation>
 <translation id="2743387203779672305">Kopiera till Urklipp</translation>
 <translation id="2745080116229976798">Microsofts kvalificerade underordning</translation>
@@ -1274,6 +1280,7 @@
 <translation id="2910318910161511225">Anslut till ett nätverk och försök igen</translation>
 <translation id="2913331724188855103">Tillåt att webbplatser sparar och läser cookiedata (rekommenderas)</translation>
 <translation id="2915102088417824677">Visa aktivitetslogg</translation>
+<translation id="2915873080513663243">Automatisk genomsökning</translation>
 <translation id="2916073183900451334">Om du trycker på Tabb på en webbsida markeras länkar och formulärfält</translation>
 <translation id="2916745397441987255">Sök efter tillägg</translation>
 <translation id="2921081876747860777">Skapa ett lösenord för att skydda lokal data</translation>
@@ -1482,6 +1489,7 @@
 <translation id="327147043223061465">Visa alla cookies och webbplatsuppgifter</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> vill ansluta</translation>
 <translation id="3274763671541996799">Du har aktiverat helskärmsläget.</translation>
+<translation id="3275778809241512831">Den interna säkerhetsnyckeln är i nuläget osäker. Ta bort den från alla tjänster där du har använt den. Återställ säkerhetsnyckeln för att lösa problemet.</translation>
 <translation id="3275778913554317645">Öppna som fönster</translation>
 <translation id="3278001907972365362">Ditt Google-konto/dina Google-konton kräver åtgärd</translation>
 <translation id="3279230909244266691">Detta kan ta några minuter. Den virtuella maskinen startas.</translation>
@@ -1574,6 +1582,7 @@
 <translation id="3412265149091626468">Hoppa till markering</translation>
 <translation id="3413122095806433232">CA-utfärdare: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Storlek:</translation>
+<translation id="3420501302812554910">Den interna säkerhetsnyckeln behöver återställas</translation>
 <translation id="3421387094817716717">Offentlig nyckel vid kryptering med elliptisk kurva</translation>
 <translation id="3423463006624419153">Gör så här på din <ph name="PHONE_NAME_1" /> och <ph name="PHONE_NAME_2" />:</translation>
 <translation id="3423858849633684918">Starta om <ph name="PRODUCT_NAME" /></translation>
@@ -1602,6 +1611,7 @@
 <translation id="3450157232394774192">Kapacitetsprocentsats för inaktivitet</translation>
 <translation id="3453612417627951340">Auktorisering behövs</translation>
 <translation id="3454157711543303649">Aktiveringen har slutförts</translation>
+<translation id="3454213325559396544">Detta är den sista automatiska programvaru- och säkerhetsuppdateringen för <ph name="DEVICE_TYPE" />. Uppgradera till en nyare modell om du vill få uppdateringar i framtiden.</translation>
 <translation id="345693547134384690">Öppna &amp;bild i ny flik</translation>
 <translation id="3457500881955698515">Ditt företag eller din organisation kräver att den här enheten startas om genast</translation>
 <translation id="3459509316159669723">Skriva ut</translation>
@@ -1759,6 +1769,7 @@
 <translation id="3672681487849735243">Ett fabriksfel har upptäckts</translation>
 <translation id="367645871420407123">lämna tomt om du vill ange rotlösenordet som värde för standardtestbilden</translation>
 <translation id="3677657024345889897">Lägst</translation>
+<translation id="3677911431265050325">Begär mobilversion</translation>
 <translation id="3678156199662914018">Tillägg: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Tack för din feedback. Just nu är du offline, så rapporten skickas senare.</translation>
 <translation id="3682824389861648626">Gräns för rörelse</translation>
@@ -2211,6 +2222,7 @@
 <translation id="4350019051035968019">Det går inte att registrera enheten på samma domän som dina konton eftersom enheten har registrerats som hanterad av en annan domän.</translation>
 <translation id="4354344420232759511">Webbplatser du besöker visas här</translation>
 <translation id="435527878592612277">Välj foto</translation>
+<translation id="4358313196493694334">Stabilisera klickplats</translation>
 <translation id="4359408040881008151">Installerades på grund av ett eller flera tillägg som är beroende av detta tillägg.</translation>
 <translation id="4359717112757026264">Cityscape</translation>
 <translation id="4361142739114356624">Det här klientcertifikatets privata nyckel saknas eller är tom</translation>
@@ -2335,6 +2347,7 @@
 <translation id="4558426062282641716">Autostartbehörighet har begärts</translation>
 <translation id="4558491878126948419">Få tips om <ph name="DEVICE_TYPE" /> och uppdateringar om Google-produkter samt dela feedback. Sluta prenumerera när du vill.</translation>
 <translation id="4559617833001311418">Den här webbplatsen använder enhetens rörelse- eller ljussensor.</translation>
+<translation id="4561098487691395071">Eller ange PPD-fil för skrivaren</translation>
 <translation id="4562155214028662640">Lägg till fingeravtryck</translation>
 <translation id="4563880231729913339">Finger 3</translation>
 <translation id="4565377596337484307">Dölj lösenord</translation>
@@ -2579,6 +2592,7 @@
 <translation id="494286511941020793">Hjälp för proxykonfiguration</translation>
 <translation id="4943368462779413526">Amerikansk fotboll</translation>
 <translation id="4943691134276646401"><ph name="CHROME_EXTENSION_NAME" /> vill ansluta till en serieport</translation>
+<translation id="4944310289250773232">Den här autentiseringstjänsten tillhandahålls av <ph name="SAML_DOMAIN" /></translation>
 <translation id="495170559598752135">Åtgärder</translation>
 <translation id="4953689047182316270">Svara på tillgänglighetshändelser</translation>
 <translation id="4953808748584563296">Orange standardavatar</translation>
@@ -2671,6 +2685,7 @@
 <translation id="5094721898978802975">Kommunicera med samverkande inbyggda appar</translation>
 <translation id="5097002363526479830">Det gick inte att ansluta till nätverket <ph name="NAME" />: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Öppna alla bokmärken</translation>
+<translation id="5101839224773798795">Klicka automatiskt när pekaren stannar</translation>
 <translation id="5108967062857032718">Inställningar – ta bort Android-appar</translation>
 <translation id="5109044022078737958">Mia</translation>
 <translation id="5111646998522066203">Avsluta inkognitoläget</translation>
@@ -3154,6 +3169,7 @@
 <translation id="5852112051279473187">Hoppsan! Något gick verkligen fel när enheten skulle registreras. Försök igen eller kontakta support.</translation>
 <translation id="5852137567692933493">Starta om och gör en Powerwash</translation>
 <translation id="5854912040170951372">Pizzaslajs</translation>
+<translation id="5855643921295613558">0,6 sekunder</translation>
 <translation id="5855773610748894548">Ett fel uppstod i den säkra modulen</translation>
 <translation id="5856721540245522153">Aktivera felsökningsfunktioner</translation>
 <translation id="5857090052475505287">Ny mapp</translation>
@@ -3443,6 +3459,7 @@
 <translation id="6279183038361895380">Tryck på |<ph name="ACCELERATOR" />| om du vill visa markören</translation>
 <translation id="6280215091796946657">Logga in med ett annat konto</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 sekunder</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> brukar inte laddas ned och kan vara skadlig.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Ny skrivare i nätverket}other{Nya skrivare i nätverket}}</translation>
 <translation id="6286708577777130801">Sparad lösenordsinformation</translation>
@@ -3649,6 +3666,7 @@
 <translation id="6612358246767739896">Skyddat innehåll</translation>
 <translation id="6613452264606394692">Hitta snabbt tillbaka hit med ett bokmärke</translation>
 <translation id="6615455863669487791">Visa mig</translation>
+<translation id="6617100836880592260">Genomsökningshastighet: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Behåll ändå</translation>
 <translation id="6619058681307408113">Line Printer Daemon (LPD)</translation>
 <translation id="661907246513853610">Webbplatsen kan spåra din plats</translation>
@@ -4463,6 +4481,7 @@
 <translation id="7831491651892296503">Fel i nätverkskonfigurationen</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Sluttid</translation>
+<translation id="783214144752121388">Blockera webbplatser från att köra Flash (rekommenderas)</translation>
 <translation id="7833720883933317473">Sparade anpassade ord visas här</translation>
 <translation id="7835178595033117206">Bokmärket har tagits bort</translation>
 <translation id="7837776265184002579">Startsidan har ändrats till <ph name="URL" />.</translation>
@@ -4518,6 +4537,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Lösenordet har ändrats på servern. Logga ut och logga sedan in igen.</translation>
 <translation id="7915471803647590281">Berätta för oss vad som händer innan du skickar feedback.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> sek</translation>
 <translation id="792514962475806987">Zoomnivå för dockad skärmförstoring</translation>
 <translation id="7925247922861151263">Kontroll med AAA misslyckades</translation>
 <translation id="7925285046818567682">Väntar på <ph name="HOST_NAME" />...</translation>
@@ -4575,6 +4595,7 @@
 <translation id="7987814697832569482">Anslut alltid via detta VPN</translation>
 <translation id="798835209536175951">Skicka och ta emot sms på Chromebook. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Aktivera tillgänglighetsfunktioner</translation>
+<translation id="7991296728590311172">Inställningar för brytarstyrning</translation>
 <translation id="7994702968232966508">EAP-metod</translation>
 <translation id="7997826902155442747">Prioriteringsprocess</translation>
 <translation id="7999229196265990314">Följande filer har skapats:
@@ -4788,6 +4809,8 @@
 <translation id="8308179586020895837">Fråga om <ph name="HOST" /> vill använda din kamera</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">Certifikatet finns redan</translation>
+<translation id="8314381333424235892">Tillägget saknas eller har avinstallerats</translation>
+<translation id="8316618172731049784">Skicka till <ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">Lägg till nätverksanslutning</translation>
 <translation id="8319414634934645341">Utökad nyckelanvändning</translation>
 <translation id="8320459152843401447">Hela skärmen</translation>
@@ -4944,6 +4967,7 @@
 <translation id="8588866096426746242">Visa profilstatistik</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> – VR-innehåll avsett för VR-kikare visas</translation>
 <translation id="8590375307970699841">Konfigurera automatiska uppdateringar</translation>
+<translation id="8591783563402255548">1 sekund</translation>
 <translation id="8592141010104017453">Visa inga aviseringar alls</translation>
 <translation id="8593121833493516339">Skicka diagnostik- och användningsdata. Hjälp till att göra Android bättre för ditt barn genom att skicka diagnostikdata, enhetsdata och data om appanvändning till Google automatiskt. Denna data används till att förbättra systemets och apparnas stabilitet med mera och inte till att identifiera ditt barn. Viss samlad data används även till att förbättra appar från Google och partner, till exempel Android-utvecklare. Om ytterligare webb- och appaktivitet har aktiverats för ditt barn kan denna data sparas i Google-kontot. <ph name="BEGIN_LINK1" />Läs mer<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Spela in video</translation>
@@ -4973,6 +4997,7 @@
 <translation id="8637688295594795546">Systemuppdatering tillgänglig. Förbereder nedladdning...</translation>
 <translation id="8639047128869322042">Söker efter skadlig programvara …</translation>
 <translation id="8642171459927087831">Åtkomsttoken</translation>
+<translation id="8642900771896232685">2 sekunder</translation>
 <translation id="8642947597466641025">Förstora texten</translation>
 <translation id="8643418457919840804">Välj ett av alternativen:</translation>
 <translation id="8644655801811752511">Det går inte att återställa den här säkerhetsnyckeln. Testa att återställa nyckeln direkt när du sätter i den.</translation>
@@ -5174,6 +5199,7 @@
 <translation id="8910222113987937043">När bokmärken, historik, lösenord och andra inställningar ändras kommer dessa ändringar inte längre att synkroniseras med Google-kontot. Uppgifter som redan har sparats i Google-kontot finns däremot kvar och kan hanteras via <ph name="BEGIN_LINK" />Google Översikt<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">Google-konto</translation>
 <translation id="8912793549644936705">Förläng</translation>
+<translation id="8912810933860534797">Aktivera automatisk genomsökning</translation>
 <translation id="891365694296252935">Skicka diagnostik- och användningsdata. Den här enheten skickar för närvarande diagnostikdata, enhetsdata och data om appanvändning till Google automatiskt. Denna data används till att förbättra systemets och apparnas stabilitet med mera och inte till att identifiera ditt barn. Viss samlad data används även till att förbättra appar från Google och partner, till exempel Android-utvecklare. Ägaren har gjort denna inställning obligatorisk. Om ytterligare webb- och appaktivitet har aktiverats för ditt barn kan denna data sparas i Google-kontot. <ph name="BEGIN_LINK1" />Läs mer<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Läser in förslag</translation>
 <translation id="8916476537757519021">Underram i inkognitoläge: <ph name="SUBFRAME_SITE" /></translation>
@@ -5289,6 +5315,7 @@
 <translation id="9094033019050270033">Uppdatera lösenordet</translation>
 <translation id="9094982973264386462">Ta bort</translation>
 <translation id="9095253524804455615">Ta bort</translation>
+<translation id="9095388113577226029">Fler språk …</translation>
 <translation id="9100610230175265781">Lösenfras krävs</translation>
 <translation id="9100765901046053179">Avancerade inställningar</translation>
 <translation id="9101691533782776290">Starta appen</translation>
@@ -5326,6 +5353,7 @@
 <translation id="9153934054460603056">Spara identitet och lösenord</translation>
 <translation id="9154194610265714752">Uppdaterat</translation>
 <translation id="91568222606626347">Skapa genväg ...</translation>
+<translation id="9157096865782046368">0,8 sekunder</translation>
 <translation id="9157697743260533322">Det gick inte att konfigurera automatiska uppdateringar för alla användare (preliminärt startfel: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">Hoppsan! Ett nätverkskommunikationsproblem uppstod under autentiseringen. Kontrollera nätverksanslutningen och försök igen.</translation>
 <translation id="916607977885256133">Bild-i-bild</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 154000e..ede76f3 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -383,7 +383,6 @@
 <translation id="1576594961618857597">Ishara chaguomsingi nyeupe</translation>
 <translation id="1581962803218266616">Onyesha katika Kipataji</translation>
 <translation id="1584990664401018068">Mtandao wa Wi-Fi unaotumia (<ph name="NETWORK_ID" />) huenda ukahitaji uidhinishaji.</translation>
-<translation id="1585238069289523942">Sakinisha programu kwenye Chromebook yako</translation>
 <translation id="1585717515139318619">Programu nyingine kwenye kompyuta yako iliongeza mandhari ambayo yanaweza kubadilisha jinsi Chrome hufanya kazi.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -872,7 +871,6 @@
 <translation id="2315414688463285945">Hitilafu imetokea wakati wa kuweka mipangilio ya faili za Linux. Tafadhali jaribu tena.</translation>
 <translation id="2315587498123194634">Tuma Kiungo kwa <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">Hapana, asante</translation>
-<translation id="2316739859433277603">Utafutaji kutoka kifungua programu hutumia <ph name="BEGIN_LINK" />mipangilio ya mtambo wa kutafuta<ph name="END_LINK" /> katika kivinjari chako.</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>
@@ -5312,6 +5310,7 @@
 <translation id="9094033019050270033">Sasisha nenosiri</translation>
 <translation id="9094982973264386462">Ondoa</translation>
 <translation id="9095253524804455615">Ondoa</translation>
+<translation id="9095388113577226029">Lugha zaidi...</translation>
 <translation id="9100610230175265781">Kaulisiri inahitajika</translation>
 <translation id="9100765901046053179">Mipangilio ya kina</translation>
 <translation id="9101691533782776290">Zindua programu</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 39f34e2d..83c23fc 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -377,7 +377,6 @@
 <translation id="1576594961618857597">இயல்பு வெள்ளைநிற அவதார்</translation>
 <translation id="1581962803218266616">&amp;கண்டுபிடிப்பானில் காண்பி</translation>
 <translation id="1584990664401018068">பயன்படுத்திக் கொண்டிருக்கும் வைஃபை நெட்வொர்க்குக்கு (<ph name="NETWORK_ID" />) அங்கீகரிப்பு தேவைப்படலாம்.</translation>
-<translation id="1585238069289523942">Chromebookகில் ஆப்ஸ்களை நிறுவலாம்</translation>
 <translation id="1585717515139318619">உங்கள் கம்ப்யூட்டரில் உள்ள மற்றொரு நிரல் Chrome செயல்படும் முறையை மாற்றக்கூடிய தீம் ஒன்றைச் சேர்த்துள்ளது.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -5260,6 +5259,7 @@
 <translation id="9094033019050270033">கடவுச்சொல்லைப் புதுப்பி</translation>
 <translation id="9094982973264386462">அகற்று</translation>
 <translation id="9095253524804455615">அகற்று</translation>
+<translation id="9095388113577226029">மேலும் மொழிகள்...</translation>
 <translation id="9100610230175265781">கடவுச்சொற்றொடர் தேவை</translation>
 <translation id="9100765901046053179">மேம்பட்ட அமைப்புகள்</translation>
 <translation id="9101691533782776290">பயன்பாட்டைத் தொடங்கு</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 2c575d2..c2012d10 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="te">
+<translation id="1002469766576243227">ఈ ప్రమాణీకరణ సేవ <ph name="EXTENSION_NAME" /> ద్వారా హోస్ట్ చేయబడుతోంది</translation>
 <translation id="1003088604756913841">కొత్త <ph name="APP" /> విండోలో లింక్‍ను తెరువు</translation>
 <translation id="1004218526896219317">సైట్ యాక్సెస్</translation>
 <translation id="1005274289863221750">మీ మైక్రోఫోన్ మరియు కెమెరాను ఉపయోగించండి</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">అన్నీ తీసివేయబడ్డాయి</translation>
 <translation id="143027896309062157">మీ కంప్యూటర్‌లో మరియు మీరు సందర్శించే వెబ్‌సైట్‌ల్లో మీ మొత్తం డేటాను చదవడం మరియు మార్చడం</translation>
 <translation id="1430915738399379752">ముద్రించు</translation>
+<translation id="1431188203598586230">చివరి సాఫ్ట్‌వేర్ అప్‌డేట్</translation>
 <translation id="1432581352905426595">శోధన ఇంజిన్‌లను నిర్వహించండి</translation>
 <translation id="1433811987160647649">ప్రాప్యత చేసే ముందు అడగాలి</translation>
 <translation id="1434696352799406980">దీని వలన మీ ప్రారంభ పేజీ, కొత్త ట్యాబ్ పేజీ, శోధన ఇంజిన్, పిన్ చేసిన ట్యాబ్‌లు రీసెట్ చేయబడతాయి. ఇది అన్ని ఎక్స్‌టెన్ష‌న్‌లను కూడా నిలిపివేస్తుంది. కుక్కీల వంటి తాత్కాలిక డేటాను తీసివేస్తుంది. మీ బుక్‌మార్క్‌లు, చరిత్ర, సేవ్ చేసిన పాస్‌వర్డ్‌లు తీసివేయబడవు.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">డిఫాల్ట్ తెలుపు రంగు అవతార్</translation>
 <translation id="1581962803218266616">శోధినిలో చూపించు</translation>
 <translation id="1584990664401018068">మీరు ఉపయోగిస్తున్న Wi-Fi నెట్‌వర్క్‌కు (<ph name="NETWORK_ID" />) ప్రామాణీకరణ అవసరం.</translation>
-<translation id="1585238069289523942">మీ Chromebookలో యాప్‌లను ఇన్‌స్టాల్ చేయండి</translation>
 <translation id="1585717515139318619">మీ కంప్యూటర్‌లోని మరొక ప్రోగ్రామ్ Chrome పని చేసే విధానాన్ని మార్చే థీమ్‌ను జోడించింది.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">ఖాతాలు మరియు సమకాలీకరణ</translation>
 <translation id="1782196717298160133">మీ ఫోన్‌ను కనుగొంటోంది</translation>
 <translation id="1784849162047402014">పరికరంలో ఖాళీ నిల్వ స్థలం తక్కువగా ఉంది</translation>
+<translation id="1790194216133135334">లింక్‌ను <ph name="DEVICE_NAME" />కు పంపండి</translation>
 <translation id="1792619191750875668">విస్తారిత డిస్‌ప్లే</translation>
 <translation id="1794791083288629568">ఈ సమస్యను పరిష్కరించడంలో మాకు సహాయం చేయడానికి అభిప్రాయాన్ని పంపుతుంది.</translation>
 <translation id="1795214765651529549">క్లాసిక్‌ను ఉపయోగించు</translation>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">ప్రారంభించు</translation>
 <translation id="1875387611427697908">దీనిని <ph name="CHROME_WEB_STORE" /> నుండి మాత్రమే జోడించవచ్చు</translation>
 <translation id="1877520246462554164">ప్రమాణీకరణ టోకెన్‌ను పొందడం విఫలమైంది. దయచేసి సైన్ అవుట్ చేసి, సైన్ ఇన్ చేసిన తర్వాత మళ్లీ ప్రయత్నించండి.</translation>
+<translation id="1877860345998737529">స్విచ్ చర్య కేటాయింపు</translation>
 <translation id="1879000426787380528">ఇలా సైన్ ఇన్ చేయండి</translation>
 <translation id="1880905663253319515">ప్రమాణపత్రం "<ph name="CERTIFICATE_NAME" />"ను తొలగించాలా?</translation>
 <translation id="1886996562706621347">ప్రోటోకాల్స్‌కు డిఫాల్ట్ హ్యాండ్లర్‌లుగా కావడం కోసం అడగటానికి సైట్‌లను అనుమతించండి (సిఫార్సు చేయబడింది)</translation>
@@ -869,6 +872,7 @@
 <translation id="230927227160767054">సేవా హ్యాండ్ల‌ర్‌ను ఇన్‌స్టాల్ చేయాలని ఈ పేజీ కోరుతోంది.</translation>
 <translation id="2309620859903500144">మీ మోషన్ లేదా లైట్ సెన్సార్‌లను యాక్సెస్ చేయనీయకుండా ఈ సైట్ బ్లాక్ చేయబడింది.</translation>
 <translation id="2315414688463285945">Linux ఫైల్‌లను కాన్ఫిగర్ చేయడంలో ఎర్రర్‌ ఏర్పడింది. దయచేసి మళ్లీ ప్రయత్నించండి.</translation>
+<translation id="2315587498123194634">లింక్‌ను <ph name="DEVICE_NAME" />కు పంపండి</translation>
 <translation id="2316129865977710310">వద్దు, ధన్యవాదాలు</translation>
 <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% పూర్తయింది</translation>
 <translation id="2318143611928805047">కాగితపు పరిమాణం</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">క్లిప్‌బోర్డ్‌కు కాపీ చేసిన వచనం మరియు చిత్రాలను ఈ సైట్ చూడగలదు.</translation>
 <translation id="2367199180085172140">ఫైల్ షేర్‌ని జోడించండి</translation>
 <translation id="2367972762794486313">అనువర్తనాలను చూపు</translation>
+<translation id="2369105924912929484">వర్గీకృత పేజీ కంటెంట్‌లను టోగుల్ చేయండి</translation>
 <translation id="2371076942591664043">&amp;పూర్తవగానే తెరువు</translation>
 <translation id="2375406435414127095">మీ ఫోన్‌కి కనెక్ట్ చేయండి</translation>
 <translation id="2377667304966270281">Hard Faultలు</translation>
@@ -1158,6 +1163,7 @@
 <translation id="2739191690716947896">డీబగ్</translation>
 <translation id="2739240477418971307">మీ యాక్సెస్‌ సెట్టింగ్‌లను మార్చడం</translation>
 <translation id="2740393541869613458">పర్యవేక్షించబడే వినియోగదారు సందర్శించిన వెబ్‌సైట్‌లను సమీక్షించండి, మరియు</translation>
+<translation id="2741912629735277980">లాగిన్ స్క్రీన్‌పై ప్రదర్శన UI</translation>
 <translation id="274290345632688601">Linux యాప్‌లు &amp; ఫైల్‌లను పునరుద్ధరిస్తోంది</translation>
 <translation id="2743387203779672305">క్లిప్‌బోర్డ్‌కు కాపీ చేయి</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
@@ -1274,6 +1280,7 @@
 <translation id="2910318910161511225">నెట్‌వర్క్‌కి కనెక్ట్ చేసి మళ్లీ ప్రయత్నించండి</translation>
 <translation id="2913331724188855103">కుక్కీ డేటాను సేవ్ చేయడానికి, చదవడానికి సైట్‌లను అనుమతిస్తుంది (సిఫార్సు చేయబడింది)</translation>
 <translation id="2915102088417824677">కార్యకలాపం లాగ్‌ని చూడండి</translation>
+<translation id="2915873080513663243">ఆటోమేటిక్ స్కాన్</translation>
 <translation id="2916073183900451334">వెబ్‌పేజీలో Tab కీని నొక్కితే లింక్‌లు, ఫారమ్ ఫీల్డ్‌లను హైలైట్ చేస్తుంది</translation>
 <translation id="2916745397441987255">ఎక్స్‌టెన్షన్‌లను వెతకండి</translation>
 <translation id="2921081876747860777">దయచేసి మీ స్థానిక డేటాను రక్షించడానికి పాస్‌వర్డ్‌ను సృష్టించండి.</translation>
@@ -1482,6 +1489,7 @@
 <translation id="327147043223061465">మొత్తం కుక్కీలు మరియు సైట్ డేటాను చూడండి</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> దీనికి కనెక్ట్ చేయాలనుకుంటోంది</translation>
 <translation id="3274763671541996799">మీరు పూర్తి స్క్రీన్‌కు వెళ్ళారు.</translation>
+<translation id="3275778809241512831">మీ అంతర్గత సెక్యూరిటీ కీ ప్రస్తుతం అసురక్షితంగా ఉంది. మీరు ఏవైనా సేవల కోసం దీనిని ఉపయోగించి ఉంటేే, వెంటనే వాటి నుండి తీసివేయండి. సమస్యను పరిష్కరించడానికి, దయచేసి సెక్యూరిటీ కీని రీసెట్ చేయండి.</translation>
 <translation id="3275778913554317645">విండో లాగా తెరవండి</translation>
 <translation id="3278001907972365362">మీ Google ఖాతా లేదా ఖాతాలను జాగ్రత్తగా గమనించాలి</translation>
 <translation id="3279230909244266691">ఈ ప్రాసెస్‌కు కొన్ని నిమిషాలు పట్టవచ్చు. వర్చ్యువల్ మెషీన్‌ను ప్రారంభిస్తోంది.</translation>
@@ -1574,6 +1582,7 @@
 <translation id="3412265149091626468">ఎంపికకు వెళ్ళు</translation>
 <translation id="3413122095806433232">CA జారీచేసిన వారు: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">పరిమాణం:</translation>
+<translation id="3420501302812554910">అంతర్గత సెక్యూరిటీ కీని రీసెట్ చేయడం అవసరం</translation>
 <translation id="3421387094817716717">దీర్ఘవృత్తాకార వక్రరేఖ పబ్లిక్ కీ</translation>
 <translation id="3423463006624419153">మీ '<ph name="PHONE_NAME_1" />' మరియు '<ph name="PHONE_NAME_2" />'లో:</translation>
 <translation id="3423858849633684918">దయచేసి  <ph name="PRODUCT_NAME" />ని తిరిగి ప్రారంభించండి</translation>
@@ -1602,6 +1611,7 @@
 <translation id="3450157232394774192">నిష్క్రియ స్థితి అధీన శాతం</translation>
 <translation id="3453612417627951340">ప్రామాణీకరణ అవసరం</translation>
 <translation id="3454157711543303649">సక్రియం చేయడం పూర్తయింది</translation>
+<translation id="3454213325559396544">ఈ <ph name="DEVICE_TYPE" />కు ఇదే చివరి ఆటోమేటిక్ సాఫ్ట్‌వేర్ మరియు భద్రతాపరమైన అప్‌డేట్. భవిష్యత్తు అప్‌డేట్‌లను పొందడానికి, సరికొత్త మోడల్‌కు అప్‌గ్రేడ్ చేయండి.</translation>
 <translation id="345693547134384690">కొత్త‌ టాబ్‌లో &amp;చిత్రాన్ని తెరువు</translation>
 <translation id="3457500881955698515">మీ కంపెనీ లేదా సంస్థ నియమాల ప్రకారం, ఈ పరికరాన్ని తక్షణం అప్‌డేట్ చేయాలి</translation>
 <translation id="3459509316159669723">ముద్రణ</translation>
@@ -1759,6 +1769,7 @@
 <translation id="3672681487849735243">ఫ్యాక్టరీ ఎర్రర్ గుర్తించబడింది</translation>
 <translation id="367645871420407123">మీరు రూట్ పాస్‌వర్డ్‌ను డిఫాల్ట్ పరీక్ష చిత్ర విలువకు సెట్ చేయాలనుకుంటే ఖాళీగా వదిలిపెట్టండి</translation>
 <translation id="3677657024345889897">అత్యంత నిశబ్దం</translation>
+<translation id="3677911431265050325">మొబైల్ సైట్‌ను అభ్యర్థించండి</translation>
 <translation id="3678156199662914018">పొడిగింపు: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">మీ అభిప్రాయం తెలియజేసినందుకు ధన్యవాదాలు. మీరు ప్రస్తుతం ఆఫ్‌లైన్‌లో ఉన్నారు, మీ నివేదిక తర్వాత పంపబడుతుంది.</translation>
 <translation id="3682824389861648626">కదలిక థ్రెషోల్డ్</translation>
@@ -2211,6 +2222,7 @@
 <translation id="4350019051035968019">ఈ పరికరాన్ని మీ ఖాతా చెందిన డొమైన్‌కు నమోదు చేయడం సాధ్యపడదు. ఎందుకంటే పరికరం వేరే డొమైన్ ద్వారా నిర్వహించబడేలా గుర్తించబడింది.</translation>
 <translation id="4354344420232759511">మీరు సందర్శించే సైట్‌లు ఇక్కడ చూపబడతాయి</translation>
 <translation id="435527878592612277">మీ ఫోటోని ఎంచుకోండి</translation>
+<translation id="4358313196493694334">క్లిక్ స్థానాన్ని స్థిరీకరిస్తుంది</translation>
 <translation id="4359408040881008151">ఆధారిత పొడిగింపు(లు) కారణంగా ఇన్‌స్టాల్ చేయబడింది.</translation>
 <translation id="4359717112757026264">నగర చిత్రాలు</translation>
 <translation id="4361142739114356624">ఈ క్లయింట్ స‌ర్టిఫికెట్‌ ప్రైవేట్ కీ లేదు లేదా చెల్లదు</translation>
@@ -2335,6 +2347,7 @@
 <translation id="4558426062282641716">స్వీయ-ప్రారంభ అనుమతి అభ్యర్థించబడింది</translation>
 <translation id="4558491878126948419"><ph name="DEVICE_TYPE" /> చిట్కాలు మరియు Google ఉత్పత్తులకు చెందిన అప్‌డేట్‌లను పొందండి మరియు అభిప్రాయాన్ని షేర్ చేయండి. ఏ సమయంలో అయినా సభ్యత్వాన్ని తీసివేయండి.</translation>
 <translation id="4559617833001311418">ఈ సైట్ మీ మోషన్ లేదా లైట్ సెన్సార్‌లను యాక్సెస్ చేస్తోంది.</translation>
+<translation id="4561098487691395071">లేదా మీ ప్రింటర్ PPDని పేర్కొనండి</translation>
 <translation id="4562155214028662640">వేలిముద్రను జోడించు</translation>
 <translation id="4563880231729913339">మూడో వేలు</translation>
 <translation id="4565377596337484307">పాస్‌వర్డ్‌ను దాచిపెట్టు</translation>
@@ -2579,6 +2592,7 @@
 <translation id="494286511941020793">ప్రాక్సీ కన్ఫిగరేషన్ సహాయం</translation>
 <translation id="4943368462779413526">ఫుట్‌బాల్</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" ఈ సీరియల్ పోర్ట్‌లలో ఒకదానితో కనెక్ట్ (అనుసంధానం) కావాలని కోరుకుంటుంది</translation>
+<translation id="4944310289250773232">ఈ ప్రమాణీకరణ సేవ <ph name="SAML_DOMAIN" /> ద్వారా హోస్ట్ చేయబడుతోంది</translation>
 <translation id="495170559598752135">చర్యలు</translation>
 <translation id="4953689047182316270">యాక్సెస్ సామర్థ్యం ఉన్న ఈవెంట్‌లకు ప్రతిస్పందించండి</translation>
 <translation id="4953808748584563296">డిఫాల్ట్ నారింజ రంగు అవతార్</translation>
@@ -2671,6 +2685,7 @@
 <translation id="5094721898978802975">సహకరిస్తున్న స్థానిక అనువర్తనాలతో కమ్యూనికేట్ చేయండి</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' నెట్‌వర్క్‌కు కనెక్ట్ చేయడంలో విఫలమైంది: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">అన్ని బుక్‌మార్క్‌లను తెరువు</translation>
+<translation id="5101839224773798795">కర్సర్ ఆపినప్పుడు ఆటోమేటిక్‌గా క్లిక్ అవుతుంది</translation>
 <translation id="5108967062857032718">సెట్టింగ్‌లు - Android యాప్‌లను తీసివేయి</translation>
 <translation id="5109044022078737958">మియా</translation>
 <translation id="5111646998522066203">అజ్ఞాత మోడ్‌ని విడిచిపెట్టు</translation>
@@ -3154,6 +3169,7 @@
 <translation id="5852112051279473187">అయ్యో!  ఈ పరికరాన్ని నమోదు చేస్తున్నపుడు ఏదో తప్పిదం జరిగింది.  దయచేసి మరల ప్రయత్నించండి లేదా మీ మద్దతు ప్రతినిధిని సంప్రదించండి.</translation>
 <translation id="5852137567692933493">పునఃప్రారంభించి, పవర్‌వాష్ చేయి</translation>
 <translation id="5854912040170951372">స్లైస్</translation>
+<translation id="5855643921295613558">0.6 సెకన్లు</translation>
 <translation id="5855773610748894548">అయ్యో, సురక్షిత మాడ్యూల్ ఎర్రర్ ఏర్పడింది.</translation>
 <translation id="5856721540245522153">డీబగ్గింగ్ ఫీచ‌ర్‌లను ప్రారంభించండి</translation>
 <translation id="5857090052475505287">క్రొత్త ఫోల్డర్</translation>
@@ -3443,6 +3459,7 @@
 <translation id="6279183038361895380">మీ కర్సర్‌ను చూపడానికి |<ph name="ACCELERATOR" />| నొక్కండి</translation>
 <translation id="6280215091796946657">వేరొక ఖాతాతో సైన్ ఇన్ చేయండి</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 సెకన్లు</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> సాధారణంగా డౌన్‌లోడ్ చేయబడలేదు మరియు ప్రమాదకరమైనది కావచ్చు.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{మీ నెట్‌వర్క్‌లోని కొత్త ప్రింటర్}other{మీ నెట్‌వర్క్‌లోని కొత్త ప్రింటర్‌లు}}</translation>
 <translation id="6286708577777130801">సేవ్ చేసిన పాస్‌వర్డ్ వివరాలు</translation>
@@ -3649,6 +3666,7 @@
 <translation id="6612358246767739896">రక్షిత కంటెంట్</translation>
 <translation id="6613452264606394692">ఈ పేజీని బుక్‌మార్క్ చేయడం ద్వారా ఇక్కడికి క్షణాల్లో తిరిగి రండి</translation>
 <translation id="6615455863669487791">నాకు చూపించు</translation>
+<translation id="6617100836880592260">స్కానింగ్ వేగం: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">ఏదేమైనా ఉంచు</translation>
 <translation id="6619058681307408113">లైన్ ప్రింటర్ డెమాన్ (LPD)</translation>
 <translation id="661907246513853610">సైట్ మీ స్థానాన్ని ట్రాక్ చేయవచ్చు</translation>
@@ -4462,6 +4480,7 @@
 <translation id="7831491651892296503">నెట్‌వర్క్‌ను కాన్ఫిగర్ చేయడంలో ఎర్రర్</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">ముగింపు సమయం</translation>
+<translation id="783214144752121388">సైట్‌లలో Flashను అమలు చేయనివ్వకుండా బ్లాక్ చేయి (సిఫార్సు చేయడమైనది)</translation>
 <translation id="7833720883933317473">సేవ్ చేసిన అనుకూల పదాలు ఇక్కడ కనిపిస్తాయి</translation>
 <translation id="7835178595033117206">బుక్‌మార్క్ తీసివేయబడింది</translation>
 <translation id="7837776265184002579">మీ హోమ్‌పేజీ <ph name="URL" />కు మార్చబడింది.</translation>
@@ -4517,6 +4536,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">సర్వర్‌లో మీ పాస్‌వర్డ్ మార్చబడింది. దచయేసి సైన్ అవుట్ చేసి, సైన్ ఇన్ చేయండి.</translation>
 <translation id="7915471803647590281">దయచేసి అభిప్రాయాన్ని పంపడానికి ముందు ఏమి జరిగిందో మాకు చెప్పండి.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" />సె</translation>
 <translation id="792514962475806987">డాక్ చేయబడిన జూమ్ స్థాయి:</translation>
 <translation id="7925247922861151263">AAA తనిఖీ విఫలమైంది</translation>
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> కోసం వేచి ఉంది ...</translation>
@@ -4574,6 +4594,7 @@
 <translation id="7987814697832569482">ఎల్లప్పుడూ ఈ VPN ద్వారా కనెక్ట్ చేయి</translation>
 <translation id="798835209536175951">మీ Chromebook నుండి వచన సందేశాలను పంపండి లేదా స్వీకరించండి. <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">సులభంగా యాక్సెస్‌ చేసే ఫీచ‌ర్‌లను ప్రారంభించు</translation>
+<translation id="7991296728590311172">స్విచ్ యాక్సెస్ సెట్టింగ్‌లు</translation>
 <translation id="7994702968232966508">EAP పద్ధతి</translation>
 <translation id="7997826902155442747">ప్రాసెస్ ప్రాధాన్యత</translation>
 <translation id="7999229196265990314">ఈ క్రింది ఫైళ్ళను సృష్టించింది:
@@ -4784,6 +4805,8 @@
 <translation id="8308179586020895837"><ph name="HOST" /> మీ కెమెరాను యాక్సెస్ చేయాలనుకుంటే నాకు తెలియజేయి</translation>
 <translation id="830868413617744215">బీటా</translation>
 <translation id="8309458809024885768">ప్రమాణపత్రం ఇప్పటికే ఉంది</translation>
+<translation id="8314381333424235892">ఎక్స్‌టెన్షన్‌ను అందించలేదు లేదా అన్ఇన్‌స్టాల్ చేయబడింది</translation>
+<translation id="8316618172731049784"><ph name="DEVICE_NAME" />కు పంపు</translation>
 <translation id="8317671367883557781">నెట్‌వర్క్ కనెక్షన్‌ను జోడించు</translation>
 <translation id="8319414634934645341">విస్తరించిన కీ ఉపయోగం</translation>
 <translation id="8320459152843401447">మీ పూర్తి స్క్రీన్</translation>
@@ -4941,6 +4964,7 @@
 <translation id="8588866096426746242">ప్రొఫైల్ గణాంకాలను చూపు</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - హెడ్‌సెట్ ద్వారా VR కంటెంట్‌ని ప్రదర్శిస్తోంది.</translation>
 <translation id="8590375307970699841">ఆటోమేటిక్ అప్డేట్లను సెట్ అప్ చేయండి</translation>
+<translation id="8591783563402255548">1 సెకను</translation>
 <translation id="8592141010104017453">నోటిఫికేషన్‌లను అస్సలు చూపవద్దు</translation>
 <translation id="8593121833493516339">వినియోగం &amp; విశ్లేషణల డేటాను పంపండి. సమస్య విశ్లేషణ, పరికరం, యాప్ వినియోగ డేటాను ఆటోమేటిక్‌గా Googleకి పంపడం ద్వారా మీ చిన్నారి Android అనుభవాన్ని మెరుగుపరచడంలో సహాయపడండి. ఇది మీ చిన్నారి గురించి గుర్తించడానికి ఉపయోగించబడదు, ఇది కేవలం సిస్టమ్, యాప్ స్థిరత్వానికి, ఇతర మెరుగుదలలకు సహాయపడుతుంది. కొంత సముదాయ డేటా కూడా Google యాప్‌లకు, అలాగే Android డెవలపర్‌ల లాంటి భాగస్వాములకు సహాయపడుతుంది. మీ చిన్నారి కోసం అదనపు వెబ్ &amp; యాప్ కార్యకలాపాన్ని ఆన్ చేసినట్లయితే, ఈ డేటా వారి Google ఖాతాలో సేవ్ కావచ్చు. <ph name="BEGIN_LINK1" />మరింత తెలుసుకోండి<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">వీడియోను క్యాప్చర్ చేయి</translation>
@@ -4970,6 +4994,7 @@
 <translation id="8637688295594795546">సిస్టమ్ అప్‌డేట్‌ అందుబాటులో ఉంది. డౌన్‌లోడ్ చేయ‌డానికి సిద్ధం చేస్తోంది...</translation>
 <translation id="8639047128869322042">హానికరమైన సాఫ్ట్‌వేర్‌ కోసం తనిఖీ చేస్తోంది...</translation>
 <translation id="8642171459927087831">యాక్సెస్ టోకెన్</translation>
+<translation id="8642900771896232685">2 సెకన్లు</translation>
 <translation id="8642947597466641025">టెక్స్ట్‌ని పెద్దదిగా చెయ్యి</translation>
 <translation id="8643418457919840804">కొనసాగడానికి, ఒక ఎంపికను ఎంచుకోండి:</translation>
 <translation id="8644655801811752511">ఈ సెక్యూరిటీ కీని రీసెట్ చేయలేకపోయింది. కీని ఇన్‌సర్ట్ చేసిన తక్షణం రీసెట్ చేయడానికి ప్రయత్నించండి.</translation>
@@ -5171,6 +5196,7 @@
 <translation id="8910222113987937043">మీ బుక్‌మార్క్‌లు, చరిత్ర, పాస్‌వర్డ్‌లు, ఇతర సెట్టింగ్‌ల‌లో మార్పులు మీ Google ఖాతాకు ఇకపై సింక్ చేయ‌బడవు. అయినప్పటికీ, ఇప్పటికే ఉన్న మీ డేటా Google ఖాతాలో నిల్వ చేయబడుతుంది. <ph name="BEGIN_LINK" />Google డాష్‌బోర్డ్<ph name="END_LINK" />లో నిర్వహించబడుతుంది.</translation>
 <translation id="8912362522468806198">Google ఖాతా</translation>
 <translation id="8912793549644936705">విస్తరించు</translation>
+<translation id="8912810933860534797">ఆటోమేటిక్ స్కాన్‌ను ప్రారంభించు</translation>
 <translation id="891365694296252935">వినియోగం &amp; విశ్లేషణల డేటాను పంపండి. ఈ పరికరం ప్రస్తుతం సమస్య విశ్లేషణ, అలాగే పరికర, యాప్ వినియోగ డేటాను ఆటోమేటిక్‌గా Googleకి పంపుతుంది. ఇది మీ చిన్నారి గురించి గుర్తించడానికి ఉపయోగించబడదు, ఇది కేవలం సిస్టమ్, యాప్ స్థిరత్వానికి, అలాగే ఇతర మెరుగుదలలకు సహాయపడుతుంది. కొంత సముదాయ డేటా కూడా Google యాప్‌లకు, అలాగే Android డెవలపర్‌ల లాంటి భాగస్వాములకు సహాయపడుతుంది. ఈ సెట్టింగ్‌ని యజమాని అమలు చేసారు. మీ చిన్నారి కోసం అదనపు వెబ్ &amp; యాప్ కార్యకలాపాన్ని ఆన్ చేసినట్లయితే, ఈ డేటా వారి Google ఖాతాలో సేవ్ కావచ్చు. <ph name="BEGIN_LINK1" />మరింత తెలుసుకోండి<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">సూచన లోడ్ అవుతోంది</translation>
 <translation id="8916476537757519021">అజ్ఞాత సబ్‌ఫ్రేమ్: <ph name="SUBFRAME_SITE" /></translation>
@@ -5286,6 +5312,7 @@
 <translation id="9094033019050270033">పాస్‌వర్డ్‌ను అప్‌డేట్ చేయి</translation>
 <translation id="9094982973264386462">తీసివేయి</translation>
 <translation id="9095253524804455615">తీసివేయి</translation>
+<translation id="9095388113577226029">మరిన్ని భాషలు...</translation>
 <translation id="9100610230175265781">రహస్య పదబంధం అవసరం</translation>
 <translation id="9100765901046053179">అధునాతన సెట్టింగ్‌లు</translation>
 <translation id="9101691533782776290">యాప్‌ను ప్రారంభించు</translation>
@@ -5323,6 +5350,7 @@
 <translation id="9153934054460603056">గుర్తింపు మరియు పాస్‌వర్డ్‌ సేవ్ చేయి</translation>
 <translation id="9154194610265714752">నవీకరించబడింది</translation>
 <translation id="91568222606626347">షార్ట్‌కట్‌ను సృష్టించు...</translation>
+<translation id="9157096865782046368">0.8 సెకన్లు</translation>
 <translation id="9157697743260533322">వినియోగదారులందరి కోసం ఆటోమేటిక్ అప్‌డేట్‌లను సెటప్ చేయడం విఫలమైంది (ప్రీఫ్లయిట్ ప్రారంభ ఎర్రర్: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">అయ్యో!  ప్రామాణీకరణ సమయంలో నెట్‌వర్క్ కమ్యూనికేషన్ సమస్య సంభవించింది.  దయచేసి మీ నెట్‌వర్క్ కనెక్షన్‌ను తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="916607977885256133">చిత్రంలో చిత్రం</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 93382d2..da143e5 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -386,7 +386,6 @@
 <translation id="1576594961618857597">รูปโปรไฟล์เริ่มต้นสีขาว</translation>
 <translation id="1581962803218266616">แสดงใน Finder</translation>
 <translation id="1584990664401018068">เครือข่าย Wi-Fi ที่คุณใช้ (<ph name="NETWORK_ID" />) อาจต้องการการตรวจสอบสิทธิ์</translation>
-<translation id="1585238069289523942">ติดตั้งแอปใน Chromebook</translation>
 <translation id="1585717515139318619">โปรแกรมอื่นบนคอมพิวเตอร์ได้เพิ่มธีมซึ่งอาจเปลี่ยนลักษณะการทำงานของ Chrome
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -875,7 +874,6 @@
 <translation id="2315414688463285945">เกิดข้อผิดพลาดขณะกำหนดค่าไฟล์ Linux โปรดลองอีกครั้ง</translation>
 <translation id="2315587498123194634">ส่งลิงก์ไปที่ <ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">ไม่ ขอบคุณ</translation>
-<translation id="2316739859433277603">การค้นหาจากตัวเปิดแอปจะใช้<ph name="BEGIN_LINK" />การตั้งค่าเครื่องมือค้นหา<ph name="END_LINK" />ของเบราว์เซอร์</translation>
 <translation id="2317842250900878657">เสร็จแล้ว <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">ขนาดกระดาษ</translation>
 <translation id="2318817390901984578">หากต้องการใช้แอป Android ให้ชาร์จและอัปเดต <ph name="DEVICE_TYPE" /></translation>
@@ -4540,7 +4538,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">มีการเปลี่ยนรหัสผ่านของคุณในเซิร์ฟเวอร์ โปรดออกจากระบบแล้วลงชื่อเข้าใช้อีกครั้ง</translation>
 <translation id="7915471803647590281">โปรดแจ้งให้เราทราบถึงสิ่งที่เกิดขึ้นก่อนส่งความคิดเห็น</translation>
-<translation id="7919210519031517829"><ph name="DURATION" /> วินาที</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> วิ</translation>
 <translation id="792514962475806987">ระดับการซูมหน้าจอบางส่วน:</translation>
 <translation id="7925247922861151263">การตรวจสอบ AAA ล้มเหลว</translation>
 <translation id="7925285046818567682">กำลังรอ <ph name="HOST_NAME" />...</translation>
@@ -5318,6 +5316,7 @@
 <translation id="9094033019050270033">อัปเดตรหัสผ่าน</translation>
 <translation id="9094982973264386462">นำออก</translation>
 <translation id="9095253524804455615">นำออก</translation>
+<translation id="9095388113577226029">ภาษาเพิ่มเติม...</translation>
 <translation id="9100610230175265781">ต้องระบุรหัสผ่าน</translation>
 <translation id="9100765901046053179">การตั้งค่าขั้นสูง</translation>
 <translation id="9101691533782776290">เปิดแอป</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index b11aa3f..cb49fb2 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="tr">
+<translation id="1002469766576243227">Bu kimlik doğrulama hizmeti <ph name="EXTENSION_NAME" /> tarafından barındırılıyor.</translation>
 <translation id="1003088604756913841">Bağlantıyı yeni <ph name="APP" /> Penceresinde aç</translation>
 <translation id="1004218526896219317">Site erişimi</translation>
 <translation id="1005274289863221750">Mikrofonunuzu ve kameranızı kullanma</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Tümü temizlendi</translation>
 <translation id="143027896309062157">Bilgisayarınızda ve ziyaret ettiğiniz web sitelerinde tüm verilerinizi okuma ve değiştirme</translation>
 <translation id="1430915738399379752">Yazdır</translation>
+<translation id="1431188203598586230">Son yazılım güncellemesi</translation>
 <translation id="1432581352905426595">Arama motorlarını yönet</translation>
 <translation id="1433811987160647649">Erişmeden önce sor</translation>
 <translation id="1434696352799406980">Bu işlem, başlangıç sayfanızı, yeni sekme sayfanızı, arama motorunuzu ve sabit sekmelerinizi sıfırlar. Ayrıca, tüm uzantılar devre dışı bırakılır ve çerezler gibi geçici veriler temizlenir. Yer işaretleriniz, geçmişiniz ve kayıtlı şifreleriniz temizlenmez.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">Varsayılan beyaz avatar</translation>
 <translation id="1581962803218266616">Finder'da Göster</translation>
 <translation id="1584990664401018068">Kullandığınız kablosuz ağ (<ph name="NETWORK_ID" />) kimlik doğrulaması gerektirebilir.</translation>
-<translation id="1585238069289523942">Chromebook'unuza uygulama yükleyin</translation>
 <translation id="1585717515139318619">Bilgisayarınızdaki başka bir program, Chrome'un çalışma şeklini değiştirebilecek bir tema ekledi.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">Hesaplar ve senkronizasyon</translation>
 <translation id="1782196717298160133">Telefonunuz bulunuyor</translation>
 <translation id="1784849162047402014">Cihazda disk alanı az</translation>
+<translation id="1790194216133135334">Bağlantıyı <ph name="DEVICE_NAME" /> cihazına gönder</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>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">Başla</translation>
 <translation id="1875387611427697908">Bu yalnızca <ph name="CHROME_WEB_STORE" /> kullanılarak eklenebilir</translation>
 <translation id="1877520246462554164">Kimlik doğrulama jetonu alınamadı. Tekrar denemek için lütfen oturumu kapatıp sonra yeniden oturum açın.</translation>
+<translation id="1877860345998737529">Anahtar işlem görevi</translation>
 <translation id="1879000426787380528">Farklı kullanıcı olarak oturum açın</translation>
 <translation id="1880905663253319515">"<ph name="CERTIFICATE_NAME" />" sertifikası silinsin mi?</translation>
 <translation id="1886996562706621347">Sitelerin, protokoller için varsayılan işleyiciler olmasını sormasına izin ver (önerilir)</translation>
@@ -869,6 +872,7 @@
 <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="2315414688463285945">Linux dosyaları yapılandırılırken hata oluştu. Lütfen tekrar deneyin.</translation>
+<translation id="2315587498123194634">Bağlantıyı <ph name="DEVICE_NAME" /> cihazına gönder</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>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">Bu site, panoya kopyalanan metin ve resimleri görebilir.</translation>
 <translation id="2367199180085172140">Dosya Paylaşımı Ekle</translation>
 <translation id="2367972762794486313">Uygulamaları göster</translation>
+<translation id="2369105924912929484">Arıtılmış sayfa içeriğini açma/kapatma</translation>
 <translation id="2371076942591664043">İşlem tamamlandığın&amp;da aç</translation>
 <translation id="2375406435414127095">Telefonunuza bağlama</translation>
 <translation id="2377667304966270281">Donanım Hataları</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">Hata ayıkla</translation>
 <translation id="2739240477418971307">Erişilebilirlik ayarlarını değiştirme</translation>
 <translation id="2740393541869613458">Denetlenen kullanıcının ziyaret ettiği web sitelerini inceleyebilir ve</translation>
+<translation id="2741912629735277980">Giriş ekranında kullanıcı arayüzünü görüntüle</translation>
 <translation id="274290345632688601">Linux uygulamaları ve dosyaları geri yükleniyor</translation>
 <translation id="2743387203779672305">Panoya kopyala</translation>
 <translation id="2745080116229976798">Microsoft Nitelikli Yardımlaşma</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">Bir ağa bağlanın ve tekrar deneyin</translation>
 <translation id="2913331724188855103">Sitelerin, çerez verilerini kaydetmelerine ve okumalarına izin ver (önerilir)</translation>
 <translation id="2915102088417824677">Etkinlik günlüğünü göster</translation>
+<translation id="2915873080513663243">Otomatik tarama</translation>
 <translation id="2916073183900451334">Bir web sayfasında Sekme tuşuna basıldığında bağlantılar ve form alanları vurgulanır</translation>
 <translation id="2916745397441987255">Uzantılarda ara</translation>
 <translation id="2921081876747860777">Yerel verilerinizi korumak için lütfen bir şifre oluşturun.</translation>
@@ -1483,6 +1490,7 @@
 <translation id="327147043223061465">Tüm çerezleri ve site verilerini göster</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> bağlanmak istiyor</translation>
 <translation id="3274763671541996799">Tam ekrana geçtiniz.</translation>
+<translation id="3275778809241512831">Dahili güvenlik anahtarınız şu anda güvenli değil. Lütfen güvenlik anahtarını kullandığınız tüm hizmetlerden kaldırın. Sorunu çözmek için güvenlik anahtarını lütfen sıfırlayın.</translation>
 <translation id="3275778913554317645">Pencere olarak aç</translation>
 <translation id="3278001907972365362">Google Hesabınız/Hesaplarınız işlem gerektiriyor</translation>
 <translation id="3279230909244266691">Bu işlem birkaç dakika sürebilir. Sanal makine başlatılıyor.</translation>
@@ -1575,6 +1583,7 @@
 <translation id="3412265149091626468">Seçim'e Atla</translation>
 <translation id="3413122095806433232">CA Verenler: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Boyut:</translation>
+<translation id="3420501302812554910">Dahili güvenlik anahtarının sıfırlanması gerekiyor</translation>
 <translation id="3421387094817716717">Eliptik Eğri Ortak Anahtarı</translation>
 <translation id="3423463006624419153">"<ph name="PHONE_NAME_1" />" ve "<ph name="PHONE_NAME_2" />" telefonlarınızda:</translation>
 <translation id="3423858849633684918">Lütfen <ph name="PRODUCT_NAME" /> uygulamasını yeniden başlatın</translation>
@@ -1603,6 +1612,7 @@
 <translation id="3450157232394774192">Boşta Kalma Durumu Kullanma Yüzdesi</translation>
 <translation id="3453612417627951340">Yetkilendirme gerektiriyor</translation>
 <translation id="3454157711543303649">Etkinleştirme tamamlandı</translation>
+<translation id="3454213325559396544">Bu, <ph name="DEVICE_TYPE" /> için son otomatik yazılım ve güvenlik güncellemesidir. Gelecekteki güncellemeleri almak için daha yeni bir sürüme geçin.</translation>
 <translation id="345693547134384690">Resm&amp;i yeni sekmede aç</translation>
 <translation id="3457500881955698515">Şirketiniz veya kuruluşunuz bu cihazı hemen güncellemenizi gerektiriyor</translation>
 <translation id="3459509316159669723">Yazdırma</translation>
@@ -1760,6 +1770,7 @@
 <translation id="3672681487849735243">Bir fabrika hatası saptandı</translation>
 <translation id="367645871420407123">kök şifrenin varsayılan test görüntüsü değerine ayarlanmasını istiyorsanız boş bırakın</translation>
 <translation id="3677657024345889897">En sessiz</translation>
+<translation id="3677911431265050325">Mobil site iste</translation>
 <translation id="3678156199662914018">Uzantı: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Geri bildiriminiz için teşekkürler. Şu anda çevrimdışısınız ve raporunuz daha sonra gönderilecek.</translation>
 <translation id="3682824389861648626">Hareket eşiği</translation>
@@ -2212,6 +2223,7 @@
 <translation id="4350019051035968019">Bu cihaz, farklı bir alan adı tarafından yönetilen cihaz olarak işaretlendiğinden hesabınızın ait olduğu alan adına kaydettirilemiyor.</translation>
 <translation id="4354344420232759511">Ziyaret ettiğiniz siteler burada görünür</translation>
 <translation id="435527878592612277">Fotoğrafınızı seçin</translation>
+<translation id="4358313196493694334">Tıklama konumunu sabitle</translation>
 <translation id="4359408040881008151">Bağımlı uzantılar nedeniyle yüklendi.</translation>
 <translation id="4359717112757026264">Şehir manzaraları</translation>
 <translation id="4361142739114356624">Bu İstemci Sertifikası'nın Özel Anahtarı eksik veya geçersiz</translation>
@@ -2336,6 +2348,7 @@
 <translation id="4558426062282641716">Otomatik başlatma izni istendi</translation>
 <translation id="4558491878126948419"><ph name="DEVICE_TYPE" /> ile ilgili ipuçları ve Google ürünleriyle ilgili güncellemeler alın ve geri bildirimlerinizi paylaşın. İstediğiniz zaman aboneliğinizi iptal edebilirsiniz.</translation>
 <translation id="4559617833001311418">Bu site hareket veya ışık sensörlerinize erişiyor.</translation>
+<translation id="4561098487691395071">Veya yazıcı PPD dosyanızı belirtin</translation>
 <translation id="4562155214028662640">Parmak İzi Ekle</translation>
 <translation id="4563880231729913339">3. parmak</translation>
 <translation id="4565377596337484307">Şifreyi gizle</translation>
@@ -2580,6 +2593,7 @@
 <translation id="494286511941020793">Proxy Yapılandırması Yardımı</translation>
 <translation id="4943368462779413526">Futbol</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" bir seri bağlantı noktasına bağlanmak istiyor</translation>
+<translation id="4944310289250773232">Bu kimlik doğrulama hizmeti <ph name="SAML_DOMAIN" /> tarafından barındırılıyor.</translation>
 <translation id="495170559598752135">İşlemler</translation>
 <translation id="4953689047182316270">Erişilebilirlikle İlgili Etkinliklere Yanıt Verme</translation>
 <translation id="4953808748584563296">Varsayılan turuncu avatar</translation>
@@ -2672,6 +2686,7 @@
 <translation id="5094721898978802975">İşbirliği yapan yerel uygulamalarla iletişim kurma</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' ağına bağlanamadı: <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Tüm yer işaretlerini aç</translation>
+<translation id="5101839224773798795">İmleç durduğunda otomatik olarak tıkla</translation>
 <translation id="5108967062857032718">Ayarlar - Android uygulamalarını kaldır</translation>
 <translation id="5109044022078737958">Maya</translation>
 <translation id="5111646998522066203">Gizli moddan çık</translation>
@@ -3156,6 +3171,7 @@
 <translation id="5852112051279473187">Hata! Bu cihaz kaydettirilirken bir sorun oluştu. Lütfen tekrar deneyin veya destek temsilcinizle iletişim kurun.</translation>
 <translation id="5852137567692933493">Tekrar başlat ve Powerwash uygula</translation>
 <translation id="5854912040170951372">Dilim</translation>
+<translation id="5855643921295613558">0,6 saniye</translation>
 <translation id="5855773610748894548">Tüh, güvenli modül hatası.</translation>
 <translation id="5856721540245522153">Hata ayıklama özelliklerini etkinleştirin</translation>
 <translation id="5857090052475505287">Yeni Klasör</translation>
@@ -3445,6 +3461,7 @@
 <translation id="6279183038361895380">İmlecinizi göstermek için |<ph name="ACCELERATOR" />| tuşuna basın</translation>
 <translation id="6280215091796946657">Farklı bir hesapla oturum aç</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 saniye</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> yaygın indirilen bir öğe değil, tehlikeli olabilir.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Ağınızda yeni yazıcı}other{Ağınızda yeni yazıcılar}}</translation>
 <translation id="6286708577777130801">Kayıtlı şifre ayrıntıları</translation>
@@ -3651,6 +3668,7 @@
 <translation id="6612358246767739896">Korunan içerik</translation>
 <translation id="6613452264606394692">Bu sayfaya yer işareti koyarak buraya hızlıca geri dönün</translation>
 <translation id="6615455863669487791">Göster</translation>
+<translation id="6617100836880592260">Tarama hızı: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Yine de Tut</translation>
 <translation id="6619058681307408113">Satır Yazıcı Arka Plan Programı (LPD)</translation>
 <translation id="661907246513853610">Site, konumunuzu izleyebilir</translation>
@@ -4464,6 +4482,7 @@
 <translation id="7831491651892296503">Ağ yapılandırılırken hata oluştu</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Bitiş zamanı</translation>
+<translation id="783214144752121388">Sitelerin Flash çalıştırmasını engelle (önerilir)</translation>
 <translation id="7833720883933317473">Kaydedilen özel kelimeler burada görünür</translation>
 <translation id="7835178595033117206">Yer işareti kaldırıldı</translation>
 <translation id="7837776265184002579">Ana sayfanız <ph name="URL" /> olarak değiştirildi.</translation>
@@ -4519,6 +4538,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Şifreniz sunucuda değiştirildi. Lütfen oturumu kapatıp tekrar açın.</translation>
 <translation id="7915471803647590281">Geri bildirimi göndermeden önce lütfen bize ne olduğunu söyleyin.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> sn.</translation>
 <translation id="792514962475806987">Yerleştirilmişken yakınlaştırma düzeyi:</translation>
 <translation id="7925247922861151263">AAA kontrolü başarısız oldu</translation>
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> bekleniyor...</translation>
@@ -4576,6 +4596,7 @@
 <translation id="7987814697832569482">Her zaman bu VPN üzerinden bağlan</translation>
 <translation id="798835209536175951">Chromebook'unuzdan kısa mesaj gönderip alın. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Erişilebilirlik özelliklerini etkinleştir</translation>
+<translation id="7991296728590311172">Anahtar Erişimi ayarları</translation>
 <translation id="7994702968232966508">EAP yöntemi</translation>
 <translation id="7997826902155442747">Süreç Önceliği</translation>
 <translation id="7999229196265990314">Aşağıdaki dosyalar oluşturuldu:
@@ -4789,6 +4810,8 @@
 <translation id="8308179586020895837"><ph name="HOST" /> sitesi kamerama erişmek isterse sor</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">Sertifika zaten var</translation>
+<translation id="8314381333424235892">Eksik veya yüklemesi kaldırılmış uzantı</translation>
+<translation id="8316618172731049784"><ph name="DEVICE_NAME" /> cihazına gönder</translation>
 <translation id="8317671367883557781">Ağ bağlantısı ekle</translation>
 <translation id="8319414634934645341">Uzatılmış Anahtar Kullanımı</translation>
 <translation id="8320459152843401447">Ekranınızın Tamamı</translation>
@@ -4945,6 +4968,7 @@
 <translation id="8588866096426746242">Profil istatistiklerini göster</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - VR içerik başlığa yayınlanıyor</translation>
 <translation id="8590375307970699841">Otomatik güncellemeleri ayarla</translation>
+<translation id="8591783563402255548">1 saniye</translation>
 <translation id="8592141010104017453">Bildirimleri hiç gösterme</translation>
 <translation id="8593121833493516339">Kullanım ve teşhis verilerini gönder. Teşhis, cihaz ve uygulama kullanımı verilerini otomatik olarak Google'a göndererek çocuğunuzun Android deneyiminin iyileştirilmesine yardımcı olun. Bu veriler, çocuğunuzun kimliğini tespit etmek için kullanılmaz; sistem ve uygulama kararlılığı ile diğer özellikleri iyileştirmeye yardımcı olur. Bazı birleştirilmiş veriler, Google uygulamalarına ve iş ortaklarına da (ör. Android geliştiricileri) yardımcı olur. Çocuğunuz için ek Web ve Uygulama Etkinliği açıksa bu veriler çocuğunuzun Google hesabına kaydedilebilir. <ph name="BEGIN_LINK1" />Daha Fazla Bilgi<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Video çek</translation>
@@ -4974,6 +4998,7 @@
 <translation id="8637688295594795546">Kullanılabilir sistem güncellemesi mevcut. İndirmeye hazırlanılıyor...</translation>
 <translation id="8639047128869322042">Zararlı yazılımlar denetleniyor...</translation>
 <translation id="8642171459927087831">Erişim Verisi</translation>
+<translation id="8642900771896232685">2 saniye</translation>
 <translation id="8642947597466641025">Metni Büyüt</translation>
 <translation id="8643418457919840804">Devam etmek için bir seçenek belirleyin:</translation>
 <translation id="8644655801811752511">Bu güvenlik anahtarı sıfırlanamıyor Anahtarı, takar takmaz hemen sıfırlamayı deneyin.</translation>
@@ -5175,6 +5200,7 @@
 <translation id="8910222113987937043">Yer işaretleri, geçmiş, şifreler ve diğer ayarlarınızla ilgili değişiklikler artık Google Hesabınızla senkronize edilmez. Ancak mevcut verileriniz Google Hesabınızda kalmaya devam eder ve <ph name="BEGIN_LINK" />Google Hesap Özeti<ph name="END_LINK" />'nde yönetilebilir.</translation>
 <translation id="8912362522468806198">Google Hesabı</translation>
 <translation id="8912793549644936705">Uzat</translation>
+<translation id="8912810933860534797">Otomatik taramayı etkinleştir</translation>
 <translation id="891365694296252935">Kullanım ve teşhis verilerini gönder. Bu cihaz şu anda teşhis, cihaz ve uygulama kullanımı verilerini otomatik olarak Google'a gönderiyor. Bu veriler, çocuğunuzun kimliğini tespit etmek için kullanılmaz; sistem ve uygulama kararlılığı ile diğer özellikleri iyileştirmeye yardımcı olur. Bazı birleştirilmiş veriler, Google uygulamalarına ve iş ortaklarına da (ör. Android geliştiricileri) yardımcı olur. Bu ayar, cihazın sahibi tarafından zorunlu kılınmıştır. Çocuğunuz için ek Web ve Uygulama Etkinliği açıksa bu veriler çocuğunuzun Google Hesabına kaydedilebilir. <ph name="BEGIN_LINK1" />Daha Fazla Bilgi<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Öneriler yükleniyor</translation>
 <translation id="8916476537757519021">Gizli Alt Çerçeve: <ph name="SUBFRAME_SITE" /></translation>
@@ -5290,6 +5316,7 @@
 <translation id="9094033019050270033">Şifreyi güncelle</translation>
 <translation id="9094982973264386462">Kaldır</translation>
 <translation id="9095253524804455615">Kaldır</translation>
+<translation id="9095388113577226029">Diğer diller...</translation>
 <translation id="9100610230175265781">Parola gerekli</translation>
 <translation id="9100765901046053179">Gelişmiş ayarlar</translation>
 <translation id="9101691533782776290">Uygulamayı başlat</translation>
@@ -5327,6 +5354,7 @@
 <translation id="9153934054460603056">Kimliği ve şifreyi kaydet</translation>
 <translation id="9154194610265714752">Güncellendi</translation>
 <translation id="91568222606626347">Kısayol Oluştur...</translation>
+<translation id="9157096865782046368">0,8 saniye</translation>
 <translation id="9157697743260533322">Otomatik güncellemeler tüm kullanıcılar için ayarlanamadı (yayın öncesi başlatma hatası: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">Hata! Kimlik doğrulama sırasında bir ağ iletişim sorunu oldu. Lütfen ağ bağlantınızı kontrol edin ve tekrar deneyin.</translation>
 <translation id="916607977885256133">Pencere içinde Pencere</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index ae6f739..c9d01201 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="uk">
+<translation id="1002469766576243227">Цей сервіс автентифікації розміщує <ph name="EXTENSION_NAME" /></translation>
 <translation id="1003088604756913841">Відкрити посилання в новому вікні додатка <ph name="APP" /></translation>
 <translation id="1004218526896219317">Доступ до сайту</translation>
 <translation id="1005274289863221750">Використовувати ваш мікрофон і камеру</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Очищено все</translation>
 <translation id="143027896309062157">Читати й змінювати всі ваші дані на комп’ютері та веб-сайтах, які ви відвідуєте</translation>
 <translation id="1430915738399379752">Друк</translation>
+<translation id="1431188203598586230">Останнє оновлення програмного забезпечення</translation>
 <translation id="1432581352905426595">Керування пошуковими системами</translation>
 <translation id="1433811987160647649">Запитувати дозвіл, перш ніж надавати доступ</translation>
 <translation id="1434696352799406980">Стартову сторінку, сторінку нової вкладки, пошукову систему та закріплені вкладки буде скинуто. Також буде вимкнено всі розширення та видалено тимчасові дані, як-от файли cookie. Історія закладок і збережені паролі не видалятимуться.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">Стандартний білий аватар</translation>
 <translation id="1581962803218266616">Показати в програмі Finder</translation>
 <translation id="1584990664401018068">Можливо, щоб під’єднатися до цієї мережі Wi-Fi (<ph name="NETWORK_ID" />), потрібно ввести облікові дані.</translation>
-<translation id="1585238069289523942">Установлює додатки на Chromebook</translation>
 <translation id="1585717515139318619">Інша програма на вашому комп’ютері додала тему, яка може впливати на роботу Chrome.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">Облікові записи та синхронізація</translation>
 <translation id="1782196717298160133">Пошук вашого телефона</translation>
 <translation id="1784849162047402014">На диску пристрою мало вільного місця</translation>
+<translation id="1790194216133135334">Надіслати посилання на пристрій "<ph name="DEVICE_NAME" />"</translation>
 <translation id="1792619191750875668">Розширений дисплей</translation>
 <translation id="1794791083288629568">Надіслати відгук, щоб допомогти нам вирішити цю проблему.</translation>
 <translation id="1795214765651529549">Вибрати класичну тему</translation>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">Почати</translation>
 <translation id="1875387611427697908">Можна додавати лише із сайту <ph name="CHROME_WEB_STORE" /></translation>
 <translation id="1877520246462554164">Не вдалось отримати маркер автентифікації. Щоб повторити спробу, вийдіть і знову ввійдіть в обліковий запис.</translation>
+<translation id="1877860345998737529">Призначення перемикача для дії</translation>
 <translation id="1879000426787380528">Увійдіть як</translation>
 <translation id="1880905663253319515">Видалити сертифікат "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="1886996562706621347">Дозволити сайтам запитувати можливість ставати обробниками протоколів за умовчанням (рекомендовано)</translation>
@@ -869,6 +872,7 @@
 <translation id="230927227160767054">Ця сторінка хоче встановити обробника служби.</translation>
 <translation id="2309620859903500144">Доступ цього сайту до датчиків руху чи світла заблоковано.</translation>
 <translation id="2315414688463285945">Не вдалося налаштувати файли Linux. Повторіть спробу.</translation>
+<translation id="2315587498123194634">Надіслати посилання на пристрій "<ph name="DEVICE_NAME" />"</translation>
 <translation id="2316129865977710310">Ні, дякую</translation>
 <translation id="2317842250900878657">Перенесено <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">Розмір паперу</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">Цей сайт може переглядати тексти й зображення в буфері обміну.</translation>
 <translation id="2367199180085172140">Додати файл для спільного доступу</translation>
 <translation id="2367972762794486313">Показати програми</translation>
+<translation id="2369105924912929484">Перемкнути вміст очищеної сторінки</translation>
 <translation id="2371076942591664043">Відкрити коли &amp;виконано</translation>
 <translation id="2375406435414127095">Підключіться до телефона</translation>
 <translation id="2377667304966270281">Помилка жорсткого диска</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">Налагоджувати</translation>
 <translation id="2739240477418971307">Змінювати налаштування доступності</translation>
 <translation id="2740393541869613458">переглядати веб-сайти, які відвідував контрольований користувач, і</translation>
+<translation id="2741912629735277980">Показувати інтерфейс на екрані входу</translation>
 <translation id="274290345632688601">Відновлення додатків і файлів Linux</translation>
 <translation id="2743387203779672305">Копіювати в буфер</translation>
 <translation id="2745080116229976798">Посилене підпорядкування Microsoft</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">Під’єднайтеся до мережі й повторіть спробу</translation>
 <translation id="2913331724188855103">Дозволити сайтам зберігати та розпізнавати дані файлів cookie (рекомендується)</translation>
 <translation id="2915102088417824677">Переглянути журнал активності</translation>
+<translation id="2915873080513663243">Автосканування</translation>
 <translation id="2916073183900451334">За допомогою клавіші Tab можна виділяти посилання та поля форми на веб-сторінці</translation>
 <translation id="2916745397441987255">Пошук у розширеннях</translation>
 <translation id="2921081876747860777">Створіть пароль, щоб захистити дані на пристрої.</translation>
@@ -1483,6 +1490,7 @@
 <translation id="327147043223061465">Переглянути всі файли cookie й дані із сайтів</translation>
 <translation id="3271648667212143903">Сайт <ph name="ORIGIN" /> хоче підключитися</translation>
 <translation id="3274763671541996799">Ви перейшли в повноекранний режим.</translation>
+<translation id="3275778809241512831">Наразі ваш внутрішній ключ безпеки ненадійний. Видаліть його з усіх сервісів, у яких він використовувався. Щоб вирішити проблему, скиньте ключ безпеки.</translation>
 <translation id="3275778913554317645">Відкрити вікно</translation>
 <translation id="3278001907972365362">Імовірна проблема з обліковим записом Google</translation>
 <translation id="3279230909244266691">Це може тривати кілька хвилин. Запускається віртуальна машина.</translation>
@@ -1575,6 +1583,7 @@
 <translation id="3412265149091626468">Перейти до виділення</translation>
 <translation id="3413122095806433232">Видавці ЦС: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Розмір:</translation>
+<translation id="3420501302812554910">Потрібно скинути внутрішній ключ безпеки</translation>
 <translation id="3421387094817716717">Відкритий ключ еліптичних кривих</translation>
 <translation id="3423463006624419153">На телефонах <ph name="PHONE_NAME_1" /> і <ph name="PHONE_NAME_2" />:</translation>
 <translation id="3423858849633684918">Перезапустіть <ph name="PRODUCT_NAME" /></translation>
@@ -1603,6 +1612,7 @@
 <translation id="3450157232394774192">Відсоток заряду акумулятора, який використовує неактивний стан</translation>
 <translation id="3453612417627951340">Потрібна авторизація</translation>
 <translation id="3454157711543303649">Активацію завершено</translation>
+<translation id="3454213325559396544">Це останнє автоматичне оновлення програмного забезпечення й системи безпеки на пристрої <ph name="DEVICE_TYPE" />. Щоб отримувати оновлення надалі, придбайте новішу модель.</translation>
 <translation id="345693547134384690">Відкрити &amp;зображення в новій вкладці</translation>
 <translation id="3457500881955698515">Ваша компанія чи організація вимагає, щоб ви негайно оновили пристрій</translation>
 <translation id="3459509316159669723">Друк</translation>
@@ -1760,6 +1770,7 @@
 <translation id="3672681487849735243">Виявлено заводську помилку</translation>
 <translation id="367645871420407123">залиште поле порожнім, якщо потрібно налаштувати кореневий пароль для значення тестового зображення за умовчанням</translation>
 <translation id="3677657024345889897">Найтихіше</translation>
+<translation id="3677911431265050325">Мобільний сайт</translation>
 <translation id="3678156199662914018">Розширення: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Дякуємо за відгук. Звіт буде надіслано пізніше, оскільки зараз ви офлайн.</translation>
 <translation id="3682824389861648626">Мінімальна кількість рухів</translation>
@@ -2212,6 +2223,7 @@
 <translation id="4350019051035968019">Цей пристрій не можна зареєструвати в домені, до якого належить ваш обліковий запис, оскільки пристрій зареєстрований в іншому домені.</translation>
 <translation id="4354344420232759511">Відвідані вами сайти з’являтимуться тут</translation>
 <translation id="435527878592612277">Виберіть фотографію</translation>
+<translation id="4358313196493694334">Стабілізувати місце кліку</translation>
 <translation id="4359408040881008151">Установлено, оскільки є залежні розширення.</translation>
 <translation id="4359717112757026264">Міський пейзаж</translation>
 <translation id="4361142739114356624">Секретний ключ цього сертифіката клієнта відсутній або недійсний</translation>
@@ -2336,6 +2348,7 @@
 <translation id="4558426062282641716">Потрібен дозвіл на автозапуск</translation>
 <translation id="4558491878126948419">Отримуйте поради для <ph name="DEVICE_TYPE" /> і оновлення щодо продуктів Google, а також надсилайте відгуки. Ви можете будь-коли скасувати підписку.</translation>
 <translation id="4559617833001311418">Цей сайт має доступ до датчиків руху чи світла.</translation>
+<translation id="4561098487691395071">Або виберіть файл PPD принтера</translation>
 <translation id="4562155214028662640">Додати відбиток пальця</translation>
 <translation id="4563880231729913339">Палець 3</translation>
 <translation id="4565377596337484307">Сховати пароль</translation>
@@ -2580,6 +2593,7 @@
 <translation id="494286511941020793">Довідка про конфігурацію проксі-сервера</translation>
 <translation id="4943368462779413526">Футбольний м’яч</translation>
 <translation id="4943691134276646401"><ph name="CHROME_EXTENSION_NAME" /> хоче під’єднатися до послідовного порту</translation>
+<translation id="4944310289250773232">Цей сервіс автентифікації розміщує <ph name="SAML_DOMAIN" /></translation>
 <translation id="495170559598752135">Дії</translation>
 <translation id="4953689047182316270">реагувати на події спеціальних можливостей</translation>
 <translation id="4953808748584563296">Стандартний оранжевий аватар</translation>
@@ -2672,6 +2686,7 @@
 <translation id="5094721898978802975">Підтримувати зв’язок із взаємодійними рідними програмами</translation>
 <translation id="5097002363526479830">Не вдалося під’єднатися до мережі "<ph name="NAME" />": <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Відкрити всі закладки</translation>
+<translation id="5101839224773798795">Автоматично натискати, коли курсор зупиняється</translation>
 <translation id="5108967062857032718">Налаштування – Видалення додатків Android</translation>
 <translation id="5109044022078737958">Краля</translation>
 <translation id="5111646998522066203">Закрити анонімні вікна</translation>
@@ -3155,6 +3170,7 @@
 <translation id="5852112051279473187">На жаль, під час реєстрації цього пристрою сталася значна помилка. Повторіть спробу або зв’яжіться з представником служби підтримки.</translation>
 <translation id="5852137567692933493">Перезапустити й виконати Powerwash</translation>
 <translation id="5854912040170951372">Піца</translation>
+<translation id="5855643921295613558">0,6 секунди</translation>
 <translation id="5855773610748894548">Помилка модуля безпеки.</translation>
 <translation id="5856721540245522153">Увімкнути функції налагодження</translation>
 <translation id="5857090052475505287">Нова папка</translation>
@@ -3444,6 +3460,7 @@
 <translation id="6279183038361895380">Натисніть |<ph name="ACCELERATOR" />|, щоб побачити курсор</translation>
 <translation id="6280215091796946657">Увійти в інший обліковий запис</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 секунди</translation>
 <translation id="6285120108426285413">Файл <ph name="FILE_NAME" /> рідко завантажують. Він може бути небезпечним.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Новий принтер у вашій мережі}one{Нові принтери у вашій мережі}few{Нові принтери у вашій мережі}many{Нові принтери у вашій мережі}other{Нові принтери у вашій мережі}}</translation>
 <translation id="6286708577777130801">Інформація про збережені паролі</translation>
@@ -3650,6 +3667,7 @@
 <translation id="6612358246767739896">Захищений вміст</translation>
 <translation id="6613452264606394692">Створіть закладку цієї сторінки, щоб швидко повернутися на неї</translation>
 <translation id="6615455863669487791">Показати</translation>
+<translation id="6617100836880592260">Швидкість сканування: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Усе одно завантажити</translation>
 <translation id="6619058681307408113">Диспетчер лінійного принтера (LPD)</translation>
 <translation id="661907246513853610">Сайт може відстежувати місцезнаходження</translation>
@@ -4464,6 +4482,7 @@
 <translation id="7831491651892296503">Помилка налаштування мережі</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Час завершення</translation>
+<translation id="783214144752121388">Заборонити сайтам запускати Flash (рекомендовано)</translation>
 <translation id="7833720883933317473">Тут відображатимуться збережені спеціальні слова</translation>
 <translation id="7835178595033117206">Закладку видалено</translation>
 <translation id="7837776265184002579">Домашню сторінку змінено на <ph name="URL" />.</translation>
@@ -4519,6 +4538,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Ваш пароль змінено на сервері. Вийдіть і знову ввійдіть в обліковий запис.</translation>
 <translation id="7915471803647590281">Перед тим як надіслати відгук, повідомте нас, що відбувається.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> с</translation>
 <translation id="792514962475806987">Рівень масштабування закріпленої лупи:</translation>
 <translation id="7925247922861151263">Помилка перевірки AAA</translation>
 <translation id="7925285046818567682"><ph name="HOST_NAME" />...</translation>
@@ -4576,6 +4596,7 @@
 <translation id="7987814697832569482">Завжди підключатися через цю мережу VPN</translation>
 <translation id="798835209536175951">Надсилайте й отримуйте текстові повідомлення за допомогою Chromebook. <ph name="LINK_BEGIN" />Докладніше<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Увімкнути функції доступності</translation>
+<translation id="7991296728590311172">Налаштування кнопкового доступу</translation>
 <translation id="7994702968232966508">Метод EAP</translation>
 <translation id="7997826902155442747">Пріоритет обробки</translation>
 <translation id="7999229196265990314">Створено такі файли:
@@ -4789,6 +4810,8 @@
 <translation id="8308179586020895837">Запитувати, якщо хост <ph name="HOST" /> хоче отримати доступ до вашої камери</translation>
 <translation id="830868413617744215">Бета-версія</translation>
 <translation id="8309458809024885768">Сертифікат уже існує</translation>
+<translation id="8314381333424235892">Розширення відсутнє або його видалено</translation>
+<translation id="8316618172731049784">Надіслати на пристрій "<ph name="DEVICE_NAME" />"</translation>
 <translation id="8317671367883557781">Додати з’єднання з мережею</translation>
 <translation id="8319414634934645341">Використання розширеного ключа</translation>
 <translation id="8320459152843401447">екран</translation>
@@ -4945,6 +4968,7 @@
 <translation id="8588866096426746242">Показати статистику профілю</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> – VR транслює на гарнітуру</translation>
 <translation id="8590375307970699841">Налаштувати автоматичні оновлення</translation>
+<translation id="8591783563402255548">1 секунда</translation>
 <translation id="8592141010104017453">Узагалі не показувати сповіщення</translation>
 <translation id="8593121833493516339">Надсилати дані про використання й діагностику. Допоможіть покращити роботу Android для вашої дитини, автоматично надсилаючи в Google дані про діагностику та використання пристрою і додатків. Ця інформація не використовуватиметься для встановлення особи вашої дитини, а допоможе покращити стабільність системи, додатків тощо. Деякі зведені дані також корисні для додатків і партнерів Google, як-от розробників Android. Якщо ввімкнено додаткову Історію додатків і веб-пошуку, ці дані зберігаються в обліковому записі Google дитини. <ph name="BEGIN_LINK1" />Докладніше<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Зняти відео</translation>
@@ -4974,6 +4998,7 @@
 <translation id="8637688295594795546">Доступне оновлення системи. Підготовка до завантаження…</translation>
 <translation id="8639047128869322042">Пошук шкідливих програм…</translation>
 <translation id="8642171459927087831">Маркер доступу</translation>
+<translation id="8642900771896232685">2 секунди</translation>
 <translation id="8642947597466641025">Збільшити розмір тексту</translation>
 <translation id="8643418457919840804">Щоб продовжити, виберіть опцію:</translation>
 <translation id="8644655801811752511">Не вдається скинути цей ключ безпеки. Спробуйте зробити це, щойно вставите ключ.</translation>
@@ -5175,6 +5200,7 @@
 <translation id="8910222113987937043">Зміни в закладках, історії, паролях та інших налаштуваннях більше не синхронізуватимуться з вашим обліковим записом Google. Дані, які зберігаються в обліковому записі Google, не буде видалено. Ними можна керувати на <ph name="BEGIN_LINK" />Інформаційній панелі Google<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">Обліковий запис Google</translation>
 <translation id="8912793549644936705">Розтягнути</translation>
+<translation id="8912810933860534797">Увімкнути автоматичне сканування</translation>
 <translation id="891365694296252935">Надсилати дані про використання й діагностику. Цей пристрій наразі автоматично надсилає в Google дані про діагностику та використання пристрою і додатків. Ця інформація не використовуватиметься для встановлення особи вашої дитини, а допоможе покращити стабільність системи, додатків тощо. Деякі зведені дані також корисні для додатків і партнерів Google, як-от розробників Android. Це налаштування застосовує власник. Якщо ввімкнено додаткову Історію додатків і веб-пошуку, ці дані зберігаються в обліковому записі Google дитини. <ph name="BEGIN_LINK1" />Докладніше<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Завантаження пропозиції</translation>
 <translation id="8916476537757519021">Додатковий анонімний фрейм: <ph name="SUBFRAME_SITE" /></translation>
@@ -5290,6 +5316,7 @@
 <translation id="9094033019050270033">Оновити пароль</translation>
 <translation id="9094982973264386462">Видалити</translation>
 <translation id="9095253524804455615">Видалити</translation>
+<translation id="9095388113577226029">Інші мови…</translation>
 <translation id="9100610230175265781">Потрібно вказати парольну фразу</translation>
 <translation id="9100765901046053179">Розширені налаштування</translation>
 <translation id="9101691533782776290">Запустити програму</translation>
@@ -5327,6 +5354,7 @@
 <translation id="9153934054460603056">Зберегти ідентифікаційні дані та пароль</translation>
 <translation id="9154194610265714752">Оновлено</translation>
 <translation id="91568222606626347">Створити ярлик…</translation>
+<translation id="9157096865782046368">0,8 секунди</translation>
 <translation id="9157697743260533322">Не вдалося налаштувати автоматичні оновлення для всіх користувачів (помилка запуску: <ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">На жаль, під час автентифікації виникла проблема з обміном даних через мережу. Перевірте з’єднання з мережею та повторіть спробу.</translation>
 <translation id="916607977885256133">Картинка в картинці</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 9260ecf..77e1513 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="vi">
+<translation id="1002469766576243227">Dịch vụ xác thực này do <ph name="EXTENSION_NAME" /> lưu trữ</translation>
 <translation id="1003088604756913841">Mở liên kết trong cửa sổ mới của <ph name="APP" /></translation>
 <translation id="1004218526896219317">Quyền truy cập vào trang web</translation>
 <translation id="1005274289863221750">Sử dụng micrô và máy ảnh của bạn</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">Đã xóa tất cả</translation>
 <translation id="143027896309062157">Đọc và thay đổi tất cả dữ liệu trên máy tính của bạn và các trang web bạn truy cập</translation>
 <translation id="1430915738399379752">In</translation>
+<translation id="1431188203598586230">Bản cập nhật phần mềm cuối cùng</translation>
 <translation id="1432581352905426595">Quản lý công cụ tìm kiếm</translation>
 <translation id="1433811987160647649">Hỏi trước khi truy cập</translation>
 <translation id="1434696352799406980">Thao tác này sẽ đặt lại trang khởi động, trang tab mới, công cụ tìm kiếm và tab được ghim. Thao tác này cũng sẽ vô hiệu hóa tất cả các tiện ích và xóa dữ liệu tạm thời như cookie. Dấu trang, lịch sử và mật khẩu đã lưu của bạn sẽ không bị xóa.</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">Hình đại diện màu trắng mặc định</translation>
 <translation id="1581962803218266616">Hiển thị trong Trình tìm kiếm</translation>
 <translation id="1584990664401018068">Mạng Wi-Fi bạn đang sử dụng (<ph name="NETWORK_ID" />) có thể yêu cầu xác thực.</translation>
-<translation id="1585238069289523942">Cài đặt các ứng dụng trên Chromebook của bạn</translation>
 <translation id="1585717515139318619">Một chương trình khác trên máy tính của bạn đã thêm một chủ đề có thể thay đổi cách Chrome hoạt động.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">Tài khoản và đồng bộ hóa</translation>
 <translation id="1782196717298160133">Tìm điện thoại của bạn</translation>
 <translation id="1784849162047402014">Thiết bị sắp hết dung lượng đĩa</translation>
+<translation id="1790194216133135334">Gửi đường dẫn liên kết đến <ph name="DEVICE_NAME" /></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>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">Bắt đầu</translation>
 <translation id="1875387611427697908">Chỉ có thể thêm ứng dụng/tiện ích này từ <ph name="CHROME_WEB_STORE" /></translation>
 <translation id="1877520246462554164">Không nhận được mã thông báo xác thực. Vui lòng đăng xuất rồi đăng nhập lại để thử lại.</translation>
+<translation id="1877860345998737529">Gán công tắc cho hành động</translation>
 <translation id="1879000426787380528">Đăng nhập bằng</translation>
 <translation id="1880905663253319515">Xóa chứng chỉ "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="1886996562706621347">Cho phép các trang web yêu cầu trở thành trình xử lý mặc định cho giao thức (nên chọn)</translation>
@@ -869,6 +872,7 @@
 <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="2315414688463285945">Lỗi khi định cấu hình tệp Linux. Vui lòng thử lại.</translation>
+<translation id="2315587498123194634">Gửi đường dẫn liên kết đến <ph name="DEVICE_NAME" /></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>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">Trang web này có thể xem văn bản và hình ảnh đã sao chép sang khay nhớ tạm.</translation>
 <translation id="2367199180085172140">Thêm Chia sẻ tệp</translation>
 <translation id="2367972762794486313">Hiển thị ứng dụng</translation>
+<translation id="2369105924912929484">Bật/tắt nội dung trang đã lọc</translation>
 <translation id="2371076942591664043">Mở khi &amp;hoàn tất</translation>
 <translation id="2375406435414127095">Kết nối với điện thoại của bạn</translation>
 <translation id="2377667304966270281">Lỗi phần cứng</translation>
@@ -1159,6 +1164,7 @@
 <translation id="2739191690716947896">Gỡ lỗi</translation>
 <translation id="2739240477418971307">Thay đổi cài đặt trợ năng của bạn</translation>
 <translation id="2740393541869613458">xem lại các trang web mà người dùng được giám sát đã truy cập và</translation>
+<translation id="2741912629735277980">Hiển thị giao diện người dùng trên màn hình đăng nhập</translation>
 <translation id="274290345632688601">Đang khôi phục các ứng dụng và tệp Linux</translation>
 <translation id="2743387203779672305">Sao chép vào khay nhớ tạm</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
@@ -1275,6 +1281,7 @@
 <translation id="2910318910161511225">Hãy kết nối với mạng rồi thử lại</translation>
 <translation id="2913331724188855103">Cho phép trang web lưu và đọc dữ liệu cookie (được đề xuất)</translation>
 <translation id="2915102088417824677">Xem nhật ký hoạt động</translation>
+<translation id="2915873080513663243">Tự động quét</translation>
 <translation id="2916073183900451334">Bấm Tab trên liên kết đánh dấu của trang web, cũng như các trường biểu mẫu</translation>
 <translation id="2916745397441987255">Tìm kiếm trong tiện ích</translation>
 <translation id="2921081876747860777">Vui lòng tạo mật khẩu để bảo vệ dữ liệu cục bộ của bạn.</translation>
@@ -1483,6 +1490,7 @@
 <translation id="327147043223061465">Xem tất cả các cookie và dữ liệu trang web</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> muốn kết nối</translation>
 <translation id="3274763671541996799">Bạn đang ở chế độ toàn màn hình.</translation>
+<translation id="3275778809241512831">Khóa bảo mật nội bộ của bạn hiện không an toàn. Vui lòng xóa khóa khỏi mọi dịch vụ mà bạn đã dùng khóa đó. Để khắc phục sự cố này, vui lòng đặt lại khóa bảo mật.</translation>
 <translation id="3275778913554317645">Mở dưới dạng cửa sổ</translation>
 <translation id="3278001907972365362">Bạn cần chú ý đến Tài khoản Google của mình</translation>
 <translation id="3279230909244266691">Quá trình này có thể mất vài phút. Đang khởi động máy ảo.</translation>
@@ -1575,6 +1583,7 @@
 <translation id="3412265149091626468">Chuyển tới Phần lựa chọn</translation>
 <translation id="3413122095806433232">Nhà cung cấp CA: <ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">Kích thước:</translation>
+<translation id="3420501302812554910">Cần phải đặt lại khóa bảo mật nội bộ</translation>
 <translation id="3421387094817716717">Khóa công khai đường cong elip</translation>
 <translation id="3423463006624419153">Trên '<ph name="PHONE_NAME_1" />' và '<ph name="PHONE_NAME_2" />' của bạn:</translation>
 <translation id="3423858849633684918">Vui lòng chạy lại <ph name="PRODUCT_NAME" /></translation>
@@ -1603,6 +1612,7 @@
 <translation id="3450157232394774192">Phần trăm sử dụng ở trạng thái không hoạt động</translation>
 <translation id="3453612417627951340">Cần cấp phép</translation>
 <translation id="3454157711543303649">Đã kích hoạt xong</translation>
+<translation id="3454213325559396544">Đây là bản tự động cập nhật bảo mật và phần mềm mới nhất cho <ph name="DEVICE_TYPE" /> này. Để nhận các bản cập nhật trong tương lai, hãy nâng cấp lên mẫu thiết bị mới hơn.</translation>
 <translation id="345693547134384690">Mở &amp;hình ảnh trong tab mới</translation>
 <translation id="3457500881955698515">Công ty hoặc tổ chức của bạn yêu cầu bạn cập nhật thiết bị này ngay bây giờ</translation>
 <translation id="3459509316159669723">In</translation>
@@ -1760,6 +1770,7 @@
 <translation id="3672681487849735243">Đã phát hiện lỗi khi xuất xưởng</translation>
 <translation id="367645871420407123">bỏ trống nếu bạn muốn đặt mật khẩu gốc về giá trị hình ảnh kiểm tra mặc định</translation>
 <translation id="3677657024345889897">Nhỏ nhất</translation>
+<translation id="3677911431265050325">Yêu cầu trang web dành cho thiết bị di động</translation>
 <translation id="3678156199662914018">Tiện ích: <ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">Cảm ơn bạn đã phản hồi. Bạn hiện đang ngoại tuyến và báo cáo của bạn sẽ được gửi sau.</translation>
 <translation id="3682824389861648626">Ngưỡng chuyển động</translation>
@@ -2212,6 +2223,7 @@
 <translation id="4350019051035968019">Không thể đăng ký thiết bị này vào miền có tài khoản của bạn vì thiết bị được miền khác đánh dấu để quản lý.</translation>
 <translation id="4354344420232759511">Các trang web bạn truy cập sẽ xuất hiện ở đây</translation>
 <translation id="435527878592612277">Chọn ảnh của bạn</translation>
+<translation id="4358313196493694334">Ổn định vị trí nhấp</translation>
 <translation id="4359408040881008151">Đã được cài đặt vì (các) tiện ích phụ thuộc.</translation>
 <translation id="4359717112757026264">Cảnh quan thành phố</translation>
 <translation id="4361142739114356624">Khóa cá nhân cho chứng chỉ ứng dụng này còn thiếu hoặc không hợp lệ</translation>
@@ -2336,6 +2348,7 @@
 <translation id="4558426062282641716">Đã yêu cầu quyền tự động chạy</translation>
 <translation id="4558491878126948419">Nhận các mẹo dành cho <ph name="DEVICE_TYPE" />, thông tin cập nhật về các sản phẩm của Google và chia sẻ phản hồi. Bạn có thể hủy đăng ký bất kỳ lúc nào.</translation>
 <translation id="4559617833001311418">Trang web này đang sử dụng cảm biến chuyển động hoặc ánh sáng của thiết bị.</translation>
+<translation id="4561098487691395071">Hoặc chỉ định tệp PPD từ máy in của bạn</translation>
 <translation id="4562155214028662640">Thêm vân tay</translation>
 <translation id="4563880231729913339">Ngón tay số 3</translation>
 <translation id="4565377596337484307">Ẩn mật khẩu</translation>
@@ -2580,6 +2593,7 @@
 <translation id="494286511941020793">Trợ giúp Cấu hình Proxy</translation>
 <translation id="4943368462779413526">Bóng đá</translation>
 <translation id="4943691134276646401">"<ph name="CHROME_EXTENSION_NAME" />" muốn kết nối với một cổng nối tiếp</translation>
+<translation id="4944310289250773232">Dịch vụ xác thực này do <ph name="SAML_DOMAIN" /> lưu trữ</translation>
 <translation id="495170559598752135">Tác vụ</translation>
 <translation id="4953689047182316270">Phản hồi các sự kiện trợ năng</translation>
 <translation id="4953808748584563296">Hình đại diện màu cam mặc định</translation>
@@ -2672,6 +2686,7 @@
 <translation id="5094721898978802975">Kết nối với ứng dụng gốc hợp tác</translation>
 <translation id="5097002363526479830">Không thể kết nối với mạng '<ph name="NAME" />': <ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">Mở tất cả dấu trang</translation>
+<translation id="5101839224773798795">Tự động nhấp chuột khi con trỏ dừng lại</translation>
 <translation id="5108967062857032718">Cài đặt - Xóa ứng dụng Android</translation>
 <translation id="5109044022078737958">Nữ cầu thủ Mia</translation>
 <translation id="5111646998522066203">Thoát khỏi chế độ ẩn danh</translation>
@@ -3155,6 +3170,7 @@
 <translation id="5852112051279473187">Rất tiếc! Đã xảy ra sự cố khi đăng ký thiết bị này. Vui lòng thử lại hoặc liên hệ với đại diện hỗ trợ của bạn.</translation>
 <translation id="5852137567692933493">Khởi động lại và Powerwash</translation>
 <translation id="5854912040170951372">Lát pizza</translation>
+<translation id="5855643921295613558">0,6 giây</translation>
 <translation id="5855773610748894548">Rất tiếc, mô-đun an toàn bị lỗi.</translation>
 <translation id="5856721540245522153">Bật tính năng gỡ lỗi</translation>
 <translation id="5857090052475505287">Thư mục Mới</translation>
@@ -3444,6 +3460,7 @@
 <translation id="6279183038361895380">Nhấn |<ph name="ACCELERATOR" />| để hiển thị con trỏ của bạn</translation>
 <translation id="6280215091796946657">Đăng nhập bằng tài khoản khác</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 giây</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> thường không được tải xuống và có thể nguy hiểm.</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{Máy in mới trên mạng của bạn}other{Máy in mới trên mạng của bạn}}</translation>
 <translation id="6286708577777130801">Chi tiết mật khẩu đã lưu</translation>
@@ -3650,6 +3667,7 @@
 <translation id="6612358246767739896">Nội dung được bảo vệ</translation>
 <translation id="6613452264606394692">Quay lại đây nhanh chóng bằng cách đánh dấu trang này</translation>
 <translation id="6615455863669487791">Hiển thị cho tôi</translation>
+<translation id="6617100836880592260">Tốc độ quét: <ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">Vẫn tiếp tục</translation>
 <translation id="6619058681307408113">Line Printer Daemon (LPD)</translation>
 <translation id="661907246513853610">Trang web có thể theo dõi vị trí của bạn</translation>
@@ -4464,6 +4482,7 @@
 <translation id="7831491651892296503">Lỗi khi định cấu hình mạng</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">Thời gian kết thúc</translation>
+<translation id="783214144752121388">Chặn không cho các trang web chạy Flash (khuyên dùng)</translation>
 <translation id="7833720883933317473">Các từ tùy chỉnh đã lưu sẽ xuất hiện ở đây</translation>
 <translation id="7835178595033117206">Đã xóa dấu trang</translation>
 <translation id="7837776265184002579">Trang chủ của bạn đã được thay đổi thành <ph name="URL" />.</translation>
@@ -4519,6 +4538,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">Đã thay đổi mật khẩu của bạn trên máy chủ. Vui lòng đăng xuất rồi đăng nhập lại.</translation>
 <translation id="7915471803647590281">Vui lòng cho chúng tôi biết điều đang xảy ra trước khi gửi phản hồi.</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> giây</translation>
 <translation id="792514962475806987">Mức thu phóng ở vị trí cố định:</translation>
 <translation id="7925247922861151263">Không thể kiểm tra AAA</translation>
 <translation id="7925285046818567682">Đang chờ <ph name="HOST_NAME" />...</translation>
@@ -4576,6 +4596,7 @@
 <translation id="7987814697832569482">Luôn kết nối qua VPN này</translation>
 <translation id="798835209536175951">Gửi và nhận tin nhắn văn bản từ Chromebook. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">Bật các tính năng hỗ trợ tiếp cận</translation>
+<translation id="7991296728590311172">Tùy chọn cài đặt Tiếp cận bằng công tắc</translation>
 <translation id="7994702968232966508">Phương pháp EAP</translation>
 <translation id="7997826902155442747">Mức độ ưu tiên quá trình</translation>
 <translation id="7999229196265990314">Đã tạo các tệp sau:
@@ -4789,6 +4810,8 @@
 <translation id="8308179586020895837">Hỏi nếu <ph name="HOST" /> muốn truy cập máy ảnh của bạn</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">Chứng chỉ đã tồn tại</translation>
+<translation id="8314381333424235892">Thiếu hoặc chưa cài đặt tiện ích</translation>
+<translation id="8316618172731049784">Gửi đến <ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">Thêm kết nối mạng</translation>
 <translation id="8319414634934645341">Sử dụng Khoá Mở rộng</translation>
 <translation id="8320459152843401447">Toàn bộ màn hình của bạn</translation>
@@ -4945,6 +4968,7 @@
 <translation id="8588866096426746242">Hiển thị số liệu thống kê hồ sơ</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - Đang trình bày nội dung thực tế ảo đến kính thực tế ảo</translation>
 <translation id="8590375307970699841">Thiết lập cập nhật tự động</translation>
+<translation id="8591783563402255548">1 giây</translation>
 <translation id="8592141010104017453">Không hiển thị thông báo nào</translation>
 <translation id="8593121833493516339">Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng. Giúp cải thiện trải nghiệm Android của con bạn bằng cách tự động gửi dữ liệu chẩn đoán cũng như dữ liệu về mức sử dụng ứng dụng và thiết bị cho Google. Những thông tin này sẽ không dùng để nhận dạng con bạn mà giúp tăng độ ổn định của hệ thống và ứng dụng cũng như cải thiện các mặt khác. Một số dữ liệu tổng hợp cũng sẽ hữu ích cho các ứng dụng và đối tác của Google, chẳng hạn như những nhà phát triển Android. Nếu bạn bật mục cài đặt bổ sung Hoạt động web và ứng dụng cho con mình thì dữ liệu này có thể được lưu vào Tài khoản Google của trẻ. <ph name="BEGIN_LINK1" />Tìm hiểu thêm<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">Quay video</translation>
@@ -4974,6 +4998,7 @@
 <translation id="8637688295594795546">Cập nhật hệ thống có sẵn. Đang chuẩn bị tải xuống…</translation>
 <translation id="8639047128869322042">Đang kiểm tra để tìm phần mềm độc hại...</translation>
 <translation id="8642171459927087831">Mã thông báo truy cập</translation>
+<translation id="8642900771896232685">2 giây</translation>
 <translation id="8642947597466641025">Phóng to Văn bản</translation>
 <translation id="8643418457919840804">Để tiếp tục, hãy chọn một tùy chọn:</translation>
 <translation id="8644655801811752511">Không thể đặt lại khóa bảo mật này. Thử đặt lại khóa này ngay sau khi cắm.</translation>
@@ -5175,6 +5200,7 @@
 <translation id="8910222113987937043">Các thay đổi đối với dấu trang, lịch sử, mật khẩu và các cài đặt khác sẽ không được đồng bộ hóa với Tài khoản Google của bạn nữa. Tuy nhiên, dữ liệu hiện có của bạn sẽ vẫn được lưu trữ trong Tài khoản Google và có thể được quản lý trên <ph name="BEGIN_LINK" />Trang tổng quan Google<ph name="END_LINK" />.</translation>
 <translation id="8912362522468806198">Tài khoản Google</translation>
 <translation id="8912793549644936705">Kéo dãn</translation>
+<translation id="8912810933860534797">Bật tính năng tự động quét</translation>
 <translation id="891365694296252935">Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng. Thiết bị này hiện tự động gửi dữ liệu chẩn đoán, dữ liệu về mức sử dụng ứng dụng và thiết bị cho Google. Những thông tin này sẽ không dùng để nhận dạng con bạn mà giúp tăng độ ổn định của hệ thống và ứng dụng cũng như cải thiện các mặt khác. Một số dữ liệu tổng hợp cũng sẽ hữu ích cho các ứng dụng và đối tác của Google, chẳng hạn như những nhà phát triển Android. Mục cài đặt này do chủ sở hữu thực thi. Nếu bạn bật mục cài đặt bổ sung Hoạt động web và ứng dụng cho con mình thì dữ liệu này có thể được lưu vào Tài khoản Google của trẻ. <ph name="BEGIN_LINK1" />Tìm hiểu thêm<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">Đang tải đề xuất</translation>
 <translation id="8916476537757519021">Khung ẩn danh phụ: <ph name="SUBFRAME_SITE" /></translation>
@@ -5290,6 +5316,7 @@
 <translation id="9094033019050270033">Cập nhật mật khẩu</translation>
 <translation id="9094982973264386462">Xóa</translation>
 <translation id="9095253524804455615">Xóa</translation>
+<translation id="9095388113577226029">Ngôn ngữ khác...</translation>
 <translation id="9100610230175265781">Yêu cầu cụm mật khẩu</translation>
 <translation id="9100765901046053179">Cài đặt nâng cao</translation>
 <translation id="9101691533782776290">Chạy ứng dụng</translation>
@@ -5327,6 +5354,7 @@
 <translation id="9153934054460603056">Lưu nhận dạng và mật khẩu</translation>
 <translation id="9154194610265714752">Đã cập nhật</translation>
 <translation id="91568222606626347">Tạo phím tắt...</translation>
+<translation id="9157096865782046368">0,8 giây</translation>
 <translation id="9157697743260533322">Không thiết lập được cập nhật tự động cho tất cả người dùng (lỗi khởi chạy kiểm tra <ph name="ERROR_NUMBER" /></translation>
 <translation id="9158715103698450907">Rất tiếc!  Đã xảy ra sự cố giao tiếp mạng trong khi xác thực.  Vui lòng kiểm tra kết nối mạng của bạn và thử lại.</translation>
 <translation id="916607977885256133">Ảnh trong ảnh</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 6bc200e4..cfd1f96 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-CN">
+<translation id="1002469766576243227">此项身份验证服务由 <ph name="EXTENSION_NAME" /> 托管</translation>
 <translation id="1003088604756913841">在<ph name="APP" />的新窗口中打开链接</translation>
 <translation id="1004218526896219317">有权访问的网站</translation>
 <translation id="1005274289863221750">使用您的麦克风和摄像头</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">已全部清除</translation>
 <translation id="143027896309062157">读取和更改您在自己的计算机上以及访问的网站上的所有数据</translation>
 <translation id="1430915738399379752">打印</translation>
+<translation id="1431188203598586230">最后一次软件更新</translation>
 <translation id="1432581352905426595">管理搜索引擎</translation>
 <translation id="1433811987160647649">使用前先询问</translation>
 <translation id="1434696352799406980">这将重置您的启动页、“打开新的标签页”页面、搜索引擎和固定标签页,同时还会停用所有扩展程序并清除临时数据(例如 Cookie)。但是,系统不会清除您的书签、历史记录和保存的密码。</translation>
@@ -381,7 +383,6 @@
 <translation id="1576594961618857597">默认的白色头像</translation>
 <translation id="1581962803218266616">在 Finder 中显示</translation>
 <translation id="1584990664401018068">您要使用的 Wi-Fi 网络(“<ph name="NETWORK_ID" />”)可能需要您进行身份验证。</translation>
-<translation id="1585238069289523942">在 Chromebook 上安装应用</translation>
 <translation id="1585717515139318619">您计算机上的其他程序擅自安装了一个可能会更改 Chrome 工作方式的主题背景。
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -525,6 +526,7 @@
 <translation id="1781771911845953849">帐号和同步</translation>
 <translation id="1782196717298160133">正在查找您的手机</translation>
 <translation id="1784849162047402014">设备磁盘空间不足</translation>
+<translation id="1790194216133135334">将链接发送到<ph name="DEVICE_NAME" /></translation>
 <translation id="1792619191750875668">扩展显示屏</translation>
 <translation id="1794791083288629568">发送反馈,以协助我们解决此问题。</translation>
 <translation id="1795214765651529549">使用经典主题背景</translation>
@@ -587,6 +589,7 @@
 <translation id="1875312262568496299">开始</translation>
 <translation id="1875387611427697908">只能通过<ph name="CHROME_WEB_STORE" />添加此项内容</translation>
 <translation id="1877520246462554164">未能获取身份验证令牌。请退出并重新登录,然后重试。</translation>
+<translation id="1877860345998737529">开关操作分配</translation>
 <translation id="1879000426787380528">登录身份</translation>
 <translation id="1880905663253319515">要删除证书“<ph name="CERTIFICATE_NAME" />”吗?</translation>
 <translation id="1886996562706621347">允许网站要求成为协议的默认处理程序(推荐)</translation>
@@ -866,6 +869,7 @@
 <translation id="230927227160767054">此页面想要安装一个服务处理程序。</translation>
 <translation id="2309620859903500144">此网站已被禁止使用您的动态传感器或光传感器。</translation>
 <translation id="2315414688463285945">配置 Linux 文件时出错。请重试。</translation>
+<translation id="2315587498123194634">将链接发送到<ph name="DEVICE_NAME" /></translation>
 <translation id="2316129865977710310">不用了,谢谢</translation>
 <translation id="2317842250900878657">已迁移 <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">纸张尺寸</translation>
@@ -906,6 +910,7 @@
 <translation id="2365507699358342471">此页面可以查看复制到剪贴板的文字和图片。</translation>
 <translation id="2367199180085172140">添加文件共享</translation>
 <translation id="2367972762794486313">显示应用</translation>
+<translation id="2369105924912929484">切换已提取的网页内容</translation>
 <translation id="2371076942591664043">完成时打开(&amp;D)</translation>
 <translation id="2375406435414127095">连接到您的手机</translation>
 <translation id="2377667304966270281">硬故障数</translation>
@@ -1154,6 +1159,7 @@
 <translation id="2739191690716947896">调试</translation>
 <translation id="2739240477418971307">更改您的无障碍设置</translation>
 <translation id="2740393541869613458">审核此受监管用户访问过的网站,以及</translation>
+<translation id="2741912629735277980">登录屏幕上的显示界面</translation>
 <translation id="274290345632688601">正在恢复 Linux 应用和文件</translation>
 <translation id="2743387203779672305">复制到剪贴板</translation>
 <translation id="2745080116229976798">Microsoft 合格的部署</translation>
@@ -1270,6 +1276,7 @@
 <translation id="2910318910161511225">请连接到网络,然后重试</translation>
 <translation id="2913331724188855103">允许网站保存和读取 Cookie 数据(推荐)</translation>
 <translation id="2915102088417824677">查看活动日志</translation>
+<translation id="2915873080513663243">自动扫描</translation>
 <translation id="2916073183900451334">在网页上按 Tab 可突出显示链接以及表单字段</translation>
 <translation id="2916745397441987255">搜索扩展程序</translation>
 <translation id="2921081876747860777">请设置密码,以保护您的本地数据。</translation>
@@ -1478,6 +1485,7 @@
 <translation id="327147043223061465">查看所有 Cookie 和网站数据</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> 希望连接到以下所选设备:</translation>
 <translation id="3274763671541996799">您已进入全屏模式。</translation>
+<translation id="3275778809241512831">您的内部安全密钥目前不安全。请从所有使用了此密钥的服务中将其移除。要想解决该问题,请重置此安全密钥。</translation>
 <translation id="3275778913554317645">在窗口中打开</translation>
 <translation id="3278001907972365362">您需要注意自己的 Google 帐号</translation>
 <translation id="3279230909244266691">此过程可能需要几分钟的时间。正在启动虚拟机。</translation>
@@ -1568,6 +1576,7 @@
 <translation id="3412265149091626468">跳到所选部分</translation>
 <translation id="3413122095806433232">CA 证书颁发者:<ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">大小:</translation>
+<translation id="3420501302812554910">需要重置内部安全密钥</translation>
 <translation id="3421387094817716717">椭圆曲线公共密钥</translation>
 <translation id="3423463006624419153">在您的“<ph name="PHONE_NAME_1" />”和“<ph name="PHONE_NAME_2" />”上:</translation>
 <translation id="3423858849633684918">请重新启动 <ph name="PRODUCT_NAME" /></translation>
@@ -1596,6 +1605,7 @@
 <translation id="3450157232394774192">闲置状态占用率</translation>
 <translation id="3453612417627951340">需要获得授权</translation>
 <translation id="3454157711543303649">激活已完成</translation>
+<translation id="3454213325559396544">这是此 <ph name="DEVICE_TYPE" /> 所能收到的最后一次自动的软件和安全更新。要想接收未来的更新,请升级至较新的型号。</translation>
 <translation id="345693547134384690">在新标签页中打开图片(&amp;I)</translation>
 <translation id="3457500881955698515">您的公司或组织要求立刻更新此设备</translation>
 <translation id="3459509316159669723">打印</translation>
@@ -1753,6 +1763,7 @@
 <translation id="3672681487849735243">检测到出厂错误</translation>
 <translation id="367645871420407123">如果您要将根密码设为默认的测试图片值,则将此字段留空</translation>
 <translation id="3677657024345889897">最小音量</translation>
+<translation id="3677911431265050325">请求切换到移动版网站</translation>
 <translation id="3678156199662914018">扩展程序:<ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">感谢您提交反馈。您目前处于离线状态,系统将在您上线后提交您的反馈报告。</translation>
 <translation id="3682824389861648626">鼠标移动阈值</translation>
@@ -2204,6 +2215,7 @@
 <translation id="4350019051035968019">该设备无法注册到您的帐号所属的网域,因为它已标记为受其他网域管理。</translation>
 <translation id="4354344420232759511">您访问的网站将显示在此处</translation>
 <translation id="435527878592612277">选择您的照片</translation>
+<translation id="4358313196493694334">稳定点击位置</translation>
 <translation id="4359408040881008151">安装此扩展程序是因为某个/些扩展程序需要安装它才能正常使用。</translation>
 <translation id="4359717112757026264">城市景观</translation>
 <translation id="4361142739114356624">缺少此客户端证书的私钥,或私钥无效</translation>
@@ -2328,6 +2340,7 @@
 <translation id="4558426062282641716">已请求获取自动启动权限</translation>
 <translation id="4558491878126948419">接收 <ph name="DEVICE_TYPE" /> 相关提示和 Google 产品动态,并分享反馈。可随时退订。</translation>
 <translation id="4559617833001311418">此网站正在使用您的动态传感器或光传感器。</translation>
+<translation id="4561098487691395071">或指定您的打印机 PPD</translation>
 <translation id="4562155214028662640">添加指纹</translation>
 <translation id="4563880231729913339">手指 3</translation>
 <translation id="4565377596337484307">隐藏密码</translation>
@@ -2572,6 +2585,7 @@
 <translation id="494286511941020793">代理配置帮助</translation>
 <translation id="4943368462779413526">美式足球</translation>
 <translation id="4943691134276646401">“<ph name="CHROME_EXTENSION_NAME" />”想连接到串行端口</translation>
+<translation id="4944310289250773232">此项身份验证服务由 <ph name="SAML_DOMAIN" /> 托管</translation>
 <translation id="495170559598752135">操作</translation>
 <translation id="4953689047182316270">对无障碍事件做出响应</translation>
 <translation id="4953808748584563296">默认的橙色头像</translation>
@@ -2664,6 +2678,7 @@
 <translation id="5094721898978802975">与协作的本机应用通信</translation>
 <translation id="5097002363526479830">无法连接到网络“<ph name="NAME" />”:<ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">打开所有书签</translation>
+<translation id="5101839224773798795">光标停止时自动点击</translation>
 <translation id="5108967062857032718">设置 - 移除 Android 应用</translation>
 <translation id="5109044022078737958">女运动员</translation>
 <translation id="5111646998522066203">退出无痕模式</translation>
@@ -3147,10 +3162,11 @@
 <translation id="5852112051279473187">糟糕!系统在注册此设备时遇到了一些严重的问题。请重试或与您的技术支持代表联系。</translation>
 <translation id="5852137567692933493">重新启动,然后执行 Powerwash</translation>
 <translation id="5854912040170951372">比萨</translation>
+<translation id="5855643921295613558">0.6 秒</translation>
 <translation id="5855773610748894548">糟糕,安全模块出错了。</translation>
 <translation id="5856721540245522153">启用调试功能</translation>
 <translation id="5857090052475505287">新文件夹</translation>
-<translation id="5857171483910641802">快捷方式由系统根据您经常访问的网站而建议</translation>
+<translation id="5857171483910641802">系统根据您经常访问的网站提供快捷方式建议</translation>
 <translation id="5858490737742085133">终端</translation>
 <translation id="585979798156957858">外部 Meta 键</translation>
 <translation id="5860033963881614850">关闭</translation>
@@ -3436,6 +3452,7 @@
 <translation id="6279183038361895380">按 |<ph name="ACCELERATOR" />| 可显示鼠标光标</translation>
 <translation id="6280215091796946657">使用其他帐号登录</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 秒</translation>
 <translation id="6285120108426285413"><ph name="FILE_NAME" /> 的下载方式实属异常,因此它可能存在危险。</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{您的网络中有 1 台新打印机}other{您的网络中有多台新打印机}}</translation>
 <translation id="6286708577777130801">保存的密码详细信息</translation>
@@ -3642,6 +3659,7 @@
 <translation id="6612358246767739896">受保护的内容</translation>
 <translation id="6613452264606394692">只需为此网页添加书签,便可在需要时快速返回到此处</translation>
 <translation id="6615455863669487791">显示图标</translation>
+<translation id="6617100836880592260">扫描速度:<ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">仍然保留</translation>
 <translation id="6619058681307408113">Line Printer Daemon (LPD)</translation>
 <translation id="661907246513853610">该网站可能会跟踪您的位置</translation>
@@ -4454,6 +4472,7 @@
 <translation id="7831491651892296503">配置网络时出错</translation>
 <translation id="7831754656372780761">“<ph name="TAB_TITLE" />”<ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">结束时间</translation>
+<translation id="783214144752121388">禁止网站运行 Flash(推荐)</translation>
 <translation id="7833720883933317473">已保存的自定义字词将显示在这里</translation>
 <translation id="7835178595033117206">已移除书签</translation>
 <translation id="7837776265184002579">您的主页已改为 <ph name="URL" />。</translation>
@@ -4465,7 +4484,7 @@
 <translation id="7847212883280406910">按 Ctrl + Alt + S 键可切换到 <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation>
 <translation id="7849264908733290972">在新标签页中打开图片(&amp;I)</translation>
 <translation id="784934925303690534">时间范围</translation>
-<translation id="7850222546481862746"><ph name="BEGIN_PARAGRAPH1" />要在此设备上完成设置监管,您必须退出 <ph name="USER_NAME" /> 的帐号。<ph name="END_PARAGRAPH1" />
+<translation id="7850222546481862746"><ph name="BEGIN_PARAGRAPH1" />要在此设备上完成监管设置,您必须退出 <ph name="USER_NAME" /> 的帐号。<ph name="END_PARAGRAPH1" />
       <ph name="BEGIN_PARAGRAPH2" />您可以通过在自己的设备上安装 Family Link 家长版来管理您孩子的家长控制。<ph name="END_PARAGRAPH2" /></translation>
 <translation id="7851457902707056880">仅所有者帐号才能登录。请重新启动并使用所有者帐号登录。设备将在30秒后自动重新启动。</translation>
 <translation id="7851716364080026749">始终禁止使用摄像头和麦克风</translation>
@@ -4509,6 +4528,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">您已在服务器上更改密码。请先退出,然后重新登录。</translation>
 <translation id="7915471803647590281">请先告诉我们所发生的情况,然后再发送反馈。</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> 秒</translation>
 <translation id="792514962475806987">停靠的放大镜的缩放级别:</translation>
 <translation id="7925247922861151263">AAA 检查失败</translation>
 <translation id="7925285046818567682">正在等待 <ph name="HOST_NAME" /> 的响应...</translation>
@@ -4566,6 +4586,7 @@
 <translation id="7987814697832569482">始终通过此 VPN 连接</translation>
 <translation id="798835209536175951">通过您的 Chromebook 收发短信。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">启用辅助功能</translation>
+<translation id="7991296728590311172">开关控制设置</translation>
 <translation id="7994702968232966508">EAP 方法</translation>
 <translation id="7997826902155442747">进程优先级</translation>
 <translation id="7999229196265990314">已创建以下文件:
@@ -4778,6 +4799,8 @@
 <translation id="8308179586020895837">当 <ph name="HOST" /> 想要使用摄像头时询问我</translation>
 <translation id="830868413617744215">测试版</translation>
 <translation id="8309458809024885768">证书已存在</translation>
+<translation id="8314381333424235892">扩展程序缺失或已卸载</translation>
+<translation id="8316618172731049784">发送到<ph name="DEVICE_NAME" /></translation>
 <translation id="8317671367883557781">添加网络连接</translation>
 <translation id="8319414634934645341">扩展密钥用法</translation>
 <translation id="8320459152843401447">您的整个屏幕</translation>
@@ -4934,6 +4957,7 @@
 <translation id="8588866096426746242">显示个人资料统计信息</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - 正在向头戴设备显示 VR</translation>
 <translation id="8590375307970699841">设置自动更新</translation>
+<translation id="8591783563402255548">1 秒</translation>
 <translation id="8592141010104017453">完全不显示通知</translation>
 <translation id="8593121833493516339">发送使用情况数据和诊断数据。通过自动向 Google 发送诊断数据、设备数据和应用使用情况数据,帮助改善您孩子的 Android 使用体验。这些数据不会被用来辨识您孩子的身份,而是会被用来帮助提高系统和应用的稳定性以及实现其他方面的改进。部分汇总数据也会对 Google 应用和合作伙伴(例如 Android 开发者)有所帮助。如果您已为孩子开启“其他网络与应用活动记录”设置,这些数据可能会被保存到其 Google 帐号中。<ph name="BEGIN_LINK1" />了解详情<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">拍摄视频</translation>
@@ -4963,6 +4987,7 @@
 <translation id="8637688295594795546">有系统更新,开始下载...</translation>
 <translation id="8639047128869322042">正在查找有害软件…</translation>
 <translation id="8642171459927087831">访问令牌</translation>
+<translation id="8642900771896232685">2 秒</translation>
 <translation id="8642947597466641025">放大文字</translation>
 <translation id="8643418457919840804">要继续,请选择一个选项:</translation>
 <translation id="8644655801811752511">无法重置此安全密钥。请尝试在插入此密钥后立即重置它。</translation>
@@ -5164,6 +5189,7 @@
 <translation id="8910222113987937043">对您的书签、历史记录、密码及其他设置所做的更改将不再同步到您的 Google 帐号。但是,您的现有数据依然会存储在您的 Google 帐号中,而且您可以通过 <ph name="BEGIN_LINK" />Google 信息中心<ph name="END_LINK" />管理这些数据。</translation>
 <translation id="8912362522468806198">Google 帐号</translation>
 <translation id="8912793549644936705">拉伸</translation>
+<translation id="8912810933860534797">启用自动扫描</translation>
 <translation id="891365694296252935">发送使用情况数据和诊断数据。目前,此设备会自动向 Google 发送诊断数据、设备数据和应用使用情况数据。这些数据不会被用来辨识您孩子的身份,而是会被用来帮助提高系统和应用的稳定性以及实现其他方面的改进。部分汇总数据也会对 Google 应用和合作伙伴(例如 Android 开发者)有所帮助。这项设置是由此设备的所有者强制指定的。如果您已为孩子开启“其他网络与应用活动记录”设置,这些数据可能会被保存到其 Google 帐号中。<ph name="BEGIN_LINK1" />了解详情<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">正在加载建议</translation>
 <translation id="8916476537757519021">隐身辅助框架:<ph name="SUBFRAME_SITE" /></translation>
@@ -5279,6 +5305,7 @@
 <translation id="9094033019050270033">更新密码</translation>
 <translation id="9094982973264386462">移除</translation>
 <translation id="9095253524804455615">移除</translation>
+<translation id="9095388113577226029">更多语言…</translation>
 <translation id="9100610230175265781">必须提供密码</translation>
 <translation id="9100765901046053179">高级设置</translation>
 <translation id="9101691533782776290">启动应用</translation>
@@ -5316,6 +5343,7 @@
 <translation id="9153934054460603056">保存身份信息和密码</translation>
 <translation id="9154194610265714752">已更新</translation>
 <translation id="91568222606626347">创建快捷方式…</translation>
+<translation id="9157096865782046368">0.8 秒</translation>
 <translation id="9157697743260533322">未能按您的要求为所有用户设置自动更新(启动预定流程时出错:<ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">糟糕!系统在进行身份验证时发生了网络通信问题。请检查您的网络连接,然后重试。</translation>
 <translation id="916607977885256133">画中画</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index a8a3462..ab4f687a 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-TW">
+<translation id="1002469766576243227">這是由 <ph name="EXTENSION_NAME" /> 代管的驗證服務</translation>
 <translation id="1003088604756913841">在新的「<ph name="APP" />」視窗中開啟連結</translation>
 <translation id="1004218526896219317">網站存取權</translation>
 <translation id="1005274289863221750">使用你的麥克風和相機</translation>
@@ -289,6 +290,7 @@
 <translation id="1429300045468813835">已全部清除</translation>
 <translation id="143027896309062157">讀取及變更你的電腦和造訪過的網站上的所有資料</translation>
 <translation id="1430915738399379752">列印</translation>
+<translation id="1431188203598586230">最後一次軟體更新</translation>
 <translation id="1432581352905426595">管理搜尋引擎</translation>
 <translation id="1433811987160647649">存取前詢問我</translation>
 <translation id="1434696352799406980">這項功能會重設您的起始網頁、新分頁、搜尋引擎和固定分頁,同時停用所有擴充功能並清除 Cookie 等暫存資料,但不會清除您的書籤、歷史記錄和已儲存的密碼。</translation>
@@ -384,7 +386,6 @@
 <translation id="1576594961618857597">預設的白色顯示圖片</translation>
 <translation id="1581962803218266616">在 Finder 中顯示</translation>
 <translation id="1584990664401018068">您所使用的 Wi-Fi 網路 (<ph name="NETWORK_ID" />) 可能需要驗證。</translation>
-<translation id="1585238069289523942">在你的 Chromebook 上安裝應用程式</translation>
 <translation id="1585717515139318619">電腦中的其他程式新增了一個主題,可能會使 Chrome 的運作方式發生變更。
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -528,6 +529,7 @@
 <translation id="1781771911845953849">帳戶與同步處理</translation>
 <translation id="1782196717298160133">搜尋你的手機</translation>
 <translation id="1784849162047402014">裝置磁碟空間即將用盡</translation>
+<translation id="1790194216133135334">傳送連結到「<ph name="DEVICE_NAME" />」</translation>
 <translation id="1792619191750875668">擴充顯示畫面</translation>
 <translation id="1794791083288629568">提供意見,協助我們修正這個問題。</translation>
 <translation id="1795214765651529549">使用傳統版</translation>
@@ -590,6 +592,7 @@
 <translation id="1875312262568496299">開始</translation>
 <translation id="1875387611427697908">只能從 <ph name="CHROME_WEB_STORE" /> 新增</translation>
 <translation id="1877520246462554164">無法取得驗證憑證。請先登出,然後重新登入再試一次。</translation>
+<translation id="1877860345998737529">開關動作指派</translation>
 <translation id="1879000426787380528">登入身分</translation>
 <translation id="1880905663253319515">要刪除憑證「<ph name="CERTIFICATE_NAME" />」嗎?</translation>
 <translation id="1886996562706621347">允許網站要求成為通訊協定的預設處理常式 (建議)</translation>
@@ -869,6 +872,7 @@
 <translation id="230927227160767054">這個網頁想要安裝服務處理常式。</translation>
 <translation id="2309620859903500144">這個網站已遭封鎖,無法存取你的動作感應器或光源感應器。</translation>
 <translation id="2315414688463285945">設定 Linux 檔案時發生錯誤,請再試一次。</translation>
+<translation id="2315587498123194634">傳送連結到「<ph name="DEVICE_NAME" />」</translation>
 <translation id="2316129865977710310">不,謝謝</translation>
 <translation id="2317842250900878657">已完成 <ph name="PROGRESS_PERCENT" />%</translation>
 <translation id="2318143611928805047">紙張大小</translation>
@@ -909,6 +913,7 @@
 <translation id="2365507699358342471">這個網站可以讀取已複製到剪貼簿的文字和圖片。</translation>
 <translation id="2367199180085172140">新增檔案共用</translation>
 <translation id="2367972762794486313">顯示應用程式</translation>
+<translation id="2369105924912929484">切換摘要網頁內容</translation>
 <translation id="2371076942591664043">完成後開啟(&amp;D)</translation>
 <translation id="2375406435414127095">連線至你的手機</translation>
 <translation id="2377667304966270281">硬性錯誤數</translation>
@@ -1158,6 +1163,7 @@
 <translation id="2739191690716947896">偵錯</translation>
 <translation id="2739240477418971307">變更你的無障礙設定</translation>
 <translation id="2740393541869613458">查看受監管使用者瀏覽過的網站;以及</translation>
+<translation id="2741912629735277980">在登入畫面上顯示 UI</translation>
 <translation id="274290345632688601">正在還原 Linux 應用程式和檔案</translation>
 <translation id="2743387203779672305">複製到剪貼簿</translation>
 <translation id="2745080116229976798">Microsoft 合格分類</translation>
@@ -1274,6 +1280,7 @@
 <translation id="2910318910161511225">請連線至網路,然後再試一次</translation>
 <translation id="2913331724188855103">允許網站儲存及讀取 Cookie 資料 (建議)</translation>
 <translation id="2915102088417824677">查看活動記錄</translation>
+<translation id="2915873080513663243">自動掃描</translation>
 <translation id="2916073183900451334">在網頁上按 Tab 鍵可反白顯示連結和表單欄位</translation>
 <translation id="2916745397441987255">搜尋擴充功能</translation>
 <translation id="2921081876747860777">請設定密碼,保護你的本機資料。</translation>
@@ -1482,6 +1489,7 @@
 <translation id="327147043223061465">顯示所有 Cookie 和網站資料</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> 要求連線</translation>
 <translation id="3274763671541996799">你已進入全螢幕模式。</translation>
+<translation id="3275778809241512831">你的內部安全金鑰目前有安全疑慮,請將該金鑰從所有搭配使用的服務中移除。如要解決此問題,請重設安全金鑰。</translation>
 <translation id="3275778913554317645">在視窗中開啟</translation>
 <translation id="3278001907972365362">你的 Google 帳戶有狀況需處理</translation>
 <translation id="3279230909244266691">正在啟動虛擬機器,過程可能需要幾分鐘。</translation>
@@ -1574,6 +1582,7 @@
 <translation id="3412265149091626468">跳至所選範圍</translation>
 <translation id="3413122095806433232">CA 發行者:<ph name="LOCATION" /></translation>
 <translation id="3414952576877147120">空間大小:</translation>
+<translation id="3420501302812554910">必須重設內部安全金鑰</translation>
 <translation id="3421387094817716717">橢圓曲線公開金鑰</translation>
 <translation id="3423463006624419153">在你的「<ph name="PHONE_NAME_1" />」和「<ph name="PHONE_NAME_2" />」上:</translation>
 <translation id="3423858849633684918">請重新啟動 <ph name="PRODUCT_NAME" /></translation>
@@ -1602,6 +1611,7 @@
 <translation id="3450157232394774192">閒置狀態占用率</translation>
 <translation id="3453612417627951340">需要授權</translation>
 <translation id="3454157711543303649">啟用完成</translation>
+<translation id="3454213325559396544">這是這部 <ph name="DEVICE_TYPE" /> 最後一次自動更新軟體和安全性。如要取得後續更新,請升級為較新的型號。</translation>
 <translation id="345693547134384690">在新分頁中開啟圖片(&amp;I)</translation>
 <translation id="3457500881955698515">你的公司或機構要求立即更新這部裝置</translation>
 <translation id="3459509316159669723">列印</translation>
@@ -1759,6 +1769,7 @@
 <translation id="3672681487849735243">系統偵測到原廠錯誤</translation>
 <translation id="367645871420407123">如果您要將 Root 密碼設為測試映像檔的預設值,請保留空白</translation>
 <translation id="3677657024345889897">最小</translation>
+<translation id="3677911431265050325">切換為行動版網站</translation>
 <translation id="3678156199662914018">擴充功能:<ph name="EXTENSION_NAME" /></translation>
 <translation id="3681311097828166361">感謝你提供意見!你目前處於離線狀態,重新上線後系統就會傳送你的意見回饋報告。</translation>
 <translation id="3682824389861648626">滑鼠移動限額</translation>
@@ -2210,6 +2221,7 @@
 <translation id="4350019051035968019">這台裝置已標示為由其他網域管理,因此無法註冊到你帳戶所屬的網域。</translation>
 <translation id="4354344420232759511">這裡會顯示你曾造訪的網站</translation>
 <translation id="435527878592612277">請選取你的相片</translation>
+<translation id="4358313196493694334">穩定點擊位置</translation>
 <translation id="4359408040881008151">你已安裝相依的擴充功能,因此必須一併安裝這個擴充功能。</translation>
 <translation id="4359717112757026264">城市景觀</translation>
 <translation id="4361142739114356624">這個用戶端憑證沒有私密金鑰或私密金鑰無效</translation>
@@ -2334,6 +2346,7 @@
 <translation id="4558426062282641716">已要求自動啟動權限</translation>
 <translation id="4558491878126948419">可取得 <ph name="DEVICE_TYPE" /> 的使用提示和各項 Google 產品的最新快訊,並提供你的意見。你隨時可以取消訂閱。</translation>
 <translation id="4559617833001311418">這個網站正在存取你的動作感應器或光源感應器。</translation>
+<translation id="4561098487691395071">或指定印表機 PPD</translation>
 <translation id="4562155214028662640">新增指紋</translation>
 <translation id="4563880231729913339">手指 3</translation>
 <translation id="4565377596337484307">隱藏密碼</translation>
@@ -2578,6 +2591,7 @@
 <translation id="494286511941020793">Proxy 設定說明</translation>
 <translation id="4943368462779413526">足球</translation>
 <translation id="4943691134276646401">「<ph name="CHROME_EXTENSION_NAME" />」要求與序列埠連線</translation>
+<translation id="4944310289250773232">這是由 <ph name="SAML_DOMAIN" /> 代管的驗證服務</translation>
 <translation id="495170559598752135">動作</translation>
 <translation id="4953689047182316270">回應無障礙活動</translation>
 <translation id="4953808748584563296">預設的橘色顯示圖片</translation>
@@ -2670,6 +2684,7 @@
 <translation id="5094721898978802975">與合作內建應用程式建立連線</translation>
 <translation id="5097002363526479830">無法連線至「<ph name="NAME" />」:<ph name="DETAILS" /></translation>
 <translation id="5101042277149003567">開啟所有書籤</translation>
+<translation id="5101839224773798795">游標停止時自動點擊</translation>
 <translation id="5108967062857032718">設定 - 移除 Android 應用程式</translation>
 <translation id="5109044022078737958">咪咪</translation>
 <translation id="5111646998522066203">結束無痕模式</translation>
@@ -3153,6 +3168,7 @@
 <translation id="5852112051279473187">糟糕!註冊這個裝置時發生嚴重錯誤。請再試一次,或與你的支援代表聯絡。</translation>
 <translation id="5852137567692933493">重新啟動並恢復原廠設定</translation>
 <translation id="5854912040170951372">披薩</translation>
+<translation id="5855643921295613558">0.6 秒</translation>
 <translation id="5855773610748894548">糟糕,發生安全模組錯誤。</translation>
 <translation id="5856721540245522153">啟用偵錯功能</translation>
 <translation id="5857090052475505287">新資料夾</translation>
@@ -3442,6 +3458,7 @@
 <translation id="6279183038361895380">按下 |<ph name="ACCELERATOR" />| 即可顯示游標</translation>
 <translation id="6280215091796946657">以其他帳戶登入</translation>
 <translation id="6280912520669706465">ARC</translation>
+<translation id="628352644014831790">4 秒</translation>
 <translation id="6285120108426285413">一般使用者不常下載 <ph name="FILE_NAME" />,代表這個檔案可能不安全。</translation>
 <translation id="6285120908535925801">{NUM_PRINTER,plural, =1{您的網路上有一台新印表機}other{您的網路上有多台新印表機}}</translation>
 <translation id="6286708577777130801">已儲存的密碼詳細資料</translation>
@@ -3648,6 +3665,7 @@
 <translation id="6612358246767739896">受保護內容</translation>
 <translation id="6613452264606394692">將此頁加入書籤,方便你快速返回</translation>
 <translation id="6615455863669487791">顯示</translation>
+<translation id="6617100836880592260">掃描速度:<ph name="SPEED_WITH_UNITS" /></translation>
 <translation id="6618097958368085618">確定保留</translation>
 <translation id="6619058681307408113">線上印表機服務精靈 (LPD)</translation>
 <translation id="661907246513853610">網站可以追蹤你的位置</translation>
@@ -4461,6 +4479,7 @@
 <translation id="7831491651892296503">網路設定錯誤</translation>
 <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation>
 <translation id="7832084384634357321">結束時間</translation>
+<translation id="783214144752121388">禁止網站執行 Flash (建議)</translation>
 <translation id="7833720883933317473">你所儲存的自訂字詞會顯示在這裡</translation>
 <translation id="7835178595033117206">已移除書籤</translation>
 <translation id="7837776265184002579">你的首頁已變更為 <ph name="URL" />。</translation>
@@ -4516,6 +4535,7 @@
 <translation id="7911118814695487383">Linux</translation>
 <translation id="7912080627461681647">伺服器上的密碼已變更。請先登出然後重新登入。</translation>
 <translation id="7915471803647590281">請將發生的狀況告訴我們,然後再提供意見。</translation>
+<translation id="7919210519031517829"><ph name="DURATION" /> 秒</translation>
 <translation id="792514962475806987">停駐縮放比例:</translation>
 <translation id="7925247922861151263">AAA 檢查失敗</translation>
 <translation id="7925285046818567682">正在等候 <ph name="HOST_NAME" />...</translation>
@@ -4573,6 +4593,7 @@
 <translation id="7987814697832569482">一律透過這個 VPN 建立連線</translation>
 <translation id="798835209536175951">透過你的 Chromebook 收發簡訊。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="7988355189918024273">啟用無障礙功能</translation>
+<translation id="7991296728590311172">開關功能設定</translation>
 <translation id="7994702968232966508">EAP 方法</translation>
 <translation id="7997826902155442747">處理優先順序</translation>
 <translation id="7999229196265990314">已建立下列檔案:
@@ -4785,6 +4806,8 @@
 <translation id="8308179586020895837">當 <ph name="HOST" /> 要求存取攝影機時詢問我。</translation>
 <translation id="830868413617744215">測試版</translation>
 <translation id="8309458809024885768">憑證已存在</translation>
+<translation id="8314381333424235892">缺少或未安裝擴充功能</translation>
+<translation id="8316618172731049784">傳送到「<ph name="DEVICE_NAME" />」</translation>
 <translation id="8317671367883557781">新增網路連線</translation>
 <translation id="8319414634934645341">擴充金鑰使用方法</translation>
 <translation id="8320459152843401447">您的整個畫面</translation>
@@ -4941,6 +4964,7 @@
 <translation id="8588866096426746242">顯示設定檔統計資料</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - 正在對頭戴式裝置展示 VR</translation>
 <translation id="8590375307970699841">設定自動更新</translation>
+<translation id="8591783563402255548">1 秒</translation>
 <translation id="8592141010104017453">完全不顯示通知</translation>
 <translation id="8593121833493516339">傳送使用狀況與診斷資料。讓系統自動將診斷資料以及裝置和應用程式的使用狀況資料傳送給 Google,協助改善你的 Android 使用體驗。這些資料將有助於系統和應用程式提高穩定性及做出其他改善,並不會用於識別貴子女的身分。部分匯總資料還能夠為 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提供幫助。如果貴子女的「其他網路和應用程式活動」設定為開啟,系統可能會將這些資料儲存到他們的 Google 帳戶。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">錄影</translation>
@@ -4970,6 +4994,7 @@
 <translation id="8637688295594795546">可安裝系統更新,正在準備下載…</translation>
 <translation id="8639047128869322042">正在檢查有害軟體...</translation>
 <translation id="8642171459927087831">存取憑證</translation>
+<translation id="8642900771896232685">2 秒</translation>
 <translation id="8642947597466641025">放大文字</translation>
 <translation id="8643418457919840804">如要繼續,請選擇一個選項:</translation>
 <translation id="8644655801811752511">無法重設這個安全金鑰。請在插入金鑰後立即重設。</translation>
@@ -5171,6 +5196,7 @@
 <translation id="8910222113987937043">你的書籤、歷史記錄、密碼和其他設定的變更將不會再同步到你的 Google 帳戶。不過,你的現有資料仍會儲存在你的 Google 帳戶中,並可透過 <ph name="BEGIN_LINK" />Google 資訊主頁<ph name="END_LINK" />管理。</translation>
 <translation id="8912362522468806198">Google 帳戶</translation>
 <translation id="8912793549644936705">延伸</translation>
+<translation id="8912810933860534797">啟用自動掃描</translation>
 <translation id="891365694296252935">傳送使用狀況與診斷資料。這個裝置目前會自動將診斷資料以及裝置和應用程式的使用狀況資料傳送給 Google。這些資料將有助於系統和應用程式提高穩定性及做出其他改善,並不會用於識別貴子女的身分。部分匯總資料還能夠為 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提供幫助。這項設定是由裝置擁有者執行。如果貴子女的「其他網路和應用程式活動」設定為開啟,系統可能會將這些資料儲存到他們的 Google 帳戶。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation>
 <translation id="8915370057835397490">正在載入建議</translation>
 <translation id="8916476537757519021">無痕模式子頁框:<ph name="SUBFRAME_SITE" /></translation>
@@ -5286,6 +5312,7 @@
 <translation id="9094033019050270033">更新密碼</translation>
 <translation id="9094982973264386462">移除</translation>
 <translation id="9095253524804455615">移除</translation>
+<translation id="9095388113577226029">更多語言...</translation>
 <translation id="9100610230175265781">請提供通關密語</translation>
 <translation id="9100765901046053179">進階設定</translation>
 <translation id="9101691533782776290">啟動應用程式</translation>
@@ -5323,6 +5350,7 @@
 <translation id="9153934054460603056">儲存身分與密碼</translation>
 <translation id="9154194610265714752">已更新</translation>
 <translation id="91568222606626347">建立捷徑...</translation>
+<translation id="9157096865782046368">0.8 秒</translation>
 <translation id="9157697743260533322">無法為所有使用者設定自動更新作業 (預先啟動錯誤:<ph name="ERROR_NUMBER" />)</translation>
 <translation id="9158715103698450907">糟糕!驗證過程中發生網路通訊問題,請檢查你的網路連線,然後再試一次。</translation>
 <translation id="916607977885256133">子母畫面</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index d43a3efc..67d0fbcd 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3527,7 +3527,6 @@
       "//components/services/font/public/interfaces",
       "//services/ws/public/cpp/input_devices",
       "//services/ws/public/cpp/input_devices:input_device_controller",
-      "//services/ws/public/mojom",
       "//ui/ozone",
     ]
     allow_circular_includes_from += [ "//chrome/browser/chromeos" ]
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 3637d9f24..b7af879 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -543,8 +543,10 @@
      switches::kForceDisplayColorProfile, "display-p3-d65"},
     {flag_descriptions::kForceColorProfileColorSpin,
      switches::kForceDisplayColorProfile, "color-spin-gamma24"},
-    {flag_descriptions::kForceColorProfileHdr,
+    {flag_descriptions::kForceColorProfileSCRGBLinear,
      switches::kForceDisplayColorProfile, "scrgb-linear"},
+    {flag_descriptions::kForceColorProfileHDR10,
+     switches::kForceDisplayColorProfile, "hdr10"},
 };
 
 const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index 81d12bb7..e83f7b0 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -1171,9 +1171,7 @@
   // itself), this can be created on first use.
   if (!SystemNetworkContextManager::GetInstance())
     SystemNetworkContextManager::CreateInstance(local_state());
-  io_thread_ = std::make_unique<IOThread>(
-      local_state(), policy_service(), net_log_.get(),
-      SystemNetworkContextManager::GetInstance());
+  io_thread_ = std::make_unique<IOThread>(net_log_.get());
 }
 
 void BrowserProcessImpl::ServiceManagerConnectionStarted(
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 76d70f3..98af797 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -74,6 +74,7 @@
 #include "chrome/browser/metrics/chrome_feature_list_creator.h"
 #include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h"
 #include "chrome/browser/navigation_predictor/navigation_predictor.h"
+#include "chrome/browser/net/chrome_network_delegate.h"
 #include "chrome/browser/net/system_network_context_manager.h"
 #include "chrome/browser/net_benchmarking.h"
 #include "chrome/browser/notifications/platform_notification_service_factory.h"
@@ -326,6 +327,7 @@
 #include "net/base/mime_util.h"
 #include "net/cookies/canonical_cookie.h"
 #include "net/cookies/cookie_options.h"
+#include "net/http/http_util.h"
 #include "net/ssl/client_cert_store.h"
 #include "net/ssl/ssl_cert_request_info.h"
 #include "ppapi/buildflags/buildflags.h"
@@ -4652,8 +4654,6 @@
     int frame_tree_node_id) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
-  bool network_service_enabled =
-      base::FeatureList::IsEnabled(network::features::kNetworkService);
   std::vector<std::unique_ptr<content::URLLoaderThrottle>> result;
 
   ProfileIOData* io_data = nullptr;
@@ -4697,10 +4697,7 @@
   if (io_data && safe_browsing_service_) {
     bool matches_enterprise_whitelist = safe_browsing::IsURLWhitelistedByPolicy(
         request.url, io_data->safe_browsing_whitelist_domains());
-    if (!matches_enterprise_whitelist &&
-        (network_service_enabled ||
-         base::FeatureList::IsEnabled(
-             safe_browsing::kCheckByURLLoaderThrottle))) {
+    if (!matches_enterprise_whitelist) {
       auto* delegate = GetSafeBrowsingUrlCheckerDelegate(resource_context);
       if (delegate && !delegate->ShouldSkipRequestCheck(
                           resource_context, request.url, frame_tree_node_id,
@@ -4740,10 +4737,8 @@
     result.push_back(std::make_unique<GoogleURLLoaderThrottle>(
         is_off_the_record, std::move(dynamic_params)));
 
-    if (network_service_enabled) {
-      result.push_back(std::make_unique<ProtocolHandlerThrottle>(
-          io_data->protocol_handler_registry_io_thread_delegate()));
-    }
+    result.push_back(std::make_unique<ProtocolHandlerThrottle>(
+        io_data->protocol_handler_registry_io_thread_delegate()));
   }
 
 #if BUILDFLAG(ENABLE_PLUGINS)
@@ -4751,14 +4746,13 @@
       resource_context, request.resource_type, frame_tree_node_id));
 #endif
 
-  if (network_service_enabled) {
-    auto delegate = std::make_unique<signin::HeaderModificationDelegateImpl>(
-        resource_context);
-    auto signin_throttle = signin::URLLoaderThrottle::MaybeCreate(
-        std::move(delegate), navigation_ui_data, wc_getter);
-    if (signin_throttle)
-      result.push_back(std::move(signin_throttle));
-  }
+  auto delegate = std::make_unique<signin::HeaderModificationDelegateImpl>(
+      resource_context);
+  auto signin_throttle = signin::URLLoaderThrottle::MaybeCreate(
+      std::move(delegate), navigation_ui_data, wc_getter);
+  if (signin_throttle)
+    result.push_back(std::move(signin_throttle));
+
   return result;
 }
 
@@ -4934,7 +4928,6 @@
     network::mojom::URLLoaderFactoryRequest* factory_request,
     network::mojom::TrustedURLLoaderHeaderClientPtrInfo* header_client,
     bool* bypass_redirect_checks) {
-  DCHECK(base::FeatureList::IsEnabled(network::features::kNetworkService));
   bool use_proxy = false;
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -4970,12 +4963,9 @@
   std::vector<std::unique_ptr<content::URLLoaderRequestInterceptor>>
       interceptors;
 #if BUILDFLAG(ENABLE_OFFLINE_PAGES)
-  if (base::FeatureList::IsEnabled(network::features::kNetworkService)) {
-    // NetworkService cases only.
-    interceptors.push_back(
-        std::make_unique<offline_pages::OfflinePageURLLoaderRequestInterceptor>(
-            navigation_ui_data, frame_tree_node_id));
-  }
+  interceptors.push_back(
+      std::make_unique<offline_pages::OfflinePageURLLoaderRequestInterceptor>(
+          navigation_ui_data, frame_tree_node_id));
 #endif
 
   ChromeNavigationUIData* chrome_navigation_ui_data =
@@ -4984,8 +4974,7 @@
   // TODO(ryansturm): Once this is on the UI thread, stop passing
   // |network_loader_factory| and have interceptors create one themselves.
   // https://crbug.com/931786
-  if (base::FeatureList::IsEnabled(network::features::kNetworkService) &&
-      base::FeatureList::IsEnabled(
+  if (base::FeatureList::IsEnabled(
           previews::features::kHTTPSServerPreviewsUsingURLLoader)) {
     interceptors.push_back(
         std::make_unique<previews::PreviewsLitePageURLLoaderInterceptor>(
diff --git a/chrome/browser/extensions/permission_message_combinations_unittest.cc b/chrome/browser/extensions/permission_message_combinations_unittest.cc
index c71f8aa..2f800e4 100644
--- a/chrome/browser/extensions/permission_message_combinations_unittest.cc
+++ b/chrome/browser/extensions/permission_message_combinations_unittest.cc
@@ -10,7 +10,9 @@
 #include "base/test/values_test_util.h"
 #include "chrome/browser/extensions/test_extension_environment.h"
 #include "chrome/common/extensions/permissions/chrome_permission_message_provider.h"
+#include "components/version_info/version_info.h"
 #include "extensions/common/extension.h"
+#include "extensions/common/features/feature_channel.h"
 #include "extensions/common/features/simple_feature.h"
 #include "extensions/common/permissions/permission_message_test_util.h"
 #include "extensions/common/permissions/permissions_data.h"
@@ -1181,6 +1183,9 @@
 
 TEST_F(PermissionMessageCombinationsUnittest,
        DeclarativeNetRequestFeedbackPermissionMessages) {
+  // Set the current channel to trunk.
+  ScopedCurrentChannel scoped_channel(version_info::Channel::UNKNOWN);
+
   CreateAndInstall(
       "{"
       "  'permissions': ["
diff --git a/chrome/browser/extensions/service_worker_apitest.cc b/chrome/browser/extensions/service_worker_apitest.cc
index d83a871..4178f4b 100644
--- a/chrome/browser/extensions/service_worker_apitest.cc
+++ b/chrome/browser/extensions/service_worker_apitest.cc
@@ -1317,40 +1317,6 @@
   }
 }
 
-IN_PROC_BROWSER_TEST_F(ServiceWorkerTest, EventsToStoppedWorker) {
-  // Extensions APIs from SW are only enabled on trunk.
-  ScopedCurrentChannel current_channel_override(version_info::Channel::UNKNOWN);
-  const Extension* extension = LoadExtensionWithFlags(
-      test_data_dir_.AppendASCII("service_worker/events_to_stopped_worker"),
-      kFlagNone);
-  ASSERT_TRUE(extension);
-  ui_test_utils::NavigateToURL(browser(),
-                               extension->GetResourceURL("page.html"));
-  content::WebContents* web_contents =
-      browser()->tab_strip_model()->GetActiveWebContents();
-  {
-    std::string result;
-    ASSERT_TRUE(content::ExecuteScriptAndExtractString(
-        web_contents, "window.runServiceWorker()", &result));
-    ASSERT_EQ("ready", result);
-
-    base::RunLoop run_loop;
-    content::StoragePartition* storage_partition =
-        content::BrowserContext::GetDefaultStoragePartition(
-            browser()->profile());
-    content::StopServiceWorkerForScope(
-        storage_partition->GetServiceWorkerContext(),
-        // The service worker is registered at the top level scope.
-        extension->url(), run_loop.QuitClosure());
-    run_loop.Run();
-  }
-
-  std::string result;
-  ASSERT_TRUE(content::ExecuteScriptAndExtractString(
-      web_contents, "window.createTabThenUpdate()", &result));
-  ASSERT_EQ("chrome.tabs.onUpdated callback", result);
-}
-
 // Tests that worker ref count increments while extension API function is
 // active.
 IN_PROC_BROWSER_TEST_F(ServiceWorkerTest, WorkerRefCount) {
@@ -1584,6 +1550,77 @@
   ASSERT_TRUE(RunExtensionTest("service_worker/mime_handler_view"));
 }
 
+// An observer to block on service worker registration stored.
+class RegistrationStoredObserver
+    : public content::ServiceWorkerContextObserver {
+ public:
+  RegistrationStoredObserver(content::ServiceWorkerContext* context,
+                             base::OnceClosure callback)
+      : context_(context), registered_callback_(std::move(callback)) {
+    context_->AddObserver(this);
+  }
+
+  ~RegistrationStoredObserver() override {
+    if (context_) {
+      context_->RemoveObserver(this);
+    }
+  }
+
+  void OnRegistrationStored(int64_t registration_id,
+                            const GURL& scope) override {
+    if (scope.SchemeIs(kExtensionScheme)) {
+      std::move(registered_callback_).Run();
+    }
+  }
+
+  void OnDestruct(content::ServiceWorkerContext* context) override {
+    context_ = nullptr;
+  }
+
+ private:
+  content::ServiceWorkerContext* context_;
+  base::OnceClosure registered_callback_;
+};
+
+IN_PROC_BROWSER_TEST_F(ServiceWorkerBasedBackgroundTest,
+                       EventsToStoppedWorker) {
+  content::StoragePartition* storage_partition =
+      content::BrowserContext::GetDefaultStoragePartition(browser()->profile());
+  content::ServiceWorkerContext* context =
+      storage_partition->GetServiceWorkerContext();
+
+  // Set up an observer to wait for the registration to be stored.
+  base::RunLoop registration_loop;
+  RegistrationStoredObserver observer(context, registration_loop.QuitClosure());
+
+  ExtensionTestMessageListener event_listener_added("ready", false);
+  event_listener_added.set_failure_message("ERROR");
+  const Extension* extension = LoadExtensionWithFlags(
+      test_data_dir_.AppendASCII(
+          "service_worker/worker_based_background/events_to_stopped_worker"),
+      kFlagNone);
+  ASSERT_TRUE(extension);
+
+  // Wait for service worker registration to be stored.
+  registration_loop.Run();
+  EXPECT_TRUE(event_listener_added.WaitUntilSatisfied());
+
+  // Stop the service worker.
+  {
+    base::RunLoop run_loop;
+    // The service worker is registered at the root scope.
+    content::StopServiceWorkerForScope(context, extension->url(),
+                                       run_loop.QuitClosure());
+    run_loop.Run();
+  }
+
+  // Navigate to a URL, which should wake up the service worker.
+  ExtensionTestMessageListener finished_listener("finished", false);
+  ui_test_utils::NavigateToURL(browser(),
+                               extension->GetResourceURL("page.html"));
+  EXPECT_TRUE(finished_listener.WaitUntilSatisfied());
+}
+
 IN_PROC_BROWSER_TEST_F(ServiceWorkerBasedBackgroundTest,
                        ProcessManagerRegistrationOnShutdown) {
   // Note that StopServiceWorkerForScope call below expects the worker to be
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index a0d4bfcf..97920a8 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -277,7 +277,9 @@
 const char kForceColorProfileSRGB[] = "sRGB";
 const char kForceColorProfileP3[] = "Display P3 D65";
 const char kForceColorProfileColorSpin[] = "Color spin with gamma 2.4";
-const char kForceColorProfileHdr[] = "scRGB linear (HDR where available)";
+const char kForceColorProfileSCRGBLinear[] =
+    "scRGB linear (HDR where available)";
+const char kForceColorProfileHDR10[] = "HDR10 (HDR where available)";
 
 const char kForceColorProfileName[] = "Force color profile";
 const char kForceColorProfileDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index c0743d91..b4f8ad7 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -194,7 +194,8 @@
 extern const char kForceColorProfileSRGB[];
 extern const char kForceColorProfileP3[];
 extern const char kForceColorProfileColorSpin[];
-extern const char kForceColorProfileHdr[];
+extern const char kForceColorProfileSCRGBLinear[];
+extern const char kForceColorProfileHDR10[];
 
 extern const char kForceColorProfileName[];
 extern const char kForceColorProfileDescription[];
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
index 8ffba2a..0acae565 100644
--- a/chrome/browser/io_thread.cc
+++ b/chrome/browser/io_thread.cc
@@ -4,70 +4,22 @@
 
 #include "chrome/browser/io_thread.h"
 
-#include <utility>
-#include <vector>
-
-#include "base/base64.h"
-#include "base/bind.h"
-#include "base/bind_helpers.h"
 #include "base/compiler_specific.h"
-#include "base/debug/leak_tracker.h"
-#include "base/files/file_path.h"
 #include "base/logging.h"
-#include "base/macros.h"
-#include "base/single_thread_task_runner.h"
-#include "base/stl_util.h"
-#include "base/strings/string_piece.h"
-#include "base/strings/string_split.h"
-#include "base/strings/string_util.h"
-#include "base/strings/utf_string_conversions.h"
 #include "base/task/post_task.h"
-#include "base/threading/thread.h"
 #include "base/time/time.h"
 #include "base/trace_event/trace_event.h"
 #include "build/build_config.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/net/chrome_network_delegate.h"
-#include "chrome/browser/net/proxy_service_factory.h"
-#include "chrome/common/chrome_content_client.h"
-#include "chrome/common/chrome_features.h"
-#include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_prefs.h"
-#include "components/metrics/metrics_service.h"
 #include "components/net_log/chrome_net_log.h"
-#include "components/network_session_configurator/common/network_features.h"
-#include "components/policy/core/common/policy_service.h"
-#include "components/policy/policy_constants.h"
-#include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/pref_service.h"
-#include "components/variations/variations_associated_data.h"
-#include "components/version_info/version_info.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
-#include "content/public/browser/network_service_instance.h"
-#include "content/public/common/content_features.h"
-#include "content/public/common/content_switches.h"
-#include "content/public/common/user_agent.h"
-#include "extensions/buildflags/buildflags.h"
 #include "net/cert/cert_database.h"
-#include "net/nqe/network_quality_estimator.h"
-#include "net/nqe/network_quality_estimator_params.h"
-#include "services/network/network_service.h"
-#include "services/network/public/cpp/features.h"
-#include "services/network/public/cpp/network_switches.h"
-#include "url/url_constants.h"
-
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
-#include "chromeos/network/dhcp_pac_file_fetcher_factory_chromeos.h"
-#include "services/network/cert_verify_proc_chromeos.h"
-#endif
 
 using content::BrowserThread;
 
-class SafeBrowsingURLRequestContext;
-
 // The IOThread object must outlive any tasks posted to the IO thread before the
 // Quit task, so base::Bind() calls are not refcounted.
 
@@ -82,44 +34,19 @@
 
 }  // namespace
 
-IOThread::Globals::Globals() {}
-
-IOThread::Globals::~Globals() {}
-
 // |local_state| is passed in explicitly in order to (1) reduce implicit
 // dependencies and (2) make IOThread more flexible for testing.
-IOThread::IOThread(
-    PrefService* local_state,
-    policy::PolicyService* policy_service,
-    net_log::ChromeNetLog* net_log,
-    SystemNetworkContextManager* system_network_context_manager)
-    : net_log_(net_log),
-      globals_(nullptr),
-      is_quic_allowed_on_init_(true),
-      weak_factory_(this) {
+IOThread::IOThread(net_log::ChromeNetLog* net_log) : net_log_(net_log) {
   scoped_refptr<base::SingleThreadTaskRunner> io_thread_proxy =
       base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO});
 
   BrowserThread::SetIOThreadDelegate(this);
-
-  system_network_context_manager->SetUp(
-      &network_context_request_, &network_context_params_,
-      &stub_resolver_enabled_, &dns_over_https_servers_,
-      &http_auth_static_params_, &http_auth_dynamic_params_,
-      &is_quic_allowed_on_init_);
 }
 
 IOThread::~IOThread() {
   // This isn't needed for production code, but in tests, IOThread may
   // be multiply constructed.
   BrowserThread::SetIOThreadDelegate(nullptr);
-
-  DCHECK(!globals_);
-}
-
-IOThread::Globals* IOThread::globals() {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
-  return globals_;
 }
 
 net_log::ChromeNetLog* IOThread::net_log() {
@@ -130,29 +57,15 @@
   TRACE_EVENT0("startup", "IOThread::InitAsync");
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
-  DCHECK(!globals_);
-  globals_ = new Globals;
-
-
 #if defined(OS_MACOSX)
   // Start observing Keychain events. This needs to be done on the UI thread,
   // as Keychain services requires a CFRunLoop.
   base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI},
                            base::BindOnce(&ObserveKeychainEvents));
 #endif
-
-  ConstructSystemRequestContext();
 }
 
 void IOThread::CleanUp() {
-  base::debug::LeakTracker<SafeBrowsingURLRequestContext>::CheckForLeaks();
-
-  // Release objects that the net::URLRequestContext could have been pointing
-  // to.
-
-  delete globals_;
-  globals_ = nullptr;
-
   if (net_log_)
     net_log_->ShutDownBeforeThreadPool();
 }
@@ -161,16 +74,3 @@
 void IOThread::RegisterPrefs(PrefRegistrySimple* registry) {
   data_reduction_proxy::RegisterPrefs(registry);
 }
-
-void IOThread::DisableQuic() {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
-  globals_->quic_disabled = true;
-}
-
-void IOThread::ConstructSystemRequestContext() {
-  globals_->deprecated_network_quality_estimator =
-      std::make_unique<net::NetworkQualityEstimator>(
-          std::make_unique<net::NetworkQualityEstimatorParams>(
-              std::map<std::string, std::string>()),
-          net_log_);
-}
diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h
index f23b3989..c33614a7 100644
--- a/chrome/browser/io_thread.h
+++ b/chrome/browser/io_thread.h
@@ -8,46 +8,22 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include <map>
 #include <memory>
-#include <set>
 #include <string>
-#include <unordered_set>
-#include <vector>
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/weak_ptr.h"
-#include "base/optional.h"
-#include "base/strings/string_piece.h"
 #include "build/build_config.h"
-#include "chrome/browser/net/chrome_network_delegate.h"
-#include "chrome/browser/net/system_network_context_manager.h"
 #include "chrome/common/buildflags.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/browser_thread_delegate.h"
-#include "extensions/buildflags/buildflags.h"
-#include "net/base/network_change_notifier.h"
-#include "services/network/public/mojom/network_service.mojom-forward.h"
-#include "services/network/url_request_context_owner.h"
 
 class PrefRegistrySimple;
-class PrefService;
-class SystemNetworkContextManager;
-
-namespace net {
-class NetworkQualityEstimator;
-}  // namespace net
 
 namespace net_log {
 class ChromeNetLog;
 }
 
-namespace policy {
-class PolicyService;
-}  // namespace policy
-
 // Contains state associated with, initialized and cleaned up on, and
 // primarily used on, the IO thread.
 //
@@ -56,42 +32,15 @@
 // content::BrowserThread.
 class IOThread : public content::BrowserThreadDelegate {
  public:
-  struct Globals {
-    Globals();
-    ~Globals();
-
-    bool quic_disabled = false;
-
-    // NetworkQualityEstimator only for use in dummy in-process
-    // URLRequestContext when network service is enabled.
-    // TODO(mmenke): Remove this, once all consumers only access the
-    // NetworkQualityEstimator through network service APIs. Then will no longer
-    // need to create an in-process one.
-    std::unique_ptr<net::NetworkQualityEstimator>
-        deprecated_network_quality_estimator;
-  };
-
   // |net_log| must either outlive the IOThread or be NULL.
-  IOThread(PrefService* local_state,
-           policy::PolicyService* policy_service,
-           net_log::ChromeNetLog* net_log,
-           SystemNetworkContextManager* system_network_context_manager);
+  explicit IOThread(net_log::ChromeNetLog* net_log);
 
   ~IOThread() override;
 
   static void RegisterPrefs(PrefRegistrySimple* registry);
 
-  // Can only be called on the IO thread.
-  Globals* globals();
-
   net_log::ChromeNetLog* net_log();
 
-  // Dynamically disables QUIC for all NetworkContexts using the IOThread's
-  // NetworkService. Re-enabling Quic dynamically is not supported for
-  // simplicity and requires a browser restart. May only be called on the IO
-  // thread.
-  void DisableQuic();
-
  private:
   // BrowserThreadDelegate implementation, runs on the IO thread.
   // This handles initialization and destruction of state that must
@@ -99,42 +48,10 @@
   void Init() override;
   void CleanUp() override;
 
-  void ConstructSystemRequestContext();
-
   // The NetLog is owned by the browser process, to allow logging from other
   // threads during shutdown, but is used most frequently on the IOThread.
   net_log::ChromeNetLog* net_log_;
 
-  // These member variables are basically global, but their lifetimes are tied
-  // to the IOThread.  IOThread owns them all, despite not using scoped_ptr.
-  // This is because the destructor of IOThread runs on the wrong thread.  All
-  // member variables should be deleted in CleanUp().
-
-  // These member variables are initialized in Init() and do not change for the
-  // lifetime of the IO thread.
-
-  Globals* globals_;
-
-  // These are set on the UI thread, and then consumed during initialization on
-  // the IO thread.
-  network::mojom::NetworkContextRequest network_context_request_;
-  network::mojom::NetworkContextParamsPtr network_context_params_;
-
-  bool stub_resolver_enabled_ = false;
-  base::Optional<std::vector<network::mojom::DnsOverHttpsServerPtr>>
-      dns_over_https_servers_;
-
-  // Initial HTTP auth configuration used when setting up the NetworkService on
-  // the IO Thread. Future updates are sent using the NetworkService mojo
-  // interface, but initial state needs to be set non-racily.
-  network::mojom::HttpAuthStaticParamsPtr http_auth_static_params_;
-  network::mojom::HttpAuthDynamicParamsPtr http_auth_dynamic_params_;
-
-  // True if QUIC is initially enabled.
-  bool is_quic_allowed_on_init_;
-
-  base::WeakPtrFactory<IOThread> weak_factory_;
-
   DISALLOW_COPY_AND_ASSIGN(IOThread);
 };
 
diff --git a/chrome/browser/io_thread_browsertest.cc b/chrome/browser/io_thread_browsertest.cc
index 43b2941..f602bfb 100644
--- a/chrome/browser/io_thread_browsertest.cc
+++ b/chrome/browser/io_thread_browsertest.cc
@@ -17,6 +17,7 @@
 #include "base/strings/stringprintf.h"
 #include "base/values.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/net/system_network_context_manager.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/in_process_browser_test.h"
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
index 2f5778a..fc7be14 100644
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
@@ -150,30 +150,9 @@
     const base::FilePath& relative_partition_path) {
   network::mojom::NetworkContextPtr network_context;
 
-  if (base::FeatureList::IsEnabled(network::features::kNetworkService)) {
-    content::GetNetworkService()->CreateNetworkContext(
-        MakeRequest(&network_context),
-        CreateNetworkContextParams(in_memory, relative_partition_path));
-  } else {
-    // The corresponding |profile_io_data_network_contexts_| may already be
-    // initialized if SetUpProfileIODataNetworkContext was called first.
-    PartitionInfo partition_info(in_memory, relative_partition_path);
-    auto iter = profile_io_data_network_contexts_.find(partition_info);
-    if (iter == profile_io_data_network_contexts_.end()) {
-      // If this is not the main network context, then this method is expected
-      // to be called after the URLRequestContext is configured.
-      DCHECK(relative_partition_path.empty());
-      // If the NetworkContext has not been requested yet, go ahead and create a
-      // request for it.
-      profile_io_data_context_requests_[partition_info] =
-          mojo::MakeRequest(&network_context);
-    } else {
-      network_context = std::move(iter->second);
-      // This is not strictly necessary, since the network service can't crash,
-      // and NetworkContexts can't be destroyed without destroying the profile.
-      profile_io_data_network_contexts_.erase(iter);
-    }
-  }
+  content::GetNetworkService()->CreateNetworkContext(
+      MakeRequest(&network_context),
+      CreateNetworkContextParams(in_memory, relative_partition_path));
 
   if ((!in_memory && !profile_->IsOffTheRecord())) {
     // TODO(jam): delete this code 1 year after Network Service shipped to all
@@ -194,44 +173,6 @@
   return network_context;
 }
 
-void ProfileNetworkContextService::SetUpProfileIODataNetworkContext(
-    bool in_memory,
-    const base::FilePath& relative_partition_path,
-    network::mojom::NetworkContextRequest* network_context_request,
-    network::mojom::NetworkContextParamsPtr* network_context_params) {
-  DCHECK(network_context_request);
-  DCHECK(network_context_params);
-
-  PartitionInfo partition_info(in_memory, relative_partition_path);
-
-  // This may be called either before or after CreateNetworkContext().
-  auto iter = profile_io_data_context_requests_.find(partition_info);
-  if (iter == profile_io_data_context_requests_.end()) {
-    DCHECK(profile_io_data_network_contexts_.find(partition_info) ==
-           profile_io_data_network_contexts_.end());
-    *network_context_request =
-        mojo::MakeRequest(&profile_io_data_network_contexts_[partition_info]);
-  } else {
-    DCHECK(relative_partition_path.empty());
-
-    *network_context_request = std::move(iter->second);
-    // Not strictly necessary, since this should only be called once per storage
-    // partition.
-    profile_io_data_context_requests_.erase(iter);
-  }
-
-  if (!base::FeatureList::IsEnabled(network::features::kNetworkService)) {
-    *network_context_params =
-        CreateNetworkContextParams(in_memory, relative_partition_path);
-    return;
-  }
-
-  // Just use default if network service is enabled, to avoid the legacy
-  // in-process URLRequestContext from fighting with the NetworkService over
-  // ownership of on-disk files.
-  *network_context_params = network::mojom::NetworkContextParams::New();
-}
-
 #if defined(OS_CHROMEOS)
 void ProfileNetworkContextService::UpdateAdditionalCertificates(
     const net::CertificateList& all_additional_certificates,
@@ -396,11 +337,6 @@
       ->secure_origin_cookies_allowed_schemes.push_back(
           content::kChromeUIScheme);
 #if BUILDFLAG(ENABLE_EXTENSIONS)
-  if (!base::FeatureList::IsEnabled(network::features::kNetworkService)) {
-    network_context_params->cookie_manager_params
-        ->matching_scheme_cookies_allowed_schemes.push_back(
-            extensions::kExtensionScheme);
-  }
   network_context_params->cookie_manager_params
       ->third_party_cookies_allowed_schemes.push_back(
           extensions::kExtensionScheme);
@@ -523,8 +459,7 @@
 
 #if defined(OS_CHROMEOS)
   user_manager::UserManager* user_manager = user_manager::UserManager::Get();
-  if (base::FeatureList::IsEnabled(network::features::kNetworkService) &&
-      user_manager &&
+  if (user_manager &&
       policy::PolicyCertServiceFactory::CreateAndStartObservingForProfile(
           profile_)) {
     const user_manager::User* user =
@@ -549,13 +484,11 @@
   }
 #endif
 
-  if (base::FeatureList::IsEnabled(network::features::kNetworkService)) {
-    // Should be initialized with existing per-profile CORS access lists.
-    network_context_params->cors_origin_access_list =
-        profile_->GetSharedCorsOriginAccessList()
-            ->GetOriginAccessList()
-            .CreateCorsOriginAccessPatternsList();
-  }
+  // Should be initialized with existing per-profile CORS access lists.
+  network_context_params->cors_origin_access_list =
+      profile_->GetSharedCorsOriginAccessList()
+          ->GetOriginAccessList()
+          .CreateCorsOriginAccessPatternsList();
 
   return network_context_params;
 }
diff --git a/chrome/browser/net/profile_network_context_service.h b/chrome/browser/net/profile_network_context_service.h
index 637aec067..b068f6d 100644
--- a/chrome/browser/net/profile_network_context_service.h
+++ b/chrome/browser/net/profile_network_context_service.h
@@ -38,38 +38,10 @@
   // Creates a NetworkContext for the BrowserContext, using the specified
   // parameters. An empty |relative_partition_path| corresponds to the main
   // network context.
-  //
-  // Uses the network service if enabled. Otherwise creates one that will use
-  // the IOThread's NetworkService. This may be called either before or after
-  // SetUpProfileIODataNetworkContext.
   network::mojom::NetworkContextPtr CreateNetworkContext(
       bool in_memory,
       const base::FilePath& relative_partition_path);
 
-  // Initializes |*network_context_params| to set up the ProfileIOData's
-  // main URLRequestContext and |*network_context_request| to be one end of a
-  // Mojo pipe to be bound to the NetworkContext for that URLRequestContext.
-  // The caller will need to send these parameters to the IOThread's in-process
-  // NetworkService.
-  //
-  // If the network service is disabled, CreateNetworkContext(), which is called
-  // first, will return the other end of the pipe.  In this case, all requests
-  // associated with this Profile will use the associated URLRequestContext
-  // (either accessed through the StoragePartition's GetURLRequestContext() or
-  // directly).
-  //
-  // If the network service is enabled, CreateNetworkContext() will instead
-  // return a NetworkContext vended by the network service's NetworkService
-  // (Instead of the IOThread's in-process one).  In this case, the
-  // ProfileIOData's URLRequest context will be configured not to use on-disk
-  // storage (so as not to conflict with the network service vended context),
-  // and will only be used for legacy requests that use it directly.
-  void SetUpProfileIODataNetworkContext(
-      bool in_memory,
-      const base::FilePath& relative_partition_path,
-      network::mojom::NetworkContextRequest* network_context_request,
-      network::mojom::NetworkContextParamsPtr* network_context_params);
-
 #if defined(OS_CHROMEOS)
   void UpdateAdditionalCertificates(
       const net::CertificateList& all_additional_certificates,
@@ -130,23 +102,6 @@
 
   ProxyConfigMonitor proxy_config_monitor_;
 
-  // The |in_memory| / |relative_partition_path| corresponding to the values
-  // passed into CreateNetworkContext.
-  using PartitionInfo = std::pair<bool, base::FilePath>;
-
-  // These are the NetworkContext interfaces that use the ProfileIOData's
-  // NetworkContexts. If the network service is disabled, ownership is passed to
-  // StoragePartition when CreateNetworkContext is called.  Otherwise, retains
-  // ownership, though nothing uses these after construction.
-  std::map<PartitionInfo, network::mojom::NetworkContextPtr>
-      profile_io_data_network_contexts_;
-
-  // Request corresponding to |profile_io_data_main_network_context_|. Ownership
-  // is passed to ProfileIOData when SetUpProfileIODataNetworkContext() is
-  // called.
-  std::map<PartitionInfo, network::mojom::NetworkContextRequest>
-      profile_io_data_context_requests_;
-
   BooleanPrefMember quic_allowed_;
   StringPrefMember pref_accept_language_;
   BooleanPrefMember block_third_party_cookies_;
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
index 1450d902a..cd8e2608 100644
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -85,17 +85,6 @@
 // The global instance of the SystemNetworkContextmanager.
 SystemNetworkContextManager* g_system_network_context_manager = nullptr;
 
-// Called on IOThread to disable QUIC for HttpNetworkSessions not using the
-// network service. Note that re-enabling QUIC dynamically is not supported for
-// simpliciy and requires a browser restart.
-void DisableQuicOnIOThread(IOThread* io_thread) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-
-  if (!base::FeatureList::IsEnabled(network::features::kNetworkService))
-    content::GetNetworkServiceImpl()->DisableQuic();
-  io_thread->DisableQuic();
-}
-
 void GetStubResolverConfig(
     PrefService* local_state,
     bool* stub_resolver_enabled,
@@ -335,26 +324,6 @@
   return shared_url_loader_factory_;
 }
 
-void SystemNetworkContextManager::SetUp(
-    network::mojom::NetworkContextRequest* network_context_request,
-    network::mojom::NetworkContextParamsPtr* network_context_params,
-    bool* stub_resolver_enabled,
-    base::Optional<std::vector<network::mojom::DnsOverHttpsServerPtr>>*
-        dns_over_https_servers,
-    network::mojom::HttpAuthStaticParamsPtr* http_auth_static_params,
-    network::mojom::HttpAuthDynamicParamsPtr* http_auth_dynamic_params,
-    bool* is_quic_allowed) {
-  if (!base::FeatureList::IsEnabled(network::features::kNetworkService)) {
-    *network_context_request = mojo::MakeRequest(&io_thread_network_context_);
-    *network_context_params = CreateNetworkContextParams();
-  }
-  *is_quic_allowed = is_quic_allowed_;
-  *http_auth_static_params = CreateHttpAuthStaticParams(local_state_);
-  *http_auth_dynamic_params = CreateHttpAuthDynamicParams(local_state_);
-  GetStubResolverConfig(local_state_, stub_resolver_enabled,
-                        dns_over_https_servers);
-}
-
 // static
 SystemNetworkContextManager* SystemNetworkContextManager::CreateInstance(
     PrefService* pref_service) {
@@ -608,18 +577,9 @@
   is_quic_allowed_ = false;
 
   // Disabling QUIC for a profile disables QUIC globally. As a side effect, new
-  // Profiles will also have QUIC disabled (because both IOThread's
-  // NetworkService and the network service, if enabled will disable QUIC).
-
+  // Profiles will also have QUIC disabled because the network service will
+  // disable QUIC.
   content::GetNetworkService()->DisableQuic();
-
-  IOThread* io_thread = g_browser_process->io_thread();
-  // Nothing more to do if IOThread has already been shut down.
-  if (!io_thread)
-    return;
-
-  base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::IO},
-                           base::BindOnce(&DisableQuicOnIOThread, io_thread));
 }
 
 void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams(
diff --git a/chrome/browser/net/system_network_context_manager.h b/chrome/browser/net/system_network_context_manager.h
index b9ae897..db73754 100644
--- a/chrome/browser/net/system_network_context_manager.h
+++ b/chrome/browser/net/system_network_context_manager.h
@@ -71,30 +71,6 @@
 
   static void RegisterPrefs(PrefRegistrySimple* registry);
 
-  // If the network service is disabled, |network_context_request| will be for
-  // the NetworkContext used by the SystemNetworkContextManager and
-  // |network_context_params| as needed to set up a system NetworkContext.
-  // Otherwise, this method can still be used to help set up the IOThread's
-  // in-process URLRequestContext.
-  //
-  // Must be called before the system NetworkContext is first used.
-  //
-  // |stub_resolver_enabled|, |dns_over_https_servers|,
-  // |http_auth_static_params|, |http_auth_dynamic_params|, and
-  // |is_quic_allowed| are used to pass initial NetworkService state to the
-  // caller, so the NetworkService can be configured appropriately. Using
-  // NetworkService's Mojo interface to set those options would lead to races
-  // with other UI->IO thread network-related tasks, since Mojo doesn't preserve
-  // execution order relative to PostTasks.
-  void SetUp(network::mojom::NetworkContextRequest* network_context_request,
-             network::mojom::NetworkContextParamsPtr* network_context_params,
-             bool* stub_resolver_enabled,
-             base::Optional<std::vector<network::mojom::DnsOverHttpsServerPtr>>*
-                 dns_over_https_servers,
-             network::mojom::HttpAuthStaticParamsPtr* http_auth_static_params,
-             network::mojom::HttpAuthDynamicParamsPtr* http_auth_dynamic_params,
-             bool* is_quic_allowed);
-
   // Returns the System NetworkContext. May only be called after SetUp(). Does
   // any initialization of the NetworkService that may be needed when first
   // called.
diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrome/browser/offline_pages/android/offline_page_bridge.cc
index 9a6c1658..deed342 100644
--- a/chrome/browser/offline_pages/android/offline_page_bridge.cc
+++ b/chrome/browser/offline_pages/android/offline_page_bridge.cc
@@ -912,13 +912,12 @@
   return offline_page_model_->IsArchiveInInternalDir(file_path);
 }
 
-jboolean OfflinePageBridge::IsUserRequestedDownloadNamespace(
+jboolean OfflinePageBridge::IsTemporaryNamespace(
     JNIEnv* env,
     const base::android::JavaParamRef<jobject>& obj,
     const base::android::JavaParamRef<jstring>& j_name_space) {
   std::string name_space(ConvertJavaStringToUTF8(env, j_name_space));
-  return (offline_page_model_->GetPolicyController()->IsUserRequestedDownload(
-      name_space));
+  return (offline_page_model_->GetPolicyController()->IsTemporary(name_space));
 }
 
 ScopedJavaLocalRef<jobject> OfflinePageBridge::GetOfflinePage(
diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.h b/chrome/browser/offline_pages/android/offline_page_bridge.h
index 6920263..17ce918 100644
--- a/chrome/browser/offline_pages/android/offline_page_bridge.h
+++ b/chrome/browser/offline_pages/android/offline_page_bridge.h
@@ -208,7 +208,7 @@
       const base::android::JavaParamRef<jobject>& obj,
       const base::android::JavaParamRef<jstring>& j_file_path);
 
-  jboolean IsUserRequestedDownloadNamespace(
+  jboolean IsTemporaryNamespace(
       JNIEnv* env,
       const base::android::JavaParamRef<jobject>& obj,
       const base::android::JavaParamRef<jstring>& j_name_space);
diff --git a/chrome/browser/offline_pages/background_loader_offliner.cc b/chrome/browser/offline_pages/background_loader_offliner.cc
index 2abdfbac..3b565d8b 100644
--- a/chrome/browser/offline_pages/background_loader_offliner.cc
+++ b/chrome/browser/offline_pages/background_loader_offliner.cc
@@ -160,7 +160,7 @@
 
   ClientPolicyController* policy_controller =
       offline_page_model_->GetPolicyController();
-  if (policy_controller->IsDisabledWhenPrefetchDisabled(
+  if (policy_controller->RequiresSpecificUserSettings(
           request.client_id().name_space) &&
       (AreThirdPartyCookiesBlocked(browser_context_) ||
        IsNetworkPredictionDisabled(browser_context_))) {
@@ -303,8 +303,9 @@
   // If we want to proceed with the file download, fail with
   // DOWNLOAD_THROTTLED. If we don't want to proceed with the file download,
   // fail with LOADING_FAILED_DOWNLOAD.
-  if (offline_page_model_->GetPolicyController()->ShouldAllowDownloads(
-          pending_request_.get()->client_id().name_space)) {
+  if (offline_page_model_->GetPolicyController()
+          ->AllowsConversionToBackgroundFileDownload(
+              pending_request_.get()->client_id().name_space)) {
     should_allow_downloads = true;
     final_status = Offliner::RequestStatus::DOWNLOAD_THROTTLED;
   }
diff --git a/chrome/browser/offline_pages/offline_page_utils.cc b/chrome/browser/offline_pages/offline_page_utils.cc
index 66f6332..e66cf96 100644
--- a/chrome/browser/offline_pages/offline_page_utils.cc
+++ b/chrome/browser/offline_pages/offline_page_utils.cc
@@ -352,7 +352,7 @@
   if (!offline_page_model || begin_time > end_time)
     return false;
   PageCriteria criteria;
-  criteria.removed_on_cache_reset = true;
+  criteria.lifetime_type = LifetimeType::TEMPORARY;
   offline_page_model->GetPagesWithCriteria(
       criteria, base::BindOnce(&DoCalculateSizeBetween, std::move(callback),
                                begin_time, end_time));
diff --git a/chrome/browser/profiles/profile_browsertest.cc b/chrome/browser/profiles/profile_browsertest.cc
index 00f2b62..bc6f1de 100644
--- a/chrome/browser/profiles/profile_browsertest.cc
+++ b/chrome/browser/profiles/profile_browsertest.cc
@@ -56,6 +56,7 @@
 #include "extensions/common/extension.h"
 #include "extensions/common/extension_builder.h"
 #include "extensions/common/value_builder.h"
+#include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
 #include "net/dns/mock_host_resolver.h"
 #include "net/net_buildflags.h"
diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc
index 5be1364..4675042 100644
--- a/chrome/browser/profiles/profile_io_data.cc
+++ b/chrome/browser/profiles/profile_io_data.cc
@@ -68,40 +68,11 @@
 #include "content/public/browser/resource_context.h"
 #include "content/public/common/content_switches.h"
 #include "extensions/buildflags/buildflags.h"
-#include "net/base/layered_network_delegate.h"
-#include "net/cert/caching_cert_verifier.h"
-#include "net/cert/cert_verifier.h"
-#include "net/cert/cert_verify_proc.h"
-#include "net/cert/ct_log_verifier.h"
-#include "net/cert/ct_policy_enforcer.h"
-#include "net/cert/multi_log_ct_verifier.h"
-#include "net/cert/multi_threaded_cert_verifier.h"
-#include "net/cookies/canonical_cookie.h"
-#include "net/cookies/cookie_store.h"
-#include "net/http/http_network_session.h"
-#include "net/http/http_transaction_factory.h"
-#include "net/http/http_util.h"
-#include "net/http/transport_security_persister.h"
-#include "net/net_buildflags.h"
-#include "net/nqe/network_quality_estimator.h"
 #include "net/ssl/client_cert_store.h"
-#include "net/traffic_annotation/network_traffic_annotation.h"
-#include "net/url_request/data_protocol_handler.h"
-#include "net/url_request/file_protocol_handler.h"
-#include "net/url_request/ftp_protocol_handler.h"
 #include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
-#include "net/url_request/url_request_context_builder.h"
-#include "net/url_request/url_request_context_storage.h"
-#include "net/url_request/url_request_file_job.h"
-#include "net/url_request/url_request_intercepting_job_factory.h"
-#include "net/url_request/url_request_interceptor.h"
-#include "net/url_request/url_request_job_factory_impl.h"
 #include "services/network/ignore_errors_cert_verifier.h"
 #include "services/network/network_service.h"
 #include "services/network/public/cpp/features.h"
-#include "services/network/public/cpp/proxy_config_mojom_traits.h"
-#include "services/network/url_request_context_builder_mojo.h"
 #include "third_party/blink/public/public_buildflags.h"
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -154,11 +125,6 @@
 #include "net/ssl/client_cert_store_mac.h"
 #endif  // defined(OS_MACOSX)
 
-#if BUILDFLAG(TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED)
-#include "net/cert/cert_verify_proc_builtin.h"
-#include "services/network/trial_comparison_cert_verifier_mojo.h"
-#endif
-
 using content::BrowserContext;
 using content::BrowserThread;
 using content::ResourceContext;
@@ -292,13 +258,6 @@
 
   params->io_thread = g_browser_process->io_thread();
 
-  ProfileNetworkContextServiceFactory::GetForContext(profile)
-      ->SetUpProfileIODataNetworkContext(
-          profile->IsOffTheRecord() /* in_memory */,
-          base::FilePath() /* relative_partition_path */,
-          &params->main_network_context_request,
-          &params->main_network_context_params);
-
   params->cookie_settings = CookieSettingsFactory::GetForProfile(profile);
   params->host_content_settings_map =
       HostContentSettingsMapFactory::GetForProfile(profile);
@@ -430,11 +389,9 @@
   // object to the IO thread after this function.
   BrowserContext::EnsureResourceContextInitialized(profile);
 
-  if (base::FeatureList::IsEnabled(network::features::kNetworkService)) {
-    base::PostTaskWithTraits(
-        FROM_HERE, {BrowserThread::IO},
-        base::BindOnce(&ProfileIOData::Init, base::Unretained(this)));
-  }
+  base::PostTaskWithTraits(
+      FROM_HERE, {BrowserThread::IO},
+      base::BindOnce(&ProfileIOData::Init, base::Unretained(this)));
 }
 
 ProfileIOData::ProfileParams::ProfileParams() = default;
@@ -546,10 +503,6 @@
          profile_type() == Profile::GUEST_PROFILE;
 }
 
-chrome_browser_net::Predictor* ProfileIOData::GetPredictor() {
-  return nullptr;
-}
-
 std::unique_ptr<net::ClientCertStore> ProfileIOData::CreateClientCertStore() {
   if (!client_cert_store_factory_.is_null())
     return client_cert_store_factory_.Run();
diff --git a/chrome/browser/profiles/profile_io_data.h b/chrome/browser/profiles/profile_io_data.h
index ada0638..2fdb8e4 100644
--- a/chrome/browser/profiles/profile_io_data.h
+++ b/chrome/browser/profiles/profile_io_data.h
@@ -25,18 +25,13 @@
 #include "chrome/browser/profiles/storage_partition_descriptor.h"
 #include "chrome/common/buildflags.h"
 #include "components/content_settings/core/common/content_settings_types.h"
+#include "components/prefs/pref_member.h"
 #include "components/signin/core/browser/account_consistency_method.h"
 #include "content/public/browser/content_browser_client.h"
 #include "content/public/browser/resource_context.h"
-#include "net/http/http_cache.h"
-#include "net/http/http_network_session.h"
-#include "net/net_buildflags.h"
-#include "net/url_request/url_request_context.h"
-#include "net/url_request/url_request_interceptor.h"
-#include "net/url_request/url_request_job_factory.h"
+#include "extensions/buildflags/buildflags.h"
 #include "ppapi/buildflags/buildflags.h"
 #include "services/network/public/mojom/network_service.mojom.h"
-#include "services/network/url_request_context_owner.h"
 
 class HostContentSettingsMap;
 class ProtocolHandlerRegistry;
@@ -183,10 +178,6 @@
     return protocol_handler_registry_io_thread_delegate_.get();
   }
 
-  // Returns the predictor service for this Profile. Returns nullptr if there is
-  // no Predictor, as is the case with OffTheRecord profiles.
-  virtual chrome_browser_net::Predictor* GetPredictor();
-
   // Get platform ClientCertStore. May return nullptr.
   std::unique_ptr<net::ClientCertStore> CreateClientCertStore();
 
@@ -214,11 +205,6 @@
     base::FilePath path;
     IOThread* io_thread = nullptr;
 
-    // Used to configure the main URLRequestContext through the IOThread's
-    // in-process network service.
-    network::mojom::NetworkContextRequest main_network_context_request;
-    network::mojom::NetworkContextParamsPtr main_network_context_params;
-
     scoped_refptr<content_settings::CookieSettings> cookie_settings;
     scoped_refptr<HostContentSettingsMap> host_content_settings_map;
 #if BUILDFLAG(ENABLE_EXTENSIONS)
diff --git a/chrome/browser/resources/bookmarks/app.html b/chrome/browser/resources/bookmarks/app.html
index 59e496a..80d1ab22 100644
--- a/chrome/browser/resources/bookmarks/app.html
+++ b/chrome/browser/resources/bookmarks/app.html
@@ -55,9 +55,11 @@
         transition: opacity 100ms ease-out;
       }
 
-      :host-context([dark]) #splitter:hover,
-      :host-context([dark]) #splitter.splitter-active {
-        border-inline-start-color: var(--cr-separator-color);
+      @media (prefers-color-scheme: dark) {
+        #splitter:hover,
+        #splitter.splitter-active {
+          border-inline-start-color: var(--cr-separator-color);
+        }
       }
 
       #sidebar {
diff --git a/chrome/browser/resources/bookmarks/folder_node.html b/chrome/browser/resources/bookmarks/folder_node.html
index c8ddfd3..bfb8b4d 100644
--- a/chrome/browser/resources/bookmarks/folder_node.html
+++ b/chrome/browser/resources/bookmarks/folder_node.html
@@ -57,10 +57,12 @@
         color: var(--interactive-color);
       }
 
-      :host-context([dark]) .drag-on .menu-label,
-      :host-context([dark]) .drag-on .folder-icon,
-      :host-context([dark]) .drag-on #arrow {
-        color: var(--google-grey-refresh-700);
+      @media (prefers-color-scheme: dark) {
+        .drag-on .menu-label,
+        .drag-on .folder-icon,
+        .drag-on #arrow {
+          color: var(--google-grey-refresh-700);
+        }
       }
 
       :host-context([dir='rtl']) #arrow:not([is-open]) {
diff --git a/chrome/browser/resources/bookmarks/item.html b/chrome/browser/resources/bookmarks/item.html
index ec8610f1..07b1429 100644
--- a/chrome/browser/resources/bookmarks/item.html
+++ b/chrome/browser/resources/bookmarks/item.html
@@ -28,9 +28,11 @@
         background-color: var(--highlight-color);
       }
 
-      :host-context([dark]):host([is-selected-item_]),
-      :host-context([dark]):host([is-selected-item_]) .folder-icon {
-        color: var(--google-grey-refresh-700);
+      @media (prefers-color-scheme: dark) {
+        :host([is-selected-item_]),
+        :host([is-selected-item_]) .folder-icon {
+          color: var(--google-grey-refresh-700);
+        }
       }
 
       #website-title {
@@ -44,8 +46,10 @@
         flex: 0 auto;
       }
 
-      :host-context([dark]):host([is-selected-item_]) #website-title {
-        color: var(--google-grey-900);
+      @media (prefers-color-scheme: dark) {
+        :host([is-selected-item_]) #website-title {
+          color: var(--google-grey-900);
+        }
       }
 
       #website-url {
@@ -57,8 +61,10 @@
         min-width: 100px;
       }
 
-      :host-context([dark]) #website-url {
-        color: var(--google-grey-800);
+      @media (prefers-color-scheme: dark) {
+        #website-url {
+          color: var(--google-grey-800);
+        }
       }
 
       :host([is-selected-item_]) #website-url {
@@ -73,8 +79,10 @@
         margin-inline-end: 12px;
       }
 
-      :host-context([dark]):host([is-selected-item_]) cr-icon-button {
-        --cr-icon-button-color: var(--google-grey-700);
+      @media (prefers-color-scheme: dark) {
+        :host([is-selected-item_]) cr-icon-button {
+          --cr-icon-button-color: var(--google-grey-700);
+        }
       }
 
       :host(:focus) {
diff --git a/chrome/browser/resources/bookmarks/shared_style.html b/chrome/browser/resources/bookmarks/shared_style.html
index 918778c..cca71c3 100644
--- a/chrome/browser/resources/bookmarks/shared_style.html
+++ b/chrome/browser/resources/bookmarks/shared_style.html
@@ -12,8 +12,10 @@
         margin: 8px 0;
       }
 
-      :host-context([dark]) hr {
-        background: var(--cr-separator-color);
+      @media (prefers-color-scheme: dark) {
+        hr {
+          background: var(--cr-separator-color);
+        }
       }
 
       .drag-above::before,
diff --git a/chrome/browser/resources/bookmarks/shared_vars.html b/chrome/browser/resources/bookmarks/shared_vars.html
index 4bf654a..b8d1fb3 100644
--- a/chrome/browser/resources/bookmarks/shared_vars.html
+++ b/chrome/browser/resources/bookmarks/shared_vars.html
@@ -18,11 +18,13 @@
     --splitter-width: 15px;
   }
 
-  html[dark] {
-    --folder-icon-color: var(--google-grey-refresh-500);
-    --folder-inactive-color: var(--google-grey-refresh-500);
-    --highlight-color: var(--google-blue-refresh-300);
-    --interactive-color: var(--google-blue-refresh-300);
+  @media (prefers-color-scheme: dark) {
+    html {
+      --folder-icon-color: var(--google-grey-refresh-500);
+      --folder-inactive-color: var(--google-grey-refresh-500);
+      --highlight-color: var(--google-blue-refresh-300);
+      --interactive-color: var(--google-blue-refresh-300);
+    }
   }
 </style>
 </custom-style>
diff --git a/chrome/browser/resources/bookmarks/toolbar.html b/chrome/browser/resources/bookmarks/toolbar.html
index 989db07d3..d008a5a 100644
--- a/chrome/browser/resources/bookmarks/toolbar.html
+++ b/chrome/browser/resources/bookmarks/toolbar.html
@@ -25,8 +25,10 @@
         margin: 4px;
       }
 
-      :host-context(html:not([dark])) cr-icon-button {
-        --cr-icon-button-color: currentColor;
+      @media (prefers-color-scheme: light) {
+        cr-icon-button {
+          --cr-icon-button-color: currentColor;
+        }
       }
 
       :host(:not([narrow_])) cr-toolbar-selection-overlay {
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ar.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ar.xtb
index 2772bcb..8b117ab 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ar.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ar.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 × 4</translation>
 <translation id="1664224225747386870">لم يتمّ تسجيل أيّ بيانات.</translation>
 <translation id="1862930711583847113">تعذّر تصدير <ph name="FILE" /></translation>
+<translation id="1899697626337024495">درجة دقة الصورة</translation>
 <translation id="2008689030244369546">مظهر جديد تمامًا</translation>
 <translation id="2036868001356139588">مدة المؤقِّت</translation>
 <translation id="2050339315714019657">رأسي</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">تم إيقاف التسجيل</translation>
 <translation id="2501953888035679275">يمكنك التقاط الصور وتسجيل الفيديوهات باستخدام الكاميرا.</translation>
 <translation id="2549985041256363841">بدء التسجيل</translation>
+<translation id="2599796128805996109">الكاميرا الخلفية</translation>
 <translation id="2968794441791257519">سيتم نقل الصور والفيديوهات الملتقَطة بالكاميرا إلى مجلد "التنزيلات". ويمكنك الوصول إليها من خلال "الملفات".
 
         ستتمكن التطبيقات المزوّدة بأذونات مساحة التخزين من الوصول إلى صورك وفيديوهاتك.</translation>
 <translation id="3081586908890909590">التبديل لتسجيل فيديو</translation>
 <translation id="3183731565330012717">نوع الشبكة</translation>
 <translation id="3227137524299004712">الميكروفون</translation>
+<translation id="3259149966178251584">درجة دقة الكاميرا</translation>
 <translation id="3517926952904427380">تعذّر التقاط صور أشخاص</translation>
 <translation id="3569311554794739032">هل تريد فعلاً إزالة <ph name="FILE" />؟</translation>
 <translation id="3810838688059735925">الفيديوهات</translation>
 <translation id="4279490309300973883">النسخ المطابق</translation>
 <translation id="4329152592498422850">التبديل لالتقاط صورة مربّعة</translation>
 <translation id="4445542136948522167">إيقاف التقاط الصورة</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> ميغابيكسل</translation>
+<translation id="4570032796877367747">الكاميرا الأمامية</translation>
 <translation id="4628948037717959914">صورة</translation>
 <translation id="4649291346448517080">تعذّر حفظ الملف</translation>
 <translation id="4890010094662541459">3 × 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">مزيد من المعلومات</translation>
 <translation id="6233780560267770709">3 × 3</translation>
 <translation id="6243827288366940320">النسبة الذهبية</translation>
+<translation id="6248749904681914629">الكاميرا الخارجية</translation>
+<translation id="6420689864531458495">‏(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> ميغابيكسل</translation>
 <translation id="6681668084120808868">التقاط صورة</translation>
 <translation id="6778482348691154169">تعذّر التقاط الصورة</translation>
 <translation id="6965382102122355670">موافق</translation>
 <translation id="698156982839284926">3 ثوانٍ</translation>
 <translation id="712848772518857951">هل تريد فعلاً إزالة <ph name="COUNT" /> من العناصر؟</translation>
+<translation id="7243947652761655814">درجة دقة الفيديو</translation>
 <translation id="7337660886763914220">أخطاء نظام الملفات.</translation>
 <translation id="7557677699350329807">التبديل إلى الكاميرا التالية</translation>
 <translation id="7608223098072244877">4 × 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">التبديل لالتقاط صورة</translation>
 <translation id="8261506727792406068">حذف</translation>
 <translation id="8428213095426709021">الإعدادات</translation>
+<translation id="8687491812650032292">دقة عالية <ph name="HEIGHT" />بكسل (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">التبديل لالتقاط صورة أشخاص</translation>
 <translation id="8870695351537079478">يتعذّر بدء التسجيل</translation>
 <translation id="9045155556724273246">10 ثوانٍ</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_da.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_da.xtb
index 0b32470..f49e1ad 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_da.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_da.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4x4</translation>
 <translation id="1664224225747386870">Der er ingen optagelser</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> kan ikke eksporteres</translation>
+<translation id="1899697626337024495">Billedopløsning</translation>
 <translation id="2008689030244369546">Et helt nyt udseende</translation>
 <translation id="2036868001356139588">Varighed for timer</translation>
 <translation id="2050339315714019657">Stående</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Optagelsen er stoppet</translation>
 <translation id="2501953888035679275">Tag billeder, og optag videoer med dit kamera.</translation>
 <translation id="2549985041256363841">Start optagelse</translation>
+<translation id="2599796128805996109">Bagsidekamera</translation>
 <translation id="2968794441791257519">Billeder og videoer, der er taget med kameraet, flyttes til mappen Downloads. Du kan få adgang til dem i Filer.
 
         Apps med lagertilladelser får adgang til dine billeder og videoer.</translation>
 <translation id="3081586908890909590">Skift til videooptagelse</translation>
 <translation id="3183731565330012717">Gittertype</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
+<translation id="3259149966178251584">Kameraets opløsning</translation>
 <translation id="3517926952904427380">Det var ikke muligt at tage et billede i stående format</translation>
 <translation id="3569311554794739032">Er du sikker på, at du vil fjerne <ph name="FILE" />?</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="4279490309300973883">Spejling</translation>
 <translation id="4329152592498422850">Skift for at tage et kvadratisk billede</translation>
 <translation id="4445542136948522167">Stop med at tage billedet</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> megapixels</translation>
+<translation id="4570032796877367747">Frontkamera</translation>
 <translation id="4628948037717959914">Billede</translation>
 <translation id="4649291346448517080">Filen kan ikke gemmes</translation>
 <translation id="4890010094662541459">3x3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Flere oplysninger</translation>
 <translation id="6233780560267770709">3 gange 3</translation>
 <translation id="6243827288366940320">Det gyldne snit</translation>
+<translation id="6248749904681914629">Eksternt kamera</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> – <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> megapixels</translation>
 <translation id="6681668084120808868">Tag billede</translation>
 <translation id="6778482348691154169">Der kan ikke tages et billede</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="698156982839284926">3 sekunder</translation>
 <translation id="712848772518857951">Er du sikker på, at du vil fjerne <ph name="COUNT" /> elementer?</translation>
+<translation id="7243947652761655814">Videoopløsning</translation>
 <translation id="7337660886763914220">Der er fejl i filsystemet.</translation>
 <translation id="7557677699350329807">Skift til næste kamera</translation>
 <translation id="7608223098072244877">4 gange 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Skift for at tage et billede</translation>
 <translation id="8261506727792406068">Slet</translation>
 <translation id="8428213095426709021">Indstillinger</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Skift for at tage et billede i stående format</translation>
 <translation id="8870695351537079478">Det er ikke muligt at starte en optagelse</translation>
 <translation id="9045155556724273246">10 sekunder</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_de.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_de.xtb
index a70add15..65626eb 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_de.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_de.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Keine Aufzeichnung</translation>
 <translation id="1862930711583847113">Export von "<ph name="FILE" />" nicht möglich</translation>
+<translation id="1899697626337024495">Fotoauflösung</translation>
 <translation id="2008689030244369546">Ein komplett neues Design</translation>
 <translation id="2036868001356139588">Timerdauer</translation>
 <translation id="2050339315714019657">Hochformat</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Aufnahme beendet</translation>
 <translation id="2501953888035679275">Sie können Fotos und Videos mit Ihrer Kamera aufnehmen.</translation>
 <translation id="2549985041256363841">Aufnahme starten</translation>
+<translation id="2599796128805996109">Kamera auf der Rückseite</translation>
 <translation id="2968794441791257519">Mit der Kamera aufgenommene Fotos und Videos werden in den Ordner "Downloads" verschoben. Sie können sie in der App "Dateien" ansehen.
 
         Apps mit Speicherberechtigungen haben Zugriff auf Ihre Fotos und Videos.</translation>
 <translation id="3081586908890909590">Zu Videomodus wechseln</translation>
 <translation id="3183731565330012717">Rastertyp</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
+<translation id="3259149966178251584">Kameraauflösung</translation>
 <translation id="3517926952904427380">Es konnte kein Foto im Hochformat aufgenommen werden</translation>
 <translation id="3569311554794739032">Möchten Sie "<ph name="FILE" />" wirklich entfernen?</translation>
 <translation id="3810838688059735925">Videos</translation>
 <translation id="4279490309300973883">Spiegelung</translation>
 <translation id="4329152592498422850">Zum Modus für quadratische Fotos wechseln</translation>
 <translation id="4445542136948522167">Fotoaufnahme beenden</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> Megapixel</translation>
+<translation id="4570032796877367747">Frontkamera</translation>
 <translation id="4628948037717959914">Foto</translation>
 <translation id="4649291346448517080">Datei konnte nicht gespeichert werden</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Weitere Informationen</translation>
 <translation id="6233780560267770709">3 mal 3</translation>
 <translation id="6243827288366940320">Goldener Schnitt</translation>
+<translation id="6248749904681914629">Externe Kamera</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> – <ph name="WIDTH" /> x <ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> Megapixel</translation>
 <translation id="6681668084120808868">Foto machen</translation>
 <translation id="6778482348691154169">Fotoaufnahme nicht möglich</translation>
 <translation id="6965382102122355670">Ok</translation>
 <translation id="698156982839284926">3 Sekunden</translation>
 <translation id="712848772518857951">Möchten Sie <ph name="COUNT" /> Elemente wirklich entfernen?</translation>
+<translation id="7243947652761655814">Videoauflösung</translation>
 <translation id="7337660886763914220">Fehler im Dateisystem.</translation>
 <translation id="7557677699350329807">Zur nächsten Kamera wechseln</translation>
 <translation id="7608223098072244877">4 mal 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Zu Fotomodus wechseln</translation>
 <translation id="8261506727792406068">Löschen</translation>
 <translation id="8428213095426709021">Einstellungen</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Zum Modus für Hochformat-Fotos wechseln</translation>
 <translation id="8870695351537079478">Videoaufnahme konnte nicht gestartet werden</translation>
 <translation id="9045155556724273246">10 Sekunden</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es.xtb
index 3054f99..1011f6b 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4x4</translation>
 <translation id="1664224225747386870">No se ha grabado nada</translation>
 <translation id="1862930711583847113">No se puede exportar <ph name="FILE" /></translation>
+<translation id="1899697626337024495">Resolución de las fotos</translation>
 <translation id="2008689030244369546">Un diseño totalmente nuevo</translation>
 <translation id="2036868001356139588">Duración del temporizador</translation>
 <translation id="2050339315714019657">Vertical</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Grabación detenida</translation>
 <translation id="2501953888035679275">Haz fotos y graba vídeos con la cámara.</translation>
 <translation id="2549985041256363841">Iniciar grabación</translation>
+<translation id="2599796128805996109">Cámara trasera</translation>
 <translation id="2968794441791257519">Las fotos y los vídeos hechos con la cámara se moverán a la carpeta Descargas. Podrás acceder a ellos con la aplicación Archivos.
 
         Las aplicaciones con permiso de almacenamiento podrán acceder a tus fotos y vídeos.</translation>
 <translation id="3081586908890909590">Cambiar al modo de cámara de vídeo</translation>
 <translation id="3183731565330012717">Tipo de cuadrícula</translation>
 <translation id="3227137524299004712">Micrófono</translation>
+<translation id="3259149966178251584">Resolución de la cámara</translation>
 <translation id="3517926952904427380">No se ha podido hacer una foto vertical</translation>
 <translation id="3569311554794739032">¿Seguro que quieres eliminar <ph name="FILE" />?</translation>
 <translation id="3810838688059735925">Vídeo</translation>
 <translation id="4279490309300973883">Duplicando</translation>
 <translation id="4329152592498422850">Cambiar para hacer una foto cuadrada</translation>
 <translation id="4445542136948522167">Detener foto</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> megapíxeles</translation>
+<translation id="4570032796877367747">Cámara delantera</translation>
 <translation id="4628948037717959914">Foto</translation>
 <translation id="4649291346448517080">No se puede guardar el archivo</translation>
 <translation id="4890010094662541459">3x3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Más información</translation>
 <translation id="6233780560267770709">Tres por tres</translation>
 <translation id="6243827288366940320">Proporción áurea</translation>
+<translation id="6248749904681914629">Cámara externa</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> megapíxeles</translation>
 <translation id="6681668084120808868">Sacar foto</translation>
 <translation id="6778482348691154169">No se puede hacer la foto</translation>
 <translation id="6965382102122355670">Aceptar</translation>
 <translation id="698156982839284926">3 segundos</translation>
 <translation id="712848772518857951">¿Seguro que quieres eliminar estos <ph name="COUNT" /> elementos?</translation>
+<translation id="7243947652761655814">Resolución de vídeo</translation>
 <translation id="7337660886763914220">Errores del sistema de archivos.</translation>
 <translation id="7557677699350329807">Cambiar a la siguiente cámara</translation>
 <translation id="7608223098072244877">Cuatro por cuatro</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Cambiar al modo de cámara de fotos</translation>
 <translation id="8261506727792406068">Eliminar</translation>
 <translation id="8428213095426709021">Configuración</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Cambiar para hacer una foto vertical</translation>
 <translation id="8870695351537079478">No se puede iniciar la grabación</translation>
 <translation id="9045155556724273246">10 segundos</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fa.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fa.xtb
index e0cc0df..904e177 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fa.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fa.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">۴ × ۴</translation>
 <translation id="1664224225747386870">چیزی ضبط نشد</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> صادر نشد</translation>
+<translation id="1899697626337024495">وضوح عکس</translation>
 <translation id="2008689030244369546">ظاهری کاملاً جدید</translation>
 <translation id="2036868001356139588">مدت تایمر</translation>
 <translation id="2050339315714019657">عمودی</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">ضبط متوقف شد</translation>
 <translation id="2501953888035679275">با دوربینتان عکس بگیرید و فیلم‌برداری کنید.</translation>
 <translation id="2549985041256363841">شروع ضبط</translation>
+<translation id="2599796128805996109">دوربین پشت</translation>
 <translation id="2968794441791257519">‏عکس‌ها و ویدیوهایی که با دوربین گرفته شده است، به پوشه «بارگیری‌ها» منتقل خواهد شد. می‌توانید در Files به آن‌ها دسترسی داشته باشید.
 
         برنامه‌هایی که مجوز فضای ذخیره‌سازی دارند، به عکس‌ها و ویدیوهایتان دسترسی خواهند داشت.</translation>
 <translation id="3081586908890909590">رفتن به حالت فیلم‌برداری</translation>
 <translation id="3183731565330012717">نوع جدول</translation>
 <translation id="3227137524299004712">میکروفن</translation>
+<translation id="3259149966178251584">وضوح دوربین</translation>
 <translation id="3517926952904427380">عدم‌امکان گرفتن عکس چهره</translation>
 <translation id="3569311554794739032">واقعاً می‌خواهید <ph name="FILE" /> را بردارید؟</translation>
 <translation id="3810838688059735925">فیلم</translation>
 <translation id="4279490309300973883">بازتاب می‌شود</translation>
 <translation id="4329152592498422850">تغییر وضعیت به گرفتن عکس مربع</translation>
 <translation id="4445542136948522167">توقف عکس‌برداری</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> مگاپیکسل</translation>
+<translation id="4570032796877367747">دوربین جلو</translation>
 <translation id="4628948037717959914">عکس</translation>
 <translation id="4649291346448517080">فایل ذخیره نشد</translation>
 <translation id="4890010094662541459">۳ × ۳</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">بیشتر بدانید</translation>
 <translation id="6233780560267770709">۳ در ۳</translation>
 <translation id="6243827288366940320">نسبت طلایی</translation>
+<translation id="6248749904681914629">دوربین خارجی</translation>
+<translation id="6420689864531458495">‏(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> مگاپیکسل</translation>
 <translation id="6681668084120808868">عکسبرداری</translation>
 <translation id="6778482348691154169">عکس‌برداری انجام نشد</translation>
 <translation id="6965382102122355670">قبول</translation>
 <translation id="698156982839284926">۳ ثانیه</translation>
 <translation id="712848772518857951">واقعاً می‌خواهید <ph name="COUNT" /> مورد را بردارید؟</translation>
+<translation id="7243947652761655814">وضوح ویدیو</translation>
 <translation id="7337660886763914220">خطاهایی در سیستم فایل روی داده است.</translation>
 <translation id="7557677699350329807">جابه‌جایی به دوربین بعدی</translation>
 <translation id="7608223098072244877">۴ در ۴</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">رفتن به حالت عکس‌برداری</translation>
 <translation id="8261506727792406068">حذف</translation>
 <translation id="8428213095426709021">تنظیمات</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">تغییر وضعیت به گرفتن عکس چهره</translation>
 <translation id="8870695351537079478">شروع ضبط انجام نشد</translation>
 <translation id="9045155556724273246">۱۰ ثانیه</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_gu.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_gu.xtb
index 2c71845..6310f37 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_gu.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_gu.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">કંઈ રેકોર્ડ થયું નથી</translation>
 <translation id="1862930711583847113"><ph name="FILE" />ની નિકાસ કરવામાં નિષ્ફળ રહ્યા</translation>
+<translation id="1899697626337024495">ફોટો રિઝોલ્યુશન</translation>
 <translation id="2008689030244369546">એકદમ નવો દેખાવ</translation>
 <translation id="2036868001356139588">ટાઇમર અવધિ</translation>
 <translation id="2050339315714019657">પોર્ટ્રેટ</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">રેકોર્ડિંગ બંધ કર્યું</translation>
 <translation id="2501953888035679275">તમારા કૅમેરા વડે ફોટા લો અને વીડિયો રેકોર્ડ કરો.</translation>
 <translation id="2549985041256363841">રેકોર્ડિંગ શરૂ કરો</translation>
+<translation id="2599796128805996109">પાછળનો કૅમેરા</translation>
 <translation id="2968794441791257519">કૅમેરા વડે લીધેલા ફોટા અને વીડિયો ડાઉનલોડ ફોલ્ડરમાં ખસેડવામાં આવશે. તમે તેઓને ફાઇલોમાં ઍક્સેસ કરી શકશો.
 
         સ્ટોરેજ માટે પરવાનગી ધરાવતી ઍપ તમારા ફોટા તથા વીડિયોને ઍક્સેસ કરી શકશે.</translation>
 <translation id="3081586908890909590">વીડિયો રેકોર્ડ કરવા માટે સ્વિચ કરો</translation>
 <translation id="3183731565330012717">ગ્રિડનો પ્રકાર</translation>
 <translation id="3227137524299004712">માઇક્રોફોન</translation>
+<translation id="3259149966178251584">કૅમેરાનું રિઝોલ્યુશન</translation>
 <translation id="3517926952904427380">પોર્ટ્રેટ ફોટો લઈ શકાતો નથી</translation>
 <translation id="3569311554794739032">શું તમે ખરેખર <ph name="FILE" />ને કાઢી નાખવા માગો છો?</translation>
 <translation id="3810838688059735925">વીડિયો</translation>
 <translation id="4279490309300973883">પ્રતિબિંબત થઈ રહ્યું છે</translation>
 <translation id="4329152592498422850">વર્ગાકાર ફોટો લેવા માટે સ્વિચ કરો</translation>
 <translation id="4445542136948522167">ફોટા લેવાનું બંધ કરો</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> મેગાપિક્સેલ</translation>
+<translation id="4570032796877367747">આગળનો કૅમેરા</translation>
 <translation id="4628948037717959914">ફોટો</translation>
 <translation id="4649291346448517080">ફાઇલ સાચવવામાં નિષ્ફળ રહ્યાં</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">વધુ જાણો</translation>
 <translation id="6233780560267770709">3 બાય 3</translation>
 <translation id="6243827288366940320">ગોલ્ડન રેશિયો</translation>
+<translation id="6248749904681914629">બાહ્ય કૅમેરો</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> મેગાપિક્સેલ</translation>
 <translation id="6681668084120808868">ફોટો લો</translation>
 <translation id="6778482348691154169">ફોટો લઈ શકાતો નથી</translation>
 <translation id="6965382102122355670">બરાબર, સમજાઇ ગયું</translation>
 <translation id="698156982839284926">3 સેકન્ડ</translation>
 <translation id="712848772518857951">શું તમે ખરેખર <ph name="COUNT" /> આઇટમ કાઢી નાખવા માગો છો?</translation>
+<translation id="7243947652761655814">વીડિયો રિઝોલ્યુશન</translation>
 <translation id="7337660886763914220">ફાઇલ સિસ્ટમની ભૂલો.</translation>
 <translation id="7557677699350329807">આગલા કૅમેરા પર સ્વિચ કરો</translation>
 <translation id="7608223098072244877">4 બાય 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">ફોટો લેવા માટે સ્વિચ કરો</translation>
 <translation id="8261506727792406068">ડિલીટ કરો</translation>
 <translation id="8428213095426709021">સેટિંગ્સ</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">પોર્ટ્રેટ ફોટો લેવા માટે સ્વિચ કરો</translation>
 <translation id="8870695351537079478">રેકોર્ડિંગ શરૂ કરી શકતાં નથી</translation>
 <translation id="9045155556724273246">10 સેકન્ડ</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_id.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_id.xtb
index 5a58a99..a26c41ef 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_id.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_id.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Tidak ada yang direkam</translation>
 <translation id="1862930711583847113">Tidak dapat mengekspor <ph name="FILE" /></translation>
+<translation id="1899697626337024495">Resolusi foto</translation>
 <translation id="2008689030244369546">Tampilan terbaru</translation>
 <translation id="2036868001356139588">Durasi timer</translation>
 <translation id="2050339315714019657">Potret</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Perekaman dihentikan</translation>
 <translation id="2501953888035679275">Mengambil foto dan merekam video dengan kamera.</translation>
 <translation id="2549985041256363841">Mulai merekam</translation>
+<translation id="2599796128805996109">Kamera belakang</translation>
 <translation id="2968794441791257519">Foto dan video yang diambil dengan kamera akan dipindahkan ke folder Download. Anda dapat mengaksesnya di File.
 
         Aplikasi yang memiliki izin penyimpanan dapat mengakses foto dan video.</translation>
 <translation id="3081586908890909590">Beralih ke mode merekam video</translation>
 <translation id="3183731565330012717">Jenis petak</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
+<translation id="3259149966178251584">Resolusi kamera</translation>
 <translation id="3517926952904427380">Tidak dapat mengambil foto potret</translation>
 <translation id="3569311554794739032">Yakin ingin menghapus <ph name="FILE" />?</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="4279490309300973883">Mencerminkan</translation>
 <translation id="4329152592498422850">Beralih ke mode mengambil foto persegi</translation>
 <translation id="4445542136948522167">Berhenti mengambil foto</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> megapiksel</translation>
+<translation id="4570032796877367747">Kamera depan</translation>
 <translation id="4628948037717959914">Foto</translation>
 <translation id="4649291346448517080">Tidak dapat menyimpan file</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Pelajari lebih lanjut</translation>
 <translation id="6233780560267770709">3 kali 3</translation>
 <translation id="6243827288366940320">Rasio emas</translation>
+<translation id="6248749904681914629">Kamera eksternal</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> megapiksel</translation>
 <translation id="6681668084120808868">Ambil foto</translation>
 <translation id="6778482348691154169">Tidak dapat mengambil foto</translation>
 <translation id="6965382102122355670">Oke</translation>
 <translation id="698156982839284926">3 detik</translation>
 <translation id="712848772518857951">Yakin ingin menghapus <ph name="COUNT" /> item?</translation>
+<translation id="7243947652761655814">Resolusi video</translation>
 <translation id="7337660886763914220">Error sistem file.</translation>
 <translation id="7557677699350329807">Beralih ke kamera berikutnya</translation>
 <translation id="7608223098072244877">4 kali 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Beralih ke mode mengambil foto</translation>
 <translation id="8261506727792406068">Hapus</translation>
 <translation id="8428213095426709021">Setelan</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Beralih ke mode mengambil foto potret</translation>
 <translation id="8870695351537079478">Tidak dapat memulai rekaman</translation>
 <translation id="9045155556724273246">10 detik</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ja.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ja.xtb
index 67652ec..92347f1 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ja.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ja.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4x4</translation>
 <translation id="1664224225747386870">何も記録されていません</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> をエクスポートできません</translation>
+<translation id="1899697626337024495">写真の解像度</translation>
 <translation id="2008689030244369546">一新されたデザイン</translation>
 <translation id="2036868001356139588">タイマーの時間</translation>
 <translation id="2050339315714019657">縦</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">録画を停止しました</translation>
 <translation id="2501953888035679275">カメラを使って写真や動画を撮影できます。</translation>
 <translation id="2549985041256363841">撮影を開始</translation>
+<translation id="2599796128805996109">背面カメラ</translation>
 <translation id="2968794441791257519">カメラで撮影した写真と動画を [ダウンロード] フォルダに移動します。これらの写真や動画には、[ファイル] からアクセスできます。
 
         また、ストレージへのアクセスが許可されているアプリからも、これらの写真や動画にアクセスできます。</translation>
 <translation id="3081586908890909590">動画の撮影に切り替え</translation>
 <translation id="3183731565330012717">グリッドの種類</translation>
 <translation id="3227137524299004712">マイク</translation>
+<translation id="3259149966178251584">カメラの解像度</translation>
 <translation id="3517926952904427380">縦向きの写真を撮影できません</translation>
 <translation id="3569311554794739032"><ph name="FILE" /> を削除してもよろしいですか?</translation>
 <translation id="3810838688059735925">動画</translation>
 <translation id="4279490309300973883">ミラーリング</translation>
 <translation id="4329152592498422850">スクエア写真の撮影に切り替え</translation>
 <translation id="4445542136948522167">写真の撮影をキャンセル</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />)<ph name="MEGAPIXEL" /> メガピクセル</translation>
+<translation id="4570032796877367747">前面カメラ</translation>
 <translation id="4628948037717959914">写真</translation>
 <translation id="4649291346448517080">ファイルを保存できません</translation>
 <translation id="4890010094662541459">3x3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">詳細</translation>
 <translation id="6233780560267770709">3 かける 3</translation>
 <translation id="6243827288366940320">黄金比</translation>
+<translation id="6248749904681914629">外部カメラ</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />×<ph name="HEIGHT" />)<ph name="MEGAPIXEL" /> メガピクセル</translation>
 <translation id="6681668084120808868">写真を撮る</translation>
 <translation id="6778482348691154169">写真を撮影できません</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="698156982839284926">3 秒</translation>
 <translation id="712848772518857951"><ph name="COUNT" /> 個のアイテムを削除してもよろしいですか?</translation>
+<translation id="7243947652761655814">動画の解像度</translation>
 <translation id="7337660886763914220">ファイル システムのエラーが発生しました。</translation>
 <translation id="7557677699350329807">次のカメラに切り替え</translation>
 <translation id="7608223098072244877">4x4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">写真の撮影に切り替え</translation>
 <translation id="8261506727792406068">削除</translation>
 <translation id="8428213095426709021">設定</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p(<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">縦向きの写真の撮影に切り替え</translation>
 <translation id="8870695351537079478">録画を開始できません</translation>
 <translation id="9045155556724273246">10 秒</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_kn.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_kn.xtb
index 45c7e918..f8bcbbb 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_kn.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_kn.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">ಏನನ್ನೂ ರೆಕಾರ್ಡ್ ಮಾಡಲಾಗಿಲ್ಲ</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> ರಫ್ತು ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
+<translation id="1899697626337024495">ಫೋಟೋ ರೆಸಲ್ಯೂಷನ್</translation>
 <translation id="2008689030244369546">ಸಂಪೂರ್ಣ ಹೊಸ ನೋಟ</translation>
 <translation id="2036868001356139588">ಟೈಮರ್ ಅವಧಿ</translation>
 <translation id="2050339315714019657">ಪೋಟ್ರೇಟ್</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">ರೆಕಾರ್ಡಿಂಗ್ ನಿಂತಿದೆ</translation>
 <translation id="2501953888035679275">ನಿಮ್ಮ ಕ್ಯಾಮರಾದ ಮೂಲಕ ಚಿತ್ರಗಳನ್ನು ತೆಗೆಯಿರಿ ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಿ.</translation>
 <translation id="2549985041256363841">ರೆಕಾರ್ಡಿಂಗ್ ಪ್ರಾರಂಭಿಸಿ</translation>
+<translation id="2599796128805996109">ಹಿಂಬದಿ ಕ್ಯಾಮರಾ</translation>
 <translation id="2968794441791257519">ಕ್ಯಾಮರಾದಿಂದ ತೆಗೆದ ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌ಗಳ ಫೋಲ್ಡರ್‌ಗೆ ವರ್ಗಾಯಿಸಲಾಗುತ್ತದೆ.
 
         ಸಂಗ್ರಹಣೆ ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿರುವ ಆ್ಯಪ್‌ಗಳು ನಿಮ್ಮ ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುತ್ತವೆ.</translation>
 <translation id="3081586908890909590">ವೀಡಿಯೊ ರೆಕಾರ್ಡ್ ಮೋಡ್‌ಗೆ ಬದಲಿಸಿ</translation>
 <translation id="3183731565330012717">ಗ್ರಿಡ್ ಪ್ರಕಾರ</translation>
 <translation id="3227137524299004712">ಮೈಕ್ರೋಫೋನ್</translation>
+<translation id="3259149966178251584">ಕ್ಯಾಮರಾ ರೆಸಲ್ಯೂಷನ್</translation>
 <translation id="3517926952904427380">ಪೋರ್ಟ್ರೇಟ್ ಫೋಟೋ ತೆಗೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="3569311554794739032">ನೀವು ನಿಜವಾಗಿಯೂ <ph name="FILE" /> ತೆಗೆದುಹಾಕಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="3810838688059735925">ವೀಡಿಯೊ</translation>
 <translation id="4279490309300973883">ಪ್ರತಿಬಿಂಬಿಸುವಿಕೆ</translation>
 <translation id="4329152592498422850">ಚೌಕಾಕಾರದ ಫೋಟೋ ತೆಗೆಯಲು ಬದಲಾಯಿಸಿ</translation>
 <translation id="4445542136948522167">ಫೋಟೋ ತೆಗೆಯುವುದನ್ನು ನಿಲ್ಲಿಸಿ</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> ಮೆಗಾ ಪಿಕ್ಸೆಲ್</translation>
+<translation id="4570032796877367747">ಮುಂಬದಿ ಕ್ಯಾಮರಾ</translation>
 <translation id="4628948037717959914">ಫೋಟೋ</translation>
 <translation id="4649291346448517080">ಫೈಲ್ ಉಳಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">ಗೋಲ್ಡನ್ ಅನುಪಾತ</translation>
+<translation id="6248749904681914629">ಬಾಹ್ಯ ಕ್ಯಾಮರಾ</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> ಮೆಗಾ ಪಿಕ್ಸೆಲ್</translation>
 <translation id="6681668084120808868">ಫೋಟೋ ತೆಗೆಯಿರಿ</translation>
 <translation id="6778482348691154169">ಫೋಟೋ ತೆಗೆದುಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="6965382102122355670">ಸರಿ</translation>
 <translation id="698156982839284926">3 ಸೆಕೆಂಡುಗಳು</translation>
 <translation id="712848772518857951">ನೀವು ನಿಜವಾಗಿಯೂ <ph name="COUNT" /> ಐಟಂಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಬಯಸುವಿರಾ?</translation>
+<translation id="7243947652761655814">ವೀಡಿಯೊ ರೆಸಲ್ಯೂಷನ್</translation>
 <translation id="7337660886763914220">ಫೈಲ್ ಸಿಸ್ಟಂ ದೋಷಗಳು.</translation>
 <translation id="7557677699350329807">ಮುಂದಿನ ಕ್ಯಾಮರಾಗೆ ಬದಲಿಸಿ</translation>
 <translation id="7608223098072244877">4 x 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">ಫೋಟೋ ತೆಗೆದುಕೊಳ್ಳಿ ಮೋಡ್‌ಗೆ ಬದಲಿಸಿ</translation>
 <translation id="8261506727792406068">ಅಳಿಸಿ</translation>
 <translation id="8428213095426709021">ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">ಪೋರ್ಟ್ರೇಟ್ ಫೋಟೋ ತೆಗೆಯಲು ಬದಲಾಯಿಸಿ</translation>
 <translation id="8870695351537079478">ರೆಕಾರ್ಡಿಂಗ್ ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="9045155556724273246">10 ಸೆಕೆಂಡುಗಳು</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ko.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ko.xtb
index 839191c..12e33ba 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ko.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ko.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4x4</translation>
 <translation id="1664224225747386870">녹화된 동영상이 없습니다.</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> 파일을 내보낼 수 없습니다.</translation>
+<translation id="1899697626337024495">사진 해상도</translation>
 <translation id="2008689030244369546">새로워진 디자인</translation>
 <translation id="2036868001356139588">타이머 시간</translation>
 <translation id="2050339315714019657">세로 방향</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">녹화가 중지되었습니다.</translation>
 <translation id="2501953888035679275">카메라로 사진을 찍고 동영상을 녹화합니다.</translation>
 <translation id="2549985041256363841">녹화 시작</translation>
+<translation id="2599796128805996109">후면 카메라</translation>
 <translation id="2968794441791257519">카메라로 촬영된 사진 및 동영상은 다운로드 폴더로 이동됩니다. 파일 앱에서 이러한 사진 및 동영상에 액세스할 수 있습니다.
 
         저장용량 권한이 있는 앱은 사진 및 동영상에 액세스할 수 있습니다.</translation>
 <translation id="3081586908890909590">동영상 녹화 모드로 전환</translation>
 <translation id="3183731565330012717">그리드 유형</translation>
 <translation id="3227137524299004712">마이크</translation>
+<translation id="3259149966178251584">카메라 해상도</translation>
 <translation id="3517926952904427380">세로 모드 사진을 찍을 수 없습니다.</translation>
 <translation id="3569311554794739032"><ph name="FILE" /> 파일을 삭제하시겠습니까?</translation>
 <translation id="3810838688059735925">동영상</translation>
 <translation id="4279490309300973883">미러링</translation>
 <translation id="4329152592498422850">스퀘어 사진 촬영으로 전환</translation>
 <translation id="4445542136948522167">사진 촬영 중지</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" />메가픽셀</translation>
+<translation id="4570032796877367747">전면 카메라</translation>
 <translation id="4628948037717959914">사진</translation>
 <translation id="4649291346448517080">파일을 저장할 수 없습니다.</translation>
 <translation id="4890010094662541459">3x3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">자세히 알아보기</translation>
 <translation id="6233780560267770709">3x3</translation>
 <translation id="6243827288366940320">황금 비율</translation>
+<translation id="6248749904681914629">외장 카메라</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" />메가픽셀</translation>
 <translation id="6681668084120808868">사진 찍기</translation>
 <translation id="6778482348691154169">사진을 찍을 수 없습니다.</translation>
 <translation id="6965382102122355670">확인</translation>
 <translation id="698156982839284926">3초</translation>
 <translation id="712848772518857951">항목 <ph name="COUNT" />개를 삭제하시겠습니까?</translation>
+<translation id="7243947652761655814">동영상 해상도</translation>
 <translation id="7337660886763914220">파일 시스템 오류가 발생했습니다.</translation>
 <translation id="7557677699350329807">다음 카메라로 전환</translation>
 <translation id="7608223098072244877">4x4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">사진 촬영 모드로 전환</translation>
 <translation id="8261506727792406068">삭제</translation>
 <translation id="8428213095426709021">설정</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p(<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">세로 모드 사진 촬영으로 전환</translation>
 <translation id="8870695351537079478">녹화를 시작할 수 없습니다.</translation>
 <translation id="9045155556724273246">10초</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ms.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ms.xtb
index 507fdcf..ca50a4e 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ms.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ms.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Tiada apa-apa yang dirakamkan</translation>
 <translation id="1862930711583847113">Tidak dapat mengeksport <ph name="FILE" /></translation>
+<translation id="1899697626337024495">Peleraian foto</translation>
 <translation id="2008689030244369546">Rupa serba baharu</translation>
 <translation id="2036868001356139588">Tempoh pemasa</translation>
 <translation id="2050339315714019657">Potret</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Rakaman dihentikan</translation>
 <translation id="2501953888035679275">Ambil foto dan rakam video dengan kamera anda.</translation>
 <translation id="2549985041256363841">Mulakan rakaman</translation>
+<translation id="2599796128805996109">Kamera belakang</translation>
 <translation id="2968794441791257519">Foto dan video yang diambil dengan kamera akan dialihkan ke folder Muat Turun. Anda boleh mengakses foto dan video itu dalam Fail.
 
         Apl yang diberikan kebenaran storan boleh mengakses foto dan video anda.</translation>
 <translation id="3081586908890909590">Beralih kepada merakam video</translation>
 <translation id="3183731565330012717">Jenis grid</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
+<translation id="3259149966178251584">Peleraian kamera</translation>
 <translation id="3517926952904427380">Tidak dapat mengambil foto potret</translation>
 <translation id="3569311554794739032">Adakah anda benar-benar mahu mengalih keluar <ph name="FILE" />?</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="4279490309300973883">Pencerminan</translation>
 <translation id="4329152592498422850">Beralih kepada mengambil foto segi empat sama</translation>
 <translation id="4445542136948522167">Berhenti mengambil foto</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> megapiksel</translation>
+<translation id="4570032796877367747">Kamera hadapan</translation>
 <translation id="4628948037717959914">Foto</translation>
 <translation id="4649291346448517080">Tidak dapat menyimpan fail</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Ketahui lebih lanjut</translation>
 <translation id="6233780560267770709">3 kali 3</translation>
 <translation id="6243827288366940320">Nisbah keemasan</translation>
+<translation id="6248749904681914629">Kamera luar</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> megapiksel</translation>
 <translation id="6681668084120808868">Ambil foto</translation>
 <translation id="6778482348691154169">Tidak dapat mengambil foto</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="698156982839284926">3 saat</translation>
 <translation id="712848772518857951">Adakah anda benar-benar mahu mengalih keluar <ph name="COUNT" /> item?</translation>
+<translation id="7243947652761655814">Peleraian video</translation>
 <translation id="7337660886763914220">Ralat sistem fail.</translation>
 <translation id="7557677699350329807">Beralih kepada kamera seterusnya</translation>
 <translation id="7608223098072244877">4 kali 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Beralih kepada mengambil foto</translation>
 <translation id="8261506727792406068">Padam</translation>
 <translation id="8428213095426709021">Tetapan</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Beralih kepada mengambil foto potret</translation>
 <translation id="8870695351537079478">Tidak dapat memulakan rakaman</translation>
 <translation id="9045155556724273246">10 saat</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_nl.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_nl.xtb
index 5940cd6..8b19764 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_nl.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_nl.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Niets opgenomen</translation>
 <translation id="1862930711583847113">Kan <ph name="FILE" /> niet exporteren</translation>
+<translation id="1899697626337024495">Fotoresolutie</translation>
 <translation id="2008689030244369546">Een geheel nieuw uiterlijk</translation>
 <translation id="2036868001356139588">Timerduur</translation>
 <translation id="2050339315714019657">Staand</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Opname gestopt</translation>
 <translation id="2501953888035679275">Maak foto's en neem video's op met je camera.</translation>
 <translation id="2549985041256363841">Opname starten</translation>
+<translation id="2599796128805996109">Camera aan achterzijde</translation>
 <translation id="2968794441791257519">Foto's en video's die zijn gemaakt met de camera worden verplaatst naar de map Downloads. Je kunt ze vinden via Bestanden.
 
         Apps met opslagmachtiging hebben toegang tot je foto's en video's.</translation>
 <translation id="3081586908890909590">Naar video opnemen</translation>
 <translation id="3183731565330012717">Rastertype</translation>
 <translation id="3227137524299004712">Microfoon</translation>
+<translation id="3259149966178251584">Cameraresolutie</translation>
 <translation id="3517926952904427380">Kan geen portretfoto maken</translation>
 <translation id="3569311554794739032">Weet je zeker dat je <ph name="FILE" /> wilt verwijderen?</translation>
 <translation id="3810838688059735925">Videobestanden</translation>
 <translation id="4279490309300973883">Mirroring</translation>
 <translation id="4329152592498422850">Schakel over om vierkante foto te maken</translation>
 <translation id="4445542136948522167">Foto maken stoppen</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> megapixel</translation>
+<translation id="4570032796877367747">Camera aan voorzijde</translation>
 <translation id="4628948037717959914">Foto</translation>
 <translation id="4649291346448517080">Kan het bestand niet opslaan</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Meer informatie</translation>
 <translation id="6233780560267770709">3 bij 3</translation>
 <translation id="6243827288366940320">Gulden snede</translation>
+<translation id="6248749904681914629">Externe camera</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> megapixel</translation>
 <translation id="6681668084120808868">Foto nemen</translation>
 <translation id="6778482348691154169">Kan geen foto maken</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="698156982839284926">3 seconden</translation>
 <translation id="712848772518857951">Weet je zeker dat je <ph name="COUNT" /> items wilt verwijderen?</translation>
+<translation id="7243947652761655814">Videoresolutie</translation>
 <translation id="7337660886763914220">Bestandssysteemfouten.</translation>
 <translation id="7557677699350329807">Naar volgende camera</translation>
 <translation id="7608223098072244877">4 bij 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Naar foto maken</translation>
 <translation id="8261506727792406068">Verwijderen</translation>
 <translation id="8428213095426709021">Instellingen</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Schakel over om portretfoto te maken</translation>
 <translation id="8870695351537079478">Kan opname niet starten</translation>
 <translation id="9045155556724273246">10 seconden</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-BR.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-BR.xtb
index 7bd23f2..98360b9 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-BR.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-BR.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nada gravado</translation>
 <translation id="1862930711583847113">Não foi possível exportar <ph name="FILE" /></translation>
+<translation id="1899697626337024495">Resolução da foto</translation>
 <translation id="2008689030244369546">Um visual totalmente novo</translation>
 <translation id="2036868001356139588">Duração do timer</translation>
 <translation id="2050339315714019657">Retrato</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">A gravação foi interrompida</translation>
 <translation id="2501953888035679275">Tire fotos e grave vídeos com sua câmera.</translation>
 <translation id="2549985041256363841">Iniciar gravação</translation>
+<translation id="2599796128805996109">Câmera traseira</translation>
 <translation id="2968794441791257519">As fotos e os vídeos capturados com a câmera serão movidos para a pasta "Downloads", e você poderá acessá-los no app Arquivos.
 
         Os apps com permissões de armazenamento terão acesso a seus vídeos e fotos.</translation>
 <translation id="3081586908890909590">Alternar para gravar vídeo</translation>
 <translation id="3183731565330012717">Tipo de grade</translation>
 <translation id="3227137524299004712">Microfone</translation>
+<translation id="3259149966178251584">Resolução da câmera</translation>
 <translation id="3517926952904427380">Não foi possível capturar o retrato</translation>
 <translation id="3569311554794739032">Tem certeza de que quer remover <ph name="FILE" />?</translation>
 <translation id="3810838688059735925">Vídeo</translation>
 <translation id="4279490309300973883">Espelhamento</translation>
 <translation id="4329152592498422850">Alternar para tirar foto quadrada</translation>
 <translation id="4445542136948522167">Parar de tirar foto</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> megapixel</translation>
+<translation id="4570032796877367747">Câmera frontal</translation>
 <translation id="4628948037717959914">Foto</translation>
 <translation id="4649291346448517080">Não foi possível salvar o arquivo</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Saiba mais</translation>
 <translation id="6233780560267770709">3 por 3</translation>
 <translation id="6243827288366940320">Número de ouro</translation>
+<translation id="6248749904681914629">Câmera externa</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> megapixel</translation>
 <translation id="6681668084120808868">Tirar foto</translation>
 <translation id="6778482348691154169">Não foi possível tirar a foto</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="698156982839284926">3 segundos</translation>
 <translation id="712848772518857951">Tem certeza de que quer remover <ph name="COUNT" /> itens?</translation>
+<translation id="7243947652761655814">Resolução do vídeo</translation>
 <translation id="7337660886763914220">Erros no sistema de arquivos.</translation>
 <translation id="7557677699350329807">Alternar para a próxima câmera</translation>
 <translation id="7608223098072244877">4 por 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Alternar para tirar foto</translation>
 <translation id="8261506727792406068">Excluir</translation>
 <translation id="8428213095426709021">Configurações</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Alternar para capturar um retrato</translation>
 <translation id="8870695351537079478">Não foi possível começar a gravação</translation>
 <translation id="9045155556724273246">10 segundos</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ru.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ru.xtb
index 711413f1..9fd3006 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ru.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ru.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Ничего не записано.</translation>
 <translation id="1862930711583847113">Не удалось экспортировать файл <ph name="FILE" />.</translation>
+<translation id="1899697626337024495">Разрешение фото</translation>
 <translation id="2008689030244369546">Новый дизайн</translation>
 <translation id="2036868001356139588">Длительность таймера</translation>
 <translation id="2050339315714019657">Книжная</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Запись остановлена</translation>
 <translation id="2501953888035679275">Съемка фото и видео на камеру устройства.</translation>
 <translation id="2549985041256363841">Начать запись</translation>
+<translation id="2599796128805996109">Основная камера</translation>
 <translation id="2968794441791257519">Фотографии и видео, полученные с камеры, будут перемещены в папку скачанных файлов. Вы также сможете найти их в папке "Файлы".
 
 Приложения, которым вы разрешили пользоваться хранилищем, получат доступ к вашим фотографиям и видео.</translation>
 <translation id="3081586908890909590">Переключиться на видеосъемку</translation>
 <translation id="3183731565330012717">Тип сетки</translation>
 <translation id="3227137524299004712">Микрофон</translation>
+<translation id="3259149966178251584">Разрешение камеры</translation>
 <translation id="3517926952904427380">Не удалось сделать вертикальное фото.</translation>
 <translation id="3569311554794739032">Удалить файл <ph name="FILE" />?</translation>
 <translation id="3810838688059735925">Видео</translation>
 <translation id="4279490309300973883">Отражение</translation>
 <translation id="4329152592498422850">Перейти к созданию квадратного фото</translation>
 <translation id="4445542136948522167">Отменить съемку</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> Мп</translation>
+<translation id="4570032796877367747">Фронтальная камера</translation>
 <translation id="4628948037717959914">Фото</translation>
 <translation id="4649291346448517080">Не удалось сохранить файл.</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Подробнее...</translation>
 <translation id="6233780560267770709">3 на 3</translation>
 <translation id="6243827288366940320">Золотое сечение</translation>
+<translation id="6248749904681914629">Внешняя камера</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> – <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> Мп</translation>
 <translation id="6681668084120808868">Сфотографировать</translation>
 <translation id="6778482348691154169">Не удалось сделать снимок</translation>
 <translation id="6965382102122355670">ОК</translation>
 <translation id="698156982839284926">3 секунды</translation>
 <translation id="712848772518857951">Удалить выбранные файлы (<ph name="COUNT" />)?</translation>
+<translation id="7243947652761655814">Разрешение видео</translation>
 <translation id="7337660886763914220">Ошибки файловой системы.</translation>
 <translation id="7557677699350329807">Переключиться на следующую камеру</translation>
 <translation id="7608223098072244877">4 на 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Переключиться на фотосъемку</translation>
 <translation id="8261506727792406068">Удалить</translation>
 <translation id="8428213095426709021">Настройки</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Перейти к созданию вертикального фото</translation>
 <translation id="8870695351537079478">Не удалось начать запись</translation>
 <translation id="9045155556724273246">10 секунд</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sv.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sv.xtb
index c30e54e..1336426 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sv.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sv.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 × 4</translation>
 <translation id="1664224225747386870">Ingenting spelades in</translation>
 <translation id="1862930711583847113">Det gick inte att exportera <ph name="FILE" /></translation>
+<translation id="1899697626337024495">Fotoupplösning</translation>
 <translation id="2008689030244369546">Ett helt nytt utseende</translation>
 <translation id="2036868001356139588">Timerns längd</translation>
 <translation id="2050339315714019657">Stående</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Inspelningen stoppades</translation>
 <translation id="2501953888035679275">Ta foton och spela in video med kameran.</translation>
 <translation id="2549985041256363841">Börja spela in</translation>
+<translation id="2599796128805996109">Bakre kamera</translation>
 <translation id="2968794441791257519">Videor och foton du tagit med kameran flyttas till mappen Nedladdningar. Du kan öppna dem i Filer.
 
         Fotona och videorna blir tillgängliga för appar som har åtkomstbehörighet till lagringsutrymmet.</translation>
 <translation id="3081586908890909590">Byt till videoinspelning</translation>
 <translation id="3183731565330012717">Typ av rutnät</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
+<translation id="3259149966178251584">Kameraupplösning</translation>
 <translation id="3517926952904427380">Det gick inte att ta porträttfoto</translation>
 <translation id="3569311554794739032">Vill du ta bort <ph name="FILE" />?</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="4279490309300973883">Spegling</translation>
 <translation id="4329152592498422850">Byt till att ta kvadratiskt foto</translation>
 <translation id="4445542136948522167">Sluta ta foton</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> megapixel</translation>
+<translation id="4570032796877367747">Främre kamera</translation>
 <translation id="4628948037717959914">Foto</translation>
 <translation id="4649291346448517080">Det gick inte att spara filen</translation>
 <translation id="4890010094662541459">3 × 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Läs mer</translation>
 <translation id="6233780560267770709">Tre gånger tre</translation>
 <translation id="6243827288366940320">Gyllene snittet</translation>
+<translation id="6248749904681914629">Extern kamera</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> – <ph name="WIDTH" /> x <ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> megapixel</translation>
 <translation id="6681668084120808868">Ta foto</translation>
 <translation id="6778482348691154169">Det gick inte att ta ett foto</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="698156982839284926">Tre sekunder</translation>
 <translation id="712848772518857951">Vill du ta bort <ph name="COUNT" /> objekt?</translation>
+<translation id="7243947652761655814">Videoupplösning</translation>
 <translation id="7337660886763914220">Fel i filsystemet.</translation>
 <translation id="7557677699350329807">Byt till nästa kamera</translation>
 <translation id="7608223098072244877">Fyra gånger fyra</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Byt till fotoläge</translation>
 <translation id="8261506727792406068">Radera</translation>
 <translation id="8428213095426709021">Inställningar</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Byt till att ta porträttfoto</translation>
 <translation id="8870695351537079478">Det gick inte att starta inspelningen</translation>
 <translation id="9045155556724273246">Tio sekunder</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_te.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_te.xtb
index 970536a..37aab9d 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_te.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_te.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">ఏదీ రికార్డ్ చేయలేదు</translation>
 <translation id="1862930711583847113"><ph name="FILE" />ను ఎగుమతి చేయడం సాధ్యం కాలేదు</translation>
+<translation id="1899697626337024495">ఫోటో రిజల్యూషన్</translation>
 <translation id="2008689030244369546">పూర్తిగా సరికొత్త రూపం</translation>
 <translation id="2036868001356139588">టైమర్ వ్యవధి</translation>
 <translation id="2050339315714019657">పోర్ట్రెయిట్</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">రికార్డింగ్ ఆపివేయబడింది</translation>
 <translation id="2501953888035679275">మీ కెమెరాతో ఫోటోలను తీయండి, వీడియోలను రికార్డ్ చేయండి.</translation>
 <translation id="2549985041256363841">రికార్డింగ్‌ను ప్రారంభించు</translation>
+<translation id="2599796128805996109">వెనుకవైపు కెమెరా</translation>
 <translation id="2968794441791257519">కెమెరాతో తీసిన ఫోటోలు మరియు వీడియోలు డౌన్‌లోడ్‌లు ఫోల్డర్‌కు తరలించబడతాయి. మీరు వాటిని ఫైల్స్‌లో యాక్సెస్ చేయవచ్చు. 
 
 నిల్వ అనుమతులు కలిగిన యాప్‌లు మీ ఫోటోలు మరియు వీడియోలను యాక్సెస్ చేయగలుగుతాయి.</translation>
 <translation id="3081586908890909590">వీడియో రికార్డింగ్ మోడ్‌కు మార్చు</translation>
 <translation id="3183731565330012717">గ్రిడ్ రకం</translation>
 <translation id="3227137524299004712">మైక్రోఫోన్</translation>
+<translation id="3259149966178251584">కెమెరా రిజల్యూషన్</translation>
 <translation id="3517926952904427380">పోర్ట్రెయిట్ ఫోటోను తీయలేకపోయింది</translation>
 <translation id="3569311554794739032">మీరు <ph name="FILE" />ను ఖచ్చితంగా తీసివేయాలనుకుంటున్నారా?</translation>
 <translation id="3810838688059735925">వీడియో</translation>
 <translation id="4279490309300973883">మిర్రరింగ్</translation>
 <translation id="4329152592498422850">చతురస్ర ఆకారంలో ఫోటోను తీసేలా మార్చు</translation>
 <translation id="4445542136948522167">ఫోటోను తీయడం ఆపివేయి</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> మెగా పిక్సెల్</translation>
+<translation id="4570032796877367747">ముందువైపు కెమెరా</translation>
 <translation id="4628948037717959914">ఫోటో</translation>
 <translation id="4649291346448517080">ఫైల్‌ను సేవ్ చేయడం సాధ్యం కాలేదు</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">మరింత తెలుసుకోండి</translation>
 <translation id="6233780560267770709">3 బై 3</translation>
 <translation id="6243827288366940320">గోల్డెన్ నిష్పత్తి</translation>
+<translation id="6248749904681914629">బయటి కెమెరా</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> మెగా పిక్సెల్</translation>
 <translation id="6681668084120808868">ఫోటోను తీయి</translation>
 <translation id="6778482348691154169">ఫోటో తీయలేకపోయింది</translation>
 <translation id="6965382102122355670">సరే</translation>
 <translation id="698156982839284926">3 సెకన్లు</translation>
 <translation id="712848772518857951">మీరు <ph name="COUNT" /> అంశాలను ఖచ్చితంగా తీసివేయాలనుకుంటున్నారా?</translation>
+<translation id="7243947652761655814">వీడియో రిజల్యూషన్</translation>
 <translation id="7337660886763914220">ఫైల్ సిస్టమ్ ఎర్రర్‌లు.</translation>
 <translation id="7557677699350329807">తర్వాతి కెమెరాకు మార్చు</translation>
 <translation id="7608223098072244877">4 బై 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">ఫోటోను తీయడానికి మార్చు</translation>
 <translation id="8261506727792406068">తొలగించు</translation>
 <translation id="8428213095426709021">సెట్టింగ్‌లు</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">పోర్ట్రెయిట్ ఫోటోను తీసే విధంగా మార్చు</translation>
 <translation id="8870695351537079478">రికార్డింగ్‌ను ప్రారంభించడం సాధ్యం కాలేదు</translation>
 <translation id="9045155556724273246">10 సెకన్లు</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_tr.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_tr.xtb
index 27f13a9..9ad3776 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_tr.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_tr.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Hiçbir şey kaydedilmedi</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> dışa aktarılamıyor</translation>
+<translation id="1899697626337024495">Fotoğraf Çözünürlüğü</translation>
 <translation id="2008689030244369546">Tamamıyla yeni bir görünüm</translation>
 <translation id="2036868001356139588">Zamanlayıcı süresi</translation>
 <translation id="2050339315714019657">Dikey</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Kayıt durduruldu</translation>
 <translation id="2501953888035679275">Kameranızla fotoğraf çekin ve video kaydedin.</translation>
 <translation id="2549985041256363841">Kaydı başlat</translation>
+<translation id="2599796128805996109">Arka kamera</translation>
 <translation id="2968794441791257519">Kamerayla çekilen fotoğraflar ve videolar, İndirilenler klasörüne taşınacaktır. Bunlara Dosyalar uygulamasından erişebilirsiniz.
 
         Depolama iznine sahip uygulamalar fotoğraflarınıza ve videolarınıza erişebilecektir.</translation>
 <translation id="3081586908890909590">Video kaydetmeye geç</translation>
 <translation id="3183731565330012717">Tablo türü</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
+<translation id="3259149966178251584">Kamera çözünürlüğü</translation>
 <translation id="3517926952904427380">Portre fotoğrafı çekilemiyor</translation>
 <translation id="3569311554794739032"><ph name="FILE" /> dosyasını kaldırmak istediğinizden emin misiniz?</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="4279490309300973883">Yansıtılıyor</translation>
 <translation id="4329152592498422850">Kare fotoğraf çekme moduna geç</translation>
 <translation id="4445542136948522167">Fotoğraf çekmeyi durdur</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> megapiksel</translation>
+<translation id="4570032796877367747">Ön kamera</translation>
 <translation id="4628948037717959914">Fotoğraf</translation>
 <translation id="4649291346448517080">Dosya kaydedilemiyor</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Daha fazla bilgi edinin</translation>
 <translation id="6233780560267770709">3'e 3</translation>
 <translation id="6243827288366940320">Altın oran</translation>
+<translation id="6248749904681914629">Harici kamera</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> megapiksel</translation>
 <translation id="6681668084120808868">Fotoğraf çek</translation>
 <translation id="6778482348691154169">Fotoğraf çekilemiyor</translation>
 <translation id="6965382102122355670">Tamam</translation>
 <translation id="698156982839284926">3 saniye</translation>
 <translation id="712848772518857951"><ph name="COUNT" /> öğeyi gerçekten kaldırmak istiyor musunuz?</translation>
+<translation id="7243947652761655814">Video çözünürlüğü</translation>
 <translation id="7337660886763914220">Dosya sistemi hataları.</translation>
 <translation id="7557677699350329807">Sonraki kameraya geç</translation>
 <translation id="7608223098072244877">4'e 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Fotoğraf çekme moduna geç</translation>
 <translation id="8261506727792406068">Sil</translation>
 <translation id="8428213095426709021">Ayarlar</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Portre fotoğrafı çekme moduna geç</translation>
 <translation id="8870695351537079478">Kayıt başlatılamıyor</translation>
 <translation id="9045155556724273246">10 saniye</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_uk.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_uk.xtb
index ff5526f5..67281cf 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_uk.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_uk.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Нічого не записано</translation>
 <translation id="1862930711583847113">Не вдається експортувати файл "<ph name="FILE" />"</translation>
+<translation id="1899697626337024495">Роздільна здатність фото</translation>
 <translation id="2008689030244369546">Абсолютно новий вигляд</translation>
 <translation id="2036868001356139588">Тривалість таймера</translation>
 <translation id="2050339315714019657">Портретна</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Запис припинено</translation>
 <translation id="2501953888035679275">Фотографуйте й записуйте відео камерою.</translation>
 <translation id="2549985041256363841">Почати запис</translation>
+<translation id="2599796128805996109">Камера на задній панелі</translation>
 <translation id="2968794441791257519">Фото й відео з камери перенесуться в папку "Завантаження", і ви зможете відкрити їх у Файлах.
 
         Також до них матимуть доступ додатки, яким дозволено використовувати пам’ять пристрою.</translation>
 <translation id="3081586908890909590">Перейти в режим запису відео</translation>
 <translation id="3183731565330012717">Тип сітки</translation>
 <translation id="3227137524299004712">Мікрофон</translation>
+<translation id="3259149966178251584">Роздільна здатність камери</translation>
 <translation id="3517926952904427380">Не вдалося зробити портретне фото</translation>
 <translation id="3569311554794739032">Видалити файл "<ph name="FILE" />"?</translation>
 <translation id="3810838688059735925">Відео</translation>
 <translation id="4279490309300973883">Дзеркальне відображення</translation>
 <translation id="4329152592498422850">Перейти в режим квадратного фото</translation>
 <translation id="4445542136948522167">Припинити фотографувати</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> мегапікс.</translation>
+<translation id="4570032796877367747">Камера на передній панелі</translation>
 <translation id="4628948037717959914">Фотографія</translation>
 <translation id="4649291346448517080">Не вдається зберегти файл</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Докладніше</translation>
 <translation id="6233780560267770709">3 на 3</translation>
 <translation id="6243827288366940320">Золотий перетин</translation>
+<translation id="6248749904681914629">Зовнішня камера</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> – <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> мегапікс.</translation>
 <translation id="6681668084120808868">Зробити фото</translation>
 <translation id="6778482348691154169">Не вдається сфотографувати</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="698156982839284926">3 секунди</translation>
 <translation id="712848772518857951">Видалити елементи (<ph name="COUNT" />)?</translation>
+<translation id="7243947652761655814">Роздільна здатність відео</translation>
 <translation id="7337660886763914220">Помилки файлової системи.</translation>
 <translation id="7557677699350329807">Перемкнутися на наступну камеру</translation>
 <translation id="7608223098072244877">4 на 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Перейти в режим фотозйомки</translation>
 <translation id="8261506727792406068">Видалити</translation>
 <translation id="8428213095426709021">Налаштування</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Перейти в режим портретного фото</translation>
 <translation id="8870695351537079478">Не вдалося почати запис</translation>
 <translation id="9045155556724273246">10 секунд</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_vi.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_vi.xtb
index 8e6b018..e6344d7 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_vi.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_vi.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Chưa ghi dữ liệu nào</translation>
 <translation id="1862930711583847113">Không thể xuất <ph name="FILE" /></translation>
+<translation id="1899697626337024495">Độ phân giải của ảnh</translation>
 <translation id="2008689030244369546">Giao diện hoàn toàn mới</translation>
 <translation id="2036868001356139588">Thời lượng bộ hẹn giờ</translation>
 <translation id="2050339315714019657">Khổ dọc</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">Đã dừng quay</translation>
 <translation id="2501953888035679275">Chụp ảnh và quay video bằng máy ảnh.</translation>
 <translation id="2549985041256363841">Bắt đầu ghi</translation>
+<translation id="2599796128805996109">Máy ảnh mặt sau</translation>
 <translation id="2968794441791257519">Ảnh và video mà bạn chụp và quay bằng máy ảnh sẽ được chuyển đến thư mục Tệp đã tải xuống. Bạn có thể truy cập vào những nội dung này trong ứng dụng Files.
 
         Ứng dụng có quyền truy cập vào bộ nhớ sẽ có quyền truy cập vào ảnh và video của bạn.</translation>
 <translation id="3081586908890909590">Chuyển sang quay video</translation>
 <translation id="3183731565330012717">Loại lưới</translation>
 <translation id="3227137524299004712">Micrô</translation>
+<translation id="3259149966178251584">Độ phân giải của máy ảnh</translation>
 <translation id="3517926952904427380">Không thể chụp ảnh chân dung</translation>
 <translation id="3569311554794739032">Bạn có thực sự muốn xóa <ph name="FILE" /> không?</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="4279490309300973883">Đang phản chiếu</translation>
 <translation id="4329152592498422850">Chuyển sang chụp ảnh vuông</translation>
 <translation id="4445542136948522167">Dừng chụp ảnh</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> megapixel</translation>
+<translation id="4570032796877367747">Máy ảnh mặt trước</translation>
 <translation id="4628948037717959914">Ảnh</translation>
 <translation id="4649291346448517080">Không thể lưu tệp</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">Tìm hiểu thêm</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">Tỷ lệ vàng</translation>
+<translation id="6248749904681914629">Máy ảnh bên ngoài</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> megapixel</translation>
 <translation id="6681668084120808868">Chụp ảnh</translation>
 <translation id="6778482348691154169">Không thể chụp ảnh</translation>
 <translation id="6965382102122355670">OK</translation>
 <translation id="698156982839284926">3 giây</translation>
 <translation id="712848772518857951">Bạn có thực sự muốn xóa <ph name="COUNT" /> mục không?</translation>
+<translation id="7243947652761655814">Độ phân giải video</translation>
 <translation id="7337660886763914220">Lỗi hệ thống tệp.</translation>
 <translation id="7557677699350329807">Chuyển sang máy ảnh tiếp theo</translation>
 <translation id="7608223098072244877">4 x 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">Chuyển sang chụp ảnh</translation>
 <translation id="8261506727792406068">Xóa</translation>
 <translation id="8428213095426709021">Cài đặt</translation>
+<translation id="8687491812650032292">HD <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">Chuyển sang chụp ảnh chân dung</translation>
 <translation id="8870695351537079478">Không thể bắt đầu quay</translation>
 <translation id="9045155556724273246">10 giây</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-CN.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-CN.xtb
index aea74a01..d041da6 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-CN.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-CN.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">未记录任何数据</translation>
 <translation id="1862930711583847113">无法导出“<ph name="FILE" />”</translation>
+<translation id="1899697626337024495">照片分辨率</translation>
 <translation id="2008689030244369546">全新面貌</translation>
 <translation id="2036868001356139588">定时器时长</translation>
 <translation id="2050339315714019657">纵向</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">已停止录制</translation>
 <translation id="2501953888035679275">使用相机拍照和录制视频。</translation>
 <translation id="2549985041256363841">开始录制</translation>
+<translation id="2599796128805996109">后置摄像头</translation>
 <translation id="2968794441791257519">使用此相机拍摄的照片和视频将被移至“下载内容”文件夹。您可在“文件”中访问它们。
 
         具有存储权限的应用将有权访问您的照片和视频。</translation>
 <translation id="3081586908890909590">切换到录制视频模式</translation>
 <translation id="3183731565330012717">网格类型</translation>
 <translation id="3227137524299004712">麦克风</translation>
+<translation id="3259149966178251584">摄像头分辨率</translation>
 <translation id="3517926952904427380">无法拍摄纵向照片</translation>
 <translation id="3569311554794739032">确定要移除“<ph name="FILE" />”吗?</translation>
 <translation id="3810838688059735925">视频</translation>
 <translation id="4279490309300973883">正在镜像</translation>
 <translation id="4329152592498422850">切换到正方形照片拍摄模式</translation>
 <translation id="4445542136948522167">停止拍照</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> 百万像素</translation>
+<translation id="4570032796877367747">前置摄像头</translation>
 <translation id="4628948037717959914">照片</translation>
 <translation id="4649291346448517080">无法保存文件</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">了解详情</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">黄金比例</translation>
+<translation id="6248749904681914629">外接摄像头</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> 百万像素</translation>
 <translation id="6681668084120808868">拍照</translation>
 <translation id="6778482348691154169">无法拍照</translation>
 <translation id="6965382102122355670">确定</translation>
 <translation id="698156982839284926">3 秒</translation>
 <translation id="712848772518857951">确定要移除这 <ph name="COUNT" /> 个文件吗?</translation>
+<translation id="7243947652761655814">视频分辨率</translation>
 <translation id="7337660886763914220">文件系统出错。</translation>
 <translation id="7557677699350329807">切换到下一个摄像头</translation>
 <translation id="7608223098072244877">4 x 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">切换到拍照模式</translation>
 <translation id="8261506727792406068">删除</translation>
 <translation id="8428213095426709021">设置</translation>
+<translation id="8687491812650032292">高清 <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">切换到纵向照片拍摄模式</translation>
 <translation id="8870695351537079478">无法开始录制</translation>
 <translation id="9045155556724273246">10 秒</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-TW.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-TW.xtb
index a0c8322..93f95754 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-TW.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-TW.xtb
@@ -8,6 +8,7 @@
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">未錄製任何內容</translation>
 <translation id="1862930711583847113">無法匯出「<ph name="FILE" />」</translation>
+<translation id="1899697626337024495">相片解析度</translation>
 <translation id="2008689030244369546">全新介面</translation>
 <translation id="2036868001356139588">計時器倒數時間</translation>
 <translation id="2050339315714019657">縱向</translation>
@@ -17,18 +18,22 @@
 <translation id="2501853267655415902">已停止錄影</translation>
 <translation id="2501953888035679275">使用相機拍攝相片及錄製影片。</translation>
 <translation id="2549985041256363841">開始錄影</translation>
+<translation id="2599796128805996109">後置鏡頭</translation>
 <translation id="2968794441791257519">使用相機拍攝的相片和影片將移至「下載內容」資料夾,你可以在「檔案」應用程式中找到這些內容。
 
         具備儲存空間權限的應用程式將可存取你的相片和影片。</translation>
 <translation id="3081586908890909590">切換為錄影模式</translation>
 <translation id="3183731565330012717">格線類型</translation>
 <translation id="3227137524299004712">麥克風</translation>
+<translation id="3259149966178251584">相機解析度</translation>
 <translation id="3517926952904427380">無法拍攝肖像相片</translation>
 <translation id="3569311554794739032">確定要移除「<ph name="FILE" />」嗎?</translation>
 <translation id="3810838688059735925">影片</translation>
 <translation id="4279490309300973883">鏡像</translation>
 <translation id="4329152592498422850">切換為正方形相片拍攝模式</translation>
 <translation id="4445542136948522167">停止拍照</translation>
+<translation id="4497569853498380347">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" />) <ph name="MEGAPIXEL" /> 百萬像素</translation>
+<translation id="4570032796877367747">前置鏡頭</translation>
 <translation id="4628948037717959914">相片</translation>
 <translation id="4649291346448517080">無法儲存檔案</translation>
 <translation id="4890010094662541459">3 x 3</translation>
@@ -42,11 +47,14 @@
 <translation id="6165508094623778733">瞭解詳情</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">黃金比例</translation>
+<translation id="6248749904681914629">外接鏡頭</translation>
+<translation id="6420689864531458495">(<ph name="ASPECT_RATIO_WIDTH" />:<ph name="ASPECT_RATIO_HEIGHT" /> - <ph name="WIDTH" />x<ph name="HEIGHT" />) <ph name="MEGAPIXEL" /> 百萬像素</translation>
 <translation id="6681668084120808868">拍照</translation>
 <translation id="6778482348691154169">無法拍照</translation>
 <translation id="6965382102122355670">確定</translation>
 <translation id="698156982839284926">3 秒</translation>
 <translation id="712848772518857951">確定要移除這 <ph name="COUNT" /> 個項目嗎?</translation>
+<translation id="7243947652761655814">影片解析度</translation>
 <translation id="7337660886763914220">檔案系統發生錯誤。</translation>
 <translation id="7557677699350329807">切換至下一個相機</translation>
 <translation id="7608223098072244877">4 乘 4</translation>
@@ -56,6 +64,7 @@
 <translation id="8145038249676204903">切換為拍照模式</translation>
 <translation id="8261506727792406068">刪除</translation>
 <translation id="8428213095426709021">設定</translation>
+<translation id="8687491812650032292">HD 高畫質 <ph name="HEIGHT" />p (<ph name="WIDTH" />:<ph name="HEIGHT" />)</translation>
 <translation id="8815966864175525708">切換為肖像相片拍攝模式</translation>
 <translation id="8870695351537079478">無法開始錄影</translation>
 <translation id="9045155556724273246">10 秒</translation>
diff --git a/chrome/browser/resources/chromeos/network_ui/.eslintrc.js b/chrome/browser/resources/chromeos/network_ui/.eslintrc.js
new file mode 100644
index 0000000..154df9a
--- /dev/null
+++ b/chrome/browser/resources/chromeos/network_ui/.eslintrc.js
@@ -0,0 +1,10 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module.exports = {
+  'rules': {
+    'no-var': 'error',
+    'prefer-const': 'error',
+  },
+};
diff --git a/chrome/browser/resources/chromeos/network_ui/BUILD.gn b/chrome/browser/resources/chromeos/network_ui/BUILD.gn
index 7f938a8..199569c5 100644
--- a/chrome/browser/resources/chromeos/network_ui/BUILD.gn
+++ b/chrome/browser/resources/chromeos/network_ui/BUILD.gn
@@ -12,10 +12,13 @@
 
 js_library("network_ui") {
   deps = [
+    "//chromeos/services/network_config/public/mojom:mojom_js_library_for_compile",
+    "//ui/webui/resources/cr_components/chromeos/network:mojo_interface_provider",
     "//ui/webui/resources/cr_elements/chromeos/network:cr_network_icon",
     "//ui/webui/resources/cr_elements/chromeos/network:cr_onc_types",
     "//ui/webui/resources/js:load_time_data",
     "//ui/webui/resources/js:util",
+    "//ui/webui/resources/js/chromeos:onc_mojo",
   ]
   externs_list = [ "$externs_path/networking_private.js" ]
 }
diff --git a/chrome/browser/resources/chromeos/network_ui/network_ui.html b/chrome/browser/resources/chromeos/network_ui/network_ui.html
index 7a3ad8e3..2895856 100644
--- a/chrome/browser/resources/chromeos/network_ui/network_ui.html
+++ b/chrome/browser/resources/chromeos/network_ui/network_ui.html
@@ -6,11 +6,13 @@
   <title id="network">$i18n{titleText}</title>
   <link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
   <link rel="stylesheet" href="chrome://network/network_ui.css">
+  <link rel="import" href="chrome://resources/cr_components/chromeos/network/mojo_interface_provider.html">
   <link rel="import" href="chrome://resources/cr_elements/chromeos/network/cr_network_icon.html">
   <link rel="import" href="chrome://resources/cr_elements/chromeos/network/cr_network_select.html">
   <link rel="import" href="chrome://resources/cr_elements/chromeos/network/cr_onc_types.html">
   <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
 
+  <script src="chrome://resources/js/chromeos/onc_mojo.js"></script>
   <script src="chrome://resources/js/load_time_data.js"></script>
   <script src="chrome://resources/js/util.js"></script>
   <script src="chrome://network/strings.js"></script>
@@ -99,8 +101,6 @@
       <td>GUID</td>
       <td>Name</td>
       <td>Type</td>
-      <td>Profile</td>
-      <td>Visible</td>
       <td>ONC Source</td>
     </tr>
   </table>
diff --git a/chrome/browser/resources/chromeos/network_ui/network_ui.js b/chrome/browser/resources/chromeos/network_ui/network_ui.js
index 7b0b70f..98d0293 100644
--- a/chrome/browser/resources/chromeos/network_ui/network_ui.js
+++ b/chrome/browser/resources/chromeos/network_ui/network_ui.js
@@ -5,14 +5,24 @@
 /**
  * @fileoverview Builds UI elements shown in chrome://networks debugging page.
  */
-var networkUI = {};
+const networkUI = {};
 
-/** @typedef {CrOnc.NetworkStateProperties|CrOnc.DeviceStateProperties} */
+/** @typedef {chromeos.networkConfig.mojom.NetworkStateProperties} */
+networkUI.NetworkStateProperties;
+
+/** @typedef {chromeos.networkConfig.mojom.DeviceStateProperties} */
+networkUI.DeviceStateProperties;
+
+/**
+ * @typedef {networkUI.NetworkStateProperties|networkUI.DeviceStateProperties}
+ */
 networkUI.StateProperties;
 
-var NetworkUI = (function() {
+const NetworkUI = (function() {
   'use strict';
 
+  const mojom = chromeos.networkConfig.mojom;
+
   CrOncStrings = {
     OncTypeCellular: loadTimeData.getString('OncTypeCellular'),
     OncTypeEthernet: loadTimeData.getString('OncTypeEthernet'),
@@ -39,24 +49,31 @@
   // Properties to display in the network state table. Each entry can be either
   // a single state field or an array of state fields. If more than one is
   // specified then the first non empty value is used.
-  var NETWORK_STATE_FIELDS = [
-    'GUID', 'Name', 'Type', 'ConnectionState', 'connectable', 'ErrorState',
-    'WiFi.Security', ['Cellular.NetworkTechnology', 'EAP.EAP'],
-    'Cellular.ActivationState', 'Cellular.RoamingState', 'WiFi.Frequency',
-    'WiFi.SignalStrength'
+  const NETWORK_STATE_FIELDS = [
+    'guid', 'name', 'type', 'connectionState', 'connectable', 'errorState',
+    'wifi.security', ['cellular.networkTechnology', 'EAP.EAP'],
+    'cellular.activationState', 'cellular.roaming', 'wifi.frequency',
+    'wifi.signalStrength'
   ];
 
-  var FAVORITE_STATE_FIELDS =
-      ['GUID', 'Name', 'Type', 'profile_path', 'visible', 'Source'];
+  const FAVORITE_STATE_FIELDS = ['guid', 'name', 'type', 'source'];
 
-  var DEVICE_STATE_FIELDS = ['Type', 'State'];
+  const DEVICE_STATE_FIELDS = ['type', 'deviceState'];
+
+  /**
+   * This UI will use both the networkingPrivate extension API and the
+   * networkConfig mojo API until we provide all of the required functionality
+   * in networkConfig. TODO(stevenjb): Remove use of networkingPrivate api.
+   * @type {?mojom.CrosNetworkConfigProxy}
+   */
+  let networkConfigProxy = null;
 
   /**
    * Creates and returns a typed HTMLTableCellElement.
    *
    * @return {!HTMLTableCellElement} A new td element.
    */
-  var createTableCellElement = function() {
+  const createTableCellElement = function() {
     return /** @type {!HTMLTableCellElement} */ (document.createElement('td'));
   };
 
@@ -65,7 +82,7 @@
    *
    * @return {!HTMLTableRowElement} A new tr element.
    */
-  var createTableRowElement = function() {
+  const createTableRowElement = function() {
     return /** @type {!HTMLTableRowElement} */ (document.createElement('tr'));
   };
 
@@ -80,16 +97,17 @@
    * @return {*} The value associated with the property or undefined if the
    *     key (any part of it) is not defined.
    */
-  var getOncProperty = function(state, key) {
-    var dict = /** @type {!Object} */ (state);
-    var keys = key.split('.');
+  const getOncProperty = function(state, key) {
+    let dict = /** @type {!Object} */ (state);
+    const keys = key.split('.');
     while (keys.length > 1) {
-      var k = keys.shift();
+      const k = keys.shift();
       dict = dict[k];
       if (!dict || typeof dict != 'object')
         return undefined;
     }
-    return dict[keys.shift()];
+    const k = keys.shift();
+    return OncMojo.getTypeString(k, dict[k]);
   };
 
   /**
@@ -99,10 +117,10 @@
    * @return {!HTMLTableCellElement} The created td element that displays the
    *     given value.
    */
-  var createStateTableExpandButton = function(state) {
-    var cell = createTableCellElement();
+  const createStateTableExpandButton = function(state) {
+    const cell = createTableCellElement();
     cell.className = 'state-table-expand-button-cell';
-    var button = document.createElement('button');
+    const button = document.createElement('button');
     button.addEventListener('click', function(event) {
       toggleExpandRow(/** @type {!HTMLElement} */ (event.target), state);
     });
@@ -119,15 +137,16 @@
    * @return {!HTMLTableCellElement} The created td element that displays the
    *     icon.
    */
-  var createStateTableIcon = function(state) {
-    var cell = createTableCellElement();
+  const createStateTableIcon = function(state) {
+    const cell = createTableCellElement();
     cell.className = 'state-table-icon-cell';
-    var icon = /** @type {!CrNetworkIconElement} */ (
+    const icon = /** @type {!CrNetworkIconElement} */ (
         document.createElement('cr-network-icon'));
     icon.isListItem = true;
     icon.networkState = {
       GUID: '',
-      Type: state.Type,
+      Type: /** @type{chrome.networkingPrivate.NetworkType} */ (
+          OncMojo.getNetworkTypeString(state.type)),
     };
     cell.appendChild(icon);
     return cell;
@@ -140,8 +159,8 @@
    * @return {!HTMLTableCellElement} The created td element that displays the
    *     given value.
    */
-  var createStateTableCell = function(value) {
-    var cell = createTableCellElement();
+  const createStateTableCell = function(value) {
+    const cell = createTableCellElement();
     cell.textContent = value || '';
     return cell;
   };
@@ -154,24 +173,24 @@
    * @return {!HTMLTableRowElement} The created tr element that contains the
    *     network state information.
    */
-  var createStateTableRow = function(stateFields, state) {
-    var row = createTableRowElement();
+  const createStateTableRow = function(stateFields, state) {
+    const row = createTableRowElement();
     row.className = 'state-table-row';
     row.appendChild(createStateTableExpandButton(state));
     row.appendChild(createStateTableIcon(state));
-    for (var i = 0; i < stateFields.length; ++i) {
-      var field = stateFields[i];
-      var value;
+    for (let i = 0; i < stateFields.length; ++i) {
+      const field = stateFields[i];
+      let value;
       if (typeof field == 'string') {
         value = getOncProperty(state, field);
       } else {
-        for (var j = 0; j < field.length; ++j) {
+        for (let j = 0; j < field.length; ++j) {
           value = getOncProperty(state, field[j]);
           if (value != undefined)
             break;
         }
       }
-      if (field == 'GUID')
+      if (field == 'guid')
         value = value.slice(0, 8);
       row.appendChild(createStateTableCell(value));
     }
@@ -185,10 +204,10 @@
    * @param {!Array<string>} stateFields The list of fields for the table.
    * @param {!Array<!networkUI.StateProperties>} states
    */
-  var createStateTable = function(tablename, stateFields, states) {
-    var table = $(tablename);
-    var oldRows = table.querySelectorAll('.state-table-row');
-    for (var i = 0; i < oldRows.length; ++i)
+  const createStateTable = function(tablename, stateFields, states) {
+    const table = $(tablename);
+    const oldRows = table.querySelectorAll('.state-table-row');
+    for (let i = 0; i < oldRows.length; ++i)
       table.removeChild(oldRows[i]);
     states.forEach(function(state) {
       table.appendChild(createStateTableRow(stateFields, state));
@@ -201,7 +220,7 @@
    * @param {string} guid A GUID which may start with a digit.
    * @return {string} A valid HTMLElement id.
    */
-  var idFromGuid = function(guid) {
+  const idFromGuid = function(guid) {
     return '_' + guid.replace(/[{}]/g, '');
   };
 
@@ -212,34 +231,42 @@
    * @param {string} type A Shill or ONC network type
    * @return {string} A valid HTMLElement id.
    */
-  var idFromType = function(type) {
+  const idFromTypeString = function(type) {
     return '_' + type.replace(/[{}_]/g, '').toLowerCase();
   };
 
   /**
+   * @param {!mojom.NetworkType} type
+   * @return {string} A valid HTMLElement id.
+   */
+  const idFromType = function(type) {
+    return idFromTypeString(OncMojo.getNetworkTypeString(type));
+  };
+
+  /**
    * This callback function is triggered when visible networks are received.
    *
-   * @param {!Array<!CrOnc.NetworkStateProperties>} states
+   * @param {!Array<!networkUI.NetworkStateProperties>} states
    */
-  var onVisibleNetworksReceived = function(states) {
+  const onVisibleNetworksReceived = function(states) {
     createStateTable('network-state-table', NETWORK_STATE_FIELDS, states);
   };
 
   /**
    * This callback function is triggered when favorite networks are received.
    *
-   * @param {!Array<!CrOnc.NetworkStateProperties>} states
+   * @param {!Array<!networkUI.NetworkStateProperties>} states
    */
-  var onFavoriteNetworksReceived = function(states) {
+  const onFavoriteNetworksReceived = function(states) {
     createStateTable('favorite-state-table', FAVORITE_STATE_FIELDS, states);
   };
 
   /**
    * This callback function is triggered when device states are received.
    *
-   * @param {!Array<!CrOnc.DeviceStateProperties>} states
+   * @param {!Array<!networkUI.DeviceStateProperties>} states
    */
-  var onDeviceStatesReceived = function(states) {
+  const onDeviceStatesReceived = function(states) {
     createStateTable('device-state-table', DEVICE_STATE_FIELDS, states);
   };
 
@@ -250,15 +277,15 @@
    * @param {!HTMLElement} btn The button that was clicked.
    * @param {!networkUI.StateProperties} state
    */
-  var toggleExpandRow = function(btn, state) {
-    var cell = btn.parentNode;
-    var row = /** @type {!HTMLTableRowElement} */ (cell.parentNode);
+  const toggleExpandRow = function(btn, state) {
+    const cell = btn.parentNode;
+    const row = /** @type {!HTMLTableRowElement} */ (cell.parentNode);
     if (btn.textContent == '-') {
       btn.textContent = '+';
       row.parentNode.removeChild(row.nextSibling);
     } else {
       btn.textContent = '-';
-      var expandedRow = createExpandedRow(state, row);
+      const expandedRow = createExpandedRow(state, row);
       row.parentNode.insertBefore(expandedRow, row.nextSibling);
     }
   };
@@ -271,21 +298,21 @@
    *     the new row.
    * @return {!HTMLTableRowElement} The created tr element for the expanded row.
    */
-  var createExpandedRow = function(state, baseRow) {
+  const createExpandedRow = function(state, baseRow) {
     assert(state);
-    var guid = state.GUID || '';
-    var expandedRow = createTableRowElement();
+    const guid = state.guid || '';
+    const expandedRow = createTableRowElement();
     expandedRow.className = 'state-table-row';
-    var emptyCell = createTableCellElement();
+    const emptyCell = createTableCellElement();
     emptyCell.style.border = 'none';
     expandedRow.appendChild(emptyCell);
-    var detailCell = createTableCellElement();
-    detailCell.id = guid ? idFromGuid(guid) : idFromType(state.Type);
+    const detailCell = createTableCellElement();
+    detailCell.id = guid ? idFromGuid(guid) : idFromType(state.type);
     detailCell.className = 'state-table-expanded-cell';
     detailCell.colSpan = baseRow.childNodes.length - 1;
     expandedRow.appendChild(detailCell);
-    var selected = $('get-property-format').selectedIndex;
-    var selectedId = $('get-property-format').options[selected].value;
+    const selected = $('get-property-format').selectedIndex;
+    const selectedId = $('get-property-format').options[selected].value;
     if (guid)
       handleNetworkDetail(guid, selectedId, detailCell);
     else
@@ -299,13 +326,22 @@
    * @param {string} selectedId
    * @param {!HTMLTableCellElement} detailCell
    */
-  var handleNetworkDetail = function(guid, selectedId, detailCell) {
+  const handleNetworkDetail = function(guid, selectedId, detailCell) {
     if (selectedId == 'shill') {
       chrome.send('getShillNetworkProperties', [guid]);
     } else if (selectedId == 'state') {
-      chrome.networkingPrivate.getState(guid, function(properties) {
-        showDetail(detailCell, properties, chrome.runtime.lastError);
-      });
+      networkConfigProxy.getNetworkState(guid)
+          .then((responseParams) => {
+            if (responseParams && responseParams.result) {
+              showDetail(detailCell, responseParams.result);
+            } else {
+              showDetailError(
+                  detailCell, 'GetNetworkState(' + guid + ') failed');
+            }
+          })
+          .catch((error) => {
+            showDetailError(detailCell, 'Mojo service failure: ' + error);
+          });
     } else if (selectedId == 'managed') {
       chrome.networkingPrivate.getManagedProperties(guid, function(properties) {
         showDetail(detailCell, properties, chrome.runtime.lastError);
@@ -323,9 +359,9 @@
    * @param {string} selectedId
    * @param {!HTMLTableCellElement} detailCell
    */
-  var handleDeviceDetail = function(state, selectedId, detailCell) {
+  const handleDeviceDetail = function(state, selectedId, detailCell) {
     if (selectedId == 'shill') {
-      chrome.send('getShillDeviceProperties', [state.Type]);
+      chrome.send('getShillDeviceProperties', [state.type]);
     } else {
       showDetail(detailCell, state);
     }
@@ -333,16 +369,25 @@
 
   /**
    * @param {!HTMLTableCellElement} detailCell
-   * @param {!CrOnc.NetworkStateProperties|!CrOnc.DeviceStateProperties|
+   * @param {!networkUI.NetworkStateProperties|!networkUI.DeviceStateProperties|
    *     !chrome.networkingPrivate.ManagedProperties|
    *     !chrome.networkingPrivate.NetworkProperties} state
    * @param {!Object=} error
    */
-  var showDetail = function(detailCell, state, error) {
-    if (error && error.message)
-      detailCell.textContent = error.message;
-    else
-      detailCell.textContent = JSON.stringify(state, null, '\t');
+  const showDetail = function(detailCell, state, error) {
+    if (error && error.message) {
+      showDetailError(detailCell, error.message);
+      return;
+    }
+    detailCell.textContent = JSON.stringify(state, null, '\t');
+  };
+
+  /**
+   * @param {!HTMLTableCellElement} detailCell
+   * @param {string} error
+   */
+  const showDetailError = function(detailCell, error) {
+    detailCell.textContent = error;
   };
 
   /**
@@ -351,15 +396,15 @@
    * @param {Array} args The requested Shill properties. Will contain
    *     just the 'GUID' and 'ShillError' properties if the call failed.
    */
-  var getShillNetworkPropertiesResult = function(args) {
-    var properties = args.shift();
-    var guid = properties['GUID'];
+  const getShillNetworkPropertiesResult = function(args) {
+    const properties = args.shift();
+    const guid = properties['GUID'];
     if (!guid) {
       console.error('No GUID in getShillNetworkPropertiesResult');
       return;
     }
 
-    var detailCell = document.querySelector('td#' + idFromGuid(guid));
+    const detailCell = document.querySelector('td#' + idFromGuid(guid));
     if (!detailCell) {
       console.error('No cell for GUID: ' + guid);
       return;
@@ -369,7 +414,6 @@
       detailCell.textContent = properties['ShillError'];
     else
       detailCell.textContent = JSON.stringify(properties, null, '\t');
-
   };
 
   /**
@@ -378,15 +422,15 @@
    * @param {Array} args The requested Shill properties. Will contain
    *     just the 'Type' and 'ShillError' properties if the call failed.
    */
-  var getShillDevicePropertiesResult = function(args) {
-    var properties = args.shift();
-    var type = properties['Type'];
+  const getShillDevicePropertiesResult = function(args) {
+    const properties = args.shift();
+    const type = properties['Type'];
     if (!type) {
       console.error('No Type in getShillDevicePropertiesResult');
       return;
     }
 
-    var detailCell = document.querySelector('td#' + idFromType(type));
+    const detailCell = document.querySelector('td#' + idFromTypeString(type));
     if (!detailCell) {
       console.error('No cell for Type: ' + type);
       return;
@@ -396,7 +440,6 @@
       detailCell.textContent = properties['ShillError'];
     else
       detailCell.textContent = JSON.stringify(properties, null, '\t');
-
   };
 
   /**
@@ -405,51 +448,63 @@
    *     opened. If this value is false, it means that no cellular network was
    *     available to be activated.
    */
-  var openCellularActivationUiResult = function(didOpenActivationUi) {
+  const openCellularActivationUiResult = function(didOpenActivationUi) {
     $('cellular-error-text').hidden = didOpenActivationUi;
   };
 
   /**
    * Requests that the cellular activation UI be displayed.
    */
-  var openCellularActivationUi = function() {
+  const openCellularActivationUi = function() {
     chrome.send('openCellularActivationUi');
   };
 
   /**
    * Requests an update of all network info.
    */
-  var requestNetworks = function() {
-    chrome.networkingPrivate.getNetworks(
-        {
-          'networkType': chrome.networkingPrivate.NetworkType.ALL,
-          'visible': true
-        },
-        onVisibleNetworksReceived);
-    chrome.networkingPrivate.getNetworks(
-        {
-          'networkType': chrome.networkingPrivate.NetworkType.ALL,
-          'configured': true
-        },
-        onFavoriteNetworksReceived);
-    chrome.networkingPrivate.getDeviceStates(onDeviceStatesReceived);
+  const requestNetworks = function() {
+    networkConfigProxy
+        .getNetworkStateList({
+          filter: mojom.FilterType.kVisible,
+          networkType: mojom.NetworkType.kAll,
+          limit: mojom.kNoLimit,
+        })
+        .then((responseParams) => {
+          onVisibleNetworksReceived(responseParams.result);
+        });
+
+    networkConfigProxy
+        .getNetworkStateList({
+          filter: mojom.FilterType.kConfigured,
+          networkType: mojom.NetworkType.kAll,
+          limit: mojom.kNoLimit,
+        })
+        .then((responseParams) => {
+          onFavoriteNetworksReceived(responseParams.result);
+        });
+
+    networkConfigProxy.getDeviceStateList().then((responseParams) => {
+      onDeviceStatesReceived(responseParams.result);
+    });
   };
 
   /**
    * Requests the global policy dictionary and updates the page.
    */
-  var requestGlobalPolicy = function() {
+  const requestGlobalPolicy = function() {
     chrome.networkingPrivate.getGlobalPolicy(function(policy) {
       document.querySelector('#global-policy').textContent =
           JSON.stringify(policy, null, '\t');
     });
   };
 
-  /**
-   * Sets refresh rate if the interval is found in the url.
-   */
-  var setRefresh = function() {
-    var interval = parseQueryParams(window.location)['refresh'];
+  /** Initialize NetworkUI state. */
+  const init = function() {
+    networkConfigProxy = network_config.MojoInterfaceProviderImpl.getInstance()
+                             .getMojoServiceProxy();
+
+    /** Set the refresh rate if the interval is found in the url. */
+    const interval = parseQueryParams(window.location)['refresh'];
     if (interval && interval != '')
       setInterval(requestNetworks, parseInt(interval, 10) * 1000);
   };
@@ -460,7 +515,7 @@
    * if the network requires a password.
    * @param {!Event<!CrOnc.NetworkStateProperties>} event
    */
-  var onNetworkItemSelected = function(event) {
+  const onNetworkItemSelected = function(event) {
     const state = event.detail;
 
     // If the network is already connected, show network details.
@@ -496,7 +551,7 @@
    * Gets network information from WebUI and sets custom items.
    */
   document.addEventListener('DOMContentLoaded', function() {
-    let select = document.querySelector('cr-network-select');
+    const select = document.querySelector('cr-network-select');
     select.customItems = [
       {customItemName: 'Add WiFi', polymerIcon: 'cr:add', customData: 'WiFi'},
       {customItemName: 'Add VPN', polymerIcon: 'cr:add', customData: 'VPN'}
@@ -504,7 +559,7 @@
     select.addEventListener('network-item-selected', onNetworkItemSelected);
     $('cellular-activation-button').onclick = openCellularActivationUi;
     $('refresh').onclick = requestNetworks;
-    setRefresh();
+    init();
     requestNetworks();
     requestGlobalPolicy();
   });
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
index 0c00294..b84522d 100644
--- a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
+++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
@@ -1523,7 +1523,7 @@
     var toggleRippleAnimation = enabled => {
       dailyRefreshItem.classList.toggle('ripple-animation', enabled);
     };
-    toggleRippleAnimation(navigator.online);
+    toggleRippleAnimation(navigator.onLine);
     window.setTimeout(() => {
       toggleRippleAnimation(false);
     }, 360);
diff --git a/chrome/browser/resources/downloads/item.html b/chrome/browser/resources/downloads/item.html
index 9a2060d..c9bab20 100644
--- a/chrome/browser/resources/downloads/item.html
+++ b/chrome/browser/resources/downloads/item.html
@@ -34,10 +34,12 @@
         outline: none;
       }
 
-      :host-context([dark]) {
-        --controlled-by-active-color: inherit;
-        --controlled-by-active-link-color: var(--cr-link-color);
-        --controlled-by-inactive-color: inherit;
+      @media (prefers-color-scheme: dark) {
+        :host {
+          --controlled-by-active-color: inherit;
+          --controlled-by-active-link-color: var(--cr-link-color);
+          --controlled-by-inactive-color: inherit;
+        }
       }
 
       cr-button {
@@ -74,8 +76,10 @@
         @apply --cr-card-elevation;
       }
 
-      :host-context(html:not([dark])) #content.is-active {
-        background-color: var(--cr-card-background-color);
+      @media (prefers-color-scheme: light) {
+        #content.is-active {
+          background-color: var(--cr-card-background-color);
+        }
       }
 
       #content:not(.is-active) {
@@ -83,9 +87,11 @@
         border: 1px var(--google-grey-300) solid;
       }
 
-      :host-context([dark]) #content:not(.is-active) {
-        background: none;  /* override */
-        border-color: var(--google-grey-800);
+      @media (prefers-color-scheme: dark) {
+        #content:not(.is-active) {
+          background: none;  /* override */
+          border-color: var(--google-grey-800);
+        }
       }
 
       #details {
@@ -100,24 +106,30 @@
         padding-top: 16px;
       }
 
-      :host-context([dark]) #details {
-        border-color: rgba(var(--google-grey-800-rgb), .8);
+      @media (prefers-color-scheme: dark) {
+        #details {
+          border-color: rgba(var(--google-grey-800-rgb), .8);
+        }
       }
 
       #content:not(.is-active) #details {
         color: rgba(27, 27, 27, .6);
       }
 
-      :host-context([dark]) #content:not(.is-active) #details {
-        color: rgba(var(--google-grey-refresh-500-rgb), .6);
+      @media (prefers-color-scheme: dark) {
+        #content:not(.is-active) #details {
+          color: rgba(var(--google-grey-refresh-500-rgb), .6);
+        }
       }
 
       #content:not(.is-active) #name {
         text-decoration: line-through;
       }
 
-      :host-context([dark]) #content:not(.is-active) :-webkit-any(#name, #tag) {
-        color: var(--google-grey-refresh-500);
+      @media (prefers-color-scheme: dark) {
+        #content:not(.is-active) :-webkit-any(#name, #tag) {
+          color: var(--google-grey-refresh-500);
+        }
       }
 
       .icon-wrapper {
@@ -163,9 +175,11 @@
         color: var(--google-yellow-500);
       }
 
-      :host-context([dark]) #file-icon-wrapper iron-icon[icon='cr:warning'],
-      :host-context([dark]) .dangerous #description {
-        color: var(--google-red-refresh-300);
+      @media (prefers-color-scheme: dark) {
+        #file-icon-wrapper iron-icon[icon='cr:warning'],
+        .dangerous #description {
+          color: var(--google-red-refresh-300);
+        }
       }
 
       #name,
@@ -180,9 +194,10 @@
         word-break: break-all;
       }
 
-      :host-context(html:not([dark])) .is-active
-          :-webkit-any(#name, #file-link, #show) {
-        color: var(--google-blue-600);
+      @media (prefers-color-scheme: light) {
+        .is-active :-webkit-any(#name, #file-link, #show) {
+          color: var(--google-blue-600);
+        }
       }
 
       #name {
@@ -214,8 +229,10 @@
         margin-top: 16px;
       }
 
-      :host-context(html:not([dark])) .is-active #description {
-        color: #616161;
+      @media (prefers-color-scheme: light) {
+        .is-active #description {
+          color: #616161;
+        }
       }
 
       #progress {
@@ -225,9 +242,11 @@
         width: auto;
       }
 
-      :host-context([dark]) #progress {
-        --paper-progress-active-color: var(--google-blue-refresh-300);
-        --paper-progress-container-color: var(--google-grey-800);
+      @media (prefers-color-scheme: dark) {
+        #progress {
+          --paper-progress-active-color: var(--google-blue-refresh-300);
+          --paper-progress-container-color: var(--google-grey-800);
+        }
       }
 
       #show {
diff --git a/chrome/browser/resources/downloads/manager.html b/chrome/browser/resources/downloads/manager.html
index 015710b..acd701b 100644
--- a/chrome/browser/resources/downloads/manager.html
+++ b/chrome/browser/resources/downloads/manager.html
@@ -32,8 +32,10 @@
         @apply --cr-page-host;
       }
 
-      :host-context([dark]) {
-        color: var(--cr-secondary-text-color);
+      @media (prefers-color-scheme: dark) {
+        :host {
+          color: var(--cr-secondary-text-color);
+        }
       }
 
       #toolbar {
@@ -81,8 +83,10 @@
         min-height: min-content;
       }
 
-      :host-context([dark]) #no-downloads {
-        color: var(--cr-secondary-text-color);
+      @media (prefers-color-scheme: dark) {
+        #no-downloads {
+          color: var(--cr-secondary-text-color);
+        }
       }
 
       #no-downloads .illustration {
diff --git a/chrome/browser/resources/downloads/toolbar.html b/chrome/browser/resources/downloads/toolbar.html
index f90470d..77edf5f 100644
--- a/chrome/browser/resources/downloads/toolbar.html
+++ b/chrome/browser/resources/downloads/toolbar.html
@@ -32,8 +32,10 @@
         margin: 4px;
       }
 
-      :host-context(html:not([dark])) cr-icon-button {
-        --cr-icon-button-color: currentColor;
+      @media (prefers-color-scheme: light) {
+        cr-icon-button {
+          --cr-icon-button-color: currentColor;
+        }
       }
     </style>
     <cr-toolbar id="toolbar" page-name="$i18n{title}"
diff --git a/chrome/browser/resources/extensions/code_section.html b/chrome/browser/resources/extensions/code_section.html
index f453c12..b4721b1 100644
--- a/chrome/browser/resources/extensions/code_section.html
+++ b/chrome/browser/resources/extensions/code_section.html
@@ -17,10 +17,12 @@
         display: block;
       }
 
-      :host-context([dark]) {
-        --container-bg: rgba(0, 0, 0, .4);
-        --line-bg: var(--google-grey-800);
-        --main-color: var(--cr-primary-text-color);
+      @media (prefers-color-scheme: dark) {
+        :host {
+          --container-bg: rgba(0, 0, 0, .4);
+          --line-bg: var(--google-grey-800);
+          --main-color: var(--cr-primary-text-color);
+        }
       }
 
       #scroll-container {
@@ -30,8 +32,10 @@
         position: relative;
       }
 
-      :host-context(html:not([dark])) #scroll-container {
-        border: 1px solid var(--paper-grey-500);
+      @media (prefers-color-scheme: light) {
+        #scroll-container {
+          border: 1px solid var(--paper-grey-500);
+        }
       }
 
       #main {
@@ -49,8 +53,10 @@
         text-align: end;
       }
 
-      :host-context(html:not([dark])) #line-numbers {
-        border-inline-end: 1px solid var(--paper-grey-500);
+      @media (prefers-color-scheme: light) {
+        #line-numbers {
+          border-inline-end: 1px solid var(--paper-grey-500);
+        }
       }
 
       #source {
@@ -68,12 +74,14 @@
         text-align: center;
       }
 
-      :host-context(html:not([dark])) #no-code {
-        color: var(--paper-grey-800);
-      }
+      @media (prefers-color-scheme: light) {
+        #no-code {
+          color: var(--paper-grey-800);
+        }
 
-      :host-context(html:not([dark])) .more-code {
-        color: var(--paper-grey-500);
+        .more-code {
+          color: var(--paper-grey-500);
+        }
       }
 
       #highlight-description {
@@ -81,9 +89,11 @@
         overflow: hidden;
       }
 
-      :host-context([dark]) mark {
-        background-color: var(--google-yellow-refresh-300);
-        color: var(--google-grey-900);
+      @media (prefers-color-scheme: dark) {
+        mark {
+          background-color: var(--google-yellow-refresh-300);
+          color: var(--google-grey-900);
+        }
       }
     </style>
     <div id="scroll-container" hidden="[[!highlighted_]]" dir="ltr">
diff --git a/chrome/browser/resources/extensions/detail_view.html b/chrome/browser/resources/extensions/detail_view.html
index c279068..0b64fcf 100644
--- a/chrome/browser/resources/extensions/detail_view.html
+++ b/chrome/browser/resources/extensions/detail_view.html
@@ -55,8 +55,10 @@
         color: var(--google-blue-500);
       }
 
-      :host-context([dark]) #enable-section .enabled-text {
-        color: var(--google-blue-refresh-300);
+      @media (prefers-color-scheme: dark) {
+        #enable-section .enabled-text {
+          color: var(--google-blue-refresh-300);
+        }
       }
 
       #icon {
@@ -107,13 +109,15 @@
         width: auto;  /* override the default button size of 24x24 */
       }
 
-      :host-context(html:not([dark])) .warning .action-button {
-        background: white;
-        color: var(--google-blue-500);
-      }
+      @media (prefers-color-scheme: light) {
+        .warning .action-button {
+          background: white;
+          color: var(--google-blue-500);
+        }
 
-      :host-context(html:not([dark])) #reload-button {
-        color: var(--google-blue-500);
+        #reload-button {
+          color: var(--google-blue-500);
+        }
       }
 
       .warning span {
diff --git a/chrome/browser/resources/extensions/drop_overlay.html b/chrome/browser/resources/extensions/drop_overlay.html
index 985c3ca..b3209817 100644
--- a/chrome/browser/resources/extensions/drop_overlay.html
+++ b/chrome/browser/resources/extensions/drop_overlay.html
@@ -23,9 +23,11 @@
         z-index: 10;
       }
 
-      :host-context([dark]) {
-        /* TODO(dbeam): share with cr-dialog dialog::backdrop? */
-        background-color: rgba(0, 0, 0, .6);
+      @media (prefers-color-scheme: dark) {
+        :host {
+          /* TODO(dbeam): share with cr-dialog dialog::backdrop? */
+          background-color: rgba(0, 0, 0, .6);
+        }
       }
 
       #container {
diff --git a/chrome/browser/resources/extensions/extensions.html b/chrome/browser/resources/extensions/extensions.html
index 51406cb..ed51757 100644
--- a/chrome/browser/resources/extensions/extensions.html
+++ b/chrome/browser/resources/extensions/extensions.html
@@ -35,13 +35,15 @@
       height: 54px;
     }
 
-    html[dark].loading.in-dev-mode body::before {
-      background: none;
-    }
+    @media (prefers-color-scheme: dark) {
+      html.loading.in-dev-mode body::before {
+        background: none;
+      }
 
-    html[dark].loading::before,
-    html[dark].loading.in-dev-mode body::before {
-      border-bottom: var(--md-toolbar-border);
+      html.loading::before,
+      html.loading.in-dev-mode body::before {
+        border-bottom: var(--md-toolbar-border);
+      }
     }
 
     html,
diff --git a/chrome/browser/resources/extensions/install_warnings_dialog.html b/chrome/browser/resources/extensions/install_warnings_dialog.html
index 3763bf59..760a8a4 100644
--- a/chrome/browser/resources/extensions/install_warnings_dialog.html
+++ b/chrome/browser/resources/extensions/install_warnings_dialog.html
@@ -19,10 +19,12 @@
         padding-top: 10px;
       }
 
-      :host-context([dark]) div[slot='body'] ul {
-        /* TODO(dbeam): merge with --cr-input-background-color? */
-        background-color: rgba(0, 0, 0, .3);
-        color: var(--error-color);
+      @media (prefers-color-scheme: dark) {
+        div[slot='body'] ul {
+          /* TODO(dbeam): merge with --cr-input-background-color? */
+          background-color: rgba(0, 0, 0, .3);
+          color: var(--error-color);
+        }
       }
     </style>
     <cr-dialog id="dialog" close-text="$i18n{close}">
diff --git a/chrome/browser/resources/extensions/item_list.html b/chrome/browser/resources/extensions/item_list.html
index 40c9027..339e774 100644
--- a/chrome/browser/resources/extensions/item_list.html
+++ b/chrome/browser/resources/extensions/item_list.html
@@ -35,8 +35,10 @@
         text-align: center;
       }
 
-      :host-context([dark]) .empty-list-message {
-        color: var(--cr-secondary-text-color);
+      @media (prefers-color-scheme: dark) {
+        .empty-list-message {
+          color: var(--cr-secondary-text-color);
+        }
       }
 
       .items-container {
diff --git a/chrome/browser/resources/extensions/shared_vars.html b/chrome/browser/resources/extensions/shared_vars.html
index 125f233..86b28702 100644
--- a/chrome/browser/resources/extensions/shared_vars.html
+++ b/chrome/browser/resources/extensions/shared_vars.html
@@ -12,8 +12,10 @@
     --separator-gap: 9px;
   }
 
-  html[dark] {
-    --error-color: var(--google-red-refresh-300);
+  @media (prefers-color-scheme: dark) {
+    html {
+      --error-color: var(--google-red-refresh-300);
+    }
   }
 </style>
 </custom-style>
diff --git a/chrome/browser/resources/extensions/sidebar.html b/chrome/browser/resources/extensions/sidebar.html
index 8aaf1ef..4024fb2 100644
--- a/chrome/browser/resources/extensions/sidebar.html
+++ b/chrome/browser/resources/extensions/sidebar.html
@@ -22,8 +22,10 @@
         width: 256px;
       }
 
-      :host-context([dark]) {
-        --sidebar-inactive-color: var(--cr-primary-text-color);
+      @media (prefers-color-scheme: dark) {
+        :host {
+          --sidebar-inactive-color: var(--cr-primary-text-color);
+        }
       }
 
       iron-selector .iron-selected {
diff --git a/chrome/browser/resources/extensions/toolbar.html b/chrome/browser/resources/extensions/toolbar.html
index 3379fc6..7e08974 100644
--- a/chrome/browser/resources/extensions/toolbar.html
+++ b/chrome/browser/resources/extensions/toolbar.html
@@ -27,12 +27,14 @@
       }
 
       /* This toggle needs special styling because it's on blue background. */
-      :host-context(html:not([dark])) cr-toolbar cr-toggle {
-        --cr-toggle-checked-bar-color: var(--google-grey-refresh-100);
-        --cr-toggle-checked-button-color: white;
-        --cr-toggle-checked-ink-color: white;
-        --cr-toggle-unchecked-bar-color: var(--google-grey-600);
-        --cr-toggle-unchecked-ink-color: white;
+      @media (prefers-color-scheme: light) {
+        cr-toolbar cr-toggle {
+          --cr-toggle-checked-bar-color: var(--google-grey-refresh-100);
+          --cr-toggle-checked-button-color: white;
+          --cr-toggle-checked-ink-color: white;
+          --cr-toggle-unchecked-bar-color: var(--google-grey-600);
+          --cr-toggle-unchecked-ink-color: white;
+        }
       }
 
       cr-tooltip-icon {
@@ -53,9 +55,11 @@
         transition: height var(--drawer-transition);
       }
 
-      :host-context([dark]) #devDrawer {
-        background: none;
-        border-bottom-color: var(--cr-separator-color);
+      @media (prefers-color-scheme: dark) {
+        #devDrawer {
+          background: none;
+          border-bottom-color: var(--cr-separator-color);
+        }
       }
 
       #devDrawer[expanded] {
diff --git a/chrome/browser/resources/history/history.html b/chrome/browser/resources/history/history.html
index 18214b51..c87ee2b 100644
--- a/chrome/browser/resources/history/history.html
+++ b/chrome/browser/resources/history/history.html
@@ -63,8 +63,10 @@
       padding-inline-start: 24px;
     }
 
-    html[dark] #loading-toolbar {
-      color: rgb(232, 234, 237);  /* --google-grey-200 */
+    @media (prefers-color-scheme: dark) {
+      #loading-toolbar {
+        color: rgb(232, 234, 237);  /* --google-grey-200 */
+      }
     }
 
     #loading-message {
diff --git a/chrome/browser/resources/history/history_item.html b/chrome/browser/resources/history/history_item.html
index d8a261a..a8094b71 100644
--- a/chrome/browser/resources/history/history_item.html
+++ b/chrome/browser/resources/history/history_item.html
@@ -121,8 +121,10 @@
         margin-inline-start: 77px;
       }
 
-      :host-context([dark]) #time-gap-separator {
-        border-color: var(--google-grey-refresh-500);
+      @media (prefers-color-scheme: dark) {
+        #time-gap-separator {
+          border-color: var(--google-grey-refresh-500);
+        }
       }
 
       #background-clip {
diff --git a/chrome/browser/resources/history/shared_vars.html b/chrome/browser/resources/history/shared_vars.html
index 38997d3..ba04f03 100644
--- a/chrome/browser/resources/history/shared_vars.html
+++ b/chrome/browser/resources/history/shared_vars.html
@@ -32,13 +32,15 @@
     --toolbar-height: 56px;
   }
 
-  html[dark] {
-    --card-border-color: var(--cr-separator-color);
-    --history-item-time-color: var(--cr-secondary-text-color);
-    --interactive-color: var(--google-blue-refresh-300);
-    --separator-color: var(--cr-separator-color);
-    --sidebar-footer-text-color: rgba(255, 255, 255, 0.6);
-    --sidebar-unselected-color: var(--cr-secondary-text-color);
+  @media (prefers-color-scheme: dark) {
+    html {
+      --card-border-color: var(--cr-separator-color);
+      --history-item-time-color: var(--cr-secondary-text-color);
+      --interactive-color: var(--google-blue-refresh-300);
+      --separator-color: var(--cr-separator-color);
+      --sidebar-footer-text-color: rgba(255, 255, 255, 0.6);
+      --sidebar-unselected-color: var(--cr-secondary-text-color);
+    }
   }
 </style>
 </custom-style>
diff --git a/chrome/browser/resources/history/synced_device_manager.html b/chrome/browser/resources/history/synced_device_manager.html
index c35ce9b3..e6a4a15 100644
--- a/chrome/browser/resources/history/synced_device_manager.html
+++ b/chrome/browser/resources/history/synced_device_manager.html
@@ -27,8 +27,10 @@
         width: 594.5px;
       }
 
-      :host-context([dark]) #illustration {
-        background-image: url(images/sign_in_promo_dark.svg);
+      @media (prefers-color-scheme: dark) {
+        #illustration {
+          background-image: url(images/sign_in_promo_dark.svg);
+        }
       }
 
       #no-synced-tabs {
diff --git a/chrome/browser/resources/ntp4/incognito_and_guest_tab.css b/chrome/browser/resources/ntp4/incognito_and_guest_tab.css
index d6d9d77..1e2b3cc2 100644
--- a/chrome/browser/resources/ntp4/incognito_and_guest_tab.css
+++ b/chrome/browser/resources/ntp4/incognito_and_guest_tab.css
@@ -9,9 +9,11 @@
   font-size: 85%;
 }
 
-[dark] {
-  background: rgb(50, 54, 57);
-  color: rgb(232, 234, 237);  /* --google-grey-200 */
+@media (prefers-color-scheme: dark) {
+  html {
+    background: rgb(50, 54, 57);
+    color: rgb(232, 234, 237);  /* --google-grey-200 */
+  }
 }
 
 h1 {
@@ -44,8 +46,10 @@
   text-decoration: none;
 }
 
-[dark] :-webkit-any(a, .learn-more-button) {
-  color: rgb(138, 180, 248);  /* --google-blue-refresh-300 */
+@media (prefers-color-scheme: dark) {
+  :-webkit-any(a, .learn-more-button) {
+    color: rgb(138, 180, 248);  /* --google-blue-refresh-300 */
+  }
 }
 
 .content {
diff --git a/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.html b/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.html
index be487dc8..a3ae841c 100644
--- a/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.html
+++ b/chrome/browser/resources/pdf/elements/viewer-zoom-toolbar/viewer-zoom-button.html
@@ -54,13 +54,17 @@
         color: white;
       }
 
-      :host-context(:not([dark])):host([new-print-preview]) cr-icon-button {
-        --cr-icon-button-ripple-opacity: .5;
+      @media (prefers-color-scheme: light) {
+        :host([new-print-preview]) cr-icon-button {
+          --cr-icon-button-ripple-opacity: .5;
+        }
       }
 
-      :host-context([dark]):host([new-print-preview]) cr-icon-button {
-        background-color: var(--google-grey-900);
-        color: var(--google-grey-200);
+      @media (prefers-color-scheme: dark) {
+        :host([new-print-preview]) cr-icon-button {
+          background-color: var(--google-grey-900);
+          color: var(--google-grey-200);
+        }
       }
 
       :host([keyboard-navigation-active]) cr-icon-button:focus {
diff --git a/chrome/browser/resources/print_preview/print_preview.html b/chrome/browser/resources/print_preview/print_preview.html
index f4e9589..a24e2f9 100644
--- a/chrome/browser/resources/print_preview/print_preview.html
+++ b/chrome/browser/resources/print_preview/print_preview.html
@@ -13,16 +13,20 @@
       touch-action: manipulation;
     }
 
-    html[dark] {
-      background: rgb(189, 193, 198);  /* --google-grey-400 */
+    @media (prefers-color-scheme: dark) {
+      html {
+        background: rgb(189, 193, 198);  /* --google-grey-400 */
+      }
     }
 
     html[new-print-preview-layout] {
       background: rgb(218, 220, 224);  /* --google-grey-refresh-300 */
     }
 
-    html[new-print-preview-layout][dark] {
-      background: rgb(95, 99, 104);  /* --google-grey-refresh-700 */
+    @media (prefers-color-scheme: dark) {
+      html[new-print-preview-layout] {
+        background: rgb(95, 99, 104);  /* --google-grey-refresh-700 */
+      }
     }
 
     html,
@@ -60,9 +64,11 @@
       border-inline-start-width: 1px;
     }
 
-    [dark].loading body::before {
-      background: rgb(40, 41, 44);
-      border-color: rgba(255, 255, 255, .04);
+    @media (prefers-color-scheme: dark) {
+      .loading body::before {
+        background: rgb(40, 41, 44);
+        border-color: rgba(255, 255, 255, .04);
+      }
     }
   </style>
 </head>
diff --git a/chrome/browser/resources/print_preview/ui/app.html b/chrome/browser/resources/print_preview/ui/app.html
index 7ac6414..2e5816e 100644
--- a/chrome/browser/resources/print_preview/ui/app.html
+++ b/chrome/browser/resources/print_preview/ui/app.html
@@ -29,8 +29,10 @@
         user-select: none;
       }
 
-      :host-context([dark]) {
-        background: var(--google-grey-900);
+      @media (prefers-color-scheme: dark) {
+        :host {
+          background: var(--google-grey-900);
+        }
       }
 
       :host([new-print-preview-layout_]) {
diff --git a/chrome/browser/resources/print_preview/ui/button_strip.html b/chrome/browser/resources/print_preview/ui/button_strip.html
index 3602997..e6d16e5e 100644
--- a/chrome/browser/resources/print_preview/ui/button_strip.html
+++ b/chrome/browser/resources/print_preview/ui/button_strip.html
@@ -20,8 +20,10 @@
         padding-top: 16px;
       }
 
-      :host-context(html:not([dark])) {
-        background-color: white;
+      @media (prefers-color-scheme: light) {
+        :host {
+          background-color: white;
+        }
       }
 
       :host cr-button:not(:last-child) {
diff --git a/chrome/browser/resources/print_preview/ui/destination_dialog.html b/chrome/browser/resources/print_preview/ui/destination_dialog.html
index 58a65d5..c4b2910 100644
--- a/chrome/browser/resources/print_preview/ui/destination_dialog.html
+++ b/chrome/browser/resources/print_preview/ui/destination_dialog.html
@@ -91,8 +91,10 @@
         padding: 0;
       }
 
-      :host-context([dark]) #dialog #promos {
-        background: rgb(50, 54, 57);
+      @media (prefers-color-scheme: dark) {
+        #dialog #promos {
+          background: rgb(50, 54, 57);
+        }
       }
 
       #dialog .promo {
@@ -134,8 +136,10 @@
         margin: 0 4px;
       }
 
-      :host-context(html:not([dark])) #invitationPromo cr-button {
-        background-color: white;
+      @media (prefers-color-scheme: light) {
+        #invitationPromo cr-button {
+          background-color: white;
+        }
       }
 
       #invitationPromo invitation-details {
diff --git a/chrome/browser/resources/print_preview/ui/destination_list.html b/chrome/browser/resources/print_preview/ui/destination_list.html
index 85956ce..9191f1ca 100644
--- a/chrome/browser/resources/print_preview/ui/destination_list.html
+++ b/chrome/browser/resources/print_preview/ui/destination_list.html
@@ -53,8 +53,10 @@
         background-color: rgb(228, 236, 247);
       }
 
-      :host-context([dark]) .list-item:-webkit-any(:hover, :focus) {
-        background-color: var(--cr-menu-background-focus-color);
+      @media (prefers-color-scheme: dark) {
+        .list-item:-webkit-any(:hover, :focus) {
+          background-color: var(--cr-menu-background-focus-color);
+        }
       }
 
       .list-item:focus {
diff --git a/chrome/browser/resources/print_preview/ui/destination_list_item.html b/chrome/browser/resources/print_preview/ui/destination_list_item.html
index 8a1900fc..5e6056eb 100644
--- a/chrome/browser/resources/print_preview/ui/destination_list_item.html
+++ b/chrome/browser/resources/print_preview/ui/destination_list_item.html
@@ -49,8 +49,10 @@
         transition: opacity 150ms;
       }
 
-      :host-context([dark]) iron-icon {
-        fill: var(--google-grey-refresh-500);
+      @media (prefers-color-scheme: dark) {
+        iron-icon {
+          fill: var(--google-grey-refresh-500);
+        }
       }
 
       .name {
diff --git a/chrome/browser/resources/print_preview/ui/header.html b/chrome/browser/resources/print_preview/ui/header.html
index d46497d..8e92fdd 100644
--- a/chrome/browser/resources/print_preview/ui/header.html
+++ b/chrome/browser/resources/print_preview/ui/header.html
@@ -20,8 +20,10 @@
         padding: 20px var(--print-preview-sidebar-margin) 8px;
       }
 
-      :host-context(html:not([dark])) {
-        background-color: white;
+      @media (prefers-color-scheme: light) {
+        :host {
+          background-color: white;
+        }
       }
 
       .title-container {
diff --git a/chrome/browser/resources/print_preview/ui/header_new.html b/chrome/browser/resources/print_preview/ui/header_new.html
index 88746dd..42785f8 100644
--- a/chrome/browser/resources/print_preview/ui/header_new.html
+++ b/chrome/browser/resources/print_preview/ui/header_new.html
@@ -20,8 +20,10 @@
         padding: 20px var(--print-preview-sidebar-margin) 12px;
       }
 
-      :host-context(html:not([dark])) {
-        background-color: white;
+      @media (prefers-color-scheme: light) {
+        :host {
+          background-color: white;
+        }
       }
 
       #headerContainer {
diff --git a/chrome/browser/resources/print_preview/ui/margin_control.html b/chrome/browser/resources/print_preview/ui/margin_control.html
index 904ea12..0b31ef6 100644
--- a/chrome/browser/resources/print_preview/ui/margin_control.html
+++ b/chrome/browser/resources/print_preview/ui/margin_control.html
@@ -46,8 +46,10 @@
         border: 1px dashed var(--google-blue-500);
       }
 
-      :host-context([dark]) #line {
-        border-color: var(--google-blue-refresh-300);
+      @media (prefers-color-scheme: dark) {
+        #line {
+          border-color: var(--google-blue-refresh-300);
+        }
       }
 
       :host([side=top]) #line,
@@ -73,15 +75,19 @@
         width: 60px;
       }
 
-      :host-context(html:not([dark])) #textbox {
-        --cr-input-background-color: var(--cr-primary-text-color);
-        --cr-input-color: white;
-        color: white;
+      @media (prefers-color-scheme: light) {
+        #textbox {
+          --cr-input-background-color: var(--cr-primary-text-color);
+          --cr-input-color: white;
+          color: white;
+        }
       }
 
-      :host-context([dark]) #textbox {
-        --cr-input-background-color: #1b1c1e;  /* GG900 + 30% black */
-        --cr-input-color: var(--cr-primary-text-color);
+      @media (prefers-color-scheme: dark) {
+        #textbox {
+          --cr-input-background-color: #1b1c1e;  /* GG900 + 30% black */
+          --cr-input-color: var(--cr-primary-text-color);
+        }
       }
 
       :host([side=top]) #textbox {
diff --git a/chrome/browser/resources/print_preview/ui/print_preview_shared_css.html b/chrome/browser/resources/print_preview/ui/print_preview_shared_css.html
index d92a5ee..b4de0e7 100644
--- a/chrome/browser/resources/print_preview/ui/print_preview_shared_css.html
+++ b/chrome/browser/resources/print_preview/ui/print_preview_shared_css.html
@@ -44,8 +44,10 @@
         text-decoration: none;
       }
 
-      :host-context([dark]) :-webkit-any(a[href], a[is='action-link']) {
-        color: var(--cr-link-color);
+      @media (prefers-color-scheme: dark) {
+        :-webkit-any(a[href], a[is='action-link']) {
+          color: var(--cr-link-color);
+        }
       }
 
       print-preview-settings-section [slot=controls] > * {
diff --git a/chrome/browser/resources/print_preview/ui/print_preview_vars_css.html b/chrome/browser/resources/print_preview/ui/print_preview_vars_css.html
index 3ded67f..33c69b8 100644
--- a/chrome/browser/resources/print_preview/ui/print_preview_vars_css.html
+++ b/chrome/browser/resources/print_preview/ui/print_preview_vars_css.html
@@ -27,13 +27,15 @@
     --preview-area-background-color-new: var(--google-grey-refresh-300);
   }
 
-  html[dark] {
-    --preview-area-background-color: var(--google-grey-400);
-    --preview-area-background-color-new: var(--google-grey-refresh-700);
-    --print-preview-disabled-label: {
-      opacity: var(--cr-disabled-opacity);
+  @media (prefers-color-scheme: dark) {
+    html {
+      --preview-area-background-color: var(--google-grey-400);
+      --preview-area-background-color-new: var(--google-grey-refresh-700);
+      --print-preview-disabled-label: {
+        opacity: var(--cr-disabled-opacity);
+      }
+      --print-preview-settings-border: var(--cr-separator-line);
     }
-    --print-preview-settings-border: var(--cr-separator-line);
   }
 </style>
 </custom-style>
diff --git a/chrome/browser/resources/print_preview/ui/sidebar.html b/chrome/browser/resources/print_preview/ui/sidebar.html
index ea0b75e4a..486141d 100644
--- a/chrome/browser/resources/print_preview/ui/sidebar.html
+++ b/chrome/browser/resources/print_preview/ui/sidebar.html
@@ -48,8 +48,10 @@
         flex-direction: column;
       }
 
-      :host-context([dark]) {
-        background-color: rgba(255, 255, 255, .04);
+      @media (prefers-color-scheme: dark) {
+        :host {
+          background-color: rgba(255, 255, 255, .04);
+        }
       }
 
       #container {
diff --git a/chrome/browser/resources/settings/autofill_page/credit_card_edit_dialog.html b/chrome/browser/resources/settings/autofill_page/credit_card_edit_dialog.html
index 54ea0d6..499ce77 100644
--- a/chrome/browser/resources/settings/autofill_page/credit_card_edit_dialog.html
+++ b/chrome/browser/resources/settings/autofill_page/credit_card_edit_dialog.html
@@ -37,10 +37,12 @@
         padding: 0 0 0 8px;
       }
 
-      :host-context([dark]) #expired {
-        background-color: unset;
-        font-weight: bold;
-        padding: 0;
+      @media (prefers-color-scheme: dark) {
+        #expired {
+          background-color: unset;
+          font-weight: bold;
+          padding: 0;
+        }
       }
 
       #month {
diff --git a/chrome/browser/resources/settings/autofill_page/passwords_export_dialog.html b/chrome/browser/resources/settings/autofill_page/passwords_export_dialog.html
index 79c23ab..ae962e25 100644
--- a/chrome/browser/resources/settings/autofill_page/passwords_export_dialog.html
+++ b/chrome/browser/resources/settings/autofill_page/passwords_export_dialog.html
@@ -18,11 +18,13 @@
         width: 100%;
       }
 
-      :host-context([dark]) paper-progress {
-        /* TODO(dbeam): this is the same as downloads (and probably anywhere
-         * else that uses paper-progress). Should we make something like a
-         * paper_progress_style_css.html? */
-        --paper-progress-active-color: var(--google-blue-refresh-300);
+      @media (prefers-color-scheme: dark) {
+        paper-progress {
+          /* TODO(dbeam): this is the same as downloads (and probably anywhere
+           * else that uses paper-progress). Should we make something like a
+           * paper_progress_style_css.html? */
+          --paper-progress-active-color: var(--google-blue-refresh-300);
+        }
       }
 
       .action-button {
diff --git a/chrome/browser/resources/settings/chromeos/os_people_page/os_people_page.html b/chrome/browser/resources/settings/chromeos/os_people_page/os_people_page.html
index 36aaa4d..d556d2ab 100644
--- a/chrome/browser/resources/settings/chromeos/os_people_page/os_people_page.html
+++ b/chrome/browser/resources/settings/chromeos/os_people_page/os_people_page.html
@@ -51,8 +51,10 @@
         --iron-icon-fill-color: var(--google-green-refresh-700);
       }
 
-      :host-context([dark]) iron-icon[icon='cr:sync'] {
-        --iron-icon-fill-color: var(--google-green-refresh-300);
+      @media (prefers-color-scheme: dark) {
+        iron-icon[icon='cr:sync'] {
+          --iron-icon-fill-color: var(--google-green-refresh-300);
+        }
       }
 
       #sync-status[actionable] iron-icon[icon='settings:sync-problem'] {
@@ -64,9 +66,11 @@
         --iron-icon-fill-color: var(--google-blue-500);
       }
 
-      :host-context([dark]) #sync-status[actionable].auth-error
-          iron-icon[icon='settings:sync-disabled'] {
-        --iron-icon-fill-color: var(--google-blue-refresh-300);
+      @media (prefers-color-scheme: dark) {
+        #sync-status[actionable].auth-error
+            iron-icon[icon='settings:sync-disabled'] {
+          --iron-icon-fill-color: var(--google-blue-refresh-300);
+        }
       }
 
       #sync-status:not([actionable]) .subpage-arrow {
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_menu/os_settings_menu.html b/chrome/browser/resources/settings/chromeos/os_settings_menu/os_settings_menu.html
index 153927b..097833b 100644
--- a/chrome/browser/resources/settings/chromeos/os_settings_menu/os_settings_menu.html
+++ b/chrome/browser/resources/settings/chromeos/os_settings_menu/os_settings_menu.html
@@ -88,8 +88,10 @@
         margin-top: 8px;
       }
 
-      :host-context([dark]) #menuSeparator {
-        border-bottom: var(--cr-separator-line);  /* override */
+      @media (prefers-color-scheme: dark) {
+        #menuSeparator {
+          border-bottom: var(--cr-separator-line);  /* override */
+        }
       }
     </style>
     <iron-selector id="topMenu"
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
index 483b025..8c26e38 100644
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
@@ -38,8 +38,10 @@
         --cr-dialog-body-border-top: 1px solid var(--border-top-color);
       }
 
-      :host-context([dark]) #clearBrowsingDataDialog {
-        --border-top-color: var(--cr-separator-color);
+      @media (prefers-color-scheme: dark) {
+        #clearBrowsingDataDialog {
+          --border-top-color: var(--cr-separator-color);
+        }
       }
 
       #clearBrowsingDataDialog:not(.fully-rendered) {
@@ -56,8 +58,10 @@
         padding: 0;
       }
 
-      :host-context([dark]) #clearBrowsingDataDialog [slot=footer] {
-        background: rgb(50, 54, 57);  /* Custom color from Namrata. */
+      @media (prefers-color-scheme: dark) {
+        #clearBrowsingDataDialog [slot=footer] {
+          background: rgb(50, 54, 57);  /* Custom color from Namrata. */
+        }
       }
 
       .row {
diff --git a/chrome/browser/resources/settings/controls/settings_slider.html b/chrome/browser/resources/settings/controls/settings_slider.html
index d60229a..5c2e702 100644
--- a/chrome/browser/resources/settings/controls/settings_slider.html
+++ b/chrome/browser/resources/settings/controls/settings_slider.html
@@ -21,8 +21,10 @@
         color: var(--paper-grey-400);
       }
 
-      :host-context([dark]) #labels[disabled] {
-        color: var(--google-grey-refresh-500);
+      @media (prefers-color-scheme: dark) {
+        #labels[disabled] {
+          color: var(--google-grey-refresh-500);
+        }
       }
 
       div.outer {
diff --git a/chrome/browser/resources/settings/languages_page/languages_page.html b/chrome/browser/resources/settings/languages_page/languages_page.html
index ece77f7..73fe939 100644
--- a/chrome/browser/resources/settings/languages_page/languages_page.html
+++ b/chrome/browser/resources/settings/languages_page/languages_page.html
@@ -54,8 +54,10 @@
         margin-top: 4px;
       }
 
-      :host-context([dark]) .explain-selected {
-        color: var(--google-green-refresh-300);
+      @media (prefers-color-scheme: dark) {
+        .explain-selected {
+          color: var(--google-green-refresh-300);
+        }
       }
 
       cr-action-menu.complex .dropdown-item {
@@ -110,8 +112,10 @@
         margin-top: 8px;
       }
 
-      :host-context([dark]) .name-with-error-list div {
-        color: var(--settings-error-color);
+      @media (prefers-color-scheme: dark) {
+        .name-with-error-list div {
+          color: var(--settings-error-color);
+        }
       }
 
       iron-icon[icon='cr:error'] {
diff --git a/chrome/browser/resources/settings/people_page/people_page.html b/chrome/browser/resources/settings/people_page/people_page.html
index e5ab526..076be7e 100644
--- a/chrome/browser/resources/settings/people_page/people_page.html
+++ b/chrome/browser/resources/settings/people_page/people_page.html
@@ -62,8 +62,10 @@
         --iron-icon-fill-color: var(--google-green-refresh-700);
       }
 
-      :host-context([dark]) iron-icon[icon='cr:sync'] {
-        --iron-icon-fill-color: var(--google-green-refresh-300);
+      @media (prefers-color-scheme: dark) {
+        iron-icon[icon='cr:sync'] {
+          --iron-icon-fill-color: var(--google-green-refresh-300);
+        }
       }
 
       #sync-status[actionable] iron-icon[icon='settings:sync-problem'] {
@@ -75,9 +77,11 @@
         --iron-icon-fill-color: var(--google-blue-500);
       }
 
-      :host-context([dark]) #sync-status[actionable].auth-error
-          iron-icon[icon='settings:sync-disabled'] {
-        --iron-icon-fill-color: var(--google-blue-refresh-300);
+      @media (prefers-color-scheme: dark) {
+        #sync-status[actionable].auth-error
+            iron-icon[icon='settings:sync-disabled'] {
+          --iron-icon-fill-color: var(--google-blue-refresh-300);
+        }
       }
 
       #sync-status:not([actionable]) .subpage-arrow {
diff --git a/chrome/browser/resources/settings/people_page/sync_account_control.html b/chrome/browser/resources/settings/people_page/sync_account_control.html
index dd59852..fb7b90d 100644
--- a/chrome/browser/resources/settings/people_page/sync_account_control.html
+++ b/chrome/browser/resources/settings/people_page/sync_account_control.html
@@ -78,13 +78,14 @@
         right: initial;
       }
 
-      :host-context([dark]) #sync-icon-container {
-        background: var(--google-green-refresh-300);
-        border-color: var(--google-grey-900);
+      @media (prefers-color-scheme: dark) {
+        #sync-icon-container {
+          background: var(--google-green-refresh-300);
+          border-color: var(--google-grey-900);
+        }
       }
 
-      #sync-icon-container.sync-problem,
-      :host-context([dark]) #sync-icon-container.sync-problem {
+      #sync-icon-container.sync-problem {
         background: var(--settings-error-color);
       }
 
@@ -92,16 +93,20 @@
         background: var(--google-blue-500);
       }
 
-      :host-context([dark]) #sync-icon-container.sync-paused {
-        background: var(--google-blue-refresh-300);
+      @media (prefers-color-scheme: dark) {
+        #sync-icon-container.sync-paused {
+          background: var(--google-blue-refresh-300);
+        }
       }
 
       #sync-icon-container.sync-disabled {
         background: var(--google-grey-400);
       }
 
-      :host-context([dark]) #sync-icon-container.sync-disabled {
-        background: var(--google-grey-refresh-500);
+      @media (prefers-color-scheme: dark) {
+        #sync-icon-container.sync-disabled {
+          background: var(--google-grey-refresh-500);
+        }
       }
 
       #sync-icon-container iron-icon {
@@ -125,8 +130,10 @@
         @apply --promo-banner;
       }
 
-      :host-context([dark]) #banner {
-        background-image: url(../images/sync_banner_dark.svg);
+      @media (prefers-color-scheme: dark) {
+        #banner {
+          background-image: url(../images/sync_banner_dark.svg);
+        }
       }
 
       :host([showing-promo]) #banner {
diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html b/chrome/browser/resources/settings/settings_menu/settings_menu.html
index 64ae043..8183c417 100644
--- a/chrome/browser/resources/settings/settings_menu/settings_menu.html
+++ b/chrome/browser/resources/settings/settings_menu/settings_menu.html
@@ -90,8 +90,10 @@
         margin-top: 8px;
       }
 
-      :host-context([dark]) #menuSeparator {
-        border-bottom: var(--cr-separator-line);  /* override */
+      @media (prefers-color-scheme: dark) {
+        #menuSeparator {
+          border-bottom: var(--cr-separator-line);  /* override */
+        }
       }
     </style>
     <iron-selector id="topMenu" selectable="a:not(#extensionsLink)"
diff --git a/chrome/browser/resources/settings/settings_shared_css.html b/chrome/browser/resources/settings/settings_shared_css.html
index ea4c88e6..bc22b45 100644
--- a/chrome/browser/resources/settings/settings_shared_css.html
+++ b/chrome/browser/resources/settings/settings_shared_css.html
@@ -111,8 +111,10 @@
         outline: none;
       }
 
-      :host-context([dark]) cr-radio-group:focus {
-        background-color: var(--google-grey-800);
+      @media (prefers-color-scheme: dark) {
+        cr-radio-group:focus {
+          background-color: var(--google-grey-800);
+        }
       }
 
       /* See also: .no-min-width below. */
diff --git a/chrome/browser/resources/settings/settings_ui/settings_ui.html b/chrome/browser/resources/settings/settings_ui/settings_ui.html
index 25702d3c..0ec6aa2 100644
--- a/chrome/browser/resources/settings/settings_ui/settings_ui.html
+++ b/chrome/browser/resources/settings/settings_ui/settings_ui.html
@@ -48,8 +48,10 @@
         --cr-toolbar-center-basis: var(--settings-main-basis);
       }
 
-      :host-context(html:not([dark])) cr-toolbar {
-        --iron-icon-fill-color: white;
+      @media (prefers-color-scheme: light) {
+        cr-toolbar {
+          --iron-icon-fill-color: white;
+        }
       }
 
       #cr-container-shadow-top {
diff --git a/chrome/browser/resources/settings/settings_vars_css.html b/chrome/browser/resources/settings/settings_vars_css.html
index 2a9c0c7..481e31f 100644
--- a/chrome/browser/resources/settings/settings_vars_css.html
+++ b/chrome/browser/resources/settings/settings_vars_css.html
@@ -45,11 +45,13 @@
     --cr-radio-group-item-padding: 0;
   }
 
-  html[dark] {
-    --iron-icon-fill-color: var(--google-grey-refresh-500);
-    --settings-error-color: var(--google-red-refresh-300);
-    --settings-nav-icon-color: var(--google-grey-refresh-500);
-    --settings-nav-item-color: var(--cr-primary-text-color);
+  @media (prefers-color-scheme: dark) {
+    html {
+      --iron-icon-fill-color: var(--google-grey-refresh-500);
+      --settings-error-color: var(--google-red-refresh-300);
+      --settings-nav-icon-color: var(--google-grey-refresh-500);
+      --settings-nav-item-color: var(--cr-primary-text-color);
+    }
   }
 </style>
 </custom-style>
diff --git a/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation.html b/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation.html
index 7654603..6b02251 100644
--- a/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation.html
+++ b/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation.html
@@ -10,8 +10,10 @@
         padding: 0;
         width: 512px;
       }
-      [dark] body {
-        background-color: var(--md-background-color);
+      @media (prefers-color-scheme: dark) {
+        body {
+          background-color: var(--md-background-color);
+        }
       }
     </style>
   </head>
diff --git a/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation_app.html b/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation_app.html
index badf36b..1aa30c4 100644
--- a/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation_app.html
+++ b/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation_app.html
@@ -59,8 +59,11 @@
         width: 100%;
       }
 
-      :host-context([dark]) #illustration {
-        background-image: url(./images/sync_confirmation_illustration_dark.svg);
+      @media (prefers-color-scheme: dark) {
+        #illustration {
+          background-image:
+              url(./images/sync_confirmation_illustration_dark.svg);
+        }
       }
 
       #illustration-container > img {
@@ -98,11 +101,13 @@
         color: var(--cr-secondary-text-color);
       }
 
-      :host-context(html:not([dark])) #grey-banner {
-        background: var(--paper-grey-50);
-        height: 128px;
-        top: 0;
-        width: 100%;
+      @media (prefers-color-scheme: light) {
+        #grey-banner {
+          background: var(--paper-grey-50);
+          height: 128px;
+          top: 0;
+          width: 100%;
+        }
       }
 
       #footer {
diff --git a/chrome/browser/resources/user_manager/create_profile.html b/chrome/browser/resources/user_manager/create_profile.html
index 8dd7755..61ab879 100644
--- a/chrome/browser/resources/user_manager/create_profile.html
+++ b/chrome/browser/resources/user_manager/create_profile.html
@@ -48,10 +48,12 @@
         visibility: hidden;
       }
 
-      :host-context([dark]) #message-container {
-        background-color: unset;
-        border-bottom: var(--cr-separator-line);
-        box-shadow: none;
+      @media (prefers-color-scheme: dark) {
+        #message-container {
+          background-color: unset;
+          border-bottom: var(--cr-separator-line);
+          box-shadow: none;
+        }
       }
 
       #message-container[visible] {
diff --git a/chrome/browser/resources/user_manager/shared_styles.html b/chrome/browser/resources/user_manager/shared_styles.html
index 6c729aa7..914a64bc 100644
--- a/chrome/browser/resources/user_manager/shared_styles.html
+++ b/chrome/browser/resources/user_manager/shared_styles.html
@@ -13,10 +13,12 @@
         --user-manager-separator-line: 1px solid rgba(0, 0, 0, .12);
       }
 
-      html[dark],
-      :host-context([dark]) {
-        --error-color: var(--google-red-refresh-300);
-        --user-manager-separator-line: var(--cr-separator-line);
+      @media (prefers-color-scheme: dark) {
+        html,
+        :host {
+          --error-color: var(--google-red-refresh-300);
+          --user-manager-separator-line: var(--cr-separator-line);
+        }
       }
 
       a,
@@ -35,10 +37,12 @@
         height: 22px;
       }
 
-      :host-context([dark]) .product-logo {
-        content: -webkit-image-set(
-            url(../../../app/theme/default_100_percent/%DISTRIBUTION%/product_logo_white.png) 1x,
-            url(../../../app/theme/default_200_percent/%DISTRIBUTION%/product_logo_white.png) 2x);
+      @media (prefers-color-scheme: dark) {
+        .product-logo {
+          content: -webkit-image-set(
+              url(../../../app/theme/default_100_percent/%DISTRIBUTION%/product_logo_white.png) 1x,
+              url(../../../app/theme/default_200_percent/%DISTRIBUTION%/product_logo_white.png) 2x);
+        }
       }
     </style>
   </template>
diff --git a/chrome/browser/resources/user_manager/user_manager.html b/chrome/browser/resources/user_manager/user_manager.html
index 43c8ecd4..9c6f9db 100644
--- a/chrome/browser/resources/user_manager/user_manager.html
+++ b/chrome/browser/resources/user_manager/user_manager.html
@@ -35,8 +35,10 @@
   <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
   <custom-style>
     <style is="custom-style" include="shared-styles">
-      html[dark] body {
-        background-color: var(--google-grey-900);
+      @media (prefers-color-scheme: dark) {
+        body {
+          background-color: var(--google-grey-900);
+        }
       }
 
       user-manager-pages,
@@ -147,12 +149,16 @@
         width: 92px;
       }
 
-      html[dark] .pod .main-pane .name-container {
-        background-color: transparent;
+      @media (prefers-color-scheme: dark) {
+        .pod .main-pane .name-container {
+          background-color: transparent;
+        }
       }
 
-      html[dark] .name {
-        color: inherit;
+      @media (prefers-color-scheme: dark) {
+        .name {
+          color: inherit;
+        }
       }
 
       .pod .indicator-container {
@@ -180,8 +186,10 @@
         width: 20px;
       }
 
-      html[dark] .pod .indicator-container > .indicator {
-        background: var(--google-grey-refresh-500);
+      @media (prefers-color-scheme: dark) {
+        .pod .indicator-container > .indicator {
+          background: var(--google-grey-refresh-500);
+        }
       }
 
       .pod.locked .locked-indicator {
@@ -286,17 +294,19 @@
         right: auto;
       }
 
-      html[dark] .action-box-area.active ~ .action-box-menu {
-        background-color: var(--cr-menu-background-color);
-        /* Adds 4% white on top of GG900. To/from are intentionally the same. */
-        background-image: linear-gradient(rgba(255, 255, 255, .04),
-                                          rgba(255, 255, 255, .04));
-        box-shadow: var(--cr-menu-shadow);
-      }
+      @media (prefers-color-scheme: dark) {
+        .action-box-area.active ~ .action-box-menu {
+          background-color: var(--cr-menu-background-color);
+          /* Adds 4% white on top of GG900. To/from are intentionally the same. */
+          background-image: linear-gradient(rgba(255, 255, 255, .04),
+                                            rgba(255, 255, 255, .04));
+          box-shadow: var(--cr-menu-shadow);
+        }
 
-      html[dark] .action-box-menu-remove:focus,
-      html[dark] .action-box-menu-remove:hover {
-        background-color: var(--cr-menu-background-focus-color);
+        .action-box-menu-remove:focus,
+        .action-box-menu-remove:hover {
+          background-color: var(--cr-menu-background-focus-color);
+        }
       }
 
       .action-box-menu-title {
@@ -304,8 +314,10 @@
         padding: 16px 12px;
       }
 
-      html[dark] .action-box-menu-title {
-        border-bottom: var(--cr-separator-line);
+      @media (prefers-color-scheme: dark) {
+        .action-box-menu-title {
+          border-bottom: var(--cr-separator-line);
+        }
       }
 
       .action-box-menu-title-name,
@@ -330,11 +342,13 @@
         padding: var(--vertical-gap) var(--side-gap);
       }
 
-      html[dark] .action-box-menu-remove {
-        border-radius: 0;
-        border-top: none;
-        margin: var(--vertical-gap) 0;
-        padding: 0 var(--side-gap);
+      @media (prefers-color-scheme: dark) {
+        .action-box-menu-remove {
+          border-radius: 0;
+          border-top: none;
+          margin: var(--vertical-gap) 0;
+          padding: 0 var(--side-gap);
+        }
       }
 
       .action-box-remove-user-warning {
diff --git a/chrome/browser/resources/user_manager/user_manager_tutorial.html b/chrome/browser/resources/user_manager/user_manager_tutorial.html
index f714e514b..743ca93 100644
--- a/chrome/browser/resources/user_manager/user_manager_tutorial.html
+++ b/chrome/browser/resources/user_manager/user_manager_tutorial.html
@@ -116,10 +116,12 @@
         right: auto;
       }
 
-      :host-context([dark]) .arrow-down {
-        --gg900-blended-with-4percent-white: rgb(40, 41, 44);
-        border-bottom-color: var(--gg900-blended-with-4percent-white);
-        border-left-color: var(--gg900-blended-with-4percent-white);  /* csschecker-disable-line left-right */
+      @media (prefers-color-scheme: dark) {
+        .arrow-down {
+          --gg900-blended-with-4percent-white: rgb(40, 41, 44);
+          border-bottom-color: var(--gg900-blended-with-4percent-white);
+          border-left-color: var(--gg900-blended-with-4percent-white);  /* csschecker-disable-line left-right */
+        }
       }
 
       #guests .arrow-down {
@@ -160,8 +162,10 @@
             url(chrome://theme/IDR_ICON_USER_MANAGER_TUTORIAL_COMPLETE);
       }
 
-      :host-context([dark]) #notYou {
-        color: var(--cr-primary-text-color);
+      @media (prefers-color-scheme: dark) {
+        #notYou {
+          color: var(--cr-primary-text-color);
+        }
       }
 
       #notYou #dismiss {
@@ -171,8 +175,10 @@
         top: 5px;
       }
 
-      :host-context([dark]) #notYou #dismiss {
-        color: var(--google-grey-500);
+      @media (prefers-color-scheme: dark) {
+        #notYou #dismiss {
+          color: var(--google-grey-500);
+        }
       }
 
       #notYou #slide-add-user {
diff --git a/chrome/browser/resources/welcome/dice_welcome/welcome.css b/chrome/browser/resources/welcome/dice_welcome/welcome.css
index e3641d8..e9a8833b 100644
--- a/chrome/browser/resources/welcome/dice_welcome/welcome.css
+++ b/chrome/browser/resources/welcome/dice_welcome/welcome.css
@@ -14,9 +14,11 @@
   text-align: center;
 }
 
-[dark] body {
-  background: var(--md-background-color);
-  color: var(--cr-secondary-text-color);
+@media (prefers-color-scheme: dark) {
+  body {
+    background: var(--md-background-color);
+    color: var(--cr-secondary-text-color);
+  }
 }
 
 .watermark {
@@ -31,8 +33,10 @@
   width: 74px;
 }
 
-[dark] .watermark {
-  background: var(--cr-secondary-text-color);
+@media (prefers-color-scheme: dark) {
+  .watermark {
+    background: var(--cr-secondary-text-color);
+  }
 }
 
 @media(max-height: 608px) {
diff --git a/chrome/browser/resources/welcome/dice_welcome/welcome_app.html b/chrome/browser/resources/welcome/dice_welcome/welcome_app.html
index 8f69d80..3cb8a3f 100644
--- a/chrome/browser/resources/welcome/dice_welcome/welcome_app.html
+++ b/chrome/browser/resources/welcome/dice_welcome/welcome_app.html
@@ -101,8 +101,10 @@
         position: relative;
       }
 
-      :host-context([dark]) .heading-container {
-        color: var(--cr-primary-text-color);
+      @media (prefers-color-scheme: dark) {
+        .heading-container {
+          color: var(--cr-primary-text-color);
+        }
       }
 
       .heading {
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/google_apps/nux_google_apps.html b/chrome/browser/resources/welcome/onboarding_welcome/google_apps/nux_google_apps.html
index e8dadb0..ff87621 100644
--- a/chrome/browser/resources/welcome/onboarding_welcome/google_apps/nux_google_apps.html
+++ b/chrome/browser/resources/welcome/onboarding_welcome/google_apps/nux_google_apps.html
@@ -32,8 +32,10 @@
         width: 42px;
       }
 
-      :host-context([dark]) .chrome-logo {
-        content: url(../images/module_icons/google_dark.svg);
+      @media (prefers-color-scheme: dark) {
+        .chrome-logo {
+          content: url(../images/module_icons/google_dark.svg);
+        }
       }
 
       h1 {
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/ntp_background/nux_ntp_background.html b/chrome/browser/resources/welcome/onboarding_welcome/ntp_background/nux_ntp_background.html
index e6031c8..77364b47 100644
--- a/chrome/browser/resources/welcome/onboarding_welcome/ntp_background/nux_ntp_background.html
+++ b/chrome/browser/resources/welcome/onboarding_welcome/ntp_background/nux_ntp_background.html
@@ -65,8 +65,10 @@
         width: 44px;
       }
 
-      :host-context([dark]) .ntp-background-logo {
-        content: url(../images/module_icons/wallpaper_dark.svg);
+      @media (prefers-color-scheme: dark) {
+        .ntp-background-logo {
+          content: url(../images/module_icons/wallpaper_dark.svg);
+        }
       }
 
       h1 {
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/set_as_default/nux_set_as_default.html b/chrome/browser/resources/welcome/onboarding_welcome/set_as_default/nux_set_as_default.html
index 7b81f69..837247f 100644
--- a/chrome/browser/resources/welcome/onboarding_welcome/set_as_default/nux_set_as_default.html
+++ b/chrome/browser/resources/welcome/onboarding_welcome/set_as_default/nux_set_as_default.html
@@ -28,8 +28,10 @@
         width: 42px;
       }
 
-      :host-context([dark]) .logo {
-        content: url(../images/module_icons/set_default_dark.svg);
+      @media (prefers-color-scheme: dark) {
+        .logo {
+          content: url(../images/module_icons/set_default_dark.svg);
+        }
       }
 
       .illustration {
@@ -38,8 +40,10 @@
         width: 454px;
       }
 
-      :host-context([dark]) .illustration {
-        content: url(../images/set_default_dark.svg);
+      @media (prefers-color-scheme: dark) {
+        .illustration {
+          content: url(../images/set_default_dark.svg);
+        }
       }
 
       h1 {
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/shared/navi_colors_css.html b/chrome/browser/resources/welcome/onboarding_welcome/shared/navi_colors_css.html
index 66c0fd8..5973c32 100644
--- a/chrome/browser/resources/welcome/onboarding_welcome/shared/navi_colors_css.html
+++ b/chrome/browser/resources/welcome/onboarding_welcome/shared/navi_colors_css.html
@@ -28,25 +28,27 @@
         --navi-wallpaper-text-color: var(--google-grey-refresh-700);
       }
 
-      :host-context([dark]) {
-        --navi-border-color: var(--google-grey-refresh-700);
-        --navi-check-icon-color: var(--google-grey-refresh-700);
-        --navi-keyboard-focus-color:
-            rgba(var(--google-blue-refresh-300-rgb), .5);
-        --navi-option-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .3),
-                                  0 3px 6px 2px rgba(0, 0, 0, .15);
-        --navi-option-icon-shadow-color: var(--google-grey-refresh-700);
-        --navi-shape-blue-color: rgb(138, 180, 248); /* #8AB4F8 */
-        --navi-shape-green-color: rgb(129, 201, 149); /* #81C995 */
-        --navi-shape-grey-color: rgb(154, 160, 166); /* #9AA0A6 */
-        --navi-shape-red-color: rgb(238, 103, 92); /* #EE675C */
-        /* --navi-shape-yellow-dots-color is same color in dark mode */
-        --navi-shape-yellow-semicircle-color: rgb(253, 214, 99); /* #FDD663 */
-        --navi-step-indicator-active: {
-          background: var(--google-blue-refresh-300);
-        };
-        --navi-step-indicator-color: var(--google-grey-refresh-500);
-        --navi-wallpaper-text-color: var(--google-grey-200);
+      @media (prefers-color-scheme: dark) {
+        :host {
+          --navi-border-color: var(--google-grey-refresh-700);
+          --navi-check-icon-color: var(--google-grey-refresh-700);
+          --navi-keyboard-focus-color:
+              rgba(var(--google-blue-refresh-300-rgb), .5);
+          --navi-option-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .3),
+                                    0 3px 6px 2px rgba(0, 0, 0, .15);
+          --navi-option-icon-shadow-color: var(--google-grey-refresh-700);
+          --navi-shape-blue-color: rgb(138, 180, 248); /* #8AB4F8 */
+          --navi-shape-green-color: rgb(129, 201, 149); /* #81C995 */
+          --navi-shape-grey-color: rgb(154, 160, 166); /* #9AA0A6 */
+          --navi-shape-red-color: rgb(238, 103, 92); /* #EE675C */
+          /* --navi-shape-yellow-dots-color is same color in dark mode */
+          --navi-shape-yellow-semicircle-color: rgb(253, 214, 99); /* #FDD663 */
+          --navi-step-indicator-active: {
+            background: var(--google-blue-refresh-300);
+          };
+          --navi-step-indicator-color: var(--google-grey-refresh-500);
+          --navi-wallpaper-text-color: var(--google-grey-200);
+        }
       }
     </style>
   </template>
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/shared/onboarding_background.html b/chrome/browser/resources/welcome/onboarding_welcome/shared/onboarding_background.html
index b77b594..643c8ef 100644
--- a/chrome/browser/resources/welcome/onboarding_welcome/shared/onboarding_background.html
+++ b/chrome/browser/resources/welcome/onboarding_welcome/shared/onboarding_background.html
@@ -164,8 +164,10 @@
         width: 100px;
       }
 
-      :host-context([dark]) #grey-oval {
-        mix-blend-mode: screen;
+      @media (prefers-color-scheme: dark) {
+        #grey-oval {
+          mix-blend-mode: screen;
+        }
       }
     </style>
     <div id="container">
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/welcome.html b/chrome/browser/resources/welcome/onboarding_welcome/welcome.html
index d4bb3e8..f6ceb5c 100644
--- a/chrome/browser/resources/welcome/onboarding_welcome/welcome.html
+++ b/chrome/browser/resources/welcome/onboarding_welcome/welcome.html
@@ -9,8 +9,10 @@
   </head>
   <body>
     <style>
-      html[dark] {
-        background: var(--md-background-color);
+      @media (prefers-color-scheme: dark) {
+        html {
+          background: var(--md-background-color);
+        }
       }
     </style>
     <welcome-app></welcome-app>
diff --git a/chrome/browser/resources/welcome/welcome.css b/chrome/browser/resources/welcome/welcome.css
index 2d08e69..94d8481 100644
--- a/chrome/browser/resources/welcome/welcome.css
+++ b/chrome/browser/resources/welcome/welcome.css
@@ -15,8 +15,10 @@
   padding: 8px;
 }
 
-[dark] body {
-  color: var(--cr-primary-text-color);
+@media (prefers-color-scheme: dark) {
+  body {
+    color: var(--cr-primary-text-color);
+  }
 }
 
 .watermark {
@@ -31,8 +33,10 @@
   width: 74px;
 }
 
-[dark] .watermark {
-  background: var(--cr-secondary-text-color);
+@media (prefers-color-scheme: dark) {
+  .watermark {
+    background: var(--cr-secondary-text-color);
+  }
 }
 
 @media(max-height: 608px) {
diff --git a/chrome/browser/resources/welcome/welcome.html b/chrome/browser/resources/welcome/welcome.html
index 2426c26..41b76d6 100644
--- a/chrome/browser/resources/welcome/welcome.html
+++ b/chrome/browser/resources/welcome/welcome.html
@@ -16,8 +16,10 @@
   <link rel="stylesheet" href="chrome://welcome/welcome.css">
 
   <style>
-    html[dark] {
-      background-color: var(--md-background-color);
+    @media (prefers-color-scheme: dark) {
+      html {
+        background-color: var(--md-background-color);
+      }
     }
   </style>
 
@@ -141,8 +143,10 @@
           text-align: center;
         }
 
-        :host-context([dark]) .subheading {
-          color: var(--cr-secondary-text-color);
+        @media (prefers-color-scheme: dark) {
+          .subheading {
+            color: var(--cr-secondary-text-color);
+          }
         }
 
         .logo {
diff --git a/chrome/browser/ssl/chrome_ssl_host_state_delegate.cc b/chrome/browser/ssl/chrome_ssl_host_state_delegate.cc
index 514bc60d..28f3fa3b 100644
--- a/chrome/browser/ssl/chrome_ssl_host_state_delegate.cc
+++ b/chrome/browser/ssl/chrome_ssl_host_state_delegate.cc
@@ -41,9 +41,6 @@
 #include "net/base/hash_value.h"
 #include "net/base/url_util.h"
 #include "net/cert/x509_certificate.h"
-#include "net/http/http_transaction_factory.h"
-#include "net/url_request/url_request_context.h"
-#include "net/url_request/url_request_context_getter.h"
 #include "services/network/public/cpp/features.h"
 #include "url/gurl.h"
 
@@ -173,15 +170,6 @@
   return false;
 }
 
-void CloseIdleConnections(
-    scoped_refptr<net::URLRequestContextGetter> url_request_context_getter) {
-  url_request_context_getter->
-      GetURLRequestContext()->
-      http_transaction_factory()->
-      GetSession()->
-      CloseIdleConnections();
-}
-
 // All SSL decisions are per host (and are shared arcoss schemes), so this
 // canonicalizes all hosts into a secure scheme GURL to use with content
 // settings. The returned GURL will be the passed in host with an empty path and
@@ -470,17 +458,10 @@
 void ChromeSSLHostStateDelegate::RevokeUserAllowExceptionsHard(
     const std::string& host) {
   RevokeUserAllowExceptions(host);
-  if (base::FeatureList::IsEnabled(network::features::kNetworkService)) {
-    auto* network_context =
-        content::BrowserContext::GetDefaultStoragePartition(profile_)
-            ->GetNetworkContext();
-    network_context->CloseIdleConnections(base::NullCallback());
-    return;
-  }
-  scoped_refptr<net::URLRequestContextGetter> getter(
-      profile_->GetRequestContext());
-  getter->GetNetworkTaskRunner()->PostTask(
-      FROM_HERE, base::BindOnce(&CloseIdleConnections, getter));
+  auto* network_context =
+      content::BrowserContext::GetDefaultStoragePartition(profile_)
+          ->GetNetworkContext();
+  network_context->CloseIdleConnections(base::NullCallback());
 }
 
 void ChromeSSLHostStateDelegate::DidDisplayErrorPage(int error) {
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index e518a16..1564063 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1878,6 +1878,7 @@
       "//chromeos/services/multidevice_setup/public/cpp:prefs",
       "//chromeos/services/multidevice_setup/public/cpp:url_provider",
       "//chromeos/services/multidevice_setup/public/mojom",
+      "//chromeos/services/network_config/public/mojom",
       "//chromeos/settings",
       "//chromeos/strings",
       "//chromeos/system",
@@ -1893,7 +1894,6 @@
       "//services/data_decoder/public/cpp",
       "//services/device/public/cpp:device_features",
       "//services/device/public/mojom",
-      "//services/ws/public/mojom",
       "//ui/base/ime/chromeos",
       "//ui/chromeos",
       "//ui/chromeos/events",
@@ -3137,8 +3137,6 @@
     }
 
     if (use_aura) {
-      deps += [ "//services/ws/public/mojom" ]
-
       # These files can do Gtk+-based theming for builds with gtk enabled.
       if (is_desktop_linux) {
         sources += [
diff --git a/chrome/browser/ui/extensions/OWNERS b/chrome/browser/ui/extensions/OWNERS
index dd0cbe0..444bfa7a 100644
--- a/chrome/browser/ui/extensions/OWNERS
+++ b/chrome/browser/ui/extensions/OWNERS
@@ -1,13 +1,15 @@
 # App-y stuff
 benwells@chromium.org
-
 per-file bookmark_app_*=alancutter@chromium.org
+per-file bookmark_app_*=harrisjay@chromium.org
 per-file bookmark_app_*=mgiuca@chromium.org
 per-file bookmark_app_*=ortuno@chromium.org
 per-file hosted_app_*=alancutter@chromium.org
+per-file hosted_app_*=harrisjay@chromium.org
 per-file hosted_app_*=mgiuca@chromium.org
 per-file hosted_app_*=ortuno@chromium.org
 per-file pwa_*=alancutter@chromium.org
+per-file pwa_*=harrisjay@chromium.org
 per-file pwa_*=mgiuca@chromium.org
 per-file pwa_*=ortuno@chromium.org
 
diff --git a/chrome/browser/ui/webui/chromeos/network_ui.cc b/chrome/browser/ui/webui/chromeos/network_ui.cc
index 4690c61..bb71ffd 100644
--- a/chrome/browser/ui/webui/chromeos/network_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/network_ui.cc
@@ -27,11 +27,14 @@
 #include "chromeos/network/network_state.h"
 #include "chromeos/network/network_state_handler.h"
 #include "chromeos/network/onc/onc_utils.h"
+#include "chromeos/services/network_config/public/mojom/constants.mojom.h"
 #include "components/device_event_log/device_event_log.h"
+#include "content/public/browser/browser_context.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
 #include "content/public/browser/web_ui_message_handler.h"
+#include "services/service_manager/public/cpp/connector.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 #include "ui/base/l10n/l10n_util.h"
 
@@ -329,7 +332,7 @@
 }
 
 NetworkUI::NetworkUI(content::WebUI* web_ui)
-    : content::WebUIController(web_ui) {
+    : ui::MojoWebUIController(web_ui, /*enable_chrome_send=*/true) {
   web_ui->AddMessageHandler(std::make_unique<NetworkConfigMessageHandler>());
 
   // Enable extension API calls in the WebUI.
@@ -351,8 +354,17 @@
 
   content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
                                 html);
+  AddHandlerToRegistry(base::BindRepeating(&NetworkUI::BindCrosNetworkConfig,
+                                           base::Unretained(this)));
 }
 
 NetworkUI::~NetworkUI() {}
 
+void NetworkUI::BindCrosNetworkConfig(
+    network_config::mojom::CrosNetworkConfigRequest request) {
+  content::BrowserContext::GetConnectorFor(
+      web_ui()->GetWebContents()->GetBrowserContext())
+      ->BindInterface(network_config::mojom::kServiceName, std::move(request));
+}
+
 }  // namespace chromeos
diff --git a/chrome/browser/ui/webui/chromeos/network_ui.h b/chrome/browser/ui/webui/chromeos/network_ui.h
index 49f9d7f..4ed87901 100644
--- a/chrome/browser/ui/webui/chromeos/network_ui.h
+++ b/chrome/browser/ui/webui/chromeos/network_ui.h
@@ -6,7 +6,8 @@
 #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_NETWORK_UI_H_
 
 #include "base/macros.h"
-#include "content/public/browser/web_ui_controller.h"
+#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h"
+#include "ui/webui/mojo_web_ui_controller.h"
 
 namespace base {
 class DictionaryValue;
@@ -15,7 +16,7 @@
 namespace chromeos {
 
 // WebUI controller for chrome://network debugging page.
-class NetworkUI : public content::WebUIController {
+class NetworkUI : public ui::MojoWebUIController {
  public:
   explicit NetworkUI(content::WebUI* web_ui);
   ~NetworkUI() override;
@@ -23,6 +24,9 @@
   static void GetLocalizedStrings(base::DictionaryValue* localized_strings);
 
  private:
+  void BindCrosNetworkConfig(
+      network_config::mojom::CrosNetworkConfigRequest request);
+
   DISALLOW_COPY_AND_ASSIGN(NetworkUI);
 };
 
diff --git a/chrome/browser/ui/webui/policy_ui_handler.cc b/chrome/browser/ui/webui/policy_ui_handler.cc
index 5dd5419..84e05a7 100644
--- a/chrome/browser/ui/webui/policy_ui_handler.cc
+++ b/chrome/browser/ui/webui/policy_ui_handler.cc
@@ -84,6 +84,10 @@
 #include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
 #endif
 
+#if defined(OS_MACOSX)
+#include "base/mac/mac_util.h"
+#endif
+
 #if defined(OS_WIN)
 #include "chrome/browser/ui/webui/version_util_win.h"
 #endif
@@ -1052,6 +1056,8 @@
   chrome_metadata.SetKey("platform",
                          base::Value(chromeos::version_loader::GetVersion(
                              chromeos::version_loader::VERSION_FULL)));
+#elif defined(OS_MACOSX)
+  chrome_metadata.SetKey("OS", base::Value(base::mac::GetOSDisplayName()));
 #else
   std::string os = version_info::GetOSType();
 #if defined(OS_WIN)
diff --git a/chrome/browser/ui/webui/version_ui.cc b/chrome/browser/ui/webui/version_ui.cc
index 694afee..3ff808b 100644
--- a/chrome/browser/ui/webui/version_ui.cc
+++ b/chrome/browser/ui/webui/version_ui.cc
@@ -40,6 +40,10 @@
 #include "chrome/browser/ui/webui/version_handler_chromeos.h"
 #endif
 
+#if defined(OS_MACOSX)
+#include "base/mac/mac_util.h"
+#endif
+
 #if defined(OS_WIN)
 #include "chrome/browser/ui/webui/version_handler_win.h"
 #endif
@@ -107,9 +111,11 @@
   html_source->AddString(version_ui::kExecutablePath, std::string());
   html_source->AddString(version_ui::kProfilePath, std::string());
 
-#if !defined(OS_CHROMEOS)
+#if defined(OS_MACOSX)
+  html_source->AddString(version_ui::kOSType, base::mac::GetOSDisplayName());
+#elif !defined(OS_CHROMEOS)
   html_source->AddString(version_ui::kOSType, version_info::GetOSType());
-#endif  // !OS_CHROMEOS
+#endif  // OS_MACOSX
 
 #if defined(OS_ANDROID)
   html_source->AddString(version_ui::kOSVersion,
diff --git a/chrome/test/chromedriver/client/command_executor.py b/chrome/test/chromedriver/client/command_executor.py
index 8e3075a..3be37a2 100644
--- a/chrome/test/chromedriver/client/command_executor.py
+++ b/chrome/test/chromedriver/client/command_executor.py
@@ -163,8 +163,8 @@
   TOUCH_FLICK = (_Method.POST, '/session/:sessionId/touch/flick')
   PERFORM_ACTIONS = (_Method.POST, '/session/:sessionId/actions')
   RELEASE_ACTIONS = (_Method.DELETE, '/session/:sessionId/actions')
-  GET_LOG = (_Method.POST, '/session/:sessionId/log')
-  GET_AVAILABLE_LOG_TYPES = (_Method.GET, '/session/:sessionId/log/types')
+  GET_LOG = (_Method.POST, '/session/:sessionId/se/log')
+  GET_AVAILABLE_LOG_TYPES = (_Method.GET, '/session/:sessionId/se/log/types')
   IS_AUTO_REPORTING = (_Method.GET, '/session/:sessionId/autoreport')
   SET_AUTO_REPORTING = (_Method.POST, '/session/:sessionId/autoreport')
   GET_SESSION_LOGS = (_Method.POST, '/logs')
diff --git a/chrome/test/chromedriver/log_replay/client_replay.py b/chrome/test/chromedriver/log_replay/client_replay.py
index 0969170..abeaf09 100755
--- a/chrome/test/chromedriver/log_replay/client_replay.py
+++ b/chrome/test/chromedriver/log_replay/client_replay.py
@@ -124,8 +124,8 @@
     (Method.GET, "/session/:sessionId/local_storage"),
     "GetLocalStorageSize":
     (Method.GET, "/session/:sessionId/local_storage/size"),
-    "GetLog": (Method.POST, "/session/:sessionId/log"),
-    "GetLogTypes": (Method.GET, "/session/:sessionId/log/types"),
+    "GetLog": (Method.POST, "/session/:sessionId/se/log"),
+    "GetLogTypes": (Method.GET, "/session/:sessionId/se/log/types"),
     "GetNamedCookie": (Method.GET, "/session/:sessionId/cookie/:name"),
     "GetNetworkConditions":
     (Method.GET, "/session/:sessionId/chromium/network_conditions"),
diff --git a/chrome/test/chromedriver/server/http_handler.cc b/chrome/test/chromedriver/server/http_handler.cc
index 578f3ab..120fe193 100644
--- a/chrome/test/chromedriver/server/http_handler.cc
+++ b/chrome/test/chromedriver/server/http_handler.cc
@@ -484,12 +484,14 @@
                                    base::BindRepeating(&ExecuteElementEquals),
                                    false /*w3c_standard_command*/)),
 
-      // No W3C equivalent.
+      // No W3C equivalent. Allowed in W3C mode due to active usage by some APIs
+      // and the difficulty for clients to provide an equivalent implementation.
+      // This endpoint is mentioned in an appendix of W3C spec
+      // (https://www.w3.org/TR/webdriver/#element-displayedness).
       CommandMapping(
           kGet, "session/:sessionId/element/:id/displayed",
           WrapToCommand("IsElementDisplayed",
-                        base::BindRepeating(&ExecuteIsElementDisplayed),
-                        false /*w3c_standard_command*/)),
+                        base::BindRepeating(&ExecuteIsElementDisplayed))),
 
       // No W3C equivalent.
       CommandMapping(
@@ -714,12 +716,14 @@
                                                        kSessionStorage),
                                    false /*w3c_standard_command*/)),
 
-      // Non-standard command but supported in the foreseeable future.
+      // No W3C equivalent, temporarily enabled until clients start using
+      // "session/:sessionId/se/log".
+      // Superseded by "session/:sessionId/se/log".
       CommandMapping(
           kPost, "session/:sessionId/log",
           WrapToCommand("GetLog", base::BindRepeating(&ExecuteGetLog))),
 
-      // No W3C equivalent.
+      // No W3C equivalent. Superseded by "session/:sessionId/se/log/types".
       CommandMapping(
           kGet, "session/:sessionId/log/types",
           WrapToCommand("GetLogTypes",
@@ -753,6 +757,20 @@
                         base::BindRepeating(&ExecuteSetNetworkConnection))),
 
       //
+      // Non-standard extension commands
+      //
+
+      // Commands to access Chrome logs, defined by agreement with Selenium.
+      // Using "se" prefix for "Selenium".
+      CommandMapping(
+          kPost, "session/:sessionId/se/log",
+          WrapToCommand("GetLog", base::BindRepeating(&ExecuteGetLog))),
+      CommandMapping(
+          kGet, "session/:sessionId/se/log/types",
+          WrapToCommand("GetLogTypes",
+                        base::BindRepeating(&ExecuteGetAvailableLogTypes))),
+
+      //
       // ChromeDriver specific extension commands.
       //
 
diff --git a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/manifest.json b/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/manifest.json
deleted file mode 100644
index 30bd2d73..0000000
--- a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/manifest.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "name": "Service worker with chrome.tabs.onUpdated event",
-  "version": "1.0",
-  "manifest_version": 2,
-  "permissions": [ "tabs" ]
-}
diff --git a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/on_updated.html b/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/on_updated.html
deleted file mode 100644
index 41cd8f6..0000000
--- a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/on_updated.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-  <script src="on_updated.js"></script>
-</head>
-</html>
diff --git a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/on_updated.js b/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/on_updated.js
deleted file mode 100644
index 5ce2a61..0000000
--- a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/on_updated.js
+++ /dev/null
@@ -1,13 +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.
-
-window.onload = function() {
-  setTimeout(function() {
-    document.title = 'foo';
-    setTimeout(function() {
-      document.title = 'bar';
-    }, 0);
-  }, 0);
-}
-
diff --git a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/page.html b/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/page.html
deleted file mode 100644
index f6e2de85..0000000
--- a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/page.html
+++ /dev/null
@@ -1 +0,0 @@
-<script src="page.js"></script>
diff --git a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/page.js b/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/page.js
deleted file mode 100644
index d2291b5..0000000
--- a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/page.js
+++ /dev/null
@@ -1,32 +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.
-
-var getReadyPromise = function() {
-  return new Promise(function(resolve, reject) {
-    navigator.serviceWorker.register('sw.js').then(function() {
-      return navigator.serviceWorker.ready;
-    }).then(function(registration) {
-      resolve('ready');
-    }).catch(function(err) {
-      reject(err);
-    });
-  });
-};
-
-window.runServiceWorker = function() {
-  getReadyPromise().then(function(message) {
-    window.domAutomationController.send(message);
-  }).catch(function(err) {
-    window.domAutomationController.send('FAILURE');
-  });
-};
-
-window.createTabThenUpdate = function() {
-  navigator.serviceWorker.onmessage = function(e) {
-    // e.data -> 'chrome.tabs.onUpdated callback'.
-    window.domAutomationController.send(e.data);
-  };
-  var url = chrome.extension.getURL('on_updated.html');
-  chrome.tabs.create({url: url});
-};
diff --git a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/sw.js b/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/sw.js
deleted file mode 100644
index f6a7374c..0000000
--- a/chrome/test/data/extensions/api_test/service_worker/events_to_stopped_worker/sw.js
+++ /dev/null
@@ -1,55 +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.
-
-var expectedEventData;
-var capturedEventData;
-
-function expect(data) {
-  expectedEventData = data;
-  capturedEventData = [];
-}
-
-// Claim clients to send postMessage reply to them.
-self.addEventListener('activate', function(e) {
-  e.waitUntil(self.clients.claim());
-});
-
-function sendMessage(msg) {
-  clients.matchAll({}).then(function(clients) {
-    clients.forEach(function(client) {
-      client.postMessage(msg);
-    });
-  });
-}
-
-function checkExpectations() {
-  if (capturedEventData.length < expectedEventData.length) {
-    return;
-  }
-
-  var passed = JSON.stringify(expectedEventData) ==
-      JSON.stringify(capturedEventData);
-  if (passed) {
-    sendMessage('chrome.tabs.onUpdated callback');
-  } else {
-    sendMessage('FAILURE');
-  }
-}
-
-function addOnUpdatedListener() {
-  chrome.tabs.onUpdated.addListener(function(tabId, info, tab) {
-    capturedEventData.push(info);
-    checkExpectations();
-  });
-
-  var url = chrome.extension.getURL('on_updated.html');
-  expect([
-    {status: 'loading', 'url': url},
-    {status: 'complete'},
-    {title: 'foo'},
-    {title: 'bar'}
-  ]);
-};
-
-addOnUpdatedListener();
diff --git a/chrome/test/data/extensions/api_test/service_worker/worker_based_background/events_to_stopped_worker/manifest.json b/chrome/test/data/extensions/api_test/service_worker/worker_based_background/events_to_stopped_worker/manifest.json
new file mode 100644
index 0000000..34751222
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/service_worker/worker_based_background/events_to_stopped_worker/manifest.json
@@ -0,0 +1,8 @@
+{
+  "name": "Service Worker-based background script",
+  "version": "0.1",
+  "manifest_version": 2,
+  "description": "Test tabs events APIs for service worker-based background scripts.",
+  "permissions": ["tabs"],
+  "background": {"service_worker": "service_worker_background.js"}
+}
diff --git a/chrome/test/data/extensions/api_test/service_worker/worker_based_background/events_to_stopped_worker/page.html b/chrome/test/data/extensions/api_test/service_worker/worker_based_background/events_to_stopped_worker/page.html
new file mode 100644
index 0000000..d3cdf0a
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/service_worker/worker_based_background/events_to_stopped_worker/page.html
@@ -0,0 +1 @@
+<title>Unmodified</title>
diff --git a/chrome/test/data/extensions/api_test/service_worker/worker_based_background/events_to_stopped_worker/service_worker_background.js b/chrome/test/data/extensions/api_test/service_worker/worker_based_background/events_to_stopped_worker/service_worker_background.js
new file mode 100644
index 0000000..d44635c
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/service_worker/worker_based_background/events_to_stopped_worker/service_worker_background.js
@@ -0,0 +1,20 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var seenLoading = false;
+
+chrome.tabs.onUpdated.addListener(function localListener (
+    tabId, changeInfo, tab) {
+  if (changeInfo.status === 'loading') {
+    if (seenLoading == true) {
+      chrome.test.sendMessage('ERROR');
+    } else {
+      seenLoading = true;
+    }
+  } else if (changeInfo.status === 'complete') {
+    chrome.test.sendMessage(seenLoading == true ? 'finished' : 'ERROR');
+  }
+});
+
+chrome.test.sendMessage('ready');
diff --git a/chromeos/resources/BUILD.gn b/chromeos/resources/BUILD.gn
index d2728b0..5a70eda 100644
--- a/chromeos/resources/BUILD.gn
+++ b/chromeos/resources/BUILD.gn
@@ -33,5 +33,6 @@
     "//chromeos/services/device_sync/public/mojom:mojom_js",
     "//chromeos/services/machine_learning/public/mojom:mojom_js",
     "//chromeos/services/multidevice_setup/public/mojom:mojom_js",
+    "//chromeos/services/network_config/public/mojom:mojom_js",
   ]
 }
diff --git a/chromeos/resources/chromeos_resources.grd b/chromeos/resources/chromeos_resources.grd
index a6b9a9ff..9d6dfbb 100644
--- a/chromeos/resources/chromeos_resources.grd
+++ b/chromeos/resources/chromeos_resources.grd
@@ -14,6 +14,7 @@
     <includes>
       <part file="cellular_resources.grdp" />
       <part file="multidevice_resources.grdp" />
+      <part file="cros_network_config_resources.grdp" />
       <if expr="enable_cros_libassistant">
         <part file="assistant_resources.grdp" />
       </if>
diff --git a/chromeos/resources/cros_network_config_resources.grdp b/chromeos/resources/cros_network_config_resources.grdp
new file mode 100644
index 0000000..e168e91
--- /dev/null
+++ b/chromeos/resources/cros_network_config_resources.grdp
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grit-part>
+  <include name="IDR_IP_ADDRESS_MOJOM_HTML"
+      file="${mojom_root}/services/network/public/mojom/ip_address.mojom.html"
+      use_base_dir="false"
+      type="BINDATA"
+      compress="gzip" />
+  <include name="IDR_IP_ADDRESS_MOJOM_LITE_JS"
+      file="${mojom_root}/services/network/public/mojom/ip_address.mojom-lite.js"
+      use_base_dir="false"
+      type="BINDATA"
+      compress="gzip" />
+  <include name="IDR_NETWORK_CONFIG_MOJOM_HTML"
+      file="${mojom_root}/chromeos/services/network_config/public/mojom/cros_network_config.mojom.html"
+      use_base_dir="false"
+      type="BINDATA"
+      compress="gzip" />
+  <include name="IDR_NETWORK_CONFIG_MOJOM_LITE_JS"
+      file="${mojom_root}/chromeos/services/network_config/public/mojom/cros_network_config.mojom-lite.js"
+      use_base_dir="false"
+      type="BINDATA"
+      compress="gzip" />
+</grit-part>
diff --git a/chromeos/services/assistant/public/features.cc b/chromeos/services/assistant/public/features.cc
index 54e8e57..d586eac 100644
--- a/chromeos/services/assistant/public/features.cc
+++ b/chromeos/services/assistant/public/features.cc
@@ -48,10 +48,10 @@
     base::FEATURE_DISABLED_BY_DEFAULT};
 
 const base::Feature kTimerTicks{"ChromeOSAssistantTimerTicks",
-                                base::FEATURE_DISABLED_BY_DEFAULT};
+                                base::FEATURE_ENABLED_BY_DEFAULT};
 
 const base::Feature kEnableAssistantAlarmTimerManager{
-    "EnableAssistantAlarmTimerManager", base::FEATURE_DISABLED_BY_DEFAULT};
+    "EnableAssistantAlarmTimerManager", base::FEATURE_ENABLED_BY_DEFAULT};
 
 const base::Feature kEnablePowerManager{"ChromeOSAssistantEnablePowerManager",
                                         base::FEATURE_DISABLED_BY_DEFAULT};
@@ -129,7 +129,10 @@
 }
 
 bool IsTimerTicksEnabled() {
-  return base::FeatureList::IsEnabled(kTimerTicks);
+  // The timer ticks feature is dependent on new notification add/remove logic
+  // that is tied to new events delivered from the AlarmTimerManager API.
+  return IsAlarmTimerManagerEnabled() &&
+         base::FeatureList::IsEnabled(kTimerTicks);
 }
 
 bool IsWarmerWelcomeEnabled() {
diff --git a/chromeos/services/network_config/cros_network_config_unittest.cc b/chromeos/services/network_config/cros_network_config_unittest.cc
index c1a06d0..00216d86 100644
--- a/chromeos/services/network_config/cros_network_config_unittest.cc
+++ b/chromeos/services/network_config/cros_network_config_unittest.cc
@@ -5,7 +5,7 @@
 #include "chromeos/services/network_config/cros_network_config.h"
 
 #include "base/bind.h"
-#include "base/message_loop/message_loop.h"
+#include "base/test/scoped_task_environment.h"
 #include "chromeos/network/network_state_handler.h"
 #include "chromeos/network/network_state_test_helper.h"
 #include "chromeos/network/network_type_pattern.h"
@@ -89,7 +89,7 @@
   std::string wifi1_path() { return wifi1_path_; }
 
  private:
-  const base::MessageLoop message_loop_;
+  base::test::ScopedTaskEnvironment scoped_task_environment_;
   NetworkStateTestHelper helper_{false /* use_default_devices_and_services */};
   std::unique_ptr<CrosNetworkConfig> cros_network_config_;
   std::unique_ptr<CrosNetworkConfigTestObserver> observer_;
diff --git a/chromeos/services/network_config/network_config_service_unittest.cc b/chromeos/services/network_config/network_config_service_unittest.cc
index dad6dc5..f3732e17 100644
--- a/chromeos/services/network_config/network_config_service_unittest.cc
+++ b/chromeos/services/network_config/network_config_service_unittest.cc
@@ -4,7 +4,7 @@
 
 #include "chromeos/services/network_config/network_config_service.h"
 
-#include "base/message_loop/message_loop.h"
+#include "base/test/scoped_task_environment.h"
 #include "chromeos/network/network_state_handler.h"
 #include "chromeos/services/network_config/public/cpp/cros_network_config_test_helper.h"
 #include "chromeos/services/network_config/public/cpp/cros_network_config_test_observer.h"
@@ -24,7 +24,7 @@
   }
 
  private:
-  const base::MessageLoop message_loop_;
+  base::test::ScopedTaskEnvironment scoped_task_environment_;
   CrosNetworkConfigTestHelper helper_;
 
   DISALLOW_COPY_AND_ASSIGN(NetworkConfigServiceTest);
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb
index f4f34f0..1b02758 100644
--- a/chromeos/strings/chromeos_strings_ar.xtb
+++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ar">
 <translation id="1510238584712386396">المشغّل</translation>
 <translation id="1734367976349034509">يخضع هذا الجهاز لإدارة المؤسسة</translation>
+<translation id="1930797645656624981">‏خدمة أسلوب الإدخال لنظام التشغيل Chrome</translation>
 <translation id="2049639323467105390">تتم إدارة هذا الجهاز بواسطة <ph name="DOMAIN" />.</translation>
 <translation id="2083960536266308407">لم يتم العثور على أي نتائج على الشاشة</translation>
 <translation id="2338501278241028356">تشغيل البلوتوث لاكتشاف الأجهزة القريبة</translation>
diff --git a/chromeos/strings/chromeos_strings_da.xtb b/chromeos/strings/chromeos_strings_da.xtb
index 7595520..05dec81 100644
--- a/chromeos/strings/chromeos_strings_da.xtb
+++ b/chromeos/strings/chromeos_strings_da.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="da">
 <translation id="1510238584712386396">Appliste</translation>
 <translation id="1734367976349034509">Denne enhed er virksomhedsadministreret</translation>
+<translation id="1930797645656624981">Indtastningsmetodetjeneste for Chrome OS</translation>
 <translation id="2049639323467105390">Denne enhed administreres af <ph name="DOMAIN" />.</translation>
 <translation id="2083960536266308407">Der blev ikke fundet noget på skærmen</translation>
 <translation id="2338501278241028356">Slå Bluetooth til for at opdage enheder i nærheden</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb
index ab7f1be..cb745df 100644
--- a/chromeos/strings/chromeos_strings_de.xtb
+++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="de">
 <translation id="1510238584712386396">Launcher</translation>
 <translation id="1734367976349034509">Dieses Gerät wird vom Unternehmen verwaltet</translation>
+<translation id="1930797645656624981">Dienst für die Chrome OS-Eingabemethoden</translation>
 <translation id="2049639323467105390">Dieses Gerät wird durch <ph name="DOMAIN" /> verwaltet.</translation>
 <translation id="2083960536266308407">Nichts auf dem Display gefunden</translation>
 <translation id="2338501278241028356">Aktivieren Sie Bluetooth, damit Geräte in der Nähe gefunden werden</translation>
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb
index b1cde22..1248ce9 100644
--- a/chromeos/strings/chromeos_strings_es.xtb
+++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="es">
 <translation id="1510238584712386396">Menú de aplicaciones</translation>
 <translation id="1734367976349034509">Este es un dispositivo administrado por la empresa</translation>
+<translation id="1930797645656624981">Servicio de método de introducción de Chrome OS</translation>
 <translation id="2049639323467105390">Este dispositivo está gestionado por <ph name="DOMAIN" /></translation>
 <translation id="2083960536266308407">No se ha encontrado nada en la pantalla</translation>
 <translation id="2338501278241028356">Activa el Bluetooth para encontrar dispositivos cercanos</translation>
diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb
index 2b2c515..a6a5621 100644
--- a/chromeos/strings/chromeos_strings_fa.xtb
+++ b/chromeos/strings/chromeos_strings_fa.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="fa">
 <translation id="1510238584712386396">راه‌انداز</translation>
 <translation id="1734367976349034509">این دستگاه توسط سازمانی مدیریت می‌شود</translation>
+<translation id="1930797645656624981">‏سرویس روش ورودی سیستم‌عامل Chrome</translation>
 <translation id="2049639323467105390">این دستگاه توسط <ph name="DOMAIN" /> مدیریت می‌شود.</translation>
 <translation id="2083960536266308407">چیزی در صفحه پیدا نشد</translation>
 <translation id="2338501278241028356">برای کاوش دستگاه‌های همین اطراف، بلوتوث را روشن کنید</translation>
diff --git a/chromeos/strings/chromeos_strings_gu.xtb b/chromeos/strings/chromeos_strings_gu.xtb
index 955e34f..9148a55 100644
--- a/chromeos/strings/chromeos_strings_gu.xtb
+++ b/chromeos/strings/chromeos_strings_gu.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="gu">
 <translation id="1510238584712386396">લૉન્ચર</translation>
 <translation id="1734367976349034509">આ ઉપકરણ એન્ટરપ્રાઇઝ દ્વારા સંચાલિત થાય છે</translation>
+<translation id="1930797645656624981">Chrome OS ઇનપુટ પદ્ધતિ સેવા</translation>
 <translation id="2049639323467105390">આ ઉપકરણને <ph name="DOMAIN" /> દ્વારા મેનેજ કરવામાં આવેલું છે.</translation>
 <translation id="2083960536266308407">સ્ક્રીન પર કંઈ મળ્યું નથી</translation>
 <translation id="2338501278241028356">નજીકનાં ડિવાઇસ શોધવા માટે Bluetooth ચાલુ કરો</translation>
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb
index 79b2f76d..5a3dec0 100644
--- a/chromeos/strings/chromeos_strings_id.xtb
+++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="id">
 <translation id="1510238584712386396">Peluncur</translation>
 <translation id="1734367976349034509">Perangkat ini dikelola perusahaan</translation>
+<translation id="1930797645656624981">Layanan Metode Masukan Chrome OS</translation>
 <translation id="2049639323467105390">Perangkat ini dikelola oleh <ph name="DOMAIN" />.</translation>
 <translation id="2083960536266308407">Tidak menemukan apa pun di layar</translation>
 <translation id="2338501278241028356">Aktifkan Bluetooth untuk menemukan perangkat di sekitar</translation>
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb
index 1da7a98..d2902b5 100644
--- a/chromeos/strings/chromeos_strings_ja.xtb
+++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ja">
 <translation id="1510238584712386396">ランチャー</translation>
 <translation id="1734367976349034509">このデバイスは会社が管理しています</translation>
+<translation id="1930797645656624981">Chrome OS の入力方法サービス</translation>
 <translation id="2049639323467105390">このデバイスは <ph name="DOMAIN" /> によって管理されています。</translation>
 <translation id="2083960536266308407">画面では何も見つかりませんでした</translation>
 <translation id="2338501278241028356">近くのデバイスを検出するには Bluetooth をオンにしてください</translation>
diff --git a/chromeos/strings/chromeos_strings_kn.xtb b/chromeos/strings/chromeos_strings_kn.xtb
index 8a277df..d2ed04c4 100644
--- a/chromeos/strings/chromeos_strings_kn.xtb
+++ b/chromeos/strings/chromeos_strings_kn.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="kn">
 <translation id="1510238584712386396">ಲಾಂಚರ್</translation>
 <translation id="1734367976349034509">ಈ ಸಾಧನವನ್ನು ಎಂಟರ್‌ಪ್ರೈಸ್ ನಿರ್ವಹಣೆ ಮಾಡುತ್ತಿದೆ</translation>
+<translation id="1930797645656624981">Chrome OS ಇನ್‌ಪುಟ್ ವಿಧಾನ ಸೇವೆ</translation>
 <translation id="2049639323467105390">ಈ ಸಾಧನವು <ph name="DOMAIN" /> ನಿಂದ ನಿರ್ವಹಿಸಲ್ಪಟ್ಟಿದೆ.</translation>
 <translation id="2083960536266308407">ಸ್ಕ್ರೀನ್‌ ಮೇಲೆ ಏನೂ ಕಾಣಿಸಿಲ್ಲ</translation>
 <translation id="2338501278241028356">ಸಮೀಪದ ಸಾಧನಗಳನ್ನು ಅನ್ವೇಷಿಸಲು ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡಿ</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb
index 8bc720c4..63ae1e0 100644
--- a/chromeos/strings/chromeos_strings_ko.xtb
+++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ko">
 <translation id="1510238584712386396">런처</translation>
 <translation id="1734367976349034509">기업에서 관리하는 기기입니다.</translation>
+<translation id="1930797645656624981">Chrome OS 입력 방법 서비스</translation>
 <translation id="2049639323467105390">기기는 <ph name="DOMAIN" />에서 관리합니다.</translation>
 <translation id="2083960536266308407">화면에 정보가 없습니다.</translation>
 <translation id="2338501278241028356">블루투스를 사용 설정하여 근처 기기 탐색</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb
index 6525797b4..66527b4 100644
--- a/chromeos/strings/chromeos_strings_ms.xtb
+++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ms">
 <translation id="1510238584712386396">Pelancar</translation>
 <translation id="1734367976349034509">Peranti ini diurus perusahaan</translation>
+<translation id="1930797645656624981">Perkhidmatan Kaedah Input OS Chrome</translation>
 <translation id="2049639323467105390">Peranti ini diuruskan oleh <ph name="DOMAIN" />.</translation>
 <translation id="2083960536266308407">Tiada apa-apa ditemui pada skrin</translation>
 <translation id="2338501278241028356">Hidupkan Bluetooth untuk menemui peranti berdekatan</translation>
diff --git a/chromeos/strings/chromeos_strings_nl.xtb b/chromeos/strings/chromeos_strings_nl.xtb
index 737923d..555d2a5 100644
--- a/chromeos/strings/chromeos_strings_nl.xtb
+++ b/chromeos/strings/chromeos_strings_nl.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="nl">
 <translation id="1510238584712386396">Launcher</translation>
 <translation id="1734367976349034509">Dit apparaat wordt beheerd door een onderneming</translation>
+<translation id="1930797645656624981">Invoermethodeservice voor Chrome OS</translation>
 <translation id="2049639323467105390">Dit apparaat wordt beheerd door <ph name="DOMAIN" />.</translation>
 <translation id="2083960536266308407">Niets gevonden op het scherm</translation>
 <translation id="2338501278241028356">Schakel Bluetooth in om apparaten in de buurt te vinden</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb
index 3908813..9b4560e 100644
--- a/chromeos/strings/chromeos_strings_pt-BR.xtb
+++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="pt-BR">
 <translation id="1510238584712386396">Iniciador</translation>
 <translation id="1734367976349034509">Este dispositivo é gerenciado por uma empresa</translation>
+<translation id="1930797645656624981">Serviço de método de entrada do Chrome OS</translation>
 <translation id="2049639323467105390">Este dispositivo é gerenciado por <ph name="DOMAIN" />.</translation>
 <translation id="2083960536266308407">Nada encontrado na tela</translation>
 <translation id="2338501278241028356">Ativar o Bluetooth para descobrir dispositivos nas proximidades</translation>
diff --git a/chromeos/strings/chromeos_strings_ru.xtb b/chromeos/strings/chromeos_strings_ru.xtb
index 74c233e..8bba2642 100644
--- a/chromeos/strings/chromeos_strings_ru.xtb
+++ b/chromeos/strings/chromeos_strings_ru.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ru">
 <translation id="1510238584712386396">Панель запуска</translation>
 <translation id="1734367976349034509">Это корпоративное устройство</translation>
+<translation id="1930797645656624981">Выбор способа ввода в Chrome OS</translation>
 <translation id="2049639323467105390">Это устройство находится в домене <ph name="DOMAIN" />.</translation>
 <translation id="2083960536266308407">Ничего не найдено</translation>
 <translation id="2338501278241028356">Включите Bluetooth, чтобы найти устройства</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb
index e306a8d..4a0f737 100644
--- a/chromeos/strings/chromeos_strings_sv.xtb
+++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="sv">
 <translation id="1510238584712386396">Startprogram</translation>
 <translation id="1734367976349034509">Enheten är företagshanterad</translation>
+<translation id="1930797645656624981">Tjänst för inmatningsmetod för Chrome OS</translation>
 <translation id="2049639323467105390">Den här enheten hanteras av <ph name="DOMAIN" />.</translation>
 <translation id="2083960536266308407">Ingenting hittades på skärmen</translation>
 <translation id="2338501278241028356">Aktivera Bluetooth så att det går att upptäcka enheter i närheten</translation>
diff --git a/chromeos/strings/chromeos_strings_te.xtb b/chromeos/strings/chromeos_strings_te.xtb
index e9d2bac..8d9d559 100644
--- a/chromeos/strings/chromeos_strings_te.xtb
+++ b/chromeos/strings/chromeos_strings_te.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="te">
 <translation id="1510238584712386396">లాంచర్</translation>
 <translation id="1734367976349034509">ఈ పరికరం సంస్థ ద్వారా నిర్వహించబడుతోంది</translation>
+<translation id="1930797645656624981">Chrome OS ఇన్‌పుట్ విధానం సేవ</translation>
 <translation id="2049639323467105390">ఈ పరికరం <ph name="DOMAIN" /> ద్వారా నిర్వహించబడుతుంది.</translation>
 <translation id="2083960536266308407">స్క్రీన్‌పై ఏమీ కనుగొనబడలేదు</translation>
 <translation id="2338501278241028356">సమీప పరికరాలను కనుగొనడానికి బ్లూటూత్‌ను ఆన్ చేయండి</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb
index bc918f76..6b3d329 100644
--- a/chromeos/strings/chromeos_strings_tr.xtb
+++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="tr">
 <translation id="1510238584712386396">Başlatıcı</translation>
 <translation id="1734367976349034509">Bu cihaz kuruluş tarafından yönetiliyor</translation>
+<translation id="1930797645656624981">Chrome OS Giriş Yöntemi Hizmeti</translation>
 <translation id="2049639323467105390">Bu cihaz <ph name="DOMAIN" /> tarafından yönetiliyor.</translation>
 <translation id="2083960536266308407">Ekranda hiçbir şey bulunamadı</translation>
 <translation id="2338501278241028356">Yakındaki cihazları keşfetmek için Bluetooth'u aç</translation>
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb
index f8fa721ed..969c70b 100644
--- a/chromeos/strings/chromeos_strings_uk.xtb
+++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="uk">
 <translation id="1510238584712386396">Панель запуску</translation>
 <translation id="1734367976349034509">Цим пристроєм керує адміністратор підприємства</translation>
+<translation id="1930797645656624981">Сервіс методів введення в ОС Chrome</translation>
 <translation id="2049639323467105390">Цим пристроєм керує домен <ph name="DOMAIN" />.</translation>
 <translation id="2083960536266308407">На екрані не знайдено проблемних елементів</translation>
 <translation id="2338501278241028356">Щоб знайти пристрої поблизу, увімкніть Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb
index c94e5b4..5757eacd 100644
--- a/chromeos/strings/chromeos_strings_vi.xtb
+++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="vi">
 <translation id="1510238584712386396">Trình chạy</translation>
 <translation id="1734367976349034509">Thiết bị này do doanh nghiệp quản lý</translation>
+<translation id="1930797645656624981">Dịch vụ cung cấp phương thức nhập trên Chrome OS</translation>
 <translation id="2049639323467105390">Thiết bị này được <ph name="DOMAIN" /> quản lý.</translation>
 <translation id="2083960536266308407">Không có gì trên màn hình</translation>
 <translation id="2338501278241028356">Bật Bluetooth để khám phá các thiết bị lân cận</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-CN.xtb b/chromeos/strings/chromeos_strings_zh-CN.xtb
index e0949ca..6f3f99a 100644
--- a/chromeos/strings/chromeos_strings_zh-CN.xtb
+++ b/chromeos/strings/chromeos_strings_zh-CN.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="zh-CN">
 <translation id="1510238584712386396">启动器</translation>
 <translation id="1734367976349034509">此设备是受企业管理的设备</translation>
+<translation id="1930797645656624981">Chrome 操作系统输入法服务</translation>
 <translation id="2049639323467105390">此设备由 <ph name="DOMAIN" /> 管理。</translation>
 <translation id="2083960536266308407">在屏幕上找不到任何相符的内容</translation>
 <translation id="2338501278241028356">开启蓝牙以发现附近的设备</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb
index a2fe323..f7dbf8f 100644
--- a/chromeos/strings/chromeos_strings_zh-TW.xtb
+++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="zh-TW">
 <translation id="1510238584712386396">啟動器</translation>
 <translation id="1734367976349034509">這個裝置受到企業管理</translation>
+<translation id="1930797645656624981">Chrome 作業系統輸入法服務</translation>
 <translation id="2049639323467105390">這個裝置由 <ph name="DOMAIN" /> 管理。</translation>
 <translation id="2083960536266308407">在畫面上找不到任何相符內容</translation>
 <translation id="2338501278241028356">開啟藍牙即可偵測附近的裝置</translation>
diff --git a/components/autofill/core/browser/BUILD.gn b/components/autofill/core/browser/BUILD.gn
index 855bf1b..65d20d36 100644
--- a/components/autofill/core/browser/BUILD.gn
+++ b/components/autofill/core/browser/BUILD.gn
@@ -150,6 +150,8 @@
     "payments/credit_card_access_manager.h",
     "payments/credit_card_cvc_authenticator.cc",
     "payments/credit_card_cvc_authenticator.h",
+    "payments/credit_card_fido_authenticator.cc",
+    "payments/credit_card_fido_authenticator.h",
     "payments/credit_card_save_manager.cc",
     "payments/credit_card_save_manager.h",
     "payments/credit_card_save_strike_database.cc",
@@ -384,6 +386,8 @@
     "mock_autocomplete_history_manager.h",
     "payments/test_authentication_requester.cc",
     "payments/test_authentication_requester.h",
+    "payments/test_credit_card_fido_authenticator.cc",
+    "payments/test_credit_card_fido_authenticator.h",
     "payments/test_credit_card_save_manager.cc",
     "payments/test_credit_card_save_manager.h",
     "payments/test_credit_card_save_strike_database.cc",
@@ -530,6 +534,7 @@
     "payments/autofill_wallet_data_type_controller_unittest.cc",
     "payments/credit_card_access_manager_unittest.cc",
     "payments/credit_card_cvc_authenticator_unittest.cc",
+    "payments/credit_card_fido_authenticator_unittest.cc",
     "payments/credit_card_save_manager_unittest.cc",
     "payments/full_card_request_unittest.cc",
     "payments/legal_message_line_unittest.cc",
diff --git a/components/autofill/core/browser/autofill_client.cc b/components/autofill/core/browser/autofill_client.cc
index c77c9b4e..e7c56b1 100644
--- a/components/autofill/core/browser/autofill_client.cc
+++ b/components/autofill/core/browser/autofill_client.cc
@@ -8,6 +8,9 @@
 
 namespace autofill {
 
+AutofillClient::UnmaskDetails::UnmaskDetails() {}
+AutofillClient::UnmaskDetails::~UnmaskDetails() {}
+
 version_info::Channel AutofillClient::GetChannel() const {
   return version_info::Channel::UNKNOWN;
 }
diff --git a/components/autofill/core/browser/autofill_client.h b/components/autofill/core/browser/autofill_client.h
index 11f094d..84092ec 100644
--- a/components/autofill/core/browser/autofill_client.h
+++ b/components/autofill/core/browser/autofill_client.h
@@ -115,6 +115,32 @@
     UNMASK_FOR_AUTOFILL,
   };
 
+  // Authentication methods for card unmasking.
+  enum UnmaskAuthMethod {
+    UNKNOWN = 0,
+    // Require user to unmask via CVC.
+    CVC = 1,
+    // Suggest use of FIDO authenticator for card unmasking.
+    FIDO = 2,
+  };
+
+  // Details for card unmasking, such as the suggested method of authentication,
+  // along with any information required to facilitate the authentication.
+  struct UnmaskDetails {
+    UnmaskDetails();
+    ~UnmaskDetails();
+
+    // The type of authentication method suggested for card unmask.
+    UnmaskAuthMethod unmask_auth_method = UnmaskAuthMethod::UNKNOWN;
+    // Set to true if the user should be offered opt-in for FIDO Authentication.
+    bool offer_fido_opt_in = false;
+    // Public Key Credential Request Options required for authentication.
+    // https://www.w3.org/TR/webauthn/#dictdef-publickeycredentialrequestoptions
+    base::Value fido_request_options;
+    // Set of credit cards ids that are eligible for FIDO Authentication.
+    std::set<std::string> fido_eligible_card_ids;
+  };
+
   // Used for explicitly requesting the user to enter/confirm cardholder name,
   // expiration date month and year.
   struct UserProvidedCardDetails {
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
index bb1c6a1..ff6a620 100644
--- a/components/autofill/core/browser/autofill_manager.cc
+++ b/components/autofill/core/browser/autofill_manager.cc
@@ -1016,13 +1016,13 @@
 }
 
 payments::FullCardRequest* AutofillManager::GetOrCreateFullCardRequest() {
-  return credit_card_access_manager_->credit_card_cvc_authenticator()
+  return credit_card_access_manager_->GetOrCreateCVCAuthenticator()
       ->GetFullCardRequest();
 }
 
 base::WeakPtr<payments::FullCardRequest::UIDelegate>
 AutofillManager::GetAsFullCardRequestUIDelegate() {
-  return credit_card_access_manager_->credit_card_cvc_authenticator()
+  return credit_card_access_manager_->GetOrCreateCVCAuthenticator()
       ->GetAsFullCardRequestUIDelegate();
 }
 
diff --git a/components/autofill/core/browser/autofill_manager_unittest.cc b/components/autofill/core/browser/autofill_manager_unittest.cc
index 54ccb04..c19970a 100644
--- a/components/autofill/core/browser/autofill_manager_unittest.cc
+++ b/components/autofill/core/browser/autofill_manager_unittest.cc
@@ -545,7 +545,7 @@
   CardUnmaskDelegate* full_card_unmask_delegate() {
     payments::FullCardRequest* full_card_request =
         autofill_manager_->credit_card_access_manager_
-            ->credit_card_cvc_authenticator()
+            ->GetOrCreateCVCAuthenticator()
             ->full_card_request_.get();
     DCHECK(full_card_request);
     return static_cast<CardUnmaskDelegate*>(full_card_request);
diff --git a/components/autofill/core/browser/autofill_metrics_unittest.cc b/components/autofill/core/browser/autofill_metrics_unittest.cc
index bacd400..7cc9c4a 100644
--- a/components/autofill/core/browser/autofill_metrics_unittest.cc
+++ b/components/autofill/core/browser/autofill_metrics_unittest.cc
@@ -393,7 +393,7 @@
     const std::string& real_pan) {
   payments::FullCardRequest* full_card_request =
       autofill_manager_->credit_card_access_manager_
-          ->credit_card_cvc_authenticator()
+          ->GetOrCreateCVCAuthenticator()
           ->full_card_request_.get();
   DCHECK(full_card_request);
   full_card_request->OnDidGetRealPan(result, real_pan);
diff --git a/components/autofill/core/browser/payments/credit_card_access_manager.cc b/components/autofill/core/browser/payments/credit_card_access_manager.cc
index c422b19..05f87c3 100644
--- a/components/autofill/core/browser/payments/credit_card_access_manager.cc
+++ b/components/autofill/core/browser/payments/credit_card_access_manager.cc
@@ -5,12 +5,18 @@
 #include "components/autofill/core/browser/payments/credit_card_access_manager.h"
 
 #include <memory>
+#include <set>
 #include <string>
+#include <utility>
 #include <vector>
 
 #include "base/bind.h"
 #include "base/guid.h"
 #include "base/strings/string16.h"
+#include "base/synchronization/waitable_event.h"
+#include "base/task/post_task.h"
+#include "base/task/task_traits.h"
+#include "base/time/time.h"
 #include "components/autofill/core/browser/autofill_client.h"
 #include "components/autofill/core/browser/autofill_driver.h"
 #include "components/autofill/core/browser/autofill_manager.h"
@@ -23,6 +29,17 @@
 
 namespace autofill {
 
+namespace {
+// Timeout to wait for unmask details from Google Payments in milliseconds.
+constexpr int64_t kUnmaskDetailsResponseTimeout = 1000;
+// Used for asynchronously waiting for |event| to be signaled.
+bool WaitForEvent(base::WaitableEvent* event) {
+  event->declare_only_used_while_idle();
+  return event->TimedWait(
+      base::TimeDelta::FromMilliseconds(kUnmaskDetailsResponseTimeout));
+}
+}  // namespace
+
 CreditCardAccessManager::CreditCardAccessManager(
     AutofillManager* autofill_manager)
     : CreditCardAccessManager(
@@ -37,6 +54,9 @@
       payments_client_(client_->GetPaymentsClient()),
       personal_data_manager_(personal_data_manager),
       form_event_logger_(form_event_logger),
+      ready_to_start_authentication_(
+          base::WaitableEvent::ResetPolicy::AUTOMATIC,
+          base::WaitableEvent::InitialState::NOT_SIGNALED),
       weak_ptr_factory_(this) {}
 
 CreditCardAccessManager::~CreditCardAccessManager() {}
@@ -124,28 +144,106 @@
   return nullptr;
 }
 
+void CreditCardAccessManager::PrepareToFetchCreditCard() {
+  // Reset in case a late response was ignored.
+  ready_to_start_authentication_.Reset();
+
+  // If user is not verifiable, the only option is to perform CVC Auth, which
+  // does not require unmask details.
+  if (!GetOrCreateFIDOAuthenticator()->IsUserVerifiable())
+    return;
+
+  payments_client_->GetUnmaskDetails(
+      base::BindOnce(&CreditCardAccessManager::OnDidGetUnmaskDetails,
+                     weak_ptr_factory_.GetWeakPtr()),
+      personal_data_manager_->app_locale());
+}
+
+void CreditCardAccessManager::OnDidGetUnmaskDetails(
+    AutofillClient::PaymentsRpcResult result,
+    AutofillClient::UnmaskDetails& unmask_details) {
+  unmask_details_.offer_fido_opt_in = unmask_details.offer_fido_opt_in;
+  unmask_details_.unmask_auth_method = unmask_details.unmask_auth_method;
+  unmask_details_.fido_request_options =
+      std::move(unmask_details.fido_request_options);
+  unmask_details_.fido_eligible_card_ids =
+      unmask_details.fido_eligible_card_ids;
+
+  ready_to_start_authentication_.Signal();
+}
+
 void CreditCardAccessManager::FetchCreditCard(
     const CreditCard* card,
     base::WeakPtr<Accessor> accessor,
-    const base::TimeTicks& timestamp) {
-  if (!card || card->record_type() != CreditCard::MASKED_SERVER_CARD) {
-    accessor->OnCreditCardFetched(/*did_succeed=*/card != nullptr, card);
+    const base::TimeTicks& form_parsed_timestamp) {
+  if (is_authentication_in_progress_ || !card) {
+    accessor->OnCreditCardFetched(/*did_succeed=*/false, nullptr);
     return;
   }
 
+  if (card->record_type() != CreditCard::MASKED_SERVER_CARD) {
+    accessor->OnCreditCardFetched(/*did_succeed=*/true, card);
+    return;
+  }
+
+  card_ = card;
   accessor_ = accessor;
+  form_parsed_timestamp_ = form_parsed_timestamp;
   is_authentication_in_progress_ = true;
-  credit_card_cvc_authenticator()->Authenticate(
-      card, weak_ptr_factory_.GetWeakPtr(), personal_data_manager_, timestamp);
+
+  if (AuthenticationRequiresUnmaskDetails()) {
+    // Wait for |ready_to_start_authentication_| to be signaled by
+    // OnDidGetUnmaskDetails() or until timeout before calling Authenticate().
+    base::PostTaskWithTraitsAndReplyWithResult(
+        FROM_HERE, {base::MayBlock()},
+        base::BindOnce(&WaitForEvent, &ready_to_start_authentication_),
+        base::BindOnce(&CreditCardAccessManager::Authenticate,
+                       weak_ptr_factory_.GetWeakPtr()));
+  } else {
+    Authenticate();
+  }
+}
+
+void CreditCardAccessManager::Authenticate(bool did_get_unmask_details) {
+  // Reset now that we have started authentication.
+  ready_to_start_authentication_.Reset();
+
+  // Do not use FIDO if card is not listed in unmask details, as each Card must
+  // be CVC authed at least once per device.
+  bool card_is_eligible_for_fido =
+      did_get_unmask_details &&
+      unmask_details_.unmask_auth_method ==
+          AutofillClient::UnmaskAuthMethod::FIDO &&
+      unmask_details_.fido_eligible_card_ids.find(card_->server_id()) !=
+          unmask_details_.fido_eligible_card_ids.end();
+
+  if (card_is_eligible_for_fido) {
+    DCHECK(unmask_details_.fido_request_options.is_dict());
+    GetOrCreateFIDOAuthenticator()->Authenticate(
+        card_, weak_ptr_factory_.GetWeakPtr(),
+        std::move(unmask_details_.fido_request_options));
+  } else {
+    GetOrCreateCVCAuthenticator()->Authenticate(
+        card_, weak_ptr_factory_.GetWeakPtr(), personal_data_manager_,
+        form_parsed_timestamp_);
+  }
 }
 
 CreditCardCVCAuthenticator*
-CreditCardAccessManager::credit_card_cvc_authenticator() {
+CreditCardAccessManager::GetOrCreateCVCAuthenticator() {
   if (!cvc_authenticator_)
-    cvc_authenticator_.reset(new CreditCardCVCAuthenticator(client_));
+    cvc_authenticator_ = std::make_unique<CreditCardCVCAuthenticator>(client_);
   return cvc_authenticator_.get();
 }
 
+CreditCardFIDOAuthenticator*
+CreditCardAccessManager::GetOrCreateFIDOAuthenticator() {
+  if (!fido_authenticator_)
+    fido_authenticator_ =
+        std::make_unique<CreditCardFIDOAuthenticator>(client_);
+  return fido_authenticator_.get();
+}
+
 void CreditCardAccessManager::OnCVCAuthenticationComplete(
     bool did_succeed,
     const CreditCard* card,
@@ -154,6 +252,26 @@
   accessor_->OnCreditCardFetched(did_succeed, card, cvc);
 }
 
+void CreditCardAccessManager::OnFIDOAuthenticationComplete(
+    bool did_succeed,
+    const CreditCard* card) {
+  if (did_succeed) {
+    is_authentication_in_progress_ = false;
+    accessor_->OnCreditCardFetched(did_succeed, card);
+  } else {
+    // Fall back to CVC if WebAuthn failed.
+    // TODO(crbug/949269): Add metrics to log fallback CVC auths.
+    GetOrCreateCVCAuthenticator()->Authenticate(
+        card_, weak_ptr_factory_.GetWeakPtr(), personal_data_manager_,
+        form_parsed_timestamp_);
+  }
+}
+
+bool CreditCardAccessManager::AuthenticationRequiresUnmaskDetails() {
+  return GetOrCreateFIDOAuthenticator()->IsUserVerifiable() &&
+         GetOrCreateFIDOAuthenticator()->IsUserOptedIn();
+}
+
 bool CreditCardAccessManager::IsLocalCard(const CreditCard* card) {
   return card && card->record_type() == CreditCard::LOCAL_CARD;
 }
diff --git a/components/autofill/core/browser/payments/credit_card_access_manager.h b/components/autofill/core/browser/payments/credit_card_access_manager.h
index ec84e43..84ff78e 100644
--- a/components/autofill/core/browser/payments/credit_card_access_manager.h
+++ b/components/autofill/core/browser/payments/credit_card_access_manager.h
@@ -6,15 +6,19 @@
 #define COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_CREDIT_CARD_ACCESS_MANAGER_H_
 
 #include <memory>
+#include <set>
 #include <string>
+#include <utility>
 #include <vector>
 
 #include "base/strings/string16.h"
+#include "base/synchronization/waitable_event.h"
 #include "components/autofill/core/browser/autofill_client.h"
 #include "components/autofill/core/browser/autofill_driver.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
 #include "components/autofill/core/browser/metrics/credit_card_form_event_logger.h"
 #include "components/autofill/core/browser/payments/credit_card_cvc_authenticator.h"
+#include "components/autofill/core/browser/payments/credit_card_fido_authenticator.h"
 #include "components/autofill/core/browser/payments/payments_client.h"
 #include "components/autofill/core/browser/personal_data_manager.h"
 
@@ -24,7 +28,8 @@
 
 // Manages logic for accessing credit cards either stored locally or stored
 // with Google Payments. Owned by AutofillManager.
-class CreditCardAccessManager : public CreditCardCVCAuthenticator::Requester {
+class CreditCardAccessManager : public CreditCardCVCAuthenticator::Requester,
+                                public CreditCardFIDOAuthenticator::Requester {
  public:
   class Accessor {
    public:
@@ -64,12 +69,17 @@
   // Retrieves instance of CreditCard with given guid.
   CreditCard* GetCreditCard(std::string guid);
 
+  // Makes a call to Google Payments to retrieve authentication details.
+  void PrepareToFetchCreditCard();
+
   // Calls |accessor->OnCreditCardFetched()| once credit card is fetched.
   void FetchCreditCard(const CreditCard* card,
                        base::WeakPtr<Accessor> accessor,
                        const base::TimeTicks& timestamp = base::TimeTicks());
 
-  CreditCardCVCAuthenticator* credit_card_cvc_authenticator();
+  CreditCardCVCAuthenticator* GetOrCreateCVCAuthenticator();
+
+  CreditCardFIDOAuthenticator* GetOrCreateFIDOAuthenticator();
 
  private:
   friend class AutofillAssistantTest;
@@ -77,12 +87,31 @@
   friend class AutofillMetricsTest;
   friend class CreditCardAccessManagerTest;
 
-  // CreditCardCVCAuthenticator::Requester
+  void set_fido_authenticator_for_testing(
+      std::unique_ptr<CreditCardFIDOAuthenticator> fido_authenticator) {
+    fido_authenticator_ = std::move(fido_authenticator);
+  }
+
+  // Sets |unmask_details_|. May be ignored if response is too late and user is
+  // not opted-in for FIDO auth, or if user does not select a card.
+  void OnDidGetUnmaskDetails(AutofillClient::PaymentsRpcResult result,
+                             AutofillClient::UnmaskDetails& unmask_details);
+
+  // Calls either CreditCardFIDOAuthenticator::Authenticate() or
+  // CreditCardCVCAuthenticator::Authenticate() depending on the response
+  // contained in |unmask_details_|.
+  void Authenticate(bool did_get_unmask_details = false);
+
+  // CreditCardCVCAuthenticator::Requester:
   void OnCVCAuthenticationComplete(
       bool did_succeed,
       const CreditCard* card = nullptr,
       const base::string16& cvc = base::string16()) override;
 
+  // CreditCardFIDOAuthenticator::Requester:
+  void OnFIDOAuthenticationComplete(bool did_succeed,
+                                    const CreditCard* card = nullptr) override;
+
   bool is_authentication_in_progress() {
     return is_authentication_in_progress_;
   }
@@ -90,6 +119,11 @@
   // Returns true only if |credit_card| is a local card.
   bool IsLocalCard(const CreditCard* credit_card);
 
+  // If true, FetchCreditCard() should wait for OnDidGetUnmaskDetails() to begin
+  // authentication. If false, FetchCreditCard() can begin authentication
+  // immediately.
+  bool AuthenticationRequiresUnmaskDetails();
+
   // Is set to true only when waiting for the callback to
   // OnCVCAuthenticationComplete() to be executed.
   bool is_authentication_in_progress_ = false;
@@ -109,8 +143,24 @@
   // For logging metrics. May be NULL for tests.
   CreditCardFormEventLogger* form_event_logger_;
 
-  // Authenticator for card requests.
+  // Meant for histograms recorded in FullCardRequest.
+  base::TimeTicks form_parsed_timestamp_;
+
+  // Authenticators for card unmasking.
   std::unique_ptr<CreditCardCVCAuthenticator> cvc_authenticator_;
+  std::unique_ptr<CreditCardFIDOAuthenticator> fido_authenticator_;
+
+  // Suggested authentication method and other information to facilitate card
+  // unmasking.
+  AutofillClient::UnmaskDetails unmask_details_;
+
+  // Resets when PrepareToFetchCreditCard() is called, if not already reset.
+  // Signaled when OnDidGetUnmaskDetails() is called or after timeout.
+  // Authenticate() is called when signaled.
+  base::WaitableEvent ready_to_start_authentication_;
+
+  // The credit card being accessed.
+  const CreditCard* card_;
 
   // The object attempting to access a card.
   base::WeakPtr<Accessor> accessor_;
diff --git a/components/autofill/core/browser/payments/credit_card_access_manager_unittest.cc b/components/autofill/core/browser/payments/credit_card_access_manager_unittest.cc
index 1fa5ba1..6b5703e 100644
--- a/components/autofill/core/browser/payments/credit_card_access_manager_unittest.cc
+++ b/components/autofill/core/browser/payments/credit_card_access_manager_unittest.cc
@@ -19,11 +19,13 @@
 #include "base/memory/ref_counted.h"
 #include "base/metrics/field_trial.h"
 #include "base/metrics/metrics_hashes.h"
+#include "base/run_loop.h"
 #include "base/stl_util.h"
 #include "base/strings/string16.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
+#include "base/task/post_task.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/scoped_task_environment.h"
@@ -37,6 +39,7 @@
 #include "components/autofill/core/browser/data_model/credit_card.h"
 #include "components/autofill/core/browser/form_structure.h"
 #include "components/autofill/core/browser/metrics/form_events.h"
+#include "components/autofill/core/browser/payments/test_credit_card_fido_authenticator.h"
 #include "components/autofill/core/browser/payments/test_payments_client.h"
 #include "components/autofill/core/browser/personal_data_manager.h"
 #include "components/autofill/core/browser/test_autofill_client.h"
@@ -64,7 +67,6 @@
 #include "net/url_request/url_request_test_util.h"
 #include "services/metrics/public/cpp/ukm_builders.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"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/gfx/geometry/rect.h"
@@ -89,20 +91,21 @@
   void OnCreditCardFetched(bool did_succeed,
                            const CreditCard* card,
                            const base::string16& cvc) override {
-    if (did_succeed) {
+    did_succeed_ = did_succeed;
+    if (did_succeed_) {
       DCHECK(card);
       number_ = card->number();
-      return Success();
     }
-    return Failure();
   }
 
   base::string16 number() { return number_; }
 
-  MOCK_METHOD0(Success, void());
-  MOCK_METHOD0(Failure, void());
+  bool did_succeed() { return did_succeed_; }
 
  private:
+  // Is set to true if authentication was successful.
+  bool did_succeed_ = false;
+  // The card number returned from OnCreditCardFetched().
   base::string16 number_;
   base::WeakPtrFactory<TestAccessor> weak_ptr_factory_;
 };
@@ -123,7 +126,11 @@
 
 class CreditCardAccessManagerTest : public testing::Test {
  public:
-  CreditCardAccessManagerTest() {}
+  CreditCardAccessManagerTest()
+      : scoped_task_environment_(
+            base::test::ScopedTaskEnvironment::MainThreadType::DEFAULT,
+            base::test::ScopedTaskEnvironment::ThreadPoolExecutionMode::
+                QUEUED) {}
 
   void SetUp() override {
     autofill_client_.SetPrefs(test::PrefServiceForTesting());
@@ -143,14 +150,15 @@
         base::ThreadTaskRunnerHandle::Get());
     autofill_driver_->SetURLRequestContext(request_context_.get());
 
-    payments::TestPaymentsClient* payments_client =
-        new payments::TestPaymentsClient(
-            autofill_driver_->GetURLLoaderFactory(),
-            autofill_client_.GetIdentityManager(), &personal_data_manager_);
+    payments_client_ = new payments::TestPaymentsClient(
+        autofill_driver_->GetURLLoaderFactory(),
+        autofill_client_.GetIdentityManager(), &personal_data_manager_);
     autofill_client_.set_test_payments_client(
-        std::unique_ptr<payments::TestPaymentsClient>(payments_client));
+        std::unique_ptr<payments::TestPaymentsClient>(payments_client_));
     credit_card_access_manager_ = std::make_unique<CreditCardAccessManager>(
         &autofill_client_, &personal_data_manager_, nullptr);
+    credit_card_access_manager_->set_fido_authenticator_for_testing(
+        std::make_unique<TestCreditCardFIDOAuthenticator>(&autofill_client_));
   }
 
   void TearDown() override {
@@ -191,18 +199,57 @@
     personal_data_manager_.AddServerCreditCard(masked_server_card);
   }
 
-  void OnDidGetRealPan(AutofillClient::PaymentsRpcResult result,
-                       const std::string& real_pan) {
+  // Returns true if full card request was sent from CVC auth.
+  bool GetRealPanForCVCAuth(AutofillClient::PaymentsRpcResult result,
+                            const std::string& real_pan) {
     payments::FullCardRequest* full_card_request =
-        credit_card_access_manager_->credit_card_cvc_authenticator()
-            ->full_card_request_.get();
-    DCHECK(full_card_request);
+        GetCVCAuthenticator()->full_card_request_.get();
+
+    if (!full_card_request)
+      return false;
+
     full_card_request->OnDidGetRealPan(result, real_pan);
+    return true;
   }
 
+  // Returns true if full card request was sent from FIDO auth.
+  bool GetRealPanForFIDOAuth(AutofillClient::PaymentsRpcResult result,
+                             const std::string& real_pan) {
+    payments::FullCardRequest* full_card_request =
+        GetFIDOAuthenticator()->full_card_request_.get();
+
+    if (!full_card_request)
+      return false;
+
+    full_card_request->OnDidGetRealPan(result, real_pan);
+    return true;
+  }
+
+  CreditCardCVCAuthenticator* GetCVCAuthenticator() {
+    return credit_card_access_manager_->GetOrCreateCVCAuthenticator();
+  }
+
+  TestCreditCardFIDOAuthenticator* GetFIDOAuthenticator() {
+    return static_cast<TestCreditCardFIDOAuthenticator*>(
+        credit_card_access_manager_->GetOrCreateFIDOAuthenticator());
+  }
+
+  void OnFIDOUserVerification(bool did_succeed) {
+    // TODO(crbug/949269): Currently CreditCardFIDOAuthenticator fails by
+    // default. Once implemented, update this function along with
+    // TestCreditCardFIDOAuthenticator to mock a user verification gesture.
+  }
+
+  void InvokeUnmaskDetailsTimeout() {
+    credit_card_access_manager_->ready_to_start_authentication_.Signal();
+  }
+
+  void WaitForCallbacks() { scoped_task_environment_.RunUntilIdle(); }
+
  protected:
   std::unique_ptr<TestAccessor> accessor_;
   base::test::ScopedTaskEnvironment scoped_task_environment_;
+  payments::TestPaymentsClient* payments_client_;
   TestAutofillClient autofill_client_;
   std::unique_ptr<TestAutofillDriver> autofill_driver_;
   scoped_refptr<net::TestURLRequestContextGetter> request_context_;
@@ -286,9 +333,9 @@
   CreateLocalCard(kTestGUID, kTestNumber);
   CreditCard* card = credit_card_access_manager_->GetCreditCard(kTestGUID);
 
-  EXPECT_CALL(*accessor_, Success);
   credit_card_access_manager_->FetchCreditCard(card, accessor_->GetWeakPtr());
 
+  EXPECT_TRUE(accessor_->did_succeed());
   EXPECT_EQ(ASCIIToUTF16(kTestNumber), accessor_->number());
 }
 
@@ -296,58 +343,105 @@
 TEST_F(CreditCardAccessManagerTest, FetchNullptrFailure) {
   personal_data_manager_.ClearCreditCards();
 
-  EXPECT_CALL(*accessor_, Failure());
   credit_card_access_manager_->FetchCreditCard(nullptr,
                                                accessor_->GetWeakPtr());
+  EXPECT_FALSE(accessor_->did_succeed());
 }
 
 // Ensures that FetchCreditCard() returns the full PAN upon a successful
 // response from payments.
-TEST_F(CreditCardAccessManagerTest, FetchServerCardSuccess) {
+TEST_F(CreditCardAccessManagerTest, FetchServerCardCVCSuccess) {
   CreateServerCard(kTestGUID, kTestNumber);
   CreditCard* card = credit_card_access_manager_->GetCreditCard(kTestGUID);
 
-  EXPECT_CALL(*accessor_, Success);
   credit_card_access_manager_->FetchCreditCard(card, accessor_->GetWeakPtr());
 
-  OnDidGetRealPan(AutofillClient::SUCCESS, kTestNumber);
+  EXPECT_TRUE(GetRealPanForCVCAuth(AutofillClient::SUCCESS, kTestNumber));
+  EXPECT_TRUE(accessor_->did_succeed());
   EXPECT_EQ(ASCIIToUTF16(kTestNumber), accessor_->number());
 }
 
 // Ensures that FetchCreditCard() returns a failure upon a negative response
 // from the server.
-TEST_F(CreditCardAccessManagerTest, FetchServerCardNetworkError) {
+TEST_F(CreditCardAccessManagerTest, FetchServerCardCVCNetworkError) {
   CreateServerCard(kTestGUID, kTestNumber);
   CreditCard* card = credit_card_access_manager_->GetCreditCard(kTestGUID);
 
-  EXPECT_CALL(*accessor_, Failure);
   credit_card_access_manager_->FetchCreditCard(card, accessor_->GetWeakPtr());
 
-  OnDidGetRealPan(AutofillClient::NETWORK_ERROR, std::string());
+  EXPECT_TRUE(
+      GetRealPanForCVCAuth(AutofillClient::NETWORK_ERROR, std::string()));
+  EXPECT_FALSE(accessor_->did_succeed());
 }
 
 // Ensures that FetchCreditCard() returns a failure upon a negative response
 // from the server.
-TEST_F(CreditCardAccessManagerTest, FetchServerCardPermanentFailure) {
+TEST_F(CreditCardAccessManagerTest, FetchServerCardCVCPermanentFailure) {
   CreateServerCard(kTestGUID, kTestNumber);
   CreditCard* card = credit_card_access_manager_->GetCreditCard(kTestGUID);
 
-  EXPECT_CALL(*accessor_, Failure);
   credit_card_access_manager_->FetchCreditCard(card, accessor_->GetWeakPtr());
 
-  OnDidGetRealPan(AutofillClient::PERMANENT_FAILURE, std::string());
+  EXPECT_TRUE(
+      GetRealPanForCVCAuth(AutofillClient::PERMANENT_FAILURE, std::string()));
+  EXPECT_FALSE(accessor_->did_succeed());
 }
 
 // Ensures that a "try again" response from payments does not end the flow.
-TEST_F(CreditCardAccessManagerTest, FetchServerCardTryAgainFailure) {
+TEST_F(CreditCardAccessManagerTest, FetchServerCardCVCTryAgainFailure) {
   CreateServerCard(kTestGUID, kTestNumber);
   CreditCard* card = credit_card_access_manager_->GetCreditCard(kTestGUID);
 
-  EXPECT_CALL(*accessor_, Success);
   credit_card_access_manager_->FetchCreditCard(card, accessor_->GetWeakPtr());
 
-  OnDidGetRealPan(AutofillClient::TRY_AGAIN_FAILURE, std::string());
-  OnDidGetRealPan(AutofillClient::SUCCESS, kTestNumber);
+  EXPECT_TRUE(
+      GetRealPanForCVCAuth(AutofillClient::TRY_AGAIN_FAILURE, std::string()));
+  EXPECT_FALSE(accessor_->did_succeed());
+
+  EXPECT_TRUE(GetRealPanForCVCAuth(AutofillClient::SUCCESS, kTestNumber));
+  EXPECT_TRUE(accessor_->did_succeed());
+  EXPECT_EQ(ASCIIToUTF16(kTestNumber), accessor_->number());
+}
+
+// Ensures that CVC prompt is invoked after WebAuthn fails.
+TEST_F(CreditCardAccessManagerTest, FetchServerCardFIDOFailureCVCFallback) {
+  CreateServerCard(kTestGUID, kTestNumber);
+  CreditCard* card = credit_card_access_manager_->GetCreditCard(kTestGUID);
+  GetFIDOAuthenticator()->SetUserVerifiable(true);
+  GetFIDOAuthenticator()->SetUserOptIn(true);
+  payments_client_->AddFidoEligibleCard(card->server_id());
+
+  credit_card_access_manager_->PrepareToFetchCreditCard();
+  WaitForCallbacks();
+
+  credit_card_access_manager_->FetchCreditCard(card, accessor_->GetWeakPtr());
+  WaitForCallbacks();
+
+  // FIDO Failure.
+  OnFIDOUserVerification(/*did_succeed=*/false);
+  EXPECT_FALSE(GetRealPanForFIDOAuth(AutofillClient::SUCCESS, kTestNumber));
+  EXPECT_FALSE(accessor_->did_succeed());
+
+  // Followed by a fallback to CVC.
+  EXPECT_TRUE(GetRealPanForCVCAuth(AutofillClient::SUCCESS, kTestNumber));
+  EXPECT_TRUE(accessor_->did_succeed());
+  EXPECT_EQ(ASCIIToUTF16(kTestNumber), accessor_->number());
+}
+
+// Ensures that CVC prompt is invoked when the pre-flight call to Google
+// Payments times out.
+TEST_F(CreditCardAccessManagerTest, FetchServerCardFIDOTimeoutCVCFallback) {
+  CreateServerCard(kTestGUID, kTestNumber);
+  CreditCard* card = credit_card_access_manager_->GetCreditCard(kTestGUID);
+  GetFIDOAuthenticator()->SetUserVerifiable(true);
+  GetFIDOAuthenticator()->SetUserOptIn(true);
+
+  credit_card_access_manager_->FetchCreditCard(card, accessor_->GetWeakPtr());
+  InvokeUnmaskDetailsTimeout();
+  WaitForCallbacks();
+
+  EXPECT_TRUE(GetRealPanForCVCAuth(AutofillClient::SUCCESS, kTestNumber));
+  EXPECT_TRUE(accessor_->did_succeed());
   EXPECT_EQ(ASCIIToUTF16(kTestNumber), accessor_->number());
 }
 
@@ -361,7 +455,7 @@
   credit_card_access_manager_->FetchCreditCard(card, accessor_->GetWeakPtr());
   EXPECT_TRUE(IsAuthenticationInProgress());
 
-  OnDidGetRealPan(AutofillClient::SUCCESS, kTestNumber);
+  EXPECT_TRUE(GetRealPanForCVCAuth(AutofillClient::SUCCESS, kTestNumber));
   EXPECT_FALSE(IsAuthenticationInProgress());
 }
 
diff --git a/components/autofill/core/browser/payments/credit_card_cvc_authenticator_unittest.cc b/components/autofill/core/browser/payments/credit_card_cvc_authenticator_unittest.cc
index 4dca916..3bfa546 100644
--- a/components/autofill/core/browser/payments/credit_card_cvc_authenticator_unittest.cc
+++ b/components/autofill/core/browser/payments/credit_card_cvc_authenticator_unittest.cc
@@ -63,7 +63,6 @@
 #include "net/url_request/url_request_test_util.h"
 #include "services/metrics/public/cpp/ukm_builders.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"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/gfx/geometry/rect.h"
@@ -171,47 +170,49 @@
 TEST_F(CreditCardCVCAuthenticatorTest, AuthenticateServerCardSuccess) {
   CreditCard card = CreateServerCard(kTestGUID, kTestNumber);
 
-  EXPECT_CALL(*requester_, Success);
   cvc_authenticator_->Authenticate(&card, requester_->GetWeakPtr(),
                                    &personal_data_manager_,
                                    base::TimeTicks::Now());
 
   OnDidGetRealPan(AutofillClient::SUCCESS, kTestNumber);
+  EXPECT_TRUE(requester_->did_succeed());
   EXPECT_EQ(ASCIIToUTF16(kTestNumber), requester_->number());
 }
 
 TEST_F(CreditCardCVCAuthenticatorTest, AuthenticateServerCardNetworkError) {
   CreditCard card = CreateServerCard(kTestGUID, kTestNumber);
 
-  EXPECT_CALL(*requester_, Failure);
   cvc_authenticator_->Authenticate(&card, requester_->GetWeakPtr(),
                                    &personal_data_manager_,
                                    base::TimeTicks::Now());
 
   OnDidGetRealPan(AutofillClient::NETWORK_ERROR, std::string());
+  EXPECT_FALSE(requester_->did_succeed());
 }
 
 TEST_F(CreditCardCVCAuthenticatorTest, AuthenticateServerCardPermanentFailure) {
   CreditCard card = CreateServerCard(kTestGUID, kTestNumber);
 
-  EXPECT_CALL(*requester_, Failure);
   cvc_authenticator_->Authenticate(&card, requester_->GetWeakPtr(),
                                    &personal_data_manager_,
                                    base::TimeTicks::Now());
 
   OnDidGetRealPan(AutofillClient::PERMANENT_FAILURE, std::string());
+  EXPECT_FALSE(requester_->did_succeed());
 }
 
 TEST_F(CreditCardCVCAuthenticatorTest, AuthenticateServerCardTryAgainFailure) {
   CreditCard card = CreateServerCard(kTestGUID, kTestNumber);
 
-  EXPECT_CALL(*requester_, Success);
   cvc_authenticator_->Authenticate(&card, requester_->GetWeakPtr(),
                                    &personal_data_manager_,
                                    base::TimeTicks::Now());
 
   OnDidGetRealPan(AutofillClient::TRY_AGAIN_FAILURE, std::string());
+  EXPECT_FALSE(requester_->did_succeed());
+
   OnDidGetRealPan(AutofillClient::SUCCESS, kTestNumber);
+  EXPECT_TRUE(requester_->did_succeed());
   EXPECT_EQ(ASCIIToUTF16(kTestNumber), requester_->number());
 }
 
diff --git a/components/autofill/core/browser/payments/credit_card_fido_authenticator.cc b/components/autofill/core/browser/payments/credit_card_fido_authenticator.cc
new file mode 100644
index 0000000..584e03b0
--- /dev/null
+++ b/components/autofill/core/browser/payments/credit_card_fido_authenticator.cc
@@ -0,0 +1,44 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/autofill/core/browser/payments/credit_card_fido_authenticator.h"
+
+#include "base/strings/string16.h"
+#include "components/autofill/core/browser/autofill_client.h"
+#include "components/autofill/core/browser/data_model/credit_card.h"
+#include "components/autofill/core/browser/payments/payments_client.h"
+#include "components/autofill/core/common/autofill_payments_features.h"
+
+namespace autofill {
+
+CreditCardFIDOAuthenticator::CreditCardFIDOAuthenticator(AutofillClient* client)
+    : autofill_client_(client),
+      payments_client_(client->GetPaymentsClient()),
+      weak_ptr_factory_(this) {}
+
+CreditCardFIDOAuthenticator::~CreditCardFIDOAuthenticator() {}
+
+void CreditCardFIDOAuthenticator::Authenticate(
+    const CreditCard* card,
+    base::WeakPtr<Requester> requester,
+    base::Value request_options) {
+  // TODO(crbug/949269): Add call to InternalAuthenticatorImpl::GetAssertion.
+  requester_ = requester;
+  requester_->OnFIDOAuthenticationComplete(false);
+}
+
+bool CreditCardFIDOAuthenticator::IsUserVerifiable() {
+  // TODO(crbug/949269): Add call to
+  // InternalAuthenticatorImpl::IsUserVerifyingPlatformAuthenticatorAvailable.
+  return base::FeatureList::IsEnabled(
+             features::kAutofillCreditCardAuthentication) &&
+         false;
+}
+
+bool CreditCardFIDOAuthenticator::IsUserOptedIn() {
+  // TODO(crbug/949269): Check pref-store for user opt-in.
+  return false;
+}
+
+}  // namespace autofill
diff --git a/components/autofill/core/browser/payments/credit_card_fido_authenticator.h b/components/autofill/core/browser/payments/credit_card_fido_authenticator.h
new file mode 100644
index 0000000..2078016
--- /dev/null
+++ b/components/autofill/core/browser/payments/credit_card_fido_authenticator.h
@@ -0,0 +1,74 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_CREDIT_CARD_FIDO_AUTHENTICATOR_H_
+#define COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_CREDIT_CARD_FIDO_AUTHENTICATOR_H_
+
+#include <memory>
+
+#include "base/strings/string16.h"
+#include "components/autofill/core/browser/autofill_client.h"
+#include "components/autofill/core/browser/data_model/credit_card.h"
+#include "components/autofill/core/browser/payments/full_card_request.h"
+#include "components/autofill/core/browser/payments/payments_client.h"
+
+namespace autofill {
+
+// Authenticates credit card unmasking through FIDO authentication, using the
+// WebAuthn specification, standardized by the FIDO alliance. The Webauthn
+// specification defines an API to cryptographically bind a server and client,
+// and verify that binding. More information can be found here:
+// - https://www.w3.org/TR/webauthn-1/
+// - https://fidoalliance.org/fido2/
+class CreditCardFIDOAuthenticator {
+ public:
+  class Requester {
+   public:
+    virtual ~Requester() {}
+    virtual void OnFIDOAuthenticationComplete(
+        bool did_succeed,
+        const CreditCard* card = nullptr) = 0;
+  };
+  explicit CreditCardFIDOAuthenticator(AutofillClient* client);
+  virtual ~CreditCardFIDOAuthenticator();
+
+  // Authentication
+  void Authenticate(const CreditCard* card,
+                    base::WeakPtr<Requester> requester,
+                    base::Value request_options);
+
+  // Returns true only if user has a verifying platform authenticator.
+  // e.g. Touch/Face ID, Windows Hello, Android Fingerprint etc is available and
+  // enabled.
+  virtual bool IsUserVerifiable();
+
+  // Returns true only if the user has opted-in to use WebAuthn for autofill.
+  virtual bool IsUserOptedIn();
+
+ private:
+  friend class AutofillManagerTest;
+  friend class CreditCardAccessManagerTest;
+  friend class CreditCardFIDOAuthenticatorTest;
+
+  // The associated autofill client. Weak reference.
+  AutofillClient* const autofill_client_;
+
+  // Payments client to make requests to Google Payments.
+  payments::PaymentsClient* const payments_client_;
+
+  // Responsible for getting the full card details, including the PAN and the
+  // CVC.
+  std::unique_ptr<payments::FullCardRequest> full_card_request_;
+
+  // Weak pointer to object that is requesting authentication.
+  base::WeakPtr<Requester> requester_;
+
+  base::WeakPtrFactory<CreditCardFIDOAuthenticator> weak_ptr_factory_;
+
+  DISALLOW_COPY_AND_ASSIGN(CreditCardFIDOAuthenticator);
+};
+
+}  // namespace autofill
+
+#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_CREDIT_CARD_FIDO_AUTHENTICATOR_H_
diff --git a/components/autofill/core/browser/payments/credit_card_fido_authenticator_unittest.cc b/components/autofill/core/browser/payments/credit_card_fido_authenticator_unittest.cc
new file mode 100644
index 0000000..92e41dd
--- /dev/null
+++ b/components/autofill/core/browser/payments/credit_card_fido_authenticator_unittest.cc
@@ -0,0 +1,170 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/autofill/core/browser/payments/credit_card_fido_authenticator.h"
+
+#include <stddef.h>
+
+#include <algorithm>
+#include <memory>
+#include <string>
+#include <tuple>
+#include <utility>
+#include <vector>
+
+#include "base/base64.h"
+#include "base/command_line.h"
+#include "base/feature_list.h"
+#include "base/memory/ref_counted.h"
+#include "base/metrics/field_trial.h"
+#include "base/metrics/metrics_hashes.h"
+#include "base/stl_util.h"
+#include "base/strings/string16.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_util.h"
+#include "base/strings/stringprintf.h"
+#include "base/test/metrics/histogram_tester.h"
+#include "base/test/scoped_feature_list.h"
+#include "base/test/scoped_task_environment.h"
+#include "base/threading/thread_task_runner_handle.h"
+#include "base/time/time.h"
+#include "base/values.h"
+#include "build/build_config.h"
+#include "components/autofill/core/browser/autocomplete_history_manager.h"
+#include "components/autofill/core/browser/autofill_download_manager.h"
+#include "components/autofill/core/browser/autofill_test_utils.h"
+#include "components/autofill/core/browser/data_model/autofill_profile.h"
+#include "components/autofill/core/browser/data_model/credit_card.h"
+#include "components/autofill/core/browser/metrics/form_events.h"
+#include "components/autofill/core/browser/payments/test_authentication_requester.h"
+#include "components/autofill/core/browser/payments/test_payments_client.h"
+#include "components/autofill/core/browser/personal_data_manager.h"
+#include "components/autofill/core/browser/test_autofill_client.h"
+#include "components/autofill/core/browser/test_autofill_clock.h"
+#include "components/autofill/core/browser/test_autofill_driver.h"
+#include "components/autofill/core/browser/test_personal_data_manager.h"
+#include "components/autofill/core/browser/validation.h"
+#include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
+#include "components/autofill/core/common/autofill_clock.h"
+#include "components/autofill/core/common/autofill_features.h"
+#include "components/autofill/core/common/autofill_payments_features.h"
+#include "components/autofill/core/common/autofill_prefs.h"
+#include "components/autofill/core/common/autofill_switches.h"
+#include "components/autofill/core/common/autofill_util.h"
+#include "components/prefs/pref_service.h"
+#include "components/security_state/core/security_state.h"
+#include "components/strings/grit/components_strings.h"
+#include "components/sync/driver/test_sync_service.h"
+#include "components/variations/variations_associated_data.h"
+#include "components/variations/variations_params_manager.h"
+#include "components/version_info/channel.h"
+#include "net/base/url_util.h"
+#include "net/url_request/url_request_context_getter.h"
+#include "net/url_request/url_request_test_util.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
+#include "services/network/public/cpp/shared_url_loader_factory.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/gfx/geometry/rect.h"
+#include "url/gurl.h"
+
+using base::ASCIIToUTF16;
+
+namespace autofill {
+namespace {
+
+const char kTestGUID[] = "00000000-0000-0000-0000-000000000001";
+const char kTestNumber[] = "4234567890123456";  // Visa
+
+std::string NextMonth() {
+  base::Time::Exploded now;
+  base::Time::Now().LocalExplode(&now);
+  return base::NumberToString(now.month % 12 + 1);
+}
+
+}  // namespace
+
+class CreditCardFIDOAuthenticatorTest : public testing::Test {
+ public:
+  CreditCardFIDOAuthenticatorTest() {}
+
+  void SetUp() override {
+    autofill_client_.SetPrefs(test::PrefServiceForTesting());
+    personal_data_manager_.Init(/*profile_database=*/database_,
+                                /*account_database=*/nullptr,
+                                /*pref_service=*/autofill_client_.GetPrefs(),
+                                /*identity_manager=*/nullptr,
+                                /*client_profile_validator=*/nullptr,
+                                /*history_service=*/nullptr,
+                                /*is_off_the_record=*/false);
+    personal_data_manager_.SetPrefService(autofill_client_.GetPrefs());
+
+    requester_.reset(new TestAuthenticationRequester());
+    autofill_driver_ =
+        std::make_unique<testing::NiceMock<TestAutofillDriver>>();
+    request_context_ = new net::TestURLRequestContextGetter(
+        base::ThreadTaskRunnerHandle::Get());
+    autofill_driver_->SetURLRequestContext(request_context_.get());
+
+    payments::TestPaymentsClient* payments_client =
+        new payments::TestPaymentsClient(
+            autofill_driver_->GetURLLoaderFactory(),
+            autofill_client_.GetIdentityManager(), &personal_data_manager_);
+    autofill_client_.set_test_payments_client(
+        std::unique_ptr<payments::TestPaymentsClient>(payments_client));
+    fido_authenticator_ =
+        std::make_unique<CreditCardFIDOAuthenticator>(&autofill_client_);
+  }
+
+  void TearDown() override {
+    // Order of destruction is important as AutofillDriver relies on
+    // PersonalDataManager to be around when it gets destroyed.
+    autofill_driver_.reset();
+
+    request_context_ = nullptr;
+  }
+
+  CreditCard CreateServerCard(std::string guid, std::string number) {
+    CreditCard masked_server_card = CreditCard();
+    test::SetCreditCardInfo(&masked_server_card, "Elvis Presley",
+                            number.c_str(), NextMonth().c_str(),
+                            test::NextYear().c_str(), "1");
+    masked_server_card.set_guid(guid);
+    masked_server_card.set_record_type(CreditCard::MASKED_SERVER_CARD);
+
+    personal_data_manager_.ClearCreditCards();
+    personal_data_manager_.AddServerCreditCard(masked_server_card);
+
+    return masked_server_card;
+  }
+
+ protected:
+  std::unique_ptr<TestAuthenticationRequester> requester_;
+  base::test::ScopedTaskEnvironment scoped_task_environment_;
+  TestAutofillClient autofill_client_;
+  std::unique_ptr<TestAutofillDriver> autofill_driver_;
+  scoped_refptr<net::TestURLRequestContextGetter> request_context_;
+  scoped_refptr<AutofillWebDataService> database_;
+  TestPersonalDataManager personal_data_manager_;
+  base::test::ScopedFeatureList scoped_feature_list_;
+  std::unique_ptr<CreditCardFIDOAuthenticator> fido_authenticator_;
+};
+
+TEST_F(CreditCardFIDOAuthenticatorTest, IsUserOptedInFalse) {
+  EXPECT_FALSE(fido_authenticator_->IsUserOptedIn());
+}
+
+TEST_F(CreditCardFIDOAuthenticatorTest, IsUserVerifiableFalse) {
+  EXPECT_FALSE(fido_authenticator_->IsUserVerifiable());
+}
+
+TEST_F(CreditCardFIDOAuthenticatorTest, AuthenticateCardFailure) {
+  CreditCard card = CreateServerCard(kTestGUID, kTestNumber);
+
+  fido_authenticator_->Authenticate(&card, requester_->GetWeakPtr(),
+                                    base::Value());
+  EXPECT_FALSE(requester_->did_succeed());
+}
+
+}  // namespace autofill
diff --git a/components/autofill/core/browser/payments/payments_client.cc b/components/autofill/core/browser/payments/payments_client.cc
index 4d41243..0f95336 100644
--- a/components/autofill/core/browser/payments/payments_client.cc
+++ b/components/autofill/core/browser/payments/payments_client.cc
@@ -270,33 +270,42 @@
 
   void ParseResponse(const base::Value& response) override {
     const auto* method = response.FindStringKey("authentication_method");
-    auth_method_ = method ? *method : std::string();
+    if (method) {
+      if (*method == "CVC") {
+        unmask_details_.unmask_auth_method =
+            AutofillClient::UnmaskAuthMethod::CVC;
+      } else if (*method == "FIDO") {
+        unmask_details_.unmask_auth_method =
+            AutofillClient::UnmaskAuthMethod::FIDO;
+      }
+    }
 
-    const auto* offer_opt_in =
-        response.FindKeyOfType("offer_opt_in", base::Value::Type::BOOLEAN);
-    offer_opt_in_ = offer_opt_in && offer_opt_in->GetBool();
+    const auto* offer_fido_opt_in =
+        response.FindKeyOfType("offer_fido_opt_in", base::Value::Type::BOOLEAN);
+    unmask_details_.offer_fido_opt_in =
+        offer_fido_opt_in && offer_fido_opt_in->GetBool();
 
     const auto* dictionary_value = response.FindKeyOfType(
         "request_options", base::Value::Type::DICTIONARY);
     if (dictionary_value)
-      request_options_ =
-          std::make_unique<base::Value>(dictionary_value->Clone());
+      unmask_details_.fido_request_options = dictionary_value->Clone();
 
     const auto* fido_eligible_card_ids = response.FindKeyOfType(
         "fido_eligible_credit_card_id", base::Value::Type::LIST);
     if (fido_eligible_card_ids) {
       for (const base::Value& result : fido_eligible_card_ids->GetList()) {
-        fido_eligible_card_ids_.insert(result.GetString());
+        unmask_details_.fido_eligible_card_ids.insert(result.GetString());
       }
     }
   }
 
-  bool IsResponseComplete() override { return !auth_method_.empty(); }
+  bool IsResponseComplete() override {
+    return unmask_details_.unmask_auth_method !=
+           AutofillClient::UnmaskAuthMethod::UNKNOWN;
+  }
 
   void RespondToDelegate(AutofillClient::PaymentsRpcResult result) override {
-    std::move(callback_).Run(result, auth_method_, offer_opt_in_,
-                             std::move(request_options_),
-                             fido_eligible_card_ids_);
+    std::move(callback_).Run(result, unmask_details_);
   }
 
  private:
@@ -304,16 +313,9 @@
   std::string app_locale_;
   const bool full_sync_enabled_;
 
-  // The type of authentication method suggested for card unmask.
-  std::string auth_method_;
-  // Set to true if the user should be offered opt-in for FIDO Authentication.
-  bool offer_opt_in_;
-  // Public Key Credential Request Options required for authentication.
-  // https://www.w3.org/TR/webauthn/#dictdef-publickeycredentialrequestoptions
-  std::unique_ptr<base::Value> request_options_;
-  // Set of credit cards ids that are eligible for FIDO Authentication.
-  std::set<std::string> fido_eligible_card_ids_;
-
+  // Suggested authentication method and other information to facilitate card
+  // unmasking.
+  AutofillClient::UnmaskDetails unmask_details_;
   DISALLOW_COPY_AND_ASSIGN(GetUnmaskDetailsRequest);
 };
 
diff --git a/components/autofill/core/browser/payments/payments_client.h b/components/autofill/core/browser/payments/payments_client.h
index 90345c5..9f5807f9 100644
--- a/components/autofill/core/browser/payments/payments_client.h
+++ b/components/autofill/core/browser/payments/payments_client.h
@@ -50,10 +50,7 @@
 
 // Callback type for GetUnmaskDetails callback.
 typedef base::OnceCallback<void(AutofillClient::PaymentsRpcResult,
-                                std::string,
-                                bool,
-                                std::unique_ptr<base::Value>,
-                                std::set<std::string>)>
+                                AutofillClient::UnmaskDetails&)>
     GetUnmaskDetailsCallback;
 
 // Billable service number is defined in Payments server to distinguish
diff --git a/components/autofill/core/browser/payments/payments_client_unittest.cc b/components/autofill/core/browser/payments/payments_client_unittest.cc
index 2f4b09f..e65e5ce4 100644
--- a/components/autofill/core/browser/payments/payments_client_unittest.cc
+++ b/components/autofill/core/browser/payments/payments_client_unittest.cc
@@ -114,15 +114,9 @@
   }
 
   void OnDidGetUnmaskDetails(AutofillClient::PaymentsRpcResult result,
-                             std::string auth_method,
-                             bool offer_opt_in,
-                             std::unique_ptr<base::Value> request_options,
-                             std::set<std::string> fido_eligible_card_ids) {
+                             AutofillClient::UnmaskDetails& unmask_details) {
     result_ = result;
-    auth_method_ = auth_method;
-    offer_opt_in_ = offer_opt_in;
-    request_options_ = std::move(request_options);
-    fido_eligible_card_ids_ = fido_eligible_card_ids;
+    unmask_details_ = &unmask_details;
   }
 
   void OnDidGetRealPan(AutofillClient::PaymentsRpcResult result,
@@ -258,10 +252,7 @@
   }
 
   AutofillClient::PaymentsRpcResult result_;
-  std::string auth_method_;
-  bool offer_opt_in_;
-  std::unique_ptr<base::Value> request_options_;
-  std::set<std::string> fido_eligible_card_ids_;
+  AutofillClient::UnmaskDetails* unmask_details_;
 
   std::string server_id_;
   std::string real_pan_;
@@ -320,12 +311,13 @@
 TEST_F(PaymentsClientTest, GetUnmaskDetailsSuccess) {
   StartGettingUnmaskDetails();
   IssueOAuthToken();
-  ReturnResponse(
-      net::HTTP_OK,
-      "{ \"offer_opt_in\": \"false\", \"authentication_method\": \"CVC\" }");
+  ReturnResponse(net::HTTP_OK,
+                 "{ \"offer_fido_opt_in\": \"false\", "
+                 "\"authentication_method\": \"CVC\" }");
   EXPECT_EQ(AutofillClient::SUCCESS, result_);
-  EXPECT_EQ(false, offer_opt_in_);
-  EXPECT_EQ("CVC", auth_method_);
+  EXPECT_EQ(false, unmask_details_->offer_fido_opt_in);
+  EXPECT_EQ(AutofillClient::UnmaskAuthMethod::CVC,
+            unmask_details_->unmask_auth_method);
 }
 
 TEST_F(PaymentsClientTest, GetUnmaskDetailsIncludesChromeUserContext) {
diff --git a/components/autofill/core/browser/payments/test_authentication_requester.cc b/components/autofill/core/browser/payments/test_authentication_requester.cc
index b9d563a..b6afed0 100644
--- a/components/autofill/core/browser/payments/test_authentication_requester.cc
+++ b/components/autofill/core/browser/payments/test_authentication_requester.cc
@@ -23,11 +23,21 @@
     bool did_succeed,
     const CreditCard* card,
     const base::string16& cvc) {
-  if (did_succeed) {
+  did_succeed_ = did_succeed;
+  if (did_succeed_) {
+    DCHECK(card);
     number_ = card->number();
-    return Success();
   }
-  return Failure();
+}
+
+void TestAuthenticationRequester::OnFIDOAuthenticationComplete(
+    bool did_succeed,
+    const CreditCard* card) {
+  did_succeed_ = did_succeed;
+  if (did_succeed_) {
+    DCHECK(card);
+    number_ = card->number();
+  }
 }
 
 }  // namespace autofill
diff --git a/components/autofill/core/browser/payments/test_authentication_requester.h b/components/autofill/core/browser/payments/test_authentication_requester.h
index e1e7c09..a57a3cd 100644
--- a/components/autofill/core/browser/payments/test_authentication_requester.h
+++ b/components/autofill/core/browser/payments/test_authentication_requester.h
@@ -10,32 +10,39 @@
 #include "base/strings/string16.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
 #include "components/autofill/core/browser/payments/credit_card_cvc_authenticator.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
+#include "components/autofill/core/browser/payments/credit_card_fido_authenticator.h"
 
 namespace autofill {
 
 // Test class for requesting authentication from CreditCardCVCAuthenticator.
 class TestAuthenticationRequester
-    : public CreditCardCVCAuthenticator::Requester {
+    : public CreditCardCVCAuthenticator::Requester,
+      public CreditCardFIDOAuthenticator::Requester {
  public:
   TestAuthenticationRequester();
   ~TestAuthenticationRequester() override;
 
+  // CreditCardCVCAuthenticator::Requester:
   void OnCVCAuthenticationComplete(
       bool did_succeed,
       const CreditCard* card = nullptr,
       const base::string16& cvc = base::string16()) override;
 
+  // CreditCardFIDOAuthenticator::Requester:
+  void OnFIDOAuthenticationComplete(bool did_succeed,
+                                    const CreditCard* card = nullptr) override;
+
   base::WeakPtr<TestAuthenticationRequester> GetWeakPtr();
 
   base::string16 number() { return number_; }
 
-  MOCK_METHOD0(Success, void());
-  MOCK_METHOD0(Failure, void());
+  bool did_succeed() { return did_succeed_; }
 
  private:
-  // The card number returned from OnCVCAuthenticationComplete.
+  // Is set to true if authentication was successful.
+  bool did_succeed_ = false;
+
+  // The card number returned from On*AuthenticationComplete().
   base::string16 number_;
 
   base::WeakPtrFactory<TestAuthenticationRequester> weak_ptr_factory_;
diff --git a/components/autofill/core/browser/payments/test_credit_card_fido_authenticator.cc b/components/autofill/core/browser/payments/test_credit_card_fido_authenticator.cc
new file mode 100644
index 0000000..ee60ad7
--- /dev/null
+++ b/components/autofill/core/browser/payments/test_credit_card_fido_authenticator.cc
@@ -0,0 +1,26 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/autofill/core/browser/payments/test_credit_card_fido_authenticator.h"
+
+#include "base/strings/string16.h"
+#include "components/autofill/core/browser/autofill_client.h"
+
+namespace autofill {
+
+TestCreditCardFIDOAuthenticator::TestCreditCardFIDOAuthenticator(
+    AutofillClient* client)
+    : CreditCardFIDOAuthenticator(client) {}
+
+TestCreditCardFIDOAuthenticator::~TestCreditCardFIDOAuthenticator() {}
+
+bool TestCreditCardFIDOAuthenticator::IsUserVerifiable() {
+  return is_user_verifiable_;
+}
+
+bool TestCreditCardFIDOAuthenticator::IsUserOptedIn() {
+  return is_user_opted_in_;
+}
+
+}  // namespace autofill
diff --git a/components/autofill/core/browser/payments/test_credit_card_fido_authenticator.h b/components/autofill/core/browser/payments/test_credit_card_fido_authenticator.h
new file mode 100644
index 0000000..bf326792
--- /dev/null
+++ b/components/autofill/core/browser/payments/test_credit_card_fido_authenticator.h
@@ -0,0 +1,48 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_TEST_CREDIT_CARD_FIDO_AUTHENTICATOR_H_
+#define COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_TEST_CREDIT_CARD_FIDO_AUTHENTICATOR_H_
+
+#include <memory>
+
+#include "base/strings/string16.h"
+#include "components/autofill/core/browser/autofill_client.h"
+#include "components/autofill/core/browser/data_model/credit_card.h"
+#include "components/autofill/core/browser/payments/credit_card_fido_authenticator.h"
+#include "components/autofill/core/browser/payments/payments_client.h"
+
+namespace autofill {
+
+// Test class for CreditCardFIDOAuthenticator.
+class TestCreditCardFIDOAuthenticator : public CreditCardFIDOAuthenticator {
+ public:
+  explicit TestCreditCardFIDOAuthenticator(AutofillClient* client);
+  ~TestCreditCardFIDOAuthenticator() override;
+
+  void SetUserVerifiable(bool is_user_verifiable) {
+    is_user_verifiable_ = is_user_verifiable;
+  }
+
+  void SetUserOptIn(bool is_user_opted_in) {
+    is_user_opted_in_ = is_user_opted_in;
+  }
+
+  // CreditCardFIDOAuthenticator:
+  bool IsUserVerifiable() override;
+  bool IsUserOptedIn() override;
+
+ private:
+  friend class AutofillManagerTest;
+  friend class CreditCardAccessManagerTest;
+
+  bool is_user_verifiable_ = false;
+  bool is_user_opted_in_ = false;
+
+  DISALLOW_COPY_AND_ASSIGN(TestCreditCardFIDOAuthenticator);
+};
+
+}  // namespace autofill
+
+#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_TEST_CREDIT_CARD_FIDO_AUTHENTICATOR_H_
diff --git a/components/autofill/core/browser/payments/test_payments_client.cc b/components/autofill/core/browser/payments/test_payments_client.cc
index 50b4039e..ce6cde2 100644
--- a/components/autofill/core/browser/payments/test_payments_client.cc
+++ b/components/autofill/core/browser/payments/test_payments_client.cc
@@ -4,6 +4,9 @@
 
 #include "components/autofill/core/browser/payments/test_payments_client.h"
 
+#include <memory>
+#include <unordered_map>
+
 #include "base/strings/utf_string_conversions.h"
 #include "components/autofill/core/browser/personal_data_manager.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
@@ -23,8 +26,7 @@
 
 void TestPaymentsClient::GetUnmaskDetails(GetUnmaskDetailsCallback callback,
                                           const std::string& app_locale) {
-  std::move(callback).Run(AutofillClient::SUCCESS, auth_method_, offer_opt_in_,
-                          std::move(request_options_), fido_eligible_card_ids_);
+  std::move(callback).Run(AutofillClient::SUCCESS, unmask_details_);
 }
 
 void TestPaymentsClient::GetUploadDetails(
@@ -67,22 +69,16 @@
                           "this is display text");
 }
 
-void TestPaymentsClient::SetAuthenticationMethod(std::string auth_method) {
-  auth_method_ = auth_method;
+void TestPaymentsClient::AllowFidoRegistration(bool offer_fido_opt_in) {
+  unmask_details_.offer_fido_opt_in = offer_fido_opt_in;
 }
 
-void TestPaymentsClient::AllowFidoRegistration(bool offer_opt_in) {
-  offer_opt_in_ = offer_opt_in;
-}
-
-void TestPaymentsClient::SetFidoRequestOptions(
-    std::unique_ptr<base::Value> request_options) {
-  request_options_ = std::move(request_options);
-}
-
-void TestPaymentsClient::SetFidoEligibleCardIds(
-    std::set<std::string> fido_eligible_card_ids) {
-  fido_eligible_card_ids_ = fido_eligible_card_ids;
+void TestPaymentsClient::AddFidoEligibleCard(std::string server_id) {
+  unmask_details_.offer_fido_opt_in = false;
+  unmask_details_.unmask_auth_method = AutofillClient::UnmaskAuthMethod::FIDO;
+  unmask_details_.fido_request_options =
+      base::Value(base::Value::Type::DICTIONARY);
+  unmask_details_.fido_eligible_card_ids.insert(server_id);
 }
 
 void TestPaymentsClient::SetServerIdForCardUpload(std::string server_id) {
diff --git a/components/autofill/core/browser/payments/test_payments_client.h b/components/autofill/core/browser/payments/test_payments_client.h
index 677e011..182d716 100644
--- a/components/autofill/core/browser/payments/test_payments_client.h
+++ b/components/autofill/core/browser/payments/test_payments_client.h
@@ -5,8 +5,10 @@
 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_TEST_PAYMENTS_CLIENT_H_
 #define COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_TEST_PAYMENTS_CLIENT_H_
 
+#include <memory>
 #include <set>
 #include <string>
+#include <unordered_map>
 #include <utility>
 #include <vector>
 
@@ -54,13 +56,9 @@
       const std::vector<MigratableCreditCard>& migratable_credit_cards,
       MigrateCardsCallback callback) override;
 
-  void SetAuthenticationMethod(std::string auth_method);
+  void AllowFidoRegistration(bool offer_fido_opt_in = true);
 
-  void AllowFidoRegistration(bool offer_opt_in = true);
-
-  void SetFidoRequestOptions(std::unique_ptr<base::Value> request_options);
-
-  void SetFidoEligibleCardIds(std::set<std::string> fido_eligible_card_ids);
+  void AddFidoEligibleCard(std::string server_id);
 
   void SetServerIdForCardUpload(std::string);
 
@@ -89,10 +87,7 @@
 
  private:
   std::string server_id_;
-  std::string auth_method_;
-  bool offer_opt_in_ = false;
-  std::unique_ptr<base::Value> request_options_ = nullptr;
-  std::set<std::string> fido_eligible_card_ids_;
+  AutofillClient::UnmaskDetails unmask_details_;
   std::vector<std::pair<int, int>> supported_card_bin_ranges_;
   std::vector<AutofillProfile> upload_details_addresses_;
   std::vector<AutofillProfile> upload_card_addresses_;
diff --git a/components/exo/BUILD.gn b/components/exo/BUILD.gn
index 52be23d..d8de60c 100644
--- a/components/exo/BUILD.gn
+++ b/components/exo/BUILD.gn
@@ -71,7 +71,6 @@
     "//net",
     "//services/data_decoder/public/cpp",
     "//services/viz/privileged/interfaces/compositing",
-    "//services/ws/public/mojom",
     "//skia",
     "//third_party/blink/public/common",
     "//ui/aura",
diff --git a/components/exo/DEPS b/components/exo/DEPS
index 9f682b7..39ef604 100644
--- a/components/exo/DEPS
+++ b/components/exo/DEPS
@@ -6,11 +6,11 @@
   "+components/viz/service",
   "+device/gamepad",
   "+gpu",
+  "+mojo/core/embedder/embedder.h",
   "+mojo/public/cpp",
   "+net/base",
   "+services/data_decoder/public/cpp",
   "+services/viz/privileged/interfaces/compositing/vsync_parameter_observer.mojom.h",
-  "+services/ws/public/mojom",
   "+third_party/blink/public/common",
   "+third_party/khronos",
   "+third_party/skia",
@@ -18,10 +18,6 @@
 ]
 
 specific_include_rules = {
-  "run_all_unittests\.cc": [
-    "+mojo/core/embedder/embedder.h",
-  ],
-
   "surface_unittest\.cc": [
     "+components/viz/test",
   ],
diff --git a/components/exo/wayland/BUILD.gn b/components/exo/wayland/BUILD.gn
index 9cf66989..f9bdd21 100644
--- a/components/exo/wayland/BUILD.gn
+++ b/components/exo/wayland/BUILD.gn
@@ -200,6 +200,7 @@
     "//base",
     "//components/exo",
     "//components/exo:test_support",
+    "//components/exo/wayland/fuzzer:unit_tests",
     "//skia",
     "//testing/gtest",
     "//third_party/wayland:wayland_client",
@@ -450,6 +451,7 @@
     ":wayland",
     "//base",
     "//components/exo",
+    "//components/exo/wayland",
     "//ui/aura",
     "//ui/events:gesture_detection",
     "//ui/wm",
@@ -458,6 +460,12 @@
   data_deps = []
 
   if (is_chromeos) {
+    data_deps += [
+      "//ash/strings:ash_test_strings",
+      "//ash/resources:ash_test_resources_100_percent",
+      "//ash/resources:ash_test_resources_200_percent",
+    ]
+
     deps += [
       "//ash",
       "//ash:test_support",
diff --git a/components/exo/wayland/clients/test/wayland_client_test_helper.h b/components/exo/wayland/clients/test/wayland_client_test_helper.h
index 7d0bedb..834d36d 100644
--- a/components/exo/wayland/clients/test/wayland_client_test_helper.h
+++ b/components/exo/wayland/clients/test/wayland_client_test_helper.h
@@ -28,7 +28,7 @@
 class WaylandClientTestHelper {
  public:
   WaylandClientTestHelper();
-  ~WaylandClientTestHelper();
+  virtual ~WaylandClientTestHelper();
 
   static void SetUIThreadTaskRunner(
       scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner);
@@ -36,10 +36,12 @@
   void SetUp();
   void TearDown();
 
+ protected:
+  virtual void SetUpOnUIThread(base::WaitableEvent* event);
+
  private:
   class WaylandWatcher;
 
-  void SetUpOnUIThread(base::WaitableEvent* event);
   void TearDownOnUIThread(base::WaitableEvent* event);
 
   // Below objects can only be accessed from UI thread.
diff --git a/components/exo/wayland/fuzzer/BUILD.gn b/components/exo/wayland/fuzzer/BUILD.gn
new file mode 100644
index 0000000..8c5b3f7
--- /dev/null
+++ b/components/exo/wayland/fuzzer/BUILD.gn
@@ -0,0 +1,83 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//testing/libfuzzer/fuzzer_test.gni")
+import("//third_party/libprotobuf-mutator/fuzzable_proto_library.gni")
+import("//third_party/protobuf/proto_library.gni")
+
+if (use_libfuzzer) {
+  fuzzer_test("wayland_fuzzer") {
+    sources = [
+      "fuzzer.cc",
+    ]
+
+    deps = [
+      ":actions",
+      ":harness",
+      ":server_environment",
+      "//base",
+      "//third_party/libprotobuf-mutator",
+    ]
+
+    libfuzzer_options = [ "len_control=0" ]
+  }
+}
+
+source_set("unit_tests") {
+  testonly = true
+
+  sources = [
+    "harness_unittest.cc",
+  ]
+
+  deps = [
+    ":actions",
+    ":harness",
+    "//base",
+    "//components/exo",
+    "//components/exo:test_support",
+    "//components/exo/wayland",
+    "//skia",
+  ]
+}
+
+source_set("server_environment") {
+  testonly = true
+
+  sources = [
+    "server_environment.cc",
+    "server_environment.h",
+  ]
+
+  deps = [
+    "//base",
+    "//base/test:test_support",
+    "//components/exo",
+    "//components/exo/wayland:wayland",
+    "//components/exo/wayland:wayland_client_test_helper",
+    "//mojo/core/embedder",
+    "//ui/aura",
+    "//ui/base",
+    "//ui/gl:test_support",
+  ]
+}
+
+source_set("harness") {
+  sources = [
+    "harness.cc",
+    "harness.h",
+  ]
+
+  deps = [
+    ":actions",
+    "//base",
+    "//third_party/wayland:wayland_client",
+  ]
+}
+
+fuzzable_proto_library("actions") {
+  sources = [
+    "actions.proto",
+  ]
+}
diff --git a/components/exo/wayland/fuzzer/OWNERS b/components/exo/wayland/fuzzer/OWNERS
new file mode 100644
index 0000000..d1a2824d
--- /dev/null
+++ b/components/exo/wayland/fuzzer/OWNERS
@@ -0,0 +1 @@
+hollingum@chromium.org
diff --git a/components/exo/wayland/fuzzer/actions.proto b/components/exo/wayland/fuzzer/actions.proto
new file mode 100644
index 0000000..98f91c2
--- /dev/null
+++ b/components/exo/wayland/fuzzer/actions.proto
@@ -0,0 +1,46 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto3";
+option optimize_for = LITE_RUNTIME;
+package exo.wayland_fuzzer;
+
+// Enumerates all the expected globals which the fuzzer might target. It is
+// reasonable for the fuzzer to target the "unspecified" global, in which case
+// we will attempt to bind an index that does not exist.
+enum global {
+  GLOBAL_UNSPECIFIED = 0;
+  wayland_wl_compositor = 1;
+  wayland_wl_shm = 2;
+}
+
+message action {
+  oneof act {
+    wayland_wl_display_get_registry act_wayland_wl_display_get_registry = 3;
+    wayland_wl_display_sync act_wayland_wl_display_sync = 4;
+    wayland_wl_registry_bind act_wayland_wl_registry_bind = 5;
+  }
+}
+
+message actions {
+  repeated action acts = 1;
+}
+
+message wayland_wl_display_get_registry {
+  uint32 receiver = 1;
+}
+
+message wayland_wl_display_sync {
+  uint32 receiver = 1;
+}
+
+// Bind is a special case where we want the fuzzer to grab global interfaces we
+// know about (so we use an enum) but the other fields are free game.
+//
+// Next available id: 4
+message wayland_wl_registry_bind {
+  uint32 receiver = 1;
+
+  global global = 2;
+}
diff --git a/components/exo/wayland/fuzzer/fuzzer.cc b/components/exo/wayland/fuzzer/fuzzer.cc
new file mode 100644
index 0000000..629b5f0
--- /dev/null
+++ b/components/exo/wayland/fuzzer/fuzzer.cc
@@ -0,0 +1,26 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/at_exit.h"
+#include "components/exo/wayland/fuzzer/actions.pb.h"
+#include "components/exo/wayland/fuzzer/harness.h"
+#include "components/exo/wayland/fuzzer/server_environment.h"
+#include "testing/libfuzzer/proto/lpm_interface.h"
+
+class FuzzerEnvironment {
+ public:
+  FuzzerEnvironment() : server_environment_() { server_environment_.SetUp(); }
+
+  ~FuzzerEnvironment() { server_environment_.TearDown(); }
+
+ private:
+  exo::wayland_fuzzer::ServerEnvironment server_environment_;
+};
+
+DEFINE_TEXT_PROTO_FUZZER(const exo::wayland_fuzzer::actions& acts) {
+  static base::AtExitManager exit_manager;
+  static FuzzerEnvironment environment;
+
+  exo::wayland_fuzzer::Harness().Run(acts);
+}
diff --git a/components/exo/wayland/fuzzer/harness.cc b/components/exo/wayland/fuzzer/harness.cc
new file mode 100644
index 0000000..79090fc
--- /dev/null
+++ b/components/exo/wayland/fuzzer/harness.cc
@@ -0,0 +1,169 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/exo/wayland/fuzzer/harness.h"
+
+#include <wayland-client-core.h>
+#include <wayland-client-protocol.h>
+#include <wayland-util.h>
+
+#include <cstring>
+#include <functional>
+
+#include "base/logging.h"
+#include "components/exo/wayland/fuzzer/actions.pb.h"
+
+namespace exo {
+namespace wayland_fuzzer {
+
+namespace wayland {
+namespace wl_display {
+void sync(Harness* harness,
+          const wayland_fuzzer::wayland_wl_display_sync& action);
+void get_registry(Harness* harness,
+                  const wayland_wl_display_get_registry& action);
+}  // namespace wl_display
+namespace wl_registry {
+void bind(Harness* harness, const wayland_wl_registry_bind& action);
+void global(void* data,
+            struct wl_registry* registry,
+            uint32_t name,
+            const char* interface,
+            uint32_t version);
+void global_remove(void* data, struct wl_registry* registry, uint32_t name);
+static const struct wl_registry_listener kListener = {global, global_remove};
+}  // namespace wl_registry
+namespace wl_callback {
+void done(void* data, struct wl_callback* receiver, uint32_t callback_data);
+static const struct wl_callback_listener kListener = {done};
+}  // namespace wl_callback
+
+namespace wl_compositor {}
+
+namespace wl_shm {
+void format(void* data, struct wl_shm* receiver, uint32_t format);
+static const struct wl_shm_listener kListener = {format};
+}  // namespace wl_shm
+}  // namespace wayland
+
+void wayland::wl_display::sync(
+    Harness* harness,
+    const wayland_fuzzer::wayland_wl_display_sync& action) {
+  struct wl_display* receiver = harness->get_wl_display(action.receiver());
+  if (!receiver)
+    return;
+  struct wl_callback* callback = wl_display_sync(receiver);
+  wl_callback_add_listener(callback, &wayland::wl_callback::kListener, harness);
+  harness->add_wl_callback(callback);
+}
+
+void wayland::wl_display::get_registry(
+    Harness* harness,
+    const wayland_fuzzer::wayland_wl_display_get_registry& action) {
+  struct wl_display* receiver = harness->get_wl_display(action.receiver());
+  if (!receiver)
+    return;
+  struct wl_registry* new_object = wl_display_get_registry(receiver);
+  wl_registry_add_listener(new_object, &wayland::wl_registry::kListener,
+                           harness);
+  harness->add_wl_registry(new_object);
+}
+
+void wayland::wl_registry::bind(Harness* harness,
+                                const wayland_wl_registry_bind& action) {
+  struct wl_registry* receiver = harness->get_wl_registry(action.receiver());
+  if (!receiver)
+    return;
+  void* new_object = nullptr;
+  switch (action.global()) {
+    case global::wayland_wl_compositor:
+      if (harness->wl_compositor_globals_.empty())
+        return;
+      new_object = wl_registry_bind(
+          receiver, harness->wl_compositor_globals_[0].first,
+          &wl_compositor_interface, harness->wl_compositor_globals_[0].second);
+      harness->add_wl_compositor(
+          static_cast<struct wl_compositor*>(new_object));
+      break;
+    case global::wayland_wl_shm:
+      if (harness->wl_shm_globals_.empty())
+        return;
+      new_object = wl_registry_bind(receiver, harness->wl_shm_globals_[0].first,
+                                    &wl_shm_interface,
+                                    harness->wl_shm_globals_[0].second);
+
+      wl_shm_add_listener(static_cast<struct wl_shm*>(new_object),
+                          &wayland::wl_shm::kListener, harness);
+      harness->add_wl_shm(static_cast<struct wl_shm*>(new_object));
+      break;
+    default:
+      return;
+  }
+}
+
+void wayland::wl_registry::global(void* data,
+                                  struct wl_registry* registry,
+                                  uint32_t name,
+                                  const char* interface,
+                                  uint32_t version) {
+#define GLOBL(WLT)                                       \
+  if (strcmp(interface, #WLT) == 0) {                    \
+    harness->WLT##_globals_.emplace_back(name, version); \
+  }
+
+  Harness* harness = static_cast<Harness*>(data);
+  GLOBL(wl_display);
+  GLOBL(wl_registry);
+  GLOBL(wl_callback);
+  GLOBL(wl_compositor);
+  GLOBL(wl_shm);
+#undef GLOBL
+}
+
+void wayland::wl_registry::global_remove(void* data,
+                                         struct wl_registry* registry,
+                                         uint32_t name) {}
+
+void wayland::wl_callback::done(void* data,
+                                struct wl_callback* receiver,
+                                uint32_t callback_data) {}
+
+void wayland::wl_shm::format(void* data,
+                             struct wl_shm* receiver,
+                             uint32_t format) {}
+
+Harness::Harness() {
+  wl_display_list_.emplace_back(wl_display_connect(nullptr));
+  DCHECK(wl_display_list_.front());
+}
+
+Harness::~Harness() {
+  wl_display_disconnect(wl_display_list_.front());
+}
+
+void Harness::Run(const wayland_fuzzer::actions& actions) {
+  for (const wayland_fuzzer::action& act : actions.acts())
+    Run(act);
+}
+
+void Harness::Run(const wayland_fuzzer::action& action) {
+  switch (action.act_case()) {
+    case action::ActCase::ACT_NOT_SET:
+      wl_display_roundtrip(wl_display_list_.front());
+      break;
+    case action::ActCase::kActWaylandWlDisplayGetRegistry:
+      wayland::wl_display::get_registry(
+          this, action.act_wayland_wl_display_get_registry());
+      break;
+    case action::ActCase::kActWaylandWlDisplaySync:
+      wayland::wl_display::sync(this, action.act_wayland_wl_display_sync());
+      break;
+    case action::ActCase::kActWaylandWlRegistryBind:
+      wayland::wl_registry::bind(this, action.act_wayland_wl_registry_bind());
+      break;
+  }
+}
+
+}  // namespace wayland_fuzzer
+}  // namespace exo
diff --git a/components/exo/wayland/fuzzer/harness.h b/components/exo/wayland/fuzzer/harness.h
new file mode 100644
index 0000000..241233f
--- /dev/null
+++ b/components/exo/wayland/fuzzer/harness.h
@@ -0,0 +1,60 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_EXO_WAYLAND_FUZZER_HARNESS_H_
+#define COMPONENTS_EXO_WAYLAND_FUZZER_HARNESS_H_
+
+#include <memory>
+
+#include "base/macros.h"
+#include "components/exo/wayland/fuzzer/actions.pb.h"
+
+struct wl_display;
+struct wl_registry;
+struct wl_callback;
+struct wl_compositor;
+struct wl_shm;
+
+namespace exo {
+namespace wayland_fuzzer {
+
+// When using LPM to fuzz wayland, the wauland_fuzzer::actions proto defines the
+// sequence of events that the fuzzer wants to perform. It then falls to this
+// harness to actually convert that sequence into the relevant calls, as if it
+// were a normal wayland client.
+class Harness {
+ public:
+  Harness();
+
+  ~Harness();
+
+  void Run(const wayland_fuzzer::action& actions);
+
+  void Run(const wayland_fuzzer::actions& actions);
+
+  // TODO(hollingum): This is a macro for now but when we move to autogenerated
+  // code this will be generated directly.
+#define GET_AND_SET(WLT)                                                  \
+  std::vector<struct WLT*> WLT##_list_;                                   \
+  void add_##WLT(struct WLT* new_obj) { WLT##_list_.push_back(new_obj); } \
+  struct WLT* get_##WLT(uint32_t idx) const {                             \
+    return idx < WLT##_list_.size() ? WLT##_list_[idx] : nullptr;         \
+  }                                                                       \
+  std::vector<std::pair<uint32_t, uint32_t>> WLT##_globals_
+
+  GET_AND_SET(wl_display);
+  GET_AND_SET(wl_registry);
+  GET_AND_SET(wl_callback);
+  GET_AND_SET(wl_compositor);
+  GET_AND_SET(wl_shm);
+#undef GET_AND_SET
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(Harness);
+};
+
+}  // namespace wayland_fuzzer
+}  // namespace exo
+
+#endif  // COMPONENTS_EXO_WAYLAND_FUZZER_HARNESS_H_
diff --git a/components/exo/wayland/fuzzer/harness_unittest.cc b/components/exo/wayland/fuzzer/harness_unittest.cc
new file mode 100644
index 0000000..24d3146
--- /dev/null
+++ b/components/exo/wayland/fuzzer/harness_unittest.cc
@@ -0,0 +1,83 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/exo/wayland/fuzzer/harness.h"
+
+#include "base/files/scoped_temp_dir.h"
+#include "base/macros.h"
+#include "base/threading/thread.h"
+#include "base/time/time.h"
+#include "components/exo/display.h"
+#include "components/exo/test/exo_test_base_views.h"
+#include "components/exo/wayland/fuzzer/actions.pb.h"
+#include "components/exo/wayland/server.h"
+
+namespace exo {
+namespace wayland_fuzzer {
+namespace {
+
+class WaylandFuzzerTest : public test::ExoTestBaseViews {
+ protected:
+  WaylandFuzzerTest() = default;
+  ~WaylandFuzzerTest() override = default;
+
+  void SetUp() override {
+    ASSERT_TRUE(xdg_temp_dir_.CreateUniqueTempDir());
+    setenv("XDG_RUNTIME_DIR", xdg_temp_dir_.GetPath().MaybeAsASCII().c_str(),
+           1 /* overwrite */);
+    test::ExoTestBaseViews::SetUp();
+    display_ = std::make_unique<exo::Display>();
+    server_ = wayland::Server::Create(display_.get());
+  }
+
+  void TearDown() override {
+    server_.reset();
+    display_.reset();
+    test::ExoTestBaseViews::TearDown();
+  }
+
+  base::ScopedTempDir xdg_temp_dir_;
+  std::unique_ptr<exo::Display> display_;
+  std::unique_ptr<wayland::Server> server_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(WaylandFuzzerTest);
+};
+
+void RunHarness(Harness* harness, base::WaitableEvent* event) {
+  wayland_fuzzer::actions acts;
+  acts.add_acts()->mutable_act_wayland_wl_display_get_registry()->set_receiver(
+      0);
+  acts.add_acts();
+  harness->Run(acts);
+  event->Signal();
+}
+
+TEST_F(WaylandFuzzerTest, MakeSureItWorks) {
+  Harness harness;
+
+  // For this test we are just checking that some globals can be bound.
+  EXPECT_TRUE(harness.wl_compositor_globals_.empty());
+  EXPECT_TRUE(harness.wl_shm_globals_.empty());
+
+  base::Thread client("client");
+  ASSERT_TRUE(client.Start());
+  base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC,
+                            base::WaitableEvent::InitialState::NOT_SIGNALED);
+  client.task_runner()->PostTask(FROM_HERE,
+                                 base::BindOnce(&RunHarness, &harness, &event));
+  // For this action sequence we need two dispatches. The first will bind the
+  // registry, the second is for the callback.
+  server_->Dispatch(base::TimeDelta::FromSeconds(5));
+  server_->Dispatch(base::TimeDelta::FromSeconds(5));
+  server_->Flush();
+  event.Wait();
+
+  EXPECT_FALSE(harness.wl_compositor_globals_.empty());
+  EXPECT_FALSE(harness.wl_shm_globals_.empty());
+}
+
+}  // namespace
+}  // namespace wayland_fuzzer
+}  // namespace exo
diff --git a/components/exo/wayland/fuzzer/server_environment.cc b/components/exo/wayland/fuzzer/server_environment.cc
new file mode 100644
index 0000000..b10056d
--- /dev/null
+++ b/components/exo/wayland/fuzzer/server_environment.cc
@@ -0,0 +1,80 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/exo/wayland/fuzzer/server_environment.h"
+
+#include <cassert>
+#include <cstddef>
+#include <cstdint>
+#include <cstdlib>
+#include <memory>
+
+#include "base/atomic_sequence_num.h"
+#include "base/bind.h"
+#include "base/command_line.h"
+#include "base/files/scoped_temp_dir.h"
+#include "base/i18n/rtl.h"
+#include "base/path_service.h"
+#include "base/test/icu_test_util.h"
+#include "components/exo/display.h"
+#include "components/exo/wayland/server.h"
+#include "mojo/core/embedder/embedder.h"
+#include "ui/base/resource/resource_bundle.h"
+#include "ui/base/ui_base_paths.h"
+#include "ui/base/ui_base_switches.h"
+#include "ui/gl/test/gl_surface_test_support.h"
+
+namespace exo {
+namespace wayland_fuzzer {
+
+ServerEnvironment::ServerEnvironment()
+    : WaylandClientTestHelper(), ui_thread_("ui") {
+  mojo::core::Init();
+
+  base::CommandLine::Init(0, nullptr);
+
+  base::Thread::Options ui_options(base::MessageLoop::TYPE_UI, 0);
+  ui_thread_.StartWithOptions(ui_options);
+  WaylandClientTestHelper::SetUIThreadTaskRunner(ui_thread_.task_runner());
+}
+
+ServerEnvironment::~ServerEnvironment() = default;
+
+void ServerEnvironment::SetUpOnUIThread(base::WaitableEvent* event) {
+  base::test::InitializeICUForTesting();
+
+  gl::GLSurfaceTestSupport::InitializeOneOff();
+
+  ui::RegisterPathProvider();
+
+  // Force unittests to run using en-US so if we test against string output,
+  // it'll pass regardless of the system language.
+  base::i18n::SetICUDefaultLocale("en_US");
+
+  // Load ash test resources and en-US strings; not 'common' (Chrome)
+  // resources.
+  base::FilePath path;
+  base::PathService::Get(base::DIR_MODULE, &path);
+  base::FilePath ash_test_strings =
+      path.Append(FILE_PATH_LITERAL("ash_test_strings.pak"));
+  ui::ResourceBundle::InitSharedInstanceWithPakPath(ash_test_strings);
+  if (ui::ResourceBundle::IsScaleFactorSupported(ui::SCALE_FACTOR_100P)) {
+    base::FilePath ash_test_resources_100 =
+        path.AppendASCII("ash_test_resources_100_percent.pak");
+    ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
+        ash_test_resources_100, ui::SCALE_FACTOR_100P);
+  }
+  if (ui::ResourceBundle::IsScaleFactorSupported(ui::SCALE_FACTOR_200P)) {
+    base::FilePath ash_test_resources_200 =
+        path.Append(FILE_PATH_LITERAL("ash_test_resources_200_percent.pak"));
+    ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
+        ash_test_resources_200, ui::SCALE_FACTOR_200P);
+  }
+
+  env_ = aura::Env::CreateInstance();
+  WaylandClientTestHelper::SetUpOnUIThread(event);
+}
+
+}  // namespace wayland_fuzzer
+}  // namespace exo
diff --git a/components/exo/wayland/fuzzer/server_environment.h b/components/exo/wayland/fuzzer/server_environment.h
new file mode 100644
index 0000000..04f15b5
--- /dev/null
+++ b/components/exo/wayland/fuzzer/server_environment.h
@@ -0,0 +1,41 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_EXO_WAYLAND_FUZZER_SERVER_ENVIRONMENT_H_
+#define COMPONENTS_EXO_WAYLAND_FUZZER_SERVER_ENVIRONMENT_H_
+
+#include "base/test/scoped_task_environment.h"
+#include "base/threading/thread.h"
+#include "components/exo/wayland/clients/test/wayland_client_test_helper.h"
+#include "ui/aura/env.h"
+
+namespace exo {
+namespace wayland_fuzzer {
+
+// The wayland fuzzer is pretending to be a client, and the ServerEnvironment is
+// used to bring up that client's server. This sets up the major components of
+// the test environment, including initializing the display, running the server
+// in a thread, etc.
+//
+// For performance reasons, the server should be retained between runs of the
+// fuzzer, though this has the unfortunate consequence that fuzzer runs retain
+// state which may cause non-reproducible crashes.
+class ServerEnvironment : public WaylandClientTestHelper {
+ public:
+  ServerEnvironment();
+
+  ~ServerEnvironment() override;
+
+  void SetUpOnUIThread(base::WaitableEvent* event) override;
+
+ private:
+  std::unique_ptr<aura::Env> env_;
+  base::test::ScopedTaskEnvironment scoped_task_environment_;
+  base::Thread ui_thread_;
+};
+
+}  // namespace wayland_fuzzer
+}  // namespace exo
+
+#endif  // COMPONENTS_EXO_WAYLAND_FUZZER_SERVER_ENVIRONMENT_H_
diff --git a/components/exo/wayland/zxdg_shell.cc b/components/exo/wayland/zxdg_shell.cc
index 754d5d3a..d0e02ee 100644
--- a/components/exo/wayland/zxdg_shell.cc
+++ b/components/exo/wayland/zxdg_shell.cc
@@ -548,7 +548,6 @@
       parent->GetWidget()->widget_delegate()->GetContentsView(), &origin);
   shell_surface->SetOrigin(origin);
   shell_surface->SetSize(position.size);
-  shell_surface->SetContainer(ash::kShellWindowId_MenuContainer);
   shell_surface->DisableMovement();
   shell_surface->SetActivatable(false);
   shell_surface->SetCanMinimize(false);
diff --git a/components/gwp_asan/crash_handler/crash_handler_unittest.cc b/components/gwp_asan/crash_handler/crash_handler_unittest.cc
index 9298a1e..8baa4e0 100644
--- a/components/gwp_asan/crash_handler/crash_handler_unittest.cc
+++ b/components/gwp_asan/crash_handler/crash_handler_unittest.cc
@@ -28,6 +28,7 @@
 #include "third_party/crashpad/crashpad/client/annotation.h"
 #include "third_party/crashpad/crashpad/client/crash_report_database.h"
 #include "third_party/crashpad/crashpad/client/crashpad_client.h"
+#include "third_party/crashpad/crashpad/client/crashpad_info.h"
 #include "third_party/crashpad/crashpad/handler/handler_main.h"
 #include "third_party/crashpad/crashpad/snapshot/minidump/process_snapshot_minidump.h"
 #include "third_party/crashpad/crashpad/tools/tool_support.h"
@@ -76,6 +77,13 @@
 
 // Child process that launches the crashpad handler and then crashes.
 MULTIPROCESS_TEST_MAIN(CrashingProcess) {
+#if defined(OS_MACOSX)
+  // Disable the system crash reporter from inspecting this crash (it is slow
+  // and causes test timeouts.)
+  crashpad::CrashpadInfo::GetCrashpadInfo()
+      ->set_system_crash_reporter_forwarding(crashpad::TriState::kDisabled);
+#endif
+
   base::NoDestructor<GuardedPageAllocator> gpa;
   gpa->Init(AllocatorState::kMaxMetadata, AllocatorState::kMaxMetadata,
             kTotalPages, base::DoNothing(), false);
diff --git a/components/metrics/stability_metrics_helper.cc b/components/metrics/stability_metrics_helper.cc
index 8be3149..af83787 100644
--- a/components/metrics/stability_metrics_helper.cc
+++ b/components/metrics/stability_metrics_helper.cc
@@ -12,6 +12,7 @@
 #include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/metrics/user_metrics.h"
+#include "base/system/sys_info.h"
 #include "build/build_config.h"
 #include "build/buildflag.h"
 #include "components/metrics/metrics_pref_names.h"
@@ -336,6 +337,9 @@
       app_state == base::android::APPLICATION_STATE_HAS_PAUSED_ACTIVITIES;
   UMA_HISTOGRAM_BOOLEAN("ChildProcess.HungRendererInForeground", is_foreground);
 #endif
+  UMA_HISTOGRAM_MEMORY_MB(
+      "ChildProcess.HungRendererAvailableMemoryMB",
+      base::SysInfo::AmountOfAvailablePhysicalMemory() / 1024 / 1024);
   IncrementPrefValue(prefs::kStabilityRendererHangCount);
 }
 
diff --git a/components/offline_pages/core/client_policy_controller.cc b/components/offline_pages/core/client_policy_controller.cc
index 02392790c..7c6f2b8 100644
--- a/components/offline_pages/core/client_policy_controller.cc
+++ b/components/offline_pages/core/client_policy_controller.cc
@@ -10,8 +10,6 @@
 #include "components/offline_pages/core/client_namespace_constants.h"
 #include "components/offline_pages/core/offline_page_feature.h"
 
-using LifetimeType = offline_pages::LifetimePolicy::LifetimeType;
-
 namespace offline_pages {
 namespace {
 
@@ -40,7 +38,6 @@
       OfflinePageClientPolicyBuilder(kLastNNamespace, LifetimeType::TEMPORARY,
                                      kUnlimitedPages, kUnlimitedPages)
           .SetExpirePeriod(base::TimeDelta::FromDays(30))
-          .SetIsSupportedByRecentTabs(true)
           .SetIsRestrictedToTabFromClientId(true)
           .Build());
   policies_.emplace(
@@ -48,39 +45,31 @@
       OfflinePageClientPolicyBuilder(kAsyncNamespace, LifetimeType::PERSISTENT,
                                      kUnlimitedPages, kUnlimitedPages)
           .SetIsSupportedByDownload(true)
-          .SetIsUserRequestedDownload(true)
-          .SetIsRemovedOnCacheReset(false)
           .Build());
   policies_.emplace(
       kCCTNamespace,
       OfflinePageClientPolicyBuilder(kCCTNamespace, LifetimeType::TEMPORARY,
                                      kUnlimitedPages, 1)
           .SetExpirePeriod(base::TimeDelta::FromDays(2))
-          .SetIsDisabledWhenPrefetchDisabled(true)
+          .SetRequiresSpecificUserSettings(true)
           .Build());
   policies_.emplace(kDownloadNamespace,
                     OfflinePageClientPolicyBuilder(
                         kDownloadNamespace, LifetimeType::PERSISTENT,
                         kUnlimitedPages, kUnlimitedPages)
-                        .SetIsRemovedOnCacheReset(false)
                         .SetIsSupportedByDownload(true)
-                        .SetIsUserRequestedDownload(true)
                         .Build());
   policies_.emplace(kNTPSuggestionsNamespace,
                     OfflinePageClientPolicyBuilder(
                         kNTPSuggestionsNamespace, LifetimeType::PERSISTENT,
                         kUnlimitedPages, kUnlimitedPages)
                         .SetIsSupportedByDownload(true)
-                        .SetIsUserRequestedDownload(true)
-                        .SetIsRemovedOnCacheReset(false)
                         .Build());
   policies_.emplace(
       kSuggestedArticlesNamespace,
       OfflinePageClientPolicyBuilder(kSuggestedArticlesNamespace,
                                      LifetimeType::TEMPORARY, kUnlimitedPages,
                                      kUnlimitedPages)
-          .SetIsRemovedOnCacheReset(true)
-          .SetIsDisabledWhenPrefetchDisabled(true)
           .SetExpirePeriod(base::TimeDelta::FromDays(30))
           .SetIsSupportedByDownload(IsPrefetchingOfflinePagesEnabled())
           .SetIsSuggested(true)
@@ -89,16 +78,13 @@
                     OfflinePageClientPolicyBuilder(
                         kBrowserActionsNamespace, LifetimeType::PERSISTENT,
                         kUnlimitedPages, kUnlimitedPages)
-                        .SetIsRemovedOnCacheReset(false)
                         .SetIsSupportedByDownload(true)
-                        .SetIsUserRequestedDownload(true)
-                        .SetShouldAllowDownload(true)
+                        .SetAllowConversionToBackgroundFileDownload(true)
                         .Build());
   policies_.emplace(kLivePageSharingNamespace,
                     OfflinePageClientPolicyBuilder(kLivePageSharingNamespace,
                                                    LifetimeType::TEMPORARY,
                                                    kUnlimitedPages, 1)
-                        .SetIsRemovedOnCacheReset(true)
                         .SetExpirePeriod(base::TimeDelta::FromHours(1))
                         .SetIsRestrictedToTabFromClientId(true)
                         .Build());
@@ -106,9 +92,7 @@
       kAutoAsyncNamespace,
       OfflinePageClientPolicyBuilder(
           kAutoAsyncNamespace, LifetimeType::TEMPORARY, kUnlimitedPages, 1)
-          .SetIsRemovedOnCacheReset(true)
           .SetExpirePeriod(base::TimeDelta::FromDays(30))
-          .SetIsUserRequestedDownload(false)
           .SetDeferBackgroundFetchWhilePageIsActive(true)
           .Build());
 
@@ -119,10 +103,14 @@
 
   for (const auto& policy_item : policies_) {
     const std::string& name = policy_item.first;
-    if (policy_item.second.feature_policy.is_removed_on_cache_reset)
-      cache_reset_namespaces_.push_back(name);
-    if (policy_item.second.feature_policy.is_user_requested_download)
-      user_requested_download_namespaces_.push_back(name);
+    switch (policy_item.second.lifetime_policy.lifetime_type) {
+      case LifetimeType::TEMPORARY:
+        temporary_namespaces_.push_back(name);
+        break;
+      case LifetimeType::PERSISTENT:
+        persistent_namespaces_.push_back(name);
+        break;
+    }
   }
 }
 
@@ -145,9 +133,14 @@
   return result;
 }
 
-bool ClientPolicyController::IsRemovedOnCacheReset(
-    const std::string& name_space) const {
-  return GetPolicy(name_space).feature_policy.is_removed_on_cache_reset;
+bool ClientPolicyController::IsTemporary(const std::string& name_space) const {
+  return GetPolicy(name_space).lifetime_policy.lifetime_type ==
+         LifetimeType::TEMPORARY;
+}
+
+const std::vector<std::string>& ClientPolicyController::GetTemporaryNamespaces()
+    const {
+  return temporary_namespaces_;
 }
 
 bool ClientPolicyController::IsSupportedByDownload(
@@ -155,24 +148,14 @@
   return GetPolicy(name_space).feature_policy.is_supported_by_download;
 }
 
-bool ClientPolicyController::IsUserRequestedDownload(
-    const std::string& name_space) const {
-  return GetPolicy(name_space).feature_policy.is_user_requested_download;
+bool ClientPolicyController::IsPersistent(const std::string& name_space) const {
+  return GetPolicy(name_space).lifetime_policy.lifetime_type ==
+         LifetimeType::PERSISTENT;
 }
 
 const std::vector<std::string>&
-ClientPolicyController::GetNamespacesRemovedOnCacheReset() const {
-  return cache_reset_namespaces_;
-}
-
-const std::vector<std::string>&
-ClientPolicyController::GetNamespacesForUserRequestedDownload() const {
-  return user_requested_download_namespaces_;
-}
-
-bool ClientPolicyController::IsShownAsRecentlyVisitedSite(
-    const std::string& name_space) const {
-  return GetPolicy(name_space).feature_policy.is_supported_by_recent_tabs;
+ClientPolicyController::GetPersistentNamespaces() const {
+  return persistent_namespaces_;
 }
 
 bool ClientPolicyController::IsRestrictedToTabFromClientId(
@@ -181,18 +164,19 @@
       .feature_policy.is_restricted_to_tab_from_client_id;
 }
 
-bool ClientPolicyController::IsDisabledWhenPrefetchDisabled(
+bool ClientPolicyController::RequiresSpecificUserSettings(
     const std::string& name_space) const {
-  return GetPolicy(name_space).feature_policy.disabled_when_prefetch_disabled;
+  return GetPolicy(name_space).feature_policy.requires_specific_user_settings;
 }
 
 bool ClientPolicyController::IsSuggested(const std::string& name_space) const {
   return GetPolicy(name_space).feature_policy.is_suggested;
 }
 
-bool ClientPolicyController::ShouldAllowDownloads(
+bool ClientPolicyController::AllowsConversionToBackgroundFileDownload(
     const std::string& name_space) const {
-  return GetPolicy(name_space).feature_policy.should_allow_download;
+  return GetPolicy(name_space)
+      .feature_policy.allows_conversion_to_background_file_download;
 }
 
 }  // namespace offline_pages
diff --git a/components/offline_pages/core/client_policy_controller.h b/components/offline_pages/core/client_policy_controller.h
index 5bb77c0e..df95a7b 100644
--- a/components/offline_pages/core/client_policy_controller.h
+++ b/components/offline_pages/core/client_policy_controller.h
@@ -29,45 +29,48 @@
   // Returns a list of all known namespaces.
   std::vector<std::string> GetAllNamespaces() const;
 
-  // Returns whether pages for |name_space| should be removed on cache reset.
-  bool IsRemovedOnCacheReset(const std::string& name_space) const;
-  const std::vector<std::string>& GetNamespacesRemovedOnCacheReset() const;
+  // Returns whether pages for |name_space| are temporary.
+  bool IsTemporary(const std::string& name_space) const;
+
+  // Returns a list of all temporary namespaces.
+  const std::vector<std::string>& GetTemporaryNamespaces() const;
+
+  // Returns whether pages for |name_space| persistent.
+  bool IsPersistent(const std::string& name_space) const;
+
+  // Returns a list of all persistent namespaces.
+  const std::vector<std::string>& GetPersistentNamespaces() const;
 
   // Returns whether pages for |name_space| are shown in Download UI.
   bool IsSupportedByDownload(const std::string& name_space) const;
 
-  // Returns whether pages for |name_space| are explicitly offlined due to user
-  // action.
-  bool IsUserRequestedDownload(const std::string& name_space) const;
-  const std::vector<std::string>& GetNamespacesForUserRequestedDownload() const;
-
-  // Returns whether pages for |name_space| are shown in recent tabs UI,
-  // currently only available on NTP.
-  bool IsShownAsRecentlyVisitedSite(const std::string& name_space) const;
-
   // Returns whether pages for |name_space| should only be opened in a
   // specifically assigned tab.
   // Note: For this restriction to work offline pages saved to this namespace
   // must have the respective tab id set to their ClientId::id field.
   bool IsRestrictedToTabFromClientId(const std::string& name_space) const;
 
-  bool IsDisabledWhenPrefetchDisabled(const std::string& name_space) const;
+  // Returns whether pages for |name_space| can be saved only if specific user
+  // settings are properly set. See
+  // FeaturePolicy::requires_specific_user_settings for details).
+  bool RequiresSpecificUserSettings(const std::string& name_space) const;
 
   // Returns whether pages for |name_space| originate from suggested URLs and
   // are downloaded on behalf of user.
   bool IsSuggested(const std::string& name_space) const;
 
-  // Returns whether we should allow pages for |name_space| to trigger
-  // downloads.
-  bool ShouldAllowDownloads(const std::string& name_space) const;
+  // Returns whether we should allow background downloads of pages for
+  // |name_space| to be converted to regular file downloads.
+  bool AllowsConversionToBackgroundFileDownload(
+      const std::string& name_space) const;
 
  private:
   // The map from name_space to a client policy. Will be generated
   // as pre-defined values for now.
   std::map<std::string, OfflinePageClientPolicy> policies_;
 
-  std::vector<std::string> cache_reset_namespaces_;
-  std::vector<std::string> user_requested_download_namespaces_;
+  std::vector<std::string> temporary_namespaces_;
+  std::vector<std::string> persistent_namespaces_;
 };
 
 }  // namespace offline_pages
diff --git a/components/offline_pages/core/client_policy_controller_unittest.cc b/components/offline_pages/core/client_policy_controller_unittest.cc
index 535a174..3af27ae 100644
--- a/components/offline_pages/core/client_policy_controller_unittest.cc
+++ b/components/offline_pages/core/client_policy_controller_unittest.cc
@@ -5,14 +5,14 @@
 #include "components/offline_pages/core/client_policy_controller.h"
 
 #include <algorithm>
+#include <memory>
+#include <set>
 
 #include "base/stl_util.h"
 #include "components/offline_pages/core/client_namespace_constants.h"
 #include "components/offline_pages/core/offline_page_feature.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-using LifetimeType = offline_pages::LifetimePolicy::LifetimeType;
-
 namespace offline_pages {
 
 namespace {
@@ -32,14 +32,12 @@
   void TearDown() override;
 
  protected:
-  void ExpectRemovedOnCacheReset(std::string name_space, bool expectation);
+  void ExpectTemporary(std::string name_space);
   void ExpectDownloadSupport(std::string name_space, bool expectation);
-  void ExpectUserRequestedDownloadSupport(std::string name_space,
-                                          bool expectation);
-  void ExpectRecentTab(std::string name_space, bool expectation);
+  void ExpectPersistent(std::string name_space);
   void ExpectRestrictedToTabFromClientId(std::string name_space,
                                          bool expectation);
-  void ExpectDisabledWhenPrefetchDisabled(std::string name_space,
+  void ExpectRequiresSpecificUserSettings(std::string name_space,
                                           bool expectation);
 
  private:
@@ -54,13 +52,23 @@
   controller_.reset();
 }
 
-void ClientPolicyControllerTest::ExpectRemovedOnCacheReset(
-    std::string name_space,
-    bool expectation) {
-  EXPECT_EQ(expectation, controller()->IsRemovedOnCacheReset(name_space))
+void ClientPolicyControllerTest::ExpectTemporary(std::string name_space) {
+  EXPECT_TRUE(
+      base::ContainsValue(controller()->GetTemporaryNamespaces(), name_space))
       << "Namespace " << name_space
-      << " had incorrect removed_on_cache_reset setting when directly checking"
-         " is removed-on-cache-reset.";
+      << " had incorrect lifetime type when getting temporary namespaces.";
+  EXPECT_TRUE(controller()->IsTemporary(name_space))
+      << "Namespace " << name_space
+      << " had incorrect lifetime type setting when directly checking"
+         " if it is temporary.";
+  EXPECT_FALSE(
+      base::ContainsValue(controller()->GetPersistentNamespaces(), name_space))
+      << "Namespace " << name_space
+      << " had incorrect lifetime type when getting persistent namespaces.";
+  EXPECT_FALSE(controller()->IsPersistent(name_space))
+      << "Namespace " << name_space
+      << " had incorrect lifetime type setting when directly checking"
+         " if it is persistent.";
 }
 
 void ClientPolicyControllerTest::ExpectDownloadSupport(std::string name_space,
@@ -71,28 +79,23 @@
          " by download.";
 }
 
-void ClientPolicyControllerTest::ExpectUserRequestedDownloadSupport(
-    std::string name_space,
-    bool expectation) {
-  EXPECT_EQ(
-      expectation,
-      base::Contains(controller()->GetNamespacesForUserRequestedDownload(),
-                     name_space))
+void ClientPolicyControllerTest::ExpectPersistent(std::string name_space) {
+  EXPECT_FALSE(
+      base::Contains(controller()->GetTemporaryNamespaces(), name_space))
       << "Namespace " << name_space
-      << " had incorrect user generated download support when getting"
-         " namespaces supported by user generaged download.";
-  EXPECT_EQ(expectation, controller()->IsUserRequestedDownload(name_space))
+      << " had incorrect lifetime type when getting temporary namespaces.";
+  EXPECT_FALSE(controller()->IsTemporary(name_space))
       << "Namespace " << name_space
-      << " had incorrect user generated download support when directly checking"
-         " if supported by user generated download.";
-}
-
-void ClientPolicyControllerTest::ExpectRecentTab(std::string name_space,
-                                                 bool expectation) {
-  EXPECT_EQ(expectation, controller()->IsShownAsRecentlyVisitedSite(name_space))
+      << " had incorrect lifetime type setting when directly checking"
+         " if it is temporary.";
+  EXPECT_TRUE(
+      base::Contains(controller()->GetPersistentNamespaces(), name_space))
       << "Namespace " << name_space
-      << " had incorrect recent tab support when directly checking if shown as"
-         " a recently visited site.";
+      << " had incorrect lifetime type when getting persistent namespaces.";
+  EXPECT_TRUE(controller()->IsPersistent(name_space))
+      << "Namespace " << name_space
+      << " had incorrect lifetime type setting when directly checking"
+         " if it is persistent.";
 }
 
 void ClientPolicyControllerTest::ExpectRestrictedToTabFromClientId(
@@ -105,11 +108,10 @@
          " is restricted to the tab from the client id field";
 }
 
-void ClientPolicyControllerTest::ExpectDisabledWhenPrefetchDisabled(
+void ClientPolicyControllerTest::ExpectRequiresSpecificUserSettings(
     std::string name_space,
     bool expectation) {
-  EXPECT_EQ(expectation,
-            controller()->IsDisabledWhenPrefetchDisabled(name_space))
+  EXPECT_EQ(expectation, controller()->RequiresSpecificUserSettings(name_space))
       << "Namespace " << name_space
       << " had incorrect download support when directly checking if disabled"
          " when prefetch settings are disabled.";
@@ -119,78 +121,66 @@
   OfflinePageClientPolicy policy = controller()->GetPolicy(kUndefinedNamespace);
   EXPECT_EQ(policy.name_space, kDefaultNamespace);
   EXPECT_TRUE(isTemporary(policy));
-  EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kUndefinedNamespace));
-  ExpectRemovedOnCacheReset(kUndefinedNamespace, true);
+  ExpectTemporary(kDefaultNamespace);
+  EXPECT_FALSE(base::ContainsValue(controller()->GetTemporaryNamespaces(),
+                                   kUndefinedNamespace));
+  EXPECT_TRUE(controller()->IsTemporary(kUndefinedNamespace));
   ExpectDownloadSupport(kUndefinedNamespace, false);
-  ExpectUserRequestedDownloadSupport(kUndefinedNamespace, false);
-  ExpectRecentTab(kUndefinedNamespace, false);
+  ExpectDownloadSupport(kDefaultNamespace, false);
   ExpectRestrictedToTabFromClientId(kUndefinedNamespace, false);
-  ExpectDisabledWhenPrefetchDisabled(kUndefinedNamespace, false);
+  ExpectRestrictedToTabFromClientId(kDefaultNamespace, false);
+  ExpectRequiresSpecificUserSettings(kUndefinedNamespace, false);
+  ExpectRequiresSpecificUserSettings(kDefaultNamespace, false);
 }
 
 TEST_F(ClientPolicyControllerTest, CheckBookmarkDefined) {
   OfflinePageClientPolicy policy = controller()->GetPolicy(kBookmarkNamespace);
   EXPECT_EQ(policy.name_space, kBookmarkNamespace);
   EXPECT_TRUE(isTemporary(policy));
-  EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kBookmarkNamespace));
-  ExpectRemovedOnCacheReset(kBookmarkNamespace, true);
+  ExpectTemporary(kBookmarkNamespace);
   ExpectDownloadSupport(kBookmarkNamespace, false);
-  ExpectUserRequestedDownloadSupport(kBookmarkNamespace, false);
-  ExpectRecentTab(kBookmarkNamespace, false);
   ExpectRestrictedToTabFromClientId(kBookmarkNamespace, false);
-  ExpectDisabledWhenPrefetchDisabled(kBookmarkNamespace, false);
+  ExpectRequiresSpecificUserSettings(kBookmarkNamespace, false);
 }
 
 TEST_F(ClientPolicyControllerTest, CheckLastNDefined) {
   OfflinePageClientPolicy policy = controller()->GetPolicy(kLastNNamespace);
   EXPECT_EQ(policy.name_space, kLastNNamespace);
   EXPECT_TRUE(isTemporary(policy));
-  EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kLastNNamespace));
-  ExpectRemovedOnCacheReset(kLastNNamespace, true);
+  ExpectTemporary(kLastNNamespace);
   ExpectDownloadSupport(kLastNNamespace, false);
-  ExpectUserRequestedDownloadSupport(kLastNNamespace, false);
-  ExpectRecentTab(kLastNNamespace, true);
   ExpectRestrictedToTabFromClientId(kLastNNamespace, true);
-  ExpectDisabledWhenPrefetchDisabled(kLastNNamespace, false);
+  ExpectRequiresSpecificUserSettings(kLastNNamespace, false);
 }
 
 TEST_F(ClientPolicyControllerTest, CheckAsyncDefined) {
   OfflinePageClientPolicy policy = controller()->GetPolicy(kAsyncNamespace);
   EXPECT_EQ(policy.name_space, kAsyncNamespace);
   EXPECT_FALSE(isTemporary(policy));
-  EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kAsyncNamespace));
-  ExpectRemovedOnCacheReset(kAsyncNamespace, false);
   ExpectDownloadSupport(kAsyncNamespace, true);
-  ExpectUserRequestedDownloadSupport(kAsyncNamespace, true);
-  ExpectRecentTab(kAsyncNamespace, false);
+  ExpectPersistent(kAsyncNamespace);
   ExpectRestrictedToTabFromClientId(kAsyncNamespace, false);
-  ExpectDisabledWhenPrefetchDisabled(kAsyncNamespace, false);
+  ExpectRequiresSpecificUserSettings(kAsyncNamespace, false);
 }
 
 TEST_F(ClientPolicyControllerTest, CheckCCTDefined) {
   OfflinePageClientPolicy policy = controller()->GetPolicy(kCCTNamespace);
   EXPECT_EQ(policy.name_space, kCCTNamespace);
   EXPECT_TRUE(isTemporary(policy));
-  EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kCCTNamespace));
-  ExpectRemovedOnCacheReset(kCCTNamespace, true);
+  ExpectTemporary(kCCTNamespace);
   ExpectDownloadSupport(kCCTNamespace, false);
-  ExpectUserRequestedDownloadSupport(kCCTNamespace, false);
-  ExpectRecentTab(kCCTNamespace, false);
   ExpectRestrictedToTabFromClientId(kCCTNamespace, false);
-  ExpectDisabledWhenPrefetchDisabled(kCCTNamespace, true);
+  ExpectRequiresSpecificUserSettings(kCCTNamespace, true);
 }
 
 TEST_F(ClientPolicyControllerTest, CheckDownloadDefined) {
   OfflinePageClientPolicy policy = controller()->GetPolicy(kDownloadNamespace);
   EXPECT_EQ(policy.name_space, kDownloadNamespace);
   EXPECT_FALSE(isTemporary(policy));
-  EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kDownloadNamespace));
-  ExpectRemovedOnCacheReset(kDownloadNamespace, false);
   ExpectDownloadSupport(kDownloadNamespace, true);
-  ExpectUserRequestedDownloadSupport(kDownloadNamespace, true);
-  ExpectRecentTab(kDownloadNamespace, false);
+  ExpectPersistent(kDownloadNamespace);
   ExpectRestrictedToTabFromClientId(kDownloadNamespace, false);
-  ExpectDisabledWhenPrefetchDisabled(kDownloadNamespace, false);
+  ExpectRequiresSpecificUserSettings(kDownloadNamespace, false);
 }
 
 TEST_F(ClientPolicyControllerTest, CheckNTPSuggestionsDefined) {
@@ -198,13 +188,10 @@
       controller()->GetPolicy(kNTPSuggestionsNamespace);
   EXPECT_EQ(policy.name_space, kNTPSuggestionsNamespace);
   EXPECT_FALSE(isTemporary(policy));
-  EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kNTPSuggestionsNamespace));
-  ExpectRemovedOnCacheReset(kNTPSuggestionsNamespace, false);
   ExpectDownloadSupport(kNTPSuggestionsNamespace, true);
-  ExpectUserRequestedDownloadSupport(kNTPSuggestionsNamespace, true);
-  ExpectRecentTab(kNTPSuggestionsNamespace, false);
+  ExpectPersistent(kNTPSuggestionsNamespace);
   ExpectRestrictedToTabFromClientId(kNTPSuggestionsNamespace, false);
-  ExpectDisabledWhenPrefetchDisabled(kNTPSuggestionsNamespace, false);
+  ExpectRequiresSpecificUserSettings(kNTPSuggestionsNamespace, false);
 }
 
 TEST_F(ClientPolicyControllerTest, CheckSuggestedArticlesDefined) {
@@ -212,13 +199,10 @@
       controller()->GetPolicy(kSuggestedArticlesNamespace);
   EXPECT_EQ(policy.name_space, kSuggestedArticlesNamespace);
   EXPECT_TRUE(isTemporary(policy));
-  EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kSuggestedArticlesNamespace));
-  ExpectRemovedOnCacheReset(kSuggestedArticlesNamespace, true);
+  ExpectTemporary(kSuggestedArticlesNamespace);
   ExpectDownloadSupport(kSuggestedArticlesNamespace, IsOfflinePagesEnabled());
-  ExpectUserRequestedDownloadSupport(kSuggestedArticlesNamespace, false);
-  ExpectRecentTab(kSuggestedArticlesNamespace, false);
   ExpectRestrictedToTabFromClientId(kSuggestedArticlesNamespace, false);
-  ExpectDisabledWhenPrefetchDisabled(kSuggestedArticlesNamespace, true);
+  ExpectRequiresSpecificUserSettings(kSuggestedArticlesNamespace, false);
 }
 
 TEST_F(ClientPolicyControllerTest, CheckLivePageSharingDefined) {
@@ -226,26 +210,23 @@
       controller()->GetPolicy(kLivePageSharingNamespace);
   EXPECT_EQ(policy.name_space, kLivePageSharingNamespace);
   EXPECT_TRUE(isTemporary(policy));
-  EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kLivePageSharingNamespace));
-  ExpectRemovedOnCacheReset(kLivePageSharingNamespace, true);
+  ExpectTemporary(kLivePageSharingNamespace);
   ExpectDownloadSupport(kLivePageSharingNamespace, false);
-  ExpectUserRequestedDownloadSupport(kLivePageSharingNamespace, false);
-  ExpectRecentTab(kLivePageSharingNamespace, false);
   ExpectRestrictedToTabFromClientId(kLivePageSharingNamespace, true);
-  ExpectDisabledWhenPrefetchDisabled(kLivePageSharingNamespace, false);
+  ExpectRequiresSpecificUserSettings(kLivePageSharingNamespace, false);
 }
 
-TEST_F(ClientPolicyControllerTest, GetNamespacesRemovedOnCacheReset) {
+TEST_F(ClientPolicyControllerTest, AllTemporaryNamespaces) {
   std::vector<std::string> all_namespaces = controller()->GetAllNamespaces();
   const std::vector<std::string>& cache_reset_namespaces_list =
-      controller()->GetNamespacesRemovedOnCacheReset();
+      controller()->GetTemporaryNamespaces();
   std::set<std::string> cache_reset_namespaces(
       cache_reset_namespaces_list.begin(), cache_reset_namespaces_list.end());
   for (auto name_space : cache_reset_namespaces) {
     if (cache_reset_namespaces.count(name_space) > 0)
-      EXPECT_TRUE(controller()->IsRemovedOnCacheReset(name_space));
+      ExpectTemporary(name_space);
     else
-      EXPECT_FALSE(controller()->IsRemovedOnCacheReset(name_space));
+      ExpectPersistent(name_space);
   }
 }
 
diff --git a/components/offline_pages/core/model/clear_storage_task.cc b/components/offline_pages/core/model/clear_storage_task.cc
index 054c31db..570394c 100644
--- a/components/offline_pages/core/model/clear_storage_task.cc
+++ b/components/offline_pages/core/model/clear_storage_task.cc
@@ -30,7 +30,6 @@
 
 namespace offline_pages {
 
-using LifetimeType = LifetimePolicy::LifetimeType;
 using ClearStorageResult = ClearStorageTask::ClearStorageResult;
 
 namespace {
@@ -115,7 +114,7 @@
   PageClearCriteria additional_criteria(policy_controller, start_time, stats);
 
   PageCriteria criteria;
-  criteria.removed_on_cache_reset = true;
+  criteria.lifetime_type = LifetimeType::TEMPORARY;
   // Order is critical for correctness of PageClearCriteria::should_delete_item.
   criteria.result_order = PageCriteria::kDescendingAccessTime;
   criteria.additional_criteria =
diff --git a/components/offline_pages/core/model/clear_storage_task_unittest.cc b/components/offline_pages/core/model/clear_storage_task_unittest.cc
index 920ffb3..b3139f1 100644
--- a/components/offline_pages/core/model/clear_storage_task_unittest.cc
+++ b/components/offline_pages/core/model/clear_storage_task_unittest.cc
@@ -148,12 +148,12 @@
   // during each test.
 
   // Make sure no persistent pages are marked as expired.
-  if (!policy_controller()->IsRemovedOnCacheReset(setting.name_space))
+  if (!policy_controller()->IsTemporary(setting.name_space))
     ASSERT_FALSE(setting.expired_page_count);
 
   generator()->SetCreationTime(clock()->Now());
   generator()->SetNamespace(setting.name_space);
-  if (policy_controller()->IsRemovedOnCacheReset(setting.name_space)) {
+  if (policy_controller()->IsTemporary(setting.name_space)) {
     generator()->SetArchiveDirectory(TemporaryDir());
   } else {
     generator()->SetArchiveDirectory(PrivateDir());
@@ -270,12 +270,9 @@
       policy_controller()->GetPolicy(kLastNNamespace).lifetime_policy;
   LifetimePolicy download_policy =
       policy_controller()->GetPolicy(kDownloadNamespace).lifetime_policy;
-  ASSERT_EQ(LifetimePolicy::LifetimeType::TEMPORARY,
-            bookmark_policy.lifetime_type);
-  ASSERT_EQ(LifetimePolicy::LifetimeType::TEMPORARY,
-            last_n_policy.lifetime_type);
-  ASSERT_EQ(LifetimePolicy::LifetimeType::PERSISTENT,
-            download_policy.lifetime_type);
+  ASSERT_EQ(LifetimeType::TEMPORARY, bookmark_policy.lifetime_type);
+  ASSERT_EQ(LifetimeType::TEMPORARY, last_n_policy.lifetime_type);
+  ASSERT_EQ(LifetimeType::PERSISTENT, download_policy.lifetime_type);
   ASSERT_GT(last_n_policy.expiration_period, bookmark_policy.expiration_period);
 
   // Advance 30 minutes from initial pages creation time.
diff --git a/components/offline_pages/core/model/delete_page_task.cc b/components/offline_pages/core/model/delete_page_task.cc
index baca61c..06b05a9 100644
--- a/components/offline_pages/core/model/delete_page_task.cc
+++ b/components/offline_pages/core/model/delete_page_task.cc
@@ -182,8 +182,7 @@
     DeletePageTask::DeletePageTaskCallback callback,
     const UrlPredicate& predicate) {
   PageCriteria criteria;
-  criteria.client_namespaces =
-      policy_controller.GetNamespacesRemovedOnCacheReset();
+  criteria.lifetime_type = LifetimeType::TEMPORARY;
   criteria.additional_criteria = base::BindRepeating(
       [](const UrlPredicate& predicate, const OfflinePageItem& item) {
         return predicate.Run(item.url);
diff --git a/components/offline_pages/core/model/get_pages_task_unittest.cc b/components/offline_pages/core/model/get_pages_task_unittest.cc
index 76789e1..1c3d3a6 100644
--- a/components/offline_pages/core/model/get_pages_task_unittest.cc
+++ b/components/offline_pages/core/model/get_pages_task_unittest.cc
@@ -308,7 +308,7 @@
   store_test_util()->InsertItem(generator()->CreateItem());
 
   PageCriteria criteria;
-  criteria.removed_on_cache_reset = true;
+  criteria.lifetime_type = LifetimeType::TEMPORARY;
   RunTask(CreateTask(criteria));
 
   EXPECT_EQ(std::set<OfflinePageItem>({cct_item}), task_result());
diff --git a/components/offline_pages/core/model/offline_page_model_taskified.cc b/components/offline_pages/core/model/offline_page_model_taskified.cc
index 26c477e..f02a5a9 100644
--- a/components/offline_pages/core/model/offline_page_model_taskified.cc
+++ b/components/offline_pages/core/model/offline_page_model_taskified.cc
@@ -353,7 +353,7 @@
 
 const base::FilePath& OfflinePageModelTaskified::GetInternalArchiveDirectory(
     const std::string& name_space) const {
-  if (policy_controller_->IsRemovedOnCacheReset(name_space))
+  if (policy_controller_->IsTemporary(name_space))
     return archive_manager_->GetTemporaryArchivesDir();
   return archive_manager_->GetPrivateArchivesDir();
 }
@@ -437,9 +437,9 @@
     offline_page.original_url_if_different = save_page_params.original_url;
   }
 
-  if (policy_controller_->IsUserRequestedDownload(
-          offline_page.client_id.name_space)) {
-    // If the user intentionally downloaded the page, move it to a public place.
+  if (policy_controller_->IsPersistent(offline_page.client_id.name_space)) {
+    // If the user intentionally downloaded the page (aka it belongs to a
+    // persistent namespace), move it to a public place.
     // Note: Moving the archiver instance into the callback so it won't be
     // deleted.
     OfflinePageArchiver* raw_archiver = archiver.get();
diff --git a/components/offline_pages/core/model/persistent_page_consistency_check_task.cc b/components/offline_pages/core/model/persistent_page_consistency_check_task.cc
index 70d15c2..1e24f00 100644
--- a/components/offline_pages/core/model/persistent_page_consistency_check_task.cc
+++ b/components/offline_pages/core/model/persistent_page_consistency_check_task.cc
@@ -38,7 +38,7 @@
     const ClientPolicyController* policy_controller,
     sql::Database* db) {
   PageCriteria criteria;
-  criteria.user_requested_download = true;
+  criteria.lifetime_type = LifetimeType::PERSISTENT;
   return std::move(
       GetPagesTask::ReadPagesWithCriteriaSync(policy_controller, criteria, db)
           .pages);
diff --git a/components/offline_pages/core/model/startup_maintenance_task.cc b/components/offline_pages/core/model/startup_maintenance_task.cc
index b44b8fc..66251d99 100644
--- a/components/offline_pages/core/model/startup_maintenance_task.cc
+++ b/components/offline_pages/core/model/startup_maintenance_task.cc
@@ -280,9 +280,9 @@
   std::vector<std::string> all_namespaces =
       policy_controller_->GetAllNamespaces();
   std::vector<std::string> temporary_namespaces =
-      policy_controller_->GetNamespacesRemovedOnCacheReset();
+      policy_controller_->GetTemporaryNamespaces();
   std::vector<std::string> persistent_namespaces =
-      policy_controller_->GetNamespacesForUserRequestedDownload();
+      policy_controller_->GetPersistentNamespaces();
 
   store_->Execute(
       base::BindOnce(&StartupMaintenanceSync, persistent_namespaces,
diff --git a/components/offline_pages/core/model/startup_maintenance_task_unittest.cc b/components/offline_pages/core/model/startup_maintenance_task_unittest.cc
index b71806b..8595cda 100644
--- a/components/offline_pages/core/model/startup_maintenance_task_unittest.cc
+++ b/components/offline_pages/core/model/startup_maintenance_task_unittest.cc
@@ -5,6 +5,9 @@
 #include "components/offline_pages/core/model/startup_maintenance_task.h"
 
 #include <memory>
+#include <string>
+#include <utility>
+#include <vector>
 
 #include "base/bind.h"
 #include "base/files/file_util.h"
@@ -314,7 +317,7 @@
     // correct directories, otherwise they might be cleaned based on consistency
     // check.
     generator()->SetNamespace(name_space);
-    if (policy_controller()->IsRemovedOnCacheReset(name_space))
+    if (policy_controller()->IsTemporary(name_space))
       generator()->SetArchiveDirectory(TemporaryDir());
     else
       generator()->SetArchiveDirectory(PrivateDir());
diff --git a/components/offline_pages/core/offline_page_client_policy.h b/components/offline_pages/core/offline_page_client_policy.h
index b403c15..c974d52 100644
--- a/components/offline_pages/core/offline_page_client_policy.h
+++ b/components/offline_pages/core/offline_page_client_policy.h
@@ -15,19 +15,25 @@
 
 static const size_t kUnlimitedPages = 0;
 
+// Enum whose values specify the lifetime characteristics of pages pertaining to
+// a given client.
+enum class LifetimeType {
+  // A temporary offline page, which is automatically downloaded and cleaned
+  // up when storage limits are reached or when caches are cleared. They are
+  // normally stored in Chrome internal directories, not directly accessible to
+  // the user.
+  TEMPORARY,
+  // A persistent offline page, manually downloaded by the user. It is stored in
+  // the public Downloads directory and only the user can delete it.
+  PERSISTENT,
+};
+
 // The struct describing the lifetime policy of offline pages.
 // The following behaviors are controlled by policy:
 //    a. Persistency of the offline page.
 //    b. Expiration time of an offline page
 //    c. Limit of number of pages offline.
 struct LifetimePolicy {
-  // Type of the client, indicating where the archived page would be saved
-  // and whether it could be kept indefinitely.
-  enum class LifetimeType {
-    TEMPORARY,
-    PERSISTENT,
-  };
-
   // Type of the page generated by the client.
   LifetimeType lifetime_type;
 
@@ -48,34 +54,22 @@
 // The struct describing feature set of the offline pages.
 struct FeaturePolicy {
   // Whether pages are shown in download ui.
-  bool is_supported_by_download;
-  // Whether a download was initiated in response to user action.
-  bool is_user_requested_download;
-  // Whether pages are shown in recent tabs ui.
-  bool is_supported_by_recent_tabs;
+  bool is_supported_by_download = false;
   // Whether pages can only be viewed in a specific tab. Pages controlled by
   // this policy must have their ClientId::id field set to their assigned tab's
   // id.
-  bool is_restricted_to_tab_from_client_id;
-  // Whether pages are removed on user-initiated cache reset. Defaults to true.
-  bool is_removed_on_cache_reset;
-  // Whether the namespace should be disabled if prefetching-related preferences
-  // are disabled.
-  bool disabled_when_prefetch_disabled;
+  bool is_restricted_to_tab_from_client_id = false;
+  // Whether the namespace should be disabled if any of these user settings are
+  // set to:
+  // * 3rd party cookies are blocked (prefs::kBlockThirdPartyCookies).
+  // * Network predictions (prefs::kNetworkPredictionOptions) are fully
+  //   disabled.
+  bool requires_specific_user_settings = false;
   // Whether the pages originated from suggestions by zine or elsewhere.
-  bool is_suggested;
-  // whether we should allow pages to trigger downloads.
-  bool should_allow_download;
-
-  FeaturePolicy()
-      : is_supported_by_download(false),
-        is_user_requested_download(false),
-        is_supported_by_recent_tabs(false),
-        is_restricted_to_tab_from_client_id(false),
-        is_removed_on_cache_reset(true),
-        disabled_when_prefetch_disabled(false),
-        is_suggested(false),
-        should_allow_download(false) {}
+  bool is_suggested = false;
+  // Whether a background page download is allowed to be converted to a regular
+  // download if the URL turns out to point to a file (i.e. a PDF).
+  bool allows_conversion_to_background_file_download = false;
 };
 
 // The struct describing policies for various namespaces (Bookmark, Last-N etc.)
@@ -119,7 +113,7 @@
 class OfflinePageClientPolicyBuilder {
  public:
   OfflinePageClientPolicyBuilder(const std::string& name_space,
-                                 LifetimePolicy::LifetimeType lifetime_type,
+                                 LifetimeType lifetime_type,
                                  size_t page_limit,
                                  size_t pages_allowed_per_url)
       : policy_(
@@ -144,25 +138,6 @@
     return *this;
   }
 
-  OfflinePageClientPolicyBuilder& SetIsUserRequestedDownload(
-      const bool is_user_requested_download) {
-    policy_.feature_policy.is_user_requested_download =
-        is_user_requested_download;
-    return *this;
-  }
-
-  OfflinePageClientPolicyBuilder& SetIsSupportedByRecentTabs(
-      const bool is_recent_tabs) {
-    policy_.feature_policy.is_supported_by_recent_tabs = is_recent_tabs;
-    return *this;
-  }
-
-  OfflinePageClientPolicyBuilder& SetIsRemovedOnCacheReset(
-      const bool removed_on_cache_reset) {
-    policy_.feature_policy.is_removed_on_cache_reset = removed_on_cache_reset;
-    return *this;
-  }
-
   OfflinePageClientPolicyBuilder& SetIsRestrictedToTabFromClientId(
       const bool is_restricted_to_tab_from_client_id) {
     policy_.feature_policy.is_restricted_to_tab_from_client_id =
@@ -170,10 +145,10 @@
     return *this;
   }
 
-  OfflinePageClientPolicyBuilder& SetIsDisabledWhenPrefetchDisabled(
-      const bool disabled_when_prefetch_disabled) {
-    policy_.feature_policy.disabled_when_prefetch_disabled =
-        disabled_when_prefetch_disabled;
+  OfflinePageClientPolicyBuilder& SetRequiresSpecificUserSettings(
+      const bool requires_specific_user_settings) {
+    policy_.feature_policy.requires_specific_user_settings =
+        requires_specific_user_settings;
     return *this;
   }
 
@@ -182,9 +157,10 @@
     return *this;
   }
 
-  OfflinePageClientPolicyBuilder& SetShouldAllowDownload(
-      const bool should_allow_download) {
-    policy_.feature_policy.should_allow_download = should_allow_download;
+  OfflinePageClientPolicyBuilder& SetAllowConversionToBackgroundFileDownload(
+      const bool allows_conversion_to_background_file_download) {
+    policy_.feature_policy.allows_conversion_to_background_file_download =
+        allows_conversion_to_background_file_download;
     return *this;
   }
 
diff --git a/components/offline_pages/core/page_criteria.cc b/components/offline_pages/core/page_criteria.cc
index 6738b45..1ca7471 100644
--- a/components/offline_pages/core/page_criteria.cc
+++ b/components/offline_pages/core/page_criteria.cc
@@ -21,19 +21,6 @@
 bool MeetsCriteria(const ClientPolicyController& policy_controller,
                    const PageCriteria& criteria,
                    const ClientId& client_id) {
-  if (criteria.exclude_tab_bound_pages) {
-    const OfflinePageClientPolicy& policy =
-        policy_controller.GetPolicy(client_id.name_space);
-    if (policy.feature_policy.is_restricted_to_tab_from_client_id)
-      return false;
-  }
-  if (criteria.pages_for_tab_id &&
-      policy_controller.IsRestrictedToTabFromClientId(client_id.name_space)) {
-    std::string tab_id_str =
-        base::NumberToString(criteria.pages_for_tab_id.value());
-    if (client_id.id != tab_id_str)
-      return false;
-  }
   if (criteria.client_ids &&
       !base::Contains(criteria.client_ids.value(), client_id)) {
     return false;
@@ -43,20 +30,34 @@
                       client_id.name_space)) {
     return false;
   }
-  if (criteria.supported_by_downloads &&
-      !policy_controller.IsSupportedByDownload(client_id.name_space)) {
-    return false;
-  }
-  if (criteria.removed_on_cache_reset &&
-      !policy_controller.IsRemovedOnCacheReset(client_id.name_space)) {
-    return false;
-  }
-  if (criteria.user_requested_download &&
-      !policy_controller.IsUserRequestedDownload(client_id.name_space)) {
-    return false;
-  }
   if (!criteria.guid.empty() && client_id.id != criteria.guid)
     return false;
+  // Only fetches the policy if it will be needed allowing simpler criteria
+  // queries to not require a ClientPolicyController instance.
+  if (criteria.exclude_tab_bound_pages || criteria.pages_for_tab_id ||
+      criteria.supported_by_downloads || criteria.lifetime_type) {
+    const OfflinePageClientPolicy& policy =
+        policy_controller.GetPolicy(client_id.name_space);
+    if (criteria.exclude_tab_bound_pages &&
+        policy.feature_policy.is_restricted_to_tab_from_client_id) {
+      return false;
+    }
+    if (criteria.pages_for_tab_id &&
+        policy.feature_policy.is_restricted_to_tab_from_client_id) {
+      std::string tab_id_str =
+          base::NumberToString(criteria.pages_for_tab_id.value());
+      if (client_id.id != tab_id_str)
+        return false;
+    }
+    if (criteria.supported_by_downloads &&
+        !policy.feature_policy.is_supported_by_download) {
+      return false;
+    }
+    if (criteria.lifetime_type && criteria.lifetime_type.value() !=
+                                      policy.lifetime_policy.lifetime_type) {
+      return false;
+    }
+  }
 
   return true;
 }
@@ -98,7 +99,7 @@
     const ClientPolicyController& policy_controller,
     const PageCriteria& criteria) {
   std::vector<std::string> matching_namespaces;
-  if (criteria.supported_by_downloads || criteria.removed_on_cache_reset) {
+  if (criteria.supported_by_downloads || criteria.lifetime_type) {
     std::vector<std::string> allowed_namespaces =
         criteria.client_namespaces ? criteria.client_namespaces.value()
                                    : policy_controller.GetAllNamespaces();
@@ -108,8 +109,9 @@
           !policy_controller.IsSupportedByDownload(name_space)) {
         continue;
       }
-      if (criteria.removed_on_cache_reset &&
-          !policy_controller.IsRemovedOnCacheReset(name_space)) {
+      if (criteria.lifetime_type && criteria.lifetime_type.value() !=
+                                        policy_controller.GetPolicy(name_space)
+                                            .lifetime_policy.lifetime_type) {
         continue;
       }
       matching_namespaces.push_back(name_space);
diff --git a/components/offline_pages/core/page_criteria.h b/components/offline_pages/core/page_criteria.h
index 24b7a1b..4725917 100644
--- a/components/offline_pages/core/page_criteria.h
+++ b/components/offline_pages/core/page_criteria.h
@@ -13,6 +13,7 @@
 #include "base/callback.h"
 #include "base/optional.h"
 #include "components/offline_pages/core/client_id.h"
+#include "components/offline_pages/core/offline_page_client_policy.h"
 #include "url/gurl.h"
 
 namespace offline_pages {
@@ -46,10 +47,8 @@
   // Whether to restrict pages to those in namespaces supported by the
   // downloads UI.
   bool supported_by_downloads = false;
-  // Whether to restrict pages to those removed on cache reset.
-  bool removed_on_cache_reset = false;
-  // Whether to restrict pages to those requested by users for download.
-  bool user_requested_download = false;
+  // If set, the page's lifetime type must match this.
+  base::Optional<LifetimeType> lifetime_type;
   // If set, the page's file_size must match.
   base::Optional<int64_t> file_size;
   // If non-empty, the page's digest must match.
diff --git a/components/offline_pages/core/page_criteria_unittest.cc b/components/offline_pages/core/page_criteria_unittest.cc
index 9105fc5..d179e85 100644
--- a/components/offline_pages/core/page_criteria_unittest.cc
+++ b/components/offline_pages/core/page_criteria_unittest.cc
@@ -110,9 +110,9 @@
   EXPECT_FALSE(MeetsCriteria(policy_controller_, criteria, item.client_id));
 }
 
-TEST_F(PageCriteriaTest, MeetsCriteria_UserRequestedDownload) {
+TEST_F(PageCriteriaTest, MeetsCriteria_PersistentLifetime) {
   PageCriteria criteria;
-  criteria.user_requested_download = true;
+  criteria.lifetime_type = LifetimeType::PERSISTENT;
 
   OfflinePageItem item;
   item.client_id.name_space = kDownloadNamespace;
@@ -124,9 +124,9 @@
   EXPECT_FALSE(MeetsCriteria(policy_controller_, criteria, item.client_id));
 }
 
-TEST_F(PageCriteriaTest, MeetsCriteria_RemovedOnCacheReset) {
+TEST_F(PageCriteriaTest, MeetsCriteria_TemporaryLifetime) {
   PageCriteria criteria;
-  criteria.removed_on_cache_reset = true;
+  criteria.lifetime_type = LifetimeType::TEMPORARY;
 
   OfflinePageItem item;
   item.client_id.name_space = kLastNNamespace;
diff --git a/components/policy/resources/policy_templates_ar.xtb b/components/policy/resources/policy_templates_ar.xtb
index fece8e1..f87c4af 100644
--- a/components/policy/resources/policy_templates_ar.xtb
+++ b/components/policy/resources/policy_templates_ar.xtb
@@ -1099,6 +1099,15 @@
           وعند عدم تحديد هذه السياسة، يظل سلوك السياسات الأكثر تحديدًا خارج التأثير.</translation>
 <translation id="2987155890997901449">‏تفعيل ARC</translation>
 <translation id="2987227569419001736">التحكم في استخدام واجهة برمجة تطبيقات بلوتوث الويب</translation>
+<translation id="2990018289267778247">‏في حال ضبط هذه السياسة على "True"، ستظهر خيارات تمكين الوصول دائمًا في قائمة لوحة النظام.
+
+          وفي حال ضبط هذه السياسة على "False"، لن تظهر خيارات تمكين الوصول مطلقًا في قائمة لوحة النظام.
+
+          وإذا ضبطتَ هذه السياسة، لن يتمكّن المستخدمون من تغييرها أو إلغائها.
+
+          وفي حال ترك هذه السياسة بدون تحديد، لن تظهر خيارات تمكين الوصول في قائمة لوحة النظام، ولكن يمكن أن يظهرها المستخدم من خلال صفحة "الإعدادات".
+
+          عند تفعيل ميزات تمكين الوصول (عن طريق وسائل أخرى، مثلاً، من خلال مجموعة مفاتيح)، ستظهر خيارات تمكين الوصول دائمًا في قائمة لوحة النظام.</translation>
 <translation id="3011301228198307065">‏تُحدِّد عنوان URL التلقائي الخاص بالصفحة الرئيسية في <ph name="PRODUCT_NAME" /> وتمنع المستخدمين من تغييره.
 
           تمثّل الصفحة الرئيسية صفحة يمكن فتحها من خلال "زر الشاشة الرئيسية". تخضع الصفحات التي تفتح عند بدء التشغيل إلى سياسات RestoreOnStartup.
@@ -1410,6 +1419,7 @@
         يتم استخدام هذه السياسة من خلال التسجيل لسياسة تطبيقات السحابة الإلكترونية لنطاق الجهاز على سطح المكتب ويمكن ضبطها من خلال قاعدة بيانات المسجّلين أو GPO على نظام التشغيل Windows، أو plist على نظام التشغيل Mac وملف سياسة JSON على نظام التشغيل Linux.</translation>
 <translation id="3660562134618097814">‏نقل ملفات تعريف الارتباط SAML IdP أثناء تسجيل الدخول</translation>
 <translation id="3701121231485832347">تتحكّم هذه السياسة في الإعدادات المُحدّدة لـ <ph name="MS_AD_NAME" /> لأجهزة <ph name="PRODUCT_OS_NAME" /> المُدارة.</translation>
+<translation id="3702518095257671450">التأكيد عن بُعد</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (تمّ إيقاف حقل السطر الواحد وستتمّ إزالته في المستقبل. لذا يُرجى البدء في استخدام مربع النص متعدّد الأسطر أدناه.)</translation>
 <translation id="3709266154059827597">تهيئة قائمة الحظر لتثبيت الإضافات</translation>
 <translation id="3711895659073496551">تعليق</translation>
@@ -1800,6 +1810,15 @@
 
           يتم الالتزام بهذه السياسة فقط في حال تفعيل سياسة "DefaultSearchProviderEnabled".</translation>
 <translation id="4285674129118156176">‏السماح للمستخدمين غير التابعين باستخدام ARC</translation>
+<translation id="4289903996435140853">‏تسمح هذه السياسة بإعداد قائمة بعناوين URL التي تحدِّد المواقع الإلكترونية التي سيتم منحها إذنًا بالوصول إلى جهاز USB تلقائيًا مع معرِّفات المنتج والمورّد المذكورة. ويجب أن يحتوي كل عنصر في القائمة على الجهازين وعناوين URL حتى تكون السياسة صالحة. ويمكن أن يحتوي كل عنصر في الأجهزة على حقل معرِّف المورّد ومعرِّف المنتج. ويتم التعامل مع أي معرِّف تم حذفه كحرف بدل مع استثناء واحد هو أنه لا يمكن تحديد معرِّف المنتج بدون تحديد معرِّف المورّد. وبخلاف ذلك، لن تكون السياسة صالحة وسيتم تجاهلها.
+
+        يستخدم نموذج إذن USB عنوان URL للموقع المطلوب ("عنوان URL المطلوب") وعنوان URL لموقع الإطار ذي المستوى الأعلى ("عنوان URL المضمّن") لمنح الإذن إلى عنوان URL المطلوب للوصول إلى جهاز USB. وقد يكون عنوان URL المطلوب مختلفًا عن عنوان URL المُضمَّن عندما يتم تحميل الموقع المطلوب في إطار iframe. ولذلك، يمكن أن يحتوي حقل "عناوين URL" على ما يصل إلى سلسلتي عناوين URL مفصولتين بفاصلة لتحديد عنوان URL المطلوب والمضمّن على التوالي. وفي حال تحديد عنوان URL واحد فقط، حينئذٍ سيتم منح الوصول إلى أجهزة USB المطابقة عندما يطابق عنوان URL للموقع المطلوب عنوان URL هذا، بصرف النظر عن الحالة المضمّنة. ويجب أن تكون عناوين URL في "urls" عناوين URL صالحة، وإلا سيتم تجاهل السياسة.
+
+        في حال ترك هذه السياسة بدون ضبط، سيتم استخدام القيمة التلقائية العامة لجميع المواقع الإلكترونية إما من السياسة "DefaultWebUsbGuardSetting" في حال ضبطها، أو من الضبط الشخصي للمستخدم.
+
+        يجب ألا تتعارض أنماط عناوين URL في هذه السياسة مع الأنماط التي تم ضبطها عبر WebUsbBlockedForUrls. وفي حال كان هناك تعارض، ستكون لهذه السياسة الأولوية عن WebUsbBlockedForUrls وWebUsbAskForUrls.
+
+        يتم دمج قيم هذه السياسة وسياسة DeviceWebUsbAllowDevicesForUrls معًا.</translation>
 <translation id="4298509794364745131">‏تحدّد قائمة التطبيقات التي يمكن تفعيلها كتطبيقات تدوين ملاحظات في شاشة تأمين <ph name="PRODUCT_OS_NAME" />.
 
       في حالة تفعيل تطبيق تدوين الملاحظات المفضل في شاشة التأمين، فستتضمن شاشة التأمين عنصر واجهة المستخدم لتشغيل تطبيق تدوين الملاحظات المفضل.
@@ -1942,6 +1961,7 @@
 <translation id="4639407427807680016">أسماء مضيفي الرسائل الأصلية المطلوب استثناؤها من القائمة السوداء</translation>
 <translation id="4650759511838826572">‏إيقاف أنظمة بروتوكول عنوان URL</translation>
 <translation id="465099050592230505">‏عنوان URL للسوق الإلكتروني في Enterprise (إيقاف)</translation>
+<translation id="4661889655253181651">تتيح لك إعدادات المحتوى تحديد كيفية التعامل مع أنواع المحتوى من نوع محدّد (مثل، ملفات تعريف الارتباط أو الصور أو جافا سكريبت).</translation>
 <translation id="4665897631924472251">إعدادات إدارة الإضافات</translation>
 <translation id="4668325077104657568">إعدادات الصور التلقائية</translation>
 <translation id="4670865688564083639">الحد الأدنى:</translation>
@@ -1981,6 +2001,10 @@
       يتم جلب هذه الاقتراحات عن بُعد من خوادم Google.
 
       وإذا تم ضبط هذه السياسة على "false"، لن يتم جلب الاقتراحات أو عرضها.</translation>
+<translation id="4759650396863318477">تسمح لك هذه السياسة بتحديد الفترة الزمنية بالمللي ثانية والتي يتم بعد انقضائها إبلاغ المستخدمين بضرورة إعادة تشغيل <ph name="PRODUCT_NAME" /> أو إعادة تشغيل جهاز <ph name="PRODUCT_OS_NAME" /> لتثبيت تحديث مُعلّق.
+      خلال تلك الفترة الزمنية، سيتم إبلاغ المستخدم مرارًا بضرورة التحديث. بالنسبة إلى أجهزة <ph name="PRODUCT_OS_NAME" /> يظهر إشعار إعادة التشغيل في لوحة النظام وفقًا لسياسة <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />. أما بالنسبة إلى متصفّحات <ph name="PRODUCT_NAME" /> تتغير قائمة التطبيق لتشير إلى ضرورة إعادة التشغيل بعد مرور ثلث مدة الإشعار. ويتغير لون هذا الإشعار بعد مرور ثلثي مدته وكذلك بعد مرور مدته بالكامل. كما تتبّع الإشعارات الإضافية التي تفعّلها سياسة <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> نفس الجدول.
+
+      إذا لم يتم ضبط السياسة، يتم استخدام الفترة التلقائية التي تبلغ 345600000 مللي ثانية (أربعة أيام) لأجهزة <ph name="PRODUCT_OS_NAME" /> و604800000 مللي ثانية (أسبوع واحد) لـ <ph name="PRODUCT_NAME" />.</translation>
 <translation id="4788252609789586009">تفعّل هذه السياسة ميزة "الملء التلقائي" في <ph name="PRODUCT_NAME" /> وتسمح للمستخدمين بإكمال معلومات بطاقة الائتمان في نماذج الويب تلقائيًا باستخدام المعلومات المخزنة مسبقًا.
 
       في حال إيقاف هذا الإعداد، لن تقترح ميزة "الملء التلقائي" معلومات بطاقة الائتمان أو تملأها مطلقًا ولن تحفظ معلومات بطاقة الائتمان الإضافية التي قد يرسلها المستخدم أثناء تصفُّح الويب.
@@ -2174,6 +2198,15 @@
 <translation id="5208240613060747912">‏للسماح لك بتعيين قائمة أنماط عناوين URL التي تحدد المواقع التي لا يُسمح لها بعرض الإشعارات. إذا تم ترك هذه السياسة بدون تعيين، فسيتم استخدام القيمة التلقائية العامة لجميع المواقع إما من السياسة 'DefaultNotificationsSetting' إذا كان قد تم تعيينها أو من التهيئة الشخصية للمستخدم.</translation>
 <translation id="5213038356678567351">مواقع الويب التي يجب ألا تعمل على تشغيل تبديل متصفِّح مطلقًا.</translation>
 <translation id="5219844027738217407">‏بالنسبة لتطبيقات Android، تؤثر هذه السياسة على الميكروفون فقط. عند تعيين هذه السياسة على "true"، يتم كتم صوت الميكروفون لجميع تطبيقات Android، دون أي استثناءات.</translation>
+<translation id="5221394278852982313">‏تسمح هذه السياسة بإعداد قائمة بعناوين URL التي تحدِّد المواقع الإلكترونية التي سيتم منحها إذنًا بالوصول إلى جهاز USB تلقائيًا مع معرِّفات المنتج والمورّد المذكورة. ويجب أن يحتوي كل عنصر في القائمة على الجهازين وعناوين URL حتى تكون السياسة صالحة. ويمكن أن يحتوي كل عنصر في الأجهزة على حقل معرِّف المورّد ومعرِّف المنتج. ويتم التعامل مع أي معرِّف تم حذفه كحرف بدل مع استثناء واحد هو أنه لا يمكن تحديد معرِّف المنتج بدون تحديد معرِّف المورّد. وبخلاف ذلك، لن تكون السياسة صالحة وسيتم تجاهلها.
+
+        يستخدم نموذج إذن USB عنوان URL للموقع المطلوب ("عنوان URL المطلوب") وعنوان URL لموقع الإطار ذي المستوى الأعلى ("عنوان URL المضمّن") لمنح الإذن إلى عنوان URL المطلوب للوصول إلى جهاز USB. وقد يكون عنوان URL المطلوب مختلفًا عن عنوان URL المُضمَّن عندما يتم تحميل الموقع المطلوب في إطار iframe. ولذلك، يمكن أن يحتوي حقل "عناوين URL" على ما يصل إلى سلسلتي عناوين URL مفصولتين بفاصلة لتحديد عنوان URL المطلوب والمضمّن على التوالي. وفي حال تحديد عنوان URL واحد فقط، حينئذٍ سيتم منح الوصول إلى أجهزة USB المطابقة عندما يطابق عنوان URL للموقع المطلوب عنوان URL هذا، بصرف النظر عن الحالة المُضمّنة. ويجب أن تكون عناوين URL في "urls" عناوين URL صالحة، وإلا سيتم تجاهل السياسة.
+
+        في حال ترك هذه السياسة بدون ضبط، سيتم استخدام القيمة التلقائية العامة لجميع المواقع الإلكترونية إما من السياسة "DefaultWebUsbGuardSetting" في حال ضبطها، أو من الضبط الشخصي للمستخدم.
+
+         يجب ألا تتعارض أنماط عناوين URL في هذه السياسة مع الأنماط التي تم ضبطها عبر WebUsbBlockedForUrls. وفي حال كان هناك تعارض، ستكون لهذه السياسة الأولوية عن WebUsbBlockedForUrls وWebUsbAskForUrls.
+
+        يتم دمج قيم هذه السياسة وسياسة DeviceWebUsbAllowDevicesForUrls معًا.</translation>
 <translation id="5228316810085661003">‏تأخير تسجيل الدخول التلقائي لحساب الجهاز المحلي.
 
       في حال عدم ضبط السياسة | DeviceLocalAccountAutoLoginId |، لن يكون لها أي تأثير. وبخلاف ذلك:
@@ -2879,6 +2912,21 @@
 
       في حال ضبط هذه السياسة على "عدم السماح للمستخدمين بإدارة الشهادات"، لن يتمكَّن المستخدمون من إدارة الشهادات، ويمكنهم عرض الشهادات فقط.</translation>
 <translation id="6573305661369899995">‏تعيين مصدر خارجي لقيود عنوان URL</translation>
+<translation id="6583851521569686409">‏تعمل هذه السياسة على ضبط قائمة بالطابعات.
+
+      تسمح هذه السياسة للمشرفين بتوفير عمليات ضبط الطابعات
+      للمستخدمين.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> و<ph name="PRINTER_DESCRIPTION" /> هما سلسلتان حرتان يمكن تخصيصهما لتسهيل اختيار الطابعة. يُسهّل <ph name="PRINTER_MANUFACTURER" /> و<ph name="PRINTER_MODEL" /> على المستخدمين مهمة التعرُّف على الطابعة. إذ يمثّلان الشركة المُصنّعة للطابعة وطرازها. يجب أن يكون <ph name="PRINTER_URI" /> عنوانًا يمكن الوصول إليه من جهاز كمبيوتر العميل، بما في ذلك <ph name="URI_SCHEME" /> و<ph name="URI_PORT" /> و<ph name="URI_QUEUE" />. ويكون <ph name="PRINTER_UUID" /> اختياريًا. وفي حال توفّره، يتم استخدامه للمساعدة في إزالة تكرار طابعات <ph name="ZEROCONF_DISCOVERY" />.
+
+      يجب أن يحتوي <ph name="PRINTER_EFFECTIVE_MODEL" /> على اسم الطابعة أو يجب ضبط <ph name="PRINTER_AUTOCONF" /> على "True". سيتم تجاهل الطابعات التي تحتوي على الاسم أو مضبوطة على "True"، أو التي بدون أي خصائص.
+
+      يكتمل إعداد الطابعة عند استخدامها لأول مرة.  ولا يتم تنزيل ملفات PPD حتى يتم استخدام الطابعة.  وبعد ذلك، يتم تخزين ملفات PPD المستخدمة بشكل متكرر تخزينًا مؤقتًا.
+
+      لا تؤثِّر هذه السياسة على إمكانية ضبط المستخدمين للطابعات على الأجهزة الفردية.  قد تم إعدادها لتكون مكمّلة لضبط الطابعات من قِبل المستخدمين الفرديين.
+
+      بالنسبة إلى أجهزة Active Directory المُدارة، تدعم هذه السياسة توسيع <ph name="MACHINE_NAME_VARIABLE" /> ليشمل اسم جهاز Active Directory أو سلسلة فرعية له. مثلاً، إذا كان اسم الجهاز <ph name="MACHINE_NAME_EXAMPLE" />، حينئذٍ يتم استبدال <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> بسلسلة مكونة من 4 أحرف بعد الموضع السادس، مثل <ph name="MACHINE_NAME_PART_EXAMPLE" />. يُذكر أن الموضع يبدأ من الصفر.
+      </translation>
 <translation id="6598235178374410284">الصورة الرمزية للمستخدم</translation>
 <translation id="6603004149426829878">إرسال أي إشارات متاحة للموقع الجغرافي إلى الخادم أثناء حل المنطقة الزمنية دائمًا</translation>
 <translation id="6628120204569232711">الإبلاغ عن حالة مساحة التخزين</translation>
@@ -4197,6 +4245,8 @@
 <translation id="915194831143859291">‏في  حالة تعيين هذه السياسة إلى false أو عدم تهيئتها، سيسمح <ph name="PRODUCT_OS_NAME" /> للمستخدم بإيقاف تشغيل الجهاز.
       وفي حالة تعيينها إلى true، سيبدأ <ph name="PRODUCT_OS_NAME" /> إعادة التشغيل عندما يعمل المستخدم على إيقاف تشغيل الجهاز. يستبدل <ph name="PRODUCT_OS_NAME" /> كل مواضع ورود أزرار إيقاف التشغيل في واجهة المستخدم بأزرار إعادة التشغيل. وإذا أوقف المستخدم تشغيل الجهاز باستخدام زر التشغيل، فلن تتم إعادة تشغيله تلقائيًا، حتى إذا تم تفعيل السياسة.</translation>
 <translation id="9152473318295429890">تفعيل الاقتراحات السياقية لصفحات الويب ذات الصلة</translation>
+<translation id="9153446010242995516">‏يمكنك العودة إلى الحالة السابقة واستمرار استخدام الإصدار المستهدف في حال كان إصدار نظام التشغيل أحدث من الإصدار المستهدف. ويمكنك محاولة نقل التهيئة على مستوى الجهاز (بما في ذلك بيانات اعتماد الشبكة) من خلال عملية العودة إلى الحالة السابقة، إذا كان ذلك ممكنًا، ولكن يمكنك العودة إلى الحالة السابقة باستخدام عملية Powerwash بالكامل حتى إذا لم تكن استعادة البيانات ممكنة (لأن الإصدار المستهدف لا يوفّر استعادة البيانات أو بسبب تغيير غير متوافق مع ما سبق).
+          يتوفّر في الإصدار 75 والإصدارات الأحدث من <ph name="PRODUCT_OS_NAME" />. وبالنسبة إلى العملاء الأقدم، تعني هذه القيمة أن إمكانية العودة إلى الحالة السابقة غير مفعَّلة.</translation>
 <translation id="9158929520101169054">السماح بالدخول المتعدد في المتصفح</translation>
 <translation id="9159126470527871268">إبلاغ المستخدمين أنه يجب إعادة تشغيل <ph name="PRODUCT_NAME" /> أو <ph name="PRODUCT_OS_NAME" /> لتطبيق تحديث مُعلّق.
 
diff --git a/components/policy/resources/policy_templates_da.xtb b/components/policy/resources/policy_templates_da.xtb
index 60de99c..d7815f0 100644
--- a/components/policy/resources/policy_templates_da.xtb
+++ b/components/policy/resources/policy_templates_da.xtb
@@ -1097,6 +1097,15 @@
           Når denne politik ikke er konfigureret, forbliver de mere specifikke politikkers adfærd uændret.</translation>
 <translation id="2987155890997901449">Aktivér ARC</translation>
 <translation id="2987227569419001736">Kontrollér brugen af Web Bluetooth API</translation>
+<translation id="2990018289267778247">Hvis denne politik angives som Sand, vises indstillingerne for hjælpefunktioner altid i systembakkemenuen.
+
+          Hvis denne politik angives som Falsk, vises indstillingerne for hjælpefunktioner aldrig i systembakkemenuen.
+
+          Hvis politikken konfigureres, kan brugerne ikke ændre eller tilsidesætte den.
+
+          Hvis denne politik ikke angives, vises indstillingerne for hjælpefunktioner ikke i systembakkemenuen, men brugeren kan få vist indstillingerne for hjælpefunktioner via siden Indstillinger.
+
+          Når hjælpefunktioner aktiveres (på andre måder, f.eks. via tastekombinationer),vises indstillingerne for hjælpefunktioner altid i systembakkemenuen.</translation>
 <translation id="3011301228198307065">Konfigurerer webadressen for standardstartsiden i <ph name="PRODUCT_NAME" /> og forhindrer, at brugerne ændrer den.
 
           Startsiden åbnes ved hjælp af knappen Startside. De sider, der åbnes ved opstart, styres af RestoreOnStartup-politikkerne.
@@ -1411,6 +1420,7 @@
         Denne politik bruges til maskinel massetilmelding til Cloud-politikken på computere og kan angives af registreringsdatabasen eller GPO i Windows, plist på Mac og JSON-politikfilen i Linux.</translation>
 <translation id="3660562134618097814">Overfør SAML-IdP-cookies ved login</translation>
 <translation id="3701121231485832347">Styrer indstillinger, der gælder specifikt for <ph name="PRODUCT_OS_NAME" />-enheder, der administreres af <ph name="MS_AD_NAME" />.</translation>
+<translation id="3702518095257671450">Fjernattestering</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (feltet med en enkelt linje er udfaset og fjernes inden for den nærmeste fremtid. Begynd at bruge tekstfeltet med flere linjer nedenfor).</translation>
 <translation id="3709266154059827597">Konfigurer sortliste for installation af udvidelser</translation>
 <translation id="3711895659073496551">Suspender</translation>
@@ -1804,6 +1814,15 @@
 
           Denne politik respekteres kun, hvis politikken "DefaultSearchProviderEnabled" er aktiveret.</translation>
 <translation id="4285674129118156176">Tillad, at brugere uden tilknytning benytter ARC</translation>
+<translation id="4289903996435140853">Tillader, at du opretter en liste med webadresser, som angiver, hvilke websites der automatisk skal gives adgangstilladelse til en USB-enhed med det givne leverandør- og produkt-id. Politikken er kun gyldig, hvis hvert element på listen indeholder både enheder og webadresser. Hvert element på enheder kan indeholde felter til leverandør-id og produkt-id. Alle id'er, der udelades, behandles som et jokertegn – et produkt-id kan dog ikke angives, uden at der også angives et leverandør-id. Hvis ikke disse regler overholdes, anses politikken som ugyldig og ignoreres.
+
+        USB-tilladelsesmodellen anvender webadressen til det anmodende website ("anmodende webadresse") og webadressen til indramningswebsitet på øverste niveau ("integrerende webadresse") til at give den anmodende webadresse adgang til USB-enheden. Den anmodende webadresse kan adskille sig fra den integrerende webadresse, når det anmodende website indlæses i en iframe. Feltet "webadresser" kan derfor indeholde op til to webadressestrenge, adskilt af et komma, for at angive henholdsvis den anmodende og den integrerende webadresse. Hvis der kun angives én webadresse, gives der adgang til de tilsvarende USB-enheder, når webadressen til det anmodende website stemmer overens med denne webadresse, uanset hvilken integreringsstatus den har. Webadresserne i feltet "webadresser" skal være gyldige webadresser, ellers ignoreres politikken.
+
+        Hvis politikken ikke konfigureres, anvendes den globale standardværdi fra politikken "DefaultWebUsbGuardSetting" til alle websites, og hvis denne ikke er konfigureret, anvendes brugerens personlige konfiguration.
+
+        Webadressemønstre i denne politik må ikke være i strid med dem, der er konfigureret via WebUsbBlockedForUrls. Hvis de er i strid med hinanden, har denne politik forrang frem for WebUsbBlockedForUrls og WebUsbAskForUrls.
+
+        Værdierne for denne politik og politikken WebUsbAllowDevicesForUrls sammenflettes.</translation>
 <translation id="4298509794364745131">Specificerer en liste over apps, der kan aktiveres som apps til notatskrivning på <ph name="PRODUCT_OS_NAME" />-låseskærmen.
 
       Hvis den foretrukne app til notatskrivning er aktiveret på låseskærmen, vil låseskærmen indeholde et brugerfladeelement til at åbne den foretrukne app til notatskrivning.
@@ -1947,6 +1966,7 @@
 <translation id="4639407427807680016">Navne på de indbyggede beskedhosts, som fritages fra sortlisten</translation>
 <translation id="4650759511838826572">Deaktiver protokolskemaer for webadresser</translation>
 <translation id="465099050592230505">Webadresse for virksomhedens webshop (udfaset)</translation>
+<translation id="4661889655253181651">Indstillinger for indhold giver dig mulighed for at angive, hvordan en bestemt type indhold (f.eks. cookies, billeder eller JavaScript) skal behandles.</translation>
 <translation id="4665897631924472251">Indstillinger for administration af udvidelser</translation>
 <translation id="4668325077104657568">Standardindstilling for billeder</translation>
 <translation id="4670865688564083639">Minimum:</translation>
@@ -1991,6 +2011,11 @@
       Disse forslag hentes fra Googles servere.
 
       Hvis denne indstilling er angivet som Falsk, hentes eller vises forslag ikke.</translation>
+<translation id="4759650396863318477">Giver dig mulighed for at angive et tidsrum i millisekunder, hvor brugerne får besked om, at <ph name="PRODUCT_NAME" /> skal genstartes, eller at en <ph name="PRODUCT_OS_NAME" />-enhed skal genstartes for anvende en afventende opdatering.
+
+      I dette tidsrum vil brugeren gentagne gange få besked om, at der skal opdateres. På <ph name="PRODUCT_OS_NAME" />-enheder vises der i systembakken en notifikation om, at der skal genstartes, i henhold politikken <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />. I <ph name="PRODUCT_NAME" />-browsere ændres appmenuen for at indikere, at der skal foretages en opdatering, når en tredjedel af notifikationsperioden er gået. Notifikationen skifter farve, når to tredjedele af notifikationsperioden er gået, og igen når hele notifikationsperioden er udløbet. De yderligere notifikationer, der aktiveres af politikken <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />, følger samme tidsplan.
+
+      Hvis den ikke er angivet, anvendes standardtidsrummet på 345600000 millisekunder (fire dage) for <ph name="PRODUCT_OS_NAME" />-enheder og 604800000 millisekunder (en uge) for <ph name="PRODUCT_NAME" />.</translation>
 <translation id="4788252609789586009">Aktiverer funktionen AutoFyld for <ph name="PRODUCT_NAME" /> og giver brugerne mulighed for automatisk at udfylde webformularer med betalingskortoplysninger, der er gemt tidligere.
 
       Hvis denne indstilling er deaktiveret, foreslår eller udfylder AutoFyld aldrig betalingskortoplysninger, og der gemmes heller ikke yderligere betalingskortoplysninger, som brugeren muligvis indsender, når vedkommende er på nettet.
@@ -2180,6 +2205,15 @@
 <translation id="5208240613060747912">Giver dig mulighed for at oprette en liste med webadressemønstre, der angiver websites, hvor det ikke er tilladt at vise notifikationer. Hvis denne politik ikke angives, anvendes den globale standardværdi på alle websites, enten fra politikken "DefaultNotificationsSetting", hvis den er indstillet, eller brugerens personlige konfiguration.</translation>
 <translation id="5213038356678567351">Websites, der aldrig skal aktivere et browserskift.</translation>
 <translation id="5219844027738217407">I Android-apps påvirker denne politik kun mikrofonen. Når denne politik angives som Sand, slås lyden på mikrofonen fra i alle Android-apps uden undtagelser.</translation>
+<translation id="5221394278852982313">Tillader, at du opretter en liste med webadresser, som angiver, hvilke websites der automatisk skal gives adgangstilladelse til en USB-enhed med det givne leverandør- og produkt-id. Politikken er kun gyldig, hvis hvert element på listen indeholder både enheder og webadresser. Hvert element på enheder kan indeholde felter til leverandør-id og produkt-id. Alle id'er, der udelades, behandles som et jokertegn – et produkt-id kan dog ikke angives, uden at der også angives et leverandør-id. Hvis ikke disse regler overholdes, anses politikken som ugyldig og ignoreres.
+
+        USB-tilladelsesmodellen anvender webadressen til det anmodende website ("anmodende webadresse") og webadressen til indramningswebsitet på øverste niveau ("integrerende webadresse") til at give den anmodende webadresse adgang til USB-enheden. Den anmodende webadresse kan adskille sig fra den integrerende webadresse, når det anmodende website indlæses i en iframe. Feltet "webadresser" kan derfor indeholde op til to webadressestrenge, adskilt af et komma, for at angive henholdsvis den anmodende og den integrerende webadresse. Hvis der kun angives én webadresse, gives der adgang til de tilsvarende USB-enheder, når webadressen til det anmodende website stemmer overens med denne webadresse, uanset hvilken integreringsstatus den har. Webadresserne i feltet "webadresser" skal være gyldige webadresser, ellers ignoreres politikken.
+
+        Hvis politikken ikke konfigureres, anvendes den globale standardværdi fra politikken "DefaultWebUsbGuardSetting" til alle websites, og hvis denne ikke er konfigureret, anvendes brugerens personlige konfiguration.
+
+        Webadressemønstre i denne politik må ikke være i strid med dem, der er konfigureret via WebUsbBlockedForUrls. Hvis de er i strid med hinanden, har denne politik forrang frem for WebUsbBlockedForUrls og WebUsbAskForUrls.
+
+        Værdierne for denne politik og politikken DeviceWebUsbAllowDevicesForUrls sammenflettes.</translation>
 <translation id="5228316810085661003">Forsinkelse af automatisk login på den lokale konto på enheden.
 
       Hvis politikken |DeviceLocalAccountAutoLoginId| ikke er angivet, har politikken ingen effekt. Ellers:
@@ -2902,6 +2936,21 @@
 
       Hvis denne politik er angivet som "Tillad ikke, at brugerne administrerer certifikater", kan brugerne ikke administrere certifikater. De kan kun se certifikaterne.</translation>
 <translation id="6573305661369899995">Angiv en ekstern kilde til webadressebegrænsninger</translation>
+<translation id="6583851521569686409">Konfigurerer en liste over printere.
+
+      Med denne politik kan administratorer angive printerkonfigurationer for
+      deres brugere.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> og <ph name="PRINTER_DESCRIPTION" /> er strenge i frit format, der kan tilpasses, så det bliver nemmere at vælge printer. <ph name="PRINTER_MANUFACTURER" /> og <ph name="PRINTER_MODEL" /> gør det nemmere for slutbrugerne at identificere printere. De repræsenterer printerproducenten og -modellen. <ph name="PRINTER_URI" /> skal være en adresse, der er tilgængelig fra en klientcomputer, bl.a. <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> og <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> er valgfri. Hvis den angives, bruges den som en hjælp til at deduplikere <ph name="ZEROCONF_DISCOVERY" />-printere.
+
+      Enten skal <ph name="PRINTER_EFFECTIVE_MODEL" /> indeholde navnet på printeren, eller også skal <ph name="PRINTER_AUTOCONF" /> angives som Sand. Printere med begge eller ingen af egenskaberne ignoreres.
+
+      Printerkonfigurationen fuldføres, første gang printeren tages i brug.  PPD-filer downloades ikke, før printeren benyttes.  Derefter gemmes ofte anvendte PPD-filer i cachen.
+
+      Politikken påvirker ikke, om brugerne kan konfigurere printere på individuelle enheder.  Den er beregnet til at fungere som supplement til den enkelte brugers konfiguration af printere.
+
+      Politikken understøtter udvidelse af <ph name="MACHINE_NAME_VARIABLE" /> til Active Directory-enhedsnavnet eller en af dets understrenge på enheder, der administreres med Active Directory. Hvis enhedsnavnet f.eks. er <ph name="MACHINE_NAME_EXAMPLE" />, erstattes <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> af de fire tegn, der kommer efter den sjette position, dvs. <ph name="MACHINE_NAME_PART_EXAMPLE" />. Bemærk, at positionen er nulbaseret.
+      </translation>
 <translation id="6598235178374410284">Brugerens avatarbillede</translation>
 <translation id="6603004149426829878">Send altid eventuelle tilgængelige placeringssignaler til serveren under opdatering af tidszone.</translation>
 <translation id="6628120204569232711">Rapportér lagerstatus</translation>
@@ -4210,6 +4259,8 @@
 <translation id="915194831143859291">Hvis denne politik er angivet til Falsk eller ikke er konfigureret, tillader <ph name="PRODUCT_OS_NAME" />, at brugeren lukker enheden ned.
       Hvis denne politik er angivet til Sand, aktiverer <ph name="PRODUCT_OS_NAME" /> en genstart, når brugeren lukker enheden ned. <ph name="PRODUCT_OS_NAME" /> erstatter alle forekomster af Luk-knapper i grænsefladen med genstartsknapper. Hvis brugeren lukker enheden ved hjælp af afbryderknappen, genstartes den ikke automatisk, selvom politikken er aktiveret.</translation>
 <translation id="9152473318295429890">Aktivér indholdsbestemte forslag for relaterede websider</translation>
+<translation id="9153446010242995516">Træk udgivelsen tilbage, og behold målversionen, hvis versionen af operativsystemet er nyere end målversionen. Forsøg at overføre konfigurationen på enhedsniveau (herunder loginoplysninger til netværket) via tilbagetrækningsprocessen, hvis det er muligt, men udfør tilbagetrækningen med en fuldstændig Powerwash, selvom det ikke er muligt at gendanne dataene (eftersom målversionen ikke understøtter gendannelse af data eller på grund af en ikke-kompatibel ændring tilbage).
+          Understøttes i <ph name="PRODUCT_OS_NAME" /> version 75 og nyere. Ved ældre klienter betyder denne værdi, at tilbagetrækning er deaktiveret.</translation>
 <translation id="9158929520101169054">Tillad samlet login fra flere konti i browseren</translation>
 <translation id="9159126470527871268">Underretter brugeren om, at <ph name="PRODUCT_NAME" /> eller <ph name="PRODUCT_OS_NAME" /> skal genstartes for at anvende en afventende opdatering.
 
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 802eeca..9d7f2a4 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -1115,6 +1115,15 @@
           Ist die Richtlinie nicht konfiguriert, bleibt das Verhalten der spezifischeren Richtlinien unverändert.</translation>
 <translation id="2987155890997901449">ARC aktivieren</translation>
 <translation id="2987227569419001736">Verwendung der Web Bluetooth API steuern</translation>
+<translation id="2990018289267778247">Ist diese Richtlinie auf "true" gesetzt, werden die Optionen für Bedienungshilfen immer im Taskleistenmenü angezeigt.
+
+          Wenn die Richtlinie auf "false" gesetzt ist, werden die Optionen für Bedienungshilfen nie im Taskleistenmenü angezeigt.
+
+          Wenn Sie diese Richtlinie konfigurieren, kann sie vom Nutzer nicht geändert oder überschrieben werden.
+
+          Ist diese Richtlinie nicht konfiguriert, erscheinen keine Optionen für Bedienungshilfen im Taskleistenmenü, der Nutzer kann deren Anzeige jedoch auf der Seite "Einstellungen" aktivieren.
+
+          Werden Bedienungshilfen anderweitig aktiviert, z. B. über eine Tastenkombination, erscheinen die Optionen für Bedienungshilfen immer im Taskleistenmenü.</translation>
 <translation id="3011301228198307065">Hiermit wird die Standard-URL für die Startseite in <ph name="PRODUCT_NAME" /> konfiguriert und verhindert, dass diese von Nutzern geändert werden kann.
 
           Die Startseite wird über die Schaltfläche "Startseite" geöffnet. Die Seiten, die beim Hochfahren geöffnet werden, werden über die Richtlinien "RestoreOnStartup" kontrolliert.
@@ -1427,6 +1436,7 @@
         Diese Richtlinie wird im Rahmen der Registrierung von Cloud-Richtlinien auf Computern verwendet und kann unter Windows über die Registrierung oder per GPO, auf einem Mac per plist und unter Linux über eine JSON-Richtliniendatei festgelegt werden.</translation>
 <translation id="3660562134618097814">SAML-IdP-Cookies bei der Anmeldung übertragen</translation>
 <translation id="3701121231485832347">Legt die Einstellungen für mit <ph name="MS_AD_NAME" /> verwaltete <ph name="PRODUCT_OS_NAME" />-Geräte fest.</translation>
+<translation id="3702518095257671450">Remote-Attestierung</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> – Das einzeilige Feld ist veraltet und wird in Zukunft entfernt. Bitte nutzen Sie das mehrzeilige Textfeld unten.</translation>
 <translation id="3709266154059827597">Schwarze Liste für Installation von Erweiterungen konfigurieren</translation>
 <translation id="3711895659073496551">Suspend-Modus</translation>
@@ -1809,6 +1819,15 @@
 
           Diese Richtlinie wird nur berücksichtigt, wenn die Richtlinie "DefaultSearchProviderEnabled" aktiviert ist.</translation>
 <translation id="4285674129118156176">Nicht verknüpften Nutzern die Verwendung von ARC gestatten</translation>
+<translation id="4289903996435140853">Hiermit können Sie eine Liste mit URLs festlegen, deren Websites automatisch auf ein USB-Gerät mit der angegebenen Anbieter- und Produkt-ID zugreifen dürfen. Damit die Richtlinie gültig ist, muss jeder Eintrag in der Liste sowohl Geräte als auch URLs aufweisen. Jeder Geräteeintrag kann je ein Feld für eine Anbieter-ID und eine Produkt-ID enthalten. Fehlende IDs werden als Platzhalter betrachtet, wobei als Ausnahme zu berücksichtigen ist, dass eine Produkt-ID nicht ohne zugehörige Anbieter-ID angegeben werden kann. Andernfalls ist die Richtlinie ungültig und wird ignoriert.
+
+        Im USB-Berechtigungsmodell wird die URL der anfragenden Website ("anfragende URL") und die URL der Frame-Website der obersten Ebene ("einbettende URL") verwendet. Dabei wird der anfragenden URL die Berechtigung erteilt, auf das USB-Gerät zuzugreifen. Wird die anfragende Website in einen iFrame geladen, kann die anfragende von der einbettenden URL abweichen. Deshalb darf das Feld "urls" bis zu zwei durch ein Komma voneinander getrennte URL-Strings enthalten: die anfragende URL und die einbettende URL. Falls nur eine einzige URL angegeben ist, wird der Zugriff auf die entsprechenden USB-Geräte gewährt, wenn unabhängig vom Einbettungsstatus die URL der anfragenden Website mit dieser URL übereinstimmt. Die URLs im Feld "urls" müssen gültig sein, da ansonsten die Richtlinie ignoriert wird.
+
+        Ist diese Richtlinie nicht konfiguriert, kommt für alle Websites entweder der globale Standardwert der Richtlinie "DefaultWebUsbGuardSetting", sofern konfiguriert, oder die persönliche Konfiguration des Nutzers zum Einsatz.
+
+        URL-Muster in dieser Richtlinie dürfen nicht im Widerspruch zu den über "WebUsbBlockedForUrls" konfigurierten URLs stehen. Im Falle einer Diskrepanz hat diese Richtlinie Vorrang vor "WebUsbBlockedForUrls" und "WebUsbAskForUrls".
+
+        Werte für diese Richtlinie und die Richtlinie "WebUsbAllowDevicesForUrls" werden zusammengeführt.</translation>
 <translation id="4298509794364745131">Gibt an, welche Apps auf dem <ph name="PRODUCT_OS_NAME" />-Sperrbildschirm als Notizen-App aktiviert werden können.
 
       Wenn die bevorzugte Notizen-App auf dem Sperrbildschirm aktiviert ist, enthält dieser ein UI-Element zum Öffnen der App.
@@ -1952,6 +1971,7 @@
 <translation id="4639407427807680016">Namen der Hosts für natives Messaging, die von der schwarzen Liste ausgenommen werden sollen</translation>
 <translation id="4650759511838826572">URL-Protokollschemas deaktivieren</translation>
 <translation id="465099050592230505">Unternehmens-Web-Store-URL (veraltet)</translation>
+<translation id="4661889655253181651">Unter "Inhaltseinstellungen" können Sie angeben, wie Inhalte bestimmter Typen (z. B. Cookies, Bilder oder JavaScript) verarbeitet werden.</translation>
 <translation id="4665897631924472251">Verwaltungseinstellungen für Erweiterungen</translation>
 <translation id="4668325077104657568">Standardeinstellung für Bilder</translation>
 <translation id="4670865688564083639">Minimum:</translation>
@@ -1996,6 +2016,11 @@
       Diese Vorschläge werden per Fernzugriff von den Google-Servern abgerufen.
 
       Falls diese Einstellung auf "false" gesetzt ist, werden keine Vorschläge abgerufen oder angezeigt.</translation>
+<translation id="4759650396863318477">Hiermit kann der Zeitraum in Millisekunden festgelegt werden, in dem Nutzer benachrichtigt werden, dass <ph name="PRODUCT_NAME" /> oder <ph name="PRODUCT_OS_NAME" /> für ein Update neu gestartet werden muss.
+
+      Während dieses Zeitraums werden Nutzer wiederholt über die Notwendigkeit eines Updates informiert. Auf <ph name="PRODUCT_OS_NAME" />-Geräten erscheint entsprechend der Richtlinie "<ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />" eine Neustartbenachrichtigung in der Taskleiste. In <ph name="PRODUCT_NAME" />-Browsern ändert sich das App-Menü, sobald ein Drittel des Benachrichtigungszeitraums abgelaufen ist, um zu zeigen, dass ein Neustart nötig ist. Die Farbe dieser Benachrichtigung ändert sich, sobald zwei Drittel des Benachrichtigungszeitraums vergangen sind. Für die zusätzlichen Benachrichtigungen, die über die Richtlinie "<ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />" aktiviert werden, gilt derselbe Zeitplan.
+
+      Wenn die Richtlinie nicht konfiguriert ist, kommt für <ph name="PRODUCT_OS_NAME" />-Geräte der standardmäßige Zeitraum von 3.456.00.000 Millisekunden (vier Tage) zum Einsatz. Für <ph name="PRODUCT_NAME" />-Geräte sind es 6.048.00.000 (eine Woche).</translation>
 <translation id="4788252609789586009">Aktiviert die AutoFill-Funktion von <ph name="PRODUCT_NAME" /> und ermöglicht es Nutzern, Kreditkarteninformationen in Webformularen automatisch mit zuvor gespeicherten Informationen ausfüllen zu lassen.
 
       Wenn diese Einstellung deaktiviert ist, schlägt AutoFill weder Kreditkarteninformationen vor oder füllt sie automatisch aus noch werden zusätzliche Kreditkarteninformationen gespeichert, die der Nutzer während des Surfens im Web möglicherweise sendet.
@@ -2191,6 +2216,15 @@
 <translation id="5208240613060747912">Ermöglicht Ihnen die Zusammenstellung einer Liste mit URL-Mustern, die Websites angeben, denen es nicht gestattet ist, Benachrichtigungen anzuzeigen. Wenn diese Richtlinie nicht konfiguriert ist, kommt für alle Websites entweder der globale Standardwert der Richtlinie "DefaultNotificationsSetting", sofern konfiguriert, oder der persönlichen Konfiguration des Nutzers zum Einsatz.</translation>
 <translation id="5213038356678567351">Websites, die unter keinen Umständen einen Browserwechsel auslösen sollten.</translation>
 <translation id="5219844027738217407">Bei Android-Apps betrifft diese Richtlinie nur das Mikrofon. Wenn diese Richtlinie auf "true" gesetzt ist, wird das Mikrofon ohne Ausnahme für alle Android-Apps stummgeschaltet.</translation>
+<translation id="5221394278852982313">Hiermit können Sie eine Liste mit URLs festlegen, deren Websites automatisch auf ein USB-Gerät mit der angegebenen Anbieter- und Produkt-ID zugreifen dürfen. Damit die Richtlinie gültig ist, muss jeder Eintrag in der Liste sowohl Geräte als auch URLs aufweisen. Jeder Geräteeintrag kann je ein Feld für eine Anbieter-ID und eine Produkt-ID enthalten. Fehlende IDs werden als Platzhalter betrachtet, wobei als Ausnahme zu berücksichtigen ist, dass eine Produkt-ID nicht ohne zugehörige Anbieter-ID angegeben werden kann. Andernfalls ist die Richtlinie ungültig und wird ignoriert.
+
+        Im USB-Berechtigungsmodell wird die URL der anfragenden Website ("anfragende URL") und die URL der Frame-Website der obersten Ebene ("einbettende URL") verwendet. Dabei wird der anfragenden URL die Berechtigung erteilt, auf das USB-Gerät zuzugreifen. Wird die anfragende Website in einen iFrame geladen, kann die anfragende von der einbettenden URL abweichen. Deshalb darf das Feld "urls" bis zu zwei durch ein Komma voneinander getrennte URL-Strings enthalten: die anfragende URL und die einbettende URL. Falls nur eine einzige URL angegeben ist, wird der Zugriff auf die entsprechenden USB-Geräte gewährt, wenn unabhängig vom Einbettungsstatus die URL der anfragenden Website mit dieser URL übereinstimmt. Die URLs im Feld "urls" müssen gültig sein, da ansonsten die Richtlinie ignoriert wird.
+
+        Ist diese Richtlinie nicht konfiguriert, kommt für alle Websites entweder der globale Standardwert der Richtlinie "DefaultWebUsbGuardSetting", sofern konfiguriert, oder die persönliche Konfiguration des Nutzers zum Einsatz.
+
+        URL-Muster in dieser Richtlinie dürfen nicht im Widerspruch zu den über "WebUsbBlockedForUrls" konfigurierten URLs stehen. Im Falle einer Diskrepanz hat diese Richtlinie Vorrang vor "WebUsbBlockedForUrls" und "WebUsbAskForUrls".
+
+        Werte für diese Richtlinie und die Richtlinie "DeviceWebUsbAllowDevicesForUrls" werden zusammengeführt.</translation>
 <translation id="5228316810085661003">Diese Richtlinie gibt das Intervall bis zur automatischen Anmeldung in einem lokalen Gerätekonto an.
 
 Falls die Richtlinie |DeviceLocalAccountAutoLoginId| nicht festgelegt ist, hat diese Richtlinie keine Auswirkungen. Anderenfalls gilt:
@@ -2897,6 +2931,20 @@
 
       Ist diese Richtlinie auf "Nutzern nicht erlauben, Zertifikate zu verwalten" gesetzt, so können Nutzer keine Zertifikate verwalten, sondern sie nur aufrufen.</translation>
 <translation id="6573305661369899995">Eine externe Quelle für URL-Einschränkungen festlegen</translation>
+<translation id="6583851521569686409">Hiermit wird eine Liste von Druckern konfiguriert.
+
+      Mit dieser Richtlinie können Administratoren den Nutzern Druckerkonfigurationen zur Verfügung stellen.
+
+      "<ph name="PRINTER_DISPLAY_NAME" />" und "<ph name="PRINTER_DESCRIPTION" />" sind Freiform-Strings, die für eine einfachere Druckerauswahl angepasst werden können. Mit "<ph name="PRINTER_MANUFACTURER" />" und "<ph name="PRINTER_MODEL" />" können Endnutzer einen Drucker leichter erkennen. Sie geben den Hersteller und das Modell des Druckers an. Bei "<ph name="PRINTER_URI" />" sollte es sich um eine Adresse einschließlich <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> und <ph name="URI_QUEUE" /> handeln, auf die über einen Client-Computer zugegriffen werden kann. Die <ph name="PRINTER_UUID" /> ist optional. Ist sie angegeben, wird sie zum Entfernen von Duplikaten bei <ph name="ZEROCONF_DISCOVERY" />-Druckern verwendet.
+
+      Entweder sollte "<ph name="PRINTER_EFFECTIVE_MODEL" />" den Namen des Druckers enthalten oder "<ph name="PRINTER_AUTOCONF" />" auf "true" festgelegt sein. Drucker mit beiden oder keiner der Eigenschaften werden ignoriert.
+
+      Die Druckereinrichtung wird bei der ersten Verwendung des Druckers abgeschlossen.  PPDs werden erst heruntergeladen, wenn der Drucker genutzt wird.  Anschließend werden häufig verwendete PPDs im Cache gespeichert.
+
+      Diese Richtlinie hat keinen Einfluss darauf, ob Nutzer Drucker auf ihren individuellen Geräten konfigurieren können.  Sie ist als Ergänzung zu den Druckerkonfigurationen der einzelnen Nutzer gedacht.
+
+      Bei Geräten, die über Active Directory verwaltet werden, unterstützt diese Richtlinie die Erweiterung von "<ph name="MACHINE_NAME_VARIABLE" />" auf den Active Directory-Computernamen oder einen Teilstring davon. Wenn der Computername beispielsweise "<ph name="MACHINE_NAME_EXAMPLE" />" lautet, wird "<ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />" durch die vier Zeichen nach der sechsten Stelle ersetzt, z. B. "<ph name="MACHINE_NAME_PART_EXAMPLE" />". Beachten Sie, dass die Position auf null basiert.
+      </translation>
 <translation id="6598235178374410284">Nutzer-Avatarbild</translation>
 <translation id="6603004149426829878">Beim Auflösen der Zeitzone immer verfügbare Standortsignale an den Server senden</translation>
 <translation id="6628120204569232711">Speicherstatus melden</translation>
@@ -4198,6 +4246,8 @@
 <translation id="915194831143859291">Wenn diese Richtlinie auf "false" gesetzt oder nicht konfiguriert ist, erlaubt <ph name="PRODUCT_OS_NAME" /> dem Nutzer, das Gerät herunterzufahren.
       Ist diese Richtlinie auf "true" gesetzt, löst <ph name="PRODUCT_OS_NAME" /> einen Neustart aus, wenn der Nutzer das Gerät herunterfährt. <ph name="PRODUCT_OS_NAME" /> ersetzt alle Schaltflächen zum Herunterfahren auf der Benutzeroberfläche durch Schaltflächen zum Neustarten. Wenn der Nutzer das Gerät über die Ein-/Aus-Taste herunterfährt, wird es nicht automatisch neu gestartet, auch wenn die Richtlinie aktiviert ist.</translation>
 <translation id="9152473318295429890">Kontextbezogene Vorschläge ähnlicher Webseiten aktivieren</translation>
+<translation id="9153446010242995516">Führen Sie ein Rollback durch und bleiben Sie bei der Zielversion, falls die Version des Betriebssystems neuer ist als die der Zielversion. Versuchen Sie nach Möglichkeit, die Einstellungen auf Geräteebene (einschließlich der Anmeldedaten für das Netzwerk) per Rollback zu übertragen. Führen Sie das Rollback jedoch mit einem vollständigen Powerwash durch, selbst wenn das Wiederherstellen von Daten nicht möglich ist, weil rückwärtsinkompatible Änderungen vorliegen oder die Zielversion dies nicht unterstützt.
+Auf <ph name="PRODUCT_OS_NAME" />-Version 75 und höher unterstützt. Bei älteren Clients bedeutet dieser Wert, dass das Rollback deaktiviert ist.</translation>
 <translation id="9158929520101169054">Mehrfachanmeldung im Browser zulassen</translation>
 <translation id="9159126470527871268">Nutzer benachrichtigen, dass <ph name="PRODUCT_NAME" /> neu gestartet werden muss oder ein <ph name="PRODUCT_OS_NAME" />-Gerät neu gestartet werden muss, um ein ausstehendes Update durchzuführen.
 
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 91a9503f..2195fb9 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -1132,6 +1132,15 @@
           Si no se asigna ningún valor a esta política, el comportamiento de las políticas más específicas no se verá afectado.</translation>
 <translation id="2987155890997901449">Habilitar ARC</translation>
 <translation id="2987227569419001736">Controlar el uso de la API Bluetooth web</translation>
+<translation id="2990018289267778247">Si se asigna el valor "True" a esta política, las opciones de accesibilidad siempre aparecerán en el menú de la bandeja del sistema.
+
+          Si se le asigna el valor "False", las opciones de accesibilidad nunca aparecerán en el menú de la bandeja del sistema.
+
+          Además, los usuarios no podrán cambiarla ni anularla.
+
+          Si no asignas ningún valor a esta política, no aparecerán opciones de accesibilidad en el menú de la bandeja del sistema, pero los usuarios podrán hacer que aparezcan opciones de accesibilidad a través de la página de configuración.
+
+          Si las funciones de accesibilidad se han habilitado de otra forma (por ejemplo, mediante una combinación de teclas), las opciones de accesibilidad siempre se mostrarán en el menú de la bandeja del sistema.</translation>
 <translation id="3011301228198307065">Permite configurar la URL de la página principal predeterminada de <ph name="PRODUCT_NAME" /> y evita que los usuarios la modifiquen.
 
           La página principal es la página que se abre al hacer clic en el botón Página de inicio. Las páginas que se abren al iniciarse el navegador están controladas por las políticas RestoreOnStartup.
@@ -1454,6 +1463,7 @@
         El registro automático de políticas de permisos de nube utiliza esta política en el escritorio y se puede configurar mediante el registro o el GPO en Windows, mediante plist en Mac y mediante el archivo de políticas JSON en Linux.</translation>
 <translation id="3660562134618097814">Transferir las cookies del proveedor de identidad SAML durante el inicio de sesión</translation>
 <translation id="3701121231485832347">Controla la configuración específica de los dispositivos con <ph name="PRODUCT_OS_NAME" /> gestionados con <ph name="MS_AD_NAME" />.</translation>
+<translation id="3702518095257671450">Confirmación remota</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (el campo de una línea está obsoleto y desaparecerá en el futuro; a partir de ahora, debes utilizar el campo de varias líneas que aparece más abajo).</translation>
 <translation id="3709266154059827597">Configurar lista negra de instalación de extensiones</translation>
 <translation id="3711895659073496551">Suspender</translation>
@@ -1852,6 +1862,15 @@
 
           Esta política solo se respeta si se habilita la política "DefaultSearchProviderEnabled".</translation>
 <translation id="4285674129118156176">Permitir que los usuarios no afiliados utilicen ARC</translation>
+<translation id="4289903996435140853">Permite configurar una lista con las URL de los sitios web a los que se concederá permiso automáticamente para acceder a un dispositivo USB con los ID de proveedor y producto facilitados. Cada elemento de la lista debe contener tanto el dispositivo como la URL para que la política sea válida. Cada elemento de los dispositivos puede incluir un campo de ID de proveedor e ID de producto. Los ID que se omitan se considerarán comodines, con una excepción: no se puede especificar un ID de producto sin que se especifique también un ID de proveedor. De lo contrario, la política no será válida y se ignorará.
+
+        El modelo de permiso de USB usa la URL del sitio web solicitante ("URL solicitante") y la URL del sitio web marco de nivel superior ("URL de inserción") para otorgar permiso a la URL solicitante para acceder al dispositivo USB. La URL solicitante puede ser distinta a la de inserción si el sitio web solicitante se encuentra en un iframe. Por lo tanto, el campo "urls" puede contener un máximo de dos cadenas de URL delimitadas por una coma para especificar la URL solicitante y la de inserción, respectivamente. Si solo se especifica una URL, se otorgará acceso a los dispositivos USB correspondientes cuando la URL del sitio web solicitante coincida con esta URL, independientemente del estado de inserción. Las URL del campo "urls" deben ser URL válidas; de lo contrario, la política se ignorará.
+
+        Si no se le asigna ningún valor a esta política, se usará en todos los sitios web el valor general predeterminado que se indique en la política "DefaultWebUsbGuardSetting" (si se ha definido) o las preferencias personales del usuario (si no se ha definido).
+
+        Los patrones de URL de esta política no deben entrar en conflicto con los configurados con la política WebUsbBlockedForUrls. Si hay un conflicto, esta política prevalece sobre las políticas WebUsbBlockedForUrls y WebUsbAskForUrls.
+
+        Los valores de esta política y de la política WebUsbAllowDevicesForUrls están combinados.</translation>
 <translation id="4298509794364745131">Especifica la lista de aplicaciones que se pueden habilitar como aplicaciones para tomar notas en la pantalla de bloqueo de <ph name="PRODUCT_OS_NAME" />.
 
       Si la aplicación para tomar notas preferida está habilitada en la pantalla de bloqueo, esta contendrá un elemento de UI para iniciar dicha aplicación.
@@ -2003,6 +2022,7 @@
 <translation id="4639407427807680016">Nombres de hosts de mensajes nativos que se deben excluir de la lista negra</translation>
 <translation id="4650759511838826572">Inhabilitar esquemas de protocolo de URL</translation>
 <translation id="465099050592230505">URL de la tienda online de la empresa (política obsoleta)</translation>
+<translation id="4661889655253181651">La configuración de contenido permite especificar la gestión de un tipo específico de contenido (por ejemplo, cookies, imágenes o JavaScript).</translation>
 <translation id="4665897631924472251">Configuración de administración de extensiones</translation>
 <translation id="4668325077104657568">Configuración de imágenes predeterminada</translation>
 <translation id="4670865688564083639">Mínimo:</translation>
@@ -2047,6 +2067,11 @@
       Estas sugerencias se obtienen de forma remota de los servidores de Google.
 
       Si se le asigna el valor "False", no se obtendrán ni mostrarán sugerencias.</translation>
+<translation id="4759650396863318477">Permite establecer el periodo de tiempo (en milisegundos) durante el que los usuarios recibirán una notificación informándoles de que deben reiniciar <ph name="PRODUCT_NAME" /> o un dispositivo <ph name="PRODUCT_OS_NAME" /> para aplicar una actualización pendiente.
+
+      Durante este periodo de tiempo, se informará de forma reiterada al usuario de que la actualización es necesaria. En el caso de los dispositivos <ph name="PRODUCT_OS_NAME" />, se mostrará una notificación de reinicio en la bandeja del sistema de acuerdo con la política <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />. En el caso de los navegadores <ph name="PRODUCT_NAME" />, el menú de aplicaciones cambiará para indicar que es necesario reiniciar cuando haya transcurrido un tercio del periodo de notificación. Esta notificación cambiará de color cuando hayan transcurrido dos tercios del periodo de notificación y, de nuevo, cuando este periodo haya finalizado. Las notificaciones adicionales habilitadas por la política <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> siguen esta misma programación.
+
+      Si no se asigna ningún valor, se usará el periodo predeterminado de 345.600.000 milisegundos (cuatro días) para los dispositivos <ph name="PRODUCT_OS_NAME" /> y de 604.800.000 milisegundos (una semana) para <ph name="PRODUCT_NAME" />.</translation>
 <translation id="4788252609789586009">Habilita la función Autocompletar de <ph name="PRODUCT_NAME" /> y permite que los usuarios rellenen automáticamente formularios web con información almacenada anteriormente, como la información de la tarjeta de crédito.
 
       Si inhabilitas esta opción, la función Autocompletar no hará sugerencias ni rellenará la información de la tarjeta de crédito, y tampoco guardará información adicional de la tarjeta de crédito que el usuario envíe cuando esté navegando por la Web.
@@ -2259,6 +2284,15 @@
           Si no se establece esta política, se usará para todos los sitios el valor general predeterminado que se indique en la política DefaultNotificationsSetting (si se ha establecido) o el valor personalizado que haya definido el usuario (en caso contrario).</translation>
 <translation id="5213038356678567351">Sitios web que nunca deben activar un cambio de navegador.</translation>
 <translation id="5219844027738217407">En el caso de las aplicaciones para Android, esta política afecta solo al micrófono. Si se asigna el valor true a esta política, el micrófono se silenciará en todas las aplicaciones para Android, sin excepciones.</translation>
+<translation id="5221394278852982313">Permite configurar una lista con las URL de los sitios web a los que se concederá permiso automáticamente para acceder a un dispositivo USB con los ID de proveedor y producto facilitados. Cada elemento de la lista debe contener tanto el dispositivo como la URL para que la política sea válida. Cada elemento de los dispositivos puede incluir un campo de ID de proveedor e ID de producto. Los ID que se omitan se considerarán comodines, con una excepción: no se puede especificar un ID de producto sin que se especifique también un ID de proveedor. De lo contrario, la política no será válida y se ignorará.
+
+        El modelo de permiso de USB usa la URL del sitio web solicitante ("URL solicitante") y la URL del sitio web marco de nivel superior ("URL de inserción") para otorgar permiso a la URL solicitante para acceder al dispositivo USB. La URL solicitante puede ser distinta a la de inserción si el sitio web solicitante se encuentra en un iframe. Por lo tanto, el campo "urls" puede contener un máximo de dos cadenas de URL delimitadas por una coma para especificar la URL solicitante y la de inserción, respectivamente. Si solo se especifica una URL, se otorgará acceso a los dispositivos USB correspondientes cuando la URL del sitio web solicitante coincida con esta URL, independientemente del estado de inserción. Las URL del campo "urls" deben ser URL válidas; de lo contrario, la política se ignorará.
+
+        Si no se le asigna ningún valor a esta política, se usará en todos los sitios web el valor general predeterminado que se indique en la política "DefaultWebUsbGuardSetting" (si se ha definido) o las preferencias personales del usuario (si no se ha definido).
+
+        Los patrones de URL de esta política no deben entrar en conflicto con los configurados con la política WebUsbBlockedForUrls. Si hay un conflicto, esta política prevalece sobre las políticas WebUsbBlockedForUrls y WebUsbAskForUrls.
+
+        Los valores de esta política y de la política DeviceWebUsbAllowDevicesForUrls están combinados.</translation>
 <translation id="5228316810085661003">Permite indicar el tiempo de espera para el inicio de sesión automático en la cuenta local del dispositivo.
 
       Si no se configura la política |DeviceLocalAccountAutoLoginId|, esta política no tendrá ningún efecto. En caso contrario:
@@ -3000,6 +3034,21 @@
 
       Si se le asigna el valor ''No permitir que los usuarios gestionen certificados'', los usuarios no podrán gestionar certificados, solo verlos.</translation>
 <translation id="6573305661369899995">Establecer una fuente externa de restricciones de URL</translation>
+<translation id="6583851521569686409">Configura una lista de impresoras.
+
+      Esta política permite que los administradores proporcionen opciones de configuración de impresora
+      a sus usuarios.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> y <ph name="PRINTER_DESCRIPTION" /> son cadenas de formato libre que se pueden personalizar para que la selección de impresoras sea sencilla. <ph name="PRINTER_MANUFACTURER" /> y <ph name="PRINTER_MODEL" /> permiten que la identificación de la impresora sea sencilla para los usuarios finales. Representan el fabricante y el modelo de la impresora. <ph name="PRINTER_URI" /> debería ser una dirección que esté disponible desde un ordenador cliente (incluidos <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, y <ph name="URI_QUEUE" />). <ph name="PRINTER_UUID" /> es opcional. Si se especifica, se utiliza para anular el duplicado de impresoras <ph name="ZEROCONF_DISCOVERY" />.
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" /> debería incluir el nombre de la impresora o <ph name="PRINTER_AUTOCONF" /> debería tener asignado el valor "True". Se ignorarán las impresoras que tengan ambas propiedades o ninguna.
+
+      La configuración de la impresora se completará la primera vez que se use.  Los archivos PPD no se descargarán hasta que se use la impresora.  A partir de ese momento, los archivos PPD que se usen con frecuencia se almacenarán en caché.
+
+      Esta política no afecta a la capacidad de los usuarios para configurar impresoras en determinados dispositivos.  La política se ha diseñado como complemento a la configuración de impresoras que realizan los usuarios.
+
+      En los dispositivos administrados de Active Directory, esta política admite una expansión de <ph name="MACHINE_NAME_VARIABLE" /> al nombre de equipo de Active Directory o una subcadena de este. Por ejemplo, si el nombre del equipo es <ph name="MACHINE_NAME_EXAMPLE" />, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> se sustituiría por 4 caracteres después de la sexta posición; es decir, <ph name="MACHINE_NAME_PART_EXAMPLE" />. Ten en cuenta que la posición se basa en cero.
+      </translation>
 <translation id="6598235178374410284">Imagen de avatar del usuario</translation>
 <translation id="6603004149426829878">Enviar siempre cualquier señal de ubicación disponible al servidor mientras se detecta la zona horaria</translation>
 <translation id="6628120204569232711">Informar sobre el estado del almacenamiento</translation>
@@ -4347,6 +4396,8 @@
 <translation id="915194831143859291">Si se asigna el valor false a esta política o si esta no se configura, <ph name="PRODUCT_OS_NAME" /> permitirá al usuario apagar el dispositivo.
       Si se asigna el valor true, <ph name="PRODUCT_OS_NAME" /> reiniciará el dispositivo cuando el usuario lo apague. Cada vez que aparece un botón de apagado en la interfaz de usuario, <ph name="PRODUCT_OS_NAME" /> lo sustituye por un botón de reinicio. Sin embargo, si el usuario apaga el dispositivo con el botón de encendido, este no se reiniciará automáticamente, incluso si se ha habilitado la política.</translation>
 <translation id="9152473318295429890">Habilitar las sugerencias contextuales de páginas web relacionadas</translation>
+<translation id="9153446010242995516">Vuelve a instalar la versión anterior de destino si la versión del SO es más reciente y se puede conservar la configuración de nivel de dispositivo durante el proceso, incluidas las credenciales de red. Sin embargo, instala la versión anterior con un Powerwash completo, aunque no se puedan restaurar los datos, ya sea porque la versión de destino no admite restaurar datos o por cambios incompatibles con la versión anterior.
+          Compatible con <ph name="PRODUCT_OS_NAME" /> 75 y versiones superiores, lo que significa que los clientes más antiguos no pueden instalar versiones anteriores.</translation>
 <translation id="9158929520101169054">Permitir inicio de sesión múltiple en el navegador</translation>
 <translation id="9159126470527871268">Informar a los usuarios de que deben reiniciar <ph name="PRODUCT_NAME" /> o <ph name="PRODUCT_OS_NAME" /> para aplicar una actualización pendiente.
 
diff --git a/components/policy/resources/policy_templates_fa.xtb b/components/policy/resources/policy_templates_fa.xtb
index 31c4c5a..4d8b848 100644
--- a/components/policy/resources/policy_templates_fa.xtb
+++ b/components/policy/resources/policy_templates_fa.xtb
@@ -1103,6 +1103,15 @@
           اگر این خط‌مشی تنظیم نشود، رفتار خط‌مشی‌های خاص‌تر بدون تغییر باقی می‌ماند.</translation>
 <translation id="2987155890997901449">‏فعال کردن ARC</translation>
 <translation id="2987227569419001736">‏کنترل استفاده از Web Bluetooth API</translation>
+<translation id="2990018289267778247">اگر این خط‌مشی روی درست تنظیم شود، همیشه گزینه‌های «دسترس‌پذیری» در منوی سینی سیستم نمایش داده می‌شود.
+
+          اگر این خط‌مشی روی نادرست تنظیم شود، گزینه‌های دسترس‌پذیری هرگز در منوی سینی سیستم نمایش داده نمی‌شود.
+
+          اگر این خط‌مشی را تنظیم کنید، کاربران نمی‌توانند آن را تغییر دهند یا لغو کنند.
+
+          اگر این خط‌مشی تنظیم نشود، گزینه‌های «دسترس‌پذیری» در منوی سینی سیستم نمایش داده نمی‌شود اما کاربر می‌تواند کاری کند که گزینه‌های «دسترس‌پذیری» ازطریق صفحه «تنظیمات» نمایش داده شود.
+
+          وقتی ویژگی‌های دسترس‌پذیری فعال باشند (به‌طریقی دیگر، مثلاً ازطریق ترکیب کلید)، گزینه‌های «دسترس‌پذیری» همیشه در منوی سینی سیستم نشان داده خواهند شد.</translation>
 <translation id="3011301228198307065">‏نشانی صفحه اصلی پیش‌فرض را در <ph name="PRODUCT_NAME" /> پیکربندی می‌کند و از تغییر آن توسط کاربران جلوگیری می‌کند.
 
           صفحه اصلی، صفحه‌ای است که توسط «دکمه صفحه اصلی» باز می‌شود. صفحه‌هایی که هنگام راه‌اندازی باز می‌شود، توسط خط‌مشی‌های RestoreOnStartup کنترل می‌شود.
@@ -1417,6 +1426,7 @@
         این خط‌مشی توسط ثبت‌نام خط‌مشی ابری در حوزه ماشین در میز کار استفاده می‌شود و می‌تواند توسط «رجیستری» یا GPO در Windows،‏ plist در Mac و فایل خط‌مشی JSON در Linux تنظیم شود.</translation>
 <translation id="3660562134618097814">‏انتقال کوکی‌های SAML IdP هنگام ورود به سیستم</translation>
 <translation id="3701121231485832347">تنظیمات مربوط به دستگاه‌های <ph name="PRODUCT_OS_NAME" /> تحت‌مدیریت <ph name="MS_AD_NAME" /> را کنترل می‌کند.</translation>
+<translation id="3702518095257671450">تأیید هویت ازراه‌دور</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (فیلد تک‌خطی منسوخ شده است و در آینده حذف می‌شود. لطفاً از این به بعد از کادر نوشتاری چندخطی در زیر استفاده کنید.)</translation>
 <translation id="3709266154059827597">پیکربندی فهرست سیاه نصب برنامه‌های افزودنی</translation>
 <translation id="3711895659073496551">تعویق</translation>
@@ -1808,6 +1818,15 @@
  این قانون اختیاری است. اگر تنظیم نشود، درخواست جستجوی پیشنهادی با استفاده از روش GET ارسال خواهد شد.
  این قانون فقط در صورتی رعایت می‌شود که قانون «DefaultSearchProviderEnabled» فعال شده باشد.</translation>
 <translation id="4285674129118156176">‏اجازه به کاربران غیروابسته برای استفاده از ARC</translation>
+<translation id="4289903996435140853">‏به شما امکان می‌دهد فهرستی از نشانی‌های وب تنظیم کنید که مشخص می‌کند کدام سایت‌ها به‌طور خودکار اجازه خواهند داشت به دستگاه USB با فروشنده و شناسه‌های محصول مشخص دسترسی داشته باشند. برای اینکه خط‌مشی معتبر باشد، همه موارد موجود در فهرست باید هم حاوی دستگاه و هم نشانی وب باشند. همه موارد موجود در دستگاه‌ها می‌توانند فیلد شناسه فروشنده و شناسه محصول را به‌دست آورند. هر شناسه‌ای که جا می‌افتد به‌عنوان نویسه عام در نظر گرفته می‌شود؛ اما یک استثنا وجود دارد، اینکه اگر شناسه فروشنده مشخص نشود نمی‌توان شناسه محصول را هم مشخص کرد. درغیراین‌صورت، خط‌مشی نامعتبر خواهد بود و نادیده گرفته می‌شود.
+
+        مدل مجوز USB برای ارائه مجوز از نشانی وب سایت درخواست‌کننده («نشانی وب درخواست‌کننده») و نشانی وب سایت از سایت فریم بالا («نشانی وب جاسازی‌شونده») استفاده می‌کند تا به نشانی وب درخواست‌کننده اجازه دهد به دستگاه USB دسترسی داشته باشد. اگر سایت درخواست‌کننده در یک iframe بار شود، نشانی وب درخواست‌کننده می‌تواند متفاوت از نشانی وب جاسازی‌شونده باشد. بنابراین، فیلد نشانی وب می‌تواند حداکثر دو رشته نشانی وب جداشده با ویرگول داشته باشد تا به‌ترتیب نشانی وب درخواست‌کننده و جاسازی‌شونده مشخص شود. اگر فقط یک نشانی وب مشخص شود، وقتی نشانی وب سایت درخواست‌کننده با نشانی وب مشخص‌شده منطبق باشد، دسترسی به دستگاه‌های USB مربوطه ارائه خواهد شد (بدون توجه به وضعیت جاسازی‌). باید نشانی‌های وب معتبری در فیلد «urls» وارد شود، درغیراین‌صورت، این خط‌مشی نادیده گرفته خواهد شد.
+
+        اگر این خط‌مشی تنظیم نشود، مقدار پیش‌فرض عمومی برای همه سایت‌ها استفاده خواهد شد. اگر خط‌مشی «DefaultWebUsbGuardSetting» تنظیم شده باشد این مقدار از این خط‌مشی گرفته می‌شود، درغیراین‌صورت از پیکربندی شخصی کاربر به‌دست می‌آید.
+
+        الگوهای نشانی وب در این خط‌مشی نباید با الگوهای پیکربندی‌شده ازطریق WebUsbBlockedForUrls مغایرت داشته باشد. اگر مغایرتی وجود داشته باشد، این خط‌مشی نسبت به WebUsbBlockedForUrls و WebUsbAskForUrls در اولویت قرار خواهد گرفت.
+
+        مقادیر این خط‌مشی و خط‌مشی WebUsbAllowDevicesForUrls باهم ادغام می‌شوند.</translation>
 <translation id="4298509794364745131">‏فهرست برنامه‌هایی را مشخص می‌کند که می‌توانند به‌عنوان برنامه یادداشت‌برداری در صفحه درحالت قفل <ph name="PRODUCT_OS_NAME" /> فعال شوند.
 
       اگر برنامه یادداشت‌برداری ترجیحی در صفحه درحالت قفل فعال باشد، صفحه برای راه‌اندازی این برنامه، عنصر رابط کاربری را در خود جای می‌دهد.
@@ -1951,6 +1970,7 @@
 <translation id="4639407427807680016">نام میزبان‌های پیام‌رسانی داخلی برای خارج کردن از فهرست سیاه</translation>
 <translation id="4650759511838826572">‏غیر فعال کردن طرح‌های URL پروتکل</translation>
 <translation id="465099050592230505">نشانی وب فروشگاه وب سازمان (منسوخ‌شده)</translation>
+<translation id="4661889655253181651">تنظیمات محتوا به شما اجازه می‌دهد تعیین کنید که چگونه یک نوع محتوا (مانند کوکی‌ها، تصاویر یا جاوا اسکریپت) کنترل می‌شود.</translation>
 <translation id="4665897631924472251">تنظیمات مدیریت افزونه</translation>
 <translation id="4668325077104657568">تنظیمات پیش‌فرض تصاویر</translation>
 <translation id="4670865688564083639">حداقل:</translation>
@@ -1996,6 +2016,11 @@
       این پیشنهادها به‌صورت از راه دور از سرورهای Google واکشی می‌شود.
 
       اگر این تنظیم روی نادرست تنظیم شود، هیچ پیشنهادی واکشی یا نمایش داده نمی‌شود.</translation>
+<translation id="4759650396863318477">اجازه می‌دهد دوره زمانی را (به میلی‌ثانیه) تنظیم کنید که طی آن به کاربران اعلان می‌شود برای اعمال به‌روزرسانی درانتظار، <ph name="PRODUCT_NAME" /> باید راه‌اندازی مجدد شود یا اینکه دستگاه <ph name="PRODUCT_OS_NAME" /> باید بازراه‌اندازی شود.
+
+      طی این دوره زمانی، به‌طور مداوم درباره ضرورت به‌روزرسانی به کاربر اطلاع داده می‌شود. در دستگاه‌های <ph name="PRODUCT_OS_NAME" />، طبق خط‌مشی <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" /> ، در سینی سیستم اعلان بازراه‌اندازی ظاهر می‌شود. در مرورگر‌های <ph name="PRODUCT_NAME" />، بعد از گذشت یک‌سوم از دوره زمانی اعلان، برای نشان دادن لزوم راه‌اندازی مجدد، منوی برنامه تغییر می‌کند. این اعلان، بعداز گذشت دو‌سوم دوره زمانی اعلان و مجدداً بعد از اتمام کل دوره زمانی اعلان، تغییر رنگ می‌دهد. اعلان‌های دیگری که توسط خط‌مشی <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> فعال می‌شود، از همین زمان‌بندی پیروی می‌کند.
+
+      اگر تنظیم نشود، از دوره زمانی پیش‌فرض ۳۴۵۶۰۰۰۰۰ میلی‌ثانیه (چهار روز) برای دستگاه‌های <ph name="PRODUCT_OS_NAME" /> و ۶۰۴۸۰۰۰۰۰ میلی‌ثانیه (یک هفته) برای <ph name="PRODUCT_NAME" /> استفاده می‌شود.</translation>
 <translation id="4788252609789586009">قابلیت «تکمیل خودکار» <ph name="PRODUCT_NAME" /> را فعال می‌کند و به کاربران اجازه می‌دهد با استفاده از اطلاعات ذخیره‌شده قبلی، اطلاعات کارت اعتباری را به‌طور خودکار در فرم‌های وب تکمیل کنند.
 
       اگر این تنظیم غیرفعال شود، «تکمیل خودکار» هیچ‌گاه اطلاعات کارت اعتباری را پیشنهاد یا تکمیل نمی‌کند و یا اطلاعات تکمیلی کارت اعتباری را که شاید کاربر درحین مرور وب ارسال کند ذخیره نمی‌کند.
@@ -2186,6 +2211,15 @@
 <translation id="5208240613060747912">‏به شما امکان می‌دهد تا لیستی از الگوهای URL تعیین کنید که سایت‌هایی را مشخص می‌کند که اجازه نمایش اعلان را ندارند. اگر این قانون تنظیم نشده باقی بماند، از مقدار عمومی پیش‌فرض برای تمام سایت‌ها، خواه برگرفته از قانون "DefaultNotificationsSetting"، در صورت تنظیم بودن، یا پیکربندی شخصی کاربر، استفاده می‌شود.</translation>
 <translation id="5213038356678567351">وب‌سایت‌هایی که هرگز نباید موجب جابه‌جایی مرورگر شوند.</translation>
 <translation id="5219844027738217407">‏برای برنامه‌های Android، این خط‌مشی فقط بر میکروفون تأثیر می‌گذارد. وقتی این خط‌مشی روی درست تنظیم شده باشد، میکروفون برای همه برنامه‌های Android (بدون استثنا) صامت می‌شود.</translation>
+<translation id="5221394278852982313">‏به شما امکان می‌دهد فهرستی از نشانی‌های وب تنظیم کنید که مشخص می‌کند کدام سایت‌ها به‌طور خودکار اجازه خواهند داشت به دستگاه USB با فروشنده و شناسه‌های محصول مشخص دسترسی داشته باشند. برای اینکه خط‌مشی معتبر باشد، همه موارد موجود در فهرست باید هم حاوی دستگاه و هم نشانی وب باشند. همه موارد موجود در دستگاه‌ها می‌توانند فیلد شناسه فروشنده و شناسه محصول را به‌دست آورند. هر شناسه‌ای که جا می‌افتد به‌عنوان نویسه عام در نظر گرفته می‌شود؛ اما یک استثنا وجود دارد، اینکه اگر شناسه فروشنده مشخص نشود نمی‌توان شناسه محصول را هم مشخص کرد. درغیراین‌صورت، خط‌مشی نامعتبر خواهد بود و نادیده گرفته می‌شود.
+
+        مدل مجوز USB برای ارائه مجوز از نشانی وب سایت درخواست‌کننده («نشانی وب درخواست‌کننده») و نشانی وب سایت از سایت فریم بالا («نشانی وب جاسازی‌شونده») استفاده می‌کند تا به نشانی وب درخواست‌کننده اجازه دهد به دستگاه USB دسترسی داشته باشد. اگر سایت درخواست‌کننده در یک iframe بار شود، نشانی وب درخواست‌کننده می‌تواند متفاوت از نشانی وب جاسازی‌شونده باشد. بنابراین، فیلد نشانی وب می‌تواند حداکثر دو رشته نشانی وب جداشده با ویرگول داشته باشد تا به‌ترتیب نشانی وب درخواست‌کننده و جاسازی‌شونده مشخص شود. اگر فقط یک نشانی وب مشخص شود، وقتی نشانی وب سایت درخواست‌کننده با نشانی وب مشخص‌شده منطبق باشد، دسترسی به دستگاه‌های USB مربوطه ارائه خواهد شد (بدون توجه به وضعیت جاسازی‌). باید نشانی‌های وب معتبری در فیلد «urls» وارد شود، درغیراین‌صورت، این خط‌مشی نادیده گرفته خواهد شد.
+
+        اگر این خط‌مشی تنظیم نشود، مقدار پیش‌فرض عمومی برای همه سایت‌ها استفاده خواهد شد. اگر خط‌مشی «DefaultWebUsbGuardSetting» تنظیم شده باشد این مقدار از این خط‌مشی گرفته می‌شود، درغیراین‌صورت از پیکربندی شخصی کاربر به‌دست می‌آید.
+
+        الگوهای نشانی وب در این خط‌مشی نباید با الگوهای پیکربندی‌شده ازطریق WebUsbBlockedForUrls مغایرت داشته باشد. اگر مغایرتی وجود داشته باشد، این خط‌مشی نسبت به WebUsbBlockedForUrls و WebUsbAskForUrls در اولویت قرار خواهد گرفت.
+
+        مقادیر این خط‌مشی و خط‌مشی DeviceWebUsbAllowDevicesForUrls باهم ادغام می‌شود.</translation>
 <translation id="5228316810085661003">‏تأخیر ورود خودکار به سیستم حساب محلی دستگاه.
 
       اگر خط‌مشی |DeviceLocalAccountAutoLoginId| تنظیم نشده باشد، این خط‌مشی بی‌اثر خواهد بود. در غیر این‌صورت:
@@ -2897,6 +2931,20 @@
 
       اگر این خط‌مشی روی «عدم‌اجازه به کاربران برای مدیریت گواهینامه‌ها» تنظیم شود، کاربران نمی‌توانند گواهینامه‌ها را مدیریت کنند و فقط می‌توانند آن‌ها را ببینند.</translation>
 <translation id="6573305661369899995">تنظیم منبع خارجی از محدودیت‌های نشانی وب</translation>
+<translation id="6583851521569686409">‏فهرستی از چاپگرها را پیکربندی می‌کند.
+
+      این خط‌مشی به سرپرستان سیستم امکان می‌دهد پیکربندی‌های چاپگر را برای کاربرانشان ارائه کنند.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> و <ph name="PRINTER_DESCRIPTION" /> رشته‌هایی به‌شکل آزاد هستند که می‌توانند برای سهولت در انتخاب چاپگر، سفارشی شوند. <ph name="PRINTER_MANUFACTURER" /> و <ph name="PRINTER_MODEL" /> کار کاربران نهایی را در شناسایی چاپگر تسهیل می‌کنند. این دو مورد سازنده و مدل چاپگر را نشان می‌دهند. <ph name="PRINTER_URI" /> باید نشانی قابل‌دسترسی ازطریق رایانه کارخواه شامل <ph name="URI_SCHEME" />، <ph name="URI_PORT" />، و <ph name="URI_QUEUE" /> باشد. <ph name="PRINTER_UUID" /> اختیاری است. اگر ارائه شود، برای جلوگیری از تکرار چاپگرهای <ph name="ZEROCONF_DISCOVERY" /> استفاده می‌شود.
+
+      یا <ph name="PRINTER_EFFECTIVE_MODEL" /> باید حاوی نام چاپگر باشد یا<ph name="PRINTER_AUTOCONF" /> باید روی درست تنظیم شود. چاپگرهای دارای هردو یا فاقد هیچ ویژگی کنار گذاشته می‌شوند.
+
+      راه‌اندازی چاپگر با اولین استفاده کامل می‌شود.  تا از چاپگر استفاده نشود، فایل‌های PPD بارگیری نمی‌شوند.  پس از آن، فایل‌های PPD‌ که اغلب استفاده می‌شوند، در حافظه پنهان قرار می‌گیرند.
+
+      این خط‌مشی توانایی کاربران را برای پیکربندی چاپگر در دستگاه‌های فردی تحت‌تأثیر قرار نمی‌دهد.  این خط‌مشی به‌عنوان مکملی برای پیکربندی چاپگرها ازجانب کاربران مجزا درنظر گرفته شده است.
+
+      برای دستگاه‌های مدیریت‌شده با Active Directory، این خط‌مشی از گسترش <ph name="MACHINE_NAME_VARIABLE" /> به نام رایانه Active Directory یا رشته‌ای فرعی از آن پشتیبانی می‌کند. برای مثال، اگر نام رایانه <ph name="MACHINE_NAME_EXAMPLE" /> باشد، ۴ نویسه بعد از موقعیت ششم جایگزین <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> می‌شوند (به این شکل: <ph name="MACHINE_NAME_PART_EXAMPLE" />) . توجه کنید این موقعیت برمبنای صفر است.
+      </translation>
 <translation id="6598235178374410284">تصویر چهره‌نمای کاربر</translation>
 <translation id="6603004149426829878">همیشه هنگام شناسایی منطقه زمانی، سیگنال‌های مکان دردسترس به سرور ارسال شود</translation>
 <translation id="6628120204569232711">گزارش وضعیت ذخیره‌سازی</translation>
@@ -4218,6 +4266,8 @@
 <translation id="915194831143859291">اگر این خط‌مشی روی نادرست تنظیم شود یا پیکربندی نشود، <ph name="PRODUCT_OS_NAME" /> به کاربر اجازه می‌دهد دستگاه را خاموش کند.
       اگر این خط‌مشی روی درست تنظیم شود، <ph name="PRODUCT_OS_NAME" /> هنگامی که کاربر دستگاه را خاموش می‌کند، دوباره راه‌اندازی را آغاز می‌کند. <ph name="PRODUCT_OS_NAME" /> همه رخدادهای دکمه خاموش را در واسط کاربر با دکمه راه‌اندازی مجدد جایگزین می‌کند. اگر کاربر با استفاده از دکمه روشن/خاموش دستگاه را خاموش کند، دستگاه به‌صورت خودکار راه‌اندازی مجدد نمی‌شود، حتی اگر خط‌مشی فعال باشد.</translation>
 <translation id="9152473318295429890">فعال کردن پیشنهادهای زمینه‌ای صفحه‌های وب مرتبط</translation>
+<translation id="9153446010242995516">‏اگر نسخه OS جدیدتر از نسخه هدف است، به عقب برگردید و در نسخه هدف بمانید. درصورت امکان پیکربندی دستگاه (ازجمله اطلاعات کاربری شبکه) را ازطریق فرآیند عقب‌گرد انجام دهید، اما حتی اگر امکان بازیابی داده‌ها وجود نداشته باشد (به دلیل عدم پشتیبانی نسخه هدف از بازیابی داده یا وجود تغییری که با برگشت به عقب سازگار نباشد)، عقب‌گرد را با powerwash کامل انجام دهید.
+          در <ph name="PRODUCT_OS_NAME" /> نسخه ۷۵ و بالاتر پشتیبانی می‌شود. در کارخواه‌های قدیمی‌تر، این مقدار به معنی غیرفعال بودن عقب‌گرد است.</translation>
 <translation id="9158929520101169054">مجاز کردن ورود چندگانه به سیستم در مرورگر</translation>
 <translation id="9159126470527871268">‏به کاربران اعلان می‌شود برای اعمال به‌روزرسانی درانتظار، <ph name="PRODUCT_NAME" /> باید راه‌اندازی مجدد شود یا <ph name="PRODUCT_OS_NAME" /> بازراه‌اندازی شود.
 
diff --git a/components/policy/resources/policy_templates_gu.xtb b/components/policy/resources/policy_templates_gu.xtb
index 19a61736..96eec0f 100644
--- a/components/policy/resources/policy_templates_gu.xtb
+++ b/components/policy/resources/policy_templates_gu.xtb
@@ -1121,6 +1121,15 @@
           જ્યારે આ નીતિ સેટ કરેલ ન હોય, ત્યારે વધુ-ચોક્કસ નીતિઓના વર્તન પર પ્રભાવ પડતો નથી.</translation>
 <translation id="2987155890997901449">ARC ચાલુ કરે છે</translation>
 <translation id="2987227569419001736">વેબ Bluetooth APIનો ઉપયોગ નિયંત્રિત કરો</translation>
+<translation id="2990018289267778247">જો આ નીતિને true પર સેટ કરેલી હોય, તો ઍક્સેસિબિલિટી વિકલ્પો હંમેશાં સિસ્ટમ ટ્રે મેનૂમાં દેખાય છે.
+
+          જો આ નીતિ false પર સેટ કરેલી હોય, તો સિસ્ટમ ટ્રે મેનૂમાં ઍક્સેસિબિલિટી વિકલ્પો ક્યારેય દેખાતાં નથી.
+
+          જો તમે આ નીતિ સેટ કરશો, તો વપરાશકર્તાઓ તેને બદલી કે ઓવરરાઇડ કરી નહીં શકે.
+
+          જો આ નીતિ સેટ કર્યા વિનાની રહેવા દીધી છે, તો સિસ્ટમ ટ્રે મેનૂમાં ઍક્સેસિબિલિટી વિકલ્પો દેખાશે નહીં, પરંતુ સેટિંગ પેજ મારફતે વપરાશકર્તા ઍક્સેસિબિલિટી વિકલ્પો બતાવી શકે છે.
+
+          જ્યારે ઍક્સેસિબિલિટી સુવિધાઓ ચાલુ કરેલી હોય, (અન્ય માધ્યમ દ્વારા દા.ત. કોઈ કી સંયોજન દ્વારા), ઍક્સેસિબિલિટી વિકલ્પો હંમેશાં સિસ્ટમ ટ્રે મેનૂમાં દેખાશે.</translation>
 <translation id="3011301228198307065"><ph name="PRODUCT_NAME" />માં ડિફૉલ્ટ હોમ પેજ URLને ગોઠવે છે અને વપરાશકર્તાઓને તેને બદલવાથી અટકાવે છે.
 
           હોમ બટનને દબાવવાથી જે પેજ ખૂલે છે તેને હોમ પેજ કહેવાય છે. સ્ટાર્ટઅપ પર ખુલનારા પેજ RestoreOnStartup નીતિઓ દ્વારા નિયંત્રિત કરવામાં આવે છે.
@@ -1441,6 +1450,7 @@
         આ પૉલિસીનો ઉપયોગ ડેસ્કટૉપ પર મશીન સ્કોપ ક્લાઉડ પૉલિસી નોંધણી દ્વારા કરવામાં આવે છે અને તે Windows પર રજિસ્ટ્રી અથવા GPO, Mac પર plist અને Linux પર JSON પૉલિસી ફાઇલ દ્વારા સેટ કરી શકાય છે.</translation>
 <translation id="3660562134618097814">લોગિન દરમિયાન SAML IdP કુકીઝ સ્થાનાંતરિત કરવી</translation>
 <translation id="3701121231485832347"><ph name="MS_AD_NAME" /> દ્વારા મેનેજ કરાતા <ph name="PRODUCT_OS_NAME" /> ડિવાઇસ માટે ચોક્કસ સેટિંગનું નિયંત્રણ કરે છે.</translation>
+<translation id="3702518095257671450">રિમોટ પ્રમાણન</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (એક પંક્તિવાળા ફીલ્ડને ટાળવામાં આવેલ છે અને ભવિષ્યમાં કાઢી નાખવામાં આવશે. કૃપા કરીને નીચેના એકથી વધુ પંક્તિવાળા ટેક્સ્ટબૉક્સનો ઉપયોગ કરવાનું શરૂ કરો.)</translation>
 <translation id="3709266154059827597">એક્સ્ટેંશન સ્થાપના બ્લેકલિસ્ટને ગોઠવે છે</translation>
 <translation id="3711895659073496551">સસ્પેન્ડ કરો</translation>
@@ -1834,6 +1844,15 @@
 
 આ નીતિનું ફક્ત ત્યારે જ પાલન થાય છે જો 'DefaultSearchProviderEnabled' નીતિ ચાલુ હોય.</translation>
 <translation id="4285674129118156176">સંકળાયેલ ન હોય તેવા વપરાશકર્તાઓને ARCનો ઉપયોગ કરવાની મંજૂરી આપો</translation>
+<translation id="4289903996435140853">આપેલા વેન્ડર અને પ્રોડક્ટ IDs વડે USB ડિવાઇસ ઍક્સેસ કરવા માટે, કઈ સાઇટને ઑટોમેટિક રીતે પરવાનગી આપવામાં આવશે તે સૂચવતા URLsની સૂચિ સેટ કરવાની તમને પરવાનગી આપે છે. નીતિ માન્ય થાય તે માટે સૂચિમાંની દરેક આઇટમમાં ડિવાઇસ અને URLs એમ બન્ને હોવા જરૂરી છે. ડિવાઇસમાંની દરેક આઇટમમાં વેન્ડર ID અને પ્રોડક્ટ ID ફીલ્ડ હોઈ શકે છે. બાકાત રાખવામાં આવેલું કોઈપણ ID એક અપવાદ સાથે વાઇલ્ડ કાર્ડ તરીકે ગણવામાં આવે છે અને તે અપવાદ એ છે કે વેન્ડર ID પણ સૂચવવામાં ન આવ્યું હોય, તો પ્રોડક્ટ ID સૂચવી શકાય નહીં. નહિતર, નીતિ માન્ય નહીં હોય અને તે અવગણાશે.
+
+        USB પરવાનગી મૉડલ USB ડિવાઇસ ઍક્સેસ કરવા માટે વિનંતીકર્તા URLને પરવાનગી આપવા માટે વિનંતી કરનાર સાઇટના URL ("વિનંતીકર્તા URL") અને ઉચ્ચ-સ્તરીય ફ્રેમ સાઇટના URL ("શામેલકર્તા URL")નો ઉપયોગ કરે છે. જ્યારે વિનંતી કરનાર સાઇટ iframeમાં લોડ કરવામાં આવી હોય ત્યારે શામેલકર્તા URL કરતાં વિનંતીકર્તા URL જુદું હોઈ શકે છે. તેથી, "URLs" ફીલ્ડ વિનંતીકર્તા અને શામેલકર્તા URL અનુક્રમે સૂચિત કરવા માટે અલ્પવિરામ દ્વારા સીમાંકિત વધુમાં વધુ બે URL સ્ટ્રિંગ ધરાવી શકે છે. જો માત્ર એક જ URL સૂચિત કરવામાં આવ્યું હોય, તો જ્યારે વિનંતીકર્તા સાઇટનું URL આ URL સાથે મેળ ખાય ત્યારે શામેલ કરવાના સ્ટેટસને ધ્યાનમાં લીધા વિના, સંબંધિત USB ડિવાઇસ માટે ઍક્સેસ આપવામાં આવે છે. "URLs"માંના URLs માન્ય URLs હોવા જરૂરી છે, નહિતર નીતિ અવગણાશે.
+
+        જો આ નીતિ સેટ કર્યા વિના રાખી હશે, તો બધી સાઇટ માટે વૈશ્વિક ડિફૉલ્ટ મૂલ્યનો ઉપયોગ 'DefaultWebUsbGuardSetting' નીતિ સેટ કરેલી હશે તો તેના પરથી અથવા અન્યથા વપરાશકર્તાની વ્યક્તિગત ગોઠવણી પરથી કરવામાં આવશે.
+
+        WebUsbBlockedForUrls મારફત ગોઠવેલી પૅટર્ન સાથે આ નીતિમાંની URL પૅટર્ન વિસંગત ન હોવી જોઈએ. જો કોઈ વિસંગતિ હશે, તો આ નીતિ WebUsbBlockedForUrls અને WebUsbAskForUrlsની ઉપર પ્રાધાન્યતા મેળવશે.
+
+        આ નીતિ માટેના અને WebUsbAllowDevicesForUrls નીતિ માટેના મૂલ્યો એક સાથે મર્જ કરવામાં આવશે.</translation>
 <translation id="4298509794364745131">સ્પષ્ટ કરેલી ઍપની સૂચી જે એક નોંધ લેતી ઍપ તરીકે <ph name="PRODUCT_OS_NAME" />ના લૉક સ્ક્રીન પર ચાલુ કરી શકાય છે.
 
       જો લૉક સ્ક્રીન પર પસંદિત નોંધ-લેતી ઍપ ચાલુ કરેલી હોય, તો લૉક સ્ક્રીનમાં પસંદિત નોંધ લેતી ઍપ લૉન્ચ કરવા માટે UI ઘટક શામેલ રહેશે.
@@ -1985,6 +2004,7 @@
 <translation id="4639407427807680016">બ્લેકલિસ્ટમાંથી બાકાત રાખવા માટે મૂળ મેસેજિંગ હોસ્ટ્સના નામ</translation>
 <translation id="4650759511838826572">URL પ્રોટોકોલ યોજનાઓને બંધ કરો</translation>
 <translation id="465099050592230505">એન્ટરપ્રાઇઝ વેબ સ્ટોર URL (ટાળેલ)</translation>
+<translation id="4661889655253181651">કન્ટેન્ટ સેટિંગથી તમે વિશિષ્ટ પ્રકારનાં કન્ટેન્ટ (ઉદાહરણ તરીકે, કુકી, છબીઓ અથવા JavaScript)ને કેવી રીતે હેન્ડલ કરવી તેનો ઉલ્લેખ કરી શકો છો.</translation>
 <translation id="4665897631924472251">એક્સ્ટેન્શન સંચાલન સેટિંગ્સ</translation>
 <translation id="4668325077104657568">ડિફોલ્ટ છબી સેટિંગ</translation>
 <translation id="4670865688564083639">ન્યૂનતમ:</translation>
@@ -2029,6 +2049,11 @@
       આ સૂચનો Google સર્વરમાંથી રિમોટલી મેળવવામાં આવે છે.
 
       જો આ નીતિને false પર સેટ કરેલ હોય, તો સૂચનો મેળવવામાં અથવા પ્રદર્શિત કરવામાં આવશે નહીં.</translation>
+<translation id="4759650396863318477">તમને મિલીસેકન્ડમાં સમયગાળો સેટ કરવાની મંજૂરી આપે છે, જેમાં વપરાશકર્તાઓને <ph name="PRODUCT_NAME" /> ફરીથી લૉન્ચ કરવાની આવશ્યકતા વિશે અથવા કોઈ <ph name="PRODUCT_OS_NAME" />ના ડિવાઇસ પર બાકી અપડેટ લાગુ કરવાનું ફરીથી શરૂ કરવાની આવશ્યકતા વિશે જાણ કરવામાં આવે છે.
+
+      આ સમયગાળા દરમ્યાન, વપરાશકર્તાને અપડેટની આવશ્યકતા વિશે નિરંતર જાણ કરતા રહેવામાં આવે છે.<ph name="PRODUCT_OS_NAME" /> ડિવાઇસ માટે, <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" /> નીતિ અનુસાર સિસ્ટમ ટ્રેમાં ફરી શરૂ કરવાનું નોટિફિકેશન દેખાય છે. <ph name="PRODUCT_NAME" /> બ્રાઉઝર માટે, જ્યારે નોટિફિકેશનના સમયગાળાનો એક તૃતીયાંશ સમય પસાર થાય, ત્યારે ઍપ મેનૂમાં ફરીથી લૉન્ચ કરવાની આવશ્યકતા દર્શાવવા માટે ફેરફાર થાય છે. આ નોટિફિકેશનનો રંગ સમયગાળાના બે તૃતીયાંશ સમય પસાર થાય ત્યારે અને ફરી જ્યારે સંપૂર્ણ સમયગાળો પૂર્ણ થાય ત્યારે ફરી બદલાય છે <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> નીતિ દ્વારા ચાલુ કરેલું અતિરિક્ત નોટિફિકેશન આ જ શેડ્યૂલ ફૉલો કરે છે.
+
+      જો સેટ કરવામાં આવ્યું ન હોય, તો <ph name="PRODUCT_OS_NAME" /> ડિવાઇસ માટે 345600000 મિલીસેકન્ડ (ચાર દિવસ)ના અને<ph name="PRODUCT_NAME" /> માટે 604800000 મિલીસેકન્ડ (એક અઠવાડિયા)ના ડિફૉલ્ટ સમયગાળાનો ઉપયોગ કરવામાં આવે છે.</translation>
 <translation id="4788252609789586009"><ph name="PRODUCT_NAME" />ની સ્વતઃભરણ સુવિધા ચાલુ કરે છે અને વપરાશકર્તાઓને પહેલાં સંગ્રહ કરેલી માહિતીનો ઉપયોગ કરીને ક્રેડિટ કાર્ડ તથા સરનામાની માહિતી આપમેળે ભરાય તે માટેની મંજૂરી આપે છે.
 
       જો આ સેટિંગ બંધ કરેલ હશે, તો સ્વતઃભરણ ક્યારેય સૂચન નહીં આપે, ક્રેડિટ કાર્ડની માહિતી નહીં ભરે અથવા વેબને બ્રાઉઝ કરતી વખતે વપરાશકર્તાએ સબમિટ કરી હોઈ શકે તેવી ક્રેડિટ કાર્ડ વિશેની વધારાની માહિતી નહીં સાચવે.
@@ -2240,6 +2265,15 @@
           જો આ નીતિ સેટ કર્યા વિના છોડી હોય તો 'DefaultNotificationsSetting' નીતિએ જો સેટ કરી હોય તો તે, અથવા વપરાશકર્તાની વ્યક્તિગત ગોઠવણીમાંથી વૈશ્વિક ડિફૉલ્ટ મૂલ્યનો ઉપયોગ તમામ સાઇટ માટે કરવામાં આવશે.</translation>
 <translation id="5213038356678567351">વેબસાઇટ કે જેણે ક્યારેય બ્રાઉઝર સ્વિચ કરવું જોઈએ નહીં.</translation>
 <translation id="5219844027738217407">Android ઍપ્લિકેશનો માટે, આ નીતિ ફક્ત માઇક્રોફોનને પ્રભાવિત કરે છે. જ્યારે આ નીતિ true પર સેટ કરેલ હોય, ત્યારે વિના કોઈ અપવાદે તમામ Android ઍપ્લિકેશનો માટે માઇક્રોફોન મ્યૂટ કરવામાં આવે છે.</translation>
+<translation id="5221394278852982313">આપેલા વેન્ડર અને પ્રોડક્ટ IDs વડે USB ડિવાઇસ ઍક્સેસ કરવા માટે, કઈ સાઇટને ઑટોમેટિક રીતે પરવાનગી આપવામાં આવશે તે સૂચવતા URLની સૂચિ સેટ કરવાની તમને પરવાનગી આપે છે. નીતિ માન્ય થાય તે માટે સૂચિમાંની દરેક આઇટમમાં ડિવાઇસ અને URLs એમ બન્ને હોવા જરૂરી છે. ડિવાઇસમાં રહેલી દરેક આઇટમમાં વેન્ડર ID અને પ્રોડક્ટ ID ફીલ્ડ હોઈ શકે છે. બાકાત રાખવામાં આવેલું કોઈપણ ID એક અપવાદ સાથે વાઇલ્ડ કાર્ડ તરીકે ગણવામાં આવે છે અને તે અપવાદ એ છે કે વેન્ડર ID પણ સૂચવવામાં ન આવ્યું હોય, તો પ્રોડક્ટ ID સૂચવી શકાય નહીં. નહિતર, નીતિ માન્ય નહીં હોય અને તે અવગણાશે.
+
+        USB પરવાનગી મૉડલ USB ડિવાઇસ ઍક્સેસ કરવા માટે વિનંતીકર્તા URLને પરવાનગી આપવા માટે વિનંતી કરનાર સાઇટના URL ("વિનંતીકર્તા URL") અને ઉચ્ચ-સ્તરીય ફ્રેમ સાઇટના URL ("શામેલકર્તા URL")નો ઉપયોગ કરે છે. જ્યારે વિનંતી કરનાર સાઇટ iframeમાં લોડ કરવામાં આવી હોય ત્યારે શામેલકર્તા URL કરતાં વિનંતીકર્તા URL જુદું હોઈ શકે છે. તેથી, "URLs" ફીલ્ડ વિનંતીકર્તા અને શામેલકર્તા URL અનુક્રમે સૂચિત કરવા માટે અલ્પવિરામ દ્વારા સીમાંકિત વધુમાં વધુ બે URL સ્ટ્રિંગ ધરાવી શકે છે. જો માત્ર એક જ URL સૂચિત કરવામાં આવ્યું હોય, તો જ્યારે વિનંતીકર્તા સાઇટનું URL આ URL સાથે મેળ ખાય ત્યારે શામેલ કરવાના સ્ટેટસને ધ્યાનમાં લીધા વિના, સંબંધિત USB ડિવાઇસ માટે ઍક્સેસ આપવામાં આવે છે. "URLs"માં રહેલાં URLs માન્ય URLs હોવા જરૂરી છે, નહિતર નીતિ અવગણાશે.
+
+        જો આ નીતિ સેટ કર્યા વિના રાખી હશે, તો બધી સાઇટ માટે વૈશ્વિક ડિફૉલ્ટ મૂલ્યનો ઉપયોગ 'DefaultWebUsbGuardSetting' નીતિ સેટ કરેલી હશે તો તેના પરથી અથવા અન્યથા વપરાશકર્તાની વ્યક્તિગત ગોઠવણી પરથી કરવામાં આવશે.
+
+        WebUsbBlockedForUrls મારફત ગોઠવેલી પૅટર્ન સાથે આ નીતિમાંની URL પૅટર્ન વિસંગત ન હોવી જોઈએ. જો કોઈ વિસંગતિ હશે, તો આ નીતિ WebUsbBlockedForUrls અને WebUsbAskForUrlsની ઉપર પ્રાધાન્યતા મેળવશે.
+
+        આ નીતિ માટેના અને DeviceWebUsbAllowDevicesForUrls નીતિ માટેના મૂલ્યો એક સાથે મર્જ કરવામાં આવશે.</translation>
 <translation id="5228316810085661003">ડિવાઇસ-લોકેલ એકાઉન્ટના ઑટો-લૉગ ઇનમાં વિલંબ.
       જો |DeviceLocalAccountAutoLoginId| નીતિ સેટ કરેલી નથી, તો આ નીતિ પર કોઈ અસર થતી નથી. અન્યથા:
 
@@ -2976,6 +3010,21 @@
 
       જો આ પૉલિસીને "વપરાશકર્તાઓને બધા પ્રમાણપત્રો મેનેજ કરવાની મંજૂરી આપશો નહીં" પર સેટ કરેલી હોય, તો વપરાશકર્તા પ્રમાણપત્રોને મેનેજ કરી શકશે નહીં, તેઓ માત્ર પ્રમાણપત્રોને જોઈ શકશે.</translation>
 <translation id="6573305661369899995">URL પ્રતિબંધોનો બાહ્ય સ્રોત સેટ કરો</translation>
+<translation id="6583851521569686409">પ્રિન્ટરની સૂચિ ગોઠવે છે.
+
+      આ નીતિ વ્યવસ્થાપકોને તેમના વપરાશકર્તાઓ માટે પ્રિન્ટરની ગોઠવણીઓ પૂરી પાડવાની
+       મંજૂરી આપે છે.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> અને <ph name="PRINTER_DESCRIPTION" /> મુક્ત પ્રકારની સ્ટ્રિંગ છે જેને પ્રિન્ટરની સરળ પસંદગી માટે કસ્ટમાઇઝ કરી શકાય છે. <ph name="PRINTER_MANUFACTURER" /> અને <ph name="PRINTER_MODEL" /> વાપરનાર માટે પ્રિન્ટરની ઓળખ સરળ બનાવે છે. તે પ્રિન્ટરના ઉત્પાદક અને મૉડલ દર્શાવે છે. <ph name="PRINTER_URI" /> ઍડ્રેસ ક્લાયન્ટના કમ્પ્યુટર પરથી પહોંચી શકાય એવું હોવું જોઈએ, જેમાં <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> અને <ph name="URI_QUEUE" />નો સમાવેશ હોવો જોઈએ. <ph name="PRINTER_UUID" /> વૈકલ્પિક છે. જો આપવામાં આવ્યું હોય, તો તે <ph name="ZEROCONF_DISCOVERY" /> પ્રિન્ટરની ડુપ્લિકેટ ડિલીટ કરવામાં સહાય કરે છે.
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" />માં પ્રિન્ટરનું નામ હોવું જોઈએ અથવા <ph name="PRINTER_AUTOCONF" />ને true પર સેટ કરેલું હોવું જોઈએ. બન્ને પ્રોપર્ટી ધરાવતા અથવા કોઈપણ પ્રોપર્ટી ધરાવતા ન હોય તેવા પ્રિન્ટરને અવગણવામાં આવશે.
+
+      પ્રિન્ટરના પ્રથમ ઉપયોગ સમયે એનું સેટઅપ પૂરું થાય છે.  પ્રિન્ટરનો ઉપયોગ ન થાય ત્યાં સુધી PPD ડાઉનલોડ કરવામાં આવતી નથી.  ત્યાર પછી, વારંવાર ઉપયોગમાં લેવાતી PPDને કૅશ મેમરીમાં સાચવવામાં આવે છે.
+
+      વપરાશકર્તાઓ દરેક ડિવાઇસ પર પ્રિન્ટરની ગોઠવણી કરી શકે કે ન કરી શકે એની આ નીતિ ઉપર કોઈ અસર થતી નથી.  એનો હેતુ દરેક વપરાશકર્તાઓના પ્રિન્ટરની ગોઠવણીના સહાયક તરીકે હોવાનો છે.
+
+      Active Directory દ્વારા મેનેજ કરાયેલ ડિવાઇસ માટે, આ નીતિ <ph name="MACHINE_NAME_VARIABLE" />નું Active Directory મશીન નામ અથવા એની સબસ્ટ્રિંગમાં વિસ્તરણ કરવામાં સહાય કરે છે. ઉદાહરણ તરીકે, જો મશીનનું નામ <ph name="MACHINE_NAME_EXAMPLE" />હોય, તો <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> આ એના છઠ્ઠા અક્ષર પછીના 4 અક્ષરને બદલશે, દા.ત. <ph name="MACHINE_NAME_PART_EXAMPLE" />. નોંધ લો કે ગણતરી શૂન્યથી શરૂ થાય છે.
+      </translation>
 <translation id="6598235178374410284">વપરાશકર્તા અવતાર છબી</translation>
 <translation id="6603004149426829878">સમયઝોનનો ઉકેલ કરતી વખતે સર્વરને હંમેશાં કોઈપણ ઉપલબ્ધ સ્થાન સંકેતો મોકલો</translation>
 <translation id="6628120204569232711">સ્ટોરેજ સ્ટેટસની જાણ કરો</translation>
@@ -4338,6 +4387,8 @@
 <translation id="915194831143859291">જો આ નીતિ ફોલ્સ પર સેટ કરવામાં આવી હોય અથવા ગોઠવવામાં ન આવી હોય, તો <ph name="PRODUCT_OS_NAME" /> વપરાશકર્તાને ડિવાઇસને શટ ડાઉન કરવાની મંજૂરી આપે છે.
       જો આ નીતિ ટ્રુ પર સેટ કરવામાં આવી હોય, તો જ્યારે વપરાશકર્તા ડિવાઇસને શટ ડાઉન કરશે ત્યારે <ph name="PRODUCT_OS_NAME" /> એક રીબૂટ ટ્રિગર કરશે. <ph name="PRODUCT_OS_NAME" />, શટડાઉન બટનોની તમામ ઘટનાઓને UI માં રીબૂટ બટનો દ્વારા બદલે છે. જો વપરાશકર્તા પાવર બટનનો ઉપયોગ કરીને ડિવાઇસને શટ ડાઉન કરે છે, તો નીતિ સક્ષમ હોય તો પણ તે ઑટોમૅટિક રીતે રીબૂટ થશે નહીં.</translation>
 <translation id="9152473318295429890">સંબંધિત વેબ પેજના સંદર્ભગત સૂચનો ચાલુ કરો</translation>
+<translation id="9153446010242995516">જો OS વર્ઝન લક્ષ્ય કરતાં નવું હોય, તો લક્ષ્ય વર્ઝન પર રોલબૅક કરો અને તેના પર રહો. શક્ય હોય, તો રોલબૅક પ્રક્રિયા મારફત (નેટવર્ક લૉગ ઇન વિગતો સહિતની) ડિવાઇસ-સ્તરની ગોઠવણી કરવાનો પ્રયાસ કરો, પરંતુ, ડેટા પહેલાંના જેવો કરવો શક્ય ન હોય, તો પણ સંપૂર્ણ પાવરવોશ સાથે રોલબૅક કરો (કારણ કે લક્ષ્ય વર્ઝનમાં ડેટા પહેલાંના જેવો કરવાની સુવિધા નથી અથવા પાછળના અસંગત ફેરફારને કારણે).
+          <ph name="PRODUCT_OS_NAME" /> વર્ઝન 75 અને તેનાથી ઉપરના પર વર્ઝન પર સુવિધા ઉપલબ્ધ છે. જૂના ક્લાયન્ટ માટે, આ મૂલ્યનો અર્થ એ છે કે રોલબૅક બંધ કર્યું છે.</translation>
 <translation id="9158929520101169054">બ્રાઉઝરમાં બહુવિધ સાઇન ઇનની મંજૂરી આપો</translation>
 <translation id="9159126470527871268">વપરાશકર્તાઓને સૂચિત કરો કે બાકી અપડેટને લાગુ કરવા માટે <ph name="PRODUCT_NAME" />ને ફરીથી લૉન્ચ કરવું અથવા<ph name="PRODUCT_OS_NAME" />ને ફરી શરૂ કરવું આવશ્યક છે.
 
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 3b69551..e3c736c 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -1095,6 +1095,15 @@
           Jika kebijakan ini tidak ditetapkan, perilaku kebijakan yang lebih spesifik tetap tidak terpengaruh.</translation>
 <translation id="2987155890997901449">Aktifkan ARC</translation>
 <translation id="2987227569419001736">Mengontrol penggunaan API Bluetooth Web</translation>
+<translation id="2990018289267778247">Jika kebijakan ini ditetapkan ke True, opsi Aksesibilitas akan selalu muncul di menu baki sistem.
+
+          Jika kebijakan ini ditetapkan ke False, opsi Aksesibilitas tidak akan muncul di menu baki sistem.
+
+          Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya.
+
+          Jika kebijakan ini tidak ditetapkan, opsi Aksesibilitas tidak akan muncul di menu baki sistem, tetapi pengguna dapat menyebabkan munculnya opsi Aksesibilitas melalui halaman Setelan.
+
+          Jika fitur aksesibilitas diaktifkan (dengan cara lain, misalnya dengan kombinasi kunci), opsi Aksesibilitas akan selalu muncul di menu baki sistem.</translation>
 <translation id="3011301228198307065">Mengonfigurasi URL halaman beranda default di <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubahnya.
 
           Halaman beranda adalah halaman yang dibuka oleh tombol Beranda. Halaman yang terbuka saat browser diluncurkan dikontrol oleh kebijakan RestoreOnStartup.
@@ -1410,6 +1419,7 @@
         Kebijakan ini digunakan oleh pendaftaran kebijakan machine scope cloud di desktop dan dapat disetel oleh Registry atau GPO di Windows, plist di Mac, dan file kebijakan JSON di Linux.</translation>
 <translation id="3660562134618097814">Transfer cookie SAML IdP saat proses masuk.</translation>
 <translation id="3701121231485832347">Mengontrol setelan khusus perangkat <ph name="PRODUCT_OS_NAME" />.yang dikelola <ph name="MS_AD_NAME" />.</translation>
+<translation id="3702518095257671450">Pengesahan jarak jauh</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (Kolom 1 baris sudah tidak digunakan lagi dan akan dihapus di masa mendatang. Mulai gunakan kotak teks multibaris di bawah.)</translation>
 <translation id="3709266154059827597">Konfigurasikan daftar penginstalan ekstensi yang tidak diizinkan</translation>
 <translation id="3711895659073496551">Tangguhkan</translation>
@@ -1803,6 +1813,15 @@
 
           Kebijakan ini hanya dipatuhi jika kebijakan 'DefaultSearchProviderEnabled' diaktifkan.</translation>
 <translation id="4285674129118156176">Mengizinkan pengguna yang tak terafiliasi menggunakan ARC</translation>
+<translation id="4289903996435140853">Memungkinkan Anda menyetel daftar URL yang menentukan situs mana yang akan diberi izin secara otomatis untuk mengakses perangkat USB dengan ID produk dan vendor tertentu. Setiap item di daftar harus berisi URL dan perangkat agar kebijakan menjadi valid. Setiap item di perangkat dapat berisi kolom ID produk dan ID vendor. ID yang dihapus diperlakukan sebagai karakter pengganti dengan satu pengecualian, dan pengecualian tersebut adalah ID produk tidak dapat ditentukan jika ID vendor juga tidak ditentukan. Jika ditentukan, kebijakan akan menjadi tidak valid dan akan diabaikan.
+
+        Model izin USB menggunakan URL situs yang meminta ("URL yang meminta") dan URL situs bingkai level teratas ("URL sematan") untuk memberikan izin kepada URL yang meminta untuk mengakses perangkat USB. URL yang meminta mungkin berbeda dengan URL sematan saat situs yang meminta dimuat dalam iframe. Oleh karena itu, kolom "URL" dapat berisi hingga dua string URL yang dipisahkan dengan koma, untuk menentukan masing-masing URL yang meminta dan URL sematan. Jika hanya ada satu URL yang ditentukan, maka akses ke perangkat USB yang sesuai akan diberikan saat URL situs yang meminta cocok dengan URL ini, terlepas dari status sematannya. URL dalam "URL" harus berupa URL yang valid. Jika tidak, kebijakan akan diabaikan.
+
+        Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk seluruh situs, yaitu dari kebijakan 'DefaultWebUsbGuardSetting' jika disetel, atau dari konfigurasi pribadi pengguna.
+
+        Pola URL di kebijakan ini tidak boleh bertentangan dengan pola URL yang dikonfigurasi melalui WebUsbBlockedForUrls. Jika bertentangan, kebijakan ini akan lebih diutamakan daripada WebUsbBlockedForUrls dan WebUsbAskForUrls.
+
+        Nilai untuk kebijakan ini dan kebijakan WebUsbAllowDevicesForUrls digabungkan menjadi satu.</translation>
 <translation id="4298509794364745131">Menentukan daftar aplikasi yang dapat diaktifkan sebagai aplikasi pencatat di layar kunci <ph name="PRODUCT_OS_NAME" />.
 
       Jika aplikasi pencatat yang dipilih diaktifkan di layar kunci, layar kunci akan menampilkan elemen UI untuk peluncuran aplikasi pencatat yang dipilih.
@@ -1946,6 +1965,7 @@
 <translation id="4639407427807680016">Nama hosting perpesanan asli untuk dikeluarkan dari daftar hitam</translation>
 <translation id="4650759511838826572">Nonaktifkan skema protokol URL</translation>
 <translation id="465099050592230505">URL toko web perusahaan (tidak digunakan)</translation>
+<translation id="4661889655253181651">Setelan konten memungkinkan Anda menentukan bagaimana konten jenis tertentu (misalnya, Cookie, Gambar, atau JavaScript) ditangani.</translation>
 <translation id="4665897631924472251">Setelan pengelolaan ekstensi</translation>
 <translation id="4668325077104657568">Setelan gambar default</translation>
 <translation id="4670865688564083639">Minimum:</translation>
@@ -1990,6 +2010,11 @@
       Saran ini diambil dari jarak jauh dari server Google.
 
       Jika setelan ini disetel ke false, saran tidak akan diambil atau ditampilkan.</translation>
+<translation id="4759650396863318477">Memungkinkan Anda menyetel jangka waktu, dalam milidetik, untuk memberi tahu pengguna bahwa <ph name="PRODUCT_NAME" /> harus diluncurkan ulang atau bahwa perangkat <ph name="PRODUCT_OS_NAME" /> harus dimulai ulang untuk menerapkan update yang tertunda.
+
+      Selama jangka waktu ini, pengguna akan berulang kali diberi tahu tentang perlunya update. Untuk perangkat <ph name="PRODUCT_OS_NAME" />, notifikasi mulai ulang akan muncul di baki sistem sesuai dengan kebijakan <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />. Untuk browser <ph name="PRODUCT_NAME" />, menu aplikasi berubah untuk menunjukkan bahwa peluncuran ulang diperlukan setelah sepertiga periode notifikasi berlalu. Warna notifikasi akan berubah setelah dua pertiga periode notifikasi berlalu, dan berubah lagi setelah seluruh periode notifikasi berlalu. Notifikasi tambahan yang diaktifkan oleh kebijakan <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> mengikuti jadwal yang sama seperti ini.
+
+      Jika tidak disetel, periode default 345600000 milidetik (empat hari) digunakan untuk perangkat <ph name="PRODUCT_OS_NAME" /> dan 604800000 milidetik (satu minggu) untuk <ph name="PRODUCT_NAME" />.</translation>
 <translation id="4788252609789586009">Mengaktifkan fitur IsiOtomatis <ph name="PRODUCT_NAME" /> dan memungkinkan pengguna mengisi otomatis informasi kartu kredit di formulir web menggunakan informasi yang disimpan sebelumnya.
 
       Jika setelan ini dinonaktifkan, IsiOtomatis tidak akan menyarankan atau mengisi informasi kartu kredit, serta tidak akan menyimpan informasi kartu kredit tambahan yang mungkin dikirim oleh pengguna saat browsing web.
@@ -2181,6 +2206,15 @@
 <translation id="5208240613060747912">Memungkinkan Anda menyetel daftar pola url yang menentukan situs yang tidak diizinkan untuk menampilkan pemberitahuan. Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs, baik dari kebijakan 'DefaultNotificationsSetting', jika disetel, atau konfigurasi pribadi pengguna.</translation>
 <translation id="5213038356678567351">Situs yang seharusnya tidak pernah memicu pengalihan browser.</translation>
 <translation id="5219844027738217407">Untuk aplikasi Android, kebijakan ini hanya memengaruhi mikrofon. Jika kebijakan disetel ke true, mikrofon akan dibisukan untuk semua aplikasi Android, tanpa pengecualian.</translation>
+<translation id="5221394278852982313">Memungkinkan Anda menyetel daftar URL yang menentukan situs mana yang akan diberi izin secara otomatis untuk mengakses perangkat USB dengan ID produk dan vendor tertentu. Setiap item di daftar harus berisi URL dan perangkat agar kebijakan menjadi valid. Setiap item di perangkat dapat berisi kolom ID produk dan ID vendor. ID yang dihapus diperlakukan sebagai karakter pengganti dengan satu pengecualian, dan pengecualian tersebut adalah ID produk tidak dapat ditentukan jika ID vendor juga tidak ditentukan. Jika ditentukan, kebijakan akan menjadi tidak valid dan akan diabaikan.
+
+        Model izin USB menggunakan URL situs yang meminta ("URL yang meminta") dan URL situs bingkai level teratas ("URL sematan") untuk memberikan izin kepada URL yang meminta untuk mengakses perangkat USB. URL yang meminta mungkin berbeda dengan URL sematan saat situs yang meminta dimuat dalam iframe. Oleh karena itu, kolom "URL" dapat berisi hingga dua string URL yang dipisahkan dengan koma, untuk menentukan masing-masing URL yang meminta dan URL sematan. Jika hanya ada satu URL yang ditentukan, maka akses ke perangkat USB yang sesuai akan diberikan saat URL situs yang meminta cocok dengan URL ini, terlepas dari status sematannya. URL dalam "URL" harus berupa URL yang valid. Jika tidak, kebijakan akan diabaikan.
+
+        Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk seluruh situs, yaitu dari kebijakan 'DefaultWebUsbGuardSetting' jika disetel, atau dari konfigurasi pribadi pengguna.
+
+        Pola URL di kebijakan ini tidak boleh bertentangan dengan pola URL yang dikonfigurasi melalui WebUsbBlockedForUrls. Jika bertentangan, kebijakan ini akan lebih diutamakan daripada WebUsbBlockedForUrls dan WebUsbAskForUrls.
+
+        Nilai untuk kebijakan ini dan kebijakan DeviceWebUsbAllowDevicesForUrls digabungkan menjadi satu.</translation>
 <translation id="5228316810085661003">Penundaan login otomatis akun lokal perangkat.
 
       Jika kebijakan |DeviceLocalAccountAutoLoginId| tidak ditetapkan, kebijakan ini tidak akan berpengaruh. Sebaliknya:
@@ -2881,6 +2915,21 @@
 
       Jika kebijakan ini disetel ke ''Jangan izinkan pengguna mengelola sertifikat'', pengguna tidak dapat mengelola sertifikat, mereka hanya dapat melihat sertifikat.</translation>
 <translation id="6573305661369899995">Setel sumber eksternal batasan URL</translation>
+<translation id="6583851521569686409">Mengonfigurasi daftar printer.
+
+      Kebijakan ini memungkinkan administrator memberikan konfigurasi printer
+      untuk pengguna.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> dan <ph name="PRINTER_DESCRIPTION" /> adalah string format bebas yang dapat disesuaikan untuk memudahkan pemilihan printer. <ph name="PRINTER_MANUFACTURER" /> dan <ph name="PRINTER_MODEL" /> diberikan agar pengguna akhir mudah mengidentifikasi printer. Keduanya mewakili produsen dan model printer. <ph name="PRINTER_URI" /> harus berupa alamat yang dapat dijangkau dari komputer klien termasuk <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, dan <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> bersifat opsional. Jika tersedia, akan digunakan untuk membantu menghapus duplikat printer <ph name="ZEROCONF_DISCOVERY" />.
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" /> harus mengandung nama printer atau <ph name="PRINTER_AUTOCONF" /> harus ditetapkan ke true. Printer dengan kedua atau tanpa properti apa pun akan diabaikan.
+
+      Penyiapan printer diselesaikan pada saat penggunaan printer yang pertama.  PPD tidak didownload sebelum printer digunakan.  Setelah waktu tersebut, PPD yang sering digunakan akan disimpan dalam cache.
+
+      Kebijakan ini tidak memengaruhi kemampuan pengguna untuk mengonfigurasi printer di tiap perangkat.  Kebijakan ini ditujukan sebagai tambahan untuk konfigurasi printer yang diberikan oleh tiap pengguna.
+
+      Untuk perangkat yang dikelola Active Directory, kebijakan ini mendukung perluasan <ph name="MACHINE_NAME_VARIABLE" /> ke nama mesin Active Directory atau substring-nya. Misalnya, jika nama mesinnya adalah <ph name="MACHINE_NAME_EXAMPLE" />, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> akan diganti dengan 4 karakter yang dimulai setelah posisi ke-6, yaitu <ph name="MACHINE_NAME_PART_EXAMPLE" />. Perlu diketahui bahwa posisi mulai dari nol.
+      </translation>
 <translation id="6598235178374410284">Gambar avatar pengguna</translation>
 <translation id="6603004149426829878">Selalu kirim sinyal lokasi yang tersedia ke server sembari menentukan zona waktu</translation>
 <translation id="6628120204569232711">Laporkan status penyimpanan</translation>
@@ -4172,6 +4221,8 @@
 <translation id="915194831143859291">Jika kebijakan ini disetel ke False atau tidak dikonfigurasi, <ph name="PRODUCT_OS_NAME" /> akan memungkinkan pengguna menonaktifkan perangkat.
       Jika kebijakan ini disetel ke True, <ph name="PRODUCT_OS_NAME" /> akan memicu boot ulang ketika pengguna mematikan perangkat. <ph name="PRODUCT_OS_NAME" /> menggantikan semua kemunculan tombol matikan di antarmuka pengguna dengan tombol boot ulang. Jika pengguna mematikan perangkat menggunakan tombol daya, perangkat tidak otomatis melakukan boot ulang, meskipun kebijakan ini diaktifkan.</translation>
 <translation id="9152473318295429890">Aktifkan saran kontekstual halaman terkait</translation>
+<translation id="9153446010242995516">Roll back dan tetap menggunakan versi target jika versi OS lebih baru dari. Mencoba untuk menerapkan konfigurasi tingkat perangkat (termasuk kredensial jaringan) melalui proses rollback, jika memungkinkan, tetapi melakukan rollback dengan powerwash penuh meskipun pemulihan data tidak memungkinkan (karena versi target tidak mendukung pemulihan data atau karena perubahan tidak kompatibel untuk dikembalikan).
+          Didukung pada <ph name="PRODUCT_OS_NAME" /> versi 75 dan yang lebih baru. Untuk klien yang lebih lama, nilai ini berarti rollback dinonaktifkan.</translation>
 <translation id="9158929520101169054">Izinkan Login Multipel Dalam Browser</translation>
 <translation id="9159126470527871268">Beri tahu pengguna bahwa <ph name="PRODUCT_NAME" /> harus diluncurkan ulang atau <ph name="PRODUCT_OS_NAME" /> harus dimulai ulang untuk menerapkan update yang tertunda.
 
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index c0e0f800..62610b1 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -1102,6 +1102,15 @@
           このポリシーが未設定の場合、より具体的なポリシーの動作は無視されます。</translation>
 <translation id="2987155890997901449">ARC を有効にする</translation>
 <translation id="2987227569419001736">Web Bluetooth API の使用を管理する</translation>
+<translation id="2990018289267778247">このポリシーが true の場合、通知領域(システムトレイ)メニューにユーザー補助オプションが常に表示されます。
+
+          このポリシーが false の場合、通知領域(システムトレイ)メニューにユーザー補助オプションは表示されません。
+
+          このポリシーを設定した場合、ユーザーによる変更やオーバーライドはできません。
+
+          このポリシーが未設定の場合、通知領域(システムトレイ)メニューにユーザー補助オプションは表示されませんが、ユーザーは [設定] ページからユーザー補助オプションの表示を指定できます。
+
+          ユーザー補助機能を(キーの組み合わせなどの他の手段によって)有効にした場合は、通知領域(システムトレイ)メニューにユーザー補助オプションが常に表示されます。</translation>
 <translation id="3011301228198307065"><ph name="PRODUCT_NAME" /> にデフォルトのホームページの URL を設定するとともに、ユーザーがこの設定を変更できないようにします。
 
           ホームページとはホームボタンで開くページです。起動時に開くページは RestoreOnStartup ポリシーで制御します。
@@ -1415,6 +1424,7 @@
         このポリシーは、デスクトップ上のマシンスコープのクラウド ポリシー登録で使用され、Windows のレジストリまたは GPO、Mac の plist、Linux の JSON ポリシー ファイルで設定できます。</translation>
 <translation id="3660562134618097814">ログイン時に SAML IdP Cookie を転送する</translation>
 <translation id="3701121231485832347"><ph name="MS_AD_NAME" /> による管理対象の <ph name="PRODUCT_OS_NAME" /> デバイスに固有の設定を制御します。</translation>
+<translation id="3702518095257671450">リモート認証</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" />(1 行入力欄はサポートを終了し、今後削除する予定です。下の複数行入力欄を使用するようにしてください)。</translation>
 <translation id="3709266154059827597">拡張機能インストールのブラックリストを設定する</translation>
 <translation id="3711895659073496551">停止する</translation>
@@ -1800,6 +1810,15 @@
 
           このポリシーは「DefaultSearchProviderEnabled」ポリシーが有効な場合にのみ適用されます。</translation>
 <translation id="4285674129118156176">外部のユーザーに ARC の使用を許可する</translation>
+<translation id="4289903996435140853">指定したベンダー ID と製品 ID の USB デバイスへのアクセスを自動的に許可するサイトを、URL のリストで設定します。このポリシーが有効になるためには、リストの各項目でデバイスと URL の両方を指定する必要があります。デバイスの各項目にはベンダー ID と製品 ID を指定できます。指定されていない ID はワイルドカードとして扱われますが、例外として、製品 ID を指定するのであればベンダー ID も指定する必要があります。ベンダー ID の指定なしで製品 ID のみを指定した場合、このポリシーは無効となり、無視されます。
+
+        USB のアクセス許可モデルでは、リクエスト元のサイトの URL(以下「リクエスト元 URL」)と最上位フレームサイトの URL(以下「埋め込み元 URL」)を使用して、リクエスト元 URL に USB デバイスへのアクセスを許可します。リクエスト元のサイトが iframe 内で読み込まれている場合、リクエスト元 URL と埋め込み元 URL は異なる可能性があります。このため、「urls」フィールドには、リクエスト元 URL と埋め込み元 URL をカンマで区切って、最大 2 つの URL 文字列を指定することができます。URL を 1 つだけ指定した場合、対応する USB デバイスへのアクセスは、リクエスト元のサイトの URL がこの URL と一致した場合に、埋め込みの状態にかかわらず許可されます。「urls」フィールドの URL には必ず有効な URL を指定してください。無効な URL を指定した場合、このポリシーは無視されます。
+
+        このポリシーが未設定の場合は、すべてのサイトでグローバルなデフォルト値(「DefaultWebUsbGuardSetting」ポリシーで値が設定されている場合はその値、設定されていない場合はユーザーの個人設定の値)が使用されます。
+
+        このポリシーで指定する URL パターンは、WebUsbBlockedForUrls ポリシーで指定する URL パターンと競合しないようにする必要があります。競合する場合は、WebUsbBlockedForUrls や WebUsbAskForUrls よりもこのポリシーが優先されます。
+
+        このポリシーの値は、WebUsbAllowDevicesForUrls ポリシーの値と統合されます。</translation>
 <translation id="4298509794364745131"><ph name="PRODUCT_OS_NAME" /> のロック画面でメモ作成アプリとして有効にできるアプリのリストを指定します。
 
       メモ作成アプリがロック画面で有効になっている場合、ロック画面にはそのメモ作成アプリを起動する UI 要素が表示されます。
@@ -1943,6 +1962,7 @@
 <translation id="4639407427807680016">ブラックリストから除外するネイティブ メッセージング ホストの名前</translation>
 <translation id="4650759511838826572">URL プロトコル スキームを無効にする</translation>
 <translation id="465099050592230505">エンタープライズ ウェブストアの URL(サポート終了)</translation>
+<translation id="4661889655253181651">[コンテンツの設定] では、特定タイプのコンテンツ(Cookie、画像、JavaScript など)の処理方法を指定できます。</translation>
 <translation id="4665897631924472251">拡張機能の管理設定</translation>
 <translation id="4668325077104657568">デフォルト画像設定</translation>
 <translation id="4670865688564083639">最小:</translation>
@@ -1987,6 +2007,11 @@
       こうしたおすすめのページは、Google のサーバーからリモートで取得されます。
 
       この設定が false に設定されている場合、おすすめのページは取得されず、表示されません。</translation>
+<translation id="4759650396863318477">保留中のアップデートを適用するために <ph name="PRODUCT_NAME" /> または <ph name="PRODUCT_OS_NAME" /> デバイスの再起動が必要であることをユーザーに通知する期間をミリ秒単位で設定します。
+
+      指定した期間中は、アップデートが必要であることがユーザーに繰り返し通知されます。<ph name="PRODUCT_OS_NAME" /> デバイスの場合は、<ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" /> ポリシーに従ってシステムトレイに再起動を促す通知が表示されます。<ph name="PRODUCT_NAME" /> ブラウザの場合は、通知期間の 3 分の 1 が経過した時点で、再起動が必要であること表すためにアプリメニューの色が変わります。この通知の色は、通知期間の 3 分の 2 が経過した時点と、通知期間が最後まで経過した時点でさらに変わります。<ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> ポリシーによって追加の通知を有効にしている場合は、同じスケジュールで通知が表示されます。
+
+      このポリシーが設定されていない場合、デフォルトの期間として <ph name="PRODUCT_OS_NAME" /> デバイスでは 345600000 ミリ秒(4 日間)、<ph name="PRODUCT_NAME" /> では 604800000 ミリ秒(1 週間)が使用されます。</translation>
 <translation id="4788252609789586009"><ph name="PRODUCT_NAME" /> の自動入力機能を有効にし、ユーザーが以前に保存した情報を使ってウェブフォームにクレジット カードの情報を自動入力できるようにします。
 
       この設定を無効にした場合は、クレジット カード情報が候補として表示されたり、自動入力されたりすることはありません。また、ユーザーがウェブの利用中に送信したクレジット カード情報が追加で保存されることもありません。
@@ -2175,6 +2200,15 @@
 <translation id="5208240613060747912">通知表示を許可しないサイトを指定する URL パターンのリストを設定できます。このポリシーが未設定の場合、グローバルのデフォルト値がすべてのサイトで使用されます。グローバルのデフォルト値は「DefaultNotificationsSetting」ポリシーの値か、この値が未設定の場合はユーザーの個人設定の値です。</translation>
 <translation id="5213038356678567351">ブラウザの切り替えを行わないウェブサイト。</translation>
 <translation id="5219844027738217407">Android アプリに対しては、このポリシーはマイクにのみ適用されます。このポリシーを true に設定した場合、すべての Android アプリでは例外なくマイクがミュートされます。</translation>
+<translation id="5221394278852982313">指定したベンダー ID と製品 ID の USB デバイスへのアクセスを自動的に許可するサイトを、URL のリストで設定します。このポリシーが有効になるためには、リストの各項目でデバイスと URL の両方を指定する必要があります。デバイスの各項目にはベンダー ID と製品 ID を指定できます。指定されていない ID はワイルドカードとして扱われますが、例外として、製品 ID を指定するのであればベンダー ID も指定する必要があります。ベンダー ID の指定なしで製品 ID のみを指定した場合、このポリシーは無効となり、無視されます。
+
+        USB のアクセス許可モデルでは、リクエスト元のサイトの URL(以下「リクエスト元 URL」)と最上位フレームサイトの URL(以下「埋め込み元 URL」)を使用して、リクエスト元 URL に USB デバイスへのアクセスを許可します。リクエスト元のサイトが iframe 内で読み込まれている場合、リクエスト元 URL と埋め込み元 URL は異なる可能性があります。このため、「urls」フィールドには、リクエスト元 URL と埋め込み元 URL をカンマで区切って、最大 2 つの URL 文字列を指定することができます。URL を 1 つだけ指定した場合、対応する USB デバイスへのアクセスは、リクエスト元のサイトの URL がこの URL と一致した場合に、埋め込みの状態にかかわらず許可されます。「urls」フィールドの URL には必ず有効な URL を指定してください。無効な URL を指定した場合、このポリシーは無視されます。
+
+        このポリシーが未設定の場合は、すべてのサイトでグローバルなデフォルト値(「DefaultWebUsbGuardSetting」ポリシーで値が設定されている場合はその値、設定されていない場合はユーザーの個人設定の値)が使用されます。
+
+        このポリシーで指定する URL パターンは、WebUsbBlockedForUrls ポリシーで指定する URL パターンと競合しないようにする必要があります。競合する場合は、WebUsbBlockedForUrls や WebUsbAskForUrls よりもこのポリシーが優先されます。
+
+        このポリシーの値は、DeviceWebUsbAllowDevicesForUrls ポリシーの値と統合されます。</translation>
 <translation id="5228316810085661003">デバイスのローカル アカウントに自動ログインするまでの時間です。
 
       |DeviceLocalAccountAutoLoginId| ポリシーが未設定の場合、このポリシーは無効です。それ以外の場合は、以下のようになります。
@@ -2893,6 +2927,21 @@
       このポリシーが [ユーザー証明書の管理をユーザーに許可する] に設定されている場合、ユーザーはユーザー証明書を管理することはできますが、デバイス全体の証明書を管理することはできません。
       このポリシーが [証明書の管理をユーザーに許可しない] に設定されている場合、ユーザーは証明書を管理できず、証明書の表示のみを行えます。</translation>
 <translation id="6573305661369899995">URL に関する制限の外部ソースを設定</translation>
+<translation id="6583851521569686409">プリンタのリストを設定します。
+
+      管理者はこのポリシーを使ってユーザーのプリンタ設定を
+      指定できます。
+
+      <ph name="PRINTER_DISPLAY_NAME" /> と <ph name="PRINTER_DESCRIPTION" /> は自由形式の文字列で、プリンタを選択しやすいようにカスタマイズできます。<ph name="PRINTER_MANUFACTURER" /> と <ph name="PRINTER_MODEL" /> はエンドユーザーがプリンタを識別しやすいようにするための情報で、それぞれプリンタのメーカーと機種を表します。<ph name="PRINTER_URI" /> は、クライアントのパソコンからアクセス可能な、<ph name="URI_SCHEME" />、<ph name="URI_PORT" />、<ph name="URI_QUEUE" /> を含むアドレスである必要があります。<ph name="PRINTER_UUID" /> の指定は任意で、指定した場合は <ph name="ZEROCONF_DISCOVERY" /> プリンタの重複除外に使用されます。
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" /> にプリンタの名前を含めるか、<ph name="PRINTER_AUTOCONF" /> を true に設定する必要があります。両方のプロパティが指定されているか、どちらのプロパティも指定されていないプリンタは無視されます。
+
+      プリンタの設定は初回使用時に完了し、プリンタが使用されるときに初めて PPD がダウンロードされます。以降、使用頻度の高い PPD はキャッシュされます。
+
+      このポリシーでは、ユーザーが各自のデバイスでプリンタを設定できるかどうかは制御されません。このポリシーは、個々のユーザーのプリンタ設定をサポートすることを目的としたものです。
+
+      Active Directory の管理下にあるデバイスの場合、このポリシーでは、<ph name="MACHINE_NAME_VARIABLE" /> から Active Directory のマシン名またはその部分文字列への展開がサポートされます。たとえばマシン名が <ph name="MACHINE_NAME_EXAMPLE" /> の場合、<ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> は 6 文字目以降の 4 文字(<ph name="MACHINE_NAME_PART_EXAMPLE" />)に置き換えられます(先頭をゼロ文字目として数えます)。
+      </translation>
 <translation id="6598235178374410284">ユーザーのアバター画像</translation>
 <translation id="6603004149426829878">タイムゾーンを解決する際、常に利用可能な位置情報の信号をサーバーに送信する</translation>
 <translation id="6628120204569232711">ストレージの状態を報告する</translation>
@@ -4203,6 +4252,8 @@
 <translation id="915194831143859291">このポリシーを false に設定した場合、または未設定の場合、<ph name="PRODUCT_OS_NAME" /> はユーザーによるデバイスの終了を許可します。
       このポリシーを true に設定すると、ユーザーがデバイスを終了したときに <ph name="PRODUCT_OS_NAME" /> は再起動を実行します。<ph name="PRODUCT_OS_NAME" /> は、UI 内でクリックされる終了ボタンをすべて再起動ボタンに置き換えます。ユーザーが電源ボタンを使ってデバイスを終了した場合は、このポリシーが有効なときでも自動的に再起動されることはありません。</translation>
 <translation id="9152473318295429890">現在のウェブページに関連するおすすめのウェブページの表示を有効にする</translation>
+<translation id="9153446010242995516">OS のバージョンが対象バージョンより新しい場合は、対象バージョンに戻してそのバージョンを維持します。ロールバック プロセスでデバイスごとに設定(ネットワーク認証情報など)の引き継ぎが可能な場合は、引き継ぎを試みますが、データの復元が可能でない(対象バージョンがデータの復元に対応していない、または後方互換性のない変更がある)場合でも、完全な Powerwash によるロールバックを行います。
+          サポート対象は <ph name="PRODUCT_OS_NAME" /> バージョン 75 以降です。これより古いクライアントの場合、この値はロールバックが無効であることを意味します。</translation>
 <translation id="9158929520101169054">ブラウザ内でのマルチログインを許可する</translation>
 <translation id="9159126470527871268">保留中のアップデートを適用するには <ph name="PRODUCT_NAME" /> または <ph name="PRODUCT_OS_NAME" /> の再起動が必要であることをユーザーに通知します。
 
diff --git a/components/policy/resources/policy_templates_kn.xtb b/components/policy/resources/policy_templates_kn.xtb
index 4b68e7be..0ef9560 100644
--- a/components/policy/resources/policy_templates_kn.xtb
+++ b/components/policy/resources/policy_templates_kn.xtb
@@ -1064,6 +1064,15 @@
           ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದಿರುವಾಗ ಹೆಚ್ಚು-ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ನೀತಿಗಳ ವರ್ತನೆಯು ಬಾಧಿತವಾಗದೇ ಉಳಿಯುತ್ತದೆ.</translation>
 <translation id="2987155890997901449">ARC ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="2987227569419001736">ವೆಬ್ ಬ್ಲೂಟೂತ್‌ API ನ ನಿಯಂತ್ರಣ ಬಳಕೆ</translation>
+<translation id="2990018289267778247">ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸರಿ ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದರೆ, ಪ್ರವೇಶಿಸುವಿಕೆಯ ಆಯ್ಕೆಗಳು ಯಾವಾಗಲೂ ಸಿಸ್ಟಂ ಟ್ರೇ ಮೆನುವಿನಲ್ಲೇ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ.
+
+          ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ತಪ್ಪು ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದರೆ, ಪ್ರವೇಶಿಸುವಿಕೆಯ ಆಯ್ಕೆಗಳು ಸಿಸ್ಟಂ ಟ್ರೇ ಮೆನುವಿನಲ್ಲಿ ಎಂದೂ ಕಾಣಿಸಿಕೊಳ್ಳುವುದಿಲ್ಲ.
+
+          ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಿದರೆ, ಬಳಕೆದಾರರು ಅದನ್ನು ಬದಲಾಯಿಸಲು ಅಥವಾ ಅತಿಕ್ರಮಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
+
+          ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, ಪ್ರವೇಶಿಸುವಿಕೆಯ ಆಯ್ಕೆಗಳು ಸಿಸ್ಟಂ ಟ್ರೇ ಮೆನುವಿನಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುವುದಿಲ್ಲ. ಆದರೆ, ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಪುಟದ ಮೂಲಕ ಬಳಕೆದಾರರು, ಪ್ರವೇಶಿಸುವಿಕೆಯ ಆಯ್ಕೆಗಳು ಕಾಣಿಸಿಕೊಳ್ಳುವಂತೆ ಮಾಡಬಹುದು.
+
+          ಪ್ರವೇಶಿಸುವಿಕೆಯ ಆಯ್ಕೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ (ಇತರ ವಿಧಾನಗಳ ಮೂಲಕ, ಉದಾಹರಣೆಗೆ ಕೀ ಸಂಯೋಜನೆ), ಪ್ರವೇಶಿಸುವಿಕೆಯ ಆಯ್ಕೆಗಳು ಯಾವಾಗಲೂ ಸಿಸ್ಟಂ ಟ್ರೇ ಮೆನುವಿನಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ.</translation>
 <translation id="3011301228198307065"><ph name="PRODUCT_NAME" /> ನಲ್ಲಿ ಡೀಫಾಲ್ಟ್ ಮುಖಪುಟ URL ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು ಅದನ್ನು ಬದಲಾಯಿಸದಂತೆ ತಡೆಯುತ್ತದೆ.
 
           ಮುಖಪುಟವೆಂದರೆ, ಮುಖಪುಟ ಬಟನ್ ಮೂಲಕ ತೆರೆಯಲಾಗುವ ಪುಟ. ಸ್ಟಾರ್ಟ್‌ಅಪ್ ಮಾಡುವಾಗ ತೆರೆಯುವ ಪುಟಗಳನ್ನು RestoreOnStartup ಕಾರ್ಯನೀತಿಗಳು ನಿಯಂತ್ರಿಸುತ್ತವೆ.
@@ -1370,6 +1379,7 @@
         ಡೆಸ್ಕ್‌ಟಾಪ್‌ನಲ್ಲಿರುವ ಯಾಂತ್ರಿಕ ವ್ಯಾಪ್ತಿಯ ಕ್ಲೌಡ್ ಕಾರ್ಯನೀತಿ ನೋಂದಾವಣಿಯಲ್ಲಿ ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಬಳಸಲಾಗಿದೆ ಮತ್ತು Windows ನಲ್ಲಿ ರಿಜಿಸ್ಟ್ರಿ ಅಥವಾ GPO ಮೂಲಕ, Mac ನಲ್ಲಿ ಪ್ಲಿಸ್ಟ್ ಹಾಗೂ Linux ನಲ್ಲಿ JSON ಕಾರ್ಯನೀತಿ ಪೈಲ್ ಮೂಲಕ ಹೊಂದಿಸಬಹುದು.</translation>
 <translation id="3660562134618097814">ಲಾಗಿನ್ ಸಮಯದಲ್ಲಿ SAML IdP ಕುಕೀಗಳನ್ನು ವರ್ಗಾಯಿಸಿ</translation>
 <translation id="3701121231485832347"><ph name="MS_AD_NAME" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲ್ಪಟ್ಟ <ph name="PRODUCT_OS_NAME" /> ಸಾಧನಗಳಿಗೆ ನಿರ್ದಿಷ್ಟ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation>
+<translation id="3702518095257671450">ದೂರದ ಸ್ಥಳದಿಂದ ದೃಢೀಕರಣ</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (ಈ ಏಕ ಸಾಲು ಕ್ಷೇತ್ರವನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ ಮತ್ತು ಭವಿಷ್ಯದಲ್ಲಿ ಇದನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. ಕೆಳಗಿನ ಬಹು-ಸಾಲಿನ ಪಠ್ಯ ಪೆಟ್ಟಿಗೆ ಅನ್ನು ಬಳಸಲು ಪ್ರಾರಂಭಿಸಿ.)</translation>
 <translation id="3709266154059827597">ವಿಸ್ತರಣೆ ಸ್ಥಾಪನೆಯ ಶ್ವೇತಪಟ್ಟಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation>
 <translation id="3711895659073496551">ಅಮಾನತು</translation>
@@ -1753,6 +1763,15 @@
 
           'DefaultSearchProviderEnabled' ನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಲ್ಲಿ ಮಾತ್ರ ಈ ನೀತಿಯನ್ನು ಪರಿಗಣಿಸಲಾಗುವುದು.</translation>
 <translation id="4285674129118156176">ಸಂಯೋಜಿತವಲ್ಲದ ಬಳಕೆದಾರರನ್ನು ARC ಬಳಸಲು ಅನುಮತಿಸಿ</translation>
+<translation id="4289903996435140853">ಕೊಡಲಾಗಿರುವ ವೆಂಡರ್ ಹಾಗೂ ಉತ್ಪನ್ನದ ಐಡಿಗಳೊಂದಿಗೆ, USB ಸಾಧನಕ್ಕೆ ಪ್ರವೇಶಿಸಲು ಯಾವ ಸೈಟ್‌ಗಳಿಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನುಮತಿ ನೀಡಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ URL ಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿಸಲು ಇದು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಕಾರ್ಯನೀತಿಯು ಮಾನ್ಯವಾಗಿರಬೇಕಾದರೆ, ಪಟ್ಟಿಯಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಐಟಂ ಕೂಡಾ ಸಾಧನಗಳು ಹಾಗೂ URL ಗಳನ್ನು ಹೊಂದಿರಬೇಕು. ಸಾಧನಗಳಲ್ಲಿನ ಪ್ರತಿಯೊಂದು ಐಟಂ, ವೆಂಡರ್ ಐಡಿ ಹಾಗೂ ಉತ್ಪನ್ನದ ಐಡಿಯ ಕ್ಷೇತ್ರವನ್ನು ಹೊಂದಿರಬಹುದು. ಬಿಟ್ಟುಬಿಟ್ಟಿರುವ ಯಾವುದೇ ಐಡಿಯನ್ನು ವೈಲ್ಡ್‌ಕಾರ್ಡ್ ಎಂಬುದಾಗಿ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಇದಕ್ಕೆ ಒಂದು ವಿನಾಯಿತಿಯಿದೆ. ಆ ವಿನಾಯಿತಿ ಏನೆಂದರೆ, ವೆಂಡರ್ ಐಡಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದೆ, ಉತ್ಪನ್ನದ ಐಡಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವಂತಿಲ್ಲ. ಇಲ್ಲವಾದರೆ, ಕಾರ್ಯನೀತಿಯು ಮಾನ್ಯವಾಗಿರುವುದಿಲ್ಲ ಮತ್ತು ಅದನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+        USB ಸಾಧನಕ್ಕೆ ಪ್ರವೇಶಿಸಲು ವಿನಂತಿಸುತ್ತಿರುವ URL ಗೆ ಅನುಮತಿ ನೀಡುವುದಕ್ಕಾಗಿ, USB ಅನುಮತಿ ಮಾದರಿಯು, ವಿನಂತಿಸುತ್ತಿರುವ ಸೈಟ್‌ನ URL ("ವಿನಂತಿಸುತ್ತಿರುವ URL") ಹಾಗೂ ಟಾಪ್-ಹಂತದ ಫ್ರೇಮ್ ಸೈಟ್‌ನ URL ("ಎಂಬೆಡ್ ಮಾಡುವ URL") ಅನ್ನು ಬಳಸುತ್ತದೆ. ವಿನಂತಿಸುತ್ತಿರುವ ಸೈಟ್ ಅನ್ನು iframe ನಲ್ಲಿ ಲೋಡ್ ಮಾಡಿದಾಗ, ವಿನಂತಿಸುತ್ತಿರುವ URL ಮತ್ತು ಎಂಬೆಡ್ ಮಾಡುವ URL ಭಿನ್ನವಾಗಿರಬಹುದು. ಆದ್ದರಿಂದ, ವಿನಂತಿಸುತ್ತಿರುವ ಹಾಗೂ ಎಂಬೆಡ್ ಮಾಡುವ URL ಅನ್ನು ಕ್ರಮವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲು, "URL ಗಳು" ಎಂಬ ಕ್ಷೇತ್ರವು, ಅಲ್ಪವಿರಾಮದ ಮೂಲಕ ಪ್ರತ್ಯೇಕಿಸಿರುವ ಎರಡು URL ಸ್ಟ್ರಿಂಗ್‌ಗಳನ್ನು ಹೊಂದಿರಬಹುದು. ಕೇವಲ ಒಂದು URL ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ್ದರೆ, ವಿನಂತಿಸುತ್ತಿರುವ ಸೈಟ್‌ನ URL ಈ URL ಗೆ ಹೊಂದಾಣಿಕೆಯಾದಾಗ, ಎಂಬೆಡ್ ಮಾಡುವ ಸ್ಥಿತಿಯನ್ನು ಲೆಕ್ಕಿಸದೆ, ಸಂಬಂಧಿತ USB ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶ ಒದಗಿಸಲಾಗುತ್ತದೆ. "URL ಗಳು" ಕ್ಷೇತ್ರದಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿರುವ URL ಗಳು ಮಾನ್ಯವಾಗಿರಬೇಕು, ಇಲ್ಲದಿದ್ದರೆ ಕಾರ್ಯನೀತಿಯನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+        ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, 'DefaultWebUsbGuardSetting' ಅನ್ನು ಹೊಂದಿಸಿದ ಸಂದರ್ಭದಲ್ಲಿ, ಎಲ್ಲಾ ಸೈಟ್‌ಗಳಿಗಾಗಿ ಜಾಗತಿಕ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಇದರಿಂದ ಬಳಸಲಾಗುತ್ತದೆ. ಇಲ್ಲದಿದ್ದರೆ, ಬಳಕೆದಾರರ ವೈಯಕ್ತಿಕ ಕಾನ್ಫಿಗರೇಶನ್‌ನಿಂದ ಬಳಸಲಾಗುತ್ತದೆ.
+
+        ಈ ಕಾರ್ಯನೀತಿಯಲ್ಲಿರುವ URL ವಿನ್ಯಾಸಗಳು ಹಾಗೂ WebUsbBlockedForUrls ಮೂಲಕ ಕಾನ್ಫಿಗರ್ ಮಾಡಿರುವವುಗಳ ನಡುವೆ ಸಂಘರ್ಷವಿರಬಾರದು. ಸಂಘರ್ಷವಿದ್ದರೆ ಈ ಕಾರ್ಯನೀತಿಯು, WebUsbBlockedForUrls ಹಾಗೂ WebUsbAskForUrls ಗಿಂತ ಹೆಚ್ಚಿನ ಆದ್ಯತೆಯನ್ನು ಪಡೆಯುತ್ತದೆ.
+
+        ಈ ಕಾರ್ಯನೀತಿ ಹಾಗೂ WebUsbAllowDevicesForUrls ಕಾರ್ಯನೀತಿಯ ಮೌಲ್ಯಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="4298509794364745131"><ph name="PRODUCT_OS_NAME" /> ಲಾಕ್‌ ಪರದೆಯಲ್ಲಿ ಟಿಪ್ಪಣಿ-ತೆಗೆದುಕೊಳ್ಳುವ ಅಪ್ಲಿಕೇಶನ್‌ ಆಗಿ ಸಕ್ರಿಯಗೊಳಿಸಬಹುದಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ.
 
 ಲಾಕ್ ಪರದೆಯಲ್ಲಿ ಆದ್ಯತೆ ನೀಡಿದ ಟಿಪ್ಪಣಿ-ತೆಗೆದುಕೊಳ್ಳುವ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಅಪ್ಲಿಕೇಶನ್ ತೆಗೆದುಕೊಳ್ಳುವ ಆದ್ಯತೆಯ ಟಿಪ್ಪಣಿಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಲಾಕ್ ಪರದೆಯು UI ಅಂಶವನ್ನು ಹೊಂದಿರುತ್ತದೆ.
@@ -1890,6 +1909,7 @@
 <translation id="4639407427807680016">ಕಪ್ಪುಪಟ್ಟಿಯಿಂದ ವಿನಾಯಿತಿಗೊಳಿಸುವುದಕ್ಕಾಗಿ ಸ್ಥಳೀಯ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಯ ಹೋಸ್ಟ್‌‌ಗಳ ಹೆಸರುಗಳು</translation>
 <translation id="4650759511838826572">URL ಪ್ರೊಟೋಕಾಲ್ ಯೋಜನೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="465099050592230505">ಎಂಟರ್‌ಪ್ರೈಸ್ ವೆಬ್ ಸ್ಟೋರ್ URL (ಅಸಮ್ಮತಿಸಲಾಗಿದೆ)</translation>
+<translation id="4661889655253181651">ನಿರ್ದಿಷ್ಟ ಪ್ರಕಾರದ (ಉದಾಹರಣೆಗೆ ಕುಕೀಗಳು, ಚಿತ್ರಗಳು ಅಥವಾ JavaScript) ಕಂಟೆಂಟ್‌ಗಳನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು, ಕಂಟೆಂಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತವೆ.</translation>
 <translation id="4665897631924472251">ವಿಸ್ತರಣೆ ನಿರ್ವಹಣೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="4668325077104657568">ಡಿಫಾಲ್ಟ್ ಚಿತ್ರಗಳ ಸೆಟ್ಟಿಂಗ್</translation>
 <translation id="4670865688564083639">ಕನಿಷ್ಠ:</translation>
@@ -1934,6 +1954,11 @@
       ಈ ಸಲಹೆಗಳನ್ನು, Google ಸರ್ವರ್‌ಗಳಿಂದ, ದೂರದ ಸ್ಥಳದಲ್ಲಿ ಇದ್ದುಕೊಂಡೇ ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ.
 
       ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು false ಎಂದು ಹೊಂದಿಸಿದರೆ, ಸಲಹೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ ಅಥವಾ ಪ್ರದರ್ಶಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
+<translation id="4759650396863318477">ಕಾಲಾವಧಿಯನ್ನು ಮಿಲಿಸೆಕೆಂಡುಗಳಲ್ಲಿ ಹೊಂದಿಸಲು ಇದು ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಬಾಕಿಯಿರುವ ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಲು <ph name="PRODUCT_NAME" /> ಅನ್ನು ಪುನಃ ಪ್ರಾರಂಭಿಸಬೇಕು ಅಥವಾ <ph name="PRODUCT_OS_NAME" /> ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು ಎಂದು ಈ ಅವಧಿಯಲ್ಲಿ ಬಳಕೆದಾರರಿಗೆ ಸೂಚನೆ ನೀಡಲಾಗುತ್ತದೆ.
+
+      ಈ ಅವಧಿಯಲ್ಲಿ, ಅಪ್‌ಡೇಟ್‌ನ ಆವಶ್ಯಕತೆಯ ಕುರಿತು ಬಳಕೆದಾರರಿಗೆ ಮತ್ತೆ ಮತ್ತೆ ತಿಳಿಸಲಾಗುತ್ತದೆ. <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" /> ಕಾರ್ಯನೀತಿಗೆ ಅನುಗುಣವಾಗಿ, <ph name="PRODUCT_OS_NAME" /> ಸಾಧನಗಳ ಸಿಸ್ಟಂ ಟ್ರೇನಲ್ಲಿ ಮರುಪ್ರಾಂಭಿಸುವಿಕೆಯ ಅಧಿಸೂಚನೆಯು ಕಾಣಿಸುತ್ತದೆ. <ph name="PRODUCT_NAME" /> ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ, ಅಧಿಸೂಚನೆ ಅವಧಿಯ ಮೂರನೇ ಒಂದರಷ್ಟು ಭಾಗವನ್ನು ದಾಟಿದಾಗ, ಪುನಃ ಪ್ರಾರಂಭಿಸಬೇಕಾದ ಅವಶ್ಯಕತೆಯನ್ನು ಸೂಚಿಸಲು ಆ್ಯಪ್ ಮೆನು ಬದಲಾಗುತ್ತದೆ. ಅಧಿಸೂಚನೆ ಅವಧಿಯ ಮೂರನೇ ಎರಡರಷ್ಟು ಭಾಗವನ್ನು ದಾಟಿದಾಗ ಈ ಅಧಿಸೂಚನೆಯು ಬಣ್ಣ ಬದಲಾಯಿಸುತ್ತದೆ ಮತ್ತು ಅಧಿಸೂಚನೆಯ ಸಂಪೂರ್ಣ ಅವಧಿಯು ದಾಟಿದಾಗ ಮತ್ತೊಮ್ಮೆ ಬಣ್ಣ ಬದಲಾಯಿಸುತ್ತದೆ. <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> ಕಾರ್ಯನೀತಿಯು ಸಕ್ರಿಯಗೊಳಿಸಿದ ಹೆಚ್ಚುವರಿ ಅಧಿಸೂಚನೆಗಳು ಇದೇ ವೇಳಾಪಟ್ಟಿಯನ್ನು ಅನುಸರಿಸುತ್ತವೆ.
+
+      ಇದನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, <ph name="PRODUCT_OS_NAME" /> ಸಾಧನಗಳಿಗಾಗಿ 345600000 ಮಿಲಿಸೆಕೆಂಡುಗಳ (ನಾಲ್ಕು ದಿನಗಳು) ಡಿಫಾಲ್ಟ್ ಅವಧಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು <ph name="PRODUCT_NAME" /> ಗಾಗಿ 604800000 ಮಿಲಿಸೆಕೆಂಡುಗಳನ್ನು (ಒಂದು ವಾರ) ಬಳಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="4788252609789586009"><ph name="PRODUCT_NAME" /> ನ ಸ್ವಯಂ ಭರ್ತಿ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಈ ಹಿಂದೆ ಸಂಗ್ರಹಿಸಿದ ಮಾಹಿತಿಯನ್ನು ಬಳಸಿಕೊಂಡು ವೆಬ್ ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ ತಮ್ಮ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಮಾಹಿತಿಯನ್ನು ಸ್ವಯಂ ಪೂರ್ಣಗೊಳಿಸಲು ಬಳಕೆದಾರರಿಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ.
 
       ಈ ಸೆಟ್ಟಿಂಗ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದಲ್ಲಿ, ಸ್ವಯಂ ತುಂಬುವಿಕೆಯು ಎಂದಿಗೂ ಸಲಹೆ ನೀಡುವುದಿಲ್ಲ ಅಥವಾ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಮಾಹಿತಿಯನ್ನು ಸ್ವಯಂ ತುಂಬುವುದಿಲ್ಲ ಅಥವಾ ಬಳಕೆದಾರರು ವೆಬ್ ಬ್ರೌಸ್ ಮಾಡುತ್ತಿರುವ ಸಂದರ್ಭದಲ್ಲಿ ಸಲ್ಲಿಸುವಂತಹ ಹೆಚ್ಚುವರಿ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಮಾಹಿತಿಯನ್ನು ಇದು ಉಳಿಸಿಕೊಳ್ಳುವುದಿಲ್ಲ.
@@ -2128,6 +2153,15 @@
 <translation id="5208240613060747912">ಅಧಿಸೂಚನೆಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಅನುಮತಿಸದೆ ಇರುವಂತಹ ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವಂತಹ url ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆ ಬಿಟ್ಟಲ್ಲಿ ಜಾಗತಿಕ ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು 'DefaultNotificationsSetting' ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದ್ದಲ್ಲಿ ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಅಥವಾ ಬಳಕೆದಾರರ ವೈಯಕ್ತಿಕ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="5213038356678567351">ಬ್ರೌಸರ್ ಬದಲಾವಣೆಗೆ ಎಂದಿಗೂ ಪ್ರಚೋದಿಸದ ವೆಬ್‌ಸೈಟ್‌ಗಳು.</translation>
 <translation id="5219844027738217407">Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ, ಈ ನೀತಿಯು ಮೈಕ್ರೋಫೋನ್‌ಗೆ ಮಾತ್ರ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ನಿಜ ಎಂಬುದಕ್ಕೆ ಹೊಂದಿಸಿದರೆ, ಯಾವುದೇ ವಿನಾಯಿತಿಗಳಿಲ್ಲದೇ, ಎಲ್ಲಾ Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಮೈಕ್ರೋಫೋನ್ ಅನ್ನು ಮ್ಯೂಟ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation>
+<translation id="5221394278852982313">ಕೊಡಲಾಗಿರುವ ವೆಂಡರ್ ಹಾಗೂ ಉತ್ಪನ್ನದ ಐಡಿಗಳೊಂದಿಗೆ, USB ಸಾಧನಕ್ಕೆ ಪ್ರವೇಶಿಸಲು ಯಾವ ಸೈಟ್‌ಗಳಿಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನುಮತಿ ನೀಡಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ URL ಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿಸಲು ಇದು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಕಾರ್ಯನೀತಿಯು ಮಾನ್ಯವಾಗಿರಬೇಕಾದರೆ, ಪಟ್ಟಿಯಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಐಟಂ ಕೂಡಾ ಸಾಧನಗಳು ಹಾಗೂ URL ಗಳನ್ನು ಹೊಂದಿರಬೇಕು. ಸಾಧನಗಳಲ್ಲಿನ ಪ್ರತಿಯೊಂದು ಐಟಂ, ವೆಂಡರ್ ಐಡಿ ಹಾಗೂ ಉತ್ಪನ್ನದ ಐಡಿಯ ಕ್ಷೇತ್ರವನ್ನು ಹೊಂದಿರಬಹುದು. ಬಿಟ್ಟುಬಿಟ್ಟಿರುವ ಯಾವುದೇ ಐಡಿಯನ್ನು ವೈಲ್ಡ್‌ಕಾರ್ಡ್ ಎಂಬುದಾಗಿ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಇದಕ್ಕೆ ಒಂದು ವಿನಾಯಿತಿಯಿದೆ. ಆ ವಿನಾಯಿತಿ ಏನೆಂದರೆ, ವೆಂಡರ್ ಐಡಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದೆ, ಉತ್ಪನ್ನದ ಐಡಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವಂತಿಲ್ಲ. ಇಲ್ಲವಾದರೆ, ಕಾರ್ಯನೀತಿಯು ಮಾನ್ಯವಾಗಿರುವುದಿಲ್ಲ ಮತ್ತು ಅದನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+        USB ಸಾಧನಕ್ಕೆ ಪ್ರವೇಶಿಸಲು ವಿನಂತಿಸುತ್ತಿರುವ URL ಗೆ ಅನುಮತಿ ನೀಡುವುದಕ್ಕಾಗಿ, USB ಅನುಮತಿ ಮಾದರಿಯು, ವಿನಂತಿಸುತ್ತಿರುವ ಸೈಟ್‌ನ URL ("ವಿನಂತಿಸುತ್ತಿರುವ URL") ಹಾಗೂ ಟಾಪ್-ಹಂತದ ಫ್ರೇಮ್ ಸೈಟ್‌ನ URL ("ಎಂಬೆಡ್ ಮಾಡುವ URL") ಅನ್ನು ಬಳಸುತ್ತದೆ. ವಿನಂತಿಸುತ್ತಿರುವ ಸೈಟ್ ಅನ್ನು iframe ನಲ್ಲಿ ಲೋಡ್ ಮಾಡಿದಾಗ, ವಿನಂತಿಸುತ್ತಿರುವ URL ಮತ್ತು ಎಂಬೆಡ್ ಮಾಡುವ URL ಭಿನ್ನವಾಗಿರಬಹುದು. ಆದ್ದರಿಂದ, ವಿನಂತಿಸುತ್ತಿರುವ ಹಾಗೂ ಎಂಬೆಡ್ ಮಾಡುವ URL ಅನ್ನು ಕ್ರಮವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲು, "URL ಗಳು" ಎಂಬ ಕ್ಷೇತ್ರವು, ಅಲ್ಪವಿರಾಮದ ಮೂಲಕ ಪ್ರತ್ಯೇಕಿಸಿರುವ ಎರಡು URL ಸ್ಟ್ರಿಂಗ್‌ಗಳನ್ನು ಹೊಂದಿರಬಹುದು. ಕೇವಲ ಒಂದು URL ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ್ದರೆ, ವಿನಂತಿಸುತ್ತಿರುವ ಸೈಟ್‌ನ URL ಈ URL ಗೆ ಹೊಂದಾಣಿಕೆಯಾದಾಗ, ಎಂಬೆಡ್ ಮಾಡುವ ಸ್ಥಿತಿಯನ್ನು ಲೆಕ್ಕಿಸದೆ, ಸಂಬಂಧಿತ USB ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶ ಒದಗಿಸಲಾಗುತ್ತದೆ. "URL ಗಳು" ಕ್ಷೇತ್ರದಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿರುವ URL ಗಳು ಮಾನ್ಯವಾಗಿರಬೇಕು, ಇಲ್ಲದಿದ್ದರೆ ಕಾರ್ಯನೀತಿಯನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+        ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, 'DefaultWebUsbGuardSetting' ಅನ್ನು ಹೊಂದಿಸಿದ ಸಂದರ್ಭದಲ್ಲಿ, ಎಲ್ಲಾ ಸೈಟ್‌ಗಳಿಗಾಗಿ ಜಾಗತಿಕ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಇದರಿಂದ ಬಳಸಲಾಗುತ್ತದೆ. ಇಲ್ಲದಿದ್ದರೆ, ಬಳಕೆದಾರರ ವೈಯಕ್ತಿಕ ಕಾನ್ಫಿಗರೇಶನ್‌ನಿಂದ ಬಳಸಲಾಗುತ್ತದೆ.
+
+        ಈ ಕಾರ್ಯನೀತಿಯಲ್ಲಿರುವ URL ವಿನ್ಯಾಸಗಳು ಹಾಗೂ WebUsbBlockedForUrls ಮೂಲಕ ಕಾನ್ಫಿಗರ್ ಮಾಡಿರುವವುಗಳ ನಡುವೆ ಸಂಘರ್ಷವಿರಬಾರದು. ಸಂಘರ್ಷವಿದ್ದರೆ ಈ ಕಾರ್ಯನೀತಿಯು, WebUsbBlockedForUrls ಹಾಗೂ WebUsbAskForUrls ಗಿಂತ ಹೆಚ್ಚಿನ ಆದ್ಯತೆಯನ್ನು ಪಡೆಯುತ್ತದೆ.
+
+        ಈ ಕಾರ್ಯನೀತಿ ಹಾಗೂ DeviceWebUsbAllowDevicesForUrls ಕಾರ್ಯನೀತಿಯ ಮೌಲ್ಯಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="5228316810085661003">ಸಾಧನ-ಸ್ಥಳೀಯ ಖಾತೆಯ ಸ್ವಯಂಚಾಲಿತ-ಲಾಗಿನ್ ವಿಳಂಬ.
 
     |DeviceLocalAccountAutoLoginId| ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಇದ್ದಲ್ಲಿ, ಈ ಕಾರ್ಯನೀತಿಯು ಯಾವುದೇ ಪರಿಣಾಮವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ಇಲ್ಲದಿದ್ದರೆ:
@@ -2837,6 +2871,20 @@
 
       ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ''ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿಸಬೇಡಿ'' ಎಂದು ಹೊಂದಿಸಿದರೆ, ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಬಳಕೆದಾರರಿಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ, ಅವರು ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ವೀಕ್ಷಿಸಲಷ್ಟೇ ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation>
 <translation id="6573305661369899995">URL ನಿಯಂತ್ರಣಗಳ ಬಾಹ್ಯ ಮೂಲವನ್ನು ಹೊಂದಿಸಿ</translation>
+<translation id="6583851521569686409">ಪ್ರಿಂಟರ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ.
+
+      ನಿರ್ವಾಹಕರು, ಬಳಕೆದಾರರಿಗೆ ಪ್ರಿಂಟರ್ ಕಾನ್ಫಿಗರೇಶನ್‌ಗಳನ್ನು ಒದಗಿಸಲು ಈ ಕಾರ್ಯನೀತಿಯು ಅವಕಾಶ ನೀಡುತ್ತದೆ.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> ಮತ್ತು <ph name="PRINTER_DESCRIPTION" /> ಮುಕ್ತ ರೂಪದ ಸ್ಟ್ರಿಂಗ್‌ಗಳಾಗಿದ್ದು, ಸುಲಭವಾಗಿ ಪ್ರಿಂಟರ್ ಆಯ್ಕೆ ಮಾಡುವುದಕ್ಕಾಗಿ ಇವುಗಳನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಬಹುದು. ಅಂತಿಮ ಬಳಕೆದಾರರು ಪ್ರಿಂಟರ್ ಅನ್ನು ಸುಲಭವಾಗಿ ಗುರುತಿಸಲು <ph name="PRINTER_MANUFACTURER" /> ಮತ್ತು <ph name="PRINTER_MODEL" /> ನೆರವಾಗುತ್ತವೆ. ಅವು, ಪ್ರಿಂಟರ್‌ನ ತಯಾರಕರು ಮತ್ತು ಅದರ ಮಾಡೆಲ್ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ. <ph name="PRINTER_URI" />, ಯಾವುದೇ ಕ್ಲೈಂಟ್ ಕಂಪ್ಯೂಟರ್‌ನಿಂದ ತಲುಪಲು ಸಾಧ್ಯವಿರುವ ವಿಳಾಸವಾಗಿರಬೇಕು ಮತ್ತು <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> ಹಾಗೂ <ph name="URI_QUEUE" /> ಅನ್ನು ಒಳಗೊಂಡಿರಬೇಕು. <ph name="PRINTER_UUID" /> ಐಚ್ಛಿಕವಾಗಿದೆ. ಇದನ್ನು ಒದಗಿಸಿದರೆ, <ph name="ZEROCONF_DISCOVERY" /> ಪ್ರಿಂಟರ್‌ಗಳ ನಕಲನ್ನು ತೊಡೆದುಹಾಕಲು ಅದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" />, ಪ್ರಿಂಟರ್‌ನ ಹೆಸರನ್ನು ಒಳಗೊಂಡಿರಬೇಕು ಅಥವಾ <ph name="PRINTER_AUTOCONF" /> ಅನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸಿರಬೇಕು. ಎರಡೂ ಗುಣಲಕ್ಷಣಗಳಿರುವ ಅಥವಾ ಯಾವುದೇ ಗುಣಲಕ್ಷಣವನ್ನು ಹೊಂದಿಲ್ಲದ ಪ್ರಿಂಟರ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+      ಪ್ರಿಂಟರ್ ಅನ್ನು ಮೊದಲ ಬಾರಿ ಬಳಸಿದಾಗ, ಪ್ರಿಂಟರ್ ಸೆಟಪ್ ಪೂರ್ಣವಾಗುತ್ತದೆ.  ಪ್ರಿಂಟರ್ ಅನ್ನು ಬಳಸುವವರೆಗೆ PPD ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.  ಅದರ ಬಳಿಕ, ಆಗಾಗ ಬಳಸುವ PPD ಗಳನ್ನು ಕ್ಯಾಷ್‌ನಲ್ಲಿ ಉಳಿಸಲಾಗುವುದು.
+
+      ಬಳಕೆದಾರರು ಪ್ರಿಂಟರ್‌ಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಸಾಧನಗಳಲ್ಲಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದೇ ಎಂಬುದರ ಮೇಲೆ ಈ ಕಾರ್ಯನೀತಿಯು ಯಾವುದೇ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.  ಪ್ರತ್ಯೇಕ ಬಳಕೆದಾರರು ಪ್ರಿಂಟರ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದಕ್ಕೆ ಪೂರಕವಾಗಿರುವುದು ಇದರ ಉದ್ದೇಶವಾಗಿದೆ.
+
+      ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಮೂಲಕ ನಿರ್ವಹಿಸುವ ಸಾಧನಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, <ph name="MACHINE_NAME_VARIABLE" /> ಅನ್ನು ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಮೆಷೀನ್ ಹೆಸರು ಅಥವಾ ಅದರ ಉಪ್-ಸ್ಟ್ರಿಂಗ್ ಬಳಸಿ ವಿಸ್ತರಿಸುವುದನ್ನು ಈ ಕಾರ್ಯನೀತಿಯು ಬೆಂಬಲಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಮೆಷೀನ್‌ನ ಹೆಸರು <ph name="MACHINE_NAME_EXAMPLE" /> ಆಗಿದ್ದರೆ, 6ನೇ ಸ್ಥಾನದ ನಂತರ ಪ್ರಾರಂಭವಾಗುವ 4 ಕ್ಯಾರೆಕ್ಟರ್‌ಗಳನ್ನು ಅಂದರೆ, <ph name="MACHINE_NAME_PART_EXAMPLE" /> ಅನ್ನು <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> ಗೆ ಬದಲಿಯಾಗಿ ಇರಿಸಲಾಗುತ್ತದೆ. ಗಮನಿಸಿ, ಸ್ಥಾನವು ಶೂನ್ಯ-ಆಧಾರಿತವಾಗಿದೆ.
+      </translation>
 <translation id="6598235178374410284">ಬಳಕೆದಾರರ ಅವತಾರ್ ಚಿತ್ರ</translation>
 <translation id="6603004149426829878">ಸಮಯ ವಲಯವನ್ನು ಪರಿಹರಿಸುವಾಗ ಸರ್ವರ್‌ಗೆ ಯಾವಾಗಲೂ ಯಾವುದೇ ಲಭ್ಯವಿರುವ ಸ್ಥಳದ ಸಂಕೇತಗಳನ್ನು ಕಳುಹಿಸಿ</translation>
 <translation id="6628120204569232711">ಸಂಗ್ರಹಣೆ ಸ್ಥಿತಿಯನ್ನು ವರದಿ ಮಾಡಿ</translation>
@@ -4114,6 +4162,9 @@
 <translation id="915194831143859291">ಈ ನೀತಿಯನ್ನು ತಪ್ಪು ಅಥವಾ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿಲ್ಲ ಎಂದು ಹೊಂದಿಸಿದಲ್ಲಿ, ಸಾಧನವನ್ನು ಶಟ್‌ಡೌನ್ ಮಾಡಲು <ph name="PRODUCT_OS_NAME" /> ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿಸುತ್ತದೆ.
       ಈ ನೀತಿಯನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸಿದಲ್ಲಿ, ಬಳಕೆದಾರರು ಸಾಧನವನ್ನು ಶಟ್‌ಡೌನ್ ಮಾಡಿದಾಗ <ph name="PRODUCT_OS_NAME" /> ರೀಬೂಟ್ ಅನ್ನು ಟ್ರಿಗ್ಗರ್ ಮಾಡುತ್ತದೆ. ರೀಬೂಟ್ ಬಟನ್‌ಗಳ ಮೂಲಕ UI  ನಲ್ಲಿ <ph name="PRODUCT_OS_NAME" /> ಶಟ್‌ಡೌನ್ ಬಟನ್‌ಗಳ ಎಲ್ಲಾ ಸಂದರ್ಭಗಳನ್ನು ಸ್ಥಾನಾಂತರಿಸುತ್ತದೆ. ಬಳಕೆದಾರರು ಪವರ್ ಬಟನ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸಾಧನವನ್ನು ಶಟ್‌ಡೌನ್ ಮಾಡಿದಲ್ಲಿ, ನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೂ ಸಹ ಅದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರೀಬೂಟ್ ಆಗುವುದಿಲ್ಲ.</translation>
 <translation id="9152473318295429890">ಸಂಬಂಧಿತ ವೆಬ್ ಪುಟಗಳಿಗಾಗಿ, ಸಂದರ್ಭೋಚಿತ ಸಲಹೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
+<translation id="9153446010242995516">OS ಆವೃತ್ತಿಯು ಟಾರ್ಗೆಟ್‌ ಆವೃತ್ತಿಗಿಂತ ಹೊಸದಾಗಿದ್ದರೆ, ಟಾರ್ಗೆಟ್‌ ಆವೃತ್ತಿಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಅದನ್ನೇ ಬಳಸಿ. ಸಾಧ್ಯವಿದ್ದರೆ, ಹಿಂದಿರುಗುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಸಾಧನ-ಮಟ್ಟದ ಕಾನ್ಫಿಗರೇಶನ್ (ನೆಟ್‌ವರ್ಕ್ ಅನುಮೋದನೆ ರುಜುವಾತುಗಳನ್ನು ಒಳಗೊಂಡಂತೆ) ಅನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸಿ, ಆದರೆ ಡೇಟಾ ಮರುಸ್ಥಾಪನೆ ಸಾಧ್ಯವಿಲ್ಲದಿದ್ದರೂ ಕೂಡಾ (ಟಾರ್ಗೆಟ್‌ ಆವೃತ್ತಿಯು ಡೇಟಾ ಮರುಸ್ಥಾಪನೆಯನ್ನು ಬೆಂಬಲಿಸದ ಕಾರಣ ಅಥವಾ ಹಿಮ್ಮುಖವಾಗಿ ಹೊಂದಿಕೊಳ್ಳದ ಬದಲಾವಣೆಯಿಂದಾಗಿ), ಹಿಂದಿರುಗುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣ ಪವರ್‌ವಾಷ್‌ನೊಂದಿಗೆ ನಡೆಸಿ.
+
+<ph name="PRODUCT_OS_NAME" /> ಆವೃತ್ತಿ 75 ಮತ್ತು ನಂತರದ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಬೆಂಬಲವಿದೆ. ಹಳೆಯ ಕ್ಲೈಂಟ್‌ಗಳಿಗಾಗಿ, ಹಿಂದಿರುಗುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಈ ಮೌಲ್ಯವು ಸೂಚಿಸುತ್ತದೆ.</translation>
 <translation id="9158929520101169054">ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಬಹು ಸೈನ್-ಇನ್ ಅನ್ನು ಅನುಮತಿಸಿ</translation>
 <translation id="9159126470527871268">ಬಾಕಿ ಇರುವ ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಲು <ph name="PRODUCT_NAME" /> ಅನ್ನು ಪುನಃ ಪ್ರಾರಂಭಿಸಬೇಕು ಅಥವಾ <ph name="PRODUCT_OS_NAME" /> ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು ಎಂದು ಬಳಕೆದಾರರಿಗೆ ತಿಳಿಸಿ.
 
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 90cb36e..7cc0d6b 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -1137,6 +1137,15 @@
           이 정책이 설정되지 않아도 더 구체적인 정책 사용에 영향을 주지 않습니다.</translation>
 <translation id="2987155890997901449">ARC 사용</translation>
 <translation id="2987227569419001736">Web Bluetooth API 사용 조정</translation>
+<translation id="2990018289267778247">이 정책을 True로 설정하면 작업 표시줄 메뉴에 접근성 옵션이 항상 표시됩니다.
+
+          정책을 False로 설정하면 작업 표시줄 메뉴에 접근성 옵션이 표시되지 않습니다.
+
+          정책이 설정되면 사용자가 변경하거나 재정의할 수 없습니다.
+
+          정책을 설정하지 않으면 작업 표시줄 메뉴에 접근성 옵션이 표시되지 않지만 사용자가 설정 페이지에서 접근성 옵션이 표시되도록 설정할 수 있습니다.
+
+          접근성 기능이 사용 설정되면(예: 키 조합을 눌러 사용 설정) 접근성 옵션이 작업 표시줄 메뉴에 항상 표시됩니다.</translation>
 <translation id="3011301228198307065"><ph name="PRODUCT_NAME" />의 기본 홈페이지 URL을 구성하며 사용자가 변경하지 못하게 차단합니다.
 
           홈페이지는 홈 버튼을 통해 열리는 페이지입니다. 시작 시 열리는 페이지는 RestoreOnStartup 정책으로 제어됩니다.
@@ -1461,6 +1470,7 @@
         이 정책은 데스크톱에서 시스템 범위 클라우드 정책 등록에 사용되며 Windows의 경우 Registry 또는 GPO, Mac의 경우 plist, Linux의 경우 JSON 정책 파일에 의해 설정될 수 있습니다.</translation>
 <translation id="3660562134618097814">로그인 중 SAML IdP 쿠키 전송</translation>
 <translation id="3701121231485832347"><ph name="MS_AD_NAME" /> 관리 <ph name="PRODUCT_OS_NAME" /> 기기에 대한 설정을 제어합니다.</translation>
+<translation id="3702518095257671450">원격 증명</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" />(한 줄 입력란은 지원 중단되었으며 삭제될 예정입니다. 아래의 여러 줄 입력란을 사용해 주세요.)</translation>
 <translation id="3709266154059827597">확장 프로그램 설치 차단목록 설정</translation>
 <translation id="3711895659073496551">일시중지</translation>
@@ -1857,6 +1867,15 @@
 
           이 정책은 'DefaultSearchProviderEnabled' 정책을 사용하도록 설정된 경우에만 적용됩니다.</translation>
 <translation id="4285674129118156176">제휴되지 않은 사용자가 ARC를 사용할 수 있게 허용</translation>
+<translation id="4289903996435140853">URL 목록을 설정하여 주어진 공급업체 및 제품 ID로 USB 기기에 액세스할 권한을 자동으로 부여할 사이트를 지정할 수 있습니다. 이 정책이 유효하려면 목록의 각 항목에 기기 및 URL이 모두 포함되어 있어야 합니다. 기기의 각 항목에는 공급업체 ID 및 제품 ID 입력란이 포함될 수 있습니다. 생략된 모든 ID는 공급업체 ID가 지정되지 않으면 제품 ID도 지정될 수 없다는 하나의 예외 사항이 있는 와일드 카드로 취급됩니다. 그렇지 않은 경우 정책은 유효하지 않게 되며 무시됩니다.
+
+        USB 권한 모델은 요청하는 사이트의 URL('요청 URL')과 최상위 프레임 사이트의 URL('삽입 URL')을 사용하여 요청 URL에 USB 기기 액세스 권한을 부여합니다. 요청하는 사이트가 iframe에서 로드되는 경우 요청 URL과 삽입 URL이 다를 수 있습니다. 따라서 'URL' 입력란에는 요청 URL과 삽입 URL을 구분하여 지정할 수 있도록 쉼표로 구분된 URL 문자열이 두 개까지 포함될 수 있습니다. URL이 하나만 지정된 경우 삽입 상태와 관계없이 요청하는 사이트의 URL이 이 URL과 일치하면 해당하는 USB 기기에 액세스할 권한이 부여됩니다. 'URL' 입력란의 URL은 유효한 URL이어야 하며, 그렇지 않으면 정책이 무시됩니다.
+
+        이 정책을 설정하지 않으면 'DefaultWebUsbGuardSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 모든 사이트에 사용됩니다.
+
+        정책의 URL 패턴은 WebUsbBlockedForUrls를 통해 설정된 패턴과 충돌해서는 안 됩니다. 충돌이 발생한 경우 이 정책이 WebUsbBlockedForUrls 및 WebUsbAskForUrls보다 우선합니다.
+
+        이 정책 및 WebUsbAllowDevicesForUrls 정책의 값은 통합됩니다.</translation>
 <translation id="4298509794364745131"><ph name="PRODUCT_OS_NAME" /> 잠금 화면에서 사용할 수 있는 메모 앱의 목록을 지정합니다.
 
       선호하는 메모 앱을 잠금 화면에서 사용 설정하면 잠금 화면에 해당 메모 앱을 실행하기 위한 UI 요소가 표시됩니다.
@@ -2008,6 +2027,7 @@
 <translation id="4639407427807680016">차단 목록에 적용되지 않는 기본 메시지 호스트의 이름</translation>
 <translation id="4650759511838826572">URL 프로토콜 스키마 사용 중지</translation>
 <translation id="465099050592230505">엔터프라이즈 웹 스토어 URL(지원 중단됨)</translation>
+<translation id="4661889655253181651">콘텐츠 설정을 사용하면 특정 유형(예: 쿠키, 이미지 또는 자바스크립트)의 콘텐츠가 처리되는 방법을 지정할 수 있습니다.</translation>
 <translation id="4665897631924472251">확장 프로그램 관리 설정</translation>
 <translation id="4668325077104657568">기본 이미지 설정</translation>
 <translation id="4670865688564083639">최소:</translation>
@@ -2052,6 +2072,11 @@
       이러한 추천 페이지는 Google 서버에서 원격으로 가져옵니다.
 
       이 설정을 False로 지정하면 추천 페이지를 가져오거나 표시하지 않습니다.</translation>
+<translation id="4759650396863318477">대기 중인 업데이트를 적용하려면 <ph name="PRODUCT_NAME" />을(를) 재실행하거나 <ph name="PRODUCT_OS_NAME" /> 기기를 다시 시작해야 한다는 알림을 사용자에게 표시할 기간을 밀리초로 설정할 수 있습니다.
+
+      이 기간 동안 업데이트를 해야 한다는 알림이 사용자에게 반복적으로 표시됩니다. <ph name="PRODUCT_OS_NAME" /> 기기의 경우 <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" /> 정책에 따라 재시작 알림이 작업 표시줄에 표시됩니다. <ph name="PRODUCT_NAME" /> 브라우저의 경우 알림 기간 중 3분의 1이 지나면 앱 메뉴가 변경되면서 재실행이 필요하다는 알림이 표시됩니다. 알림 기간 중 3분의 2가 지나면 알림 색상이 바뀌며 알림 기간이 모두 지나면 다시 한번 바뀝니다. <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> 정책을 통해 사용 설정되는 추가 알림도 이와 동일한 일정을 따릅니다.
+
+      설정되지 않는 경우 <ph name="PRODUCT_OS_NAME" /> 기기에는 345,600,000밀리초(4일), <ph name="PRODUCT_NAME" />에는 604,800,000밀리초(1주일)가 기본값으로 사용됩니다.</translation>
 <translation id="4788252609789586009"><ph name="PRODUCT_NAME" />의 자동 완성 기능을 사용 설정하면 사용자가 이전에 저장된 정보를 사용하여 웹 양식에서 신용카드 정보를 자동으로 입력할 수 있습니다.
 
       설정이 사용 중지되면 신용카드 정보 자동 완성이 제안되거나 실행되지 않으며, 사용자가 웹 탐색 중에 제출하는 신용카드 정보가 추가로 저장되지도 않습니다.
@@ -2260,6 +2285,15 @@
           이 정책을 설정하지 않은 경우 'DefaultNotificationsSetting' 정책이 설정되면 해당 정책의, 그렇지 않으면 사용자 개인 설정의 전체 기본값이 모든 사이트에서 사용됩니다.</translation>
 <translation id="5213038356678567351">브라우저 전환을 실행해서는 안 되는 웹사이트입니다.</translation>
 <translation id="5219844027738217407">Android 앱의 경우 이 정책은 마이크에만 영향을 줍니다. 이 정책이 true로 설정되면 마이크는 모든 앱에서 음소거되며 예외는 없습니다.</translation>
+<translation id="5221394278852982313">URL 목록을 설정하여 주어진 공급업체 및 제품 ID로 USB 기기에 액세스할 권한을 자동으로 부여할 사이트를 지정할 수 있습니다. 이 정책이 유효하려면 목록의 각 항목에 기기 및 URL이 모두 포함되어 있어야 합니다. 기기의 각 항목에는 공급업체 ID 및 제품 ID 입력란이 포함될 수 있습니다. 생략된 모든 ID는 공급업체 ID가 지정되지 않으면 제품 ID도 지정될 수 없다는 하나의 예외 사항이 있는 와일드 카드로 취급됩니다. 그렇지 않은 경우 정책은 유효하지 않게 되며 무시됩니다.
+
+        USB 권한 모델은 요청하는 사이트의 URL('요청 URL')과 최상위 프레임 사이트의 URL('삽입 URL')을 사용하여 요청 URL에 USB 기기 액세스 권한을 부여합니다. 요청하는 사이트가 iframe에서 로드되는 경우 요청 URL과 삽입 URL이 다를 수 있습니다. 따라서 'URL' 입력란에는 요청 URL과 삽입 URL을 구분하여 지정할 수 있도록 쉼표로 구분된 URL 문자열이 2개까지 포함될 수 있습니다. URL이 하나만 지정된 경우 삽입 상태와 관계없이 요청하는 사이트의 URL이 이 URL과 일치하면 해당하는 USB 기기에 액세스할 권한이 부여됩니다. 'URL' 입력란의 URL은 유효한 URL이어야 하며, 그렇지 않으면 정책이 무시됩니다.
+
+        이 정책을 설정하지 않으면 'DefaultWebUsbGuardSetting' 정책(설정된 경우) 또는 사용자 개인 설정의 전체 기본값이 모든 사이트에 사용됩니다.
+
+        정책의 URL 패턴은 WebUsbBlockedForUrls를 통해 설정된 패턴과 충돌해서는 안 됩니다. 충돌이 발생한 경우 이 정책이 WebUsbBlockedForUrls 및 WebUsbAskForUrls보다 우선합니다.
+
+        이 정책 및 DeviceWebUsbAllowDevicesForUrls 정책의 값은 통합됩니다.</translation>
 <translation id="5228316810085661003">기기 로컬 계정 자동 로그인 지연
 
       |DeviceLocalAccountAutoLoginId| 정책을 설정하지 않으면 이 정책은 적용되지 않습니다. 또는:
@@ -3004,6 +3038,21 @@
 
       이 정책을 '사용자가 인증서를 관리하도록 허용 안함'으로 설정하면 사용자가 인증서를 관리할 수 없고 확인만 가능합니다.</translation>
 <translation id="6573305661369899995">URL 제한의 외부 소스 설정</translation>
+<translation id="6583851521569686409">프린터 목록을 설정합니다.
+
+      이 정책을 사용하면 관리자가 사용자에게 프린터 설정을 제공할 수
+      있습니다.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> 및 <ph name="PRINTER_DESCRIPTION" />은(는) 손쉽게 프린터를 선택하도록 맞춤설정할 수 있는 자유 형식 문자열입니다. <ph name="PRINTER_MANUFACTURER" /> 및 <ph name="PRINTER_MODEL" />은(는) 최종 사용자가 손쉽게 프린터를 식별할 수 있도록 제공되며 프린터의 제조업체 및 모델을 나타냅니다. <ph name="PRINTER_URI" />은(는) <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, <ph name="URI_QUEUE" /> 등 클라이언트 컴퓨터에서 연결할 수 있는 주소여야 합니다. <ph name="PRINTER_UUID" />은(는) 선택사항입니다. 제공되는 경우 <ph name="ZEROCONF_DISCOVERY" /> 프린터의 중복을 삭제하는 데 사용됩니다.
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" />이(가) 프린터 이름을 포함하거나 <ph name="PRINTER_AUTOCONF" />이(가) True로 설정되어야 합니다. 이 두 가지 속성이 모두 포함되거나 속성이 없는 프린터는 무시됩니다.
+
+      프린터 설정은 프린터 최초 사용 시 완료됩니다.  프린터가 사용될 때까지 PPD는 다운로드되지 않습니다.  이후 자주 사용되는 PPD가 캐시됩니다.
+
+      이 정책은 사용자가 개별 기기에서 프린터를 설정할 수 있는지 여부에는 영향을 미치지 않습니다.  이 정책은 개별 사용자의 프린터 설정을 보완하기 위한 것입니다.
+
+      Active Directory 관리 대상 기기에서는 이 정책을 통해 <ph name="MACHINE_NAME_VARIABLE" />을(를) Active Directory 컴퓨터 이름 또는 관련 하위 문자열로 확장할 수 있습니다. 예를 들어, 컴퓨터 이름이 <ph name="MACHINE_NAME_EXAMPLE" />인 경우, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />이(가) 6번째 위치 이후에 시작되는 4자로 대체되어 <ph name="MACHINE_NAME_PART_EXAMPLE" />이(가) 됩니다. 이 위치는 0을 기준으로 합니다.
+      </translation>
 <translation id="6598235178374410284">사용자 아바타 이미지</translation>
 <translation id="6603004149426829878">시간대를 파악하는 동안 항상 사용 가능한 위치 신호를 모두 서버로 전송합니다.</translation>
 <translation id="6628120204569232711">저장용량 상태 보고</translation>
@@ -4371,6 +4420,8 @@
 <translation id="915194831143859291">이 정책을 false로 설정하거나 설정하지 않으면 <ph name="PRODUCT_OS_NAME" />에서 사용자가 기기를 종료할 수 있도록 허용합니다.
       이 정책을 true로 설정하면 사용자가 기기를 종료할 때 <ph name="PRODUCT_OS_NAME" />에서 재부팅을 시작하며 <ph name="PRODUCT_OS_NAME" />에서 UI의 종료 버튼을 모두 재부팅 버튼으로 바꿉니다. 정책을 사용하도록 설정해도 사용자가 전원 버튼을 사용하여 기기를 종료하면 자동으로 재부팅하지 않습니다.</translation>
 <translation id="9152473318295429890">상황에 따라 관련 웹페이지 추천</translation>
+<translation id="9153446010242995516">OS 버전이 대상 버전보다 높은 경우 대상 버전으로 롤백하고 버전을 유지합니다. 가능한 경우 롤백 과정을 통해 기기 수준 설정(네트워크 사용자 인증 정보 포함)을 이전하려고 시도하지만, 대상 버전에서 데이터 복원을 지원하지 않거나 하위 비호환 변경사항으로 인해 데이터 복원이 불가능한 경우에도 전체 파워워시로 롤백합니다.
+          <ph name="PRODUCT_OS_NAME" /> 버전 75 이상에서 지원됩니다. 이전 버전 클라이언트에서 이 값은 롤백을 사용할 수 없다는 의미입니다.</translation>
 <translation id="9158929520101169054">브라우저 내 멀티 로그인 허용</translation>
 <translation id="9159126470527871268">대기 중인 업데이트를 적용하려면 <ph name="PRODUCT_NAME" />을(를) 재실행하거나 <ph name="PRODUCT_OS_NAME" />을(를) 재시작해야 한다고 사용자에게 알립니다.
 
diff --git a/components/policy/resources/policy_templates_ms.xtb b/components/policy/resources/policy_templates_ms.xtb
index d2c03de9..3b359e32 100644
--- a/components/policy/resources/policy_templates_ms.xtb
+++ b/components/policy/resources/policy_templates_ms.xtb
@@ -1134,6 +1134,15 @@
           Apabila dasar ini tidak ditetapkan, gelagat dasar yang lebih khusus tidak akan terjejas.</translation>
 <translation id="2987155890997901449">Dayakan ARC</translation>
 <translation id="2987227569419001736">Kawal penggunaan API Bluetooth Web</translation>
+<translation id="2990018289267778247">Jika dasar ini ditetapkan kepada benar, pilihan Kebolehcapaian sentiasa dipaparkan dalam menu dulang sistem.
+
+          Jika dasar ini ditetapkan kepada palsu, pilihan Kebolehcapaian tidak akan dipaparkan dalam menu dulang sistem.
+
+          Jika anda menetapkan dasar ini, pengguna tidak boleh menukar atau membatalkannya.
+
+          Jika dasar ini dibiarkan tanpa ditetapkan, pilihan Kebolehcapaian tidak akan dipaparkan dalam menu dulang sistem, tetapi pengguna boleh menyebabkan pilihan Kebolehcapaian dipaparkan melalui halaman Tetapan.
+
+          Apabila ciri kebolehaksesan didayakan (melalui cara lain, misalnya melalui gabungan kunci), pilihan Kebolehcapaian sentiasa dipaparkan dalam menu dulang sistem.</translation>
 <translation id="3011301228198307065">Mengkonfigurasi URL halaman utama lalai dalam <ph name="PRODUCT_NAME" /> dan menghalang pengguna daripada mengubah konfigurasi tersebut.
 
           Halaman utama ialah halaman yang dibuka melalui butang Skrin Utama. Halaman yang dibuka semasa permulaan dikawal oleh dasar RestoreOnStartup.
@@ -1457,6 +1466,7 @@
         Dasar ini digunakan oleh pendaftaran dasar awan skop mesin pada desktop dan boleh ditetapkan oleh Daftaran atau GPO pada Windows, plist pada Mac dan fail dasar JSON pada Linux.</translation>
 <translation id="3660562134618097814">Pindahkan kuki IdP SAML semasa log masuk</translation>
 <translation id="3701121231485832347">Mengawal tetapan yang khusus untuk peranti <ph name="PRODUCT_OS_NAME" /> yang diurus <ph name="MS_AD_NAME" />.</translation>
+<translation id="3702518095257671450">Pembuktian jauh</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (Medan satu baris tidak akan digunakan lagi dan akan dialih keluar pada masa akan datang. Sila gunakan kotak teks berbilang baris di bawah.)</translation>
 <translation id="3709266154059827597">Konfigurasi senarai hitam pemasangan sambungan</translation>
 <translation id="3711895659073496551">Gantung</translation>
@@ -1853,6 +1863,15 @@
 
           Dasar ini hanya dipatuhi jika dasar 'DefaultSearchProviderEnabled' didayakan.</translation>
 <translation id="4285674129118156176">Benarkan pengguna yang bukan ahli gabungan menggunakan ARC</translation>
+<translation id="4289903996435140853">Membolehkan anda menetapkan senarai url yang menentukan tapak yang akan diberikan kebenaran secara automatik untuk mengakses peranti USB dengan ID vendor dan produk yang dinyatakan. Setiap item dalam senarai mesti mengandungi peranti dan juga url untuk menjadikan dasar ini sah. Setiap item dalam peranti boleh mengandungi medan ID vendor dan ID produk. Mana-mana ID yang tidak dimasukkan akan dikendalikan sebagai kad bebas dengan satu pengecualian dan pengecualian itu ialah ID produk tidak boleh dinyatakan jika ID vendor juga tidak dinyatakan. Jika tidak, dasar ini tidak akan sah dan akan diabaikan.
+
+        Model kebenaran USB menggunakan URL tapak yang meminta ("URL yang meminta") dan URL tapak bingkai tahap tinggi ("URL yang membenamkan") untuk memberikan kebenaran kepada URL yang meminta untuk mengakses peranti USB. URL yang meminta mungkin berbeza daripada URL yang membenamkan apabila tapak yang meminta dimuatkan dalam iframe. Oleh itu, medan "url" boleh mengandungi hingga dua rentetan URL yang dihadkan oleh koma untuk menyatakan URL yang meminta dan yang membenamkan. Jika hanya satu URL dinyatakan, maka akses kepada peranti USB yang sepadan akan diberikan apabila URL tapak yang meminta sepadan dengan URL ini tanpa mengira status pembenaman. URL dalam "url" mestilah URL yang sah, jika tidak dasar ini akan diabaikan.
+
+        Jika dasar ini dibiarkan tanpa ditetapkan, nilai lalai global akan digunakan untuk semua tapak sama ada daripada dasar 'DefaultWebUsbGuardSetting' jika dasar ini ditetapkan, atau konfigurasi peribadi pengguna jika sebaliknya.
+
+        Pola URL dalam dasar ini tidak boleh bercanggah dengan pola yang dikonfigurasikan melalui WebUsbBlockedForUrls. Jika terdapat percanggahan, dasar ini akan diutamakan berbanding WebUsbBlockedForUrls dan WebUsbAskForUrls.
+
+        Nilai untuk dasar ini dan dasar WebUsbAllowDevicesForUrls digabungkan.</translation>
 <translation id="4298509794364745131">Menentukan senarai apl yang boleh didayakan sebagai apl pencatatan nota pada skrin kunci <ph name="PRODUCT_OS_NAME" />.
 
       Jika apl pencatatan nota pilihan didayakan pada skrin kunci, skrin kunci akan mengandungi unsur UI untuk melancarkan apl pencatatan nota pilihan.
@@ -2004,6 +2023,7 @@
 <translation id="4639407427807680016">Nama hos pemesejan natif untuk dikecualikan daripada senarai hitam</translation>
 <translation id="4650759511838826572">Lumpuhkan skim protokol URL</translation>
 <translation id="465099050592230505">URL kedai web perusahaan (tidak akan digunakan lagi)</translation>
+<translation id="4661889655253181651">Tetapan kandungan membenarkan anda untuk menentukan cara kandungan bagi jenis tertentu (contohnya Kuki, Imej atau JavaScript) dikendalikan.</translation>
 <translation id="4665897631924472251">Tetapan pengurusan sambungan</translation>
 <translation id="4668325077104657568">Tetapan imej lalai</translation>
 <translation id="4670865688564083639">Minimum:</translation>
@@ -2048,6 +2068,11 @@
       Cadangan ini diambil secara jauh daripada pelayan Google.
 
       Sekiranya tetapan ini ditetapkan kepada palsu, cadangan tidak akan diambil atau dipaparkan.</translation>
+<translation id="4759650396863318477">Membenarkan anda menetapkan tempoh masa dalam milisaat. Sepanjang tempoh ini, pengguna akan dimaklumi bahawa <ph name="PRODUCT_NAME" /> mesti dilancarkan semula atau bahawa peranti <ph name="PRODUCT_OS_NAME" /> mesti dimulakan semula untuk menerapkan kemas kini yang belum selesai.
+
+      Sepanjang tempoh masa ini, pengguna akan dimaklumi berulang kali tentang keperluan mengemas kini. Untuk peranti <ph name="PRODUCT_OS_NAME" />, pemberitahuan mula semula akan dipaparkan dalam dulang sistem menurut dasar <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />. Untuk penyemak imbas <ph name="PRODUCT_NAME" />, menu apl akan berubah untuk menunjukkan pelancaran semula diperlukan apabila satu pertiga daripada tempoh pemberitahuan telah berlalu. Pemberitahuan ini berubah warna apabila dua pertiga daripada tempoh pemberitahuan telah berlalu dan sekali lagi apabila tempoh penuh pemberitahuan telah tamat. Pemberitahuan tambahan yang didayakan oleh dasar <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> akan mengikut jadual yang sama ini.
+
+      Jika tidak ditetapkan, tempoh lalai selama 345,600,000 milisaat (empat hari) digunakan untuk peranti <ph name="PRODUCT_OS_NAME" /> dan 604,800,000 milisaat (satu minggu) untuk <ph name="PRODUCT_NAME" />.</translation>
 <translation id="4788252609789586009">Mendayakan ciri Autolengkap <ph name="PRODUCT_NAME" /> dan membolehkan pengguna mengisikan maklumat kad kredit dalam borang web secara automatik dengan menggunakan maklumat yang disimpan sebelum itu.
 
       Jika tetapan ini dilumpuhkan, Autolengkap tidak akan mencadangkan atau mengisikan maklumat kad kredit atau menyimpan maklumat kad kredit tambahan yang mungkin diserahkan oleh pengguna semasa menyemak imbas web.
@@ -2255,6 +2280,15 @@
           Jika dasar ini dibiarkan tanpa ditetapkan, nilai lalai global akan digunakan untuk semua tapak sama ada dari dasar 'DefaultNotificationsSetting' jika ia ditetapkan atau konfigurasi peribadi pengguna jika sebaliknya.</translation>
 <translation id="5213038356678567351">Tapak web yang tidak akan mencetuskan penukaran penyemak imbas.</translation>
 <translation id="5219844027738217407">Untuk apl Android, dasar ini memberi kesan kepada mikrofon sahaja. Apabila dasar ini ditetapkan kepada benar, mikrofon akan diredam untuk semua apl Android, tanpa pengecualian.</translation>
+<translation id="5221394278852982313">Membolehkan anda menetapkan senarai url yang menentukan tapak yang akan diberikan kebenaran secara automatik untuk mengakses peranti USB dengan ID vendor dan produk yang dinyatakan. Setiap item dalam senarai mesti mengandungi peranti dan juga url untuk menjadikan dasar ini sah. Setiap item dalam peranti boleh mengandungi medan ID vendor dan ID produk. Mana-mana ID yang tidak dimasukkan akan dikendalikan sebagai kad bebas dengan satu pengecualian dan pengecualian itu ialah ID produk tidak boleh dinyatakan jika ID vendor juga tidak dinyatakan. Jika tidak, dasar ini tidak akan sah dan akan diabaikan.
+
+        Model kebenaran USB menggunakan URL tapak yang meminta ("URL yang meminta") dan URL tapak bingkai tahap tinggi ("URL yang membenamkan") untuk memberikan kebenaran kepada URL yang meminta untuk mengakses peranti USB. URL yang meminta mungkin berbeza daripada URL yang membenamkan apabila tapak yang meminta dimuatkan dalam iframe. Oleh itu, medan "url" boleh mengandungi hingga dua rentetan URL yang dihadkan oleh koma untuk menyatakan URL yang meminta dan yang membenamkan. Jika hanya satu URL dinyatakan, maka akses kepada peranti USB yang sepadan akan diberikan apabila URL tapak yang meminta sepadan dengan URL ini tanpa mengira status pembenaman. URL dalam "url" mestilah URL yang sah, jika tidak dasar ini akan diabaikan.
+
+        Jika dasar ini dibiarkan tanpa ditetapkan, nilai lalai global akan digunakan untuk semua tapak sama ada daripada dasar 'DefaultWebUsbGuardSetting' jika dasar ini ditetapkan, atau konfigurasi peribadi pengguna jika sebaliknya.
+
+        Pola URL dalam dasar ini tidak boleh bercanggah dengan pola yang dikonfigurasikan melalui WebUsbBlockedForUrls. Jika terdapat percanggahan, dasar ini akan diutamakan berbanding WebUsbBlockedForUrls dan WebUsbAskForUrls.
+
+        Nilai untuk dasar ini dan dasar DeviceWebUsbAllowDevicesForUrls digabungkan.</translation>
 <translation id="5228316810085661003">Penangguhan log masuk automatik akaun setempat peranti.
 
       Jika dasar |DeviceLocalAccountAutoLoginId| tidak ditetapkan, dasar ini tidak mempunyai sebarang kesan. Jika tidak:
@@ -3000,6 +3034,21 @@
 
       Jika dasar ini ditetapkan kepada ''Jangan benarkan pengguna mengurus sijil", pengguna tidak akan dapat mengurus sijil, mereka hanya boleh melihat sijil.</translation>
 <translation id="6573305661369899995">Tetapkan sumber luaran sekatan URL</translation>
+<translation id="6583851521569686409">Mengkonfigurasi senarai pencetak.
+
+      Dasar ini membolehkan pentadbir menyediakan konfigurasi pencetak untuk
+      pengguna mereka.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> dan <ph name="PRINTER_DESCRIPTION" /> ialah rentetan berbentuk bebas yang boleh disesuaikan untuk memudahkan pemilihan pencetak. <ph name="PRINTER_MANUFACTURER" /> dan <ph name="PRINTER_MODEL" /> berfungsi untuk memudahkan pengenalpastian pencetak oleh pengguna akhir. Maklumat ini mewakili pengeluar dan model pencetak. <ph name="PRINTER_URI" /> haruslah alamat yang boleh dihubungi daripada komputer pelanggan termasuk <ph name="URI_SCHEME" />, <ph name="URI_PORT" />dan <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> tidak diwajibkan. Jika disediakan, maklumat ini digunakan untuk membantu pentadbir menyahpendua pencetak <ph name="ZEROCONF_DISCOVERY" />.
+
+      Sama ada <ph name="PRINTER_EFFECTIVE_MODEL" /> harus mengandungi nama pencetak atau <ph name="PRINTER_AUTOCONF" /> harus ditetapkan kepada benar. Pencetak yang mempunyai kedua-dua sifat atau tiada mana-mana sifat akan diabaikan.
+
+      Penyediaan pencetak selesai apabila pencetak digunakan buat kali pertama.  PPD tidak dimuat turun sehingga pencetak digunakan.  Selepas itu, PPD yang kerap digunakan akan dicache.
+
+      Dasar ini tidak mempengaruhi sama ada pengguna boleh mengkonfigurasi pencetak pada peranti individu.  Dasar ini bertujuan untuk dijadikan tambahan kepada konfigurasi pencetak oleh pengguna individu.
+
+      Untuk peranti yang diurus oleh Active Directory, dasar ini menyokong perluasan <ph name="MACHINE_NAME_VARIABLE" /> kepada nama mesin Active Directory atau subrentetan nama tersebut. Contohnya, jika nama mesin ialah <ph name="MACHINE_NAME_EXAMPLE" />, maka <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> akan digantikan oleh 4 aksara yang bermula selepas kedudukan ke-6, iaitu <ph name="MACHINE_NAME_PART_EXAMPLE" />. Harap maklum bahawa kedudukan tersebut adalah berasaskan sifar.
+      </translation>
 <translation id="6598235178374410284">Imej avatar pengguna</translation>
 <translation id="6603004149426829878">Sentiasa hantar sebarang isyarat lokasi yang tersedia kepada pelayan semasa menyelesaikan zon waktu</translation>
 <translation id="6628120204569232711">Laporkan status storan</translation>
@@ -4368,6 +4417,8 @@
 <translation id="915194831143859291">Jika dasar ini ditetapkan kepada palsu atau tidak dikonfigurasikan, <ph name="PRODUCT_OS_NAME" /> akan membenarkan pengguna mematikan peranti.
       Jika dasar ini ditetapkan kepada benar, <ph name="PRODUCT_OS_NAME" /> akan mencetus but semula apabila pengguna mematikan peranti. <ph name="PRODUCT_OS_NAME" /> menggantikan semua kejadian bagi butang matikan dalam UI oleh butang but semula. Jika pengguna mematikan peranti menggunakan butang kuasa, peranti tidak akan but semula secara automatik, walaupun dasar didayakan.</translation>
 <translation id="9152473318295429890">Dayakan cadangan kontekstual halaman web yang berkaitan</translation>
+<translation id="9153446010242995516">Undur dan kekal pada versi sasaran jika versi OS lebih baharu daripada versi sasaran. Cuba bawa ke depan konfigurasi tahap peranti (termasuk bukti kelayakan rangkaian) melalui proses pengunduran, jika boleh, tetapi lakukan pengunduran dengan powerwash penuh walaupun pemulihan data tidak boleh dilakukan (kerana versi sasaran tidak meyokong pemulihan data atau kerana perubahan undur yang tidak serasi).
+          Disokong pada <ph name="PRODUCT_OS_NAME" /> versi 75 ke atas. Untuk klien lama, nilai ini bermakna pengunduran telah dilumpuhkan.</translation>
 <translation id="9158929520101169054">Benarkan Berbilang Log Masuk Dalam Penyemak Imbas</translation>
 <translation id="9159126470527871268">Maklumi pengguna bahawa <ph name="PRODUCT_NAME" /> mesti dilancarkan semula atau <ph name="PRODUCT_OS_NAME" /> mesti dimulakan semula untuk menerapkan kemas kini yang belum selesai.
 
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index ff4dae54..d4b98392 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -1132,6 +1132,15 @@
           Als dit beleid niet is ingesteld, heeft dit geen invloed op het gedrag van de specifiekere beleidsregels.</translation>
 <translation id="2987155890997901449">ARC inschakelen</translation>
 <translation id="2987227569419001736">Gebruik van de Web Bluetooth API beheren</translation>
+<translation id="2990018289267778247">Als dit beleid is ingesteld op 'true', worden toegankelijkheidsopties altijd weergegeven in het systeemvakmenu.
+
+          Als dit beleid is ingesteld op 'false', worden toegankelijkheidsopties nooit weergegeven in het systeemvakmenu.
+
+          Als je dit beleid instelt, kunnen gebruikers dit niet wijzigen of negeren.
+
+          Als dit beleid niet is ingesteld, worden toegankelijkheidsopties niet weergegeven in het systeemvakmenu, maar kan de gebruiker er via de pagina Instellingen voor zorgen dat de toegankelijkheidsopties worden weergegeven.
+
+          Als de toegankelijkheidsfuncties zijn ingeschakeld (via een andere manier, zoals een sleutelcombinatie), worden de toegankelijkheidsopties altijd weergegeven in het systeemvakmenu.</translation>
 <translation id="3011301228198307065">Hiermee stel je de standaard-URL voor de homepage in <ph name="PRODUCT_NAME" /> in en voorkom je dat gebruikers deze kunnen wijzigen.
 
           De homepage is de pagina die wordt geopend met de startknop. Het beleid RestoreOnStartup bepaalt welke pagina's worden geopend wanneer de browser wordt opgestart.
@@ -1454,6 +1463,7 @@
         Dit beleid wordt gebruikt door cloud-beleidsinschrijving voor machinebereik op desktop en kan worden ingesteld via register of GPO op Windows, plist op Mac en JSON-beleidsbestand op Linux.</translation>
 <translation id="3660562134618097814">SAML IdP-cookies overdragen tijdens het inloggen</translation>
 <translation id="3701121231485832347">Beheert instellingen die specifiek zijn voor <ph name="PRODUCT_OS_NAME" />-apparaten die via <ph name="MS_AD_NAME" /> worden beheerd.</translation>
+<translation id="3702518095257671450">Externe bevestiging</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (Het veld met één regel is beëindigd en wordt in de toekomst verwijderd. Gebruik het tekstvak met meerdere regels hieronder.)</translation>
 <translation id="3709266154059827597">Zwarte lijst voor het installeren van extensies configureren</translation>
 <translation id="3711895659073496551">Onderbreken</translation>
@@ -1842,6 +1852,15 @@
 
           Dit beleid wordt alleen gerespecteerd als het beleid 'DefaultSearchProviderEnabled' is ingeschakeld.</translation>
 <translation id="4285674129118156176">Toestaan dat niet-gelieerde gebruikers ARC gebruiken</translation>
+<translation id="4289903996435140853">Hiermee kun je een lijst met URL's instellen die aangeven welke sites automatisch toegang krijgen tot een USB-apparaat met de opgegeven leverancier- en product-ID. Het beleid is alleen geldig als elk item in de lijst zowel apparaten als URL's bevat. Elk item in apparaten kan een veld voor leverancier-ID en een veld voor product-ID bevatten. Een ID die is weggelaten, wordt als wildcard behandeld, met één uitzondering: er mag geen product-ID worden opgegeven zonder dat er ook een leverancier-ID is opgegeven. Anders is het beleid niet geldig. Ongeldige beleidswaarden worden genegeerd.
+
+        Het USB-toestemmingsmodel gebruikt de URL van de site die de aanvraag indient ('aanvragende URL') en de URL van de framesite op hoofdniveau ('insluitings-URL') om de aanvragende URL toegang te geven tot het USB-apparaat. Wanneer de aanvragende site in een iframe wordt geladen, is het mogelijk dat de aanvragende URL en de insluitings-URL niet hetzelfde zijn. Daarom kan het veld voor URL's maximaal twee, door een komma gescheiden URL-tekenreeksen bevatten om respectievelijk de aanvragende URL en insluitings-URL op te geven. Als er slechts één URL wordt opgegeven, wordt toegang tot de bijbehorende USB-apparaten gegeven wanneer de URL van de aanvragende site overeenkomt met deze URL, ongeacht de insluitingsstatus. De URL's in het veld voor URL's moeten geldige URL's zijn. Als dit niet het geval is, wordt het beleid genegeerd.
+
+        Als dit beleid niet is ingesteld, wordt de algemene standaardwaarde gebruikt voor alle sites. Deze vind je in het beleid DefaultWebUsbGuardSetting (als dit is ingesteld) of in de persoonlijke configuratie van de gebruiker.
+
+        De URL-patronen in dit beleid mogen geen conflict vormen met de patronen die zijn ingesteld via WebUsbBlockedForUrls. Als er een conflict is, krijgt dit beleid voorrang op WebUsbBlockedForUrls en WebUsbAskForUrls.
+
+        Waarden voor dit beleid en het beleid WebUsbAllowDevicesForUrls worden samengevoegd.</translation>
 <translation id="4298509794364745131">Specificeert de lijst met apps die kunnen worden ingeschakeld als notitie-app op het <ph name="PRODUCT_OS_NAME" />-vergrendelingsscherm.
 
       Als de gewenste notitie-app is ingeschakeld op het vergrendelingsscherm, bevat het vergrendelingsscherm een UI-element om de gewenste notitie-app te starten.
@@ -1993,6 +2012,7 @@
 <translation id="4639407427807680016">Namen van de hosts voor systeemeigen berichten die moeten worden vrijgesteld van de zwarte lijst</translation>
 <translation id="4650759511838826572">URL-protocolschema's uitschakelen</translation>
 <translation id="465099050592230505">URL van zakelijke webwinkel (verouderd)</translation>
+<translation id="4661889655253181651">Met instellingen voor content kun je opgeven hoe content van een bepaald type (zoals cookies, afbeeldingen of JavaScript) wordt verwerkt.</translation>
 <translation id="4665897631924472251">Instellingen voor extensiebeheer</translation>
 <translation id="4668325077104657568">Standaardinstelling voor afbeeldingen</translation>
 <translation id="4670865688564083639">Minimum:</translation>
@@ -2037,6 +2057,11 @@
       Deze suggesties worden extern via Google-servers opgehaald.
 
       Als dit is ingesteld op 'False', kunnen er geen suggesties worden opgehaald of weergegeven.</translation>
+<translation id="4759650396863318477">Hiermee kun je de periode in milliseconden instellen waarin gebruikers een melding ontvangen dat <ph name="PRODUCT_NAME" /> opnieuw moet worden gestart of dat een <ph name="PRODUCT_OS_NAME" />-apparaat opnieuw moet worden opgestart om een in behandeling zijnde update toe te passen.
+
+      Gedurende deze periode krijgt de gebruiker regelmatig de melding dat er een update moet worden uitgevoerd. In het geval van <ph name="PRODUCT_OS_NAME" />-apparaten wordt een melding over opnieuw opstarten weergegeven in het systeemvak, in overeenstemming met het <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />-beleid. In het geval van <ph name="PRODUCT_NAME" />-browsers wordt het app-menu gewijzigd om aan te geven dat er opnieuw moet worden opgestart zodra een derde van de meldingsperiode is verstreken. Deze melding krijgt een andere kleur zodra twee derde van de meldingsperiode is verstreken en dit gebeurt nogmaals als de volledige periode is verstreken. Hetzelfde schema wordt gehanteerd voor aanvullende meldingen die door het <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />-beleid zijn ingeschakeld.
+
+      Als dit beleid niet is ingesteld, wordt de standaardperiode van 345.600.000 milliseconden (vier dagen) voor <ph name="PRODUCT_OS_NAME" />-apparaten en een periode van 604.800.000 milliseconden (één week) voor <ph name="PRODUCT_NAME" /> gebruikt.</translation>
 <translation id="4788252609789586009">Hiermee wordt de functie 'Automatisch aanvullen' van <ph name="PRODUCT_NAME" /> ingeschakeld zodat gebruikers creditcardgegevens automatisch kunnen invullen op webformulieren aan de hand van eerder opgeslagen gegevens.
 
       Als deze instelling is uitgeschakeld, worden er nooit creditcardgegevens voorgesteld of ingevuld door 'Automatisch aanvullen'. Er worden ook geen aanvullende creditcardgegevens opgeslagen die de gebruiker mogelijk verzendt terwijl deze browset op internet.
@@ -2246,6 +2271,15 @@
           Als dit beleid niet wordt ingesteld, wordt de algemene standaardwaarde gebruikt voor alle sites op basis van het beleid 'DefaultNotificationsSetting' (als dit is ingesteld) of anders op basis van de configuratie van de gebruiker.</translation>
 <translation id="5213038356678567351">Websites die nooit een schakeling tussen browsers veroorzaken.</translation>
 <translation id="5219844027738217407">Voor Android-apps is dit beleid alleen van invloed op de microfoon. Wanneer dit beleid is ingesteld op 'True', wordt voor alle Android-apps, zonder uitzondering, de microfoon gedempt.</translation>
+<translation id="5221394278852982313">Hiermee kun je een lijst met URL's instellen die aangeven welke sites automatisch toegang krijgen tot een USB-apparaat met de opgegeven leverancier- en product-ID. Het beleid is alleen geldig als elk item in de lijst zowel apparaten als URL's bevat. Elk item in apparaten kan een veld voor leverancier-ID en een veld voor product-ID bevatten. Een ID die is weggelaten, wordt als wildcard behandeld, met één uitzondering: er mag geen product-ID worden opgegeven zonder dat er ook een leverancier-ID is opgegeven. Anders is het beleid niet geldig. Ongeldige beleidswaarden worden genegeerd.
+
+        Het USB-toestemmingsmodel gebruikt de URL van de site die de aanvraag indient ('aanvragende URL') en de URL van de framesite op hoofdniveau ('insluitings-URL') om de aanvragende URL toegang te geven tot het USB-apparaat. Wanneer de aanvragende site in een iframe wordt geladen, is het mogelijk dat de aanvragende URL en de insluitings-URL niet hetzelfde zijn. Daarom kan het veld voor URL's maximaal twee, door een komma gescheiden URL-tekenreeksen bevatten om respectievelijk de aanvragende URL en insluitings-URL op te geven. Als er slechts één URL wordt opgegeven, wordt toegang tot de bijbehorende USB-apparaten gegeven wanneer de URL van de aanvragende site overeenkomt met deze URL, ongeacht de insluitingsstatus. De URL's in het veld voor URL's moeten geldige URL's zijn. Als dit niet het geval is, wordt het beleid genegeerd.
+
+        Als dit beleid niet is ingesteld, wordt de algemene standaardwaarde gebruikt voor alle sites. Deze vind je in het beleid DefaultWebUsbGuardSetting (als dit is ingesteld) of in de persoonlijke configuratie van de gebruiker.
+
+        De URL-patronen in dit beleid mogen geen conflict vormen met de patronen die zijn ingesteld via WebUsbBlockedForUrls. Als er een conflict is, krijgt dit beleid voorrang op WebUsbBlockedForUrls en WebUsbAskForUrls.
+
+        Waarden voor dit beleid en het beleid DeviceWebUsbAllowDevicesForUrls worden samengevoegd.</translation>
 <translation id="5228316810085661003">De vertraging voor automatisch inloggen op het lokale account op het apparaat.
 
       Als het beleid |DeviceLocalAccountAutoLoginId| niet is ingesteld, heeft dit beleid geen effect. Anders:
@@ -2977,6 +3011,20 @@
 
       Als dit beleid is ingesteld op 'Gebruikers niet toestaan certificaten te beheren', kunnen gebruikers geen certificaten beheren. Ze kunnen certificaten alleen bekijken.</translation>
 <translation id="6573305661369899995">Een externe bron voor URL-beperkingen instellen</translation>
+<translation id="6583851521569686409">Hiermee wordt een lijst met printers geconfigureerd.
+
+      Met dit beleid kunnen beheerders hun gebruikers voorzien van printerconfiguraties.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> en <ph name="PRINTER_DESCRIPTION" /> zijn vrije tekenreeksen die kunnen worden aangepast om de printerselectie te vereenvoudigen. <ph name="PRINTER_MANUFACTURER" /> en <ph name="PRINTER_MODEL" /> zijn bedoeld om de printeridentificatie door eindgebruikers te vereenvoudigen. Ze staan voor de fabrikant en het model van de printer. <ph name="PRINTER_URI" /> moet een adres zijn dat bereikbaar is vanaf een clientcomputer, inclusief <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> en <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> is optioneel. Als de waarde is opgegeven, wordt deze gebruikt om <ph name="ZEROCONF_DISCOVERY" />-printers te dedupliceren.
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" /> moet de naam van de printer bevatten of <ph name="PRINTER_AUTOCONF" /> moet zijn ingesteld op 'true'. Printers met beide of geen van de eigenschappen worden genegeerd.
+
+      De instellingen van de printer worden voltooid wanneer de printer voor het eerst wordt gebruikt.  PPD's worden pas gedownload wanneer de printer wordt gebruikt.  Daarna worden veelgebruikte PPD's opgeslagen in het cachegeheugen.
+
+      Dit beleid is niet van invloed op de mogelijkheid van gebruikers om printers op afzonderlijke apparaten in te stellen.  Het is bedoeld als aanvulling op de printerinstellingen van afzonderlijke gebruikers.
+
+      Voor apparaten die via Active Directory worden beheerd, ondersteunt dit beleid de uitbreiding van <ph name="MACHINE_NAME_VARIABLE" /> naar de naam van de Active Directory-machine of naar een subtekenreeks daarvan. Als de machinenaam bijvoorbeeld <ph name="MACHINE_NAME_EXAMPLE" /> is, wordt <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> vervangen door de vier tekens vanaf de zesde positie, oftewel <ph name="MACHINE_NAME_PART_EXAMPLE" />. Houd er rekening mee dat de positie op nul is gebaseerd.
+      </translation>
 <translation id="6598235178374410284">Avatarafbeelding van gebruiker</translation>
 <translation id="6603004149426829878">Beschikbare locatiesignalen altijd verzenden naar de server wanneer de tijdzone wordt bepaald</translation>
 <translation id="6628120204569232711">Opslagstatus rapporteren</translation>
@@ -4318,6 +4366,8 @@
 <translation id="915194831143859291">Als dit beleid wordt ingesteld op 'False' of niet wordt geconfigureerd, staat <ph name="PRODUCT_OS_NAME" /> de gebruiker toe het apparaat af te sluiten.
       Als dit beleid wordt ingesteld op 'True', activeert <ph name="PRODUCT_OS_NAME" /> een herstart wanneer de gebruiker het apparaat afsluit. <ph name="PRODUCT_OS_NAME" /> vervangt alle instanties van afsluitknoppen in de gebruikersinterface door herstartknoppen. Als de gebruiker het apparaat afsluit met de aan/uit-knop, wordt het apparaat niet automatisch opnieuw opgestart, ook niet wanneer het beleid is ingeschakeld.</translation>
 <translation id="9152473318295429890">Contextuele suggesties van gerelateerde webpagina's inschakelen</translation>
+<translation id="9153446010242995516">Herstel en blijf op de doelversie als de OS-versie nieuwer is dan de doelversie. Probeer indien mogelijk de instellingen op apparaatniveau (inclusief de inloggegevens voor het netwerk) over te dragen via het rollbackproces, maar voer de rollback uit met een volledige powerwash, zelfs wanneer de gegevens niet kunnen worden hersteld (omdat de doelversie geen ondersteuning biedt om gegevens te herstellen of omdat de wijziging niet werkt met eerdere versies).
+          Wordt ondersteund door <ph name="PRODUCT_OS_NAME" /> versie 75 en hoger. Voor oudere clients betekent deze waarde dat rollback is uitgeschakeld.</translation>
 <translation id="9158929520101169054">Toegang tot meerdere accounts toestaan in de browser</translation>
 <translation id="9159126470527871268">Hiermee laat je gebruikers weten dat <ph name="PRODUCT_NAME" /> of <ph name="PRODUCT_OS_NAME" /> opnieuw moet worden opgestart om een beschikbare update toe te passen.
 
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 40b17d9..ff10e3c 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -1101,6 +1101,15 @@
           Se esta política não for definida, o comportamento das políticas mais específicas não será afetado.</translation>
 <translation id="2987155890997901449">Ativar ARC</translation>
 <translation id="2987227569419001736">Controla o uso da API Web Bluetooth</translation>
+<translation id="2990018289267778247">Se esta política for definida como verdadeira, as opções de acessibilidade sempre aparecerão no menu da bandeja do sistema.
+
+          Se esta política for definida como falsa, as opções de acessibilidade nunca aparecerão no menu da bandeja do sistema.
+
+          Se você definir esta política, os usuários não poderão alterá-la ou substituí-la.
+
+          Se esta política não for definida, as opções de acessibilidade não aparecerão no menu da bandeja do sistema, mas o usuário poderá fazer com que elas apareçam usando a página "Configurações".
+
+          Quando os recursos de acessibilidade são ativados por outros meios (por exemplo, por uma combinação de teclas), as opções de acessibilidade sempre são exibidas no menu da bandeja do sistema.</translation>
 <translation id="3011301228198307065">Configura o URL padrão da página inicial no <ph name="PRODUCT_NAME" /> e impede os usuários de alterá-lo.
 
           A página inicial é aquela aberta pelo botão "Página inicial". As páginas que são abertas na inicialização são controladas pelas políticas RestoreOnStartup.
@@ -1413,6 +1422,7 @@
         Esta política é usada na inscrição no gerenciamento em nuvem do escopo da máquina no computador desktop e pode ser definida por registro ou GPO no Windows, por plist no Mac e por arquivo de política JSON no Linux.</translation>
 <translation id="3660562134618097814">Transferir cookies do IDP de SAML durante o login</translation>
 <translation id="3701121231485832347">Controla configurações específicas de dispositivos <ph name="PRODUCT_OS_NAME" /> gerenciados pelo <ph name="MS_AD_NAME" />.</translation>
+<translation id="3702518095257671450">Atestado remoto</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" />: o campo de linha única é obsoleto e será removido no futuro. Comece a usar a caixa de texto de várias linhas abaixo.</translation>
 <translation id="3709266154059827597">Configurar a lista de proibições de instalação da extensão</translation>
 <translation id="3711895659073496551">Suspender</translation>
@@ -1798,6 +1808,15 @@
 
           Esta política só é seguida se a política "DefaultSearchProviderEnabled" estiver ativada.</translation>
 <translation id="4285674129118156176">Permitir que usuários sem afiliação utilizem o ARC</translation>
+<translation id="4289903996435140853">Permite que você defina uma lista de URLs que especifica quais sites receberão automaticamente permissão para acessar um dispositivo USB com os IDs de fornecedor e produto informados. Cada item da lista precisa conter os dispositivos e URLs para que a política seja válida. Cada item dos dispositivos pode conter um campo de ID de fornecedor e ID de produto. Os IDs omitidos são tratados como um caractere curinga com uma exceção, e isso impede a especificação de um ID de produto sem também especificar um ID de fornecedor. Caso contrário, a política não será válida e será ignorada.
+
+        O modelo de permissão USB usa o URL do site solicitante ("URL solicitante") e o URL do site de frame de nível superior ("URL de incorporação") para conceder permissão ao URL solicitante para acessar o dispositivo USB. O URL solicitante pode ser diferente do URL de incorporação quando o site solicitante está carregado em um iframe. Portanto, o campo "URLs" pode conter até duas strings de URL delimitadas por uma vírgula para especificar os URLs solicitante e de incorporação, respectivamente. Se apenas um URL for especificado, o acesso aos dispositivos USB correspondentes será concedido quando o URL do site solicitante coincidir com esse URL independentemente do status de incorporação. Os URLs contidos em "URLs" precisam ser válidos. Caso contrário, a política será ignorada.
+
+        Se essa política não for definida, o valor padrão global será usado para todos os sites na política "DefaultWebUsbGuardSetting", caso ela esteja definida, ou na configuração pessoal do usuário.
+
+        Os padrões de URL dessa política não devem entrar em conflito com os configurados por meio de WebUsbBlockedForUrls. Se houver um conflito, essa política terá precedência sobre WebUsbBlockedForUrls e WebUsbAskForUrls.
+
+        Os valores dessa política e da política WebUsbAllowDevicesForUrls são mesclados.</translation>
 <translation id="4298509794364745131">Especifica uma lista de apps que podem ser ativados como apps de anotação na tela de bloqueio do <ph name="PRODUCT_OS_NAME" />.
 
       Se o app de anotação preferencial for permitido na tela de bloqueio, essa tela mostrará o elemento de IU para abrir o app de anotação preferencial.
@@ -1941,6 +1960,7 @@
 <translation id="4639407427807680016">Nomes dos hosts de mensagens nativas a serem mantidos fora da lista de proibições</translation>
 <translation id="4650759511838826572">Desativar esquemas do protocolo de URL</translation>
 <translation id="465099050592230505">URL da loja on-line da empresa (uso suspenso)</translation>
+<translation id="4661889655253181651">As configurações de conteúdo permitem que você especifique como o conteúdo de um tipo específico (por exemplo, cookies, imagens ou JavaScript) é tratado.</translation>
 <translation id="4665897631924472251">Configurações de gerenciamento de extensão</translation>
 <translation id="4668325077104657568">Configuração de imagens padrão</translation>
 <translation id="4670865688564083639">Mínimo:</translation>
@@ -1985,6 +2005,11 @@
       Essas sugestões são buscadas remotamente nos servidores do Google.
 
       Se esta configuração for definida como falsa, as sugestões não serão buscadas nem exibidas.</translation>
+<translation id="4759650396863318477">Permite definir o período, em milésimos de segundo, em que os usuários são notificados de que o <ph name="PRODUCT_NAME" /> ou um dispositivo <ph name="PRODUCT_OS_NAME" /> precisa ser reiniciado para aplicar uma atualização pendente.
+
+      Nesse período, o usuário será informado várias vezes sobre a necessidade de atualização. Para dispositivos <ph name="PRODUCT_OS_NAME" />, uma notificação de reinicialização é exibida na bandeja do sistema de acordo com a política <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />. Para navegadores <ph name="PRODUCT_NAME" />, o menu de apps muda para indicar que uma reinicialização é necessária após o decorrer de um terço do período de notificação. Essa notificação muda de cor após dois terços do período de notificação e mais uma vez quando todo o período de notificação é concluído. As outras notificações ativadas pela política <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> seguem essa mesma programação.
+
+      Se a política não for definida, o período padrão de 345.600.000 milésimos de segundo (quatro dias) será usado para dispositivos <ph name="PRODUCT_OS_NAME" />, e o de 604.800.000 milésimos de segundo (uma semana) será usado para o <ph name="PRODUCT_NAME" />.</translation>
 <translation id="4788252609789586009">Ativa o recurso de preenchimento automático do <ph name="PRODUCT_NAME" /> e permite que os usuários preencham automaticamente informações sobre cartão de crédito em formulários da Web usando informações previamente armazenadas.
 
       Se esta configuração estiver desativada, o preenchimento automático nunca sugerirá ou preencherá informações sobre cartão de crédito, nem salvará outras informações de cartão de crédito que o usuário possa enviar ao navegar na Web.
@@ -2174,6 +2199,15 @@
 <translation id="5208240613060747912">Permite que você defina uma lista de padrões de URL que especificam sites sem permissão para exibir notificações. Se esta política for deixada sem definição, o valor padrão global será utilizado para todos os sites a partir da política "DefaultNotificationsSetting", caso esta tenha sido definida, ou a partir das configurações pessoais do usuário, caso não tenha sido definida.</translation>
 <translation id="5213038356678567351">Sites que nunca acionarão uma troca de navegador.</translation>
 <translation id="5219844027738217407">Em apps Android, esta política afeta somente o microfone. Quando esta política é definida como true, o microfone é silenciado para todos os apps Android, sem exceções.</translation>
+<translation id="5221394278852982313">Permite que você defina uma lista de URLs que especifica quais sites receberão automaticamente permissão para acessar um dispositivo USB com os IDs de fornecedor e produto informados. Cada item da lista precisa conter os dispositivos e URLs para que a política seja válida. Cada item dos dispositivos pode conter um campo de ID de fornecedor e ID de produto. Os IDs omitidos são tratados como um caractere curinga com uma exceção, e isso impede a especificação de um ID de produto sem também especificar um ID de fornecedor. Caso contrário, a política não será válida e será ignorada.
+
+        O modelo de permissão USB usa o URL do site solicitante ("URL solicitante") e o URL do site de frame de nível superior ("URL de incorporação") para conceder permissão ao URL solicitante para acessar o dispositivo USB. O URL solicitante pode ser diferente do URL de incorporação quando o site solicitante está carregado em um iframe. Portanto, o campo "URLs" pode conter até duas strings de URL delimitadas por uma vírgula para especificar os URLs solicitante e de incorporação, respectivamente. Se apenas um URL for especificado, o acesso aos dispositivos USB correspondentes será concedido quando o URL do site solicitante coincidir com esse URL independentemente do status de incorporação. Os URLs contidos em "URLs" precisam ser válidos. Caso contrário, a política será ignorada.
+
+        Se essa política não for definida, o valor padrão global será usado para todos os sites na política "DefaultWebUsbGuardSetting", caso ela esteja definida, ou na configuração pessoal do usuário.
+
+        Os padrões de URL dessa política não devem entrar em conflito com os configurados por meio de WebUsbBlockedForUrls. Se houver um conflito, essa política terá precedência sobre WebUsbBlockedForUrls e WebUsbAskForUrls.
+
+        Os valores dessa política e da DeviceWebUsbAllowDevicesForUrls são mesclados.</translation>
 <translation id="5228316810085661003">O período de espera para login automático na conta local do dispositivo.
 
       Se a política |DeviceLocalAccountAutoLoginId| não for definida, ela não terá nenhum efeito. Caso contrário:
@@ -2889,6 +2923,20 @@
 
       Se esta política estiver definida para "Não permitir que os usuários gerenciem certificados'', os usuários não poderão gerenciar certificados, mas apenas visualizá-los.</translation>
 <translation id="6573305661369899995">Definir uma fonte externa de restrições de URL</translation>
+<translation id="6583851521569686409">Configura uma lista de impressoras.
+
+      Esta política permite aos administradores fornecer configurações de impressora para os usuários.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> e <ph name="PRINTER_DESCRIPTION" /> são strings de formato livre que podem ser personalizadas para facilitar a seleção da impressora. <ph name="PRINTER_MANUFACTURER" /> e <ph name="PRINTER_MODEL" /> servem para facilitar a identificação da impressora pelos usuários finais. Esses dados representam o fabricante e o modelo da impressora. <ph name="PRINTER_URI" /> deve ser um endereço acessível em um computador cliente, incluindo <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> e <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> é opcional. Se fornecido, será usado para ajudar a eliminar a duplicação de impressoras <ph name="ZEROCONF_DISCOVERY" />.
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" /> precisa conter o nome da impressora, ou <ph name="PRINTER_AUTOCONF" /> deve ser definido como verdadeiro. As impressoras com as duas propriedades ou sem nenhuma serão ignoradas.
+
+      A configuração da impressora é concluída depois que ela é utilizada pela primeira vez.  O download de PPDs só é realizado quando a impressora é utilizada.  Depois disso, os PPDs usados com frequência são armazenados em cache.
+
+      Esta política não afeta a possibilidade de os usuários configurarem impressoras em dispositivos individuais.  Ela tem o objetivo de complementar a configuração de impressoras por usuários individuais.
+
+      Para dispositivos gerenciados pelo Active Directory, esta política permite a expansão de <ph name="MACHINE_NAME_VARIABLE" /> para o nome do computador com o Active Directory ou uma substring correspondente. Por exemplo, se o nome do computador for <ph name="MACHINE_NAME_EXAMPLE" />, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> será substituído pelos quatro caracteres que começam depois da sexta posição, ou seja, <ph name="MACHINE_NAME_PART_EXAMPLE" />. A posição se baseia em zero.
+      </translation>
 <translation id="6598235178374410284">Imagem do avatar do usuário</translation>
 <translation id="6603004149426829878">Sempre enviar qualquer sinal de localização disponível para o servidor ao determinar o fuso horário</translation>
 <translation id="6628120204569232711">Informa o status de armazenamento</translation>
@@ -4205,6 +4253,8 @@
 <translation id="915194831143859291">Se esta política é definida como "false" ou se não é configurada, o <ph name="PRODUCT_OS_NAME" /> permite que o usuário desligue o dispositivo.
       Se esta política é definida como "true", o <ph name="PRODUCT_OS_NAME" /> aciona uma reinicialização quando o usuário desliga o dispositivo. O <ph name="PRODUCT_OS_NAME" /> substitui todas as ocorrências de botões de desligamento da interface de usuário por botões de reinicialização. Se o usuário desliga o dispositivo no botão liga/desliga, ele não é reinicializado automaticamente, mesmo que a política esteja ativa.</translation>
 <translation id="9152473318295429890">Ativa sugestões contextuais de páginas da Web relacionadas</translation>
+<translation id="9153446010242995516">Faça a reversão e permaneça na versão de destino se a versão do SO for mais recente que a de destino. Se possível, tente transferir a configuração do dispositivo (incluindo as credenciais de rede) por meio do processo de reversão. Porém, faça a reversão com o Powerwash completo mesmo se não for possível restaurar os dados, seja porque a versão de destino não é compatível com a restauração de dados ou devido a uma alteração incompatível com versões anteriores.
+          Compatível com o <ph name="PRODUCT_OS_NAME" /> 75 ou versões posteriores. Para clientes com versões anteriores, esse valor significa que a reversão está desativada.</translation>
 <translation id="9158929520101169054">Permitir login múltiplo no navegador</translation>
 <translation id="9159126470527871268">Notifica os usuários de que é preciso reiniciar o <ph name="PRODUCT_NAME" /> ou o <ph name="PRODUCT_OS_NAME" /> para aplicar uma atualização pendente.
 
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 2ce4acc..bac60a5f 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -1102,6 +1102,15 @@
           Если правило не настроено, оно никак не влияет на более подробные правила.</translation>
 <translation id="2987155890997901449">Включить ARC</translation>
 <translation id="2987227569419001736">Контроль использования Web Bluetooth API</translation>
+<translation id="2990018289267778247">Если для правила задано значение True, меню специальных возможностей всегда будет видно в области уведомлений.
+
+          Если для правила указано значение False, это меню не появится.
+
+          Если правило настроено, пользователи не могут изменить или перезаписать его.
+
+          Если правило не настроено, меню специальных возможностей не будет показано в области уведомлений, но пользователи смогут добавить его в настройках.
+
+          Если специальные возможности включены другим способом (например, с помощью комбинации кнопок), меню всегда будет видно в области уведомлений.</translation>
 <translation id="3011301228198307065">Настраивает URL главной страницы по умолчанию в <ph name="PRODUCT_NAME" /> и запрещает пользователям изменять его.
 
           Главная страница открывается при нажатии соответствующей кнопки. Страницы, открывающиеся при запуске браузера, определяются правилом RestoreOnStartup.
@@ -1417,6 +1426,7 @@
         Это правило используется на компьютерах, и в Windows его можно настроить с помощью реестра или групповой политики, в macOS – с помощью PLIST-файла, а в Linux – с помощью файла правил JSON.</translation>
 <translation id="3660562134618097814">Позволяет передавать файлы cookie поставщика услуг аутентификации SAML при входе в аккаунт</translation>
 <translation id="3701121231485832347">Регулирует специальные настройки для устройств <ph name="PRODUCT_OS_NAME" /> под управлением <ph name="MS_AD_NAME" />.</translation>
+<translation id="3702518095257671450">Удаленная проверка</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (Поле, состоящее из одной строки, устарело и в будущем будет удалено. Используйте расположенное ниже текстовое поле, которое содержит несколько строк.)</translation>
 <translation id="3709266154059827597">Настройка черного списка расширений</translation>
 <translation id="3711895659073496551">Спящий режим</translation>
@@ -1795,6 +1805,15 @@
 
           Данная политика действует только в случае, если включена политика 'DefaultSearchProviderEnabled'.</translation>
 <translation id="4285674129118156176">Разрешение неаффилированным пользователям запускать ARC</translation>
+<translation id="4289903996435140853">Позволяет задать список URL для сайтов, которым автоматически будет разрешен доступ к USB-устройству с предоставленными идентификаторами поставщика и продукта. Каждый пункт списка должен включать устройства и URL. Для каждого устройства можно задать идентификатор поставщика и идентификатор продукта. Вместо пропущенного идентификатора используется подстановочный знак с одним исключением – идентификатор товара не может быть указан без идентификатора поставщика. В противном случае правило недействительно и игнорируется.
+
+        В модели разрешения доступа к USB-устройству используется URL сайта, запрашивающего доступ ("запрашивающий URL"), и URL сайта из фрейма верхнего уровня ("встраиваемый URL"). Если сайт, запрашивающий доступ, загружается в окне iframe, эти два URL могут отличаться. Поэтому поле URL может содержать два адреса, указанные через запятую. Когда задан только один URL, доступ к USB-устройствам будет предоставлен, если этот URL совпадает с "запрашивающим URL", независимо от способа встраивания. В поле URL необходимо указывать действительные адреса, иначе правило будет игнорироваться.
+
+        Если это правило не настроено, для всех сайтов используется глобальное значение по умолчанию на основе правила DefaultWebUsbGuardSetting (если оно настроено, в противном случае – на основе пользовательской конфигурации).
+
+        Шаблоны URL в этом правиле не должны противоречить шаблонам, заданным в правиле WebUsbBlockedForUrls. В случае противоречия это правило имеет приоритет над правилами WebUsbBlockedForUrls и WebUsbAskForUrls.
+
+        Значение этого правила объединяется со значением правила WebUsbAllowDevicesForUrls.</translation>
 <translation id="4298509794364745131">Определяет список приложений для заметок, которые могут работать на заблокированном экране <ph name="PRODUCT_OS_NAME" />.
 
       Если приложение соответствует правилу, для его запуска появится специальный элемент интерфейса на заблокированном экране.
@@ -1940,6 +1959,7 @@
 <translation id="4639407427807680016">Те имена хостов обмена сообщениями с оригинальными приложениями, которые следует исключить из черного списка</translation>
 <translation id="4650759511838826572">Отключить протоколы URL</translation>
 <translation id="465099050592230505">URL корпоративного интернет-магазина (больше не поддерживается)</translation>
+<translation id="4661889655253181651">Настройки контента позволяют указать, как должны обрабатываться материалы определенного типа (например, файлы cookie, изображения или скрипты JavaScript).</translation>
 <translation id="4665897631924472251">Позволяет управлять расширениями</translation>
 <translation id="4668325077104657568">Настройка изображений по умолчанию</translation>
 <translation id="4670865688564083639">Минимальное значение:</translation>
@@ -1984,6 +2004,11 @@
       Предложенные страницы загружаются с серверов Google.
 
       Если для правила задано значение False, подсказки появляться не будут.</translation>
+<translation id="4759650396863318477">Позволяет установить период в миллисекундах, в течение которого пользователь будет получать уведомления о том, что для установки обновления нужно перезапустить браузер <ph name="PRODUCT_NAME" /> или устройство <ph name="PRODUCT_OS_NAME" />.
+
+      На устройстве <ph name="PRODUCT_OS_NAME" /> уведомления о необходимости перезапуска появляются в области уведомлений в соответствии с правилом <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />. В браузере <ph name="PRODUCT_NAME" /> меню изменяется по истечении трети заданного периода. Уведомление меняет цвет по истечении двух третей периода и в конце периода. Дополнительные уведомления, которые регулируются правилом <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />, появляются по такой же схеме.
+
+       Если правило не настроено, используется период по умолчанию: 345 600 000 миллисекунд (четыре дня) для устройств <ph name="PRODUCT_OS_NAME" /> и 604 800 000 миллисекунд (одна неделя) для браузера <ph name="PRODUCT_NAME" />.</translation>
 <translation id="4788252609789586009">Правило включает в <ph name="PRODUCT_NAME" /> функцию автозаполнения и разрешает пользователям автоматически заполнять веб-формы, используя ранее сохраненные данные кредитной карты.
 
       Если правило отключено, пользователи не будут видеть предложение заполнить платежную информацию автоматически. Данные кредитных карт, которые пользователи указывают на веб-сайтах, также сохраняться не будут.
@@ -2178,6 +2203,15 @@
 <translation id="5208240613060747912">Задает список шаблонов URL для сайтов, которым запрещено отображать уведомления. Если это правило не настроено, для всех сайтов используется глобальное значение по умолчанию на основе правила DefaultNotificationsSetting (если оно настроено, в противном случае – на основе пользовательской конфигурации).</translation>
 <translation id="5213038356678567351">Сайты, которые никогда не должны открываться в другом браузере</translation>
 <translation id="5219844027738217407">Для приложений Android это правило влияет только на доступ к микрофону. Если для правила задано значение True, для всех без исключения приложений Android микрофон будет недоступен.</translation>
+<translation id="5221394278852982313">Позволяет задать список URL для сайтов, которым автоматически будет разрешен доступ к USB-устройству с предоставленными идентификаторами поставщика и продукта. Каждый пункт списка должен включать устройства и URL. Для каждого устройства можно задать идентификатор поставщика и идентификатор продукта. Вместо пропущенного идентификатора используется подстановочный знак с одним исключением – идентификатор товара не может быть указан без идентификатора поставщика. В противном случае правило недействительно и игнорируется.
+
+        В модели разрешения доступа к USB-устройству используется URL сайта, запрашивающего доступ ("запрашивающий URL"), и URL сайта из фрейма верхнего уровня ("встраиваемый URL"). Если сайт, запрашивающий доступ, загружается в окне iframe, эти два URL могут отличаться. Поэтому поле URL может содержать два адреса, указанные через запятую. Когда задан только один URL, доступ к USB-устройствам будет предоставлен, если этот URL совпадает с "запрашивающим URL", независимо от способа встраивания. В поле URL необходимо указывать действительные адреса, иначе правило будет игнорироваться.
+
+        Если это правило не настроено, для всех сайтов используется глобальное значение по умолчанию на основе правила DefaultWebUsbGuardSetting (если оно настроено, в противном случае – на основе пользовательской конфигурации).
+
+        Шаблоны URL в этом правиле не должны противоречить шаблонам, заданным в правиле WebUsbBlockedForUrls. В случае противоречия это правило имеет приоритет над правилами WebUsbBlockedForUrls и WebUsbAskForUrls.
+
+        Значение этого правила объединяется со значением правила DeviceWebUsbAllowDevicesForUrls.</translation>
 <translation id="5228316810085661003">Задержка автоматического входа в локальный аккаунт.
 
       Если не задано значение для правила |DeviceLocalAccountAutoLoginId|, это правило действовать не будет. В противном случае:
@@ -2906,6 +2940,20 @@
 
       Если выбрано значение "Запретить пользователям управлять сертификатами", пользователи смогут только просматривать сертификаты.</translation>
 <translation id="6573305661369899995">Установить внешний источник ограничений для URL-адресов</translation>
+<translation id="6583851521569686409">Позволяет настроить список принтеров.
+
+      С помощью этого правила администраторы могут настраивать принтеры для пользователей.
+
+      Строки <ph name="PRINTER_DISPLAY_NAME" /> и <ph name="PRINTER_DESCRIPTION" /> заполняются в свободной форме, чтобы пользователям было проще выбрать принтер. Строки <ph name="PRINTER_MANUFACTURER" /> и <ph name="PRINTER_MODEL" /> помогают конечным пользователям идентифицировать принтеры по производителю и модели. В качестве <ph name="PRINTER_URI" /> необходимо указать адрес в сети клиентского компьютера, включая <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> и <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> указывать необязательно, однако этот параметр помогает дедуплицировать принтеры <ph name="ZEROCONF_DISCOVERY" />.
+
+      Необходимо указать название принтера в строке <ph name="PRINTER_EFFECTIVE_MODEL" /> или установить значение True для параметра <ph name="PRINTER_AUTOCONF" />. Если заданы оба этих параметра или не задан ни один из них, принтер будет проигнорирован.
+
+      Настройка принтера завершается после первого использования.  До этого момента PPD-файлы не скачиваются.  В дальнейшем часто используемые PPD-файлы кешируются.
+
+      С помощью этого правила нельзя разрешить или запретить пользователям настраивать принтеры на своих устройствах.  Оно только дополняет настройки пользователей.
+
+      В среде Active Directory для переменной <ph name="MACHINE_NAME_VARIABLE" /> можно добавить значение имени устройства Active Directory или использовать метод substring. Например, если имя устройства – <ph name="MACHINE_NAME_EXAMPLE" />, то переменная <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> будет возвращать значение <ph name="MACHINE_NAME_PART_EXAMPLE" /> (4 символа, начиная с 6-й позиции). Обратите внимание, что отсчет позиции начинается с нуля.
+      </translation>
 <translation id="6598235178374410284">Изображение для профиля пользователя</translation>
 <translation id="6603004149426829878">Для определения часового пояса отправлять все доступные сигналы для определения местоположения на сервер</translation>
 <translation id="6628120204569232711">Отчеты о статусе хранилища</translation>
@@ -4218,6 +4266,8 @@
 <translation id="915194831143859291">Если вы выберете значение False или не станете настраивать правило, <ph name="PRODUCT_OS_NAME" /> позволит пользователю выключать устройство.
       Если вы выберете значение True, <ph name="PRODUCT_OS_NAME" /> будет перезагружать устройство вместо выключения. В интерфейсе <ph name="PRODUCT_OS_NAME" /> все кнопки выключения будут заменены кнопками перезагрузки. Однако если пользователь нажмет кнопку питания, устройство не перезагрузится автоматически, даже если правило настроено.</translation>
 <translation id="9152473318295429890">Правило определяет, увидит ли пользователь предложения похожих веб-страниц</translation>
+<translation id="9153446010242995516">Откатить до целевой версии и оставаться в ней, если установлена более поздняя версия ОС. По возможности перенести конфигурацию на уровне устройства (включая сетевые учетные данные). Выполнить откат и Powerwash, даже если восстановление данных невозможно (так как целевая версия не поддерживает восстановление данных и изменения будут выполнены без сохранения обратной совместимости).
+          Поддерживается на <ph name="PRODUCT_OS_NAME" /> версии 75 и выше. В более ранних версиях эта функция отключает возможность отката.</translation>
 <translation id="9158929520101169054">Разрешить вход в несколько аккаунтов в браузере</translation>
 <translation id="9159126470527871268">Уведомляет пользователя о том, что для установки обновления необходимо перезапустить браузер <ph name="PRODUCT_NAME" /> или устройство <ph name="PRODUCT_OS_NAME" />.
 
diff --git a/components/policy/resources/policy_templates_sv.xtb b/components/policy/resources/policy_templates_sv.xtb
index 93c1d37..4f25271 100644
--- a/components/policy/resources/policy_templates_sv.xtb
+++ b/components/policy/resources/policy_templates_sv.xtb
@@ -1138,6 +1138,15 @@
           När den här principen inte har angetts påverkas inte de mer specifika principerna.</translation>
 <translation id="2987155890997901449">Aktivera ARC</translation>
 <translation id="2987227569419001736">Kontrollera användningen av Web Bluetooth API</translation>
+<translation id="2990018289267778247">Om principen är inställd på sant visas alltid tillgänglighetsalternativ på systemfältsmenyn.
+
+          Om principen är inställd på falskt visas aldrig tillgänglighetsalternativ på systemfältsmenyn.
+
+          Om du anger principen kan användarna inte ändra eller åsidosätta den.
+
+          Om du inte ställer in principen visas inte tillgänglighetsalternativ på systemfältsmenyn, men användaren kan välja att tillgänglighetsalternativen ska visas via sidan för inställningar.
+
+          När tillgänglighetsfunktioner har aktiverats (på andra sätt, t.ex. med en tangentkombination) visas tillgänglighetsalternativ alltid på systemfältsmenyn.</translation>
 <translation id="3011301228198307065">Konfigurerar webbadressen som används som standardstartsida i <ph name="PRODUCT_NAME" /> och förhindrar att användarna ändrar den.
 
           Startsidan är den sida som öppnas med hemknappen. Vilka sidor som öppnas vid start avgörs av principerna i RestoreOnStartup.
@@ -1461,6 +1470,7 @@
         Principen används på stationära datorer för registrering av datorn för molnhantering och kan ställas in via registret eller gruppolicyobjekt på Windows, plist på Mac och en JSON-principfil på Linux.</translation>
 <translation id="3660562134618097814">Överför SAML-cookies från identitetsleverantörer vid inloggning</translation>
 <translation id="3701121231485832347">Styr inställningar för <ph name="PRODUCT_OS_NAME" />-enheter som hanteras med <ph name="MS_AD_NAME" />.</translation>
+<translation id="3702518095257671450">Fjärrattestering</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (Enradsfältet har fasats ut och tas snart bort. Börja använda flerradsfältet i stället.)</translation>
 <translation id="3709266154059827597">Konfigurera svartlista för tilläggsinstallation</translation>
 <translation id="3711895659073496551">Stäng av</translation>
@@ -1848,6 +1858,15 @@
 
           Den här policyn följs endast om policyn DefaultSearchProviderEnabled är aktiverad.</translation>
 <translation id="4285674129118156176">Tillåt oanknutna användare att använda ARC</translation>
+<translation id="4289903996435140853">Gör att du kan ange en lista med webbadresser som styr vilka webbplatser som automatiskt ska ges åtkomstbehörighet till en USB-enhet med angivet leverantörs- och produkt-id. Varje post i listan måste innehålla både enheter och webbadresser för att principen ska gälla. Varje enhetspost kan ha ett fält för leverantörs-id och ett för produkt-id. Om ett id utelämnas fungerar det som om ett jokertecken hade angetts, med ett undantag: det går inte att ange ett produkt-id om inget leverantörs-id har angetts. I så fall blir principen ogiltig och ignoreras.
+
+        Med behörighetsmodellen för USB används webbadressen till den webbplats som begäran kommer från (den ”begärande” webbadressen) och webbadressen till ramen på toppnivå (den ”inbäddande” webbplatsen) när den begärande webbadressen ska ges åtkomstbehörighet till USB-enheten. Den begärande webbadressen behöver inte vara samma som den inbäddande webbadressen, om webbadressen som begäran kommer från har lästs in i en iframe. Därför kan webbadressfältet innehålla upp till två kommaavgränsade strängar som anger den begärande respektive inbäddande webbadressen. Om bara en webbadress har angetts kommer åtkomstbehörighet till USB-enheten att beviljas om den begärande webbadressen matchar denna, oavsett om den har bäddats in eller inte. Webbadresserna i webbadressfältet måste vara giltiga. I annat fall ignoreras principen.
+
+        Om administratören har lämnat principen utan inställning används det globala standardvärdet för alla webbplatser, som hämtas antingen från principen DefaultWebUsbGuardSetting om den har ställts in eller från användarens konfiguration om den inte har det.
+
+        Webbadressmönstren i den här principen får inte överlappa dem som konfigurerats via WebUsbBlockedForUrls. I händelse av konflikt har den här principen företräde framför WebUsbBlockedForUrls och WebUsbAskForUrls.
+
+        Värdena för den här principen och principen DeviceWebUsbAllowDevicesForUrls är sammanslagna.</translation>
 <translation id="4298509794364745131">Anger en lista med anteckningsappar som går att aktivera på låsskärmen i <ph name="PRODUCT_OS_NAME" />.
 
       När den föredragna anteckningsappen har aktiverats på låsskärmen ges möjlighet att starta den appen i gränssnittet på låsskärmen.
@@ -1999,6 +2018,7 @@
 <translation id="4639407427807680016">Namn på de värdar för Native Messaging som ska undantas från svarta listan</translation>
 <translation id="4650759511838826572">Inaktivera protokollscheman för webbadresser</translation>
 <translation id="465099050592230505">Webbadress till företagets webbutik (föråldrad)</translation>
+<translation id="4661889655253181651">Med innehållsinställningarna kan du ange hur innehåll av en viss typ (till exempel cookies, bilder eller JavaScript) ska hanteras.</translation>
 <translation id="4665897631924472251">Inställningar för hantering av tillägg</translation>
 <translation id="4668325077104657568">Standardinställning för bilder</translation>
 <translation id="4670865688564083639">Minst:</translation>
@@ -2043,6 +2063,11 @@
       Förslagen fjärrhämtas från Googles servrar.
 
       Om principen är inställd på falskt kommer inte förslag att hämtas eller visas.</translation>
+<translation id="4759650396863318477">Gör att du kan ställa in i millisekunder under hur lång tid in som användare aviseras om att <ph name="PRODUCT_NAME" /> eller <ph name="PRODUCT_OS_NAME" />-enheten måste startas om när en uppdatering väntar.
+
+      Under den tiden visas upprepade uppmaningar att starta om för användaren. På <ph name="PRODUCT_OS_NAME" />-enheter visas en avisering om att starta om i systemfältet i enlighet med principen <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />. I <ph name="PRODUCT_NAME" />-webbläsare ändras appmenyn för att visa att en omstart behövs när en tredjedel av tidsperioden har gått. Aviseringen byter färg när två tredjedelar av tidsperioden har gått och igen när tidsperioden har löpt ut. För ytterligare aviseringar som aktiveras med principen <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> används samma schema.
+
+      Om principen inte ställs in används som standard tidsperioden 345 600 000 millisekunder (fyra dagar) för <ph name="PRODUCT_OS_NAME" />-enheter och 604 800 000 millisekunder (en vecka) för <ph name="PRODUCT_NAME" />.</translation>
 <translation id="4788252609789586009">Aktiverar funktionen Autofyll i <ph name="PRODUCT_NAME" /> så att användarna kan fylla i webbformulär automatiskt med kreditkortsuppgifter som har sparats sedan tidigare.
 
       Om inställningen inaktiveras visas inga förslag med Autofyll och inga kreditkortsuppgifter fylls i. Ytterligare kreditkortsuppgifter som användaren kan ange på webben sparas inte heller.
@@ -2255,6 +2280,15 @@
           Om policyn inte anges används det globala standardvärdet för alla webbplatser. Standardvärdet hämtas från policyn DefaultNotificationsSetting om den har angetts eller användarens personliga konfiguration om den inte har det.</translation>
 <translation id="5213038356678567351">Webbplatser som aldrig ska aktivera ett webbläsarbyte.</translation>
 <translation id="5219844027738217407">För Android-appar påverkar den här principen endast mikrofonen. När principen är inställd på sant är mikrofonen avstängd i alla Android-appar utan undantag.</translation>
+<translation id="5221394278852982313">Gör att du kan ange en lista över webbadresser som styr vilka webbplatser som automatiskt ska ges åtkomstbehörighet till en USB-enhet med angivet leverantörs- och produkt-id. Varje post i listan måste innehålla både enheter och webbadresser för att principen ska gälla. Varje enhetspost kan ha ett fält för leverantörs-id och ett för produkt-id. Om ett id utelämnas fungerar det som om ett jokertecken hade angetts, med ett undantag: det går inte att ange ett produkt-id om inget leverantörs-id har angetts. I så fall blir principen ogiltig och ignoreras.
+
+        Med behörighetsmodellen för USB används webbadressen till den webbplats som begäran kommer från (den ”begärande” webbadressen) och webbadressen till ramen på toppnivå (den ”inbäddande” webbplatsen) när den begärande webbadressen ska ges åtkomstbehörighet till USB-enheten. Den begärande webbadressen behöver inte vara samma som den inbäddande webbadressen, om webbadressen som begäran kommer från har lästs in i en iframe. Därför kan webbadressfältet innehålla upp till två kommaavgränsade strängar som anger den begärande respektive inbäddande webbadressen. Om bara en webbadress har angetts kommer åtkomstbehörighet till USB-enheten att beviljas om den begärande webbadressen matchar denna, oavsett om den har bäddats in eller inte. Webbadresserna i webbadressfältet måste vara giltiga. I annat fall ignoreras principen.
+
+        Om administratören har lämnat principen utan inställning används det globala standardvärdet för alla webbplatser, som hämtas antingen från principen DefaultWebUsbGuardSetting om den har ställts in eller från användarens konfiguration om den inte har det.
+
+        Webbadressmönstren i den här principen får inte överlappa dem som konfigurerats via WebUsbBlockedForUrls. Vid konflikt har den här principen företräde framför WebUsbBlockedForUrls och WebUsbAskForUrls.
+
+        Värdena för den här principen och principen DeviceWebUsbAllowDevicesForUrls är sammanslagna.</translation>
 <translation id="5228316810085661003">Fördröjning för automatisk inloggning av det lokala kontot på enheten.
 
       Om principen |DeviceLocalAccountAutoLoginId| har lämnats utan inställning har den här principen ingen funktion. I annat fall gäller följande:
@@ -2998,6 +3032,21 @@
 
       Om principen är inställd på Tillåt inte användarna att hantera certifikat kan användarna inte hantera certifikat, bara visa dem.</translation>
 <translation id="6573305661369899995">Ange en extern källa för webbadressbegränsningar</translation>
+<translation id="6583851521569686409">Konfigurerar en lista över skrivare.
+
+      Med hjälp av den här principen kan administratören tillhandahålla
+      skrivarkonfigurationer åt användarna.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> och <ph name="PRINTER_DESCRIPTION" /> är strängar i fritt format som kan anpassas så att det blir enkelt att välja skrivare. <ph name="PRINTER_MANUFACTURER" /> och <ph name="PRINTER_MODEL" /> gör det enklare för användarna att identifiera skrivaren och står för tillverkare och märke. <ph name="PRINTER_URI" />ska vara en adress som går att nå från en klientdator, inklusive <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> och <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> är valfritt. Om det anges används det för att deduplicera <ph name="ZEROCONF_DISCOVERY" />-skrivare.
+
+      Antingen ska <ph name="PRINTER_EFFECTIVE_MODEL" /> innehålla skrivarens namn eller så ska <ph name="PRINTER_AUTOCONF" /> vara inställt på sant. Om en skrivare har båda värdena eller saknar egenskaper ignoreras den.
+
+      Skrivarkonfigureringen slutförs första gången en skrivare används.  Inga PPD-filer laddas ned förrän skrivaren används.  Därefter cachelagras PPD-filer som används ofta.
+
+      Principen påverkar inte om användarna kan konfigurera skrivare på enskilda enheter eller inte.  Den är tänkt att vara ett supplement till de enskilda användarnas skrivarkonfiguration.
+
+      På enheter som hanteras via Active Directory har principen stöd för att utöka <ph name="MACHINE_NAME_VARIABLE" /> till datornamnet i Active Directory eller en delsträng av det. Med datornamnet <ph name="MACHINE_NAME_EXAMPLE" /> skulle till exempel <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> ersättas av de fyra tecknen från och med position nummer sex, d.v.s. <ph name="MACHINE_NAME_PART_EXAMPLE" />. Observera att positionerna räknas från och med noll.
+      </translation>
 <translation id="6598235178374410284">Användarens avatarbild</translation>
 <translation id="6603004149426829878">Skicka alla tillgängliga platssignaler till servern när tidszon fastställs</translation>
 <translation id="6628120204569232711">Rapportera status för lagringsenheter</translation>
@@ -4363,6 +4412,8 @@
 <translation id="915194831143859291">Om policyn är inställd på falskt eller inte har konfigurerats tillåter <ph name="PRODUCT_OS_NAME" /> att användaren stänger av enheten.
       Om policyn är inställd på sant utlöser <ph name="PRODUCT_OS_NAME" /> en omstart när användaren stänger av enheten. <ph name="PRODUCT_OS_NAME" /> ersätter alla förekomster av avstängningsknappar i gränssnittet med omstartsknappar. Om användaren stänger av enheten med strömbrytaren startas den inte om automatiskt även om policyn är aktiverad.</translation>
 <translation id="9152473318295429890">Aktivera innehållsbaserade förslag för relaterade webbsidor</translation>
+<translation id="9153446010242995516">Återställ till målversionen om operativsystemet är nyare än målversionen. Försök att föra över konfigurationen på enhetsnivå (inklusive användaruppgifter i nätverket) vid återställningen om det går, men gör återställningen med fullständig powerwash även om det inte går att återställa data (därför att målversionen inte har stöd för att återställa data eller på grund av en ändring som inte är bakåtkompatibel).
+          Stöds i version 75 eller senare av <ph name="PRODUCT_OS_NAME" />. I äldre klienter än så innebär det här värdet att återställning inaktiveras.</translation>
 <translation id="9158929520101169054">Aktivera multiinloggning i webbläsaren</translation>
 <translation id="9159126470527871268">Meddela användarna att <ph name="PRODUCT_NAME" /> eller <ph name="PRODUCT_OS_NAME" /> måste startas om eftersom en uppdatering väntar.
 
diff --git a/components/policy/resources/policy_templates_te.xtb b/components/policy/resources/policy_templates_te.xtb
index 039b96c..f92779f 100644
--- a/components/policy/resources/policy_templates_te.xtb
+++ b/components/policy/resources/policy_templates_te.xtb
@@ -1099,6 +1099,15 @@
 ఈ విధానాన్ని సెట్ చేయనప్పుడు, మరింత-నిర్దిష్ట విధానాల ప్రవర్తన ప్రభావితం కాదు.</translation>
 <translation id="2987155890997901449">ARCని ప్రారంభించండి</translation>
 <translation id="2987227569419001736">వెబ్ బ్లూటూత్ API వినియోగాన్ని నియంత్రించండి</translation>
+<translation id="2990018289267778247">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, యాక్సెస్ సామర్థ్య ఎంపికలు ఎల్లవేళలా సిస్టమ్ ట్రే మెనూలో కనిపిస్తాయి.
+
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, యాస్సెస్ సామర్థ్య ఎంపికలు ఎన్నటికీ సిస్టమ్ ట్రే మెనూలో కనిపించవు.
+
+          ఈ విధానాన్ని మీరు సెట్ చేస్తే, దీనిని వినియోగదారులు మార్చలేరు లేదా అధిగమించలేరు.
+
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, సిస్టమ్ ట్రే మెనూలో యాక్సెస్ సామర్థ్య ఎంపికలు కనిపించవు, కానీ వినియోగదారు సెట్టింగ్‌ల పేజీ ద్వారా యాక్సెస్ సామర్థ్య ఎంపికలను కనిపించే విధంగా సెట్ చేసుకోగలరు.
+
+          యాక్సెస్ సామర్థ్య ఫీచర్‌లను ప్రారంభించినప్పుడు (మరో విధంగా ఉదా., కీ కాంబినేషన్ ద్వారా), యాక్సెస్ సామర్థ్య ఎంపికలు ఎల్లప్పుడూ సిస్టమ్ ట్రే మెనూలో కనిపిస్తాయి.</translation>
 <translation id="3011301228198307065"><ph name="PRODUCT_NAME" />లో డిఫాల్ట్ హోమ్ పేజీ URLను కాన్ఫిగర్ చేయడంతో పాటు, వినియోగదారులు దానిని మార్చనివ్వకుండా నిరోధిస్తుంది.
 
           హోమ్ బటన్ ద్వారా తెరవబడే పేజీను హోమ్ పేజీ అంటారు. ప్రారంభంలో తెరవబడే పేజీలు RestoreOnStartup విధానాల ద్వారా నియంత్రించబడతాయి.
@@ -1410,6 +1419,7 @@
         ఈ విధానం డెస్క్‌టాప్‌లో మెషీన్ పరిధి గల క్లౌడ్ విధాన నమోదు ద్వారా ఉపయోగించబడుతుంది, దీనిని Windowsలోని రిజిస్ట్రీ లేదా GPO, Macలోని plist మరియు Linuxలోని JSON విధాన ఫైల్ ద్వారా సెట్ చేయవచ్చు.</translation>
 <translation id="3660562134618097814">లాగిన్ సమయంలో SAML IdP కుక్కీలను బదిలీ చేస్తుంది</translation>
 <translation id="3701121231485832347"><ph name="MS_AD_NAME" /> నిర్వహిత <ph name="PRODUCT_OS_NAME" /> పరికరాలకు నిర్దిష్టమైన సెట్టింగ్‌లను నియంత్రిస్తుంది.</translation>
+<translation id="3702518095257671450">రిమోట్ ధృవీకరణ</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (ఏక-పంక్తి ఫీల్డ్ విస్మరించబడింది, ఇది భవిష్యత్తులో తీసివేయబడుతుంది. దయచేసి కింద ఉన్న బహుళ పంక్తి వచన పెట్టెను ఉపయోగించడం ప్రారంభించండి.)</translation>
 <translation id="3709266154059827597">ఎక్స్‌టెన్ష‌న్‌ ఇన్‌స్ట‌లేష‌న్‌ బ్లాక్‌లిస్ట్‌ను కాన్ఫిగర్ చేయి</translation>
 <translation id="3711895659073496551">తాత్కాలికంగా నిలిపివేయడం</translation>
@@ -1802,6 +1812,15 @@
 
           'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడినప్పుడు మాత్రమే ఈ విధానం వర్తిస్తుంది.</translation>
 <translation id="4285674129118156176">ARCని ఉపయోగించడానికి అనుబంధిత వినియోగదారులను అనుమతించండి</translation>
+<translation id="4289903996435140853">పేర్కొన్న విక్రేత మరియు ఉత్పత్తి IDలతో USB పరికరాన్ని యాక్సెస్ చేయడానికి ఏయే సైట్‌లకు ఆటోమేటిక్‌గా అనుమతి మంజూరు చేయాలో సూచించే urlల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానం చెల్లుబాటు కావాలంటే, జాబితాలోని ప్రతి అంశం తప్పనిసరిగా పరికరాలు మరియు urlలు రెండింటినీ కలిగి ఉండాలి. పరికరాలలోని ప్రతి అంశం విక్రేత ID మరియు ఉత్పత్తి ID ఫీల్డ్‌ను కలిగి ఉండవచ్చు. ఏదైనా ID వదిలివేయబడినా, అది ఒక మినహాయింపుతో వైల్డ్‌కార్డ్‌గా పరిగణించబడుతుంది, దీని ప్రకారం విక్రేత IDని పేర్కొనకుండా కేవలం ఉత్పత్తి IDని మాత్రమే పేర్కొనడం సాధ్యం కాని నిబంధనకు మినహాయింపు ఇవ్వబడుతుంది. అలా లేదంటే, విధానం చెల్లుబాటు కాదు, అది విస్మరించబడుతుంది.
+
+        USB పరికరానికి యాక్సెస్‌ను అభ్యర్థిస్తున్న URLకు అనుమతి మంజూరు చేయడానికి, USB అనుమతి మోడల్ అన్నది అభ్యర్థిస్తున్న సైట్ ("అభ్యర్థిస్తున్న URL") URL, అగ్ర-స్థాయి ఫ్రేమ్ సైట్ ("పొందుపరిచే URL") URLలను ఉపయోగిస్తుంది. అభ్యర్థిస్తున్న సైట్ iframeలో లోడ్ చేయబడినప్పుడు అభ్యర్థిస్తున్న URL, పొందుపరచబడిన URL ఒకదానికొకటి భిన్నంగా ఉండవచ్చు. కనుక అభ్యర్థిస్తున్న, పొందుపరిచే URLలను పేర్కొనడానికి "urls" ఫీల్డ్‌లో గరిష్ఠంగా రెండు URL వాక్యాలు కామాతో వేరు చేసి ఉండవచ్చు. కేవలం ఒక URLను మాత్రమే పేర్కొంటే, పొందుపరిచే స్థితితో సంబంధం లేకుండా అభ్యర్థిస్తున్న సైట్ URL ఈ URLతో సరిపోలిందంటే సంబంధిత USB పరికరాలకు యాక్సెస్ మంజూరు చేయబడుతుంది. "urls" ఫీల్డ్‌లోని URLలు తప్పనిసరిగా చెల్లుబాటు అయ్యే URLలు అయ్యి ఉండాలి, లేదంటే విధానం విస్మరించబడుతుంది.
+
+        ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, 'DefaultWebUsbGuardSetting' విధానం సెట్ చేయబడి ఉంటే దాని నుండి లేదా వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ అన్ని సైట్‌ల కోసం ఉపయోగించబడుతుంది.
+
+       ఈ విధానంలోని URL ఆకృతులు WebUsbBlockedForUrls ద్వారా కాన్ఫిగర్ చేసిన వాటికి విరుద్ధంగా ఉండకూడదు. ఒకవేళ విరుద్ధంగా ఉంటే, WebUsbBlockedForUrls, WebUsbAskForUrls కంటే ఈ విధానానికే ప్రాధాన్యత ఇవ్వబడుతుంది.
+
+        ఈ విధానం యొక్క విలువలు మరియు WebUsbAllowDevicesForUrls విధానం విలువలు ఒకటిగా కలపబడతాయి.</translation>
 <translation id="4298509794364745131"><ph name="PRODUCT_OS_NAME" /> లాక్ స్క్రీన్‌పై విషయ సేకరణ యాప్‌‌‌గా ఆరంభించగలిగే యాప్‌ల జాబితాను పేర్కొంటుంది.
 
       ప్రాధాన్య విషయ సేకరణ యాప్‌‌ లాక్ స్క్రీన్‌పై ఆరంభించబడితే, లాక్ స్క్రీన్‌ ప్రాధాన్య విషయ సేకరణ యాప్‌‌‌ను ప్రారంభించడం కోసం UI ఎలిమెంట్‌ను కలిగి ఉంటుంది. 
@@ -1945,6 +1964,7 @@
 <translation id="4639407427807680016">నిరోధిత జాబితా నుండి మినహాయించాల్సిన స్థానిక సందేశ పద్ధతి హోస్ట్‌ల పేర్లు</translation>
 <translation id="4650759511838826572">URL ప్రోటోకాల్ పథకాలను నిలిపివేయి</translation>
 <translation id="465099050592230505">వ్యాపార వెబ్ స్టోర్ URL (విస్మరించబడింది)</translation>
+<translation id="4661889655253181651">నిర్ధిష్ట రకమైన కంటెంట్‌లను (ఉదాహరణకు కుక్కీలు, చిత్రాలు లేదా JavaScript) ఎలా నిర్వహించాలన్నది కంటెంట్ సెట్టింగ్‌ల ద్వారా మీరు పేర్కొనగలుగుతారు.</translation>
 <translation id="4665897631924472251">పొడిగింపు నిర్వహణ సెట్టింగ్‌లు</translation>
 <translation id="4668325077104657568">డిఫాల్ట్ చిత్రాల సెట్టింగ్</translation>
 <translation id="4670865688564083639">కనిష్టం:</translation>
@@ -1989,6 +2009,11 @@
       ఈ సూచనలు Google సర్వర్‌ల నుండి రిమోట్‌గా అందించబడతాయి.
 
       ఈ సెట్టింగ్ తప్పుకి సెట్ చేయబడినట్లయితే, సూచనలు అందించబడవు లేదా ప్రదర్శించబడవు.</translation>
+<translation id="4759650396863318477">పెండింగ్‌లోని అప్‌డేట్‌ను అమలు చేయడం కోసం <ph name="PRODUCT_NAME" />ను పునఃప్రారంభించాలని లేదా <ph name="PRODUCT_OS_NAME" /> పరికరాన్ని పునఃప్రారంభించాలని ఎన్ని మిల్లీసెకన్ల వ్యవధి ఉండగా వినియోగదారులకు గుర్తు చేయాలో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
+
+      ఈ సమయ వ్యవధిలో, అప్‌డేట్ చేయాల్సిన ఆవశ్యకత గురించి వినియోగదారుకు పదేపదే తెలియజేయబడుతుంది. <ph name="PRODUCT_OS_NAME" /> పరికరాలలో, <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" /> విధానం ప్రకారం సిస్టమ్ ట్రేలో పునఃప్రారంభ నోటిఫికేషన్ కనబడుతుంది. <ph name="PRODUCT_NAME" /> బ్రౌజర్‌లలో, నోటిఫికేషన్ సమయంలో ఒకింట మూడవ వంతు పూర్తయిన తర్వాత పునఃప్రారంభించడం అవసరమని సూచించేలా యాప్ మెనూ మారుతుంది. నోటిఫికేషన్ సమయంలో రెండింట మూడవ వంతు పూర్తయిన తర్వాత, అలాగే నోటిఫికేషన్ సమయం మొత్తం పూర్తయిన తర్వాత మళ్లీ ఈ నోటిఫికేషన్ రంగు మారుతుంది. <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> విధానం ద్వారా ప్రారంభించబడిన అదనపు నోటిఫికేషన్‌లు ఇదే షెడ్యూల్‌ను అనుసరిస్తాయి.
+
+      సెట్ చేయకపోతే, డిఫాల్ట్ సమయం <ph name="PRODUCT_OS_NAME" /> పరికరాలకు 345600000 మిల్లీసెకన్లు (నాలుగు రోజులు) , అలాగే <ph name="PRODUCT_NAME" />కు 604800000 మిల్లీసెకన్లు (ఒక వారం) ఉపయోగించబడుతుంది.</translation>
 <translation id="4788252609789586009"><ph name="PRODUCT_NAME" />లో ఆటోఫిల్‌ ఫీచర్‌ని ప్రారంభించడంతో పాటు ఇంతకముందు నిల్వ చేసిన సమాచారాన్ని ఉపయోగించి వెబ్ ఫారమ్‌లలో క్రెడిట్ కార్డ్ సమాచారాన్ని ఆటోమేటిక్‌గా పూర్తి చేయడానికి వినియోగదారులను అనుమతిస్తుంది.
 
       ఒకవేళ ఈ సెట్టింగ్‌ని నిలిపివేస్తే, ఆటోఫిల్‌ ఇంకెప్పుడూ వివరాలను సూచించడం లేదా క్రెడిట్ కార్డ్ సమాచారాన్ని పూరించడం గానీ చేయదు, ఇంకా వెబ్‌ని బ్రౌజ్ చేసే సమయంలో వినియోగదారు సమర్పించే అదనపు క్రెడిట్ కార్డ్ సమాచారాన్ని కూడా సేవ్ చేయదు.
@@ -2183,6 +2208,15 @@
 <translation id="5208240613060747912">ప్రకటనలను ప్రదర్శించడానికి అనుమతించబడని సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానాన్ని సెట్ చేయకుండా వదిలి పెట్టినది అయితే అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ ఇది సెట్ చేయబడి ఉంటే 'DefaultNotificationsSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
 <translation id="5213038356678567351">ఎప్పటికీ వేరే బ్రౌజర్‌కు మారడాన్ని యాక్టివేట్ చేయకూడని వెబ్‌సైట్‌లు.</translation>
 <translation id="5219844027738217407">Android యాప్‌ల విషయంలో, ఈ విధానం మైక్రోఫోన్‌పై మాత్రమే ప్రభావం చూపుతుంది. ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసినప్పుడు, మినహాయింపులు లేకుండా అన్ని Android యాప్‌ల కోసం మైక్రోఫోన్ మ్యూట్ చేయబడుతుంది.</translation>
+<translation id="5221394278852982313">పేర్కొన్న విక్రేత మరియు ఉత్పత్తి IDలతో USB పరికరాన్ని యాక్సెస్ చేయడానికి ఏయే సైట్‌లకు ఆటోమేటిక్‌గా అనుమతి మంజూరు చేయాలో సూచించే urlల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానం చెల్లుబాటు కావాలంటే, జాబితాలోని ప్రతి అంశం తప్పనిసరిగా పరికరాలు మరియు urlలు రెండింటినీ కలిగి ఉండాలి. పరికరాలలోని ప్రతి అంశం విక్రేత ID మరియు ఉత్పత్తి ID ఫీల్డ్‌ను కలిగి ఉండవచ్చు. ఏదైనా ID వదిలివేయబడినా, అది ఒక మినహాయింపుతో వైల్డ్‌కార్డ్‌గా పరిగణించబడుతుంది, దీని ప్రకారం విక్రేత IDని పేర్కొనకుండా కేవలం ఉత్పత్తి IDని మాత్రమే పేర్కొనడం సాధ్యం కాని నిబంధనకు మినహాయింపు ఇవ్వబడుతుంది. అలా లేదంటే, విధానం చెల్లుబాటు కాదు, అది విస్మరించబడుతుంది.
+
+        USB పరికరానికి యాక్సెస్‌ను అభ్యర్థిస్తున్న URLకు అనుమతి మంజూరు చేయడానికి, USB అనుమతి మోడల్ అన్నది అభ్యర్థిస్తున్న సైట్ ("అభ్యర్థిస్తున్న URL") URL, అగ్ర-స్థాయి ఫ్రేమ్ సైట్ ("పొందుపరిచే URL") URLలను ఉపయోగిస్తుంది. అభ్యర్థిస్తున్న సైట్ iframeలో లోడ్ చేయబడినప్పుడు అభ్యర్థిస్తున్న URL, పొందుపరచబడిన URL ఒకదానికొకటి భిన్నంగా ఉండవచ్చు. కనుక అభ్యర్థిస్తున్న, పొందుపరిచే URLలను పేర్కొనడానికి "urls" ఫీల్డ్‌లో గరిష్ఠంగా రెండు URL వాక్యాలు కామాతో వేరు చేసి ఉండవచ్చు. కేవలం ఒక URLను మాత్రమే పేర్కొంటే, పొందుపరిచే స్థితితో సంబంధం లేకుండా అభ్యర్థిస్తున్న సైట్ URL ఈ URLతో సరిపోలిందంటే సంబంధిత USB పరికరాలకు యాక్సెస్ మంజూరు చేయబడుతుంది. "urls" ఫీల్డ్‌లోని URLలు తప్పనిసరిగా చెల్లుబాటు అయ్యే URLలు అయ్యి ఉండాలి, లేదంటే విధానం విస్మరించబడుతుంది.
+
+        ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, 'DefaultWebUsbGuardSetting' విధానం సెట్ చేయబడి ఉంటే దాని నుండి లేదా వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ అన్ని సైట్‌ల కోసం ఉపయోగించబడుతుంది.
+
+        ఈ విధానంలోని URL ఆకృతులు WebUsbBlockedForUrls ద్వారా కాన్ఫిగర్ చేసిన వాటికి విరుద్ధంగా ఉండకూడదు. ఒకవేళ విరుద్ధంగా ఉంటే, WebUsbBlockedForUrls, WebUsbAskForUrls కంటే ఈ విధానానికే ప్రాధాన్యత ఇవ్వబడుతుంది.
+
+        ఈ విధానం యొక్క విలువలు మరియు DeviceWebUsbAllowDevicesForUrls విధానం విలువలు ఒకటిగా కలపబడతాయి.</translation>
 <translation id="5228316810085661003">పరికర-స్థానిక ఖాతా ఆటో-లాగిన్ జాప్యం.
 
       |DeviceLocalAccountAutoLoginId| విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ఈ విధానం ఎలాంటి ప్రభావం చూపదు. లేదంటే:
@@ -2903,6 +2937,21 @@
 
       ఈ విధానాన్ని "సర్టిఫికెట్‌లను నిర్వహించడానికి వినియోగదారులకు అనుమతి ఇవ్వవద్దు''కు సెట్ చేస్తే, వినియోగదారులు సర్టిఫికెట్‌లను నిర్వహించలేరు, వారు కేవలం సర్టిఫికెట్‌లను చూడగలుగుతారు.</translation>
 <translation id="6573305661369899995">URL ఆంక్షల బాహ్య మూలాన్ని సెట్ చేయండి</translation>
+<translation id="6583851521569686409">ప్రింటర్‌ల జాబితాను కాన్ఫిగర్ చేస్తుంది.
+
+      తమ వినియోగదారుల కోసం ప్రింటర్ కాన్ఫిగరేషన్‌లను అందించడానికి నిర్వాహకులను
+      ఈ విధానం అనుమతిస్తుంది.
+
+      <ph name="PRINTER_DISPLAY_NAME" />, <ph name="PRINTER_DESCRIPTION" /> అన్నవి ప్రింటర్ ఎంపికను సులభతరం చేయడం కోసం అనుకూల విధంగా మార్చుకోగలిగే స్వతంత్ర రూపంలోని స్ట్రింగ్‌లు. <ph name="PRINTER_MANUFACTURER" />, <ph name="PRINTER_MODEL" /> అన్నవి తుది వినియోగదారులకు ప్రింటర్ గుర్తింపును సులభతరం చేస్తాయి. అవి ప్రింటర్ తయారీదారు బ్రాండ్ పేరు, మోడల్‌ను సూచిస్తాయి. <ph name="PRINTER_URI" /> అనేది <ph name="URI_SCHEME" />, <ph name="URI_PORT" />,<ph name="URI_QUEUE" />తో సహా క్లయింట్ కంప్యూటర్ నుండి చేరుకోగలిగే చిరునామా అయ్యి ఉండాలి. <ph name="PRINTER_UUID" /> అనేది ఐచ్ఛికం. ఒకవేళ అందిస్తే, అది <ph name="ZEROCONF_DISCOVERY" /> ప్రింటర్‌ల నకిలీలను తీసివేయడంలో సహాయపడటానికి ఉపయోగించబడుతుంది.
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" />లో ప్రింటర్ పేరు ఉండాలి లేదా <ph name="PRINTER_AUTOCONF" />ను 'ఒప్పు'గా సెట్ చేయాలి. రెండు లక్షణాలు ఉన్నవి లేదా ఏ లక్షణమూ లేని ప్రింటర్‌లు విస్మరించబడతాయి.
+
+      ప్రింటర్ మొదటి వినియోగం తర్వాత ప్రింటర్ సెటప్‌ పూర్తవుతుంది.  ప్రింటర్‌ను ఉపయోగించే వరకు PPDలు డౌన్‌లోడ్ చేయబడవు.  ఆ సమయం తర్వాత, తరచూ ఉపయోగించే PPDలు కాష్ చేయబడతాయి.
+
+      వినియోగదారులు వేర్వేరు పరికరాల్లో ప్రింటర్‌లను కాన్ఫిగర్ చేసే విషయంలో ఈ విధానం ఎలాంటి ప్రభావం చూపదు.  ఇది వేర్వేరు వినియోగదారులు సెట్ చేసుకునే ప్రింటర్‌ల కాన్ఫిగరేషన్‌కు అనుబంధంగా ఉండేలా ఉద్దేశించినది.
+
+      Active Directory నిర్వాహిత పరికరాలకు సంబంధించి, <ph name="MACHINE_NAME_VARIABLE" />ను Active Directory మెషిన్ పేరుకు లేదా దాని సబ్‌స్ట్రింగ్‌కు విస్తరించగలిగేలా ఈ విధానం మద్దతిస్తుంది. ఉదాహరణకు, మెషిన్ పేరు <ph name="MACHINE_NAME_EXAMPLE" /> అయితే, ఆపై <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> అనేది 6వ స్థానం తర్వాతి 4 అక్షరాలు, అంటే <ph name="MACHINE_NAME_PART_EXAMPLE" />తో భర్తీ చేయబడుతుంది. స్థానం శూన్య-ఆధారితమని గుర్తుంచుకోండి.
+      </translation>
 <translation id="6598235178374410284">వినియోగదారు అవతార్ చిత్రం</translation>
 <translation id="6603004149426829878">ఎల్లవేళలా సమయ మండలిని నిశ్చయిస్తున్నప్పుడు ఏవైనా అందుబాటులో ఉన్న స్థాన సిగ్నల్‌లను సర్వర్‌కు పంపండి</translation>
 <translation id="6628120204569232711">నిల్వ పరిస్థితిని నివేదించు</translation>
@@ -4228,6 +4277,8 @@
 <translation id="915194831143859291">ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, పరికరాన్ని షట్ డౌన్ చేయడానికి <ph name="PRODUCT_OS_NAME" /> వినియోగదారును అనుమతిస్తుంది.
       ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, వినియోగదారు పరికరాన్ని షట్‌డౌన్ చేసినప్పుడు <ph name="PRODUCT_OS_NAME" /> రీబూట్‌ను ట్రిగ్గర్ చేస్తుంది. <ph name="PRODUCT_OS_NAME" /> UIలో అన్ని సందర్భాలలో కనిపించే షట్‌డౌన్ బటన్‌లను రీబూట్ బటన్‌లతో భర్తీ చేస్తుంది. వినియోగదారు పవర్ బటన్‌ను ఉపయోగించి పరికరాన్ని షట్ డౌన్ చేస్తే, విధానం ప్రారంభించబడి ఉన్నప్పటికీ ఆటోమేటిక్‌గా రీబూట్ కాదు.</translation>
 <translation id="9152473318295429890">సంబంధిత వెబ్ పేజీల యొక్క సందర్భోచిత సూచనలను ప్రారంభించండి</translation>
+<translation id="9153446010242995516">OS వెర్షన్ అన్నది లక్షిత వెర్షన్ కంటే తాజాది అయినట్లయితే, ఉపసంహరించి, లక్షిత వెర్షన్‌నే కొనసాగించండి. వీలైతే ఉపసంహరణ ప్రక్రియ ద్వారా పరికర స్థాయి కాన్ఫిగరేషన్‌ను (నెట్‌వర్క్ ఆధారాలతో సహా) కొనసాగించడం ప్రయత్నించండి. అయితే డేటాను పునరుద్ధరించడం వీలు కాకపోయినా (లక్షిత వెర్షన్ డేటా పునరుద్ధరణకు మద్దతు ఇవ్వకపోతే లేదా మరో దిశలో-అనుకూలం కాని మార్పు జరిగినట్లయితే), ఉపసంహరణను పూర్తి పవర్‌వాష్‌తో చేయండి.
+<ph name="PRODUCT_OS_NAME" /> వెర్షన్ 75 మరియు అంతకంటే తాజా వాటికి మద్దతు ఉంది. పాత క్లయింట్‌ల విషయంలో, ఉపసంహరణ నిలిపివేయబడిందని ఈ విలువ సూచిస్తుంది.</translation>
 <translation id="9158929520101169054">బ్రౌజర్‌లో బహుళ సైన్-ఇన్‌లను అనుమతించండి</translation>
 <translation id="9159126470527871268">పెండింగ్‌లోని అప్‌డేట్‌ని అమలు చేయడం కోసం <ph name="PRODUCT_NAME" /> రీలాంచ్ చేయాలని లేదా <ph name="PRODUCT_OS_NAME" /> పునఃప్రారంభించాలని వినియోగదారులకు తెలియజేస్తుంది.
 
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index 6b1c0d7..17ddaa8f 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -1960,7 +1960,7 @@
 <translation id="4639407427807680016">ชื่อของโฮสต์การรับส่งข้อความดั้งเดิมที่จะยกเว้นจากบัญชีดำ</translation>
 <translation id="4650759511838826572">ปิดใช้งานสกีมโปรโตคอล URL</translation>
 <translation id="465099050592230505">URL เว็บสโตร์ขององค์กร (เลิกใช้งาน)</translation>
-<translation id="4661889655253181651">การตั้งค่าเนื้อหาช่วยให้คุณระบุวิธีจัดการเนื้อหาบางประเภท (เช่น คุกกี้ รูปภาพ หรือ JavaScript)</translation>
+<translation id="4661889655253181651">การตั้งค่าเนื้อหาช่วยให้คุณระบุวิธีจัดการเนื้อหาบางประเภท (เช่น คุกกี้ รูปภาพ หรือ JavaScript) ได้</translation>
 <translation id="4665897631924472251">การตั้งค่าการจัดการส่วนขยาย</translation>
 <translation id="4668325077104657568">การตั้งค่าภาพเริ่มต้น</translation>
 <translation id="4670865688564083639">ต่ำสุด:</translation>
@@ -2935,7 +2935,7 @@
 
       <ph name="PRINTER_DISPLAY_NAME" /> และ <ph name="PRINTER_DESCRIPTION" /> เป็นสตริงรูปแบบอิสระที่ปรับแต่งได้เพื่อการเลือกเครื่องพิมพ์ที่ง่ายขึ้น <ph name="PRINTER_MANUFACTURER" /> และ <ph name="PRINTER_MODEL" /> ช่วยให้ผู้ใช้ปลายทางระบุเครื่องพิมพ์ได้โดยง่าย ด้วยการแสดงชื่อผู้ผลิตและรุ่นของเครื่องพิมพ์ <ph name="PRINTER_URI" /> ควรเป็นที่อยู่ที่เข้าถึงได้จากคอมพิวเตอร์ของลูกค้า รวมถึง <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> และ <ph name="URI_QUEUE" /> คุณจะระบุ <ph name="PRINTER_UUID" /> หรือไม่ก็ได้ หากระบุ ข้อมูลนี้จะใช้เพื่อช่วยกรองเครื่องพิมพ์ <ph name="ZEROCONF_DISCOVERY" /> ที่ซ้ำกันออก
 
-      <ph name="PRINTER_EFFECTIVE_MODEL" /> ควรมีชื่อเครื่องพิมพ์หรือ <ph name="PRINTER_AUTOCONF" /> ควรตั้งค่าเป็น "จริง" ระบบจะไม่สนใจเครื่องพิมพ์ที่มีพร็อพเพอร์ตี้ทั้ง 2 รายการหรือไม่มีเลย
+      <ph name="PRINTER_EFFECTIVE_MODEL" /> ควรมีชื่อเครื่องพิมพ์ หรือควรตั้งค่า <ph name="PRINTER_AUTOCONF" /> เป็น "จริง" ระบบจะไม่สนใจเครื่องพิมพ์ที่มีพร็อพเพอร์ตี้ทั้ง 2 รายการหรือไม่มีเลย
 
       การตั้งค่าเครื่องพิมพ์จะเสร็จสมบูรณ์เมื่อใช้เครื่องพิมพ์เป็นครั้งแรก  จะไม่มีการดาวน์โหลด PPD จนกว่าจะมีการใช้เครื่องพิมพ์  หลังจากนั้น ระบบจะเก็บ PPD ที่ใช้บ่อยไว้ในแคช
 
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 6814796..4ae97dd9 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -1126,6 +1126,15 @@
           Bu politika ayarlanmadığında, daha özel politikaların çalışma biçimi aynı kalır.</translation>
 <translation id="2987155890997901449">ARC'yi etkinleştir</translation>
 <translation id="2987227569419001736">Web Bluetooth API'sının kullanımını kontrol et</translation>
+<translation id="2990018289267778247">Bu politika true (doğru) değerine ayarlanırsa, Erişilebilirlik seçenekleri her zaman sistem tepsisi menüsünde görüntülenir.
+
+          Bu politika false (yanlış) değerine ayarlanırsa, Erişilebilirlik seçenekleri hiçbir zaman sistem tepsisi menüsünde görüntülenmez.
+
+          Bu politikayı ayarlarsanız kullanıcılar değiştiremez veya geçersiz kılamazlar.
+
+          Bu politika ayarlanmadan bırakılırsa, Erişilebilirlik seçenekleri sistem tepsisi menüsünde görüntülenmez, ancak kullanıcı, Ayarlar sayfasını kullanarak Erişilebilirlik seçeneklerinin görüntülenmesini sağlayabilir.
+
+          Erişilebilirlik özellikleri etkinleştirildiğinde (başka araçlarla, örneğin bir tuş kombinasyonu ile), Erişilebilirlik seçenekleri her zaman sistem tepsisi menüsünde görünür.</translation>
 <translation id="3011301228198307065"><ph name="PRODUCT_NAME" /> ürününde varsayılan ana sayfa URL'sini yapılandırır ve kullanıcıların bu ayarı değiştirmesini önler.
 
           Ana sayfa, Ana Sayfa düğmesine basıldığında açılan sayfadır. Başlangıçta açılan sayfalar RestoreOnStartup politikalarıyla kontrol edilir.
@@ -1446,6 +1455,7 @@
         Bu politika, masaüstünde makine kapsamı bulut politika kaydı tarafından kullanılır ve Windows'da Registry ya da GPO, Mac'te plist, Linux'ta ise JSON politika dosyası tarafından ayarlanabilir.</translation>
 <translation id="3660562134618097814">Giriş sırasında SAML IdP çerezlerini aktar</translation>
 <translation id="3701121231485832347"><ph name="MS_AD_NAME" /> tarafından yönetilen <ph name="PRODUCT_OS_NAME" /> cihazlara özgü ayarları kontrol eder.</translation>
+<translation id="3702518095257671450">Uzaktan onay</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (Tek satırlı alanlar artık kullanılmamaktadır ve yakında kaldırılacaktır. Lütfen aşağıdaki çok satırlı metin kutusunu kullanın.)</translation>
 <translation id="3709266154059827597">Uzantı kurulum kara listesini yapılandır</translation>
 <translation id="3711895659073496551">Askıya al</translation>
@@ -1840,6 +1850,15 @@
 
           Bu politika sadece "DefaultSearchProviderEnabled" politikası etkinleştirilmişse dikkate alınır.</translation>
 <translation id="4285674129118156176">Bağlı olmayan kullanıcıların ARC'yi kullanmasına izin ver</translation>
+<translation id="4289903996435140853">Sağlanan tedarikçi ve ürün kimliklerine sahip USB cihazlarına erişmesine otomatik olarak izin verilecek siteleri belirten URL listesi ayarlamanıza olanak tanır. Politikanın geçerli olabilmesi için listedeki her öğenin hem cihazları hem de URL'leri içermesi gerekir. Cihazlardaki her öğe tedarikçi kimliği ve ürün kimliği alanı içerebilir. Dahil edilmeyen her kimlik bir istisnayla joker olarak değerlendirilir. Bu istisnaya göre tedarikçi kimliği belirtilmeden ürün kimliği de belirtilemez. Aksi halde politika geçerli olmaz ve yoksayılır.
+
+        USB izin modeli, istekte bulunan sitenin URL'sini ("istekte bulunan URL") ve üst düzey çerçeve sitesinin URL'sini ("yerleştirme URL'si") kullanarak istekte bulunan URL'ye USB cihazına erişmesi için izin verir. İstekte bulunan site bir iFrame içinde yüklendiğinde, istekte bulunan URL yerleştirme URL'sinden farklı olabilir. Bu nedenle, "URL'ler" alanı, sırasıyla istekte bulunan URL'yi ve yerleştirme URL'sini belirtmek için virgülle sınırlandırılmış en fazla iki URL dizesi içerebilir. Yalnızca bir URL belirtilirse yerleştirme durumundan bağımsız olarak bu URL ile eşleşen istekte bulunan sitenin URL'sine karşılık gelen USB cihazlarına erişim izni verilir. "URL'ler" alanındaki URL'lerin geçerli URL'ler olmaları gerekir; aksi halde, politika yoksayılır.
+
+        Bu politika ayarlanmadan bırakılırsa genel varsayılan değer, tüm siteler için, ayarlanması halinde "DefaultWebUsbGuardSetting" politikasından veya kullanıcının kişisel yapılandırmasından kullanılır.
+
+        Bu politikadaki URL kalıpları, WebUsbBlockedForUrls politikasıyla yapılandırılan kalıplarla çakışmamalıdır. Çakışma olması halinde bu politikanın WebUsbBlockedForUrls ve WebUsbAskForUrls politikaları üzerinde önceliği olur.
+
+        Bu politikanın ve DeviceWebUsbAllowDevicesForUrls politikasının değerleri birleştirilmiştir.</translation>
 <translation id="4298509794364745131"><ph name="PRODUCT_OS_NAME" /> kilit ekranında not alma uygulaması olarak etkinleştirilebilen uygulamaların listesini belirtir.
 
       Tercih edilen not alma uygulaması kilit ekranında etkinleştirilmişse, kilit ekranı bu uygulamayı başlatacak bir kullanıcı arayüzü öğesi barındırır.
@@ -1991,6 +2010,7 @@
 <translation id="4639407427807680016">Kara listeden muaf tutulacak yerel mesajlaşma ana makinelerinin adları</translation>
 <translation id="4650759511838826572">URL protokol şemalarını devre dışı bırak</translation>
 <translation id="465099050592230505">Kurumsal web mağazası URL'si (kullanımdan kaldırıldı)</translation>
+<translation id="4661889655253181651">İçerik ayarları belirli türdeki içeriklerin (ör. Çerezler, Resimler veya JavaScript) nasıl işleneceğini belirlemenize izin verir.</translation>
 <translation id="4665897631924472251">Uzantı yönetim ayarları</translation>
 <translation id="4668325077104657568">Varsayılan resimler ayarı</translation>
 <translation id="4670865688564083639">Minimum:</translation>
@@ -2035,6 +2055,11 @@
       Bu öneriler uzaktaki Google sunucularından getirilir.
 
       Bu ayar yanlış (false) değerine ayarlanırsa öneri getirilmez veya görüntülenmez.</translation>
+<translation id="4759650396863318477">Beklemedeki bir güncellemenin uygulanması için <ph name="PRODUCT_NAME" /> ürününün veya bir <ph name="PRODUCT_OS_NAME" /> cihazının yeniden başlatılması gerektiği konusunda kullanıcıların bilgilendirileceği dönemi milisaniye cinsinden ayarlamanıza olanak tanır.
+
+      Bu zaman diliminde kullanıcı, güncelleme yapılması gerektiğine dair tekrar tekrar bilgilendirilir. <ph name="PRODUCT_OS_NAME" /> cihazları için yeniden başlatma bildirimi, <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" /> politikası gereği sistem tepsisinde görünür. <ph name="PRODUCT_NAME" /> tarayıcıları için uygulama menüsü, bildirim süresinin üçte biri geçtikten sonra yeniden başlatmanın gerekli olduğunu gösterecek şekilde değişir. Bu bildirim, bildirim süresinin üçte ikisi geçtikten sonra renk değiştirir ve bildirim süresinin tamamı geçtikten sonra tekrar renk değiştirir. <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> politikası tarafından etkinleştirilen ek bildirimler, aynı programı takip eder.
+
+      Bu değer ayarlanmazsa <ph name="PRODUCT_OS_NAME" /> cihazlarda varsayılan süre olan 345600000 milisaniye (dört gün) ve <ph name="PRODUCT_NAME" /> cihazlarda 604800000 milisaniye (bir hafta) kullanılır.</translation>
 <translation id="4788252609789586009"><ph name="PRODUCT_NAME" /> Otomatik Doldurma özelliğini etkinleştirir ve kullanıcıların web formlarındaki kredi kartı bilgilerini önceden kaydedilmiş bilgilerle otomatik olarak doldurmasına olanak tanır.
 
       Bu ayar devre dışı bırakılırsa Otomatik Doldurma hiçbir zaman öneride bulunmaz, kredi kartı bilgilerini doldurmaz veya kullanıcının internette gezerken gönderebileceği ek kredi kartı bilgilerini kaydetmez.
@@ -2243,6 +2268,15 @@
           Bu politika ayarlanmadan bırakılırsa, 'DefaultNotificationsSetting' politikası ayarlandıysa buradaki değer, aksi takdirde kullanıcının kişisel yapılandırması tüm siteler için genel varsayılan değer olarak kullanılır.</translation>
 <translation id="5213038356678567351">Hiçbir zaman başka bir tarayıcıya geçişi tetiklememesi gereken web siteleri.</translation>
 <translation id="5219844027738217407">Bu politika Android uygulamalarında sadece mikrofonu etkiler. Bu politika doğru olarak ayarlandığında, istisnasız tüm Android uygulamaları için mikrofon kapatılır.</translation>
+<translation id="5221394278852982313">Sağlanan tedarikçi ve ürün kimliklerine sahip USB cihazlarına erişmesine otomatik olarak izin verilecek siteleri belirten URL listesi ayarlamanıza olanak tanır. Politikanın geçerli olabilmesi için listedeki her öğenin hem cihazları hem de URL'leri içermesi gerekir. Cihazlardaki her öğe tedarikçi kimliği ve ürün kimliği alanı içerebilir. Dahil edilmeyen her kimlik bir istisnayla joker olarak değerlendirilir. Bu istisnaya göre tedarikçi kimliği belirtilmeden ürün kimliği de belirtilemez. Aksi halde politika geçerli olmaz ve yoksayılır.
+
+        USB izin modeli, istekte bulunan sitenin URL'sini ("istekte bulunan URL") ve üst düzey çerçeve sitesinin URL'sini ("yerleştirme URL'si") kullanarak istekte bulunan URL'ye USB cihazına erişmesi için izin verir. İstekte bulunan site bir iFrame içinde yüklendiğinde, istekte bulunan URL yerleştirme URL'sinden farklı olabilir. Bu nedenle, "URL'ler" alanı, sırasıyla istekte bulunan URL'yi ve yerleştirme URL'sini belirtmek için virgülle sınırlandırılmış en fazla iki URL dizesi içerebilir. Yalnızca bir URL belirtilirse yerleştirme durumundan bağımsız olarak bu URL ile eşleşen istekte bulunan sitenin URL'sine karşılık gelen USB cihazlarına erişim izni verilir. "URL'ler" alanındaki URL'lerin geçerli URL'ler olmaları gerekir; aksi halde, politika yoksayılır.
+
+        Bu politika ayarlanmadan bırakılırsa genel varsayılan değer, tüm siteler için, ayarlanması halinde "DefaultWebUsbGuardSetting" politikasından veya kullanıcının kişisel yapılandırmasından kullanılır.
+
+        Bu politikadaki URL kalıpları, WebUsbBlockedForUrls politikasıyla yapılandırılan kalıplarla çakışmamalıdır. Çakışma olması halinde bu politikanın WebUsbBlockedForUrls ve WebUsbAskForUrls politikaları üzerinde önceliği olur.
+
+        Bu politikanın ve DeviceWebUsbAllowDevicesForUrls politikasının değerleri birleştirilmiştir.</translation>
 <translation id="5228316810085661003">Cihaz yerel hesabına otomatik girişin gecikmesi.
 
       |DeviceLocalAccountAutoLoginId| politikası ayarlanmazsa bu politika geçerli olmaz. Aksi halde:
@@ -2971,6 +3005,21 @@
 
       Bu politika ''Kullanıcıların sertifikaları yönetmelerine izin verme" değerine ayarlanırsa kullanıcılar sertifikaları yönetemez, yalnızca görüntüleyebilirler.</translation>
 <translation id="6573305661369899995">URL kısıtlamaları için harici kaynak ayarla</translation>
+<translation id="6583851521569686409">Yazıcılar listesini yapılandırır.
+
+      Bu politika, yöneticilerin kendi kullanıcıları için yazıcı yapılandırmaları
+      sunmalarına izin verir.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> ve <ph name="PRINTER_DESCRIPTION" />, yazıcı seçimini kolaylaştıracak şekilde özelleştirilebilen serbest biçimli dizelerdir. <ph name="PRINTER_MANUFACTURER" /> ve <ph name="PRINTER_MODEL" />, son kullanıcıların yazıcıyı tanımasını kolaylaştırmayı amaçlar. Bu ibareler yazıcının üreticisini ve modelini temsil eder. <ph name="PRINTER_URI" />, istemci bilgisayardan ulaşabilen ve <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, <ph name="URI_QUEUE" /> bilgilerini içeren bir adres olmalıdır. <ph name="PRINTER_UUID" /> isteğe bağlıdır. Sağlandığı takdirde, <ph name="ZEROCONF_DISCOVERY" /> yazıcıların tekilleştirilmesine yardımcı olmak için kullanılır.
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" /> yazıcının adını içermelidir veya <ph name="PRINTER_AUTOCONF" /> politikası true (doğru) değerine ayarlanmalıdır. Her iki özelliği de taşıyan veya hiçbir özellik taşımayan yazıcılar yok sayılır.
+
+      Yazıcı ilk kez kullanıldığında kurulum tamamlanmış olur.  Yazıcı kullanılana kadar PPD'ler indirilmez.  Bundan sonra sık kullanılan PPD'ler ön belleğe alınır.
+
+      Bu politika, kullanıcıların yazıcıları ayrı ayrı cihazlarda yapılandırıp yapılandıramayacağı konusunu etkilemez.  Ayrı ayrı kullanıcılar tarafından yazıcıların yapılandırılması konusunda tamamlayıcı olacak şekilde tasarlanmıştır.
+
+      Active Directory tarafından yönetilen cihazlarda bu politika, <ph name="MACHINE_NAME_VARIABLE" /> değişkeninin Active Directory makine adına veya bunun bir alt dizesine genişletilmesini destekler. Örneğin, makine adı <ph name="MACHINE_NAME_EXAMPLE" /> ise <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />, 6. konumdan sonra başlayan 4 karakterle değiştirilir (<ph name="MACHINE_NAME_PART_EXAMPLE" /> gibi). Konumun sıfır tabanlı olduğuna dikkat edin.
+      </translation>
 <translation id="6598235178374410284">Kullanıcı avatarı resmi</translation>
 <translation id="6603004149426829878">Saat dilimini çözümlerken kullanılabilir konum sinyallerini her zaman sunucuya gönder</translation>
 <translation id="6628120204569232711">Depolama durumunu bildir</translation>
@@ -4304,6 +4353,8 @@
 <translation id="915194831143859291">Bu politika yanlış seçeneğine ayarlanırsa veya hiç yapılandırılmazsa <ph name="PRODUCT_OS_NAME" />, kullanıcının cihazı kapatmasına izin verir.
       Bu politika doğru seçeneğine ayarlanırsa, kullanıcı cihazı kapattığında <ph name="PRODUCT_OS_NAME" />, yeniden başlatma işlemi tetikler. <ph name="PRODUCT_OS_NAME" />, kullanıcı arayüzündeki tüm kapatma düğmelerini yeniden başlatma düğmeleriyle değiştirir. Kullanıcı güç düğmesini kullanarak cihazı kapatırsa, politika etkinleştirilmiş olsa dahi cihaz otomatik olarak yeniden başlatılmaz.</translation>
 <translation id="9152473318295429890">İlişkili web sayfalarının bağlam önerilerini etkinleştir</translation>
+<translation id="9153446010242995516">OS sürümü hedeften daha yeniyse geri alın ve hedefin sürümünde kalın. Mümkünse geri alma işlemiyle cihaz düzeyinde yapılandırmayı (ağ kimlik bilgileri dahil) aktarmayı deneyin, ancak (hedef sürümün verilerin geri yüklenmesini desteklememesi veya geriye dönük uyumluluğu olmayan bir değişiklik nedeniyle) verilerin geri yüklenmesi mümkün olmazsa bile geri yükleme işlemini tam powerwash yöntemiyle gerçekleştirin.
+          <ph name="PRODUCT_OS_NAME" /> sürüm 75'te ve sonraki sürümlerde desteklenir. Daha eski istemciler için bu değer, geri yüklemenin devre dışı bırakıldığı anlamına gelir.</translation>
 <translation id="9158929520101169054">Tarayıcıda Çoklu Oturum Açmaya İzin Ver</translation>
 <translation id="9159126470527871268">Kullanıcılara, bekleyen bir güncellemeyi uygulamak için <ph name="PRODUCT_NAME" /> uygulamasının veya <ph name="PRODUCT_OS_NAME" /> cihazının yeniden başlatılması gerektiğini bildirin.
 
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 4ee60865..9130dc8 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -1119,6 +1119,15 @@
           Якщо це правило не налаштовано, дія точніших правил не змінюється.</translation>
 <translation id="2987155890997901449">Увімкнути ARC</translation>
 <translation id="2987227569419001736">Контролювати використання API Web Bluetooth</translation>
+<translation id="2990018289267778247">Якщо для цього правила вибрано значення true, параметри спеціальних можливостей завжди відображаються в меню панелі завдань.
+
+          Якщо для цього правила вибрано значення false, параметри спеціальних можливостей ніколи не відображаються в меню панелі завдань.
+
+          Якщо це правило налаштовано, користувачі не можуть змінювати або замінювати його.
+
+          Якщо це правило не налаштовано, параметри спеціальних можливостей не відображаються в меню панелі завдань, але користувачі можуть увімкнути їх показ на сторінці налаштувань.
+
+          Якщо функції спеціальних можливостей ввімкнено іншим способом (наприклад, комбінацією клавіш), параметри спеціальних можливостей відображатимуться в меню панелі завдань.</translation>
 <translation id="3011301228198307065">Налаштовує URL-адресу домашньої сторінки за умовчанням у <ph name="PRODUCT_NAME" /> і забороняє користувачам змінювати її.
 
           Домашня сторінка – це та, яка відкривається кнопкою "Домашня сторінка". Сторінками, які відкриваються під час запуску, керують правила RestoreOnStartup.
@@ -1435,6 +1444,7 @@
         Це правило застосовується через реєстрацію правила про повноваження пристрою щодо використання хмарних служб на комп’ютері й може налаштовуватися за допомогою реєстру чи GPO у Windows, plist у Mac і файлу правила JSON у Linux.</translation>
 <translation id="3660562134618097814">Передавати файли cookie SAML IdP під час входу</translation>
 <translation id="3701121231485832347">Керує налаштуваннями пристроїв із <ph name="PRODUCT_OS_NAME" />, якими керує <ph name="MS_AD_NAME" />.</translation>
+<translation id="3702518095257671450">Віддалене засвідчення</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (Поле, що складається з одного рядка, не підтримується, у майбутньому його буде видалено. Почніть користуватися полем нижче, що складається з кількох рядків.)</translation>
 <translation id="3709266154059827597">Налаштувати "чорний список" для встановлення розширень</translation>
 <translation id="3711895659073496551">Призупинити</translation>
@@ -1828,6 +1838,15 @@
 
           Це правило застосовується, лише якщо ввімкнено правило "DefaultSearchProviderEnabled".</translation>
 <translation id="4285674129118156176">Надавати стороннім користувачам доступ до ARC</translation>
+<translation id="4289903996435140853">Дає змогу створювати список URL-адрес сайтів, яким автоматично надаватиметься доступ до пристрою USB з указаними ідентифікаторами постачальника й продукту. Щоб це правило було дійсним, кожний елемент списку має містити пристрої та URL-адреси. Кожний елемент на пристрої може містити поля для ідентифікаторів постачальника й продукту. Будь-який пропущений ідентифікатор вважається символом підстановки. Винятком є випадок, коли ідентифікатор продукту неможливо вказати без зазначення ідентифікатора постачальника. В іншому разі це правило буде недійсним та ігноруватиметься.
+
+        Модель доступу до USB використовує URL-адреси запитаного сайту ("запитана URL-адреса") і сайту фрейму найвищого рівня ("вставлена URL-адреса"), щоб надати запитаній URL-адресі доступ до пристрою USB. Запитана URL-адреса може відрізнятися від вставленої, якщо запитаний сайт завантажується в iframe. Тому поле "URL-адреси" може містити до двох рядків, розділених комою, щоб можна було вказати запитану та вставлену URL-адреси відповідно. Якщо вказано лише одну URL-адресу, тоді доступ до відповідних пристроїв USB буде надано, коли запитана URL-адреса відповідатиме вказаній, незалежно від статусу вставлення. URL-адреси, указані у відповідному полі, мають бути дійсними, інакше правило ігноруватиметься.
+
+        Якщо це правило не налаштовано, для всіх сайтів буде застосовано загальне значення за умовчанням відповідно до правила DefaultWebUsbGuardSetting (якщо його встановлено) чи особистих параметрів користувача.
+
+        Шаблони URL-адрес у цьому правилі не повинні суперечити адресам, налаштованим через WebUsbBlockedForUrls. Інакше це правило матиме перевагу над WebUsbBlockedForUrls і WebUsbAskForUrls.
+
+        Значення для цього правила й правила WebUsbAllowDevicesForUrls об'єднуються.</translation>
 <translation id="4298509794364745131">Визначає список додатків для створення нотаток на заблокованому екрані <ph name="PRODUCT_OS_NAME" />.
 
       Якщо на заблокованому екрані ввімкнено вибраний додаток для створення нотаток, то заблокований екран міститиме елемент інтерфейсу для запуску цього додатка.
@@ -1969,6 +1988,7 @@
 <translation id="4639407427807680016">Імена хостів для обміну повідомленнями з оригінальними додатками, які потрібно виключити з чорного списку</translation>
 <translation id="4650759511838826572">Вимкнути схеми протоколу URL-адреси</translation>
 <translation id="465099050592230505">URL-адреса корпоративного веб-магазину (більше не підтримується)</translation>
+<translation id="4661889655253181651">Налаштування веб-контенту дає змогу вказувати спосіб обробки вмісту певного типу (наприклад, файлів сookie, зображень або JavaScript).</translation>
 <translation id="4665897631924472251">Параметри керування розширенням</translation>
 <translation id="4668325077104657568">Налаштування зображень за умовчанням</translation>
 <translation id="4670865688564083639">Мінімум:</translation>
@@ -2013,6 +2033,11 @@
       Ці пропозиції завантажуються віддалено із серверів Google.
 
       Якщо встановлено значення false, пропозиції не завантажуватимуться чи не показуватимуться.</translation>
+<translation id="4759650396863318477">Дає змогу встановити період часу (у мілісекундах), протягом якого користувачі бачитимуть сповіщення про те, що потрібно перезапустити <ph name="PRODUCT_NAME" /> або пристрій <ph name="PRODUCT_OS_NAME" />, щоб установити оновлення.
+
+      Протягом цього часу користувач регулярно отримуватиме сповіщення про необхідність оновлення. На пристроях <ph name="PRODUCT_OS_NAME" /> сповіщення щодо перезапуску з'являтиметься на панелі завдань відповідно до правила <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />. У веб-переглядачах <ph name="PRODUCT_NAME" /> змінюється меню додатка, щоб повідомити про необхідність перезапуску, коли минає третина часу для оновлення. Сповіщення змінює колір, коли минає дві третини вказаного часу, а потім ще раз, коли час закінчується. Додаткові сповіщення, які вмикає правило <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />, працюють так само.
+
+      Якщо час не налаштовано, використовується період за умовчанням – 345 600 000 мілісекунд (чотири дні) для пристроїв <ph name="PRODUCT_OS_NAME" /> і 604 800 000 мілісекунд (один тиждень) для <ph name="PRODUCT_NAME" />.</translation>
 <translation id="4788252609789586009">Вмикає функцію автозаповнення в <ph name="PRODUCT_NAME" /> і автоматично вводить дані кредитної картки у веб-форми, використовуючи раніше збережену інформацію.
 
       Якщо це налаштування вимкнено, функція автозаповнення не пропонуватиме та не зберігатиме дані кредитних карток, а також не зберігатиме додаткові дані кредитних карток, які користувач може вводити під час роботи в Інтернеті.
@@ -2207,6 +2232,15 @@
 <translation id="5208240613060747912">Дозволяє налаштовувати список шаблонів URL-адрес, що визначають сайти, яким заборонено показувати сповіщення. Якщо це правило не встановлено, для всіх сайтів використовується загальне значення за умовчанням – з правила "DefaultNotificationsSetting" (якщо його встановлено) або з особистих налаштувань користувача.</translation>
 <translation id="5213038356678567351">Веб-сайти, які ніколи не повинні активувати перехід в інший веб-переглядач.</translation>
 <translation id="5219844027738217407">У додатках Android це правило стосується лише мікрофона. Коли для правила встановлено значення "true", мікрофон вимкнено в усіх додатках Android.</translation>
+<translation id="5221394278852982313">Дає змогу створювати список URL-адрес сайтів, яким автоматично надаватиметься доступ до пристрою USB з указаними ідентифікаторами постачальника й продукту. Щоб це правило було дійсним, кожний елемент списку має містити пристрої та URL-адреси. Кожний елемент на пристрої може містити поля для ідентифікаторів постачальника й продукту. Будь-який пропущений ідентифікатор вважається символом підстановки. Винятком є випадок, коли ідентифікатор продукту неможливо вказати без зазначення ідентифікатора постачальника. В іншому разі це правило буде недійсним та ігноруватиметься.
+
+        Модель доступу до USB використовує URL-адреси запитаного сайту ("запитана URL-адреса") і сайту фрейму найвищого рівня ("вставлена URL-адреса"), щоб надати запитаній URL-адресі доступ до пристрою USB. Запитана URL-адреса може відрізнятися від вставленої, якщо запитаний сайт завантажується в iframe. Тому поле "URL-адреси" може містити до двох рядків, розділених комою, щоб можна було вказати запитану та вставлену URL-адреси відповідно. Якщо вказано лише одну URL-адресу, тоді доступ до відповідних пристроїв USB буде надано, коли запитана URL-адреса відповідатиме вказаній, незалежно від статусу вставлення. URL-адреси, указані у відповідному полі, мають бути дійсними, інакше правило ігноруватиметься.
+
+        Якщо це правило не налаштовано, для всіх сайтів буде застосовано загальне значення за умовчанням відповідно до правила DefaultWebUsbGuardSetting (якщо його встановлено) чи особистих параметрів користувача.
+
+        Шаблони URL-адрес у цьому правилі не повинні суперечити адресам, налаштованим через WebUsbBlockedForUrls. Інакше це правило матиме перевагу над WebUsbBlockedForUrls і WebUsbAskForUrls.
+
+        Значення для цього правила й правила DeviceWebUsbAllowDevicesForUrls об'єднуються.</translation>
 <translation id="5228316810085661003">Затримка автоматичного входу в локальний обліковий запис на пристрої.
 
       Якщо правило |DeviceLocalAccountAutoLoginId| не встановлено, це правило не діє. В інших випадках:
@@ -2932,6 +2966,21 @@
 
       Якщо для правила встановлено значення "Заборонити користувачам керувати сертифікатами", користувачі можуть лише переглядати сертифікати без права керувати ними.</translation>
 <translation id="6573305661369899995">Укажіть зовнішнє джерело обмежень URL-адрес</translation>
+<translation id="6583851521569686409">Налаштовує список принтерів.
+
+      Це правило дає змогу адміністраторам налаштовувати принтери
+      своїх користувачів.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> і <ph name="PRINTER_DESCRIPTION" /> – це рядки довільної форми, які можна налаштувати, щоб легко вибирати принтери. <ph name="PRINTER_MANUFACTURER" /> і <ph name="PRINTER_MODEL" /> допомагають кінцевим користувачам розпізнавати принтери. Вони містять дані про виробника й модель принтера. <ph name="PRINTER_URI" /> має бути адресою, доступною з комп’ютера-клієнта, і містити такі дані: <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> та <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> – додатковий рядок. Він допомагає видалити повтори принтерів <ph name="ZEROCONF_DISCOVERY" />.
+
+      Правило <ph name="PRINTER_EFFECTIVE_MODEL" /> має містити назву принтера або для правила <ph name="PRINTER_AUTOCONF" /> потрібно встановити значення true. Принтери з обома значеннями або без жодного ігноруватимуться.
+
+      Налаштування принтера завершується після його першого використання.  Файли PPD не завантажуються, поки працює принтер.  Коли він завершує роботу, кешуються файли PPD, які часто використовуються.
+
+      Це правило не впливає на здатність користувачів налаштовувати принтери для окремих пристроїв.  Воно доповнює такі налаштування.
+
+      Якщо пристроями керує Active Directory, це правило підтримує розширення <ph name="MACHINE_NAME_VARIABLE" /> до назви пристрою або її підрядків в Active Directory. Наприклад, якщо назва пристрою – <ph name="MACHINE_NAME_EXAMPLE" />, то <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> буде замінено 4 символами після 6-ї позиції, тобто <ph name="MACHINE_NAME_PART_EXAMPLE" />. Зауважте, що позиція починається з нуля.
+      </translation>
 <translation id="6598235178374410284">Зображення профілю користувача</translation>
 <translation id="6603004149426829878">Завжди надсилати на сервер сигнали місцезнаходження під час визначення часового поясу</translation>
 <translation id="6628120204569232711">Повідомляти про стан пам’яті</translation>
@@ -4255,6 +4304,8 @@
 <translation id="915194831143859291">Якщо це правило не налаштовано або має значення "false", <ph name="PRODUCT_OS_NAME" /> дозволятиме користувачу вимикати пристрій.
       Якщо вибрано значення "true", <ph name="PRODUCT_OS_NAME" /> перезапускатиме пристрій, коли користувач намагатиметься його вимкнути. <ph name="PRODUCT_OS_NAME" /> замінює всі кнопки вимкнення в інтерфейсі на кнопки перезавантаження. Якщо користувач вимкне пристрій за допомогою кнопки живлення, пристрій не перезавантажиться, навіть якщо правило ввімкнено.</translation>
 <translation id="9152473318295429890">Вмикає контекстні пропозиції пов’язаних веб-сторінок</translation>
+<translation id="9153446010242995516">Відкочуватися до цільової версії та використовувати її, якщо версія ОС новіша. Якщо можливо, під час процесу відкочування спробуйте перенести налаштування пристрою (зокрема, облікові дані мережі), однак виконайте Powerwash, навіть якщо відновлення інформації неможливе (наприклад, цільова версія не підтримує його або така зміна несумісна).
+          Підтримується в <ph name="PRODUCT_OS_NAME" /> 75 і новіших версій. Це означає, що для клієнтів зі старішою версією відкочування вимкнено.</translation>
 <translation id="9158929520101169054">Дозволити паралельний вхід у веб-переглядачі</translation>
 <translation id="9159126470527871268">Повідомляйте користувачів, що потрібно перезапустити <ph name="PRODUCT_NAME" /> або <ph name="PRODUCT_OS_NAME" />, щоб установити нове оновлення.
 
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 219b78d..2bf207c9 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -1132,6 +1132,15 @@
           Khi bạn không đặt chính sách này, hoạt động của các chính sách cụ thể hơn sẽ không bị ảnh hưởng.</translation>
 <translation id="2987155890997901449">Bật ARC</translation>
 <translation id="2987227569419001736">Kiểm soát việc sử dụng API Web Bluetooth</translation>
+<translation id="2990018289267778247">Nếu bạn đặt chính sách này thành true, thì các tùy chọn Hỗ trợ tiếp cận sẽ luôn xuất hiện trong menu khay hệ thống.
+
+          Nếu bạn đặt chính sách này thành false, thì các tùy chọn Hỗ trợ tiếp cận sẽ không bao giờ xuất hiện trong menu khay hệ thống.
+
+          Nếu bạn đặt chính sách này, thì người dùng sẽ không thể thay đổi hay ghi đè chính sách.
+
+          Nếu bạn không đặt chính sách này, thì các tùy chọn Hỗ trợ tiếp cận sẽ không xuất hiện trong menu khay hệ thống. Tuy nhiên, người dùng có thể đặt để các tùy chọn Hỗ trợ tiếp cận hiển thị qua trang Cài đặt.
+
+          Khi bạn bật các tính năng hỗ trợ truy cập (bằng các phương tiện khác, chẳng hạn như một tổ hợp phím), thì các tùy chọn này sẽ luôn xuất hiện trong menu khay hệ thống.</translation>
 <translation id="3011301228198307065">Định cấu hình URL trang chủ mặc định trong <ph name="PRODUCT_NAME" /> và ngăn không cho người dùng thay đổi URL đó.
 
           Trang chủ là trang mở ra khi người dùng nhấn nút Trang chủ. Các trang mở ra khi khởi động chịu sự kiểm soát của chính sách RestoreOnStartup.
@@ -1453,6 +1462,7 @@
         Tính năng đăng ký chính sách đám mây trong phạm vi máy sử dụng chính sách này trên máy tính để bàn. Sổ đăng ký hoặc GPO trên Windows, plist trên máy Mac và tệp chính sách JSON trên Linux có thể đặt chính sách này.</translation>
 <translation id="3660562134618097814">Chuyển cookie SAML IdP trong khi đăng nhập</translation>
 <translation id="3701121231485832347">Kiểm soát các tùy chọn cài đặt dành riêng cho các thiết bị <ph name="PRODUCT_OS_NAME" /> do <ph name="MS_AD_NAME" /> quản lý.</translation>
+<translation id="3702518095257671450">Chứng thực từ xa</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (Trường một dòng không dùng nữa và sẽ bị xóa trong tương lai. Hãy bắt đầu sử dụng hộp văn bản nhiều dòng bên dưới.)</translation>
 <translation id="3709266154059827597">Định cấu hình danh sách đen cài đặt tiện ích</translation>
 <translation id="3711895659073496551">Tạm ngừng</translation>
@@ -1849,6 +1859,15 @@
 
           Chính sách này chỉ được tuân theo nếu kích hoạt chính sách 'DefaultSearchProviderEnabled'.</translation>
 <translation id="4285674129118156176">Cho phép người dùng không được liên kết sử dụng ARC</translation>
+<translation id="4289903996435140853">Cho phép bạn đặt danh sách các url chỉ định những trang web sẽ tự động được cấp quyền truy cập vào thiết bị USB bằng mã sản phẩm và mã nhà cung cấp cụ thể. Mỗi mục trong danh sách phải chứa cả thiết bị và url để chính sách có hiệu lực. Mỗi mục trong các thiết bị có thể chứa trường mã sản phẩm và mã nhà cung cấp. Bất kỳ mã nào bị bỏ qua đều được coi là ký tự đại diện có một ngoại lệ và ngoại lệ đó chính là không thể chỉ định mã sản phẩm nếu không chỉ định được mã nhà cung cấp. Nếu không, chính sách sẽ không có hiệu lực và bị bỏ qua.
+
+        Mô hình quyền của USB sử dụng URL của trang web yêu cầu ("URL yêu cầu") và URL của trang web khung cấp cao nhất ("URL nhúng") để cấp quyền cho URL yêu cầu truy cập vào thiết bị USB. URL yêu cầu có thể khác với URL nhúng khi bạn tải trang web yêu cầu trong khung nội tuyến. Do đó, trường "url" có thể chứa tối đa hai chuỗi URL phân tách bằng dấu phẩy để chỉ định URL yêu cầu và URL nhúng tương ứng. Nếu chỉ có một URL được chỉ định, thì quyền truy cập vào các thiết bị USB tương ứng sẽ được cấp khi URL của trang web yêu cầu khớp với URL này bất kể trạng thái nhúng. Các URL trong trường "url" phải là các URL hợp lệ. Nếu không, chính sách này sẽ bị bỏ qua.
+
+        Nếu bạn không đặt chính sách này, thì giá trị mặc định chung sẽ dùng cho tất cả các trang web của chính sách 'DefaultWebUsbGuardSetting' nếu chính sách này được đặt, hoặc nếu không sẽ dùng cho cấu hình cá nhân của người dùng.
+
+        Các mẫu URL trong chính sách này không được xung đột với các URL đã định cấu hình thông qua WebUsbBlockedForUrls. Nếu có xung đột, thì chính sách này sẽ được ưu tiên so với WebUsbBlockedForUrls và WebUsbAskForUrls.
+
+        Các giá trị của chính sách này và chính sách WebUsbAllowDevicesForUrls được hợp nhất.</translation>
 <translation id="4298509794364745131">Chỉ định danh sách các ứng dụng có thể bật làm ứng dụng ghi chú trên màn hình khóa của <ph name="PRODUCT_OS_NAME" />.
 
       Nếu bạn bật ứng dụng ghi chú ưa thích trên màn hình khóa, màn hình khóa sẽ chứa phần tử giao diện người dùng để khởi chạy ứng dụng ghi chú ưa thích.
@@ -2000,6 +2019,7 @@
 <translation id="4639407427807680016">Tên của các máy chủ nhắn tin gốc cần xóa khỏi danh sách cấm</translation>
 <translation id="4650759511838826572">Tắt lược đồ giao thức URL</translation>
 <translation id="465099050592230505">URL cửa hàng trực tuyến dành cho doanh nghiệp (không dùng nữa)</translation>
+<translation id="4661889655253181651">Tùy chọn cài đặt nội dung cho phép bạn chỉ định cách xử lý nội dung thuộc một loại cụ thể (chẳng hạn như Cookie, Hình ảnh hoặc JavaScript).</translation>
 <translation id="4665897631924472251">Cài đặt quản lý tiện ích</translation>
 <translation id="4668325077104657568">Cài đặt hình ảnh mặc định</translation>
 <translation id="4670865688564083639">Tối thiểu:</translation>
@@ -2044,6 +2064,11 @@
       Những nội dung đề xuất này sẽ được tìm nạp từ xa từ máy chủ của Google.
 
       Nếu bạn đặt mục cài đặt này thành false, thì nội dung đề xuất sẽ không được tìm nạp hoặc hiển thị.</translation>
+<translation id="4759650396863318477">Cho phép đặt khoảng thời gian tính bằng mili giây mà trong khoảng thời gian đó, người dùng nhận được thông báo phải chạy lại <ph name="PRODUCT_NAME" /> hoặc khởi động lại thiết bị chạy <ph name="PRODUCT_OS_NAME" /> để áp dụng một bản cập nhật đang chờ xử lý.
+
+      Trong khoảng thời gian này, người dùng sẽ được nhắc lại nhiều lần về việc cần phải cập nhật. Đối với các thiết bị chạy <ph name="PRODUCT_OS_NAME" />, thông báo khởi động lại sẽ xuất hiện trong khay hệ thống theo chính sách <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" />. Đối với các trình duyệt <ph name="PRODUCT_NAME" />, menu ứng dụng sẽ thay đổi để cho thấy cần khởi động lại sau khi hết 1/3 thời gian thông báo. Thông báo này sẽ đổi màu khi hết 2/3 thời gian thông báo và đổi màu một lần nữa khi hết toàn bộ thời gian thông báo. Các thông báo bổ sung được bật theo chính sách <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> cũng tuân theo trình tự này.
+
+      Nếu bạn không đặt chính sách này thì khoảng thời gian mặc định là 345600000 mili giây (4 ngày) đối với thiết bị chạy <ph name="PRODUCT_OS_NAME" /> và 604800000 mili giây (1 một tuần) đối với <ph name="PRODUCT_NAME" />.</translation>
 <translation id="4788252609789586009">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 thông tin thẻ tín dụng trong biểu mẫu web bằng cách sử dụng thông tin đã lưu trữ trước đây.
 
       Nếu bạn tắt tùy chọn cài đặt này, thì tính năng Tự động điền sẽ không bao giờ gợi ý hoặc điền thông tin thẻ tín dụng, đồng thời sẽ không lưu thông tin thẻ tín dụng bổ sung mà người dùng có thể gửi trong khi duyệt web.
@@ -2251,6 +2276,15 @@
           Nếu không thiết lập chính sách này, giá trị mặc định chung từ chính sách 'DefaultCookiesSetting' nếu chính sách này được thiết lập hoặc từ cấu hình cá nhân của người dùng sẽ được sử dụng cho tất cả các trang web.</translation>
 <translation id="5213038356678567351">Các trang web sẽ không bao giờ kích hoạt quá trình chuyển trình duyệt.</translation>
 <translation id="5219844027738217407">Đối với các ứng dụng Android, chính sách này chỉ ảnh hưởng đến micrô. Khi chính sách này được đặt thành true, micrô sẽ bị tắt tiếng cho tất cả ứng dụng Android mà không có ngoại lệ nào.</translation>
+<translation id="5221394278852982313">Cho phép bạn đặt danh sách các url chỉ định những trang web sẽ tự động được cấp quyền truy cập vào thiết bị USB bằng mã sản phẩm và mã nhà cung cấp cụ thể. Mỗi mục trong danh sách phải chứa cả thiết bị và url để chính sách có hiệu lực. Mỗi mục trong các thiết bị có thể chứa trường mã sản phẩm và mã nhà cung cấp. Bất kỳ mã nào bị bỏ qua đều được coi là ký tự đại diện có một ngoại lệ và ngoại lệ đó chính là không thể chỉ định mã sản phẩm nếu không chỉ định được mã nhà cung cấp. Nếu không, chính sách sẽ không có hiệu lực và bị bỏ qua.
+
+        Mô hình quyền của USB sử dụng URL của trang web yêu cầu ("URL yêu cầu") và URL của trang web khung cấp cao nhất ("URL nhúng") để cấp quyền cho URL yêu cầu truy cập vào thiết bị USB. URL yêu cầu có thể khác với URL nhúng khi bạn tải trang web yêu cầu trong khung nội tuyến. Do đó, trường "url" có thể chứa tối đa hai chuỗi URL phân tách bằng dấu phẩy để chỉ định URL yêu cầu và URL nhúng tương ứng. Nếu chỉ có một URL được chỉ định, thì quyền truy cập vào các thiết bị USB tương ứng sẽ được cấp khi URL của trang web yêu cầu khớp với URL này bất kể trạng thái nhúng. Các URL trong trường "url" phải là các URL hợp lệ. Nếu không, chính sách này sẽ bị bỏ qua.
+
+        Nếu bạn không đặt chính sách này, thì giá trị mặc định chung sẽ dùng cho tất cả các trang web của chính sách 'DefaultWebUsbGuardSetting' nếu chính sách này được đặt, hoặc nếu không sẽ dùng cho cấu hình cá nhân của người dùng.
+
+        Các mẫu URL trong chính sách này không được xung đột với các URL đã định cấu hình thông qua WebUsbBlockedForUrls. Nếu có xung đột, thì chính sách này sẽ được ưu tiên so với WebUsbBlockedForUrls và WebUsbAskForUrls.
+
+        Các giá trị của chính sách này và chính sách DeviceWebUsbAllowDevicesForUrls policy được hợp nhất.</translation>
 <translation id="5228316810085661003">Độ trễ của tính năng tự động đăng nhập vào tài khoản trên thiết bị.
 
       Nếu chưa đặt chính sách |DeviceLocalAccountAutoLoginId|, thì chính sách này sẽ không có hiệu lực. Ngược lại:
@@ -2993,6 +3027,21 @@
 
       Nếu bạn đặt chính sách này thành ''Không cho phép người dùng quản lý chứng chỉ'', thì người dùng sẽ không thể quản lý các chứng chỉ, họ chỉ có thể xem chứng chỉ.</translation>
 <translation id="6573305661369899995">Đặt nguồn bên ngoài cho hạn chế URL</translation>
+<translation id="6583851521569686409">Định cấu hình danh sách máy in.
+
+      Chính sách này cho phép quản trị viên cung cấp cấu hình máy in cho
+      người dùng của mình.
+
+      <ph name="PRINTER_DISPLAY_NAME" /> và <ph name="PRINTER_DESCRIPTION" /> là các chuỗi dạng tự do có thể tùy chỉnh để dễ dàng chọn máy in. <ph name="PRINTER_MANUFACTURER" /> và <ph name="PRINTER_MODEL" /> giúp người dùng cuối dễ dàng nhận diện máy in. Các thông tin này cho biết nhà sản xuất và kiểu máy in. <ph name="PRINTER_URI" /> phải là một địa chỉ có thể truy cập được từ máy khách, bao gồm cả <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> và <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> là không bắt buộc. Nếu được cung cấp, tùy chọn này sẽ dùng để giúp loại bỏ tình trạng trùng lặp máy in <ph name="ZEROCONF_DISCOVERY" />.
+
+      <ph name="PRINTER_EFFECTIVE_MODEL" /> phải chứa tên của máy in, hoặc bạn phải đặt <ph name="PRINTER_AUTOCONF" /> thành true. Các máy in có cả hai hoặc không có thuộc tính nào đều bị bỏ qua.
+
+      Quá trình thiết lập máy in sẽ hoàn tất trong lần đầu tiên sử dụng máy in.  Các tệp PPD sẽ không được tải xuống cho đến khi máy in được dùng.  Sau lần đó, các tệp PPD dùng thường xuyên sẽ được lưu vào bộ nhớ đệm.
+
+      Chính sách này không ảnh hưởng đến việc người dùng có thể định cấu hình máy in trên từng thiết bị hay không.  Chính sách này nhằm bổ sung cho quá trình định cấu hình máy in theo từng người dùng.
+
+      Đối với các thiết bị được quản lý bằng Active Directory, chính sách này hỗ trợ mở rộng <ph name="MACHINE_NAME_VARIABLE" /> thành tên máy Active Directory hoặc chuỗi con của tên máy đó. Chẳng hạn, nếu tên máy là <ph name="MACHINE_NAME_EXAMPLE" />, thì <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> sẽ được thay thế bằng 4 ký tự bắt đầu sau vị trí thứ 6, tức là <ph name="MACHINE_NAME_PART_EXAMPLE" />. Xin lưu ý rằng vị trí này được tính từ đầu.
+      </translation>
 <translation id="6598235178374410284">Hình đại diện của người dùng</translation>
 <translation id="6603004149426829878">Luôn gửi mọi tín hiệu vị trí có sẵn cho máy chủ trong khi phân giải múi giờ</translation>
 <translation id="6628120204569232711">Báo cáo trạng thái bộ nhớ</translation>
@@ -4347,6 +4396,8 @@
 <translation id="915194831143859291">Nếu chính sách này được đặt thành false hoặc không được định cấu hình, <ph name="PRODUCT_OS_NAME" /> sẽ cho phép người dùng tắt thiết bị.
       Nếu chính sách này được đặt thành true, <ph name="PRODUCT_OS_NAME" /> sẽ kích hoạt khởi động lại khi người dùng tắt thiết bị. <ph name="PRODUCT_OS_NAME" /> sẽ thay thế tất cả số lần xuất hiện nút tắt trong Giao diện người dùng bằng nút khởi động lại. Nếu người dùng tắt thiết bị bằng nút nguồn thì thiết bị đó sẽ không tự động khởi động lại ngay cả khi đã bật chính sách.</translation>
 <translation id="9152473318295429890">Bật nội dung đề xuất theo ngữ cảnh của các trang web liên quan</translation>
+<translation id="9153446010242995516">Hạ cấp và tiếp tục sử dụng phiên bản đích nếu phiên bản hệ điều hành mới hơn phiên bản đích. Hãy tìm cách chuyển sang cấu hình cấp thiết bị (bao gồm cả thông tin truy cập mạng) thông qua quá trình hạ cấp nếu có thể, nhưng hãy thực hiện quá trình hạ cấp bằng chức năng powerwash đầy đủ ngay cả khi không thể khôi phục dữ liệu (vì phiên bản đích không hỗ trợ khôi phục dữ liệu hoặc do một sự thay đổi không tương thích ngược).
+          Hỗ trợ trên <ph name="PRODUCT_OS_NAME" /> phiên bản 75 trở lên. Với các ứng dụng cũ, giá trị này nghĩa là khả năng hạ cấp đã bị vô hiệu hóa.</translation>
 <translation id="9158929520101169054">Cho phép đăng nhập nhiều tài khoản trong trình duyệt</translation>
 <translation id="9159126470527871268">Thông báo cho người dùng biết phải chạy lại <ph name="PRODUCT_NAME" /> hoặc khởi động lại <ph name="PRODUCT_OS_NAME" /> để áp dụng bản cập nhật đang chờ xử lý.
 
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 4cfdad1..b5cc8d8 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -1065,6 +1065,15 @@
           如果未设置此政策,更具体政策的行为不会受到影响。</translation>
 <translation id="2987155890997901449">启用 ARC</translation>
 <translation id="2987227569419001736">控制对 Web Bluetooth API 的使用</translation>
+<translation id="2990018289267778247">如果此政策设为 true,系统任务栏菜单中将始终显示无障碍选项。
+
+          如果此政策设为 false,系统任务栏菜单中绝不会显示无障碍选项。
+
+          如果您设置了此政策,用户将无法更改或覆盖它。
+
+          如果未设置此政策,系统任务栏菜单中将不会显示无障碍选项,但用户可以通过“设置”页面使无障碍选项显示在系统任务栏菜单中。
+
+          启用无障碍功能(通过诸如组合键等其他方式)后,系统任务栏菜单中将始终显示无障碍选项。</translation>
 <translation id="3011301228198307065">配置 <ph name="PRODUCT_NAME" /> 中的默认主页网址,并禁止用户更改此配置。
 
           主页是由“主页”按钮打开的网页。启动时打开的网页是由 RestoreOnStartup 政策控制的。
@@ -1374,6 +1383,7 @@
         此政策由在桌面设备上进行的机器范围云政策注册使用,并可由 Windows 上的注册表/GPO、Mac 上的 plist 以及 Linux 上的 JSON 政策文件设置。</translation>
 <translation id="3660562134618097814">在用户登录期间转移 SAML IdP Cookie</translation>
 <translation id="3701121231485832347">控制由 <ph name="MS_AD_NAME" /> 管理的 <ph name="PRODUCT_OS_NAME" />设备的专用设置。</translation>
+<translation id="3702518095257671450">远程证明</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" />(我们已弃用并将于日后移除单行字段。请开始使用下面的多行文本框。)</translation>
 <translation id="3709266154059827597">配置扩展程序安装黑名单</translation>
 <translation id="3711895659073496551">暂停</translation>
@@ -1754,6 +1764,15 @@
 
           此政策只在启用了“DefaultSearchProviderEnabled”政策的前提下才会生效。</translation>
 <translation id="4285674129118156176">允许独立用户使用 ARC</translation>
+<translation id="4289903996435140853">让您能够以列表的形式设置一系列网址,从而指定将会自动授权哪些网站通过给定的供应商 ID 和产品 ID 访问 USB 设备。列表中的每项内容都必须包含设备和网址这两个部分,此政策才会有效。设备部分中的每项都可包含供应商 ID 和产品 ID 字段。被省略的任何 ID 都会被视为通配符,但例外情况是:如果未指定供应商 ID,便无法指定产品 ID。否则,此政策将会无效并会被忽略。
+
+        USB 权限模型会使用发出相应请求的网站的网址(“请求网址”)和顶级框架网站的网址(“嵌入网址”)来授权请求网址访问 USB 设备。如果发出请求的网站是在 iframe 中加载的,则请求网址可能会与嵌入网址不同。因此,“urls”字段最多可包含 2 个以英文逗号分隔的网址字符串以分别指定请求网址和嵌入网址。如果仅指定了 1 个网址,系统将会在请求网址与这个网址相符(无论嵌入网址的状态为何)时向该网站授予对相应 USB 设备的访问权限。“urls”字段中的网址必须是有效网址,否则系统会忽略此政策。
+
+        如果未设置此政策,系统将会对所有网站使用“DefaultWebUsbGuardSetting”政策中的全局默认值(倘若已设置“DefaultWebUsbGuardSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultWebUsbGuardSetting”政策)。
+
+        此政策中的网址格式不应与通过 WebUsbBlockedForUrls 配置的网址格式冲突。如果存在冲突,则此政策的优先级高于 WebUsbBlockedForUrls 和 WebUsbAskForUrls。
+
+        此政策和 WebUsbAllowDevicesForUrls 政策的值会合并在一起。</translation>
 <translation id="4298509794364745131">指定可以在 <ph name="PRODUCT_OS_NAME" />锁定屏幕上作为备注应用启用的应用列表。
 
       如果在锁定屏幕上启用首选备注应用,则锁定屏幕将包含用于启动该首选备注应用的界面元素。
@@ -1897,6 +1916,7 @@
 <translation id="4639407427807680016">免于列入黑名单的本地消息传递主机名</translation>
 <translation id="4650759511838826572">停用网址协议架构</translation>
 <translation id="465099050592230505">企业网上应用店网址(已弃用)</translation>
+<translation id="4661889655253181651">“内容设置”让您能够指定对特定类型内容(例如 Cookie、图片或 JavaScript)的处理方式。</translation>
 <translation id="4665897631924472251">扩展程序管理设置</translation>
 <translation id="4668325077104657568">默认图片设置</translation>
 <translation id="4670865688564083639">下限:</translation>
@@ -1941,6 +1961,11 @@
       这些建议是从 Google 服务器远程提取的。
 
       如果此政策设为 false,将不会提取或显示此类建议。</translation>
+<translation id="4759650396863318477">让您能够设置一个时间段(以毫秒为单位),在该时间段内,如果必须重新启动 <ph name="PRODUCT_NAME" /> 或必须重启 <ph name="PRODUCT_OS_NAME" />设备以应用待应用的更新,用户将会收到通知。
+
+      在该时间段内,如果需要更新,系统会反复通知用户。对于 <ph name="PRODUCT_OS_NAME" />设备,系统会根据 <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" /> 政策在系统任务栏中显示重启通知。对于 <ph name="PRODUCT_NAME" /> 浏览器,应用菜单会在通知时间段过去三分之一后立即发生变化,以指示需要重新启动浏览器。此通知会在通知时间段过去三分之二后立即改变颜色,并会在整个通知时间段过后再次立即改变颜色。由 <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> 政策启用的其他通知也会遵循这一时间表。
+
+      如果此政策未设置,对于 <ph name="PRODUCT_OS_NAME" />设备,系统会使用 345600000 毫秒(4 天)的默认通知时间段,对于 <ph name="PRODUCT_NAME" />,则会使用 604800000 毫秒(1 周)的默认通知时间段。</translation>
 <translation id="4788252609789586009">启用 <ph name="PRODUCT_NAME" /> 的“自动填充”功能,并允许用户使用以前存储的信用卡信息在网络表单中自动填写相关信息。
 
       如果停用了此设置,“自动填充”功能将不会提供建议或填充信用卡信息,也不会保存用户可能会在浏览网页时提交的其他信用卡信息。
@@ -2130,6 +2155,15 @@
 <translation id="5208240613060747912">可让您设置网址格式的列表,这些网址格式用于指定不允许显示通知的网站。在未设置此政策的情况下,如果设置了“DefaultNotificationsSetting”政策,那么将对该政策中的所有网站使用全局默认值,否则将对用户个人配置中的所有网站使用全局默认值。</translation>
 <translation id="5213038356678567351">始终不应触发浏览器切换的网站。</translation>
 <translation id="5219844027738217407">对于 Android 应用,此政策仅会影响麦克风。当此政策设为 true 时,系统会针对所有 Android 应用(无一例外)将麦克风设为静音。</translation>
+<translation id="5221394278852982313">让您能够以列表的形式设置一系列网址,从而指定将会自动授权哪些网站通过给定的供应商 ID 和产品 ID 访问 USB 设备。列表中的每项内容都必须包含设备和网址这两个部分,此政策才会有效。设备部分中的每项都可包含供应商 ID 和产品 ID 字段。被省略的任何 ID 都会被视为通配符,但例外情况是:如果未指定供应商 ID,便无法指定产品 ID。否则,此政策将会无效并会被忽略。
+
+        USB 权限模型会使用发出相应请求的网站的网址(“请求网址”)和顶级框架网站的网址(“嵌入网址”)来授权请求网址访问 USB 设备。如果发出请求的网站是在 iframe 中加载的,则请求网址可能会与嵌入网址不同。因此,“urls”字段最多可包含 2 个以英文逗号分隔的网址字符串以分别指定请求网址和嵌入网址。如果仅指定了 1 个网址,系统将会在请求网址与这个网址相符(无论嵌入网址的状态为何)时向该网站授予对相应 USB 设备的访问权限。“urls”字段中的网址必须是有效网址,否则系统会忽略此政策。
+
+        如果未设置此政策,系统将会对所有网站使用“DefaultWebUsbGuardSetting”政策中的全局默认值(倘若已设置“DefaultWebUsbGuardSetting”政策),或使用用户个人配置中的全局默认值(倘若未设置“DefaultWebUsbGuardSetting”政策)。
+
+        此政策中的网址格式不应与通过 WebUsbBlockedForUrls 配置的网址格式冲突。如果存在冲突,则此政策的优先级高于 WebUsbBlockedForUrls 和 WebUsbAskForUrls。
+
+        此政策和 DeviceWebUsbAllowDevicesForUrls 政策的值会合并在一起。</translation>
 <translation id="5228316810085661003">设备本地帐号自动登录延迟。
 
       如果未设置 |DeviceLocalAccountAutoLoginId| 政策,则此政策不会生效。在设置了 |DeviceLocalAccountAutoLoginId| 政策的情况下:
@@ -2829,6 +2863,20 @@
 
       如果此政策设为“禁止用户管理证书”,用户将无法管理证书,只能查看证书。</translation>
 <translation id="6573305661369899995">设置网址限制条件的外部来源</translation>
+<translation id="6583851521569686409">配置打印机列表。
+
+      通过此政策,管理员可为用户提供打印机配置。
+
+      “<ph name="PRINTER_DISPLAY_NAME" />”和“<ph name="PRINTER_DESCRIPTION" />”均为自由格式的字符串,且均可被自定义以便于选择打印机。“<ph name="PRINTER_MANUFACTURER" />”和“<ph name="PRINTER_MODEL" />”则可以帮助最终用户轻松识别打印机。它们分别代表打印机的制造商和型号。“<ph name="PRINTER_URI" />”应是可通过客户端计算机访问的地址,包括“<ph name="URI_SCHEME" />”、“<ph name="URI_PORT" />”和“<ph name="URI_QUEUE" />”。“<ph name="PRINTER_UUID" />”是可选项。如果提供的话,该项可用于帮助删除重复的“<ph name="ZEROCONF_DISCOVERY" />”打印机。
+
+      要么 <ph name="PRINTER_EFFECTIVE_MODEL" /> 应该包含打印机的名称,要么 <ph name="PRINTER_AUTOCONF" /> 应该设为 true。具有这两种属性或者不具有任一属性的打印机将会被忽略。
+
+      打印机设置会在用户首次使用打印机时完成。在用户开始使用打印机之前,系统不会下载 PPD。在用户开始使用打印机之后,系统会缓存经常使用的 PPD。
+
+      此政策对用户能否在某设备上配置打印机没有影响。它旨在对各个用户的打印机配置起到补充作用。
+
+      对于由 Active Directory 托管的设备,此政策支持将“<ph name="MACHINE_NAME_VARIABLE" />”扩展为 Active Directory 机器名称或其子字符串。例如,如果机器名称是“<ph name="MACHINE_NAME_EXAMPLE" />”,则“<ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />”将被替换为第 6 个字符后面的 4 个字符(即 <ph name="MACHINE_NAME_PART_EXAMPLE" />)。请注意,位置序数从 0 起算。
+      </translation>
 <translation id="6598235178374410284">用户头像图片</translation>
 <translation id="6603004149426829878">解析时区时一律将任何可用的位置信号发送给服务器</translation>
 <translation id="6628120204569232711">报告存储状态</translation>
@@ -4102,6 +4150,8 @@
 <translation id="915194831143859291">如果此政策设为 false 或未配置,<ph name="PRODUCT_OS_NAME" />将允许用户关闭设备。
       如果此政策设为 true,<ph name="PRODUCT_OS_NAME" />会在用户关闭设备时触发重新启动操作。<ph name="PRODUCT_OS_NAME" />会将界面中的所有关机按钮替换为重新启动按钮。如果用户通过电源按钮关闭设备,设备将不会自动重新启动,即使启用了此政策也是如此。</translation>
 <translation id="9152473318295429890">允许根据上下文建议相关的网页</translation>
+<translation id="9153446010242995516">如果操作系统版本比目标版本新,则回滚到并持续使用目标版本。会尽量尝试通过回滚过程继承设备级配置(包括网络凭据),但即使无法恢复数据(因为目标版本不支持恢复数据,或因为发生了无法向后兼容的更改),也会通过执行完整的 Powerwash 操作进行回滚。
+          在 <ph name="PRODUCT_OS_NAME" />版本 75 及更高版本上均受支持。对于旧版客户端,此值意味着已停用回滚。</translation>
 <translation id="9158929520101169054">允许在同一浏览器中登录多个帐号</translation>
 <translation id="9159126470527871268">必须重新启动 <ph name="PRODUCT_NAME" /> 或必须重启 <ph name="PRODUCT_OS_NAME" />以应用待应用的更新时,通知用户。
 
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 4520cea..3a56d26 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -1100,6 +1100,15 @@
           如果不設定這項政策,內容更特定的政策將維持相同行為,不受這項政策影響。</translation>
 <translation id="2987155890997901449">啟用 ARC</translation>
 <translation id="2987227569419001736">控制 Web Bluetooth API 使用權限</translation>
+<translation id="2990018289267778247">如果將這項政策設定為 True,系統將一律在系統匣選單中顯示無障礙工具選項。
+
+          如果將這項政策設定為 False,系統匣選單中就永遠不會顯示無障礙工具選項。
+
+          設定這項政策後,使用者即無法變更或覆寫。
+
+          如果不設定這項政策,系統匣選單中不會顯示無障礙工具選項,但使用者可以在「設定」頁面中,將無障礙工具選項設為顯示。
+
+          如果透過其他方式 (例如按鍵組合) 啟用無障礙工具功能,系統將一律在系統匣選單中顯示無障礙工具選項。</translation>
 <translation id="3011301228198307065">設定 <ph name="PRODUCT_NAME" /> 的預設首頁網址,並禁止使用者變更這項設定。
 
           首頁是指點選 [首頁] 按鈕後開啟的網頁。啟動時開啟的網頁由 RestoreOnStartup 政策控管。
@@ -1411,6 +1420,7 @@
         如果將這項政策設定為 True,系統會強制你註冊雲端管理服務。如果註冊失敗,系統會封鎖 Chrome 啟動程序。如果不設定這項政策或設為 False,你可以選擇是否要註冊雲端管理服務。即使註冊失敗,系統也不會封鎖 Chrome 啟動程序。在桌面註冊機器範圍雲端政策時會使用這項政策,你可以透過 Windows 的登錄檔或 GPO、Mac 的 plist 以及 Linux 的 JSON 政策檔設定這項政策。</translation>
 <translation id="3660562134618097814">登入時移轉 SAML IdP Cookie</translation>
 <translation id="3701121231485832347">控管 <ph name="MS_AD_NAME" /> 管理的 <ph name="PRODUCT_OS_NAME" /> 裝置專屬設定。</translation>
+<translation id="3702518095257671450">遠端認證</translation>
 <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (單行欄位已淘汰,日後將遭到移除。請開始使用下方的多行文字方塊。)</translation>
 <translation id="3709266154059827597">設定擴充功能安裝黑名單</translation>
 <translation id="3711895659073496551">暫停</translation>
@@ -1790,6 +1800,15 @@
 
           只有在啟用「DefaultSearchProviderEnabled」時,系統才會遵循這項政策。</translation>
 <translation id="4285674129118156176">允許無關聯的使用者使用 ARC</translation>
+<translation id="4289903996435140853">你可以設定一組網址清單,當中指定的網站會自動取得權限,可存取具有特定廠商和產品 ID 的 USB 裝置。清單中的每個項目都必須包含裝置和網址,這項政策才會生效。裝置中的每個項目可包含廠商 ID 和產品 ID 欄位。如省略任何 ID,系統將視作萬用字元處理,但以下情況例外:如果未指定廠商 ID,也不可指定產品 ID,否則這項政策將不會生效,並會遭到忽略。
+
+        USB 權限模型會使用要求網站的網址 (簡稱「要求網址」) 以及頂層頁框網站的網址 (簡稱「嵌入網址」),將 USB 裝置的存取權授予要求網址。當要求網站在 iframe 中載入時,要求網址可能與嵌入網址不同。因此,「urls」欄位最多可包含兩個網址字串 (以半形逗號分隔),以分別指定要求網址和嵌入網址。如果只指定一個網址,當要求網站的網址與這個網址相符時,不論其是否為嵌入網址,系統都會授予相應 USB 裝置的存取權限。「urls」中的網址必須是有效網址,否則系統將忽略這項政策。
+
+        如果不設定這項政策,所有網站都將使用「DefaultWebUsbGuardSetting」政策的全域預設值 (如有設定的話) 或使用者的個人設定值。
+
+        這項政策中的網址模式應與透過 WebUsbBlockedForUrls 所設定的網址模式保持一致。如果兩者不符,這項政策的優先順序高於 WebUsbBlockedForUrls 和 WebUsbAskForUrls。
+
+        系統會將這項政策的值和 WebUsbAllowDevicesForUrls 政策的值合併。</translation>
 <translation id="4298509794364745131">指定可在「<ph name="PRODUCT_OS_NAME" />」螢幕鎖定畫面中做為筆記應用程式使用的應用程式清單。
 
       如果你偏好的筆記應用程式可在螢幕鎖定畫面中啟用,螢幕鎖定畫面就會顯示使用者介面元素,供你啟動該應用程式。
@@ -1931,6 +1950,7 @@
 <translation id="4639407427807680016">要從黑名單中排除的內建訊息傳遞主機名稱</translation>
 <translation id="4650759511838826572">停用網址通訊協定機制</translation>
 <translation id="465099050592230505">企業線上應用程式商店網址 (已不適用)</translation>
+<translation id="4661889655253181651">內容設定可讓你指定特定內容類型 (例如 Cookie、圖片或 JavaScript) 的處理方式。</translation>
 <translation id="4665897631924472251">擴充功能管理設定</translation>
 <translation id="4668325077104657568">預設圖片設定</translation>
 <translation id="4670865688564083639">下限:</translation>
@@ -1975,6 +1995,11 @@
       這些建議是從遠端向 Google 伺服器擷取而來。
 
       如果設為 false,則不會擷取或顯示建議。</translation>
+<translation id="4759650396863318477">你可以設定時間範圍 (以毫秒為單位),系統會在這段時間內通知使用者必須重新啟動 <ph name="PRODUCT_NAME" /> 或 <ph name="PRODUCT_OS_NAME" />裝置,才能套用未安裝的更新。
+
+      在你設定的時間範圍內,使用者會持續收到更新通知。在 <ph name="PRODUCT_OS_NAME" />裝置上,系統會根據 <ph name="RELAUNCH_HEADS_UP_PERIOD_POLICY_NAME" /> 政策,在系統匣中顯示重新啟動通知。在 <ph name="PRODUCT_NAME" /> 瀏覽器中,當通知時間過了三分之一後,應用程式選單會有所變更,表示瀏覽器需要重新啟動。這項通知會在時間過了三分之二後變更顏色,並於時間結束後再次變色。由 <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> 政策啟用的其他通知也會遵循相同的時間表。
+
+      如果不設定,<ph name="PRODUCT_OS_NAME" />裝置的預設通知期間為 345600000 毫秒 (四天),<ph name="PRODUCT_NAME" /> 的預設通知期間則為 604800000 毫秒 (一週)。</translation>
 <translation id="4788252609789586009">啟用 <ph name="PRODUCT_NAME" /> 的自動填入功能,並允許使用者使用先前儲存的信用卡資訊自動填寫網路表單。
 
       如果停用這項設定,自動填入功能就不會提出填寫建議或填入信用卡資訊,也無法儲存使用者在瀏覽網路時提交的其他信用卡資訊。
@@ -2167,6 +2192,15 @@
 <translation id="5208240613060747912">允許你設定網址模式清單,指定不可以展示通知的網站。如果未設定這項政策,系統會從「DefaultNotificationsSetting」政策 (如果有設定的話) 或使用者的個人設定,將通用預設值套用至所有網站。</translation>
 <translation id="5213038356678567351">完全不該觸發瀏覽器切換的網站。</translation>
 <translation id="5219844027738217407">這項政策對 Android 應用程式的影響僅限於麥克風。將這項政策設為 true 時,所有 Android 應用程式皆無法使用麥克風 (設為靜音),沒有任何例外。</translation>
+<translation id="5221394278852982313">你可以設定一組網址清單,當中指定的網站會自動取得權限,可存取具有特定廠商和產品 ID 的 USB 裝置。清單中的每個項目都必須包含裝置和網址,這項政策才會生效。裝置中的每個項目可包含廠商 ID 和產品 ID 欄位。如省略任何 ID,系統將視作萬用字元處理,但以下情況例外:如果未指定廠商 ID,也不可指定產品 ID。否則這項政策將不會生效,並會遭到忽略。
+
+        USB 權限模型會使用要求網站的網址 (簡稱「要求網址」) 以及頂層頁框網站的網址 (簡稱「嵌入網址」),將 USB 裝置的存取權授予要求網址。當要求網站在 iframe 中載入時,要求網址可能與嵌入網址不同。因此,「urls」欄位最多可包含兩個網址字串 (以半形逗號分隔),以分別指定要求網址和嵌入網址。如果只指定一個網址,當要求網站的網址與這個網址相符時,不論其是否為嵌入網址,系統都會授予相應 USB 裝置的存取權限。「urls」中的網址必須是有效網址,否則系統將忽略這項政策。
+
+        如果不設定這項政策,所有網站都將使用「DefaultWebUsbGuardSetting」政策的全域預設值 (如有設定的話) 或使用者的個人設定值。
+
+        這項政策中的網址模式應與透過 WebUsbBlockedForUrls 所設定的網址模式保持一致。如果兩者不符,這項政策的優先順序高於 WebUsbBlockedForUrls 和 WebUsbAskForUrls。
+
+        系統會將這項政策的值和 DeviceWebUsbAllowDevicesForUrls 政策的值合併。</translation>
 <translation id="5228316810085661003">裝置本機帳戶自動登入延遲。
 
       如未設定 |DeviceLocalAccountAutoLoginId| 政策,這項政策不會生效。否則:
@@ -2870,6 +2904,20 @@
 
       如果將這項政策設為「禁止使用者管理憑證」,使用者將無法管理憑證,只能查看憑證。</translation>
 <translation id="6573305661369899995">設定外部網址來源限制</translation>
+<translation id="6583851521569686409">設定印表機清單。
+
+      這項政策可讓管理員為使用者提供印表機設定。
+
+      「<ph name="PRINTER_DISPLAY_NAME" />」和「<ph name="PRINTER_DESCRIPTION" />」可填入形式不拘的自訂字串,方便使用者選取印表機。「<ph name="PRINTER_MANUFACTURER" />」和「<ph name="PRINTER_MODEL" />」可讓使用者輕鬆識別印表機,兩者分別代表印表機的製造商和型號。<ph name="PRINTER_URI" /> 必須是可透過用戶端電腦連線的位址,包括 <ph name="URI_SCHEME" />、<ph name="URI_PORT" /> 和 <ph name="URI_QUEUE" />。<ph name="PRINTER_UUID" /> 為選填欄位。如有提供這項資訊,系統會用來刪除重複的 <ph name="ZEROCONF_DISCOVERY" /> 印表機。
+
+      你可以選擇在 <ph name="PRINTER_EFFECTIVE_MODEL" /> 中納入印表機名稱,或將 <ph name="PRINTER_AUTOCONF" /> 設為 True。如果同時設定 (或同時不設定) 這兩個印表機屬性,系統將予以忽略。
+
+      首次使用印表機時,系統會完成印表機設定程序。PPD 則會在有人使用印表機時才下載。之後系統會快取常用的 PPD。
+
+      這項政策對使用者是否能在個別裝置上設定印表機沒有影響,而是補足個別使用者的印表機設定。
+
+      如果是 Active Directory 管理的裝置,這項政策支援將 <ph name="MACHINE_NAME_VARIABLE" /> 擴充為 Active Directory 電腦名稱或其子字串。舉例來說,如果電腦名稱為 <ph name="MACHINE_NAME_EXAMPLE" />,則系統會以第 6 個字元後的 4 個字元取代 <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />,也就是 <ph name="MACHINE_NAME_PART_EXAMPLE" />。請注意,字元序數從 0 開始計算。
+      </translation>
 <translation id="6598235178374410284">使用者顯示圖片</translation>
 <translation id="6603004149426829878">偵測時區時一律將任何可用的位置標記傳送至伺服器</translation>
 <translation id="6628120204569232711">回報儲存空間狀態</translation>
@@ -4149,6 +4197,8 @@
 <translation id="915194831143859291">如果將這項政策設為 False 或不予設定,<ph name="PRODUCT_OS_NAME" /> 會允許使用者關閉裝置。
       如果將這項政策設為 True,<ph name="PRODUCT_OS_NAME" /> 會在使用者關閉裝置時觸發重新啟動程序。此外,<ph name="PRODUCT_OS_NAME" /> 會將使用者介面中的所有關機按鈕改成重新啟動按鈕。如果使用者使用電源按鈕關閉裝置,即使您已啟用這項政策,裝置仍然不會自動重新啟動。</translation>
 <translation id="9152473318295429890">允許根據目前網頁內容建議相關的網頁</translation>
+<translation id="9153446010242995516">如果 OS 版本比目標版本還新,則復原並維持在目標版本。系統會在版本復原過程中儘可能嘗試沿用網路憑證等裝置層級設定,但即使因故無法保留這些資料 (例如目標版本不支援還原資料,或變更內容與舊版不相容),系統仍會復原至目標版本,並執行完整的 Powerwash。
+          支援 <ph name="PRODUCT_OS_NAME" /> 75 以上版本。如果用戶端版本較舊,則這個值代表復原功能已停用。</translation>
 <translation id="9158929520101169054">允許在瀏覽器中使用多帳戶登入功能</translation>
 <translation id="9159126470527871268">通知使用者必須重新啟動 <ph name="PRODUCT_NAME" /> 或 <ph name="PRODUCT_OS_NAME" />才能套用未安裝的更新。
 
diff --git a/components/services/pdf_compositor/BUILD.gn b/components/services/pdf_compositor/BUILD.gn
index c21b77a..31f56d2 100644
--- a/components/services/pdf_compositor/BUILD.gn
+++ b/components/services/pdf_compositor/BUILD.gn
@@ -21,7 +21,6 @@
     "//content/public/common:service_names",
     "//content/public/utility",
     "//printing/common",
-    "//services/ws/public/mojom",
     "//skia",
     "//third_party/blink/public:blink_headers",
   ]
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 90cd4d09..2d3f21a 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -1103,6 +1103,7 @@
 <translation id="7053983685419859001">حظر</translation>
 <translation id="7062635574500127092">أزرق مخضر</translation>
 <translation id="7064851114919012435">معلومات الاتصال</translation>
+<translation id="7075452647191940183">الطلب كبير جدًا</translation>
 <translation id="7079718277001814089">يحتوي هذا الموقع على برامج ضارة</translation>
 <translation id="7087282848513945231">مقاطعة</translation>
 <translation id="7090678807593890770">‏البحث في Google عن <ph name="LINK" /></translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index 905cdfc..664d9e9 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -1103,6 +1103,7 @@
 <translation id="7053983685419859001">Bloker</translation>
 <translation id="7062635574500127092">Grønblå</translation>
 <translation id="7064851114919012435">Kontaktoplysninger</translation>
+<translation id="7075452647191940183">Anmodningen er for stor</translation>
 <translation id="7079718277001814089">Dette website indeholder malware</translation>
 <translation id="7087282848513945231">Amt/region</translation>
 <translation id="7090678807593890770">Søg efter <ph name="LINK" /> på Google</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 3c1199f..d14c3ce 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -1093,6 +1093,7 @@
 <translation id="7053983685419859001">Blockieren</translation>
 <translation id="7062635574500127092">Blaugrün</translation>
 <translation id="7064851114919012435">Kontaktdaten</translation>
+<translation id="7075452647191940183">Die Anfrage ist zu groß</translation>
 <translation id="7079718277001814089">Diese Website enthält Malware</translation>
 <translation id="7087282848513945231">Landkreis</translation>
 <translation id="7090678807593890770">Auf Google nach <ph name="LINK" /> suchen</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index 5347b8d..578f688 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -1095,6 +1095,7 @@
 <translation id="7053983685419859001">Bloquear</translation>
 <translation id="7062635574500127092">Turquesa</translation>
 <translation id="7064851114919012435">Información de contacto</translation>
+<translation id="7075452647191940183">La solicitud es demasiado grande</translation>
 <translation id="7079718277001814089">Este sitio web contiene software malicioso</translation>
 <translation id="7087282848513945231">Condado</translation>
 <translation id="7090678807593890770">Busca <ph name="LINK" /> en Google</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 11677af..a1f93f73 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -1103,6 +1103,7 @@
 <translation id="7053983685419859001">مسدود کردن</translation>
 <translation id="7062635574500127092">سبز دودی</translation>
 <translation id="7064851114919012435">اطلاعات تماس</translation>
+<translation id="7075452647191940183">درخواست خیلی بزرگ است</translation>
 <translation id="7079718277001814089">این سایت حاوی بدافزار است</translation>
 <translation id="7087282848513945231">بخش/شهرستان</translation>
 <translation id="7090678807593890770">‏جستجوی <ph name="LINK" /> در Google</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index 8880ac3..5bd92347 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -1102,6 +1102,7 @@
 <translation id="7053983685419859001">અવરોધિત કરો</translation>
 <translation id="7062635574500127092">મોરપીંછ</translation>
 <translation id="7064851114919012435">સંપર્ક માહિતી</translation>
+<translation id="7075452647191940183">વિનંતી ખૂબ મોટી છે.</translation>
 <translation id="7079718277001814089">આ સાઇટમાં માલવેર છે</translation>
 <translation id="7087282848513945231">કાઉન્ટિ</translation>
 <translation id="7090678807593890770"><ph name="LINK" /> માટે Google પર શોધો</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index 2fae4991..e201774 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -1102,6 +1102,7 @@
 <translation id="7053983685419859001">Blokir</translation>
 <translation id="7062635574500127092">Hijau kebiruan</translation>
 <translation id="7064851114919012435">Info kontak</translation>
+<translation id="7075452647191940183">Permintaan terlalu besar</translation>
 <translation id="7079718277001814089">Situs ini berisi malware</translation>
 <translation id="7087282848513945231">Wilayah</translation>
 <translation id="7090678807593890770">Telusuri <ph name="LINK" /> di Google</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index 81c8285..5e7d11c3 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -1095,6 +1095,7 @@
 <translation id="7053983685419859001">ブロック</translation>
 <translation id="7062635574500127092">青緑</translation>
 <translation id="7064851114919012435">連絡先情報</translation>
+<translation id="7075452647191940183">リクエストが大きすぎます</translation>
 <translation id="7079718277001814089">このサイトには不正なソフトウェアが含まれています</translation>
 <translation id="7087282848513945231">郡</translation>
 <translation id="7090678807593890770"><ph name="LINK" /> を Google で検索してください</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index 5f8cd23..7074a93 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -1097,6 +1097,7 @@
 <translation id="7053983685419859001">ನಿರ್ಬಂಧಿಸು</translation>
 <translation id="7062635574500127092">ಗಾಢ ಹಸಿರು-ನೀಲಿ</translation>
 <translation id="7064851114919012435">ಸಂಪರ್ಕ ಮಾಹಿತಿ</translation>
+<translation id="7075452647191940183">ವಿನಂತಿಯು ತೀರಾ ದೊಡ್ಡದಾಗಿದೆ</translation>
 <translation id="7079718277001814089">ಈ ಸೈಟ್ ಮಾಲ್‌‌ವೇರ್ ಹೊಂದಿದೆ</translation>
 <translation id="7087282848513945231">ರಾಷ್ಟ್ರ</translation>
 <translation id="7090678807593890770"><ph name="LINK" /> ಗೆ Google ಹುಡುಕಾಟ</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index eb4952d..6595e75 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -1103,6 +1103,7 @@
 <translation id="7053983685419859001">차단</translation>
 <translation id="7062635574500127092">청록색</translation>
 <translation id="7064851114919012435">연락처 정보</translation>
+<translation id="7075452647191940183">요청이 너무 큼</translation>
 <translation id="7079718277001814089">이 사이트에 멀웨어가 있습니다.</translation>
 <translation id="7087282848513945231">카운티</translation>
 <translation id="7090678807593890770">Google에서 <ph name="LINK" /> 검색</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 0903063..85a96a6 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -1097,6 +1097,7 @@
 <translation id="7053983685419859001">Sekat</translation>
 <translation id="7062635574500127092">Hijau kebiruan</translation>
 <translation id="7064851114919012435">Maklumat hubungan</translation>
+<translation id="7075452647191940183">Permintaan terlalu besar</translation>
 <translation id="7079718277001814089">Tapak ini mengandungi perisian hasad</translation>
 <translation id="7087282848513945231">Daerah</translation>
 <translation id="7090678807593890770">Cari <ph name="LINK" /> di Google</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 36ee137..5cf245be 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -1089,6 +1089,7 @@
 <translation id="7053983685419859001">Blokkeren</translation>
 <translation id="7062635574500127092">Blauwgroen</translation>
 <translation id="7064851114919012435">Contactgegevens</translation>
+<translation id="7075452647191940183">Verzoek is te groot</translation>
 <translation id="7079718277001814089">Deze site bevat malware</translation>
 <translation id="7087282848513945231">County</translation>
 <translation id="7090678807593890770">Zoek op Google naar <ph name="LINK" /></translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index f8a2e63..89228f6 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -1103,6 +1103,7 @@
 <translation id="7053983685419859001">Bloquear</translation>
 <translation id="7062635574500127092">Azul-petróleo</translation>
 <translation id="7064851114919012435">Dados de contato</translation>
+<translation id="7075452647191940183">A solicitação é muito grande</translation>
 <translation id="7079718277001814089">Este site contém malware</translation>
 <translation id="7087282848513945231">Condado</translation>
 <translation id="7090678807593890770">Pesquise <ph name="LINK" /> no Google</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index b63dc55..f6788d9 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -1094,6 +1094,7 @@
 <translation id="7053983685419859001">Блокировать</translation>
 <translation id="7062635574500127092">Бирюзовый</translation>
 <translation id="7064851114919012435">Контактные данные</translation>
+<translation id="7075452647191940183">Запрос слишком велик.</translation>
 <translation id="7079718277001814089">Этот сайт содержит вредоносное ПО</translation>
 <translation id="7087282848513945231">Округ</translation>
 <translation id="7090678807593890770">Выполните поиск по запросу <ph name="LINK" /> в Google</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index 67c9b1f..3b1886c 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -1103,6 +1103,7 @@
 <translation id="7053983685419859001">Blockera</translation>
 <translation id="7062635574500127092">Blågrön</translation>
 <translation id="7064851114919012435">Kontaktuppgifter</translation>
+<translation id="7075452647191940183">Begäran är för stor</translation>
 <translation id="7079718277001814089">Webbplatsen innehåller skadlig programvara.</translation>
 <translation id="7087282848513945231">Kommun</translation>
 <translation id="7090678807593890770">Sök efter <ph name="LINK" /> på Google</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index 3e9108b..1547c22 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -1097,6 +1097,7 @@
 <translation id="7053983685419859001">నిరోధించు</translation>
 <translation id="7062635574500127092">నీలి పచ్చ రంగు</translation>
 <translation id="7064851114919012435">సంప్రదింపు సమాచారం</translation>
+<translation id="7075452647191940183">అభ్యర్థన చాలా పెద్దదిగా ఉంది</translation>
 <translation id="7079718277001814089">ఈ సైట్‌లో మాల్వేర్ ఉంది</translation>
 <translation id="7087282848513945231">కౌంటి</translation>
 <translation id="7090678807593890770"><ph name="LINK" /> కోసం Googleలో వెతకండి</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index 2afd64f..9364413a 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -1103,6 +1103,7 @@
 <translation id="7053983685419859001">Engelle</translation>
 <translation id="7062635574500127092">Turkuvaz</translation>
 <translation id="7064851114919012435">İletişim bilgileri</translation>
+<translation id="7075452647191940183">İstek çok büyük</translation>
 <translation id="7079718277001814089">Bu site kötü amaçlı yazılım içeriyor</translation>
 <translation id="7087282848513945231">Ülke</translation>
 <translation id="7090678807593890770">Google'da <ph name="LINK" /> araması yapın</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index 847bf2c..1ba97a85 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -1103,6 +1103,7 @@
 <translation id="7053983685419859001">Блокувати</translation>
 <translation id="7062635574500127092">Бірюзовий</translation>
 <translation id="7064851114919012435">Контактна інформація</translation>
+<translation id="7075452647191940183">Запит завеликий</translation>
 <translation id="7079718277001814089">Цей сайт містить зловмисне програмне забезпечення</translation>
 <translation id="7087282848513945231">Країна</translation>
 <translation id="7090678807593890770">Пошукайте за запитом "<ph name="LINK" />" у Google</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 0cf0e29..bad50f3 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -1103,6 +1103,7 @@
 <translation id="7053983685419859001">Chặn</translation>
 <translation id="7062635574500127092">Xanh mòng két</translation>
 <translation id="7064851114919012435">Thông tin liên hệ</translation>
+<translation id="7075452647191940183">Yêu cầu quá lớn</translation>
 <translation id="7079718277001814089">Trang web này có chứa phần mềm độc hại</translation>
 <translation id="7087282848513945231">Hạt</translation>
 <translation id="7090678807593890770">Tìm kiếm <ph name="LINK" /> trên Google</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index b3b6e709..c69bf46 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -175,7 +175,7 @@
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">持卡人姓名</translation>
 <translation id="1821930232296380041">请求或请求参数无效</translation>
-<translation id="1822370876374026111">若想在下次购物时更快捷地付款,请将您的付款卡信息和帐单邮寄地址添加到您的 Google 帐号名下以及这台设备中。</translation>
+<translation id="1822370876374026111">若想在下次购物时更快捷地付款,请将您的付款卡信息和帐单邮寄地址添加到您的 Google 帐号以及这台设备中。</translation>
 <translation id="1822540298136254167">您访问过的网站和您在这些网站上花费的时间</translation>
 <translation id="1826516787628120939">正在检查</translation>
 <translation id="1834321415901700177">此网站包含有害程序</translation>
@@ -1090,6 +1090,7 @@
 <translation id="7053983685419859001">禁止</translation>
 <translation id="7062635574500127092">青色</translation>
 <translation id="7064851114919012435">联系信息</translation>
+<translation id="7075452647191940183">请求过大</translation>
 <translation id="7079718277001814089">此网站包含恶意软件</translation>
 <translation id="7087282848513945231">县</translation>
 <translation id="7090678807593890770">请在 Google 中搜索“<ph name="LINK" />”</translation>
@@ -1133,7 +1134,7 @@
 <translation id="7298195798382681320">推荐</translation>
 <translation id="7300012071106347854">钴蓝色</translation>
 <translation id="7302712225291570345">“<ph name="TEXT" />”</translation>
-<translation id="7303701124147721189">若想在下次购物时更快捷地付款,请将您的付款卡信息和帐单邮寄地址保存到您的 Google 帐号名下以及这台设备中。</translation>
+<translation id="7303701124147721189">若想在下次购物时更快捷地付款,请将您的付款卡信息和帐单邮寄地址保存到您的 Google 帐号以及这台设备中。</translation>
 <translation id="7309308571273880165">崩溃报告获取时间:<ph name="CRASH_TIME" />(用户已请求上传,但尚未上传)</translation>
 <translation id="7313965965371928911"><ph name="BEGIN_LINK" />安全浏览<ph name="END_LINK" />警告</translation>
 <translation id="7319430975418800333">A3</translation>
@@ -1362,7 +1363,7 @@
 <translation id="8428213095426709021">设置</translation>
 <translation id="8433057134996913067">这将使您退出大多数网站。</translation>
 <translation id="8437238597147034694">撤消移动(&amp;U)</translation>
-<translation id="8440508849222143646">若想在下次购物时更快捷地付款,请将您的付款卡信息和帐单邮寄地址保存到您的 Google 帐号名下。</translation>
+<translation id="8440508849222143646">若想在下次购物时更快捷地付款,请将您的付款卡信息和帐单邮寄地址保存到您的 Google 帐号中。</translation>
 <translation id="8461694314515752532">使用您自己的同步密码加密已同步的数据</translation>
 <translation id="8466379296835108687">{COUNT,plural, =1{1 张信用卡}other{# 张信用卡}}</translation>
 <translation id="8473863474539038330">地址和其他信息</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index 3860e607..2e52673 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -1103,6 +1103,7 @@
 <translation id="7053983685419859001">封鎖</translation>
 <translation id="7062635574500127092">藍綠色</translation>
 <translation id="7064851114919012435">聯絡資訊</translation>
+<translation id="7075452647191940183">要求過大</translation>
 <translation id="7079718277001814089">這個網站含有惡意軟體</translation>
 <translation id="7087282848513945231">郡/縣</translation>
 <translation id="7090678807593890770">請透過 Google 搜尋「<ph name="LINK" />」</translation>
diff --git a/components/version_ui/resources/about_version.html b/components/version_ui/resources/about_version.html
index 3cab5c3..427bb0a 100644
--- a/components/version_ui/resources/about_version.html
+++ b/components/version_ui/resources/about_version.html
@@ -69,7 +69,7 @@
 <if expr="is_android">
             <span>$i18n{os_version}</span>
 </if>
-<if expr="is_win">
+<if expr="is_win or is_macosx">
             <span id="os_version"></span>
 </if>
           </td>
diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn
index 4c5137a..94a1676 100644
--- a/components/viz/service/BUILD.gn
+++ b/components/viz/service/BUILD.gn
@@ -320,6 +320,9 @@
     "display_embedder/skia_output_device_offscreen.h",
     "display_embedder/skia_output_surface_base.cc",
     "display_embedder/skia_output_surface_base.h",
+    "display_embedder/skia_output_surface_dependency.h",
+    "display_embedder/skia_output_surface_dependency_impl.cc",
+    "display_embedder/skia_output_surface_dependency_impl.h",
     "display_embedder/skia_output_surface_impl.cc",
     "display_embedder/skia_output_surface_impl.h",
     "display_embedder/skia_output_surface_impl_non_ddl.cc",
diff --git a/components/viz/service/display_embedder/output_surface_provider_impl.cc b/components/viz/service/display_embedder/output_surface_provider_impl.cc
index 8fe3975..33e40ae 100644
--- a/components/viz/service/display_embedder/output_surface_provider_impl.cc
+++ b/components/viz/service/display_embedder/output_surface_provider_impl.cc
@@ -4,6 +4,7 @@
 
 #include "components/viz/service/display_embedder/output_surface_provider_impl.h"
 
+#include <memory>
 #include <utility>
 
 #include "base/bind_helpers.h"
@@ -16,6 +17,7 @@
 #include "components/viz/service/display_embedder/gl_output_surface.h"
 #include "components/viz/service/display_embedder/gl_output_surface_offscreen.h"
 #include "components/viz/service/display_embedder/server_shared_bitmap_manager.h"
+#include "components/viz/service/display_embedder/skia_output_surface_dependency_impl.h"
 #include "components/viz/service/display_embedder/skia_output_surface_impl.h"
 #include "components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.h"
 #include "components/viz/service/display_embedder/software_output_surface.h"
@@ -138,7 +140,9 @@
 
     } else {
       output_surface = std::make_unique<SkiaOutputSurfaceImpl>(
-          gpu_service_impl_, surface_handle, renderer_settings);
+          std::make_unique<SkiaOutputSurfaceDependencyImpl>(gpu_service_impl_,
+                                                            surface_handle),
+          renderer_settings);
     }
 #endif
   } else {
diff --git a/components/viz/service/display_embedder/skia_output_device_gl.cc b/components/viz/service/display_embedder/skia_output_device_gl.cc
index 9b2c814c..ad4d1cfb7 100644
--- a/components/viz/service/display_embedder/skia_output_device_gl.cc
+++ b/components/viz/service/display_embedder/skia_output_device_gl.cc
@@ -7,11 +7,10 @@
 #include <utility>
 
 #include "base/bind_helpers.h"
-#include "components/viz/service/gl/gpu_service_impl.h"
+#include "components/viz/service/display_embedder/skia_output_surface_dependency.h"
 #include "gpu/command_buffer/common/swap_buffers_complete_params.h"
 #include "gpu/command_buffer/service/feature_info.h"
 #include "gpu/command_buffer/service/gl_utils.h"
-#include "gpu/ipc/service/image_transport_surface.h"
 #include "third_party/skia/include/core/SkSurface.h"
 #include "third_party/skia/include/core/SkSurfaceProps.h"
 #include "third_party/skia/include/gpu/GrBackendSurface.h"
@@ -25,21 +24,14 @@
 namespace viz {
 
 SkiaOutputDeviceGL::SkiaOutputDeviceGL(
-    gpu::SurfaceHandle surface_handle,
-    GpuServiceImpl* gpu_service,
+    SkiaOutputSurfaceDependency* deps,
     scoped_refptr<gpu::gles2::FeatureInfo> feature_info,
     const DidSwapBufferCompleteCallback& did_swap_buffer_complete_callback)
     : SkiaOutputDevice(false /*need_swap_semaphore */,
                        did_swap_buffer_complete_callback),
-      surface_handle_(surface_handle),
-      gpu_service_(gpu_service),
+      dependency_(deps),
       feature_info_(feature_info) {
-  DCHECK(surface_handle_);
-  gl_surface_ = gpu::ImageTransportSurface::CreateNativeSurface(
-      weak_ptr_factory_.GetWeakPtr(), surface_handle_, gl::GLSurfaceFormat());
-#if !defined(OS_WIN)
-  ALLOW_UNUSED_LOCAL(gpu_service_);
-#endif
+  gl_surface_ = dependency_->CreateGLSurface(weak_ptr_factory_.GetWeakPtr());
 }
 
 void SkiaOutputDeviceGL::Initialize(GrContext* gr_context,
@@ -142,7 +134,8 @@
 void SkiaOutputDeviceGL::DidCreateAcceleratedSurfaceChildWindow(
     gpu::SurfaceHandle parent_window,
     gpu::SurfaceHandle child_window) {
-  gpu_service_->SendCreatedChildWindow(parent_window, child_window);
+  dependency_->DidCreateAcceleratedSurfaceChildWindow(parent_window,
+                                                      child_window);
 }
 #endif
 
diff --git a/components/viz/service/display_embedder/skia_output_device_gl.h b/components/viz/service/display_embedder/skia_output_device_gl.h
index cb2b58a..2263b8b 100644
--- a/components/viz/service/display_embedder/skia_output_device_gl.h
+++ b/components/viz/service/display_embedder/skia_output_device_gl.h
@@ -13,7 +13,6 @@
 #include "build/build_config.h"
 #include "components/viz/service/display_embedder/skia_output_device.h"
 #include "gpu/config/gpu_preferences.h"
-#include "gpu/ipc/common/surface_handle.h"
 #include "gpu/ipc/service/image_transport_surface_delegate.h"
 
 class GrContext;
@@ -30,14 +29,14 @@
 }  // namespace gpu
 
 namespace viz {
-class GpuServiceImpl;
+
+class SkiaOutputSurfaceDependency;
 
 class SkiaOutputDeviceGL final : public SkiaOutputDevice,
                                  public gpu::ImageTransportSurfaceDelegate {
  public:
   SkiaOutputDeviceGL(
-      gpu::SurfaceHandle surface_handle,
-      GpuServiceImpl* gpu_service,
+      SkiaOutputSurfaceDependency* deps,
       scoped_refptr<gpu::gles2::FeatureInfo> feature_info,
       const DidSwapBufferCompleteCallback& did_swap_buffer_complete_callback);
   ~SkiaOutputDeviceGL() override;
@@ -76,13 +75,12 @@
   GpuVSyncCallback GetGpuVSyncCallback() override;
 
  private:
-  const gpu::SurfaceHandle surface_handle_;
-  GpuServiceImpl* const gpu_service_;
+  SkiaOutputSurfaceDependency* const dependency_;
   scoped_refptr<gpu::gles2::FeatureInfo> feature_info_;
   gpu::GpuPreferences gpu_preferences_;
 
-  GrContext* gr_context_ = nullptr;
   scoped_refptr<gl::GLSurface> gl_surface_;
+  GrContext* gr_context_ = nullptr;
 
   bool supports_alpha_ = false;
 
diff --git a/components/viz/service/display_embedder/skia_output_surface_dependency.h b/components/viz/service/display_embedder/skia_output_surface_dependency.h
new file mode 100644
index 0000000..6ca8a92
--- /dev/null
+++ b/components/viz/service/display_embedder/skia_output_surface_dependency.h
@@ -0,0 +1,90 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_VIZ_SERVICE_DISPLAY_EMBEDDER_SKIA_OUTPUT_SURFACE_DEPENDENCY_H_
+#define COMPONENTS_VIZ_SERVICE_DISPLAY_EMBEDDER_SKIA_OUTPUT_SURFACE_DEPENDENCY_H_
+
+#include <vector>
+
+#include "base/callback.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/memory/weak_ptr.h"
+#include "build/build_config.h"
+#include "components/viz/service/viz_service_export.h"
+#include "gpu/command_buffer/service/sequence_id.h"
+#include "gpu/ipc/common/surface_handle.h"
+
+namespace gl {
+class GLSurface;
+}
+
+namespace gpu {
+
+class GpuDriverBugWorkarounds;
+class ImageTransportSurfaceDelegate;
+class MailboxManager;
+class SharedContextState;
+class SharedImageManager;
+class SyncPointManager;
+struct GpuFeatureInfo;
+struct GpuPreferences;
+struct SyncToken;
+
+namespace raster {
+class GrShaderCache;
+}
+
+}  // namespace gpu
+
+namespace viz {
+
+class VulkanContextProvider;
+
+// This class exists to allow SkiaOutputSurfaceImpl to ignore differences
+// between Android Webview and regular viz environment.
+// Note generally this class only provides access to, but does not own any of
+// the objects it returns raw pointers to. Embedders need to ensure these
+// objects remain in scope while SkiaOutputSurface is alive. SkiaOutputSurface
+// similarly should not hold onto these objects beyond its own lifetime.
+class VIZ_SERVICE_EXPORT SkiaOutputSurfaceDependency {
+ public:
+  virtual ~SkiaOutputSurfaceDependency() = default;
+
+  // These are client thread methods. All other methods should be called on
+  // the GPU thread only.
+  virtual void ScheduleGpuTask(base::OnceClosure task,
+                               std::vector<gpu::SyncToken> sync_tokens) = 0;
+  virtual bool IsUsingVulkan() = 0;
+
+  virtual gpu::SharedImageManager* GetSharedImageManager() = 0;
+  virtual gpu::SyncPointManager* GetSyncPointManager() = 0;
+  virtual const gpu::GpuDriverBugWorkarounds& GetGpuDriverBugWorkarounds() = 0;
+  virtual scoped_refptr<gpu::SharedContextState> GetSharedContextState() = 0;
+  // May return null.
+  virtual gpu::raster::GrShaderCache* GetGrShaderCache() = 0;
+  // May return null.
+  virtual VulkanContextProvider* GetVulkanContextProvider() = 0;
+  virtual const gpu::GpuPreferences& GetGpuPreferences() = 0;
+  virtual gpu::SequenceId GetSequenceId() = 0;
+  virtual const gpu::GpuFeatureInfo& GetGpuFeatureInfo() = 0;
+  virtual gpu::MailboxManager* GetMailboxManager() = 0;
+  // Note it is possible for IsOffscreen to be false and GetSurfaceHandle to
+  // return kNullSurfaceHandle.
+  virtual bool IsOffscreen() = 0;
+  virtual gpu::SurfaceHandle GetSurfaceHandle() = 0;
+  virtual scoped_refptr<gl::GLSurface> CreateGLSurface(
+      base::WeakPtr<gpu::ImageTransportSurfaceDelegate> stub) = 0;
+  virtual void PostTaskToClientThread(base::OnceClosure closure) = 0;
+  virtual void ScheduleGrContextCleanup() = 0;
+
+#if defined(OS_WIN)
+  virtual void DidCreateAcceleratedSurfaceChildWindow(
+      gpu::SurfaceHandle parent_window,
+      gpu::SurfaceHandle child_window) = 0;
+#endif
+};
+
+}  // namespace viz
+
+#endif  // COMPONENTS_VIZ_SERVICE_DISPLAY_EMBEDDER_SKIA_OUTPUT_SURFACE_DEPENDENCY_H_
diff --git a/components/viz/service/display_embedder/skia_output_surface_dependency_impl.cc b/components/viz/service/display_embedder/skia_output_surface_dependency_impl.cc
new file mode 100644
index 0000000..32d1b6b
--- /dev/null
+++ b/components/viz/service/display_embedder/skia_output_surface_dependency_impl.cc
@@ -0,0 +1,119 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/viz/service/display_embedder/skia_output_surface_dependency_impl.h"
+
+#include "base/threading/thread_task_runner_handle.h"
+#include "build/build_config.h"
+#include "components/viz/service/gl/gpu_service_impl.h"
+#include "gpu/command_buffer/service/scheduler.h"
+#include "gpu/ipc/service/image_transport_surface.h"
+#include "ui/gl/init/gl_factory.h"
+
+namespace viz {
+
+SkiaOutputSurfaceDependencyImpl::SkiaOutputSurfaceDependencyImpl(
+    GpuServiceImpl* gpu_service_impl,
+    gpu::SurfaceHandle surface_handle)
+    : gpu_service_impl_(gpu_service_impl),
+      surface_handle_(surface_handle),
+      client_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()) {}
+
+SkiaOutputSurfaceDependencyImpl::~SkiaOutputSurfaceDependencyImpl() = default;
+
+void SkiaOutputSurfaceDependencyImpl::ScheduleGpuTask(
+    base::OnceClosure task,
+    std::vector<gpu::SyncToken> sync_tokens) {
+  gpu_service_impl_->scheduler()->ScheduleTask(
+      gpu::Scheduler::Task(gpu_service_impl_->skia_output_surface_sequence_id(),
+                           std::move(task), std::move(sync_tokens)));
+}
+
+bool SkiaOutputSurfaceDependencyImpl::IsUsingVulkan() {
+  return gpu_service_impl_->is_using_vulkan();
+}
+
+gpu::SharedImageManager*
+SkiaOutputSurfaceDependencyImpl::GetSharedImageManager() {
+  return gpu_service_impl_->shared_image_manager();
+}
+
+gpu::SyncPointManager* SkiaOutputSurfaceDependencyImpl::GetSyncPointManager() {
+  return gpu_service_impl_->sync_point_manager();
+}
+
+const gpu::GpuDriverBugWorkarounds&
+SkiaOutputSurfaceDependencyImpl::GetGpuDriverBugWorkarounds() {
+  return gpu_service_impl_->gpu_channel_manager()->gpu_driver_bug_workarounds();
+}
+
+scoped_refptr<gpu::SharedContextState>
+SkiaOutputSurfaceDependencyImpl::GetSharedContextState() {
+  return gpu_service_impl_->GetContextState();
+}
+
+gpu::raster::GrShaderCache*
+SkiaOutputSurfaceDependencyImpl::GetGrShaderCache() {
+  return gpu_service_impl_->gr_shader_cache();
+}
+
+VulkanContextProvider*
+SkiaOutputSurfaceDependencyImpl::GetVulkanContextProvider() {
+  return gpu_service_impl_->vulkan_context_provider();
+}
+
+const gpu::GpuPreferences&
+SkiaOutputSurfaceDependencyImpl::GetGpuPreferences() {
+  return gpu_service_impl_->gpu_preferences();
+}
+
+gpu::SequenceId SkiaOutputSurfaceDependencyImpl::GetSequenceId() {
+  return gpu_service_impl_->skia_output_surface_sequence_id();
+}
+
+const gpu::GpuFeatureInfo&
+SkiaOutputSurfaceDependencyImpl::GetGpuFeatureInfo() {
+  return gpu_service_impl_->gpu_feature_info();
+}
+
+gpu::MailboxManager* SkiaOutputSurfaceDependencyImpl::GetMailboxManager() {
+  return gpu_service_impl_->mailbox_manager();
+}
+
+bool SkiaOutputSurfaceDependencyImpl::IsOffscreen() {
+  return surface_handle_ == gpu::kNullSurfaceHandle;
+}
+
+gpu::SurfaceHandle SkiaOutputSurfaceDependencyImpl::GetSurfaceHandle() {
+  return surface_handle_;
+}
+
+scoped_refptr<gl::GLSurface> SkiaOutputSurfaceDependencyImpl::CreateGLSurface(
+    base::WeakPtr<gpu::ImageTransportSurfaceDelegate> stub) {
+  if (IsOffscreen()) {
+    return gl::init::CreateOffscreenGLSurface(gfx::Size());
+  } else {
+    return gpu::ImageTransportSurface::CreateNativeSurface(
+        stub, surface_handle_, gl::GLSurfaceFormat());
+  }
+}
+
+void SkiaOutputSurfaceDependencyImpl::PostTaskToClientThread(
+    base::OnceClosure closure) {
+  client_thread_task_runner_->PostTask(FROM_HERE, std::move(closure));
+}
+
+void SkiaOutputSurfaceDependencyImpl::ScheduleGrContextCleanup() {
+  gpu_service_impl_->gpu_channel_manager()->ScheduleGrContextCleanup();
+}
+
+#if defined(OS_WIN)
+void SkiaOutputSurfaceDependencyImpl::DidCreateAcceleratedSurfaceChildWindow(
+    gpu::SurfaceHandle parent_window,
+    gpu::SurfaceHandle child_window) {
+  gpu_service_impl_->SendCreatedChildWindow(parent_window, child_window);
+}
+#endif
+
+}  // namespace viz
diff --git a/components/viz/service/display_embedder/skia_output_surface_dependency_impl.h b/components/viz/service/display_embedder/skia_output_surface_dependency_impl.h
new file mode 100644
index 0000000..ca69e01
--- /dev/null
+++ b/components/viz/service/display_embedder/skia_output_surface_dependency_impl.h
@@ -0,0 +1,63 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_VIZ_SERVICE_DISPLAY_EMBEDDER_SKIA_OUTPUT_SURFACE_DEPENDENCY_IMPL_H_
+#define COMPONENTS_VIZ_SERVICE_DISPLAY_EMBEDDER_SKIA_OUTPUT_SURFACE_DEPENDENCY_IMPL_H_
+
+#include "base/macros.h"
+#include "build/build_config.h"
+#include "components/viz/service/display_embedder/skia_output_surface_dependency.h"
+
+namespace base {
+class SingleThreadTaskRunner;
+}
+
+namespace viz {
+
+class GpuServiceImpl;
+
+class VIZ_SERVICE_EXPORT SkiaOutputSurfaceDependencyImpl
+    : public SkiaOutputSurfaceDependency {
+ public:
+  SkiaOutputSurfaceDependencyImpl(GpuServiceImpl* gpu_service_impl,
+                                  gpu::SurfaceHandle surface_handle);
+  ~SkiaOutputSurfaceDependencyImpl() override;
+
+  void ScheduleGpuTask(base::OnceClosure task,
+                       std::vector<gpu::SyncToken> sync_tokens) override;
+  bool IsUsingVulkan() override;
+  gpu::SharedImageManager* GetSharedImageManager() override;
+  gpu::SyncPointManager* GetSyncPointManager() override;
+  const gpu::GpuDriverBugWorkarounds& GetGpuDriverBugWorkarounds() override;
+  scoped_refptr<gpu::SharedContextState> GetSharedContextState() override;
+  gpu::raster::GrShaderCache* GetGrShaderCache() override;
+  VulkanContextProvider* GetVulkanContextProvider() override;
+  const gpu::GpuPreferences& GetGpuPreferences() override;
+  gpu::SequenceId GetSequenceId() override;
+  const gpu::GpuFeatureInfo& GetGpuFeatureInfo() override;
+  gpu::MailboxManager* GetMailboxManager() override;
+  bool IsOffscreen() override;
+  gpu::SurfaceHandle GetSurfaceHandle() override;
+  scoped_refptr<gl::GLSurface> CreateGLSurface(
+      base::WeakPtr<gpu::ImageTransportSurfaceDelegate> stub) override;
+  void PostTaskToClientThread(base::OnceClosure closure) override;
+  void ScheduleGrContextCleanup() override;
+
+#if defined(OS_WIN)
+  void DidCreateAcceleratedSurfaceChildWindow(
+      gpu::SurfaceHandle parent_window,
+      gpu::SurfaceHandle child_window) override;
+#endif
+
+ private:
+  GpuServiceImpl* const gpu_service_impl_;
+  const gpu::SurfaceHandle surface_handle_;
+  scoped_refptr<base::SingleThreadTaskRunner> client_thread_task_runner_;
+
+  DISALLOW_COPY_AND_ASSIGN(SkiaOutputSurfaceDependencyImpl);
+};
+
+}  // namespace viz
+
+#endif  // COMPONENTS_VIZ_SERVICE_DISPLAY_EMBEDDER_SKIA_OUTPUT_SURFACE_DEPENDENCY_IMPL_H_
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl.cc b/components/viz/service/display_embedder/skia_output_surface_impl.cc
index 03f476ed..d323fff 100644
--- a/components/viz/service/display_embedder/skia_output_surface_impl.cc
+++ b/components/viz/service/display_embedder/skia_output_surface_impl.cc
@@ -22,8 +22,8 @@
 #include "components/viz/service/display/output_surface_frame.h"
 #include "components/viz/service/display/resource_metadata.h"
 #include "components/viz/service/display_embedder/image_context.h"
+#include "components/viz/service/display_embedder/skia_output_surface_dependency.h"
 #include "components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h"
-#include "components/viz/service/gl/gpu_service_impl.h"
 #include "gpu/command_buffer/common/swap_buffers_complete_params.h"
 #include "gpu/command_buffer/service/scheduler.h"
 #include "gpu/command_buffer/service/shared_image_representation.h"
@@ -45,31 +45,27 @@
 void DoNothing(void* texture_context) {}
 
 template <typename... Args>
-void PostAsyncTask(
-    const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
-    const base::RepeatingCallback<void(Args...)>& callback,
-    Args... args) {
-  task_runner->PostTask(FROM_HERE, base::BindOnce(callback, args...));
+void PostAsyncTask(SkiaOutputSurfaceDependency* dependency,
+                   const base::RepeatingCallback<void(Args...)>& callback,
+                   Args... args) {
+  dependency->PostTaskToClientThread(base::BindOnce(callback, args...));
 }
 
 template <typename... Args>
 base::RepeatingCallback<void(Args...)> CreateSafeCallback(
-    const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
+    SkiaOutputSurfaceDependency* dependency,
     const base::RepeatingCallback<void(Args...)>& callback) {
-  if (!task_runner)
-    return callback;
-  return base::BindRepeating(&PostAsyncTask<Args...>, task_runner, callback);
+  DCHECK(dependency);
+  return base::BindRepeating(&PostAsyncTask<Args...>, dependency, callback);
 }
 
 }  // namespace
 
 SkiaOutputSurfaceImpl::SkiaOutputSurfaceImpl(
-    GpuServiceImpl* gpu_service,
-    gpu::SurfaceHandle surface_handle,
+    std::unique_ptr<SkiaOutputSurfaceDependency> deps,
     const RendererSettings& renderer_settings)
-    : gpu_service_(gpu_service),
-      is_using_vulkan_(gpu_service_->is_using_vulkan()),
-      surface_handle_(surface_handle),
+    : dependency_(std::move(deps)),
+      is_using_vulkan_(dependency_->IsUsingVulkan()),
       renderer_settings_(renderer_settings),
       weak_ptr_factory_(this) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
@@ -117,7 +113,6 @@
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   SkiaOutputSurfaceBase::BindToClient(client);
   weak_ptr_ = weak_ptr_factory_.GetWeakPtr();
-  client_thread_task_runner_ = base::ThreadTaskRunnerHandle::Get();
   base::WaitableEvent event(base::WaitableEvent::ResetPolicy::MANUAL,
                             base::WaitableEvent::InitialState::NOT_SIGNALED);
   auto callback = base::BindOnce(&SkiaOutputSurfaceImpl::InitializeOnGpuThread,
@@ -511,20 +506,19 @@
 
   auto did_swap_buffer_complete_callback = base::BindRepeating(
       &SkiaOutputSurfaceImpl::DidSwapBuffersComplete, weak_ptr_);
-  did_swap_buffer_complete_callback = CreateSafeCallback(
-      client_thread_task_runner_, did_swap_buffer_complete_callback);
+  did_swap_buffer_complete_callback =
+      CreateSafeCallback(dependency_.get(), did_swap_buffer_complete_callback);
   auto buffer_presented_callback =
       base::BindRepeating(&SkiaOutputSurfaceImpl::BufferPresented, weak_ptr_);
   buffer_presented_callback =
-      CreateSafeCallback(client_thread_task_runner_, buffer_presented_callback);
+      CreateSafeCallback(dependency_.get(), buffer_presented_callback);
   auto context_lost_callback =
       base::BindRepeating(&SkiaOutputSurfaceImpl::ContextLost, weak_ptr_);
   context_lost_callback =
-      CreateSafeCallback(client_thread_task_runner_, context_lost_callback);
+      CreateSafeCallback(dependency_.get(), context_lost_callback);
   impl_on_gpu_ = std::make_unique<SkiaOutputSurfaceImplOnGpu>(
-      gpu_service_, surface_handle_, renderer_settings_,
-      did_swap_buffer_complete_callback, buffer_presented_callback,
-      context_lost_callback);
+      dependency_.get(), renderer_settings_, did_swap_buffer_complete_callback,
+      buffer_presented_callback, context_lost_callback);
   capabilities_ = impl_on_gpu_->capabilities();
 }
 
@@ -602,9 +596,7 @@
 void SkiaOutputSurfaceImpl::ScheduleGpuTask(
     base::OnceClosure callback,
     std::vector<gpu::SyncToken> sync_tokens) {
-  auto sequence_id = gpu_service_->skia_output_surface_sequence_id();
-  gpu_service_->scheduler()->ScheduleTask(gpu::Scheduler::Task(
-      sequence_id, std::move(callback), std::move(sync_tokens)));
+  dependency_->ScheduleGpuTask(std::move(callback), std::move(sync_tokens));
 }
 
 GrBackendFormat SkiaOutputSurfaceImpl::GetGrBackendFormatForTexture(
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl.h b/components/viz/service/display_embedder/skia_output_surface_impl.h
index af2ba3a..82153ff 100644
--- a/components/viz/service/display_embedder/skia_output_surface_impl.h
+++ b/components/viz/service/display_embedder/skia_output_surface_impl.h
@@ -15,7 +15,6 @@
 #include "components/viz/service/display_embedder/skia_output_surface_base.h"
 #include "components/viz/service/viz_service_export.h"
 #include "gpu/command_buffer/common/sync_token.h"
-#include "gpu/ipc/common/surface_handle.h"
 #include "gpu/ipc/common/vulkan_ycbcr_info.h"
 #include "gpu/ipc/in_process_command_buffer.h"
 #include "third_party/skia/include/core/SkDeferredDisplayListRecorder.h"
@@ -28,7 +27,7 @@
 
 namespace viz {
 
-class GpuServiceImpl;
+class SkiaOutputSurfaceDependency;
 class SkiaOutputSurfaceImplOnGpu;
 
 // The SkiaOutputSurface implementation. It is the output surface for
@@ -43,8 +42,7 @@
 // through SkiaOutputSurfaceImpleOnGpu.
 class VIZ_SERVICE_EXPORT SkiaOutputSurfaceImpl : public SkiaOutputSurfaceBase {
  public:
-  SkiaOutputSurfaceImpl(GpuServiceImpl* gpu_service,
-                        gpu::SurfaceHandle surface_handle,
+  SkiaOutputSurfaceImpl(std::unique_ptr<SkiaOutputSurfaceDependency> deps,
                         const RendererSettings& renderer_settings);
   ~SkiaOutputSurfaceImpl() override;
 
@@ -115,9 +113,8 @@
       base::Optional<gpu::VulkanYCbCrInfo> ycbcr_info = base::nullopt);
 
   uint64_t sync_fence_release_ = 0;
-  GpuServiceImpl* const gpu_service_;
+  std::unique_ptr<SkiaOutputSurfaceDependency> dependency_;
   const bool is_using_vulkan_;
-  const gpu::SurfaceHandle surface_handle_;
   UpdateVSyncParametersCallback update_vsync_parameters_callback_;
 
   std::unique_ptr<base::WaitableEvent> initialize_waitable_event_;
@@ -146,9 +143,6 @@
   // pass.
   std::vector<gpu::SyncToken> resource_sync_tokens_;
 
-  // The task runner for running task on the client (compositor) thread.
-  scoped_refptr<base::SingleThreadTaskRunner> client_thread_task_runner_;
-
   const RendererSettings renderer_settings_;
 
   // |impl_on_gpu| is created and destroyed on the GPU thread.
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
index 53c4431..510caf9 100644
--- a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+++ b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
@@ -10,6 +10,7 @@
 #include "base/command_line.h"
 #include "base/optional.h"
 #include "base/synchronization/waitable_event.h"
+#include "base/threading/thread_task_runner_handle.h"
 #include "components/viz/common/frame_sinks/copy_output_request.h"
 #include "components/viz/common/frame_sinks/copy_output_util.h"
 #include "components/viz/common/resources/resource_format_utils.h"
@@ -22,7 +23,7 @@
 #include "components/viz/service/display_embedder/skia_output_device.h"
 #include "components/viz/service/display_embedder/skia_output_device_gl.h"
 #include "components/viz/service/display_embedder/skia_output_device_offscreen.h"
-#include "components/viz/service/gl/gpu_service_impl.h"
+#include "components/viz/service/display_embedder/skia_output_surface_dependency.h"
 #include "gpu/command_buffer/common/shared_image_usage.h"
 #include "gpu/command_buffer/common/swap_buffers_complete_params.h"
 #include "gpu/command_buffer/service/context_state.h"
@@ -147,27 +148,25 @@
 base::AtomicSequenceNumber g_next_command_buffer_id;
 
 scoped_refptr<gpu::gles2::FeatureInfo> CreateFeatureInfo(
-    GpuServiceImpl* gpu_service) {
-  auto* channel_manager = gpu_service->gpu_channel_manager();
+    SkiaOutputSurfaceDependency* deps) {
   return base::MakeRefCounted<gpu::gles2::FeatureInfo>(
-      channel_manager->gpu_driver_bug_workarounds(),
-      channel_manager->gpu_feature_info());
+      deps->GetGpuDriverBugWorkarounds(), deps->GetGpuFeatureInfo());
 }
 
 scoped_refptr<gpu::SyncPointClientState> CreateSyncPointClientState(
-    GpuServiceImpl* gpu_service) {
+    SkiaOutputSurfaceDependency* deps) {
   auto command_buffer_id = gpu::CommandBufferId::FromUnsafeValue(
       g_next_command_buffer_id.GetNext() + 1);
-  return gpu_service->sync_point_manager()->CreateSyncPointClientState(
+  return deps->GetSyncPointManager()->CreateSyncPointClientState(
       gpu::CommandBufferNamespace::VIZ_SKIA_OUTPUT_SURFACE, command_buffer_id,
-      gpu_service->skia_output_surface_sequence_id());
+      deps->GetSequenceId());
 }
 
 std::unique_ptr<gpu::SharedImageRepresentationFactory>
-CreateSharedImageRepresentationFactory(GpuServiceImpl* gpu_service) {
+CreateSharedImageRepresentationFactory(SkiaOutputSurfaceDependency* deps) {
   // TODO(https://crbug.com/899905): Use a real MemoryTracker, not nullptr.
   return std::make_unique<gpu::SharedImageRepresentationFactory>(
-      gpu_service->shared_image_manager(), nullptr);
+      deps->GetSharedImageManager(), nullptr);
 }
 
 class ScopedSurfaceToTexture {
@@ -461,39 +460,36 @@
 }
 
 SkiaOutputSurfaceImplOnGpu::SkiaOutputSurfaceImplOnGpu(
-    GpuServiceImpl* gpu_service,
-    gpu::SurfaceHandle surface_handle,
+    SkiaOutputSurfaceDependency* deps,
     const RendererSettings& renderer_settings,
     const DidSwapBufferCompleteCallback& did_swap_buffer_complete_callback,
     const BufferPresentedCallback& buffer_presented_callback,
     const ContextLostCallback& context_lost_callback)
-    : surface_handle_(surface_handle),
-      feature_info_(CreateFeatureInfo(gpu_service)),
-      mailbox_manager_(gpu_service->mailbox_manager()),
-      sync_point_client_state_(CreateSyncPointClientState(gpu_service)),
+    : dependency_(std::move(deps)),
+      feature_info_(CreateFeatureInfo(dependency_)),
+      sync_point_client_state_(CreateSyncPointClientState(dependency_)),
       shared_image_representation_factory_(
-          CreateSharedImageRepresentationFactory(gpu_service)),
-      gr_shader_cache_(gpu_service->gr_shader_cache()),
-      vulkan_context_provider_(gpu_service->vulkan_context_provider()),
+          CreateSharedImageRepresentationFactory(dependency_)),
+      vulkan_context_provider_(dependency_->GetVulkanContextProvider()),
       renderer_settings_(renderer_settings),
       did_swap_buffer_complete_callback_(did_swap_buffer_complete_callback),
       buffer_presented_callback_(buffer_presented_callback),
       context_lost_callback_(context_lost_callback),
-      gpu_service_(gpu_service),
       weak_ptr_factory_(this) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   weak_ptr_ = weak_ptr_factory_.GetWeakPtr();
 #if defined(USE_OZONE)
-  window_surface_ = ui::OzonePlatform::GetInstance()
-                        ->GetSurfaceFactoryOzone()
-                        ->CreatePlatformWindowSurface(surface_handle);
+  window_surface_ =
+      ui::OzonePlatform::GetInstance()
+          ->GetSurfaceFactoryOzone()
+          ->CreatePlatformWindowSurface(dependency_->GetSurfaceHandle());
 #endif
-  gpu_preferences_ = gpu_service->gpu_channel_manager()->gpu_preferences();
+  gpu_preferences_ = dependency_->GetGpuPreferences();
 
   if (is_using_vulkan())
-    InitializeForVulkan(gpu_service);
+    InitializeForVulkan();
   else
-    InitializeForGLWithGpuService(gpu_service);
+    InitializeForGL();
 }
 
 SkiaOutputSurfaceImplOnGpu::~SkiaOutputSurfaceImplOnGpu() {
@@ -529,7 +525,7 @@
         base::BindOnce(&base::WaitableEvent::Signal, base::Unretained(event)));
   }
 
-  if (!MakeCurrent(surface_handle_ /* need_fbo0 */))
+  if (!MakeCurrent(!dependency_->IsOffscreen() /* need_fbo0 */))
     return;
 
   size_ = size;
@@ -556,15 +552,16 @@
   if (!MakeCurrent(true /* need_fbo0 */))
     return;
 
-  auto* channel_manager = gpu_service_->gpu_channel_manager();
-  channel_manager->ScheduleGrContextCleanup();
+  dependency_->ScheduleGrContextCleanup();
 
   PullTextureUpdates(std::move(sync_tokens));
 
   {
     base::Optional<gpu::raster::GrShaderCache::ScopedCacheUse> cache_use;
-    if (gr_shader_cache_)
-      cache_use.emplace(gr_shader_cache_, gpu::kInProcessCommandBufferClientId);
+    if (dependency_->GetGrShaderCache()) {
+      cache_use.emplace(dependency_->GetGrShaderCache(),
+                        gpu::kInProcessCommandBufferClientId);
+    }
 
     ScopedPromiseImageAccess scoped_promise_image_access(
         this, std::move(image_contexts));
@@ -631,7 +628,7 @@
 void SkiaOutputSurfaceImplOnGpu::SwapBuffers(OutputSurfaceFrame frame) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(output_sk_surface());
-  if (!MakeCurrent(surface_handle_ /* need_fbo0 */))
+  if (!MakeCurrent(!dependency_->IsOffscreen() /* need_fbo0 */))
     return;
 
   DCHECK(output_device_);
@@ -684,8 +681,10 @@
   }
   {
     base::Optional<gpu::raster::GrShaderCache::ScopedCacheUse> cache_use;
-    if (gr_shader_cache_)
-      cache_use.emplace(gr_shader_cache_, gpu::kInProcessCommandBufferClientId);
+    if (dependency_->GetGrShaderCache()) {
+      cache_use.emplace(dependency_->GetGrShaderCache(),
+                        gpu::kInProcessCommandBufferClientId);
+    }
     ScopedPromiseImageAccess scoped_promise_image_access(
         this, std::move(image_contexts));
     if (!scoped_promise_image_access.begin_semaphores().empty()) {
@@ -747,12 +746,12 @@
   if (!is_using_vulkan()) {
     // Lazy initialize GLRendererCopier.
     if (!copier_) {
-      auto* channel_manager = gpu_service_->gpu_channel_manager();
       auto client = std::make_unique<DirectContextProviderDelegateImpl>(
-          gpu_preferences_, channel_manager->gpu_driver_bug_workarounds(),
-          channel_manager->gpu_feature_info(), context_state_.get(),
-          mailbox_manager_, gpu_service_->shared_image_manager(),
-          CreateSyncPointClientState(gpu_service_));
+          gpu_preferences_, dependency_->GetGpuDriverBugWorkarounds(),
+          dependency_->GetGpuFeatureInfo(), context_state_.get(),
+          dependency_->GetMailboxManager(),
+          dependency_->GetSharedImageManager(),
+          CreateSyncPointClientState(dependency_));
       context_provider_ = base::MakeRefCounted<DirectContextProvider>(
           context_state_->context(), gl_surface_, supports_alpha_,
           gpu_preferences_, feature_info_.get(), std::move(client));
@@ -777,7 +776,7 @@
     bool flipped = from_fbo0 ? !capabilities().flipped_output_surface : false;
 
     base::Optional<ScopedSurfaceToTexture> texture_mapper;
-    if (!from_fbo0 || surface_handle_ == gpu::kNullSurfaceHandle) {
+    if (!from_fbo0 || dependency_->IsOffscreen()) {
       texture_mapper.emplace(context_provider_.get(), surface);
       gl_id = texture_mapper.value().client_id();
       internal_format = GL_RGBA;
@@ -1014,7 +1013,8 @@
       continue;
     }
 
-    auto* texture_base = mailbox_manager_->ConsumeTexture(context->mailbox);
+    auto* texture_base =
+        dependency_->GetMailboxManager()->ConsumeTexture(context->mailbox);
     if (!texture_base) {
       DLOG(ERROR) << "Failed to fulfill the promise texture.";
       CreateFallbackImage(context);
@@ -1080,27 +1080,26 @@
     const OutputSurface::Capabilities& capabilities) {
   MakeCurrent(false /* need_fbo0 */);
   // Check that we're using an offscreen surface.
-  DCHECK(!surface_handle_);
+  DCHECK(dependency_->IsOffscreen());
   output_device_ = std::make_unique<SkiaOutputDeviceOffscreen>(
       gr_context(), capabilities.flipped_output_surface,
       renderer_settings_.requires_alpha_channel,
       did_swap_buffer_complete_callback_);
 }
 
-void SkiaOutputSurfaceImplOnGpu::InitializeForGLWithGpuService(
-    GpuServiceImpl* gpu_service) {
+void SkiaOutputSurfaceImplOnGpu::InitializeForGL() {
   std::unique_ptr<SkiaOutputDeviceGL> onscreen_device;
-  if (surface_handle_) {
+  if (!dependency_->IsOffscreen()) {
     onscreen_device = std::make_unique<SkiaOutputDeviceGL>(
-        surface_handle_, gpu_service_, feature_info_,
-        did_swap_buffer_complete_callback_);
+        dependency_, feature_info_, did_swap_buffer_complete_callback_);
     gl_surface_ = onscreen_device->gl_surface();
   } else {
-    gl_surface_ = gl::init::CreateOffscreenGLSurface(gfx::Size());
+    gl_surface_ = dependency_->CreateGLSurface(nullptr);
   }
   DCHECK(gl_surface_);
+  DCHECK_EQ(gl_surface_->IsOffscreen(), dependency_->IsOffscreen());
 
-  context_state_ = gpu_service->GetContextState();
+  context_state_ = dependency_->GetSharedContextState();
   if (!context_state_) {
     LOG(FATAL) << "Failed to create GrContext";
     // TODO(penghuang): handle the failure.
@@ -1128,12 +1127,11 @@
   }
 }
 
-void SkiaOutputSurfaceImplOnGpu::InitializeForVulkan(
-    GpuServiceImpl* gpu_service) {
-  context_state_ = gpu_service->GetContextState();
+void SkiaOutputSurfaceImplOnGpu::InitializeForVulkan() {
+  context_state_ = dependency_->GetSharedContextState();
   DCHECK(context_state_);
 #if BUILDFLAG(ENABLE_VULKAN)
-  if (surface_handle_ == gpu::kNullSurfaceHandle) {
+  if (dependency_->IsOffscreen()) {
     output_device_ = std::make_unique<SkiaOutputDeviceOffscreen>(
         gr_context(), false /* flipped */,
         renderer_settings_.requires_alpha_channel,
@@ -1144,15 +1142,16 @@
     supports_alpha_ = true;
     if (gpu_preferences_.disable_vulkan_surface) {
       output_device_ = std::make_unique<SkiaOutputDeviceX11>(
-          gr_context(), surface_handle_, did_swap_buffer_complete_callback_);
+          gr_context(), dependency_->GetSurfaceHandle(),
+          did_swap_buffer_complete_callback_);
     } else {
       output_device_ = std::make_unique<SkiaOutputDeviceVulkan>(
-          vulkan_context_provider_, surface_handle_,
+          vulkan_context_provider_, dependency_->GetSurfaceHandle(),
           did_swap_buffer_complete_callback_);
     }
 #else
     output_device_ = std::make_unique<SkiaOutputDeviceVulkan>(
-        vulkan_context_provider_, surface_handle_,
+        vulkan_context_provider_, dependency_->GetSurfaceHandle(),
         did_swap_buffer_complete_callback_);
 #endif
   }
@@ -1216,9 +1215,9 @@
     std::vector<gpu::SyncToken> sync_tokens) {
   // TODO(https://crbug.com/900973): Remove it when MailboxManager is replaced
   // with SharedImage API.
-  if (mailbox_manager_->UsesSync()) {
+  if (dependency_->GetMailboxManager()->UsesSync()) {
     for (auto& sync_token : sync_tokens)
-      mailbox_manager_->PullTextureUpdates(sync_token);
+      dependency_->GetMailboxManager()->PullTextureUpdates(sync_token);
   }
 }
 
@@ -1226,7 +1225,7 @@
     uint64_t sync_fence_release) {
   // TODO(https://crbug.com/900973): Remove it when MailboxManager is replaced
   // with SharedImage API.
-  if (mailbox_manager_->UsesSync()) {
+  if (dependency_->GetMailboxManager()->UsesSync()) {
     // If MailboxManagerSync is used, we are sharing textures between threads.
     // In this case, sync point can only guarantee GL commands are issued in
     // correct order across threads and GL contexts. However GPU driver may
@@ -1240,7 +1239,7 @@
     gpu::SyncToken sync_token(
         gpu::CommandBufferNamespace::VIZ_SKIA_OUTPUT_SURFACE,
         command_buffer_id(), sync_fence_release);
-    mailbox_manager_->PushTextureUpdates(sync_token);
+    dependency_->GetMailboxManager()->PushTextureUpdates(sync_token);
   }
   sync_point_client_state_->ReleaseFenceSync(sync_fence_release);
 }
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h
index 5ac0548..aca2f27 100644
--- a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h
+++ b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h
@@ -22,7 +22,6 @@
 #include "gpu/command_buffer/common/sync_token.h"
 #include "gpu/command_buffer/service/shared_context_state.h"
 #include "gpu/command_buffer/service/sync_point_manager.h"
-#include "gpu/ipc/common/surface_handle.h"
 #include "gpu/ipc/in_process_command_buffer.h"
 #include "gpu/ipc/service/image_transport_surface_delegate.h"
 #include "third_party/skia/include/core/SkPromiseImageTexture.h"
@@ -60,7 +59,7 @@
 struct ImageContext;
 class DirectContextProvider;
 class GLRendererCopier;
-class GpuServiceImpl;
+class SkiaOutputSurfaceDependency;
 class TextureDeleter;
 class VulkanContextProvider;
 
@@ -80,8 +79,7 @@
   using ContextLostCallback = base::RepeatingCallback<void()>;
 
   SkiaOutputSurfaceImplOnGpu(
-      GpuServiceImpl* gpu_service,
-      gpu::SurfaceHandle surface_handle,
+      SkiaOutputSurfaceDependency* deps,
       const RendererSettings& renderer_settings_,
       const DidSwapBufferCompleteCallback& did_swap_buffer_complete_callback,
       const BufferPresentedCallback& buffer_presented_callback,
@@ -151,8 +149,8 @@
  private:
   class ScopedPromiseImageAccess;
 
-  void InitializeForGLWithGpuService(GpuServiceImpl* gpu_service);
-  void InitializeForVulkan(GpuServiceImpl* gpu_service);
+  void InitializeForGL();
+  void InitializeForVulkan();
 
   // Returns true if |texture_base| is a gles2::Texture and all necessary
   // operations completed successfully. In this case, |*size| is the size of
@@ -182,13 +180,11 @@
 
   void CreateFallbackImage(ImageContext* context);
 
-  const gpu::SurfaceHandle surface_handle_;
+  SkiaOutputSurfaceDependency* const dependency_;
   scoped_refptr<gpu::gles2::FeatureInfo> feature_info_;
-  gpu::MailboxManager* const mailbox_manager_;
   scoped_refptr<gpu::SyncPointClientState> sync_point_client_state_;
   std::unique_ptr<gpu::SharedImageRepresentationFactory>
       shared_image_representation_factory_;
-  gpu::raster::GrShaderCache* const gr_shader_cache_;
   VulkanContextProvider* const vulkan_context_provider_;
   const RendererSettings renderer_settings_;
   DidSwapBufferCompleteCallback did_swap_buffer_complete_callback_;
@@ -240,8 +236,6 @@
   std::unique_ptr<TextureDeleter> texture_deleter_;
   std::unique_ptr<GLRendererCopier> copier_;
 
-  GpuServiceImpl* const gpu_service_;
-
   bool delayed_work_pending_ = false;
 
   gl::GLApi* api_ = nullptr;
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_unittest.cc b/components/viz/service/display_embedder/skia_output_surface_impl_unittest.cc
index fa4c242..a31143e 100644
--- a/components/viz/service/display_embedder/skia_output_surface_impl_unittest.cc
+++ b/components/viz/service/display_embedder/skia_output_surface_impl_unittest.cc
@@ -18,6 +18,7 @@
 #include "components/viz/common/frame_sinks/copy_output_request.h"
 #include "components/viz/common/frame_sinks/copy_output_result.h"
 #include "components/viz/common/frame_sinks/copy_output_util.h"
+#include "components/viz/service/display_embedder/skia_output_surface_dependency_impl.h"
 #include "components/viz/service/gl/gpu_service_impl.h"
 #include "components/viz/test/test_gpu_service_holder.h"
 #include "gpu/command_buffer/service/scheduler.h"
@@ -109,7 +110,9 @@
 #endif
   }
   output_surface_ = std::make_unique<SkiaOutputSurfaceImpl>(
-      gpu_service(), surface_handle_, RendererSettings());
+      std::make_unique<SkiaOutputSurfaceDependencyImpl>(gpu_service(),
+                                                        surface_handle_),
+      RendererSettings());
   output_surface_->BindToClient(output_surface_client_.get());
 }
 
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index e336736..a00d400 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -992,6 +992,8 @@
     "gpu/gpu_process_host.h",
     "gpu/shader_cache_factory.cc",
     "gpu/shader_cache_factory.h",
+    "hid/hid_service.cc",
+    "hid/hid_service.h",
     "histogram_controller.cc",
     "histogram_controller.h",
     "histogram_subscriber.h",
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index 9f42576..e15681f 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -259,31 +259,41 @@
 }
 
 void AddMisspelledTextAttributes(
-    const std::vector<const BrowserAccessibility*>& text_only_objects,
+    const std::vector<AXPlatformRange>& anchor_ranges,
     NSMutableAttributedString* attributed_string) {
+  int anchor_start_offset = 0;
   [attributed_string beginEditing];
-  for (const BrowserAccessibility* text_object : text_only_objects) {
-    const std::vector<int32_t>& marker_types = text_object->GetIntListAttribute(
-        ax::mojom::IntListAttribute::kMarkerTypes);
-    const std::vector<int>& marker_starts = text_object->GetIntListAttribute(
-        ax::mojom::IntListAttribute::kMarkerStarts);
-    const std::vector<int>& marker_ends = text_object->GetIntListAttribute(
-        ax::mojom::IntListAttribute::kMarkerEnds);
+  for (const AXPlatformRange& anchor_range : anchor_ranges) {
+    DCHECK(!anchor_range.IsNull());
+    DCHECK_EQ(anchor_range.anchor()->GetAnchor(),
+              anchor_range.focus()->GetAnchor())
+        << "An anchor range should only span a single object.";
+    const BrowserAccessibility* anchor = anchor_range.focus()->GetAnchor();
+    const std::vector<int32_t>& marker_types =
+        anchor->GetIntListAttribute(ax::mojom::IntListAttribute::kMarkerTypes);
+    const std::vector<int>& marker_starts =
+        anchor->GetIntListAttribute(ax::mojom::IntListAttribute::kMarkerStarts);
+    const std::vector<int>& marker_ends =
+        anchor->GetIntListAttribute(ax::mojom::IntListAttribute::kMarkerEnds);
     for (size_t i = 0; i < marker_types.size(); ++i) {
       if (!(marker_types[i] &
             static_cast<int32_t>(ax::mojom::MarkerType::kSpelling))) {
         continue;
       }
 
-      int misspelling_start = marker_starts[i];
-      int misspelling_end = marker_ends[i];
+      int misspelling_start = anchor_start_offset + marker_starts[i];
+      int misspelling_end = anchor_start_offset + marker_ends[i];
       int misspelling_length = misspelling_end - misspelling_start;
+      DCHECK_LE(static_cast<unsigned long>(misspelling_end),
+                [attributed_string length]);
       DCHECK_GT(misspelling_length, 0);
       [attributed_string
           addAttribute:NSAccessibilityMarkedMisspelledTextAttribute
                  value:@YES
                  range:NSMakeRange(misspelling_start, misspelling_length)];
     }
+
+    anchor_start_offset += anchor_range.GetText().length();
   }
   [attributed_string endEditing];
 }
@@ -297,54 +307,21 @@
 
 NSAttributedString* GetAttributedTextForTextMarkerRange(
     AXTextMarkerRangeRef marker_range) {
-  BrowserAccessibility* start_object;
-  BrowserAccessibility* end_object;
-  int start_offset, end_offset;
-  ax::mojom::TextAffinity start_affinity, end_affinity;
   AXPlatformRange ax_range = CreateRangeFromTextMarkerRange(marker_range);
   if (ax_range.IsNull())
     return nil;
-  start_object = ax_range.anchor()->GetAnchor();
-  end_object = ax_range.focus()->GetAnchor();
-  start_offset = ax_range.anchor()->text_offset();
-  end_offset = ax_range.focus()->text_offset();
-  start_affinity = ax_range.anchor()->affinity();
-  end_affinity = ax_range.focus()->affinity();
 
-  NSString* text = base::SysUTF16ToNSString(
-      BrowserAccessibilityManager::GetTextForRange(*start_object, *end_object));
+  NSString* text = base::SysUTF16ToNSString(ax_range.GetText());
   if ([text length] == 0)
     return nil;
 
-  // Be permissive with the start and end offsets.
-  if (start_object == end_object && end_offset < start_offset)
-    std::swap(start_offset, end_offset);
-
-  int trim_length = 0;
-  if ((end_object->IsPlainTextField() || end_object->IsTextOnlyObject()) &&
-      end_offset < static_cast<int>(end_object->GetInnerText().length())) {
-    trim_length =
-        static_cast<int>(end_object->GetInnerText().length()) - end_offset;
-  }
-  int range_length = [text length] - start_offset - trim_length;
-
-  // http://crbug.com/651145
-  // This shouldn't happen, so this is a temporary workaround to prevent
-  // hard crashes.
-  if (range_length < 0)
-    return nil;
-
-  DCHECK_GE(range_length, 0);
-  NSRange range = NSMakeRange(start_offset, range_length);
-  DCHECK_LE(NSMaxRange(range), [text length]);
-
   NSMutableAttributedString* attributed_text =
       [[[NSMutableAttributedString alloc] initWithString:text] autorelease];
-  std::vector<const BrowserAccessibility*> text_only_objects =
-      BrowserAccessibilityManager::FindTextOnlyObjectsInRange(*start_object,
-                                                              *end_object);
-  AddMisspelledTextAttributes(text_only_objects, attributed_text);
-  return [attributed_text attributedSubstringFromRange:range];
+  const std::vector<AXPlatformRange> anchor_ranges = ax_range.GetAnchors();
+  // Currently, we only decorate the attributed string with misspelling
+  // information.
+  AddMisspelledTextAttributes(anchor_ranges, attributed_text);
+  return attributed_text;
 }
 
 // Returns an autoreleased copy of the AXNodeData's attribute.
@@ -2389,13 +2366,16 @@
   return base::SysUTF16ToNSString(value.substr(range.location, range.length));
 }
 
+// Retrieves the text inside this object and decorates it with attributes
+// indicating specific ranges of interest within the text, e.g. the location of
+// misspellings.
 - (NSAttributedString*)attributedValueForRange:(NSRange)range {
   if (![self instanceActive])
     return nil;
 
   base::string16 text = owner_->GetValue();
   if (owner_->IsTextOnlyObject() && text.empty())
-    text = owner_->GetInnerText();
+    text = owner_->GetText();
 
   // We need to get the whole text because a spelling mistake might start or end
   // outside our range.
@@ -2404,10 +2384,11 @@
       [[[NSMutableAttributedString alloc] initWithString:value] autorelease];
 
   if (!owner_->IsTextOnlyObject()) {
-    std::vector<const BrowserAccessibility*> textOnlyObjects =
-        BrowserAccessibilityManager::FindTextOnlyObjectsInRange(*owner_,
-                                                                *owner_);
-    AddMisspelledTextAttributes(textOnlyObjects, attributedValue);
+    const std::vector<AXPlatformRange> anchorRanges =
+        AXPlatformRange(owner_->CreatePositionAt(0),
+                        owner_->CreatePositionAt(int{text.length()}))
+            .GetAnchors();
+    AddMisspelledTextAttributes(anchorRanges, attributedValue);
   }
 
   return [attributedValue attributedSubstringFromRange:range];
diff --git a/content/browser/cache_storage/cache_storage_manager.cc b/content/browser/cache_storage/cache_storage_manager.cc
index 5d8127f..f84fd68 100644
--- a/content/browser/cache_storage/cache_storage_manager.cc
+++ b/content/browser/cache_storage/cache_storage_manager.cc
@@ -15,4 +15,8 @@
   return !origin.opaque();
 }
 
+CacheStorageManager::CacheStorageManager()
+    : base::RefCountedDeleteOnSequence<CacheStorageManager>(
+          base::SequencedTaskRunnerHandle::Get()) {}
+
 }  // namespace content
diff --git a/content/browser/cache_storage/cache_storage_manager.h b/content/browser/cache_storage/cache_storage_manager.h
index d5241d30..db8904d 100644
--- a/content/browser/cache_storage/cache_storage_manager.h
+++ b/content/browser/cache_storage/cache_storage_manager.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "base/macros.h"
-#include "base/memory/ref_counted.h"
+#include "base/memory/ref_counted_delete_on_sequence.h"
 #include "content/browser/cache_storage/cache_storage_handle.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/browser_thread.h"
@@ -38,13 +38,12 @@
   kMaxValue = kBackgroundFetch
 };
 
-// Keeps track of a CacheStorage per origin. There is one
-// CacheStorageManager per ServiceWorkerContextCore.
+// Keeps track of a CacheStorage per origin. There is one CacheStorageManager
+// per CacheStorageOwner. Created and accessed from a single sequence.
 // TODO(jkarlin): Remove CacheStorage from memory once they're no
 // longer in active use.
 class CONTENT_EXPORT CacheStorageManager
-    : public base::RefCountedThreadSafe<CacheStorageManager,
-                                        BrowserThread::DeleteOnIOThread> {
+    : public base::RefCountedDeleteOnSequence<CacheStorageManager> {
  public:
   // Open the CacheStorage for the given origin and owner.  A reference counting
   // handle is returned which can be stored and used similar to a weak pointer.
@@ -81,9 +80,9 @@
 
  protected:
   friend class base::DeleteHelper<CacheStorageManager>;
-  friend class base::RefCountedThreadSafe<CacheStorageManager>;
-  friend struct BrowserThread::DeleteOnThread<BrowserThread::IO>;
+  friend class base::RefCountedDeleteOnSequence<CacheStorageManager>;
 
+  CacheStorageManager();
   virtual ~CacheStorageManager() = default;
 };
 
diff --git a/content/browser/cache_storage/legacy/legacy_cache_storage_manager.cc b/content/browser/cache_storage/legacy/legacy_cache_storage_manager.cc
index eecdcf9..d2fe37a 100644
--- a/content/browser/cache_storage/legacy/legacy_cache_storage_manager.cc
+++ b/content/browser/cache_storage/legacy/legacy_cache_storage_manager.cc
@@ -23,7 +23,7 @@
 #include "base/stl_util.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "base/threading/thread_task_runner_handle.h"
+#include "base/threading/sequenced_task_runner_handle.h"
 #include "base/time/time.h"
 #include "content/browser/cache_storage/cache_storage.h"
 #include "content/browser/cache_storage/cache_storage.pb.h"
@@ -46,9 +46,8 @@
 
 void DeleteOriginDidDeleteDir(storage::QuotaClient::DeletionCallback callback,
                               bool rv) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
-
-  base::ThreadTaskRunnerHandle::Get()->PostTask(
+  // On scheduler sequence.
+  base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(std::move(callback),
                      rv ? blink::mojom::QuotaStatusCode::kOk
@@ -124,32 +123,32 @@
     const std::string& host,
     storage::QuotaClient::GetOriginsCallback callback,
     const std::set<url::Origin>& origins) {
+  // On scheduler sequence.
   std::set<url::Origin> out_origins;
   for (const url::Origin& origin : origins) {
     if (host == net::GetHostOrSpecFromURL(origin.GetURL()))
       out_origins.insert(origin);
   }
-  base::ThreadTaskRunnerHandle::Get()->PostTask(
+  base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::BindOnce(std::move(callback), out_origins));
 }
 
 void AllOriginSizesReported(
     std::unique_ptr<std::vector<StorageUsageInfo>> usages,
     CacheStorageContext::GetUsageInfoCallback callback) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
-
-  base::ThreadTaskRunnerHandle::Get()->PostTask(
+  // On scheduler sequence.
+  base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::BindOnce(std::move(callback), *usages));
 }
 
 void OneOriginSizeReported(base::OnceClosure callback,
                            StorageUsageInfo* usage,
                            int64_t size) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
-
+  // On scheduler sequence.
   DCHECK_NE(size, CacheStorage::kSizeUnknown);
   usage->total_size_bytes = size;
-  base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, std::move(callback));
+  base::SequencedTaskRunnerHandle::Get()->PostTask(FROM_HERE,
+                                                   std::move(callback));
 }
 
 }  // namespace
@@ -185,12 +184,14 @@
   return manager;
 }
 
-LegacyCacheStorageManager::~LegacyCacheStorageManager() = default;
+LegacyCacheStorageManager::~LegacyCacheStorageManager() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+}
 
 CacheStorageHandle LegacyCacheStorageManager::OpenCacheStorage(
     const url::Origin& origin,
     CacheStorageOwner owner) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   // Wait to create the MemoryPressureListener until the first CacheStorage
   // object is needed.  This ensures we create the listener on the correct
@@ -215,7 +216,7 @@
 
 void LegacyCacheStorageManager::SetBlobParametersForCache(
     base::WeakPtr<storage::BlobStorageContext> blob_storage_context) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(cache_storage_map_.empty());
   DCHECK(!blob_context_ || blob_context_.get() == blob_storage_context.get());
   blob_context_ = blob_storage_context;
@@ -223,6 +224,7 @@
 
 void LegacyCacheStorageManager::NotifyCacheListChanged(
     const url::Origin& origin) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   observers_->Notify(FROM_HERE,
                      &CacheStorageContextImpl::Observer::OnCacheListChanged,
                      origin);
@@ -231,6 +233,7 @@
 void LegacyCacheStorageManager::NotifyCacheContentChanged(
     const url::Origin& origin,
     const std::string& name) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   observers_->Notify(FROM_HERE,
                      &CacheStorageContextImpl::Observer::OnCacheContentChanged,
                      origin, name);
@@ -240,6 +243,7 @@
     LegacyCacheStorage* cache_storage,
     const url::Origin& origin,
     CacheStorageOwner owner) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(cache_storage);
   cache_storage->AssertUnreferenced();
   auto it = cache_storage_map_.find({origin, owner});
@@ -254,7 +258,7 @@
 void LegacyCacheStorageManager::GetAllOriginsUsage(
     CacheStorageOwner owner,
     CacheStorageContext::GetUsageInfoCallback callback) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   auto usages = std::make_unique<std::vector<StorageUsageInfo>>();
 
@@ -283,7 +287,7 @@
 void LegacyCacheStorageManager::GetAllOriginsUsageGetSizes(
     std::unique_ptr<std::vector<StorageUsageInfo>> usages,
     CacheStorageContext::GetUsageInfoCallback callback) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(usages);
 
   // The origin GURL and last modified times are set in |usages| but not the
@@ -291,7 +295,7 @@
   std::vector<StorageUsageInfo>* usages_ptr = usages.get();
 
   if (usages->empty()) {
-    base::ThreadTaskRunnerHandle::Get()->PostTask(
+    scheduler_task_runner_->PostTask(
         FROM_HERE, base::BindOnce(std::move(callback), *usages));
     return;
   }
@@ -304,7 +308,7 @@
   for (StorageUsageInfo& usage : *usages_ptr) {
     if (usage.total_size_bytes != CacheStorage::kSizeUnknown ||
         !IsValidQuotaOrigin(usage.origin)) {
-      base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, barrier_closure);
+      scheduler_task_runner_->PostTask(FROM_HERE, barrier_closure);
       continue;
     }
     CacheStorageHandle cache_storage =
@@ -318,7 +322,7 @@
     const url::Origin& origin,
     CacheStorageOwner owner,
     storage::QuotaClient::GetUsageCallback callback) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   CacheStorageHandle cache_storage = OpenCacheStorage(origin, owner);
   LegacyCacheStorage::From(cache_storage)->Size(std::move(callback));
@@ -327,7 +331,7 @@
 void LegacyCacheStorageManager::GetOrigins(
     CacheStorageOwner owner,
     storage::QuotaClient::GetOriginsCallback callback) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   if (IsMemoryBacked()) {
     std::set<url::Origin> origins;
@@ -335,7 +339,7 @@
       if (key_value.first.second == owner)
         origins.insert(key_value.first.first);
 
-    base::ThreadTaskRunnerHandle::Get()->PostTask(
+    scheduler_task_runner_->PostTask(
         FROM_HERE, base::BindOnce(std::move(callback), origins));
     return;
   }
@@ -350,7 +354,7 @@
     const std::string& host,
     CacheStorageOwner owner,
     storage::QuotaClient::GetOriginsCallback callback) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   if (IsMemoryBacked()) {
     std::set<url::Origin> origins;
@@ -360,7 +364,7 @@
       if (host == net::GetHostOrSpecFromURL(key_value.first.first.GetURL()))
         origins.insert(key_value.first.first);
     }
-    base::ThreadTaskRunnerHandle::Get()->PostTask(
+    scheduler_task_runner_->PostTask(
         FROM_HERE, base::BindOnce(std::move(callback), origins));
     return;
   }
@@ -376,7 +380,7 @@
     const url::Origin& origin,
     CacheStorageOwner owner,
     storage::QuotaClient::DeletionCallback callback) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   // Create the CacheStorage for the origin if it hasn't been loaded yet.
   CacheStorageHandle handle = OpenCacheStorage(origin, owner);
@@ -395,7 +399,7 @@
 
 void LegacyCacheStorageManager::DeleteOriginData(const url::Origin& origin,
                                                  CacheStorageOwner owner) {
-  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DeleteOriginData(origin, owner, base::DoNothing());
 }
 
@@ -405,6 +409,7 @@
     storage::QuotaClient::DeletionCallback callback,
     std::unique_ptr<LegacyCacheStorage> cache_storage,
     int64_t origin_size) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // TODO(jkarlin): Deleting the storage leaves any unfinished operations
   // hanging, resulting in unresolved promises. Fix this by returning early from
   // CacheStorage operations posted after GetSizeThenCloseAllCaches is called.
@@ -418,7 +423,7 @@
     NotifyCacheListChanged(origin);
 
   if (IsMemoryBacked()) {
-    base::ThreadTaskRunnerHandle::Get()->PostTask(
+    scheduler_task_runner_->PostTask(
         FROM_HERE, base::BindOnce(std::move(callback),
                                   blink::mojom::QuotaStatusCode::kOk));
     return;
@@ -460,6 +465,7 @@
 
 void LegacyCacheStorageManager::OnMemoryPressure(
     base::MemoryPressureListener::MemoryPressureLevel level) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (level != base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL)
     return;
 
diff --git a/content/browser/cache_storage/legacy/legacy_cache_storage_manager.h b/content/browser/cache_storage/legacy/legacy_cache_storage_manager.h
index 6160131..86c25df3 100644
--- a/content/browser/cache_storage/legacy/legacy_cache_storage_manager.h
+++ b/content/browser/cache_storage/legacy/legacy_cache_storage_manager.h
@@ -15,6 +15,7 @@
 #include "base/memory/memory_pressure_listener.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/scoped_refptr.h"
+#include "base/sequence_checker.h"
 #include "content/browser/cache_storage/cache_storage_context_impl.h"
 #include "content/browser/cache_storage/cache_storage_manager.h"
 #include "content/browser/cache_storage/legacy/legacy_cache_storage.h"
@@ -157,6 +158,8 @@
 
   std::unique_ptr<base::MemoryPressureListener> memory_pressure_listener_;
 
+  SEQUENCE_CHECKER(sequence_checker_);
+
   // Do not add a WeakPtrFactory since this class is destroyed via a
   // cross-thread delete helper.
 
diff --git a/content/browser/devtools/protocol/DEPS b/content/browser/devtools/protocol/DEPS
index e001bd2..caed9f1 100644
--- a/content/browser/devtools/protocol/DEPS
+++ b/content/browser/devtools/protocol/DEPS
@@ -2,4 +2,6 @@
   # For parsing and validating fido enums in protocol/webauthn_handler.cc.
   "+device/fido/fido_constants.h",
   "+device/fido/fido_transport_protocol.h",
+  # For VirtualFidoDevice::RegistrationData used in protocol/webauthn_handler.cc.
+  "+device/fido/virtual_fido_device.h",
 ]
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
index 529de11..50522f01 100644
--- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc
@@ -636,6 +636,9 @@
 
 std::unique_ptr<Network::ResourceTiming> GetTiming(
     const net::LoadTimingInfo& load_timing) {
+  if (load_timing.receive_headers_end.is_null())
+    return nullptr;
+
   const base::TimeTicks kNullTicks;
   return Network::ResourceTiming::Create()
       .SetRequestTime((load_timing.request_start - kNullTicks).InSecondsF())
diff --git a/content/browser/devtools/protocol/webauthn_handler.cc b/content/browser/devtools/protocol/webauthn_handler.cc
index 15eed14..105b22c9 100644
--- a/content/browser/devtools/protocol/webauthn_handler.cc
+++ b/content/browser/devtools/protocol/webauthn_handler.cc
@@ -4,6 +4,10 @@
 
 #include "content/browser/devtools/protocol/webauthn_handler.h"
 
+#include <map>
+#include <vector>
+
+#include "base/strings/string_number_conversions.h"
 #include "base/strings/string_piece.h"
 #include "content/browser/frame_host/render_frame_host_impl.h"
 #include "content/browser/webauth/authenticator_environment_impl.h"
@@ -11,6 +15,7 @@
 #include "content/browser/webauth/virtual_fido_discovery_factory.h"
 #include "device/fido/fido_constants.h"
 #include "device/fido/fido_transport_protocol.h"
+#include "device/fido/virtual_fido_device.h"
 
 namespace content {
 namespace protocol {
@@ -18,7 +23,11 @@
 namespace {
 static constexpr char kAuthenticatorNotFound[] =
     "Could not find a Virtual Authenticator matching the ID";
+static constexpr char kCouldNotCreateCredential[] =
+    "An error occurred trying to create the credential";
 static constexpr char kInvalidProtocol[] = "The protocol is not valid";
+static constexpr char kInvalidRpIdHash[] =
+    "The Relying Party ID hash must have a size of ";
 static constexpr char kInvalidTransport[] = "The transport is not valid";
 static constexpr char kVirtualEnvironmentNotEnabled[] =
     "The Virtual Authenticator Environment has not been enabled for this "
@@ -32,6 +41,10 @@
   return device::ProtocolVersion::kUnknown;
 }
 
+std::vector<uint8_t> CopyBinaryToVector(const Binary& binary) {
+  return std::vector<uint8_t>(binary.data(), binary.data() + binary.size());
+}
+
 }  // namespace
 
 WebAuthnHandler::WebAuthnHandler()
@@ -96,10 +109,78 @@
     return Response::Error(kVirtualEnvironmentNotEnabled);
 
   if (!virtual_discovery_factory_->RemoveAuthenticator(authenticator_id))
-    return Response::Error(kAuthenticatorNotFound);
+    return Response::InvalidParams(kAuthenticatorNotFound);
 
   return Response::OK();
 }
 
+Response WebAuthnHandler::AddCredential(
+    const String& authenticator_id,
+    std::unique_ptr<WebAuthn::Credential> credential) {
+  if (!virtual_discovery_factory_)
+    return Response::Error(kVirtualEnvironmentNotEnabled);
+
+  auto* authenticator =
+      virtual_discovery_factory_->GetAuthenticator(authenticator_id);
+  if (!authenticator)
+    return Response::InvalidParams(kAuthenticatorNotFound);
+
+  if (credential->GetRpIdHash().size() != device::kRpIdHashLength) {
+    return Response::InvalidParams(
+        kInvalidRpIdHash + base::NumberToString(device::kRpIdHashLength));
+  }
+
+  if (!authenticator->AddRegistration(
+          CopyBinaryToVector(credential->GetCredentialId()),
+          CopyBinaryToVector(credential->GetRpIdHash()),
+          CopyBinaryToVector(credential->GetPrivateKey()),
+          credential->GetSignCount())) {
+    return Response::Error(kCouldNotCreateCredential);
+  }
+
+  return Response::OK();
+}
+
+Response WebAuthnHandler::GetCredentials(
+    const String& authenticator_id,
+    std::unique_ptr<Array<WebAuthn::Credential>>* out_credentials) {
+  if (!virtual_discovery_factory_)
+    return Response::Error(kVirtualEnvironmentNotEnabled);
+
+  auto* authenticator =
+      virtual_discovery_factory_->GetAuthenticator(authenticator_id);
+  if (!authenticator)
+    return Response::InvalidParams(kAuthenticatorNotFound);
+
+  *out_credentials = Array<WebAuthn::Credential>::create();
+  for (const auto& credential : authenticator->registrations()) {
+    const auto& rp_id_hash = credential.second.application_parameter;
+    std::vector<uint8_t> private_key;
+    credential.second.private_key->ExportPrivateKey(&private_key);
+    (*out_credentials)
+        ->addItem(WebAuthn::Credential::Create()
+                      .SetCredentialId(Binary::fromVector(credential.first))
+                      .SetRpIdHash(Binary::fromSpan(rp_id_hash.data(),
+                                                    rp_id_hash.size()))
+                      .SetPrivateKey(Binary::fromVector(std::move(private_key)))
+                      .SetSignCount(credential.second.counter)
+                      .Build());
+  }
+  return Response::OK();
+}
+
+Response WebAuthnHandler::ClearCredentials(const String& authenticator_id) {
+  if (!virtual_discovery_factory_)
+    return Response::Error(kVirtualEnvironmentNotEnabled);
+
+  auto* authenticator =
+      virtual_discovery_factory_->GetAuthenticator(authenticator_id);
+  if (!authenticator)
+    return Response::InvalidParams(kAuthenticatorNotFound);
+
+  authenticator->ClearRegistrations();
+  return Response::OK();
+}
+
 }  // namespace protocol
 }  // namespace content
diff --git a/content/browser/devtools/protocol/webauthn_handler.h b/content/browser/devtools/protocol/webauthn_handler.h
index f5dac07..c8838921 100644
--- a/content/browser/devtools/protocol/webauthn_handler.h
+++ b/content/browser/devtools/protocol/webauthn_handler.h
@@ -32,6 +32,14 @@
       std::unique_ptr<WebAuthn::VirtualAuthenticatorOptions> options,
       String* out_authenticator_id) override;
   Response RemoveVirtualAuthenticator(const String& authenticator_id) override;
+  Response AddCredential(
+      const String& authenticator_id,
+      std::unique_ptr<protocol::WebAuthn::Credential> credential) override;
+  Response GetCredentials(
+      const String& authenticator_id,
+      std::unique_ptr<protocol::Array<protocol::WebAuthn::Credential>>*
+          out_credentials) override;
+  Response ClearCredentials(const String& in_authenticator_id) override;
 
  private:
   RenderFrameHostImpl* frame_host_;
diff --git a/content/browser/devtools/protocol_config.json b/content/browser/devtools/protocol_config.json
index d6b8c0c..814d0d5 100644
--- a/content/browser/devtools/protocol_config.json
+++ b/content/browser/devtools/protocol_config.json
@@ -102,7 +102,7 @@
             },
             {
                 "domain": "WebAuthn",
-                "include": ["enable", "disable", "addVirtualAuthenticator", "removeVirtualAuthenticator"]
+                "include": ["enable", "disable", "addVirtualAuthenticator", "removeVirtualAuthenticator", "addCredential", "clearCredentials", "getCredentials"]
             }
         ]
     },
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 094ac652..25cb7dcf 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -212,6 +212,7 @@
 #include "content/browser/frame_host/render_frame_host_android.h"
 #include "content/public/browser/android/java_interfaces.h"
 #else
+#include "content/browser/hid/hid_service.h"
 #include "content/browser/serial/serial_service.h"
 #endif
 
@@ -3529,6 +3530,11 @@
 }
 
 void RenderFrameHostImpl::OnSetNeedsOcclusionTracking(bool needs_tracking) {
+  // Don't process the IPC if this RFH is pending deletion.  See also
+  // https://crbug.com/972566.
+  if (!is_active())
+    return;
+
   RenderFrameProxyHost* proxy =
       frame_tree_node()->render_manager()->GetProxyToParent();
   if (!proxy) {
@@ -4138,6 +4144,8 @@
     registry_->AddInterface(
         base::BindRepeating(&RenderFrameHostImpl::BindSerialServiceRequest,
                             base::Unretained(this)));
+    registry_->AddInterface(base::BindRepeating(
+        &RenderFrameHostImpl::BindHidServiceRequest, base::Unretained(this)));
   }
 #endif  // !defined(OS_ANDROID)
 
@@ -5938,6 +5946,14 @@
   serial_service_->Bind(std::move(request));
 }
 
+void RenderFrameHostImpl::BindHidServiceRequest(
+    blink::mojom::HidServiceRequest request) {
+  if (!hid_service_)
+    hid_service_ = std::make_unique<HidService>();
+
+  hid_service_->Bind(std::move(request));
+}
+
 void RenderFrameHostImpl::BindAuthenticatorRequest(
     blink::mojom::AuthenticatorRequest request) {
   if (!authenticator_impl_)
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index 5d76f8c..75ddbef 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -95,6 +95,7 @@
 #if defined(OS_ANDROID)
 #include "services/device/public/mojom/nfc.mojom.h"
 #else
+#include "third_party/blink/public/mojom/hid/hid.mojom.h"
 #include "third_party/blink/public/mojom/serial/serial.mojom.h"
 #endif
 
@@ -136,6 +137,7 @@
 class FrameTree;
 class FrameTreeNode;
 class GeolocationServiceImpl;
+class HidService;
 class KeepAliveHandleFactory;
 class MediaInterfaceProxy;
 class NavigationEntryImpl;
@@ -1374,6 +1376,7 @@
 #if !defined(OS_ANDROID)
   void BindSerialServiceRequest(blink::mojom::SerialServiceRequest request);
   void BindAuthenticatorRequest(blink::mojom::AuthenticatorRequest request);
+  void BindHidServiceRequest(blink::mojom::HidServiceRequest request);
 #endif
 
   void BindPresentationServiceRequest(
@@ -1948,6 +1951,9 @@
 #if !defined(OS_ANDROID)
   // Hosts blink::mojom::SerialService for the RenderFrame.
   std::unique_ptr<SerialService> serial_service_;
+
+  // Hosts blink::mojom::HidService for the RenderFrame.
+  std::unique_ptr<HidService> hid_service_;
 #endif
 
   // Hosts blink::mojom::PresentationService for the RenderFrame.
diff --git a/content/browser/frame_host/render_frame_host_manager.h b/content/browser/frame_host/render_frame_host_manager.h
index daa381a9..4bd1f4a 100644
--- a/content/browser/frame_host/render_frame_host_manager.h
+++ b/content/browser/frame_host/render_frame_host_manager.h
@@ -214,7 +214,8 @@
 
   // Return a proxy for this frame in the parent frame's SiteInstance.  Returns
   // nullptr if this is a main frame or if such a proxy does not exist (for
-  // example, if this frame is same-site with its parent).
+  // example, if this frame is same-site with its parent OR if this frame will
+  // be deleted soon and we are just waiting for the frame's unload handler).
   RenderFrameProxyHost* GetProxyToParent();
 
   // If this is a RenderFrameHostManager for a main frame, returns the proxy to
diff --git a/content/browser/hid/OWNERS b/content/browser/hid/OWNERS
new file mode 100644
index 0000000..90bd299
--- /dev/null
+++ b/content/browser/hid/OWNERS
@@ -0,0 +1,4 @@
+file://third_party/blink/renderer/modules/hid/OWNERS
+
+# TEAM: device-dev@chromium.org
+# COMPONENT: Blink>HID
diff --git a/content/browser/hid/hid_service.cc b/content/browser/hid/hid_service.cc
new file mode 100644
index 0000000..be3c79f
--- /dev/null
+++ b/content/browser/hid/hid_service.cc
@@ -0,0 +1,19 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/hid/hid_service.h"
+
+#include <utility>
+
+namespace content {
+
+HidService::HidService() = default;
+
+HidService::~HidService() = default;
+
+void HidService::Bind(blink::mojom::HidServiceRequest request) {
+  bindings_.AddBinding(this, std::move(request));
+}
+
+}  // namespace content
diff --git a/content/browser/hid/hid_service.h b/content/browser/hid/hid_service.h
new file mode 100644
index 0000000..067e795
--- /dev/null
+++ b/content/browser/hid/hid_service.h
@@ -0,0 +1,35 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_HID_HID_SERVICE_H_
+#define CONTENT_BROWSER_HID_HID_SERVICE_H_
+
+#include <string>
+#include <vector>
+
+#include "base/macros.h"
+#include "mojo/public/cpp/bindings/binding_set.h"
+#include "services/device/public/mojom/hid.mojom.h"
+#include "third_party/blink/public/mojom/hid/hid.mojom.h"
+
+namespace content {
+
+// HidService provides an implementation of the HidService mojom interface. This
+// interface is used by Blink to implement the WebHID API.
+class HidService : public blink::mojom::HidService {
+ public:
+  explicit HidService();
+  ~HidService() override;
+
+  void Bind(blink::mojom::HidServiceRequest request);
+
+ private:
+  mojo::BindingSet<blink::mojom::HidService> bindings_;
+
+  DISALLOW_COPY_AND_ASSIGN(HidService);
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_HID_HID_SERVICE_H_
diff --git a/content/browser/service_worker/service_worker_context_unittest.cc b/content/browser/service_worker/service_worker_context_unittest.cc
index 28e6427..2253e2e 100644
--- a/content/browser/service_worker/service_worker_context_unittest.cc
+++ b/content/browser/service_worker/service_worker_context_unittest.cc
@@ -244,6 +244,7 @@
  public:
   enum class EventType {
     RegistrationCompleted,
+    RegistrationStored,
     VersionActivated,
     VersionRedundant,
     NoControllees,
@@ -254,6 +255,7 @@
     EventType type;
     base::Optional<GURL> url;
     base::Optional<int64_t> version_id;
+    base::Optional<int64_t> registration_id;
     base::Optional<bool> is_running;
     base::Optional<ServiceWorkerContext*> context;
   };
@@ -275,6 +277,15 @@
     events_.push_back(log);
   }
 
+  void OnRegistrationStored(int64_t registration_id,
+                            const GURL& scope) override {
+    EventLog log;
+    log.type = EventType::RegistrationStored;
+    log.registration_id = registration_id;
+    log.url = scope;
+    events_.push_back(log);
+  }
+
   void OnVersionActivated(int64_t version_id, const GURL& scope) override {
     EventLog log;
     log.type = EventType::VersionActivated;
@@ -350,16 +361,22 @@
     if (event.type == TestServiceWorkerContextObserver::EventType::
                           RegistrationCompleted ||
         event.type ==
+            TestServiceWorkerContextObserver::EventType::RegistrationStored ||
+        event.type ==
             TestServiceWorkerContextObserver::EventType::VersionActivated)
       events.push_back(event);
   }
-  ASSERT_EQ(2u, events.size());
+  ASSERT_EQ(3u, events.size());
   EXPECT_EQ(TestServiceWorkerContextObserver::EventType::RegistrationCompleted,
             events[0].type);
   EXPECT_EQ(scope, events[0].url);
-  EXPECT_EQ(TestServiceWorkerContextObserver::EventType::VersionActivated,
+  EXPECT_EQ(TestServiceWorkerContextObserver::EventType::RegistrationStored,
             events[1].type);
   EXPECT_EQ(scope, events[1].url);
+  EXPECT_EQ(registration_id, events[1].registration_id);
+  EXPECT_EQ(TestServiceWorkerContextObserver::EventType::VersionActivated,
+            events[2].type);
+  EXPECT_EQ(scope, events[2].url);
 }
 
 // Make sure OnNoControllees is called on observer.
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc
index 17a1c1b..670a93e3 100644
--- a/content/browser/service_worker/service_worker_context_wrapper.cc
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc
@@ -280,6 +280,12 @@
     observer.OnRegistrationCompleted(scope);
 }
 
+void ServiceWorkerContextWrapper::OnRegistrationStored(int64_t registration_id,
+                                                       const GURL& scope) {
+  for (auto& observer : observer_list_)
+    observer.OnRegistrationStored(registration_id, scope);
+}
+
 void ServiceWorkerContextWrapper::OnReportConsoleMessage(
     int64_t version_id,
     const ConsoleMessage& message) {
diff --git a/content/browser/service_worker/service_worker_context_wrapper.h b/content/browser/service_worker/service_worker_context_wrapper.h
index 1384ab8..67169101 100644
--- a/content/browser/service_worker/service_worker_context_wrapper.h
+++ b/content/browser/service_worker/service_worker_context_wrapper.h
@@ -108,6 +108,8 @@
   // ServiceWorkerContextCoreObserver implementation:
   void OnRegistrationCompleted(int64_t registration_id,
                                const GURL& scope) override;
+  void OnRegistrationStored(int64_t registration_id,
+                            const GURL& scope) override;
   void OnReportConsoleMessage(int64_t version_id,
                               const ConsoleMessage& message) override;
   void OnNoControllees(int64_t version_id, const GURL& scope) override;
diff --git a/content/browser/webauth/virtual_authenticator.cc b/content/browser/webauth/virtual_authenticator.cc
index e35e02a..029d710 100644
--- a/content/browser/webauth/virtual_authenticator.cc
+++ b/content/browser/webauth/virtual_authenticator.cc
@@ -5,7 +5,6 @@
 #include "content/browser/webauth/virtual_authenticator.h"
 
 #include <utility>
-#include <vector>
 
 #include "base/containers/span.h"
 #include "base/guid.h"
@@ -37,6 +36,32 @@
   binding_set_.AddBinding(this, std::move(request));
 }
 
+bool VirtualAuthenticator::AddRegistration(
+    std::vector<uint8_t> key_handle,
+    const std::vector<uint8_t>& rp_id_hash,
+    const std::vector<uint8_t>& private_key,
+    int32_t counter) {
+  if (rp_id_hash.size() != device::kRpIdHashLength)
+    return false;
+
+  auto ec_private_key =
+      crypto::ECPrivateKey::CreateFromPrivateKeyInfo(private_key);
+  if (!ec_private_key)
+    return false;
+
+  return state_->registrations
+      .emplace(
+          std::move(key_handle),
+          ::device::VirtualFidoDevice::RegistrationData(
+              std::move(ec_private_key),
+              base::make_span<device::kRpIdHashLength>(rp_id_hash), counter))
+      .second;
+}
+
+void VirtualAuthenticator::ClearRegistrations() {
+  state_->registrations.clear();
+}
+
 std::unique_ptr<::device::FidoDevice> VirtualAuthenticator::ConstructDevice() {
   switch (protocol_) {
     case ::device::ProtocolVersion::kU2f:
@@ -78,26 +103,14 @@
 void VirtualAuthenticator::AddRegistration(
     blink::test::mojom::RegisteredKeyPtr registration,
     AddRegistrationCallback callback) {
-  if (registration->application_parameter.size() != device::kRpIdHashLength) {
-    std::move(callback).Run(false);
-    return;
-  }
-
-  bool success = false;
-  std::tie(std::ignore, success) = state_->registrations.emplace(
-      std::move(registration->key_handle),
-      ::device::VirtualFidoDevice::RegistrationData(
-          crypto::ECPrivateKey::CreateFromPrivateKeyInfo(
-              registration->private_key),
-          base::make_span<device::kRpIdHashLength>(
-              registration->application_parameter),
-          registration->counter));
-  std::move(callback).Run(success);
+  std::move(callback).Run(AddRegistration(
+      std::move(registration->key_handle), registration->application_parameter,
+      registration->private_key, registration->counter));
 }
 
 void VirtualAuthenticator::ClearRegistrations(
     ClearRegistrationsCallback callback) {
-  state_->registrations.clear();
+  ClearRegistrations();
   std::move(callback).Run();
 }
 
diff --git a/content/browser/webauth/virtual_authenticator.h b/content/browser/webauth/virtual_authenticator.h
index c29a35e..38f6080e 100644
--- a/content/browser/webauth/virtual_authenticator.h
+++ b/content/browser/webauth/virtual_authenticator.h
@@ -7,6 +7,7 @@
 
 #include <memory>
 #include <string>
+#include <vector>
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
@@ -35,6 +36,21 @@
 
   void AddBinding(blink::test::mojom::VirtualAuthenticatorRequest request);
 
+  const device::VirtualFidoDevice::State::RegistrationsMap& registrations()
+      const {
+    return state_->registrations;
+  }
+
+  // Register a new credential. Returns true if the registration was successful,
+  // false otherwise.
+  bool AddRegistration(std::vector<uint8_t> key_handle,
+                       const std::vector<uint8_t>& rp_id_hash,
+                       const std::vector<uint8_t>& private_key,
+                       int32_t counter);
+
+  // Removes all the credentials.
+  void ClearRegistrations();
+
   ::device::FidoTransportProtocol transport() const {
     return state_->transport;
   }
diff --git a/content/browser/webauth/virtual_fido_discovery_factory.cc b/content/browser/webauth/virtual_fido_discovery_factory.cc
index 8132832..241d3ac 100644
--- a/content/browser/webauth/virtual_fido_discovery_factory.cc
+++ b/content/browser/webauth/virtual_fido_discovery_factory.cc
@@ -52,6 +52,14 @@
   return authenticator_ptr;
 }
 
+VirtualAuthenticator* VirtualFidoDiscoveryFactory::GetAuthenticator(
+    const std::string& id) {
+  auto authenticator = authenticators_.find(id);
+  if (authenticator == authenticators_.end())
+    return nullptr;
+  return authenticator->second.get();
+}
+
 bool VirtualFidoDiscoveryFactory::RemoveAuthenticator(const std::string& id) {
   const bool removed = authenticators_.erase(id);
   if (removed) {
diff --git a/content/browser/webauth/virtual_fido_discovery_factory.h b/content/browser/webauth/virtual_fido_discovery_factory.h
index 832ddd6..6fb6ec40d 100644
--- a/content/browser/webauth/virtual_fido_discovery_factory.h
+++ b/content/browser/webauth/virtual_fido_discovery_factory.h
@@ -46,6 +46,10 @@
       bool has_resident_key,
       bool has_user_verification);
 
+  // Returns the authenticator with the given |id|. Returns nullptr if no
+  // authenticator matches the ID.
+  VirtualAuthenticator* GetAuthenticator(const std::string& id);
+
   // Removes the authenticator with the given |id|. Returns true if an
   // authenticator matched the |id|, false otherwise.
   bool RemoveAuthenticator(const std::string& id);
diff --git a/content/browser/webui/shared_resources_data_source.cc b/content/browser/webui/shared_resources_data_source.cc
index 3030e94..f034ce4 100644
--- a/content/browser/webui/shared_resources_data_source.cc
+++ b/content/browser/webui/shared_resources_data_source.cc
@@ -161,6 +161,18 @@
       {IDR_MULTIDEVICE_MULTIDEVICE_TYPES_MOJOM_LITE_JS,
        "mojo/chromeos/components/multidevice/mojom/"
        "multidevice_types.mojom-lite.js"},
+      {IDR_NETWORK_CONFIG_MOJOM_HTML,
+       "mojo/chromeos/services/network_config/public/mojom/"
+       "cros_network_config.mojom.html"},
+      {IDR_NETWORK_CONFIG_MOJOM_LITE_JS,
+       "mojo/chromeos/services/network_config/public/mojom/"
+       "cros_network_config.mojom-lite.js"},
+      {IDR_IP_ADDRESS_MOJOM_HTML,
+       "mojo/services/network/public/mojom/"
+       "ip_address.mojom.html"},
+      {IDR_IP_ADDRESS_MOJOM_LITE_JS,
+       "mojo/services/network/public/mojom/"
+       "ip_address.mojom-lite.js"},
   };
 }
 #endif  // !defined(OS_CHROMEOS)
diff --git a/content/ppapi_plugin/DEPS b/content/ppapi_plugin/DEPS
index 3bcfb60..78a609b9 100644
--- a/content/ppapi_plugin/DEPS
+++ b/content/ppapi_plugin/DEPS
@@ -7,5 +7,4 @@
   "+ppapi/proxy",
   "+services/service_manager/public/cpp",
   "+services/service_manager/sandbox",
-  "+services/ws/public/mojom",
 ]
diff --git a/content/public/app/content_browser_manifest.cc b/content/public/app/content_browser_manifest.cc
index 20ec094..2961f26f 100644
--- a/content/public/app/content_browser_manifest.cc
+++ b/content/public/app/content_browser_manifest.cc
@@ -216,6 +216,7 @@
                   "blink.mojom.FileChooser",
                   "blink.mojom.FileSystemManager",
                   "blink.mojom.GeolocationService",
+                  "blink.mojom.HidService",
                   "blink.mojom.IDBFactory",
                   "blink.mojom.IdleManager",
                   "blink.mojom.InsecureInputService",
diff --git a/content/public/app/content_renderer_manifest.cc b/content/public/app/content_renderer_manifest.cc
index 3bbecbe..e6e52645 100644
--- a/content/public/app/content_renderer_manifest.cc
+++ b/content/public/app/content_renderer_manifest.cc
@@ -43,6 +43,7 @@
           .RequireCapability("metrics", "url_keyed_metrics")
           .RequireCapability("ui", "discardable_memory")
           .RequireCapability("ui", "gpu_client")
+          .RequireCapability("device", "device:hid")
           .RequireCapability("device", "device:power_monitor")
           .RequireCapability("device", "device:screen_orientation")
           .RequireCapability("device", "device:time_zone_monitor")
diff --git a/content/public/browser/notification_registrar.cc b/content/public/browser/notification_registrar.cc
index 91f205d..ddf40a0 100644
--- a/content/public/browser/notification_registrar.cc
+++ b/content/public/browser/notification_registrar.cc
@@ -50,6 +50,7 @@
                                 const NotificationSource& source) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(!IsRegistered(observer, type, source)) << "Duplicate registration.";
+  DCHECK(NotificationServiceImpl::current());
 
   Record record = { observer, type, source };
   registered_.push_back(record);
diff --git a/content/public/browser/service_worker_context_observer.h b/content/public/browser/service_worker_context_observer.h
index 4b72a388..ea0f8d3 100644
--- a/content/public/browser/service_worker_context_observer.h
+++ b/content/public/browser/service_worker_context_observer.h
@@ -20,6 +20,13 @@
   // to disk.
   virtual void OnRegistrationCompleted(const GURL& scope) {}
 
+  // Called after a service worker registration is persisted to storage with
+  // registration ID |registration_id| and scope |scope|.
+  //
+  // This happens after OnRegistrationCompleted().
+  virtual void OnRegistrationStored(int64_t registration_id,
+                                    const GURL& scope) {}
+
   // Called when the service worker with id |version_id| changes status to
   // activated.
   virtual void OnVersionActivated(int64_t version_id, const GURL& scope) {}
diff --git a/content/public/test/browser_test_utils.h b/content/public/test/browser_test_utils.h
index b76ad66b..8110635 100644
--- a/content/public/test/browser_test_utils.h
+++ b/content/public/test/browser_test_utils.h
@@ -36,6 +36,7 @@
 #include "content/public/common/context_menu_params.h"
 #include "content/public/common/isolated_world_ids.h"
 #include "content/public/common/page_type.h"
+#include "content/public/test/no_renderer_crashes_assertion.h"
 #include "ipc/message_filter.h"
 #include "net/base/load_flags.h"
 #include "services/network/public/mojom/network_service.mojom.h"
@@ -997,6 +998,8 @@
   WatchType type_;
   bool did_exit_normally_;
 
+  ScopedAllowRendererCrashes allow_renderer_crashes_;
+
   base::RunLoop run_loop_;
   base::OnceClosure quit_closure_;
 
diff --git a/content/public/test/no_renderer_crashes_assertion.cc b/content/public/test/no_renderer_crashes_assertion.cc
new file mode 100644
index 0000000..1e24725b
--- /dev/null
+++ b/content/public/test/no_renderer_crashes_assertion.cc
@@ -0,0 +1,57 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/public/test/no_renderer_crashes_assertion.h"
+
+#include "content/public/browser/child_process_termination_info.h"
+#include "content/public/browser/notification_types.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace content {
+
+namespace {
+
+int g_suspension_count = 0;
+
+}  // namespace
+
+NoRendererCrashesAssertion::NoRendererCrashesAssertion() {
+  registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSED,
+                 NotificationService::AllSources());
+}
+
+NoRendererCrashesAssertion::~NoRendererCrashesAssertion() = default;
+
+void NoRendererCrashesAssertion::Observe(
+    int type,
+    const content::NotificationSource& source,
+    const content::NotificationDetails& details) {
+  if (g_suspension_count != 0)
+    return;
+
+  if (type != NOTIFICATION_RENDERER_PROCESS_CLOSED)
+    return;
+
+  ChildProcessTerminationInfo* process_info =
+      content::Details<content::ChildProcessTerminationInfo>(details).ptr();
+  switch (process_info->status) {
+    case base::TERMINATION_STATUS_NORMAL_TERMINATION:
+    case base::TERMINATION_STATUS_STILL_RUNNING:
+      return;  // Not a crash.
+    default:
+      break;  // Crash - need to trigger a test failure below.
+  }
+
+  FAIL() << "Unexpected termination of a renderer process";
+}
+
+ScopedAllowRendererCrashes::ScopedAllowRendererCrashes() {
+  g_suspension_count++;
+}
+
+ScopedAllowRendererCrashes::~ScopedAllowRendererCrashes() {
+  g_suspension_count--;
+}
+
+}  // namespace content
diff --git a/content/public/test/no_renderer_crashes_assertion.h b/content/public/test/no_renderer_crashes_assertion.h
new file mode 100644
index 0000000..5d59707
--- /dev/null
+++ b/content/public/test/no_renderer_crashes_assertion.h
@@ -0,0 +1,52 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_PUBLIC_TEST_NO_RENDERER_CRASHES_ASSERTION_H_
+#define CONTENT_PUBLIC_TEST_NO_RENDERER_CRASHES_ASSERTION_H_
+
+#include "base/macros.h"
+#include "content/public/browser/notification_observer.h"
+#include "content/public/browser/notification_registrar.h"
+#include "content/public/browser/notification_service.h"
+
+namespace content {
+
+// Usually, a test should fail when BrowserTestBase detects a crash in a
+// renderer process (see the NoRendererCrashesAssertion helper class below).
+// The ScopedAllowRendererCrashes class can be used to temporarily suspend this
+// behavior - this is useful in tests that explicitly expect renderer kills or
+// crashes.
+class ScopedAllowRendererCrashes {
+ public:
+  ScopedAllowRendererCrashes();
+  ~ScopedAllowRendererCrashes();
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ScopedAllowRendererCrashes);
+};
+
+// Helper that BrowserTestBase can use to start monitoring for renderer crashes
+// (triggering a test failure when a renderer crash happens).
+//
+// TODO(lukasza): https://crbug.com/972220: Actually start using this class,
+// by constructing it from BrowserTestBase::ProxyRunTestOnMainThreadLoop
+// (before calling PreRunTestOnMainThread).
+class NoRendererCrashesAssertion : public NotificationObserver {
+ public:
+  NoRendererCrashesAssertion();
+  ~NoRendererCrashesAssertion() override;
+
+ private:
+  void Observe(int type,
+               const content::NotificationSource& source,
+               const content::NotificationDetails& details) override;
+
+  NotificationRegistrar registrar_;
+
+  DISALLOW_COPY_AND_ASSIGN(NoRendererCrashesAssertion);
+};
+
+}  // namespace content
+
+#endif  // CONTENT_PUBLIC_TEST_NO_RENDERER_CRASHES_ASSERTION_H_
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index 4b11f76..60b3107c 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -131,6 +131,8 @@
     "../public/test/network_connection_change_simulator.h",
     "../public/test/network_service_test_helper.cc",
     "../public/test/network_service_test_helper.h",
+    "../public/test/no_renderer_crashes_assertion.cc",
+    "../public/test/no_renderer_crashes_assertion.h",
     "../public/test/ppapi_test_utils.cc",
     "../public/test/ppapi_test_utils.h",
     "../public/test/render_view_test.cc",
diff --git a/device/fido/fido_device_authenticator.cc b/device/fido/fido_device_authenticator.cc
index 3c25dc1..b607ca6 100644
--- a/device/fido/fido_device_authenticator.cc
+++ b/device/fido/fido_device_authenticator.cc
@@ -59,31 +59,19 @@
 
 void FidoDeviceAuthenticator::MakeCredential(CtapMakeCredentialRequest request,
                                              MakeCredentialCallback callback) {
-  DCHECK(device_->SupportedProtocolIsInitialized())
-      << "InitializeAuthenticator() must be called first.";
-  task_ = std::make_unique<MakeCredentialTask>(
-      device_.get(), std::move(request), std::move(callback));
+  RunTask<MakeCredentialTask>(std::move(request), std::move(callback));
 }
 
 void FidoDeviceAuthenticator::GetAssertion(CtapGetAssertionRequest request,
                                            GetAssertionCallback callback) {
-  DCHECK(device_->SupportedProtocolIsInitialized())
-      << "InitializeAuthenticator() must be called first.";
-  task_ = std::make_unique<GetAssertionTask>(device_.get(), std::move(request),
-                                             std::move(callback));
+  RunTask<GetAssertionTask>(std::move(request), std::move(callback));
 }
 
 void FidoDeviceAuthenticator::GetNextAssertion(GetAssertionCallback callback) {
-  DCHECK(device_->SupportedProtocolIsInitialized())
-      << "InitializeAuthenticator() must be called first.";
-
-  operation_ =
-      std::make_unique<Ctap2DeviceOperation<CtapGetNextAssertionRequest,
-                                            AuthenticatorGetAssertionResponse>>(
-          device_.get(), CtapGetNextAssertionRequest(), std::move(callback),
-          base::BindOnce(&ReadCTAPGetAssertionResponse),
-          GetAssertionTask::StringFixupPredicate);
-  operation_->Start();
+  RunOperation<CtapGetNextAssertionRequest, AuthenticatorGetAssertionResponse>(
+      CtapGetNextAssertionRequest(), std::move(callback),
+      base::BindOnce(&ReadCTAPGetAssertionResponse),
+      GetAssertionTask::StringFixupPredicate);
 }
 
 void FidoDeviceAuthenticator::GetTouch(base::OnceCallback<void()> callback) {
@@ -110,90 +98,64 @@
 }
 
 void FidoDeviceAuthenticator::GetRetries(GetRetriesCallback callback) {
-  DCHECK(device_->SupportedProtocolIsInitialized())
-      << "InitializeAuthenticator() must be called first.";
   DCHECK(Options());
   DCHECK(Options()->client_pin_availability !=
          AuthenticatorSupportedOptions::ClientPinAvailability::kNotSupported);
 
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<pin::RetriesRequest, pin::RetriesResponse>>(
-      device_.get(), pin::RetriesRequest(), std::move(callback),
-      base::BindOnce(&pin::RetriesResponse::Parse),
-      /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<pin::RetriesRequest, pin::RetriesResponse>(
+      pin::RetriesRequest(), std::move(callback),
+      base::BindOnce(&pin::RetriesResponse::Parse));
 }
 
 void FidoDeviceAuthenticator::GetEphemeralKey(
     GetEphemeralKeyCallback callback) {
-  DCHECK(device_->SupportedProtocolIsInitialized())
-      << "InitializeAuthenticator() must be called first.";
   DCHECK(Options());
   DCHECK(Options()->client_pin_availability !=
          AuthenticatorSupportedOptions::ClientPinAvailability::kNotSupported);
 
-  operation_ =
-      std::make_unique<Ctap2DeviceOperation<pin::KeyAgreementRequest,
-                                            pin::KeyAgreementResponse>>(
-          device_.get(), pin::KeyAgreementRequest(), std::move(callback),
-          base::BindOnce(&pin::KeyAgreementResponse::Parse),
-          /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<pin::KeyAgreementRequest, pin::KeyAgreementResponse>(
+      pin::KeyAgreementRequest(), std::move(callback),
+      base::BindOnce(&pin::KeyAgreementResponse::Parse));
 }
 
 void FidoDeviceAuthenticator::GetPINToken(
     std::string pin,
     const pin::KeyAgreementResponse& peer_key,
     GetPINTokenCallback callback) {
-  DCHECK(device_->SupportedProtocolIsInitialized())
-      << "InitializeAuthenticator() must be called first.";
   DCHECK(Options());
   DCHECK(Options()->client_pin_availability !=
          AuthenticatorSupportedOptions::ClientPinAvailability::kNotSupported);
 
   pin::TokenRequest request(pin, peer_key);
   std::array<uint8_t, 32> shared_key = request.shared_key();
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<pin::TokenRequest, pin::TokenResponse>>(
-      device_.get(), std::move(request), std::move(callback),
-      base::BindOnce(&pin::TokenResponse::Parse, std::move(shared_key)),
-      /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<pin::TokenRequest, pin::TokenResponse>(
+      std::move(request), std::move(callback),
+      base::BindOnce(&pin::TokenResponse::Parse, std::move(shared_key)));
 }
 
 void FidoDeviceAuthenticator::SetPIN(const std::string& pin,
                                      const pin::KeyAgreementResponse& peer_key,
                                      SetPINCallback callback) {
-  DCHECK(device_->SupportedProtocolIsInitialized())
-      << "InitializeAuthenticator() must be called first.";
   DCHECK(Options());
   DCHECK(Options()->client_pin_availability !=
          AuthenticatorSupportedOptions::ClientPinAvailability::kNotSupported);
 
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<pin::SetRequest, pin::EmptyResponse>>(
-      device_.get(), pin::SetRequest(pin, peer_key), std::move(callback),
-      base::BindOnce(&pin::EmptyResponse::Parse),
-      /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<pin::SetRequest, pin::EmptyResponse>(
+      pin::SetRequest(pin, peer_key), std::move(callback),
+      base::BindOnce(&pin::EmptyResponse::Parse));
 }
 
 void FidoDeviceAuthenticator::ChangePIN(const std::string& old_pin,
                                         const std::string& new_pin,
                                         pin::KeyAgreementResponse& peer_key,
                                         SetPINCallback callback) {
-  DCHECK(device_->SupportedProtocolIsInitialized())
-      << "InitializeAuthenticator() must be called first.";
   DCHECK(Options());
   DCHECK(Options()->client_pin_availability !=
          AuthenticatorSupportedOptions::ClientPinAvailability::kNotSupported);
 
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<pin::ChangeRequest, pin::EmptyResponse>>(
-      device_.get(), pin::ChangeRequest(old_pin, new_pin, peer_key),
-      std::move(callback), base::BindOnce(&pin::EmptyResponse::Parse),
-      /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<pin::ChangeRequest, pin::EmptyResponse>(
+      pin::ChangeRequest(old_pin, new_pin, peer_key), std::move(callback),
+      base::BindOnce(&pin::EmptyResponse::Parse));
 }
 
 FidoAuthenticator::MakeCredentialPINDisposition
@@ -313,19 +275,13 @@
   DCHECK(Options()->supports_credential_management ||
          Options()->supports_credential_management_preview);
 
-  operation_ =
-      std::make_unique<Ctap2DeviceOperation<CredentialManagementRequest,
-                                            CredentialsMetadataResponse>>(
-          device_.get(),
-          CredentialManagementRequest::ForGetCredsMetadata(
-              Options()->supports_credential_management
-                  ? CredentialManagementRequest::kDefault
-                  : CredentialManagementRequest::kPreview,
-              pin_token),
-          std::move(callback),
-          base::BindOnce(&CredentialsMetadataResponse::Parse),
-          /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<CredentialManagementRequest, CredentialsMetadataResponse>(
+      CredentialManagementRequest::ForGetCredsMetadata(
+          Options()->supports_credential_management
+              ? CredentialManagementRequest::kDefault
+              : CredentialManagementRequest::kPreview,
+          pin_token),
+      std::move(callback), base::BindOnce(&CredentialsMetadataResponse::Parse));
 }
 
 struct FidoDeviceAuthenticator::EnumerateCredentialsState {
@@ -352,10 +308,7 @@
   EnumerateCredentialsState state;
   state.pin_token = fido_parsing_utils::Materialize(pin_token);
   state.callback = std::move(callback);
-
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<CredentialManagementRequest, EnumerateRPsResponse>>(
-      device_.get(),
+  RunOperation<CredentialManagementRequest, EnumerateRPsResponse>(
       CredentialManagementRequest::ForEnumerateRPsBegin(
           Options()->supports_credential_management
               ? CredentialManagementRequest::kDefault
@@ -366,6 +319,72 @@
       base::BindOnce(&EnumerateRPsResponse::Parse, /*expect_rp_count=*/true),
       // TODO(martinkr): implement utf-8 fixup and add a test for it.
       /*string_fixup_predicate=*/nullptr);
+}
+
+// TaskClearProxy interposes |callback| and resets |task_| before it runs.
+template <typename... Args>
+void FidoDeviceAuthenticator::TaskClearProxy(
+    base::OnceCallback<void(Args...)> callback,
+    Args... args) {
+  DCHECK(task_);
+  DCHECK(!operation_);
+  task_.reset();
+  std::move(callback).Run(std::forward<Args>(args)...);
+}
+
+// OperationClearProxy interposes |callback| and resets |operation_| before it
+// runs.
+template <typename... Args>
+void FidoDeviceAuthenticator::OperationClearProxy(
+    base::OnceCallback<void(Args...)> callback,
+    Args... args) {
+  DCHECK(operation_);
+  DCHECK(!task_);
+  operation_.reset();
+  std::move(callback).Run(std::forward<Args>(args)...);
+}
+
+// RunTask starts a |FidoTask| and ensures that |task_| is reset when the given
+// callback is called.
+template <typename Task, typename Request, typename Response>
+void FidoDeviceAuthenticator::RunTask(
+    Request request,
+    base::OnceCallback<void(CtapDeviceResponseCode, base::Optional<Response>)>
+        callback) {
+  DCHECK(!task_);
+  DCHECK(!operation_);
+  DCHECK(device_->SupportedProtocolIsInitialized())
+      << "InitializeAuthenticator() must be called first.";
+
+  task_ = std::make_unique<Task>(
+      device_.get(), std::move(request),
+      base::BindOnce(
+          &FidoDeviceAuthenticator::TaskClearProxy<CtapDeviceResponseCode,
+                                                   base::Optional<Response>>,
+          weak_factory_.GetWeakPtr(), std::move(callback)));
+}
+
+// RunOperation starts a |Ctap2DeviceOperation| and ensures that |operation_| is
+// reset when the given completion callback is called.
+template <typename Request, typename Response>
+void FidoDeviceAuthenticator::RunOperation(
+    Request request,
+    base::OnceCallback<void(CtapDeviceResponseCode, base::Optional<Response>)>
+        callback,
+    base::OnceCallback<
+        base::Optional<Response>(const base::Optional<cbor::Value>&)> parser,
+    bool (*string_fixup_predicate)(const std::vector<const cbor::Value*>&)) {
+  DCHECK(!task_);
+  DCHECK(!operation_);
+  DCHECK(device_->SupportedProtocolIsInitialized())
+      << "InitializeAuthenticator() must be called first.";
+
+  operation_ = std::make_unique<Ctap2DeviceOperation<Request, Response>>(
+      device_.get(), std::move(request),
+      base::BindOnce(&FidoDeviceAuthenticator::OperationClearProxy<
+                         CtapDeviceResponseCode, base::Optional<Response>>,
+                     weak_factory_.GetWeakPtr(), std::move(callback)),
+      std::move(parser), string_fixup_predicate);
   operation_->Start();
 }
 
@@ -396,17 +415,14 @@
           ? CredentialManagementRequest::kDefault
           : CredentialManagementRequest::kPreview,
       state.pin_token, std::move(*response->rp_id_hash));
-  operation_ =
-      std::make_unique<Ctap2DeviceOperation<CredentialManagementRequest,
-                                            EnumerateCredentialsResponse>>(
-          device_.get(), std::move(request),
-          base::BindOnce(&FidoDeviceAuthenticator::OnEnumerateCredentialsDone,
-                         weak_factory_.GetWeakPtr(), std::move(state)),
-          base::BindOnce(&EnumerateCredentialsResponse::Parse,
-                         /*expect_credential_count=*/true),
-          // TODO(martinkr): implement utf-8 fixup and add a test for it.
-          /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<CredentialManagementRequest, EnumerateCredentialsResponse>(
+      std::move(request),
+      base::BindOnce(&FidoDeviceAuthenticator::OnEnumerateCredentialsDone,
+                     weak_factory_.GetWeakPtr(), std::move(state)),
+      base::BindOnce(&EnumerateCredentialsResponse::Parse,
+                     /*expect_credential_count=*/true),
+      // TODO(martinkr): implement utf-8 fixup and add a test for it.
+      /*string_fixup_predicate=*/nullptr);
 }
 
 void FidoDeviceAuthenticator::OnEnumerateCredentialsDone(
@@ -425,40 +441,32 @@
 
   if (state.responses.back().credentials.size() <
       state.current_rp_credential_count) {
-    operation_ =
-        std::make_unique<Ctap2DeviceOperation<CredentialManagementRequest,
-                                              EnumerateCredentialsResponse>>(
-            device_.get(),
-            CredentialManagementRequest::ForEnumerateCredentialsGetNext(
-                Options()->supports_credential_management
-                    ? CredentialManagementRequest::kDefault
-                    : CredentialManagementRequest::kPreview),
-            base::BindOnce(&FidoDeviceAuthenticator::OnEnumerateCredentialsDone,
-                           weak_factory_.GetWeakPtr(), std::move(state)),
-            base::BindOnce(&EnumerateCredentialsResponse::Parse,
-                           /*expect_credential_count=*/false),
-            // TODO(martinkr): implement utf-8 fixup and add a test for it.
-            /*string_fixup_predicate=*/nullptr);
-    operation_->Start();
+    RunOperation<CredentialManagementRequest, EnumerateCredentialsResponse>(
+        CredentialManagementRequest::ForEnumerateCredentialsGetNext(
+            Options()->supports_credential_management
+                ? CredentialManagementRequest::kDefault
+                : CredentialManagementRequest::kPreview),
+        base::BindOnce(&FidoDeviceAuthenticator::OnEnumerateCredentialsDone,
+                       weak_factory_.GetWeakPtr(), std::move(state)),
+        base::BindOnce(&EnumerateCredentialsResponse::Parse,
+                       /*expect_credential_count=*/false),
+        // TODO(martinkr): implement utf-8 fixup and add a test for it.
+        /*string_fixup_predicate=*/nullptr);
     return;
   }
 
   if (state.responses.size() < state.rp_count) {
-    operation_ =
-        std::make_unique<Ctap2DeviceOperation<CredentialManagementRequest,
-                                              EnumerateRPsResponse>>(
-            device_.get(),
-            CredentialManagementRequest::ForEnumerateRPsGetNext(
-                Options()->supports_credential_management
-                    ? CredentialManagementRequest::kDefault
-                    : CredentialManagementRequest::kPreview),
-            base::BindOnce(&FidoDeviceAuthenticator::OnEnumerateRPsDone,
-                           weak_factory_.GetWeakPtr(), std::move(state)),
-            base::BindOnce(&EnumerateRPsResponse::Parse,
-                           /*expect_rp_count=*/false),
-            // TODO(martinkr): implement utf-8 fixup and add a test for it.
-            /*string_fixup_predicate=*/nullptr);
-    operation_->Start();
+    RunOperation<CredentialManagementRequest, EnumerateRPsResponse>(
+        CredentialManagementRequest::ForEnumerateRPsGetNext(
+            Options()->supports_credential_management
+                ? CredentialManagementRequest::kDefault
+                : CredentialManagementRequest::kPreview),
+        base::BindOnce(&FidoDeviceAuthenticator::OnEnumerateRPsDone,
+                       weak_factory_.GetWeakPtr(), std::move(state)),
+        base::BindOnce(&EnumerateRPsResponse::Parse,
+                       /*expect_rp_count=*/false),
+        // TODO(martinkr): implement utf-8 fixup and add a test for it.
+        /*string_fixup_predicate=*/nullptr);
     return;
   }
 
@@ -474,18 +482,14 @@
   DCHECK(Options()->supports_credential_management ||
          Options()->supports_credential_management_preview);
 
-  operation_ =
-      std::make_unique<Ctap2DeviceOperation<CredentialManagementRequest,
-                                            DeleteCredentialResponse>>(
-          device_.get(),
-          CredentialManagementRequest::ForDeleteCredential(
-              Options()->supports_credential_management
-                  ? CredentialManagementRequest::kDefault
-                  : CredentialManagementRequest::kPreview,
-              pin_token, fido_parsing_utils::Materialize(credential_id)),
-          std::move(callback), base::BindOnce(&DeleteCredentialResponse::Parse),
-          /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<CredentialManagementRequest, DeleteCredentialResponse>(
+      CredentialManagementRequest::ForDeleteCredential(
+          Options()->supports_credential_management
+              ? CredentialManagementRequest::kDefault
+              : CredentialManagementRequest::kPreview,
+          pin_token, fido_parsing_utils::Materialize(credential_id)),
+      std::move(callback), base::BindOnce(&DeleteCredentialResponse::Parse),
+      /*string_fixup_predicate=*/nullptr);
 }
 
 void FidoDeviceAuthenticator::GetModality(BioEnrollmentCallback callback) {
@@ -493,12 +497,9 @@
       Options()->bio_enrollment_availability_preview !=
       AuthenticatorSupportedOptions::BioEnrollmentAvailability::kNotSupported);
 
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<BioEnrollmentRequest, BioEnrollmentResponse>>(
-      device_.get(), BioEnrollmentRequest::ForGetModality(),
-      std::move(callback), base::BindOnce(&BioEnrollmentResponse::Parse),
-      /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<BioEnrollmentRequest, BioEnrollmentResponse>(
+      BioEnrollmentRequest::ForGetModality(), std::move(callback),
+      base::BindOnce(&BioEnrollmentResponse::Parse));
 }
 
 void FidoDeviceAuthenticator::GetSensorInfo(BioEnrollmentCallback callback) {
@@ -506,12 +507,9 @@
       Options()->bio_enrollment_availability_preview !=
       AuthenticatorSupportedOptions::BioEnrollmentAvailability::kNotSupported);
 
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<BioEnrollmentRequest, BioEnrollmentResponse>>(
-      device_.get(), BioEnrollmentRequest::ForGetSensorInfo(),
-      std::move(callback), base::BindOnce(&BioEnrollmentResponse::Parse),
-      /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<BioEnrollmentRequest, BioEnrollmentResponse>(
+      BioEnrollmentRequest::ForGetSensorInfo(), std::move(callback),
+      base::BindOnce(&BioEnrollmentResponse::Parse));
 }
 
 void FidoDeviceAuthenticator::BioEnrollFingerprint(
@@ -521,15 +519,12 @@
       Options()->bio_enrollment_availability_preview !=
       AuthenticatorSupportedOptions::BioEnrollmentAvailability::kNotSupported);
 
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<BioEnrollmentRequest, BioEnrollmentResponse>>(
-      device_.get(), BioEnrollmentRequest::ForEnrollBegin(token),
+  RunOperation<BioEnrollmentRequest, BioEnrollmentResponse>(
+      BioEnrollmentRequest::ForEnrollBegin(token),
       base::BindOnce(&FidoDeviceAuthenticator::OnBioEnroll,
                      weak_factory_.GetWeakPtr(), std::move(token),
                      std::move(callback)),
-      base::BindOnce(&BioEnrollmentResponse::Parse),
-      /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+      base::BindOnce(&BioEnrollmentResponse::Parse));
 }
 
 void FidoDeviceAuthenticator::OnBioEnroll(
@@ -546,16 +541,12 @@
     template_id_ = std::move(bio->template_id);
   }
 
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<BioEnrollmentRequest, BioEnrollmentResponse>>(
-      device_.get(),
+  RunOperation<BioEnrollmentRequest, BioEnrollmentResponse>(
       BioEnrollmentRequest::ForEnrollNextSample(token, *template_id_),
       base::BindOnce(&FidoDeviceAuthenticator::OnBioEnroll,
                      weak_factory_.GetWeakPtr(), std::move(token),
                      std::move(callback)),
-      base::BindOnce(&BioEnrollmentResponse::Parse),
-      /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+      base::BindOnce(&BioEnrollmentResponse::Parse));
 }
 
 void FidoDeviceAuthenticator::BioEnrollCancel(BioEnrollmentCallback callback) {
@@ -563,24 +554,18 @@
       Options()->bio_enrollment_availability_preview !=
       AuthenticatorSupportedOptions::BioEnrollmentAvailability::kNotSupported);
 
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<BioEnrollmentRequest, BioEnrollmentResponse>>(
-      device_.get(), BioEnrollmentRequest::ForCancel(), std::move(callback),
-      base::BindOnce(&BioEnrollmentResponse::Parse),
-      /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<BioEnrollmentRequest, BioEnrollmentResponse>(
+      BioEnrollmentRequest::ForCancel(), std::move(callback),
+      base::BindOnce(&BioEnrollmentResponse::Parse));
 }
 
 void FidoDeviceAuthenticator::Reset(ResetCallback callback) {
   DCHECK(device_->SupportedProtocolIsInitialized())
       << "InitializeAuthenticator() must be called first.";
 
-  operation_ = std::make_unique<
-      Ctap2DeviceOperation<pin::ResetRequest, pin::ResetResponse>>(
-      device_.get(), pin::ResetRequest(), std::move(callback),
-      base::BindOnce(&pin::ResetResponse::Parse),
-      /*string_fixup_predicate=*/nullptr);
-  operation_->Start();
+  RunOperation<pin::ResetRequest, pin::ResetResponse>(
+      pin::ResetRequest(), std::move(callback),
+      base::BindOnce(&pin::ResetResponse::Parse));
 }
 
 void FidoDeviceAuthenticator::Cancel() {
diff --git a/device/fido/fido_device_authenticator.h b/device/fido/fido_device_authenticator.h
index 61af170..b3fbdfa9 100644
--- a/device/fido/fido_device_authenticator.h
+++ b/device/fido/fido_device_authenticator.h
@@ -112,6 +112,24 @@
  private:
   void InitializeAuthenticatorDone(base::OnceClosure callback);
 
+  template <typename... Args>
+  void TaskClearProxy(base::OnceCallback<void(Args...)> callback, Args... args);
+  template <typename... Args>
+  void OperationClearProxy(base::OnceCallback<void(Args...)> callback,
+                           Args... args);
+  template <typename Task, typename Request, typename Response>
+  void RunTask(Request request,
+               base::OnceCallback<void(CtapDeviceResponseCode,
+                                       base::Optional<Response>)> callback);
+  template <typename Request, typename Response>
+  void RunOperation(Request request,
+                    base::OnceCallback<void(CtapDeviceResponseCode,
+                                            base::Optional<Response>)> callback,
+                    base::OnceCallback<base::Optional<Response>(
+                        const base::Optional<cbor::Value>&)> parser,
+                    bool (*string_fixup_predicate)(
+                        const std::vector<const cbor::Value*>&) = nullptr);
+
   struct EnumerateCredentialsState;
   void OnEnumerateRPsDone(EnumerateCredentialsState state,
                           CtapDeviceResponseCode status,
diff --git a/device/fido/fido_request_handler.h b/device/fido/fido_request_handler.h
index ffd3d46..92ae5e0 100644
--- a/device/fido/fido_request_handler.h
+++ b/device/fido/fido_request_handler.h
@@ -46,10 +46,7 @@
                                available_transports),
         completion_callback_(std::move(completion_callback)) {}
 
-  ~FidoRequestHandler() override {
-    if (!is_complete())
-      CancelActiveAuthenticators();
-  }
+  ~FidoRequestHandler() override = default;
 
   bool is_complete() const { return completion_callback_.is_null(); }
 
diff --git a/device/fido/fido_request_handler_base.cc b/device/fido/fido_request_handler_base.cc
index 3b6eb76c..8e8de96 100644
--- a/device/fido/fido_request_handler_base.cc
+++ b/device/fido/fido_request_handler_base.cc
@@ -178,7 +178,9 @@
 }
 #endif  // defined(OS_WIN)
 
-FidoRequestHandlerBase::~FidoRequestHandlerBase() = default;
+FidoRequestHandlerBase::~FidoRequestHandlerBase() {
+  CancelActiveAuthenticators();
+}
 
 void FidoRequestHandlerBase::StartAuthenticatorRequest(
     const std::string& authenticator_id) {
diff --git a/device/fido/fido_request_handler_unittest.cc b/device/fido/fido_request_handler_unittest.cc
index 713c48fa..ff7260c 100644
--- a/device/fido/fido_request_handler_unittest.cc
+++ b/device/fido/fido_request_handler_unittest.cc
@@ -245,6 +245,10 @@
   void HandleResponse(FidoAuthenticator* authenticator,
                       CtapDeviceResponseCode status,
                       base::Optional<std::vector<uint8_t>> response) {
+    auto* device_authenticator =
+        static_cast<FidoDeviceAuthenticator*>(authenticator);
+    device_authenticator->SetTaskForTesting(nullptr);
+
     const base::Optional<FidoReturnCode> maybe_result =
         ConvertDeviceResponseCodeToFidoReturnCode(status);
     if (!maybe_result) {
diff --git a/device/fido/make_credential_handler_unittest.cc b/device/fido/make_credential_handler_unittest.cc
index 54d7c58f..d6d15b2 100644
--- a/device/fido/make_credential_handler_unittest.cc
+++ b/device/fido/make_credential_handler_unittest.cc
@@ -373,7 +373,15 @@
 }
 
 ACTION_P(Reply, reply) {
-  std::move(arg1).Run(std::vector<uint8_t>(reply.begin(), reply.end()));
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE,
+      base::BindOnce(
+          [](base::OnceCallback<void(base::Optional<std::vector<uint8_t>>)>
+                 callback,
+             std::vector<uint8_t> reply) {
+            std::move(callback).Run(std::move(reply));
+          },
+          std::move(arg1), std::vector<uint8_t>(reply.begin(), reply.end())));
 }
 
 TEST_F(FidoMakeCredentialHandlerTest, ResidentKeyCancelOtherAuthenticator) {
diff --git a/device/fido/virtual_fido_device.h b/device/fido/virtual_fido_device.h
index 4f3172b..debfd32 100644
--- a/device/fido/virtual_fido_device.h
+++ b/device/fido/virtual_fido_device.h
@@ -70,6 +70,10 @@
   // necessary in order to provide continuity between requests.
   class COMPONENT_EXPORT(DEVICE_FIDO) State : public base::RefCounted<State> {
    public:
+    using RegistrationsMap = std::map<std::vector<uint8_t>,
+                                      RegistrationData,
+                                      fido_parsing_utils::RangeLess>;
+
     State();
 
     // The common name in the attestation certificate.
@@ -80,10 +84,7 @@
     std::string individual_attestation_cert_common_name;
 
     // Registered keys. Keyed on key handle (a.k.a. "credential ID").
-    std::map<std::vector<uint8_t>,
-             RegistrationData,
-             fido_parsing_utils::RangeLess>
-        registrations;
+    RegistrationsMap registrations;
 
     // If set, this callback is called whenever a "press" is required. It allows
     // tests to change the state of the world during processing.
diff --git a/device/gamepad/gamepad_device_linux.cc b/device/gamepad/gamepad_device_linux.cc
index 7803e106..b2c7236 100644
--- a/device/gamepad/gamepad_device_linux.cc
+++ b/device/gamepad/gamepad_device_linux.cc
@@ -357,6 +357,7 @@
 
 GamepadStandardMappingFunction GamepadDeviceLinux::GetMappingFunction() const {
   return GetGamepadStandardMappingFunction(vendor_id_, product_id_,
+                                           hid_specification_version_,
                                            version_number_, bus_type_);
 }
 
@@ -384,14 +385,15 @@
       udev_device_get_sysattr_value(parent_device, "id/vendor");
   const base::StringPiece product_id =
       udev_device_get_sysattr_value(parent_device, "id/product");
-  const base::StringPiece version_number =
+  const base::StringPiece hid_version =
       udev_device_get_sysattr_value(parent_device, "id/version");
   const base::StringPiece name =
       udev_device_get_sysattr_value(parent_device, "name");
 
   uint16_t vendor_id_int = HexStringToUInt16WithDefault(vendor_id, 0);
   uint16_t product_id_int = HexStringToUInt16WithDefault(product_id, 0);
-  uint16_t version_number_int = HexStringToUInt16WithDefault(version_number, 0);
+  uint16_t hid_version_int = HexStringToUInt16WithDefault(hid_version, 0);
+  uint16_t version_number_int = 0;
 
   // In many cases the information the input subsystem contains isn't
   // as good as the information that the device bus has, walk up further
@@ -419,11 +421,16 @@
         name_string = base::StringPrintf("%s %s", manufacturer, product);
       }
     }
+
+    const base::StringPiece version_number =
+        udev_device_get_sysattr_value(usb_device, "bcdDevice");
+    version_number_int = HexStringToUInt16WithDefault(version_number, 0);
   }
 
   joydev_index_ = pad_info.index;
   vendor_id_ = vendor_id_int;
   product_id_ = product_id_int;
+  hid_specification_version_ = hid_version_int;
   version_number_ = version_number_int;
   name_ = name_string;
   gamepad_id_ = GamepadIdList::Get().GetGamepadId(vendor_id_, product_id_);
diff --git a/device/gamepad/gamepad_device_linux.h b/device/gamepad/gamepad_device_linux.h
index 17b1209..8a3cffe 100644
--- a/device/gamepad/gamepad_device_linux.h
+++ b/device/gamepad/gamepad_device_linux.h
@@ -147,6 +147,11 @@
   // The product ID of the device.
   uint16_t product_id_;
 
+  // The version of the HID specification that this device is compliant with.
+  // The hid-sony driver patches this value to indicate that a newer mapping has
+  // been applied.
+  uint16_t hid_specification_version_;
+
   // The version number of the device.
   uint16_t version_number_;
 
diff --git a/device/gamepad/gamepad_platform_data_fetcher_mac.mm b/device/gamepad/gamepad_platform_data_fetcher_mac.mm
index 009810e..ba6f98c4 100644
--- a/device/gamepad/gamepad_platform_data_fetcher_mac.mm
+++ b/device/gamepad/gamepad_platform_data_fetcher_mac.mm
@@ -214,7 +214,8 @@
     return;  // No available slot for this device
 
   state->mapper = GetGamepadStandardMappingFunction(
-      vendor_int, product_int, version_int, GAMEPAD_BUS_UNKNOWN);
+      vendor_int, product_int, /*hid_specification_version=*/0, version_int,
+      GAMEPAD_BUS_UNKNOWN);
 
   NSString* ident =
       [NSString stringWithFormat:@"%@ (%sVendor: %04x Product: %04x)", product,
diff --git a/device/gamepad/gamepad_standard_mappings.h b/device/gamepad/gamepad_standard_mappings.h
index 562ac8c..24cc34e 100644
--- a/device/gamepad/gamepad_standard_mappings.h
+++ b/device/gamepad/gamepad_standard_mappings.h
@@ -23,9 +23,17 @@
 typedef void (*GamepadStandardMappingFunction)(const Gamepad& original,
                                                Gamepad* mapped);
 
+// Returns the most suitable mapping function for a particular gamepad.
+// |vendor_id| and |product_id| are the USB or Bluetooth vendor and product IDs
+// reported by the device. |hid_specification_version| is the binary-coded
+// decimal representation of the version of the HID specification that the
+// device is compliant with (bcdHID). |version_number| is the firmware version
+// number reported by the device (bcdDevice). |bus_type| is the transport
+// used to connect to this device, or GAMEPAD_BUS_UNKNOWN if unknown.
 GamepadStandardMappingFunction GetGamepadStandardMappingFunction(
     const uint16_t vendor_id,
     const uint16_t product_id,
+    const uint16_t hid_specification_version,
     const uint16_t version_number,
     GamepadBusType bus_type);
 
diff --git a/device/gamepad/gamepad_standard_mappings_linux.cc b/device/gamepad/gamepad_standard_mappings_linux.cc
index 29b8140..538a0ee 100644
--- a/device/gamepad/gamepad_standard_mappings_linux.cc
+++ b/device/gamepad/gamepad_standard_mappings_linux.cc
@@ -18,12 +18,22 @@
 // The hid-sony driver in newer kernels uses an alternate mapping for Sony
 // Playstation 3 and Playstation 4 gamepads than in older kernels. To allow
 // applications to distinguish between the old mapping and the new mapping,
-// hid-sony sets the high bit of the device's version number.
+// hid-sony sets the high bit of the bcdHID value.
 // Dualshock 4 devices are patched in 4.10:
 // https://github.com/torvalds/linux/commit/9131f8cc2b4eaf7c08d402243429e0bfba9aa0d6
 // Dualshock 3 and SIXAXIS devices are patched in 4.12:
 // https://github.com/torvalds/linux/commit/e19a267b9987135c00155a51e683e434b9abb56b
-const uint16_t kDualshockPatchedVersion = 0x8111;
+const uint16_t kDualshockPatchedBcdHidMask = 0x8000;
+
+// Older versions of the Stadia Controller firmware use an alternate mapping
+// function.
+const uint16_t kStadiaControllerOldFirmwareVersion = 0x0001;
+
+enum StadiaGamepadButtons {
+  STADIA_GAMEPAD_BUTTON_EXTRA = BUTTON_INDEX_COUNT,
+  STADIA_GAMEPAD_BUTTON_EXTRA2,
+  STADIA_GAMEPAD_BUTTON_COUNT
+};
 
 void MapperXInputStyleGamepad(const Gamepad& input, Gamepad* mapped) {
   *mapped = input;
@@ -590,12 +600,7 @@
   mapped->axes_length = AXIS_INDEX_COUNT;
 }
 
-void MapperStadiaController(const Gamepad& input, Gamepad* mapped) {
-  enum StadiaGamepadButtons {
-    STADIA_GAMEPAD_BUTTON_EXTRA = BUTTON_INDEX_COUNT,
-    STADIA_GAMEPAD_BUTTON_EXTRA2,
-    STADIA_GAMEPAD_BUTTON_COUNT
-  };
+void MapperStadiaControllerOldFirmware(const Gamepad& input, Gamepad* mapped) {
   *mapped = input;
   mapped->buttons[BUTTON_INDEX_LEFT_TRIGGER] = AxisToButton(input.axes[5]);
   mapped->buttons[BUTTON_INDEX_RIGHT_TRIGGER] = AxisToButton(input.axes[4]);
@@ -615,6 +620,26 @@
   mapped->axes_length = AXIS_INDEX_COUNT;
 }
 
+void MapperStadiaController(const Gamepad& input, Gamepad* mapped) {
+  *mapped = input;
+  mapped->buttons[BUTTON_INDEX_LEFT_TRIGGER] = AxisToButton(input.axes[5]);
+  mapped->buttons[BUTTON_INDEX_RIGHT_TRIGGER] = AxisToButton(input.axes[4]);
+  mapped->buttons[BUTTON_INDEX_BACK_SELECT] = input.buttons[6];
+  mapped->buttons[BUTTON_INDEX_START] = input.buttons[7];
+  mapped->buttons[BUTTON_INDEX_LEFT_THUMBSTICK] = input.buttons[9];
+  mapped->buttons[BUTTON_INDEX_RIGHT_THUMBSTICK] = input.buttons[10];
+  mapped->buttons[BUTTON_INDEX_DPAD_UP] = AxisNegativeAsButton(input.axes[7]);
+  mapped->buttons[BUTTON_INDEX_DPAD_DOWN] = AxisPositiveAsButton(input.axes[7]);
+  mapped->buttons[BUTTON_INDEX_DPAD_LEFT] = AxisNegativeAsButton(input.axes[6]);
+  mapped->buttons[BUTTON_INDEX_DPAD_RIGHT] =
+      AxisPositiveAsButton(input.axes[6]);
+  mapped->buttons[BUTTON_INDEX_META] = input.buttons[8];
+  mapped->buttons[STADIA_GAMEPAD_BUTTON_EXTRA] = input.buttons[11];
+  mapped->buttons[STADIA_GAMEPAD_BUTTON_EXTRA2] = input.buttons[12];
+  mapped->buttons_length = STADIA_GAMEPAD_BUTTON_COUNT;
+  mapped->axes_length = AXIS_INDEX_COUNT;
+}
+
 void MapperXSkills(const Gamepad& input, Gamepad* mapped) {
   enum GamecubeButtons {
     GAMECUBE_BUTTON_LEFT_TRIGGER_CLICK = BUTTON_INDEX_COUNT,
@@ -752,7 +777,7 @@
     // boom PSX+N64 USB Converter
     {GamepadId::kPrototypeVendorProduct0667, MapperBoomN64Psx},
     // Stadia Controller prototype
-    {GamepadId::kPrototypeVendorProduct9401, MapperStadiaController},
+    {GamepadId::kPrototypeVendorProduct9401, MapperStadiaControllerOldFirmware},
 };
 
 }  // namespace
@@ -760,6 +785,7 @@
 GamepadStandardMappingFunction GetGamepadStandardMappingFunction(
     const uint16_t vendor_id,
     const uint16_t product_id,
+    const uint16_t hid_specification_version,
     const uint16_t version_number,
     GamepadBusType bus_type) {
   GamepadId gamepad_id =
@@ -773,13 +799,13 @@
       (find_it == end) ? nullptr : find_it->function;
 
   // The Linux kernel was updated in version 4.10 to better support Dualshock 4
-  // and Dualshock 3/SIXAXIS gamepads. The driver patches the hardware version
-  // when using the new mapping to allow downstream users to distinguish them.
+  // and Dualshock 3/SIXAXIS gamepads. The driver patches the bcdHID value when
+  // using the new mapping to allow downstream users to distinguish them.
   if (mapper == MapperDualshock4 &&
-      version_number == kDualshockPatchedVersion) {
+      (hid_specification_version & kDualshockPatchedBcdHidMask)) {
     mapper = MapperDualshock4New;
   } else if (mapper == MapperDualshock3SixAxis &&
-             version_number == kDualshockPatchedVersion) {
+             (hid_specification_version & kDualshockPatchedBcdHidMask)) {
     mapper = MapperDualshock3SixAxisNew;
   }
 
@@ -800,6 +826,14 @@
     mapper = MapperSwitchComposite;
   }
 
+  // Use an alternate mapping function if the Stadia controller is using an old
+  // firmware version.
+  if (gamepad_id == GamepadId::kGoogleProduct9400 &&
+      mapper == MapperStadiaController &&
+      version_number == kStadiaControllerOldFirmwareVersion) {
+    mapper = MapperStadiaControllerOldFirmware;
+  }
+
   // If no mapper was found, check if the device is a known XInput gamepad.
   if (mapper == nullptr) {
     XInputType xtype =
diff --git a/device/gamepad/gamepad_standard_mappings_mac.mm b/device/gamepad/gamepad_standard_mappings_mac.mm
index 9627143..77f348e 100644
--- a/device/gamepad/gamepad_standard_mappings_mac.mm
+++ b/device/gamepad/gamepad_standard_mappings_mac.mm
@@ -16,6 +16,16 @@
 
 namespace {
 
+// Older versions of the Stadia Controller firmware use an alternate mapping
+// function.
+const uint16_t kStadiaControllerOldFirmwareVersion = 0x0001;
+
+enum StadiaGamepadButtons {
+  STADIA_GAMEPAD_BUTTON_EXTRA = BUTTON_INDEX_COUNT,
+  STADIA_GAMEPAD_BUTTON_EXTRA2,
+  STADIA_GAMEPAD_BUTTON_COUNT
+};
+
 void MapperXbox360Gamepad(const Gamepad& input, Gamepad* mapped) {
   *mapped = input;
   mapped->buttons[BUTTON_INDEX_LEFT_TRIGGER] = AxisToButton(input.axes[2]);
@@ -397,12 +407,7 @@
   mapped->axes_length = AXIS_INDEX_COUNT;
 }
 
-void MapperStadiaController(const Gamepad& input, Gamepad* mapped) {
-  enum StadiaGamepadButtons {
-    STADIA_GAMEPAD_BUTTON_EXTRA = BUTTON_INDEX_COUNT,
-    STADIA_GAMEPAD_BUTTON_EXTRA2,
-    STADIA_GAMEPAD_BUTTON_COUNT
-  };
+void MapperStadiaControllerOldFirmware(const Gamepad& input, Gamepad* mapped) {
   *mapped = input;
   mapped->buttons[BUTTON_INDEX_PRIMARY] = input.buttons[0];
   mapped->buttons[BUTTON_INDEX_SECONDARY] = input.buttons[1];
@@ -426,6 +431,30 @@
   mapped->axes_length = AXIS_INDEX_COUNT;
 }
 
+void MapperStadiaController(const Gamepad& input, Gamepad* mapped) {
+  *mapped = input;
+  mapped->buttons[BUTTON_INDEX_PRIMARY] = input.buttons[0];
+  mapped->buttons[BUTTON_INDEX_SECONDARY] = input.buttons[1];
+  mapped->buttons[BUTTON_INDEX_TERTIARY] = input.buttons[3];
+  mapped->buttons[BUTTON_INDEX_QUATERNARY] = input.buttons[4];
+  mapped->buttons[BUTTON_INDEX_LEFT_SHOULDER] = input.buttons[6];
+  mapped->buttons[BUTTON_INDEX_RIGHT_SHOULDER] = input.buttons[7];
+  mapped->buttons[BUTTON_INDEX_LEFT_TRIGGER] = AxisToButton(input.axes[3]);
+  mapped->buttons[BUTTON_INDEX_RIGHT_TRIGGER] = AxisToButton(input.axes[4]);
+  mapped->buttons[BUTTON_INDEX_BACK_SELECT] = input.buttons[10];
+  mapped->buttons[BUTTON_INDEX_START] = input.buttons[11];
+  mapped->buttons[BUTTON_INDEX_LEFT_THUMBSTICK] = input.buttons[13];
+  mapped->buttons[BUTTON_INDEX_RIGHT_THUMBSTICK] = input.buttons[14];
+  mapped->buttons[BUTTON_INDEX_META] = input.buttons[12];
+  mapped->buttons[STADIA_GAMEPAD_BUTTON_EXTRA] = input.buttons[16];
+  mapped->buttons[STADIA_GAMEPAD_BUTTON_EXTRA2] = input.buttons[17];
+  mapped->axes[AXIS_INDEX_RIGHT_STICK_Y] = input.axes[5];
+  DpadFromAxis(mapped, input.axes[9]);
+
+  mapped->buttons_length = STADIA_GAMEPAD_BUTTON_COUNT;
+  mapped->axes_length = AXIS_INDEX_COUNT;
+}
+
 void MapperXSkills(const Gamepad& input, Gamepad* mapped) {
   enum GamecubeButtons {
     GAMECUBE_BUTTON_LEFT_TRIGGER_CLICK = BUTTON_INDEX_COUNT,
@@ -626,7 +655,7 @@
     // boom PSX+N64 USB Converter
     {GamepadId::kPrototypeVendorProduct0667, MapperBoomN64Psx},
     // Stadia Controller prototype
-    {GamepadId::kPrototypeVendorProduct9401, MapperStadiaController},
+    {GamepadId::kPrototypeVendorProduct9401, MapperStadiaControllerOldFirmware},
 };
 
 }  // namespace
@@ -634,6 +663,7 @@
 GamepadStandardMappingFunction GetGamepadStandardMappingFunction(
     const uint16_t vendor_id,
     const uint16_t product_id,
+    const uint16_t hid_specification_version,
     const uint16_t version_number,
     GamepadBusType bus_type) {
   GamepadId gamepad_id =
@@ -663,6 +693,14 @@
     mapper = MapperSwitchComposite;
   }
 
+  // Use an alternate mapping function if the Stadia controller is using an old
+  // firmware version.
+  if (gamepad_id == GamepadId::kGoogleProduct9400 &&
+      mapper == MapperStadiaController &&
+      version_number == kStadiaControllerOldFirmwareVersion) {
+    mapper = MapperStadiaControllerOldFirmware;
+  }
+
   return mapper;
 }
 
diff --git a/device/gamepad/gamepad_standard_mappings_win.cc b/device/gamepad/gamepad_standard_mappings_win.cc
index df3dcdd..18a0aa6 100644
--- a/device/gamepad/gamepad_standard_mappings_win.cc
+++ b/device/gamepad/gamepad_standard_mappings_win.cc
@@ -16,6 +16,16 @@
 
 namespace {
 
+// Older versions of the Stadia Controller firmware use an alternate mapping
+// function.
+const uint16_t kStadiaControllerOldFirmwareVersion = 0x0001;
+
+enum StadiaGamepadButtons {
+  STADIA_GAMEPAD_BUTTON_EXTRA = BUTTON_INDEX_COUNT,
+  STADIA_GAMEPAD_BUTTON_EXTRA2,
+  STADIA_GAMEPAD_BUTTON_COUNT
+};
+
 void MapperLogitechDInput(const Gamepad& input, Gamepad* mapped) {
   *mapped = input;
   mapped->buttons[BUTTON_INDEX_PRIMARY] = input.buttons[1];
@@ -265,12 +275,7 @@
   mapped->axes_length = AXIS_INDEX_COUNT;
 }
 
-void MapperStadiaController(const Gamepad& input, Gamepad* mapped) {
-  enum StadiaGamepadButtons {
-    STADIA_GAMEPAD_BUTTON_EXTRA = BUTTON_INDEX_COUNT,
-    STADIA_GAMEPAD_BUTTON_EXTRA2,
-    STADIA_GAMEPAD_BUTTON_COUNT
-  };
+void MapperStadiaControllerOldFirmware(const Gamepad& input, Gamepad* mapped) {
   *mapped = input;
   mapped->buttons[BUTTON_INDEX_PRIMARY] = input.buttons[0];
   mapped->buttons[BUTTON_INDEX_SECONDARY] = input.buttons[1];
@@ -294,6 +299,30 @@
   mapped->axes_length = AXIS_INDEX_COUNT;
 }
 
+void MapperStadiaController(const Gamepad& input, Gamepad* mapped) {
+  *mapped = input;
+  mapped->buttons[BUTTON_INDEX_PRIMARY] = input.buttons[0];
+  mapped->buttons[BUTTON_INDEX_SECONDARY] = input.buttons[1];
+  mapped->buttons[BUTTON_INDEX_TERTIARY] = input.buttons[3];
+  mapped->buttons[BUTTON_INDEX_QUATERNARY] = input.buttons[4];
+  mapped->buttons[BUTTON_INDEX_LEFT_SHOULDER] = input.buttons[6];
+  mapped->buttons[BUTTON_INDEX_RIGHT_SHOULDER] = input.buttons[7];
+  mapped->buttons[BUTTON_INDEX_LEFT_TRIGGER] = AxisToButton(input.axes[4]);
+  mapped->buttons[BUTTON_INDEX_RIGHT_TRIGGER] = AxisToButton(input.axes[3]);
+  mapped->buttons[BUTTON_INDEX_BACK_SELECT] = input.buttons[10];
+  mapped->buttons[BUTTON_INDEX_START] = input.buttons[11];
+  mapped->buttons[BUTTON_INDEX_LEFT_THUMBSTICK] = input.buttons[13];
+  mapped->buttons[BUTTON_INDEX_RIGHT_THUMBSTICK] = input.buttons[14];
+  mapped->buttons[BUTTON_INDEX_META] = input.buttons[12];
+  mapped->buttons[STADIA_GAMEPAD_BUTTON_EXTRA] = input.buttons[16];
+  mapped->buttons[STADIA_GAMEPAD_BUTTON_EXTRA2] = input.buttons[17];
+  mapped->axes[AXIS_INDEX_RIGHT_STICK_Y] = input.axes[5];
+  DpadFromAxis(mapped, input.axes[9]);
+
+  mapped->buttons_length = STADIA_GAMEPAD_BUTTON_COUNT;
+  mapped->axes_length = AXIS_INDEX_COUNT;
+}
+
 void MapperXSkills(const Gamepad& input, Gamepad* mapped) {
   enum GamecubeButtons {
     GAMECUBE_BUTTON_LEFT_TRIGGER_CLICK = BUTTON_INDEX_COUNT,
@@ -440,7 +469,7 @@
     // boom PSX+N64 USB Converter
     {GamepadId::kPrototypeVendorProduct0667, MapperBoomN64Psx},
     // Stadia Controller prototype
-    {GamepadId::kPrototypeVendorProduct9401, MapperStadiaController},
+    {GamepadId::kPrototypeVendorProduct9401, MapperStadiaControllerOldFirmware},
 };
 
 }  // namespace
@@ -448,6 +477,7 @@
 GamepadStandardMappingFunction GetGamepadStandardMappingFunction(
     const uint16_t vendor_id,
     const uint16_t product_id,
+    const uint16_t hid_specification_version,
     const uint16_t version_number,
     GamepadBusType bus_type) {
   GamepadId gamepad_id =
@@ -477,6 +507,14 @@
     mapper = MapperSwitchComposite;
   }
 
+  // Use an alternate mapping function if the Stadia controller is using an old
+  // firmware version.
+  if (gamepad_id == GamepadId::kGoogleProduct9400 &&
+      mapper == MapperStadiaController &&
+      version_number == kStadiaControllerOldFirmwareVersion) {
+    mapper = MapperStadiaControllerOldFirmware;
+  }
+
   return mapper;
 }
 
diff --git a/device/gamepad/nintendo_controller.cc b/device/gamepad/nintendo_controller.cc
index 5e1d96a..86a6169 100644
--- a/device/gamepad/nintendo_controller.cc
+++ b/device/gamepad/nintendo_controller.cc
@@ -978,10 +978,12 @@
   if (is_composite_) {
     // In composite mode, we use the same mapping as the Charging Grip.
     return GetGamepadStandardMappingFunction(
-        kVendorNintendo, kProductSwitchChargingGrip, 0, bus_type_);
+        kVendorNintendo, kProductSwitchChargingGrip,
+        /*hid_specification_version=*/0, /*version_number=*/0, bus_type_);
   } else {
     return GetGamepadStandardMappingFunction(
-        device_info_->vendor_id, device_info_->product_id, 0, bus_type_);
+        device_info_->vendor_id, device_info_->product_id,
+        /*hid_specification_version=*/0, /*version_number=*/0, bus_type_);
   }
 }
 
diff --git a/device/gamepad/raw_input_data_fetcher_win.cc b/device/gamepad/raw_input_data_fetcher_win.cc
index 071960c..2132d33d 100644
--- a/device/gamepad/raw_input_data_fetcher_win.cc
+++ b/device/gamepad/raw_input_data_fetcher_win.cc
@@ -211,7 +211,8 @@
         pad.vibration_actuator.not_null = device->SupportsVibration();
 
         state->mapper = GetGamepadStandardMappingFunction(
-            vendor_int, product_int, version_number, GAMEPAD_BUS_UNKNOWN);
+            vendor_int, product_int, /*hid_specification_version=*/0,
+            version_number, GAMEPAD_BUS_UNKNOWN);
         state->axis_mask = 0;
         state->button_mask = 0;
 
diff --git a/extensions/browser/api/bluetooth/bluetooth_private_api.cc b/extensions/browser/api/bluetooth/bluetooth_private_api.cc
index cb7bc59..0b9acda 100644
--- a/extensions/browser/api/bluetooth/bluetooth_private_api.cc
+++ b/extensions/browser/api/bluetooth/bluetooth_private_api.cc
@@ -14,6 +14,7 @@
 #include "base/metrics/histogram_functions.h"
 #include "base/strings/string_piece.h"
 #include "base/strings/string_util.h"
+#include "base/time/time.h"
 #include "components/device_event_log/device_event_log.h"
 #include "device/bluetooth/bluetooth_adapter.h"
 #include "device/bluetooth/bluetooth_adapter_factory.h"
@@ -53,7 +54,17 @@
                                        : details.listener_url.host();
 }
 
-void RecordPairingResult(bool success, bt::Transport transport) {
+void RecordPairingDuration(const std::string& histogram_name,
+                           base::TimeDelta pairing_duration) {
+  base::UmaHistogramCustomTimes(histogram_name, pairing_duration,
+                                base::TimeDelta::FromMilliseconds(1) /* min */,
+                                base::TimeDelta::FromSeconds(30) /* max */,
+                                50 /* buckets */);
+}
+
+void RecordPairingResult(bool success,
+                         bt::Transport transport,
+                         int pairing_duration_ms) {
   std::string transport_histogram_name;
   switch (transport) {
     case bt::Transport::TRANSPORT_CLASSIC:
@@ -74,6 +85,17 @@
   base::UmaHistogramBoolean("Bluetooth.ChromeOS.Pairing.Result", success);
   base::UmaHistogramBoolean(
       "Bluetooth.ChromeOS.Pairing.Result." + transport_histogram_name, success);
+
+  std::string duration_histogram_name_prefix =
+      "Bluetooth.ChromeOS.Pairing.Duration";
+  std::string success_histogram_name = success ? "Success" : "Failure";
+
+  std::string base_histogram_name =
+      duration_histogram_name_prefix + "." + success_histogram_name;
+  RecordPairingDuration(base_histogram_name,
+                        base::TimeDelta::FromMilliseconds(pairing_duration_ms));
+  RecordPairingDuration(base_histogram_name + "." + transport_histogram_name,
+                        base::TimeDelta::FromMilliseconds(pairing_duration_ms));
 }
 
 void RecordPairingTransport(bt::Transport transport) {
@@ -666,7 +688,8 @@
 
 void BluetoothPrivateRecordPairingFunction::DoWork(
     scoped_refptr<device::BluetoothAdapter> adapter) {
-  RecordPairingResult(params_->success, params_->transport);
+  RecordPairingResult(params_->success, params_->transport,
+                      params_->pairing_duration_ms);
   RecordPairingTransport(params_->transport);
 }
 
@@ -684,6 +707,9 @@
 void BluetoothPrivateRecordReconnectionFunction::DoWork(
     scoped_refptr<device::BluetoothAdapter> adapter) {
   base::UmaHistogramBoolean(
+      "Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Result",
+      params_->success);
+  base::UmaHistogramBoolean(
       "Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Result.Settings",
       params_->success);
 }
diff --git a/extensions/common/api/_permission_features.json b/extensions/common/api/_permission_features.json
index 2b25d9b..381a00a 100644
--- a/extensions/common/api/_permission_features.json
+++ b/extensions/common/api/_permission_features.json
@@ -205,7 +205,7 @@
     "min_manifest_version": 2
   },
   "declarativeNetRequestFeedback": {
-    "channel": "beta",
+    "channel": "trunk",
     "extension_types": ["extension"],
     "min_manifest_version": 2
   },
diff --git a/extensions/common/api/bluetooth_private.idl b/extensions/common/api/bluetooth_private.idl
index fa78efb..55840a3 100644
--- a/extensions/common/api/bluetooth_private.idl
+++ b/extensions/common/api/bluetooth_private.idl
@@ -153,7 +153,8 @@
     static void pair(DOMString deviceAddress, optional VoidCallback callback);
 
     // Record that a pairing attempt finished. Do not record cancellations.
-    static void recordPairing(boolean success, bluetooth.Transport transport);
+    static void recordPairing(boolean success, bluetooth.Transport transport,
+                              long pairingDurationMs);
 
     // Record that a user-initiated reconnection attempt to an already paired
     // device finished. Do not record cancellations.
diff --git a/fuchsia/http/http_service_unittest.cc b/fuchsia/http/http_service_unittest.cc
index fcea6be4..157723e 100644
--- a/fuchsia/http/http_service_unittest.cc
+++ b/fuchsia/http/http_service_unittest.cc
@@ -387,17 +387,18 @@
     url_loaders[i]->Start(
         std::move(request),
         [&requests_done, &run_loop](oldhttp::URLResponse response) {
-          EXPECT_EQ(response.status_code, 200u);
-          if (response.body->is_buffer()) {
-            CheckResponseBuffer(response, "hello");
-          } else {
-            CheckResponseStream(response, "hello");
-          }
           requests_done++;
           if (requests_done == 100) {
             // Last request signals the run_loop to exit.
             run_loop.Quit();
           }
+
+          ASSERT_EQ(response.status_code, 200u);
+          if (response.body->is_buffer()) {
+            CheckResponseBuffer(response, "hello");
+          } else {
+            CheckResponseStream(response, "hello");
+          }
         });
   }
   run_loop.Run();
diff --git a/gpu/vulkan/generate_bindings.py b/gpu/vulkan/generate_bindings.py
index 1a8c9ec..8706466 100755
--- a/gpu/vulkan/generate_bindings.py
+++ b/gpu/vulkan/generate_bindings.py
@@ -453,8 +453,10 @@
                                        functions, allow_missing=False):
   template = Template("""  ${name}Fn = reinterpret_cast<PFN_${name}>(
     $get_proc_addr($parent, "$name"));
-  if (!${name}Fn${check_swiftshader})
+  if (!${name}Fn${check_swiftshader}) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: " << "${name}";
     return false;
+  }
 
 """)
   if allow_missing:
diff --git a/gpu/vulkan/vulkan_function_pointers.cc b/gpu/vulkan/vulkan_function_pointers.cc
index 65561a1..ddd920e8 100644
--- a/gpu/vulkan/vulkan_function_pointers.cc
+++ b/gpu/vulkan/vulkan_function_pointers.cc
@@ -39,22 +39,31 @@
   // proceed even if we fail to get vkEnumerateInstanceVersion pointer.
   vkCreateInstanceFn = reinterpret_cast<PFN_vkCreateInstance>(
       vkGetInstanceProcAddrFn(nullptr, "vkCreateInstance"));
-  if (!vkCreateInstanceFn)
+  if (!vkCreateInstanceFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateInstance";
     return false;
+  }
 
   vkEnumerateInstanceExtensionPropertiesFn =
       reinterpret_cast<PFN_vkEnumerateInstanceExtensionProperties>(
           vkGetInstanceProcAddrFn(nullptr,
                                   "vkEnumerateInstanceExtensionProperties"));
-  if (!vkEnumerateInstanceExtensionPropertiesFn)
+  if (!vkEnumerateInstanceExtensionPropertiesFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkEnumerateInstanceExtensionProperties";
     return false;
+  }
 
   vkEnumerateInstanceLayerPropertiesFn =
       reinterpret_cast<PFN_vkEnumerateInstanceLayerProperties>(
           vkGetInstanceProcAddrFn(nullptr,
                                   "vkEnumerateInstanceLayerProperties"));
-  if (!vkEnumerateInstanceLayerPropertiesFn)
+  if (!vkEnumerateInstanceLayerPropertiesFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkEnumerateInstanceLayerProperties";
     return false;
+  }
 
   return true;
 }
@@ -63,19 +72,28 @@
     VkInstance vk_instance) {
   vkDestroyInstanceFn = reinterpret_cast<PFN_vkDestroyInstance>(
       vkGetInstanceProcAddrFn(vk_instance, "vkDestroyInstance"));
-  if (!vkDestroyInstanceFn)
+  if (!vkDestroyInstanceFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyInstance";
     return false;
+  }
 
   vkEnumeratePhysicalDevicesFn =
       reinterpret_cast<PFN_vkEnumeratePhysicalDevices>(
           vkGetInstanceProcAddrFn(vk_instance, "vkEnumeratePhysicalDevices"));
-  if (!vkEnumeratePhysicalDevicesFn)
+  if (!vkEnumeratePhysicalDevicesFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkEnumeratePhysicalDevices";
     return false;
+  }
 
   vkGetDeviceProcAddrFn = reinterpret_cast<PFN_vkGetDeviceProcAddr>(
       vkGetInstanceProcAddrFn(vk_instance, "vkGetDeviceProcAddr"));
-  if (!vkGetDeviceProcAddrFn)
+  if (!vkGetDeviceProcAddrFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetDeviceProcAddr";
     return false;
+  }
 
   return true;
 }
@@ -84,42 +102,60 @@
     VkInstance vk_instance) {
   vkCreateDeviceFn = reinterpret_cast<PFN_vkCreateDevice>(
       vkGetInstanceProcAddrFn(vk_instance, "vkCreateDevice"));
-  if (!vkCreateDeviceFn)
+  if (!vkCreateDeviceFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateDevice";
     return false;
+  }
 
   vkEnumerateDeviceLayerPropertiesFn =
       reinterpret_cast<PFN_vkEnumerateDeviceLayerProperties>(
           vkGetInstanceProcAddrFn(vk_instance,
                                   "vkEnumerateDeviceLayerProperties"));
-  if (!vkEnumerateDeviceLayerPropertiesFn)
+  if (!vkEnumerateDeviceLayerPropertiesFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkEnumerateDeviceLayerProperties";
     return false;
+  }
 
   vkGetPhysicalDeviceFeaturesFn =
       reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures>(
           vkGetInstanceProcAddrFn(vk_instance, "vkGetPhysicalDeviceFeatures"));
-  if (!vkGetPhysicalDeviceFeaturesFn)
+  if (!vkGetPhysicalDeviceFeaturesFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetPhysicalDeviceFeatures";
     return false;
+  }
 
   vkGetPhysicalDeviceMemoryPropertiesFn =
       reinterpret_cast<PFN_vkGetPhysicalDeviceMemoryProperties>(
           vkGetInstanceProcAddrFn(vk_instance,
                                   "vkGetPhysicalDeviceMemoryProperties"));
-  if (!vkGetPhysicalDeviceMemoryPropertiesFn)
+  if (!vkGetPhysicalDeviceMemoryPropertiesFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetPhysicalDeviceMemoryProperties";
     return false;
+  }
 
   vkGetPhysicalDeviceQueueFamilyPropertiesFn =
       reinterpret_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties>(
           vkGetInstanceProcAddrFn(vk_instance,
                                   "vkGetPhysicalDeviceQueueFamilyProperties"));
-  if (!vkGetPhysicalDeviceQueueFamilyPropertiesFn)
+  if (!vkGetPhysicalDeviceQueueFamilyPropertiesFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetPhysicalDeviceQueueFamilyProperties";
     return false;
+  }
 
   vkGetPhysicalDevicePropertiesFn =
       reinterpret_cast<PFN_vkGetPhysicalDeviceProperties>(
           vkGetInstanceProcAddrFn(vk_instance,
                                   "vkGetPhysicalDeviceProperties"));
-  if (!vkGetPhysicalDevicePropertiesFn)
+  if (!vkGetPhysicalDevicePropertiesFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetPhysicalDeviceProperties";
     return false;
+  }
 
   return true;
 }
@@ -130,222 +166,351 @@
   // Device functions
   vkAllocateCommandBuffersFn = reinterpret_cast<PFN_vkAllocateCommandBuffers>(
       vkGetDeviceProcAddrFn(vk_device, "vkAllocateCommandBuffers"));
-  if (!vkAllocateCommandBuffersFn)
+  if (!vkAllocateCommandBuffersFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkAllocateCommandBuffers";
     return false;
+  }
 
   vkAllocateDescriptorSetsFn = reinterpret_cast<PFN_vkAllocateDescriptorSets>(
       vkGetDeviceProcAddrFn(vk_device, "vkAllocateDescriptorSets"));
-  if (!vkAllocateDescriptorSetsFn)
+  if (!vkAllocateDescriptorSetsFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkAllocateDescriptorSets";
     return false;
+  }
 
   vkAllocateMemoryFn = reinterpret_cast<PFN_vkAllocateMemory>(
       vkGetDeviceProcAddrFn(vk_device, "vkAllocateMemory"));
-  if (!vkAllocateMemoryFn)
+  if (!vkAllocateMemoryFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkAllocateMemory";
     return false;
+  }
 
   vkBindBufferMemoryFn = reinterpret_cast<PFN_vkBindBufferMemory>(
       vkGetDeviceProcAddrFn(vk_device, "vkBindBufferMemory"));
-  if (!vkBindBufferMemoryFn)
+  if (!vkBindBufferMemoryFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkBindBufferMemory";
     return false;
+  }
 
   vkBindImageMemoryFn = reinterpret_cast<PFN_vkBindImageMemory>(
       vkGetDeviceProcAddrFn(vk_device, "vkBindImageMemory"));
-  if (!vkBindImageMemoryFn)
+  if (!vkBindImageMemoryFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkBindImageMemory";
     return false;
+  }
 
   vkCreateCommandPoolFn = reinterpret_cast<PFN_vkCreateCommandPool>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateCommandPool"));
-  if (!vkCreateCommandPoolFn)
+  if (!vkCreateCommandPoolFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateCommandPool";
     return false;
+  }
 
   vkCreateBufferFn = reinterpret_cast<PFN_vkCreateBuffer>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateBuffer"));
-  if (!vkCreateBufferFn)
+  if (!vkCreateBufferFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateBuffer";
     return false;
+  }
 
   vkCreateDescriptorPoolFn = reinterpret_cast<PFN_vkCreateDescriptorPool>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateDescriptorPool"));
-  if (!vkCreateDescriptorPoolFn)
+  if (!vkCreateDescriptorPoolFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateDescriptorPool";
     return false;
+  }
 
   vkCreateDescriptorSetLayoutFn =
       reinterpret_cast<PFN_vkCreateDescriptorSetLayout>(
           vkGetDeviceProcAddrFn(vk_device, "vkCreateDescriptorSetLayout"));
-  if (!vkCreateDescriptorSetLayoutFn)
+  if (!vkCreateDescriptorSetLayoutFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateDescriptorSetLayout";
     return false;
+  }
 
   vkCreateFenceFn = reinterpret_cast<PFN_vkCreateFence>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateFence"));
-  if (!vkCreateFenceFn)
+  if (!vkCreateFenceFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateFence";
     return false;
+  }
 
   vkCreateFramebufferFn = reinterpret_cast<PFN_vkCreateFramebuffer>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateFramebuffer"));
-  if (!vkCreateFramebufferFn)
+  if (!vkCreateFramebufferFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateFramebuffer";
     return false;
+  }
 
   vkCreateImageFn = reinterpret_cast<PFN_vkCreateImage>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateImage"));
-  if (!vkCreateImageFn)
+  if (!vkCreateImageFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateImage";
     return false;
+  }
 
   vkCreateImageViewFn = reinterpret_cast<PFN_vkCreateImageView>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateImageView"));
-  if (!vkCreateImageViewFn)
+  if (!vkCreateImageViewFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateImageView";
     return false;
+  }
 
   vkCreateRenderPassFn = reinterpret_cast<PFN_vkCreateRenderPass>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateRenderPass"));
-  if (!vkCreateRenderPassFn)
+  if (!vkCreateRenderPassFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateRenderPass";
     return false;
+  }
 
   vkCreateSamplerFn = reinterpret_cast<PFN_vkCreateSampler>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateSampler"));
-  if (!vkCreateSamplerFn)
+  if (!vkCreateSamplerFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateSampler";
     return false;
+  }
 
   vkCreateSemaphoreFn = reinterpret_cast<PFN_vkCreateSemaphore>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateSemaphore"));
-  if (!vkCreateSemaphoreFn)
+  if (!vkCreateSemaphoreFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateSemaphore";
     return false;
+  }
 
   vkCreateShaderModuleFn = reinterpret_cast<PFN_vkCreateShaderModule>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateShaderModule"));
-  if (!vkCreateShaderModuleFn)
+  if (!vkCreateShaderModuleFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateShaderModule";
     return false;
+  }
 
   vkDestroyBufferFn = reinterpret_cast<PFN_vkDestroyBuffer>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroyBuffer"));
-  if (!vkDestroyBufferFn)
+  if (!vkDestroyBufferFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyBuffer";
     return false;
+  }
 
   vkDestroyCommandPoolFn = reinterpret_cast<PFN_vkDestroyCommandPool>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroyCommandPool"));
-  if (!vkDestroyCommandPoolFn)
+  if (!vkDestroyCommandPoolFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyCommandPool";
     return false;
+  }
 
   vkDestroyDescriptorPoolFn = reinterpret_cast<PFN_vkDestroyDescriptorPool>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroyDescriptorPool"));
-  if (!vkDestroyDescriptorPoolFn)
+  if (!vkDestroyDescriptorPoolFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyDescriptorPool";
     return false;
+  }
 
   vkDestroyDescriptorSetLayoutFn =
       reinterpret_cast<PFN_vkDestroyDescriptorSetLayout>(
           vkGetDeviceProcAddrFn(vk_device, "vkDestroyDescriptorSetLayout"));
-  if (!vkDestroyDescriptorSetLayoutFn)
+  if (!vkDestroyDescriptorSetLayoutFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyDescriptorSetLayout";
     return false;
+  }
 
   vkDestroyDeviceFn = reinterpret_cast<PFN_vkDestroyDevice>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroyDevice"));
-  if (!vkDestroyDeviceFn)
+  if (!vkDestroyDeviceFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyDevice";
     return false;
+  }
 
   vkDestroyFramebufferFn = reinterpret_cast<PFN_vkDestroyFramebuffer>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroyFramebuffer"));
-  if (!vkDestroyFramebufferFn)
+  if (!vkDestroyFramebufferFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyFramebuffer";
     return false;
+  }
 
   vkDestroyFenceFn = reinterpret_cast<PFN_vkDestroyFence>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroyFence"));
-  if (!vkDestroyFenceFn)
+  if (!vkDestroyFenceFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyFence";
     return false;
+  }
 
   vkDestroyImageFn = reinterpret_cast<PFN_vkDestroyImage>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroyImage"));
-  if (!vkDestroyImageFn)
+  if (!vkDestroyImageFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyImage";
     return false;
+  }
 
   vkDestroyImageViewFn = reinterpret_cast<PFN_vkDestroyImageView>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroyImageView"));
-  if (!vkDestroyImageViewFn)
+  if (!vkDestroyImageViewFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyImageView";
     return false;
+  }
 
   vkDestroyRenderPassFn = reinterpret_cast<PFN_vkDestroyRenderPass>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroyRenderPass"));
-  if (!vkDestroyRenderPassFn)
+  if (!vkDestroyRenderPassFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyRenderPass";
     return false;
+  }
 
   vkDestroySamplerFn = reinterpret_cast<PFN_vkDestroySampler>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroySampler"));
-  if (!vkDestroySamplerFn)
+  if (!vkDestroySamplerFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroySampler";
     return false;
+  }
 
   vkDestroySemaphoreFn = reinterpret_cast<PFN_vkDestroySemaphore>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroySemaphore"));
-  if (!vkDestroySemaphoreFn)
+  if (!vkDestroySemaphoreFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroySemaphore";
     return false;
+  }
 
   vkDestroyShaderModuleFn = reinterpret_cast<PFN_vkDestroyShaderModule>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroyShaderModule"));
-  if (!vkDestroyShaderModuleFn)
+  if (!vkDestroyShaderModuleFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyShaderModule";
     return false;
+  }
 
   vkDeviceWaitIdleFn = reinterpret_cast<PFN_vkDeviceWaitIdle>(
       vkGetDeviceProcAddrFn(vk_device, "vkDeviceWaitIdle"));
-  if (!vkDeviceWaitIdleFn)
+  if (!vkDeviceWaitIdleFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDeviceWaitIdle";
     return false;
+  }
 
   vkFreeCommandBuffersFn = reinterpret_cast<PFN_vkFreeCommandBuffers>(
       vkGetDeviceProcAddrFn(vk_device, "vkFreeCommandBuffers"));
-  if (!vkFreeCommandBuffersFn)
+  if (!vkFreeCommandBuffersFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkFreeCommandBuffers";
     return false;
+  }
 
   vkFreeDescriptorSetsFn = reinterpret_cast<PFN_vkFreeDescriptorSets>(
       vkGetDeviceProcAddrFn(vk_device, "vkFreeDescriptorSets"));
-  if (!vkFreeDescriptorSetsFn)
+  if (!vkFreeDescriptorSetsFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkFreeDescriptorSets";
     return false;
+  }
 
   vkFreeMemoryFn = reinterpret_cast<PFN_vkFreeMemory>(
       vkGetDeviceProcAddrFn(vk_device, "vkFreeMemory"));
-  if (!vkFreeMemoryFn)
+  if (!vkFreeMemoryFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkFreeMemory";
     return false;
+  }
 
   vkGetBufferMemoryRequirementsFn =
       reinterpret_cast<PFN_vkGetBufferMemoryRequirements>(
           vkGetDeviceProcAddrFn(vk_device, "vkGetBufferMemoryRequirements"));
-  if (!vkGetBufferMemoryRequirementsFn)
+  if (!vkGetBufferMemoryRequirementsFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetBufferMemoryRequirements";
     return false;
+  }
 
   vkGetDeviceQueueFn = reinterpret_cast<PFN_vkGetDeviceQueue>(
       vkGetDeviceProcAddrFn(vk_device, "vkGetDeviceQueue"));
-  if (!vkGetDeviceQueueFn)
+  if (!vkGetDeviceQueueFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetDeviceQueue";
     return false;
+  }
 
   vkGetFenceStatusFn = reinterpret_cast<PFN_vkGetFenceStatus>(
       vkGetDeviceProcAddrFn(vk_device, "vkGetFenceStatus"));
-  if (!vkGetFenceStatusFn)
+  if (!vkGetFenceStatusFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetFenceStatus";
     return false;
+  }
 
   vkGetImageMemoryRequirementsFn =
       reinterpret_cast<PFN_vkGetImageMemoryRequirements>(
           vkGetDeviceProcAddrFn(vk_device, "vkGetImageMemoryRequirements"));
-  if (!vkGetImageMemoryRequirementsFn)
+  if (!vkGetImageMemoryRequirementsFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetImageMemoryRequirements";
     return false;
+  }
 
   vkMapMemoryFn = reinterpret_cast<PFN_vkMapMemory>(
       vkGetDeviceProcAddrFn(vk_device, "vkMapMemory"));
-  if (!vkMapMemoryFn)
+  if (!vkMapMemoryFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkMapMemory";
     return false;
+  }
 
   vkResetFencesFn = reinterpret_cast<PFN_vkResetFences>(
       vkGetDeviceProcAddrFn(vk_device, "vkResetFences"));
-  if (!vkResetFencesFn)
+  if (!vkResetFencesFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkResetFences";
     return false;
+  }
 
   vkUnmapMemoryFn = reinterpret_cast<PFN_vkUnmapMemory>(
       vkGetDeviceProcAddrFn(vk_device, "vkUnmapMemory"));
-  if (!vkUnmapMemoryFn)
+  if (!vkUnmapMemoryFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkUnmapMemory";
     return false;
+  }
 
   vkUpdateDescriptorSetsFn = reinterpret_cast<PFN_vkUpdateDescriptorSets>(
       vkGetDeviceProcAddrFn(vk_device, "vkUpdateDescriptorSets"));
-  if (!vkUpdateDescriptorSetsFn)
+  if (!vkUpdateDescriptorSetsFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkUpdateDescriptorSets";
     return false;
+  }
 
   vkWaitForFencesFn = reinterpret_cast<PFN_vkWaitForFences>(
       vkGetDeviceProcAddrFn(vk_device, "vkWaitForFences"));
-  if (!vkWaitForFencesFn)
+  if (!vkWaitForFencesFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkWaitForFences";
     return false;
+  }
 
 #if defined(OS_ANDROID)
 
@@ -353,8 +518,11 @@
       reinterpret_cast<PFN_vkGetAndroidHardwareBufferPropertiesANDROID>(
           vkGetDeviceProcAddrFn(vk_device,
                                 "vkGetAndroidHardwareBufferPropertiesANDROID"));
-  if (!vkGetAndroidHardwareBufferPropertiesANDROIDFn)
+  if (!vkGetAndroidHardwareBufferPropertiesANDROIDFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetAndroidHardwareBufferPropertiesANDROID";
     return false;
+  }
 
 #endif
 
@@ -362,13 +530,19 @@
 
   vkGetSemaphoreFdKHRFn = reinterpret_cast<PFN_vkGetSemaphoreFdKHR>(
       vkGetDeviceProcAddrFn(vk_device, "vkGetSemaphoreFdKHR"));
-  if (!vkGetSemaphoreFdKHRFn && !using_swiftshader)
+  if (!vkGetSemaphoreFdKHRFn && !using_swiftshader) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetSemaphoreFdKHR";
     return false;
+  }
 
   vkImportSemaphoreFdKHRFn = reinterpret_cast<PFN_vkImportSemaphoreFdKHR>(
       vkGetDeviceProcAddrFn(vk_device, "vkImportSemaphoreFdKHR"));
-  if (!vkImportSemaphoreFdKHRFn && !using_swiftshader)
+  if (!vkImportSemaphoreFdKHRFn && !using_swiftshader) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkImportSemaphoreFdKHR";
     return false;
+  }
 
 #endif
 
@@ -376,8 +550,11 @@
 
   vkGetMemoryFdKHRFn = reinterpret_cast<PFN_vkGetMemoryFdKHR>(
       vkGetDeviceProcAddrFn(vk_device, "vkGetMemoryFdKHR"));
-  if (!vkGetMemoryFdKHRFn && !using_swiftshader)
+  if (!vkGetMemoryFdKHRFn && !using_swiftshader) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetMemoryFdKHR";
     return false;
+  }
 
 #endif
 
@@ -387,100 +564,151 @@
       reinterpret_cast<PFN_vkImportSemaphoreZirconHandleFUCHSIA>(
           vkGetDeviceProcAddrFn(vk_device,
                                 "vkImportSemaphoreZirconHandleFUCHSIA"));
-  if (!vkImportSemaphoreZirconHandleFUCHSIAFn)
+  if (!vkImportSemaphoreZirconHandleFUCHSIAFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkImportSemaphoreZirconHandleFUCHSIA";
     return false;
+  }
 
   vkGetSemaphoreZirconHandleFUCHSIAFn =
       reinterpret_cast<PFN_vkGetSemaphoreZirconHandleFUCHSIA>(
           vkGetDeviceProcAddrFn(vk_device,
                                 "vkGetSemaphoreZirconHandleFUCHSIA"));
-  if (!vkGetSemaphoreZirconHandleFUCHSIAFn)
+  if (!vkGetSemaphoreZirconHandleFUCHSIAFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetSemaphoreZirconHandleFUCHSIA";
     return false;
+  }
 
   vkCreateBufferCollectionFUCHSIAFn =
       reinterpret_cast<PFN_vkCreateBufferCollectionFUCHSIA>(
           vkGetDeviceProcAddrFn(vk_device, "vkCreateBufferCollectionFUCHSIA"));
-  if (!vkCreateBufferCollectionFUCHSIAFn)
+  if (!vkCreateBufferCollectionFUCHSIAFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateBufferCollectionFUCHSIA";
     return false;
+  }
 
   vkSetBufferCollectionConstraintsFUCHSIAFn =
       reinterpret_cast<PFN_vkSetBufferCollectionConstraintsFUCHSIA>(
           vkGetDeviceProcAddrFn(vk_device,
                                 "vkSetBufferCollectionConstraintsFUCHSIA"));
-  if (!vkSetBufferCollectionConstraintsFUCHSIAFn)
+  if (!vkSetBufferCollectionConstraintsFUCHSIAFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkSetBufferCollectionConstraintsFUCHSIA";
     return false;
+  }
 
   vkGetBufferCollectionPropertiesFUCHSIAFn =
       reinterpret_cast<PFN_vkGetBufferCollectionPropertiesFUCHSIA>(
           vkGetDeviceProcAddrFn(vk_device,
                                 "vkGetBufferCollectionPropertiesFUCHSIA"));
-  if (!vkGetBufferCollectionPropertiesFUCHSIAFn)
+  if (!vkGetBufferCollectionPropertiesFUCHSIAFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetBufferCollectionPropertiesFUCHSIA";
     return false;
+  }
 
   vkDestroyBufferCollectionFUCHSIAFn =
       reinterpret_cast<PFN_vkDestroyBufferCollectionFUCHSIA>(
           vkGetDeviceProcAddrFn(vk_device, "vkDestroyBufferCollectionFUCHSIA"));
-  if (!vkDestroyBufferCollectionFUCHSIAFn)
+  if (!vkDestroyBufferCollectionFUCHSIAFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroyBufferCollectionFUCHSIA";
     return false;
+  }
 
 #endif
 
   // Queue functions
   vkQueueSubmitFn = reinterpret_cast<PFN_vkQueueSubmit>(
       vkGetDeviceProcAddrFn(vk_device, "vkQueueSubmit"));
-  if (!vkQueueSubmitFn)
+  if (!vkQueueSubmitFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkQueueSubmit";
     return false;
+  }
 
   vkQueueWaitIdleFn = reinterpret_cast<PFN_vkQueueWaitIdle>(
       vkGetDeviceProcAddrFn(vk_device, "vkQueueWaitIdle"));
-  if (!vkQueueWaitIdleFn)
+  if (!vkQueueWaitIdleFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkQueueWaitIdle";
     return false;
+  }
 
   // Command Buffer functions
   vkBeginCommandBufferFn = reinterpret_cast<PFN_vkBeginCommandBuffer>(
       vkGetDeviceProcAddrFn(vk_device, "vkBeginCommandBuffer"));
-  if (!vkBeginCommandBufferFn)
+  if (!vkBeginCommandBufferFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkBeginCommandBuffer";
     return false;
+  }
 
   vkCmdBeginRenderPassFn = reinterpret_cast<PFN_vkCmdBeginRenderPass>(
       vkGetDeviceProcAddrFn(vk_device, "vkCmdBeginRenderPass"));
-  if (!vkCmdBeginRenderPassFn)
+  if (!vkCmdBeginRenderPassFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCmdBeginRenderPass";
     return false;
+  }
 
   vkCmdCopyBufferToImageFn = reinterpret_cast<PFN_vkCmdCopyBufferToImage>(
       vkGetDeviceProcAddrFn(vk_device, "vkCmdCopyBufferToImage"));
-  if (!vkCmdCopyBufferToImageFn)
+  if (!vkCmdCopyBufferToImageFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCmdCopyBufferToImage";
     return false;
+  }
 
   vkCmdEndRenderPassFn = reinterpret_cast<PFN_vkCmdEndRenderPass>(
       vkGetDeviceProcAddrFn(vk_device, "vkCmdEndRenderPass"));
-  if (!vkCmdEndRenderPassFn)
+  if (!vkCmdEndRenderPassFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCmdEndRenderPass";
     return false;
+  }
 
   vkCmdExecuteCommandsFn = reinterpret_cast<PFN_vkCmdExecuteCommands>(
       vkGetDeviceProcAddrFn(vk_device, "vkCmdExecuteCommands"));
-  if (!vkCmdExecuteCommandsFn)
+  if (!vkCmdExecuteCommandsFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCmdExecuteCommands";
     return false;
+  }
 
   vkCmdNextSubpassFn = reinterpret_cast<PFN_vkCmdNextSubpass>(
       vkGetDeviceProcAddrFn(vk_device, "vkCmdNextSubpass"));
-  if (!vkCmdNextSubpassFn)
+  if (!vkCmdNextSubpassFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCmdNextSubpass";
     return false;
+  }
 
   vkCmdPipelineBarrierFn = reinterpret_cast<PFN_vkCmdPipelineBarrier>(
       vkGetDeviceProcAddrFn(vk_device, "vkCmdPipelineBarrier"));
-  if (!vkCmdPipelineBarrierFn)
+  if (!vkCmdPipelineBarrierFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCmdPipelineBarrier";
     return false;
+  }
 
   vkEndCommandBufferFn = reinterpret_cast<PFN_vkEndCommandBuffer>(
       vkGetDeviceProcAddrFn(vk_device, "vkEndCommandBuffer"));
-  if (!vkEndCommandBufferFn)
+  if (!vkEndCommandBufferFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkEndCommandBuffer";
     return false;
+  }
 
   vkResetCommandBufferFn = reinterpret_cast<PFN_vkResetCommandBuffer>(
       vkGetDeviceProcAddrFn(vk_device, "vkResetCommandBuffer"));
-  if (!vkResetCommandBufferFn)
+  if (!vkResetCommandBufferFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkResetCommandBuffer";
     return false;
+  }
 
   return true;
 }
@@ -488,28 +716,43 @@
 bool VulkanFunctionPointers::BindSwapchainFunctionPointers(VkDevice vk_device) {
   vkAcquireNextImageKHRFn = reinterpret_cast<PFN_vkAcquireNextImageKHR>(
       vkGetDeviceProcAddrFn(vk_device, "vkAcquireNextImageKHR"));
-  if (!vkAcquireNextImageKHRFn)
+  if (!vkAcquireNextImageKHRFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkAcquireNextImageKHR";
     return false;
+  }
 
   vkCreateSwapchainKHRFn = reinterpret_cast<PFN_vkCreateSwapchainKHR>(
       vkGetDeviceProcAddrFn(vk_device, "vkCreateSwapchainKHR"));
-  if (!vkCreateSwapchainKHRFn)
+  if (!vkCreateSwapchainKHRFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkCreateSwapchainKHR";
     return false;
+  }
 
   vkDestroySwapchainKHRFn = reinterpret_cast<PFN_vkDestroySwapchainKHR>(
       vkGetDeviceProcAddrFn(vk_device, "vkDestroySwapchainKHR"));
-  if (!vkDestroySwapchainKHRFn)
+  if (!vkDestroySwapchainKHRFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkDestroySwapchainKHR";
     return false;
+  }
 
   vkGetSwapchainImagesKHRFn = reinterpret_cast<PFN_vkGetSwapchainImagesKHR>(
       vkGetDeviceProcAddrFn(vk_device, "vkGetSwapchainImagesKHR"));
-  if (!vkGetSwapchainImagesKHRFn)
+  if (!vkGetSwapchainImagesKHRFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkGetSwapchainImagesKHR";
     return false;
+  }
 
   vkQueuePresentKHRFn = reinterpret_cast<PFN_vkQueuePresentKHR>(
       vkGetDeviceProcAddrFn(vk_device, "vkQueuePresentKHR"));
-  if (!vkQueuePresentKHRFn)
+  if (!vkQueuePresentKHRFn) {
+    DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                  << "vkQueuePresentKHR";
     return false;
+  }
 
   return true;
 }
diff --git a/infra/config/cr-buildbucket.cfg b/infra/config/cr-buildbucket.cfg
index 5573153ab..9c958ba 100644
--- a/infra/config/cr-buildbucket.cfg
+++ b/infra/config/cr-buildbucket.cfg
@@ -1092,7 +1092,6 @@
       name: "android-code-coverage"
       mixins: "code-coverage"
       mixins: "linux"
-      dimensions: "os:Ubuntu-14.04"
       dimensions: "cores:32"
     }
 
diff --git a/infra/config/luci-milo.cfg b/infra/config/luci-milo.cfg
index a921c2f6..030aa0c 100644
--- a/infra/config/luci-milo.cfg
+++ b/infra/config/luci-milo.cfg
@@ -2972,11 +2972,11 @@
     short_name: "dbg"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/Mac Deterministic"
+    name: "buildbucket/luci.chromium.ci/Mac deterministic"
     category: "week2d|mac|det"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/Mac Deterministic (dbg)"
+    name: "buildbucket/luci.chromium.ci/Mac deterministic (dbg)"
     category: "week2d|mac|det"
     short_name: "dbg"
   }
@@ -4179,9 +4179,6 @@
     name: "buildbucket/luci.chromium.try/linux-gcc-rel"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/linux-goma-rbe-prod-rel"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/linux-goma-rbe-staging-rel"
   }
   builders {
diff --git a/ios/chrome/app/application_delegate/memory_warning_helper_unittest.mm b/ios/chrome/app/application_delegate/memory_warning_helper_unittest.mm
index 534cf76..c41d597 100644
--- a/ios/chrome/app/application_delegate/memory_warning_helper_unittest.mm
+++ b/ios/chrome/app/application_delegate/memory_warning_helper_unittest.mm
@@ -6,8 +6,8 @@
 
 #include "base/bind.h"
 #include "base/memory/memory_pressure_listener.h"
+#include "base/message_loop/message_loop.h"
 #include "base/run_loop.h"
-#include "base/test/scoped_task_environment.h"
 #include "base/threading/thread.h"
 #import "ios/chrome/browser/metrics/previous_session_info.h"
 #include "testing/platform_test.h"
@@ -52,7 +52,7 @@
   void RunMessageLoop() { run_loop_.Run(); }
 
  private:
-  base::test::ScopedTaskEnvironment scoped_task_environment_;
+  base::MessageLoop message_loop_;
   base::RunLoop run_loop_;
   base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level_;
   std::unique_ptr<base::MemoryPressureListener> memory_pressure_listener_;
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index c607cfa..74f60b5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">اختيار مجلد</translation>
 <translation id="1265739287306757398">تعرَّف على الطريقة</translation>
 <translation id="1272079795634619415">إيقاف</translation>
+<translation id="1283524564873030414">آخر 24 ساعة</translation>
 <translation id="1323735185997015385">حذف</translation>
 <translation id="132683371494960526">انقر مرّتين لتغيير المجلد الرئيسي.</translation>
 <translation id="1340643665687018190">إغلاق القائمة</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">الإعدادات المتقدّمة</translation>
 <translation id="1989112275319619282">تصفّح</translation>
 <translation id="2015722694326466240">للاطلاع على كلمات المرور، يجب عليك أولاً تعيين رمز مرور على جهازك.</translation>
+<translation id="2073572773299281212">نشط قبل <ph name="DAYS" /> من الأيام</translation>
 <translation id="2074131957428911366">يمكنك دائمًا اختيار ما تريد مزامنته في <ph name="BEGIN_LINK" />الإعدادات<ph name="END_LINK" />.</translation>
 <translation id="2079545284768500474">تراجع</translation>
 <translation id="209018056901015185">طلب موقع سطح المكتب</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">فتح الكل</translation>
 <translation id="2570206273416014374">إرسال بعض ملفات تعريف الارتباط وعمليات البحث من شريط العناوين ومربّع البحث إلى محرِّك البحث التلقائي</translation>
 <translation id="2572712655377361602">حظرت سياسة الجهاز الدخول إلى صورك</translation>
+<translation id="2578571896248130439">إرسال صفحة الويب</translation>
 <translation id="2584132361465095047">إضافة حساب...</translation>
 <translation id="2625189173221582860">تم نسخ كلمة المرور</translation>
 <translation id="2648803196158606475">حذف المقروءة</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">وضع علامة...</translation>
 <translation id="3157684681743766797">وضع علامة على الكل...</translation>
 <translation id="3175081911749765310">خدمات الويب</translation>
+<translation id="3178650076442119961">نشط اليوم</translation>
 <translation id="3207960819495026254">تمت إضافتها إلى الإشارات المرجعية.</translation>
 <translation id="3224641773458703735">لتصدير كلمات المرور، يلزمك أولاً تعيين رمز مرور على جهازك.</translation>
 <translation id="3240426699337459095">تم نسخ الرابط</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">لمسح رمز الاستجابة السريعة ضوئيًا، يمكنك تفعيل الكاميرا من الإعدادات</translation>
 <translation id="4281844954008187215">بنود الخدمة</translation>
 <translation id="430793432425771671">مزامنة كل شيء</translation>
+<translation id="430967081421617822">جميع الأوقات</translation>
 <translation id="4338650699862464074">‏إرسال عناوين URL للصفحات التي تزورها إلى Google</translation>
 <translation id="4359125752503270327">ستفتح هذه الصفحة في تطبيق آخر.</translation>
 <translation id="4370827530403103842">المزامنة لا تعمل. انقر للإصلاح.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">المزامنة غير مفعّلة</translation>
 <translation id="5132942445612118989">مزامنة كلمات المرور والسجلّ والمزيد على جميع الأجهزة</translation>
 <translation id="5140288047769711648">‏سيتذكّر Chrome كلمة المرور هذه بالنيابة عنك. وبالتالي لن تضطرّ لتذكُّرها كلّ مرّة.</translation>
+<translation id="5150492518600715772">الإرسال إلى جهازك</translation>
 <translation id="5181140330217080051">تنزيل</translation>
 <translation id="5186185447130319458">خاص</translation>
 <translation id="5190835502935405962">شريط الإشارات</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">الاسم</translation>
 <translation id="5388358297987318779">فتح الصورة</translation>
 <translation id="5409365236829784218">لا تتوفر تطبيقات مثبتة يمكن من خلالها فتح هذا الملف.</translation>
+<translation id="5416022985862681400">آخر 7 أيام</translation>
 <translation id="5433691172869980887">تم نسخ اسم المستخدم</translation>
 <translation id="54401264925851789">معلومات أمان الصفحة</translation>
 <translation id="5443952882982198570">بطاقات الائتمان</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">البريد الإلكتروني</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">الإصدار <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">نشط قبل يوم واحد</translation>
 <translation id="5711039611392265845">‏لعرض مزيد من الإعدادات المتعلّقة بالخصوصية والأمان وجمع البيانات، يُرجى الاطّلاع على <ph name="BEGIN_LINK" />خدمات Google والمزامنة<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">عذرًا، حدثت مشكلة أثناء تسجيل الدخول إلى حسابك.</translation>
 <translation id="5737974891429562743">تفاصيل تسجيل الدخول إلى الحساب قديمة. يمكنك التحديث لبدء المزامنة.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index 4900a3c..5437d7b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Vælg mappe</translation>
 <translation id="1265739287306757398">Se, hvordan du gør</translation>
 <translation id="1272079795634619415">Stop</translation>
+<translation id="1283524564873030414">De seneste 24 timer</translation>
 <translation id="1323735185997015385">Slet</translation>
 <translation id="132683371494960526">Tryk to gange for at ændre den overordnede mappe.</translation>
 <translation id="1340643665687018190">Luk menu</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Avanceret</translation>
 <translation id="1989112275319619282">Gennemse</translation>
 <translation id="2015722694326466240">Angiv en adgangskode på din enhed, før du kan se adgangskoder.</translation>
+<translation id="2073572773299281212">Aktiv for <ph name="DAYS" /> dage siden</translation>
 <translation id="2074131957428911366">Du kan altid vælge, hvad der skal synkroniseres, i <ph name="BEGIN_LINK" />indstillingerne<ph name="END_LINK" />.</translation>
 <translation id="2079545284768500474">Fortryd</translation>
 <translation id="209018056901015185">Vis computerversion</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Åbn alle</translation>
 <translation id="2570206273416014374">Sender visse cookies og søgninger fra adresselinjen og søgefeltet til din standardsøgemaskine.</translation>
 <translation id="2572712655377361602">En enhedspolitik har blokeret adgangen til dine billeder</translation>
+<translation id="2578571896248130439">Send webside</translation>
 <translation id="2584132361465095047">Tilføj konto...</translation>
 <translation id="2625189173221582860">Adgangskoden er kopieret</translation>
 <translation id="2648803196158606475">Slet læste</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Markér…</translation>
 <translation id="3157684681743766797">Markér alle…</translation>
 <translation id="3175081911749765310">Webtjenester</translation>
+<translation id="3178650076442119961">Aktiv i dag</translation>
 <translation id="3207960819495026254">Gemt som bogmærke</translation>
 <translation id="3224641773458703735">Angiv en adgangskode på din enhed, før du kan eksportere adgangskoder.</translation>
 <translation id="3240426699337459095">Linket er kopieret</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Aktivér kameraet i Indstillinger for at scanne en QR-kode</translation>
 <translation id="4281844954008187215">Servicevilkår</translation>
 <translation id="430793432425771671">Synkroniser alt</translation>
+<translation id="430967081421617822">Altid</translation>
 <translation id="4338650699862464074">Sender webadresser for de sider, du besøger, til Google.</translation>
 <translation id="4359125752503270327">Denne side åbner i en anden app.</translation>
 <translation id="4370827530403103842">Synkronisering fungerer ikke. Tryk for at rette problemet.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">Synkronisering er slået fra</translation>
 <translation id="5132942445612118989">Synkroniser dine adgangskoder, din historik og meget mere på alle enheder</translation>
 <translation id="5140288047769711648">Chrome husker adgangskoden for dig. Du behøver ikke at huske den.</translation>
+<translation id="5150492518600715772">Send til din enhed</translation>
 <translation id="5181140330217080051">Downloader</translation>
 <translation id="5186185447130319458">Privat</translation>
 <translation id="5190835502935405962">Bogmærkelinje</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Navn</translation>
 <translation id="5388358297987318779">Åbn billede</translation>
 <translation id="5409365236829784218">Der er ingen installerede apps, der kan åbne denne fil.</translation>
+<translation id="5416022985862681400">De seneste syv dage</translation>
 <translation id="5433691172869980887">Brugernavnet er kopieret</translation>
 <translation id="54401264925851789">Oplysninger om sidesikkerhed</translation>
 <translation id="5443952882982198570">Kreditkort</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">Mail</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Version <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">Aktiv for 1 dag siden</translation>
 <translation id="5711039611392265845">Du kan finde flere indstillinger vedrørende privatliv, sikkerhed og dataindsamling under <ph name="BEGIN_LINK" />Synkronisering og Google-tjenester<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">Der var et problem med at logge ind på din konto.</translation>
 <translation id="5737974891429562743">Loginoplysningerne for kontoen er forældede. Opdater dem for at påbegynde synkroniseringen.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 816a962..f2239a2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Ordner wählen</translation>
 <translation id="1265739287306757398">Weitere Informationen</translation>
 <translation id="1272079795634619415">Stopp</translation>
+<translation id="1283524564873030414">Letzte 24 Stunden</translation>
 <translation id="1323735185997015385">Löschen</translation>
 <translation id="132683371494960526">Tippen Sie hier doppelt, um den übergeordneten Ordner zu ändern.</translation>
 <translation id="1340643665687018190">Menü schließen</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Erweitert</translation>
 <translation id="1989112275319619282">Durchsuchen</translation>
 <translation id="2015722694326466240">Um die Passwörter zu sehen, müssen Sie zuerst einen Passcode auf Ihrem Gerät einrichten.</translation>
+<translation id="2073572773299281212">Vor <ph name="DAYS" /> Tagen aktiv</translation>
 <translation id="2074131957428911366">Sie können in den <ph name="BEGIN_LINK" />Einstellungen<ph name="END_LINK" /> auswählen, was Sie synchronisieren möchten.</translation>
 <translation id="2079545284768500474">Rückgängig machen</translation>
 <translation id="209018056901015185">Desktop-Version</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Alle öffnen</translation>
 <translation id="2570206273416014374">Suchanfragen, die in die Adressleiste und das Suchfeld eingegeben wurden, sowie einige Cookies werden an Ihre Standardsuchmaschine gesendet.</translation>
 <translation id="2572712655377361602">Eine Geräterichtlinie hat den Zugriff auf Ihre Fotos blockiert</translation>
+<translation id="2578571896248130439">Webseite senden</translation>
 <translation id="2584132361465095047">Konto hinzufügen...</translation>
 <translation id="2625189173221582860">Passwort kopiert</translation>
 <translation id="2648803196158606475">Gelesene löschen</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Markieren…</translation>
 <translation id="3157684681743766797">Alle markieren…</translation>
 <translation id="3175081911749765310">Webdienste</translation>
+<translation id="3178650076442119961">Heute aktiv</translation>
 <translation id="3207960819495026254">Mit einem Lesezeichen versehen</translation>
 <translation id="3224641773458703735">Um Passwörter zu exportieren, müssen Sie zuerst einen Passcode auf Ihrem Gerät einrichten.</translation>
 <translation id="3240426699337459095">Link wurde kopiert.</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Um einen QR-Code zu scannen, aktivieren Sie in den Einstellungen die Kamera</translation>
 <translation id="4281844954008187215">Nutzungsbedingungen</translation>
 <translation id="430793432425771671">Alles synchronisieren</translation>
+<translation id="430967081421617822">Gesamter Zeitraum</translation>
 <translation id="4338650699862464074">URLs der von Ihnen besuchten Seiten werden an Google gesendet.</translation>
 <translation id="4359125752503270327">Diese Seite wird in einer anderen Anwendung geöffnet.</translation>
 <translation id="4370827530403103842">Synchronisierung funktioniert nicht. Tippen zum Reparieren.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">Synchronisierung ist deaktiviert</translation>
 <translation id="5132942445612118989">Passwörter, Verlauf und mehr auf allen Geräten synchronisieren</translation>
 <translation id="5140288047769711648">Chrome speichert dieses Passwort für Sie. Sie müssen es sich nicht merken.</translation>
+<translation id="5150492518600715772">An mein Gerät senden</translation>
 <translation id="5181140330217080051">Download wird ausgeführt...</translation>
 <translation id="5186185447130319458">Privat</translation>
 <translation id="5190835502935405962">Lesezeichenleiste</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Name</translation>
 <translation id="5388358297987318779">Bild öffnen</translation>
 <translation id="5409365236829784218">Es sind keine Apps inst., die diese Datei öffnen können.</translation>
+<translation id="5416022985862681400">Letzte 7 Tage</translation>
 <translation id="5433691172869980887">Nutzername kopiert</translation>
 <translation id="54401264925851789">Sicherheitsinformationen zur Seite</translation>
 <translation id="5443952882982198570">Kreditkarten</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">E-Mail-Adresse</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Version <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">Vor 1 Tag aktiv</translation>
 <translation id="5711039611392265845">Weitere Einstellungen in Verbindung mit Datenschutz, Sicherheit und der Erhebung von Daten finden Sie unter <ph name="BEGIN_LINK" />Synchronisierung und Google-Dienste<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">Beim Anmelden in Ihrem Konto ist ein Fehler aufgetreten.</translation>
 <translation id="5737974891429562743">Die Anmeldeinformationen für das Konto sind veraltet. Aktualisieren Sie sie zur Synchronisierung.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb
index bd0f090..e03418b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Seleccionar carpeta</translation>
 <translation id="1265739287306757398">Más información</translation>
 <translation id="1272079795634619415">Interrumpir</translation>
+<translation id="1283524564873030414">Últimas 24 horas</translation>
 <translation id="1323735185997015385">Eliminar</translation>
 <translation id="132683371494960526">Toca dos veces para cambiar la carpeta principal.</translation>
 <translation id="1340643665687018190">Cerrar el menú</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Configuración avanzada</translation>
 <translation id="1989112275319619282">Examinar</translation>
 <translation id="2015722694326466240">Debes establecer primero un bloqueo de pantalla en tu dispositivo para poder ver las contraseñas.</translation>
+<translation id="2073572773299281212">Activo hace <ph name="DAYS" /> días</translation>
 <translation id="2074131957428911366">Siempre puedes seleccionar qué contenido quieres sincronizar desde <ph name="BEGIN_LINK" />Ajustes<ph name="END_LINK" />.</translation>
 <translation id="2079545284768500474">Deshacer</translation>
 <translation id="209018056901015185">Ver como ordenador</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Abrir todos</translation>
 <translation id="2570206273416014374">Envía algunas cookies y búsquedas de la barra de direcciones y del cuadro de búsqueda a tu buscador predeterminado.</translation>
 <translation id="2572712655377361602">Una política de dispositivos ha bloqueado el acceso a tus fotos</translation>
+<translation id="2578571896248130439">Enviar página web</translation>
 <translation id="2584132361465095047">Añadir cuenta…</translation>
 <translation id="2625189173221582860">Se ha copiado la contraseña</translation>
 <translation id="2648803196158606475">Eliminar entradas leídas</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Marcar…</translation>
 <translation id="3157684681743766797">Marcar todas…</translation>
 <translation id="3175081911749765310">Servicios web</translation>
+<translation id="3178650076442119961">Activo hoy</translation>
 <translation id="3207960819495026254">Añadido a marcadores</translation>
 <translation id="3224641773458703735">Debes establecer primero un bloqueo de pantalla en tu dispositivo para poder exportar las contraseñas.</translation>
 <translation id="3240426699337459095">Enlace copiado</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Para escanear un código QR, habilita la cámara en Configuración</translation>
 <translation id="4281844954008187215">Condiciones del servicio</translation>
 <translation id="430793432425771671">Sincronizar todo</translation>
+<translation id="430967081421617822">Desde siempre</translation>
 <translation id="4338650699862464074">Envía las URL de las páginas que visitas a Google.</translation>
 <translation id="4359125752503270327">Esta página se abrirá en otra aplicación.</translation>
 <translation id="4370827530403103842">La sincronización no funciona. Toca para solucionarlo.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">La sincronización está desactivada</translation>
 <translation id="5132942445612118989">Sincroniza tus contraseñas, tu historial y otras opciones en todos tus dispositivos</translation>
 <translation id="5140288047769711648">Chrome recordará esta contraseña. Así no tendrás que recordarla.</translation>
+<translation id="5150492518600715772">Enviar a tu dispositivo</translation>
 <translation id="5181140330217080051">Descargando</translation>
 <translation id="5186185447130319458">Privado</translation>
 <translation id="5190835502935405962">Barra de marcadores</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Nombre</translation>
 <translation id="5388358297987318779">Abrir imagen</translation>
 <translation id="5409365236829784218">Ninguna aplicación instalada puede abrir este archivo.</translation>
+<translation id="5416022985862681400">Últimos 7 días</translation>
 <translation id="5433691172869980887">Se ha copiado el nombre de usuario</translation>
 <translation id="54401264925851789">Información de seguridad de la página</translation>
 <translation id="5443952882982198570">Tarjetas de crédito</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">Correo electrónico</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versión <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">Activo hace 1 día</translation>
 <translation id="5711039611392265845">Para ver más ajustes relacionados con la privacidad, la seguridad y la recogida de datos, accede a <ph name="BEGIN_LINK" />Servicios de Google y sincronización<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">Error al iniciar sesión en tu cuenta</translation>
 <translation id="5737974891429562743">Información de inicio de sesión de la cuenta obsoleta. Actualízala para iniciar la sincronización.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index 93d30b6..9b940f8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">انتخاب پوشه</translation>
 <translation id="1265739287306757398">با نحوه انجام کار آشنا شوید</translation>
 <translation id="1272079795634619415">توقف</translation>
+<translation id="1283524564873030414">۲۴ ساعت گذشته</translation>
 <translation id="1323735185997015385">حذف</translation>
 <translation id="132683371494960526">برای تغییر پوشه والد دو ضربه سریع بزنید.</translation>
 <translation id="1340643665687018190">بستن منو</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">پیشرفته</translation>
 <translation id="1989112275319619282">مشاهده محتوای موجود در فروشگاه ما</translation>
 <translation id="2015722694326466240">برای دیدن گذرنویسه‌ها، اول باید گذرنویسه‌ای برای دستگاه تنظیم کنید.</translation>
+<translation id="2073572773299281212">آخرین فعالیت: <ph name="DAYS" /> روز قبل</translation>
 <translation id="2074131957428911366">هرزمان خواستید می‌توانید مواردی را که می‌خواهید همگام‌سازی شود در <ph name="BEGIN_LINK" />تنظیمات<ph name="END_LINK" /> انتخاب کنید.</translation>
 <translation id="2079545284768500474">لغو</translation>
 <translation id="209018056901015185">درخواست سایت دسک‌تاپ</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">باز کردن همه</translation>
 <translation id="2570206273416014374">برخی کوکی‌ها و جستجوها را از نوار نشانی و جعبه جستجو به موتور جستجوی پیش‌فرض ارسال می‌کند.</translation>
 <translation id="2572712655377361602">خط‌مشی دستگاه دسترسی به عکس‌هایتان را مسدود کرد</translation>
+<translation id="2578571896248130439">ارسال صفحه وب</translation>
 <translation id="2584132361465095047">افزودن حساب…</translation>
 <translation id="2625189173221582860">گذرواژه کپی شد</translation>
 <translation id="2648803196158606475">حذف خوانده‌شده‌ها</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">علامت‌گذاری...</translation>
 <translation id="3157684681743766797">علامت‌گذاری همه...</translation>
 <translation id="3175081911749765310">خدمات وب</translation>
+<translation id="3178650076442119961">آخرین فعالیت: امروز</translation>
 <translation id="3207960819495026254">نشانک‌گذاری شده</translation>
 <translation id="3224641773458703735">برای صادر کردن گذرواژه‌ها، ابتدا باید گذرنویسه‌ای برای دستگاه تنظیم کنید.</translation>
 <translation id="3240426699337459095">پیوند کپی شد</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">‏برای اسکن کردن کد QR، دوربین را در تنظیمات فعال کنید</translation>
 <translation id="4281844954008187215">شرایط استفاده از سرویس</translation>
 <translation id="430793432425771671">همگام‌سازی همه چیز</translation>
+<translation id="430967081421617822">همه زمان‌ها</translation>
 <translation id="4338650699862464074">‏نشانی وب صفحه‌هایی را که بازدید می‌کنید برای Google ارسال می‌کند.</translation>
 <translation id="4359125752503270327">این صفحه در برنامه دیگری باز می‌شود.</translation>
 <translation id="4370827530403103842">همگام‌سازی کار نمی‌کند. برای رفع اشکال ضربه بزنید.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">همگام‌سازی خاموش است</translation>
 <translation id="5132942445612118989">همگام‌سازی گذرواژه‌ها، سابقه و موارد دیگر در همه دستگاه‌ها</translation>
 <translation id="5140288047769711648">‏Chrome به جای شما گذرواژه‌تان را به‌خاطر می‌سپارد. لازم نیست آن را به‌خاطر بسپارید.</translation>
+<translation id="5150492518600715772">ارسال به دستگاه شما</translation>
 <translation id="5181140330217080051">در حال بارگیری</translation>
 <translation id="5186185447130319458">خصوصی</translation>
 <translation id="5190835502935405962">نوار نشانک‌ها</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">نام</translation>
 <translation id="5388358297987318779">بازکردن تصویر</translation>
 <translation id="5409365236829784218">برنامه‌ای که بتواند این فایل را باز کند در سیستم نصب نشده است.</translation>
+<translation id="5416022985862681400">۷ روز گذشته</translation>
 <translation id="5433691172869980887">نام کاربری کپی شد</translation>
 <translation id="54401264925851789">اطلاعات امنیتی صفحه</translation>
 <translation id="5443952882982198570">کارت‌های اعتباری</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">ایمیل</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">نسخه <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">آخرین فعالیت: ۱ روز قبل</translation>
 <translation id="5711039611392265845">‏برای تنظیمات بیشتری که با حریم‌خصوصی، امنیت و جمع‌آوری داده مرتبط هستند، <ph name="BEGIN_LINK" />همگام‌سازی و سرویس‌های Google<ph name="END_LINK" /> را ببینید.</translation>
 <translation id="5728700505257787410">متأسفیم، مشکلی در ورود به حساب شما وجود داشت.</translation>
 <translation id="5737974891429562743">جزئیات ورود به سیستم قدیمی است. برای شروع همگام‌سازی، به‌روزرسانی کنید.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index 93c94ea..fd3dacf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">ફોલ્ડર પસંદ કરો</translation>
 <translation id="1265739287306757398">જાણો કેવી રીતે</translation>
 <translation id="1272079795634619415">રોકો</translation>
+<translation id="1283524564873030414">છેલ્લા 24 કલાક</translation>
 <translation id="1323735185997015385">ડિલીટ કરો</translation>
 <translation id="132683371494960526">મૂળ ફોલ્ડર બદલવા માટે બે વાર ટૅપ કરો.</translation>
 <translation id="1340643665687018190">મેનૂ બંધ કરો</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">વિગતવાર</translation>
 <translation id="1989112275319619282">બ્રાઉઝ કરો</translation>
 <translation id="2015722694326466240">પાસવર્ડ જોવા માટે, તમારે સૌથી પહેલા તમારા ઉપકરણ પર એક પાસકોડ સેટ કરવો આવશ્યક છે.</translation>
+<translation id="2073572773299281212"><ph name="DAYS" /> દિવસ પહેલાં સક્રિય હતું</translation>
 <translation id="2074131957428911366">શું સિંક કરવું તે હંમેશાં તમે <ph name="BEGIN_LINK" />સેટિંગ<ph name="END_LINK" />માં પસંદ કરી શકો છો.</translation>
 <translation id="2079545284768500474">છેલ્લો ફેરફાર રદ કરો</translation>
 <translation id="209018056901015185">ડેસ્કટોપ સાઇટની વિનંતી કરો</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">બધા ખોલો</translation>
 <translation id="2570206273416014374">ઍડ્રેસ બાર અને શોધ બૉક્સમાંથી કેટલીક કુકી અને શોધને તમારા ડિફૉલ્ટ શોધ એન્જિન પર મોકલે છે.</translation>
 <translation id="2572712655377361602">ઉપકરણ નીતિએ તમારા ફોટોની ઍક્સેસને અવરોધિત કરી</translation>
+<translation id="2578571896248130439">વેબપેજ મોકલો</translation>
 <translation id="2584132361465095047">એકાઉન્ટ ઉમેરો…</translation>
 <translation id="2625189173221582860">પાસવર્ડ કૉપિ કર્યો</translation>
 <translation id="2648803196158606475">વાંચેલું ડિલીટ કરો</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">ચિહ્નિત કરો…</translation>
 <translation id="3157684681743766797">તમામને આ રીતે ચિહ્નિત કરો…</translation>
 <translation id="3175081911749765310">વેબ સેવાઓ</translation>
+<translation id="3178650076442119961">આજે સક્રિય છે</translation>
 <translation id="3207960819495026254">બુકમાર્ક કરેલ</translation>
 <translation id="3224641773458703735">પાસવર્ડના નિકાસ માટે, તમારે સૌથી પહેલા તમારા ઉપકરણ પર એક પાસકોડ સેટ કરવો આવશ્યક છે.</translation>
 <translation id="3240426699337459095">લિંક કૉપિ કરી</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">QR કોડને સ્કેન કરવા માટે, સેટિંગમાંથી કૅમેરો ચાલુ કરો</translation>
 <translation id="4281844954008187215">સેવાની શરતો</translation>
 <translation id="430793432425771671">બધાને સમન્વયિત કરો</translation>
+<translation id="430967081421617822">હંમેશાં</translation>
 <translation id="4338650699862464074">તમે મુલાકાત લો તે પેજના URLs Googleને મોકલે છે.</translation>
 <translation id="4359125752503270327">આ પૃષ્ઠ બીજી અ‍ૅપ્લિકેશનમાં ખુલશે.</translation>
 <translation id="4370827530403103842">સમન્વયન કામ કરતું નથી. ઠીક કરવા માટે ટૅપ કરો.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">સમન્વયન બંધ છે</translation>
 <translation id="5132942445612118989">બધા ડિવાઇસ પર તમારા પાસવર્ડ, ઇતિહાસ અને વધુ સિંક કરો</translation>
 <translation id="5140288047769711648">Chrome તમારા માટે આ પાસવર્ડ યાદ રાખશે. તમારે તેને યાદ રાખવાની જરૂર નથી.</translation>
+<translation id="5150492518600715772">તમારા ડિવાઇસ પર મોકલો</translation>
 <translation id="5181140330217080051">ડાઉનલોડ કરી રહ્યું છે</translation>
 <translation id="5186185447130319458">ખાનગી</translation>
 <translation id="5190835502935405962">બુકમાર્ક્સ બાર</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">નામ</translation>
 <translation id="5388358297987318779">છબી ખોલો</translation>
 <translation id="5409365236829784218">ત્યાં એવી કોઈ ઍપ્લિકેશન ઇન્સ્ટોલ કરેલ નથી જે આ ફાઇલ ખોલી શકે.</translation>
+<translation id="5416022985862681400">છેલ્લા 7 દિવસ</translation>
 <translation id="5433691172869980887">વપરાશકર્તાનામ કૉપિ કર્યું</translation>
 <translation id="54401264925851789">પૃષ્ઠ સુરક્ષા માહિતી</translation>
 <translation id="5443952882982198570">ક્રેડિટ કાર્ડ</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">ઇમેઇલ</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">વર્ઝન <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">1 દિવસ પહેલાં સક્રિય હતું</translation>
 <translation id="5711039611392265845">ગોપનીયતા, સુરક્ષા, અને ડેટા સંગ્રહથી સંબંધિત વધુ સેટિંગ માટે, <ph name="BEGIN_LINK" />સિંક અને Google સેવાઓ<ph name="END_LINK" /> જુઓ.</translation>
 <translation id="5728700505257787410">માફ કરશો, તમારા એકાઉન્ટમાં સાઇન ઇન કરવામાં સમસ્યા હતી.</translation>
 <translation id="5737974891429562743">એકાઉન્ટ સાઇન ઇન વિગતો જૂની થઈ ગઈ છે. સિંકને પ્રારંભ કરવા માટે અપડેટ કરો.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index 06e0211..18cdfa68 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Pilih Folder</translation>
 <translation id="1265739287306757398">Pelajari Caranya</translation>
 <translation id="1272079795634619415">Berhenti</translation>
+<translation id="1283524564873030414">24 Jam Terakhir</translation>
 <translation id="1323735185997015385">Hapus</translation>
 <translation id="132683371494960526">Ketuk dua kali untuk mengubah folder induk.</translation>
 <translation id="1340643665687018190">Tutup Menu</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Lanjutan</translation>
 <translation id="1989112275319619282">Jelajahi</translation>
 <translation id="2015722694326466240">Untuk melihat sandi, Anda harus menyetel kode sandi di perangkat terlebih dahulu.</translation>
+<translation id="2073572773299281212">Aktif <ph name="DAYS" /> Hari Lalu</translation>
 <translation id="2074131957428911366">Anda dapat memilih konten apa yang akan disinkronkan di <ph name="BEGIN_LINK" />setelan<ph name="END_LINK" /> kapan saja.</translation>
 <translation id="2079545284768500474">Urungkan</translation>
 <translation id="209018056901015185">Ubah situs desktop</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Buka Semua</translation>
 <translation id="2570206273416014374">Mengirimkan beberapa cookie dan penelusuran dari kolom URL dan kotak penelusuran ke mesin telusur default Anda.</translation>
 <translation id="2572712655377361602">Kebijakan perangkat memblokir akses ke foto Anda</translation>
+<translation id="2578571896248130439">Kirim Halaman</translation>
 <translation id="2584132361465095047">Tambahkan Akun…</translation>
 <translation id="2625189173221582860">Sandi disalin</translation>
 <translation id="2648803196158606475">Hapus yang Sudah Dibaca</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Tandai…</translation>
 <translation id="3157684681743766797">Tandai Semua...</translation>
 <translation id="3175081911749765310">Layanan Web</translation>
+<translation id="3178650076442119961">Aktif Hari Ini</translation>
 <translation id="3207960819495026254">Diberi bookmark</translation>
 <translation id="3224641773458703735">Untuk mengekspor sandi, Anda harus menyetel kode sandi di perangkat terlebih dahulu.</translation>
 <translation id="3240426699337459095">Tautan disalin</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Untuk memindai kode QR, aktifkan kamera dari setelan</translation>
 <translation id="4281844954008187215">Persyaratan Layanan</translation>
 <translation id="430793432425771671">Sinkronkan Semua</translation>
+<translation id="430967081421617822">Sepanjang Waktu</translation>
 <translation id="4338650699862464074">Mengirimkan URL halaman yang Anda buka ke Google.</translation>
 <translation id="4359125752503270327">Halaman ini akan dibuka di aplikasi lain.</translation>
 <translation id="4370827530403103842">Sinkronisasi tidak berfungsi. Ketuk untuk memperbaiki.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">Sinkronisasi nonaktif</translation>
 <translation id="5132942445612118989">Sinkronkan sandi, histori, dan lainnya di semua perangkat</translation>
 <translation id="5140288047769711648">Chrome akan mengingat sandi ini untuk Anda. Anda tidak perlu mengingatnya.</translation>
+<translation id="5150492518600715772">Kirim ke Perangkat Anda</translation>
 <translation id="5181140330217080051">Mendownload</translation>
 <translation id="5186185447130319458">Pribadi</translation>
 <translation id="5190835502935405962">Bilah Bookmark</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Nama</translation>
 <translation id="5388358297987318779">Buka Gambar</translation>
 <translation id="5409365236829784218">Tidak ada aplikasi terpasang yang dapat membuka file ini.</translation>
+<translation id="5416022985862681400">7 Hari Terakhir</translation>
 <translation id="5433691172869980887">Nama pengguna disalin</translation>
 <translation id="54401264925851789">Informasi Keamanan Halaman</translation>
 <translation id="5443952882982198570">Kartu Kredit</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">Email</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versi <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">Aktif 1 hari yang lalu</translation>
 <translation id="5711039611392265845">Untuk setelan lainnya yang berkaitan dengan privasi, keamanan, dan pengumpulan data, lihat <ph name="BEGIN_LINK" />Sinkronisasi dan Layanan Google<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">Maaf, terjadi masalah saat masuk ke akun Anda.</translation>
 <translation id="5737974891429562743">Detail proses masuk akun sudah tidak berlaku lagi. Perbarui untuk memulai sinkronisasi.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 3bb47ae..44df5615 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">フォルダの選択</translation>
 <translation id="1265739287306757398">詳細</translation>
 <translation id="1272079795634619415">中止</translation>
+<translation id="1283524564873030414">過去 24 時間</translation>
 <translation id="1323735185997015385">削除</translation>
 <translation id="132683371494960526">ダブルタップして親フォルダを変更。</translation>
 <translation id="1340643665687018190">メニューを閉じる</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">詳細設定</translation>
 <translation id="1989112275319619282">閲覧</translation>
 <translation id="2015722694326466240">パスワードを表示するには、まずデバイスにパスワードを設定する必要があります。</translation>
+<translation id="2073572773299281212">最終同期: <ph name="DAYS" /> 日前</translation>
 <translation id="2074131957428911366">同期する項目はいつでも [<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />] で選択できます。</translation>
 <translation id="2079545284768500474">元に戻す</translation>
 <translation id="209018056901015185">PC版サイトをリクエスト</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">すべて開く</translation>
 <translation id="2570206273416014374">Cookie と、アドレスバーや検索ボックスに入力した検索語句を既定の検索エンジンに送信します。</translation>
 <translation id="2572712655377361602">デバイスポリシーにより写真へのアクセスがブロックされました</translation>
+<translation id="2578571896248130439">ウェブページの送信</translation>
 <translation id="2584132361465095047">アカウントを追加...</translation>
 <translation id="2625189173221582860">パスワードがコピーされました</translation>
 <translation id="2648803196158606475">既読を削除</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">マーク...</translation>
 <translation id="3157684681743766797">すべてマーク...</translation>
 <translation id="3175081911749765310">ウェブサービス</translation>
+<translation id="3178650076442119961">最終同期: 今日</translation>
 <translation id="3207960819495026254">ブックマークしました</translation>
 <translation id="3224641773458703735">パスワードをエクスポートするには、まずデバイスでパスコードを設定する必要があります。</translation>
 <translation id="3240426699337459095">リンクをコピーしました</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">QR コードをスキャンするには、設定でカメラを有効にしてください</translation>
 <translation id="4281844954008187215">利用規約</translation>
 <translation id="430793432425771671">すべて同期</translation>
+<translation id="430967081421617822">全期間</translation>
 <translation id="4338650699862464074">アクセスしたページの URL を Google に送信します。</translation>
 <translation id="4359125752503270327">このページは別のアプリケーションで開かれます。</translation>
 <translation id="4370827530403103842">同期が機能していません。修正するにはタップしてください。</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">同期は無効です</translation>
 <translation id="5132942445612118989">すべてのデバイスでパスワード、履歴、その他の設定を同期する</translation>
 <translation id="5140288047769711648">このパスワードは Chrome で保存され、次回から自動入力されます。</translation>
+<translation id="5150492518600715772">お使いのデバイスに送信</translation>
 <translation id="5181140330217080051">ダウンロードしています</translation>
 <translation id="5186185447130319458">プライベート接続</translation>
 <translation id="5190835502935405962">ブックマーク バー</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">名前</translation>
 <translation id="5388358297987318779">画像を開く</translation>
 <translation id="5409365236829784218">このファイルを開くアプリがインストールされていません。</translation>
+<translation id="5416022985862681400">過去 7 日間</translation>
 <translation id="5433691172869980887">ユーザー名がコピーされました</translation>
 <translation id="54401264925851789">ページのセキュリティ情報</translation>
 <translation id="5443952882982198570">クレジット カード</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">メール</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">バージョン <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">最終同期: 1 日前</translation>
 <translation id="5711039611392265845">プライバシー、セキュリティ、データ収集に関連するその他の設定については、<ph name="BEGIN_LINK" />同期と Google サービス<ph name="END_LINK" />をご覧ください。</translation>
 <translation id="5728700505257787410">アカウントへのログイン中に問題が発生しました。</translation>
 <translation id="5737974891429562743">アカウントのログイン情報が古くなっています。同期を開始するには更新してください。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index f2b97cd1..ae5775e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">ಫೋಲ್ಡರ್ ಆರಿಸಿ</translation>
 <translation id="1265739287306757398">ಹೇಗೆ ಎಂಬುದನ್ನು ತಿಳಿದುಕೊಳ್ಳಿ</translation>
 <translation id="1272079795634619415">ನಿಲ್ಲಿಸಿ</translation>
+<translation id="1283524564873030414">ಕಳೆದ 24 ಗಂಟೆಗಳು</translation>
 <translation id="1323735185997015385">ಅಳಿಸಿ</translation>
 <translation id="132683371494960526">ಮೂಲ ಫೋಲ್ಡರ್‌ ಅನ್ನು ಬದಲಾಯಿಸಲು ಡಬಲ್‌ ಟ್ಯಾಪ್ ಮಾಡಿ.</translation>
 <translation id="1340643665687018190">ಮುಚ್ಚು ಮೆನು</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">ಸುಧಾರಿತ</translation>
 <translation id="1989112275319619282">ಬ್ರೌಸ್ ಮಾಡಿ</translation>
 <translation id="2015722694326466240">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ನೀವು ಮೊದಲು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಪಾಸ್‌ವಡ್‌ ಅನ್ನು ಹೊಂದಿಸಿ.</translation>
+<translation id="2073572773299281212"><ph name="DAYS" /> ದಿನಗಳ ಹಿಂದೆ ಸಕ್ರಿಯ</translation>
 <translation id="2074131957428911366">ನೀವು ಏನನ್ನು ಸಿಂಕ್ ಮಾಡಬೇಕು ಎಂಬುದನ್ನು <ph name="BEGIN_LINK" />ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK" /> ಯಾವಾಗ ಬೇಕಾದರೂ ಆರಿಸಿಕೊಳ್ಳಬಹುದು.</translation>
 <translation id="2079545284768500474">ರದ್ದುಮಾಡಿ</translation>
 <translation id="209018056901015185">ಡೆಸ್ಕ್‌ಟಾಪ್‌ ಸೈಟ್‌ ಅನ್ನು ವಿನಂತಿಸಿ</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">ಎಲ್ಲವನ್ನೂ ತೆರೆಯಿರಿ</translation>
 <translation id="2570206273416014374">ವಿಳಾಸ ಪಟ್ಟಿ ಮತ್ತು ಹುಡುಕಾಟ ಪೆಟ್ಟಿಗೆಯಿಂದ ಕೆಲವು ಕುಕೀಗಳು ಹಾಗೂ ಹುಡುಕಾಟಗಳನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಹುಡುಕಾಟ ಎಂಜಿನ್‌ಗೆ ಕಳುಹಿಸುತ್ತದೆ.</translation>
 <translation id="2572712655377361602">ಸಾಧನದ ನೀತಿಯೊಂದು ನಿಮ್ಮ ಫೋಟೋಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ</translation>
+<translation id="2578571896248130439">ವೆಬ್‌ಪುಟವನ್ನು ಕಳುಹಿಸಿ</translation>
 <translation id="2584132361465095047">ಖಾತೆ ಸೇರಿಸಿ...</translation>
 <translation id="2625189173221582860">ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಕಲಿಸಲಾಗಿದೆ</translation>
 <translation id="2648803196158606475">ಓದಿರುವುದನ್ನು ಅಳಿಸಿ</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">ಗುರುತಿಸಿ...</translation>
 <translation id="3157684681743766797">ಎಲ್ಲವನ್ನೂ ಗುರುತಿಸಿ…</translation>
 <translation id="3175081911749765310">ವೆಬ್‌ ಸೇವೆಗಳು</translation>
+<translation id="3178650076442119961">ಇಂದು ಸಕ್ರಿಯ</translation>
 <translation id="3207960819495026254">ಬುಕ್‌ಮಾರ್ಕ್‌ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="3224641773458703735">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ರಫ್ತು ಮಾಡಲು, ನೀವು ಮೊದಲು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಪಾಸ್‌ಕೋಡ್ ಅನ್ನು ಹೊಂದಿಸಬೇಕು.</translation>
 <translation id="3240426699337459095">ಲಿಂಕ್ ನಕಲಿಸಲಾಗಿದೆ</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲು, ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಂದ ಕ್ಯಾಮರಾವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="4281844954008187215">ಸೇವೆಯ ನಿಯಮಗಳು</translation>
 <translation id="430793432425771671">ಪ್ರತಿಯೊಂದನ್ನು ಸಿಂಕ್ ಮಾಡಿ</translation>
+<translation id="430967081421617822">ಎಲ್ಲ ಸಮಯ</translation>
 <translation id="4338650699862464074">ನೀವು ಭೇಟಿ ನೀಡುವ ಪುಟಗಳ URL ಗಳನ್ನು Google ಗೆ ಕಳುಹಿಸಿ.</translation>
 <translation id="4359125752503270327">ಈ ಪುಟವು ಇನ್ನೊಂದು ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ.</translation>
 <translation id="4370827530403103842">ಸಿಂಕ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ. ಸರಿಪಡಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ..</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">ಸಿಂಕ್‌ ಆಫ್‌ ಆಗಿದೆ</translation>
 <translation id="5132942445612118989">ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲೂ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಇತಿಹಾಸ ಹಾಗೂ ಇನ್ನೂ ಹೆಚ್ಚಿನವುಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಿ</translation>
 <translation id="5140288047769711648">Chrome ನಿಮಗಾಗಿ ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೆನಪಿನಲ್ಲಿರಿಸಿಕೊಳ್ಳುತ್ತದೆ. ನೀವು ಅದನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುವ ಅಗತ್ಯವಿಲ್ಲ.</translation>
+<translation id="5150492518600715772">ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ಕಳುಹಿಸಿ</translation>
 <translation id="5181140330217080051">ಡೌನ್‌ಲೋಡ್ ಆಗುತ್ತಿದೆ</translation>
 <translation id="5186185447130319458">ಖಾಸಗಿ</translation>
 <translation id="5190835502935405962">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳ ಬಾರ್</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">ಹೆಸರು</translation>
 <translation id="5388358297987318779">ಚಿತ್ರವನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="5409365236829784218">ಈ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಬಹುದಾದ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ.</translation>
+<translation id="5416022985862681400">ಕಳೆದ 7 ದಿನಗಳಲ್ಲಿ</translation>
 <translation id="5433691172869980887">ಬಳಕೆದಾರ ಹೆಸರನ್ನು ನಕಲಿಸಲಾಗಿದೆ</translation>
 <translation id="54401264925851789">ಪುಟ ಭದ್ರತೆಯ ಮಾಹಿತಿ</translation>
 <translation id="5443952882982198570">ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್‌ಗಳು</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">ಇಮೇಲ್</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">ಆವೃತ್ತಿ <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">1 ದಿನದ ಹಿಂದೆ ಸಕ್ರಿಯ</translation>
 <translation id="5711039611392265845">ಗೌಪ್ಯತೆ, ಸುರಕ್ಷತೆ ಮತ್ತು ಡೇಟಾ ಸಂಗ್ರಹಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಹೆಚ್ಚಿನ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗಾಗಿ <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಮತ್ತು Google ಸೇವೆಗಳನ್ನು<ph name="END_LINK" /> ನೋಡಿ.</translation>
 <translation id="5728700505257787410">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವಲ್ಲಿ ಸಮಸ್ಯೆ ಇದೆ.</translation>
 <translation id="5737974891429562743">ಖಾತೆಯ ಸೈನ್-ಇನ್ ವಿವರಗಳು ಹಳೆಯದಾಗಿವೆ. ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index b9d2c92f..57b17e4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">폴더 선택</translation>
 <translation id="1265739287306757398">자세히 알아보기</translation>
 <translation id="1272079795634619415">중지</translation>
+<translation id="1283524564873030414">지난 24시간</translation>
 <translation id="1323735185997015385">삭제</translation>
 <translation id="132683371494960526">상위 폴더를 변경하려면 두 번 탭하세요.</translation>
 <translation id="1340643665687018190">메뉴 닫기</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">고급</translation>
 <translation id="1989112275319619282">찾아보기</translation>
 <translation id="2015722694326466240">비밀번호를 보려면 먼저 기기에 비밀번호를 설정해야 합니다.</translation>
+<translation id="2073572773299281212"><ph name="DAYS" />일 전 사용됨</translation>
 <translation id="2074131957428911366">언제든지 <ph name="BEGIN_LINK" />설정<ph name="END_LINK" />에서 동기화할 항목을 선택할 수 있습니다.</translation>
 <translation id="2079545284768500474">실행취소</translation>
 <translation id="209018056901015185">데스크톱 버전으로 보기</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">모두 열기</translation>
 <translation id="2570206273416014374">주소 표시줄 및 검색창의 일부 쿠키 및 검색어를 기본 검색엔진에 전송합니다.</translation>
 <translation id="2572712655377361602">기기 정책으로 인해 사진 액세스가 차단되었습니다.</translation>
+<translation id="2578571896248130439">웹페이지 보내기</translation>
 <translation id="2584132361465095047">계정 추가...</translation>
 <translation id="2625189173221582860">비밀번호 복사됨</translation>
 <translation id="2648803196158606475">읽은 항목 삭제</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">표시…</translation>
 <translation id="3157684681743766797">모두 표시...</translation>
 <translation id="3175081911749765310">웹 서비스</translation>
+<translation id="3178650076442119961">오늘 사용됨</translation>
 <translation id="3207960819495026254">북마크에 추가됨</translation>
 <translation id="3224641773458703735">비밀번호를 내보내려면 먼저 기기에 비밀번호를 설정해야 합니다.</translation>
 <translation id="3240426699337459095">링크 복사됨</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">QR 코드를 스캔하려면 설정에서 카메라를 사용하도록 설정하세요.</translation>
 <translation id="4281844954008187215">서비스 약관</translation>
 <translation id="430793432425771671">모두 동기화</translation>
+<translation id="430967081421617822">전체 기간</translation>
 <translation id="4338650699862464074">방문한 페이지의 URL을 Google에 전송합니다.</translation>
 <translation id="4359125752503270327">이 페이지는 다른 애플리케이션에서 열립니다.</translation>
 <translation id="4370827530403103842">동기화가 작동하지 않습니다. 탭하여 수정하세요.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">동기화 사용 안함</translation>
 <translation id="5132942445612118989">모든 기기의 비밀번호, 방문 기록 등 동기화</translation>
 <translation id="5140288047769711648">Chrome에서 이 비밀번호를 기억합니다. 따라서 기억하지 않아도 됩니다.</translation>
+<translation id="5150492518600715772">기기로 보내기</translation>
 <translation id="5181140330217080051">다운로드 중</translation>
 <translation id="5186185447130319458">비공개</translation>
 <translation id="5190835502935405962">북마크바</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">이름</translation>
 <translation id="5388358297987318779">이미지 열기</translation>
 <translation id="5409365236829784218">이 파일을 열 수 있는 애플리케이션이 설치되어 있지 않습니다.</translation>
+<translation id="5416022985862681400">지난 7일</translation>
 <translation id="5433691172869980887">사용자 이름 복사됨</translation>
 <translation id="54401264925851789">페이지 보안 정보</translation>
 <translation id="5443952882982198570">신용카드</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">이메일</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">버전 <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">1일 전 사용됨</translation>
 <translation id="5711039611392265845">개인정보 보호, 보안, 데이터 수집에 관한 설정을 더 보려면 <ph name="BEGIN_LINK" />동기화 및 Google 서비스<ph name="END_LINK" />를 참조하세요.</translation>
 <translation id="5728700505257787410">죄송합니다. 계정에 로그인하는 중에 문제가 발생했습니다.</translation>
 <translation id="5737974891429562743">계정 로그인 세부정보가 오래되었습니다. 업데이트하여 동기화를 시작하세요.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index 5206c51..7b3ad33 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Pilih Folder</translation>
 <translation id="1265739287306757398">Ketahui Caranya</translation>
 <translation id="1272079795634619415">Berhenti</translation>
+<translation id="1283524564873030414">24 Jam Yang Lalu</translation>
 <translation id="1323735185997015385">Padam</translation>
 <translation id="132683371494960526">Ketik dua kali untuk menukar folder induk.</translation>
 <translation id="1340643665687018190">Tutup Menu</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Lanjutan</translation>
 <translation id="1989112275319619282">Semak Imbas</translation>
 <translation id="2015722694326466240">Untuk melihat kata laluan, mula-mula anda mesti menetapkan kod laluan pada peranti anda.</translation>
+<translation id="2073572773299281212">Aktif <ph name="DAYS" /> Hari Yang Lalu</translation>
 <translation id="2074131957428911366">Anda boleh memilih item yang hendak disegerakkan dalam <ph name="BEGIN_LINK" />tetapan<ph name="END_LINK" /> pada bila-bila masa.</translation>
 <translation id="2079545284768500474">Buat asal</translation>
 <translation id="209018056901015185">Minta Tapak Desktop</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Buka Semua</translation>
 <translation id="2570206273416014374">Menghantar beberapa kuki dan carian daripada bar alamat dan kotak carian ke enjin carian lalai anda.</translation>
 <translation id="2572712655377361602">Dasar peranti menyekat akses ke foto anda</translation>
+<translation id="2578571896248130439">Hantar Halaman Web</translation>
 <translation id="2584132361465095047">Tambahkan Akaun...</translation>
 <translation id="2625189173221582860">Kata laluan disalin</translation>
 <translation id="2648803196158606475">Padamkan Dibaca</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Tandakan...</translation>
 <translation id="3157684681743766797">Tandakan Semua...</translation>
 <translation id="3175081911749765310">Prkhdmtn Web</translation>
+<translation id="3178650076442119961">Aktif Hari Ini</translation>
 <translation id="3207960819495026254">Ditandai halaman</translation>
 <translation id="3224641773458703735">Untuk mengeksport kata laluan, mula-mula anda mesti menetapkan kod laluan pada peranti anda.</translation>
 <translation id="3240426699337459095">Pautan disalin</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Untuk mengimbas kod QR, dayakan kamera daripada tetapan</translation>
 <translation id="4281844954008187215">Syarat Perkhidmatan</translation>
 <translation id="430793432425771671">Segerakkan Semua</translation>
+<translation id="430967081421617822">Sepanjang Masa</translation>
 <translation id="4338650699862464074">Menghantar URL halaman yang anda lawati kepada Google.</translation>
 <translation id="4359125752503270327">Halaman ini akan dibuka dalam aplikasi lain.</translation>
 <translation id="4370827530403103842">Penyegerakan tidak berfungsi. Ketik untuk membetulkannya.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">Penyegerakan dimatikan</translation>
 <translation id="5132942445612118989">Segerakkan kata laluan, sejarah &amp; pelbagai lagi pada semua peranti</translation>
 <translation id="5140288047769711648">Chrome akan mengingati kata laluan ini untuk anda. Anda tidak perlu mengingatnya.</translation>
+<translation id="5150492518600715772">Hantar Ke Peranti Anda</translation>
 <translation id="5181140330217080051">Memuat turun</translation>
 <translation id="5186185447130319458">Peribadi</translation>
 <translation id="5190835502935405962">Bar Penanda Halaman</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Nama</translation>
 <translation id="5388358297987318779">Buka Imej</translation>
 <translation id="5409365236829784218">Tiada aplikasi dipasang yang boleh membuka fail ini.</translation>
+<translation id="5416022985862681400">7 Hari Terakhir</translation>
 <translation id="5433691172869980887">Nama pengguna disalin</translation>
 <translation id="54401264925851789">Maklumat Halaman Keselamatan</translation>
 <translation id="5443952882982198570">Kad Kredit</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">E-mel</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versi <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">Aktif 1 Hari Yang Lalu</translation>
 <translation id="5711039611392265845">Untuk mendapatkan pelbagai lagi tetapan yang berkaitan dengan privasi, keselamatan dan pengumpulan data, lihat <ph name="BEGIN_LINK" />Penyegerakan dan Perkhidmatan Google<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">Maaf, terdapat masalah untuk log masuk ke akaun anda.</translation>
 <translation id="5737974891429562743">Butiran log masuk akaun sudah lapuk. Sila kemas kini untuk memulakan penyegerakan.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index aeabcf4..c51ebcf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Map kiezen</translation>
 <translation id="1265739287306757398">Meer informatie</translation>
 <translation id="1272079795634619415">Stop</translation>
+<translation id="1283524564873030414">Afgelopen 24 uur</translation>
 <translation id="1323735185997015385">Verwijderen</translation>
 <translation id="132683371494960526">Dubbeltik om de hoofdmap te wijzigen.</translation>
 <translation id="1340643665687018190">Menu sluiten</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Geavanceerd</translation>
 <translation id="1989112275319619282">Browsen</translation>
 <translation id="2015722694326466240">Als je wachtwoorden wilt weergeven, moet je eerst een toegangscode instellen op je apparaat.</translation>
+<translation id="2073572773299281212"><ph name="DAYS" /> dagen geleden actief</translation>
 <translation id="2074131957428911366">Je kunt altijd in de <ph name="BEGIN_LINK" />instellingen<ph name="END_LINK" /> bepalen wat je wilt synchroniseren.</translation>
 <translation id="2079545284768500474">Ongedaan maken</translation>
 <translation id="209018056901015185">Desktopsite opvragen</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Alles openen</translation>
 <translation id="2570206273416014374">Verzendt bepaalde cookies en zoekopdrachten vanuit de adresbalk en het zoekvak naar je standaardzoekmachine.</translation>
 <translation id="2572712655377361602">Een apparaatbeleid blokkeert toegang tot je foto's</translation>
+<translation id="2578571896248130439">Webpagina verzenden</translation>
 <translation id="2584132361465095047">Account toevoegen…</translation>
 <translation id="2625189173221582860">Wachtwoord gekopieerd</translation>
 <translation id="2648803196158606475">Gelezen items verwijderen</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Markeren…</translation>
 <translation id="3157684681743766797">Alles markeren…</translation>
 <translation id="3175081911749765310">Webservices</translation>
+<translation id="3178650076442119961">Vandaag actief</translation>
 <translation id="3207960819495026254">Toegevoegd aan 'Bladwijzers'</translation>
 <translation id="3224641773458703735">Als je wachtwoorden wilt exporteren, moet je eerst een toegangscode instellen op je apparaat.</translation>
 <translation id="3240426699337459095">Link gekopieerd</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Als je een QR-code wilt scannen, schakel je de camera in via Instellingen</translation>
 <translation id="4281844954008187215">Servicevoorwaarden</translation>
 <translation id="430793432425771671">Alles synchroniseren</translation>
+<translation id="430967081421617822">Altijd</translation>
 <translation id="4338650699862464074">Verzendt de URL's van pagina's die je bezoekt naar Google.</translation>
 <translation id="4359125752503270327">Deze pagina wordt geopend in een andere app.</translation>
 <translation id="4370827530403103842">Synchronisatie werkt niet. Tik om te herstellen.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">Synchronisatie is uitgeschakeld</translation>
 <translation id="5132942445612118989">Je wachtwoorden, geschiedenis en meer synchroniseren op al je apparaten</translation>
 <translation id="5140288047769711648">Chrome onthoudt dit wachtwoord voor je. Je hoeft het niet zelf te onthouden.</translation>
+<translation id="5150492518600715772">Verzenden naar je apparaat</translation>
 <translation id="5181140330217080051">Downloaden</translation>
 <translation id="5186185447130319458">Privé</translation>
 <translation id="5190835502935405962">Bladwijzerbalk</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Naam</translation>
 <translation id="5388358297987318779">Afbeelding openen</translation>
 <translation id="5409365236829784218">Er zijn geen applicaties geïnstalleerd waarmee dit bestand kan worden geopend.</translation>
+<translation id="5416022985862681400">Afgelopen 7 dagen</translation>
 <translation id="5433691172869980887">Gebruikersnaam gekopieerd</translation>
 <translation id="54401264925851789">Paginabeveiligingsinfo</translation>
 <translation id="5443952882982198570">Creditcards</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">E-mailadres</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versie <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">1 dag geleden actief</translation>
 <translation id="5711039611392265845">Bekijk <ph name="BEGIN_LINK" />Synchronisatie en Google-services<ph name="END_LINK" /> voor meer instellingen die verband houden met privacy, beveiliging en gegevensverzameling.</translation>
 <translation id="5728700505257787410">Er is een probleem opgetreden met het inloggen op je account.</translation>
 <translation id="5737974891429562743">De inloggegevens voor het account zijn verouderd. Voer een update uit om te synchroniseren.</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 c6ebed5..6bbfc3c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Escolher pasta</translation>
 <translation id="1265739287306757398">Saiba como</translation>
 <translation id="1272079795634619415">Parar</translation>
+<translation id="1283524564873030414">Últimas 24 horas</translation>
 <translation id="1323735185997015385">Excluir</translation>
 <translation id="132683371494960526">Toque duas vezes para alterar a pasta pai.</translation>
 <translation id="1340643665687018190">Fechar menu</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Avançado</translation>
 <translation id="1989112275319619282">Procurar</translation>
 <translation id="2015722694326466240">Para ver as senhas, defina uma senha no dispositivo primeiro.</translation>
+<translation id="2073572773299281212">Ativado há <ph name="DAYS" /> dias</translation>
 <translation id="2074131957428911366">Nas <ph name="BEGIN_LINK" />configurações<ph name="END_LINK" />, é possível escolher a qualquer momento o que é sincronizado.</translation>
 <translation id="2079545284768500474">Desfazer</translation>
 <translation id="209018056901015185">Versão para computador</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Abrir todos</translation>
 <translation id="2570206273416014374">Envia alguns cookies e pesquisas da barra de endereço e da caixa de pesquisa para seu mecanismo de pesquisa padrão.</translation>
 <translation id="2572712655377361602">Uma política do dispositivo bloqueou o acesso às suas fotos</translation>
+<translation id="2578571896248130439">Enviar página da Web</translation>
 <translation id="2584132361465095047">Adicionar conta…</translation>
 <translation id="2625189173221582860">Senha copiada</translation>
 <translation id="2648803196158606475">Excluir lidas</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Marcar...</translation>
 <translation id="3157684681743766797">Marcar tudo...</translation>
 <translation id="3175081911749765310">Serviços da Web</translation>
+<translation id="3178650076442119961">Ativado hoje</translation>
 <translation id="3207960819495026254">Adicionado aos favoritos</translation>
 <translation id="3224641773458703735">Para exportar senhas, defina uma no dispositivo primeiro.</translation>
 <translation id="3240426699337459095">Link copiado</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Para ler um código QR, ative a câmera nas configurações</translation>
 <translation id="4281844954008187215">Termos de Serviço</translation>
 <translation id="430793432425771671">Sincronizar tudo</translation>
+<translation id="430967081421617822">Todo o período</translation>
 <translation id="4338650699862464074">Envia URLs das páginas que você visita para o Google.</translation>
 <translation id="4359125752503270327">Esta página será aberta em outro aplicativo.</translation>
 <translation id="4370827530403103842">A sincronização não está funcionando. Toque para corrigir.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">A sincronização está desativada</translation>
 <translation id="5132942445612118989">Sincronize suas senhas, seu histórico e muito mais em todos os dispositivos</translation>
 <translation id="5140288047769711648">Esta senha ficará salva no Chrome. Você não precisa memorizá-la.</translation>
+<translation id="5150492518600715772">Enviar para o seu dispositivo</translation>
 <translation id="5181140330217080051">Fazendo download</translation>
 <translation id="5186185447130319458">Particular</translation>
 <translation id="5190835502935405962">Barra de favoritos</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Nome</translation>
 <translation id="5388358297987318779">Abrir imagem</translation>
 <translation id="5409365236829784218">Nenhum aplicativo instalado pode abrir este arquivo.</translation>
+<translation id="5416022985862681400">Últimos sete dias</translation>
 <translation id="5433691172869980887">Nome de usuário copiado</translation>
 <translation id="54401264925851789">Informações de segurança</translation>
 <translation id="5443952882982198570">Cartões de crédito</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">E-mail</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Versão <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">Ativado há um dia</translation>
 <translation id="5711039611392265845">Para ver mais configurações relacionadas à privacidade, segurança e coleta de dados, acesse <ph name="BEGIN_LINK" />Serviços do Google e de sincronização<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">Houve um problema durante o login em sua conta.</translation>
 <translation id="5737974891429562743">Os detalhes de login da conta estão desatualizados. Atualize-os para iniciar a sincronização.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index fc5391f..14acbb1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Выбор папки</translation>
 <translation id="1265739287306757398">Подробнее</translation>
 <translation id="1272079795634619415">Остановить</translation>
+<translation id="1283524564873030414">Последние 24 часа</translation>
 <translation id="1323735185997015385">Удалить</translation>
 <translation id="132683371494960526">Чтобы изменить родительскую папку, нажмите дважды.</translation>
 <translation id="1340643665687018190">Закрыть меню</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Дополнительные</translation>
 <translation id="1989112275319619282">Выбрать</translation>
 <translation id="2015722694326466240">Чтобы просматривать пароли, настройте на устройстве код доступа.</translation>
+<translation id="2073572773299281212">Последние действия: <ph name="DAYS" /> дн. назад</translation>
 <translation id="2074131957428911366">Вы всегда можете выбрать, что синхронизировать, в <ph name="BEGIN_LINK" />настройках<ph name="END_LINK" />.</translation>
 <translation id="2079545284768500474">Отмена</translation>
 <translation id="209018056901015185">Версия для ПК</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Открыть все</translation>
 <translation id="2570206273416014374">Отправлять некоторые файлы cookie и поисковые запросы из адресной строки и окна поиска в поисковую систему по умолчанию.</translation>
 <translation id="2572712655377361602">Политика устройства блокирует доступ к фотографиям</translation>
+<translation id="2578571896248130439">Отправка веб-страницы</translation>
 <translation id="2584132361465095047">Добавить аккаунт</translation>
 <translation id="2625189173221582860">Пароль скопирован</translation>
 <translation id="2648803196158606475">Удалить прочитанное</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Отметить…</translation>
 <translation id="3157684681743766797">Отметить все…</translation>
 <translation id="3175081911749765310">Веб-сервисы</translation>
+<translation id="3178650076442119961">Последние действия: сегодня</translation>
 <translation id="3207960819495026254">Добавлено в закладки.</translation>
 <translation id="3224641773458703735">Чтобы экспортировать пароли, настройте на устройстве код доступа.</translation>
 <translation id="3240426699337459095">Готово</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Чтобы отсканировать QR-код, разрешите доступ к камере в настройках.</translation>
 <translation id="4281844954008187215">Условия использования</translation>
 <translation id="430793432425771671">Синхронизировать все</translation>
+<translation id="430967081421617822">Все время</translation>
 <translation id="4338650699862464074">Отправлять URL страниц, которые вы посещаете, в Google.</translation>
 <translation id="4359125752503270327">Страница откроется в другом приложении.</translation>
 <translation id="4370827530403103842">Синхронизация не работает. Нажмите, чтобы исправить.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">Синхронизация выключена</translation>
 <translation id="5132942445612118989">Синхронизируйте пароли, историю и другие данные на всех ваших устройствах</translation>
 <translation id="5140288047769711648">Вам не нужно запоминать этот пароль, так как он будет сохранен в Chrome.</translation>
+<translation id="5150492518600715772">Отправить на свое устройство</translation>
 <translation id="5181140330217080051">Скачивается</translation>
 <translation id="5186185447130319458">Конфиденциально</translation>
 <translation id="5190835502935405962">Панель закладок</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Название</translation>
 <translation id="5388358297987318779">Открыть изображение</translation>
 <translation id="5409365236829784218">Нет приложений, поддерживающих файлы этого типа.</translation>
+<translation id="5416022985862681400">Последние 7 дней</translation>
 <translation id="5433691172869980887">Имя пользователя скопировано</translation>
 <translation id="54401264925851789">Сведения о надежности страницы</translation>
 <translation id="5443952882982198570">Кредитные карты</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">Электронная почта</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Версия <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">Последние действия: 1 день назад</translation>
 <translation id="5711039611392265845">Остальные настройки конфиденциальности, безопасности и сбора данных вы можете найти в разделе <ph name="BEGIN_LINK" />Синхронизация сервисов Google<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">Не удалось войти в аккаунт.</translation>
 <translation id="5737974891429562743">Данные для входа в аккаунт устарели. Чтобы начать синхронизацию, обновите их.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index 5048571d..5c0d522 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Välj mapp</translation>
 <translation id="1265739287306757398">Läs mer</translation>
 <translation id="1272079795634619415">Stopp</translation>
+<translation id="1283524564873030414">Senaste 24 timmarna</translation>
 <translation id="1323735185997015385">Radera</translation>
 <translation id="132683371494960526">Tryck snabbt två gånger om du vill ändra överordnad mapp.</translation>
 <translation id="1340643665687018190">Stäng menyn</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Avancerat</translation>
 <translation id="1989112275319619282">Bläddra</translation>
 <translation id="2015722694326466240">Du måste ställa in ett lösenord på enheten om du vill kunna se lösenorden.</translation>
+<translation id="2073572773299281212">Aktiv för <ph name="DAYS" /> dagar sedan</translation>
 <translation id="2074131957428911366">Du kan alltid välja vad som ska synkroniseras i <ph name="BEGIN_LINK" />inställningarna<ph name="END_LINK" />.</translation>
 <translation id="2079545284768500474">Ångra</translation>
 <translation id="209018056901015185">Använd skrivbordsversion</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Öppna alla</translation>
 <translation id="2570206273416014374">Skickar vissa cookies och sökningar från adressfältet och sökrutan till standardsökmotorn.</translation>
 <translation id="2572712655377361602">Åtkomsten till bilderna har blockerats av en enhetspolicy</translation>
+<translation id="2578571896248130439">Skicka webbsida</translation>
 <translation id="2584132361465095047">Lägg till konto …</translation>
 <translation id="2625189173221582860">Lösenordet har kopierats</translation>
 <translation id="2648803196158606475">Radera lästa</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Markera …</translation>
 <translation id="3157684681743766797">Markera alla …</translation>
 <translation id="3175081911749765310">Webbtjänster</translation>
+<translation id="3178650076442119961">Aktiv i dag</translation>
 <translation id="3207960819495026254">Bokmärkt</translation>
 <translation id="3224641773458703735">Du måste ställa in ett lösenord på enheten om du vill kunna exportera lösenord.</translation>
 <translation id="3240426699337459095">Länken har kopierats</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Om du vill skanna en QR-kod aktiverar du kameran i inställningarna</translation>
 <translation id="4281844954008187215">Användarvillkor</translation>
 <translation id="430793432425771671">Synkronisera allt</translation>
+<translation id="430967081421617822">Alltid</translation>
 <translation id="4338650699862464074">Skickar webbadresser till sidor du besöker till Google.</translation>
 <translation id="4359125752503270327">Sidan öppnas i en annan app.</translation>
 <translation id="4370827530403103842">Det går inte att synkronisera. Tryck här för att åtgärda detta.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">Synkronisering är av</translation>
 <translation id="5132942445612118989">Synkronisera lösenord, historik med mera på alla dina enheter</translation>
 <translation id="5140288047769711648">Lösenordet sparas åt dig i Chrome. Du behöver inte komma ihåg det.</translation>
+<translation id="5150492518600715772">Skicka till din enhet</translation>
 <translation id="5181140330217080051">Nedladdning</translation>
 <translation id="5186185447130319458">Privat</translation>
 <translation id="5190835502935405962">Bokmärkesfältet</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Namn</translation>
 <translation id="5388358297987318779">Öppna bild</translation>
 <translation id="5409365236829784218">Det finns inga installerade appar som kan öppna filen.</translation>
+<translation id="5416022985862681400">Senaste 7 dagarna</translation>
 <translation id="5433691172869980887">Användarnamnet har kopierats</translation>
 <translation id="54401264925851789">Sidans säkerhetsinfo</translation>
 <translation id="5443952882982198570">Kreditkort</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">E-post</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Version <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">Aktiv för 1 dag sedan</translation>
 <translation id="5711039611392265845">Fler inställningar som rör sekretess, säkerhet och datainsamling finns under <ph name="BEGIN_LINK" />Synk och Googles tjänster<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">Det gick inte att logga in på ditt konto.</translation>
 <translation id="5737974891429562743">Inloggningsuppgifterna för kontot är inte aktuella. Starta synkroniseringen genom att uppdatera.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index 546643b..ae6dd29 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">ఫోల్డర్‌ను ఎంచుకోండి</translation>
 <translation id="1265739287306757398">ఎలాగో తెలుసుకోండి</translation>
 <translation id="1272079795634619415">ఆపు</translation>
+<translation id="1283524564873030414">గత 24 గంటలు</translation>
 <translation id="1323735185997015385">తొలగించు</translation>
 <translation id="132683371494960526">మూలాధారిత ఫోల్డర్‌ను మార్చడానికి రెండుసార్లు నొక్కండి.</translation>
 <translation id="1340643665687018190">మెనూను మూసివేయి</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">ఆధునిక</translation>
 <translation id="1989112275319619282">బ్రౌజ్ చేయి</translation>
 <translation id="2015722694326466240">పాస్‌వర్డ్‌లను చూడటానికి, మీరు ముందుగా తప్పక మీ పరికరంలో పాస్‌కోడ్‌ను సెట్ చేయాలి.</translation>
+<translation id="2073572773299281212"><ph name="DAYS" /> రోజుల క్రితం యాక్టివ్‌గా ఉంది</translation>
 <translation id="2074131957428911366">మీరు ఎప్పుడైనా <ph name="BEGIN_LINK" />సెట్టింగ్‌ల<ph name="END_LINK" /> ద్వారా వేటిని సింక్ చేయాలో ఎంచుకోవచ్చు.</translation>
 <translation id="2079545284768500474">చర్య రద్దు</translation>
 <translation id="209018056901015185">డెస్క్‌టాప్ సైట్‌ను అభ్యర్థించు</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">అన్నీ తెరువు</translation>
 <translation id="2570206273416014374">చిరునామా బార్ మరియు శోధన బాక్స్‌లోని కొన్ని కుక్కీలు, శోధనలను మీ డిఫాల్ట్ శోధన ఇంజిన్‌కు పంపుతుంది.</translation>
 <translation id="2572712655377361602">ఒక పరికర విధానం మీ ఫోటోలకు యాక్సెస్‌ను బ్లాక్ చేసింది</translation>
+<translation id="2578571896248130439">వెబ్‌పేజీని పంపండి</translation>
 <translation id="2584132361465095047">ఖాతాను జోడించు…</translation>
 <translation id="2625189173221582860">పాస్‌వర్డ్ కాపీ చేయబడింది</translation>
 <translation id="2648803196158606475">చదివిన వాటిని తొలగించు</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">గుర్తు పెట్టు…</translation>
 <translation id="3157684681743766797">అన్నీ గుర్తు పెట్టు…</translation>
 <translation id="3175081911749765310">వెబ్ సేవలు</translation>
+<translation id="3178650076442119961">ఈ రోజు యాక్టివ్‌గా ఉంది</translation>
 <translation id="3207960819495026254">బుక్‌మార్క్ చేయబడింది</translation>
 <translation id="3224641773458703735">పాస్‌వర్డ్‌లను ఎగుమతి చేయడానికి, మీరు ముందుగా మీ పరికరంలో పాస్‌కోడ్‌ను సెట్ చేయాలి.</translation>
 <translation id="3240426699337459095">లింక్ కాపీ చేయబడింది</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">QR కోడ్‌ను స్కాన్ చేయడానికి, సెట్టింగ్‌ల్లో కెమెరాను ప్రారంభించండి</translation>
 <translation id="4281844954008187215">సేవా నిబంధనలు</translation>
 <translation id="430793432425771671">ప్రతి ఒక్కటీ సమకాలీకరించండి</translation>
+<translation id="430967081421617822">మొత్తం సమయం</translation>
 <translation id="4338650699862464074">మీరు సందర్శించే పేజీల URLలను Googleకు పంపుతుంది.</translation>
 <translation id="4359125752503270327">ఈ పేజీ మరొక అప్లికేషన్‌లో తెరవబడుతుంది.</translation>
 <translation id="4370827530403103842">సమకాలీకరణ పని చేయడం లేదు. పరిష్కరించడానికి నొక్కండి.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">సమకాలీకరణ ఆఫ్‌లో ఉంది</translation>
 <translation id="5132942445612118989">అన్ని పరికరాల్లో మీ పాస్‌వర్డ్‌లు, చరిత్ర, మరిన్నింటిని సింక్ చేయండి</translation>
 <translation id="5140288047769711648">Chrome మీకు సంబంధించి ఈ పాస్‌వర్డ్‌ను గుర్తుంచుకుంటుంది. మీరు గుర్తుంచుకోనవసరం లేదు.</translation>
+<translation id="5150492518600715772">మీ పరికరానికి పంపండి</translation>
 <translation id="5181140330217080051">డౌన్‌లోడ్ చేస్తోంది</translation>
 <translation id="5186185447130319458">ప్రైవేట్</translation>
 <translation id="5190835502935405962">బుక్‌మార్క్‌ల బార్</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">పేరు</translation>
 <translation id="5388358297987318779">చిత్రాన్ని తెరువు</translation>
 <translation id="5409365236829784218">ఈ ఫైల్‌ను తెరవగలిగే అనువర్తనాలు ఇన్‌స్టాల్ చేయబడలేదు.</translation>
+<translation id="5416022985862681400">గత 7 రోజులు</translation>
 <translation id="5433691172869980887">వినియోగదారు పేరు కాపీ చేయబడింది</translation>
 <translation id="54401264925851789">పేజీ భద్రతా సమాచారం</translation>
 <translation id="5443952882982198570">క్రెడిట్ కార్డ్‌లు</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">ఇమెయిల్</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783"><ph name="PRODUCT_VERSION" /> వెర్షన్</translation>
+<translation id="5706552126692816153">1 రోజు క్రితం యాక్టివ్‌గా ఉంది</translation>
 <translation id="5711039611392265845">గోప్యత, భద్రత, డేటా సేకరణకు సంబంధించిన మరిన్ని సెట్టింగ్‌ల కోసం, <ph name="BEGIN_LINK" />సింక్ మరియు Google సేవలు<ph name="END_LINK" /> చూడండి.</translation>
 <translation id="5728700505257787410">క్షమించండి, మీ ఖాతాకు సైన్ ఇన్ చేయడంలో సమస్య ఉంది.</translation>
 <translation id="5737974891429562743">ఖాతా సైన్-ఇన్ వివరాలు పాతవి. సింక్‌ను ప్రారంభించడానికి అప్‌డేట్ చేయండి.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 5270306..c17c97d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Klasör Seçin</translation>
 <translation id="1265739287306757398">Nasıl Yapacağınızı Öğrenin</translation>
 <translation id="1272079795634619415">Durdur</translation>
+<translation id="1283524564873030414">Son 24 Saat</translation>
 <translation id="1323735185997015385">Sil</translation>
 <translation id="132683371494960526">Üst klasörü değiştirmek için iki kez dokunun.</translation>
 <translation id="1340643665687018190">Menüyü Kapat</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Gelişmiş</translation>
 <translation id="1989112275319619282">Göz at</translation>
 <translation id="2015722694326466240">Şifreleri görmek için öncelikle cihazınızda bir şifre kodu ayarlamanız gerekir.</translation>
+<translation id="2073572773299281212"><ph name="DAYS" /> Gün Önce Etkinleştirildi</translation>
 <translation id="2074131957428911366">Neyin senkronize edileceğini istediğiniz zaman <ph name="BEGIN_LINK" />ayarlardan<ph name="END_LINK" /> seçebilirsiniz.</translation>
 <translation id="2079545284768500474">Geri al</translation>
 <translation id="209018056901015185">Masaüstü Sitesi İste</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Tümünü Aç</translation>
 <translation id="2570206273416014374">Adres çubuğundan ve arama kutusundan bazı çerezleri ve aramaları varsayılan arama motorunuza gönderir.</translation>
 <translation id="2572712655377361602">Fotoğraflarınıza erişim bir cihaz politikası tarafından engellendi</translation>
+<translation id="2578571896248130439">Web sayfasını gönder</translation>
 <translation id="2584132361465095047">Hesap Ekle…</translation>
 <translation id="2625189173221582860">Şifre kopyalandı</translation>
 <translation id="2648803196158606475">Okunanları Sil</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">İşaretle…</translation>
 <translation id="3157684681743766797">Tümünü İşaretle…</translation>
 <translation id="3175081911749765310">Web Hizmetleri</translation>
+<translation id="3178650076442119961">Bugün Etkin</translation>
 <translation id="3207960819495026254">Yer işareti koyuldu</translation>
 <translation id="3224641773458703735">Şifreleri dışa aktarmak için öncelikle cihazınızda bir şifre kodu ayarlamanız gerekir.</translation>
 <translation id="3240426699337459095">Bağlantı kopyalandı</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">QR kodu taramak için ayarlardan kamerayı etkinleştirin.</translation>
 <translation id="4281844954008187215">Hizmet Şartları</translation>
 <translation id="430793432425771671">Her Şeyi Senkronize Et</translation>
+<translation id="430967081421617822">Tüm Zamanlar</translation>
 <translation id="4338650699862464074">Ziyaret ettiğiniz sayfaların URL'lerini Google'a gönderir.</translation>
 <translation id="4359125752503270327">Bu sayfa, başka bir uygulamada açılacak.</translation>
 <translation id="4370827530403103842">Senkronizasyon çalışmıyor. Düzeltmek için dokunun.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">Senkronizasyon kapalı</translation>
 <translation id="5132942445612118989">Tüm cihazlardaki şifreleriniz, geçmişiniz ve diğer öğelerinizi senkronize edin</translation>
 <translation id="5140288047769711648">Chrome bu şifreyi sizin için hatırlar. Sizin şifreyi hatırlamanız gerekmez.</translation>
+<translation id="5150492518600715772">Cihazıma Gönder</translation>
 <translation id="5181140330217080051">İndiriliyor</translation>
 <translation id="5186185447130319458">Gizli</translation>
 <translation id="5190835502935405962">Yer İşareti Çubuğu</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Ad</translation>
 <translation id="5388358297987318779">Resmi Aç</translation>
 <translation id="5409365236829784218">Bu dosyayı açabilecek yüklü uygulama yok.</translation>
+<translation id="5416022985862681400">Son 7 Gün</translation>
 <translation id="5433691172869980887">Kullanıcı adı kopyalandı</translation>
 <translation id="54401264925851789">Sayfa Güvenlik Bilgileri</translation>
 <translation id="5443952882982198570">Kredi Kartları</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">E-posta</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Sürüm <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">1 Gün Önce Etkinleştirildi</translation>
 <translation id="5711039611392265845">Gizlilik, güvenlik ve veri toplamayla ilgili daha fazla ayar için <ph name="BEGIN_LINK" />Senkronizasyon ve Google Hizmetleri<ph name="END_LINK" /> konusuna bakın.</translation>
 <translation id="5728700505257787410">Maalesef hesabınızda oturum açmayla ilgili bir sorun oldu.</translation>
 <translation id="5737974891429562743">Hesap oturum açma ayrıntıları eski. Senkronizasyonu başlatmak için güncelleyin.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index b2ef496..71582663 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Вибрати папку</translation>
 <translation id="1265739287306757398">Докладніше</translation>
 <translation id="1272079795634619415">Зупинити</translation>
+<translation id="1283524564873030414">Останні 24 години</translation>
 <translation id="1323735185997015385">Видалити</translation>
 <translation id="132683371494960526">Двічі торкніться, щоб змінити батьківську папку.</translation>
 <translation id="1340643665687018190">Закрити меню</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Розширені</translation>
 <translation id="1989112275319619282">Переглянути</translation>
 <translation id="2015722694326466240">Щоб переглядати паролі, спершу потрібно налаштувати код доступу на пристрої.</translation>
+<translation id="2073572773299281212">У мережі <ph name="DAYS" /> дн. тому</translation>
 <translation id="2074131957428911366">Ви можете будь-коли вибрати дані для синхронізації в <ph name="BEGIN_LINK" />налаштуваннях<ph name="END_LINK" />.</translation>
 <translation id="2079545284768500474">Відмінити</translation>
 <translation id="209018056901015185">Повна версія сайту</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Відкрити всі</translation>
 <translation id="2570206273416014374">Надсилає деякі файли cookie й пошукові запити з адресного рядка та вікна пошуку в пошукову систему за умовчанням.</translation>
 <translation id="2572712655377361602">пристрою</translation>
+<translation id="2578571896248130439">Надіслати веб-сторінку</translation>
 <translation id="2584132361465095047">Додати обліковий запис…</translation>
 <translation id="2625189173221582860">Пароль скопійовано</translation>
 <translation id="2648803196158606475">Видалити прочитані</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Позначити…</translation>
 <translation id="3157684681743766797">Позначити всі…</translation>
 <translation id="3175081911749765310">Веб-служби</translation>
+<translation id="3178650076442119961">У мережі сьогодні</translation>
 <translation id="3207960819495026254">Створено закладку</translation>
 <translation id="3224641773458703735">Щоб експортувати паролі, спершу потрібно налаштувати код доступу на пристрої.</translation>
 <translation id="3240426699337459095">Посилання скопійовано</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Щоб відсканувати QR-код, увімкніть камеру в налаштуваннях</translation>
 <translation id="4281844954008187215">Умови використання</translation>
 <translation id="430793432425771671">Синхронізувати все</translation>
+<translation id="430967081421617822">Увесь час</translation>
 <translation id="4338650699862464074">Надсилає в Google URL-адреси відвіданих сторінок.</translation>
 <translation id="4359125752503270327">Ця сторінка відкриється в іншому додатку.</translation>
 <translation id="4370827530403103842">Синхронізація не працює. Торкніться, щоб виправити.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">Синхронізацію вимкнено</translation>
 <translation id="5132942445612118989">Синхронізуйте свої паролі, історію тощо на всіх пристроях</translation>
 <translation id="5140288047769711648">Chrome збереже цей пароль. Вам не потрібно його запам’ятовувати.</translation>
+<translation id="5150492518600715772">Надіслати на ваш пристрій</translation>
 <translation id="5181140330217080051">Завантаження</translation>
 <translation id="5186185447130319458">Конфіденційно</translation>
 <translation id="5190835502935405962">Панель закладок</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Назва</translation>
 <translation id="5388358297987318779">Відкрити зображення</translation>
 <translation id="5409365236829784218">Немає встановлених програм, які можуть відкрити цей файл.</translation>
+<translation id="5416022985862681400">Останні 7 днів</translation>
 <translation id="5433691172869980887">Ім’я користувача скопійовано</translation>
 <translation id="54401264925851789">Відомості про безпеку сторінки</translation>
 <translation id="5443952882982198570">Кредитні картки</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">Електронна пошта</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Версія <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">У мережі 1 день тому</translation>
 <translation id="5711039611392265845">Інші налаштування конфіденційності, безпеки та збору даних доступні в розділі <ph name="BEGIN_LINK" />Синхронізація та сервіси Google<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">Під час входу в обліковий запис виникла проблема.</translation>
 <translation id="5737974891429562743">Дані для входу в обліковий запис застаріли. Оновіть їх, щоб почати синхронізацію.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index 8fb9936..9357d151 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">Chọn thư mục</translation>
 <translation id="1265739287306757398">Tìm hiểu cách thức</translation>
 <translation id="1272079795634619415">Dừng</translation>
+<translation id="1283524564873030414">24 giờ qua</translation>
 <translation id="1323735185997015385">Xóa</translation>
 <translation id="132683371494960526">Nhấn đúp để thay đổi thư mục mẹ.</translation>
 <translation id="1340643665687018190">Đóng Menu</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">Nâng cao</translation>
 <translation id="1989112275319619282">Duyệt qua</translation>
 <translation id="2015722694326466240">Để xem mật khẩu, trước tiên bạn phải đặt mật mã trên thiết bị của mình.</translation>
+<translation id="2073572773299281212">Hoạt động <ph name="DAYS" /> ngày trước</translation>
 <translation id="2074131957428911366">Bạn luôn có thể chọn nội dung muốn đồng bộ hóa trong phần <ph name="BEGIN_LINK" />cài đặt<ph name="END_LINK" />.</translation>
 <translation id="2079545284768500474">Hoàn tác</translation>
 <translation id="209018056901015185">Yêu cầu trang web cho máy tính</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">Mở tất cả</translation>
 <translation id="2570206273416014374">Gửi một số cookie và nội dung tìm kiếm trên thanh địa chỉ cũng như hộp tìm kiếm tới công cụ tìm kiếm mặc định.</translation>
 <translation id="2572712655377361602">Chính sách thiết bị đã chặn quyền truy cập vào ảnh của bạn</translation>
+<translation id="2578571896248130439">Gửi trang web</translation>
 <translation id="2584132361465095047">Thêm tài khoản...</translation>
 <translation id="2625189173221582860">Đã sao chép mật khẩu</translation>
 <translation id="2648803196158606475">Xóa mục đã đọc</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">Đánh dấu...</translation>
 <translation id="3157684681743766797">Đánh dấu tất cả...</translation>
 <translation id="3175081911749765310">Dịch vụ web</translation>
+<translation id="3178650076442119961">Hoạt động hôm nay</translation>
 <translation id="3207960819495026254">Đã đánh dấu trang</translation>
 <translation id="3224641773458703735">Để xuất mật khẩu, trước tiên bạn phải đặt mật mã trên thiết bị của mình.</translation>
 <translation id="3240426699337459095">Đã sao chép liên kết</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">Để quét mã QR, hãy bật máy ảnh từ cài đặt</translation>
 <translation id="4281844954008187215">Điều khoản dịch vụ</translation>
 <translation id="430793432425771671">Đồng bộ hóa mọi thứ</translation>
+<translation id="430967081421617822">Từ trước đến nay</translation>
 <translation id="4338650699862464074">Gửi URL của các trang bạn truy cập cho Google.</translation>
 <translation id="4359125752503270327">Trang này sẽ mở trong ứng dụng khác.</translation>
 <translation id="4370827530403103842">Đồng bộ hóa không hoạt động. Nhấn để khắc phục sự cố.</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">Đồng bộ hóa đã tắt</translation>
 <translation id="5132942445612118989">Đồng bộ hóa mật khẩu, lịch sử và các thông tin khác của bạn trên tất cả các thiết bị</translation>
 <translation id="5140288047769711648">Chrome sẽ nhớ mật khẩu này cho bạn. Bạn không phải nhớ mật khẩu.</translation>
+<translation id="5150492518600715772">Gửi tới thiết bị của bạn</translation>
 <translation id="5181140330217080051">Đang tải xuống</translation>
 <translation id="5186185447130319458">Riêng tư</translation>
 <translation id="5190835502935405962">Thanh Dấu trang</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">Tên</translation>
 <translation id="5388358297987318779">Mở hình ảnh</translation>
 <translation id="5409365236829784218">Không có ứng dụng nào được cài đặt có thể mở tệp này.</translation>
+<translation id="5416022985862681400">7 ngày qua</translation>
 <translation id="5433691172869980887">Đã sao chép tên người dùng</translation>
 <translation id="54401264925851789">Thông tin bảo mật trang</translation>
 <translation id="5443952882982198570">Thẻ tín dụng</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">Email</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">Phiên bản <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">Hoạt động 1 ngày trước</translation>
 <translation id="5711039611392265845">Bạn có thể xem thêm các tùy chọn cài đặt liên quan đến quyền riêng tư, bảo mật và hoạt động thu thập dữ liệu trong phần <ph name="BEGIN_LINK" />Đồng bộ hóa và các dịch vụ của Google<ph name="END_LINK" />.</translation>
 <translation id="5728700505257787410">Rất tiếc, đã xảy ra sự cố khi đăng nhập tài khoản của bạn.</translation>
 <translation id="5737974891429562743">Thông tin chi tiết để đăng nhập tài khoản đã lỗi thời. Hãy cập nhật để bắt đầu đồng bộ hóa.</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 bc1965fe..07588c8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">选择文件夹</translation>
 <translation id="1265739287306757398">了解如何操作</translation>
 <translation id="1272079795634619415">停止</translation>
+<translation id="1283524564873030414">过去 24 小时</translation>
 <translation id="1323735185997015385">删除</translation>
 <translation id="132683371494960526">点按两次即可更改父文件夹。</translation>
 <translation id="1340643665687018190">关闭菜单</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">高级</translation>
 <translation id="1989112275319619282">浏览</translation>
 <translation id="2015722694326466240">要想查看密码,您必须先在设备上设置密码。</translation>
+<translation id="2073572773299281212"><ph name="DAYS" /> 天前曾有活动</translation>
 <translation id="2074131957428911366">您始终可在<ph name="BEGIN_LINK" />设置<ph name="END_LINK" />中选择要同步的内容。</translation>
 <translation id="2079545284768500474">撤消</translation>
 <translation id="209018056901015185">请求切换到桌面版网站</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">全部打开</translation>
 <translation id="2570206273416014374">将一些 Cookie 以及地址栏和搜索框中的搜索字词发送给您的默认搜索引擎。</translation>
 <translation id="2572712655377361602">设备政策已禁用对您的照片的访问权限</translation>
+<translation id="2578571896248130439">发送网页</translation>
 <translation id="2584132361465095047">添加帐号…</translation>
 <translation id="2625189173221582860">已复制密码</translation>
 <translation id="2648803196158606475">删除已读项</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">标为…</translation>
 <translation id="3157684681743766797">全部标为…</translation>
 <translation id="3175081911749765310">网络服务</translation>
+<translation id="3178650076442119961">今天曾有活动</translation>
 <translation id="3207960819495026254">已加书签</translation>
 <translation id="3224641773458703735">要想导出密码,您必须先在设备上设置屏幕锁定。</translation>
 <translation id="3240426699337459095">已复制链接</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">要扫描 QR 码,请从设置中启用相机功能</translation>
 <translation id="4281844954008187215">服务条款</translation>
 <translation id="430793432425771671">同步所有内容</translation>
+<translation id="430967081421617822">时间不限</translation>
 <translation id="4338650699862464074">将您所访问的网页的网址发送给 Google。</translation>
 <translation id="4359125752503270327">此页面将在其他应用中打开。</translation>
 <translation id="4370827530403103842">同步功能无法正常运行。点按即可修复此问题。</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">同步功能已关闭</translation>
 <translation id="5132942445612118989">将您的密码、历史记录等信息同步到所有设备上</translation>
 <translation id="5140288047769711648">Chrome 将为您记住此密码,因此,您不必记住它。</translation>
+<translation id="5150492518600715772">发送到您的设备</translation>
 <translation id="5181140330217080051">正在下载</translation>
 <translation id="5186185447130319458">不公开</translation>
 <translation id="5190835502935405962">书签栏</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">名称</translation>
 <translation id="5388358297987318779">打开图片</translation>
 <translation id="5409365236829784218">没有安装可打开此文件的应用。</translation>
+<translation id="5416022985862681400">过去 7 天</translation>
 <translation id="5433691172869980887">已复制用户名</translation>
 <translation id="54401264925851789">网页安全信息</translation>
 <translation id="5443952882982198570">信用卡</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">电子邮件</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">版本 <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">1 天前曾有活动</translation>
 <translation id="5711039611392265845">若要了解更多与隐私、安全和数据收集相关的设置,请参阅<ph name="BEGIN_LINK" />同步功能和 Google 服务<ph name="END_LINK" />。</translation>
 <translation id="5728700505257787410">很抱歉,登录您的帐号时出现问题。</translation>
 <translation id="5737974891429562743">帐号登录详细信息已过期,请进行更新以开始同步。</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 11c51da..787edd8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -25,6 +25,7 @@
 <translation id="1254117744268754948">選擇資料夾</translation>
 <translation id="1265739287306757398">操作說明</translation>
 <translation id="1272079795634619415">停止</translation>
+<translation id="1283524564873030414">過去 24 小時</translation>
 <translation id="1323735185997015385">刪除</translation>
 <translation id="132683371494960526">輕觸兩下即可變更上層資料夾。</translation>
 <translation id="1340643665687018190">關閉選單</translation>
@@ -79,6 +80,7 @@
 <translation id="1974060860693918893">進階</translation>
 <translation id="1989112275319619282">瀏覽</translation>
 <translation id="2015722694326466240">你必須先在裝置上設定通行碼,才能查看密碼。</translation>
+<translation id="2073572773299281212">上次使用時間:<ph name="DAYS" /> 天前</translation>
 <translation id="2074131957428911366">你隨時可以在<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />中選擇要同步處理的資料。</translation>
 <translation id="2079545284768500474">復原</translation>
 <translation id="209018056901015185">切換為電腦版網站</translation>
@@ -113,6 +115,7 @@
 <translation id="2529021024822217800">全部開啟</translation>
 <translation id="2570206273416014374">將網址列和搜尋框中的部分 Cookie 和搜尋字詞傳送至預設搜尋引擎。</translation>
 <translation id="2572712655377361602">裝置政策禁止您存取相片</translation>
+<translation id="2578571896248130439">傳送網頁</translation>
 <translation id="2584132361465095047">新增帳戶…</translation>
 <translation id="2625189173221582860">已複製密碼</translation>
 <translation id="2648803196158606475">刪除已讀取的項目</translation>
@@ -152,6 +155,7 @@
 <translation id="3112556859945124369">標示…</translation>
 <translation id="3157684681743766797">全部標示…</translation>
 <translation id="3175081911749765310">網路服務</translation>
+<translation id="3178650076442119961">上次使用時間:今天</translation>
 <translation id="3207960819495026254">已加入書籤</translation>
 <translation id="3224641773458703735">你必須先在裝置上設定通行碼,才能匯出密碼。</translation>
 <translation id="3240426699337459095">連結已複製</translation>
@@ -226,6 +230,7 @@
 <translation id="4272631900155121838">如要掃描 QR 圖碼,請在設定中啟用相機</translation>
 <translation id="4281844954008187215">服務條款</translation>
 <translation id="430793432425771671">同步處理所有資料</translation>
+<translation id="430967081421617822">不限時間</translation>
 <translation id="4338650699862464074">將你造訪的網頁網址傳送給 Google。</translation>
 <translation id="4359125752503270327">這個網頁會在其他應用程式中開啟。</translation>
 <translation id="4370827530403103842">同步處理功能無法正常運作。請輕觸這裡以修正同步問題。</translation>
@@ -281,6 +286,7 @@
 <translation id="5127805178023152808">同步功能已停用</translation>
 <translation id="5132942445612118989">同步處理你所有裝置上的密碼、歷史記錄和其他設定</translation>
 <translation id="5140288047769711648">Chrome 會為你儲存這組密碼,因此你不必記住密碼。</translation>
+<translation id="5150492518600715772">傳送到你的裝置</translation>
 <translation id="5181140330217080051">下載中</translation>
 <translation id="5186185447130319458">私人</translation>
 <translation id="5190835502935405962">書籤列</translation>
@@ -295,6 +301,7 @@
 <translation id="5327248766486351172">名稱</translation>
 <translation id="5388358297987318779">開啟圖片</translation>
 <translation id="5409365236829784218">未安裝可開啟這個檔案的應用程式。</translation>
+<translation id="5416022985862681400">過去 7 天</translation>
 <translation id="5433691172869980887">已複製使用者名稱</translation>
 <translation id="54401264925851789">網頁安全性資訊</translation>
 <translation id="5443952882982198570">信用卡</translation>
@@ -309,6 +316,7 @@
 <translation id="5659593005791499971">電子郵件</translation>
 <translation id="5669528293118408608">www</translation>
 <translation id="567881659373499783">版本 <ph name="PRODUCT_VERSION" /></translation>
+<translation id="5706552126692816153">上次使用時間:1 天前</translation>
 <translation id="5711039611392265845">如需更多隱私權、安全性和資料收集的相關設定,請參閱<ph name="BEGIN_LINK" />同步處理和 Google 服務<ph name="END_LINK" />。</translation>
 <translation id="5728700505257787410">很抱歉,登入您的帳戶時發生問題。</translation>
 <translation id="5737974891429562743">帳戶登入詳細資訊過舊。請先更新,再開始進行同步處理。</translation>
diff --git a/ios/chrome/browser/ui/send_tab_to_self/BUILD.gn b/ios/chrome/browser/ui/send_tab_to_self/BUILD.gn
index 538aa9e7..598551c 100644
--- a/ios/chrome/browser/ui/send_tab_to_self/BUILD.gn
+++ b/ios/chrome/browser/ui/send_tab_to_self/BUILD.gn
@@ -9,7 +9,15 @@
     "send_tab_to_self_coordinator.mm",
   ]
   deps = [
+    ":send_tab_to_self_ui",
     "//base",
     "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
   ]
 }
+source_set("send_tab_to_self_ui") {
+  configs += [ "//build/config/compiler:enable_arc" ]
+  sources = [
+    "send_tab_to_self_modal_presentation_controller.h",
+    "send_tab_to_self_modal_presentation_controller.mm",
+  ]
+}
diff --git a/ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_coordinator.mm b/ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_coordinator.mm
index 59889418..87d26dd 100644
--- a/ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_coordinator.mm
+++ b/ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_coordinator.mm
@@ -5,21 +5,55 @@
 #import "ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_coordinator.h"
 
 #include "base/logging.h"
+#import "ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_modal_presentation_controller.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
 #error "This file requires ARC support."
 #endif
 
+@interface SendTabToSelfCoordinator () <UIViewControllerTransitioningDelegate>
+
+// The presentationController that shows the Send Tab To Self UI.
+@property(nonatomic, strong) SendTabToSelfModalPresentationController*
+    sendTabToSelfModalPresentationController;
+
+@end
+
 @implementation SendTabToSelfCoordinator
 
 #pragma mark - ChromeCoordinator Methods
 
 - (void)start {
-  NOTIMPLEMENTED();
+  UITableViewController* tableViewController =
+      [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
+  UINavigationController* navigationController = [[UINavigationController alloc]
+      initWithRootViewController:tableViewController];
+
+  navigationController.transitioningDelegate = self;
+  navigationController.modalPresentationStyle = UIModalPresentationCustom;
+  [self.baseViewController presentViewController:navigationController
+                                        animated:YES
+                                      completion:nil];
 }
 
 - (void)stop {
   NOTIMPLEMENTED();
 }
 
+#pragma mark-- UIViewControllerTransitioningDelegate
+
+- (UIPresentationController*)
+    presentationControllerForPresentedViewController:
+        (UIViewController*)presented
+                            presentingViewController:
+                                (UIViewController*)presenting
+                                sourceViewController:(UIViewController*)source {
+  SendTabToSelfModalPresentationController* presentationController =
+      [[SendTabToSelfModalPresentationController alloc]
+          initWithPresentedViewController:presented
+                 presentingViewController:presenting];
+  // TODO(crbug.com/970284) flesh out presentationController.
+  return presentationController;
+}
+
 @end
diff --git a/ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_modal_presentation_controller.h b/ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_modal_presentation_controller.h
new file mode 100644
index 0000000..91a1079
--- /dev/null
+++ b/ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_modal_presentation_controller.h
@@ -0,0 +1,15 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_SEND_TAB_TO_SELF_SEND_TAB_TO_SELF_MODAL_PRESENTATION_CONTROLLER_H_
+#define IOS_CHROME_BROWSER_UI_SEND_TAB_TO_SELF_SEND_TAB_TO_SELF_MODAL_PRESENTATION_CONTROLLER_H_
+
+#import <UIKit/UIKit.h>
+
+// PresentationController for the modal dialog.
+@interface SendTabToSelfModalPresentationController : UIPresentationController
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_SEND_TAB_TO_SELF_SEND_TAB_TO_SELF_MODAL_PRESENTATION_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_modal_presentation_controller.mm b/ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_modal_presentation_controller.mm
new file mode 100644
index 0000000..eaa8c45
--- /dev/null
+++ b/ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_modal_presentation_controller.mm
@@ -0,0 +1,13 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/send_tab_to_self/send_tab_to_self_modal_presentation_controller.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+@implementation SendTabToSelfModalPresentationController
+
+@end
diff --git a/media/base/android/media_drm_bridge.cc b/media/base/android/media_drm_bridge.cc
index 1a759fe57..483ee888 100644
--- a/media/base/android/media_drm_bridge.cc
+++ b/media/base/android/media_drm_bridge.cc
@@ -71,6 +71,7 @@
   KEY_STATUS_OUTPUT_NOT_ALLOWED = 2,
   KEY_STATUS_PENDING = 3,
   KEY_STATUS_INTERNAL_ERROR = 4,
+  KEY_STATUS_USABLE_IN_FUTURE = 5,  // Added in API level 29.
 };
 
 const uint8_t kWidevineUuid[16] = {
@@ -136,10 +137,24 @@
     case KeyStatus::KEY_STATUS_OUTPUT_NOT_ALLOWED:
       return CdmKeyInformation::OUTPUT_RESTRICTED;
     case KeyStatus::KEY_STATUS_PENDING:
-      // TODO(xhwang): This should probably be renamed to "PENDING".
-      return CdmKeyInformation::KEY_STATUS_PENDING;
+      // On pre-Q versions of Android, 'status-pending' really means "usable in
+      // the future". Translate this to 'expired' as that's the only status that
+      // makes sense in this case. Starting with Android Q, 'status-pending'
+      // means what you expect. See crbug.com/889272 for explanation.
+      // TODO(jrummell): "KEY_STATUS_PENDING" should probably be renamed to
+      // "STATUS_PENDING".
+      return (base::android::BuildInfo::GetInstance()->sdk_int() <=
+              base::android::SDK_VERSION_P)
+                 ? CdmKeyInformation::EXPIRED
+                 : CdmKeyInformation::KEY_STATUS_PENDING;
     case KeyStatus::KEY_STATUS_INTERNAL_ERROR:
       return CdmKeyInformation::INTERNAL_ERROR;
+    case KeyStatus::KEY_STATUS_USABLE_IN_FUTURE:
+      // This was added in Android Q.
+      // https://developer.android.com/reference/android/media/MediaDrm.KeyStatus.html#STATUS_USABLE_IN_FUTURE
+      // notes this happens "because the start time is in the future." There is
+      // no matching EME status, so returning EXPIRED as the closest match.
+      return CdmKeyInformation::EXPIRED;
   }
 
   NOTREACHED();
diff --git a/media/gpu/v4l2/v4l2_device.cc b/media/gpu/v4l2/v4l2_device.cc
index fb01f392..b3747c8 100644
--- a/media/gpu/v4l2/v4l2_device.cc
+++ b/media/gpu/v4l2/v4l2_device.cc
@@ -103,7 +103,6 @@
   v4l2_buffer_.index = buffer_id;
   v4l2_buffer_.type = type;
   v4l2_buffer_.memory = memory;
-
   plane_mappings_.resize(v4l2_buffer_.length);
 }
 
@@ -1027,30 +1026,6 @@
 }
 
 // static
-size_t V4L2Device::V4L2PixFmtToNumPlanes(uint32_t pix_fmt) {
-  switch (pix_fmt) {
-    case V4L2_PIX_FMT_NV12:
-    case V4L2_PIX_FMT_YUV420:
-    case V4L2_PIX_FMT_YVU420:
-    case V4L2_PIX_FMT_RGB32:
-      return 1;
-
-    case V4L2_PIX_FMT_NV12M:
-    case V4L2_PIX_FMT_MT21C:
-      return 2;
-
-    case V4L2_PIX_FMT_YUV420M:
-    case V4L2_PIX_FMT_YVU420M:
-    case V4L2_PIX_FMT_YUV422M:
-      return 3;
-
-    default:
-      LOG(FATAL) << "Add more cases as needed";
-      return 0;
-  }
-}
-
-// static
 uint32_t V4L2Device::VideoPixelFormatToV4L2PixFmt(const VideoPixelFormat format,
                                                   bool single_planar) {
   switch (format) {
@@ -1537,15 +1512,21 @@
 // static
 bool V4L2Device::IsMultiPlanarV4L2PixFmt(uint32_t pix_fmt) {
   constexpr uint32_t kMultiV4L2PixFmts[] = {
-      V4L2_PIX_FMT_NV12M,
-      V4L2_PIX_FMT_MT21C,
-      V4L2_PIX_FMT_YUV420M,
-      V4L2_PIX_FMT_YVU420M,
+      V4L2_PIX_FMT_NV12M,   V4L2_PIX_FMT_MT21C,   V4L2_PIX_FMT_YUV420M,
+      V4L2_PIX_FMT_YVU420M, V4L2_PIX_FMT_YUV422M,
   };
   return std::find(std::cbegin(kMultiV4L2PixFmts), std::cend(kMultiV4L2PixFmts),
                    pix_fmt) != std::cend(kMultiV4L2PixFmts);
 }
 
+// static
+size_t V4L2Device::GetNumPlanesOfV4L2PixFmt(uint32_t pix_fmt) {
+  if (IsMultiPlanarV4L2PixFmt(pix_fmt)) {
+    return VideoFrame::NumPlanes(V4L2PixFmtToVideoPixelFormat(pix_fmt));
+  }
+  return 1u;
+}
+
 void V4L2Device::GetSupportedResolution(uint32_t pixelformat,
                                         gfx::Size* min_resolution,
                                         gfx::Size* max_resolution) {
diff --git a/media/gpu/v4l2/v4l2_device.h b/media/gpu/v4l2/v4l2_device.h
index ce2fa38..970317e 100644
--- a/media/gpu/v4l2/v4l2_device.h
+++ b/media/gpu/v4l2/v4l2_device.h
@@ -327,7 +327,6 @@
  public:
   // Utility format conversion functions
   static VideoPixelFormat V4L2PixFmtToVideoPixelFormat(uint32_t format);
-  static size_t V4L2PixFmtToNumPlanes(uint32_t pix_fmt);
   static uint32_t VideoPixelFormatToV4L2PixFmt(VideoPixelFormat format,
                                                bool single_planar);
   // Returns v4l2 pixel format from |layout|. If there is no corresponding
@@ -365,6 +364,9 @@
   // Returns whether |pix_fmt| is multi planar.
   static bool IsMultiPlanarV4L2PixFmt(uint32_t pix_fmt);
 
+  // Returns number of planes of |pix_fmt|.
+  static size_t GetNumPlanesOfV4L2PixFmt(uint32_t pix_fmt);
+
   enum class Type {
     kDecoder,
     kEncoder,
diff --git a/media/gpu/v4l2/v4l2_device_unittest.cc b/media/gpu/v4l2/v4l2_device_unittest.cc
index f6c3412..413d3e34 100644
--- a/media/gpu/v4l2/v4l2_device_unittest.cc
+++ b/media/gpu/v4l2/v4l2_device_unittest.cc
@@ -155,4 +155,19 @@
   EXPECT_FALSE(layout.has_value());
 }
 
+// Test GetNumPlanesOfV4L2PixFmt.
+TEST(V4L2DeviceTest, GetNumPlanesOfV4L2PixFmt) {
+  EXPECT_EQ(1u, V4L2Device::GetNumPlanesOfV4L2PixFmt(V4L2_PIX_FMT_NV12));
+  EXPECT_EQ(1u, V4L2Device::GetNumPlanesOfV4L2PixFmt(V4L2_PIX_FMT_YUV420));
+  EXPECT_EQ(1u, V4L2Device::GetNumPlanesOfV4L2PixFmt(V4L2_PIX_FMT_YVU420));
+  EXPECT_EQ(1u, V4L2Device::GetNumPlanesOfV4L2PixFmt(V4L2_PIX_FMT_RGB32));
+
+  EXPECT_EQ(2u, V4L2Device::GetNumPlanesOfV4L2PixFmt(V4L2_PIX_FMT_NV12M));
+  EXPECT_EQ(2u, V4L2Device::GetNumPlanesOfV4L2PixFmt(V4L2_PIX_FMT_MT21C));
+
+  EXPECT_EQ(3u, V4L2Device::GetNumPlanesOfV4L2PixFmt(V4L2_PIX_FMT_YUV420M));
+  EXPECT_EQ(3u, V4L2Device::GetNumPlanesOfV4L2PixFmt(V4L2_PIX_FMT_YVU420M));
+  EXPECT_EQ(3u, V4L2Device::GetNumPlanesOfV4L2PixFmt(V4L2_PIX_FMT_YUV422M));
+}
+
 }  // namespace media
diff --git a/media/gpu/v4l2/v4l2_slice_video_decoder.cc b/media/gpu/v4l2/v4l2_slice_video_decoder.cc
index 7f5dc938..f27ca8e 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decoder.cc
+++ b/media/gpu/v4l2/v4l2_slice_video_decoder.cc
@@ -349,7 +349,8 @@
 
   // Setup output format.
   uint32_t output_format_fourcc = NegotiateOutputFormat();
-  num_output_planes_ = V4L2Device::V4L2PixFmtToNumPlanes(output_format_fourcc);
+  num_output_planes_ =
+      V4L2Device::GetNumPlanesOfV4L2PixFmt(output_format_fourcc);
   if (!SetupOutputFormat(output_format_fourcc)) {
     VLOGF(1) << "Failed to setup output format.";
     client_task_runner_->PostTask(FROM_HERE,
diff --git a/media/gpu/v4l2/v4l2_video_decode_accelerator.cc b/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
index 7bd8ca6..71bb00f1 100644
--- a/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
@@ -69,18 +69,6 @@
 
 namespace media {
 
-namespace {
-
-size_t GetNumPlanesOfV4L2PixFmt(uint32_t pix_fmt) {
-  if (V4L2Device::IsMultiPlanarV4L2PixFmt(pix_fmt)) {
-    return VideoFrame::NumPlanes(
-        V4L2Device::V4L2PixFmtToVideoPixelFormat(pix_fmt));
-  }
-  return 1u;
-}
-
-}  // namespace
-
 // static
 const uint32_t V4L2VideoDecodeAccelerator::supported_input_fourccs_[] = {
     V4L2_PIX_FMT_H264, V4L2_PIX_FMT_VP8, V4L2_PIX_FMT_VP9,
@@ -2441,7 +2429,8 @@
       (output_mode_ == Config::OutputMode::ALLOCATE
            ? ImageProcessor::OutputMode::ALLOCATE
            : ImageProcessor::OutputMode::IMPORT);
-  size_t num_planes = GetNumPlanesOfV4L2PixFmt(output_format_fourcc_);
+  size_t num_planes =
+      V4L2Device::GetNumPlanesOfV4L2PixFmt(output_format_fourcc_);
   // It is necessary to set strides and buffers even with dummy values,
   // because VideoFrameLayout::num_buffers() specifies if
   // |output_format_fourcc_| is single- or multi-planar.
@@ -2454,7 +2443,7 @@
     return false;
   }
 
-  num_planes = GetNumPlanesOfV4L2PixFmt(egl_image_format_fourcc_);
+  num_planes = V4L2Device::GetNumPlanesOfV4L2PixFmt(egl_image_format_fourcc_);
   auto output_layout = VideoFrameLayout::CreateWithStrides(
       V4L2Device::V4L2PixFmtToVideoPixelFormat(egl_image_format_fourcc_),
       egl_image_size_, std::vector<int32_t>(num_planes) /* strides */,
diff --git a/net/http/transport_security_state_static.json b/net/http/transport_security_state_static.json
index c7d9694..275be18a 100644
--- a/net/http/transport_security_state_static.json
+++ b/net/http/transport_security_state_static.json
@@ -2914,7 +2914,6 @@
     { "name": "collabornation.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cloudflareonazure.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "chrismckee.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "cobalt.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dealbanana.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cydia-search.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dotsiam.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -3435,7 +3434,6 @@
     { "name": "anfsanchezo.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bcvps.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "beautykat.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "bevapehappy.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bouncyballs.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cafe-scientifique.org.ec", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "caveclan.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -3520,7 +3518,6 @@
     { "name": "koerperimpuls.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lostinsecurity.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mailinabox.email", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "malash.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "masjidtawheed.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "newodesign.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "nicolaelmer.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -4181,7 +4178,6 @@
     { "name": "jlkhosting.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "juniwalk.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kiebel.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "kimmel.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kynaston.org.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "larrysalibra.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lateralsecurity.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -4881,7 +4877,6 @@
     { "name": "comitesaustria.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "consonare.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "custodyxchange.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "cvursache.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cyph.im", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cyph.video", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cysec.biz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5762,7 +5757,6 @@
     { "name": "deinballon.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dementiapraecox.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "denniskoot.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "dennogumi.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dersoundhunter.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "derwolfe.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "detoxsinutritie.ro", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5812,7 +5806,6 @@
     { "name": "emilyhorsman.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "eminovic.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "emnitech.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "endlessdark.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "enterprisey.enterprises", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "eoldb.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "epicwalnutcreek.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -7577,7 +7570,6 @@
     { "name": "comparamejor.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "compareandrecycle.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "comparetravelinsurance.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "connectingconcepts.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "contarkos.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cookinglife.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cookmedical.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -7863,7 +7855,6 @@
     { "name": "sat4all.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "schont.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "schwarzkopfforyou.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "selectorders.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "serveradminz.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "shawnh.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "shoplandia.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -9008,7 +8999,6 @@
     { "name": "geeq.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "geli-graphics.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "gemeentemolenwaard.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "generationnext.pl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "genyhitch.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "georgesonarthurs.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "georgmayer.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -9105,7 +9095,6 @@
     { "name": "hd-gaming.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hdhoang.space", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "heartmdinstitute.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "heavensinferno.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hebikhiv.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hedgeschool.ie", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "heinpost.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -9499,7 +9488,6 @@
     { "name": "mein-webportal.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "meincenter-meinemeinung.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "meine-email-im.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "melissaadkins.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "melody-lyrics.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "melvinlow.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "mensagemdaluz.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -9675,7 +9663,6 @@
     { "name": "nutleyef.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "nuttyveg.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "nwra.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "nwwc.dk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "nyip.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "nzbs.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "o0o.one", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -9741,7 +9728,6 @@
     { "name": "paperwork.co.za", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "paragreen.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "parentinterview.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "parentmail.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "parleu2016.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "partnerbeam.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "pastaenprosecco.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -10163,7 +10149,6 @@
     { "name": "static.or.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "stationnementdenuit.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "statuschecks.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "stealsaga.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "steidlewirt.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "steigerplank.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "stevensononthe.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -10457,7 +10442,6 @@
     { "name": "warhaggis.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "warhistoryonline.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "warmservers.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "warped.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "watchium.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wave.is", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wavefrontsystemstech.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -11716,12 +11700,10 @@
     { "name": "agotnes.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "aistockcharts.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ajmahal.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "akovana.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "akvorrat.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "alecrust.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "aljaspod.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "aljaspod.hu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "alkel.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "allmystery.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "alltubedownload.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "alternativet.party", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -12412,7 +12394,6 @@
     { "name": "yoga-prive.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "yooooex.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "youngandunited.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "youran.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "yoyoost.duckdns.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "yux.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "z3liff.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -13799,7 +13780,6 @@
     { "name": "streetspotr.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "studiomarcella.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "suborbital.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "subsys.no", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "sudoschool.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "suitocracy.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "superpase.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -13896,7 +13876,6 @@
     { "name": "treinaweb.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "tributh.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "tripcombi.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "trueinstincts.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "tsuyuzakihiroyuki.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "tts.co.nz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ttt.tt", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14853,7 +14832,6 @@
     { "name": "kovnsk.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kamikatse.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kpumuk.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "jankoepsel.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kisa.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kennethaasan.no", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kaela.design", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -18272,7 +18250,6 @@
     { "name": "knaake.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kgnk.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "knapp.noip.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "kristjanrang.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kohlistkool.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "klempnershop.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "kprog.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -19579,7 +19556,6 @@
     { "name": "120dayweightloss.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "altunbas.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "andrew.london", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "airmail.cc", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ansas.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "appdb.cc", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "aocast.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -20223,7 +20199,6 @@
     { "name": "femdombbw.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "expokohler.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "femaledom.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "fed51.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "felicifia.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "fashionunited.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "erasmusplusrooms.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -21766,7 +21741,6 @@
     { "name": "too.gy", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "therapysxm.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "trafficmanager.xxx", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "tir-pistolet-chexbres.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "top10mountainbikes.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "thedailyupvote.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "tretail.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -22246,7 +22220,6 @@
     { "name": "classics.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "click-licht.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "cmweller.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "cock.li", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "coconutoil24.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "code.taxi", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "colaborativa.tv", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -23473,7 +23446,6 @@
     { "name": "badam.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bakaproxy.moe", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bakim.li", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "balatoni-nyar.hu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "balnearionaturaspa.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "bals.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "banburybid.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -26676,7 +26648,6 @@
     { "name": "vasyharan.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "vatelecom.dk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "vayaport.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "vc.gg", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "vcam.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "vdisk24.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "veganism.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -27828,7 +27799,6 @@
     { "name": "dissertationhelp.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "designskin.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "degata.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "devjack.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "demeyere-usedcars.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "dhl-smart.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "devillers-occasions.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -28445,7 +28415,6 @@
     { "name": "hopglass.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hizzacked.xxx", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "howtogeekpro.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "hinrich.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hostingfirst.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "hoiku-navi.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "humanity.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -28586,7 +28555,6 @@
     { "name": "iwpbk.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "isdn.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "ivi-co.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "ip-hahn.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "j-eck.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "internetinhetbuitengebied.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "jabergrutschi.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -28942,7 +28910,6 @@
     { "name": "malikussa.id", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "magebankin.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "manavgabhawala.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "loperetti.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "madirc.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "maomihz.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "lzh.one", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30507,7 +30474,6 @@
     { "name": "wsup.social", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "writing-expert.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "writecustomessay.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "wirbatz.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "wpturnedup.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "victoreriksson.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "writingcities.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32259,7 +32225,6 @@
     { "name": "rissato.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "renscreations.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "rinvex.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "repaik.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "reposaarenkuva.fi", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "redwoodpaddle.pt", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "qoqo.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32570,7 +32535,6 @@
     { "name": "tjl.rocks", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "titanlab.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "theroks.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "thebakers.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "thomasetsophie.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "tomticket.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "timbishopartist.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32847,7 +32811,6 @@
     { "name": "zlatakus.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "zdx.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--q9jb1h5dvcspke3218b9mn4p0c.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
-    { "name": "zone-produkte.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--n8j7dygrbu0c31a5861bq8qb.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "zerosource.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--u9j0ia6hb7347cg8wavz0avb0e.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -37702,7 +37665,6 @@
     { "name": "prestigeeventshire.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "primalinea.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pristineevents.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "proautorepairs.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "projectcastle.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "promarketer.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "provokator.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -38317,7 +38279,6 @@
     { "name": "drdavidgilpin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dreyfussplasticsurgery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dstamou.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "duan.li", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dujsq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dujsq.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dziurdzia.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39979,7 +39940,6 @@
     { "name": "aboutyou.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aboutyou.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "abstractbarista.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "accredit.ly", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aceanswering.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "acroso.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "actom.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -42471,7 +42431,6 @@
     { "name": "nova.com.hk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "novojet.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nv.gw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "nybiz.nyc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "nytrafficticket.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ochrepoint.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ochsenfeld.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -43834,7 +43793,6 @@
     { "name": "dietacelulitis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dietafeliz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "divi-experte.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "djsk.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dko-steiermark.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dmailshop.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dmmultionderhoud.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -44027,7 +43985,6 @@
     { "name": "laranjada.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "larbertbaptist.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lavasing.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "laylo.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lemouillour.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lespret.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "letraba.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47544,7 +47501,6 @@
     { "name": "jimbiproducts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jmcataffo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jtl-software.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "juusujanar.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jydemarked.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kabarlinux.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "kagitreklam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48291,7 +48247,6 @@
     { "name": "ignacjanskiednimlodziezy.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "illumed.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "import-shopping.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "imwnk.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "instant-thinking.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "intelhost.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "intergozd.si", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48468,7 +48423,6 @@
     { "name": "oosoo.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oreskylaw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "orgsyn.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "orkiv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "osworx.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ourls.win", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pacatlantic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -49919,7 +49873,6 @@
     { "name": "fegame.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fgdc.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fijnefeestdageneneengelukkignieuwjaar.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "finecocoin.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "firmen-assekuranz.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "flashbeing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "fnfpt.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51532,7 +51485,6 @@
     { "name": "sms.storage", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "snowyluma.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sociability.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "somewherein.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "sondersobk.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "soquee.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "soundbytemedia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52261,7 +52213,6 @@
     { "name": "bztraveler.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "c0rporation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cabineritten.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "caleb.cx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "calendly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "calrotaract.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cambridge-security.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52791,7 +52742,6 @@
     { "name": "milsonhypnotherapyservices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "minetracker.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "misinstrumentos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "mitre10.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mivzaklive.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mizu.coffee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mobisium.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52875,7 +52825,6 @@
     { "name": "oldita.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oles-hundehaus.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "olifant.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "onesnzeroes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "onionbot.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "opportunity.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "oppwa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -53278,7 +53227,6 @@
     { "name": "vrjetpackgame.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vsestoki.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vuojolahti.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "vv1234.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vwfsrentacar.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "w1221.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wandystan.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -53965,7 +53913,6 @@
     { "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 },
@@ -54413,7 +54360,6 @@
     { "name": "233bwg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "291167.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "2h-nagoya.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "2nics.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "2y.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "51tiaojiu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "66bwf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -54871,7 +54817,6 @@
     { "name": "lignite.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "likesforinsta.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "likui.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "linux.pizza", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "liquipedia.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "littleboutiqueshop.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "littleboutiqueshop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -55236,7 +55181,6 @@
     { "name": "softbebe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "solepurposetest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "solitairenetwork.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "somepills.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "southernlights.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "southernstructuralsolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "space-y.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -55619,7 +55563,6 @@
     { "name": "cloudcrux.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "club-climate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cnlau.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "codein.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "codemill.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cognixia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "cololi.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -56275,7 +56218,6 @@
     { "name": "tmas.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "todoereaders.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tohochofu-sportspark.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "toldositajuba.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tom94.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "tomik.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "toontownrewritten.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -56950,7 +56892,6 @@
     { "name": "buyebook.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "buzzcontent.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "calculadoraconversor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "canyons.media", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "carroattrezzimilanodaluiso.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "casa-lunchbreak.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "case-vacanza-salento.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -57350,7 +57291,6 @@
     { "name": "wxkxsw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wyysoft.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xeryus.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "xfcy.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xgzepto.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xlui.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--irr.xn--fiqs8s", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -58908,7 +58848,6 @@
     { "name": "dreemurr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "driessoftsec.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dronebl.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "drpure.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "drtimothybradley.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dryjersey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "dstvinstallfourways.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59392,7 +59331,6 @@
     { "name": "mariatash.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "marketingeinnovacion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "martel-innovate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "martinfranc.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "maryhaze.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mastafu.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "matheusmacedo.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -60595,7 +60533,6 @@
     { "name": "amazingraymond.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "aminullrouted.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "ampleroads.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "ance.lv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "anlovegeek.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "anopan.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "antiaz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -60640,7 +60577,6 @@
     { "name": "benjaminbedard.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bensokol.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bepsvpt.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "beringsoegaard.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bestdoc.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "besti.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bestpractice.domains", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62378,7 +62314,6 @@
     { "name": "pepfar.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "peppelmedi.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "performancegate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "perge.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "permaseal.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "peruvianphotography.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "peterboweycomputerservices.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65345,7 +65280,6 @@
     { "name": "laan247.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lachlanallison.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "landoncreekapartments.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "laresistencia.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lartduportrait.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "laurencball.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "letsflyinto.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65923,7 +65857,6 @@
     { "name": "vetpraxis.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vifsoft.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "viku.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "vuasinhly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "washoedems.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "watchcow.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "wb2288.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66528,7 +66461,6 @@
     { "name": "miaololi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "midart.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "midweb.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "miku.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "millionen-von-sonnen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mirazperu.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "misini.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66665,7 +66597,6 @@
     { "name": "vertigo-rec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "viantours.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vizionnetwork.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "vkikaku.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vorbrodt.blog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vrifox.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "vygeja.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66929,7 +66860,6 @@
     { "name": "lianhongrui.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "libbywinberginteriors.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "limo.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "lion-tech.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "litebit.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "literaki123.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "liubliu.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68578,7 +68508,6 @@
     { "name": "ivocotec.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jeancafe.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jms8.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "jmsjms.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jmsjms.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jmsjms.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "jmsjms.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68666,7 +68595,6 @@
     { "name": "parsdev.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pechonova.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pentagonreviewcenter.com.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "peter-hurtenbach.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pirapiserver.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "planningsagenda.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "plumbingkingsllc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -69532,7 +69460,6 @@
     { "name": "5197cc.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "5197d.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "5197dd.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "5197dh.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "5197e.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "5197ee.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "5197f.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70101,7 +70028,6 @@
     { "name": "managedservicesraleighnc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "maorx.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "marinat2012.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "marsble.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mazepa.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "medcorfu.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "medicinasaludvida.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72030,7 +71956,6 @@
     { "name": "mm6957.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mneti.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "modelemax.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "mononom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "monospazzole.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mouche.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "mrichard333.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72406,7 +72331,6 @@
     { "name": "anunturitv.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "arcovix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "arufu.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "asngear.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "asociacionbienestarinmobiliariobogota.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "auburnperio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "autopark-ost-fichtner.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72430,7 +72354,6 @@
     { "name": "bigbank.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bishoptx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "bongbabyhouse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "boutique-giovanni.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "boxlink.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "btt1111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "btt1313.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72698,7 +72621,6 @@
     { "name": "payps.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "pensionecani.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "perfect-privacy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "phanmemcuocsong.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "philia.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "phonefleet.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "phpmynewsletter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72772,7 +72694,6 @@
     { "name": "ss6729.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "starfixreparaciones.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stemkit4kids.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "stephenschruhl.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "stokl.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "storzrealty.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "suksesbisnisonline.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73312,7 +73233,6 @@
     { "name": "logatix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lombri-agro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "long788.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "long88.la", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lonny.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "looptics.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "lord.city", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73473,29 +73393,419 @@
     { "name": "xn--e1adlfhcdo7h.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "xn--j1aoca.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "yuzurisa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "z66.la", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6862.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6863.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6865.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6866.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6867.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6878.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6879.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6880.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6881.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6882.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6883.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6885.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6886.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6887.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6889.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6890.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6893.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6896.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6898.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
-    { "name": "zd6899.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zl9814.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
     { "name": "zlogic.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "010777a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "010kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "010ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "143918.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "178btt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "2030411.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "3040519.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "35898z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "5060711.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "5060715.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "55d88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "58d88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787o.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "71787z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "77177.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "7sdre.am", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "809kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "8208d88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "861kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "8812ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "8818ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "8819ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "8890ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "8892ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "918ac.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "918bbt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "918bby.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "98d88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aartsplastics.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "acg.vc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ae86nb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aghayeva-edler.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "airlock.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "akinix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "alexandreguarita.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "alfacharlie.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "alforto.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "all4nursesksa.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "allcoveredbyac.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "aloralabs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "alteraro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "alteraro.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "altonkey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "amusa.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "antincendio.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "appizia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "asart.bg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "australianstrongmanalliance.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "axin888.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ayvalikgezgini.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "azzouzi.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "baeckerei-wohlgemuth.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bank-tour.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "barca-movie.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "becquerelgroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bestsingingbowls.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "blogkuliah.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "boren.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "btt0707a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "bttt111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "buybutton.store", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "buycccam.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "casinorobots.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cbr-rcb.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "certificato-prevenzione-incendi.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chaboisseau.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chattingorcheating.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "checalaweb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chenx221.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chenx221.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chenx2210.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chrystus.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "chun.si", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "clare3dx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "claudiney.eti.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cmshangu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cnbibo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cnss.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "col-head.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "commonsenseamericanpolitics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "consertodecelulares.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "correctlydesign.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cosmohit.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "costarellos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "coveredinspiders.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "crosswords123.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cryptoclix.website", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cyberme.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cyberpathogen.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "cyllos.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d1ownqs4tcx37f.cloudfront.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d8118.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d8228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d8787.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d881.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d8811.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d8816.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d8819.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d886.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d8864.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d887vip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d8886.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d88877.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d8898.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "d8998.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "davidgreig.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dbplanview.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dealdump.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "definitions360.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "degradarium.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "deluxecccam.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dennishzg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "derco.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "digihoc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "districtcapital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dockstarter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dor-tak.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dor-tak.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "downunderporn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dr-royaghafourifard.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dranous.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dreamstudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dresdner-stollen-von-reimann.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "drgeadsdavinci.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "drivermototaxi.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "dryudha.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "duggtec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "earn99.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ecpic.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "egold-keeper.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ekimma.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ellatotal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "elri.blog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "eon.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "eradoom.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ero-video.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "estetici.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "esyoil.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "farm-vacations.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fern.health", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fff-du.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ffmv.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fheuschen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fjco.alsace", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "flonharmonymassage.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "flowinity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fortygordy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fraplaster.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "frasestop.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "frosty.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fulibyg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "funyirotraktor.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "fuvi-clan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "getonyx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "glammybabes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "goaskrose.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gopayz.com.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gopnikman.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gordy.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gordyforty.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gpcp.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gpna.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "grantpark.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "guancha.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "gulcinulutuna.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "haehnel.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hawaiiwho.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "headlineclub.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "healthfitapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "heinrich-kleyer-schule.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hereticle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "herrschaftlich-durch-dresden.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hks-ffm.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hotvideosgalleries.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hudognik.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hunngard.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "husqvarnamoped.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "hvgg.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ibidyoupeace.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "idirect.com.ng", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ihre-pflege-sachsen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "immortec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "inditoot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "infradeep.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "inmag.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "integritet.com.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "intensivpflege-sachsen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ips-ihre-pflege-sachsen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ips-sachsen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ird.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ishigurodo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "istdas.lol", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "itemorder.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ja-no-me.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jaja.wtf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "janome.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "javaweb.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jcsdevelopment.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jellysquid.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jenniferlucia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jordanhamilton.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "julia-thonig.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "jupuglia.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kaffeeringe.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kaseban.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kashbet.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kb9988.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kbet168.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kensyou.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kill.trade", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kleyer.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "klumba.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kommx.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kriptoworld.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks009.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks058.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks0788.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks081.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks086.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks0990.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks516.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks6658.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks6665.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks680.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks8802.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks8812.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks8825.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks8831.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks902.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks912.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ks921.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "kvestiks.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "le-upfitter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "learncrypto.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lewdlist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lewismcyoutube.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lichform.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "listsothebysrealtyhk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lodus.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "long388.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "long510.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "long8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "long8039.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "long918.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "long988.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "lovingbody.yoga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ltheinrich.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mangowave.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mansarda-life.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "marex.host", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "martian.community", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "matchpointusa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mattadams.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mediation-mv.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "merza.is", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "method.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mfsquad.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mickgrimesgamingpodcast.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "model.earth", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "modul8infinity.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mondonet.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mousemade.art", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "mrsheep.win", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "muratatifsayar.com.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "murmashi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "n3ro.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "n3ro.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nahouw.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nasladko.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "naslovi.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ncascade.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nednex.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "networkmas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "newdirectionsolar.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nobleandlore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nodebb-cn.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nolte-imp.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "nooben.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "noticiasymas.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "noustramits.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "numeritelefonici.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "oncotarget.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "onsudoku.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "onzerelaties.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "opbedbugcanines.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "openai.community", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "operationsafeescape.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "optimo.com.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ordermygear.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "osterlensyd.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pandiora.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pay.mg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pcr24.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "pixelabs.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "planet.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "popitsnack.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "proctorauth.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "programyburian.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "proj3ct.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "projectobs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "puntasiho.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "raistrick.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "reviewcenter.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rfxt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rheijmans.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "richie.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "rthsoftware.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ru-e-business.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "russianrandom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "russianrandom.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "saludnutrivida.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "salzerperu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "samuelebencini.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sanctumwealth.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "santanderibc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sasquatt.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "savebees.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "schneckenhilfe.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "scolasti.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sen.bo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "sevengang.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "signmycode.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "singer.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "smaltimento.salerno.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "smartpatika.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "smartvita.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "smilesondemand.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "smtvonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "snapintegrations.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "softwaresen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "spstaticfiles.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "startle.studio", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "studyportal.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "swdiscount.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "syogainenkin119.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "taichichuanyang.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tanshin.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tappezziere.milano.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "techmunchies.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "technotronikcanada.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tentacletank.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "terudon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "texier.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thaimega.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thenewclassics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "thooka.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tomthorogood.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tomthorogood.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "toparkinfo.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tourdatenarchiv.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "tranvia.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "unclebens-specials.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "universovalve.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "upmon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uze-mobility.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uze-mobility.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "uzemobility.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vademekum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "valuecashhomes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "valuecashoffers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "verified.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vipd88.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "vladimir-chanaev.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wanlieyan.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "waroengkopigazebo.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wav.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "webtrek.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wellcareliving.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "westernparts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wheredoi.click", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wieloswiat.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wikijugos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wikiversus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wittywomaniyaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wot-zadrot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wotzadrot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wyckoff.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "wyckoff.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xn--bckerei-wohlgemuth-ltb.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "xtremealaskainsulation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "youngvoicesmatter.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "z8193.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zaadnet.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "zombie-40th.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+    { "name": "ztk.im", "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/quic/quic_flags_list.h b/net/quic/quic_flags_list.h
index d8c39d4..c6a7955 100644
--- a/net/quic/quic_flags_list.h
+++ b/net/quic/quic_flags_list.h
@@ -96,7 +96,7 @@
 // stream map. static_stream_map will no longer be used.
 QUIC_FLAG(bool,
           FLAGS_quic_reloadable_flag_quic_eliminate_static_stream_map_3,
-          false)
+          true)
 
 // Default enables QUIC ack decimation and adds a connection option to disable
 // it.
@@ -283,9 +283,7 @@
           false)
 
 // If true, disable lumpy pacing for low bandwidth flows.
-QUIC_FLAG(bool,
-          FLAGS_quic_reloadable_flag_quic_no_lumpy_pacing_at_low_bw,
-          false)
+QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_no_lumpy_pacing_at_low_bw, true)
 
 // If true, ignore TLPR for retransmission delay when sending pings from ping
 // alarm.
@@ -294,7 +292,7 @@
           true)
 
 // If true, non-ASCII QUIC tags are printed as hex instead of integers."
-QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_print_tag_hex, false)
+QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_print_tag_hex, true)
 
 // If true, terminate Google QUIC connections similary as IETF QUIC.
 QUIC_FLAG(bool,
@@ -346,7 +344,7 @@
           false)
 
 // Do not send STOP_WAITING if no_stop_waiting_frame_ is true.
-QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_simplify_stop_waiting, false)
+QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_simplify_stop_waiting, true)
 
 // If true, export number of packets written per write operation histogram.")
 QUIC_FLAG(bool, FLAGS_quic_export_server_num_packets_per_write_histogram, false)
diff --git a/remoting/resources/remoting_strings_ar.xtb b/remoting/resources/remoting_strings_ar.xtb
index c21564f..d729e60 100644
--- a/remoting/resources/remoting_strings_ar.xtb
+++ b/remoting/resources/remoting_strings_ar.xtb
@@ -285,6 +285,7 @@
 <translation id="7116737094673640201">‏مرحبًا بك في سطح المكتب البعيد من Chrome</translation>
 <translation id="7144878232160441200">إعادة المحاولة</translation>
 <translation id="7149517134817561223">‏تطبيق لإصدار الأوامر إلى مضيف سطح المكتب البعيد من Chrome.</translation>
+<translation id="7213491505512310433">تحسينات في مستوى الثبات وإصلاح الأخطاء</translation>
 <translation id="7215059001581613786">يُرجى إدخال رقم تعريف شخصي يتكون من ستة أرقام أو أكثر.</translation>
 <translation id="7312846573060934304">المضيف بلا إنترنت.</translation>
 <translation id="7319983568955948908">إيقاف المشاركة</translation>
diff --git a/remoting/resources/remoting_strings_da.xtb b/remoting/resources/remoting_strings_da.xtb
index b556799..5d52f58 100644
--- a/remoting/resources/remoting_strings_da.xtb
+++ b/remoting/resources/remoting_strings_da.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Velkommen til Chrome Fjernskrivebord</translation>
 <translation id="7144878232160441200">Prøv igen</translation>
 <translation id="7149517134817561223">Applikation til oprettelse af kommandoer til hosten for Chrome Fjernskrivebord.</translation>
+<translation id="7213491505512310433">Stabilitetsforbedringer og fejlrettelser</translation>
 <translation id="7215059001581613786">Angiv en pinkode, der består af seks eller flere cifre.</translation>
 <translation id="7312846573060934304">Hosten er offline.</translation>
 <translation id="7319983568955948908">Stop deling</translation>
diff --git a/remoting/resources/remoting_strings_de.xtb b/remoting/resources/remoting_strings_de.xtb
index 60892499..f75931f 100644
--- a/remoting/resources/remoting_strings_de.xtb
+++ b/remoting/resources/remoting_strings_de.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Willkommen bei Chrome Remote Desktop</translation>
 <translation id="7144878232160441200">Wiederholen</translation>
 <translation id="7149517134817561223">Anwendung, die Befehle an den Host von Chrome Remote Desktop weitergibt</translation>
+<translation id="7213491505512310433">Stabilitätsverbesserungen und Fehlerkorrekturen.</translation>
 <translation id="7215059001581613786">Die PIN muss aus mindestens 6 Ziffern bestehen.</translation>
 <translation id="7312846573060934304">Host ist offline.</translation>
 <translation id="7319983568955948908">Freigabe beenden</translation>
diff --git a/remoting/resources/remoting_strings_es.xtb b/remoting/resources/remoting_strings_es.xtb
index f904930..ba12bd29 100644
--- a/remoting/resources/remoting_strings_es.xtb
+++ b/remoting/resources/remoting_strings_es.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Te damos la bienvenida a Escritorio Remoto de Chrome</translation>
 <translation id="7144878232160441200">Volver a intentar</translation>
 <translation id="7149517134817561223">Aplicación para enviar comandos al host del Escritorio Remoto de Chrome.</translation>
+<translation id="7213491505512310433">Mejoras de estabilidad y corrección de errores.</translation>
 <translation id="7215059001581613786">Introduce un PIN que tenga como mínimo seis dígitos.</translation>
 <translation id="7312846573060934304">El host no tiene conexión.</translation>
 <translation id="7319983568955948908">Dejar de compartir</translation>
diff --git a/remoting/resources/remoting_strings_fa.xtb b/remoting/resources/remoting_strings_fa.xtb
index 6552ec92..34a4c27 100644
--- a/remoting/resources/remoting_strings_fa.xtb
+++ b/remoting/resources/remoting_strings_fa.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">‏به «کنترل رایانه ازراه‌دور Chrome» خوش‌آمدید</translation>
 <translation id="7144878232160441200">سعی مجدد</translation>
 <translation id="7149517134817561223">‏برنامه‌ای که دستورها را به میزبان کنترل رایانه ازراه‌دور Chrome ارسال می‌کند.</translation>
+<translation id="7213491505512310433">بهبودهایی در پایداری و رفع اشکال‌ها.</translation>
 <translation id="7215059001581613786">لطفاً پینی وارد کنید که دارای شش رقم یا بیشتر باشد.</translation>
 <translation id="7312846573060934304">میزبان آفلاین است.</translation>
 <translation id="7319983568955948908">توقف اشتراک‌گذاری</translation>
diff --git a/remoting/resources/remoting_strings_gu.xtb b/remoting/resources/remoting_strings_gu.xtb
index eca004d..fe87583 100644
--- a/remoting/resources/remoting_strings_gu.xtb
+++ b/remoting/resources/remoting_strings_gu.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Chrome રિમોટ ડેસ્કટૉપમાં સ્વાગત છે</translation>
 <translation id="7144878232160441200">ફરી પ્રયાસ કરો</translation>
 <translation id="7149517134817561223">Chrome રીમોટ ડેસ્કટૉપ હોસ્ટને આદેશો રજૂ કરવા માટેની ઍપ્લિકેશન.</translation>
+<translation id="7213491505512310433">સ્થિરતા સુધારણાઓ અને ખામીના સુધારા.</translation>
 <translation id="7215059001581613786">કૃપા કરીને છ અથવા વધુ અંકોવાળો PIN દાખલ કરો.</translation>
 <translation id="7312846573060934304">હોસ્ટ ઑફલાઇન છે.</translation>
 <translation id="7319983568955948908">શેર કરવાનું રોકો</translation>
diff --git a/remoting/resources/remoting_strings_id.xtb b/remoting/resources/remoting_strings_id.xtb
index 66d6fd4..0f620a7 100644
--- a/remoting/resources/remoting_strings_id.xtb
+++ b/remoting/resources/remoting_strings_id.xtb
@@ -282,6 +282,7 @@
 <translation id="7116737094673640201">Selamat Datang di Chrome Desktop Jarak Jauh</translation>
 <translation id="7144878232160441200">Coba lagi</translation>
 <translation id="7149517134817561223">Aplikasi guna mengeluarkan perintah untuk host Chrome Desktop Jarak Jauh.</translation>
+<translation id="7213491505512310433">Peningkatan stabilitas dan perbaikan bug.</translation>
 <translation id="7215059001581613786">Masukkan PIN, minimal enam digit atau lebih.</translation>
 <translation id="7312846573060934304">Hosting offline.</translation>
 <translation id="7319983568955948908">Hentikan Berbagi</translation>
diff --git a/remoting/resources/remoting_strings_ja.xtb b/remoting/resources/remoting_strings_ja.xtb
index cb92db59..f6fe71f 100644
--- a/remoting/resources/remoting_strings_ja.xtb
+++ b/remoting/resources/remoting_strings_ja.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Chrome リモート デスクトップへようこそ</translation>
 <translation id="7144878232160441200">再読み込み</translation>
 <translation id="7149517134817561223">Chrome リモート デスクトップのホストにコマンドを発行するアプリケーション。</translation>
+<translation id="7213491505512310433">安定性の向上とバグの修正。</translation>
 <translation id="7215059001581613786">PIN は 6 桁以上で入力してください。</translation>
 <translation id="7312846573060934304">ホストはオフラインです。</translation>
 <translation id="7319983568955948908">共有を停止</translation>
diff --git a/remoting/resources/remoting_strings_kn.xtb b/remoting/resources/remoting_strings_kn.xtb
index 42894a6..f5039b1 100644
--- a/remoting/resources/remoting_strings_kn.xtb
+++ b/remoting/resources/remoting_strings_kn.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Chrome ರಿಮೋಟ್ ಡೆಸ್ಕ್‌ಟಾಪ್‌ಗೆ ಸ್ವಾಗತ</translation>
 <translation id="7144878232160441200">ಮರುಪ್ರಯತ್ನಿಸಿ</translation>
 <translation id="7149517134817561223">Chrome ರಿಮೋಟ್ ಡೆಸ್ಕ್‌ಟಾಪ್ ಹೋಸ್ಟ್‌ಗೆ ಆಜ್ಞೆಗಳನ್ನು ನೀಡಲು ಅಪ್ಲಿಕೇಶನ್.</translation>
+<translation id="7213491505512310433">ಸ್ಥಿರತೆಯ ಸುಧಾರಣೆಗಳು ಮತ್ತು ದೋಷ ಪರಿಹಾರಗಳು.</translation>
 <translation id="7215059001581613786">ಆರು ಅಥವಾ ಇನ್ನಷ್ಟು ಅಂಕೆಗಳನ್ನು ಒಳಗೊಂಡಿರುವ PIN ಅನ್ನು ನಮೂದಿಸಿ.</translation>
 <translation id="7312846573060934304">ಹೋಸ್ಟ್‌ ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿದೆ.</translation>
 <translation id="7319983568955948908">ಹಂಚಿಕೆಯನ್ನು ನಿಲ್ಲಿಸಿ</translation>
diff --git a/remoting/resources/remoting_strings_ko.xtb b/remoting/resources/remoting_strings_ko.xtb
index e5d9802b..78ed010 100644
--- a/remoting/resources/remoting_strings_ko.xtb
+++ b/remoting/resources/remoting_strings_ko.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Chrome 원격 데스크톱에 오신 것을 환영합니다.</translation>
 <translation id="7144878232160441200">다시 시도</translation>
 <translation id="7149517134817561223">애플리케이션에서 Chrome 원격 데스크톱 호스트로 명령을 전송합니다.</translation>
+<translation id="7213491505512310433">안정성 향상 및 버그 수정</translation>
 <translation id="7215059001581613786">6자리 이상의 숫자로 구성된 PIN을 입력하세요.</translation>
 <translation id="7312846573060934304">호스트가 오프라인 상태입니다.</translation>
 <translation id="7319983568955948908">공유 중지</translation>
diff --git a/remoting/resources/remoting_strings_ms.xtb b/remoting/resources/remoting_strings_ms.xtb
index 8337da4..a916115b 100644
--- a/remoting/resources/remoting_strings_ms.xtb
+++ b/remoting/resources/remoting_strings_ms.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Selamat Datang ke Desktop Jauh Chrome</translation>
 <translation id="7144878232160441200">Cuba semula</translation>
 <translation id="7149517134817561223">Aplikasi untuk mengeluarkan perintah kepada hos desktop jauh Chrome.</translation>
+<translation id="7213491505512310433">Peningkatan kestabilan dan pembetulan pepijat.</translation>
 <translation id="7215059001581613786">Sila masukkan PIN yang mengandungi enam atau lebih angka.</translation>
 <translation id="7312846573060934304">Hos di luar talian.</translation>
 <translation id="7319983568955948908">Hentikan Perkongsian</translation>
diff --git a/remoting/resources/remoting_strings_nl.xtb b/remoting/resources/remoting_strings_nl.xtb
index bf3d2581..944c78b 100644
--- a/remoting/resources/remoting_strings_nl.xtb
+++ b/remoting/resources/remoting_strings_nl.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Welkom bij Chrome Remote Desktop</translation>
 <translation id="7144878232160441200">Opnieuw proberen</translation>
 <translation id="7149517134817561223">App die opdrachten geeft aan de Chrome Remote Desktop-host.</translation>
+<translation id="7213491505512310433">Stabiliteitsverbeteringen en bugfixes.</translation>
 <translation id="7215059001581613786">Geef een pincode van zes of meer cijfers op.</translation>
 <translation id="7312846573060934304">Host is offline.</translation>
 <translation id="7319983568955948908">Delen stoppen</translation>
diff --git a/remoting/resources/remoting_strings_pt-BR.xtb b/remoting/resources/remoting_strings_pt-BR.xtb
index 5c701ce..4342658 100644
--- a/remoting/resources/remoting_strings_pt-BR.xtb
+++ b/remoting/resources/remoting_strings_pt-BR.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Bem-vindo à Área de trabalho remota do Google Chrome</translation>
 <translation id="7144878232160441200">Tentar novamente</translation>
 <translation id="7149517134817561223">Aplicativo para emitir comandos ao host da Área de trabalho remota do Google Chrome.</translation>
+<translation id="7213491505512310433">Melhorias de estabilidade e correções de bug.</translation>
 <translation id="7215059001581613786">Digite um PIN de seis ou mais dígitos.</translation>
 <translation id="7312846573060934304">O host está off-line.</translation>
 <translation id="7319983568955948908">Parar compartilhamento</translation>
diff --git a/remoting/resources/remoting_strings_ru.xtb b/remoting/resources/remoting_strings_ru.xtb
index ffaefeea8..96725bf 100644
--- a/remoting/resources/remoting_strings_ru.xtb
+++ b/remoting/resources/remoting_strings_ru.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Настройте Удаленный рабочий стол Chrome</translation>
 <translation id="7144878232160441200">Повторить попытку</translation>
 <translation id="7149517134817561223">Приложение для отдачи команд хосту Удаленного рабочего стола Chrome.</translation>
+<translation id="7213491505512310433">Повышена стабильность, исправлены ошибки.</translation>
 <translation id="7215059001581613786">PIN-код должен содержать не менее шести цифр.</translation>
 <translation id="7312846573060934304">Хост не подключен к сети</translation>
 <translation id="7319983568955948908">Закрыть доступ</translation>
diff --git a/remoting/resources/remoting_strings_sv.xtb b/remoting/resources/remoting_strings_sv.xtb
index acfbd22..6827b86d 100644
--- a/remoting/resources/remoting_strings_sv.xtb
+++ b/remoting/resources/remoting_strings_sv.xtb
@@ -286,6 +286,7 @@
 <translation id="7116737094673640201">Välkommen till Chrome Remote Desktop</translation>
 <translation id="7144878232160441200">Försök igen</translation>
 <translation id="7149517134817561223">Program som används för att skicka kommandon till värddatorn för Chrome Remote Desktop.</translation>
+<translation id="7213491505512310433">Stabilitetsförbättringar och felkorrigeringar</translation>
 <translation id="7215059001581613786">Ange en PIN-kod som består av minst sex siffror.</translation>
 <translation id="7312846573060934304">Värden är offline.</translation>
 <translation id="7319983568955948908">Sluta dela</translation>
diff --git a/remoting/resources/remoting_strings_te.xtb b/remoting/resources/remoting_strings_te.xtb
index 93f59ec..0b21b050 100644
--- a/remoting/resources/remoting_strings_te.xtb
+++ b/remoting/resources/remoting_strings_te.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Chrome రిమోట్ డెస్క్‌టాప్‌కు స్వాగతం</translation>
 <translation id="7144878232160441200">మళ్లీ ప్రయత్నించండి</translation>
 <translation id="7149517134817561223">Chrome రిమోట్ డెస్క్‌టాప్ హోస్ట్‌కు ఆదేశాలను జారీ చేసే యాప్‌.</translation>
+<translation id="7213491505512310433">స్థిరత్వ మెరుగుదలలు మరియు బగ్ పరిష్కారాలు.</translation>
 <translation id="7215059001581613786">దయచేసి ఆరు లేదా అంతకంటే ఎక్కువ అంకెలను కలిగి ఉండే PINను నమోదు చేయండి.</translation>
 <translation id="7312846573060934304">హోస్ట్ ఆఫ్‌లైన్‌లో ఉంది.</translation>
 <translation id="7319983568955948908">భాగస్వామ్యం చేయడాన్ని ఆపివేయి</translation>
diff --git a/remoting/resources/remoting_strings_tr.xtb b/remoting/resources/remoting_strings_tr.xtb
index ead734f..be923ad 100644
--- a/remoting/resources/remoting_strings_tr.xtb
+++ b/remoting/resources/remoting_strings_tr.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Chrome Chrome Uzaktan Masaüstü'ne hoş geldiniz</translation>
 <translation id="7144878232160441200">Yeniden Dene</translation>
 <translation id="7149517134817561223">Chrome uzaktan masaüstü ana makinesine komutları verecek uygulama.</translation>
+<translation id="7213491505512310433">Kararlılık iyileştirmeleri ve hata düzeltmeleri.</translation>
 <translation id="7215059001581613786">Lütfen altı veya daha fazla basamaklı bir PIN kodu girin.</translation>
 <translation id="7312846573060934304">Ana makine çevrimdışı.</translation>
 <translation id="7319983568955948908">Paylaşmayı Durdur</translation>
diff --git a/remoting/resources/remoting_strings_uk.xtb b/remoting/resources/remoting_strings_uk.xtb
index 42dcfe0..98e6490 100644
--- a/remoting/resources/remoting_strings_uk.xtb
+++ b/remoting/resources/remoting_strings_uk.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Вітаємо у Віддаленому керуванні Chrome</translation>
 <translation id="7144878232160441200">Повторити спробу</translation>
 <translation id="7149517134817561223">Додаток, який надсилає команди хосту Віддаленого керування Chrome.</translation>
+<translation id="7213491505512310433">Покращено стабільність і виправлено помилки</translation>
 <translation id="7215059001581613786">Введіть PIN-код із принаймні шести символів.</translation>
 <translation id="7312846573060934304">Хост у режимі офлайн.</translation>
 <translation id="7319983568955948908">Скасувати доступ</translation>
diff --git a/remoting/resources/remoting_strings_vi.xtb b/remoting/resources/remoting_strings_vi.xtb
index 6c14b66..3447887 100644
--- a/remoting/resources/remoting_strings_vi.xtb
+++ b/remoting/resources/remoting_strings_vi.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">Chào mừng bạn đến với Chrome Remote Desktop</translation>
 <translation id="7144878232160441200">Thử lại</translation>
 <translation id="7149517134817561223">Ứng dụng sẽ phát lệnh đến máy chủ Chrome Remote Desktop.</translation>
+<translation id="7213491505512310433">Cải thiện độ ổn định và sửa lỗi.</translation>
 <translation id="7215059001581613786">Vui lòng nhập mã PIN có từ sáu chữ số trở lên.</translation>
 <translation id="7312846573060934304">Máy chủ đang ngoại tuyến.</translation>
 <translation id="7319983568955948908">Ngừng chia sẻ</translation>
diff --git a/remoting/resources/remoting_strings_zh-CN.xtb b/remoting/resources/remoting_strings_zh-CN.xtb
index e539a9e..dbf5dded 100644
--- a/remoting/resources/remoting_strings_zh-CN.xtb
+++ b/remoting/resources/remoting_strings_zh-CN.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">欢迎使用 Chrome 远程桌面</translation>
 <translation id="7144878232160441200">重试</translation>
 <translation id="7149517134817561223">向 Chrome 远程桌面主机发出命令的应用。</translation>
+<translation id="7213491505512310433">提升了稳定性,并修正了多个问题。</translation>
 <translation id="7215059001581613786">请输入至少包含 6 位数的 PIN。</translation>
 <translation id="7312846573060934304">主机未连接到网络。</translation>
 <translation id="7319983568955948908">停止共享</translation>
diff --git a/remoting/resources/remoting_strings_zh-TW.xtb b/remoting/resources/remoting_strings_zh-TW.xtb
index 6d819ba7..644a6bc 100644
--- a/remoting/resources/remoting_strings_zh-TW.xtb
+++ b/remoting/resources/remoting_strings_zh-TW.xtb
@@ -284,6 +284,7 @@
 <translation id="7116737094673640201">歡迎使用 Chrome 遠端桌面</translation>
 <translation id="7144878232160441200">重試</translation>
 <translation id="7149517134817561223">要對 Chrome 遠端桌面主機發出指令的應用程式。</translation>
+<translation id="7213491505512310433">提升穩定性並修正錯誤。</translation>
 <translation id="7215059001581613786">請輸入一個至少 6 位數的 PIN。</translation>
 <translation id="7312846573060934304">主機已離線。</translation>
 <translation id="7319983568955948908">停止共用</translation>
diff --git a/sandbox/win/src/named_pipe_dispatcher.cc b/sandbox/win/src/named_pipe_dispatcher.cc
index bc7e3d74..734a71c 100644
--- a/sandbox/win/src/named_pipe_dispatcher.cc
+++ b/sandbox/win/src/named_pipe_dispatcher.cc
@@ -77,7 +77,7 @@
   // http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
   // This ensures even if there is a path traversal in the pipe name, and it is
   // able to get past the checks above, it will still not be allowed to escape
-  // our whitelisted namespace.
+  // our allowed namespace.
   if (name->compare(0, 4, L"\\\\.\\") == 0)
     name->replace(0, 4, L"\\\\\?\\");
 
diff --git a/sandbox/win/src/named_pipe_policy_test.cc b/sandbox/win/src/named_pipe_policy_test.cc
index e588eff..d338be4 100644
--- a/sandbox/win/src/named_pipe_policy_test.cc
+++ b/sandbox/win/src/named_pipe_policy_test.cc
@@ -22,7 +22,7 @@
   if (INVALID_HANDLE_VALUE == pipe)
     return SBOX_TEST_DENIED;
 
-  // The second parameter allows us to enforce a whitelist for where the
+  // The second parameter allows us to enforce an allowlist for where the
   // pipe should be in the object namespace after creation.
   if (argc == 2) {
     base::string16 handle_name;
diff --git a/sandbox/win/src/sandbox_policy_base.cc b/sandbox/win/src/sandbox_policy_base.cc
index 3287ac4..9f2d265c 100644
--- a/sandbox/win/src/sandbox_policy_base.cc
+++ b/sandbox/win/src/sandbox_policy_base.cc
@@ -355,7 +355,7 @@
 }
 
 ResultCode PolicyBase::AddDllToUnload(const wchar_t* dll_name) {
-  blacklisted_dlls_.push_back(dll_name);
+  blocklisted_dlls_.push_back(dll_name);
   return SBOX_ALL_OK;
 }
 
@@ -659,7 +659,7 @@
     }
   }
 
-  for (const base::string16& dll : blacklisted_dlls_)
+  for (const base::string16& dll : blocklisted_dlls_)
     manager.AddToUnloadModules(dll.c_str());
 
   if (!SetupBasicInterceptions(&manager, is_csrss_connected_))
diff --git a/sandbox/win/src/sandbox_policy_base.h b/sandbox/win/src/sandbox_policy_base.h
index cb733981..631f974 100644
--- a/sandbox/win/src/sandbox_policy_base.h
+++ b/sandbox/win/src/sandbox_policy_base.h
@@ -156,7 +156,7 @@
   // Memory structure that stores the low level policy.
   PolicyGlobal* policy_;
   // The list of dlls to unload in the target process.
-  std::vector<base::string16> blacklisted_dlls_;
+  std::vector<base::string16> blocklisted_dlls_;
   // This is a map of handle-types to names that we need to close in the
   // target process. A null set means we need to close all handles of the
   // given type.
diff --git a/services/service_manager/sandbox/win/sandbox_win.cc b/services/service_manager/sandbox/win/sandbox_win.cc
index b5e74f45..b566da87 100644
--- a/services/service_manager/sandbox/win/sandbox_win.cc
+++ b/services/service_manager/sandbox/win/sandbox_win.cc
@@ -199,10 +199,10 @@
   return (fname.BaseName().value() == module_name);
 }
 
-// Adds a single dll by |module_name| into the |policy| blacklist.
+// Adds a single dll by |module_name| into the |policy| blocklist.
 // If |check_in_browser| is true we only add an unload policy only if the dll
 // is also loaded in this process.
-void BlacklistAddOneDll(const wchar_t* module_name,
+void BlocklistAddOneDll(const wchar_t* module_name,
                         bool check_in_browser,
                         sandbox::TargetPolicy* policy) {
   HMODULE module = check_in_browser ? ::GetModuleHandleW(module_name) : NULL;
@@ -243,7 +243,7 @@
 // does not get a chance to execute any code.
 void AddGenericDllEvictionPolicy(sandbox::TargetPolicy* policy) {
   for (int ix = 0; ix != base::size(kTroublesomeDlls); ++ix)
-    BlacklistAddOneDll(kTroublesomeDlls[ix], true, policy);
+    BlocklistAddOneDll(kTroublesomeDlls[ix], true, policy);
 }
 
 // Returns the object path prepended with the current logon session.
diff --git a/testing/buildbot/chromium.chrome.json b/testing/buildbot/chromium.chrome.json
index a344dc3..34a9df4 100644
--- a/testing/buildbot/chromium.chrome.json
+++ b/testing/buildbot/chromium.chrome.json
@@ -1350,7 +1350,9 @@
         "test": "gpu_unittests"
       },
       {
-        "experiment_percentage": 100,
+        "args": [
+          "--gtest_filter=-SadTabViewInteractiveUITest.ReloadMultipleSadTabs"
+        ],
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -2140,17 +2142,72 @@
     "additional_compile_targets": [
       "chrome",
       "chrome/installer/linux"
+    ],
+    "isolated_scripts": [
+      {
+        "experiment_percentage": 100,
+        "isolate_name": "chrome_sizes",
+        "merge": {
+          "script": "//tools/perf/process_perf_results.py"
+        },
+        "name": "chrome_sizes",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "pool": "chrome.tests"
+            }
+          ]
+        }
+      }
     ]
   },
   "mac-google-rel": {
     "additional_compile_targets": [
       "chrome"
+    ],
+    "isolated_scripts": [
+      {
+        "experiment_percentage": 100,
+        "isolate_name": "chrome_sizes",
+        "merge": {
+          "script": "//tools/perf/process_perf_results.py"
+        },
+        "name": "chrome_sizes",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "pool": "chrome.tests"
+            }
+          ]
+        }
+      }
     ]
   },
   "win-google-rel": {
     "additional_compile_targets": [
       "chrome",
       "chrome_official_builder"
+    ],
+    "isolated_scripts": [
+      {
+        "experiment_percentage": 100,
+        "isolate_name": "chrome_sizes",
+        "merge": {
+          "script": "//tools/perf/process_perf_results.py"
+        },
+        "name": "chrome_sizes",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "os": "Windows-10-15063",
+              "pool": "chrome.tests"
+            }
+          ]
+        }
+      }
     ]
   }
 }
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index 2fd98fe..080fd11 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -3488,9 +3488,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3533,9 +3533,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3578,9 +3578,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3623,9 +3623,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3668,9 +3668,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3713,9 +3713,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3758,9 +3758,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3804,9 +3804,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3850,9 +3850,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3895,9 +3895,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3940,9 +3940,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -3985,9 +3985,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4031,9 +4031,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4076,9 +4076,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4121,9 +4121,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4166,9 +4166,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4215,9 +4215,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4263,9 +4263,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4309,9 +4309,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4356,9 +4356,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4401,9 +4401,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4447,9 +4447,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4495,9 +4495,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4543,9 +4543,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4592,9 +4592,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4637,9 +4637,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4685,9 +4685,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4733,9 +4733,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4779,9 +4779,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4825,9 +4825,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4870,9 +4870,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4915,9 +4915,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -4960,9 +4960,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5005,9 +5005,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5050,9 +5050,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5095,9 +5095,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5140,9 +5140,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5185,9 +5185,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5230,9 +5230,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5275,9 +5275,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5320,9 +5320,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5365,9 +5365,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5410,9 +5410,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5455,9 +5455,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5500,9 +5500,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5545,9 +5545,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5590,9 +5590,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5635,9 +5635,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5680,9 +5680,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5725,9 +5725,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5770,9 +5770,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5801,51 +5801,6 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "perfetto_unittests"
-          ],
-          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
-        },
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "cipd_packages": [
-            {
-              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
-              "location": "bin",
-              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
-            }
-          ],
-          "dimension_sets": [
-            {
-              "device_os": "KTU84P",
-              "device_os_type": "userdebug",
-              "device_type": "hammerhead",
-              "os": "Android"
-            }
-          ],
-          "output_links": [
-            {
-              "link": [
-                "https://luci-logdog.appspot.com/v/?s",
-                "=android%2Fswarming%2Flogcats%2F",
-                "${TASK_ID}%2F%2B%2Funified_logcats"
-              ],
-              "name": "shard #${SHARD_INDEX} logcats"
-            }
-          ]
-        },
-        "test": "perfetto_unittests"
-      },
-      {
-        "args": [
-          "--gs-results-bucket=chromium-result-details",
-          "--recover-devices"
-        ],
-        "isolate_coverage_data": true,
-        "merge": {
-          "args": [
-            "--bucket",
-            "chromium-result-details",
-            "--test-name",
             "sandbox_linux_unittests"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
@@ -5861,9 +5816,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5906,9 +5861,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5951,9 +5906,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -5996,9 +5951,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6041,9 +5996,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6086,9 +6041,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6131,9 +6086,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6176,9 +6131,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6221,9 +6176,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6266,9 +6221,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6312,9 +6267,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6357,9 +6312,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6402,9 +6357,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6447,9 +6402,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6492,9 +6447,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6537,9 +6492,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6586,9 +6541,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
@@ -6632,9 +6587,9 @@
           ],
           "dimension_sets": [
             {
-              "device_os": "KTU84P",
+              "device_os": "MMB29Q",
               "device_os_type": "userdebug",
-              "device_type": "hammerhead",
+              "device_type": "bullhead",
               "os": "Android"
             }
           ],
diff --git a/testing/buildbot/chromium.perf.fyi.json b/testing/buildbot/chromium.perf.fyi.json
index 77da67d..92073f5 100644
--- a/testing/buildbot/chromium.perf.fyi.json
+++ b/testing/buildbot/chromium.perf.fyi.json
@@ -114,6 +114,7 @@
             {
               "gpu": null,
               "id": "build370-a7",
+              "os": "Windows-10",
               "pool": "chrome.tests.perf-fyi"
             }
           ],
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl
index 34d3749b..71b07a1 100644
--- a/testing/buildbot/gn_isolate_map.pyl
+++ b/testing/buildbot/gn_isolate_map.pyl
@@ -612,6 +612,11 @@
     "label": "//sandbox/linux:chrome_sandbox",
     "type": "additional_compile_target",
   },
+  "chrome_sizes": {
+    "label": "//chrome/test:chrome_sizes",
+    "type": "generated_script",
+    "script": "bin/run_chrome_sizes",
+  },
   "chromedriver": {
     "label": "//chrome/test/chromedriver:chromedriver",
     "type": "additional_compile_target",
@@ -809,7 +814,7 @@
   "cronet_sizes": {
     "label": "//components/cronet/android:cronet_sizes",
     "type": "generated_script",
-    "script": "bin/cronet_sizes",
+    "script": "bin/run_cronet_sizes",
   },
   "cronet_smoketests_missing_native_library_instrumentation_apk": {
     "label": "//components/cronet/android:cronet_smoketests_missing_native_library_instrumentation_apk",
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index 211dbec..5797d00 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -739,9 +739,10 @@
         'experiment_percentage': 100,
       },
       'linux-chromeos-google-rel': {
-        # TODO(https://crbug.com/932269): Promote out of experiment when the
-        # tests are green.
-        'experiment_percentage': 100,
+        # TODO(crbug.com/970649): Remove this filter.
+        'args': [
+          '--gtest_filter=-SadTabViewInteractiveUITest.ReloadMultipleSadTabs',
+        ],
       },
     },
   },
@@ -1173,6 +1174,7 @@
   },
   'perfetto_unittests': {
     'remove_from': [
+      'android-code-coverage',
       'android-kitkat-arm-rel',
       'android-marshmallow-arm64-rel',
       'Android CFI',
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index df7c0ca8..144b6e4 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -203,6 +203,17 @@
       },
     },
 
+    'chrome_sizes': {
+      'chrome_sizes': {
+        'merge': {
+          'script': '//tools/perf/process_perf_results.py',
+        },
+        # TODO(crbug.com/961548): Promote these out of experiment if/when they
+        # pass.
+        'experiment_percentage': 100,
+      },
+    },
+
     'chromedriver_py_tests_isolated_scripts': {
       'chromedriver_py_tests': {
         "args": [
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index d832a6a..bb56c876 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -254,18 +254,13 @@
         'os_type': 'android',
       },
       'Marshmallow 64 bit Tester': {
+        'mixins': [
+          'marshmallow',
+          'bullhead',
+        ],
         'test_suites': {
           'gtest_tests': 'chromium_android_gtests',
         },
-        'swarming': {
-          'dimension_sets': [
-            {
-              'device_os': 'MMB29Q',
-              'device_type': 'bullhead',
-              'os': 'Android',
-            },
-          ],
-        },
         'os_type': 'android',
       },
       'Marshmallow Tablet Tester': {
@@ -397,18 +392,13 @@
       },
       'android-cronet-lollipop-arm-rel': {},
       'android-cronet-marshmallow-arm64-rel': {
+        'mixins': [
+          'marshmallow',
+          'bullhead',
+        ],
         'test_suites': {
           'gtest_tests': 'cronet_gtests',
         },
-        'swarming': {
-          'dimension_sets': [
-            {
-              'device_os': 'MMB29Q',
-              'device_type': 'bullhead',
-              'os': 'Android',
-            },
-          ],
-        },
         'os_type': 'android',
       },
       'android-cronet-x86-dbg': {
@@ -480,6 +470,10 @@
         'os_type': 'android',
       },
       'android-marshmallow-arm64-rel': {
+        'mixins': [
+          'marshmallow',
+          'bullhead',
+        ],
         'additional_compile_targets': [
           'monochrome_static_initializers',
         ],
@@ -487,15 +481,6 @@
           'gtest_tests': 'chromium_android_gtests',
           'isolated_scripts': 'marshmallow_isolated_scripts',
         },
-        'swarming': {
-          'dimension_sets': [
-            {
-              'device_os': 'MMB29Q',
-              'device_type': 'bullhead',
-              'os': 'Android',
-            },
-          ],
-        },
         'os_type': 'android',
       },
       'android-pie-arm64-dbg': {
@@ -603,17 +588,36 @@
           'chrome',
           'chrome/installer/linux',
         ],
+        'mixins': [
+          'chrome-swarming-pool',
+        ],
+        'test_suites': {
+          'isolated_scripts': 'chrome_sizes',
+        },
       },
       'mac-google-rel': {
         'additional_compile_targets': [
           'chrome',
         ],
+        'mixins': [
+          'chrome-swarming-pool',
+        ],
+        'test_suites': {
+          'isolated_scripts': 'chrome_sizes',
+        },
       },
       'win-google-rel': {
         'additional_compile_targets': [
           'chrome',
           'chrome_official_builder',
         ],
+        'mixins': [
+          'chrome-swarming-pool',
+          'win10',
+        ],
+        'test_suites': {
+          'isolated_scripts': 'chrome_sizes',
+        },
       },
     },
   },
@@ -1568,8 +1572,8 @@
       'android-code-coverage': {
         'mixins': [
           'code-coverage',
-          'kitkat',
-          'hammerhead',
+          'marshmallow',
+          'bullhead',
         ],
         'test_suites': {
           'gtest_tests': 'chromium_android_gtests',
diff --git a/testing/merge_scripts/code_coverage/merge_lib.py b/testing/merge_scripts/code_coverage/merge_lib.py
index 7249c8b4..0eeaf0c 100644
--- a/testing/merge_scripts/code_coverage/merge_lib.py
+++ b/testing/merge_scripts/code_coverage/merge_lib.py
@@ -207,3 +207,29 @@
     os.remove(input_file)
 
   return invalid_profraw_files + invalid_profdata_files
+
+# We want to retry shards that contain one or more profiles that cannot be
+# merged (typically due to corruption described in crbug.com/937521).
+def get_shards_to_retry(bad_profiles):
+  bad_shard_ids = set()
+
+  def is_task_id(s):
+    # Swarming task ids are 16 hex chars. The pythonic way to validate this is
+    # to cast to int and catch a value error.
+    try:
+      assert len(s) == 16, 'Swarming task IDs are expected be of length 16'
+      _int_id = int(s, 16)
+      return True
+    except (AssertionError, ValueError):
+      return False
+
+  for profile in bad_profiles:
+    # E.g. /b/s/w/ir/tmp/t/tmpSvBRii/44b643576cf39f10/profraw/default-1.profraw
+    _base_path, task_id, _profraw, _filename = os.path.normpath(profile).rsplit(
+        os.path.sep, maxsplit=3)
+    # Since we are getting a task_id from a file path, which is less than ideal,
+    # do some checking to at least verify that the snippet looks like a valid
+    # task id.
+    assert is_task_id(task_id)
+    bad_shard_ids.add(task_id)
+  return bad_shard_ids
diff --git a/testing/merge_scripts/code_coverage/merge_results.py b/testing/merge_scripts/code_coverage/merge_results.py
index 333e0d4..b51135e5 100755
--- a/testing/merge_scripts/code_coverage/merge_results.py
+++ b/testing/merge_scripts/code_coverage/merge_results.py
@@ -113,11 +113,15 @@
       failed = True
       logging.warning('Additional merge script %s exited with %s' %
                       (params.additional_merge_script, rc))
+    mark_invalid_shards(coverage_merger.get_shards_to_retry(invalid_profiles),
+                        params.summary_json, params.output_json)
   elif len(params.jsons_to_merge) == 1:
     logging.info("Only one output needs to be merged; directly copying it.")
     with open(params.jsons_to_merge[0]) as f_read:
       with open(params.output_json, 'w') as f_write:
         f_write.write(f_read.read())
+    mark_invalid_shards(coverage_merger.get_shards_to_retry(invalid_profiles),
+                        params.summary_json, params.output_json)
   else:
     logging.warning(
         "This script was told to merge %d test results, but no additional "
@@ -125,6 +129,23 @@
 
   return 1 if (failed or bool(invalid_profiles)) else 0
 
+def mark_invalid_shards(bad_shards, summary_file, output_file):
+  shard_indices = []
+  with open(summary_file) as f:
+    summary = json.load(f)
+
+  for i in range(len(summary['shards'])):
+    shard_id = summary['shards'][i]['task_id']
+    if shard_id in bad_shards:
+      shard_indices.append(i)
+
+  with open(output_file) as f:
+    output = json.load(f)
+  output.setdefault('missing_shards', [])
+  output['missing_shards'].extend(shard_indices)
+  with open(output_file, 'w') as f:
+    json.dump(output, f)
+
 
 if __name__ == '__main__':
   logging.basicConfig(
diff --git a/testing/merge_scripts/code_coverage/merge_results_test.py b/testing/merge_scripts/code_coverage/merge_results_test.py
index 9f2443b..7de53ec 100755
--- a/testing/merge_scripts/code_coverage/merge_results_test.py
+++ b/testing/merge_scripts/code_coverage/merge_results_test.py
@@ -206,6 +206,25 @@
                   stderr=-2,
               ), mock_exec_cmd.call_args)
 
+  @mock.patch('__builtin__.open',
+              new_callable=mock.mock_open,
+              read_data=json.dumps(
+                  {'shards': [{'task_id': '1234567890abcdeff'}]}))
+  def test_mark_invalid_shards(self, mo):
+    mock_result = mock.mock_open()
+    mock_write = mock.MagicMock()
+    mock_result.return_value.write = mock_write
+    mo.side_effect = (
+        mo.return_value,
+        mock.mock_open(read_data='{}').return_value,
+        mock_result.return_value,
+    )
+    merge_results.mark_invalid_shards(['1234567890abcdeff'], 'dummy.json',
+                                      'o.json')
+    written = json.loads(''.join(c[0][0] for c in mock_write.call_args_list))
+    self.assertIn('missing_shards', written)
+    self.assertEqual(written['missing_shards'], [0])
+
 
 if __name__ == '__main__':
   unittest.main()
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn
index 88deaa0f..95b6559 100644
--- a/third_party/blink/public/mojom/BUILD.gn
+++ b/third_party/blink/public/mojom/BUILD.gn
@@ -51,6 +51,7 @@
     "frame/lifecycle.mojom",
     "frame/navigation_initiator.mojom",
     "geolocation/geolocation_service.mojom",
+    "hid/hid.mojom",
     "hyphenation/hyphenation.mojom",
     "idle/idle_manager.mojom",
     "insecure_input/insecure_input_service.mojom",
diff --git a/third_party/blink/public/mojom/hid/OWNERS b/third_party/blink/public/mojom/hid/OWNERS
new file mode 100644
index 0000000..ca37286
--- /dev/null
+++ b/third_party/blink/public/mojom/hid/OWNERS
@@ -0,0 +1,7 @@
+file://third_party/blink/renderer/modules/hid/OWNERS
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
+
+# TEAM: device-dev@chromium.org
+# COMPONENT: Blink>HID
diff --git a/third_party/blink/public/mojom/hid/hid.mojom b/third_party/blink/public/mojom/hid/hid.mojom
new file mode 100644
index 0000000..e47522a
--- /dev/null
+++ b/third_party/blink/public/mojom/hid/hid.mojom
@@ -0,0 +1,71 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "services/device/public/mojom/hid.mojom";
+
+// USB and Bluetooth devices report a pair of values that allow a host to
+// identify a connected device. Vendor IDs are 16-bit values assigned by the USB
+// Implementers Forum or Bluetooth Special Interest Group and identify the
+// device vendor or manufacturer. Product IDs are 16-bit values allocated by the
+// vendor and identify a specific device.
+//
+// USB vendor IDs are available from the USB-IF website:
+// https://cms.usb.org/usb/api/usbif.json
+//
+// Bluetooth vendor IDs are available from the Bluetooth SIG website:
+// https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/
+//
+// A community-sourced (and incomplete) database of known USB device ID pairs is
+// maintained at http://www.linux-usb.org/usb.ids
+struct VendorAndProduct {
+  uint16 vendor;
+  uint16 product;
+};
+
+// A device ID filter may be specified to match a vendor ID, or to match both a
+// vendor ID and a product ID.
+union DeviceIdFilter {
+  uint16 vendor;
+  VendorAndProduct vendor_and_product;
+};
+
+// Human Interface Device (HID) usages are 32-bit values that communicate the
+// intended function or meaning of a particular control or group of controls.
+// When applied to a top-level HID collection, usages describe the intended
+// function of the device. A 32-bit usage is composed of a 16-bit usage page
+// describing the general category of the usage and a 16-bit usage value which
+// references a specific usage in that category. A usage filter may be
+// specified to match only the usage page, or to match both the usage page and
+// usage value.
+//
+// HID usages are defined in the USB HID Usages Tables document, v1.12.
+// https://www.usb.org/document-library/hid-usage-tables-112
+union UsageFilter {
+  uint16 page;
+  device.mojom.HidUsageAndPage usage_and_page;
+};
+
+// A HID device filter may include a device ID filter, a usage filter, both, or
+// neither. A device filter matches a device only if all included filters match.
+// If no filters are included, the device filter will match any device.
+struct HidDeviceFilter {
+  // The device ID filter, if provided, will match a device only if has the same
+  // vendor ID. If the filter also specifies a product ID, the filter will match
+  // only if both the vendor ID and product ID match.
+  DeviceIdFilter? device_ids;
+
+  // The usage filter, if provided, will match a device only if it has a
+  // top-level collection with the specified usage page. If the filter also
+  // specifies a usage value, the filter will match only if both the usage page
+  // and value match.
+  UsageFilter? usage;
+};
+
+// An interface for requesting access to Human Interface Device (HID)
+// peripherals from the render process. The implementation is responsible for
+// checking device access permissions and should not return information about a
+// device unless permission to access that device has already been granted.
+interface HidService {};
diff --git a/third_party/blink/public/mojom/use_counter/css_property_id.mojom b/third_party/blink/public/mojom/use_counter/css_property_id.mojom
index 04df6c8..4fb0082 100644
--- a/third_party/blink/public/mojom/use_counter/css_property_id.mojom
+++ b/third_party/blink/public/mojom/use_counter/css_property_id.mojom
@@ -4,7 +4,7 @@
 
 module blink.mojom;
 
-const int32 kMaximumCSSSampleId = 639;
+const int32 kMaximumCSSSampleId = 640;
 
 // This CSSSampleId represents page load for CSS histograms. It is recorded once
 // per page visit for each CSS histogram being logged on the blink side and the
diff --git a/third_party/blink/public/platform/modules/mediastream/media_stream_audio_track.h b/third_party/blink/public/platform/modules/mediastream/media_stream_audio_track.h
index a9f39cc..8efbce2 100644
--- a/third_party/blink/public/platform/modules/mediastream/media_stream_audio_track.h
+++ b/third_party/blink/public/platform/modules/mediastream/media_stream_audio_track.h
@@ -81,7 +81,7 @@
   // Called by MediaStreamAudioSource to notify this track that the flow of
   // audio data has started from the source. |stop_callback| is run by Stop()
   // when the source must halt the flow of audio data to this track.
-  void Start(const base::Closure& stop_callback);
+  void Start(base::OnceClosure stop_callback);
 
   // Called by the MediaStreamAudioDeliverer to notify this track of an audio
   // format change. In turn, all WebMediaStreamAudioSinks will be notified
@@ -100,7 +100,7 @@
   THREAD_CHECKER(thread_checker_);
 
   // Callback provided to Start() which is run when the audio flow must halt.
-  base::Closure stop_callback_;
+  base::OnceClosure stop_callback_;
 
   // Manages sinks connected to this track and the audio format and data flow.
   MediaStreamAudioDeliverer<WebMediaStreamAudioSink> deliverer_;
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
index 1e187be..2aebd6a 100644
--- a/third_party/blink/renderer/core/BUILD.gn
+++ b/third_party/blink/renderer/core/BUILD.gn
@@ -676,6 +676,7 @@
     "$blink_core_output_dir/css/properties/longhands/font_variant_numeric.h",
     "$blink_core_output_dir/css/properties/longhands/font_variation_settings.h",
     "$blink_core_output_dir/css/properties/longhands/font_weight.h",
+    "$blink_core_output_dir/css/properties/longhands/forced_color_adjust.h",
     "$blink_core_output_dir/css/properties/longhands/grid_auto_columns.h",
     "$blink_core_output_dir/css/properties/longhands/grid_auto_flow.h",
     "$blink_core_output_dir/css/properties/longhands/grid_auto_rows.h",
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
index 6b9dfbc9..000e9d9 100644
--- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -773,6 +773,17 @@
       priority: "High",
     },
     {
+      name: "forced-color-adjust",
+      property_methods: ["CSSValueFromComputedStyleInternal"],
+      inherited: true,
+      runtime_flag: "ForcedColors",
+      field_template: "keyword",
+      priority: "High",
+      keywords: ["auto", "none"],
+      typedom_types: ["Keyword"],
+      default_value: "auto",
+    },
+    {
       name: "-webkit-locale",
       property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
       inherited: true,
@@ -4174,6 +4185,7 @@
         resolver: "inline-start",
         physical_group: "margin",
       },
+      typedom_types: ["Length", "Percentage"],
       keywords: ["auto"]
     },
     {
@@ -4183,6 +4195,7 @@
         resolver: "inline-end",
         physical_group: "margin",
       },
+      typedom_types: ["Length", "Percentage"],
       keywords: ["auto"]
     },
     {
@@ -4192,6 +4205,7 @@
         resolver: "block-start",
         physical_group: "margin",
       },
+      typedom_types: ["Length", "Percentage"],
       keywords: ["auto"]
     },
     {
@@ -4201,6 +4215,7 @@
         resolver: "block-end",
         physical_group: "margin",
       },
+      typedom_types: ["Length", "Percentage"],
       keywords: ["auto"]
     },
     {
@@ -4209,7 +4224,8 @@
       direction_aware_options: {
         resolver: "inline-start",
         physical_group: "padding",
-      }
+      },
+      typedom_types: ["Length", "Percentage"]
     },
     {
       name: "padding-inline-end",
@@ -4217,7 +4233,8 @@
       direction_aware_options: {
         resolver: "inline-end",
         physical_group: "padding",
-      }
+      },
+      typedom_types: ["Length", "Percentage"]
     },
     {
       name: "padding-block-start",
@@ -4225,7 +4242,8 @@
       direction_aware_options: {
         resolver: "block-start",
         physical_group: "padding",
-      }
+      },
+      typedom_types: ["Length", "Percentage"]
     },
     {
       name: "padding-block-end",
@@ -4233,7 +4251,8 @@
       direction_aware_options: {
         resolver: "block-end",
         physical_group: "padding",
-      }
+      },
+      typedom_types: ["Length", "Percentage"]
     },
     {
       name: "border-inline-start-width",
@@ -4338,7 +4357,8 @@
       direction_aware_options: {
         resolver: "inline-start",
         physical_group: "inset",
-      }
+      },
+      typedom_types: ["Length", "Percentage"]
     },
     {
       name: "inset-inline-end",
@@ -4347,7 +4367,8 @@
       direction_aware_options: {
         resolver: "inline-end",
         physical_group: "inset",
-      }
+      },
+      typedom_types: ["Length", "Percentage"]
     },
     {
       name: "inset-block-start",
@@ -4356,7 +4377,8 @@
       direction_aware_options: {
         resolver: "block-start",
         physical_group: "inset",
-      }
+      },
+      typedom_types: ["Length", "Percentage"]
     },
     {
       name: "inset-block-end",
@@ -4365,7 +4387,8 @@
       direction_aware_options: {
         resolver: "block-end",
         physical_group: "inset",
-      }
+      },
+      typedom_types: ["Length", "Percentage"]
     },
 
     // Non-standard direction aware properties
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc b/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc
index 603c7ae..9ac477d 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc
+++ b/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc
@@ -623,6 +623,8 @@
               (value_id == CSSValueID::kInlineStart ||
                value_id == CSSValueID::kInlineEnd)) ||
              value_id == CSSValueID::kNone;
+    case CSSPropertyID::kForcedColorAdjust:
+      return value_id == CSSValueID::kNone || value_id == CSSValueID::kAuto;
     case CSSPropertyID::kImageRendering:
       return value_id == CSSValueID::kAuto ||
              value_id == CSSValueID::kWebkitOptimizeContrast ||
@@ -996,6 +998,7 @@
     case CSSPropertyID::kEmptyCells:
     case CSSPropertyID::kFillRule:
     case CSSPropertyID::kFloat:
+    case CSSPropertyID::kForcedColorAdjust:
     case CSSPropertyID::kHyphens:
     case CSSPropertyID::kImageRendering:
     case CSSPropertyID::kListStylePosition:
diff --git a/third_party/blink/renderer/core/css/parser/css_proto_converter.cc b/third_party/blink/renderer/core/css/parser/css_proto_converter.cc
index 3ea2cbd..6ebb3f9 100644
--- a/third_party/blink/renderer/core/css/parser/css_proto_converter.cc
+++ b/third_party/blink/renderer/core/css/parser/css_proto_converter.cc
@@ -1481,6 +1481,7 @@
     "inset",
     "overflow-block",
     "overflow-inline",
+    "forced-color-adjust",
     "INVALID_PROPERTY",
 };
 
diff --git a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
index a90aca7e..4cb4a01 100644
--- a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
+++ b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
@@ -153,6 +153,7 @@
 #include "third_party/blink/renderer/core/css/properties/longhands/font_variant_numeric.h"
 #include "third_party/blink/renderer/core/css/properties/longhands/font_variation_settings.h"
 #include "third_party/blink/renderer/core/css/properties/longhands/font_weight.h"
+#include "third_party/blink/renderer/core/css/properties/longhands/forced_color_adjust.h"
 #include "third_party/blink/renderer/core/css/properties/longhands/grid_auto_columns.h"
 #include "third_party/blink/renderer/core/css/properties/longhands/grid_auto_flow.h"
 #include "third_party/blink/renderer/core/css/properties/longhands/grid_auto_rows.h"
@@ -3269,6 +3270,15 @@
   return ComputedStyleUtils::ValueForFontWeight(style);
 }
 
+const CSSValue* ForcedColorAdjust::CSSValueFromComputedStyleInternal(
+    const ComputedStyle& style,
+    const SVGComputedStyle&,
+    const LayoutObject*,
+    Node* styled_node,
+    bool allow_visited_style) const {
+  return CSSIdentifierValue::Create(style.ForcedColorAdjust());
+}
+
 const CSSValue* GridAutoColumns::ParseSingleValue(
     CSSParserTokenRange& range,
     const CSSParserContext& context,
diff --git a/third_party/blink/renderer/core/css/resolver/css_property_priority.h b/third_party/blink/renderer/core/css/resolver/css_property_priority.h
index 6b57d119..00bae09 100644
--- a/third_party/blink/renderer/core/css/resolver/css_property_priority.h
+++ b/third_party/blink/renderer/core/css/resolver/css_property_priority.h
@@ -87,7 +87,7 @@
 template <>
 inline CSSPropertyID CSSPropertyPriorityData<kHighPropertyPriority>::Last() {
   static_assert(static_cast<int>(CSSPropertyID::kZoom) ==
-                    static_cast<int>(CSSPropertyID::kColor) + 22,
+                    static_cast<int>(CSSPropertyID::kColor) + 23,
                 "CSSPropertyID::kZoom should be the end of the high priority "
                 "property range");
   static_assert(static_cast<int>(CSSPropertyID::kWritingMode) ==
diff --git a/third_party/blink/renderer/core/editing/commands/style_commands.cc b/third_party/blink/renderer/core/editing/commands/style_commands.cc
index 0ea2db12..318e135 100644
--- a/third_party/blink/renderer/core/editing/commands/style_commands.cc
+++ b/third_party/blink/renderer/core/editing/commands/style_commands.cc
@@ -85,7 +85,7 @@
                                         EditorCommandSource source,
                                         InputEvent::InputType input_type,
                                         CSSPropertyValueSet* style) {
-  // TODO(editnig-dev): We don't call shouldApplyStyle when the source is DOM;
+  // TODO(editing-dev): We don't call shouldApplyStyle when the source is DOM;
   // is there a good reason for that?
   switch (source) {
     case EditorCommandSource::kMenuOrKeyBinding:
@@ -315,7 +315,7 @@
   const String new_style =
       ComputeToggleStyleInList(*selection_style, property_id, value);
 
-  // TODO(editnig-dev): We shouldn't be having to convert new style into text.
+  // TODO(editing-dev): We shouldn't be having to convert new style into text.
   // We should have setPropertyCSSValue.
   auto* const new_mutable_style =
       MakeGarbageCollected<MutableCSSPropertyValueSet>(kHTMLQuirksMode);
@@ -534,7 +534,7 @@
   WritingDirection selection_direction = TextDirectionForSelection(
       frame.Selection().ComputeVisibleSelectionInDOMTreeDeprecated(),
       frame.GetEditor().TypingStyle(), has_nested_or_multiple_embeddings);
-  // TODO(editnig-dev): We should be returning MixedTriState when
+  // TODO(editing-dev): We should be returning MixedTriState when
   // selectionDirection == direction && hasNestedOrMultipleEmbeddings
   return (selection_direction == direction &&
           !has_nested_or_multiple_embeddings)
@@ -584,7 +584,7 @@
 String StyleCommands::ValueStyle(LocalFrame& frame, CSSPropertyID property_id) {
   frame.GetDocument()->UpdateStyleAndLayout();
 
-  // TODO(editnig-dev): Rather than retrieving the style at the start of the
+  // TODO(editing-dev): Rather than retrieving the style at the start of the
   // current selection, we should retrieve the style present throughout the
   // selection for non-Mac platforms.
   return SelectionStartCSSPropertyValue(frame, property_id);
diff --git a/third_party/blink/renderer/core/frame/use_counter_helper.cc b/third_party/blink/renderer/core/frame/use_counter_helper.cc
index ca80548..55ca69c0 100644
--- a/third_party/blink/renderer/core/frame/use_counter_helper.cc
+++ b/third_party/blink/renderer/core/frame/use_counter_helper.cc
@@ -1241,6 +1241,8 @@
       return 638;
     case CSSPropertyID::kOverflowBlock:
       return 639;
+    case CSSPropertyID::kForcedColorAdjust:
+      return 640;
     // 1. Add new features above this line (don't change the assigned numbers of
     // the existing items).
     // 2. Update kMaximumCSSSampleId (defined in
diff --git a/third_party/blink/renderer/core/inspector/browser_protocol.pdl b/third_party/blink/renderer/core/inspector/browser_protocol.pdl
index 30fbd53..a76a91f 100644
--- a/third_party/blink/renderer/core/inspector/browser_protocol.pdl
+++ b/third_party/blink/renderer/core/inspector/browser_protocol.pdl
@@ -4909,13 +4909,15 @@
       Network.LoaderId loaderId
       # Frame's name as specified in the tag.
       optional string name
-      # Frame document's URL.
+      # Frame document's URL without fragment.
       string url
+      # Frame document's URL fragment including the '#'.
+      experimental optional string urlFragment
       # Frame document's security origin.
       string securityOrigin
       # Frame document's mimeType as determined by the browser.
       string mimeType
-      # If the frame failed to load, this contains the URL that could not be loaded.
+      # If the frame failed to load, this contains the URL that could not be loaded. Note that unlike url above, this URL may contain a fragment.
       experimental optional string unreachableUrl
 
   # Information about the Resource on the page.
@@ -6855,6 +6857,20 @@
       boolean hasResidentKey
       boolean hasUserVerification
 
+  type Credential extends object
+    properties
+      binary credentialId
+      # SHA-256 hash of the Relying Party ID the credential is scoped to. Must
+      # be 32 bytes long.
+      # See https://w3c.github.io/webauthn/#rpidhash
+      binary rpIdHash
+      # The private key in PKCS#8 format.
+      binary privateKey
+      # Signature counter. This is incremented by one for each successful
+      # assertion.
+      # See https://w3c.github.io/webauthn/#signature-counter
+      integer signCount
+
   # Enable the WebAuthn domain and start intercepting credential storage and
   # retrieval with a virtual authenticator.
   command enable
@@ -6873,3 +6889,21 @@
   command removeVirtualAuthenticator
     parameters
       AuthenticatorId authenticatorId
+
+  # Adds the credential to the specified authenticator.
+  command addCredential
+    parameters
+      AuthenticatorId authenticatorId
+      Credential credential
+
+  # Returns all the credentials stored in the given virtual authenticator.
+  command getCredentials
+    parameters
+      AuthenticatorId authenticatorId
+    returns
+      array of Credential credentials
+
+  # Clears all the credentials from the specified device.
+  command clearCredentials
+    parameters
+      AuthenticatorId authenticatorId
diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b/third_party/blink/renderer/core/inspector/inspector_page_agent.cc
index a505bb3c..a7008e7 100644
--- a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_page_agent.cc
@@ -1041,6 +1041,8 @@
           .setSecurityOrigin(
               SecurityOrigin::Create(loader->Url())->ToRawString())
           .build();
+  if (loader->Url().HasFragmentIdentifier())
+    frame_object->setUrlFragment("#" + loader->Url().FragmentIdentifier());
   Frame* parent_frame = frame->Tree().Parent();
   if (parent_frame) {
     frame_object->setParentId(IdentifiersFactory::FrameId(parent_frame));
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
index eaff097..77ae72b 100644
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -88,14 +88,12 @@
 #include "third_party/blink/renderer/core/timing/performance.h"
 #include "third_party/blink/renderer/core/timing/window_performance.h"
 #include "third_party/blink/renderer/platform/bindings/script_forbidden_scope.h"
-#include "third_party/blink/renderer/platform/bindings/v8_dom_activity_logger.h"
 #include "third_party/blink/renderer/platform/exported/wrapped_resource_request.h"
 #include "third_party/blink/renderer/platform/histogram.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/loader/fetch/client_hints_preferences.h"
 #include "third_party/blink/renderer/platform/loader/fetch/detachable_use_counter.h"
-#include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_load_priority.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_loading_log.h"
@@ -466,29 +464,6 @@
   }
 }
 
-void FrameFetchContext::RecordLoadingActivity(
-    const ResourceRequest& request,
-    ResourceType type,
-    const AtomicString& fetch_initiator_name) {
-  if (GetResourceFetcherProperties().IsDetached() || !GetDocumentLoader() ||
-      GetDocumentLoader()->Archive() || !request.Url().IsValid())
-    return;
-  V8DOMActivityLogger* activity_logger = nullptr;
-  if (fetch_initiator_name == fetch_initiator_type_names::kXmlhttprequest) {
-    activity_logger = V8DOMActivityLogger::CurrentActivityLogger();
-  } else {
-    activity_logger =
-        V8DOMActivityLogger::CurrentActivityLoggerIfIsolatedWorld();
-  }
-
-  if (activity_logger) {
-    Vector<String> argv;
-    argv.push_back(Resource::ResourceTypeToString(type, fetch_initiator_name));
-    argv.push_back(request.Url());
-    activity_logger->LogEvent("blinkRequestResource", argv.size(), argv.data());
-  }
-}
-
 void FrameFetchContext::AddResourceTiming(const ResourceTimingInfo& info) {
   // Normally, |document_| is cleared on Document shutdown. However, Documents
   // for HTML imports will also not have a LocalFrame set: in that case, also
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h
index 42d028b..cabf299 100644
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
@@ -88,10 +88,6 @@
                       WebScopedVirtualTimePauser&,
                       ResourceType) override;
 
-  void RecordLoadingActivity(const ResourceRequest&,
-                             ResourceType,
-                             const AtomicString& fetch_initiator_name) override;
-
   void AddResourceTiming(const ResourceTimingInfo&) override;
   bool AllowImage(bool images_enabled, const KURL&) const override;
 
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc b/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
index dec2f27..cc384aa 100644
--- a/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
@@ -64,7 +64,6 @@
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h"
-#include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
@@ -1211,20 +1210,6 @@
   EXPECT_EQ("hi", request.HttpHeaderField(http_names::kUserAgent));
 }
 
-TEST_F(FrameFetchContextTest, RecordLoadingActivityWhenDetached) {
-  ResourceRequest request(KURL("https://www.example.com/"));
-
-  dummy_page_holder = nullptr;
-
-  GetFetchContext()->RecordLoadingActivity(
-      request, ResourceType::kRaw, fetch_initiator_type_names::kXmlhttprequest);
-  // Should not crash.
-
-  GetFetchContext()->RecordLoadingActivity(
-      request, ResourceType::kRaw, fetch_initiator_type_names::kDocument);
-  // Should not crash.
-}
-
 TEST_F(FrameFetchContextTest, AddResourceTimingWhenDetached) {
   scoped_refptr<ResourceTimingInfo> info = ResourceTimingInfo::Create(
       "type", base::TimeTicks() + base::TimeDelta::FromSecondsD(0.3));
diff --git a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc
index 0cee8bb..33cad926 100644
--- a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc
+++ b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc
@@ -20,9 +20,14 @@
 #include "third_party/blink/renderer/core/loader/preload_helper.h"
 #include "third_party/blink/renderer/core/loader/progress_tracker.h"
 #include "third_party/blink/renderer/core/loader/subresource_filter.h"
+#include "third_party/blink/renderer/platform/bindings/v8_dom_activity_logger.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object.h"
+#include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h"
+#include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h"
+#include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h"
+#include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_response.h"
 
@@ -35,6 +40,33 @@
       fetcher_properties_(fetcher_properties) {}
 ResourceLoadObserverForFrame::~ResourceLoadObserverForFrame() = default;
 
+void ResourceLoadObserverForFrame::DidStartRequest(
+    const FetchParameters& params,
+    ResourceType resource_type) {
+  // TODO(yhirano): Consider removing ResourceLoadObserver::DidStartRequest
+  // completely when we remove V8DOMActivityLogger.
+  DocumentLoader* document_loader =
+      frame_or_imported_document_->GetDocumentLoader();
+  if (document_loader && !document_loader->Archive() &&
+      params.Url().IsValid() && !params.IsSpeculativePreload()) {
+    V8DOMActivityLogger* activity_logger = nullptr;
+    const AtomicString& initiator_name = params.Options().initiator_info.name;
+    if (initiator_name == fetch_initiator_type_names::kXmlhttprequest) {
+      activity_logger = V8DOMActivityLogger::CurrentActivityLogger();
+    } else {
+      activity_logger =
+          V8DOMActivityLogger::CurrentActivityLoggerIfIsolatedWorld();
+    }
+    if (activity_logger) {
+      Vector<String> argv = {
+          Resource::ResourceTypeToString(resource_type, initiator_name),
+          params.Url()};
+      activity_logger->LogEvent("blinkRequestResource", argv.size(),
+                                argv.data());
+    }
+  }
+}
+
 void ResourceLoadObserverForFrame::WillSendRequest(
     uint64_t identifier,
     const ResourceRequest& request,
diff --git a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.h b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.h
index 909a1ae9..830a636 100644
--- a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.h
+++ b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.h
@@ -28,6 +28,7 @@
   ~ResourceLoadObserverForFrame() override;
 
   // ResourceLoadObserver implementation.
+  void DidStartRequest(const FetchParameters&, ResourceType) override;
   void WillSendRequest(uint64_t identifier,
                        const ResourceRequest&,
                        const ResourceResponse& redirect_response,
diff --git a/third_party/blink/renderer/core/loader/resource_load_observer_for_worker.cc b/third_party/blink/renderer/core/loader/resource_load_observer_for_worker.cc
index 879a846..f22358f 100644
--- a/third_party/blink/renderer/core/loader/resource_load_observer_for_worker.cc
+++ b/third_party/blink/renderer/core/loader/resource_load_observer_for_worker.cc
@@ -24,6 +24,9 @@
 
 ResourceLoadObserverForWorker::~ResourceLoadObserverForWorker() = default;
 
+void ResourceLoadObserverForWorker::DidStartRequest(const FetchParameters&,
+                                                    ResourceType) {}
+
 void ResourceLoadObserverForWorker::WillSendRequest(
     uint64_t identifier,
     const ResourceRequest& request,
diff --git a/third_party/blink/renderer/core/loader/resource_load_observer_for_worker.h b/third_party/blink/renderer/core/loader/resource_load_observer_for_worker.h
index 3e606658..42ad3ba 100644
--- a/third_party/blink/renderer/core/loader/resource_load_observer_for_worker.h
+++ b/third_party/blink/renderer/core/loader/resource_load_observer_for_worker.h
@@ -25,6 +25,7 @@
   ~ResourceLoadObserverForWorker() override;
 
   // ResourceLoadObserver implementation.
+  void DidStartRequest(const FetchParameters&, ResourceType) override;
   void WillSendRequest(uint64_t identifier,
                        const ResourceRequest&,
                        const ResourceResponse& redirect_response,
diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/third_party/blink/renderer/core/loader/worker_fetch_context.cc
index b24ac49..7f2f15b 100644
--- a/third_party/blink/renderer/core/loader/worker_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/worker_fetch_context.cc
@@ -222,8 +222,6 @@
   // worklets.
   if (global_scope_->IsWorkletGlobalScope())
     return;
-  if (!resource_timing_notifier_)
-    return;
   const SecurityOrigin* security_origin = GetResourceFetcherProperties()
                                               .GetFetchClientSettingsObject()
                                               .GetSecurityOrigin();
@@ -246,11 +244,6 @@
     out_request.SetTopFrameOrigin(GetTopFrameOrigin());
 }
 
-FetchContext* WorkerFetchContext::Detach() {
-  resource_timing_notifier_.Clear();
-  return BaseFetchContext::Detach();
-}
-
 void WorkerFetchContext::SetFirstPartyCookie(ResourceRequest& out_request) {
   if (out_request.SiteForCookies().IsNull())
     out_request.SetSiteForCookies(GetSiteForCookies());
diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/third_party/blink/renderer/core/loader/worker_fetch_context.h
index f725745b..4cd0d96 100644
--- a/third_party/blink/renderer/core/loader/worker_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/worker_fetch_context.h
@@ -83,7 +83,6 @@
                                const ClientHintsPreferences&,
                                const FetchParameters::ResourceWidth&,
                                ResourceRequest&) override;
-  FetchContext* Detach() override;
 
   WorkerSettings* GetWorkerSettings() const;
   WorkerContentSettingsClient* GetWorkerContentSettingsClient() const;
@@ -111,7 +110,8 @@
   // WorkerGlobalScope and owned by this WorkerFetchContext.
   const Member<ContentSecurityPolicy> content_security_policy_;
 
-  CrossThreadPersistent<WorkerResourceTimingNotifier> resource_timing_notifier_;
+  const CrossThreadPersistent<WorkerResourceTimingNotifier>
+      resource_timing_notifier_;
 
   // The value of |save_data_enabled_| is read once per frame from
   // NetworkStateNotifier, which is guarded by a mutex lock, and cached locally
diff --git a/third_party/blink/renderer/devtools/BUILD.gn b/third_party/blink/renderer/devtools/BUILD.gn
index 9404e28..9514347 100644
--- a/third_party/blink/renderer/devtools/BUILD.gn
+++ b/third_party/blink/renderer/devtools/BUILD.gn
@@ -1014,11 +1014,11 @@
   "front_end/Images/accelerometer-right.png",
   "front_end/Images/accelerometer-top.png",
   "front_end/Images/audits_logo.svg",
-  "front_end/Images/breakpoint.png",
-  "front_end/Images/breakpoint_2x.png",
-  "front_end/Images/breakpointConditional.png",
-  "front_end/Images/breakpointConditional_2x.png",
+  "front_end/Images/breakpoint.svg",
+  "front_end/Images/breakpointConditional.svg",
+  "front_end/Images/checkboxCheckmark.svg",
   "front_end/Images/checker.png",
+  "front_end/Images/chevrons.svg",
   "front_end/Images/chromeDisabledSelect.png",
   "front_end/Images/chromeDisabledSelect_2x.png",
   "front_end/Images/chromeLeft.png",
@@ -1026,10 +1026,11 @@
   "front_end/Images/chromeRight.png",
   "front_end/Images/chromeSelect.png",
   "front_end/Images/chromeSelect_2x.png",
-  "front_end/Images/errorWave.png",
-  "front_end/Images/errorWave_2x.png",
+  "front_end/Images/errorWave.svg",
   "front_end/Images/ic_info_black_18dp.svg",
   "front_end/Images/ic_warning_black_18dp.svg",
+  "front_end/Images/largeIcons.svg",
+  "front_end/Images/mediumIcons.svg",
   "front_end/Images/navigationControls.png",
   "front_end/Images/navigationControls_2x.png",
   "front_end/Images/nodeIcon.png",
@@ -1047,26 +1048,19 @@
   "front_end/Images/resourceCSSIcon.png",
   "front_end/Images/resourceDocumentIcon.png",
   "front_end/Images/resourceDocumentIconSmall.png",
-  "front_end/Images/mediumIcons.png",
-  "front_end/Images/mediumIcons_2x.png",
   "front_end/Images/resourceJSIcon.png",
   "front_end/Images/resourcePlainIcon.png",
   "front_end/Images/resourcePlainIconSmall.png",
   "front_end/Images/resourcesTimeGraphIcon.png",
   "front_end/Images/searchNext.png",
   "front_end/Images/searchPrev.png",
-  "front_end/Images/securityIcons_2x.png",
-  "front_end/Images/securityIcons.png",
-  "front_end/Images/smallIcons.png",
-  "front_end/Images/smallIcons_2x.png",
+  "front_end/Images/securityIcons.svg",
   "front_end/Images/speech.png",
-  "front_end/Images/treeoutlineTriangles.png",
-  "front_end/Images/treeoutlineTriangles_2x.png",
-  "front_end/Images/largeIcons.png",
-  "front_end/Images/largeIcons_2x.png",
+  "front_end/Images/smallIcons.svg",
   "front_end/Images/toolbarResizerVertical.png",
   "front_end/Images/touchCursor.png",
   "front_end/Images/touchCursor_2x.png",
+  "front_end/Images/treeoutlineTriangles.svg",
   "front_end/Images/whatsnew.png",
 ]
 
diff --git a/third_party/blink/renderer/devtools/PRESUBMIT.py b/third_party/blink/renderer/devtools/PRESUBMIT.py
index f19b2666..4dcfae3b 100644
--- a/third_party/blink/renderer/devtools/PRESUBMIT.py
+++ b/third_party/blink/renderer/devtools/PRESUBMIT.py
@@ -150,7 +150,7 @@
     return []
 
 
-def _CheckConvertSVGToPNGHashes(input_api, output_api):
+def _CheckOptimizeSVGHashes(input_api, output_api):
     if not input_api.platform.startswith('linux'):
         return []
 
@@ -165,40 +165,14 @@
     images_src_path = input_api.os_path.join("devtools", "front_end", "Images", "src")
     image_source_file_paths = [path for path in absolute_local_paths if images_src_path in path and path.endswith(".svg")]
     image_sources_path = input_api.os_path.join(input_api.PresubmitLocalPath(), "front_end", "Images", "src")
-    hashes_file_name = "svg2png.hashes"
+    hashes_file_name = "optimize_svg.hashes"
     hashes_file_path = input_api.os_path.join(image_sources_path, hashes_file_name)
     invalid_hash_file_paths = devtools_file_hashes.files_with_invalid_hashes(hashes_file_path, image_source_file_paths)
     if len(invalid_hash_file_paths) == 0:
         return []
     invalid_hash_file_names = [input_api.os_path.basename(file_path) for file_path in invalid_hash_file_paths]
     file_paths_str = ", ".join(invalid_hash_file_names)
-    error_message = "The following SVG files should be converted to PNG using convert_svg_images_png.py script before uploading: \n  - %s" % file_paths_str
-    return [output_api.PresubmitError(error_message)]
-
-
-def _CheckOptimizePNGHashes(input_api, output_api):
-    if not input_api.platform.startswith('linux'):
-        return []
-
-    original_sys_path = sys.path
-    try:
-        sys.path = sys.path + [input_api.os_path.join(input_api.PresubmitLocalPath(), 'scripts', 'build')]
-        import devtools_file_hashes
-    finally:
-        sys.path = original_sys_path
-
-    absolute_local_paths = [af.AbsoluteLocalPath() for af in input_api.AffectedFiles(include_deletes=False)]
-    images_src_path = input_api.os_path.join("devtools", "front_end", "Images", "src")
-    image_source_file_paths = [path for path in absolute_local_paths if images_src_path in path and path.endswith(".svg")]
-    image_sources_path = input_api.os_path.join(input_api.PresubmitLocalPath(), "front_end", "Images", "src")
-    hashes_file_name = "optimize_png.hashes"
-    hashes_file_path = input_api.os_path.join(image_sources_path, hashes_file_name)
-    invalid_hash_file_paths = devtools_file_hashes.files_with_invalid_hashes(hashes_file_path, image_source_file_paths)
-    if len(invalid_hash_file_paths) == 0:
-        return []
-    invalid_hash_file_names = [input_api.os_path.basename(file_path) for file_path in invalid_hash_file_paths]
-    file_paths_str = ", ".join(invalid_hash_file_names)
-    error_message = "The following PNG files should be optimized using optimize_png_images.py script before uploading: \n  - %s" % file_paths_str
+    error_message = "The following SVG files should be optimized using optimize_svg_images script before uploading: \n  - %s" % file_paths_str
     return [output_api.PresubmitError(error_message)]
 
 
@@ -223,8 +197,7 @@
     results.extend(_CheckDevtoolsLocalization(input_api, output_api))
     results.extend(_CheckDevtoolsStyle(input_api, output_api))
     results.extend(_CompileDevtoolsFrontend(input_api, output_api))
-    results.extend(_CheckConvertSVGToPNGHashes(input_api, output_api))
-    results.extend(_CheckOptimizePNGHashes(input_api, output_api))
+    results.extend(_CheckOptimizeSVGHashes(input_api, output_api))
     results.extend(_CheckCSSViolations(input_api, output_api))
     return results
 
diff --git a/third_party/blink/renderer/devtools/front_end/Images/accelerometer-back.svg b/third_party/blink/renderer/devtools/front_end/Images/accelerometer-back.svg
index 603a094..899608a2 100644
--- a/third_party/blink/renderer/devtools/front_end/Images/accelerometer-back.svg
+++ b/third_party/blink/renderer/devtools/front_end/Images/accelerometer-back.svg
@@ -1,69 +1 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   viewBox="0 0 770.00001 1580"
-   version="1.1"
-   width="770"
-   height="1580"
-   id="svg11071">
-  <defs
-     id="defs3775" />
-  <metadata
-     id="metadata11076">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(-1,0,0,1,770.5,0)"
-     id="layer3">
-    <path
-       style="fill:none;stroke:#ff8800;stroke-width:9"
-       d="M 766,366 V 466"
-       id="path11635" />
-    <path
-       style="fill:none;stroke:#888888;stroke-width:9"
-       d="M 766,768 V 568"
-       id="path11637" />
-    <g
-       style="fill-rule:evenodd"
-       id="g3764">
-      <rect
-         style="fill:#222222"
-         x="0"
-         y="0"
-         width="767"
-         height="1580"
-         ry="80"
-         rx="80"
-         id="rect11633" />
-    </g>
-    <g
-       style="fill:#ffffff;fill-rule:evenodd"
-       id="g3769">
-      <rect
-         style="fill-opacity:0.13332998"
-         x="273.5"
-         y="1526"
-         width="220"
-         height="15"
-         ry="5"
-         rx="5"
-         id="rect11707" />
-      <path
-         style="fill-opacity:0.86667002"
-         d="M 70.36319,6.9493575 C 28.332124,5.755102 4.8083241,47.982906 4.8378685,83.222978 L 6.032124,1507.7128 c 0.025949,30.952 32.037776,68.2787 64.633409,68.2161 l 622.086167,-1.1942 c 30.87325,-0.059 68.21618,-37.2632 68.21618,-64.6334 V 76.057445 c 0,-31.282766 -24.68851,-66.7195765 -63.13681,-70.302343 C 456.89848,4.61017 269.72229,6.9493575 70.36319,6.9493575 Z"
-         id="path11722" />
-    </g>
-  </g>
-</svg>
+<svg xmlns="http://www.w3.org/2000/svg" width="770" height="1580"><path d="M4.5 366v100" fill="none" stroke="#f80" stroke-width="9"/><path d="M4.5 768V568" fill="none" stroke="#888" stroke-width="9"/><rect width="767" height="1580" ry="80" rx="80" fill="#222" fill-rule="evenodd" transform="matrix(-1 0 0 1 770.5 0)"/><g fill="#fff" fill-rule="evenodd" transform="matrix(-1 0 0 1 770.5 0)"><rect x="273.5" y="1526" width="220" height="15" ry="5" rx="5" fill-opacity=".133"/><path d="M70.363 6.95C28.333 5.754 4.808 47.982 4.838 83.222l1.194 1424.49c.026 30.952 32.038 68.279 64.634 68.216l622.086-1.194c30.873-.06 68.216-37.263 68.216-64.634V76.057c0-31.282-24.689-66.72-63.137-70.302C456.898 4.61 269.722 6.95 70.363 6.95z" fill-opacity=".867"/></g></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/accelerometer-front.svg b/third_party/blink/renderer/devtools/front_end/Images/accelerometer-front.svg
index 6e90a4b..e4c195d 100644
--- a/third_party/blink/renderer/devtools/front_end/Images/accelerometer-front.svg
+++ b/third_party/blink/renderer/devtools/front_end/Images/accelerometer-front.svg
@@ -1,28 +1 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>

-<!-- Created with Inkscape (http://www.inkscape.org/) -->

-<svg id="svg11071" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="1580" width="770" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 770.00001 1580">

- <metadata id="metadata11076">

-  <rdf:RDF>

-   <cc:Work rdf:about="">

-    <dc:format>image/svg+xml</dc:format>

-    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>

-    <dc:title/>

-   </cc:Work>

-  </rdf:RDF>

- </metadata>

- <g id="layer3">

-  <path id="path11635" d="m766 366v100" stroke="#f80" stroke-width="9" fill="none"/>

-  <path id="path11637" d="m766 768v-200" stroke="#888" stroke-width="9" fill="none"/>

-  <g fill-rule="evenodd">

-   <rect id="rect11633" rx="80" ry="80" height="1580" width="767" y="0" x="0" fill="#222"/>

-   <rect id="rect11061" fill-opacity=".13333" rx="5" ry="5" height="18" width="80" y="80" x="343.5" fill="#fff"/>

-   <circle id="path11063" cx="459" fill-opacity=".26667" cy="76.25" r="15" fill="#00f"/>

-   <circle id="path11069" cx="297.25" fill-opacity=".26667" cy="74" r="17.5" fill="#00f"/>

-  </g>

-  <g fill-rule="evenodd" fill="#fff">

-   <rect id="rect11705" fill-opacity=".13333" rx="10" ry="10" height="25" width="50" y="34" x="358.5"/>

-   <rect id="rect11707" fill-opacity=".13333" rx="5" ry="5" height="15" width="220" y="1526" x="273.5"/>

-   <path id="path11722" d="m83.5 38c-27.7 0-50 22.3-50 50v1360c0 16.62 13.38 30 30 30h640c16.62 0 30-13.38 30-30v-1360c0-27.7-22.3-50-50-50h-90-50c-19.39 0-35 15.61-35 35v4c0 24.93-20.07 45-45 45h-160c-24.93 0-45-20.07-45-45v-4c0-19.39-15.61-35-35-35h-70z" fill-opacity=".86667"/>

-  </g>

- </g>

-</svg>

+<svg xmlns="http://www.w3.org/2000/svg" height="1580" width="770"><path d="M766 366v100" stroke="#f80" stroke-width="9" fill="none"/><path d="M766 768V568" stroke="#888" stroke-width="9" fill="none"/><g fill-rule="evenodd"><rect rx="80" ry="80" height="1580" width="767" fill="#222"/><rect fill-opacity=".133" rx="5" ry="5" height="18" width="80" y="80" x="343.5" fill="#fff"/><circle cx="459" fill-opacity=".267" cy="76.25" r="15" fill="#00f"/><circle cx="297.25" fill-opacity=".267" cy="74" r="17.5" fill="#00f"/></g><g fill-rule="evenodd" fill="#fff"><rect fill-opacity=".133" rx="10" ry="10" height="25" width="50" y="34" x="358.5"/><rect fill-opacity=".133" rx="5" ry="5" height="15" width="220" y="1526" x="273.5"/><path d="M83.5 38c-27.7 0-50 22.3-50 50v1360c0 16.62 13.38 30 30 30h640c16.62 0 30-13.38 30-30V88c0-27.7-22.3-50-50-50h-140c-19.39 0-35 15.61-35 35v4c0 24.93-20.07 45-45 45h-160c-24.93 0-45-20.07-45-45v-4c0-19.39-15.61-35-35-35h-70z" fill-opacity=".867"/></g></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/audits_logo.svg b/third_party/blink/renderer/devtools/front_end/Images/audits_logo.svg
index bd2e7d09..c71783c 100644
--- a/third_party/blink/renderer/devtools/front_end/Images/audits_logo.svg
+++ b/third_party/blink/renderer/devtools/front_end/Images/audits_logo.svg
@@ -1,354 +1 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="Layer_1"
-   data-name="Layer 1"
-   viewBox="0 0 750 750"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="PWA_Illustration_Lighthouse_05_Lighthouse.svg"
-   inkscape:export-filename="/Users/ericbidelman/Desktop/lh_logo_icon.png"
-   inkscape:export-xdpi="180"
-   inkscape:export-ydpi="180"
-   width="750"
-   height="750">
-  <metadata
-     id="metadata85">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>PWA_Illustration_Lighthouse</dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1143"
-     inkscape:window-height="714"
-     id="namedview83"
-     showgrid="false"
-     borderlayer="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="50"
-     fit-margin-bottom="0"
-     inkscape:zoom="0.49370068"
-     inkscape:cx="330.80744"
-     inkscape:cy="423.36785"
-     inkscape:window-x="44"
-     inkscape:window-y="42"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="layer6" />
-  <defs
-     id="defs3">
-    <style
-       id="style5">.cls-1,.cls-10{fill:#304ffe;}.cls-2{fill:#ffe082;}.cls-10,.cls-2{opacity:0.5;}.cls-3{fill:#2979ff;}.cls-4{fill:#ffd54f;}.cls-5{fill:#fff176;}.cls-6{fill:#f4511e;}.cls-7{fill:#e64a19;}.cls-8{fill:#c5cae9;}.cls-9{fill:#ff7043;}.cls-11{fill:#fdd835;}.cls-12{fill:#fff9c4;}.cls-13{fill:#448aff;}.cls-14{fill:#00c853;}.cls-15{fill:#64dd17;}</style>
-  </defs>
-  <title
-     id="title7">PWA_Illustration_Lighthouse</title>
-  <path
-     class="cls-1"
-     d="m 92.427653,571.02434 c 52.319997,0 52.319997,-33.94 104.639997,-33.94 52.32,0 52.31,33.94 104.63,33.94 52.32,0 52.32,-33.94 104.63,-33.94 52.31,0 52.32,33.94 104.64,33.94 52.32,0 52.32,-33.94 104.64,-33.94 49.48,0 52.17,30.34 96.56,33.64 a 326.73,326.73 0 0 0 8.09,-72.39 c 0,-179.87 -145.82,-325.69 -325.69,-325.69 -179.87,0 -325.699998,145.82 -325.699998,325.69 a 326.75,326.75 0 0 0 7.9,71.51 98.88,98.88 0 0 0 15.660001,1.18 z"
-     id="path9"
-     inkscape:connector-curvature="0"
-     style="fill:#304ffe" />
-  <path
-     class="cls-3"
-     d="M 345.99765,377.16434"
-     id="path13"
-     inkscape:connector-curvature="0"
-     style="fill:#2979ff" />
-  <rect
-     class="cls-4"
-     x="362.97766"
-     y="213.56435"
-     width="84.839996"
-     height="78.489998"
-     id="rect15"
-     style="fill:#ffd54f" />
-  <rect
-     class="cls-5"
-     x="362.97766"
-     y="213.56435"
-     width="29.950001"
-     height="78.489998"
-     id="rect17"
-     style="fill:#fff176" />
-  <ellipse
-     class="cls-5"
-     cx="392.29767"
-     cy="233.21434"
-     rx="19.84"
-     ry="24.889999"
-     id="ellipse19"
-     style="fill:#fff176" />
-  <path
-     class="cls-6"
-     d="m 360.89765,204.70434 a 43.835,43.835 0 1 1 87.67,0"
-     id="path21"
-     inkscape:connector-curvature="0"
-     style="fill:#f4511e" />
-  <path
-     class="cls-7"
-     d="m 405.10765,160.87434 a 43.51,43.51 0 0 1 43.46,43.83 l -43.46,0 0,-43.83 z"
-     id="path23"
-     inkscape:connector-curvature="0"
-     style="fill:#e64a19" />
-  <rect
-     class="cls-6"
-     x="352.41766"
-     y="203.29433"
-     width="104.64"
-     height="11.31"
-     rx="5.6599998"
-     ry="5.6599998"
-     id="rect25"
-     style="fill:#f4511e" />
-  <polygon
-     class="cls-8"
-     points="393,416 405.23,173.5 490.07,173.5 501,404 501,404 "
-     id="polygon27"
-     style="fill:#c5cae9"
-     transform="translate(-42.202351,118.02434)" />
-  <line
-     class="cls-9"
-     x1="449.03766"
-     y1="310.25433"
-     x2="452.29767"
-     y2="374.42432"
-     id="line29"
-     style="fill:#ff7043" />
-  <polygon
-     class="cls-9"
-     points="402.05,233.8 398.63,301.09 494.5,256.4 491.24,192.23 491.24,192.23 "
-     id="polygon31"
-     style="fill:#ff7043"
-     transform="translate(-42.202351,118.02434)" />
-  <line
-     class="cls-9"
-     x1="455.51767"
-     y1="437.66437"
-     x2="458.78766"
-     y2="501.8443"
-     id="line33"
-     style="fill:#ff7043" />
-  <polygon
-     class="cls-9"
-     points="395.25,367.4 391.83,434.7 500.99,383.82 497.72,319.64 497.72,319.64 "
-     id="polygon35"
-     style="fill:#ff7043"
-     transform="translate(-42.202351,118.02434)" />
-  <rect
-     class="cls-7"
-     x="349.98767"
-     y="255.90434"
-     width="109.49"
-     height="35.82"
-     id="rect39"
-     style="fill:#e64a19" />
-  <rect
-     class="cls-6"
-     x="349.98767"
-     y="255.90434"
-     width="71.779999"
-     height="35.82"
-     id="rect41"
-     style="fill:#f4511e" />
-  <path
-     class="cls-2"
-     d="m 403.97765,255.90434 c 0,13 -12.1,23.5 -27,23.5 -14.9,0 -27,-10.52 -27,-23.5"
-     id="path43"
-     inkscape:connector-curvature="0"
-     style="opacity:0.5;fill:#ffe082" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer1"
-     inkscape:label="clouds"
-     style="display:inline"
-     transform="translate(-111.06999,296.26999)">
-    <path
-       style="fill:#2979ff"
-       class="cls-3"
-       d="m 653.72764,-50.455653 a 19.59,19.59 0 0 1 8.32,1.84 34.49,34.49 0 0 1 66.7,-9 l 0.12,0 a 23.25,23.25 0 0 1 0,46.5 l -75.14,0 a 19.67,19.67 0 1 1 0,-39.34 z"
-       id="path71"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#448aff"
-       class="cls-13"
-       d="m 430.72764,137.02435 a 16.6,16.6 0 0 1 7,1.56 29.23,29.23 0 0 1 56.53,-7.63 l 0.1,0 a 19.71,19.71 0 1 1 0,39.41 l -63.63,0 a 16.67,16.67 0 1 1 0,-33.34 z"
-       id="path77"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="stars"
-     style="display:inline"
-     transform="translate(-111.06999,296.26999)">
-    <circle
-       style="fill:#fdd835"
-       class="cls-11"
-       cx="593.86761"
-       cy="-88.77565"
-       r="3.53"
-       id="circle45" />
-    <circle
-       style="fill:#fff9c4"
-       class="cls-12"
-       cx="624.86761"
-       cy="109.62434"
-       r="6.1300001"
-       id="circle47" />
-    <circle
-       style="fill:#fff9c4"
-       class="cls-12"
-       cx="253.46765"
-       cy="53.594345"
-       r="6.1300001"
-       id="circle49" />
-    <circle
-       style="fill:#fff9c4"
-       class="cls-12"
-       cx="353.41763"
-       cy="160.21434"
-       r="6.1300001"
-       id="circle51" />
-    <circle
-       style="fill:#fff9c4"
-       class="cls-12"
-       cx="598.4776"
-       cy="11.644347"
-       r="6.1300001"
-       id="circle53" />
-    <circle
-       style="fill:#fff9c4"
-       class="cls-12"
-       cx="727.62762"
-       cy="169.54436"
-       r="6.1300001"
-       id="circle55" />
-    <circle
-       style="fill:#fdd835"
-       class="cls-11"
-       cx="240.26764"
-       cy="192.40434"
-       r="3.53"
-       id="circle57" />
-    <circle
-       style="fill:#fdd835"
-       class="cls-11"
-       cx="272.82764"
-       cy="121.09435"
-       r="3.53"
-       id="circle59" />
-    <circle
-       style="fill:#fdd835"
-       class="cls-11"
-       cx="294.73764"
-       cy="102.71434"
-       r="3.53"
-       id="circle61" />
-    <circle
-       style="fill:#fdd835"
-       class="cls-11"
-       cx="387.34766"
-       cy="20.004347"
-       r="3.53"
-       id="circle63" />
-    <circle
-       style="fill:#fdd835"
-       class="cls-11"
-       cx="679.86761"
-       cy="30.224348"
-       r="3.53"
-       id="circle65" />
-    <circle
-       style="fill:#fdd835"
-       class="cls-11"
-       cx="818.5976"
-       cy="177.65434"
-       r="3.53"
-       id="circle67" />
-    <circle
-       style="fill:#fdd835"
-       class="cls-11"
-       cx="328.67764"
-       cy="9.3943472"
-       r="3.53"
-       id="circle69" />
-    <circle
-       style="fill:#fdd835"
-       class="cls-11"
-       cx="640.89764"
-       cy="179.20436"
-       r="3.53"
-       id="circle73" />
-    <circle
-       style="fill:#fdd835"
-       class="cls-11"
-       cx="747.86761"
-       cy="90.754349"
-       r="3.53"
-       id="circle75" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="light"
-     style="display:inline"
-     transform="translate(-111.06999,296.26999)">
-    <path
-       style="opacity:0.5;fill:#ffe082"
-       class="cls-2"
-       d="m 475.48764,-83.895653 -334.62,-47.789997 a 3.65,3.65 0 0 0 -1,-0.14 c -8.67,0 -16,31.889997 -16,71.149997 0,39.26 7.33,71.07 16,71.07 a 3.66,3.66 0 0 0 0.93,-0.13 l 334.64,-47.88 0,-46.28 z"
-       id="path11"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="shade"
-     style="display:inline">
-    <polygon
-       class="cls-10"
-       points="493.27,173.5 450.37,173.5 450.37,393 502,416 493.27,173.5 "
-       id="polygon37"
-       style="opacity:0.5;fill:#304ffe"
-       transform="translate(-42.202351,118.02434)" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="GRASS"
-     transform="translate(-111.06999,296.26999)"
-     style="display:inline">
-    <path
-       style="fill:#00c853"
-       class="cls-14"
-       d="m 413.76764,275.48435 c 52.32,0 52.32,-33.94 104.63,-33.94 52.31,0 52.32,33.94 104.63,33.94 44.42,0 51.13,-24.46 84.16,-31.84 -45.13,-24.66 -112.53,-40.33 -187.84,-40.33 -75.63,0 -143.28,15.79 -188.41,40.64 31.93,7.73 39.02,31.53 82.83,31.53 z"
-       id="path79"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#64dd17"
-       class="cls-15"
-       d="m 413.86764,275.01435 c 52.32,0 52.32,-33.94 104.63,-33.94 l 1.1,0 -0.58,-37.32 c -74.89,0 -142,15.49 -187.08,39.91 31.16,7.98 38.55,31.35 81.93,31.35 z"
-       id="path81"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
+<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" version="1.1" width="750" height="750"><defs id="defs3"><style id="style5">.cls-2{fill:#ffe082;opacity:.5}.cls-3{fill:#2979ff}.cls-5{fill:#fff176}.cls-6{fill:#f4511e}.cls-7{fill:#e64a19}.cls-9{fill:#ff7043}.cls-11{fill:#fdd835}.cls-12{fill:#fff9c4}</style></defs><path d="M92.428 571.024c52.32 0 52.32-33.94 104.64-33.94s52.31 33.94 104.63 33.94c52.32 0 52.32-33.94 104.63-33.94 52.31 0 52.32 33.94 104.64 33.94s52.32-33.94 104.64-33.94c49.48 0 52.17 30.34 96.56 33.64a326.73 326.73 0 0 0 8.09-72.39c0-179.87-145.82-325.69-325.69-325.69s-325.7 145.82-325.7 325.69a326.75 326.75 0 0 0 7.9 71.51 98.88 98.88 0 0 0 15.66 1.18z" id="path9" fill="#304ffe"/><path id="rect15" fill="#ffd54f" d="M362.978 213.564h84.84v78.49h-84.84z"/><path class="cls-5" id="rect17" fill="#fff176" d="M362.978 213.564h29.95v78.49h-29.95z"/><ellipse class="cls-5" cx="392.298" cy="233.214" rx="19.84" ry="24.89" id="ellipse19" fill="#fff176"/><path class="cls-6" d="M360.898 204.704a43.835 43.835 0 1 1 87.67 0" id="path21" fill="#f4511e"/><path class="cls-7" d="M405.108 160.874a43.51 43.51 0 0 1 43.46 43.83h-43.46v-43.83z" id="path23" fill="#e64a19"/><rect class="cls-6" x="352.418" y="203.294" width="104.64" height="11.31" rx="5.66" ry="5.66" id="rect25" fill="#f4511e"/><path id="polygon27" transform="translate(-42.202 118.024)" fill="#c5cae9" d="M393 416l12.23-242.5h84.84L501 404z"/><path class="cls-9" id="line29" fill="#ff7043" d="M449.038 310.254l3.26 64.17"/><path class="cls-9" id="polygon31" transform="translate(-42.202 118.024)" fill="#ff7043" d="M402.05 233.8l-3.42 67.29 95.87-44.69-3.26-64.17z"/><path class="cls-9" id="line33" fill="#ff7043" d="M455.518 437.664l3.27 64.18"/><path class="cls-9" id="polygon35" transform="translate(-42.202 118.024)" fill="#ff7043" d="M395.25 367.4l-3.42 67.3 109.16-50.88-3.27-64.18z"/><path class="cls-7" id="rect39" fill="#e64a19" d="M349.988 255.904h109.49v35.82h-109.49z"/><path class="cls-6" id="rect41" fill="#f4511e" d="M349.988 255.904h71.78v35.82h-71.78z"/><path class="cls-2" d="M403.978 255.904c0 13-12.1 23.5-27 23.5s-27-10.52-27-23.5" id="path43" opacity=".5" fill="#ffe082"/><g id="layer1" transform="translate(-111.07 296.27)" display="inline"><path class="cls-3" d="M653.728-50.456a19.59 19.59 0 0 1 8.32 1.84 34.49 34.49 0 0 1 66.7-9h.12a23.25 23.25 0 0 1 0 46.5h-75.14a19.67 19.67 0 1 1 0-39.34z" id="path71" fill="#2979ff"/><path d="M430.728 137.024a16.6 16.6 0 0 1 7 1.56 29.23 29.23 0 0 1 56.53-7.63h.1a19.71 19.71 0 1 1 0 39.41h-63.63a16.67 16.67 0 1 1 0-33.34z" id="path77" fill="#448aff"/></g><g id="layer2" transform="translate(-111.07 296.27)" display="inline"><circle class="cls-11" cx="593.868" cy="-88.776" r="3.53" id="circle45" fill="#fdd835"/><circle class="cls-12" cx="624.868" cy="109.624" r="6.13" id="circle47" fill="#fff9c4"/><circle class="cls-12" cx="253.468" cy="53.594" r="6.13" id="circle49" fill="#fff9c4"/><circle class="cls-12" cx="353.418" cy="160.214" r="6.13" id="circle51" fill="#fff9c4"/><circle class="cls-12" cx="598.478" cy="11.644" r="6.13" id="circle53" fill="#fff9c4"/><circle class="cls-12" cx="727.628" cy="169.544" r="6.13" id="circle55" fill="#fff9c4"/><circle class="cls-11" cx="240.268" cy="192.404" r="3.53" id="circle57" fill="#fdd835"/><circle class="cls-11" cx="272.828" cy="121.094" r="3.53" id="circle59" fill="#fdd835"/><circle class="cls-11" cx="294.738" cy="102.714" r="3.53" id="circle61" fill="#fdd835"/><circle class="cls-11" cx="387.348" cy="20.004" r="3.53" id="circle63" fill="#fdd835"/><circle class="cls-11" cx="679.868" cy="30.224" r="3.53" id="circle65" fill="#fdd835"/><circle class="cls-11" cx="818.598" cy="177.654" r="3.53" id="circle67" fill="#fdd835"/><circle class="cls-11" cx="328.678" cy="9.394" r="3.53" id="circle69" fill="#fdd835"/><circle class="cls-11" cx="640.898" cy="179.204" r="3.53" id="circle73" fill="#fdd835"/><circle class="cls-11" cx="747.868" cy="90.754" r="3.53" id="circle75" fill="#fdd835"/></g><g id="layer3" transform="translate(-111.07 296.27)" display="inline"><path class="cls-2" d="M475.488-83.896l-334.62-47.79a3.65 3.65 0 0 0-1-.14c-8.67 0-16 31.89-16 71.15 0 39.26 7.33 71.07 16 71.07a3.66 3.66 0 0 0 .93-.13l334.64-47.88v-46.28z" id="path11" opacity=".5" fill="#ffe082"/></g><g id="layer6" display="inline"><path id="polygon37" transform="translate(-42.202 118.024)" opacity=".5" fill="#304ffe" d="M493.27 173.5h-42.9V393L502 416l-8.73-242.5z"/></g><g id="layer5" transform="translate(-111.07 296.27)" display="inline"><path d="M413.768 275.484c52.32 0 52.32-33.94 104.63-33.94 52.31 0 52.32 33.94 104.63 33.94 44.42 0 51.13-24.46 84.16-31.84-45.13-24.66-112.53-40.33-187.84-40.33-75.63 0-143.28 15.79-188.41 40.64 31.93 7.73 39.02 31.53 82.83 31.53z" id="path79" fill="#00c853"/><path d="M413.868 275.014c52.32 0 52.32-33.94 104.63-33.94h1.1l-.58-37.32c-74.89 0-142 15.49-187.08 39.91 31.16 7.98 38.55 31.35 81.93 31.35z" id="path81" fill="#64dd17"/></g></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/breakpoint.png b/third_party/blink/renderer/devtools/front_end/Images/breakpoint.png
deleted file mode 100644
index ce145b3..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/breakpoint.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/breakpoint.svg b/third_party/blink/renderer/devtools/front_end/Images/breakpoint.svg
new file mode 100644
index 0000000..6edf41e
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/breakpoint.svg
@@ -0,0 +1 @@
+<svg height="11" width="26" xmlns="http://www.w3.org/2000/svg"><path d="M22.8.5l2.7 5-2.7 5H.5V.5z" fill="#698cfe" stroke="#4073f4"/></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/breakpointConditional.png b/third_party/blink/renderer/devtools/front_end/Images/breakpointConditional.png
deleted file mode 100644
index 5f7c9a33..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/breakpointConditional.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/breakpointConditional.svg b/third_party/blink/renderer/devtools/front_end/Images/breakpointConditional.svg
new file mode 100644
index 0000000..dc2667b8
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/breakpointConditional.svg
@@ -0,0 +1 @@
+<svg height="11" width="26" xmlns="http://www.w3.org/2000/svg"><path d="M22.8.5l2.7 5-2.7 5H.5V.5z" fill="#ef9d0d" stroke="#a36c01"/></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/breakpointConditional_2x.png b/third_party/blink/renderer/devtools/front_end/Images/breakpointConditional_2x.png
deleted file mode 100644
index 45af335..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/breakpointConditional_2x.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/breakpoint_2x.png b/third_party/blink/renderer/devtools/front_end/Images/breakpoint_2x.png
deleted file mode 100644
index 10a35a54..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/breakpoint_2x.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/checkboxCheckmark.png b/third_party/blink/renderer/devtools/front_end/Images/checkboxCheckmark.png
deleted file mode 100644
index a054fa9f..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/checkboxCheckmark.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/checkboxCheckmark.svg b/third_party/blink/renderer/devtools/front_end/Images/checkboxCheckmark.svg
new file mode 100644
index 0000000..6b2c28bc
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/checkboxCheckmark.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="11" height="11"><path d="M3.65 7.21L2.21 5.18 1 6.39 3.55 10 10 2.33 8.88 1z"/></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/checkboxCheckmark_2x.png b/third_party/blink/renderer/devtools/front_end/Images/checkboxCheckmark_2x.png
deleted file mode 100644
index 15641b32..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/checkboxCheckmark_2x.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/chevrons.png b/third_party/blink/renderer/devtools/front_end/Images/chevrons.png
deleted file mode 100644
index aea9e1b0..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/chevrons.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/chevrons.svg b/third_party/blink/renderer/devtools/front_end/Images/chevrons.svg
new file mode 100644
index 0000000..aa2b0059
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/chevrons.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="30" height="10"><path d="M0 2.75l.965-.965 4.108 4.107L.965 10 0 9.035l3.135-3.143zM27.25 2.927l.965.965L24.108 8 20 3.892l.965-.965 3.143 3.136z"/></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/chevrons_2x.png b/third_party/blink/renderer/devtools/front_end/Images/chevrons_2x.png
deleted file mode 100644
index 024ddb96..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/chevrons_2x.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/errorWave.png b/third_party/blink/renderer/devtools/front_end/Images/errorWave.png
deleted file mode 100644
index 4ae395a..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/errorWave.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/errorWave.svg b/third_party/blink/renderer/devtools/front_end/Images/errorWave.svg
new file mode 100644
index 0000000..846374db
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/errorWave.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="6" height="4"><path d="M-.246.532l3.257 2.791L6.268.532" fill="none" stroke="red" stroke-width=".656" stroke-linecap="square"/></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/errorWave_2x.png b/third_party/blink/renderer/devtools/front_end/Images/errorWave_2x.png
deleted file mode 100644
index c1633dce..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/errorWave_2x.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/largeIcons.png b/third_party/blink/renderer/devtools/front_end/Images/largeIcons.png
deleted file mode 100644
index 846fbade..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/largeIcons.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/largeIcons.svg b/third_party/blink/renderer/devtools/front_end/Images/largeIcons.svg
new file mode 100644
index 0000000..9847649
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/largeIcons.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="224" height="216"><g transform="translate(-322 -72)"><circle transform="translate(326 74)" cx="15" cy="17" r="3" fill="#009802"/><path d="M329 77h18v18h-18z" fill="none"/><path d="M327.25 75.25h20v20h-20z" fill="none"/><path d="M325.12 73.125h20v20h-20z" fill="none"/></g><path d="M51 12l-3.5-4H33v8h14.5M14.767 31h-1.534v4.233H9v1.534h4.233V41h1.534v-4.233H19v-1.534h-4.233V31z"/><path d="M33 27h18v18H33z" fill="none"/><path d="M45.42 33.7l-6.705-6.705-1.058 1.057 1.786 1.785L35.58 33.7a1.118 1.118 0 0 0 0 1.59l4.125 4.125c.218.217.51.33.795.33.285 0 .578-.113.795-.33l4.125-4.125a1.118 1.118 0 0 0 0-1.59zm-8.512.795l3.592-3.593 3.592 3.593h-7.184zm10.341 1.125s-1.5 1.627-1.5 2.625c0 .825.675 1.5 1.5 1.5s1.5-.675 1.5-1.5c0-.998-1.5-2.625-1.5-2.625z"/><path d="M33 42h18v3H33z" fill-opacity=".36"/><path d="M7 51h18v18H7z" fill="none"/><path d="M20 56h1.494c.832 0 1.506.672 1.506 1.506v7.987c0 .832-.672 1.507-1.506 1.507h-7.987A1.505 1.505 0 0 1 12 65.493V64h6.494c.835 0 1.506-.675 1.506-1.507V56z" fill-opacity=".36"/><path d="M10.5 53c-.831 0-1.5.669-1.5 1.5v8c0 .831.669 1.5 1.5 1.5h8c.831 0 1.5-.669 1.5-1.5v-8c0-.831-.669-1.5-1.5-1.5h-8zm0 1.5h8v8h-8v-8z" fill="#212121"/><path d="M37 57h8v6h-8z" stroke-miterlimit="4.2" stroke="#000" stroke-width="2"/><path d="M45 60l4-4v8"/><g stroke="#000"><path d="M70.58 12.5a1.08 1.08 0 1 1-2.16 0 1.08 1.08 0 1 1 2.16 0z" fill-rule="evenodd" stroke-width="1.00008"/><path d="M69.48 9.5l2.54-2h-1.524v-2h-2l-.016 2h-1.54zM72.5 12.5l2 2.5v-1.5h2v-2h-2V10zM69.5 15.5l-2.5 2h1.5v2h2v-2H72zM66.5 12.5l-2-2.5v1.5h-2v2h2V15z"/></g><g fill-rule="evenodd"><path d="M60.308 28.525H76.54v16.232H60.308z" fill="none"/><path d="M64.072 36.049l-1.275 1.275 3.826 3.825 7.652-7.651L73 32.222 66.623 38.6z"/></g><path d="M65.94 56l-.94.94L68.053 60 65 63.06l.94.94 4-4z"/><path d="M69.94 56l-.94.94L72.053 60 69 63.06l.94.94 4-4zM14.44 88.94c-2.48 0-4.5-2.02-4.5-4.5 0-.88.26-1.7.69-2.39l6.2 6.2c-.69.44-1.51.69-2.39.69m4.5-4.5c0 .88-.26 1.7-.69 2.39l-6.2-6.2c.69-.44 1.51-.69 2.39-.69 2.48 0 4.5 2.02 4.5 4.5M14.5 78a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13"/><g fill-rule="evenodd"><path d="M32.071 76.568h15.688v15.688H32.07z" fill="none"/><path d="M42.53 79.618a1.312 1.312 0 0 0-1.313-1.307h-5.219c-.723 0-1.312.587-1.312 1.313v6.961c0 .725.584 1.31 1.307 1.313v-8.28h6.536zm-5.23 2.62c0-.725.59-1.312 1.313-1.312h5.218c.726 0 1.313.585 1.313 1.312V89.2c0 .725-.59 1.312-1.313 1.312h-5.218A1.312 1.312 0 0 1 37.3 89.2v-6.962zm1.307-.005h5.23v6.972h-5.23v-6.972z"/></g><path d="M79 84l-3.64-4h-1.79L68 88h7.36L79 84zM61 80v8h2.05L68 80h-7zM63.67 92.55l-1.59-1.32 10.76-15.78 1.59 1.32-10.76 15.78z"/><path d="M54 72h24v24H54z" fill="none"/><path d="M54 72h24v24H54zm0 0h24v24H54zm0 0h24v24H54zm0 0h24v24H54z" fill="none"/><path d="M54 72h24v24H54z" fill="none"/><path d="M54 72h24v24H54z" fill="none"/><path d="M54 72h24v24H54z" fill="none"/><path d="M103 8.33L101.67 7 98 10.67 94.33 7 93 8.33 96.67 12 93 15.67 94.33 17 98 13.33l3.67 3.67 1.33-1.33L99.33 12 103 8.33zM103 37H93v-5h10v5zm-12 5h14V30H91v12zM96 64h7v-8h-7zm9 2H91V54h14zM100 88h-7v-8h7v8zm-9 2h14V78H91v12zM7 112.089v2.91h2.91l8.284-8.283-2.91-2.91L7 112.088zm13.769-7.939a.771.771 0 0 0 0-1.1l-1.82-1.82a.771.771 0 0 0-1.1 0l-1.52 1.53 2.91 2.91 1.53-1.52zM48.77 103.04l-1.816-1.816a.78.78 0 0 0-1.1 0l-2.43 2.43-1.49-1.493-1.1 1.1 1.104 1.105L35 111.301v3.695h3.694l6.938-6.939 1.1 1.105 1.1-1.1-1.492-1.494 2.43-2.431a.768.768 0 0 0 0-1.097zm-10.721 10.4l-1.493-1.493 6.272-6.274 1.493 1.493-6.272 6.274z"/><path d="M66 107l2 3v4h4v-4l2-3z" opacity=".5" fill="#424242"/><path d="M68.5 113.23c.32.13.84.24 1.47.24.59 0 1.14-.1 1.53-.26v-3.93l4-4.57v-.19h-11v.22l4 4.57v3.93zm1.47 1.77c-1.16-.09-2.15-.29-2.97-.99v-4.12l-4-4.57V103h14v2.35l-4 4.57v4.13c-.92.67-2.1.94-3.03.95"/><path d="M89 99h18v18H89z" fill="none"/><path d="M89 114h18v3H89z" fill-opacity=".36"/><path d="M97.25 101.25l-4.125 10.5h1.688l.84-2.25h4.687l.84 2.25h1.688l-4.118-10.5h-1.5zM96.215 108L98 103.252 99.785 108h-3.57z"/><path d="M120.5 19.5v-14h12v14z" fill="none" stroke="#000"/><path d="M126.5 13l-3.25-5h6.5M120 16v-1h13v1z"/><path d="M119.5 30.5h14v12h-14z" fill="none" stroke="#000"/><path d="M126 36.5l5-3.25v6.5M123 30h1v13h-1z"/><path d="M133.5 54.5h-14v12h14z" fill="none" stroke="#000"/><path d="M127 60.5l-5-3.25v6.5M130 54h-1v13h1z"/><path d="M120.5 77.5v14h12v-14z" fill="none" stroke="#000"/><path d="M126.5 84l-3.25 5h6.5M120 81v1h13v-1zM123 107h-4v-4h4v4zM133 105h-9v-2h9v2zM133 107h-9v-1h9v1zM133 111h-9v-2h9v2zM123 113h-4v-4h4v4zM133 113h-9v-1h9v1zM21 133h-2v2h2zM21 137h-2v2c1 0 2-1 2-2zM21 129h-2v2h2zM19 125v2h2c0-1-1-2-2-2zM9 139h4v-6H7v4c0 1.1.9 2 2 2zM9 129H7v2h2zM17 125h-2v2h2zM17 137h-2v2h2zM9 125c-1 0-2 1-2 2h2zM13 125h-2v2h2zM53 143v-5l-5 5h5z"/><g fill-rule="evenodd"><path d="M71.989 127.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 1 1 3 0zM71.989 132.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 1 1 3 0zM71.989 137.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 1 1 3 0z"/></g><path d="M88 123h18v18H88z" fill="none"/><path d="M103.52 130.53a5.625 5.625 0 0 0-5.516-4.526 5.63 5.63 0 0 0-4.988 3.026 4.499 4.499 0 0 0 .487 8.974h9.75c2.07 0 3.75-1.68 3.75-3.75 0-1.98-1.54-3.585-3.483-3.724zm-.266 5.974h-9.75a3 3 0 1 1 0-6h.532a4.127 4.127 0 0 1 3.968-3 4.123 4.123 0 0 1 4.125 4.125v.375h1.125a2.252 2.252 0 0 1 2.25 2.25 2.252 2.252 0 0 1-2.25 2.25zM121 124c-.55 0-.99.45-.99 1l-.01 14c0 .55.44 1 1 1h10c.55 0 1-.45 1-1v-10l-5-5h-6zm6 5v-4l4 4h-4z"/><path d="M117 123h18v18h-18zM147 5h18v18h-18z" fill="none"/><path d="M145.25 3.25h20v20h-20z" fill="none"/><path d="M143.12 1.125h20v20h-20z" fill="none"/><path d="M149 4c-.55 0-1 .45-1 1v14c0 .55.44 1 1 1h5.094a5.022 5.022 0 0 1-.094-1 5 5 0 0 1 5-5c.343 0 .677.028 1 .094V9l-5-5h-6zm6 1l4 4h-4V5z"/><path d="M145 28h18v18h-18z" fill="none"/><path d="M156 33l-2-2h-5c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-8c0-.55-.45-1-1-1h-5z"/><path d="M160 54h-10.5a1.5 1.5 0 0 0-1.5 1.5v9a1.5 1.5 0 0 0 1.5 1.5H160c.825 0 1.5-.675 1.5-1.5v-9A1.5 1.5 0 0 0 160 54zm0 10.5h-10.5V57H160v7.5z" fill="#010101"/><path d="M144.97 51.07h18v18h-18z" fill="none"/><path d="M155 76.9h-5.005c-.54 0-.995.45-.995 1.007v11.986a1 1 0 0 0 .995 1.007h8.01c.54 0 .995-.451.995-1.007V80.9l-4-4zm3 4h-3v-3l3 3zm-6 2l5 2.5-5 2.5v-5z"/><g stroke="#000"><path d="M151.343 105.675l-.712.23-.015.975.024.065.37.724-.882.641-.575-.577-.053-.041-.932-.287-.44.605.56.797.057.039.727.367-.338 1.039-.805-.129-.067-.003-.923.315v.75l.923.316.067-.003.805-.13.338 1.038-.727.369-.056.037-.562.798.44.605.933-.287.053-.043.575-.576.883.64-.372.727-.023.062.015.976.712.23.586-.778.018-.066.125-.805h1.092l.126.805.018.066.585.778.713-.23.014-.976-.022-.062-.372-.727.883-.64.575.576.052.043.933.287.44-.605-.562-.798-.055-.037-.726-.369.336-1.038.805.13.067.003.923-.317v-.749l-.923-.315-.067.003-.805.129-.336-1.039.726-.367.055-.039.562-.797-.44-.605-.933.288-.052.041-.575.577-.883-.641.372-.725.022-.064-.014-.975-.713-.23-.585.78-.018.064-.126.805h-1.092l-.125-.806-.02-.067-.584-.777m1.275 2.477a2.64 2.657 0 0 1 2.64 2.657 2.64 2.657 0 0 1-2.64 2.659 2.64 2.657 0 0 1-2.639-2.659 2.64 2.657 0 0 1 2.639-2.657z" stroke-width=".72907"/><path d="M156.08 100.757l-.516.287.136.935.023.029.542.554-.428.722-.746-.214-.037-.005-.887.323-.009.589.879.35.037-.005.751-.193.411.73-.56.541-.023.028-.16.931.503.302.74-.585.015-.035.214-.747.833.012.19.752.012.035.725.607.514-.288-.138-.933-.022-.03-.54-.558.427-.717.747.212.037.007.89-.325.007-.59-.88-.348-.037.004-.752.193-.408-.731.56-.54.022-.028.162-.932-.507-.302-.742.586-.014.036-.209.745-.833-.01-.193-.753-.012-.035-.725-.606zm1.322 1.558a1.413 1.413 0 0 1 1.413 1.413 1.413 1.413 0 0 1-1.413 1.412 1.413 1.413 0 0 1-1.412-1.412 1.413 1.413 0 0 1 1.412-1.413z" stroke-width=".65543393"/></g><g fill="none"><path d="M146 124h16v16h-16v-16z" opacity=".5"/><path d="M152 138h-2.5c-1 0-1.5-.5-1.5-1.5v-9c0-1 .5-1.5 1.5-1.5h9c1.5 0 1.5 1.468 1.5 1.5v2.5h-1v-3h-10v10h3v1zm9-5l-3 2 3 3-1 1-3-3-2 3-2-8 8 2z" fill="#000"/></g><path d="M12.5 151.5h-1l2-2 2 2h-1s-.035 4.638-.035 4.035l4.035-.034v-1l2 2-2 2v-1l-4.035-.034.035 4.034h1l-2 2-2-2h1l.034-4.034-4.034.034v1l-2-2 2-2v1l4.034.034z" stroke="#000"/><path d="M39.6 159.2h1.6v-6.4h-1.6v6.4zM42 148c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14.4a6.408 6.408 0 0 1-6.4-6.4c0-3.528 2.872-6.4 6.4-6.4 3.528 0 6.4 2.872 6.4 6.4 0 3.528-2.872 6.4-6.4 6.4zm.8-3.2h1.6v-6.4h-1.6v6.4zM69 160h-3v-8h3v8zM75 160h-3v-8h3v8zM101 159h-2v-6h2zm-4 0h-2v-6h2zm4-10h-6l-4 4v6l4 4h6l4-4.12V153z"/><g font-weight="400" font-family="Sans"><path d="M121 149v5l3.343.531-.015 8.047L123 163c.006.593.44 1.011 1 1h8c.579.002.982-.427 1-1v-14c-.01-.535-.482-.997-1-1h-10a1.026 1.026 0 0 0-1 1zm1 0h10v14h-8l.718-.422.094-8.422L122 154v-1z" overflow="visible" style="text-indent:0;line-height:normal;text-transform:none;block-progression:tb"/><path d="M118 154v9c.006.593.44 1.011 1 1h5c.579.002.982-.427 1-1v-9c-.01-.535-.482-.997-1-1h-5a1.026 1.026 0 0 0-1 1zm1 1h5v7h-5z" overflow="visible" style="text-indent:0;line-height:normal;text-transform:none;block-progression:tb"/></g><path d="M146 156c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8-8 3.58-8 8zm8 6.4a6.408 6.408 0 0 1-6.4-6.4c0-3.528 2.872-6.4 6.4-6.4 3.528 0 6.4 2.872 6.4 6.4 0 3.528-2.872 6.4-6.4 6.4zm-1.493-2.971l4.571-3.429-4.571-3.429v6.857zM10 180l10-5v10M48 180l-10-5v10M66.01 179.99c.61.28 1.07.9 1.07 1.58.11.85-.05 1.72.12 2.57.27.54 1 .28 1.43.55.49.24.48 1.01-.06 1.18-.56.22-1.18.08-1.74-.05-.71-.2-1.41-.72-1.5-1.5-.18-.89.01-1.8-.16-2.68-.22-.64-.94-.9-1.57-.93-.58-.1-.83-.94-.35-1.3.51-.35 1.26-.14 1.69-.66.44-.48.29-1.18.32-1.78 0-.81-.02-1.77.65-2.34.66-.54 1.58-.71 2.41-.63.63 0 .98.87.4 1.22-.44.37-1.2.06-1.51.65-.14.56-.05 1.15-.07 1.73-.01.75-.05 1.64-.72 2.13-.12.1-.26.19-.4.26M74.98 179.99c-.67-.3-1.08-1.02-1.08-1.75-.07-.76.03-1.52-.06-2.28-.24-.58-.98-.4-1.46-.59-.59-.24-.48-1.18.14-1.31.73-.15 1.52-.01 2.18.32.56.28.95.86.99 1.48.13.83-.03 1.68.13 2.5.2.68.94.83 1.54.9.56.07.86.8.46 1.21-.44.46-1.2.2-1.65.66-.51.46-.4 1.21-.4 1.83-.03.78.06 1.69-.52 2.3-.74.65-1.8.86-2.75.68-.52-.16-.69-1.01-.15-1.25.44-.23 1.02-.08 1.41-.45.26-.45.09-.98.14-1.47.01-.76-.07-1.63.43-2.26.18-.21.42-.37.66-.51"/><g><path d="M82 168h24v24H82z" fill="none"/><path d="M98 174c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6h-2a4 4 0 1 1-4-4c1.276 0 2.393.601 3.125 1.531h2.344A6.004 6.004 0 0 0 98 174z"/><path d="M103.091 174.88v3.092h-3.092z" stroke="#000" stroke-width="1.068"/></g><g><path d="M120.586 185.891a7.978 7.978 0 0 1-2.586-5.89c0-4.42 3.58-8 8-8s8 3.58 8 8-3.58 8-8 8v-1.6c3.528 0 6.4-2.873 6.4-6.4 0-3.529-2.872-6.4-6.4-6.4a6.408 6.408 0 0 0-6.4 6.4c0 1.935.865 3.673 2.228 4.848l1.692-1.42.015 4.463-4.392-.79 1.443-1.21zm3.92-2.462l4.572-3.429-4.571-3.428v6.857z"/></g><g><path d="M161 180l-8-5v10M151 185h-3v-10h3v10z"/></g><g><path d="M175.2 10.15c.055-.113.153-.22.231-.306.546-.608 1.39-1.198 3.006-1.57V6.101c-1.294.252-2.315.669-3.304 1.56-.333.383-.506.624-.514 1.166-.007.443.177.886.581 1.322zm6.63 3.13c-1.616-.025-3.108-.257-4.622-.765-2.694-.903-3.029-2.17-3.17-2.593-.096 1.69.028 2.957.034 3.065.092 1.5 1.292 2.674 2.158 3.115a12.806 12.806 0 0 0 5.6 1.415v2.484l3.252-4.648-3.251-4.649v2.575zm-.322-5.297c1.616.01 3.453.339 5.245 1.113.735.318 1.328.79 1.808 1.305.332-.152.807-.73.741-1.292-.161-1.388-1.626-2.191-1.88-2.305-1.77-.79-3.975-1.035-5.914-1.058V4l-2.014 2.879 2.014 2.878V7.983zm8.423 1.866c-.082.648-.827 2.035-3.898 2.914v4.525c1.132-.368 2.465-1.296 3.18-2.2.29-.367.468-.874.576-1.241.333-1.123.187-3.314.142-3.998z"/></g><g><path d="M184.624 30.47a6.127 6.127 0 0 1 3.497 4.947H189C188.7 31.823 185.684 29 182 29l-.387.018 2.232 2.222.779-.77zm-3.661-.45a.876.876 0 0 0-1.242 0l-3.725 3.71a.867.867 0 0 0 0 1.238l7.04 7.011a.876.876 0 0 0 1.242 0l3.726-3.71a.867.867 0 0 0 0-1.236l-7.041-7.012zm2.694 11.34l-7.04-7.01 3.725-3.71 7.041 7.01-3.725 3.71zm-4.282.17a6.119 6.119 0 0 1-3.497-4.947H175c.298 3.594 3.315 6.417 7 6.417l.386-.018-2.231-2.222-.78.77z"/></g><g><path d="M171.96 50.013h20v20h-20z" fill="none"/><path d="M175 53h18v18h-18z" fill="none"/><path d="M173.25 51.25h20v20h-20z" fill="none"/><path d="M171.12 49.125h20v20h-20z" fill="none"/><path d="M166 48h24v24h-24z" fill="none"/><path d="M187.35 60.686c.029-.224.05-.448.05-.686 0-.238-.021-.462-.05-.686l1.518-1.155a.347.347 0 0 0 .087-.448l-1.44-2.422a.367.367 0 0 0-.439-.154l-1.791.7a5.295 5.295 0 0 0-1.217-.686l-.273-1.855a.348.348 0 0 0-.353-.294h-2.878a.348.348 0 0 0-.353.294l-.273 1.855a5.568 5.568 0 0 0-1.216.686l-1.792-.7a.356.356 0 0 0-.44.154l-1.439 2.422a.339.339 0 0 0 .087.448l1.518 1.155c-.029.224-.05.455-.05.686 0 .231.021.462.05.686l-1.518 1.155a.347.347 0 0 0-.087.448l1.44 2.422c.086.154.28.21.439.154l1.792-.7c.374.28.777.511 1.216.686l.273 1.855a.348.348 0 0 0 .353.294h2.878c.18 0 .331-.126.353-.294l.273-1.855a5.568 5.568 0 0 0 1.217-.686l1.792.7c.165.063.352 0 .438-.154l1.44-2.422a.347.347 0 0 0-.087-.448l-1.518-1.155zm-5.347 1.764c-1.389 0-2.519-1.099-2.519-2.45 0-1.351 1.13-2.45 2.52-2.45 1.388 0 2.518 1.099 2.518 2.45 0 1.351-1.13 2.45-2.519 2.45z"/></g><g><path d="M176.5 91.5v-14h12v14z" fill="none" stroke="#000"/><path d="M182.5 80l-3.25 5h6.5M176 88v-1h13v1z"/></g><g><path d="M174.5 102.5h14v12h-14z" fill="none" stroke="#000"/><path d="M186 108.5l-5-3.25v6.5M178 102h1v13h-1z"/></g><g><path d="M188.5 126.5h-14v12h14z" fill="none" stroke="#000"/><path d="M177 132.5l5-3.25v6.5M185 126h-1v13h1z"/></g><g><path d="M176.5 149.5v14h12v-14z" fill="none" stroke="#000"/><path d="M182.5 161l-3.25-5h6.5M176 153v1h13v-1z"/></g><g><path d="M176 180c0 3.31 2.69 6 6 6s6-2.69 6-6-2.69-6-6-6-6 2.69-6 6"/></g><g><path d="M12.5 209c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2M13 198v4h-3l4.5 4 4.5-4h-3v-4h-3z"/></g><g><path d="M40.5 209c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2M42.5 198l-4.5 4h3v4h3v-4h3l-4.5-4z"/></g><g><path d="M68 206.5c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2"/><path d="M63.25 207.03c2.55-8.43 11.4-8.73 13.94 0" fill="none" stroke="#000" stroke-width="2.5"/><path d="M77.68 209l-4.54-2.76 6.68-2.1"/></g><g transform="translate(82 192)"><path transform="translate(-288 -24)" d="M295 36a9 9 0 1 0 18.001-.001A9 9 0 0 0 295 36" fill="url(#a)"/><path d="M10 12c0 3.31 2.69 6 6 6s6-2.69 6-6-2.69-6-6-6-6 2.69-6 6"/><defs><radialGradient id="b" cx="0" cy="0" r="1" gradientTransform="matrix(18 0 0 -18 680 341)" gradientUnits="userSpaceOnUse"><stop offset="0"/><stop stop-opacity="0" offset="1"/></radialGradient><radialGradient id="a" cx="0" cy="0" r="1" gradientTransform="matrix(9 0 0 9 304 36)" gradientUnits="userSpaceOnUse" xlink:href="#b"/></defs></g><g><path d="M117 195h18v18h-18z" fill="none"/><path d="M132.25 203h.75v-3h-11v3h.75a1.5 1.5 0 0 1 1.5-1.5h2.5v7.25a1.5 1.5 0 0 1-1.5 1.5v.75h4.5v-.75a1.5 1.5 0 0 1-1.5-1.5v-7.25h2.5a1.5 1.5 0 0 1 1.5 1.5z" fill-opacity=".36"/><path d="M129.25 200h.75v-3h-11v3h.75a1.5 1.5 0 0 1 1.5-1.5h2.5v7.25a1.5 1.5 0 0 1-1.5 1.5v.75h4.5v-.75a1.5 1.5 0 0 1-1.5-1.5v-7.25h2.5a1.5 1.5 0 0 1 1.5 1.5z"/></g><g><path d="M149.5 201h9l-1.5 10h-6M157.5 198h-2v-1h-3v1h-2c-.55 0-1 .48-1 1v1h9v-1c0-.52-.45-1-1-1"/></g><g><path d="M178 201h-2v9h11v-2h-9z"/><path d="M181 200h7v5h-7zm-2-2v9h11v-9z"/></g><g><path d="M210 6.69c-3.636 0-6.742 2.263-8 5.455 1.258 3.193 4.364 5.455 8 5.455s6.742-2.262 8-5.455c-1.258-3.192-4.364-5.454-8-5.454zm0 9.092a3.638 3.638 0 0 1-3.636-3.637A3.638 3.638 0 0 1 210 8.51a3.638 3.638 0 0 1 3.636 3.636A3.638 3.638 0 0 1 210 15.782zm0-5.818a2.179 2.179 0 0 0-2.182 2.181c0 1.208.975 2.182 2.182 2.182a2.179 2.179 0 0 0 2.182-2.182A2.179 2.179 0 0 0 210 9.964z"/></g><g><path d="M219 33h-11v-2h11v2z" opacity=".2"/><path d="M208 33h-6v-2h6v2zM211 36h-6v-2h6v2zM216 39h-6v-2h6v2zM218 42h-6v-2h6v2z"/></g><text style="line-height:0%" x="12.356" y="231.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="12.356" y="231.559" style="line-height:1.25" font-size="12">a</tspan></text><text style="line-height:0%" x="40.356" y="231.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="40.356" y="231.559" style="line-height:1.25" font-size="12">b</tspan></text><text style="line-height:0%" x="68.356" y="231.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="68.356" y="231.559" style="line-height:1.25" font-size="12">c</tspan></text><text style="line-height:0%" x="96.356" y="231.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="96.356" y="231.559" style="line-height:1.25" font-size="12">d</tspan></text><text style="line-height:0%" x="124.356" y="231.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="124.356" y="231.559" style="line-height:1.25" font-size="12">e</tspan></text><text style="line-height:0%" x="152.356" y="231.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="152.356" y="231.559" style="line-height:1.25" font-size="12">f</tspan></text><text style="line-height:0%" x="180.356" y="231.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="180.356" y="231.559" style="line-height:1.25" font-size="12">g</tspan></text><text style="line-height:0%" x="208.356" y="231.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="208.356" y="231.559" style="line-height:1.25" font-size="12">h</tspan></text><text style="line-height:0%" x="-15.644" y="207.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-15.644" y="207.559" style="line-height:1.25" font-size="12">1</tspan></text><text style="line-height:0%" x="-15.644" y="183.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-15.644" y="183.559" style="line-height:1.25" font-size="12">2</tspan></text><text style="line-height:0%" x="-15.644" y="159.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-15.644" y="159.559" style="line-height:1.25" font-size="12">3</tspan></text><text style="line-height:0%" x="-15.644" y="135.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-15.644" y="135.559" style="line-height:1.25" font-size="12">4</tspan></text><text style="line-height:0%" x="-15.644" y="111.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-15.644" y="111.559" style="line-height:1.25" font-size="12">5</tspan></text><text style="line-height:0%" x="-15.644" y="87.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-15.644" y="87.559" style="line-height:1.25" font-size="12">6</tspan></text><text style="line-height:0%" x="-15.644" y="63.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-15.644" y="63.559" style="line-height:1.25" font-size="12">7</tspan></text><text style="line-height:0%" x="-15.644" y="39.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-15.644" y="39.559" style="line-height:1.25" font-size="12">8</tspan></text><text style="line-height:0%" x="-15.644" y="15.559" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-15.644" y="15.559" style="line-height:1.25" font-size="12">9</tspan></text><g fill="none"><path fill="none" d="M200 50h20v20h-20z"/><path d="M204.343 59.343a8.004 8.004 0 0 1 13.267 3.184l-1.455.473h-.496a6.002 6.002 0 0 0-9.902-2.243L208 63h-6v-6l2.343 2.343z" fill="#000"/></g><path d="M215 82h-3v-4h-4v4h-3l5 6zm-10 7v1h10v-1z"/><path d="M196 72h24v24h-24z" fill="none"/><path d="M210 102l-5 6h3v4h4v-4h3zm-5 11v1h10v-1zM206 176h8v8h-8z"/><g><path d="M212.857 134.628h-.62l-.22-.212a5.083 5.083 0 0 0 1.233-3.322 5.106 5.106 0 1 0-5.106 5.105 5.083 5.083 0 0 0 3.323-1.233l.212.22v.62l3.927 3.92 1.17-1.17zm-4.713 0a3.53 3.53 0 0 1-3.534-3.534 3.53 3.53 0 0 1 3.534-3.535 3.53 3.53 0 0 1 3.535 3.535 3.53 3.53 0 0 1-3.535 3.534z"/><path d="M200.682 123.632h18.852v18.851h-18.852z" fill="none"/></g><path d="M211.72 203.423c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2"/><g><path d="M211 203.5l-4-4.5v3h-4v3h4v3z"/></g></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/largeIcons_2x.png b/third_party/blink/renderer/devtools/front_end/Images/largeIcons_2x.png
deleted file mode 100644
index be61e0f..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/largeIcons_2x.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/mediumIcons.png b/third_party/blink/renderer/devtools/front_end/Images/mediumIcons.png
deleted file mode 100644
index 2352349..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/mediumIcons.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/mediumIcons.svg b/third_party/blink/renderer/devtools/front_end/Images/mediumIcons.svg
new file mode 100644
index 0000000..ac3a45c
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/mediumIcons.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="96" height="96"><defs><linearGradient id="a"><stop offset="0" stop-color="#d7687d"/><stop offset="1" stop-color="#b21402"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#606eda"/><stop offset="1" stop-color="#021db2"/></linearGradient><linearGradient xlink:href="#a" id="m" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0 -.41667 -.41667 0 25 10)" x2="24"/><linearGradient xlink:href="#b" id="k" gradientUnits="userSpaceOnUse" gradientTransform="translate(-.714 -69.286) scale(.71429)" x1="113" y1="104" x2="127" y2="104"/></defs><path d="M3 36h10v9.008A1.99 1.99 0 0 1 11 47H5c-1.105 0-2-.9-2-1.992zm-1-2h12v1H2zm3-1h6v1H5zM29.526 38.25h-1.474v-.75c0-.414-.33-.75-.737-.75h-1.473V36c0-.414-.33-.75-.737-.75h-.737v-1.5a.743.743 0 0 0-.494-.7.494.494 0 0 0-.243-.05C19.968 33 17 36.022 17 39.75s2.968 6.75 6.631 6.75c3.663 0 6.632-3.022 6.632-6.75V39c0-.414-.33-.75-.737-.75zm-9.947 2.25c-.611 0-1.106-.503-1.106-1.125s.495-1.125 1.106-1.125c.61 0 1.105.503 1.105 1.125s-.495 1.125-1.105 1.125zm1.105-4.125c0-.622.495-1.125 1.105-1.125.611 0 1.105.503 1.105 1.125 0 .621-.494 1.125-1.105 1.125-.61 0-1.105-.504-1.105-1.125zM22.894 45c-.61 0-1.105-.503-1.105-1.125 0-.62.495-1.125 1.105-1.125.611 0 1.106.504 1.106 1.125 0 .622-.495 1.125-1.106 1.125zm.369-3.75c-.61 0-1.105-.504-1.105-1.125S22.653 39 23.263 39s1.105.504 1.105 1.125-.495 1.125-1.105 1.125zm3.684 1.5c-.61 0-1.105-.504-1.105-1.125s.495-1.125 1.105-1.125 1.105.504 1.105 1.125-.495 1.125-1.105 1.125z" fill="#212121"/><path d="M40 38c3.314 0 6-.895 6-2s-2.686-2-6-2-6 .895-6 2 2.686 2 6 2zm-6 7c0 1.105 2.686 2 6 2s6-.895 6-2v-2c0 1.105-2.686 2-6 2s-6-.895-6-2zm0-3c0 1.105 2.686 2 6 2s6-.895 6-2v-2c0 1.105-2.686 2-6 2s-6-.895-6-2zm0-3c0 1.105 2.686 2 6 2s6-.895 6-2v-2c0 1.105-2.686 2-6 2s-6-.895-6-2z"/><g fill="none"><path d="M48 32h16v16H48z"/><path d="M57 33h-5.005c-.54 0-.995.45-.995 1.007v11.986A1 1 0 0 0 51.995 47h8.01c.54 0 .995-.451.995-1.007V37l-4-4zm3.29 4H57v-3.29z" fill="#000"/></g><path d="M6.5 51.229V49h3v2.229a4.994 4.994 0 0 1 1.88 1.087l1.932-1.115 1.5 2.598-1.93 1.115a5.018 5.018 0 0 1 0 2.173l1.93 1.114-1.5 2.598-1.931-1.115A4.995 4.995 0 0 1 9.5 60.771v2.23h-3v-2.23a4.994 4.994 0 0 1-1.88-1.087L2.687 60.8l-1.5-2.598 1.93-1.114a5.018 5.018 0 0 1 0-2.173l-1.93-1.115 1.5-2.598 1.931 1.115A4.995 4.995 0 0 1 6.5 51.23zM8 58.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM18 51.999a1 1 0 0 1 .99-.999H24v3h-6v-2.001zM18 59h6v3h-5.01a.992.992 0 0 1-.99-.999V59zm0-4h6v3h-6zm7-4h5.01c.546 0 .99.443.99.999V54h-6v-3zm0 8h6v2.001a1 1 0 0 1-.99.999H25v-3zm0-4h6v3h-6z" fill="#212121"/><path d="M39.5 61a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zm0-2.2v-2.2h-3.3v-2.2h3.3v-2.2l3.3 3.3z"/><g transform="translate(-26 25)"><circle transform="matrix(1.2 0 0 1.2 72.4 21.2)" cx="10.5" cy="11.5" r="2.5" fill="#009802"/><path d="M78 25c-.544 0-1 .45-1 1v8c0 .54.45 1 1 1h3.031a3.533 3.533 0 0 1-.031-.5c0-.17.008-.337.031-.5H78v-8h3v3h3v1.5c.163-.023.33 0 .5 0 .17 0 .337-.023.5 0V28l-3-3zm4 1l2 2h-2z"/></g><path d="M8 66H3.997a1 1 0 0 0-.997.995v8.01c0 .54.446.995.997.995h6.006a1 1 0 0 0 .997-.995V69l-3-3zm0 1l2 2H8zm-4 0h3v3h3v5H4z"/><path d="M17 71.5a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0" fill="#9f9f9f"/><path d="M27 69.43l-.93-.93-2.57 2.57-2.57-2.57-.93.93L22.57 72 20 74.57l.93.93 2.57-2.57 2.57 2.57.93-.93L24.43 72z" fill-opacity=".36"/><path d="M27 68.93l-.93-.93-2.57 2.57L20.93 68l-.93.93 2.57 2.57L20 74.07l.93.93 2.57-2.57L26.07 75l.93-.93-2.57-2.57z" fill="#fff"/><path d="M33 71.5a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0" fill="#bebebe"/><path d="M43 69.43l-.93-.93-2.57 2.57-2.57-2.57-.93.93L38.57 72 36 74.57l.93.93 2.57-2.57 2.57 2.57.93-.93L40.43 72z" fill-opacity=".37"/><path d="M43 68.93l-.93-.93-2.57 2.57L36.93 68l-.93.93 2.57 2.57L36 74.07l.93.93 2.57-2.57L42.07 75l.93-.93-2.57-2.57z" fill="#fff"/><g transform="translate(49 65)"><path transform="translate(-111 -96)" d="M118 96c-3.87 0-7 3.13-7 7s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7" fill="url(#c)"/><path d="M.5 7a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0" fill="#f27d82"/><path d="M10.5 4.93L9.57 4 7 6.57 4.43 4l-.93.93L6.07 7.5 3.5 10.07l.93.93L7 8.43 9.57 11l.93-.93L7.93 7.5z" fill-opacity=".36"/><path d="M10.5 4.43l-.93-.93L7 6.07 4.43 3.5l-.93.93L6.07 7 3.5 9.57l.93.93L7 7.93l2.57 2.57.93-.93L7.93 7z" fill="#fff"/><defs><linearGradient id="d"><stop stop-color="#d7687d" offset="0"/><stop stop-color="#b21402" offset="1"/></linearGradient><linearGradient id="c" x2="24" gradientTransform="matrix(0 -.58333 -.58333 0 118 110)" gradientUnits="userSpaceOnUse" xlink:href="#d"/></defs></g><g transform="translate(1 81)"><path transform="translate(-96 -96)" d="M103 110c3.87 0 7-3.13 7-7s-3.13-7-7-7-7 3.13-7 7 3.13 7 7 7" fill="url(#e)"/><path transform="translate(-96 -96)" d="M103 96.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13" fill="url(#f)"/><path d="M10.5 4.93L9.57 4 7 6.57 4.43 4l-.93.93L6.07 7.5 3.5 10.07l.93.93L7 8.43 9.57 11l.93-.93L7.93 7.5z" fill="#993c35"/><path d="M10.5 4.43l-.93-.93L7 6.07 4.43 3.5l-.93.93L6.07 7 3.5 9.57l.93.93L7 7.93l2.57 2.57.93-.93L7.93 7z" fill="#fff"/><defs><linearGradient id="f" x1="96.5" x2="109.5" y1="103" y2="103" gradientTransform="rotate(90 103 103)" gradientUnits="userSpaceOnUse" xlink:href="#g"/><linearGradient id="g"><stop stop-color="#e59290" offset="0"/><stop stop-color="#e99890" offset="1"/></linearGradient><linearGradient id="e" x1="113" x2="127" y1="104" y2="104" gradientTransform="rotate(90 112 95)" gradientUnits="userSpaceOnUse" xlink:href="#h"/><linearGradient id="h"><stop stop-color="#c0544f" offset="0"/><stop stop-color="#d08481" offset="1"/></linearGradient></defs></g><path d="M26.27 90.92a4.5 4.5 0 1 1 .73-.684l2.346 2.346-.707.707zm-2.692-.106a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z" fill="#5b5b5b"/><text style="line-height:0%" x="-11.403" y="91.208" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-11.403" y="91.208" style="line-height:1.25" font-size="10">1</tspan></text><text style="line-height:0%" x="-11.144" y="75.675" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-11.144" y="75.675" style="line-height:1.25" font-size="10">2</tspan></text><text style="line-height:0%" x="-11.066" y="60.143" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-11.066" y="60.143" style="line-height:1.25" font-size="10">3</tspan></text><text style="line-height:0%" x="-11.266" y="44.611" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="-11.266" y="44.611" style="line-height:1.25" font-size="10">4</tspan></text><text style="line-height:0%" x="5.935" y="108.082" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="5.935" y="108.082" style="line-height:1.25" font-size="10">a</tspan></text><text style="line-height:0%" x="21.659" y="108.082" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="21.659" y="108.082" style="line-height:1.25" font-size="10">b</tspan></text><text style="line-height:0%" x="37.384" y="108.082" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="37.384" y="108.082" style="line-height:1.25" font-size="10">c</tspan></text><text style="line-height:0%" x="53.108" y="108.082" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#b3b3b3"><tspan x="53.108" y="108.082" style="line-height:1.25" font-size="10">d</tspan></text><g fill="none"><path d="M48 96H32V80h16z"/><path d="M40 81c-3.864 0-7 3.136-7 7s3.136 7 7 7 7-3.136 7-7-3.136-7-7-7zm-5.5 7c0-3.032 2.468-5.5 5.5-5.5s5.5 2.468 5.5 5.5-2.468 5.5-5.5 5.5a5.507 5.507 0 0 1-5.5-5.5zm6.5 4v-5h-2v5zm-2-6h2v-2h-2z" fill="#000"/></g><g transform="matrix(1.39974 0 0 1.39343 65.054 81.02)" mask="url(#i)"><path d="M1 9l4-8 4 8z" stroke="#c19600" stroke-width="2" stroke-linejoin="round"/><path d="M1 9l4-8 4 8z" fill="#f4bd00" stroke="#f5bd00" stroke-width="1.5" stroke-linejoin="round"/><path d="M3.75 2.75h2.5v2.5L5.75 7h-1.5l-.5-1.75v-2.5m0 5.25h2.5v1.25h-2.5" fill="#ad8601"/><mask id="i"><path transform="translate(-60)" d="M64 3h2v2.25L65.5 7h-1L64 5.25V3m0 5h2v1h-2"/><path fill="#fff" d="M0 0h10v10H0z"/></mask></g><g transform="matrix(1.36 0 0 1.34 65.3 65.5)" mask="url(#j)"><path transform="translate(-80)" d="M85 0c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5" fill="url(#k)"/><path d="M.36 5C.36 7.56 2.44 9.64 5 9.64c2.56 0 4.64-2.08 4.64-4.64C9.64 2.44 7.56.36 5 .36 2.44.36.36 2.44.36 5" fill="#2a53cd"/><mask id="j"><path transform="translate(-80)" d="M83.93 2.14c-.03-.53.55-.97 1.06-.83.5.12.79.73.56 1.18-.2.44-.79.61-1.2.36a.812.812 0 0 1-.42-.71zm1.7 5.46h.67v.53h-2.89V7.6h.66V3.99h-.66v-.53h2.22z"/><path fill="#fff" d="M0 0h10v10H0z"/></mask></g><g transform="matrix(1.37 0 0 1.36 65.2 49.3)" mask="url(#l)"><path transform="translate(-20)" d="M25 0c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5" fill="url(#m)"/><path d="M.36 5C.36 7.56 2.44 9.64 5 9.64c2.56 0 4.64-2.08 4.64-4.64C9.64 2.44 7.56.36 5 .36 2.44.36.36 2.44.36 5" fill="#eb3941"/><mask id="l"><path transform="translate(-20)" d="M23 3l4 4M27 3l-4 4" stroke="#000"/><path fill="#fff" d="M0 0h10v10H0z"/></mask></g><path d="M72 33.333A6.67 6.67 0 0 0 65.333 40 6.67 6.67 0 0 0 72 46.667 6.67 6.67 0 0 0 78.667 40 6.67 6.67 0 0 0 72 33.333zm0 2c1.107 0 2 .894 2 2 0 1.107-.893 2-2 2s-2-.893-2-2c0-1.106.893-2 2-2zm0 9.467a4.8 4.8 0 0 1-4-2.147c.02-1.326 2.667-2.053 4-2.053 1.327 0 3.98.727 4 2.053a4.8 4.8 0 0 1-4 2.147z"/><path d="M64 32h16v16H64z" fill="none"/><text style="line-height:0%;-inkscape-font-specification:Sans;text-align:start" x="-10.738" y="28.118" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill-opacity=".373"><tspan x="-10.738" y="28.118" style="line-height:1.25" font-size="10">5</tspan></text><text style="line-height:0%;-inkscape-font-specification:Sans;text-align:start" x="68.649" y="107.697" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill-opacity=".351"><tspan x="68.649" y="107.697" style="line-height:1.25" font-size="10">e</tspan></text><path d="M65.25 24.75h1.5v-1.5h-1.5zm0 3h1.5v-1.5h-1.5zm0-6h1.5v-1.5h-1.5zm3 3h10.5v-1.5h-10.5zm0 3h10.5v-1.5h-10.5zm0-7.5v1.5h10.5v-1.5z"/><path d="M63 15h18v18H63zM47 79h18v18H47z" fill="none"/><path d="M62 85h-2.107a4.489 4.489 0 0 0-1.366-1.47l1.223-1.222-1.058-1.058-1.627 1.627a4.439 4.439 0 0 0-2.122 0l-1.635-1.627-1.058 1.058 1.215 1.222A4.547 4.547 0 0 0 52.108 85H50v1.5h1.568a4.978 4.978 0 0 0-.068.75V88H50v1.5h1.5v.75c0 .255.03.503.068.75H50v1.5h2.108A4.498 4.498 0 0 0 56 94.75a4.498 4.498 0 0 0 3.893-2.25H62V91h-1.567c.037-.248.067-.495.067-.75v-.75H62V88h-1.5v-.75c0-.255-.03-.503-.067-.75H62zm-4.5 6h-3v-1.5h3zm0-3h-3v-1.5h3z"/><g fill="none"><path opacity=".2" d="M48 16h16v16H48z"/><path d="M48.5 30h15L56 17zm8.5-2h-2v-2h2zm0-3h-2v-3h2z" fill="#000"/></g><text style="line-height:0%" x="32.47" y="23.902" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0"><tspan x="32.47" y="23.902" style="line-height:1.25" font-weight="700" font-size="10">A</tspan></text><text style="line-height:0%" x="40.363" y="31.525" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0"><tspan x="40.363" y="31.525" style="line-height:1.25" font-weight="700" font-size="10">B</tspan></text><path d="M37.955 29.089c-1.915-.292-2.12-.9-2.237-4.13h-1.22c.047 3.856.062 5.297 5.736 5.258l.316-.014-2.595-2.996a39.95 39.95 0 0 0 0 1.882z"/><g fill="none" fill-rule="evenodd"><path d="M0 16h16v16H0z"/><g fill="#000" fill-rule="nonzero"><path d="M9.58 27.313l1.417 1.294c-.86.577-1.89.913-2.997.913-3.004 0-5.44-2.471-5.44-5.52 0-.917.22-1.782.61-2.543l1.417 1.294c-.138.39-.214.81-.214 1.249 0 2.032 1.624 3.68 3.627 3.68.567 0 1.103-.132 1.58-.367zm1.826-2.046c.143-.395.22-.822.22-1.267 0-2.032-1.623-3.68-3.626-3.68-.573 0-1.116.135-1.598.375l-1.414-1.292A5.36 5.36 0 0 1 8 18.48c3.004 0 5.44 2.471 5.44 5.52 0 .924-.224 1.795-.619 2.56z"/><path d="M8 25.84v5.52l3.022-2.76zM8 22.16v-5.52L4.978 19.4z"/></g></g><g fill="none" fill-rule="evenodd"><path fill="#000" d="M20 20h2v6h-2zM26 22h2v6h-2z"/><path fill="#000" fill-rule="nonzero" d="M24.667 20.667l-3.667-4-3.667 4h4.584zM23.333 27.333l3.667 4 3.667-4h-4.584z"/><path d="M16 16h16v16H16z"/></g><text style="line-height:0%;-inkscape-font-specification:Sans;text-align:start" x="-10.547" y="11.352" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill-opacity=".373"><tspan x="-10.547" y="11.352" style="line-height:1.25" font-size="10">6</tspan></text><text style="line-height:0%;-inkscape-font-specification:Sans;text-align:start" x="85.725" y="108.235" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill-opacity=".351"><tspan x="85.725" y="108.235" style="line-height:1.25" font-size="10">f</tspan></text><g><path d="M1 1h14v14H1z" fill="none"/><path d="M12.287 6.857A4.37 4.37 0 0 0 4.121 5.69 3.497 3.497 0 0 0 1 9.167c0 1.93 1.57 3.5 3.5 3.5h7.583A2.918 2.918 0 0 0 15 9.75a2.903 2.903 0 0 0-2.713-2.893z"/></g><g><path d="M24.044 15a1.44 1.44 0 0 0 1.435-1.436h-2.871c0 .79.639 1.436 1.436 1.436zm4.307-4.308v-3.59c0-2.204-1.177-4.049-3.23-4.537v-.488C25.12 1.48 24.639 1 24.044 1c-.596 0-1.077.481-1.077 1.077v.488c-2.06.488-3.231 2.326-3.231 4.538v3.59L18.3 12.127v.718h11.487v-.718z"/></g></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/mediumIcons_2x.png b/third_party/blink/renderer/devtools/front_end/Images/mediumIcons_2x.png
deleted file mode 100644
index 866dd0b..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/mediumIcons_2x.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/readme.md b/third_party/blink/renderer/devtools/front_end/Images/readme.md
index 1e0503b..5042778 100644
--- a/third_party/blink/renderer/devtools/front_end/Images/readme.md
+++ b/third_party/blink/renderer/devtools/front_end/Images/readme.md
@@ -1,16 +1,15 @@
 ## Adding new icons
 
 1. Use Inkscape 0.92 or newer.
-1. Choose an existing spritesheet, like `largeIcons.svg` to add the icon to
+1. Choose an existing spritesheet, like `largeIcons.svg` to add the icon to.
+  - Make sure to edit the `src/` version of the svg!
 1. Open that file with Inkscape and import the new SVG into the document
 1. Place in an open spot, and use guides to scale the icon to a good size, relative to other icons
 1. Any straight lines should be snapped to the closest pixel value.
    - Use the `Edit paths by nodes` tool (F2) to edit the path directly.
    - Tweak the X, Y values at the top to be integers.
-1. Generate PNGs from the SVGs:
-   - `./scripts/convert_svg_images_to_png.py`
-1. Optimize PNGs:
-   - `./scripts/optimize_png_images.py`
+ 1. Optimize SVGs:
+   - `./scripts/optimize_svg_images.py`
 1. In `ui/Icon.js` add an entry in `UI.Icon.Descriptors`.
    - Look at the spritesheet's axes to identify the correct grid position.
 1. You may want to regenerate devtools resources:
diff --git a/third_party/blink/renderer/devtools/front_end/Images/securityIcons.png b/third_party/blink/renderer/devtools/front_end/Images/securityIcons.png
deleted file mode 100644
index 63b3b60..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/securityIcons.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/securityIcons.svg b/third_party/blink/renderer/devtools/front_end/Images/securityIcons.svg
new file mode 100644
index 0000000..7676d391
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/securityIcons.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="80" height="32"><g fill="none"><path d="M50 19.732A1.73 1.73 0 0 1 51.726 18h9.548c.953 0 1.726.769 1.726 1.732v8.536A1.73 1.73 0 0 1 61.274 30h-9.548A1.725 1.725 0 0 1 50 28.268v-8.536zM56 22h1v-1h-1v1zm0 5h1v-4h-1v4z" fill="#000"/><path d="M64 32V16h16v16z"/><path d="M67.719 18c-.952 0-1.719.762-1.719 1.719v8.562c0 .963.765 1.719 1.719 1.719h9.562c.952 0 1.719-.762 1.719-1.719V19.72c0-.963-.765-1.719-1.719-1.719H67.72zm4.781 2a2 2 0 0 1 2 2c0 .44-.184.84-.469 1.125l-.437.469c-.36.365-.594.656-.594 1.406h-1v-.25a2 2 0 0 1 .594-1.406l.625-.625A.998.998 0 0 0 73.5 22c0-.55-.45-1-1-1s-1 .45-1 1h-1a2 2 0 0 1 2-2zm-.5 6h1v1h-1v-1z" fill="#000"/><g transform="translate(0 16)"><path opacity=".2" d="M0 0h16v16H0z"/><rect rx="1" height="8" width="8" y="4" x="4" fill="#000"/></g><g transform="translate(16 16)"><path opacity=".2" d="M0 0h16v16H0z"/><rect rx="4" height="8" width="8" y="4" x="4" fill="#000"/></g><path opacity=".2" d="M32 16h16v16H32z"/><path fill="#000" d="M35 28l5-9 5 9z"/><path opacity=".2" d="M32 0h16v16H32z"/><path d="M32.5 14h15L40 1l-7.5 13zm8.5-2h-2v-2h2v2zm0-3h-2V6h2v3z" fill="#000"/><path d="M32 0v16H16V0z"/><path d="M24 1c-3.864 0-7 3.136-7 7s3.136 7 7 7 7-3.136 7-7-3.136-7-7-7zm-5.5 7c0-3.032 2.468-5.5 5.5-5.5s5.5 2.468 5.5 5.5-2.468 5.5-5.5 5.5A5.507 5.507 0 0 1 18.5 8zm6.5 4V7h-2v5h2zm-2-6h2V4h-2v2z" fill="#000"/><path d="M16 0v16H0V0z"/><path d="M10.5 6.5v-1A2.5 2.5 0 0 0 8 3c-1.38.01-2.5 1.12-2.5 2.5v1H5c-.55 0-1 .45-1 .996V12.5c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-5c0-.528-.45-1-1-1h-.5zm-4 .01V5.5C6.5 4.67 7.17 4 8 4s1.5.67 1.5 1.5v1.01h-3z" fill="#000"/><path d="M160-32V0h-32v-32z"/><path opacity=".2" d="M0-32h32V0H0z"/><g><path opacity=".2" d="M32-32h32V0H32z"/></g><g><path opacity=".2" d="M64-32h32V0H64z"/></g><g><path opacity=".2" d="M64-64h32v32H64z"/></g><g><path d="M64-64v32H32v-32z"/></g><g><path d="M32-64v32H0v-32z"/></g></g></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/securityIcons_2x.png b/third_party/blink/renderer/devtools/front_end/Images/securityIcons_2x.png
deleted file mode 100644
index 49ef2be..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/securityIcons_2x.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/smallIcons.png b/third_party/blink/renderer/devtools/front_end/Images/smallIcons.png
deleted file mode 100644
index 657cb133..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/smallIcons.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/smallIcons.svg b/third_party/blink/renderer/devtools/front_end/Images/smallIcons.svg
new file mode 100644
index 0000000..e4ae476
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/smallIcons.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="110" height="110"><defs><linearGradient id="y" x1="113" x2="127" y1="104" y2="104" gradientTransform="translate(-.714 -69.286) scale(.71429)" gradientUnits="userSpaceOnUse" xlink:href="#a"/><linearGradient id="a"><stop stop-color="#606eda" offset="0"/><stop stop-color="#021db2" offset="1"/></linearGradient><linearGradient id="A" x2="24" gradientTransform="matrix(0 -.41667 -.41667 0 25 10)" gradientUnits="userSpaceOnUse" xlink:href="#b"/><linearGradient id="b"><stop stop-color="#d7687d" offset="0"/><stop stop-color="#b21402" offset="1"/></linearGradient></defs><path d="M0 20.995c0-.55.456-.995.995-.995h8.01c.55 0 .995.455.995.995v8.01c0 .549-.456.995-.995.995H.995C.445 30 0 29.544 0 29.004zm5.123 4.744C7.691 25.312 8.75 24.546 8.75 22h-1.5c0 1.62-.44 1.939-2.373 2.26-2.568.429-3.627 1.194-3.627 3.74h1.5c0-1.62.44-1.937 2.373-2.26zM23.65 27.21l-1.44-2.03L21 26.39 23.55 30 30 22.33 28.88 21z"/><path d="M6.5 46c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1" fill="#bababa"/><path d="M5.75 42.75L2.25 46l3.5 3.25" fill="none" stroke="#bababa" stroke-width="1.5"/><path d="M27.5 42.43l-.93-.93L24 44.07l-2.57-2.57-.93.93L23.07 45l-2.57 2.57.93.93L24 45.93l2.57 2.57.93-.93L24.93 45l2.57-2.57z" fill-opacity=".24"/><path d="M27.5 41.93l-.93-.93L24 43.57 21.43 41l-.93.93 2.57 2.57-2.57 2.57.93.93L24 45.43 26.57 48l.93-.93-2.57-2.57 2.57-2.57z" fill="#676767"/><path d="M43.25 20c-.7 0-1.25.5-1.25 1.25v7.5c0 .7.5 1.25 1.25 1.25h3.5c.7 0 1.25-.5 1.25-1.25v-7.5c0-.7-.5-1.25-1.25-1.25zM43 21h4v7h-4zm2 7.25c.4 0 .75.3.75.75 0 .4-.3.75-.75.75-.4 0-.75-.3-.75-.75 0-.4.3-.75.75-.75z"/><g transform="translate(40 40)"><path transform="translate(-20)" d="M25 0c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5" fill="url(#c)"/><path d="M.36 5C.36 7.56 2.44 9.64 5 9.64c2.56 0 4.64-2.08 4.64-4.64C9.64 2.44 7.56.36 5 .36 2.44.36.36 2.44.36 5" fill="#eb3941"/><path d="M3 3l4 4M7 3L3 7" stroke="#fff"/><defs><linearGradient id="d"><stop stop-color="#d7687d" offset="0"/><stop stop-color="#b21402" offset="1"/></linearGradient><linearGradient id="c" x2="24" gradientTransform="matrix(0 -.41667 -.41667 0 25 10)" gradientUnits="userSpaceOnUse" xlink:href="#d"/></defs></g><path d="M4.5 61.3l4 3.7-4 3.7v-1.2H1.425l.075-5h3z" fill="#adf2ad" stroke="#007200"/><g transform="translate(20 60)"><path transform="translate(-140)" d="M144.95 10A5.002 5.002 0 0 1 140 4.95 5.002 5.002 0 0 1 145.05 0c2.76.03 4.98 2.29 4.95 5.05a5.002 5.002 0 0 1-5.05 4.95z" fill="url(#e)"/><path d="M9.5 5.05A4.494 4.494 0 0 1 4.95 9.5 4.494 4.494 0 0 1 .5 4.95 4.494 4.494 0 0 1 5.05.5C7.54.53 9.53 2.56 9.5 5.05z" fill="#00be00"/><path transform="translate(-140)" d="M145.08.53c1.97.02 3.55 1.06 3.54 2.32-.01 1.26-1.62 2.26-3.59 2.24-1.97-.02-3.55-1.06-3.54-2.32.01-1.26 1.62-2.26 3.59-2.24z" fill="url(#f)"/><path transform="translate(-140)" d="M144.98 9.41c1.66.02 3.01-.68 3.02-1.56.01-.88-1.33-1.61-2.98-1.63-1.66-.02-3.01.68-3.02 1.56-.01.88 1.33 1.61 2.98 1.63z" fill="url(#g)"/><defs><linearGradient id="h"><stop stop-color="#00d600" stop-opacity="0" offset="0"/><stop stop-color="#d8fc7b" stop-opacity=".81" offset="1"/></linearGradient><linearGradient id="i"><stop stop-color="#00ba00" offset="0"/><stop stop-color="#fff" stop-opacity=".91" offset="1"/></linearGradient><linearGradient id="j"><stop stop-color="#00a104" offset="0"/><stop stop-color="#00c605" offset="1"/></linearGradient><linearGradient id="g" x1="227.88" x2="235.12" y1="103.16" y2="103.16" gradientTransform="matrix(-.0048 .4396 .78038 .00853 65.608 -94.834)" gradientUnits="userSpaceOnUse" xlink:href="#h"/><linearGradient id="f" x1="227.88" x2="235.12" y1="103.16" y2="103.16" gradientTransform="matrix(.00687 -.62923 .9267 .01012 47.871 147.44)" gradientUnits="userSpaceOnUse" xlink:href="#i"/><linearGradient id="e" x1="227.88" x2="235.12" y1="103.16" y2="103.16" gradientTransform="matrix(-.01507 1.3791 -1.3006 -.0142 282.66 -312.8)" gradientUnits="userSpaceOnUse" xlink:href="#j"/></defs></g><g transform="translate(40 60)"><path transform="translate(-80)" d="M85 0c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5" fill="url(#k)"/><path d="M.36 5C.36 7.56 2.44 9.64 5 9.64c2.56 0 4.64-2.08 4.64-4.64C9.64 2.44 7.56.36 5 .36 2.44.36.36 2.44.36 5" fill="#2a53cd"/><path d="M3.93 2.14c-.03-.53.55-.97 1.06-.83.5.12.79.73.56 1.18-.2.44-.79.61-1.2.36a.812.812 0 0 1-.42-.71zm1.7 5.46h.67v.53H3.41V7.6h.66V3.99h-.66v-.53h2.22V7.6z" fill="#fff"/><defs><linearGradient id="l"><stop stop-color="#606eda" offset="0"/><stop stop-color="#021db2" offset="1"/></linearGradient><linearGradient id="k" x1="113" x2="127" y1="104" y2="104" gradientTransform="translate(-.714 -69.286) scale(.71429)" gradientUnits="userSpaceOnUse" xlink:href="#l"/></defs></g><path d="M60.45 20.467v9.079h5.373l3.582-4.54-3.582-4.539z" fill="#698cfe" stroke="#4073f4" stroke-width=".908"/><path d="M60.45 40.467v9.08h5.372l3.581-4.54-3.581-4.54z" fill="#ef9d0d" stroke="#a36c01" stroke-width=".908"/><g transform="translate(60 60)"><path d="M5 10c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z" fill="#e5a600"/><path d="M9.5 5c0 2.49-2.01 4.5-4.5 4.5S.5 7.49.5 5 2.51.5 5 .5 9.5 2.51 9.5 5z" fill="#ffbd00"/><path transform="translate(-160)" d="M165.03.53c1.97 0 3.56 1.02 3.56 2.28 0 1.26-1.59 2.28-3.56 2.28s-3.56-1.02-3.56-2.28c0-1.26 1.59-2.28 3.56-2.28z" fill="url(#m)"/><path transform="translate(-160)" d="M164.99 9.42c1.66 0 3-.71 3-1.59 0-.88-1.34-1.59-3-1.59s-3 .71-3 1.59c0 .88 1.34 1.59 3 1.59z" fill="url(#n)"/><defs><linearGradient id="o"><stop stop-color="#ffa801" stop-opacity="0" offset="0"/><stop stop-color="#f0fb3d" offset="1"/></linearGradient><linearGradient id="p"><stop stop-color="#ffbd00" stop-opacity=".65" offset="0"/><stop stop-color="#fff" stop-opacity=".91" offset="1"/></linearGradient><linearGradient id="n" x1="227.88" x2="235.12" y1="103.16" y2="103.16" gradientTransform="matrix(0 .43966 .78049 0 84.444 -93.924)" gradientUnits="userSpaceOnUse" xlink:href="#o"/><linearGradient id="m" x1="227.88" x2="235.12" y1="103.16" y2="103.16" gradientTransform="matrix(0 -.62931 .92683 0 69.47 148.53)" gradientUnits="userSpaceOnUse" xlink:href="#p"/></defs></g><g transform="translate(0 80)"><path transform="translate(-120)" d="M125 10c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z" fill="url(#q)"/><path d="M9.5 5c0 2.49-2.01 4.5-4.5 4.5S.5 7.49.5 5 2.51.5 5 .5 9.5 2.51 9.5 5z" fill="#d00"/><path transform="translate(-120)" d="M125.03.53c1.97 0 3.56 1.02 3.56 2.28 0 1.26-1.59 2.28-3.56 2.28s-3.56-1.02-3.56-2.28c0-1.26 1.59-2.28 3.56-2.28z" fill="url(#r)"/><path transform="translate(-120)" d="M125.03 9.47c1.66 0 3-.71 3-1.59 0-.88-1.34-1.59-3-1.59s-3 .71-3 1.59c0 .88 1.34 1.59 3 1.59z" fill="url(#s)"/><defs><linearGradient id="t"><stop stop-color="red" stop-opacity="0" offset="0"/><stop stop-color="#f0cb68" stop-opacity=".71" offset="1"/></linearGradient><linearGradient id="u"><stop stop-color="#e60000" stop-opacity=".65" offset="0"/><stop stop-color="#fff" stop-opacity=".91" offset="1"/></linearGradient><linearGradient id="v"><stop stop-color="#a10000" offset="0"/><stop stop-color="#c60000" offset="1"/></linearGradient><linearGradient id="s" x1="227.88" x2="235.12" y1="103.16" y2="103.16" gradientTransform="matrix(0 .43966 .78049 0 44.488 -93.88)" gradientUnits="userSpaceOnUse" xlink:href="#t"/><linearGradient id="r" x1="227.88" x2="235.12" y1="103.16" y2="103.16" gradientTransform="matrix(0 -.62931 .92683 0 29.47 148.53)" gradientUnits="userSpaceOnUse" xlink:href="#u"/><linearGradient id="q" x1="227.88" x2="235.12" y1="103.16" y2="103.16" gradientTransform="matrix(0 1.3793 -1.3008 0 259.08 -314.35)" gradientUnits="userSpaceOnUse" xlink:href="#v"/></defs></g><path d="M20 80h10v10H20z" fill="none"/><path d="M27.5 82.5V80H20v7.5h2.5V90H30v-7.5zM21 81h5.5v5.5H21zm2.5 6.5h4v-4H29V89h-5.5z"/><path d="M23.5 87.5h4v-4H29V89h-5.5z" fill-opacity=".25"/><g fill="#acf2ae" stroke="#007200" stroke-width="2.577"><path transform="matrix(.29356 0 0 .2909 2.65 86.864)" d="M144.95 10A5.002 5.002 0 0 1 140 4.95 5.002 5.002 0 0 1 145.05 0c2.76.03 4.98 2.29 4.95 5.05a5.002 5.002 0 0 1-5.05 4.95z"/><path transform="matrix(.29356 0 0 .2909 2.65 86.864)" d="M149.5 5.05a4.494 4.494 0 0 1-4.55 4.45 4.494 4.494 0 0 1-4.45-4.55A4.494 4.494 0 0 1 145.05.5c2.49.03 4.48 2.06 4.45 4.55z"/></g><path d="M48.313 82.5L45.21 86l-3.102-3.5h1.24v-1.92h3.723v1.92z" fill="#adf2ad" stroke="#007200"/><path d="M66.537 88.514a1.314 1.314 0 0 1-1.335 1.295 1.313 1.313 0 0 1-1.306-1.324 1.314 1.314 0 0 1 1.335-1.294c.731.009 1.315.6 1.307 1.323z" fill="#acf2ae" stroke="#007200" stroke-width=".753"/><path d="M62.108 83.5l3.102-2.982 3.102 2.982h-1.24v2h-3.723v-2z" fill="#adf2ad" stroke="#007200"/><path d="M83.25 21.75l3.5 3.25-3.5 3.25" fill="none" stroke="#367cf1" stroke-width="1.5"/><path d="M86 40l-5 5 5 5v-2h3v-6h-3zM84 60l5 5-5 5.022v-2.045L81 68v-6h3z" fill="#4688f1"/><path d="M84.5 88l3.5-6h-7M7 104.5L2 101v7M24 100l4 7h-8"/><path d="M43.25 102.75l3.5 3.25-3.5 3.25" fill="none" stroke="#939393" stroke-width="1.5"/><path d="M61 109l4-8 4 8z" stroke="#c19600" stroke-width="2" stroke-linejoin="round"/><path d="M61 109l4-8 4 8z" fill="#f4bd00" stroke="#f5bd00" stroke-width="1.5" stroke-linejoin="round"/><path d="M63.75 102.75h2.5v2.5l-.5 1.75h-1.5l-.5-1.75v-2.5m0 5.25h2.5v1.25h-2.5" fill="#ad8601"/><path d="M64 103h2v2.25l-.5 1.75h-1l-.5-1.75V103m0 5h2v1h-2" fill="#fff"/><text style="line-height:0%" x="3.051" y="118.387" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="3.051" y="118.387" style="line-height:1.25" font-size="8">a</tspan></text><text style="line-height:0%" x="23.051" y="118.387" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="23.051" y="118.387" style="line-height:1.25" font-size="8">b</tspan></text><text style="line-height:0%" x="43.051" y="118.387" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="43.051" y="118.387" style="line-height:1.25" font-size="8">c</tspan></text><text style="line-height:0%" x="63.051" y="118.387" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="63.051" y="118.387" style="line-height:1.25" font-size="8">d</tspan></text><text style="line-height:0%" x="83.051" y="118.387" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="83.051" y="118.387" style="line-height:1.25" font-size="8">e</tspan></text><text style="line-height:0%" x="-7.026" y="107.818" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="-7.026" y="107.818" style="line-height:1.25" font-size="8">1</tspan></text><text style="line-height:0%" x="-6.819" y="87.88" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="-6.819" y="87.88" style="line-height:1.25" font-size="8">2</tspan></text><text style="line-height:0%" x="-6.756" y="67.992" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="-6.756" y="67.992" style="line-height:1.25" font-size="8">3</tspan></text><text style="line-height:0%" x="-6.917" y="47.994" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="-6.917" y="47.994" style="line-height:1.25" font-size="8">4</tspan></text><text style="line-height:0%" x="-7.108" y="28.056" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="-7.108" y="28.056" style="line-height:1.25" font-size="8">5</tspan></text><circle cx="3" cy="3" r="2.5" transform="matrix(1.13208 0 0 1.13208 81.604 102.604)" fill="#00bcd4" stroke="#000" stroke-width=".3"/><path d="M5 0a5 5 0 1 0 0 10A5 5 0 0 0 5 0zm.048.721c1.083 0 2.179.4 3.005 1.226a4.234 4.234 0 0 1 0 5.986L5.048 4.952l-2.98-3.005A4.18 4.18 0 0 1 5.047.721z"/><text style="line-height:0%" x="-6.68" y="8" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="-6.68" y="8" style="line-height:1.25" font-size="8">6</tspan></text><path d="M17.601-2.913h16.232v16.232H17.601z" fill="none"/><path d="M21.11 5.556L20 6.667 23.334 10 30 3.334l-1.11-1.111-5.556 5.555z" fill-rule="evenodd"/><path d="M44.954 8.42a3.467 3.467 0 0 1-3.462-3.46c0-.678.2-1.309.531-1.84l4.77 4.77c-.531.338-1.162.53-1.84.53m3.462-3.46c0 .676-.2 1.307-.53 1.838l-4.77-4.77a3.405 3.405 0 0 1 1.839-.53 3.467 3.467 0 0 1 3.461 3.461M45 .005a5 5 0 1 0 0 10 5 5 0 0 0 0-10"/><path d="M68.875 2.219L63.344 7.78l-.407-.406L61.844 8.5l1.5 1.5L70 3.344l-1.125-1.125z" fill-rule="evenodd"/><text style="line-height:0%" x="103.739" y="118.482" font-weight="400" font-family="sans-serif" letter-spacing="0" word-spacing="0" fill="#ccc"><tspan x="103.739" y="118.482" style="line-height:1.25" font-size="8">f</tspan></text><g transform="translate(100 100)" mask="url(#w)"><path d="M1 9l4-8 4 8z" stroke="#c19600" stroke-width="2" stroke-linejoin="round"/><path d="M1 9l4-8 4 8z" fill="#f4bd00" stroke="#f5bd00" stroke-width="1.5" stroke-linejoin="round"/><path d="M3.75 2.75h2.5v2.5L5.75 7h-1.5l-.5-1.75v-2.5m0 5.25h2.5v1.25h-2.5" fill="#ad8601"/><mask id="w"><path transform="translate(-60)" d="M64 3h2v2.25L65.5 7h-1L64 5.25V3m0 5h2v1h-2"/><path fill="#fff" d="M0 0h10v10H0z"/></mask></g><g transform="translate(100 80)" mask="url(#x)"><path transform="translate(-80)" d="M85 0c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5" fill="url(#y)"/><path d="M.36 5C.36 7.56 2.44 9.64 5 9.64c2.56 0 4.64-2.08 4.64-4.64C9.64 2.44 7.56.36 5 .36 2.44.36.36 2.44.36 5" fill="#2a53cd"/><mask id="x"><path transform="translate(-80)" d="M83.93 2.14c-.03-.53.55-.97 1.06-.83.5.12.79.73.56 1.18-.2.44-.79.61-1.2.36a.812.812 0 0 1-.42-.71zm1.7 5.46h.67v.53h-2.89V7.6h.66V3.99h-.66v-.53h2.22V7.6z"/><path fill="#fff" d="M0 0h10v10H0z"/></mask></g><g transform="translate(100 60)" mask="url(#z)"><path transform="translate(-20)" d="M25 0c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5" fill="url(#A)"/><path d="M.36 5C.36 7.56 2.44 9.64 5 9.64c2.56 0 4.64-2.08 4.64-4.64C9.64 2.44 7.56.36 5 .36 2.44.36.36 2.44.36 5" fill="#eb3941"/><mask id="z"><path transform="translate(-20)" d="M23 3l4 4M27 3l-4 4" stroke="#000"/><path fill="#fff" d="M0 0h10v10H0z"/></mask></g><g><path d="M105.1 40.267a4.835 4.835 0 0 0-4.833 4.833 4.835 4.835 0 0 0 4.833 4.833 4.835 4.835 0 0 0 4.833-4.833 4.835 4.835 0 0 0-4.833-4.833zm0 1.45c.802 0 1.45.647 1.45 1.45 0 .802-.648 1.45-1.45 1.45-.802 0-1.45-.648-1.45-1.45 0-.803.648-1.45 1.45-1.45zm0 6.863a3.48 3.48 0 0 1-2.9-1.556c.014-.962 1.933-1.489 2.9-1.489.962 0 2.885.527 2.9 1.489a3.48 3.48 0 0 1-2.9 1.556z"/><path d="M99.3 39.3h11.6v11.6H99.3z" fill="none"/></g><path d="M105 22.528l-4 4.43.94 1.042 3.06-3.382L108.06 28l.94-1.041z"/><path d="M76.448 14.99h17.528v19.416H76.448z" fill="none"/><path d="M88.06 3.06L85 6.113 81.94 3.06 81 4l4 4 4-4z"/></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/smallIcons_2x.png b/third_party/blink/renderer/devtools/front_end/Images/smallIcons_2x.png
deleted file mode 100644
index d505749..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/smallIcons_2x.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/src/accelerometer-back.svg b/third_party/blink/renderer/devtools/front_end/Images/src/accelerometer-back.svg
new file mode 100644
index 0000000..603a094
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/src/accelerometer-back.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   viewBox="0 0 770.00001 1580"
+   version="1.1"
+   width="770"
+   height="1580"
+   id="svg11071">
+  <defs
+     id="defs3775" />
+  <metadata
+     id="metadata11076">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(-1,0,0,1,770.5,0)"
+     id="layer3">
+    <path
+       style="fill:none;stroke:#ff8800;stroke-width:9"
+       d="M 766,366 V 466"
+       id="path11635" />
+    <path
+       style="fill:none;stroke:#888888;stroke-width:9"
+       d="M 766,768 V 568"
+       id="path11637" />
+    <g
+       style="fill-rule:evenodd"
+       id="g3764">
+      <rect
+         style="fill:#222222"
+         x="0"
+         y="0"
+         width="767"
+         height="1580"
+         ry="80"
+         rx="80"
+         id="rect11633" />
+    </g>
+    <g
+       style="fill:#ffffff;fill-rule:evenodd"
+       id="g3769">
+      <rect
+         style="fill-opacity:0.13332998"
+         x="273.5"
+         y="1526"
+         width="220"
+         height="15"
+         ry="5"
+         rx="5"
+         id="rect11707" />
+      <path
+         style="fill-opacity:0.86667002"
+         d="M 70.36319,6.9493575 C 28.332124,5.755102 4.8083241,47.982906 4.8378685,83.222978 L 6.032124,1507.7128 c 0.025949,30.952 32.037776,68.2787 64.633409,68.2161 l 622.086167,-1.1942 c 30.87325,-0.059 68.21618,-37.2632 68.21618,-64.6334 V 76.057445 c 0,-31.282766 -24.68851,-66.7195765 -63.13681,-70.302343 C 456.89848,4.61017 269.72229,6.9493575 70.36319,6.9493575 Z"
+         id="path11722" />
+    </g>
+  </g>
+</svg>
diff --git a/third_party/blink/renderer/devtools/front_end/Images/src/accelerometer-front.svg b/third_party/blink/renderer/devtools/front_end/Images/src/accelerometer-front.svg
new file mode 100644
index 0000000..6e90a4b
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/src/accelerometer-front.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<!-- Created with Inkscape (http://www.inkscape.org/) -->

+<svg id="svg11071" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="1580" width="770" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 770.00001 1580">

+ <metadata id="metadata11076">

+  <rdf:RDF>

+   <cc:Work rdf:about="">

+    <dc:format>image/svg+xml</dc:format>

+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>

+    <dc:title/>

+   </cc:Work>

+  </rdf:RDF>

+ </metadata>

+ <g id="layer3">

+  <path id="path11635" d="m766 366v100" stroke="#f80" stroke-width="9" fill="none"/>

+  <path id="path11637" d="m766 768v-200" stroke="#888" stroke-width="9" fill="none"/>

+  <g fill-rule="evenodd">

+   <rect id="rect11633" rx="80" ry="80" height="1580" width="767" y="0" x="0" fill="#222"/>

+   <rect id="rect11061" fill-opacity=".13333" rx="5" ry="5" height="18" width="80" y="80" x="343.5" fill="#fff"/>

+   <circle id="path11063" cx="459" fill-opacity=".26667" cy="76.25" r="15" fill="#00f"/>

+   <circle id="path11069" cx="297.25" fill-opacity=".26667" cy="74" r="17.5" fill="#00f"/>

+  </g>

+  <g fill-rule="evenodd" fill="#fff">

+   <rect id="rect11705" fill-opacity=".13333" rx="10" ry="10" height="25" width="50" y="34" x="358.5"/>

+   <rect id="rect11707" fill-opacity=".13333" rx="5" ry="5" height="15" width="220" y="1526" x="273.5"/>

+   <path id="path11722" d="m83.5 38c-27.7 0-50 22.3-50 50v1360c0 16.62 13.38 30 30 30h640c16.62 0 30-13.38 30-30v-1360c0-27.7-22.3-50-50-50h-90-50c-19.39 0-35 15.61-35 35v4c0 24.93-20.07 45-45 45h-160c-24.93 0-45-20.07-45-45v-4c0-19.39-15.61-35-35-35h-70z" fill-opacity=".86667"/>

+  </g>

+ </g>

+</svg>

diff --git a/third_party/blink/renderer/devtools/front_end/Images/src/audits_logo.svg b/third_party/blink/renderer/devtools/front_end/Images/src/audits_logo.svg
new file mode 100644
index 0000000..bd2e7d09
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/src/audits_logo.svg
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="Layer_1"
+   data-name="Layer 1"
+   viewBox="0 0 750 750"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="PWA_Illustration_Lighthouse_05_Lighthouse.svg"
+   inkscape:export-filename="/Users/ericbidelman/Desktop/lh_logo_icon.png"
+   inkscape:export-xdpi="180"
+   inkscape:export-ydpi="180"
+   width="750"
+   height="750">
+  <metadata
+     id="metadata85">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>PWA_Illustration_Lighthouse</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1143"
+     inkscape:window-height="714"
+     id="namedview83"
+     showgrid="false"
+     borderlayer="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="50"
+     fit-margin-bottom="0"
+     inkscape:zoom="0.49370068"
+     inkscape:cx="330.80744"
+     inkscape:cy="423.36785"
+     inkscape:window-x="44"
+     inkscape:window-y="42"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="layer6" />
+  <defs
+     id="defs3">
+    <style
+       id="style5">.cls-1,.cls-10{fill:#304ffe;}.cls-2{fill:#ffe082;}.cls-10,.cls-2{opacity:0.5;}.cls-3{fill:#2979ff;}.cls-4{fill:#ffd54f;}.cls-5{fill:#fff176;}.cls-6{fill:#f4511e;}.cls-7{fill:#e64a19;}.cls-8{fill:#c5cae9;}.cls-9{fill:#ff7043;}.cls-11{fill:#fdd835;}.cls-12{fill:#fff9c4;}.cls-13{fill:#448aff;}.cls-14{fill:#00c853;}.cls-15{fill:#64dd17;}</style>
+  </defs>
+  <title
+     id="title7">PWA_Illustration_Lighthouse</title>
+  <path
+     class="cls-1"
+     d="m 92.427653,571.02434 c 52.319997,0 52.319997,-33.94 104.639997,-33.94 52.32,0 52.31,33.94 104.63,33.94 52.32,0 52.32,-33.94 104.63,-33.94 52.31,0 52.32,33.94 104.64,33.94 52.32,0 52.32,-33.94 104.64,-33.94 49.48,0 52.17,30.34 96.56,33.64 a 326.73,326.73 0 0 0 8.09,-72.39 c 0,-179.87 -145.82,-325.69 -325.69,-325.69 -179.87,0 -325.699998,145.82 -325.699998,325.69 a 326.75,326.75 0 0 0 7.9,71.51 98.88,98.88 0 0 0 15.660001,1.18 z"
+     id="path9"
+     inkscape:connector-curvature="0"
+     style="fill:#304ffe" />
+  <path
+     class="cls-3"
+     d="M 345.99765,377.16434"
+     id="path13"
+     inkscape:connector-curvature="0"
+     style="fill:#2979ff" />
+  <rect
+     class="cls-4"
+     x="362.97766"
+     y="213.56435"
+     width="84.839996"
+     height="78.489998"
+     id="rect15"
+     style="fill:#ffd54f" />
+  <rect
+     class="cls-5"
+     x="362.97766"
+     y="213.56435"
+     width="29.950001"
+     height="78.489998"
+     id="rect17"
+     style="fill:#fff176" />
+  <ellipse
+     class="cls-5"
+     cx="392.29767"
+     cy="233.21434"
+     rx="19.84"
+     ry="24.889999"
+     id="ellipse19"
+     style="fill:#fff176" />
+  <path
+     class="cls-6"
+     d="m 360.89765,204.70434 a 43.835,43.835 0 1 1 87.67,0"
+     id="path21"
+     inkscape:connector-curvature="0"
+     style="fill:#f4511e" />
+  <path
+     class="cls-7"
+     d="m 405.10765,160.87434 a 43.51,43.51 0 0 1 43.46,43.83 l -43.46,0 0,-43.83 z"
+     id="path23"
+     inkscape:connector-curvature="0"
+     style="fill:#e64a19" />
+  <rect
+     class="cls-6"
+     x="352.41766"
+     y="203.29433"
+     width="104.64"
+     height="11.31"
+     rx="5.6599998"
+     ry="5.6599998"
+     id="rect25"
+     style="fill:#f4511e" />
+  <polygon
+     class="cls-8"
+     points="393,416 405.23,173.5 490.07,173.5 501,404 501,404 "
+     id="polygon27"
+     style="fill:#c5cae9"
+     transform="translate(-42.202351,118.02434)" />
+  <line
+     class="cls-9"
+     x1="449.03766"
+     y1="310.25433"
+     x2="452.29767"
+     y2="374.42432"
+     id="line29"
+     style="fill:#ff7043" />
+  <polygon
+     class="cls-9"
+     points="402.05,233.8 398.63,301.09 494.5,256.4 491.24,192.23 491.24,192.23 "
+     id="polygon31"
+     style="fill:#ff7043"
+     transform="translate(-42.202351,118.02434)" />
+  <line
+     class="cls-9"
+     x1="455.51767"
+     y1="437.66437"
+     x2="458.78766"
+     y2="501.8443"
+     id="line33"
+     style="fill:#ff7043" />
+  <polygon
+     class="cls-9"
+     points="395.25,367.4 391.83,434.7 500.99,383.82 497.72,319.64 497.72,319.64 "
+     id="polygon35"
+     style="fill:#ff7043"
+     transform="translate(-42.202351,118.02434)" />
+  <rect
+     class="cls-7"
+     x="349.98767"
+     y="255.90434"
+     width="109.49"
+     height="35.82"
+     id="rect39"
+     style="fill:#e64a19" />
+  <rect
+     class="cls-6"
+     x="349.98767"
+     y="255.90434"
+     width="71.779999"
+     height="35.82"
+     id="rect41"
+     style="fill:#f4511e" />
+  <path
+     class="cls-2"
+     d="m 403.97765,255.90434 c 0,13 -12.1,23.5 -27,23.5 -14.9,0 -27,-10.52 -27,-23.5"
+     id="path43"
+     inkscape:connector-curvature="0"
+     style="opacity:0.5;fill:#ffe082" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer1"
+     inkscape:label="clouds"
+     style="display:inline"
+     transform="translate(-111.06999,296.26999)">
+    <path
+       style="fill:#2979ff"
+       class="cls-3"
+       d="m 653.72764,-50.455653 a 19.59,19.59 0 0 1 8.32,1.84 34.49,34.49 0 0 1 66.7,-9 l 0.12,0 a 23.25,23.25 0 0 1 0,46.5 l -75.14,0 a 19.67,19.67 0 1 1 0,-39.34 z"
+       id="path71"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#448aff"
+       class="cls-13"
+       d="m 430.72764,137.02435 a 16.6,16.6 0 0 1 7,1.56 29.23,29.23 0 0 1 56.53,-7.63 l 0.1,0 a 19.71,19.71 0 1 1 0,39.41 l -63.63,0 a 16.67,16.67 0 1 1 0,-33.34 z"
+       id="path77"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="stars"
+     style="display:inline"
+     transform="translate(-111.06999,296.26999)">
+    <circle
+       style="fill:#fdd835"
+       class="cls-11"
+       cx="593.86761"
+       cy="-88.77565"
+       r="3.53"
+       id="circle45" />
+    <circle
+       style="fill:#fff9c4"
+       class="cls-12"
+       cx="624.86761"
+       cy="109.62434"
+       r="6.1300001"
+       id="circle47" />
+    <circle
+       style="fill:#fff9c4"
+       class="cls-12"
+       cx="253.46765"
+       cy="53.594345"
+       r="6.1300001"
+       id="circle49" />
+    <circle
+       style="fill:#fff9c4"
+       class="cls-12"
+       cx="353.41763"
+       cy="160.21434"
+       r="6.1300001"
+       id="circle51" />
+    <circle
+       style="fill:#fff9c4"
+       class="cls-12"
+       cx="598.4776"
+       cy="11.644347"
+       r="6.1300001"
+       id="circle53" />
+    <circle
+       style="fill:#fff9c4"
+       class="cls-12"
+       cx="727.62762"
+       cy="169.54436"
+       r="6.1300001"
+       id="circle55" />
+    <circle
+       style="fill:#fdd835"
+       class="cls-11"
+       cx="240.26764"
+       cy="192.40434"
+       r="3.53"
+       id="circle57" />
+    <circle
+       style="fill:#fdd835"
+       class="cls-11"
+       cx="272.82764"
+       cy="121.09435"
+       r="3.53"
+       id="circle59" />
+    <circle
+       style="fill:#fdd835"
+       class="cls-11"
+       cx="294.73764"
+       cy="102.71434"
+       r="3.53"
+       id="circle61" />
+    <circle
+       style="fill:#fdd835"
+       class="cls-11"
+       cx="387.34766"
+       cy="20.004347"
+       r="3.53"
+       id="circle63" />
+    <circle
+       style="fill:#fdd835"
+       class="cls-11"
+       cx="679.86761"
+       cy="30.224348"
+       r="3.53"
+       id="circle65" />
+    <circle
+       style="fill:#fdd835"
+       class="cls-11"
+       cx="818.5976"
+       cy="177.65434"
+       r="3.53"
+       id="circle67" />
+    <circle
+       style="fill:#fdd835"
+       class="cls-11"
+       cx="328.67764"
+       cy="9.3943472"
+       r="3.53"
+       id="circle69" />
+    <circle
+       style="fill:#fdd835"
+       class="cls-11"
+       cx="640.89764"
+       cy="179.20436"
+       r="3.53"
+       id="circle73" />
+    <circle
+       style="fill:#fdd835"
+       class="cls-11"
+       cx="747.86761"
+       cy="90.754349"
+       r="3.53"
+       id="circle75" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="light"
+     style="display:inline"
+     transform="translate(-111.06999,296.26999)">
+    <path
+       style="opacity:0.5;fill:#ffe082"
+       class="cls-2"
+       d="m 475.48764,-83.895653 -334.62,-47.789997 a 3.65,3.65 0 0 0 -1,-0.14 c -8.67,0 -16,31.889997 -16,71.149997 0,39.26 7.33,71.07 16,71.07 a 3.66,3.66 0 0 0 0.93,-0.13 l 334.64,-47.88 0,-46.28 z"
+       id="path11"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="shade"
+     style="display:inline">
+    <polygon
+       class="cls-10"
+       points="493.27,173.5 450.37,173.5 450.37,393 502,416 493.27,173.5 "
+       id="polygon37"
+       style="opacity:0.5;fill:#304ffe"
+       transform="translate(-42.202351,118.02434)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="GRASS"
+     transform="translate(-111.06999,296.26999)"
+     style="display:inline">
+    <path
+       style="fill:#00c853"
+       class="cls-14"
+       d="m 413.76764,275.48435 c 52.32,0 52.32,-33.94 104.63,-33.94 52.31,0 52.32,33.94 104.63,33.94 44.42,0 51.13,-24.46 84.16,-31.84 -45.13,-24.66 -112.53,-40.33 -187.84,-40.33 -75.63,0 -143.28,15.79 -188.41,40.64 31.93,7.73 39.02,31.53 82.83,31.53 z"
+       id="path79"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#64dd17"
+       class="cls-15"
+       d="m 413.86764,275.01435 c 52.32,0 52.32,-33.94 104.63,-33.94 l 1.1,0 -0.58,-37.32 c -74.89,0 -142,15.49 -187.08,39.91 31.16,7.98 38.55,31.35 81.93,31.35 z"
+       id="path81"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/third_party/blink/renderer/devtools/front_end/Images/src/optimize_png.hashes b/third_party/blink/renderer/devtools/front_end/Images/src/optimize_svg.hashes
similarity index 69%
rename from third_party/blink/renderer/devtools/front_end/Images/src/optimize_png.hashes
rename to third_party/blink/renderer/devtools/front_end/Images/src/optimize_svg.hashes
index 83ab1497..b211ce4 100644
--- a/third_party/blink/renderer/devtools/front_end/Images/src/optimize_png.hashes
+++ b/third_party/blink/renderer/devtools/front_end/Images/src/optimize_svg.hashes
@@ -1,6 +1,6 @@
 {
     "securityIcons.svg": "27676f7c1f1542659c7c49a8052259dc",
-    "largeIcons.svg": "faf26930e93e7525a3cbcc595527662c",
+    "accelerometer-back.svg": "342973eb940ef43b409b28c2c6b0d520",
     "breakpointConditional.svg": "4cf90210b2af2ed84db2f60b07bcde28",
     "checkboxCheckmark.svg": "f039bf85cee42ad5c30ca3bfdce7912a",
     "errorWave.svg": "e183fa242a22ed4784a92f6becbc2c45",
@@ -8,5 +8,8 @@
     "mediumIcons.svg": "e2878b1c2a8e27c52d146c8942a153cb",
     "breakpoint.svg": "69cd92d807259c022791112809b97799",
     "treeoutlineTriangles.svg": "2d26ab85d919f83d5021f2f385dffd0b",
-    "chevrons.svg": "79b4b527771e30b6388ce664077b3409"
+    "largeIcons.svg": "faf26930e93e7525a3cbcc595527662c",
+    "chevrons.svg": "79b4b527771e30b6388ce664077b3409",
+    "audits_logo.svg": "3a4893bd2ef5bb233e924f15e51af69a",
+    "accelerometer-front.svg": "536ad784f667f32b2f3a94b6cce9e217"
 }
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/src/svg2png.hashes b/third_party/blink/renderer/devtools/front_end/Images/src/svg2png.hashes
deleted file mode 100644
index 83ab1497..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/src/svg2png.hashes
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "securityIcons.svg": "27676f7c1f1542659c7c49a8052259dc",
-    "largeIcons.svg": "faf26930e93e7525a3cbcc595527662c",
-    "breakpointConditional.svg": "4cf90210b2af2ed84db2f60b07bcde28",
-    "checkboxCheckmark.svg": "f039bf85cee42ad5c30ca3bfdce7912a",
-    "errorWave.svg": "e183fa242a22ed4784a92f6becbc2c45",
-    "smallIcons.svg": "40aefe4606ebba939725954ff9f908ef",
-    "mediumIcons.svg": "e2878b1c2a8e27c52d146c8942a153cb",
-    "breakpoint.svg": "69cd92d807259c022791112809b97799",
-    "treeoutlineTriangles.svg": "2d26ab85d919f83d5021f2f385dffd0b",
-    "chevrons.svg": "79b4b527771e30b6388ce664077b3409"
-}
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/treeoutlineTriangles.png b/third_party/blink/renderer/devtools/front_end/Images/treeoutlineTriangles.png
deleted file mode 100644
index 3ae162fe..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/treeoutlineTriangles.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/Images/treeoutlineTriangles.svg b/third_party/blink/renderer/devtools/front_end/Images/treeoutlineTriangles.svg
new file mode 100644
index 0000000..3fb963a7
--- /dev/null
+++ b/third_party/blink/renderer/devtools/front_end/Images/treeoutlineTriangles.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="24"><path d="M7.5 6L2 2.25v7.5M20.5 9.5L24.25 4h-7.5"/></svg>
\ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/Images/treeoutlineTriangles_2x.png b/third_party/blink/renderer/devtools/front_end/Images/treeoutlineTriangles_2x.png
deleted file mode 100644
index fc7e0ac..0000000
--- a/third_party/blink/renderer/devtools/front_end/Images/treeoutlineTriangles_2x.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/devtools/front_end/accessibility/axBreadcrumbs.css b/third_party/blink/renderer/devtools/front_end/accessibility/axBreadcrumbs.css
index 70c8f49..6fd6b13 100644
--- a/third_party/blink/renderer/devtools/front_end/accessibility/axBreadcrumbs.css
+++ b/third_party/blink/renderer/devtools/front_end/accessibility/axBreadcrumbs.css
@@ -40,7 +40,7 @@
 }
 
 .ax-breadcrumbs .ax-node::before {
-    -webkit-mask-image: url(Images/chevrons.png);
+    -webkit-mask-image: url(Images/chevrons.svg);
     -webkit-mask-position: 0 0;
     -webkit-mask-size: 30px 10px;
     -webkit-mask-repeat: no-repeat;
@@ -54,12 +54,6 @@
     display: inline-block;
 }
 
-@media (-webkit-min-device-pixel-ratio: 1.1) {
-    .ax-breadcrumbs .ax-node::before {
-        -webkit-mask-image: url(Images/chevrons_2x.png);
-    }
-} /* media */
-
 .ax-breadcrumbs .ax-node:not(.parent):not(.children-unloaded)::before {
     background-color: transparent;
 }
diff --git a/third_party/blink/renderer/devtools/front_end/data_grid/dataGrid.css b/third_party/blink/renderer/devtools/front_end/data_grid/dataGrid.css
index 66292df..54dcf83 100644
--- a/third_party/blink/renderer/devtools/front_end/data_grid/dataGrid.css
+++ b/third_party/blink/renderer/devtools/front_end/data_grid/dataGrid.css
@@ -180,7 +180,7 @@
 
 .data-grid td.disclosure::before {
     -webkit-user-select: none;
-    -webkit-mask-image: url(Images/treeoutlineTriangles.png);
+    -webkit-mask-image: url(Images/treeoutlineTriangles.svg);
     -webkit-mask-position: 0 0;
     -webkit-mask-size: 32px 24px;
     float: left;
@@ -197,11 +197,6 @@
     background-color: transparent;
 }
 
-@media (-webkit-min-device-pixel-ratio: 1.1) {
-.data-grid tr.parent td.disclosure::before {
-    -webkit-mask-image: url(Images/treeoutlineTriangles_2x.png);
-}
-} /* media */
 
 .data-grid tr.expanded td.disclosure::before {
     -webkit-mask-position: -16px 0;
diff --git a/third_party/blink/renderer/devtools/front_end/elements/elementsTreeOutline.css b/third_party/blink/renderer/devtools/front_end/elements/elementsTreeOutline.css
index 7291d01..0ea9908 100644
--- a/third_party/blink/renderer/devtools/front_end/elements/elementsTreeOutline.css
+++ b/third_party/blink/renderer/devtools/front_end/elements/elementsTreeOutline.css
@@ -44,7 +44,7 @@
 
 .elements-disclosure li.parent::before {
     -webkit-user-select: none;
-    -webkit-mask-image: url(Images/treeoutlineTriangles.png);
+    -webkit-mask-image: url(Images/treeoutlineTriangles.svg);
     -webkit-mask-size: 32px 24px;
     content: '\00a0\00a0';
     color: transparent;
@@ -56,12 +56,6 @@
     visibility: hidden;
 }
 
-@media (-webkit-min-device-pixel-ratio: 1.1) {
-.elements-disclosure li.parent::before {
-    -webkit-mask-image: url(Images/treeoutlineTriangles_2x.png);
-}
-} /* media */
-
 .elements-disclosure li.parent::before {
     -webkit-mask-position: 0 0;
     background-color: #727272;
diff --git a/third_party/blink/renderer/devtools/front_end/resources/serviceWorkersView.css b/third_party/blink/renderer/devtools/front_end/resources/serviceWorkersView.css
index 544bd027..3168f02e 100644
--- a/third_party/blink/renderer/devtools/front_end/resources/serviceWorkersView.css
+++ b/third_party/blink/renderer/devtools/front_end/resources/serviceWorkersView.css
@@ -141,7 +141,7 @@
 
 .service-worker-filter-label::before {
     -webkit-user-select: none;
-    -webkit-mask-image: url(Images/treeoutlineTriangles.png);
+    -webkit-mask-image: url(Images/treeoutlineTriangles.svg);
     -webkit-mask-size: 32px 24px;
     content: '';
     color: transparent;
@@ -152,12 +152,6 @@
     display: inline-block;
 }
 
-@media (-webkit-min-device-pixel-ratio: 1.1) {
-.service-worker-filter-label::before {
-    -webkit-mask-image: url(Images/treeoutlineTriangles_2x.png);
-}
-} /* media */
-
 .service-worker-filter[aria-checked="true"] .service-worker-filter-label::before {
     -webkit-mask-position: -16px 0;
 }
diff --git a/third_party/blink/renderer/devtools/front_end/security/lockIcon.css b/third_party/blink/renderer/devtools/front_end/security/lockIcon.css
index d58538c..77d2aca 100644
--- a/third_party/blink/renderer/devtools/front_end/security/lockIcon.css
+++ b/third_party/blink/renderer/devtools/front_end/security/lockIcon.css
@@ -8,19 +8,12 @@
     height: 16px;
     width: 16px;
 
-    -webkit-mask-image: url(Images/securityIcons.png);
+    -webkit-mask-image: url(Images/securityIcons.svg);
     -webkit-mask-size: 80px 32px;
 
     background-color: #888;
 }
 
-@media (-webkit-min-device-pixel-ratio: 1.1) {
-    .lock-icon,
-    .security-property {
-        -webkit-mask-image: url(Images/securityIcons_2x.png);
-    }
-}
-
 .lock-icon-secure {
     -webkit-mask-position: 0px 0px;
     background-color: #0B8043;
diff --git a/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css b/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css
index 9fdf386..788959f 100644
--- a/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css
+++ b/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css
@@ -170,7 +170,7 @@
 .cm-breakpoint .CodeMirror-gutter-wrapper .CodeMirror-linenumber, -theme-preserve {
     color: white;
     border-width: 1px 4px 1px 1px !important;
-    -webkit-border-image: url(Images/breakpoint.png) 1 4 1 1;
+    -webkit-border-image: url(Images/breakpoint.svg) 1 4 1 1;
     margin: 0 0 0 3px !important;
     padding-right: 3px;
     padding-left: 1px;
@@ -184,18 +184,9 @@
 }
 
 .cm-breakpoint.cm-breakpoint-conditional .CodeMirror-linenumber {
-    -webkit-border-image: url(Images/breakpointConditional.png) 1 4 1 1;
+    -webkit-border-image: url(Images/breakpointConditional.svg) 1 4 1 1;
 }
 
-@media (-webkit-min-device-pixel-ratio: 1.1) {
-.cm-breakpoint .CodeMirror-gutter-wrapper .CodeMirror-linenumber {
-    -webkit-border-image: url(Images/breakpoint_2x.png) 2 8 2 2;
-}
-.cm-breakpoint.cm-breakpoint-conditional .CodeMirror-linenumber {
-    -webkit-border-image: url(Images/breakpointConditional_2x.png) 2 8 2 2;
-}
-} /* media */
-
 :host-context(.-theme-with-dark-background) .cm-breakpoint:not(.cm-breakpoint-conditional) .CodeMirror-gutter-wrapper .CodeMirror-linenumber,
 .-theme-with-dark-background .cm-breakpoint:not(.cm-breakpoint-conditional) .CodeMirror-gutter-wrapper .CodeMirror-linenumber {
     filter: hue-rotate(-139deg);
@@ -512,17 +503,11 @@
 }
 
 .CodeMirror .text-editor-line-decoration-wave {
-    background-image: url(Images/errorWave.png);
+    background-image: url(Images/errorWave.svg);
     background-repeat: repeat-x;
     background-size: contain;
 }
 
-@media (-webkit-min-device-pixel-ratio: 1.1) {
-.CodeMirror .text-editor-line-decoration-wave {
-    background-image: url(Images/errorWave_2x.png);
-}
-} /* media */
-
 /** @see crbug.com/358161 */
 .CodeMirror .CodeMirror-vscrollbar, .CodeMirror .CodeMirror-hscrollbar {
     transform: translateZ(0);
diff --git a/third_party/blink/renderer/devtools/front_end/ui/checkboxTextLabel.css b/third_party/blink/renderer/devtools/front_end/ui/checkboxTextLabel.css
index f5621442..73c2591 100644
--- a/third_party/blink/renderer/devtools/front_end/ui/checkboxTextLabel.css
+++ b/third_party/blink/renderer/devtools/front_end/ui/checkboxTextLabel.css
@@ -45,7 +45,7 @@
 }
 
 input.dt-checkbox-themed:after {
-    -webkit-mask-image: url(Images/checkboxCheckmark.png);
+    -webkit-mask-image: url(Images/checkboxCheckmark.svg);
     -webkit-mask-size: 11px 11px;
     -webkit-mask-position: 0 0;
 }
@@ -54,13 +54,6 @@
     filter: invert(80%);
 }
 
-@media (-webkit-min-device-pixel-ratio: 1.1) {
-input.dt-checkbox-themed:after {
-    -webkit-mask-image: url(Images/checkboxCheckmark_2x.png);
-}
-
-} /* media */
-
 .dt-checkbox-text {
     margin-left: 3px;
     overflow: hidden;
diff --git a/third_party/blink/renderer/devtools/front_end/ui/inspectorCommon.css b/third_party/blink/renderer/devtools/front_end/ui/inspectorCommon.css
index 038351f..2076594 100644
--- a/third_party/blink/renderer/devtools/front_end/ui/inspectorCommon.css
+++ b/third_party/blink/renderer/devtools/front_end/ui/inspectorCommon.css
@@ -240,7 +240,7 @@
     outline: none;
     padding-right: 20px;
     padding-left: 6px;
-    background-image: -webkit-image-set(url(Images/chromeSelect.png) 1x, url(Images/chromeSelect_2x.png) 2x);
+    background-image: url(Images/chromeSelect.svg);
     background-color: hsl(0, 0%, 98%);
     background-position: right center;
     background-repeat: no-repeat;
@@ -352,27 +352,27 @@
 }
 
 .spritesheet-smallicons:not(.icon-mask) {
-    background-image: -webkit-image-set(url(Images/smallIcons.png) 1x, url(Images/smallIcons_2x.png) 2x);
+    background-image: url(Images/smallIcons.svg);
 }
 
 .spritesheet-smallicons.icon-mask {
-    -webkit-mask-image: -webkit-image-set(url(Images/smallIcons.png) 1x, url(Images/smallIcons_2x.png) 2x);
+    -webkit-mask-image: url(Images/smallIcons.svg);
 }
 
 .spritesheet-largeicons:not(.icon-mask) {
-    background-image: -webkit-image-set(url(Images/largeIcons.png) 1x, url(Images/largeIcons_2x.png) 2x);
+    background-image: url(Images/largeIcons.svg);
 }
 
 .spritesheet-largeicons.icon-mask {
-    -webkit-mask-image: -webkit-image-set(url(Images/largeIcons.png) 1x, url(Images/largeIcons_2x.png) 2x);
+    -webkit-mask-image: url(Images/largeIcons.svg);
 }
 
 .spritesheet-mediumicons:not(.icon-mask) {
-    background-image: -webkit-image-set(url(Images/mediumIcons.png) 1x, url(Images/mediumIcons_2x.png) 2x);
+    background-image: url(Images/mediumIcons.svg);
 }
 
 .spritesheet-mediumicons.icon-mask {
-    -webkit-mask-image: -webkit-image-set(url(Images/mediumIcons.png) 1x, url(Images/mediumIcons_2x.png) 2x);
+    -webkit-mask-image: url(Images/mediumIcons.svg);
 }
 
 .spritesheet-arrowicons {
@@ -380,19 +380,19 @@
 }
 
 :host-context(.force-white-icons) [is=ui-icon].spritesheet-smallicons, .force-white-icons [is=ui-icon].spritesheet-smallicons, [is=ui-icon].force-white-icons.spritesheet-smallicons, -theme-preserve {
-    -webkit-mask-image: -webkit-image-set(url(Images/smallIcons.png) 1x, url(Images/smallIcons_2x.png) 2x);
+    -webkit-mask-image: url(Images/smallIcons.svg);
     -webkit-mask-position: var(--spritesheet-position);
     background: #fafafa !important;
 }
 
 :host-context(.force-white-icons) [is=ui-icon].spritesheet-largeicons, .force-white-icons [is=ui-icon].spritesheet-largeicons, [is=ui-icon].force-white-icons.spritesheet-largeicons, -theme-preserve {
-    -webkit-mask-image: -webkit-image-set(url(Images/largeIcons.png) 1x, url(Images/largeIcons_2x.png) 2x);
+    -webkit-mask-image: url(Images/largeIcons.svg);
     -webkit-mask-position: var(--spritesheet-position);
     background: #fafafa !important;
 }
 
 :host-context(.force-white-icons) [is=ui-icon].spritesheet-mediumicon, .force-white-icons [is=ui-icon].spritesheet-mediumicons, [is=ui-icon].force-white-icons.spritesheet-mediumicons, -theme-preserve {
-    -webkit-mask-image: -webkit-image-set(url(Images/mediumIcons.png) 1x, url(Images/mediumIcons_2x.png) 2x);
+    -webkit-mask-image: url(Images/mediumIcons.svg);
     -webkit-mask-position: var(--spritesheet-position);
     background: #fafafa !important;
 }
diff --git a/third_party/blink/renderer/devtools/front_end/ui/treeoutline.css b/third_party/blink/renderer/devtools/front_end/ui/treeoutline.css
index baae378..b1676d9 100644
--- a/third_party/blink/renderer/devtools/front_end/ui/treeoutline.css
+++ b/third_party/blink/renderer/devtools/front_end/ui/treeoutline.css
@@ -105,7 +105,7 @@
 
 .tree-outline li::before {
     -webkit-user-select: none;
-    -webkit-mask-image: url(Images/treeoutlineTriangles.png);
+    -webkit-mask-image: url(Images/treeoutlineTriangles.svg);
     -webkit-mask-size: 32px 24px;
     content: "\00a0\00a0";
     text-shadow: none;
@@ -118,12 +118,6 @@
     background-color: transparent;
 }
 
-@media (-webkit-min-device-pixel-ratio: 1.1) {
-.tree-outline li::before {
-    -webkit-mask-image: url(Images/treeoutlineTriangles_2x.png);
-}
-} /* media */
-
 .tree-outline li::before {
     -webkit-mask-position: 0 0;
     background-color: #727272;
diff --git a/third_party/blink/renderer/devtools/front_end/ui/treeoutline.js b/third_party/blink/renderer/devtools/front_end/ui/treeoutline.js
index 2a722ffd..5b95a5d8 100644
--- a/third_party/blink/renderer/devtools/front_end/ui/treeoutline.js
+++ b/third_party/blink/renderer/devtools/front_end/ui/treeoutline.js
@@ -1282,9 +1282,6 @@
 
 (function() {
 const img = new Image();
-if (window.devicePixelRatio > 1)
-  img.src = 'Images/treeoutlineTriangles_2x.png';
-else
-  img.src = 'Images/treeoutlineTriangles.png';
+img.src = 'Images/treeoutlineTriangles.svg';
 UI.TreeElement._imagePreload = img;
 })();
diff --git a/third_party/blink/renderer/devtools/package.json b/third_party/blink/renderer/devtools/package.json
index 2c03d53e..feea3f1a 100644
--- a/third_party/blink/renderer/devtools/package.json
+++ b/third_party/blink/renderer/devtools/package.json
@@ -16,7 +16,8 @@
     "check-json": "node scripts/json_validator/validate_module_json.js",
     "check-loc": "node scripts/check_localizability.js -a",
     "check-grdp": "node scripts/check_localizable_resources.js",
-    "generate-jsconfig": "node scripts/generate_jsconfig.js"
+    "generate-jsconfig": "node scripts/generate_jsconfig.js",
+    "optimize-svg-images": "python scripts/optimize_svg_images.py"
   },
   "repository": {
     "type": "git",
diff --git a/third_party/blink/renderer/devtools/scripts/README.md b/third_party/blink/renderer/devtools/scripts/README.md
index 0a89e466..e7ac952 100644
--- a/third_party/blink/renderer/devtools/scripts/README.md
+++ b/third_party/blink/renderer/devtools/scripts/README.md
@@ -19,11 +19,10 @@
 - local_node - installs a local runtime of node.js
 
 ### Python Scripts
-- convert_svg_images_to_png.py - manually run when adding svg images
 - compile_frontend.py - runs closure compiler to do static type analysis
     - Note: the compiled outputs are not actually used to run DevTools
 - lint_javascript.py - run eslint
-- optimize_png_images.py - manually run when adding png images
+- optimize_svg_images.py - manually run when changing svg images
 
 ### Node.js scripts
 
diff --git a/third_party/blink/renderer/devtools/scripts/convert_svg_images_to_png.py b/third_party/blink/renderer/devtools/scripts/convert_svg_images_to_png.py
deleted file mode 100755
index 2f0a0a49..0000000
--- a/third_party/blink/renderer/devtools/scripts/convert_svg_images_to_png.py
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2014 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.
-
-import os.path
-import re
-import subprocess
-import sys
-
-from build import devtools_file_hashes
-
-try:
-    import json
-except ImportError:
-    import simplejson as json
-
-
-def check_installed(app_name):
-    proc = subprocess.Popen("which %s" % app_name, stdout=subprocess.PIPE, shell=True)
-    proc.communicate()
-    if proc.returncode != 0:
-        print "This script needs \"%s\" to be installed." % app_name
-        sys.exit(1)
-
-
-check_installed("inkscape")
-
-scripts_path = os.path.dirname(os.path.abspath(__file__))
-devtools_path = os.path.dirname(scripts_path)
-devtools_frontend_path = devtools_path + "/front_end"
-images_path = devtools_frontend_path + "/Images"
-image_sources_path = images_path + "/src"
-hashes_file_name = "svg2png.hashes"
-hashes_file_path = image_sources_path + "/" + hashes_file_name
-
-file_names = os.listdir(image_sources_path)
-svg_file_paths = [image_sources_path + "/" + file_name for file_name in file_names if file_name.endswith(".svg")]
-
-svg_file_paths_to_convert = devtools_file_hashes.files_with_invalid_hashes(hashes_file_path, svg_file_paths)
-svg_file_names = [re.sub(".svg$", "", re.sub(".*/", "", file_path)) for file_path in svg_file_paths_to_convert]
-
-
-def convert_svg_to_png(svg_file_name, png_file_name, dpi):
-    svg_full_path = image_sources_path + "/" + svg_file_name + ".svg"
-    png_full_path = images_path + "/" + png_file_name + ".png"
-    convert_command = "inkscape -f %s -e %s -d %s" % (svg_full_path, png_full_path, dpi)
-    proc = subprocess.Popen(convert_command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
-    return proc
-
-
-processes = {}
-for file_name in svg_file_names:
-    name = re.sub(".svg$", "", file_name)
-    name2x = name + "_2x"
-    processes[name] = convert_svg_to_png(name, name, 96)
-    processes[name2x] = convert_svg_to_png(name, name2x, 192)
-
-for file_name, proc in processes.items():
-    (convert_out, _) = proc.communicate()
-    print("Conversion of %s finished: %s" % (file_name, convert_out))
-
-devtools_file_hashes.update_file_hashes(hashes_file_path, svg_file_paths)
diff --git a/third_party/blink/renderer/devtools/scripts/optimize_png_images.py b/third_party/blink/renderer/devtools/scripts/optimize_svg_images.py
similarity index 75%
rename from third_party/blink/renderer/devtools/scripts/optimize_png_images.py
rename to third_party/blink/renderer/devtools/scripts/optimize_svg_images.py
index d2b73e6..32cfbaba 100755
--- a/third_party/blink/renderer/devtools/scripts/optimize_png_images.py
+++ b/third_party/blink/renderer/devtools/scripts/optimize_svg_images.py
@@ -47,13 +47,13 @@
 devtools_frontend_path = os.path.join(devtools_path, "front_end")
 images_path = os.path.join(devtools_frontend_path, "Images")
 image_sources_path = os.path.join(images_path, "src")
-hashes_file_name = "optimize_png.hashes"
-hashes_file_path = os.path.join(image_sources_path, hashes_file_name)
+HASHES_FILE_NAME = "optimize_svg.hashes"
+HASHES_FILE_PATH = os.path.join(image_sources_path, HASHES_FILE_NAME)
 
 file_names = os.listdir(image_sources_path)
 svg_file_paths = [os.path.join(image_sources_path, file_name) for file_name in file_names if file_name.endswith(".svg")]
-svg_file_paths_to_optimize = devtools_file_hashes.files_with_invalid_hashes(hashes_file_path, svg_file_paths)
-svg_file_names = [os.path.basename(file_path) for file_path in svg_file_paths_to_optimize]
+SVG_FILE_PATHS_TO_OPTIMIZE = devtools_file_hashes.files_with_invalid_hashes(HASHES_FILE_PATH, svg_file_paths)
+SVG_FILE_NAMES = [os.path.basename(file_path) for file_path in SVG_FILE_PATHS_TO_OPTIMIZE]
 
 
 def check_installed(app_name):
@@ -61,35 +61,32 @@
     proc.communicate()
     if proc.returncode != 0:
         print "This script needs \"%s\" to be installed." % app_name
-        print "Run sudo gem install image_optim image_optim_pack"
         sys.exit(1)
 
 
-check_installed("image_optim")
+check_installed("npx")
 
 
-def optimize_png(file_name):
-    png_full_path = os.path.join(images_path, file_name + ".png")
-    optimize_command = "image_optim %s" % png_full_path
+def optimize_svg(svg_input_path):
+    svg_output_path = os.path.join(images_path, os.path.basename(svg_input_path))
+    optimize_command = "npx svgo -i %s -o %s" % (svg_input_path, svg_output_path)
     proc = subprocess.Popen(optimize_command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True, cwd=chromium_src_path)
     return proc
 
 
-if len(svg_file_names):
-    print "%d unoptimized png files found." % len(svg_file_names)
+if len(SVG_FILE_NAMES):
+    print "%d unoptimized svg files found." % len(SVG_FILE_NAMES)
 else:
-    print "All png files are already optimized."
+    print "All svg files are already optimized."
     sys.exit()
 
 processes = {}
-for file_name in svg_file_names:
-    name = os.path.splitext(file_name)[0]
-    name2x = name + "_2x"
-    processes[name] = optimize_png(name)
-    processes[name2x] = optimize_png(name2x)
+for svg_file_path in SVG_FILE_PATHS_TO_OPTIMIZE:
+    name = os.path.splitext(os.path.basename(svg_file_path))[0]
+    processes[name] = optimize_svg(svg_file_path)
 
 for file_name, proc in processes.items():
     (optimize_out, _) = proc.communicate()
     print("Optimization of %s finished: %s" % (file_name, optimize_out))
 
-devtools_file_hashes.update_file_hashes(hashes_file_path, svg_file_paths)
+devtools_file_hashes.update_file_hashes(HASHES_FILE_PATH, svg_file_paths)
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc
index 58d45cbf..bbb8341 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc
@@ -75,18 +75,14 @@
   overflow_label_element_->setTabIndex(0);
   button->setTabIndex(-1);
 
-  if (MediaControlsImpl::IsModern()) {
-    overflow_menu_container_ =
-        MakeGarbageCollected<HTMLDivElement>(GetDocument());
-    overflow_menu_container_->ParserAppendChild(overflow_menu_text_);
-    overflow_menu_container_->setAttribute(html_names::kAriaHiddenAttr, "true");
-    aria_label_ = button->getAttribute(html_names::kAriaLabelAttr) + " " +
-                  button->GetOverflowMenuString();
-    UpdateOverflowSubtitleElement(button->GetOverflowMenuSubtitleString());
-    overflow_label_element_->ParserAppendChild(overflow_menu_container_);
-  } else {
-    overflow_label_element_->ParserAppendChild(overflow_menu_text_);
-  }
+  overflow_menu_container_ =
+      MakeGarbageCollected<HTMLDivElement>(GetDocument());
+  overflow_menu_container_->ParserAppendChild(overflow_menu_text_);
+  overflow_menu_container_->setAttribute(html_names::kAriaHiddenAttr, "true");
+  aria_label_ = button->getAttribute(html_names::kAriaLabelAttr) + " " +
+                button->GetOverflowMenuString();
+  UpdateOverflowSubtitleElement(button->GetOverflowMenuSubtitleString());
+  overflow_label_element_->ParserAppendChild(overflow_menu_container_);
 
   // Initialize the internal states of the main element and the overflow one.
   button->is_overflow_element_ = true;
@@ -180,8 +176,7 @@
   overflow_menu_text_->setInnerText(GetOverflowMenuString(),
                                     ASSERT_NO_EXCEPTION);
 
-  if (MediaControlsImpl::IsModern())
-    UpdateOverflowSubtitleElement(GetOverflowMenuSubtitleString());
+  UpdateOverflowSubtitleElement(GetOverflowMenuSubtitleString());
 }
 
 MediaControlInputElement::MediaControlInputElement(
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.cc
index 1251590..c10ade7 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.cc
@@ -82,10 +82,6 @@
   }
 }
 
-Element* MediaControlOverflowMenuListElement::PopupAnchor() const {
-  return &GetMediaControls().OverflowButton();
-}
-
 void MediaControlOverflowMenuListElement::OnItemSelected() {
   MaybeRecordTimeTaken(kTimeToAction);
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h
index 3a8d38d..00d5d89 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h
@@ -26,7 +26,6 @@
 
   // Override MediaControlPopupMenuElement
   void SetIsWanted(bool) final;
-  Element* PopupAnchor() const final;
   void OnItemSelected() final;
 
  private:
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 9bd1eee..ff97651a 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
@@ -33,7 +33,6 @@
 // MediaControlOverlayPlayButtonElement
 //   (-webkit-media-controls-overlay-play-button)
 // +-div (-internal-media-controls-overlay-play-button-internal)
-//   {if MediaControlsImpl::IsModern}
 //   This contains the inner circle with the actual play/pause icon.
 MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement(
     MediaControlsImpl& media_controls)
@@ -42,23 +41,19 @@
   setType(input_type_names::kButton);
   SetShadowPseudoId(AtomicString("-webkit-media-controls-overlay-play-button"));
 
-  if (MediaControlsImpl::IsModern()) {
-    internal_button_ = MediaControlElementsHelper::CreateDiv(
-        "-internal-media-controls-overlay-play-button-internal",
-        GetShadowRoot());
-  }
+  internal_button_ = MediaControlElementsHelper::CreateDiv(
+      "-internal-media-controls-overlay-play-button-internal", GetShadowRoot());
 }
 
 void MediaControlOverlayPlayButtonElement::UpdateDisplayType() {
-  SetIsWanted(MediaElement().ShouldShowControls() &&
-              (MediaControlsImpl::IsModern() || MediaElement().paused()));
-  if (MediaControlsImpl::IsModern()) {
-    WebLocalizedString::Name state =
-        MediaElement().paused() ? WebLocalizedString::kAXMediaPlayButton
-                                : WebLocalizedString::kAXMediaPauseButton;
-    setAttribute(html_names::kAriaLabelAttr,
-                 WTF::AtomicString(GetLocale().QueryString(state)));
-  }
+  SetIsWanted(MediaElement().ShouldShowControls());
+
+  WebLocalizedString::Name state =
+      MediaElement().paused() ? WebLocalizedString::kAXMediaPlayButton
+                              : WebLocalizedString::kAXMediaPauseButton;
+  setAttribute(html_names::kAriaLabelAttr,
+               WTF::AtomicString(GetLocale().QueryString(state)));
+
   MediaControlInputElement::UpdateDisplayType();
 }
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc
index a6b4645e..7c760e4 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc
@@ -113,20 +113,8 @@
     event_listener_->Detach();
 }
 
-void MediaControlPanelElement::DefaultEventHandler(Event& event) {
-  // Suppress the media element activation behavior (toggle play/pause) when
-  // any part of the control panel is clicked.
-  if (event.type() == event_type_names::kClick &&
-      !MediaControlsImpl::IsModern()) {
-    event.SetDefaultHandled();
-    return;
-  }
-  HTMLDivElement::DefaultEventHandler(event);
-}
-
 bool MediaControlPanelElement::KeepEventInNode(const Event& event) const {
-  return (!MediaControlsImpl::IsModern() ||
-          GetMediaControls().ShouldShowAudioControls()) &&
+  return GetMediaControls().ShouldShowAudioControls() &&
          MediaControlElementsHelper::IsUserInteractionEvent(event);
 }
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.h
index a010ba1..e0db53f 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.h
@@ -44,7 +44,6 @@
   void EnsureTransitionEventListener();
   void DetachTransitionEventListener();
 
-  void DefaultEventHandler(Event&) override;
   bool KeepEventInNode(const Event&) const override;
 
   void DidBecomeVisible();
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.cc
index 725b40c..d030880 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.cc
@@ -155,8 +155,7 @@
 }
 
 bool MediaControlPopupMenuElement::KeepEventInNode(const Event& event) const {
-  return MediaControlsImpl::IsModern() &&
-         MediaControlElementsHelper::IsUserInteractionEvent(event);
+  return MediaControlElementsHelper::IsUserInteractionEvent(event);
 }
 
 void MediaControlPopupMenuElement::RemovedFrom(ContainerNode& container) {
@@ -185,8 +184,7 @@
   static const char kImportant[] = "important";
   static const char kPx[] = "px";
 
-  DOMRect* bounding_client_rect =
-      EffectivePopupAnchor()->getBoundingClientRect();
+  DOMRect* bounding_client_rect = PopupAnchor()->getBoundingClientRect();
   LocalDOMWindow* dom_window = GetDocument().domWindow();
 
   DCHECK(bounding_client_rect);
@@ -207,9 +205,8 @@
                        ASSERT_NO_EXCEPTION);
 }
 
-Element* MediaControlPopupMenuElement::EffectivePopupAnchor() const {
-  return MediaControlsImpl::IsModern() ? &GetMediaControls().OverflowButton()
-                                       : PopupAnchor();
+Element* MediaControlPopupMenuElement::PopupAnchor() const {
+  return &GetMediaControls().OverflowButton();
 }
 
 void MediaControlPopupMenuElement::HideIfNotFocused() {
@@ -277,7 +274,7 @@
 
 void MediaControlPopupMenuElement::CloseFromKeyboard() {
   SetIsWanted(false);
-  EffectivePopupAnchor()->focus();
+  PopupAnchor()->focus();
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.h
index 126b011..b70b368 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.h
@@ -17,10 +17,6 @@
 
   void SetIsWanted(bool) override;
 
-  // Only use when !IsModern to get the element that should be used an as anchor
-  // for the popup.
-  virtual Element* PopupAnchor() const = 0;
-
   // Callback run when an item is selected from the popup menu.
   virtual void OnItemSelected();
 
@@ -46,7 +42,7 @@
  private:
   class EventListener;
 
-  Element* EffectivePopupAnchor() const;
+  Element* PopupAnchor() const;
 
   void HideIfNotFocused();
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.cc
index a2f963a..acd1b6f 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.cc
@@ -146,9 +146,7 @@
 }
 
 int MediaControlSliderElement::TrackWidth() {
-  LayoutBoxModelObject* box = MediaControlsImpl::IsModern()
-                                  ? GetTrackElement().GetLayoutBoxModelObject()
-                                  : GetLayoutBoxModelObject();
+  LayoutBoxModelObject* box = GetTrackElement().GetLayoutBoxModelObject();
   return box ? box->OffsetWidth().Round() : 0;
 }
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.cc
index 26e1982..c0228aa 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.cc
@@ -75,10 +75,6 @@
   MediaControlPopupMenuElement::SetIsWanted(wanted);
 }
 
-Element* MediaControlTextTrackListElement::PopupAnchor() const {
-  return &GetMediaControls().ToggleClosedCaptions();
-}
-
 void MediaControlTextTrackListElement::DefaultEventHandler(Event& event) {
   if (event.type() == event_type_names::kClick) {
     // This handles the back button click. Clicking on a menu item triggers the
@@ -144,11 +140,6 @@
   track_item->setTabIndex(0);
   track_item_input->setTabIndex(-1);
 
-  // Modern media controls should have the checkbox after the text instead of
-  // the other way around.
-  if (!MediaControlsImpl::IsModern())
-    track_item->ParserAppendChild(track_item_input);
-
   // Set track label into an aria-hidden span so that aria will not repeat the
   // contents twice.
   String track_label =
@@ -159,8 +150,7 @@
   track_item->setAttribute(html_names::kAriaLabelAttr,
                            WTF::AtomicString(track_label));
   track_item->ParserAppendChild(track_label_span);
-  if (MediaControlsImpl::IsModern())
-    track_item->ParserAppendChild(track_item_input);
+  track_item->ParserAppendChild(track_item_input);
 
   // Add a track kind marker icon if there are multiple tracks with the same
   // label or if the track has no label.
@@ -206,8 +196,7 @@
   EventDispatchForbiddenScope::AllowUserAgentEvents allow_events;
   RemoveChildren(kOmitSubtreeModifiedEvent);
 
-  if (MediaControlsImpl::IsModern())
-    ParserAppendChild(CreateTextTrackHeaderItem());
+  ParserAppendChild(CreateTextTrackHeaderItem());
 
   TextTrackList* track_list = MediaElement().textTracks();
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.h
index 1c9b7ae..49b7e7e 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.h
@@ -22,7 +22,6 @@
   bool WillRespondToMouseClickEvents() override;
 
   void SetIsWanted(bool) final;
-  Element* PopupAnchor() const final;
 
  private:
   void DefaultEventHandler(Event&) override;
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
index d092ce5..009191a 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
@@ -64,19 +64,17 @@
     : MediaControlSliderElement(media_controls) {
   SetShadowPseudoId(AtomicString("-webkit-media-controls-timeline"));
 
-  if (MediaControlsImpl::IsModern()) {
-    Element& track = GetTrackElement();
+  Element& track = GetTrackElement();
 
-    // TODO(851144): This stylesheet no longer contains animations, so should
-    // be re-combined with the UA sheet.
-    // This stylesheet element contains rules that cannot be present in the UA
-    // stylesheet (e.g. animations).
-    auto* style = MakeGarbageCollected<HTMLStyleElement>(GetDocument(),
-                                                         CreateElementFlags());
-    style->setTextContent(
-        MediaControlsResourceLoader::GetShadowTimelineStyleSheet());
-    track.ParserAppendChild(style);
-  }
+  // TODO(851144): This stylesheet no longer contains animations, so should
+  // be re-combined with the UA sheet.
+  // This stylesheet element contains rules that cannot be present in the UA
+  // stylesheet (e.g. animations).
+  auto* style = MakeGarbageCollected<HTMLStyleElement>(GetDocument(),
+                                                       CreateElementFlags());
+  style->setTextContent(
+      MediaControlsResourceLoader::GetShadowTimelineStyleSheet());
+  track.ParserAppendChild(style);
 }
 
 bool MediaControlTimelineElement::WillRespondToMouseClickEvents() {
@@ -229,41 +227,23 @@
   MediaControlSliderElement::Position after_segment(0, 0);
 
   // The before segment (i.e. what has been played) should be purely be based on
-  // the current time in the modern controls.
-  if (MediaControlsImpl::IsModern())
-    before_segment.width = current_position;
+  // the current time.
+  before_segment.width = current_position;
 
   base::Optional<unsigned> current_buffered_time_range =
       MediaControlsSharedHelpers::GetCurrentBufferedTimeRange(MediaElement());
 
   if (current_buffered_time_range) {
-    float start = buffered_time_ranges->start(
-        current_buffered_time_range.value(), ASSERT_NO_EXCEPTION);
     float end = buffered_time_ranges->end(current_buffered_time_range.value(),
                                           ASSERT_NO_EXCEPTION);
 
-    double start_position = start / duration;
     double end_position = end / duration;
 
-    if (MediaControlsImpl::IsModern()) {
-      // Draw dark grey highlight to show what we have loaded. This just uses a
-      // width since it just starts at zero just like the before segment.
-      // We use |std::max()| here because |current_position| has an offset added
-      // to it and can therefore be greater than |end_position| in some cases.
-      after_segment.width = std::max(current_position, end_position);
-    } else {
-      // Draw highlight to show what we have played.
-      if (current_position > start_position) {
-        after_segment.left = start_position;
-        after_segment.width = current_position - start_position;
-      }
-
-      // Draw dark grey highlight to show what we have loaded.
-      if (end_position > current_position) {
-        before_segment.left = current_position;
-        before_segment.width = end_position - current_position;
-      }
-    }
+    // Draw dark grey highlight to show what we have loaded. This just uses a
+    // width since it just starts at zero just like the before segment.
+    // We use |std::max()| here because |current_position| has an offset added
+    // to it and can therefore be greater than |end_position| in some cases.
+    after_segment.width = std::max(current_position, end_position);
   }
 
   // Update the positions of the segments.
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_control_container_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_control_container_element.cc
index 30aaa96..0fa7cb8f 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_control_container_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_control_container_element.cc
@@ -20,8 +20,7 @@
   MediaControlElementsHelper::CreateDiv(
       "-webkit-media-controls-volume-control-hover-background", this);
 
-  if (MediaControlsImpl::IsModern())
-    CloseContainer();
+  CloseContainer();
 }
 
 void MediaControlVolumeControlContainerElement::OpenContainer() {
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_slider_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_slider_element.cc
index 8c9941c..f88138e 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_slider_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_slider_element.cc
@@ -26,9 +26,7 @@
   SetShadowPseudoId(AtomicString("-webkit-media-controls-volume-slider"));
   SetVolumeInternal(MediaElement().volume());
 
-  // The slider starts closed in modern media controls.
-  if (MediaControlsImpl::IsModern())
-    CloseSlider();
+  CloseSlider();
 }
 
 void MediaControlVolumeSliderElement::SetVolume(double volume) {
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
index 32ddb77..d518494 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
@@ -99,19 +99,6 @@
 
 namespace {
 
-// TODO(steimel): should have better solution than hard-coding pixel values.
-// Defined in core/css/mediaControls.css, core/css/mediaControlsAndroid.css,
-// and core/paint/MediaControlsPainter.cpp.
-constexpr int kOverlayPlayButtonWidth = 48;
-constexpr int kOverlayPlayButtonHeight = 48;
-constexpr int kOverlayBottomMargin = 10;
-constexpr int kAndroidMediaPanelHeight = 48;
-
-constexpr int kMinWidthForOverlayPlayButton = kOverlayPlayButtonWidth;
-constexpr int kMinHeightForOverlayPlayButton = kOverlayPlayButtonHeight +
-                                               kAndroidMediaPanelHeight +
-                                               (2 * kOverlayBottomMargin);
-
 // TODO(steimel): When modern media controls launches, remove above constants
 // and rename below constants.
 // (2px left border + 6px left padding + 56px button + 6px right padding + 2px
@@ -198,15 +185,11 @@
 
 // If you change this value, then also update the corresponding value in
 // web_tests/media/media-controls.js.
-constexpr TimeDelta kTimeWithoutMouseMovementBeforeHidingMediaControls =
-    TimeDelta::FromSeconds(3);
 constexpr TimeDelta kModernTimeWithoutMouseMovementBeforeHidingMediaControls =
     TimeDelta::FromSecondsD(2.5);
 
 TimeDelta GetTimeWithoutMouseMovementBeforeHidingMediaControls() {
-  return MediaControlsImpl::IsModern()
-             ? kModernTimeWithoutMouseMovementBeforeHidingMediaControls
-             : kTimeWithoutMouseMovementBeforeHidingMediaControls;
+  return kModernTimeWithoutMouseMovementBeforeHidingMediaControls;
 }
 
 }  // namespace
@@ -325,11 +308,6 @@
   Member<MutationObserver> observer_;
 };
 
-// static
-bool MediaControlsImpl::IsModern() {
-  return true;
-}
-
 bool MediaControlsImpl::IsTouchEvent(Event* event) {
   return event->IsTouchEvent() || event->IsGestureEvent() ||
          (event->IsMouseEvent() && ToMouseEvent(event)->FromTouch());
@@ -515,7 +493,7 @@
 // +-MediaControlDisplayCutoutFullscreenElement
 //       (-internal-media-controls-display-cutout-fullscreen-button)
 void MediaControlsImpl::InitializeControls() {
-  if (IsModern() && ShouldShowVideoControls()) {
+  if (ShouldShowVideoControls()) {
     loading_panel_ =
         MakeGarbageCollected<MediaControlLoadingPanelElement>(*this);
     ParserAppendChild(loading_panel_);
@@ -527,9 +505,6 @@
   if (RuntimeEnabledFeatures::MediaControlsOverlayPlayButtonEnabled()) {
     overlay_play_button_ =
         MakeGarbageCollected<MediaControlOverlayPlayButtonElement>(*this);
-
-    if (!IsModern())
-      overlay_enclosure_->ParserAppendChild(overlay_play_button_);
   }
 
   overlay_cast_button_ =
@@ -546,7 +521,7 @@
 
   // If using the modern media controls, the buttons should belong to a
   // seperate button panel. This is because they are displayed in two lines.
-  if (IsModern() && ShouldShowVideoControls()) {
+  if (ShouldShowVideoControls()) {
     media_button_panel_ =
         MakeGarbageCollected<MediaControlButtonPanelElement>(*this);
     scrubbing_message_ =
@@ -648,7 +623,7 @@
     media_button_panel_->setInnerHTML(StringOrTrustedHTML::FromString(""));
 
   Element* button_panel = panel_;
-  if (IsModern() && ShouldShowVideoControls()) {
+  if (ShouldShowVideoControls()) {
     MaybeParserAppendChild(panel_, scrubbing_message_);
     if (display_cutout_fullscreen_button_)
       panel_->ParserAppendChild(display_cutout_fullscreen_button_);
@@ -662,43 +637,27 @@
   button_panel->ParserAppendChild(current_time_display_);
   button_panel->ParserAppendChild(duration_display_);
 
-  if (IsModern() && ShouldShowVideoControls()) {
+  if (ShouldShowVideoControls()) {
     MediaControlElementsHelper::CreateDiv(
         "-internal-media-controls-button-spacer", button_panel);
   }
 
   panel_->ParserAppendChild(timeline_);
 
-  // On modern controls, the volume slider is to the left of the mute button.
-  if (IsModern()) {
-    MaybeParserAppendChild(volume_control_container_, volume_slider_);
-    volume_control_container_->ParserAppendChild(mute_button_);
-    button_panel->ParserAppendChild(volume_control_container_);
-  } else {
-    button_panel->ParserAppendChild(mute_button_);
-    MaybeParserAppendChild(button_panel, volume_slider_);
-  }
+  MaybeParserAppendChild(volume_control_container_, volume_slider_);
+  volume_control_container_->ParserAppendChild(mute_button_);
+  button_panel->ParserAppendChild(volume_control_container_);
 
   MaybeParserAppendChild(button_panel, picture_in_picture_button_);
 
   button_panel->ParserAppendChild(fullscreen_button_);
 
-  // The download, cast and captions buttons should not be present on the modern
-  // controls button panel.
-  if (!IsModern()) {
-    button_panel->ParserAppendChild(download_button_);
-    button_panel->ParserAppendChild(cast_button_);
-    button_panel->ParserAppendChild(toggle_closed_captions_button_);
-  }
-
   button_panel->ParserAppendChild(overflow_menu_);
 
-  // Attach hover background div to modern controls
-  if (IsModern()) {
-    AttachHoverBackground(play_button_);
-    AttachHoverBackground(fullscreen_button_);
-    AttachHoverBackground(overflow_menu_);
-  }
+  // Attach hover background divs.
+  AttachHoverBackground(play_button_);
+  AttachHoverBackground(fullscreen_button_);
+  AttachHoverBackground(overflow_menu_);
 }
 
 void MediaControlsImpl::AttachHoverBackground(Element* element) {
@@ -790,7 +749,7 @@
   // video element.
   // TODO(https://crbug.org/930001): Reconsider skipping this block when not
   // connected.
-  if (IsModern() && MediaElement().isConnected()) {
+  if (MediaElement().isConnected()) {
     bool updated = false;
 
     if (state == kNoSource) {
@@ -941,7 +900,7 @@
 void MediaControlsImpl::OnControlsListUpdated() {
   BatchedControlUpdate batch(this);
 
-  if (IsModern() && ShouldShowVideoControls()) {
+  if (ShouldShowVideoControls()) {
     fullscreen_button_->SetIsWanted(true);
     fullscreen_button_->setAttribute(
         html_names::kDisabledAttr,
@@ -1119,10 +1078,7 @@
 bool MediaControlsImpl::AreVideoControlsHovered() const {
   DCHECK(MediaElement().IsHTMLVideoElement());
 
-  if (IsModern())
-    return media_button_panel_->IsHovered() || timeline_->IsHovered();
-
-  return panel_->IsHovered();
+  return media_button_panel_->IsHovered() || timeline_->IsHovered();
 }
 
 void MediaControlsImpl::UpdatePlayState() {
@@ -1139,7 +1095,6 @@
 }
 
 HTMLDivElement* MediaControlsImpl::ButtonPanelElement() {
-  DCHECK(IsModern());
   return media_button_panel_;
 }
 
@@ -1358,7 +1313,7 @@
                     ((controls_size.width - element_size.width) >= 0);
     element->SetDoesFit(does_fit);
 
-    if (element == mute_button_.Get() && IsModern())
+    if (element == mute_button_.Get())
       volume_control_container_->SetIsWanted(does_fit);
 
     // The element does fit and is sticky so we should allocate space for it. If
@@ -1390,7 +1345,7 @@
     last_element->SetDoesFit(false);
     last_element->SetOverflowElementIsWanted(true);
 
-    if (last_element == mute_button_.Get() && IsModern())
+    if (last_element == mute_button_.Get())
       volume_control_container_->SetIsWanted(false);
   }
 
@@ -1532,7 +1487,7 @@
       !IsSpatialNavigationEnabled(GetDocument().GetFrame())) {
     const String& key = ToKeyboardEvent(event).key();
     if (key == "Enter" || ToKeyboardEvent(event).keyCode() == ' ') {
-      if (IsModern() && overlay_play_button_) {
+      if (overlay_play_button_) {
         overlay_play_button_->OnMediaKeyboardEvent(&event);
       } else {
         play_button_->OnMediaKeyboardEvent(&event);
@@ -1586,7 +1541,7 @@
 }
 
 void MediaControlsImpl::HandleClickEvent(Event* event) {
-  if (!IsModern() || ContainsRelatedTarget(event) || !IsFullscreenEnabled())
+  if (ContainsRelatedTarget(event) || !IsFullscreenEnabled())
     return;
 
   if (tap_timer_.IsActive()) {
@@ -1617,54 +1572,37 @@
 }
 
 void MediaControlsImpl::HandleTouchEvent(Event* event) {
-  if (IsModern()) {
-    is_mouse_over_controls_ = false;
-    is_touch_interaction_ = true;
-
-    if (event->type() == event_type_names::kGesturetap &&
-        !ContainsRelatedTarget(event)) {
-      event->SetDefaultHandled();
-
-      // Since handling the gesturetap event will prevent the click event from
-      // happening, we need to manually hide any popups.
-      HidePopupMenu();
-
-      // In immersive mode we don't use double-tap features, so instead of
-      // waiting 300 ms for a potential second tap, we just immediately toggle
-      // controls visiblity.
-      if (GetDocument().GetSettings() &&
-          GetDocument().GetSettings()->GetImmersiveModeEnabled()) {
-        MaybeToggleControlsFromTap();
-        return;
-      }
-
-      if (tap_timer_.IsActive()) {
-        // Cancel the visibility toggle event.
-        tap_timer_.Stop();
-
-        if (IsOnLeftSide(event)) {
-          MaybeJump(kNumberOfSecondsToJump * -1);
-        } else {
-          MaybeJump(kNumberOfSecondsToJump);
-        }
-      } else {
-        tap_timer_.StartOneShot(kDoubleTapDelay, FROM_HERE);
-      }
-    }
-    return;
-  }
+  is_mouse_over_controls_ = false;
+  is_touch_interaction_ = true;
 
   if (event->type() == event_type_names::kGesturetap &&
-      !ContainsRelatedTarget(event) && !MediaElement().paused()) {
-    if (!IsVisible()) {
-      MakeOpaque();
-      // When the panel switches from invisible to visible, we need to mark
-      // the event handled to avoid buttons below the tap to be activated.
-      event->SetDefaultHandled();
+      !ContainsRelatedTarget(event)) {
+    event->SetDefaultHandled();
+
+    // Since handling the gesturetap event will prevent the click event from
+    // happening, we need to manually hide any popups.
+    HidePopupMenu();
+
+    // In immersive mode we don't use double-tap features, so instead of
+    // waiting 300 ms for a potential second tap, we just immediately toggle
+    // controls visibility.
+    if (GetDocument().GetSettings() &&
+        GetDocument().GetSettings()->GetImmersiveModeEnabled()) {
+      MaybeToggleControlsFromTap();
+      return;
     }
-    if (ShouldHideMediaControls(kIgnoreWaitForTimer)) {
-      keep_showing_until_timer_fires_ = true;
-      StartHideMediaControlsTimer();
+
+    if (tap_timer_.IsActive()) {
+      // Cancel the visibility toggle event.
+      tap_timer_.Stop();
+
+      if (IsOnLeftSide(event)) {
+        MaybeJump(kNumberOfSecondsToJump * -1);
+      } else {
+        MaybeJump(kNumberOfSecondsToJump);
+      }
+    } else {
+      tap_timer_.StartOneShot(kDoubleTapDelay, FROM_HERE);
     }
   }
 }
@@ -1794,20 +1732,16 @@
     volume_slider_->SetIsWanted(MediaElement().HasAudio() &&
                                 !PreferHiddenVolumeControls(GetDocument()));
   }
-  if (IsModern()) {
-    mute_button_->SetIsWanted(true);
-    mute_button_->setAttribute(
-        html_names::kDisabledAttr,
-        MediaElement().HasAudio() ? AtomicString() : AtomicString(""));
-  } else {
-    mute_button_->SetIsWanted(MediaElement().HasAudio());
-    mute_button_->removeAttribute(html_names::kDisabledAttr);
-  }
+
+  mute_button_->SetIsWanted(true);
+  mute_button_->setAttribute(
+      html_names::kDisabledAttr,
+      MediaElement().HasAudio() ? AtomicString() : AtomicString(""));
 
   // On modern media controls, if the volume slider is being used we don't want
-  // to update controls visiblity, since this can shift the position of the
+  // to update controls visibility, since this can shift the position of the
   // volume slider and make it unusable.
-  if (!IsModern() || !volume_slider_ || !volume_slider_->IsHovered())
+  if (!volume_slider_ || !volume_slider_->IsHovered())
     BatchedControlUpdate batch(this);
 }
 
@@ -1986,8 +1920,7 @@
     // Update the sizing CSS class before computing which controls fit so that
     // the element sizes can update from the CSS class change before we start
     // calculating.
-    if (IsModern())
-      UpdateSizingCSSClass();
+    UpdateSizingCSSClass();
     element_size_changed_timer_.StartOneShot(TimeDelta(), FROM_HERE);
   }
 }
@@ -2007,126 +1940,8 @@
   // Hide all controls that don't fit, and show the ones that do.
   // This might be better suited for a layout, but since JS media controls
   // won't benefit from that anwyay, we just do it here like JS will.
-  if (IsModern()) {
-    UpdateOverflowMenuWanted();
-    UpdateScrubbingMessageFits();
-    return;
-  }
-
-  // Controls that we'll hide / show, in order of decreasing priority.
-  MediaControlElementBase* elements[] = {
-      // Exclude m_overflowMenu; we handle it specially.
-      play_button_.Get(),
-      fullscreen_button_.Get(),
-      download_button_.Get(),
-      timeline_.Get(),
-      mute_button_.Get(),
-      volume_slider_.Get(),
-      toggle_closed_captions_button_.Get(),
-      picture_in_picture_button_.Get() ? picture_in_picture_button_.Get()
-                                       : nullptr,
-      cast_button_.Get(),
-      current_time_display_.Get(),
-      duration_display_.Get(),
-  };
-
-  // TODO(mlamouri): we need a more dynamic way to find out the width of an
-  // element.
-  const int kSliderMargin = 36;  // Sliders have 18px margin on each side.
-
-  if (!size_.Width()) {
-    // No layout yet -- hide everything, then make them show up later.
-    // This prevents the wrong controls from being shown briefly
-    // immediately after the first layout and paint, but before we have
-    // a chance to revise them.
-    for (MediaControlElementBase* element : elements) {
-      if (element)
-        element->SetDoesFit(false);
-    }
-    return;
-  }
-
-  // Assume that all controls require 48px, unless we can get the computed
-  // style for a button. The minimumWidth is recorded and re-use for future
-  // MediaControls instances and future calls to this method given that at the
-  // moment the controls button width is per plataform.
-  // TODO(mlamouri): improve the mechanism without bandaid.
-  static int minimum_width = 48;
-  if (play_button_->GetLayoutObject() &&
-      play_button_->GetLayoutObject()->Style()) {
-    const ComputedStyle* style = play_button_->GetLayoutObject()->Style();
-    minimum_width = ceil(style->Width().Pixels() / style->EffectiveZoom());
-  } else if (overflow_menu_->GetLayoutObject() &&
-             overflow_menu_->GetLayoutObject()->Style()) {
-    const ComputedStyle* style = overflow_menu_->GetLayoutObject()->Style();
-    minimum_width = ceil(style->Width().Pixels() / style->EffectiveZoom());
-  }
-
-  // Insert an overflow menu. However, if we see that the overflow menu
-  // doesn't end up containing at least two elements, we will not display it
-  // but instead make place for the first element that was dropped.
-  overflow_menu_->SetDoesFit(true);
-  overflow_menu_->SetIsWanted(true);
-  int used_width = minimum_width;
-
-  std::list<MediaControlElementBase*> overflow_elements;
-  MediaControlElementBase* first_displaced_element = nullptr;
-  // For each control that fits, enable it in order of decreasing priority.
-  for (MediaControlElementBase* element : elements) {
-    if (!element)
-      continue;
-
-    int width = minimum_width;
-    if ((element == timeline_.Get()) || (element == volume_slider_.Get()))
-      width += kSliderMargin;
-
-    element->SetOverflowElementIsWanted(false);
-    if (!element->IsWanted())
-      continue;
-
-    if (used_width + width <= size_.Width()) {
-      element->SetDoesFit(true);
-      used_width += width;
-    } else {
-      element->SetDoesFit(false);
-      element->SetOverflowElementIsWanted(true);
-      if (element->HasOverflowButton())
-        overflow_elements.push_front(element);
-      // We want a way to access the first media element that was
-      // removed. If we don't end up needing an overflow menu, we can
-      // use the space the overflow menu would have taken up to
-      // instead display that media element.
-      if (!element->HasOverflowButton() && !first_displaced_element)
-        first_displaced_element = element;
-    }
-  }
-
-  // If we don't have at least two overflow elements, we will not show the
-  // overflow menu.
-  if (overflow_elements.empty()) {
-    overflow_menu_->SetIsWanted(false);
-    used_width -= minimum_width;
-    if (first_displaced_element) {
-      int width = minimum_width;
-      if ((first_displaced_element == timeline_.Get()) ||
-          (first_displaced_element == volume_slider_.Get()))
-        width += kSliderMargin;
-      if (used_width + width <= size_.Width())
-        first_displaced_element->SetDoesFit(true);
-    }
-  } else if (overflow_elements.size() == 1) {
-    overflow_menu_->SetIsWanted(false);
-    overflow_elements.front()->SetDoesFit(true);
-  }
-
-  // Decide if the overlay play button fits.
-  if (overlay_play_button_) {
-    bool does_fit = size_.Width() >= kMinWidthForOverlayPlayButton &&
-                    size_.Height() >= kMinHeightForOverlayPlayButton;
-    overlay_play_button_->SetDoesFit(does_fit);
-  }
-
-  MaybeRecordElementsDisplayed();
+  UpdateOverflowMenuWanted();
+  UpdateScrubbingMessageFits();
 }
 
 void MediaControlsImpl::MaybeRecordElementsDisplayed() const {
@@ -2179,7 +1994,7 @@
 bool MediaControlsImpl::ShouldActAsAudioControls() const {
   // A video element should act like an audio element when it has an audio track
   // but no video track.
-  return IsModern() && MediaElement().ShouldShowControls() &&
+  return MediaElement().ShouldShowControls() &&
          MediaElement().IsHTMLVideoElement() && MediaElement().HasAudio() &&
          !MediaElement().HasVideo();
 }
@@ -2214,8 +2029,7 @@
 }
 
 bool MediaControlsImpl::ShouldShowAudioControls() const {
-  return IsModern() &&
-         (MediaElement().IsHTMLAudioElement() || is_acting_as_audio_controls_);
+  return (MediaElement().IsHTMLAudioElement() || is_acting_as_audio_controls_);
 }
 
 bool MediaControlsImpl::ShouldShowVideoControls() const {
@@ -2292,14 +2106,14 @@
 }
 
 bool MediaControlsImpl::ShouldOpenVolumeSlider() const {
-  if (!volume_slider_ || !IsModern())
+  if (!volume_slider_)
     return false;
 
   return !PreferHiddenVolumeControls(GetDocument());
 }
 
 bool MediaControlsImpl::ShouldCloseVolumeSlider() const {
-  if (!volume_slider_ || !IsModern())
+  if (!volume_slider_)
     return false;
 
   return !(volume_control_container_->IsHovered() ||
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl.h b/third_party/blink/renderer/modules/media_controls/media_controls_impl.h
index 2a3b01d..5134c7c 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_impl.h
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl.h
@@ -83,9 +83,6 @@
   explicit MediaControlsImpl(HTMLMediaElement&);
   ~MediaControlsImpl() override = default;
 
-  // Returns whether the ModernMediaControlsEnabled runtime flag is on.
-  static bool IsModern();
-
   // Returns whether the event is considered a touch event.
   static bool IsTouchEvent(Event*);
 
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_media_event_listener.cc b/third_party/blink/renderer/modules/media_controls/media_controls_media_event_listener.cc
index 0fe65f1f..0926d23 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_media_event_listener.cc
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_media_event_listener.cc
@@ -76,16 +76,9 @@
   text_tracks->addEventListener(event_type_names::kRemovetrack, this, false);
 
   // Keypress events.
-  if (MediaControlsImpl::IsModern()) {
-    if (media_controls_->ButtonPanelElement()) {
-      media_controls_->ButtonPanelElement()->addEventListener(
-          event_type_names::kKeypress, this, false);
-    }
-  } else {
-    if (media_controls_->PanelElement()) {
-      media_controls_->PanelElement()->addEventListener(
-          event_type_names::kKeypress, this, false);
-    }
+  if (media_controls_->ButtonPanelElement()) {
+    media_controls_->ButtonPanelElement()->addEventListener(
+        event_type_names::kKeypress, this, false);
   }
 
   RemotePlayback& remote = RemotePlayback::From(GetMediaElement());
@@ -116,16 +109,9 @@
   text_tracks->removeEventListener(event_type_names::kChange, this, false);
   text_tracks->removeEventListener(event_type_names::kRemovetrack, this, false);
 
-  if (MediaControlsImpl::IsModern()) {
-    if (media_controls_->ButtonPanelElement()) {
-      media_controls_->ButtonPanelElement()->removeEventListener(
-          event_type_names::kKeypress, this, false);
-    }
-  } else {
-    if (media_controls_->PanelElement()) {
-      media_controls_->PanelElement()->removeEventListener(
-          event_type_names::kKeypress, this, false);
-    }
+  if (media_controls_->ButtonPanelElement()) {
+    media_controls_->ButtonPanelElement()->removeEventListener(
+        event_type_names::kKeypress, this, false);
   }
 
   RemotePlayback& remote = RemotePlayback::From(GetMediaElement());
@@ -238,16 +224,9 @@
 
   // Keypress events.
   if (event->type() == event_type_names::kKeypress) {
-    if (MediaControlsImpl::IsModern()) {
-      if (event->currentTarget() == media_controls_->ButtonPanelElement()) {
-        media_controls_->OnPanelKeypress();
-        return;
-      }
-    } else {
-      if (event->currentTarget() == media_controls_->PanelElement()) {
-        media_controls_->OnPanelKeypress();
-        return;
-      }
+    if (event->currentTarget() == media_controls_->ButtonPanelElement()) {
+      media_controls_->OnPanelKeypress();
+      return;
     }
   }
 
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_cast_off.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_cast_off.png
deleted file mode 100644
index d7b4f4d..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_cast_off.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_cast_on.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_cast_on.png
deleted file mode 100644
index 8930a406c..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_cast_on.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_closedcaption.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_closedcaption.png
deleted file mode 100644
index 65dc678..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_closedcaption.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_closedcaption_disabled.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_closedcaption_disabled.png
deleted file mode 100644
index 733ef64..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_closedcaption_disabled.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_closedcaptions_icon.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_closedcaptions_icon.png
deleted file mode 100644
index 13f44ce..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_closedcaptions_icon.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_download.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_download.png
deleted file mode 100644
index 5feb709..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_download.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_enter_fullscreen.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_enter_fullscreen.png
deleted file mode 100644
index a5e7ac0..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_enter_fullscreen.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_exit_fullscreen.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_exit_fullscreen.png
deleted file mode 100644
index 74201e0..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_exit_fullscreen.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_overflow_menu.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_overflow_menu.png
deleted file mode 100644
index 7a7eafd..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_overflow_menu.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_overlay_play.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_overlay_play.png
deleted file mode 100644
index 20b1e0c..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_overlay_play.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_pause.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_pause.png
deleted file mode 100644
index 0f87978..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_pause.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_pictureinpicture.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_pictureinpicture.png
deleted file mode 100644
index 6a907e3..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_pictureinpicture.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_play.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_play.png
deleted file mode 100644
index 0a2ee1a..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_play.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_slider_thumb.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_slider_thumb.png
deleted file mode 100644
index 1b4d488..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_slider_thumb.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_slider_thumb_grey.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_slider_thumb_grey.png
deleted file mode 100644
index 11cc5bc..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_slider_thumb_grey.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_sound_muted.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_sound_muted.png
deleted file mode 100644
index 6cbad9b..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_sound_muted.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_sound_not_muted.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_sound_not_muted.png
deleted file mode 100644
index 0ec66fd..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_sound_not_muted.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_subtitles_icon.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_subtitles_icon.png
deleted file mode 100644
index b19d9e3..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_subtitles_icon.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_trackselection_checkmark.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_trackselection_checkmark.png
deleted file mode 100644
index 616fe09..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_trackselection_checkmark.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_volume_slider_thumb.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_volume_slider_thumb.png
deleted file mode 100644
index 1b4d488..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_volume_slider_thumb.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_overlay_cast_off.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/modern/mediaplayer_overlay_cast_off.png
similarity index 100%
rename from third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_overlay_cast_off.png
rename to third_party/blink/renderer/modules/media_controls/resources/default_100_percent/modern/mediaplayer_overlay_cast_off.png
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_overlay_cast_on.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/modern/mediaplayer_overlay_cast_on.png
similarity index 100%
rename from third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaplayer_overlay_cast_on.png
rename to third_party/blink/renderer/modules/media_controls/resources/default_100_percent/modern/mediaplayer_overlay_cast_on.png
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaremoting_cast.png b/third_party/blink/renderer/modules/media_controls/resources/default_100_percent/modern/mediaremoting_cast.png
similarity index 100%
rename from third_party/blink/renderer/modules/media_controls/resources/default_100_percent/legacy/mediaremoting_cast.png
rename to third_party/blink/renderer/modules/media_controls/resources/default_100_percent/modern/mediaremoting_cast.png
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/default_200_percent/legacy/mediaremoting_cast.png b/third_party/blink/renderer/modules/media_controls/resources/default_200_percent/modern/mediaremoting_cast.png
similarity index 100%
rename from third_party/blink/renderer/modules/media_controls/resources/default_200_percent/legacy/mediaremoting_cast.png
rename to third_party/blink/renderer/modules/media_controls/resources/default_200_percent/modern/mediaremoting_cast.png
Binary files differ
diff --git a/third_party/blink/renderer/modules/media_controls/resources/legacyMediaControls.css b/third_party/blink/renderer/modules/media_controls/resources/legacyMediaControls.css
deleted file mode 100644
index a6ace7d5..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/legacyMediaControls.css
+++ /dev/null
@@ -1,710 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc.  All rights reserved.
- * Copyright (C) 2015 Google Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. 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.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``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 APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * 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.
- */
-
-/* Chromium default media controls */
-
-/* WARNING: This css file can only style <audio> and <video> elements */
-
-audio:not([controls]) {
-    display: none !important;
-}
-
-audio {
-    width: 300px;
-    height: 32px;
-}
-
-audio::-webkit-media-controls,
-video::-webkit-media-controls {
-    writing-mode: horizontal-tb;
-    width: inherit;
-    height: inherit;
-    position: relative;
-    direction: ltr;
-    display: flex;
-    flex-direction: column;
-    font-family: Segoe, "Helvetica Neue", Roboto, Arial, Helvetica, sans-serif;
-    justify-content: flex-end;
-    align-items: center;
-}
-
-audio::-webkit-media-controls-panel.transparent,
-video::-webkit-media-controls-panel.transparent {
-  opacity: 0;
-}
-
-audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure {
-    width: 100%;
-    height: 32px;
-    flex-shrink: 0;
-    bottom: 0;
-    text-indent: 0;
-    padding: 0;
-    margin: 0;
-    box-sizing: border-box;
-}
-
-audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    /* We use flex-start here to ensure that the play button is visible even
-     * if we are too small to show all controls.
-     */
-    justify-content: flex-start;
-    -webkit-user-select: none;
-    position: relative;
-    width: 100%;
-    z-index: 0;
-    overflow: hidden;
-    text-align: right;
-    bottom: auto;
-    height: 32px;
-    min-width: 48px;
-    line-height: 32px;
-    background-color: #fafafa;
-    /* The duration is also specified in media_control_elements.cc and web_tests/media/media-controls.js */
-    transition: opacity 0.3s;
-
-    font-size: 12px;
-    font-weight: normal;  /* Make sure that we don't inherit non-defaults. */
-    font-style: normal;
-}
-
-video:-webkit-full-page-media {
-    margin: auto;
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-}
-
-audio:-webkit-full-page-media, video:-webkit-full-page-media {
-    max-height: 100%;
-    max-width: 100%;
-}
-
-audio:-webkit-full-page-media::-webkit-media-controls-panel,
-video:-webkit-full-page-media::-webkit-media-controls-panel {
-    bottom: 0px;
-}
-
-audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button {
-    -webkit-appearance: -internal-media-control;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_sound_not_muted.png) 1x);
-    background-size: 32px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    display: flex;
-    flex: none;
-    box-sizing: border-box;
-    width: 32px;
-    height: 32px;
-    padding: 0px;
-    border-width: 0px;
-    background-color: initial;
-    color: inherit;
-}
-
-audio::-webkit-media-controls-mute-button.muted,
-video::-webkit-media-controls-mute-button.muted {
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_sound_muted.png) 1x);
-}
-
-audio::-webkit-media-controls-overlay-enclosure {
-    display: none;
-}
-
-video::-webkit-media-controls-overlay-enclosure {
-    display: flex;
-    position: relative;
-    flex-direction: column;
-    justify-content: flex-end;
-    align-items: center;
-    flex: 1 1;
-    min-height: 0;
-    width: 100%;
-    /* Prevent disambiguation zooms with the panel. If this changes, it must
-     * also be changed in core/html/shadow/MediaControls.cpp. */
-    margin-bottom: 10px;
-    text-indent: 0;
-    box-sizing: border-box;
-    overflow: hidden;
-}
-
-video::-webkit-media-controls-overlay-play-button {
-    -webkit-appearance: -internal-media-control;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_overlay_play.png) 1x);
-    background-size: 48px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    display: flex;
-    position: absolute;
-    top: 0;
-    left: 0;
-    margin: 0;
-    border-width: 0px;
-    background-color: transparent;
-    width: 100%;
-    height: 100%;
-    padding: 0;
-}
-
-video::-internal-media-controls-overlay-cast-button {
-    -webkit-appearance: none;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_overlay_cast_off.png) 1x);
-    background-size: cover;
-    background-repeat: no-repeat;
-    background-position: center center;
-    display: flex;
-    position: absolute;
-    top: 8px;
-    left: 8px;
-    margin-left: 0px;
-    margin-top: 0px;
-    border-width: 0px;
-    background-color: transparent;
-    width: 32px;
-    height: 32px;
-    padding: 0;
-    transition: opacity 0.3s;
-}
-
-video::-internal-media-controls-overlay-cast-button.on {
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_overlay_cast_on.png) 1x);
-}
-
-video::-internal-media-controls-picture-in-picture-button, audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button {
-    -webkit-appearance: -internal-media-control;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_pause.png) 1x);
-    background-size: 32px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    display: flex;
-    flex: none;
-    box-sizing: border-box;
-    width: 32px;
-    height: 32px;
-    padding: 0px;
-    border-width: 0px;
-    background-color: initial;
-    color: inherit;
-}
-
-audio::-webkit-media-controls-play-button.pause,
-video::-webkit-media-controls-play-button.pause {
-  background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_play.png) 1x);
-}
-
-video::-internal-media-controls-picture-in-picture-button {
-  background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_pictureinpicture.png) 1x);
-}
-
-audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container {
-    -webkit-appearance: none;
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    justify-content: flex-end;
-    flex: 1 1;
-    -webkit-user-select: none;
-    height: 48px;
-    padding: 0;
-    min-width: 0;
-}
-
-audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display {
-    -webkit-appearance: none;
-    -webkit-user-select: none;
-    flex: none;
-    display: flex;
-    border: none;
-    cursor: default;
-
-    height: 32px;
-
-    /* text runs right to the edge of the container */
-    padding: 0;
-
-    color: #5a5a5a;
-
-    letter-spacing: normal;
-    word-spacing: normal;
-    text-transform: none;
-    text-indent: 0;
-    text-shadow: none;
-    text-decoration: none;
-}
-
-audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display {
-    -webkit-appearance: none;
-    -webkit-user-select: none;
-    flex: none;
-    display: flex;
-    border: none;
-    cursor: default;
-
-    height: 32px;
-
-    /* text runs right to the edge of the container, plus a little on
-     * the left to pad the leading "/" */
-    padding: 0 0 0 4px;
-
-    color: #5a5a5a;
-
-    letter-spacing: normal;
-    word-spacing: normal;
-    text-transform: none;
-    text-indent: 0;
-    text-shadow: none;
-    text-decoration: none;
-}
-
-audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline {
-    -webkit-appearance: -internal-media-control;
-    display: flex;
-    flex: 1 1 auto;
-    height: 2px;
-
-    /* Leave 6px on either side for the thumb.  Use margin so that
-     * the slider doesn't extend into it.  We also add 12px border.
-     */
-    padding: 14px 0;
-    margin: 0 18px 0 18px;
-    background-color: transparent;
-    min-width: 25px;
-    border: initial;
-    color: inherit;
-}
-
-audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider {
-    -webkit-appearance: -internal-media-control;
-    display: flex;
-    /* The 1.9 value was empirically chosen to match old-flexbox behaviour
-     * and be aesthetically pleasing.
-     */
-    flex: 1 1.9 auto;
-    height: 2px;
-    max-width: 70px;
-    /* Leave room for the thumb, which has 6px radius.  Use margin rather
-     * than padding so that the slider doesn't extend into it.  We also
-     * leave an addition 12px margin.
-     */
-    padding: 14px 0;
-    margin: 0 18px 0 18px;
-    background-color: transparent;
-    min-width: 25px;
-    border: initial;
-    color: inherit;
-}
-
-/**
- * Segmented Track
- */
-
-input[pseudo="-webkit-media-controls-timeline" i]::-internal-media-controls-segmented-track,
-input[pseudo="-webkit-media-controls-volume-slider" i]::-internal-media-controls-segmented-track {
-    margin: 0 -18px;
-    position: relative;
-
-    flex: 1 1 0%;
-    min-width: 0;
-    align-self: center;
-    box-sizing: border-box;
-}
-
-input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-background,
-input[pseudo="-webkit-media-controls-volume-slider" i]::-internal-track-segment-background {
-    width: auto;
-    position: absolute;
-    background: #dadada;
-    height: 2px;
-    margin-top: -1px;
-    left: 18px;
-    right: 18px;
-    top: 50%;
-    overflow: hidden;
-}
-
-input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-highlight-after,
-input[pseudo="-webkit-media-controls-volume-slider" i]::-internal-track-segment-highlight-after,
-input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-highlight-before,
-input[pseudo="-webkit-media-controls-volume-slider" i]::-internal-track-segment-highlight-before {
-    height: auto;
-    position: absolute;
-    top: 50%;
-    bottom: 0;
-    z-index: 1;
-    height: 2px;
-    margin-top: -1px;
-}
-
-input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-highlight-after,
-input[pseudo="-webkit-media-controls-volume-slider" i]::-internal-track-segment-highlight-after {
-    background-color: #4285f4;
-}
-
-input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-highlight-before,
-input[pseudo="-webkit-media-controls-volume-slider" i]::-internal-track-segment-highlight-before {
-    background-color: #5a5a5a;
-}
-
-/**
- * Track Thumb
- */
-
-input[pseudo="-webkit-media-controls-timeline" i]::-webkit-slider-thumb,
-input[pseudo="-webkit-media-controls-volume-slider" i]::-webkit-slider-thumb {
-    -webkit-appearance: -internal-media-control;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_slider_thumb.png) 1x);
-    background-size: 12px;
-    background-repeat: no-repeat;
-    background-position: center center;
-
-    height: 48px;
-    z-index: 2;
-    width: 36px;
-    margin: 0;
-    padding: 0;
-    top: -24px;
-    position: absolute;
-}
-
-audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button {
-    -webkit-appearance: -internal-media-control;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_enter_fullscreen.png) 1x);
-    background-size: 32px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    display: flex;
-    flex: none;
-    overflow: hidden;
-    box-sizing: border-box;
-    width: 32px;
-    height: 32px;
-    padding: 0px;
-    border-width: 0px;
-    background-color: initial;
-    color: inherit;
-}
-
-audio::-webkit-media-controls-fullscreen-button.fullscreen,
-video::-webkit-media-controls-fullscreen-button.fullscreen {
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_exit_fullscreen.png) 1x);
-}
-
-audio::-internal-media-controls-cast-button, video::-internal-media-controls-cast-button {
-    -webkit-appearance: none;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_cast_off.png) 1x);
-    background-size: 32px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    display: flex;
-    flex: none;
-    box-sizing: border-box;
-    width: 32px;
-    height: 32px;
-    padding: 0px;
-    border-width: 0px;
-    margin-left: 0px;
-    margin-right: 0px;
-    background-color: initial;
-    color: inherit;
-}
-
-audio::-internal-media-controls-cast-button.on,
-video::-internal-media-controls-cast-button.on {
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_cast_on.png) 1x);
-}
-
-audio::-webkit-media-controls-toggle-closed-captions-button {
-    display: none;
-}
-
-video::-webkit-media-controls-toggle-closed-captions-button {
-    -webkit-appearance: -internal-media-control;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_closedcaption_disabled.png) 1x);
-    background-size: 32px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    display: flex;
-    flex: none;
-    box-sizing: border-box;
-    width: 32px;
-    height: 32px;
-    padding: 0px;
-    border-width: 0px;
-    margin-left: 0px;
-    margin-right: 0px;
-    background-color: initial;
-    color: inherit;
-}
-
-video::-webkit-media-controls-toggle-closed-captions-button.visible {
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_closedcaption.png) 1x);
-}
-
-video::-internal-media-controls-text-track-list, video::-internal-media-controls-overflow-menu-list, audio::-internal-media-controls-overflow-menu-list {
-    position: fixed;
-    background-color: #fafafa;
-    max-width: 50%;
-    max-height: 250px;
-    min-width: 150px;
-    overflow-x: hidden;
-    overflow-y: auto;
-    white-space: nowrap;
-    font-size: 14px;
-    border-radius: 1px;
-    box-shadow: 0 8px 20px 1px rgba(0, 0, 0, 0.14),
-                0 3px 28px 2px rgba(0, 0, 0, 0.12),
-                0 5px 10px -3px rgba(0, 0, 0, 0.4);
-}
-
-video::-internal-media-controls-text-track-list-item {
-    display: block;
-    color: #424242;
-    text-align: start;
-    line-height: 40px;
-    padding-right: 16px;
-    text-overflow: ellipsis;
-}
-
-video::-internal-media-controls-text-track-list-item:hover, video::-internal-media-controls-overflow-menu-list-item:hover, audio::-internal-media-controls-overflow-menu-list-item:hover {
-    background-color: #e0e0e0;
-}
-
-video::-internal-media-controls-text-track-list-item-input {
-    -webkit-appearance: none;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_trackselection_checkmark.png) 1x);
-    background-size: 32px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    visibility: hidden;
-    left: 0;
-    vertical-align: middle;
-    margin: 0 5px 0 0;
-    width: 16px;
-    height: 16px;
-    margin-left: 12px;
-}
-
-video::-internal-media-controls-text-track-list-item-input:checked {
-    visibility: visible;
-}
-
-video::-internal-media-controls-text-track-list-kind-captions {
-    -webkit-appearance: none;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_closedcaptions_icon.png) 1x);
-    background-size: 32px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    height: 20px;
-    width: 20px;
-    margin-left: 10px;
-    vertical-align: middle;
-}
-
-video::-internal-media-controls-text-track-list-kind-subtitles {
-    -webkit-appearance: none;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_subtitles_icon.png) 1x);
-    background-size: 32px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    height: 20px;
-    width: 20px;
-    margin-left: 10px;
-    vertical-align: middle;
-}
-
-video::-internal-media-controls-overflow-button, audio::-internal-media-controls-overflow-button {
-    -webkit-appearance: none;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_overflow_menu.png) 1x);
-    background-size: 32px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    display: flex;
-    flex: none;
-    box-sizing: border-box;
-    width: 32px;
-    height: 32px;
-    padding: 0px;
-    border-width: 0px;
-    margin-left: 0px;
-    margin-right: 0px;
-    background-color: initial;
-    color: inherit;
-}
-
-video::-internal-media-controls-download-button, audio::-internal-media-controls-download-button {
-    -webkit-appearance: none;
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_download.png) 1x);
-    background-size: 32px;
-    background-repeat: no-repeat;
-    background-position: center center;
-    display: flex;
-    flex: none;
-    box-sizing: border-box;
-    width: 32px;
-    height: 32px;
-    padding: 0px;
-    border-width: 0px;
-    margin-left: 0px;
-    margin-right: 0px;
-    background-color: initial;
-    color: inherit;
-}
-
-video::-internal-media-controls-overflow-menu-list-item, audio::-internal-media-controls-overflow-menu-list-item {
-    display: flex;
-    align-items: center;
-    justify-content: flex-start;
-
-    color: #424242;
-    line-height: 40px;
-    padding-left: 28px;
-    padding-right: 28px;
-    user-select: none;
-}
-
-label[pseudo="-internal-media-controls-overflow-menu-list-item"] input {
-    margin-left: -22px;
-    margin-right: 6px;
-}
-
-video::-webkit-media-text-track-container {
-    position: relative;
-    width: inherit;
-    height: inherit;
-    overflow: hidden;
-
-    font: 22px sans-serif;
-    text-align: center;
-    color: rgba(255, 255, 255, 1);
-
-    letter-spacing: normal;
-    word-spacing: normal;
-    text-transform: none;
-    text-indent: 0;
-    text-decoration: none;
-    pointer-events: none;
-    -webkit-user-select: none;
-    word-break: break-word;
-}
-
-video::cue {
-    display: inline;
-
-    background-color: rgba(0, 0, 0, 0.8);
-    padding: 2px 2px;
-}
-
-video::-webkit-media-text-track-region {
-    position: absolute;
-    line-height: 5.33vh;
-    writing-mode: horizontal-tb;
-    background: rgba(0, 0, 0, 0.8);
-    color: rgba(255, 255, 255, 1);
-    word-wrap: break-word;
-    overflow-wrap: break-word;
-    overflow: hidden;
-}
-
-video::-webkit-media-text-track-region-container {
-    position: relative;
-
-    display: flex;
-    flex-flow: column;
-    flex-direction: column;
-}
-
-video::-webkit-media-text-track-region-container.scrolling {
-    transition: top 433ms linear;
-}
-
-
-video::-webkit-media-text-track-display {
-    position: absolute;
-    overflow: hidden;
-    white-space: pre-wrap;
-    -webkit-box-sizing: border-box;
-    flex: 0 0 auto;
-}
-
-video::cue(:future) {
-    color: gray;
-}
-
-video::cue(b) {
-    font-weight: bold;
-}
-
-video::cue(u) {
-    text-decoration: underline;
-}
-
-video::cue(i) {
-    font-style: italic;
-}
-
-.state-no-source input[pseudo="-webkit-media-controls-play-button"],
-.state-no-source input[pseudo="-webkit-media-controls-mute-button"],
-.state-no-source input[pseudo="-webkit-media-controls-overlay-play-button"],
-.state-no-source input[pseudo="-webkit-media-controls-fullscreen-button"],
-.state-no-source input[pseudo="-internal-media-controls-download-button"],
-.state-no-source input[pseudo="-webkit-media-controls-timeline"],
-.state-no-source input[pseudo="-webkit-media-controls-volume-slider"] {
-    opacity: 0.4;
-}
-
-.state-no-source input[pseudo="-webkit-media-controls-timeline" i]::-webkit-slider-thumb,
-.state-no-source input[pseudo="-webkit-media-controls-volume-slider" i]::-webkit-slider-thumb {
-    display: none;
-}
-
-.state-no-metadata input[pseudo="-webkit-media-controls-timeline" i]::-webkit-slider-thumb {
-    background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_slider_thumb_grey.png) 1x);
-}
diff --git a/third_party/blink/renderer/modules/media_controls/resources/legacyMediaControlsAndroid.css b/third_party/blink/renderer/modules/media_controls/resources/legacyMediaControlsAndroid.css
deleted file mode 100644
index 5efa1b6..0000000
--- a/third_party/blink/renderer/modules/media_controls/resources/legacyMediaControlsAndroid.css
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2015 Google Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. 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.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``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 APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * 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.
- */
-
-/* Media controls for Chromium on Android */
-
-/* WARNING: This css file can only style <audio> and <video> elements */
-
-audio {
-    height: 48px;
-}
-
-audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure {
-    height: 48px;
-    min-width: 48px;
-    /* This is a magic CSS entry to fix crbug.com/519557. Please don't change
-     * without consulting that crbug. */
-    overflow: hidden;
-}
-
-audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {
-    /* If this changes, it must also be changed in
-     * core/html/shadow/MediaControls.cpp. */
-    height: 48px;
-    min-width: 48px;
-    line-height: 48px;
-    font-size: 14px;
-}
-
-video::-internal-media-controls-overlay-cast-button {
-    width: 48px;
-    height: 48px;
-}
-
-audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container {
-    height: 48px;
-}
-
-audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display {
-    height: 48px;
-}
-
-audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display {
-    height: 48px;
-}
-
-audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button,
-audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button,
-audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button,
-audio::-internal-media-controls-cast-button, video::-internal-media-controls-cast-button,
-audio::-internal-media-controls-download-button, video::-internal-media-controls-download-button,
-audio::-internal-media-controls-overflow-button, video::-internal-media-controls-overflow-button,
-video::-webkit-media-controls-toggle-closed-captions-button {
-    padding: 8px;
-    width: 48px;
-    height: 48px;
-}
diff --git a/third_party/blink/renderer/modules/media_controls/resources/mediaInterstitials.css b/third_party/blink/renderer/modules/media_controls/resources/mediaInterstitials.css
index 766321f..1178b810 100644
--- a/third_party/blink/renderer/modules/media_controls/resources/mediaInterstitials.css
+++ b/third_party/blink/renderer/modules/media_controls/resources/mediaInterstitials.css
@@ -108,8 +108,8 @@
 
 video::-internal-media-remoting-cast-icon {
     background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaremoting_cast.png) 1x,
-      url(default_200_percent/legacy/mediaremoting_cast.png) 2x);
+      url(default_100_percent/modern/mediaremoting_cast.png) 1x,
+      url(default_200_percent/modern/mediaremoting_cast.png) 2x);
 }
 
 video::-internal-picture-in-picture-interstitial-message.sizing-medium {
diff --git a/third_party/blink/renderer/modules/media_controls/resources/media_controls_resources.grd b/third_party/blink/renderer/modules/media_controls/resources/media_controls_resources.grd
index a9f07a7..a04daa1 100644
--- a/third_party/blink/renderer/modules/media_controls/resources/media_controls_resources.grd
+++ b/third_party/blink/renderer/modules/media_controls/resources/media_controls_resources.grd
@@ -9,13 +9,11 @@
   </outputs>
   <release seq="1">
     <structures fallback_to_low_resolution="true">
-      <structure type="chrome_html" name="IDR_UASTYLE_LEGACY_MEDIA_CONTROLS_CSS" file="legacyMediaControls.css" flattenhtml="true" compress="gzip" />
       <structure type="chrome_html" name="IDR_UASTYLE_MODERN_MEDIA_CONTROLS_CSS" file="modernMediaControls.css" flattenhtml="true" compress="gzip" />
       <structure type="chrome_html" name="IDR_UASTYLE_MEDIA_INTERSTITIALS_CSS" file="mediaInterstitials.css" flattenhtml="true" compress="gzip" />
       <structure type="chrome_html" name="IDR_SHADOWSTYLE_MODERN_MEDIA_CONTROLS_LOADING_CSS" file="modernMediaControls_loading.css" flattenhtml="true" compress="gzip" />
     </structures>
     <includes>
-      <include name="IDR_UASTYLE_LEGACY_MEDIA_CONTROLS_ANDROID_CSS" file="legacyMediaControlsAndroid.css" type="BINDATA" compress="gzip" />
       <include name="IDR_UASTYLE_MODERN_MEDIA_CONTROLS_ANDROID_CSS" file="modernMediaControls_Android.css" type="BINDATA" compress="gzip" />
       <include name="IDR_SHADOWSTYLE_MODERN_MEDIA_CONTROLS_TIMELINE_CSS" file="modernMediaControls_timeline.css" type="BINDATA" compress="gzip" />
       <include name="IDR_SHADOWSTYLE_MODERN_MEDIA_CONTROLS_ANIMATED_ARROW_CSS" file="modernMediaControls_animated_arrow.css" type="BINDATA" compress="gzip" />
diff --git a/third_party/blink/renderer/modules/media_controls/resources/modernMediaControls.css b/third_party/blink/renderer/modules/media_controls/resources/modernMediaControls.css
index b883a7d..c0bc85f 100644
--- a/third_party/blink/renderer/modules/media_controls/resources/modernMediaControls.css
+++ b/third_party/blink/renderer/modules/media_controls/resources/modernMediaControls.css
@@ -1258,7 +1258,7 @@
 video::-internal-media-controls-overlay-cast-button {
     -webkit-appearance: none;
     background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_overlay_cast_off.png) 1x);
+      url(default_100_percent/modern/mediaplayer_overlay_cast_off.png) 1x);
     background-size: cover;
     background-repeat: no-repeat;
     background-position: center center;
@@ -1278,7 +1278,7 @@
 
 video::-internal-media-controls-overlay-cast-button.on {
     background-image: -webkit-image-set(
-      url(default_100_percent/legacy/mediaplayer_overlay_cast_on.png) 1x);
+      url(default_100_percent/modern/mediaplayer_overlay_cast_on.png) 1x);
 }
 
 /**
diff --git a/third_party/blink/renderer/platform/exported/mediastream/media_stream_audio_source.cc b/third_party/blink/renderer/platform/exported/mediastream/media_stream_audio_source.cc
index 434f6401..f3fc204 100644
--- a/third_party/blink/renderer/platform/exported/mediastream/media_stream_audio_source.cc
+++ b/third_party/blink/renderer/platform/exported/mediastream/media_stream_audio_source.cc
@@ -11,6 +11,9 @@
 #include "third_party/blink/public/platform/modules/mediastream/media_stream_audio_track.h"
 #include "third_party/blink/public/platform/web_media_stream_source.h"
 #include "third_party/blink/public/platform/web_string.h"
+#include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
+#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
 
 namespace blink {
 
@@ -104,8 +107,8 @@
   if (is_stopped_)
     return false;
 
-  track->Start(base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
-                          weak_factory_.GetWeakPtr(), track));
+  track->Start(WTF::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
+                         weak_factory_.GetWeakPtr(), WTF::Unretained(track)));
   DVLOG(1) << "Adding MediaStreamAudioTrack@" << track
            << " as a consumer of MediaStreamAudioSource@" << this << '.';
   deliverer_.AddConsumer(track);
@@ -196,16 +199,18 @@
   VLOG(1) << why;
 
   // Stop source when error occurs.
-  task_runner_->PostTask(
-      FROM_HERE,
-      base::BindOnce(&WebPlatformMediaStreamSource::StopSource, GetWeakPtr()));
+  PostCrossThreadTask(
+      *task_runner_, FROM_HERE,
+      CrossThreadBindOnce(&WebPlatformMediaStreamSource::StopSource,
+                          GetWeakPtr()));
 }
 
 void MediaStreamAudioSource::SetMutedState(bool muted_state) {
   DVLOG(3) << "MediaStreamAudioSource::SetMutedState state=" << muted_state;
-  task_runner_->PostTask(
-      FROM_HERE, base::BindOnce(&WebPlatformMediaStreamSource::SetSourceMuted,
-                                GetWeakPtr(), muted_state));
+  PostCrossThreadTask(
+      *task_runner_, FROM_HERE,
+      WTF::CrossThreadBindOnce(&WebPlatformMediaStreamSource::SetSourceMuted,
+                               GetWeakPtr(), muted_state));
 }
 
 base::SingleThreadTaskRunner* MediaStreamAudioSource::GetTaskRunner() const {
diff --git a/third_party/blink/renderer/platform/exported/mediastream/media_stream_audio_track.cc b/third_party/blink/renderer/platform/exported/mediastream/media_stream_audio_track.cc
index b0ddd56a..bfad789 100644
--- a/third_party/blink/renderer/platform/exported/mediastream/media_stream_audio_track.cc
+++ b/third_party/blink/renderer/platform/exported/mediastream/media_stream_audio_track.cc
@@ -96,12 +96,12 @@
   return nullptr;
 }
 
-void MediaStreamAudioTrack::Start(const base::Closure& stop_callback) {
+void MediaStreamAudioTrack::Start(base::OnceClosure stop_callback) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(!stop_callback.is_null());
   DCHECK(stop_callback_.is_null());
   DVLOG(1) << "Starting MediaStreamAudioTrack@" << this << '.';
-  stop_callback_ = stop_callback;
+  stop_callback_ = std::move(stop_callback);
 }
 
 void MediaStreamAudioTrack::StopAndNotify(base::OnceClosure callback) {
diff --git a/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc b/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc
index af217be..700e5ec 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc
+++ b/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc
@@ -2509,8 +2509,11 @@
   typedef typename DataTypeForFormat<DstFormat>::Type DstType;
   const int kIntermFormat = IntermediateFormat<DstFormat>::value;
   typedef typename DataTypeForFormat<kIntermFormat>::Type IntermType;
-  const ptrdiff_t src_stride_in_elements = src_stride_ / sizeof(SrcType);
-  const ptrdiff_t dst_stride_in_elements = dst_stride_ / sizeof(DstType);
+  // stride here could be negative.
+  const ptrdiff_t src_stride_in_elements =
+      src_stride_ / static_cast<int>(sizeof(SrcType));
+  const ptrdiff_t dst_stride_in_elements =
+      dst_stride_ / static_cast<int>(sizeof(DstType));
   const bool kTrivialUnpack = SrcFormat == kIntermFormat;
   const bool kTrivialPack = DstFormat == kIntermFormat &&
                             alphaOp == WebGLImageConversion::kAlphaDoNothing;
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.cc b/third_party/blink/renderer/platform/loader/fetch/fetch_context.cc
index 7324736..fdb78e0 100644
--- a/third_party/blink/renderer/platform/loader/fetch/fetch_context.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/fetch_context.cc
@@ -48,11 +48,6 @@
                                   WebScopedVirtualTimePauser&,
                                   ResourceType) {}
 
-void FetchContext::RecordLoadingActivity(
-    const ResourceRequest&,
-    ResourceType,
-    const AtomicString& fetch_initiator_name) {}
-
 void FetchContext::AddResourceTiming(const ResourceTimingInfo&) {}
 
 void FetchContext::PopulateResourceRequest(
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
index 73248b2e..8302973 100644
--- a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
+++ b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
@@ -99,12 +99,6 @@
                               WebScopedVirtualTimePauser& virtual_time_pauser,
                               ResourceType);
 
-  // Called when a resource load is first requested, which may not be when the
-  // load actually begins.
-  virtual void RecordLoadingActivity(const ResourceRequest&,
-                                     ResourceType,
-                                     const AtomicString& fetch_initiator_name);
-
   virtual void AddResourceTiming(const ResourceTimingInfo&);
   virtual bool AllowImage(bool, const KURL&) const { return false; }
   virtual base::Optional<ResourceRequestBlockedReason> CanRequest(
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
index 86261252..6e8e053 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
@@ -931,6 +931,11 @@
     return ResourceForBlockedRequest(
         params, factory, ResourceRequestBlockedReason::kOther, client);
   }
+
+  if (resource_load_observer_) {
+    resource_load_observer_->DidStartRequest(params, factory.GetType());
+  }
+
   // Otherwise, we assume we can send network requests and the fetch client's
   // settings object's origin is non-null.
   DCHECK(properties_->GetFetchClientSettingsObject().GetSecurityOrigin());
@@ -985,12 +990,6 @@
                                      client);
   }
 
-  if (!params.IsSpeculativePreload()) {
-    // Only log if it's not for speculative preload.
-    Context().RecordLoadingActivity(resource_request, resource_type,
-                                    params.Options().initiator_info.name);
-  }
-
   Resource* resource = nullptr;
   RevalidationPolicy policy = kLoad;
 
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc
index 4171750..8fffcb7 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc
@@ -118,6 +118,7 @@
   class TestResourceLoadObserver final : public ResourceLoadObserver {
    public:
     // ResourceLoadObserver implementation.
+    void DidStartRequest(const FetchParameters&, ResourceType) override {}
     void WillSendRequest(uint64_t identifier,
                          const ResourceRequest& request,
                          const ResourceResponse& redirect_response,
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_load_observer.h b/third_party/blink/renderer/platform/loader/fetch/resource_load_observer.h
index d1d05b7a..7c7e4e4 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_load_observer.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_load_observer.h
@@ -16,9 +16,11 @@
 namespace blink {
 
 class KURL;
+class FetchParameters;
 class ResourceError;
 class ResourceRequest;
 class ResourceResponse;
+enum class ResourceType : uint8_t;
 struct FetchInitiatorInfo;
 
 // ResourceLoadObserver is a collection of functions which meet following
@@ -39,6 +41,9 @@
  public:
   virtual ~ResourceLoadObserver() = default;
 
+  // Called when ResourceFetcher::RequestResource is called.
+  virtual void DidStartRequest(const FetchParameters&, ResourceType) = 0;
+
   // Called when the request is about to be sent. This is called on initial and
   // every redirect request.
   virtual void WillSendRequest(uint64_t identifier,
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites
index 836d0a07..8b10c0c 100644
--- a/third_party/blink/web_tests/VirtualTestSuites
+++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -1048,5 +1048,10 @@
     "prefix": "blink-cors",
     "base": "http/tests/xmlhttprequest",
     "args": ["--disable-features=OutOfBlinkCors"]
+  },
+  {
+    "prefix": "forced-colors",
+    "base": "external/wpt/css/css-forced-color-adjust",
+    "args": ["--enable-blink-features=ForcedColors"]
   }
 ]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/inheritance-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/inheritance-expected.txt
new file mode 100644
index 0000000..2711c74
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/inheritance-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+FAIL Property forced-color-adjust has initial value auto assert_true: forced-color-adjust doesn't seem to be supported in the computed style expected true got false
+FAIL Property forced-color-adjust inherits assert_true: forced-color-adjust doesn't seem to be supported in the computed style expected true got false
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/inheritance.html b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/inheritance.html
new file mode 100644
index 0000000..ca396e7
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/inheritance.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>Inheritance of CSS Forced Color Adjust properties</title>
+<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-color-adjust-prop">
+<meta name="assert" content="Properties inherit according to the spec.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/inheritance-testcommon.js"></script>
+<div id="container">
+  <div id="target"></div>
+</div>
+<script>
+  assert_inherited('forced-color-adjust', 'auto', 'none');
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-computed-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-computed-expected.txt
new file mode 100644
index 0000000..3c35187
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-computed-expected.txt
@@ -0,0 +1,11 @@
+This is a testharness.js-based test.
+FAIL Property forced-color-adjust value '' computes to 'auto' assert_true: forced-color-adjust doesn't seem to be supported in the computed style expected true got false
+FAIL Property forced-color-adjust value 'auto' computes to 'auto' assert_true: forced-color-adjust doesn't seem to be supported in the computed style expected true got false
+FAIL Property forced-color-adjust value 'none' computes to 'none' assert_true: forced-color-adjust doesn't seem to be supported in the computed style expected true got false
+FAIL Property forced-color-adjust value 'initial' computes to 'auto' assert_true: forced-color-adjust doesn't seem to be supported in the computed style expected true got false
+FAIL Property forced-color-adjust value 'inherit' computes to 'auto' assert_true: forced-color-adjust doesn't seem to be supported in the computed style expected true got false
+FAIL Property forced-color-adjust value 'unset' computes to 'auto' assert_true: forced-color-adjust doesn't seem to be supported in the computed style expected true got false
+FAIL Property forced-color-adjust value 'revert' computes to 'auto' assert_true: forced-color-adjust doesn't seem to be supported in the computed style expected true got false
+FAIL Property forced-color-adjust value 'default' computes to 'auto' assert_true: forced-color-adjust doesn't seem to be supported in the computed style expected true got false
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-computed.html b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-computed.html
new file mode 100644
index 0000000..cd9349c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-computed.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<title>CSS Forced Color Adjust: getComputedStyle for forced-color-adjust</title>
+<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-color-adjust-prop">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<div id="target"></div>
+<script>
+  test_computed_value("forced-color-adjust", "", "auto");
+  test_computed_value("forced-color-adjust", "auto");
+  test_computed_value("forced-color-adjust", "none");
+  // reserved and css-wide keywords.
+  test_computed_value("forced-color-adjust", "initial", "auto");
+  test_computed_value("forced-color-adjust", "inherit", "auto");
+  test_computed_value("forced-color-adjust", "unset", "auto");
+  test_computed_value("forced-color-adjust", "revert", "auto");
+  test_computed_value("forced-color-adjust", "default", "auto");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html
new file mode 100644
index 0000000..f1b6f69
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>CSS Forced Color Adjust: parsing forced-color-adjust with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-color-adjust-prop">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<script>
+  test_invalid_value("forced-color-adjust", "auto auto");
+  test_invalid_value("forced-color-adjust", "auto none");
+  test_invalid_value("forced-color-adjust", "none none");
+  test_invalid_value("forced-color-adjust", "none auto");
+  test_invalid_value("forced-color-adjust", "1");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-valid-expected.txt
new file mode 100644
index 0000000..d488b40
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-valid-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+FAIL e.style['forced-color-adjust'] = "none" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['forced-color-adjust'] = "auto" should set the property value assert_not_equals: property should be set got disallowed value ""
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-valid.html b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-valid.html
new file mode 100644
index 0000000..cfa36da
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-valid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<title>CSS Forced Color Adjust: parsing forced-color-adjust with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-color-adjust-prop">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<script>
+  test_valid_value("forced-color-adjust", "none");
+  test_valid_value("forced-color-adjust", "auto");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/logical.html b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/logical.html
new file mode 100644
index 0000000..e8085b0
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/logical.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>margin properties</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+for (const prefix of ['margin-', 'inset-', 'padding-']) {
+  for (const suffix of ['block-start', 'block-end', 'inline-start', 'inline-end']) {
+    runPropertyTests(prefix + suffix, [
+      // TODO: Test 'auto'
+      { syntax: '<percentage>' },
+      { syntax: '<length>' },
+    ]);
+  }
+}
+
+// TODO: test shorthands and other logical properties.
+</script>
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/resources/create-credential-test.https.html b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/resources/create-credential-test.https.html
deleted file mode 100644
index 37d78de..0000000
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/resources/create-credential-test.https.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <script>
-async function registerCredential(options = {}) {
-  options = Object.assign({
-    authenticatorSelection: {
-      requireResidentKey: false,
-    },
-    rp: {
-      id: 'devtools.test',
-      name: 'DevTools Test',
-    },
-    challenge: Uint8Array.from('challenge'),
-    pubKeyCredParams: [
-      {type: 'public-key', alg: -7},
-    ],
-    user: {
-      name: 'name',
-      displayName: 'displayName',
-      id: Uint8Array.from([1]),
-    },
-  }, options);
-
-  try {
-    const credential = await navigator.credentials.create({publicKey: options});
-    return JSON.stringify({
-      status: "OK",
-      credential: {
-        id: credential.id,
-        transports: credential.response.getTransports(),
-      }
-    });
-  } catch (error) {
-    return JSON.stringify({status: error.toString()});
-  }
-}
-  </script>
-</head>
-<body>
-</body>
-</html>
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/resources/webauthn-test.https.html b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/resources/webauthn-test.https.html
new file mode 100644
index 0000000..f34a826
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/resources/webauthn-test.https.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <script>
+function base64ToArrayBuffer(base64) {
+  return Uint8Array.from(atob(base64), c => c.charCodeAt(0)).buffer;
+}
+
+function arrayBufferToBase64(buffer) {
+  let binary = "";
+  let bytes = new Uint8Array(buffer);
+  for (let i = 0; i < bytes.byteLength; ++i)
+    binary += String.fromCharCode(bytes[i]);
+  return window.btoa(binary);
+};
+
+async function generateBase64Key() {
+  let ecKey = await window.crypto.subtle.generateKey(
+      { name: "ECDSA", namedCurve: "P-256" }, true /* extractable */, ["sign", "verify"]);
+  let privateKeyPkcs8 = await window.crypto.subtle.exportKey("pkcs8", ecKey.privateKey);
+  return arrayBufferToBase64(privateKeyPkcs8);
+};
+
+async function generateRpIdHash(rpId = "devtools.test") {
+  let hash = await window.crypto.subtle.digest(
+      { name: "SHA-256" }, new TextEncoder("utf-8").encode(rpId));
+  return arrayBufferToBase64(hash);
+}
+
+async function registerCredential(options = {}) {
+  options = Object.assign({
+    authenticatorSelection: {
+      requireResidentKey: false,
+    },
+    rp: {
+      id: "devtools.test",
+      name: "DevTools Test",
+    },
+    challenge: Uint8Array.from("challenge"),
+    pubKeyCredParams: [
+      {type: "public-key", alg: -7},
+    ],
+    user: {
+      name: "name",
+      displayName: "displayName",
+      id: Uint8Array.from([1]),
+    },
+  }, options);
+
+  try {
+    const credential = await navigator.credentials.create({publicKey: options});
+    return {
+      status: "OK",
+      credential: {
+        id: credential.id,
+        rawId: Array.from(new Uint8Array(credential.rawId)),
+        transports: credential.response.getTransports(),
+      }
+    };
+  } catch (error) {
+    return {status: error.toString()};
+  }
+}
+
+async function getCredential(credential, options = {}) {
+  options = Object.assign({
+    challenge: Uint8Array.from("Winter is Coming"),
+    rpId: "devtools.test",
+    allowCredentials: [credential],
+    userVerification: "preferred",
+  }, options);
+
+  try {
+    const attestation = await navigator.credentials.get({publicKey: options});
+    return {
+      status: "OK",
+      attestation,
+    };
+  } catch (error) {
+    return {status: error.toString()};
+  }
+}
+  </script>
+</head>
+<body>
+</body>
+</html>
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential-errors-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential-errors-expected.txt
new file mode 100644
index 0000000..8633fad
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential-errors-expected.txt
@@ -0,0 +1,34 @@
+Check that the WebAuthn command addCredential validates parameters
+{
+    error : {
+        code : -32000
+        message : The Virtual Authenticator Environment has not been enabled for this session
+    }
+    id : <number>
+    sessionId : <string>
+}
+{
+    error : {
+        code : -32602
+        message : Could not find a Virtual Authenticator matching the ID
+    }
+    id : <number>
+    sessionId : <string>
+}
+{
+    error : {
+        code : -32602
+        message : The Relying Party ID hash must have a size of 32
+    }
+    id : <number>
+    sessionId : <string>
+}
+{
+    error : {
+        code : -32000
+        message : An error occurred trying to create the credential
+    }
+    id : <number>
+    sessionId : <string>
+}
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential-errors.js b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential-errors.js
new file mode 100644
index 0000000..07c37dfc
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential-errors.js
@@ -0,0 +1,41 @@
+(async function(testRunner) {
+  var {page, session, dp} =
+      await testRunner.startURL(
+          "https://devtools.test:8443/inspector-protocol/webauthn/resources/webauthn-test.https.html",
+          "Check that the WebAuthn command addCredential validates parameters");
+
+  const credentialId = "cred-1";
+  const credentialOptions = {
+    authenticatorId: "non-existant authenticator",
+    credential: {
+      credentialId: btoa(credentialId),
+      privateKey: btoa("invalid private key"),
+      rpIdHash: btoa("invalid hash"),
+      signCount: 0,
+    }
+  };
+
+  // Try without enabling the WebAuthn environment.
+  testRunner.log(await dp.WebAuthn.addCredential(credentialOptions));
+
+  // Try for an authenticator that does not exist.
+  await dp.WebAuthn.enable();
+  testRunner.log(await dp.WebAuthn.addCredential(credentialOptions));
+
+  // Try with an invalid RP ID hash.
+  credentialOptions.authenticatorId = (await dp.WebAuthn.addVirtualAuthenticator({
+    options: {
+      protocol: "ctap2",
+      transport: "usb",
+      hasResidentKey: false,
+      hasUserVerification: false,
+    },
+  })).result.authenticatorId;
+  testRunner.log(await dp.WebAuthn.addCredential(credentialOptions));
+
+  // Try with a private key that is not valid.
+  credentialOptions.credential.rpIdHash =
+      await session.evaluateAsync("generateRpIdHash()");
+  testRunner.log(await dp.WebAuthn.addCredential(credentialOptions));
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential-expected.txt
new file mode 100644
index 0000000..dfc72b5
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential-expected.txt
@@ -0,0 +1,13 @@
+Check that the WebAuthn command addCredential works
+{
+    id : <number>
+    result : {
+    }
+    sessionId : <string>
+}
+{
+    attestation : {
+    }
+    status : OK
+}
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential.js b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential.js
new file mode 100644
index 0000000..b83497b
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-credential.js
@@ -0,0 +1,39 @@
+(async function(testRunner) {
+  var {page, session, dp} =
+      await testRunner.startURL(
+          "https://devtools.test:8443/inspector-protocol/webauthn/resources/webauthn-test.https.html",
+          "Check that the WebAuthn command addCredential works");
+
+  // Create an authenticator.
+  await dp.WebAuthn.enable();
+  const authenticatorId = (await dp.WebAuthn.addVirtualAuthenticator({
+    options: {
+      protocol: "ctap2",
+      transport: "usb",
+      hasResidentKey: false,
+      hasUserVerification: false,
+    },
+  })).result.authenticatorId;
+
+  // Register a credential.
+  const credentialId = "cred-1";
+  const addCredentialResult = (await dp.WebAuthn.addCredential({
+    authenticatorId,
+    credential: {
+      credentialId: btoa(credentialId),
+      rpIdHash: await session.evaluateAsync("generateRpIdHash()"),
+      privateKey: await session.evaluateAsync("generateBase64Key()"),
+      signCount: 0,
+    }
+  }));
+  testRunner.log(addCredentialResult);
+
+  // Authenticate with the registered credential.
+  testRunner.log(await session.evaluateAsync(`getCredential({
+    type: "public-key",
+    id: new TextEncoder().encode("${credentialId}"),
+    transports: ["usb", "ble", "nfc"],
+  })`));
+
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator.js b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator.js
index baa0313..8d164d75 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator.js
@@ -1,7 +1,7 @@
 (async function(testRunner) {
   var {page, session, dp} =
       await testRunner.startURL(
-          "https://devtools.test:8443/inspector-protocol/webauthn/resources/create-credential-test.https.html",
+          "https://devtools.test:8443/inspector-protocol/webauthn/resources/webauthn-test.https.html",
           "Check that the WebAuthn command addVirtualAuthenticator works");
 
   // Create an CTAP2 NFC authenticator and verify it is the one responding to
@@ -16,7 +16,7 @@
     },
   })).result.authenticatorId;
 
-  let result = JSON.parse(await session.evaluateAsync("registerCredential()"));
+  let result = await session.evaluateAsync("registerCredential()");
   testRunner.log(result.status);
   testRunner.log(result.credential.transports);
 
@@ -30,7 +30,7 @@
       hasUserVerification: false,
     },
   });
-  result = JSON.parse(await session.evaluateAsync("registerCredential()"));
+  result = await session.evaluateAsync("registerCredential()");
   testRunner.log(result.status);
   testRunner.log(result.credential.transports);
 
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials-errors-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials-errors-expected.txt
new file mode 100644
index 0000000..2b2f465e
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials-errors-expected.txt
@@ -0,0 +1,18 @@
+Check that the WebAuthn command clearCredentials validates parameters
+{
+    error : {
+        code : -32000
+        message : The Virtual Authenticator Environment has not been enabled for this session
+    }
+    id : <number>
+    sessionId : <string>
+}
+{
+    error : {
+        code : -32602
+        message : Could not find a Virtual Authenticator matching the ID
+    }
+    id : <number>
+    sessionId : <string>
+}
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials-errors.js b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials-errors.js
new file mode 100644
index 0000000..eea7b99
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials-errors.js
@@ -0,0 +1,18 @@
+(async function(testRunner) {
+  var {page, session, dp} =
+      await testRunner.startBlank(
+          "Check that the WebAuthn command clearCredentials validates parameters");
+
+  // Try without enabling the WebAuthn environment.
+  testRunner.log(await dp.WebAuthn.clearCredentials({
+    authenticatorId: "nonsense"
+  }));
+
+  // Try for an authenticator that does not exist.
+  await dp.WebAuthn.enable();
+  testRunner.log(await dp.WebAuthn.clearCredentials({
+    authenticatorId: "nonsense"
+  }));
+
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials-expected.txt
new file mode 100644
index 0000000..9f23ab4b
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials-expected.txt
@@ -0,0 +1,5 @@
+Check that the WebAuthn command clearCredentials works
+OK
+InvalidStateError: The user attempted to register an authenticator that contains one of the credentials already registered with the relying party.
+OK
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials.js b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials.js
new file mode 100644
index 0000000..7812884a
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-clear-credentials.js
@@ -0,0 +1,41 @@
+(async function(testRunner) {
+  var {page, session, dp} =
+      await testRunner.startURL(
+          "https://devtools.test:8443/inspector-protocol/webauthn/resources/webauthn-test.https.html",
+          "Check that the WebAuthn command clearCredentials works");
+
+  await dp.WebAuthn.enable();
+  const authenticatorId = (await dp.WebAuthn.addVirtualAuthenticator({
+    options: {
+      protocol: "ctap2",
+      transport: "usb",
+      hasResidentKey: false,
+      hasUserVerification: false,
+    },
+  })).result.authenticatorId;
+
+  // Registering a credential for the first time should succeed.
+  let result = await session.evaluateAsync("registerCredential()");
+  testRunner.log(result.status);
+
+  const registerCredentialScript = `
+    registerCredential({
+      excludeCredentials: [{
+        type: "public-key",
+        id: Uint8Array.from([${result.credential.rawId}]),
+        transports: ["usb"]
+      }],
+    })`;
+
+  // Trying to register it again should fail.
+  result = await session.evaluateAsync(registerCredentialScript);
+  testRunner.log(result.status);
+
+  // After clearing the credentials, registering it again should succeed.
+  await dp.WebAuthn.clearCredentials({authenticatorId});
+  result = await session.evaluateAsync(registerCredentialScript);
+
+  testRunner.log(result.status);
+
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-enables-virtual-environment.js b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-enables-virtual-environment.js
index d9d1611e..b8c1a16 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-enables-virtual-environment.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-enables-virtual-environment.js
@@ -1,13 +1,13 @@
 (async function(testRunner) {
   var {page, session, dp} =
       await testRunner.startURL(
-          "https://devtools.test:8443/inspector-protocol/webauthn/resources/create-credential-test.https.html",
+          "https://devtools.test:8443/inspector-protocol/webauthn/resources/webauthn-test.https.html",
           "Check that calling WebAuthn.enable starts the WebAuthn virtual " +
           "authenticator environment.");
 
   await dp.WebAuthn.enable();
 
-  const result = JSON.parse(await session.evaluateAsync("registerCredential()"));
+  const result = await session.evaluateAsync("registerCredential()");
   testRunner.log(result.status);
   testRunner.completeTest();
 })
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials-errors-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials-errors-expected.txt
new file mode 100644
index 0000000..92b8143
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials-errors-expected.txt
@@ -0,0 +1,18 @@
+Check that the WebAuthn command getCredentials validates parameters
+{
+    error : {
+        code : -32000
+        message : The Virtual Authenticator Environment has not been enabled for this session
+    }
+    id : <number>
+    sessionId : <string>
+}
+{
+    error : {
+        code : -32602
+        message : Could not find a Virtual Authenticator matching the ID
+    }
+    id : <number>
+    sessionId : <string>
+}
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials-errors.js b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials-errors.js
new file mode 100644
index 0000000..896ad37
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials-errors.js
@@ -0,0 +1,18 @@
+(async function(testRunner) {
+  var {page, session, dp} =
+      await testRunner.startBlank(
+          "Check that the WebAuthn command getCredentials validates parameters");
+
+  // Try without enabling the WebAuthn environment.
+  testRunner.log(await dp.WebAuthn.getCredentials({
+    authenticatorId: "nonsense"
+  }));
+
+  // Try for an authenticator that does not exist.
+  await dp.WebAuthn.enable();
+  testRunner.log(await dp.WebAuthn.getCredentials({
+    authenticatorId: "nonsense"
+  }));
+
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials-expected.txt
new file mode 100644
index 0000000..07e33db
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials-expected.txt
@@ -0,0 +1,24 @@
+Check that the WebAuthn command getCredentials works
+{
+    id : <number>
+    result : {
+        credentials : [
+        ]
+    }
+    sessionId : <string>
+}
+OK
+OK
+RP ID hash matches expected value
+1
+RP ID hash matches expected value
+1
+{
+    attestation : {
+    }
+    status : OK
+}
+2
+{
+}
+
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials.js b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials.js
new file mode 100644
index 0000000..0d8d8bf
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-get-credentials.js
@@ -0,0 +1,58 @@
+(async function(testRunner) {
+  var {page, session, dp} =
+      await testRunner.startURL(
+          "https://devtools.test:8443/inspector-protocol/webauthn/resources/webauthn-test.https.html",
+          "Check that the WebAuthn command getCredentials works");
+
+  await dp.WebAuthn.enable();
+  const authenticatorId = (await dp.WebAuthn.addVirtualAuthenticator({
+    options: {
+      protocol: "ctap2",
+      transport: "usb",
+      hasResidentKey: false,
+      hasUserVerification: false,
+    },
+  })).result.authenticatorId;
+
+  // No credentials registered yet.
+  testRunner.log(await dp.WebAuthn.getCredentials({authenticatorId}));
+
+  // Register two credentials.
+  testRunner.log((await session.evaluateAsync("registerCredential()")).status);
+  testRunner.log((await session.evaluateAsync("registerCredential()")).status);
+
+  // Get the registered credentials.
+  let credentials = (await dp.WebAuthn.getCredentials({authenticatorId})).result.credentials;
+  let expectedRpIdHash = await session.evaluateAsync("generateRpIdHash()");
+  for (let credential of credentials) {
+    if (credential.rpIdHash === expectedRpIdHash)
+      testRunner.log("RP ID hash matches expected value");
+    else
+      testRunner.log(`RP ID hash does not match. Actual: ${credential.rpIdHash}, expected: ${expectedRpIdHash}`);
+    testRunner.log(credential.signCount);
+  }
+
+  // Authenticating with the first credential should succeed.
+  let credential = credentials[0];
+  testRunner.log(await session.evaluateAsync(`getCredential({
+    type: "public-key",
+    id: base64ToArrayBuffer("${credential.credentialId}"),
+    transports: ["usb", "ble", "nfc"],
+  })`));
+
+  // Sign count should be increased by one for |credential|.
+  credentials = (await dp.WebAuthn.getCredentials({authenticatorId})).result.credentials;
+  testRunner.log(credentials.find(
+      cred => cred.id === credential.id).signCount);
+
+  // We should be able to parse the private key.
+  let keyData =
+      Uint8Array.from(atob(credential.privateKey), c => c.charCodeAt(0)).buffer;
+  let key = await window.crypto.subtle.importKey(
+      "pkcs8", keyData, { name: "ECDSA", namedCurve: "P-256" },
+      true /* extractable */, ["sign"]);
+
+  testRunner.log(key);
+
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-remove-virtual-authenticator-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-remove-virtual-authenticator-expected.txt
index 6dce5b3..fac04db 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-remove-virtual-authenticator-expected.txt
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-remove-virtual-authenticator-expected.txt
@@ -15,7 +15,7 @@
 }
 {
     error : {
-        code : -32000
+        code : -32602
         message : Could not find a Virtual Authenticator matching the ID
     }
     id : <number>
diff --git a/third_party/blink/web_tests/inspector-protocol/network/file-url-load-timing-expected.txt b/third_party/blink/web_tests/inspector-protocol/network/file-url-load-timing-expected.txt
new file mode 100644
index 0000000..bb0ae19
--- /dev/null
+++ b/third_party/blink/web_tests/inspector-protocol/network/file-url-load-timing-expected.txt
@@ -0,0 +1,3 @@
+Verifies that there is no ResourceTiming object in responseReceived for file urls.
+response.timing present: false
+
diff --git a/third_party/blink/web_tests/inspector-protocol/network/file-url-load-timing.js b/third_party/blink/web_tests/inspector-protocol/network/file-url-load-timing.js
new file mode 100644
index 0000000..d4e178a
--- /dev/null
+++ b/third_party/blink/web_tests/inspector-protocol/network/file-url-load-timing.js
@@ -0,0 +1,11 @@
+(async function (testRunner) {
+  const {page, session, dp} = await testRunner.startBlank(
+      `Verifies that there is no ResourceTiming object in responseReceived for file urls.`);
+
+  await dp.Network.enable();
+  const responseReceivedPromise = dp.Network.onceResponseReceived();
+  session.navigate('./resources/simple.html');
+  const responseReceived = await responseReceivedPromise;
+  testRunner.log('response.timing present: ' + !!responseReceived.params.response.timing);
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/inspector-protocol/page/frameNavigatedFragmentUrl-expected.txt b/third_party/blink/web_tests/inspector-protocol/page/frameNavigatedFragmentUrl-expected.txt
new file mode 100644
index 0000000..ad56ffd
--- /dev/null
+++ b/third_party/blink/web_tests/inspector-protocol/page/frameNavigatedFragmentUrl-expected.txt
@@ -0,0 +1,21 @@
+Tests that the url fragment is reported by Page.frameNavigated.
+No Fragment
+url = simple-iframe.html
+urlFragment = undefined
+UnreachableUrl = undefined
+
+Empty Fragment
+url = simple-iframe.html
+urlFragment = #
+UnreachableUrl = undefined
+
+Normal Fragment
+url = simple-iframe.html
+urlFragment = #fragment
+UnreachableUrl = undefined
+
+Unreachable Fragment
+url = chrome-error://chromewebdata/
+urlFragment = undefined
+UnreachableUrl = idont_exist.html#fragment
+
diff --git a/third_party/blink/web_tests/inspector-protocol/page/frameNavigatedFragmentUrl.js b/third_party/blink/web_tests/inspector-protocol/page/frameNavigatedFragmentUrl.js
new file mode 100644
index 0000000..354723f
--- /dev/null
+++ b/third_party/blink/web_tests/inspector-protocol/page/frameNavigatedFragmentUrl.js
@@ -0,0 +1,68 @@
+(async function(testRunner) {
+  var {page, session, dp} = await testRunner.startBlank(
+      'Tests that the url fragment is reported by Page.frameNavigated.');
+
+  dp.Page.enable();
+
+  function normalizeUrl(url) {
+    if (typeof url === 'undefined') return undefined;
+    return url.split('/').pop();
+  }
+
+  {
+    testRunner.log('No Fragment');
+    session.evaluate(`
+      var frame = document.createElement('iframe');
+      frame.src = '${testRunner.url('../resources/simple-iframe.html')}';
+      document.body.appendChild(frame);
+    `);
+    let result = await dp.Page.onceFrameNavigated();
+    testRunner.log('url = ' + normalizeUrl(result.params.frame.url));
+    testRunner.log('urlFragment = ' + result.params.frame.urlFragment);
+    testRunner.log('UnreachableUrl = ' + normalizeUrl(result.params.frame.unreachableUrl));
+    testRunner.log('');
+  }
+
+  {
+    testRunner.log('Empty Fragment');
+    session.evaluate(`
+      var frame = document.createElement('iframe');
+      frame.src = '${testRunner.url('../resources/simple-iframe.html#')}';
+      document.body.appendChild(frame);
+    `);
+    let result = await dp.Page.onceFrameNavigated();
+    testRunner.log('url = ' + normalizeUrl(result.params.frame.url));
+    testRunner.log('urlFragment = ' + result.params.frame.urlFragment);
+    testRunner.log('UnreachableUrl = ' + normalizeUrl(result.params.frame.unreachableUrl));
+    testRunner.log('');
+  }
+
+  {
+    testRunner.log('Normal Fragment');
+    session.evaluate(`
+      var frame = document.createElement('iframe');
+      frame.src = '${testRunner.url('../resources/simple-iframe.html#fragment')}';
+      document.body.appendChild(frame);
+    `);
+    let result = await dp.Page.onceFrameNavigated();
+
+    testRunner.log('url = ' + normalizeUrl(result.params.frame.url));
+    testRunner.log('urlFragment = ' + result.params.frame.urlFragment);
+    testRunner.log('UnreachableUrl = ' + normalizeUrl(result.params.frame.unreachableUrl));
+    testRunner.log('');
+  }
+
+  {
+    testRunner.log('Unreachable Fragment');
+    session.evaluate(`
+      var frame = document.createElement('iframe');
+      frame.src = '${testRunner.url('../resources/idont_exist.html#fragment')}';
+      document.body.appendChild(frame);
+    `);
+    let result = await dp.Page.onceFrameNavigated();
+    testRunner.log('url = ' + result.params.frame.url);
+    testRunner.log('urlFragment = ' + result.params.frame.urlFragment);
+    testRunner.log('UnreachableUrl = ' + normalizeUrl(result.params.frame.unreachableUrl));
+  }
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/notes.txt b/third_party/blink/web_tests/notes.txt
deleted file mode 100644
index 79bab2e..0000000
--- a/third_party/blink/web_tests/notes.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-What if they set animation-delay to 5s
-and then read animation
-Should it be "5s" or "0s 5s" ?
-
-What if they set animation-name to Paused
-and then read animation
-Should it be "Paused" or "running Paused" ?
diff --git a/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/README.txt b/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/README.txt
new file mode 100644
index 0000000..de185c88
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/README.txt
@@ -0,0 +1 @@
+This directory is for testing Forced Colors mode implementation.
diff --git a/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/inheritance-expected.txt b/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/inheritance-expected.txt
new file mode 100644
index 0000000..80e63c66
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/inheritance-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+PASS Property forced-color-adjust has initial value auto
+PASS Property forced-color-adjust inherits
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-computed-expected.txt b/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-computed-expected.txt
new file mode 100644
index 0000000..4664bf16
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-computed-expected.txt
@@ -0,0 +1,11 @@
+This is a testharness.js-based test.
+PASS Property forced-color-adjust value '' computes to 'auto'
+PASS Property forced-color-adjust value 'auto' computes to 'auto'
+PASS Property forced-color-adjust value 'none' computes to 'none'
+PASS Property forced-color-adjust value 'initial' computes to 'auto'
+PASS Property forced-color-adjust value 'inherit' computes to 'auto'
+PASS Property forced-color-adjust value 'unset' computes to 'auto'
+PASS Property forced-color-adjust value 'revert' computes to 'auto'
+PASS Property forced-color-adjust value 'default' computes to 'auto'
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-valid-expected.txt b/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-valid-expected.txt
new file mode 100644
index 0000000..8a0eba0
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/forced-colors/external/wpt/css/css-forced-color-adjust/parsing/forced-color-adjust-valid-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+PASS e.style['forced-color-adjust'] = "none" should set the property value
+PASS e.style['forced-color-adjust'] = "auto" should set the property value
+Harness: the test ran to completion.
+
diff --git a/third_party/closure_compiler/externs/bluetooth_private.js b/third_party/closure_compiler/externs/bluetooth_private.js
index ed569bf..0ba0571 100644
--- a/third_party/closure_compiler/externs/bluetooth_private.js
+++ b/third_party/closure_compiler/externs/bluetooth_private.js
@@ -161,8 +161,9 @@
  * Record that a pairing attempt finished. Do not record cancellations.
  * @param {boolean} success
  * @param {!chrome.bluetooth.Transport} transport
+ * @param {number} pairingDurationMs
  */
-chrome.bluetoothPrivate.recordPairing = function(success, transport) {};
+chrome.bluetoothPrivate.recordPairing = function(success, transport, pairingDurationMs) {};
 
 /**
  * Record that a user-initiated reconnection attempt to an already paired device
diff --git a/tools/binary_size/sizes.gni b/tools/binary_size/sizes.gni
index 8e208569..c79366fa 100644
--- a/tools/binary_size/sizes.gni
+++ b/tools/binary_size/sizes.gni
@@ -9,7 +9,7 @@
     forward_variables_from(invoker, [ "data" ])
     testonly = true
     executable = "//tools/binary_size/sizes.py"
-    wrapper_script = "$root_out_dir/bin/${target_name}"
+    wrapper_script = "$root_out_dir/bin/run_${target_name}"
 
     data_deps = [
       "//tools/binary_size:sizes_py",
diff --git a/tools/code_coverage/coverage.py b/tools/code_coverage/coverage.py
index 8d71110..b9a99e1 100755
--- a/tools/code_coverage/coverage.py
+++ b/tools/code_coverage/coverage.py
@@ -799,16 +799,6 @@
   os.makedirs(coverage_utils.GetCoverageReportRootDirPath(OUTPUT_DIR))
 
 
-def _SetMacXcodePath():
-  """Set DEVELOPER_DIR to the path to hermetic Xcode.app on Mac OS X."""
-  if sys.platform != 'darwin':
-    return
-
-  xcode_path = os.path.join(SRC_ROOT_PATH, 'build', 'mac_files', 'Xcode.app')
-  if os.path.exists(xcode_path):
-    os.environ['DEVELOPER_DIR'] = xcode_path
-
-
 def _ParseCommandArguments():
   """Adds and parses relevant arguments for tool comands.
 
@@ -996,11 +986,6 @@
     profdata_file_path = args.profdata_file
     binary_paths = _GetBinaryPathsFromTargets(args.targets, args.build_dir)
 
-  # DEVELOPER_DIR needs to be set when Xcode isn't in a standard location
-  # and xcode-select wasn't run.  This path needs to be set prior to calling
-  # otool which happens on mac in coverage_utils.GetSharedLibraries().
-  _SetMacXcodePath()
-
   binary_paths.extend(
       coverage_utils.GetSharedLibraries(binary_paths, BUILD_DIR))
 
diff --git a/tools/code_coverage/coverage_utils.py b/tools/code_coverage/coverage_utils.py
index fab56ce..f97a1cb 100644
--- a/tools/code_coverage/coverage_utils.py
+++ b/tools/code_coverage/coverage_utils.py
@@ -678,6 +678,9 @@
     shared_library_re = re.compile(r'.*\.so[.0-9]*\s=>\s(.*' + build_dir +
                                    r'.*\.so[.0-9]*)\s.*')
   elif sys.platform.startswith('darwin'):
+    # 'otool' is installed as part of CommandLineTools. This script makes the
+    # assumption that 'otool' is available and does not specify an explicit
+    # path.
     cmd.extend(['otool', '-L'])
     shared_library_re = re.compile(r'\s+(@rpath/.*\.dylib)\s.*')
   else:
diff --git a/tools/mb/mb.py b/tools/mb/mb.py
index b278a7b..c0489d6 100755
--- a/tools/mb/mb.py
+++ b/tools/mb/mb.py
@@ -1209,9 +1209,12 @@
                                 output_path=None)
 
     if test_type == 'generated_script':
+      script = isolate_map[target]['script']
+      if self.platform == 'win32':
+        script += '.bat'
       cmdline = [
           '../../testing/test_env.py',
-          isolate_map[target]['script'],
+          script,
       ]
     elif test_type == 'fuzzer':
       cmdline = [
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
index e5d1c177..b3cc064 100644
--- a/tools/mb/mb_config.pyl
+++ b/tools/mb/mb_config.pyl
@@ -205,7 +205,7 @@
       'Android Builder (dbg) Goma Canary': 'android_debug_static_bot_vrdata',
       'Android Builder (dbg) Goma Latest Client': 'android_debug_static_bot_vrdata',
 
-      'android-code-coverage': 'android_debug_static_bot_minimal_symbols_coverage',
+      'android-code-coverage': 'android_debug_static_bot_arm64_minimal_symbols_coverage',
       'chromeos-amd64-generic-rel-goma-canary': 'cros_chrome_sdk',
       'chromeos-amd64-generic-rel-goma-latest': 'cros_chrome_sdk',
       'chromeos-amd64-generic-rel-vm-tests': 'cros_chrome_sdk_headless_ozone_dcheck_always_on',
@@ -992,11 +992,6 @@
       'android', 'debug_static_bot',
     ],
 
-    'android_debug_static_bot_minimal_symbols_coverage': [
-      'android', 'debug_static_bot', 'minimal_symbols', 'java_coverage',
-      'strip_debug_info',
-    ],
-
     'android_debug_static_bot_vrdata': [
       'android', 'debug_static_bot', 'include_vr_data',
     ],
@@ -1005,6 +1000,11 @@
       'android', 'debug_static_bot', 'arm64',
     ],
 
+    'android_debug_static_bot_arm64_minimal_symbols_coverage': [
+      'android', 'debug_static_bot', 'arm64', 'minimal_symbols', 'java_coverage',
+      'strip_debug_info',
+    ],
+
     'android_debug_static_bot_x64': [
       'android', 'debug_static_bot', 'x64',
     ],
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index e779ee5..fe9f2c6 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -2270,6 +2270,17 @@
   <description>Please enter the description of this user action.</description>
 </action>
 
+<action name="AppList_WindowFocused">
+  <owner>newcomer@chromium.org</owner>
+  <description>
+    Emitted when the AppList has gained focus. The AppList gains focus every
+    time it is shown to the user, so this is equivalent to being emitted when
+    the AppList is shown to the user. This can be used in combination with
+    launch/activation metrics to calculate the click through rate in the
+    AppList.
+  </description>
+</action>
+
 <action name="AppList_ZeroStateOpenInstalledApp">
   <owner>jennyz@chromium.org</owner>
   <owner>newcomer@chromium.org</owner>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index ae540d0..85c8afd6 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -36856,7 +36856,7 @@
 </enum>
 
 <enum name="MappedCSSProperties">
-<!-- Generated from third_party/blink/renderer/core/frame/use_counter.cc.
+<!-- Generated from third_party/blink/renderer/core/frame/use_counter_helper.cc.
 Called by update_use_counter_css.py.-->
 
   <int value="1" label="Total Pages Measured"/>
@@ -37498,6 +37498,7 @@
   <int value="637" label="color-scheme"/>
   <int value="638" label="overflow-inline"/>
   <int value="639" label="overflow-block"/>
+  <int value="640" label="forced-color-adjust"/>
 </enum>
 
 <enum name="MappedEditingCommands">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 007f19bc4..2dbf1acb 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -4478,11 +4478,15 @@
   </summary>
 </histogram>
 
-<histogram name="Apps.AppListShowSource" enum="AppListShowSource">
+<histogram name="Apps.AppListShowSource" enum="AppListShowSource"
+    expires_after="2020-01-01">
   <owner>newcomer@chromium.org</owner>
   <summary>
     The number of times the different sources for showing the app list are used.
-    This is logged when the app list is shown.
+    This is logged when the app list is shown. Does not count the app list shown
+    when the last window is closed in tablet mode. This is not the total number
+    of times the app list is shown to the user; for that consult the user action
+    AppList_WindowFocused.
   </summary>
 </histogram>
 
@@ -14225,6 +14229,32 @@
   </summary>
 </histogram>
 
+<histogram name="Bluetooth.ChromeOS.Pairing.Duration.Failure" units="ms"
+    expires_after="2020-06-06">
+<!-- Name completed by histogram_suffixes name="BluetoothTransportTypes" -->
+
+  <owner>hansberry@chromium.org</owner>
+  <summary>
+    Records how long it takes for a failed pairing attempt, initiated from
+    Bluetooth Settings or System Tray, to finish. If the user needed to go
+    through an auth process during pairing, the time the user took to confirm
+    that is not included.
+  </summary>
+</histogram>
+
+<histogram name="Bluetooth.ChromeOS.Pairing.Duration.Success" units="ms"
+    expires_after="2020-06-06">
+<!-- Name completed by histogram_suffixes name="BluetoothTransportTypes" -->
+
+  <owner>hansberry@chromium.org</owner>
+  <summary>
+    Records how long it takes for a successful pairing attempt, initiated from
+    Bluetooth Settings or System Tray, to finish. If the user needed to go
+    through an auth process during pairing, the time the user took to confirm
+    that is not included.
+  </summary>
+</histogram>
+
 <histogram name="Bluetooth.ChromeOS.Pairing.Result" enum="BooleanSuccess"
     expires_after="2020-05-02">
 <!-- Name completed by histogram_suffixes name="BluetoothTransportTypes" -->
@@ -16566,6 +16596,16 @@
   </summary>
 </histogram>
 
+<histogram name="ChildProcess.HungRendererAvailableMemoryMB" units="MB"
+    expires_after="M79">
+  <owner>cduvall@chromium.org</owner>
+  <owner>cmumford@chromium.org</owner>
+  <summary>
+    The amount of avaiable memory when a renderer hangs. Recorded for every
+    renderer hang.
+  </summary>
+</histogram>
+
 <histogram name="ChildProcess.HungRendererCause"
     enum="RendererUnresponsiveCause" expires_after="M74">
   <obsolete>
@@ -147778,6 +147818,7 @@
   <suffix name="devtools" label="Developer Tools Module"/>
   <suffix name="tab_ui" label="Tab Management Module"/>
   <suffix name="vr" label="Virtual Reality Module"/>
+  <affected-histogram name="Android.FeatureModules.AvailabilityStatus"/>
   <affected-histogram name="Android.FeatureModules.CachedInstallDuration"/>
   <affected-histogram
       name="Android.FeatureModules.CachedInstallDuration.Downloading"/>
@@ -148628,6 +148669,8 @@
   <suffix name="BLE"/>
   <suffix name="Classic"/>
   <suffix name="Dual"/>
+  <affected-histogram name="Bluetooth.ChromeOS.Pairing.Duration.Failure"/>
+  <affected-histogram name="Bluetooth.ChromeOS.Pairing.Duration.Success"/>
   <affected-histogram name="Bluetooth.ChromeOS.Pairing.Result"/>
 </histogram_suffixes>
 
@@ -151771,6 +151814,7 @@
   <suffix name="Notification" label="Update initiated from the notification"/>
   <suffix name="Unknown" label="Update initiated from an unknown source"/>
   <affected-histogram name="GoogleUpdate.Result.Session.Inline"/>
+  <affected-histogram name="GoogleUpdate.Result.Session.Intent"/>
   <affected-histogram name="GoogleUpdate.Result.Session.Unknown"/>
   <affected-histogram name="GoogleUpdate.Result.TimeWindow.Inline"/>
   <affected-histogram name="GoogleUpdate.Result.TimeWindow.Intent"/>
diff --git a/tools/metrics/histograms/update_use_counter_css.py b/tools/metrics/histograms/update_use_counter_css.py
index 7e77492..9011fcb5 100755
--- a/tools/metrics/histograms/update_use_counter_css.py
+++ b/tools/metrics/histograms/update_use_counter_css.py
@@ -21,7 +21,8 @@
 import update_use_counter_feature_enum
 
 
-USE_COUNTER_CPP_PATH = 'third_party/blink/renderer/core/frame/use_counter.cc'
+USE_COUNTER_CPP_PATH = 'third_party/blink/renderer/core/frame'\
+                       '/use_counter_helper.cc'
 
 
 def EnumToCssProperty(enum_name):
diff --git a/tools/perf/core/perf_data_generator.py b/tools/perf/core/perf_data_generator.py
index 4b9c18a..d162ea7 100755
--- a/tools/perf/core/perf_data_generator.py
+++ b/tools/perf/core/perf_data_generator.py
@@ -149,6 +149,7 @@
       # TODO(crbug.com/971204): Explicitly set the gpu to None to make
       # chromium_swarming recipe_module ignore this dimension.
       'gpu': None,
+      'os': 'Windows-10',
     },
   },
 }
diff --git a/ui/aura/BUILD.gn b/ui/aura/BUILD.gn
index 179eabc..9af63977 100644
--- a/ui/aura/BUILD.gn
+++ b/ui/aura/BUILD.gn
@@ -112,7 +112,6 @@
     "//gpu/ipc/client",
     "//mojo/public/cpp/system",
     "//services/service_manager/public/cpp",
-    "//services/ws/public/mojom",
     "//skia",
     "//ui/base",
     "//ui/base/clipboard",
@@ -217,7 +216,6 @@
     "//cc:test_support",
     "//components/viz/test:test_support",
     "//services/ws/public/cpp/input_devices",
-    "//services/ws/public/mojom",
     "//skia",
     "//testing/gtest",
     "//ui/base:test_support",
@@ -314,7 +312,6 @@
     "//cc/mojo_embedder",
     "//components/viz/client",
     "//mojo/core/embedder",
-    "//services/ws/public/mojom",
     "//skia",
     "//testing/gtest",
     "//ui/aura_extra",
diff --git a/ui/aura/DEPS b/ui/aura/DEPS
index 7f00c7e..1825fdd 100644
--- a/ui/aura/DEPS
+++ b/ui/aura/DEPS
@@ -11,7 +11,6 @@
   "+mojo/public/cpp",
   "+services/service_manager/public/cpp",
   "+services/service_manager/public/mojom",
-  "+services/ws/public/mojom",
   "+skia/ext",
   "+third_party/skia",
   "+ui/base",
diff --git a/ui/aura/window_tree_host_unittest.cc b/ui/aura/window_tree_host_unittest.cc
index cd73b939..46e15ec5 100644
--- a/ui/aura/window_tree_host_unittest.cc
+++ b/ui/aura/window_tree_host_unittest.cc
@@ -97,7 +97,7 @@
 
   // UI compositor overrides HDR color space based on whether alpha blending is
   // needed or not.
-  test_screen()->SetColorSpace(gfx::ColorSpace::CreateSCRGBLinear());
+  test_screen()->SetColorSpace(gfx::ColorSpace::CreateHDR10());
   host()->compositor()->SetBackgroundColor(SK_ColorBLACK);
   EXPECT_EQ(gfx::ColorSpace::CreateHDR10(),
             host()->compositor()->output_color_space());
diff --git a/ui/chromeos/BUILD.gn b/ui/chromeos/BUILD.gn
index 3d7f749..2304b337 100644
--- a/ui/chromeos/BUILD.gn
+++ b/ui/chromeos/BUILD.gn
@@ -37,7 +37,6 @@
     "//mojo/public/cpp/bindings",
     "//services/device/public/mojom",
     "//services/service_manager/public/cpp",
-    "//services/ws/public/mojom",
     "//skia",
     "//ui/aura",
     "//ui/base",
diff --git a/ui/chromeos/DEPS b/ui/chromeos/DEPS
index b2859c8c..d2d41de 100644
--- a/ui/chromeos/DEPS
+++ b/ui/chromeos/DEPS
@@ -7,7 +7,6 @@
   "+mojo/public/cpp/bindings",
   "+services/device/public",
   "+services/service_manager/public",
-  "+services/ws/public/mojom",
   "+third_party/cros_system_api",
   "+third_party/skia",
   "+ui/accessibility",
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
index a8b5ebb2..6a633d5 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984">ملف <ph name="FILE_TYPE" /></translation>
 <translation id="457386861538956877">المزيد...</translation>
 <translation id="4582497162516204941">‏التثبيت باستخدام Linux (إصدار تجريبي)</translation>
+<translation id="4594543368593301662">يتم عرض نتائج عن <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">الفنان</translation>
 <translation id="4656293982926141856">هذا الكمبيوتر</translation>
 <translation id="4669606053856530811">سيفقد أعضاء '<ph name="SOURCE_NAME" />' إمكانية الوصول ما لم تتم مشاركة هذه العناصر معهم.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">لوحة المفاتيح البلغارية</translation>
 <translation id="5418923334382419584">لوحة مفاتيح اللغة المينمارية</translation>
 <translation id="5428105026674456456">الإسبانية</translation>
+<translation id="5438282218546237410">لا توجد نتائج تخص <ph name="SEARCH_TERM" />.</translation>
 <translation id="5464696796438641524">لوحة المفاتيح البولندية</translation>
 <translation id="5465122519792752163">‏لوحة مفاتيح اللغة النيبالية (InScript)</translation>
 <translation id="5469868506864199649">الإيطالية</translation>
 <translation id="5494920125229734069">تحديد الكل</translation>
 <translation id="5500122897333236901">الأيسلندية</translation>
 <translation id="5508696409934741614">نقاط</translation>
+<translation id="5522908512596376669">تم تغيير قائمة الملفات إلى عرض القائمة.</translation>
 <translation id="5524517123096967210">تعذرت قراءة الملف.</translation>
 <translation id="5533102081734025921">صورة <ph name="IMAGE_TYPE" /></translation>
 <translation id="5533555070048896610">‏التحويل الصوتي (ناماستي ← नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">إغلاق</translation>
 <translation id="6054173164583630569">لوحة المفاتيح الفرنسية</translation>
 <translation id="6074825444536523002">‏نموذج Google</translation>
+<translation id="6096979789310008754">تم محو نص البحث، ويتم عرض جميع الملفات والمجلدات.</translation>
 <translation id="6111770213269631447">‏التحويل الصوتي (ناماسكار ← নমস্কার)</translation>
 <translation id="6129953537138746214">مسافة</translation>
 <translation id="6133173853026656527">جارٍ نقل <ph name="FILE_NAME" />...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">فيل</translation>
 <translation id="8569764466147087991">تحديد ملف لفتحه</translation>
 <translation id="8579285237314169903">جارٍ مزامنة <ph name="NUMBER_OF_FILES" /> من البنود...</translation>
+<translation id="8600173386174225982">تم تغيير قائمة الملف إلى عرض الصور المصغرة.</translation>
 <translation id="8669949407341943408">جارٍ النقل...</translation>
 <translation id="8671210955687109937">يمكن التعليق</translation>
 <translation id="8686213429977032554">‏لم تتم مشاركة ملف Drive هذا بعد</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_da.xtb b/ui/chromeos/translations/ui_chromeos_strings_da.xtb
index ec088af..a8676ea 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_da.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_da.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" />-fil</translation>
 <translation id="457386861538956877">Flere...</translation>
 <translation id="4582497162516204941">Installer med Linux (beta)</translation>
+<translation id="4594543368593301662">Viser resultater for <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">Kunstner</translation>
 <translation id="4656293982926141856">Denne computer</translation>
 <translation id="4669606053856530811">Medlemmer af "<ph name="SOURCE_NAME" />" mister adgang, medmindre disse elementer deles med dem.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Bulgarsk tastatur</translation>
 <translation id="5418923334382419584">Myanmarsk tastatur</translation>
 <translation id="5428105026674456456">Spansk</translation>
+<translation id="5438282218546237410">Der er ingen resultater for <ph name="SEARCH_TERM" />.</translation>
 <translation id="5464696796438641524">Polsk tastatur</translation>
 <translation id="5465122519792752163">Nepalesisk tastatur (InScript)</translation>
 <translation id="5469868506864199649">Italiensk</translation>
 <translation id="5494920125229734069">Vælg alle</translation>
 <translation id="5500122897333236901">Islandsk</translation>
 <translation id="5508696409934741614">Prikker</translation>
+<translation id="5522908512596376669">Der blev skiftet til listevisning for listen med filer.</translation>
 <translation id="5524517123096967210">Filen kunne ikke læses.</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" />-billede</translation>
 <translation id="5533555070048896610">Translitteration (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Luk</translation>
 <translation id="6054173164583630569">Fransk tastatur</translation>
 <translation id="6074825444536523002">Google-formular</translation>
+<translation id="6096979789310008754">Søgeteksten blev ryddet. Viser alle filer og mapper.</translation>
 <translation id="6111770213269631447">Translitteration (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Mellemrum</translation>
 <translation id="6133173853026656527">Flytter <ph name="FILE_NAME" />...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Elefant</translation>
 <translation id="8569764466147087991">Vælg den fil, der skal åbnes</translation>
 <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> elementer synkroniseres...</translation>
+<translation id="8600173386174225982">Der blev skiftet til miniaturevisning for listen med filer.</translation>
 <translation id="8669949407341943408">Flytter…</translation>
 <translation id="8671210955687109937">Kan kommentere</translation>
 <translation id="8686213429977032554">Denne Drev-fil deles ikke endnu</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_de.xtb b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
index 67380867e..d4e5410b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_de.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" />-Datei</translation>
 <translation id="457386861538956877">Mehr...</translation>
 <translation id="4582497162516204941">Installation mit Linux (Beta)</translation>
+<translation id="4594543368593301662">Ergebnisse für <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">Musiker</translation>
 <translation id="4656293982926141856">Auf diesem Computer</translation>
 <translation id="4669606053856530811">Mitglieder von "<ph name="SOURCE_NAME" />" verlieren den Zugriff, sofern Sie diese Dateien nicht mit ihnen teilen.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Bulgarische Tastatur</translation>
 <translation id="5418923334382419584">Birmanische Tastatur</translation>
 <translation id="5428105026674456456">Spanisch</translation>
+<translation id="5438282218546237410">Für "<ph name="SEARCH_TERM" />" gibt es keine Ergebnisse.</translation>
 <translation id="5464696796438641524">Polnische Tastatur</translation>
 <translation id="5465122519792752163">Nepali-Tastatur (InScript)</translation>
 <translation id="5469868506864199649">Italienisch</translation>
 <translation id="5494920125229734069">Alle auswählen</translation>
 <translation id="5500122897333236901">Isländisch</translation>
 <translation id="5508696409934741614">Punkte</translation>
+<translation id="5522908512596376669">Die Dateiliste wird jetzt in der Listenansicht angezeigt.</translation>
 <translation id="5524517123096967210">Die Datei konnte nicht gelesen werden.</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" />-Bild</translation>
 <translation id="5533555070048896610">Transliteration (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Schließen</translation>
 <translation id="6054173164583630569">Französische Tastatur</translation>
 <translation id="6074825444536523002">Google-Formular</translation>
+<translation id="6096979789310008754">Die Sucheingabe wurde gelöscht. Alle Dateien und Ordner werden angezeigt.</translation>
 <translation id="6111770213269631447">Transliteration (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Leerzeichen</translation>
 <translation id="6133173853026656527"><ph name="FILE_NAME" /> wird verschoben...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Elefant</translation>
 <translation id="8569764466147087991">Zu öffnende Datei auswählen</translation>
 <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> Elemente werden synchronisiert...</translation>
+<translation id="8600173386174225982">Die Dateiliste wird jetzt in der Miniaturbildansicht angezeigt.</translation>
 <translation id="8669949407341943408">Verschieben...</translation>
 <translation id="8671210955687109937">Darf kommentieren</translation>
 <translation id="8686213429977032554">Die Drive-Datei wurde noch nicht geteilt.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es.xtb b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
index 0553282d..35ccefd1 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_es.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984">Archivo <ph name="FILE_TYPE" /></translation>
 <translation id="457386861538956877">Más...</translation>
 <translation id="4582497162516204941">Instalar con Linux (Beta)</translation>
+<translation id="4594543368593301662">Mostrando resultados de <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">Artista</translation>
 <translation id="4656293982926141856">Este ordenador</translation>
 <translation id="4669606053856530811">Los miembros de "<ph name="SOURCE_NAME" />" dejarán de tener acceso a menos que estos elementos se compartan con ellos.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Teclado búlgaro</translation>
 <translation id="5418923334382419584">Teclado birmano</translation>
 <translation id="5428105026674456456">Español</translation>
+<translation id="5438282218546237410">No hay ningún resultado para <ph name="SEARCH_TERM" />.</translation>
 <translation id="5464696796438641524">Teclado polaco</translation>
 <translation id="5465122519792752163">Teclado nepalí (caracteres hindúes)</translation>
 <translation id="5469868506864199649">Italiano</translation>
 <translation id="5494920125229734069">Seleccionar todo</translation>
 <translation id="5500122897333236901">Islandés</translation>
 <translation id="5508696409934741614">Puntos</translation>
+<translation id="5522908512596376669">La lista de archivos ha cambiado a la vista de lista.</translation>
 <translation id="5524517123096967210">No se ha podido leer el archivo.</translation>
 <translation id="5533102081734025921">Imagen <ph name="IMAGE_TYPE" /></translation>
 <translation id="5533555070048896610">Transliteración (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Cerrar</translation>
 <translation id="6054173164583630569">Teclado francés</translation>
 <translation id="6074825444536523002">Formulario de Google</translation>
+<translation id="6096979789310008754">Se ha borrado el texto de búsqueda y se muestran todos los archivos y carpetas.</translation>
 <translation id="6111770213269631447">Transliteración (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Espacio</translation>
 <translation id="6133173853026656527">Moviendo <ph name="FILE_NAME" />...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Elefante</translation>
 <translation id="8569764466147087991">Selecciona un archivo para abrir</translation>
 <translation id="8579285237314169903">Sincronizando <ph name="NUMBER_OF_FILES" /> elementos...</translation>
+<translation id="8600173386174225982">La lista de archivos ha cambiado a la vista de miniaturas.</translation>
 <translation id="8669949407341943408">Moviendo...</translation>
 <translation id="8671210955687109937">Puede comentar</translation>
 <translation id="8686213429977032554">Este archivo de Drive aún no se ha compartido</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
index 3a22c889..877bce2 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984">فایل <ph name="FILE_TYPE" /></translation>
 <translation id="457386861538956877">بیشتر...</translation>
 <translation id="4582497162516204941">‏نصب با Linux (بتا)</translation>
+<translation id="4594543368593301662">درحال نمایش نتایج برای <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">هنرمند</translation>
 <translation id="4656293982926141856">این رایانه</translation>
 <translation id="4669606053856530811">اگر این موارد با اعضای «<ph name="SOURCE_NAME" />» هم‌رسانی نشوند، دسترسی را از دست خواهند داد.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">صفحه‌کلید بلغاری</translation>
 <translation id="5418923334382419584">صفحه‌کلید میانماری</translation>
 <translation id="5428105026674456456">اسپانیایی</translation>
+<translation id="5438282218546237410">نتیجه‌ای برای <ph name="SEARCH_TERM" /> پیدا نشد.</translation>
 <translation id="5464696796438641524">صفحه‌کلید لهستانی</translation>
 <translation id="5465122519792752163">صفحه‌کلید نپالی (حروف هندی)</translation>
 <translation id="5469868506864199649">ایتالیایی</translation>
 <translation id="5494920125229734069">انتخاب همه</translation>
 <translation id="5500122897333236901">ایسلندی</translation>
 <translation id="5508696409934741614">نقطه‌ها</translation>
+<translation id="5522908512596376669">نمای فهرست فایل به نمای فهرستی تغییر کرده است.</translation>
 <translation id="5524517123096967210">امکان خواندن فایل وجود نداشت.</translation>
 <translation id="5533102081734025921">تصویر <ph name="IMAGE_TYPE" /></translation>
 <translation id="5533555070048896610">‏نویسه‌گردانی (namaste ← ‏नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">بستن</translation>
 <translation id="6054173164583630569">صفحه‌کلید فرانسوی</translation>
 <translation id="6074825444536523002">‏فرم Google</translation>
+<translation id="6096979789310008754">نوشتار جستجو پاک شد، همه فایل‌ها و پوشه‌ها نشان داده می‌شود.</translation>
 <translation id="6111770213269631447">‏نویسه‌گردانی (namaskar ← ‏নমস্কার)</translation>
 <translation id="6129953537138746214">فاصله</translation>
 <translation id="6133173853026656527">در حال انتقال <ph name="FILE_NAME" /></translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">فیل</translation>
 <translation id="8569764466147087991">انتخاب فایلی برای باز کردن</translation>
 <translation id="8579285237314169903">در حال همگام‌سازی <ph name="NUMBER_OF_FILES" /> مورد...</translation>
+<translation id="8600173386174225982">فهرست فایل به نمای تصویر کوچک تغییر کرده است.</translation>
 <translation id="8669949407341943408">در حال انتقال...</translation>
 <translation id="8671210955687109937">می‌تواند نظر بدهد</translation>
 <translation id="8686213429977032554">‏این فایل Drive هنوز به اشتراک گذاشته نشده است</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
index 93335e99..7d566ce 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ફાઇલ</translation>
 <translation id="457386861538956877">વધુ...</translation>
 <translation id="4582497162516204941">Linux (બીટા) ઇન્સ્ટૉલ કરો</translation>
+<translation id="4594543368593301662"><ph name="SEARCH_TERM" /> માટે પરિણામો બતાવી રહ્યાં છીએ.</translation>
 <translation id="4631887759990505102">કલાકાર</translation>
 <translation id="4656293982926141856">આ કમ્પ્યુટર</translation>
 <translation id="4669606053856530811">'<ph name="SOURCE_NAME" />'ના સભ્યો ઍક્સેસ ગુમાવશે સિવાય કે આ આઇટમને તેમની સાથે શેર કરવામાં ન આવી હોય.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">બલ્ગેરિયન કીબોર્ડ</translation>
 <translation id="5418923334382419584">મ્યાંમાર કીબોર્ડ</translation>
 <translation id="5428105026674456456">સ્પેનિશ</translation>
+<translation id="5438282218546237410"><ph name="SEARCH_TERM" /> માટે કોઈ પરિણામ નથી.</translation>
 <translation id="5464696796438641524">પૉલીશ કીબોર્ડ</translation>
 <translation id="5465122519792752163">નેપાળી કીબોર્ડ (ઇનસ્ક્રિપ્ટ)</translation>
 <translation id="5469868506864199649">ઇટાલિયન</translation>
 <translation id="5494920125229734069">બધા પસંદ કરો</translation>
 <translation id="5500122897333236901">આઇસલેન્ડિક</translation>
 <translation id="5508696409934741614">બિંદુઓ</translation>
+<translation id="5522908512596376669">ફાઇલ સૂચિને સૂચિ દૃશ્યમાં બદલી છે.</translation>
 <translation id="5524517123096967210">ફાઇલ વાંચી શકાઈ નથી.</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" /> છબી</translation>
 <translation id="5533555070048896610">લિવ્યંતરણ (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">બંધ કરો</translation>
 <translation id="6054173164583630569">ફ્રેંચ કીબોર્ડ</translation>
 <translation id="6074825444536523002">Google ફોર્મ</translation>
+<translation id="6096979789310008754">શોધ ટેક્સ્ટ સાફ કરી, બધી ફાઇલો અને ફોલ્ડરો બતાવવામાં આવી રહ્યાં છે.</translation>
 <translation id="6111770213269631447">લિવ્યંતરણ (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">જગ્યા</translation>
 <translation id="6133173853026656527"><ph name="FILE_NAME" /> ખસેડાઈ રહી છે...</translation>
@@ -648,6 +652,7 @@
 <translation id="8561206103590473338">હાથી</translation>
 <translation id="8569764466147087991">ખોલવા માટે એક ફાઇલ પસંદ કરો</translation>
 <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> આઇટમ્સ સમન્વયિત કરી રહ્યાં છે...</translation>
+<translation id="8600173386174225982">ફાઇલ સૂચિને થંબનેલ દૃશ્યમાં બદલી છે.</translation>
 <translation id="8669949407341943408">ખસેડી રહ્યું છે...</translation>
 <translation id="8671210955687109937">ટિપ્પણી કરી શકે છે</translation>
 <translation id="8686213429977032554">આ ડ્રાઇવ ફાઇલ હજી સુધી શેર કરી નથી</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_id.xtb b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
index 720511fd..8ec0168 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_id.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984">File <ph name="FILE_TYPE" /></translation>
 <translation id="457386861538956877">Lainnya...</translation>
 <translation id="4582497162516204941">Instal dengan Linux (Beta)</translation>
+<translation id="4594543368593301662">Menampilkan hasil untuk <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">Artis</translation>
 <translation id="4656293982926141856">Komputer ini</translation>
 <translation id="4669606053856530811">Anggota '<ph name="SOURCE_NAME" />' akan kehilangan akses kecuali jika item berikut dibagikan dengan mereka.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Keyboard untuk bahasa Bulgaria</translation>
 <translation id="5418923334382419584">Keyboard Myanmar</translation>
 <translation id="5428105026674456456">Spanyol</translation>
+<translation id="5438282218546237410">Tidak ada hasil untuk <ph name="SEARCH_TERM" />.</translation>
 <translation id="5464696796438641524">Keyboard untuk bahasa Polandia</translation>
 <translation id="5465122519792752163">Keyboard Nepali (Dalam Skrip)</translation>
 <translation id="5469868506864199649">Italia</translation>
 <translation id="5494920125229734069">Pilih semua</translation>
 <translation id="5500122897333236901">Islandia</translation>
 <translation id="5508696409934741614">Titik</translation>
+<translation id="5522908512596376669">Daftar file telah berubah menjadi tampilan daftar.</translation>
 <translation id="5524517123096967210">File tidak dapat dibaca.</translation>
 <translation id="5533102081734025921">Gambar <ph name="IMAGE_TYPE" /></translation>
 <translation id="5533555070048896610">Transliterasi (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Tutup</translation>
 <translation id="6054173164583630569">Keyboard untuk bahasa Prancis</translation>
 <translation id="6074825444536523002">Google Formulir</translation>
+<translation id="6096979789310008754">Teks penelusuran dihapus, menampilkan semua file dan folder.</translation>
 <translation id="6111770213269631447">Transliterasi (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Spasi</translation>
 <translation id="6133173853026656527">Memindahkan <ph name="FILE_NAME" />...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Gajah</translation>
 <translation id="8569764466147087991">Pilih file yang akan dibuka</translation>
 <translation id="8579285237314169903">Menyinkronkan <ph name="NUMBER_OF_FILES" /> item...</translation>
+<translation id="8600173386174225982">Daftar file telah diubah menjadi tampilan thumbnail.</translation>
 <translation id="8669949407341943408">Memindahkan...</translation>
 <translation id="8671210955687109937">Dapat mengomentari</translation>
 <translation id="8686213429977032554">File Drive ini belum dibagikan</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
index 3c33828..daa16863 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ファイル</translation>
 <translation id="457386861538956877">その他...</translation>
 <translation id="4582497162516204941">Linux(ベータ版)でのインストール</translation>
+<translation id="4594543368593301662">「<ph name="SEARCH_TERM" />」の検索結果を表示しています。</translation>
 <translation id="4631887759990505102">アーティスト</translation>
 <translation id="4656293982926141856">このパソコン</translation>
 <translation id="4669606053856530811">「<ph name="SOURCE_NAME" />」のメンバーはこれらのアイテムにアクセスできなくなります(ただし個別に共有されている場合はアクセス可能です)。</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">ブルガリア語のキーボード</translation>
 <translation id="5418923334382419584">ミャンマー語キーボード</translation>
 <translation id="5428105026674456456">スペイン語</translation>
+<translation id="5438282218546237410"><ph name="SEARCH_TERM" /> に一致する検索結果はありません。</translation>
 <translation id="5464696796438641524">ポーランド語のキーボード</translation>
 <translation id="5465122519792752163">ネパール語キーボード(字母)</translation>
 <translation id="5469868506864199649">イタリア語</translation>
 <translation id="5494920125229734069">すべて選択する</translation>
 <translation id="5500122897333236901">アイスランド語</translation>
 <translation id="5508696409934741614">ドット</translation>
+<translation id="5522908512596376669">ファイルの一覧がリスト表示に切り替わりました。</translation>
 <translation id="5524517123096967210">ファイルを読むことができませんでした。</translation>
 <translation id="5533102081734025921">画像(<ph name="IMAGE_TYPE" />)</translation>
 <translation id="5533555070048896610">文字変換(namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">閉じる</translation>
 <translation id="6054173164583630569">フランス語のキーボード</translation>
 <translation id="6074825444536523002">Google フォーム</translation>
+<translation id="6096979789310008754">検索語句を削除しました。すべてのファイルとフォルダを表示しています。</translation>
 <translation id="6111770213269631447">文字変換(namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Space</translation>
 <translation id="6133173853026656527"><ph name="FILE_NAME" /> を移動しています...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">ゾウ</translation>
 <translation id="8569764466147087991">ファイルを選択して開く</translation>
 <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> 個のアイテムを同期しています...</translation>
+<translation id="8600173386174225982">ファイルの一覧がサムネイル表示に切り替わりました。</translation>
 <translation id="8669949407341943408">移動しています...</translation>
 <translation id="8671210955687109937">閲覧者(コメント可)</translation>
 <translation id="8686213429977032554">未共有のドライブ ファイル</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
index b92d5c0..df0d562 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
@@ -282,6 +282,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ಫೈಲ್</translation>
 <translation id="457386861538956877">ಇನ್ನಷ್ಟು...</translation>
 <translation id="4582497162516204941">Linux (ಬೀಟಾ) ನೊಂದಿಗೆ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
+<translation id="4594543368593301662"><ph name="SEARCH_TERM" /> ಗಾಗಿ ಫಲಿತಾಂಶಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ.</translation>
 <translation id="4631887759990505102">ಕಲೆಗಾರ</translation>
 <translation id="4656293982926141856">ಈ ಕಂಪ್ಯೂಟರ್</translation>
 <translation id="4669606053856530811"><ph name="SOURCE_NAME" /> ನ ಸದಸ್ಯರೊಂದಿಗೆ ಈ ಐಟಂಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳದ ಹೊರತು ಅವರು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತಾರೆ.</translation>
@@ -381,12 +382,14 @@
 <translation id="5412637665001827670">ಬಲ್ಗೇರಿಯನ್ ಕೀಬೋರ್ಡ್</translation>
 <translation id="5418923334382419584">ಮ್ಯಾನ್ಮಾರ್ ಕೀಬೋರ್ಡ್</translation>
 <translation id="5428105026674456456">ಸ್ಪ್ಯಾನಿಶ್</translation>
+<translation id="5438282218546237410"><ph name="SEARCH_TERM" /> ಗಾಗಿ ಯಾವುದೇ ಫಲಿತಾಂಶಗಳಿಲ್ಲ.</translation>
 <translation id="5464696796438641524">ಪೋಲಿಷ್ ಕೀಬೋರ್ಡ್</translation>
 <translation id="5465122519792752163">ನೇಪಾಳಿ ಕೀಬೋರ್ಡ್‌ (ಇನ್‌ಸ್ಕ್ರಿಪ್ಟ್)</translation>
 <translation id="5469868506864199649">ಇಟಾಲಿಯನ್</translation>
 <translation id="5494920125229734069">ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="5500122897333236901">ಐಸ್‌ಲ್ಯಾಂಡಿಕ್</translation>
 <translation id="5508696409934741614">ಚುಕ್ಕೆಗಳು</translation>
+<translation id="5522908512596376669">ಫೈಲ್ ಪಟ್ಟಿಯನ್ನು, ಪಟ್ಟಿ ವೀಕ್ಷಣೆಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ.</translation>
 <translation id="5524517123096967210">ಫೈಲ್ ಅನ್ನು ಓದಲಾಗಲಿಲ್ಲ.</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" /> ಚಿತ್ರ</translation>
 <translation id="5533555070048896610">ಲಿಪ್ಯಂತರಣ (namaste → नमस्ते)</translation>
@@ -431,6 +434,7 @@
 <translation id="6040143037577758943">ಮುಚ್ಚಿರಿ</translation>
 <translation id="6054173164583630569">ಫ್ರೆಂಚ್ ಕೀಬೋರ್ಡ್</translation>
 <translation id="6074825444536523002">Google ಫಾರ್ಮ್</translation>
+<translation id="6096979789310008754">ಹುಡುಕಾಟ ಪಠ್ಯವನ್ನು ತೆರವುಗೊಳಿಸಲಾಗಿದೆ, ಎಲ್ಲಾ ಫೈಲ್‌ಗಳು ಮತ್ತು ಫೋಲ್ಡರ್‌ಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ.</translation>
 <translation id="6111770213269631447">ಲಿಪ್ಯಂತರಣ (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">ಸ್ಪೇಸ್</translation>
 <translation id="6133173853026656527"><ph name="FILE_NAME" /> ಗೆ ಸರಿಸಲಾಗುತ್ತಿದೆ...</translation>
@@ -638,6 +642,7 @@
 <translation id="8561206103590473338">ಆನೆ</translation>
 <translation id="8569764466147087991">ತೆರೆಯಲು ಫೈಲ್‌ವೊಂದನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> ಐಟಂಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation>
+<translation id="8600173386174225982">ಫೈಲ್ ಪಟ್ಟಿಯನ್ನು, ಥಂಬ್‌ನೇಲ್ ವೀಕ್ಷಣೆಗೆ ಬದಲಿಸಲಾಗಿದೆ.</translation>
 <translation id="8669949407341943408">ಸರಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="8671210955687109937">ಕಾಮೆಂಟ್ ಮಾಡಬಹುದು</translation>
 <translation id="8686213429977032554">ಈ ಡ್ರೈವ್ ಫೈಲ್ ಅನ್ನು ಇನ್ನೂ ಹಂಚಿಕೊಳ್ಳಲಾಗಿಲ್ಲ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
index 0ac7d26..7e3325c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> 파일</translation>
 <translation id="457386861538956877">더보기...</translation>
 <translation id="4582497162516204941">Linux(베타)로 설치</translation>
+<translation id="4594543368593301662"><ph name="SEARCH_TERM" />에 관한 검색결과를 표시합니다.</translation>
 <translation id="4631887759990505102">아티스트</translation>
 <translation id="4656293982926141856">이 컴퓨터</translation>
 <translation id="4669606053856530811">이 항목을 '<ph name="SOURCE_NAME" />'의 멤버와 공유하지 않으면 이 팀의 멤버가 항목에 더 이상 액세스할 수 없게 됩니다.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">불가리아어 키보드</translation>
 <translation id="5418923334382419584">미얀마어 키보드</translation>
 <translation id="5428105026674456456">스페인어</translation>
+<translation id="5438282218546237410"><ph name="SEARCH_TERM" />에 관한 검색결과가 없습니다.</translation>
 <translation id="5464696796438641524">폴란드어 키보드</translation>
 <translation id="5465122519792752163">네팔어 키보드(InScript)</translation>
 <translation id="5469868506864199649">이탈리아어</translation>
 <translation id="5494920125229734069">모두 선택</translation>
 <translation id="5500122897333236901">아이슬란드어</translation>
 <translation id="5508696409934741614">점</translation>
+<translation id="5522908512596376669">파일 목록을 목록 보기로 변경했습니다.</translation>
 <translation id="5524517123096967210">파일을 읽지 못했습니다.</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" /> 이미지</translation>
 <translation id="5533555070048896610">음역(namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">닫기</translation>
 <translation id="6054173164583630569">프랑스어 키보드</translation>
 <translation id="6074825444536523002">Google 양식</translation>
+<translation id="6096979789310008754">검색어가 삭제되었으며, 모든 파일과 폴더가 표시됩니다.</translation>
 <translation id="6111770213269631447">음역(namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">공백</translation>
 <translation id="6133173853026656527"><ph name="FILE_NAME" /> 이동 중...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">코끼리</translation>
 <translation id="8569764466147087991">열려는 파일 선택</translation>
 <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" />개 항목 동기화 중...</translation>
+<translation id="8600173386174225982">파일 목록을 미리보기 이미지 뷰로 변경했습니다.</translation>
 <translation id="8669949407341943408">이동 중...</translation>
 <translation id="8671210955687109937">댓글 가능</translation>
 <translation id="8686213429977032554">드라이브 파일이 아직 공유되지 않음</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ms.xtb b/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
index cde67286..5f9c483e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984">Fail <ph name="FILE_TYPE" /></translation>
 <translation id="457386861538956877">Lagi...</translation>
 <translation id="4582497162516204941">Pasang dengan Linux (Beta)</translation>
+<translation id="4594543368593301662">Menunjukkan hasil untuk <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">Artis</translation>
 <translation id="4656293982926141856">Komputer ini</translation>
 <translation id="4669606053856530811">Ahli '<ph name="SOURCE_NAME" />' akan kehilangan akses melainkan item ini dikongsi dengan mereka.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Papan kekunci Bulgaria</translation>
 <translation id="5418923334382419584">Papan kekunci bahasa Myanmar</translation>
 <translation id="5428105026674456456">Bahasa Sepanyol</translation>
+<translation id="5438282218546237410">Tiada hasil carian untuk <ph name="SEARCH_TERM" />.</translation>
 <translation id="5464696796438641524">Papan kekunci Poland</translation>
 <translation id="5465122519792752163">Papan kekunci bahasa Nepal (InSkrip)</translation>
 <translation id="5469868506864199649">Bahasa Itali</translation>
 <translation id="5494920125229734069">Pilih semua</translation>
 <translation id="5500122897333236901">Bahasa Iceland</translation>
 <translation id="5508696409934741614">Titik</translation>
+<translation id="5522908512596376669">Senarai fail telah berubah kepada paparan senarai.</translation>
 <translation id="5524517123096967210">Fail tidak boleh dibaca.</translation>
 <translation id="5533102081734025921">Imej <ph name="IMAGE_TYPE" /></translation>
 <translation id="5533555070048896610">Pengalihan huruf (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Tutup</translation>
 <translation id="6054173164583630569">Papan kekunci Perancis</translation>
 <translation id="6074825444536523002">Borang Google</translation>
+<translation id="6096979789310008754">Carian teks dikosongkan, menunjukkan semua fail dan folder.</translation>
 <translation id="6111770213269631447">Pengalihan huruf (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Ruang</translation>
 <translation id="6133173853026656527">Memindahkan <ph name="FILE_NAME" />...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Gajah</translation>
 <translation id="8569764466147087991">Pilih fail untuk dibuka</translation>
 <translation id="8579285237314169903">Menyegerakkan <ph name="NUMBER_OF_FILES" /> item...</translation>
+<translation id="8600173386174225982">Senarai fail telah berubah kepada paparan lakaran kecil.</translation>
 <translation id="8669949407341943408">Bergerak...</translation>
 <translation id="8671210955687109937">Boleh ulas</translation>
 <translation id="8686213429977032554">Fail Drive ini belum dikongsi lagi</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_nl.xtb b/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
index d4c84a65..0e1378d 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" />-bestand</translation>
 <translation id="457386861538956877">Meer...</translation>
 <translation id="4582497162516204941">Installeren met Linux (bèta)</translation>
+<translation id="4594543368593301662">Resultaten voor <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">Artiest</translation>
 <translation id="4656293982926141856">Deze computer</translation>
 <translation id="4669606053856530811">Leden van '<ph name="SOURCE_NAME" />' hebben geen toegang meer, tenzij deze items met ze zijn gedeeld.</translation>
@@ -384,12 +385,14 @@
 <translation id="5412637665001827670">Bulgaars toetsenbord</translation>
 <translation id="5418923334382419584">Birmaans toetsenbord</translation>
 <translation id="5428105026674456456">Spaans</translation>
+<translation id="5438282218546237410">Geen resultaten voor <ph name="SEARCH_TERM" />.</translation>
 <translation id="5464696796438641524">Pools toetsenbord</translation>
 <translation id="5465122519792752163">Nepalees toetsenbord (InScript)</translation>
 <translation id="5469868506864199649">Italiaans</translation>
 <translation id="5494920125229734069">Alles selecteren</translation>
 <translation id="5500122897333236901">IJslands</translation>
 <translation id="5508696409934741614">Stippen</translation>
+<translation id="5522908512596376669">Bestandslijst is gewijzigd naar lijstweergave.</translation>
 <translation id="5524517123096967210">Het bestand kan niet worden gelezen.</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" />-afbeelding</translation>
 <translation id="5533555070048896610">Transliteratie (namaste → नमस्ते)</translation>
@@ -436,6 +439,7 @@
 <translation id="6040143037577758943">Sluiten</translation>
 <translation id="6054173164583630569">Frans toetsenbord</translation>
 <translation id="6074825444536523002">Google-formulier</translation>
+<translation id="6096979789310008754">Zoektekst is gewist, alle bestanden en mappen worden weergegeven.</translation>
 <translation id="6111770213269631447">Transliteratie (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Spatie</translation>
 <translation id="6133173853026656527"><ph name="FILE_NAME" /> verplaatsen...</translation>
@@ -651,6 +655,7 @@
 <translation id="8561206103590473338">Olifant</translation>
 <translation id="8569764466147087991">Selecteer een bestand om te openen</translation>
 <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> items synchroniseren...</translation>
+<translation id="8600173386174225982">Bestandslijst is gewijzigd naar miniatuurweergave.</translation>
 <translation id="8669949407341943408">Verplaatsen…</translation>
 <translation id="8671210955687109937">Mag reageren</translation>
 <translation id="8686213429977032554">Dit Drive-bestand is nog niet gedeeld</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
index e2f276a..4b21203 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984">Arquivo <ph name="FILE_TYPE" /></translation>
 <translation id="457386861538956877">Mais...</translation>
 <translation id="4582497162516204941">Instalar com o Linux (Beta)</translation>
+<translation id="4594543368593301662">Exibindo resultados para <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">Artista</translation>
 <translation id="4656293982926141856">Neste computador</translation>
 <translation id="4669606053856530811">Membros de '<ph name="SOURCE_NAME" />' perderão acesso a menos que esses itens sejam compartilhados com eles.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Teclado búlgaro</translation>
 <translation id="5418923334382419584">Teclado em birmanês</translation>
 <translation id="5428105026674456456">Espanhol</translation>
+<translation id="5438282218546237410">Não há resultados para <ph name="SEARCH_TERM" />.</translation>
 <translation id="5464696796438641524">Teclado polonês</translation>
 <translation id="5465122519792752163">Teclado em nepalês (InScript)</translation>
 <translation id="5469868506864199649">Italiano</translation>
 <translation id="5494920125229734069">Selecionar tudo</translation>
 <translation id="5500122897333236901">Islandês</translation>
 <translation id="5508696409934741614">Pontos</translation>
+<translation id="5522908512596376669">A lista de arquivos foi alterada para a visualização em lista.</translation>
 <translation id="5524517123096967210">Não foi possível ler o arquivo.</translation>
 <translation id="5533102081734025921">Imagem <ph name="IMAGE_TYPE" /></translation>
 <translation id="5533555070048896610">Transliteração (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Fechar</translation>
 <translation id="6054173164583630569">Teclado francês</translation>
 <translation id="6074825444536523002">Formulário do Google</translation>
+<translation id="6096979789310008754">Texto de pesquisa apagado, exibindo todos os arquivos e pastas.</translation>
 <translation id="6111770213269631447">Transliteração (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Espaço</translation>
 <translation id="6133173853026656527">Transferindo <ph name="FILE_NAME" />...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Elefante</translation>
 <translation id="8569764466147087991">Selecionar um arquivo para ser aberto</translation>
 <translation id="8579285237314169903">Sincronizando <ph name="NUMBER_OF_FILES" /> itens...</translation>
+<translation id="8600173386174225982">A lista de arquivos foi alterada para a visualização em miniatura.</translation>
 <translation id="8669949407341943408">Movendo...</translation>
 <translation id="8671210955687109937">Pode comentar</translation>
 <translation id="8686213429977032554">Este arquivo do Google Drive ainda não foi compartilhado.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
index 1488a172..5e1bcf6 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" />-файл</translation>
 <translation id="457386861538956877">Ещё...</translation>
 <translation id="4582497162516204941">Установка Linux (бета)</translation>
+<translation id="4594543368593301662">Результаты поиска по запросу "<ph name="SEARCH_TERM" />".</translation>
 <translation id="4631887759990505102">Исполнитель</translation>
 <translation id="4656293982926141856">С компьютера</translation>
 <translation id="4669606053856530811">Пользователи общего диска "<ph name="SOURCE_NAME" />" больше не смогут использовать эти объекты, если к ним не будет включен общий доступ.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Болгарская раскладка</translation>
 <translation id="5418923334382419584">Бирманская раскладка</translation>
 <translation id="5428105026674456456">Испанский</translation>
+<translation id="5438282218546237410">По запросу "<ph name="SEARCH_TERM" />" ничего не найдено.</translation>
 <translation id="5464696796438641524">Польская раскладка</translation>
 <translation id="5465122519792752163">Непальская раскладка (InScript)</translation>
 <translation id="5469868506864199649">Итальянский</translation>
 <translation id="5494920125229734069">Выделить все</translation>
 <translation id="5500122897333236901">Исландский</translation>
 <translation id="5508696409934741614">Точки</translation>
+<translation id="5522908512596376669">Файлы отображаются в виде списка.</translation>
 <translation id="5524517123096967210">Не удалось прочитать файл.</translation>
 <translation id="5533102081734025921">Изображение <ph name="IMAGE_TYPE" /></translation>
 <translation id="5533555070048896610">Транслитерация (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Закрыть</translation>
 <translation id="6054173164583630569">Французская раскладка</translation>
 <translation id="6074825444536523002">Форма Google</translation>
+<translation id="6096979789310008754">Поисковый запрос удален. Показаны все файлы и папки.</translation>
 <translation id="6111770213269631447">Транслитерация (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Пробел</translation>
 <translation id="6133173853026656527">Перемещение файла "<ph name="FILE_NAME" />"…</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Слон</translation>
 <translation id="8569764466147087991">Выберите файл</translation>
 <translation id="8579285237314169903">Синхронизация файлов (<ph name="NUMBER_OF_FILES" />)...</translation>
+<translation id="8600173386174225982">Файлы отображаются в виде значков.</translation>
 <translation id="8669949407341943408">Перемещение...</translation>
 <translation id="8671210955687109937">Комментирование</translation>
 <translation id="8686213429977032554">К этому файлу на Диске пока нет доступа</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
index 7431e4e..e73881c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" />-fil</translation>
 <translation id="457386861538956877">Mer...</translation>
 <translation id="4582497162516204941">Installera med Linux (beta)</translation>
+<translation id="4594543368593301662">Visar resultat för <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">Artist</translation>
 <translation id="4656293982926141856">Den här datorn</translation>
 <translation id="4669606053856530811">De som använder <ph name="SOURCE_NAME" /> förlorar åtkomsten till objekten såvida de inte delas med dem.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Bulgariskt tangentbord</translation>
 <translation id="5418923334382419584">Burmesiskt tangentbord</translation>
 <translation id="5428105026674456456">spanska</translation>
+<translation id="5438282218546237410">Det finns inga resultat för <ph name="SEARCH_TERM" />.</translation>
 <translation id="5464696796438641524">Polskt tangentbord</translation>
 <translation id="5465122519792752163">Nepalesiskt tangentbord (InScript)</translation>
 <translation id="5469868506864199649">italienska</translation>
 <translation id="5494920125229734069">Markera alla</translation>
 <translation id="5500122897333236901">isländska</translation>
 <translation id="5508696409934741614">Punkter</translation>
+<translation id="5522908512596376669">Fillistan har ändrats till listvy.</translation>
 <translation id="5524517123096967210">Det gick inte att läsa filen.</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" />-bild</translation>
 <translation id="5533555070048896610">Translitterering (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Stäng</translation>
 <translation id="6054173164583630569">Franskt tangentbord</translation>
 <translation id="6074825444536523002">Formulär från Google</translation>
+<translation id="6096979789310008754">Söktexten har tagits bort och alla filer och mappar visas.</translation>
 <translation id="6111770213269631447">Translitterering (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Blanksteg</translation>
 <translation id="6133173853026656527"><ph name="FILE_NAME" /> flyttas ...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Elefant</translation>
 <translation id="8569764466147087991">Välj fil att öppna</translation>
 <translation id="8579285237314169903">Synkroniserar <ph name="NUMBER_OF_FILES" /> objekt ...</translation>
+<translation id="8600173386174225982">Fillistan har ändrats till miniatyrvy.</translation>
 <translation id="8669949407341943408">Flyttar …</translation>
 <translation id="8671210955687109937">Kan kommentera</translation>
 <translation id="8686213429977032554">Den här filen i Drive delas inte ännu</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_te.xtb b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
index ea9554c..a66ea31 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_te.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ఫైల్</translation>
 <translation id="457386861538956877">మరిన్ని...</translation>
 <translation id="4582497162516204941">Linux (బీటా)తో ఇన్‌స్టాల్ చేయండి</translation>
+<translation id="4594543368593301662"><ph name="SEARCH_TERM" /> ఫలితాలను చూపుతోంది.</translation>
 <translation id="4631887759990505102">చిత్రకారుడు</translation>
 <translation id="4656293982926141856">ఈ కంప్యూటర్</translation>
 <translation id="4669606053856530811">'<ph name="SOURCE_NAME" />' యొక్క సభ్యులతో ఈ అంశాలను షేర్ చేస్తే మినహా వారు యాక్సెస్‌ను కోల్పోతారు.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">బల్గేరియన్ కీబోర్డ్</translation>
 <translation id="5418923334382419584">మయన్మార్ కీబోర్డ్</translation>
 <translation id="5428105026674456456">స్పానిష్</translation>
+<translation id="5438282218546237410"><ph name="SEARCH_TERM" />కు సంబంధించిన శోధన ఫలితాలేవీ లేవు.</translation>
 <translation id="5464696796438641524">పోలిష్ కీబోర్డ్</translation>
 <translation id="5465122519792752163">నేపాలీ కీబోర్డ్ (ఇన్‌స్క్రిప్ట్)</translation>
 <translation id="5469868506864199649">ఇటాలియన్</translation>
 <translation id="5494920125229734069">అన్నీ ఎంచుకోండి</translation>
 <translation id="5500122897333236901">ఐస్‌లాండిక్</translation>
 <translation id="5508696409934741614">చుక్కలు</translation>
+<translation id="5522908512596376669">ఫైల్ జాబితా, "జాబితా వీక్షణ"కు మార్చబడింది.</translation>
 <translation id="5524517123096967210">ఫైల్‌ను చదవడం సాధ్యపడదు.</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" /> చిత్రం</translation>
 <translation id="5533555070048896610">లిప్యంతరీకరణ (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">మూసివేయి</translation>
 <translation id="6054173164583630569">ఫ్రెంచ్ కీబోర్డ్</translation>
 <translation id="6074825444536523002">Google ఫారమ్</translation>
+<translation id="6096979789310008754">శోధన వచనం క్లియర్ చేయబడింది, అన్ని ఫైల్‌లు మరియు ఫోల్డర్‌లు చూపబడుతున్నాయి.</translation>
 <translation id="6111770213269631447">లిప్యంతరీకరణ (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">ఖాళీ</translation>
 <translation id="6133173853026656527"><ph name="FILE_NAME" />ని తరలిస్తోంది...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">ఏనుగు</translation>
 <translation id="8569764466147087991">తెరవడానికి ఫైల్‌ని ఎంచుకోండి</translation>
 <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> అంశాలను సమకాలీకరిస్తోంది...</translation>
+<translation id="8600173386174225982">ఫైల్ జాబితా, "సూక్ష్మచిత్ర వీక్షణ"కు మార్చబడింది.</translation>
 <translation id="8669949407341943408">తరలించబడుతున్నాయి...</translation>
 <translation id="8671210955687109937">వ్యాఖ్యానించవచ్చు</translation>
 <translation id="8686213429977032554">ఈ డిస్క్ ఫైల్ ఇంకా భాగస్వామ్యం చేయబడలేదు</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
index 27a933d..41a4f82 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> dosyası</translation>
 <translation id="457386861538956877">Diğer...</translation>
 <translation id="4582497162516204941">Linux (Beta) ile yükle</translation>
+<translation id="4594543368593301662"><ph name="SEARCH_TERM" /> için sonuçlar gösteriliyor.</translation>
 <translation id="4631887759990505102">Sanatçı</translation>
 <translation id="4656293982926141856">Bu bilgisayar</translation>
 <translation id="4669606053856530811">"<ph name="SOURCE_NAME" />" kaynağının üyeleri, bu öğeler kendileriyle paylaşılmadığı sürece erişimi kaybedecektir.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Bulgarca klavye</translation>
 <translation id="5418923334382419584">Myanmar klavye</translation>
 <translation id="5428105026674456456">İspanyolca</translation>
+<translation id="5438282218546237410"><ph name="SEARCH_TERM" /> için sonuç yok.</translation>
 <translation id="5464696796438641524">Lehçe klavye</translation>
 <translation id="5465122519792752163">Nepalce klavye (InScript)</translation>
 <translation id="5469868506864199649">İtalyanca</translation>
 <translation id="5494920125229734069">Tümünü seç</translation>
 <translation id="5500122897333236901">İzlanda dili</translation>
 <translation id="5508696409934741614">Noktalar</translation>
+<translation id="5522908512596376669">Dosya listesi, liste görünümü olarak değiştirildi.</translation>
 <translation id="5524517123096967210">Dosya okunamadı.</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" /> resmi</translation>
 <translation id="5533555070048896610">Harf çevirisi (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Kapat</translation>
 <translation id="6054173164583630569">Fransızca klavye</translation>
 <translation id="6074825444536523002">Google formu</translation>
+<translation id="6096979789310008754">Arama metni temizlendi, tüm dosya ve klasörler gösteriliyor.</translation>
 <translation id="6111770213269631447">Harf çevirisi (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Boşluk</translation>
 <translation id="6133173853026656527"><ph name="FILE_NAME" /> taşınıyor...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Fil</translation>
 <translation id="8569764466147087991">Açılacak dosyayı seçin</translation>
 <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> öğe senkronize ediliyor...</translation>
+<translation id="8600173386174225982">Dosya listesi, küçük resim görünümü olarak değiştirildi.</translation>
 <translation id="8669949407341943408">Taşınıyor...</translation>
 <translation id="8671210955687109937">Yorum yapabilir</translation>
 <translation id="8686213429977032554">Bu Drive dosyası henüz paylaşılmamış</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
index 466491a..1657ee4e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984">Файл <ph name="FILE_TYPE" /></translation>
 <translation id="457386861538956877">Інші...</translation>
 <translation id="4582497162516204941">Установити з Linux (бета-версія)</translation>
+<translation id="4594543368593301662">Результати для запиту "<ph name="SEARCH_TERM" />".</translation>
 <translation id="4631887759990505102">Виконавець</translation>
 <translation id="4656293982926141856">На цьому комп’ютері</translation>
 <translation id="4669606053856530811">Учасники, які мають доступ до розташування "<ph name="SOURCE_NAME" />", втратять доступ до елементів, якими з ними не поділилися.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Болгарська розкладка</translation>
 <translation id="5418923334382419584">Мʼянмська клавіатура</translation>
 <translation id="5428105026674456456">Іспанська</translation>
+<translation id="5438282218546237410">Немає результатів для запиту "<ph name="SEARCH_TERM" />".</translation>
 <translation id="5464696796438641524">Польська розкладка</translation>
 <translation id="5465122519792752163">Непальська клавіатура (індійські шрифти)</translation>
 <translation id="5469868506864199649">Італійська</translation>
 <translation id="5494920125229734069">Вибрати все</translation>
 <translation id="5500122897333236901">Ісландська</translation>
 <translation id="5508696409934741614">Крапки</translation>
+<translation id="5522908512596376669">Список файлів тепер відображається у вигляді списку.</translation>
 <translation id="5524517123096967210">Файл неможливо прочитати.</translation>
 <translation id="5533102081734025921">Зображення <ph name="IMAGE_TYPE" /></translation>
 <translation id="5533555070048896610">Транслітерація (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Закрити</translation>
 <translation id="6054173164583630569">Французька розкладка</translation>
 <translation id="6074825444536523002">Форма Google</translation>
+<translation id="6096979789310008754">Текст пошукового запиту стерто, показано всі папки та файли.</translation>
 <translation id="6111770213269631447">Транслітерація (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Пробіл</translation>
 <translation id="6133173853026656527">Переміщення файлу <ph name="FILE_NAME" />…</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Слон</translation>
 <translation id="8569764466147087991">Виберіть файл, який потрібно відкрити</translation>
 <translation id="8579285237314169903">Синхронізація стількох елементів: <ph name="NUMBER_OF_FILES" />…</translation>
+<translation id="8600173386174225982">Список файлів тепер відображається у вигляді ескізів.</translation>
 <translation id="8669949407341943408">Переміщення…</translation>
 <translation id="8671210955687109937">Може коментувати</translation>
 <translation id="8686213429977032554">Доступ до цього файлу Диска ще не надано</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
index d737a7e..3185b6c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984">Tệp <ph name="FILE_TYPE" /></translation>
 <translation id="457386861538956877">Thêm...</translation>
 <translation id="4582497162516204941">Cài đặt bằng Linux (Beta)</translation>
+<translation id="4594543368593301662">Đang hiển thị kết quả cho <ph name="SEARCH_TERM" />.</translation>
 <translation id="4631887759990505102">Nghệ sĩ</translation>
 <translation id="4656293982926141856">Máy tính này</translation>
 <translation id="4669606053856530811">Thành viên của '<ph name="SOURCE_NAME" />' sẽ mất quyền truy cập trừ khi bạn chia sẻ các mục này với họ.</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">Bàn phím tiếng Bungari</translation>
 <translation id="5418923334382419584">Bàn phím tiếng Myanmar</translation>
 <translation id="5428105026674456456">Tiếng Tây Ban Nha</translation>
+<translation id="5438282218546237410">Không có kết quả nào cho <ph name="SEARCH_TERM" />.</translation>
 <translation id="5464696796438641524">Bàn phím tiếng Ba Lan</translation>
 <translation id="5465122519792752163">Bàn phím tiếng Nepal (InScript)</translation>
 <translation id="5469868506864199649">Tiếng Ý</translation>
 <translation id="5494920125229734069">Chọn tất cả</translation>
 <translation id="5500122897333236901">Tiếng Ai-xơ-len</translation>
 <translation id="5508696409934741614">Dấu chấm</translation>
+<translation id="5522908512596376669">Danh sách tệp đã thay đổi thành chế độ xem danh sách.</translation>
 <translation id="5524517123096967210">Không thể đọc tệp.</translation>
 <translation id="5533102081734025921">Hình ảnh <ph name="IMAGE_TYPE" /></translation>
 <translation id="5533555070048896610">Chuyển ngữ (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">Đóng</translation>
 <translation id="6054173164583630569">Bàn phím tiếng Pháp</translation>
 <translation id="6074825444536523002">Biểu mẫu Google</translation>
+<translation id="6096979789310008754">Đã xóa nội dung tìm kiếm, đang hiển thị tất cả các tệp và thư mục.</translation>
 <translation id="6111770213269631447">Chuyển ngữ (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">Dấu cách</translation>
 <translation id="6133173853026656527">Đang di chuyển <ph name="FILE_NAME" />...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">Voi</translation>
 <translation id="8569764466147087991">Chọn tệp để mở</translation>
 <translation id="8579285237314169903">Đang đồng bộ hóa <ph name="NUMBER_OF_FILES" /> mục...</translation>
+<translation id="8600173386174225982">Danh sách tệp đã thay đổi thành chế độ xem hình thu nhỏ.</translation>
 <translation id="8669949407341943408">Đang di chuyển...</translation>
 <translation id="8671210955687109937">Có thể nhận xét</translation>
 <translation id="8686213429977032554">Tệp Drive này chưa được chia sẻ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
index 49af035..28ac053 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> 文件</translation>
 <translation id="457386861538956877">更多...</translation>
 <translation id="4582497162516204941">通过 Linux(测试版)安装</translation>
+<translation id="4594543368593301662">目前显示的是与“<ph name="SEARCH_TERM" />”相符的搜索结果。</translation>
 <translation id="4631887759990505102">艺术家</translation>
 <translation id="4656293982926141856">此计算机</translation>
 <translation id="4669606053856530811">“<ph name="SOURCE_NAME" />”的成员将不再能够访问这些内容(除非与他们共享了这些内容)。</translation>
@@ -378,12 +379,14 @@
 <translation id="5412637665001827670">保加利亚语键盘</translation>
 <translation id="5418923334382419584">缅甸语键盘</translation>
 <translation id="5428105026674456456">西班牙语</translation>
+<translation id="5438282218546237410">没有与“<ph name="SEARCH_TERM" />”相符的结果。</translation>
 <translation id="5464696796438641524">波兰语键盘</translation>
 <translation id="5465122519792752163">尼泊尔语键盘(InScript)</translation>
 <translation id="5469868506864199649">意大利语</translation>
 <translation id="5494920125229734069">全选</translation>
 <translation id="5500122897333236901">冰岛语</translation>
 <translation id="5508696409934741614">圆点</translation>
+<translation id="5522908512596376669">文件列表已切换到列表视图。</translation>
 <translation id="5524517123096967210">无法读取该文件。</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" /> 图片</translation>
 <translation id="5533555070048896610">音译(namaste → नमस्ते)</translation>
@@ -430,6 +433,7 @@
 <translation id="6040143037577758943">关闭</translation>
 <translation id="6054173164583630569">法语键盘</translation>
 <translation id="6074825444536523002">Google 表单</translation>
+<translation id="6096979789310008754">已清除搜索文本,目前显示的是所有文件和文件夹。</translation>
 <translation id="6111770213269631447">音译(namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">空格</translation>
 <translation id="6133173853026656527">正在移动<ph name="FILE_NAME" />…</translation>
@@ -645,6 +649,7 @@
 <translation id="8561206103590473338">大象</translation>
 <translation id="8569764466147087991">选择要打开的文件</translation>
 <translation id="8579285237314169903">正在同步 <ph name="NUMBER_OF_FILES" /> 个文件…</translation>
+<translation id="8600173386174225982">文件列表已切换到缩略图视图。</translation>
 <translation id="8669949407341943408">正在移动…</translation>
 <translation id="8671210955687109937">可以评论</translation>
 <translation id="8686213429977032554">此云端硬盘文件尚未共享</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
index c6ba1c6..614e2a5a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
@@ -286,6 +286,7 @@
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> 檔案</translation>
 <translation id="457386861538956877">更多…</translation>
 <translation id="4582497162516204941">透過 Linux (測試版) 執行安裝程序</translation>
+<translation id="4594543368593301662">目前顯示的是「<ph name="SEARCH_TERM" />」的搜尋結果。</translation>
 <translation id="4631887759990505102">演出者</translation>
 <translation id="4656293982926141856">這台電腦</translation>
 <translation id="4669606053856530811">「<ph name="SOURCE_NAME" />」的成員將失去存取權,除非有人與他們共用這些項目。</translation>
@@ -383,12 +384,14 @@
 <translation id="5412637665001827670">保加利亞文鍵盤</translation>
 <translation id="5418923334382419584">緬甸文鍵盤</translation>
 <translation id="5428105026674456456">西班牙文</translation>
+<translation id="5438282218546237410">找不到與「<ph name="SEARCH_TERM" />」相符的結果。</translation>
 <translation id="5464696796438641524">波蘭文鍵盤</translation>
 <translation id="5465122519792752163">尼泊爾文鍵盤 (InScript)</translation>
 <translation id="5469868506864199649">義大利文</translation>
 <translation id="5494920125229734069">全選</translation>
 <translation id="5500122897333236901">冰島文</translation>
 <translation id="5508696409934741614">圓點</translation>
+<translation id="5522908512596376669">檔案清單已變更為清單檢視模式。</translation>
 <translation id="5524517123096967210">無法讀取檔案。</translation>
 <translation id="5533102081734025921"><ph name="IMAGE_TYPE" /> 圖片</translation>
 <translation id="5533555070048896610">音譯 (namaste → नमस्ते)</translation>
@@ -435,6 +438,7 @@
 <translation id="6040143037577758943">關閉</translation>
 <translation id="6054173164583630569">法文鍵盤</translation>
 <translation id="6074825444536523002">Google 表單</translation>
+<translation id="6096979789310008754">已清除搜尋文字,正在顯示所有檔案和資料夾。</translation>
 <translation id="6111770213269631447">音譯 (namaskar → নমস্কার)</translation>
 <translation id="6129953537138746214">空格</translation>
 <translation id="6133173853026656527">正在移動 <ph name="FILE_NAME" />...</translation>
@@ -650,6 +654,7 @@
 <translation id="8561206103590473338">大象</translation>
 <translation id="8569764466147087991">選取要開啟的檔案</translation>
 <translation id="8579285237314169903">正在同步處理 <ph name="NUMBER_OF_FILES" /> 個項目...</translation>
+<translation id="8600173386174225982">檔案清單已變更為縮圖檢視模式。</translation>
 <translation id="8669949407341943408">移動中...</translation>
 <translation id="8671210955687109937">可以註解</translation>
 <translation id="8686213429977032554">這個雲端硬碟檔案尚未與你共用</translation>
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
index 15c98e2b..0b6b01d 100644
--- a/ui/compositor/compositor.cc
+++ b/ui/compositor/compositor.cc
@@ -414,12 +414,11 @@
   gfx::ColorSpace output_color_space = color_space;
 
 #if defined(OS_WIN)
-  // Ensure output color space for HDR is linear if we need alpha blending, and
-  // HDR10 (BT.2020 primaries with PQ transfer function) otherwise.
   if (color_space.IsHDR()) {
     bool transparent = SkColorGetA(host_->background_color()) != SK_AlphaOPAQUE;
-    output_color_space = transparent ? gfx::ColorSpace::CreateSCRGBLinear()
-                                     : gfx::ColorSpace::CreateHDR10();
+    // Ensure output color space for HDR is linear if we need alpha blending.
+    if (transparent)
+      output_color_space = gfx::ColorSpace::CreateSCRGBLinear();
     output_color_space = output_color_space.GetScaledColorSpace(
         gfx::ColorSpace::kDefaultSDRWhiteLevel / sdr_white_level);
   }
@@ -456,7 +455,12 @@
 void Compositor::SetBackgroundColor(SkColor color) {
   host_->set_background_color(color);
   // Update color space based on whether background color is transparent.
-  SetDisplayColorSpace(output_color_space_, sdr_white_level_);
+  if (output_color_space_.IsHDR()) {
+    gfx::ColorSpace unscaled_color_space =
+        output_color_space_.GetScaledColorSpace(
+            sdr_white_level_ / gfx::ColorSpace::kDefaultSDRWhiteLevel);
+    SetDisplayColorSpace(unscaled_color_space, sdr_white_level_);
+  }
   ScheduleDraw();
 }
 
diff --git a/ui/display/display.cc b/ui/display/display.cc
index e7778157..f2153337b 100644
--- a/ui/display/display.cc
+++ b/ui/display/display.cc
@@ -21,12 +21,14 @@
 namespace display {
 namespace {
 
-constexpr int DEFAULT_BITS_PER_PIXEL = 24;
-constexpr int DEFAULT_BITS_PER_COMPONENT = 8;
+constexpr int kDefaultBitsPerPixel = 24;
+constexpr int kDefaultBitsPerComponent = 8;
 
-// Assuming HDR10 color space with RGB10A2 backbuffer.
-constexpr int HDR_BITS_PER_PIXEL = 30;
-constexpr int HDR_BITS_PER_COMPONENT = 10;
+constexpr int kHDR10BitsPerPixel = 30;
+constexpr int kHDR10BitsPerComponent = 10;
+
+constexpr int kSCRGBLinearBitsPerPixel = 48;
+constexpr int kSCRGBLinearBitsPerComponent = 16;
 
 // This variable tracks whether the forced device scale factor switch needs to
 // be read from the command line, i.e. if it is set to -1 then the command line
@@ -66,6 +68,8 @@
     return gfx::ColorSpace::CreateDisplayP3D65();
   if (value == "scrgb-linear")
     return gfx::ColorSpace::CreateSCRGBLinear();
+  if (value == "hdr10")
+    return gfx::ColorSpace::CreateHDR10();
   if (value == "extended-srgb")
     return gfx::ColorSpace::CreateExtendedSRGB();
   if (value == "generic-rgb") {
@@ -211,9 +215,12 @@
       bounds_(bounds),
       work_area_(bounds),
       device_scale_factor_(GetForcedDeviceScaleFactor()) {
-  SetColorSpaceAndDepth(HasForceDisplayColorProfile()
-                            ? GetForcedDisplayColorProfile()
-                            : gfx::ColorSpace::CreateSRGB());
+  gfx::ColorSpace color_space = HasForceDisplayColorProfile()
+                                    ? GetForcedDisplayColorProfile()
+                                    : gfx::ColorSpace::CreateSRGB();
+  float sdr_white_level =
+      color_space.IsHDR() ? 200.f : gfx::ColorSpace::kDefaultSDRWhiteLevel;
+  SetColorSpaceAndDepth(color_space, sdr_white_level);
 #if defined(USE_AURA)
   SetScaleAndBounds(device_scale_factor_, bounds);
 #endif
@@ -301,13 +308,15 @@
                                     float sdr_white_level) {
   color_space_ = color_space;
   sdr_white_level_ = sdr_white_level;
-  // Assuming HDR10 color space and buffer format.
-  if (color_space_.IsHDR()) {
-    color_depth_ = HDR_BITS_PER_PIXEL;
-    depth_per_component_ = HDR_BITS_PER_COMPONENT;
+  if (color_space_ == gfx::ColorSpace::CreateHDR10()) {
+    color_depth_ = kHDR10BitsPerPixel;
+    depth_per_component_ = kHDR10BitsPerComponent;
+  } else if (color_space == gfx::ColorSpace::CreateSCRGBLinear()) {
+    color_depth_ = kSCRGBLinearBitsPerPixel;
+    depth_per_component_ = kSCRGBLinearBitsPerComponent;
   } else {
-    color_depth_ = DEFAULT_BITS_PER_PIXEL;
-    depth_per_component_ = DEFAULT_BITS_PER_COMPONENT;
+    color_depth_ = kDefaultBitsPerPixel;
+    depth_per_component_ = kDefaultBitsPerComponent;
   }
 }
 
diff --git a/ui/display/display_unittest.cc b/ui/display/display_unittest.cc
index d90c990..836f283 100644
--- a/ui/display/display_unittest.cc
+++ b/ui/display/display_unittest.cc
@@ -76,14 +76,13 @@
   EXPECT_EQ(24, display.color_depth());
   EXPECT_EQ(8, display.depth_per_component());
 
-  // All HDR color spaces report the same bit depth as HDR10.
   display.SetColorSpaceAndDepth(gfx::ColorSpace::CreateHDR10());
   EXPECT_EQ(30, display.color_depth());
   EXPECT_EQ(10, display.depth_per_component());
 
   display.SetColorSpaceAndDepth(gfx::ColorSpace::CreateSCRGBLinear());
-  EXPECT_EQ(30, display.color_depth());
-  EXPECT_EQ(10, display.depth_per_component());
+  EXPECT_EQ(48, display.color_depth());
+  EXPECT_EQ(16, display.depth_per_component());
 
   display.SetColorSpaceAndDepth(gfx::ColorSpace::CreateSRGB());
   EXPECT_EQ(24, display.color_depth());
diff --git a/ui/display/win/screen_win.cc b/ui/display/win/screen_win.cc
index 0963947b..97e7427 100644
--- a/ui/display/win/screen_win.cc
+++ b/ui/display/win/screen_win.cc
@@ -14,6 +14,7 @@
 #include "base/metrics/histogram_functions.h"
 #include "base/stl_util.h"
 #include "base/win/win_util.h"
+#include "base/win/windows_version.h"
 #include "ui/display/display.h"
 #include "ui/display/display_layout.h"
 #include "ui/display/display_layout_builder.h"
@@ -210,9 +211,13 @@
   display.set_display_frequency(display_info.display_frequency());
   if (!Display::HasForceDisplayColorProfile()) {
     if (hdr_enabled) {
-      // It doesn't matter what HDR color space we set since UI compositor will
-      // override it to HDR10 if opaque or SCRGB linear if translucent.
-      display.SetColorSpaceAndDepth(gfx::ColorSpace::CreateHDR10(),
+      // Using RGBA F16 backbuffers required by SCRGB linear causes stuttering
+      // on Windows RS3, but RGB10A2 with HDR10 color space works fine.
+      gfx::ColorSpace hdr_color_space =
+          base::win::GetVersion() > base::win::Version::WIN10_RS3
+              ? gfx::ColorSpace::CreateSCRGBLinear()
+              : gfx::ColorSpace::CreateHDR10();
+      display.SetColorSpaceAndDepth(hdr_color_space,
                                     display_info.sdr_white_level());
     } else {
       display.SetColorSpaceAndDepth(
diff --git a/ui/events/mojo/DEPS b/ui/events/mojo/DEPS
index c5cf7e45a..12efe84 100644
--- a/ui/events/mojo/DEPS
+++ b/ui/events/mojo/DEPS
@@ -1,6 +1,5 @@
 include_rules = [
   "+mojo/public",
-  "+services/ws/public/mojom",
   "+ui/events",
   "+ui/latency/mojo",
 ]
diff --git a/ui/file_manager/audio_player/js/BUILD.gn b/ui/file_manager/audio_player/js/BUILD.gn
index 38aed4c..817100b 100644
--- a/ui/file_manager/audio_player/js/BUILD.gn
+++ b/ui/file_manager/audio_player/js/BUILD.gn
@@ -50,4 +50,7 @@
 }
 
 js_library("metadata_worker") {
+  deps = [
+    "../../file_manager/foreground/js/metadata:metadata_dispatcher",
+  ]
 }
diff --git a/ui/file_manager/base/js/filtered_volume_manager.js b/ui/file_manager/base/js/filtered_volume_manager.js
index 595990c..f65d0b3 100644
--- a/ui/file_manager/base/js/filtered_volume_manager.js
+++ b/ui/file_manager/base/js/filtered_volume_manager.js
@@ -201,6 +201,7 @@
     if (!this.volumeManager_) {
       return;
     }
+    // TODO(crbug.com/972849): Consider using EventTracker instead.
     this.volumeManager_.removeEventListener(
         'drive-connection-changed', this.onEventBound_);
     this.volumeManager_.removeEventListener(
@@ -216,20 +217,25 @@
    * @private
    */
   onEvent_(event) {
+    // Note: Can not re-dispatch the same |event| object, because it throws a
+    // runtime "The event is already being dispatched." error.
     switch (event.type) {
       case 'drive-connection-changed':
         if (this.isAllowedVolumeType_(VolumeManagerCommon.VolumeType.DRIVE)) {
-          this.dispatchEvent(event);
+          cr.dispatchSimpleEvent(this, 'drive-connection-changed');
         }
         break;
       case 'externally-unmounted':
         event = /** @type {!ExternallyUnmountedEvent} */ (event);
         if (this.isAllowedVolume_(event.detail)) {
-          this.dispatchEvent(event);
+          this.dispatchEvent(
+              new CustomEvent('externally-unmount', {detail: event.detail}));
         }
         break;
       case VolumeManagerCommon.ARCHIVE_OPENED_EVENT_TYPE:
-        this.dispatchEvent(event);
+        this.dispatchEvent(new CustomEvent(
+            VolumeManagerCommon.ARCHIVE_OPENED_EVENT_TYPE,
+            {detail: event.detail}));
         break;
     }
   }
diff --git a/ui/file_manager/externs/metadata_worker_window.js b/ui/file_manager/externs/metadata_worker_window.js
index fa90527..63430ae 100644
--- a/ui/file_manager/externs/metadata_worker_window.js
+++ b/ui/file_manager/externs/metadata_worker_window.js
@@ -39,12 +39,6 @@
 }
 
 /**
- * @param {function(new:MetadataParser, !MetadataParserLogger)} parserClass
- *     Parser constructor function.
- */
-var registerParserClass = function(parserClass) {};
-
-/**
  * @param {string} url
  * @param {function(!Entry)} successCallback
  * @param {function(!FileError)=} opt_errorCallback
diff --git a/ui/file_manager/file_manager/background/js/file_operation_handler_unittest.js b/ui/file_manager/file_manager/background/js/file_operation_handler_unittest.js
index ce4f8a0..eda366dab 100644
--- a/ui/file_manager/file_manager/background/js/file_operation_handler_unittest.js
+++ b/ui/file_manager/file_manager/background/js/file_operation_handler_unittest.js
@@ -40,8 +40,7 @@
 function testCopySuccess() {
   // Dispatch copy event.
   fileOperationManager.dispatchEvent(
-      /** @type {!Event} */ ({
-        type: 'copy-progress',
+      /** @type {!Event} */ (Object.assign(new Event('copy-progress'), {
         taskId: 'TASK_ID',
         reason: fileOperationUtil.EventRouter.EventType.BEGIN,
         status: {
@@ -51,7 +50,7 @@
           totalBytes: 200,
           processedBytes: 0,
         },
-      }));
+      })));
 
   // Check the updated item.
   let item = progressCenter.items['TASK_ID'];
@@ -64,14 +63,13 @@
 
   // Dispatch success event.
   fileOperationManager.dispatchEvent(
-      /** @type {!Event} */ ({
-        type: 'copy-progress',
+      /** @type {!Event} */ (Object.assign(new Event('copy-progress'), {
         taskId: 'TASK_ID',
         reason: fileOperationUtil.EventRouter.EventType.SUCCESS,
         status: {
           operationType: 'COPY',
         },
-      }));
+      })));
 
   // Check the item completed.
   item = progressCenter.items['TASK_ID'];
@@ -89,8 +87,7 @@
 function testCopyCancel() {
   // Dispatch copy event.
   fileOperationManager.dispatchEvent(
-      /** @type {!Event} */ ({
-        type: 'copy-progress',
+      /** @type {!Event} */ (Object.assign(new Event('copy-progress'), {
         taskId: 'TASK_ID',
         reason: fileOperationUtil.EventRouter.EventType.BEGIN,
         status: {
@@ -100,7 +97,7 @@
           totalBytes: 200,
           processedBytes: 0,
         },
-      }));
+      })));
 
   // Check the updated item.
   let item = progressCenter.items['TASK_ID'];
@@ -112,14 +109,13 @@
 
   // Setup cancel event.
   fileOperationManager.cancelEvent =
-      /** @type {!Event} */ ({
-        type: 'copy-progress',
+      /** @type {!Event} */ (Object.assign(new Event('copy-progress'), {
         taskId: 'TASK_ID',
         reason: fileOperationUtil.EventRouter.EventType.CANCELED,
         status: {
           operationType: 'COPY',
         },
-      });
+      }));
 
   // Dispatch cancel event.
   assertTrue(item.cancelable);
@@ -140,8 +136,7 @@
 function testCopyTargetExistsError() {
   // Dispatch error event.
   fileOperationManager.dispatchEvent(
-      /** @type {!Event} */ ({
-        type: 'copy-progress',
+      /** @type {!Event} */ (Object.assign(new Event('copy-progress'), {
         taskId: 'TASK_ID',
         reason: fileOperationUtil.EventRouter.EventType.ERROR,
         status: {
@@ -153,7 +148,7 @@
             name: 'sample.txt',
           },
         },
-      }));
+      })));
 
   // Check the item errored.
   const item = progressCenter.items['TASK_ID'];
@@ -170,8 +165,7 @@
 function testCopyFileSystemError() {
   // Dispatch error event.
   fileOperationManager.dispatchEvent(
-      /** @type {!Event} */ ({
-        type: 'copy-progress',
+      /** @type {!Event} */ (Object.assign(new Event('copy-progress'), {
         taskId: 'TASK_ID',
         reason: fileOperationUtil.EventRouter.EventType.ERROR,
         status: {
@@ -183,7 +177,7 @@
             name: 'sample.txt',
           },
         },
-      }));
+      })));
 
   // Check the item errored.
   const item = progressCenter.items['TASK_ID'];
@@ -200,8 +194,7 @@
 function testCopyUnexpectedError() {
   // Dispatch error event.
   fileOperationManager.dispatchEvent(
-      /** @type {!Event} */ ({
-        type: 'copy-progress',
+      /** @type {!Event} */ (Object.assign(new Event('copy-progress'), {
         taskId: 'TASK_ID',
         reason: fileOperationUtil.EventRouter.EventType.ERROR,
         status: {
@@ -213,7 +206,7 @@
             name: 'sample.txt',
           },
         },
-      }));
+      })));
 
   // Check the item errored.
   const item = progressCenter.items['TASK_ID'];
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/BUILD.gn b/ui/file_manager/file_manager/foreground/js/metadata/BUILD.gn
index e5c43cb..52e0a3c6 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/BUILD.gn
+++ b/ui/file_manager/file_manager/foreground/js/metadata/BUILD.gn
@@ -180,7 +180,12 @@
 
 js_library("metadata_dispatcher") {
   deps = [
+    ":byte_reader",
+    ":exif_parser",
+    ":id3_parser",
+    ":image_parsers",
     ":metadata_parser",
+    ":mpeg_parser",
   ]
   externs_list = [ "../../../../externs/platform.js" ]
 }
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/exif_parser.js b/ui/file_manager/file_manager/foreground/js/metadata/exif_parser.js
index 1738e5d..4dcc94b 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/exif_parser.js
+++ b/ui/file_manager/file_manager/foreground/js/metadata/exif_parser.js
@@ -2,26 +2,28 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-/**
- * Protocol + host parts of extension URL.
- *
- * The __FILE_NAME suffix is because the same string constant is used in
- * multiple JS files, and JavaScript doesn't have C's #define mechanism (which
- * only affects the file its in). Without the suffix, we'd have "constant
- * FILE_MANAGER_HOST assigned a value more than once" compiler warnings.
- *
- * @type {string}
- * @const
- */
-var FILE_MANAGER_HOST__EXIF_PARSER =
-    'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj';
+// When running this code in unit tests, `importScripts` is not defined, but
+// that doesn't really matter since the dependent file is already included by
+// the build system.
+if (typeof importScripts !== 'undefined') {
+  /**
+   * Protocol + host parts of extension URL.
+   *
+   * The __FILE_NAME suffix is because the same string constant is used in
+   * multiple JS files, and JavaScript doesn't have C's #define mechanism (which
+   * only affects the file its in). Without the suffix, we'd have "constant
+   * FILE_MANAGER_HOST assigned a value more than once" compiler warnings.
+   */
+  const FILE_MANAGER_HOST__EXIF_PARSER =
+      'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj';
 
-importScripts(
-    FILE_MANAGER_HOST__EXIF_PARSER +
-    '/foreground/js/metadata/exif_constants.js');
+  importScripts(
+      FILE_MANAGER_HOST__EXIF_PARSER +
+      '/foreground/js/metadata/exif_constants.js');
+}
 
 /** @final */
-var ExifParser = class extends ImageParser {
+class ExifParser extends ImageParser {
   /**
    * @param {!MetadataParserLogger} parent Parent object.
    */
@@ -202,14 +204,14 @@
     let directoryOffset = br.readScalar(4);
 
     // Image directory.
-    this.vlog('Read image directory.');
+    this.vlog('Read image directory');
     br.seek(directoryOffset);
     directoryOffset = this.readDirectory(br, metadata.ifd.image);
     metadata.imageTransform = this.parseOrientation(metadata.ifd.image);
 
     // Thumbnail Directory chained from the end of the image directory.
     if (directoryOffset) {
-      this.vlog('Read thumbnail directory.');
+      this.vlog('Read thumbnail directory');
       br.seek(directoryOffset);
       this.readDirectory(br, metadata.ifd.thumbnail);
       // If no thumbnail orientation is encoded, assume same orientation as
@@ -221,7 +223,7 @@
 
     // EXIF Directory may be specified as a tag in the image directory.
     if (Exif.Tag.EXIFDATA in metadata.ifd.image) {
-      this.vlog('Read EXIF directory.');
+      this.vlog('Read EXIF directory');
       directoryOffset = metadata.ifd.image[Exif.Tag.EXIFDATA].value;
       br.seek(directoryOffset);
       metadata.ifd.exif = {};
@@ -230,7 +232,7 @@
 
     // GPS Directory may also be linked from the image directory.
     if (Exif.Tag.GPSDATA in metadata.ifd.image) {
-      this.vlog('Read GPS directory.');
+      this.vlog('Read GPS directory');
       directoryOffset = metadata.ifd.image[Exif.Tag.GPSDATA].value;
       br.seek(directoryOffset);
       metadata.ifd.gps = {};
@@ -240,12 +242,12 @@
     // Thumbnail may be linked from the image directory.
     if (Exif.Tag.JPG_THUMB_OFFSET in metadata.ifd.thumbnail &&
         Exif.Tag.JPG_THUMB_LENGTH in metadata.ifd.thumbnail) {
-      this.vlog('Read thumbnail image.');
+      this.vlog('Read thumbnail image');
       br.seek(metadata.ifd.thumbnail[Exif.Tag.JPG_THUMB_OFFSET].value);
       metadata.thumbnailURL =
           br.readImage(metadata.ifd.thumbnail[Exif.Tag.JPG_THUMB_LENGTH].value);
     } else {
-      this.vlog('Image has EXIF data, but no JPG thumbnail.');
+      this.vlog('Image has EXIF data, but no JPG thumbnail');
     }
   }
 
@@ -316,7 +318,7 @@
         unsafeRead(size, opt_readFunction, opt_signed);
       } catch (ex) {
         self.log(
-            'error reading tag 0x' + tag.id.toString(16) + '/' + tag.format +
+            'Error reading tag 0x' + tag.id.toString(16) + '/' + tag.format +
             ', size ' + tag.componentCount + '*' + size + ' ' +
             (ex.stack || '<no stack>') + ': ' + ex);
         tag.value = null;
@@ -435,8 +437,8 @@
         tag.value += '\0';
         tag.componentCount = tag.value.length;
         this.vlog(
-            'Invalid format: 0x' + tag.id.toString(16) + '/' + tag.format +
-            ': Did not end with null character. Null character is appended.');
+            'Appended missing null character at the end of tag 0x' +
+            tag.id.toString(16) + '/' + tag.format);
       }
     }
   }
@@ -459,7 +461,7 @@
     }
     return null;
   }
-};
+}
 
 /**
  * Map from the exif orientation value to the horizontal scale value.
@@ -478,5 +480,3 @@
  * @const {Array<number>}
  */
 ExifParser.ROTATE90 = [0, 0, 0, 0, 1, 1, 1, 1];
-
-registerParserClass(ExifParser);
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/exif_parser_unittest.js b/ui/file_manager/file_manager/foreground/js/metadata/exif_parser_unittest.js
index 2f66c58..1c2b4bd 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/exif_parser_unittest.js
+++ b/ui/file_manager/file_manager/foreground/js/metadata/exif_parser_unittest.js
@@ -3,41 +3,6 @@
 // found in the LICENSE file.
 
 /**
- * Parser unittest BUILD rules may cause script(s) under test to load, and call
- * dependent script methods, before the dependent scripts have loaded. Fix this
- * by creating fakes to avoid any undefined call exceptions, then synchronously
- * reload the affected script(s).
- */
-window.addEventListener(
-    'load', /** @type {Function} */ (async () => {
-      // Fake parser importScripts calls.
-      window.importScripts = (script) => {};
-
-      // Fake metadata dispatcher parser registry.
-      window.registerParserClass = (parser) => {};
-
-      // Reload an existing <script> element.
-      let reloadScript = (src) => {
-        let element = document.querySelector('script[src$="' + src + '"]');
-        if (!(element instanceof HTMLScriptElement)) {
-          return Promise.reject('reloading script: ' + src + ' not found');
-        }
-        element.remove();
-        return new Promise((resolve, reject) => {
-          let script = document.createElement('script');
-          script.onload = resolve;
-          script.onerror = reject;
-          document.body.appendChild(script);
-          script.src = element.src;
-        });
-      };
-
-      await Promise.all([
-        reloadScript('exif_parser.js'),
-      ]);
-    }));
-
-/**
  * Creates a directory with specified tag. This method only supports string
  * format tag, which is longer than 4 characters.
  * @param {!TypedArray} bytes Bytes to be written.
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/id3_parser.js b/ui/file_manager/file_manager/foreground/js/metadata/id3_parser.js
index d44a670..4a797f7 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/id3_parser.js
+++ b/ui/file_manager/file_manager/foreground/js/metadata/id3_parser.js
@@ -708,5 +708,3 @@
     WPUB: 'ID3_PUBLISHERS_OFFICIAL_WEBPAGE'
   }
 };
-
-registerParserClass(Id3Parser);
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/image_parsers.js b/ui/file_manager/file_manager/foreground/js/metadata/image_parsers.js
index 255c29c7..68b44eb 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/image_parsers.js
+++ b/ui/file_manager/file_manager/foreground/js/metadata/image_parsers.js
@@ -81,8 +81,6 @@
   }
 }
 
-registerParserClass(PngParser);
-
 /**
  * Parser for the header of bmp files.
  * @final
@@ -112,8 +110,6 @@
   }
 }
 
-registerParserClass(BmpParser);
-
 /**
  * Parser for the header of gif files.
  * @final
@@ -142,8 +138,6 @@
   }
 }
 
-registerParserClass(GifParser);
-
 /**
  * Parser for the header of webp files.
  * @final
@@ -215,8 +209,6 @@
   }
 }
 
-registerParserClass(WebpParser);
-
 /**
  * Parser for the header of .ico icon files.
  * @final
@@ -245,5 +237,3 @@
     metadata.height = byteReader.readScalar(1);
   }
 }
-
-registerParserClass(IcoParser);
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/metadata_dispatcher.js b/ui/file_manager/file_manager/foreground/js/metadata/metadata_dispatcher.js
index 4699046..90d344f 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/metadata_dispatcher.js
+++ b/ui/file_manager/file_manager/foreground/js/metadata/metadata_dispatcher.js
@@ -26,6 +26,20 @@
     FILE_MANAGER_HOST__METADATA_DISPATCHER +
     '/foreground/js/metadata/byte_reader.js');
 
+// Note: update component_extension_resources.grd when adding new parsers.
+importScripts(
+    FILE_MANAGER_HOST__METADATA_DISPATCHER +
+    '/foreground/js/metadata/exif_parser.js');
+importScripts(
+    FILE_MANAGER_HOST__METADATA_DISPATCHER +
+    '/foreground/js/metadata/image_parsers.js');
+importScripts(
+    FILE_MANAGER_HOST__METADATA_DISPATCHER +
+    '/foreground/js/metadata/mpeg_parser.js');
+importScripts(
+    FILE_MANAGER_HOST__METADATA_DISPATCHER +
+    '/foreground/js/metadata/id3_parser.js');
+
 /**
  * Dispatches metadata requests to the correct parser.
  *
@@ -41,8 +55,20 @@
   const patterns = [];
 
   this.parserInstances_ = [];
-  for (let i = 0; i < MetadataDispatcher.parserClasses_.length; i++) {
-    const parserClass = MetadataDispatcher.parserClasses_[i];
+
+  /** @type {!Array<function(new:MetadataParser, !MetadataParserLogger)>} */
+  const parserClasses = [
+    BmpParser,
+    ExifParser,
+    GifParser,
+    IcoParser,
+    Id3Parser,
+    MpegParser,
+    PngParser,
+    WebpParser,
+  ];
+
+  for (const parserClass of parserClasses) {
     const parser = new parserClass(this);
     this.parserInstances_.push(parser);
     patterns.push(parser.urlFilter.source);
@@ -57,12 +83,6 @@
 }
 
 /**
- * List of registered parser classes.
- * @private {!Array<function(new:MetadataParser, !MetadataParserLogger)>}
- */
-MetadataDispatcher.parserClasses_ = [];
-
-/**
  * Verbose logging for the dispatcher.
  *
  * Individual parsers also take this as their default verbosity setting.
@@ -238,26 +258,3 @@
   new MetadataDispatcher(global);
 }
 
-/**
- * @param {function(new:MetadataParser, !MetadataParserLogger)} parserClass
- *     Parser constructor function.
- */
-registerParserClass = parserClass => {
-  MetadataDispatcher.parserClasses_.push(parserClass);
-};
-
-// Note: update component_extension_resources.grd when adding new parsers and
-// that these parser scripts imports must be done last, see crbug.com/946959,
-// at least after the definition of registerParserClass above.
-importScripts(
-    FILE_MANAGER_HOST__METADATA_DISPATCHER +
-    '/foreground/js/metadata/exif_parser.js');
-importScripts(
-    FILE_MANAGER_HOST__METADATA_DISPATCHER +
-    '/foreground/js/metadata/image_parsers.js');
-importScripts(
-    FILE_MANAGER_HOST__METADATA_DISPATCHER +
-    '/foreground/js/metadata/mpeg_parser.js');
-importScripts(
-    FILE_MANAGER_HOST__METADATA_DISPATCHER +
-    '/foreground/js/metadata/id3_parser.js');
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/mpeg_parser.js b/ui/file_manager/file_manager/foreground/js/metadata/mpeg_parser.js
index 9bc77b4..903bc4e 100644
--- a/ui/file_manager/file_manager/foreground/js/metadata/mpeg_parser.js
+++ b/ui/file_manager/file_manager/foreground/js/metadata/mpeg_parser.js
@@ -315,5 +315,3 @@
  * Size of the atom header.
  */
 MpegParser.HEADER_SIZE = 8;
-
-registerParserClass(MpegParser);
diff --git a/ui/file_manager/file_manager/foreground/js/mock_actions_model.js b/ui/file_manager/file_manager/foreground/js/mock_actions_model.js
index 8d4c8ee..cbb4b4a 100644
--- a/ui/file_manager/file_manager/foreground/js/mock_actions_model.js
+++ b/ui/file_manager/file_manager/foreground/js/mock_actions_model.js
@@ -2,46 +2,43 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-/**
- * @param {string} title
- * @param {Array<!Entry>} entries
- * @constructor
- * @struct
- */
-function MockActionModel(title, entries) {
-  this.title = title;
-  this.entries = entries;
-  this.actionsModel = null;
+class MockActionModel {
+  /**
+   * @param {string} title
+   * @param {Array<!Entry>} entries
+   */
+  constructor(title, entries) {
+    this.title = title;
+    this.entries = entries;
+    this.actionsModel = null;
+  }
+
+  getTitle() {
+    return this.title;
+  }
+
+  onCanExecute() {}
+
+  onExecute() {
+    cr.dispatchSimpleEvent('invalidated', this.actionsModel);
+  }
 }
 
-MockActionModel.prototype.getTitle = function() {
-  return this.title;
-};
+class MockActionsModel extends cr.EventTarget {
+  constructor(actions) {
+    super();
 
-MockActionModel.prototype.onCanExecute = () => {};
+    this.actions_ = actions;
+    Object.keys(actions).forEach(function(key) {
+      actions[key].actionsModel = this;
+    });
+  }
 
-MockActionModel.prototype.onExecute = function() {
-  cr.dispatchSimpleEvent('invalidated', this.actionsModel);
-};
+  initialize() {
+    return Promise.resolve();
+  }
 
-/**
- * @constructor
- */
-function MockActionsModel(actions) {
-  this.actions_ = actions;
-  Object.keys(actions).forEach(function(key) {
-    actions[key].actionsModel = this;
-  });
+  getActions() {
+    return this.actions_;
+  }
 }
-
-MockActionsModel.prototype = {
-  __proto__: cr.EventTarget.prototype
-};
-
-MockActionsModel.prototype.initialize = () => {
-  return Promise.resolve();
-};
-
-MockActionsModel.prototype.getActions = function() {
-  return this.actions_;
-};
diff --git a/ui/file_manager/gallery/js/BUILD.gn b/ui/file_manager/gallery/js/BUILD.gn
index 6f092ca..4e5db67 100644
--- a/ui/file_manager/gallery/js/BUILD.gn
+++ b/ui/file_manager/gallery/js/BUILD.gn
@@ -152,6 +152,9 @@
 }
 
 js_library("metadata_worker") {
+  deps = [
+    "../../file_manager/foreground/js/metadata:metadata_dispatcher",
+  ]
 }
 
 js_library("mock_gallery_item") {
diff --git a/ui/gl/vsync_thread_win.cc b/ui/gl/vsync_thread_win.cc
index 751fd717..6deb285 100644
--- a/ui/gl/vsync_thread_win.cc
+++ b/ui/gl/vsync_thread_win.cc
@@ -53,7 +53,9 @@
       callback_(std::move(callback)) {
   DCHECK(window_);
   DCHECK(callback_);
-  vsync_thread_.Start();
+  base::Thread::Options options;
+  options.priority = base::ThreadPriority::DISPLAY;
+  vsync_thread_.StartWithOptions(std::move(options));
 }
 
 VSyncThreadWin::~VSyncThreadWin() {
diff --git a/ui/strings/translations/ui_strings_ar.xtb b/ui/strings/translations/ui_strings_ar.xtb
index e4c1f9b..85f46abd 100644
--- a/ui/strings/translations/ui_strings_ar.xtb
+++ b/ui/strings/translations/ui_strings_ar.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ar">
+<translation id="1028699632127661925">جارٍ الإرسال إلى <ph name="DEVICE_NAME" />...</translation>
 <translation id="111910763555783249">إعدادات الإشعارات</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{قبل يوم واحد}zero{قبل # من الأيام}two{قبل يومين (#)}few{قبل # أيام}many{قبل # يومًا}other{قبل # من الأيام}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{قبل دقيقة واحدة}zero{قبل # دقيقة}two{قبل دقيقتين (#)}few{قبل # دقائق}many{قبل # دقيقة}other{قبل # دقيقة}}</translation>
diff --git a/ui/strings/translations/ui_strings_da.xtb b/ui/strings/translations/ui_strings_da.xtb
index a82f0ed..15f913e 100644
--- a/ui/strings/translations/ui_strings_da.xtb
+++ b/ui/strings/translations/ui_strings_da.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="da">
+<translation id="1028699632127661925">Sender til <ph name="DEVICE_NAME" />...</translation>
 <translation id="111910763555783249">Notifikationsindstillinger</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{for 1 dag siden}one{for # dag siden}other{for # dage siden}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{For 1 minut siden}one{For # minut siden}other{For # minutter siden}}</translation>
diff --git a/ui/strings/translations/ui_strings_de.xtb b/ui/strings/translations/ui_strings_de.xtb
index 1aeb225..a661bfb 100644
--- a/ui/strings/translations/ui_strings_de.xtb
+++ b/ui/strings/translations/ui_strings_de.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="de">
+<translation id="1028699632127661925">Wird an <ph name="DEVICE_NAME" /> gesendet…</translation>
 <translation id="111910763555783249">Benachrichtigungseinstellungen</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 Tag her}other{# Tage her}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{vor 1 Minute}other{vor # Minuten}}</translation>
diff --git a/ui/strings/translations/ui_strings_es.xtb b/ui/strings/translations/ui_strings_es.xtb
index 61b90bd..97f827876 100644
--- a/ui/strings/translations/ui_strings_es.xtb
+++ b/ui/strings/translations/ui_strings_es.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="es">
+<translation id="1028699632127661925">Enviando a <ph name="DEVICE_NAME" />...</translation>
 <translation id="111910763555783249">Configuración de notificaciones</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{Hace 1 día}other{Hace # días}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{Hace 1 minuto}other{Hace # minutos}}</translation>
diff --git a/ui/strings/translations/ui_strings_fa.xtb b/ui/strings/translations/ui_strings_fa.xtb
index bf6cf3f..9afc9b8 100644
--- a/ui/strings/translations/ui_strings_fa.xtb
+++ b/ui/strings/translations/ui_strings_fa.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="fa">
+<translation id="1028699632127661925">درحال ارسال به <ph name="DEVICE_NAME" />…</translation>
 <translation id="111910763555783249">تنظیمات اعلان</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{۱ روز قبل}one{# روز قبل}other{# روز قبل}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{۱ دقیقه قبل}one{# دقیقه قبل}other{# دقیقه قبل}}</translation>
diff --git a/ui/strings/translations/ui_strings_gu.xtb b/ui/strings/translations/ui_strings_gu.xtb
index dd711d73..5e99506 100644
--- a/ui/strings/translations/ui_strings_gu.xtb
+++ b/ui/strings/translations/ui_strings_gu.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="gu">
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" /> પર મોકલી રહ્યાં છીએ...</translation>
 <translation id="111910763555783249">સૂચના સેટિંગ</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 દિવસ પહેલા}one{# દિવસ પહેલાં}other{# દિવસ પહેલાં}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 મિનિટ પહેલાં}one{# મિનિટ પહેલાં}other{# મિનિટ પહેલાં}}</translation>
diff --git a/ui/strings/translations/ui_strings_id.xtb b/ui/strings/translations/ui_strings_id.xtb
index ee2005e..ab1605f 100644
--- a/ui/strings/translations/ui_strings_id.xtb
+++ b/ui/strings/translations/ui_strings_id.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="id">
+<translation id="1028699632127661925">Mengirim ke <ph name="DEVICE_NAME" />...</translation>
 <translation id="111910763555783249">Setelan notifikasi</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 hari yang lalu}other{# hari yang lalu}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 menit yang lalu}other{# menit yang lalu}}</translation>
diff --git a/ui/strings/translations/ui_strings_ja.xtb b/ui/strings/translations/ui_strings_ja.xtb
index 5e9c7a7..17d5156 100644
--- a/ui/strings/translations/ui_strings_ja.xtb
+++ b/ui/strings/translations/ui_strings_ja.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ja">
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" /> に送信しています...</translation>
 <translation id="111910763555783249">通知設定</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 日前}other{# 日前}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 分前}other{# 分前}}</translation>
diff --git a/ui/strings/translations/ui_strings_kn.xtb b/ui/strings/translations/ui_strings_kn.xtb
index a8246df..4bd38bb 100644
--- a/ui/strings/translations/ui_strings_kn.xtb
+++ b/ui/strings/translations/ui_strings_kn.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="kn">
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" /> ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="111910763555783249">ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 ದಿನದ ಹಿಂದೆ}one{# ದಿನಗಳ ಹಿಂದೆ}other{# ದಿನಗಳ ಹಿಂದೆ}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 ನಿಮಿಷದ ಹಿಂದೆ}one{# ನಿಮಿಷಗಳ ಹಿಂದೆ}other{# ನಿಮಿಷಗಳ ಹಿಂದೆ}}</translation>
diff --git a/ui/strings/translations/ui_strings_ko.xtb b/ui/strings/translations/ui_strings_ko.xtb
index 5f5bd6d..79f88f9 100644
--- a/ui/strings/translations/ui_strings_ko.xtb
+++ b/ui/strings/translations/ui_strings_ko.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ko">
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" />에 보내는 중...</translation>
 <translation id="111910763555783249">알림 설정</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1일 전}other{#일 전}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1분 전}other{#분 전}}</translation>
diff --git a/ui/strings/translations/ui_strings_ms.xtb b/ui/strings/translations/ui_strings_ms.xtb
index cbcbff631..3465456 100644
--- a/ui/strings/translations/ui_strings_ms.xtb
+++ b/ui/strings/translations/ui_strings_ms.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ms">
+<translation id="1028699632127661925">Menghantar ke <ph name="DEVICE_NAME" />...</translation>
 <translation id="111910763555783249">Tetapan pemberitahuan</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 hari yang lalu}other{# hari yang lalu}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{Seminit yang lalu}other{# minit yang lalu}}</translation>
diff --git a/ui/strings/translations/ui_strings_nl.xtb b/ui/strings/translations/ui_strings_nl.xtb
index 6c03cb6..6ccf9517 100644
--- a/ui/strings/translations/ui_strings_nl.xtb
+++ b/ui/strings/translations/ui_strings_nl.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="nl">
+<translation id="1028699632127661925">Verzenden naar <ph name="DEVICE_NAME" />…</translation>
 <translation id="111910763555783249">Instellingen voor meldingen</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 dag geleden}other{# dagen geleden}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 minuut geleden}other{# minuten geleden}}</translation>
diff --git a/ui/strings/translations/ui_strings_pt-BR.xtb b/ui/strings/translations/ui_strings_pt-BR.xtb
index f4c39f92..8ca1ec4 100644
--- a/ui/strings/translations/ui_strings_pt-BR.xtb
+++ b/ui/strings/translations/ui_strings_pt-BR.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="pt-BR">
+<translation id="1028699632127661925">Enviando para o <ph name="DEVICE_NAME" />…</translation>
 <translation id="111910763555783249">Configurações de notificação</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{Um dia atrás}one{# dias atrás}other{# dias atrás}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 minuto atrás}one{# minuto atrás}other{# minutos atrás}}</translation>
diff --git a/ui/strings/translations/ui_strings_ru.xtb b/ui/strings/translations/ui_strings_ru.xtb
index 3c323f73..e61ed66 100644
--- a/ui/strings/translations/ui_strings_ru.xtb
+++ b/ui/strings/translations/ui_strings_ru.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ru">
+<translation id="1028699632127661925">Отправка на устройство "<ph name="DEVICE_NAME" />"…</translation>
 <translation id="111910763555783249">Настройки уведомлений</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 день назад}one{# день назад}few{# дня назад}many{# дней назад}other{# дня назад}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{минуту назад}one{# минуту назад}few{# минуты назад}many{# минут назад}other{# минуты назад}}</translation>
diff --git a/ui/strings/translations/ui_strings_sv.xtb b/ui/strings/translations/ui_strings_sv.xtb
index dafbd08e..5ae17704 100644
--- a/ui/strings/translations/ui_strings_sv.xtb
+++ b/ui/strings/translations/ui_strings_sv.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="sv">
+<translation id="1028699632127661925">Skickar till <ph name="DEVICE_NAME" /> …</translation>
 <translation id="111910763555783249">Aviseringsinställningar</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{för 1 dag sedan}other{för # dagar sedan}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 minut sedan}other{# minuter sedan}}</translation>
diff --git a/ui/strings/translations/ui_strings_te.xtb b/ui/strings/translations/ui_strings_te.xtb
index cf4e839..d04ba7b 100644
--- a/ui/strings/translations/ui_strings_te.xtb
+++ b/ui/strings/translations/ui_strings_te.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="te">
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" />కు పంపుతోంది...</translation>
 <translation id="111910763555783249">నోటిఫికేషన్ సెట్టింగ్‌లు</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 రోజు క్రితం}other{# రోజుల క్రితం}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 నిమిషం క్రితం}other{# నిమిషాల క్రితం}}</translation>
diff --git a/ui/strings/translations/ui_strings_tr.xtb b/ui/strings/translations/ui_strings_tr.xtb
index b79abccb08..af2fbea2 100644
--- a/ui/strings/translations/ui_strings_tr.xtb
+++ b/ui/strings/translations/ui_strings_tr.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="tr">
+<translation id="1028699632127661925"><ph name="DEVICE_NAME" /> cihazına gönderiliyor...</translation>
 <translation id="111910763555783249">Bildirim ayarları</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 gün önce}other{# gün önce}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 dakika önce}other{# dakika önce}}</translation>
diff --git a/ui/strings/translations/ui_strings_uk.xtb b/ui/strings/translations/ui_strings_uk.xtb
index e4af9c4..ace606c 100644
--- a/ui/strings/translations/ui_strings_uk.xtb
+++ b/ui/strings/translations/ui_strings_uk.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="uk">
+<translation id="1028699632127661925">Надсилання на пристрій "<ph name="DEVICE_NAME" />"…</translation>
 <translation id="111910763555783249">Налаштування сповіщень</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 день тому}one{# день тому}few{# дні тому}many{# днів тому}other{# дня тому}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 хвилину тому}one{# хвилину тому}few{# хвилини тому}many{# хвилин тому}other{# хвилини тому}}</translation>
diff --git a/ui/strings/translations/ui_strings_vi.xtb b/ui/strings/translations/ui_strings_vi.xtb
index 1934293..577c31c 100644
--- a/ui/strings/translations/ui_strings_vi.xtb
+++ b/ui/strings/translations/ui_strings_vi.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="vi">
+<translation id="1028699632127661925">Đang gửi đến <ph name="DEVICE_NAME" />...</translation>
 <translation id="111910763555783249">Cài đặt thông báo</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 ngày trước}other{# ngày trước}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 phút trước}other{# phút trước}}</translation>
diff --git a/ui/strings/translations/ui_strings_zh-CN.xtb b/ui/strings/translations/ui_strings_zh-CN.xtb
index 8428d0e1..37cea22 100644
--- a/ui/strings/translations/ui_strings_zh-CN.xtb
+++ b/ui/strings/translations/ui_strings_zh-CN.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-CN">
+<translation id="1028699632127661925">正在发送到<ph name="DEVICE_NAME" />…</translation>
 <translation id="111910763555783249">通知设置</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 天前}other{# 天前}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 分钟前}other{# 分钟前}}</translation>
diff --git a/ui/strings/translations/ui_strings_zh-TW.xtb b/ui/strings/translations/ui_strings_zh-TW.xtb
index b32f8d0..28378ae9 100644
--- a/ui/strings/translations/ui_strings_zh-TW.xtb
+++ b/ui/strings/translations/ui_strings_zh-TW.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-TW">
+<translation id="1028699632127661925">正在傳送到「<ph name="DEVICE_NAME" />」...</translation>
 <translation id="111910763555783249">通知設定</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{1 天前}other{# 天前}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{1 分鐘前}other{# 分鐘前}}</translation>
diff --git a/ui/touch_selection/BUILD.gn b/ui/touch_selection/BUILD.gn
index 4ee20fd..b78053648 100644
--- a/ui/touch_selection/BUILD.gn
+++ b/ui/touch_selection/BUILD.gn
@@ -39,7 +39,6 @@
 
   if (use_aura) {
     deps += [
-      "//services/ws/public/mojom",
       "//skia:skia",
       "//ui/aura",
       "//ui/aura_extra",
diff --git a/ui/touch_selection/DEPS b/ui/touch_selection/DEPS
index 2304260d..5b83034 100644
--- a/ui/touch_selection/DEPS
+++ b/ui/touch_selection/DEPS
@@ -1,5 +1,4 @@
 include_rules = [
-  "+services/ws/public/mojom",
   "+ui/aura",
   "+ui/aura_extra",
   "+ui/base",
diff --git a/ui/views/animation/installable_ink_drop.cc b/ui/views/animation/installable_ink_drop.cc
index 46d17cb..512b323e 100644
--- a/ui/views/animation/installable_ink_drop.cc
+++ b/ui/views/animation/installable_ink_drop.cc
@@ -117,7 +117,7 @@
 }
 
 void InstallableInkDrop::OnPaintLayer(const ui::PaintContext& context) {
-  DCHECK(view_->size() == layer_->size());
+  DCHECK_EQ(view_->size(), layer_->size());
 
   ui::PaintRecorder paint_recorder(context, layer_->size());
   gfx::Canvas* canvas = paint_recorder.canvas();
diff --git a/ui/webui/resources/cr_components/chromeos/bluetooth_dialog.js b/ui/webui/resources/cr_components/chromeos/bluetooth_dialog.js
index 6f497a2..6c42f76 100644
--- a/ui/webui/resources/cr_components/chromeos/bluetooth_dialog.js
+++ b/ui/webui/resources/cr_components/chromeos/bluetooth_dialog.js
@@ -77,6 +77,36 @@
       readOnly: true,
       value: [0, 1, 2, 3, 4, 5],
     },
+
+    /**
+     * The time in milliseconds at which a connection attempt started (that is,
+     * when this dialog is opened).
+     * @private {?number}
+     */
+    connectionAttemptStartTimestampMs_: {
+      type: Number,
+      value: null,
+    },
+
+    /**
+     * The time in milliseconds at which the user is asked to comfirm the
+     * pairing auth process.
+     * @private {?number}
+     */
+    pairingUserAuthAttemptStartTimestampMs_: {
+      type: Number,
+      value: null,
+    },
+
+    /**
+     * The time in milliseconds at which the user confirms the pairing auth
+     * process.
+     * @private {?number}
+     */
+    pairingUserAuthAttemptFinishTimestampMs_: {
+      type: Number,
+      value: null,
+    },
   },
 
   observers: [
@@ -200,6 +230,8 @@
           this.onBluetoothPrivateOnPairing_.bind(this);
       this.bluetoothPrivate.onPairing.addListener(
           this.bluetoothPrivateOnPairingListener_);
+
+      this.connectionAttemptStartTimestampMs_ = Date.now();
     }
     if (!this.bluetoothDeviceChangedListener_) {
       this.bluetoothDeviceChangedListener_ =
@@ -262,9 +294,23 @@
       return;
     }
 
+    if (!this.pairingUserAuthAttemptStartTimestampMs_ && !!this.pairingEvent_ &&
+        (this.pairingEvent_.pairing === PairingEventType.REQUEST_PINCODE ||
+         this.pairingEvent_.pairing === PairingEventType.REQUEST_PASSKEY ||
+         this.pairingEvent_.pairing === PairingEventType.DISPLAY_PINCODE ||
+         this.pairingEvent_.pairing === PairingEventType.DISPLAY_PASSKEY ||
+         this.pairingEvent_.pairing === PairingEventType.CONFIRM_PASSKEY ||
+         this.pairingEvent_.pairing === PairingEventType.KEYS_ENTERED)) {
+      this.pairingUserAuthAttemptStartTimestampMs_ = Date.now();
+    }
+
     // Auto-close the dialog when pairing completes.
     if (this.pairingDevice.paired && !this.pairingDevice.connecting &&
         this.pairingDevice.connected) {
+      if (this.pairingUserAuthAttemptStartTimestampMs_) {
+        this.pairingUserAuthAttemptFinishTimestampMs_ = Date.now();
+      }
+
       this.close();
       return;
     }
@@ -534,6 +580,44 @@
       }
     }
 
-    chrome.bluetoothPrivate.recordPairing(success, transport);
+    chrome.bluetoothPrivate.recordPairing(
+        success, transport, this.getPairingDurationMs_());
+  },
+
+  /**
+   * Calculate how long it took to complete pairing, excluding how long the user
+   * took to confirm the pairing auth process.
+   * @return {number}
+   * @private
+   */
+  getPairingDurationMs_: function() {
+    let unadjustedPairingDurationMs = 0;
+    if (this.connectionAttemptStartTimestampMs_) {
+      unadjustedPairingDurationMs =
+          Date.now() - this.connectionAttemptStartTimestampMs_;
+    } else {
+      console.error('No connection start timestamp present.');
+    }
+
+    let userAuthActionDurationMs = 0;
+    if (this.pairingUserAuthAttemptStartTimestampMs_) {
+      if (this.pairingUserAuthAttemptFinishTimestampMs_) {
+        userAuthActionDurationMs =
+            this.pairingUserAuthAttemptFinishTimestampMs_ -
+            this.pairingUserAuthAttemptStartTimestampMs_;
+      } else {
+        console.error(
+            'No auth attempt finish timestamp present to' +
+            ' complement start timestamp.');
+      }
+    }
+
+    this.connectionAttemptStartTimestampMs_ = null;
+    this.pairingUserAuthAttemptStartTimestampMs_ = null;
+    this.pairingUserAuthAttemptFinishTimestampMs_ = null;
+
+    // If the pairing process required authentication, do not include the time
+    // it took the user to complete or confirm the authentication process.
+    return unadjustedPairingDurationMs - userAuthActionDurationMs;
   },
 });
diff --git a/ui/webui/resources/cr_components/chromeos/network/BUILD.gn b/ui/webui/resources/cr_components/chromeos/network/BUILD.gn
index 484f8a8f..38a08869 100644
--- a/ui/webui/resources/cr_components/chromeos/network/BUILD.gn
+++ b/ui/webui/resources/cr_components/chromeos/network/BUILD.gn
@@ -6,6 +6,7 @@
 
 js_type_check("closure_compile") {
   deps = [
+    ":mojo_interface_provider",
     ":network_apnlist",
     ":network_choose_mobile",
     ":network_config",
@@ -23,6 +24,13 @@
   ]
 }
 
+js_library("mojo_interface_provider") {
+  deps = [
+    "//chromeos/services/network_config/public/mojom:mojom_js_library_for_compile",
+    "//ui/webui/resources/js:cr",
+  ]
+}
+
 js_library("network_apnlist") {
   deps = [
     "//ui/webui/resources/cr_elements/chromeos/network:cr_onc_types",
diff --git a/ui/webui/resources/cr_components/chromeos/network/mojo_interface_provider.html b/ui/webui/resources/cr_components/chromeos/network/mojo_interface_provider.html
new file mode 100644
index 0000000..91b5cb8
--- /dev/null
+++ b/ui/webui/resources/cr_components/chromeos/network/mojo_interface_provider.html
@@ -0,0 +1,4 @@
+<link rel="import" href="chrome://resources/html/cr.html">
+<link rel="import" href="chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.html">
+<link rel="import" href="chrome://resources/mojo/chromeos/services/network_config/public/mojom/cros_network_config.mojom.html">
+<script src="mojo_interface_provider.js"></script>
diff --git a/ui/webui/resources/cr_components/chromeos/network/mojo_interface_provider.js b/ui/webui/resources/cr_components/chromeos/network/mojo_interface_provider.js
new file mode 100644
index 0000000..2a3ce9b
--- /dev/null
+++ b/ui/webui/resources/cr_components/chromeos/network/mojo_interface_provider.js
@@ -0,0 +1,35 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+cr.define('network_config', function() {
+  /** @interface */
+  class MojoInterfaceProvider {
+    /** @return {!chromeos.networkConfig.mojom.CrosNetworkConfigProxy} */
+    getMojoServiceProxy() {}
+  }
+
+  /** @implements {network_config.MojoInterfaceProvider} */
+  class MojoInterfaceProviderImpl {
+    constructor() {
+      /** @private {?chromeos.networkConfig.mojom.CrosNetworkConfigProxy} */
+      this.proxy_ = null;
+    }
+
+    /** @override */
+    getMojoServiceProxy() {
+      if (!this.proxy_) {
+        this.proxy_ = chromeos.networkConfig.mojom.CrosNetworkConfig.getProxy();
+      }
+
+      return this.proxy_;
+    }
+  }
+
+  cr.addSingletonGetter(MojoInterfaceProviderImpl);
+
+  return {
+    MojoInterfaceProvider: MojoInterfaceProvider,
+    MojoInterfaceProviderImpl: MojoInterfaceProviderImpl,
+  };
+});
diff --git a/ui/webui/resources/cr_components/cr_components_resources.grdp b/ui/webui/resources/cr_components/cr_components_resources.grdp
index 02e49b0..eb19e03 100644
--- a/ui/webui/resources/cr_components/cr_components_resources.grdp
+++ b/ui/webui/resources/cr_components/cr_components_resources.grdp
@@ -415,6 +415,16 @@
                type="chrome_html"
                compress="gzip" />
 
+    <!-- For use in Settings, oobe, configuration dialogs, and debug UI. -->
+    <structure name="IDR_WEBUI_CHROMEOS_NETWORK_MOJO_INTERFACE_PROVIDER_HTML"
+               file="cr_components/chromeos/network/mojo_interface_provider.html"
+               type="chrome_html"
+               compress="gzip" />
+    <structure name="IDR_WEBUI_CHROMEOS_NETWORK_MOJO_INTERFACE_PROVIDER_JS"
+               file="cr_components/chromeos/network/mojo_interface_provider.js"
+               type="chrome_html"
+               compress="gzip" />
+
     <!-- Shared between settings and add new share flow. -->
     <structure name="IDR_WEBUI_CHROMEOS_SMB_SHARES_SMB_BROWSER_PROXY_HTML"
                file="cr_components/chromeos/smb_shares/smb_browser_proxy.html"
diff --git a/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.html b/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.html
index 7d115878..3238057 100644
--- a/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.html
+++ b/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.html
@@ -85,7 +85,6 @@
         height: var(--cr-camera-image-size, 228px);
         object-fit: cover;
         object-position: center;
-        position: absolute;
         width: var(--cr-camera-image-size, 228px);
       }
 
diff --git a/ui/webui/resources/html/chromeos/onc_mojo.html b/ui/webui/resources/html/chromeos/onc_mojo.html
new file mode 100644
index 0000000..c3ecaf8
--- /dev/null
+++ b/ui/webui/resources/html/chromeos/onc_mojo.html
@@ -0,0 +1,2 @@
+<link rel="import" href="../assert.html">
+<script src="../../js/chromeos/onc_mojo.js"></script>
diff --git a/ui/webui/resources/js/BUILD.gn b/ui/webui/resources/js/BUILD.gn
index 9d52dc6..f42ed51 100644
--- a/ui/webui/resources/js/BUILD.gn
+++ b/ui/webui/resources/js/BUILD.gn
@@ -10,6 +10,9 @@
     "cr:closure_compile",
     "cr/ui:closure_compile",
   ]
+  if (is_chromeos) {
+    deps += [ "chromeos:closure_compile" ]
+  }
 }
 
 js_type_check("js_resources") {
diff --git a/ui/webui/resources/js/chromeos/BUILD.gn b/ui/webui/resources/js/chromeos/BUILD.gn
new file mode 100644
index 0000000..061d95ad
--- /dev/null
+++ b/ui/webui/resources/js/chromeos/BUILD.gn
@@ -0,0 +1,24 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//third_party/closure_compiler/compile_js.gni")
+
+group("closure_compile") {
+  deps = [
+    ":js_resources",
+  ]
+}
+
+js_type_check("js_resources") {
+  deps = [
+    ":onc_mojo",
+  ]
+}
+
+js_library("onc_mojo") {
+  deps = [
+    "//chromeos/services/network_config/public/mojom:mojom_js_library_for_compile",
+    "//ui/webui/resources/js:assert",
+  ]
+}
diff --git a/ui/webui/resources/js/chromeos/onc_mojo.js b/ui/webui/resources/js/chromeos/onc_mojo.js
new file mode 100644
index 0000000..4133b78a
--- /dev/null
+++ b/ui/webui/resources/js/chromeos/onc_mojo.js
@@ -0,0 +1,227 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Utilities supporting network_config.mojom types. The strings
+ * returned here should only be used for compatibility with the
+ * networkingPrivate extension API and for debugging, they are not intended to
+ * be user facing.
+ */
+
+class OncMojo {
+  /**
+   * @param {!chromeos.networkConfig.mojom.ActivationStateType} value
+   * @return {string}
+   */
+  static getActivationStateTypeString(value) {
+    const ActivationStateType =
+        chromeos.networkConfig.mojom.ActivationStateType;
+    switch (value) {
+      case ActivationStateType.kUnknown:
+        return 'Unknown';
+      case ActivationStateType.kNotActivated:
+        return 'NotActivated';
+      case ActivationStateType.kActivating:
+        return 'Activating';
+      case ActivationStateType.kPartiallyActivated:
+        return 'PartiallyActivated';
+      case ActivationStateType.kActivated:
+        return 'Activated';
+      case ActivationStateType.kNoService:
+        return 'NoService';
+    }
+    assertNotReached();
+    return '';
+  }
+
+  /**
+   * @param {!chromeos.networkConfig.mojom.ConnectionStateType} value
+   * @return {string}
+   */
+  static getConnectionStateTypeString(value) {
+    const ConnectionStateType =
+        chromeos.networkConfig.mojom.ConnectionStateType;
+    switch (value) {
+      case ConnectionStateType.kOnline:
+        return 'Online';
+      case ConnectionStateType.kConnected:
+        return 'Connected';
+      case ConnectionStateType.kPortal:
+        return 'Portal';
+      case ConnectionStateType.kConnecting:
+        return 'Connecting';
+      case ConnectionStateType.kNotConnected:
+        return 'NotConnected';
+    }
+    assertNotReached();
+    return '';
+  }
+
+  /**
+   * @param {!chromeos.networkConfig.mojom.DeviceStateType} value
+   * @return {string}
+   */
+  static getDeviceStateTypeString(value) {
+    const DeviceStateType = chromeos.networkConfig.mojom.DeviceStateType;
+    switch (value) {
+      case DeviceStateType.kUninitialized:
+        return 'Uninitialized';
+      case DeviceStateType.kDisabled:
+        return 'Disabled';
+      case DeviceStateType.kEnabling:
+        return 'Enabling';
+      case DeviceStateType.kEnabled:
+        return 'Enabled';
+      case DeviceStateType.kProhibited:
+        return 'Prohibited';
+      case DeviceStateType.kUnavailable:
+        return 'Unavailable';
+    }
+    assertNotReached();
+    return '';
+  }
+
+  /**
+   * @param {!chromeos.networkConfig.mojom.NetworkType} value
+   * @return {string}
+   */
+  static getNetworkTypeString(value) {
+    const NetworkType = chromeos.networkConfig.mojom.NetworkType;
+    switch (value) {
+      case NetworkType.kAll:
+        return 'All';
+      case NetworkType.kCellular:
+        return 'Cellular';
+      case NetworkType.kEthernet:
+        return 'Ethernet';
+      case NetworkType.kMobile:
+        return 'Mobile';
+      case NetworkType.kTether:
+        return 'Tether';
+      case NetworkType.kVPN:
+        return 'VPN';
+      case NetworkType.kWireless:
+        return 'Wireless';
+      case NetworkType.kWiFi:
+        return 'WiFi';
+      case NetworkType.kWiMAX:
+        return 'WiMAX';
+    }
+    assertNotReached();
+    return '';
+  }
+
+  /**
+   * @param {string} value
+   * @return {!chromeos.networkConfig.mojom.NetworkType}
+   */
+  static getNetworkTypeFromString(value) {
+    const NetworkType = chromeos.networkConfig.mojom.NetworkType;
+    switch (value) {
+      case 'All':
+        return NetworkType.kAll;
+      case 'Cellular':
+        return NetworkType.kCellular;
+      case 'Ethernet':
+        return NetworkType.kEthernet;
+      case 'Mobile':
+        return NetworkType.kMobile;
+      case 'Tether':
+        return NetworkType.kTether;
+      case 'VPN':
+        return NetworkType.kVPN;
+      case 'Wireless':
+        return NetworkType.kWireless;
+      case 'WiFi':
+        return NetworkType.kWiFi;
+      case 'WiMAX':
+        return NetworkType.kWiMAX;
+    }
+    assertNotReached();
+    return NetworkType.kAll;
+  }
+
+  /**
+   * @param {!chromeos.networkConfig.mojom.ONCSource} value
+   * @return {string}
+   */
+  static getONCSourceString(value) {
+    const ONCSource = chromeos.networkConfig.mojom.ONCSource;
+    switch (value) {
+      case ONCSource.kUnknown:
+        return 'Unknown';
+      case ONCSource.kNone:
+        return 'None';
+      case ONCSource.kUserImport:
+        return 'UserImport';
+      case ONCSource.kDevicePolicy:
+        return 'DevicePolicy';
+      case ONCSource.kUserPolicy:
+        return 'UserPolicy';
+    }
+    assertNotReached();
+    return '';
+  }
+
+  /**
+   * @param {!chromeos.networkConfig.mojom.SecurityType} value
+   * @return {string}
+   */
+  static getSecurityTypeString(value) {
+    const SecurityType = chromeos.networkConfig.mojom.SecurityType;
+    switch (value) {
+      case SecurityType.kNone:
+        return 'None';
+      case SecurityType.kWep8021x:
+        return 'Wep8021x';
+      case SecurityType.kWepPsk:
+        return 'WepPsk';
+      case SecurityType.kWpaEap:
+        return 'WpaEap';
+      case SecurityType.kWpaPsk:
+        return 'WpaPsk';
+    }
+    assertNotReached();
+    return '';
+  }
+
+  /**
+   * This infers the type from |key|, casts |value| (which should be a number)
+   * to the corresponding enum type, and converts it to a string. If |key| is
+   * known, then |value| is expected to match an enum value. Otherwise |value|
+   * is simply returned.
+   * @param {string} key
+   * @param {number|string} value
+   * @return {number|string}
+   */
+  static getTypeString(key, value) {
+    if (key == 'activationState') {
+      return this.getActivationStateTypeString(
+          /** @type {!chromeos.networkConfig.mojom.ActivationStateType} */ (
+              value));
+    }
+    if (key == 'connectionState') {
+      return this.getConnectionStateTypeString(
+          /** @type {!chromeos.networkConfig.mojom.ConnectionStateType} */ (
+              value));
+    }
+    if (key == 'deviceState') {
+      return this.getDeviceStateTypeString(
+          /** @type {!chromeos.networkConfig.mojom.DeviceStateType} */ (value));
+    }
+    if (key == 'type') {
+      return this.getNetworkTypeString(
+          /** @type {!chromeos.networkConfig.mojom.NetworkType} */ (value));
+    }
+    if (key == 'source') {
+      return this.getONCSourceString(
+          /** @type {!chromeos.networkConfig.mojom.ONCSource} */ (value));
+    }
+    if (key == 'security') {
+      return this.getSecurityTypeString(
+          /** @type {!chromeos.networkConfig.mojom.SecurityType} */ (value));
+    }
+    return value;
+  }
+}
diff --git a/ui/webui/resources/webui_resources.grd b/ui/webui/resources/webui_resources.grd
index 28fe95f..528fa8047 100644
--- a/ui/webui/resources/webui_resources.grd
+++ b/ui/webui/resources/webui_resources.grd
@@ -161,6 +161,13 @@
       <structure name="IDR_WEBUI_HTML_PROMISE_RESOLVER"
                  file="html/promise_resolver.html" type="chrome_html"
                  compress="gzip" />
+
+      <if expr="chromeos">
+        <structure name="IDR_WEBUI_HTML_CHROMEOS_ONC_MOJO"
+                   file="html/chromeos/onc_mojo.html" type="chrome_html"
+                   compress="gzip" />
+      </if>
+
       <structure name="IDR_WEBUI_HTML_CR"
                  file="html/cr.html" type="chrome_html" compress="gzip" />
       <structure name="IDR_WEBUI_HTML_CR_EVENT_TARGET"
@@ -257,6 +264,13 @@
       <structure name="IDR_WEBUI_JS_PROMISE_RESOLVER"
                  file="js/promise_resolver.js" type="chrome_html"
                  compress="gzip" />
+
+      <if expr="chromeos">
+        <structure name="IDR_WEBUI_JS_CHROMEOS_ONC_MOJO"
+                   file="js/chromeos/onc_mojo.js" type="chrome_html"
+                   compress="gzip" />
+      </if>
+
       <structure name="IDR_WEBUI_JS_CR"
                  file="js/cr.js" type="chrome_html" compress="gzip" />
       <structure name="IDR_WEBUI_JS_CR_EVENT_TARGET"
diff --git a/ui/wm/BUILD.gn b/ui/wm/BUILD.gn
index 578f0d6a..ba4066e 100644
--- a/ui/wm/BUILD.gn
+++ b/ui/wm/BUILD.gn
@@ -66,7 +66,6 @@
 
   deps = [
     "//base",
-    "//services/ws/public/mojom",
     "//skia",
     "//ui/aura",
     "//ui/base",
@@ -110,7 +109,6 @@
   deps = [
     ":wm",
     "//services/ws/public/cpp/input_devices",
-    "//services/ws/public/mojom",
     "//skia",
     "//ui/aura",
     "//ui/aura:test_support",